每个cl_platform_id结构对应安装在主机上一种不同的OpenCL实现。
编写OpenCL平台程序,首先要为一个或者多个cl_platform_id结构分配内存空间。然后调用函数clGetPlatformIDs
来初始化这些数据结构。其函数原型如下:
cl_int clGetPlatformIDs(cl_uint num_entries, cl_platform_id *platforms, cl_uint *num_platforms)
cl_platform_id *platforms;
cl_uint num_platforms;
cl_int err;
err = clGetPlatformIDs(1, NULL, &num_platforms);
if (err < 0)
{
cout << "Couldn't find any platforms." << endl;
return err;
}
platforms = (cl_platform_id *)malloc(sizeof(cl_platform_id) * num_platforms);
err = clGetPlatformIDs(num_platforms, platforms, NULL);
if (err < 0)
{
cout << "Failed to initialize platforms." << endl;
return err;
}