Numba GPU 支持具有计算能力 2.1 的 NVIDIA

Numba GPU support for NVIDIA with compute capability 2.1

我似乎无法理解 numba 对 cuda 支持的要求。在这里 (https://numba.pydata.org/numba-doc/latest/cuda/overview.html) it states that I need compute capability higher than 2.0, I have an NVIDIA GeForce 820M which has 2.1, so I would think that's ok, but here (https://numba.readthedocs.io/en/stable/user/installing.html) 它指出我需要 3.0 或更高版本,即使这样它也已停产。另外,当我从命令提示符 运行 "nvcc --version" 我得到

nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2022 NVIDIA Corporation Built on Tue_May__3_19:00:59_Pacific_Daylight_Time_2022 Cuda compilation tools, release 11.7, V11.7.64 Build cuda_11.7.r11.7/compiler.31294372_0

但是当 运行ning

时我一直收到错误
from numba import cuda
gpu = cuda.get_current_device()

如:

CudaDriverError: driver missing function: cuDeviceGetUuid. Requires CUDA 9.2 or above.

我做错了什么?

这道题有很多困惑,我们来分解一下。

您的 GPU 非常旧。太旧了,以至于在 2017 年已弃用并从 CUDA 中删除了对它的支持。没有现代版本的 Numba 会支持它。

In here (https://numba.pydata.org/numba-doc/latest/cuda/overview.html) it states that I need compute capability higher than 2.0

我认为 Numba 从未真正支持计算 2.x 设备。它依赖于 libnvvm(NVIDIA 的 lvvm 到 PTX 编译器库)并且只支持计算 3.x 和更新的设备,IIRC。但无论如何,对您的 GPU 的支持(如果存在的话)很久以前就已从 CUDA(以及扩展名 Numba)中删除。

when I run "nvcc --version" from the command prompt I get

nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2022 NVIDIA Corporation Built on Tue_May__3_19:00:59_Pacific_Daylight_Time_2022 Cuda compilation tools, release 11.7, V11.7.64 Build cuda_11.7.r11.7/compiler.31294372_0

but I keep getting an error when running

您的nvcc版本与您的GPU是否受支持以及Numba能否正常工作无关。 CUDA 11.7 不支持您的 GPU。据我所知,CUDA 8.0 是最后一个支持计算 2.1 的 CUDA 版本。

but I keep getting an error when running

from numba import cuda gpu = cuda.get_current_device()

as:

CudaDriverError: driver missing function: cuDeviceGetUuid. Requires CUDA 9.2 or above.

这是因为您非常老的GPU需要非常老的驱动系列,而该驱动系列不支持CUDA 9.0发布后添加到CUDA的任何功能。 Numba 内部人员告诉您他们无法工作,因为您的驱动程序太旧了。但是没有适用于您的 GPU 的更新驱动程序。

总而言之,您的 GPU 很旧。它没有 CUDA 支持。它没有 Numba 支持(并且可能从来没有任何 Numba 支持)。您唯一的解决方案是使用不同的 GPU。