параллельное выполнение ядра - PullRequest
1 голос
/ 24 февраля 2011

Можно ли запускать ядра из разных потоков приложения (хоста) и запускать их одновременно на одном устройстве GPGPU? Если нет, знаете ли вы какие-либо планы (от Nvidia) по обеспечению этой возможности в будущем?

1 Ответ

3 голосов
/ 24 февраля 2011

Руководство по программированию http://developer.download.nvidia.com/compute/cuda/3_1/toolkit/docs/NVIDIA_CUDA_C_ProgrammingGuide_3.1.pdf гласит:

3.2.7.3 Параллельное выполнение ядра Некоторые устройства с вычислительной способностью 2.0 могут выполнять несколько ядер одновременно. Приложения могут запрашивать эту возможность, вызывая cudaGetDeviceProperties () и проверяя свойство concurrentKernels. Максимальное количество запусков ядра, которое устройство может выполнять одновременно, составляет шестнадцать.

Так что ответ таков: зависит. Это на самом деле зависит только от устройства. Потоки хоста не будут иметь никакого значения. Параллельные запуски ядра сериализуются, если устройство не поддерживает параллельное выполнение ядра, а если устройство поддерживает параллельные запуски ядра в разных потоках.

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