2016-09-10 20 views
0

Для OpenCL, в частности: Каков максимальный размер, который может быть локальным массивом float?Каков максимальный допустимый размер локальной массива float?

настроить ядро ​​так:

__kernel void mykern(unsigned int N, __global float* input, __global float* output, __local float* sdata) 
{ 
    // ... 
} 

Что такое максимум, что я могу установить размер SData быть (в OpenCL)?

я сделал следующее в C++ OpenCL:

clSetKernelArg(kf_myvred,3,(lws[0])*sizeof(cl_float),NULL); 
clEnqueueNDRangeKernel(mycommandq,kf_myvred,1,NULL,work,lws,0,NULL,NULL); 

Если размер слишком велик, то clEnqueueNDRangeKernel возвращает ошибку CL_OUT_OF_RESOURCES. Но я не уверен, какой предел.

+0

Если я использую global_work_size как размер, то он дает мне ошибку. Но если я использую local_work_size, он дает не дает мне ошибку. –

+0

Стандарт C++ не определяет максимальный размер массива. Практический максимальный размер зависит от вашей реализации на C++ и, очевидно, будет зависеть от того, сколько памяти доступно в данный момент. –

+0

@SamVarshavchik Указывает размер, который требуется для поддержки всех реализаций? – Barmar

ответ

3

Используйте параметр clGetDeviceInfo с параметром CL_DEVICE_LOCAL_MEM_SIZE для запроса размера локальной памяти вашего устройства OpenCL. Обычно это от 32 до 64 КБ.

+0

Спасибо за быстрый ответ. Я запустил этот код: void print_device_local_mem_size (cl_device_id * mydevice) { \t size_t size; \t cl_ulong local_mem_size; \t clGetDeviceInfo (* MyDevice, CL_DEVICE_LOCAL_MEM_SIZE, 0, NULL, &size); \t clGetDeviceInfo (* MyDevice, CL_DEVICE_LOCAL_MEM_SIZE, размер, и local_mem_size, NULL); \t Е ("размер:% лу ,, байт:% лу \ п", размер , local_mem_size); } ;;;; И получил этот результат: size: 8 ,, bytes: 49152 ;;;; Что означает этот результат? ;;;; –

+0

Это означает, что можно выделить максимум 49152 байт локальной памяти на рабочую группу. – doqtor

+0

Итак, у меня есть только ~ 49 Кбайт локальной памяти на рабочую группу. Это звучит довольно низко для меня. Это правильно? –

Смежные вопросы