В чем разница между созданием объекта буфера с clCreateBuffer + CL_MEM_COPY_HOST_PTR и clCreateBuffer + clEnqueueWriteBuffer?

Я видел обе версии в уроках, но не смог выяснить, в чем их преимущества и недостатки. Какой из них правильный?

cl_mem input = clCreateBuffer(context,CL_MEM_READ_ONLY,sizeof(float) * DATA_SIZE, NULL, NULL);
clEnqueueWriteBuffer(command_queue, input, CL_TRUE, 0, sizeof(float) * DATA_SIZE, inputdata, 0, NULL, NULL);

против

cl_mem input = clCreateBuffer(context,CL_MEM_READ_ONLY | CL_MEM_COPY_HOST_PTR, ,sizeof(float) * DATA_SIZE, inputdata, NULL);

Благодарю.

[Обновить]

я добавилCL_MEM_COPY_HOST_PTR, ко второму примеру, чтобы исправить это.

Ответы на вопрос(5)

Ваш ответ на вопрос