首页 > 解决方案 > CUDA 统一内存和设备代码中 std::vector 的使用

问题描述

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

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

nvcc 抱怨从不允许的全局函数("...) 调用主机函数("std::vector...) ...。

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

标签: cuda

解决方案


过去,std::vector在 CUDA 设备代码中是不允许的。当前带有统一内存的 cuda 10.2 工具包仍然如此吗?

是的。

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

没有一个。这是不可能的。设备上没有 C++ 标准库支持

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

不,那里没有。


推荐阅读