gpt4 book ai didi

c++ - 如何将矩阵连续存储在 GPU 内存中并在需要时使用它?

转载 作者:太空宇宙 更新时间:2023-11-04 11:57:39 25 4
gpt4 key购买 nike

我正在尝试通过 CUDA 并行化某些函数,该函数被调用了很多次。每次它处理相同的矩阵。我想将该矩阵存储在 GPU 内存中,当函数被调用时,我想将 vector 上传到 GPU 并将其乘以矩阵并返回结果。我更喜欢 C++ 模板风格,所以 thrust 有更高的优先级。

请向我推荐一些函数来执行此操作,如果可能的话,请推荐一些小示例。我不提供代码,不是因为它是 secret ,而是因为它的复杂性和巨大的规模。

最佳答案

对于 thrust,device_vector、device_ptr 等就是您要查找的内容。

From thrust::device_vector to raw pointer and back?

但为了高效地对 GPU 进行编程,我建议还熟悉 CUDA 内存类型:

http://www.cvg.ethz.ch/teaching/2011spring/gpgpu/cuda_memory.pdf (pdf 警告)

您要查找的内存类型是“全局内存”。请记住,所有这些内存都存储在 GPU 卡上,而不是 CPU 卡上,因此它仅可用于内核和设备函数调用。

设备指针上的所有仿函数只需要使用 device 标签进行编译(例如一元操作):

template <typename T>
struct square
{
__host__ __device__
T operator()(const T& x) const {
return x * x;
}
};

关于c++ - 如何将矩阵连续存储在 GPU 内存中并在需要时使用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15479845/

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