Это может показаться глупым, но я наткнулся на этот вопрос и не могу сам на него ответить.
В чем практическая разница между использованием следующих двух фрагментов кода при записи в буфер в OpenCL?
- Блокировка записи:
queue->enqueueWriteBuffer(d_vec, CL_TRUE, 0, sizeof(int) * vec.size(), vec.data());
- Неблокирующая запись с помощью event.wait():
cl::Event event;
queue->enqueueWriteBuffer(d_vec, CL_FALSE, 0, sizeof(int) * vec.size(), vec.data(), nullptr, &event);
event.wait();
Мне кажется, что оба кода в итоге будут вести себя одинаково. Кто-нибудь может объяснить разницу?
Благодарю вас!