设备(Device)¶
设备抽象代表了任何基于内存和计算单元的硬件设备。所有Tensor操作由寄宿的设备进行调度以执行。Tensor内存也由设备内存管理器进行管理。因此,内存优化和执行都由Device类进行实现。
特定设备¶
目前,SINGA有三种Device实现,
CudaGPU: 在Nvidia GPU卡上运行Cuda代码
CppCPU:在CPU上运行Cpp代码
OpenclGPU: GPU卡上运行OpenCL代码
Python API¶
此脚本包括Device类和它的子类,用户可以调用singa::Device和它的方法。
singa.device.create_cuda_gpus_on(device_ids)¶
创建一个列表的CudaGPU设备。
参数:
device_ids(list) - 一个列表的显卡ID
返回值: 一个列表CudaGPU设备
singa.device.get_default_device()¶
获取默认的CppCPU设备。
下面的代码展示了创建设备的例子:
from singa import device
cuda = device.create_cuda_gpu_on(0) # use GPU card of ID 0
host = device.get_default_device() # get the default host device (a CppCPU)
ary1 = device.create_cuda_gpus(2) # create 2 devices, starting from ID 0
ary2 = device.create_cuda_gpus([0,2]) # create 2 devices on ID 0 and 2