使用 intel clang++ 为 nvidia cuda GPU 构建二进制文件时找不到 libspirv-nvptx64--nvidiacl.bc

问题描述 投票:0回答:2

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

cuda nvidia clang++ sycl intel-oneapi
2个回答
4
投票

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

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

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


0
投票

请尝试这个:

https://developer.codeplay.com/products/oneapi/nvidia/2023.0.0/guides/get-started-guide-nvidia

您应该能够使用 DPC++ 为 NVIDIA GPU 构建和运行 SYCL 代码

© www.soinside.com 2019 - 2024. All rights reserved.