不使用CUDA如何进行Thrust OpenMP?

4

如果我的机器没有CUDA GPU,我能否在OpenMP设备系统中使用Thrust?如果可以,是否仍然需要CUDA工具包?

1个回答

6

我在CUDA文档中找到了这个内容:

使用OpenMP或TBB系统时,不需要使用nvcc。通常情况下,只有在针对CUDA的Thrust时才需要使用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 值传递给 thrust 算法,它们将在 CPU 上运行,但如果我将 device_vector 值传递给算法,它们将在 GPU 上运行。那么在 CPU 上运行的算法是否使用 OpenMP,而在 GPU 上运行的算法是否使用 Cuda 后端呢? - phoad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接