3.8。设备管理
原文: http://numba.pydata.org/numba-doc/latest/cuda/device-management.html
对于多 GPU 机器,用户可能想要选择要使用的 GPU。默认情况下,CUDA 驱动程序选择最快的 GPU 作为设备 0,这是 Numba 使用的默认设备。
除非使用托管/提供多个支持 CUDA 的 GPU 的系统,否则此页面上介绍的功能通常不感兴趣。
3.8.1。设备选择
如果需要,必须在使用任何 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 时,选择使用哪个设备当然很有用。
3.9。设备列表
设备列表是系统中所有 GPU 的列表,可以编制索引以获取确保在所选 GPU 上执行的上下文管理器。
numba.cuda.gpus
numba.cuda.cudadrv.devices.gpus
gpus
是_DeviceList
类的一个实例,也可以从中检索当前的 GPU 上下文:
class numba.cuda.cudadrv.devices._DeviceList
current
如果没有活动设备,则返回活动设备或 None