CUDA Как запустить новый вызов ядра в одной функции ядра?
Я новичок в CUDA
программирование. Теперь у меня возникла проблема: я пытаюсь использовать параллельное программирование CUDA для обработки набора наборов данных. И для каждого набора данных необходимо выполнить некоторые матричные вычисления.
Мой дизайн такой:
Запустите N потоков для обработки каждого набора данных, так как они независимы друг от друга, и метод для их обработки одинаков.
В каждом потоке в 1 я хочу использовать новую функцию, и эта функция также работает как ядро, поскольку они являются матричными вычислениями... например, вызывают M потоков для параллельной обработки матричных вычислений.
Кто-нибудь знает, возможно ли это или нет?
1 ответ
Вы можете запустить ядро из потока в другом ядре, если вы используете динамический параллелизм CUDA и ваш GPU поддерживает его. Графические процессоры, которые поддерживают динамический параллелизм CUDA, в настоящее время имеют вычислительные возможности 3.5.
Вы можете узнать вычислительные возможности вашего устройства из примера CUDA deviceQuery.
Вы можете узнать больше о том, как использовать динамический параллелизм CUDA, в разделе руководства по программированию CUDA.