设备管理
CUDA 内置目标弃用通知
Numba 内置的 CUDA 目标已弃用,后续开发已移至 NVIDIA numba-cuda 软件包。请参阅 内置 CUDA 目标弃用和维护状态。
对于多 GPU 机器,用户可能希望选择要使用的 GPU。默认情况下,CUDA 驱动程序将最快的 GPU 选作设备 0,这是 Numba 使用的默认设备。
除非您使用的系统托管/提供多个支持 CUDA 的 GPU,否则本页介绍的功能通常不值得关注。
设备选择
如果需要,设备选择必须在任何 CUDA 功能使用之前完成。
from numba import cuda
cuda.select_device(0)
设备可以通过以下方式关闭
cuda.close()
用户可以随后使用另一个设备创建新上下文。
cuda.select_device(1) # assuming we have 2 GPUs
- numba.cuda.select_device(device_id)
为选定的 *device_id* 创建一个新的 CUDA 上下文。*device_id* 应该是设备的编号(从 0 开始;设备顺序由 CUDA 库决定)。上下文与当前线程关联。Numba 目前每个线程只允许一个上下文。
如果成功,此函数将返回一个设备实例。
- numba.cuda.close()
显式关闭当前线程中的所有上下文。
注意
编译后的函数与 CUDA 上下文关联。这使得关闭和创建新设备不是很有用,但在机器具有多个 GPU 时,它对于选择要使用的设备肯定有用。
设备列表
设备列表是系统中所有 GPU 的列表,可以对其进行索引以获取一个上下文管理器,该管理器可确保在所选 GPU 上执行。
- numba.cuda.gpus
- numba.cuda.cudadrv.devices.gpus
numba.cuda.gpus
是 _DeviceList
类的实例,从中也可以检索当前的 GPU 上下文
- class numba.cuda.cudadrv.devices._DeviceList
- property current
返回活动设备,如果没有活动设备则返回 None