| # 设备(Device) |
| |
| 设备抽象代表了任何基于内存和计算单元的硬件设备。所有[Tensor操作](tensor.html)由寄宿的设备进行调度以执行。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设备。 |
| |
| --- |
| |
| 下面的代码展示了创建设备的例子: |
| |
| ``` python |
| 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 |
| ``` |