Используя openMP в коде хоста cuda? - PullRequest
14 голосов
/ 09 июля 2010

Можно ли использовать прагмы openMP в CUDA-файлах (не в коде ядра)?

Я объединю вычисления GPU и CPU. Но компилятор nvvc завершается с ошибкой «не могу найти неизвестную опцию« openmp »», если я связываю программу с опцией openmp (под linux)

Обходной путь - использовать openMP-statments только в файлах c / c ++.

Ответы [ 3 ]

15 голосов
/ 19 июля 2010

Я только что нашел это

http://www.cse.buffalo.edu/faculty/miller/Courses/CSE710/heavner.pdf

Страница 25 говорит:

С gcc: - # include omp.h

Добавить флаг -fopenmp

При использовании nvcc это должно быть -Xcompiler -fopenmp, так как это должно быть передано непосредственно в gcc -Xcompiler передает флаги непосредственно компилятору хоста

Добавить -lgomp флаг на этапе связывания.

Я еще не пробовал ...

2 голосов
/ 21 октября 2012

Я попытался записать параметр в «Дополнительные параметры компилятора», но он не работал.

Что я сделал для Visual Studio 2010 и CUDA 4.2:

В Свойствах проекта -> КонфигурацияСвойства -> CUDA C / C ++ -> Командная строка -> Дополнительные параметры: -Xcompiler "/ openmp"

Это привело к двум параметрам -Xcompiler в полученной команде сборки, но не вызвало проблем и работало успешно.

0 голосов
/ 22 июля 2010

Решение для Visual Studio найдено на форуме nvidia:

добавить флаг '/ openmp' к параметрам Extra C ++ в правилах сборки cuda. Я попробую решение Linux позже.

...