前言
上篇文章我们了解了nvcc是做什么的,本篇文章我们会了解Compilation Phases,编译阶段,nvcc预定义的宏,编译支持的文件格式等。
NVCC Identificaiton Macro
nvcc预定义了以下的宏:
__NVCC__: 在编译C/C++/CUDA源文件时定义
__CUDACC__: 在编译CUDA源文件时定义
__CUDACC_RDC__:在relocatable device code mode下编译CUDA源文件时定义
__CUDACC_EWP__:在extensible whole program mode下编译CUDA源文件时定义
__CUDACC_DEBUG__:在device-debug mode 下比编译CUDA源文件时定义
__CUDACC_RELAXED_CONSTEXPR__:当命令行指定了--expt-relaxed-constexpr flag时定义
___CUDACC_EXTENDED_LAMBDA__: 当命令行指定了--expt-extended-lambda or --extended-lambda flag的时候定义
__CUDACC_VER_MAJOR__: 由nvcc major version定义
__CUDACC_VER_MINOR__: 由nvcc minor version定义
__CUDACC_VER_BUILD_