标签:param 结构体 const mon ret 输出 count log 指定
这章介绍了与CUDA设备相关的参数,并给出了了若干用于查询参数的函数。
章节代码(已合并):
1 #include <stdio.h> 2 #include "D:\Code\CUDA\book\common\book.h" 3 #include "cuda_runtime.h" 4 #include "device_launch_parameters.h" 5 6 int main(void) 7 { 8 cudaDeviceProp prop; //放置设备属性参数的结构体 9 int dev_count, dev_id; 10 11 HANDLE_ERROR(cudaGetDeviceCount(&dev_count)); //获取设备数量 12 printf("Count of CUDA devices:\n\t%d\n",dev_count); 13 14 HANDLE_ERROR(cudaGetDevice(&dev_id)); //获取当前设备编号 15 printf("ID of current CUDA device:\n\t%d\n", dev_id); 16 17 HANDLE_ERROR(cudaGetDeviceProperties(&prop, dev_id)); //将指定变红的设备的属性放入prop中 18 printf("Name the CUDA device:\n\t%s\n", prop.name); //调用结构成员访问prop的内容 19 20 memset(&prop, 0, sizeof(cudaDeviceProp)); //清空prop内容 21 prop.major = 6; //指定prop中特定项目的值 22 HANDLE_ERROR(cudaChooseDevice(&dev_id, &prop)); //依照指定寻找符合条件的首个设备 23 printf("ID of CUDA device with Major compute capability 6.X:\n\t%d\n", dev_id); 24 25 HANDLE_ERROR(cudaSetDevice(dev_id)); //设置使用特定编号的设备 26 27 getchar(); 28 return 0; 29 }
在我的电脑上程序输出:
Count of CUDA devices:
1
ID of current CUDA device:
0
Name the CUDA device:
GeForce GTX 1070
ID of CUDA device with Major compute capability 6.X:
0
? 结构体cudaDeviceProp定义于driver_types.h中,包含以下66个参数(未列出中文名的暂时没有用到,等待填坑)
? 宏HANDLE_ERROR定义于在book.h,为本教材独有的宏函数
1 static void HandleError(cudaError_t err, const char *file, int line) 2 { 3 if (err != cudaSuccess) 4 { 5 printf("%s in %s at line %d\n", cudaGetErrorString(err), file, line); 6 exit( EXIT_FAILURE ); 7 } 8 } 9 #define HANDLE_ERROR( err ) (HandleError( err, __FILE__, __LINE__ ))
标签:param 结构体 const mon ret 输出 count log 指定
原文地址:http://www.cnblogs.com/cuancuancuanhao/p/7638643.html