设备(Device)

设备抽象代表了任何基于内存和计算单元的硬件设备。所有Tensor操作由寄宿的设备进行调度以执行。Tensor内存也由设备内存管理器进行管理。因此,内存优化和执行都由Device类进行实现。

特定设备

目前,SINGA有三种Device实现,

  1. CudaGPU: 在Nvidia GPU卡上运行Cuda代码
  2. CppCPU:在CPU上运行Cpp代码
  3. OpenclGPU: GPU卡上运行OpenCL代码

Python API

此脚本包括Device类和它的子类,用户可以调用singa::Device和它的方法。


singa.device.create_cuda_gpus(num)

创建一个列表的CudaGPU设备。

参数:

  • num(int) - 创建的设备数目

返回值: 一个列表CudaGPU设备


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