今天开始学习 CUDA 编程,有个疑问:
比如官网上的入门程序add.cu,为什么它不需要使用任何 cuda 相关的头文件?
我的猜测:nvcc
编译器实际上在编译之前会自动插入头文件再完成编译。
请大佬解答疑惑。
1
learningman 2023-09-30 18:15:22 +08:00 via Android
__global__是 CUDA C++的关键字,实际上是另外一种语言
|
2
xiaopanzi OP @learningman 按我理解,它只是扩展了 C/C++,像头文件这些内容肯定是保留的。比如`cudaMallocManaged`函数,没有头文件就能编译成功,这该如何理解?
|
3
xiaopanzi OP 好像和我的猜测是一致的,
> nvcc automatically includes CUDA-specific header files when handling code in .cu files. You still need to include the standard C/C++ header files and header files for any libraries delivered with CUDA, if you use functions exported by these header files. 参考[Does NVCC include header files automatically?]( https://forums.developer.nvidia.com/t/does-nvcc-include-header-files-automatically/48972) |