OpenCL 查询平台和设备

▶ 查询平台和设备的代码,以及输出结果,放在这里方便以后取用(没有营养)

 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]:\n\tName\t\t%s", i, info);
24         clGetPlatformInfo(listPlatform[i], CL_PLATFORM_VERSION, 1024, info, NULL);
25         printf("\n\tVersion\t\t%s", info);
26         //clGetPlatformInfo(listPlatform[i], CL_PLATFORM_VENDOR, 1024, info, NULL);
27         //printf("\n\tVendor\t\t%s", info);
28         //clGetPlatformInfo(listPlatform[i], CL_PLATFORM_PROFILE, 1024, info, NULL);
29         //printf("\n\tProfile\t\t%s", info);
30         clGetPlatformInfo(listPlatform[i], CL_PLATFORM_EXTENSIONS, 1024, info, NULL);
31         printf("\n\tExtension\t%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("\n");
40             clGetDeviceInfo(listDevice[j], CL_DEVICE_NAME, 1024, info, NULL);
41             printf("\n\tDevice[%d]:\n\tName\t\t%s", j, info);
42             clGetDeviceInfo(listDevice[j], CL_DEVICE_VERSION, 1024, info, NULL);
43             printf("\n\tVersion\t\t%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("\n\tType\t\t%s", info);            
55         }
56         printf("\n\n");
57         free(listDevice);
58     }
59     free(listPlatform);
60     getchar();
61     return 0;
62 }

● 输出结果,我的电脑

Platfom[0]:
        Name            NVIDIA CUDA
        Version         OpenCL 1.2 CUDA 9.1.83
        Extension       cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_fp64 cl_khr_byte_addressable_store cl_khr_icd cl_khr_gl_sharing cl_nv_compiler_options cl_nv_device_attribute_query cl_nv_pragma_unroll cl_nv_d3d10_sharing cl_khr_d3d10_sharing cl_nv_d3d11_sharing cl_nv_copy_opts cl_nv_create_buffer

        Device[0]:
        Name            GeForce GTX 1070
        Version         OpenCL 1.2 CUDA
        Type            GPU

● 输出结果,办公室的电脑

Platfom[0]:
        Name            AMD Accelerated Parallel Processing
        Version         OpenCL 2.0 AMD-APP (1800.11)
        Extension       cl_khr_icd cl_khr_d3d10_sharing cl_khr_d3d11_sharing cl_khr_dx9_media_sharing cl_amd_event_callback cl_amd_offline_devices

        Device[0]:
        Name            Caicos
        Version         OpenCL 1.2 AMD-APP (1800.11)
        Type            GPU

        Device[1]:
        Name            Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
        Version         OpenCL 1.2 AMD-APP (1800.11)
        Type            CPU

Platfom[1]:
        Name            Intel(R) OpenCL
        Version         OpenCL 1.2
        Extension       cl_khr_icd cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_byte_addressable_store cl_khr_depth_images cl_khr_3d_image_writes cl_intel_exec_by_local_thread cl_khr_spir cl_khr_dx9_media_sharing cl_intel_dx9_media_sharing cl_khr_d3d11_sharing cl_khr_gl_sharing cl_khr_fp64

        Device[0]:
        Name            Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
        Version         OpenCL 1.2 (Build 10094)
        Type            CPU

猜你喜欢

转载自www.cnblogs.com/cuancuancuanhao/p/9029891.html