gpt4 book ai didi

python - 交换 PyCuda DeviceAllocation 对象是一个坏主意吗?

转载 作者:行者123 更新时间:2023-11-30 22:36:51 24 4
gpt4 key购买 nike

假设我们使用两个调用在设备上分配了相同数量的内存,如下所示:

pointerA = cuda_driver.mem_alloc(myArray.nbytes)
pointerB = cuda_driver.mem_alloc(myArray.nbytes)

然后我们将两个 DeviceAllocation 对象的相同数据复制到设备上。

cuda_driver.memcpy_htod(pointerA, myArray)
cuda_driver.memcpy_htod(pointerB, myArray)

交换两个 DeviceAllocation 对象是不是一个坏主意?例如,它们可以像这样交换:

tempPointer = pointerA
pointerA = pointerB
pointerB = tempPointer

最佳答案

不,这不是一个坏主意,恰恰相反。 PyCUDA 中的指针对象交换得到完全支持,并且通常是正确的做法。

一般来说,CUDA 代码中的大多数设备到设备的副本都是不必要的,可以通过指针交换来替​​换。唯一不起作用的情况是设备到设备传输仅将部分源内存复制到目标内存(反之亦然)。

关于python - 交换 PyCuda DeviceAllocation 对象是一个坏主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44034221/

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