推力::host_vector 和 std::vector 有什么区别?

Sou*_*nda 5 cuda thrust

两者都在主机上分配内存,我可以device_vector使用迭代器将内容复制到和复制回。为什么host_vector必须包含在 API 中?它与固定内存有关吗?

Mik*_*ail 5

不,它没有实现固定内存。

我怀疑它的存在是为了实现一些覆盖,例如从device_vector.

此外,与std::vectorMSVC 中的实现不同,Thrusthost_vector不检查迭代器有效性,这会导致调试构建的性能更快(默认情况下)。