我正在学习PyCUDA,在浏览pycuda.gpuarray的文档时,我对pycuda.driver.memcpy_htod(也为_dtoh)与pycuda.gpuarray.to_gpu(也为get)函数之间的区别感到困惑。根据gpuarray documentation,.get()。
例如,将self的内容传输到array或新分配的numpy.ndarray中。如果给出了array,则它必须具有正确的大小(不一定是shape)和dtype。如果未给出,则页面锁指定是否将新数组分配为页面锁。
这是说.get()的实现方式与pycuda.driver.memcpy_dtoh完全相同吗?不知何故,我认为我误解了它。
最佳答案
pycuda.gpuarray.GPUArray.get()将GPUArray存储为numpy.ndarray。
pycuda.driver.memcpy_dtoh()和 friend 在CPU和GPU内存之间复制普通缓冲区,而不对缓冲区中的数据进行任何处理。
关于numpy - Pycuda中的memcpy_htod和to_gpu之间的区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20034808/