可以在编写代码时使用nvcc编译器,并在代码中加入以下代码段,以在程序运行时输出编译信息:
#include
#include
#include
#define CUDA_CHECK(call) \
do { \
cudaError_t status = call; \
if (status != cudaSuccess) { \
fprintf(stderr,"CUDA Error (%d): %s\n", \
__LINE__, cudaGetErrorString(status)); \
exit(1); \
} \
} while (0)
int main() {
//编写cuda代码
//使用nvcc编译器编译cuda代码
//插入以下代码,输出编译信息
cudaDeviceProp prop;
CUDA_CHECK(cudaGetDeviceProperties(&prop, 0));
printf("\nCUDA Device Name: %s\n\n", prop.name);
return 0;
}
在代码中,CUDA_CHECK(call)
宏用于检查cuda函数调用是否成功,并在失败时输出错误信息。cudaGetDeviceProperties
函数用于获取当前设备的属性信息,我们可以利用它输出当前编译使用的设备名称和CUDA版本。
通过这个方法,我们可以知晓程序编译使用的设备和CUDA版本,在后续调试和优化中可以更加方便地进行排查和解决问题。