▶ 查询平台和设备的代码以结果,放在这里方便以后逐渐扩充和查询(没有营养)
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h> 4 #include <cl.h> 5 6 int main() 7 { 8 int i, j; 9 char info[1024]; 10 11 cl_int status; 12 cl_uint nPlatform; 13 cl_platform_id *listPlatform; 14 cl_uint nDevice; 15 cl_device_id *listDevice; 16 clGetPlatformIDs(0, NULL, &nPlatform); 17 listPlatform = (cl_platform_id*)malloc(nPlatform * sizeof(cl_platform_id)); 18 clGetPlatformIDs(nPlatform, listPlatform, NULL); 19 20 for (i = 0; i < nPlatform; i++) 21 { 22 clGetPlatformInfo(listPlatform[i], CL_PLATFORM_NAME, 1024, info, NULL); 23 printf("Platfom[%d]: Name %s", i, info); 24 clGetPlatformInfo(listPlatform[i], CL_PLATFORM_VERSION, 1024, info, NULL); 25 printf(" Version %s", info); 26 //clGetPlatformInfo(listPlatform[i], CL_PLATFORM_VENDOR, 1024, info, NULL); 27 //printf(" Vendor %s", info); 28 //clGetPlatformInfo(listPlatform[i], CL_PLATFORM_PROFILE, 1024, info, NULL); 29 //printf(" Profile %s", info); 30 clGetPlatformInfo(listPlatform[i], CL_PLATFORM_EXTENSIONS, 1024, info, NULL); 31 printf(" Extension %s", info); 32 33 clGetDeviceIDs(listPlatform[i], CL_DEVICE_TYPE_ALL, 0, NULL, &nDevice); 34 listDevice = (cl_device_id*)malloc(nDevice * sizeof(cl_device_id)); 35 clGetDeviceIDs(listPlatform[i], CL_DEVICE_TYPE_ALL, nDevice, listDevice, NULL); 36 37 for (j = 0; j < nDevice; j++) 38 { 39 printf(" "); 40 clGetDeviceInfo(listDevice[j], CL_DEVICE_NAME, 1024, info, NULL); 41 printf(" Device[%d]: Name %s", j, info); 42 clGetDeviceInfo(listDevice[j], CL_DEVICE_VERSION, 1024, info, NULL); 43 printf(" Version %s", info); 44 clGetDeviceInfo(listDevice[j], CL_DEVICE_TYPE, 1024, info, NULL); 45 switch (info[0]) 46 { 47 case CL_DEVICE_TYPE_DEFAULT:strcpy_s(info, "DEFAULT"); break; 48 case CL_DEVICE_TYPE_CPU:strcpy_s(info, "CPU"); break; 49 case CL_DEVICE_TYPE_GPU:strcpy_s(info, "GPU"); break; 50 case CL_DEVICE_TYPE_ACCELERATOR:strcpy_s(info, "ACCELERATOR"); break; 51 case CL_DEVICE_TYPE_CUSTOM:strcpy_s(info, "CUSTOM"); break; 52 case CL_DEVICE_TYPE_ALL:strcpy_s(info, "ALL"); break; 53 } 54 printf(" Type %s", info); 55 56 cl_device_svm_capabilities svm; 57 clGetDeviceInfo(listDevice[j], CL_DEVICE_VERSION, sizeof(cl_device_svm_capabilities), &svm, NULL); 58 info[0] = '