gpt4 book ai didi

c++ - 从 C++ 访问 device_vector 的最佳方式

转载 作者:行者123 更新时间:2023-11-28 07:08:07 25 4
gpt4 key购买 nike

我想知道从主机 C++ 代码访问推力 device_vector 的最佳方法是什么?我写了一个 cuda API 来做基本的 vector 代数,因为我想构建一个类似于 Matlab/Octave 的解释器,其中 vector 存储在 GPU 上,可以轻松地进行 reduce、reduce_by_key 等计算。

我正在考虑从 device_vector 的分配中获取原始指针并将其存储在具有关联变量名称的哈希表中,但想知道是否有更好的解决方案。

最佳答案

如果您对性能感兴趣,则不应尝试直接从主机代码访问 thrust::device_vector。首先将其复制到主机变量。

如果您直接从主机代码使用device_vector,这是合法的,但推力会generate a device->host copy operation “引擎盖下”以启用此功能。这对于批发数据访问来说会非常慢。

Thrust 原始指针没有用,因为在主机代码中取消引用它们会产生段错误。

虽然与您的问题没有直接关系,但您可能会在 newton 中找到一些有趣的代码, 一套推力表达模板。

关于c++ - 从 C++ 访问 device_vector 的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21456232/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com