NVDLA Loadable文件解析

本文严重依赖LeiWang1999的NVDLA Parser | Loadable Analysis

首先,安装flatbuffers(1.6.0)

git clone https://github.com/google/flatbuffers.git
git checkout v1.6.0
cmake -G "Unix Makefiles"
make 
make install 

并生成解析所需的loadable_generated.h文件(loadable.fbs由nvdla/sw提供)

flatc -c ./external/loadable.fbs

编译parser代码

mkdir build
cd build
cmake ..

进入/build/examples文件夹,运行make命令生成解析loadable的程序

cd ./examples
make

注意!待解析的loadable文件位置会在每一个example的c++代码的开头出定义(如下面代码所示),如需解析自己生成的loadable文件,需在对应位置更改路径

const std::string filename = "../../data/lenet-mnist-caffe/fast-math.nvdla";

可运行的应用程序:

  • parse_read_version:不明白是用来做什么的,这里代表的不是使用的flatbuffers的版本,估计是compiler开发的版本?。
  • parse_read_task_list:任务列表,就两个任务,第一个是DLA、第二个是EMU,应该分别代表硬件加速核和仿真器,tasklisk的address_list代表了每个task访问地址的列表。
  • parse_read_memory_list:内存列表,我们可以通过task_list->address_list拿到addres_list的index,然后通过address_list->memory_id找到读取哪一块内存。
  • parse_read_address_list:地址列表。
  • parse_read_event_list:在runtime里似乎没有用到。
  • parse_read_blobs:存储数据的地方,分析blob的每个字段都有name,对应了memory里的name。。
  • parse_read_tensor_desc_list:定义了输入层和输出层的tensor描述。
  • parse_read_reloc_list:不知道干嘛的。 parse_read_submit_list:也不知道干嘛的。

参考资料
NVDLA Parser | Loadable Analysis

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值