thrust::host_vector 和 std::vector 有什么区别?
What is the difference between thrust::host_vector and std::vector?
两者都在主机上分配内存,我可以使用迭代器将内容复制到 device_vector
并返回。为什么 host_vector
必须包含在 API 中?它与固定内存有关吗?
不,它没有实现固定内存。
我怀疑它的存在是为了实现一些覆盖,例如来自 device_vector
的赋值。
此外,与 MSVC 中的 std::vector
实现不同,Thrust 的 host_vector
不检查迭代器有效性,这导致调试构建的性能更快(默认情况下)。
两者都在主机上分配内存,我可以使用迭代器将内容复制到 device_vector
并返回。为什么 host_vector
必须包含在 API 中?它与固定内存有关吗?
不,它没有实现固定内存。
我怀疑它的存在是为了实现一些覆盖,例如来自 device_vector
的赋值。
此外,与 MSVC 中的 std::vector
实现不同,Thrust 的 host_vector
不检查迭代器有效性,这导致调试构建的性能更快(默认情况下)。