【问题标题】:CUDA Unified Memory and use of std::vector in device codeCUDA 统一内存和设备代码中 std::vector 的使用
【发布时间】:2020-09-23 11:52:07
【问题描述】:

过去,在 CUDA 设备代码中不允许使用 std::vector。对于当前带有统一内存的 cuda 10.2 工具包,这仍然适用吗?

我在一个类中有一些 std::vector 类型的公共数据成员,它们被传递引用以供设备内核使用。

nvcc 抱怨从 global 函数("...) 调用 host 函数("std::vector...) ... 是不允许的。

如果可能的话,在 std::vector 上使用统一内存的正确方法是什么?如果不可能,是否有有效的解决方法?

【问题讨论】:

标签: cuda


【解决方案1】:

过去,std::vector 不允许在 CUDA 设备代码中使用。对于当前带有统一内存的 cuda 10.2 工具包,这仍然适用吗?

是的。

如果可能的话,在std::vector 上使用统一内存的正确方法是什么?

没有。这是不可能的。 There is no C++ standard library support on the device.

如果不可能,是否有有效的解决方法?

没有。

【讨论】:

    猜你喜欢
    • 2015-07-12
    • 1970-01-01
    • 2012-04-21
    • 1970-01-01
    • 2019-01-05
    • 2020-06-01
    • 2011-01-19
    • 1970-01-01
    相关资源
    最近更新 更多