Запуск каждой функции ядра на нескольких GPU в CUDA 10.0 - PullRequest
0 голосов
/ 17 февраля 2020
// Four Kernel Runs Simultaneously
Kernel1 <<< numBlocks, threadPerBlock >>> (args); // GPU 0
Kernel2 <<< numBlocks, threadPerBlock >>> (args); // GPU 1
Kernel3 <<< numBlocks, threadPerBlock >>> (args); // GPU 2
Kernel4 <<< numBlocks, threadPerBlock >>> (args); // GPU 3

Я хочу, чтобы он работал как этот код.

У вас есть образцы или документ для справки?

1 Ответ

1 голос
/ 17 февраля 2020

Вы можете использовать cudaSetDevice (int device) перед каждым вызовом ядра.

__host__ ​cudaError_t cudaSetDevice ( int device ) Установить устройство, которое будет использоваться для выполнения GPU.

// Four Kernel Runs Simultaneously
cudaSetDevice(0);
Kernel1 <<< numBlocks, threadPerBlock >>> (args); // GPU 0
cudaSetDevice(1);
Kernel2 <<< numBlocks, threadPerBlock >>> (args); // GPU 1
cudaSetDevice(2);
Kernel3 <<< numBlocks, threadPerBlock >>> (args); // GPU 2
cudaSetDevice(3);
Kernel4 <<< numBlocks, threadPerBlock >>> (args); // GPU 3
...