From f5843ac7533f76ee609371215a3b576abc1ed32d Mon Sep 17 00:00:00 2001 From: yuhanshi Date: Tue, 8 Nov 2022 11:58:12 +0800 Subject: [PATCH] docs: Move figures to folder and add readme to test Signed-off-by: yuhanshi --- README_zh.md | 3 +- example/deep_learning_framework/README_zh.md | 4 +- example/drivers/README_zh.md | 4 +- .../Flowchart.png | Bin .../Principle.png | Bin {example/drivers => figures}/arch_diagram.png | Bin {example/drivers => figures}/dev_flow.png | Bin .../neural_network_runtime_add_op_model.png | Bin .../neural_network_runtime_intro.png | Bin neural-network-runtime-guidelines.md | 2 +- test/README.md | 67 ++++++++++++++++++ 11 files changed, 74 insertions(+), 6 deletions(-) rename {example/deep_learning_framework => figures}/Flowchart.png (100%) rename {example/deep_learning_framework => figures}/Principle.png (100%) rename {example/drivers => figures}/arch_diagram.png (100%) rename {example/drivers => figures}/dev_flow.png (100%) rename neural_network_runtime_add_op_model.png => figures/neural_network_runtime_add_op_model.png (100%) rename neural_network_runtime_intro.png => figures/neural_network_runtime_intro.png (100%) create mode 100644 test/README.md diff --git a/README_zh.md b/README_zh.md index ac837ab..a728082 100644 --- a/README_zh.md +++ b/README_zh.md @@ -11,13 +11,14 @@ Neural Network Runtime与MindSpore Lite使用MindIR统一模型的中间表达 通常,AI应用、AI推理引擎、Neural Network Runtime处在同一个进程下,芯片驱动运行在另一个进程下,两者之间需要借助进程间通信(IPC)传递模型和计算数据。Neural Network Runtime根据HDI接口实现了HDI客户端,相应的,芯片厂商需要根据HDI接口实现并开放HDI服务。 **图1** Neural Network Runtime架构图 -!["Neural Network Runtime架构图"](neural_network_runtime_intro.png) +!["Neural Network Runtime架构图"](./figures/neural_network_runtime_intro.png) ## 目录 ```text /foundation/ai/neural_network_runtime ├── common # 公共功能 +├── figures # README引用的图片目录 ├── example # 开发样例目录 │   ├── deep_learning_framework # 应用/推理框架开发样例存放目录 │   └── drivers # 设备驱动开发样例存放目录 diff --git a/example/deep_learning_framework/README_zh.md b/example/deep_learning_framework/README_zh.md index 7ab304c..418a557 100644 --- a/example/deep_learning_framework/README_zh.md +++ b/example/deep_learning_framework/README_zh.md @@ -28,7 +28,7 @@ **图1** 运作机制 -![运作机制图](./Principle.png) +![运作机制图](../../figures/Principle.png) 以TensorFlow lite的MobileNetv2模型进行标签分类任务为例,实现调用NNRt API在指定芯片上加速推理,主要有以下三个部分: 1. 通过TFLite delegate机制,创建NNRt Delegate,并接入TFLite的Hardware Accelerator中。 @@ -39,7 +39,7 @@ **图2** 开发流程 -![开发流程图](./Flowchart.png) +![开发流程图](../../figures/Flowchart.png) 主要开发步骤包括命令行参数解析、创建NNRt Delegate、TFLite nodes的替换、tensors的内存分配、执行推理、结果查看等,具体如下: 1. 解析运行demoe的命令,初始化模型推理所需参数和创建NNRt Delegate的options。 diff --git a/example/drivers/README_zh.md b/example/drivers/README_zh.md index bf261a1..db2bf1b 100644 --- a/example/drivers/README_zh.md +++ b/example/drivers/README_zh.md @@ -26,7 +26,7 @@ NNRt通过HDI接口实现与设备芯片的对接,由HDI接口实现跨进程 **图1** NNRt架构图 -![架构图](./arch_diagram.png) +![架构图](../../figures/arch_diagram.png) 整个架构主要分为三层,AI应用在应用层,AI推理框架和神经网络运行时在系统层,设备服务在芯片层。AI应用要在专用加速芯片上完成模型推理,需要经过AI推理框架和神经网络运行时才能调用到底层的芯片设备,而神经网络运行时就是负责适配底层各种芯片设备,它开放了标准统一的南向接口,众多的第三方芯片设备都可以通过HDI接口接入OHOS。 @@ -43,7 +43,7 @@ NNRt通过HDI接口实现与设备芯片的对接,由HDI接口实现跨进程 **图2** NNRt适配流程 -![开发流程](./dev_flow.png) +![开发流程](../../figures/dev_flow.png) ### 开发步骤 开发者具体可通过以下步骤在芯片侧对接NNRt: diff --git a/example/deep_learning_framework/Flowchart.png b/figures/Flowchart.png similarity index 100% rename from example/deep_learning_framework/Flowchart.png rename to figures/Flowchart.png diff --git a/example/deep_learning_framework/Principle.png b/figures/Principle.png similarity index 100% rename from example/deep_learning_framework/Principle.png rename to figures/Principle.png diff --git a/example/drivers/arch_diagram.png b/figures/arch_diagram.png similarity index 100% rename from example/drivers/arch_diagram.png rename to figures/arch_diagram.png diff --git a/example/drivers/dev_flow.png b/figures/dev_flow.png similarity index 100% rename from example/drivers/dev_flow.png rename to figures/dev_flow.png diff --git a/neural_network_runtime_add_op_model.png b/figures/neural_network_runtime_add_op_model.png similarity index 100% rename from neural_network_runtime_add_op_model.png rename to figures/neural_network_runtime_add_op_model.png diff --git a/neural_network_runtime_intro.png b/figures/neural_network_runtime_intro.png similarity index 100% rename from neural_network_runtime_intro.png rename to figures/neural_network_runtime_intro.png diff --git a/neural-network-runtime-guidelines.md b/neural-network-runtime-guidelines.md index f6b37f6..5966c16 100644 --- a/neural-network-runtime-guidelines.md +++ b/neural-network-runtime-guidelines.md @@ -7,7 +7,7 @@ Neural Network Runtime作为AI推理引擎和加速芯片的桥梁,为AI推理 本文以图1展示的`Add`单算子模型为例,介绍Neural Network Runtime的开发流程。`Add`算子包含两个输入、一个参数和一个输出,其中的`activation`参数用于指定`Add`算子中激活函数的类型。 **图1** Add单算子网络示意图 -!["Add单算子网络示意图"](neural_network_runtime_add_op_model.png) +!["Add单算子网络示意图"](./figures/neural_network_runtime_add_op_model.png) ## 环境准备 diff --git a/test/README.md b/test/README.md new file mode 100644 index 0000000..d656164 --- /dev/null +++ b/test/README.md @@ -0,0 +1,67 @@ +# 测试用例运行指导 + +本指导以RK3568为例,介绍Neural Network Runtime测试用例的执行流程: + +1. 编译测试用例。 + + 调用以下命令编译 Neural Network Runtime 单元测试用例和系统测试用例。 + + ```shell + ./build.sh --product-name rk3568 --ccache --build-target nnrt_test_target --jobs 4 + ``` + + 编译完成后,在`out/rk3568/tests`目录下找到单元测试用例和系统测试用例,如下图所示: + + ```text + /out/rk3568/tests + ├── systemtest # 系统测试用例存放目录 + │   └── neural_network_runtime # Neural Network Runtime系统测试用例存放目录 + └── unittest # 单元测试用例存放目录 +    └── neural_network_runtime # Neural Network Runtime测试单元用例存放目录 + ``` + +2. 上传测试用例。 + + 执行以下代码,将测试用例推送到设备。 + + ```shell + hdc_std shell "mkdir /data/local/tmp/nnrt_test" + hdc_std file send ./out/rk3568/tests/unittest/neural_network_runtime/. /data/local/tmp/nnrt_test + hdc_std file send ./out/rk3568/tests/systemtest/neural_network_runtime/. /data/local/tmp/nnrt_test + ``` + +3. 执行单元测试用例。 + + 以`NeuralNetworkRuntimeTest`为例,执行单元测试。 + + ```shell + hdc_std shell "chmod 755 /data/local/tmp/nnrt_test/NeuralNetworkRuntimeTest" + hdc_std shell "/data/local/tmp/nnrt_test/NeuralNetworkRuntimeTest" + ``` + + 如果用例全部通过,应该得到以下输出: + + ```text + [==========] 106 tests from 1 test suite ran. (101ms total) + [ PASSED ] 106 tests. + ``` + +4. 执行系统测试用例(可选)。 + + 以`End2EndTest`为例,执行以下指令,运行系统测试。 + + ```shell + hdc_std shell "chmod 755 /data/local/tmp/nnrt_test/End2EndTest" + hdc_std shell "/data/local/tmp/nnrt_test/End2EndTest" + ``` + + 如果用例全部通过,应该得到以下输出: + + ```text + [==========] 8 tests from 1 test suite ran. (648ms total) + [ PASSED ] 8 tests. + ``` + + > **说明:** + > + > 系统测试需要在提供Neural Network Runtime加速芯片驱动的设备上执行,加速芯片驱动的开发请参考[Neural Network Runtime设备开发指导](./example/drivers/README_zh.md)。 -- Gitee