OpenCL записывает в буфер выбор

Возможный дубликат:
Два способа создания объекта буфера в opencl: clCreateBuffer и clCreateBuffer + clEnqueueWriteBuffer

В чем разница между копированием данных на устройство сразу после создания буфера и позже? т.е.

cl_mem memObj = clCreateBuffer( context, CL_MEM_READ_ONLY | CL_MEM_COPY_HOST_PTR
, size, dataPtr, NULL);

or

cl_mem memObj = clCreateBuffer( context, CL_MEM_READ_ONLY , size, NULL, NULL);
clEnqueueWriteBuffer( commandQueue, memObj, CL_TRUE, 0, size, dataPtr, 0, NULL, NULL);

Я новичок в OpenCL, поэтому просто пытаюсь разобраться, т.е. какой метод лучше использовать.

Спасибо!


person wallacer    schedule 30.04.2011    source источник
comment
ой, да это дубликат   -  person wallacer    schedule 30.04.2011


Ответы (1)


Весь смысл создания/постановки в очередь (в общем, не только в opencl) заключается в том, что после создания буфера вы можете писать в него позже, после того, как вычислите то, что хотите записать, и запишите произвольное количество раз. Нет никакой функциональной разницы между инициализацией буфера с данными в нем и созданием буфера с последующим добавлением данных. Кроме того, любая разница в производительности должна быть оптимизирована вашим компилятором.

person Anish    schedule 30.04.2011