我使用以下命令为 nvidia GPU 构建二进制文件:
clang++ -fsycl -fsycl-targets=nvptx64-nvidia-cuda simple-sycl-app.cpp -o simple-sycl-app-cuda
但收到以下错误消息:
clang++:错误:找不到“libspirv-nvptx64--nvidiacl.bc”;通过“-fsycl-libspirv-path”提供 libspirv 库的路径,或传递“-fno-sycl-libspirv”进行构建,而不与 libspirv 链接
我在intel oneAPI安装路径和cuda工具包路径中都进行了搜索,但没有找到
spirv-nvptx64-nvidiacl.bc
。
谁知道哪里可以找到libspirv-nvptx64—nvidiacl.bc
?
看起来您正在尝试使用适用于 Nvidia GPU 的 DPC++ 编译器进行编译。
此选项不包含在英特尔网站的 oneAPI 版本安装中。目前,您需要编译 DPC++ LLVM 项目并启用此功能,以便能够使用适当的标志来定位 Nvidia 设备。
您可以按照本页的说明编译项目,然后它会解释如何使用 ptx 目标。我工作的公司 Codeplay 打算在未来发布包含 ptx 编译器选项的发行版二进制文件。
请尝试这个:
https://developer.codeplay.com/products/oneapi/nvidia/2023.0.0/guides/get-started-guide-nvidia
您应该能够使用 DPC++ 为 NVIDIA GPU 构建和运行 SYCL 代码