Как я могу запустить более 1 ядра на одном GPU с CUDA? - PullRequest
1 голос
/ 28 октября 2010
kernel1 <<< blocks1, threads1, 0, stream1 >>> ( args ... );
...
kernel2 <<< blocks2, threads2, 0, stream2 >>> ( args ... );
...

У меня есть два ядра для одновременной работы,
и устройство GTX460, так что это архитектура Fermi.
Cuda toolkit и sdk имеют 3.2 rc.

Как и в приведенных выше кодах, два ядра закодированы для одновременной работы,
, но нет ответов от какого-либо ядра.

Есть ли какие-либо ограничения на то, что делают ядра?Два ядра разделяют некоторые данные
, и они имеют некоторую общую часть.
Если я закомментирую большую часть одной функции ядра, то программа останавливается.

Пожалуйста, помогите мне.

1 Ответ

2 голосов
/ 30 октября 2010

тот факт, что работают в разных потоках, не означает, что они будут работать одновременно.Если количество ресурсов, необходимых первому ядру, таково, что позволяет запустить второе ядро, то так и будет, иначе они будут работать последовательно.Убедитесь, что у вас есть cudaSyncThreads () после двух вызовов ядра, или выполните синхронизацию в обоих потоках.Помните, что все вызовы cuda являются асинхронными.

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