Совместное использование графического процессора между программами, поддерживающими OpenCL - PullRequest
5 голосов
/ 29 июля 2010

Существует ли способ для совместного использования графического процессора между двумя отдельными программами, поддерживающими OpenCL, или, более конкретно, между двумя отдельными процессами, которые одновременно требуют, чтобы графический процессор выполнял ядра OpenCL?Если да, то как это сделать?

Ответы [ 2 ]

4 голосов
/ 29 августа 2010

Современные графические процессоры (кроме NVIDIA Fermi) не поддерживают одновременное выполнение более чем одного ядра. Более того, до настоящего времени графические процессоры не поддерживают вытесняющую многозадачность; это полностью сотрудничает! Выполнение ядра не может быть приостановлено и продолжено позже. Таким образом, детализация любого совместного использования GPU на основе времени зависит от времени выполнения ядер.

Если у вас работает несколько программ, требующих доступа к графическому процессору, вам следует убедиться, что у ваших ядер короткое время выполнения (<100 мс. Это практическое правило), чтобы время GPU можно было распределять по времени между ядрами, которые хотят циклы GPU. Это также важно сделать, поскольку в противном случае графика хост-системы станет очень невосприимчивой, поскольку им также требуется доступ к графическому процессору. Это может зайти так далеко, что ядро ​​в бесконечном или длинном цикле, по-видимому, приведет к сбою системы. </p>

4 голосов
/ 05 августа 2010

Это зависит от того, что вы называете разделением.

В общем, вы можете создать 2 процесса, которые оба создают устройство OpenCL, на одном GPU. Тогда ответственность за то, чтобы все работало, лежит на драйвере / ОС / графическом процессоре.

Тем не менее, большинство реализаций будет выделять время выполнения GPU, чтобы это произошло (как это происходит с графикой).

Я чувствую, что это не совсем то, что вы ищете. Можете ли вы расширить свой вопрос с помощью варианта использования?

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