Python Numbapro停止在gpu上工作
我正在尝试运行以下程序:Python Numbapro停止在gpu上工作,python,cuda,numba,numba-pro,Python,Cuda,Numba,Numba Pro,我正在尝试运行以下程序: import numpy as np from timeit import default_timer as timer from numbapro import vectorize @vectorize(["float32(float32, float32)"], target='gpu') def VectorAdd(a,b): return a + b def main(): N = 32e6 A = np.
import numpy as np
from timeit import default_timer as timer
from numbapro import vectorize
@vectorize(["float32(float32, float32)"], target='gpu')
def VectorAdd(a,b):
return a + b
def main():
N = 32e6
A = np.ones(N, dtype=np.float32)
B = np.ones(N, dtype=np.float32)
C = np.zeros(N, dtype=np.float32)
start = timer()
C = VectorAdd(A, B, C)
vectoradd_time = timer() - start
print "C[:5] = " + str(C[:5])
print "C[-5:] = " + str(C[-5:])
print "VectorAdd took %f seconds" % vectoradd_time
if __name__ == '__main__':
main()
我第一次运行它时,它运行得很好。但后来我尝试安装nvprof和一些附加库,从那以后我得到了以下错误:
Traceback (most recent call last):
File "test.py", line 6, in <module>
@vectorize(["float32(float32, float32)"], target='gpu')
File "/home/matthias/anaconda/lib/python2.7/site-packages/numba/npyufunc/decorators.py", line 68, in wrap
vec.add(fty)
File "/opt/anaconda1anaconda2anaconda3/lib/python2.7/site-packages/numbapro/cudavec/vectorizers.py", line 78, in add
File "/home/matthias/anaconda/lib/python2.7/site-packages/numba/cuda/decorators.py", line 89, in kernel_jit
kernel.bind()
File "/home/matthias/anaconda/lib/python2.7/site-packages/numba/cuda/compiler.py", line 234, in bind
self._func.get()
File "/home/matthias/anaconda/lib/python2.7/site-packages/numba/cuda/compiler.py", line 181, in get
cuctx = get_context()
File "/home/matthias/anaconda/lib/python2.7/site-packages/numba/cuda/cudadrv/devices.py", line 126, in get_context
return _get_device(devnum=devnum).context
File "/home/matthias/anaconda/lib/python2.7/site-packages/numba/cuda/cudadrv/devices.py", line 118, in _get_device
_gpustack.push(get_gpu(devnum))
File "/home/matthias/anaconda/lib/python2.7/site-packages/numba/cuda/cudadrv/devices.py", line 108, in get_gpu
return gpus[i]
File "/home/matthias/anaconda/lib/python2.7/site-packages/numba/cuda/cudadrv/devices.py", line 34, in __getitem__
return self._gpus[item]
File "/home/matthias/anaconda/lib/python2.7/site-packages/numba/cuda/cudadrv/devices.py", line 23, in _gpus
self._tls.gpus = self._init_gpus()
File "/home/matthias/anaconda/lib/python2.7/site-packages/numba/cuda/cudadrv/devices.py", line 28, in _init_gpus
for num in range(driver.get_device_count()):
File "/home/matthias/anaconda/lib/python2.7/site-packages/numba/cuda/cudadrv/driver.py", line 256, in get_device_count
self.cuDeviceGetCount(byref(count))
File "/home/matthias/anaconda/lib/python2.7/site-packages/numba/cuda/cudadrv/driver.py", line 201, in __getattr__
self.initialize()
File "/home/matthias/anaconda/lib/python2.7/site-packages/numba/cuda/cudadrv/driver.py", line 182, in initialize
raise CudaSupportError("Error at driver init: \n%s:" % e)
numba.cuda.cudadrv.error.CudaSupportError: Error at driver init:
Call to cuInit results in CUDA_ERROR_NO_DEVICE:
回溯(最近一次呼叫最后一次):
文件“test.py”,第6行,在
@矢量化([“float32(float32,float32)”],target='gpu')
文件“/home/matthias/anaconda/lib/python2.7/site packages/numba/npyufunc/decorators.py”,第68行,换行
矢量相加(fty)
文件“/opt/anaconda1anaconda2anaconda3/lib/python2.7/site packages/numbapro/cudavec/vectoriers.py”,第78行,添加
kernel_jit中的文件“/home/matthias/anaconda/lib/python2.7/site packages/numba/cuda/decorators.py”,第89行
kernel.bind()
文件“/home/matthias/anaconda/lib/python2.7/site packages/numba/cuda/compiler.py”,第234行,在bind中
self._func.get()
get中第181行的文件“/home/matthias/anaconda/lib/python2.7/site packages/numba/cuda/compiler.py”
cuctx=获取上下文()
get_上下文中的文件“/home/matthias/anaconda/lib/python2.7/site packages/numba/cuda/cudadrv/devices.py”,第126行
返回_get_设备(devnum=devnum).context
文件“/home/matthias/anaconda/lib/python2.7/site packages/numba/cuda/cudadrv/devices.py”,第118行,在设备中
_gpustack.push(获取gpu(devnum))
get_gpu中的文件“/home/matthias/anaconda/lib/python2.7/site packages/numba/cuda/cudadrv/devices.py”,第108行
返回GPU[i]
文件“/home/matthias/anaconda/lib/python2.7/site packages/numba/cuda/cudadrv/devices.py”,第34行,在__
返回自我。\u GPU[项目]
文件“/home/matthias/anaconda/lib/python2.7/site packages/numba/cuda/cudadrv/devices.py”,第23行,在GPU中
self.\u tls.gpus=self.\u init\u gpus()
文件“/home/matthias/anaconda/lib/python2.7/site packages/numba/cuda/cudadrv/devices.py”,第28行,在_init_gpus中
对于范围内的num(driver.get\u device\u count()):
文件“/home/matthias/anaconda/lib/python2.7/site packages/numba/cuda/cudadrv/driver.py”,第256行,在获取设备计数中
self.cuDeviceGetCount(byref(count))
文件“/home/matthias/anaconda/lib/python2.7/site packages/numba/cuda/cudadrv/driver.py”,第201行,位于__
self.initialize()
文件“/home/matthias/anaconda/lib/python2.7/site packages/numba/cuda/cudadrv/driver.py”,第182行,在初始化中
raise CudaSupportError(“驱动程序初始化时出错:\n%s:“%e”)
numba.cuda.cudadrv.error.CudaSupportError:驱动程序初始化时出错:
调用cuInit会导致CUDA\u错误\u无\u设备:
卸载这些库没有任何帮助。Stein
在过去的一周里,我也遇到了类似的问题。我将我的Anaconda环境从2.7升级到3.4,使用numbapro的代码开始失败,出现了相同的“调用cuInit导致CUDA\u错误\u无设备”
我不确定我的升级是否与你的相同,但我只是以防万一。(我还应该提到我在Ubuntu上使用的是ARM处理器。)
我下载了cuda_6.5.14_linux_aarch64_native.run安装程序,重新启动到Ubuntu命令行,并安装了这些最新的驱动程序。重新启动到X后,我打开iPython并成功运行以下操作:
进口麻木
numbapro.检查
我希望这会有所帮助。虽然这与您当前收到的错误无关,但请注意,在调用VectorAdd的行中,您的代码中也有一个错误 你有:
C = VectorAdd(A, B, C)
应该是:
C = VectorAdd(A, B)