这是我第一次尝试在python中使用cuda,所以我已经跟进了一些关于如何设置它的教程......但我最终得到了这个错误:
numba.cuda.cudadrv.error.CudaSupportError: Error at driver init:
CUDA is disabled due to setting NUMBA_DISABLE_CUDA=1 in the environment, or because CUDA is unsupported on 32-bit systems.:
我运行x64 Windows版本,我也检查了python版本(也是在x64上)。我使用的是Nvidia gtx 960m,带有最新的驱动程序。
我已经尝试搜索此问题超过两周了,但没有找到任何可行的解决方案
此外,我将在此处插入代码,但我不认为这是问题所在:
@vectorize(["float32(float32, float32)"], target='cuda')
def test(a,b):
return a+b
def main():
a=np.arange(1,10,dtype=np.float32)
b=np.arange(11,20,dtype=np.float32)
c=np.zeros(9, dtype=np.float32)
c=test(a,b)
print(c)
main()
答案 0 :(得分:2)
我是runnig [原文如此] x64 Windows版本,我[sic]也检查了python版本(也是在x64上)。我使用的是Nvidia gtx 960m,带有最新的驱动程序。
尽管有这样的断言,你的Python解释器仍然是32位。这在print(tuple.__itemsize__)
返回4的注释中得到了证实。对于64位Python解释器,它将返回8。
您可以清楚地看到here NUMBA_DISABLE_CUDA
只能在Numba中设置(如果在主机环境中设置),或者使用32位Python解释器,由{的值确定在Numba内{1}}。在这种情况下是后者。
我已经尝试搜索此问题超过两周了,但没有找到任何可行的解决方案
没有解决方案,因为任何足以与Numba一起使用的CUDA版本都不支持Windows上的32位环境。这在很久以前在Windows平台上已被弃用。您唯一的办法是使用64位Python解释器和相关库安装本机64位版本的Anaconda。