2013-05-09 42 views
3

如果我的機器沒有CUDA GPU,我可以在OpenMP設備系統上使用Thrust嗎?如果是這樣,我還需要CUDA工具包嗎?推動OpenMP沒有CUDA?

回答

5

我剛剛發現這個CUDA文檔中:

使用時無論是OpenMP的或TBB系統,不需要nvcc。一般情況下,只有在CUDA中定位推力時才需要nvcc。例如,我們可以直接與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

+1

如果我通過host_vector值推力的算法,它們在CPU的工作,但如果我通過device_vector值給算法,它們在GPU上工作。在CPU上運行的算法是否使用OpenMP,以及在GPU上運行的算法是否使用Cuda後端? – phoad 2015-01-17 20:14:30