我正在学习PyCUDA,在浏览pycuda.gpuarray的文档时,我对pycuda.driver.memcpy_htod(也是_dtoh)和pycuda.gpuarray.to_gpu(也是get)函数之间的区别感到困惑。根据gpuarray documentation,。get()。
例如,将self的内容传输到数组或新分配的numpy.ndarray。如果给出了数组,则它必须具有正确的大小(不一定是形状)和dtype。如果没有给出,则pagelocked指定是否为新数组分配了页面锁定。
这是说.get()的实现方式与pycuda.driver.memcpy_dtoh完全相同吗?不知何故,我认为我错误地解释了它。
答案 0 :(得分:5)
pycuda.gpuarray.GPUArray.get()将GPUArray存储为numpy.ndarray。
pycuda.driver.memcpy_dtoh()和朋友在CPU和GPU内存之间复制普通缓冲区,而不对缓冲区中的数据进行任何处理。