Cuda параллельная генерация кода в Visual Studio

У меня есть пара проектов C ++ в решении Visual Studio 2012.
Эти проекты содержат большое количество файлов и
я использую / MP ускорить генерацию кода.

Мне было интересно, есть ли способ ускорить также NVCC подобным образом. Использование / MP в проекте, содержащем ядра CUDA, не дает никаких преимуществ во время компиляции, и я вижу только одно ядро ​​в работе.

Итак, вопрос: как я могу использовать свой многоядерный ПК для ускорения компиляции CUDA?

10

Решение

Начиная с CUDA 5.5, nvcc не имеет эквивалента MSVC / MP, поэтому любой параллелизм сборки для файлов .cu должен исходить из инструмента сборки, который вызывает NVCC.

Если вы можете собрать с помощью GNU Make (например, под Cygwin или в системе Linux / Unix / OS X), вы можете использовать его функциональность параллельного здания, с использованием -j опция, которая заставляет его обрабатывать несколько рецептов параллельно.

Вот хороший пост в блоге который перечисляет несколько параметров параллельной сборки в Windows, некоторые из которых могут работать с NVCC.

Для настоящей распределенной / параллельной системы сборки, поддерживающей MSVC и NVCC, вы можете попробовать IncrediBuild.

4

Другие решения

Ты можешь использовать IncrediBuild

Но эта ошибка может произойти:
фатальная ошибка C1041: невозможно открыть базу данных программы ‘…’; если несколько файлов CL.EXE записывают в один и тот же файл .PDB, используйте / FS

Чтобы избежать этого, установите «Проект» -> «Свойства» -> CUDA C / C ++ -> «Хост» -> «Дополнительные параметры компилятора» -> / FS.

Подробнее читайте на этот блог.

2

По вопросам рекламы [email protected]