2015-05-29 72 views
0

我使用pycuda緩衝接口和我編譯時收到此錯誤信息我寫這個程序類型錯誤:「numpy.uint64」沒有

etat=np.zeros(XBLOCK * YBLOCK * XGRID * YGRID,dtype=np.uint) 
compteur_init=np.uint(0) 
clef_utilisateur=np.uint(SEED) 
config=clef_utilisateur 

compteur_init_gpu = cuda.mem_alloc(compteur_init.nbytes) 
etat_init_gpu=cuda.mem_alloc(etat.nbytes) 
cuda.memcpy_htod(compteur_init_gpu, compteur_init) 
cuda.memcpy_htod(etat_gpu, etat) 

'numpy.uint64' does not have the buffer interface 

是什麼意思就是

+0

看起來像示例代碼there'a一個錯字,我相信你的意思'cuda.memcpy_htod(etat_init_gpu,政變)',注意「_init_」位。 –

+0

是的,對不起,我已經編輯的代碼 – SOCKet

+0

的代碼似乎工作,當我把在評論這些線路 'compteur_init_gpu = cuda.mem_alloc(compteur_init.nbytes) cuda.memcpy_htod(compteur_init_gpu,compteur_init)' 所以我想錯誤來自變量compteur_init – SOCKet

回答

1

最後,我已經解決了這個問題與模塊gpuarray

import pycuda.gpuarray as gpuarray 
etat=np.zeros(XBLOCK * YBLOCK * XGRID * YGRID,dtype=np.uint) 
etat_gpu= gpuarray.to_gpu(etat) 

kern(etat_gpu,np.uint(10),block=(XBLOCK,YBLOCK,1),grid=(XGRID,YGRID,1))