【问题标题】:Compiling CUDA with clang用clang编译CUDA
【发布时间】:2012-08-23 20:43:47
【问题描述】:

我是 LLVM 新手。听说clang支持CUDA。如何使用 clang 编译 CUDA?我是否必须进行一些配置更改或包含任何特定的头文件?我在网上找不到有关此的任何信息。有可能吗?

现在当我尝试使用 clang as 编译一个虚拟 cuda 程序时

clang -I /usr/local/cuda/include filename.cu 

我收到以下错误

 unknown type name '__global__'

 __global__ void nothing(int *A)

感谢任何帮助!顺便说一句,我在 Mac 上运行它。

【问题讨论】:

    标签: cuda clang llvm-clang


    【解决方案1】:

    感谢 Google 和其他人的贡献,Clang 现在支持构建 CUDA。不过,命令行参数与nvcc 略有不同。根据official documentation,假设你的文件名为axpy.cu,基本用法是:

    $ clang++ axpy.cu -o axpy --cuda-gpu-arch=<GPU arch>  \
        -L<CUDA install path>/<lib64 or lib>              \
        -lcudart_static -ldl -lrt -pthread
    

    请注意,使用 Clang 编译 CUDA 仍然需要您安装来自 NVIDIA CUDA toolkit 的专有 CUDA 运行时。

    【讨论】:

      【解决方案2】:

      2016-05-01 更新:clang 现在支持 CUDA。请参阅@rivanvx 的回答。

      CUDA 编译器基于 LLVM。 Clang 虽然也是基于 LLVM,但不支持 CUDA。

      【讨论】:

      • 但是,我应该如何解析 .cu 文件呢?没有其他工具?
      • @RogerDahl,您可能希望使用支持 CUDA 的 3.8 版 CLANG 更新您的帖子。
      猜你喜欢
      • 2021-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-18
      • 2012-05-23
      • 2021-10-05
      相关资源
      最近更新 更多