由于在环境中设置了NUMBA_DISABLE_CUDA = 1,因此禁用了python-CUDA

时间:2018-05-21 14:29:32

标签: python cuda

这是我第一次尝试在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()

1 个答案:

答案 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。