PyCUDA, при всех своих недостатках, обычно имеет очень хорошие примеры, предоставляемые вместе с ним / загружаемые из вики. Но я не смог найти ничего в примерах или в документации (или кратком поиске в Google), демонстрирующем способ PyCUDA динамически распределять рабочие нагрузки между несколькими устройствами.
Может ли кто-нибудь либо намекнуть мне на то, что я должен делать, либо указать на примеры?
Одна идея, которая пришла мне в голову, состояла в том, чтобы использовать многопроцессорность, генерировать пул из N процессов, каждый из которых привязан к одному устройству, а затем, когда вызывается класс (у меня все мои функции gpu в отдельном классе; вероятно, не самый лучший идея, но это работает), это циклический перебор многопроцессных. Насколько хорошая / отсталая идея?
PS Моя машина для разработки - 1 GPU, а моя тестовая машина - 4 GPU, поэтому мне нужно любое решение для работы с динамическим числом устройств (это также не значит, что у них разные вычислительные возможности, но вот и жизнь)