2015-05-29 123 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)) 
相关问题