gpt4 book ai didi

pycuda - 如何使用 pycuda 将二维数组输入内核?

转载 作者:行者123 更新时间:2023-12-04 00:44:32 25 4
gpt4 key购买 nike

我创建了一个形状为 (64, 128) 的 float32 numpy 数组,我想将它发送到 GPU。我怎么做?我的内核函数应该接受哪些参数? float** myArray?

我试过直接将数组原样发送到 GPU,但 pycuda 提示正在访问对象...

最佳答案

numpy/PyCUDA 中的二维数组默认按行主序存储在倾斜的线性内存中。所以你只需要有一个像这样的内核:

__global__
void kernel(float* a, int lda, ...)
{
int r0 = threadIdx.y + blockDim.y * blockIdx.y;
int r1 = threadIdx.x + blockDim.x * blockIdx.x;

float val = a[r0 + r1*lda];

....
}

访问通过引用从 Python 传递给内核的 numpy ndarray 或 PyCUDA gpuarray

关于pycuda - 如何使用 pycuda 将二维数组输入内核?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13282596/

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