gpt4 book ai didi

c++ - 是否存在一些 thrust::device_vector 等效库,以在 CUDA 内核中使用?

转载 作者:行者123 更新时间:2023-11-30 02:07:15 54 4
gpt4 key购买 nike

thrust::device_vector 的自动内存管理非常有用,唯一的缺点是无法在内核代码中使用它。

我在 Internet 上查看过,刚刚发现 vector 库,例如 thrust,它处理来自主机代码的设备内存。是否存在任何内核 vector 库?如果没有,拥有这样一个图书馆是不是一个坏主意?

最佳答案

可以编写这样的库,但效率很低。

确实,thrust::device_vector 与 thrust::host_vector 或 std::vector 的唯一区别在于它在设备而不是主机上分配内存。大小调整算法相同,并在主机上运行。

调整大小的逻辑非常简单,但涉及分配/释放内存和复制数据。在多线程设置中,每次线程调整其大小时都必须锁定整个 vector - 由于复制,这可能会很长。

在将元素附加到 vector 的内核的情况下,同步机制实际上会序列化工作,因为一次只允许一个线程调整大小。因此,您的代码将以单个设备处理器的速度运行,减去(相当大的)同步开销。这可能比 CPU 实现慢很多。

关于c++ - 是否存在一些 thrust::device_vector 等效库,以在 CUDA 内核中使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8053614/

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