使用其他c++编译器编译CUDA代码
using other c++ compiler to compile the CUDA code
我有一个由nvcc编译的CUDA(*.cu)代码,它在GPU中运行得很好。但是nvcc不支持某些c++11功能,某些第三方c++库不能与nvcc一起使用。我想知道是否可以用gcc或其他商业c++编译器编译.cu代码?谢谢
nvcc支持显式指定其使用的主机编译器,并带有主机编译器特定的选项。有关详细信息,您可以在nvcc选项-ccbin
和-Xcompiler
上找到文档。
http://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html#nvcc-命令选项
例如,我将nvcc与"英特尔编译器"answers"英特尔MKL"绑定如下。
$ nvcc -ftz true -ccbin icpc -Xcompiler "-Wall -Wno-long-long -ansi -pedantic -ansi-alias -parallel -fopenmp -openmp-link=static -static-intel -wd10237" -O2 -Xcompiler "-O2" -gencode arch=compute_20,code=sm_20 -gencode arch=compute_30,code=sm_30 -gencode arch=compute_35,code=sm_35 -Ilib -c -o test/triangle.o test/triangle.cu
$ nvcc -ftz true -ccbin icpc -Xcompiler "-Wall -Wno-long-long -ansi -pedantic -ansi-alias -parallel -fopenmp -openmp-link=static -static-intel -wd10237" -O2 -Xcompiler "-O2" -Ilib -Llib test/triangle.o lib/KTiming.o -lpthread -lm /opt/intel/composer_xe_2013.1.117/mkl/lib/intel64/libmkl_intel_lp64.a /opt/intel/composer_xe_2013.1.117/mkl/lib/intel64/libmkl_intel_thread.a /opt/intel/composer_xe_2013.1.117/mkl/lib/intel64/libmkl_core.a /opt/intel/composer_xe_2013.1.117/mkl/lib/intel64/libmkl_core.a -lcublas -lcurand -lcusparse -o test/triangle
相关文章:
- 编译时未启用intel oneApi CUDA支持
- 为什么即使使用-cudart-static进行编译,库用户仍然需要链接到cuda运行时
- 编译 CUDA 与数学函数的叮当
- 通过Python Distutils(用于Python C扩展)使用可重定位的设备代码编译CUDA代码
- 如何在Visual Studio中为CUDA项目启用单独的编译
- 使用 msvc 15 在 Qt5.13 中编译 CUDA 代码
- 如何使用CMake将C++编译为CUDA
- 在窗户中编译CUDA的意义
- 编译CUDA的自定义TensorFlow OP
- 在Windows上使用clang编译CUDA时的重新定义
- 错误:在编译 cuda 的开源库 cusp 程序时需要标识符
- 在Windows上用Qt Creator编译Cuda代码
- 使用CMAKE编译CUDA C++-指定了多个编译阶段
- 为什么在 Ubuntu 下编译 CUDA 示例时找不到 libcudart.so.4
- 无法在OS X下编译CUDA驱动程序API示例
- 使用其他c++编译器编译CUDA代码
- 无法编译CUDA C源.提供了简单版本
- 使用 VS5 编译 CUDA 2012 时出现错误"nvcc cannot find a supported cl version"
- 编译CUDA文件、C文件和CUDA头文件
- md5sum值在每次编译cuda源代码时都会改变