Skip to Content
Loading...
Branding...

miniFAQ об OpenCL

Аватар пользователя ostin

Как узнать количество PlatformIDs и DeviceIDs?

cl_uint num_platforms;
clGetPlatformIDs(0, NULL, &num_platforms);

после чего можно получить все платформы:

cl_platform_id *platform_id = malloc(sizeof(cl_platform_id)*num_platforms);
clGetPlatformIDs(num_platforms, platform_id, NULL);

с девайсами поступаем точно также.

 

Как передать в kernel параметр-констнту?

char params[15];
sprintf(params, "-D BS=%i", BS);
clBuildProgram(program, 0, NULL, params, NULL, NULL);

И в самом kernel можно использовать параметр BS:

__kernel  void my_kernel(__global const float *A)
{

    __local float a[BS][BS];
   size_t N = n/BS;

}

 

 

 

TO BE CONTINUED...

 

sungreen
Аватар пользователя sungreen
Не в сети
Зарегистрирован: 29.10.2009

... Николай, как насчет обещанного "TO BE CONTINUED..."?   ...

@:)

ostin
Аватар пользователя ostin
Не в сети
Зарегистрирован: 12.05.2009

Кратко: сессия...

А ещё я разочаровался в OpenCL на моей видюхе ATI mobility radeon HD5470.

И... да в gentoo с OpenCL не всё хорошо.

sungreen
Аватар пользователя sungreen
Не в сети
Зарегистрирован: 29.10.2009

... мну юзает nvidia gf460 при визуализации в blender на opencl заметный прирост производительности, вразы ...

 

@:)