调用主机上的推力函子执行多线程

Calling a thrust functor on the host to execute multiple threads

我知道使用 thrust::for_eachthrust::host_vector 中的数据调用仿函数具有并行执行策略,但它们实际上是并行执行的吗?

如果不是,调用这些的正确方法是什么?我 运行 所在的系统是虚拟化的,因此所有内核似乎都在同一台机器上?

[编辑]

我知道有 thrust::omp::par 这样的东西,但是,我似乎无法使用 OpenMP 找到完整的 Thrust 示例。

一般来说,在 "host" 上调度的推进操作不是 运行 并行的。他们使用单个主机线程。

如果您想 运行 在 CPU 上并行推进操作(使用多个 CPU 线程),那么推荐的做法是使用 thrust OpenMP 后端。

一个完整的示例是 here

另一个有效的例子是here