Захват потока графов CUDA с тягой :: уменьшить - PullRequest
0 голосов
/ 01 апреля 2020

Когда я пытаюсь захватить выполнение потока для построения графика CUDA, вызов thrust::reduce вызывает ошибку времени выполнения cudaErrorStreamCaptureUnsupported: operation not permitted when stream is capturing. Я попытался вернуть результат редукции в переменные хоста и устройства, и я вызываю редукцию в правильном потоке с помощью thrust::cuda::par.on(stream). Можно ли как-нибудь добавить thrust выполнение функций к графам CUDA?

1 Ответ

1 голос
/ 02 апреля 2020

Операция уменьшения тяги является блокирующей операцией на стороне хоста. Я предполагаю, что вы используете результат редукции в качестве параметра для одного из ваших следующих ядер. Таким образом, когда вы захватываете граф CUDA, он не может создать экземпляр исполняемого файла графа, поскольку вы зависите от переменной, которая находится на стороне хоста, но недоступна, пока ядро ​​редукции не завершит выполнение. В качестве решения вы можете попробовать добавить узел хоста к вашему графику, который возвращает результат сокращения.

...