Засунуть OpenMP без CUDA?

Могу ли я использовать Thrust с системой устройств OpenMP, если на моей машине нет графического процессора CUDA? Если да, то нужен ли мне инструментарий CUDA?


person lodhb    schedule 09.05.2013    source источник


Ответы (1)


Я только что нашел это в документации CUDA:

При использовании систем OpenMP или TBB nvcc не требуется. Как правило, nvcc требуется только при нацеливании Thrust на CUDA. Например, мы могли бы скомпилировать предыдущий код напрямую с помощью g++ с помощью этой командной строки:

$ g++ -O2 -o monte_carlo monte_carlo.cpp -fopenmp -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_OMP -lgomp -I<path-to-thrust-headers>

https://github.com/thrust/thrust/wiki/Device-Backends

person lodhb    schedule 09.05.2013
comment
Если я передаю значения host_vector в алгоритмы тяги, они работают на CPU, но если я передаю в алгоритмы значения device_vector, они работают на GPU. Дело в том, что алгоритмы, работающие на ЦП, используют OpenMP, а те, что работают на ГП, используют бэкенд Cuda? - person phoad; 17.01.2015