gpt4 book ai didi

python - PyCUDA内存寻址: Memory offset?

转载 作者:行者123 更新时间:2023-12-01 06:11:21 27 4
gpt4 key购买 nike

我在设备上有一大块生成的数据 (A[i,j,k]),但我只需要 A[i,:,:] 的一个“切片”,并且在常规 CUDA 中是这样的可以通过一些指针算术轻松完成。

同样的事情可以在 pycuda 中完成吗?即

cuda.memcpy_dtoh(h_iA,d_A+(i*stride))

显然这是完全错误的,因为没有尺寸信息(除非从目标形状推断),但希望您明白了?

最佳答案

pyCUDA gpuArray 类支持一维数组的切片,但不支持需要跨步的更高维度(尽管它即将到来)。但是,您可以从 gpuarray 成员(它是 pycuda.driver.DeviceAllocation 类型)访问多维 gpuArray 中的底层指针,并从 gpuArray.dtype.itemsize 成员访问大小信息。然后,您可以执行与您想要的相同类型的指针算术,以获得驱动程序 memcpy 函数将接受的内容。

它不是很 Pythonic,但它确实有效(或者至少当我去年进行大量 pyCUDA + MPI 黑客攻击时它有效)。

关于python - PyCUDA内存寻址: Memory offset?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5720376/

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