im writing open cl flocking и у меня странная проблема. Перед выполнением Kernel Execute clEnqueueReadBuffer считывает из gpu mem в массив памяти mem 20000 без проблем, очень быстро, но после запуска ядра, который выполнял некоторую операцию над этим переданным массивом, readbuffer длился слишком долго (~ 150 мс). Зачем? В обоих случаях массив заполнялся данными. Что, возможно, неправильно делает мое ядро? (этот переданный массив __global).Открыть CL clEnqueueReadBuffer выполнить время
1
A
ответ
1
clEnqueueNDRangeKernel
на самом деле не запускает ядра, это «засыпает» их. Реализация OpenCL может запускать ядра всякий раз, когда он сочтет нужным (в этом случае, когда вы просите прочитать результаты, поскольку для проверки результатов необходимо запустить ядро).
Вы можете, однако, заставлять реализацию запускать ядра через clFinish
.
В вашем случае задержка в 150 мс - это время, затрачиваемое на запуск ядра.
Если вы вызываете clFinish
между выполнением и вторым чтением, он будет работать.
Смежные вопросы
- 1. OpenCL clEnqueueReadBuffer случайно
- 2. трубопровод Ядро и clEnqueueReadBuffer
- 3. clEnqueueReadBuffer слишком медленный
- 4. clEnqueueReadBuffer не удалось: из-за нехватки ресурсов
- 5. clEnqueueReadBuffer/clEnqueueWriteBuffer: принудительно закрепленный режим памяти
- 6. Как вы читаете многомерный массив из clEnqueueReadBuffer?
- 7. CL-PPCRE Unicode Свойство
- 8. Как выполнить общий текстовый файл lisp (clozure cl)?
- 9. Невозможно выполнить команду CL (команда AS400) в PHP-скрипте
- 10. выполнить/открыть выполнить программу в C#
- 11. cl-ncurses on SBCL
- 12. Ошибка при попытке найти время выполнения открытого кода CL
- 13. выполнить/открыть программу в C#
- 14. Как выполнить диалог «Открыть проект»?
- 15. DOUNTIL IN CL AS400
- 16. Многопоточное взаимодействие OpenGL-CL
- 17. OpenCL: cl :: getDevices crashes
- 18. Как использовать команду cl?
- 19. Open CL с AMD
- 20. Открыть excel из Word и выполнить действие
- 21. Как получить последний день месяца в CL
- 22. Открыть видео в определенное время
- 23. Время соединения MySQL, чтобы открыть
- 24. Открыть мероприятие через определенное время?
- 25. Открыть файл во время установки
- 26. открыть программу и выполнить команду внутри - Python
- 27. Открыть командную оболочку и выполнить команду
- 28. Открыть DrawerLayout, выполнить действие, затем закрыть его
- 29. Как открыть/выполнить внешний файл из java?
- 30. On Отправить, открыть окно и выполнить функцию
Как память gpu заполнялась данными перед запуском ядра? – ardiyu07