【架构分析】DALI 源码分析
目录概述编程模型软件架构源码分析核心类图注册OPDALI初始化执行计算图概述Nvidia Data Loading Library( 简称DALI ) 是Nvidia提供的开源库,用于深度学习中便捷的执行图形、视频、语音等各种数据类型的处理,本文基于DALI 1.9版本 链接对软件架构和源码做分析编程模型DALI的应用程序编程模型和Tensorflow非常类似 - 构建计算图和节点,在DALI中
·
目录
概述
Nvidia Data Loading Library ( 简称DALI ) 是Nvidia提供的开源库,用于深度学习中便捷的执行图形、视频、语音等各种数据类型的处理,本文基于DALI 1.9版本 链接 对软件架构和源码做分析
编程模型
DALI的应用程序编程模型和Tensorflow非常类似 - 构建计算图和节点,在DALI中称为创建需要执行具体操作的Operator,并将Operator连接起来称为Pipeline,然后Build和Run Pipeline得到计算结果
软件架构
软件架构分为几层
- Python层提供对应编程的API
- Native层的backend负责初始化和注册Python API的实现
- libdali 层实现构建计算图、节点、执行计算图的基础设施代码逻辑
- libdali_operators提供了真正处理数据的OP实现,包括CPU的实现,基于各种第三方库的API实现
- libdali_kernels通过CUDA实现了部分OP的计算
源码分析
核心类图
计算图、执行器、Operator,以及管理注册Operator的Registry之间的类关系
注册OP
上图展示了一个OP如何被注册到DALI 框架中的核心时序
DALI初始化
上图展示了应用使用DALI框架的初始化核心时序
执行计算图
上图展示了build和run pipeline的核心时序
更多推荐
已为社区贡献1条内容
所有评论(0)