0
我使用1kB .png
文件(即2048x2048 numpy array
)來測試我的PyCuda
程序,它顯示程序花費了大約1.57s來分配數據並將其複製到設備。cuda - 在分配內存和將數據複製到設備的過程中,PyCuda比純Cuda慢嗎?
這是正常的需要如此長的時間?
我不知道PyCuda
和Cuda C
在分配和memcpy過程中是否有性能差異?
(使用PyCuda內核時依然用C寫的,內核執行時間爲0.17s,所以我覺得它的時間太長做準備。)
分配代碼和memcpy
img_gpu = cuda.mem_alloc(img.nbytes)
cuda.memcpy_htod(img_gpu, img)
result_gpu = cuda.mem_alloc(result.nbytes)
cuda.memcpy_htod(result_gpu, result)
disX = np.array(disX).astype(np.int32)
disY = np.array(disY).astype(np.int32)
disX_gpu = cuda.mem_alloc(disX.nbytes)
cuda.memcpy_htod(disX_gpu, disX)
disY_gpu = cuda.mem_alloc(disY.nbytes)
cuda.memcpy_htod(disY_gpu, disY)