PowerShell - Начинать-процесс и переключатели Cmdline

Активность CUDA из независимых процессов хоста обычно создает независимые контексты CUDA , по одному для каждого процесса. Таким образом, активность CUDA, запущенная из отдельных хост-процессов, будет проходить в отдельных контекстах CUDA на одном устройстве.

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

«Исключение» в этом случае (сериализация активности графического процессора от независимых хост-процессов) быть многопроцессорным сервером CUDA. В двух словах MPS действует как «воронка» для сбора активности CUDA, исходящей из нескольких хост-процессов, и запускает эту активность, как если бы она исходила из одного хост-процесса. Главное преимущество - избежать сериализации ядер, которые в противном случае могли бы работать одновременно . Канонический вариант использования будет состоять в том, чтобы запустить несколько рангов MPI, которые все намерены использовать один ресурс графического процессора.

Обратите внимание, что приведенное выше описание относится к графическим процессорам, которые находятся в режиме вычисления «по умолчанию» . Графические процессоры в режимах «Эксклюзивный процесс» или «Эксклюзивный поток» отклонят любые попытки создания более одного процесса / контекста на одном устройстве. В одном из этих режимов попытки других процессов использовать уже запущенное устройство приведут к ошибке CUDA API. Режим вычисления в некоторых случаях может быть изменен с использованием утилиты nvidia-smi .

71
задан BuddyJoe 16 March 2009 в 16:46
поделиться

3 ответа

Вы собираетесь хотеть разделить свои аргументы на отдельный параметр

$msbuild = "C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe"
$arguments = "/v:q /nologo"
start-process $msbuild $arguments 
116
ответ дан Glennular 24 November 2019 в 12:32
поделиться

Если OP не использует Расширения Сообщества PowerShell, который действительно обеспечивает Начинать-процесс cmdlet наряду с набором других. Если это случай тогда решение Glennular работает обработка, так как это соответствует позиционным параметрам pscx\start-процесса: - путь (положение 1) - аргументы (положение 2).

2
ответ дан Keith Hill 7 November 2019 в 08:46
поделиться

Используя явные параметры, это было бы:

$msbuild = 'C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe'
start-Process -FilePath $msbuild -ArgumentList '/v:q','/nologo'

Править: кавычки.

54
ответ дан Lucas Pottersky 24 November 2019 в 12:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: