54 lines
1.3 KiB
C
54 lines
1.3 KiB
C
|
#include <stdio.h>
|
||
|
#include <CL/cl.h>
|
||
|
#include <stdlib.h>
|
||
|
#include <stdint.h>
|
||
|
|
||
|
int main()
|
||
|
{
|
||
|
|
||
|
cl_int error;
|
||
|
cl_platform_id *platform_ids = NULL;
|
||
|
cl_device_id *device_ids = NULL;
|
||
|
cl_uint platform_id_count = 0;
|
||
|
cl_uint device_id_count = 0;
|
||
|
cl_context_properties context_properties[4];
|
||
|
cl_context context;
|
||
|
|
||
|
clGetPlatformIDs (0, NULL, &platform_id_count);
|
||
|
if (platform_id_count == 0)
|
||
|
return -1;
|
||
|
|
||
|
platform_ids = (cl_platform_id*) malloc(platform_id_count *
|
||
|
sizeof(cl_platform_id));
|
||
|
if (platform_ids == NULL)
|
||
|
return -1;
|
||
|
|
||
|
clGetPlatformIDs (platform_id_count, platform_ids, NULL);
|
||
|
|
||
|
printf("Platforms available: %u\n", (unsigned int)platform_id_count);
|
||
|
|
||
|
|
||
|
clGetDeviceIDs (platform_ids[0], CL_DEVICE_TYPE_ALL, 0, NULL,
|
||
|
&device_id_count);
|
||
|
printf("Device in Platform 0 count: %u\n", (unsigned int)device_id_count);
|
||
|
|
||
|
if (device_id_count == 0)
|
||
|
return -1;
|
||
|
|
||
|
device_ids = (cl_device_id*) malloc(sizeof(cl_device_id)*device_id_count);
|
||
|
|
||
|
clGetDeviceIDs (platform_ids[0], CL_DEVICE_TYPE_ALL, device_id_count,
|
||
|
device_ids, NULL);
|
||
|
|
||
|
context_properties[0] = CL_CONTEXT_PLATFORM;
|
||
|
context_properties[1] = (cl_context_properties)platform_ids[0];
|
||
|
context_properties[2] = context_properties[3] = 0;
|
||
|
|
||
|
|
||
|
context = clCreateContext (context_properties, device_id_count,
|
||
|
device_ids, NULL,
|
||
|
NULL, &error);
|
||
|
|
||
|
return 0;
|
||
|
}
|