Есть ли поддержка в cuda для очереди ядра GPU? - PullRequest
0 голосов
/ 30 ноября 2011

Чтобы скрыть задержку при вызове ядер cuda, есть ли поддержка для вызова последовательности ядер без необходимости возврата к ЦП для вызова следующего ядра?Таким образом, последовательность ядер может быть выведена из очереди на устройстве с графическим процессором.Это кажется важным при работе с более крупными ядрами, где вы, возможно, достигаете предела размера команд и хотите создать больше модульности, чтобы уменьшить общий размер команд.(Там, где встраивание может быть не очень хорошим решением)

(Если это важно, я использую JCuda, если это создает ограничение в достижении этой функциональности, пожалуйста, дайте мне знать.)

1 Ответ

2 голосов
/ 30 ноября 2011

Какой лимит размера инструкции вы имеете в виду? Я не знаю ни одного.

Все вызовы ядра CUDA (<<< >>> или cuLaunch и т. Д.) Являются асинхронными, что означает, что управление немедленно возвращается к ЦПУ. Драйвер CUDA помещает аппаратные команды, включая запуск ядра, в очередь команд, из которой аппаратное обеспечение отключается. Таким образом, если вы вызываете несколько последующих ядер CUDA без какой-либо другой промежуточной работы ЦП или вызовов CUDA, они будут выполняться графическим процессором асинхронно без «возврата к ЦП», и управление вернется к ЦП сразу после того, как API CUDA поставит команды в очередь.

Подробнее см. В Руководстве по программированию CUDA.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...