Вызовы ядра cuda синхронны или асинхронны

Я читал, что можно использовать запуск ядра для синхронизации различных блоков, то есть, если я хочу, чтобы все блоки завершили операцию 1, прежде чем они перейдут к операции 2, я должен поместить операцию 1 в одно ядро ​​и операцию 2 в другое ядро. Таким образом, я могу добиться глобальной синхронизации между блоками. Однако в руководстве по программированию cuda c упоминается, что вызовы ядра являются асинхронными, т.е. ЦП не ждет завершения первого вызова ядра и, таким образом, ЦП также может вызвать второе ядро ​​до завершения первого. Однако, если это правда, то мы не можем использовать запуск ядра для синхронизации блоков. Пожалуйста, дайте мне знать, где я ошибаюсь

24
задан Programmer 12 December 2011 в 11:31
поделиться