Я новичок в CUDA. Я выделил память на устройстве для переменной float. Затем я добавил много вычисляемых значений в функцию ядра. Теперь я хочу сделать только одну математическую операцию для этой переменной. Должен ли я скопировать его обратно на хост, чтобы сделать это?Изменение памяти устройства на CUDA только один раз
0
A
ответ
2
Если у вас есть только одна переменная или небольшой объем данных, вы можете рассмотреть возможность использования нулевых копий данных (переменных) на хосте в закрепленной памяти, которые также доступны на устройстве.
Когда устройство обращается к этим переменным, транзакции будут генерироваться через PCIE для предоставления значений на устройстве, а затем для обновления значений на хосте.
Так что это действительно не устраняет копии, как вы можете видеть. Но это может представлять интерес для вашего приложения, если речь идет только о небольшом количестве данных.
simple Zero Copy Образец CUDA описывает метод.
Мой ответ here также дает простой пример использования нулевой копии для одной переменной как на устройстве, так и на хосте.
Смежные вопросы
- 1. изменение langauage только один раз
- 2. Изменение tabBarController.selectedViewController работает только один раз?
- 3. Изменение innerHTML работает только один раз
- 4. Изменение обработчика событий только один раз, jQuery
- 5. Доступ к памяти устройства cuda при запуске ядра cuda
- 6. cuda: использование глобальных переменных для памяти устройства
- 7. Изменение размера окна работает только один раз
- 8. Код ядра программы cuda в памяти устройства
- 9. CUDA указатели устройства
- 10. Изменение attr на клике, работающем только один раз
- 11. Установите Apk только один раз
- 12. Исполнительной части коды один раз в CUDA
- 13. JQuery только один раз выполняется один раз
- 14. CUDA: Совместное назначение памяти
- 15. : непроизвольные CUDA изменение памяти во время ядер
- 16. Java Timer только один раз один раз (только для сервера)
- 17. CUDA: неверная ошибка указателя устройства при перераспределении памяти
- 18. хочу подключить два устройства через синий зуб только один раз
- 19. Загрузка класса только один раз
- 20. setInterval выполняется только один раз
- 21. Использование таймера только один раз
- 22. jsfiddle только один раз
- 23. Краска только один раз
- 24. Переадресация только один раз
- 25. addEventListener только один раз
- 26. Указатель устройства в классе устройства (Cuda C++)
- 27. Петля только один раз
- 28. onYoutubeIFrameAPIReady только один раз
- 29. Уведомление только один раз
- 30. matplotlib только один раз
Если вы хотите выполнить некоторую математику на хосте, то да, вам понадобятся соответствующие данные на хосте. –
Я хочу изменить его один раз, а затем выполнить другое параллельное вычисление на устройстве. Мне не нравится идея cudaMemcpy'ing формы устройства для размещения и наоборот много раз. –
Я понимаю это. –