0

我使用以下命令为 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

4

1 回答 1

3

看起来您正在尝试使用适用于 Nvidia GPU 的 DPC++ 编译器进行编译。

此选项不包含在英特尔网站的 oneAPI 版本安装中。目前,您需要编译启用此功能的 DPC++ LLVM 项目,以便能够使用适当的标志来定位 Nvidia 设备。

您可以按照此页面上的说明编译项目,然后解释如何使用 ptx 目标。在未来,我工作的公司 Codeplay 打算发布包含 ptx 编译器选项的发行版二进制文件。

于 2022-01-11T08:51:34.320 回答