您的位置:首页 > 编程语言

mxnet代码剖析之--Storage篇

2016-04-11 10:09 471 查看
/// Storage manager across multiple devices

struct Handle

void* dptr; /// Pointer to the data.

size_t size; /// Size of the storage.

Context ctx; /// Context information about device and ID.

/// Base storage manager interface

class StorageManager

Alloc()

Free()

class NaiveStorageManager, PooledStorageManager

class CPUDeviceStorage, GPUDeviceStorage, PinnedMemoryStorage

class LazyAllocArray: Get element of corresponding index, if it is not created create by creator

class MXNET_API Storage

1 mxnet存储管理器

2 存储由内存地址,大小,设备属性构成,分别对应Handle: dptr, size, ctx

3 存储管理器主要负责内存申请,内存销毁操作

4 实现内存复用,节省内存new/delete引起的开销,主要由PooledStorageManager类完成

5 存储设备包括GPU, CPU, PinnedCPU, 具体实现分别由GPUDeviceStorage, CPUDeviceStorage与PinnedMemoryStorage实现

6 优点:封装内存管理类,尤其是pooled管理策略!结合其LazyAllocArray功能,可以实现内存复用,减少内存new/delete 操作
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: