This commit is contained in:
luoliang
2022-07-26 15:44:06 +08:00
parent e51a341661
commit c3e709b788
5 changed files with 6 additions and 177 deletions

View File

@@ -129,9 +129,10 @@
1. 在配置好AScend之后,用户需要官网下载好opencv库和本模块(acl),保证acl模块和opencv在同一级目录下
2. 进入acl目录将run.sh脚本拷贝或者移动到acl和opencv的同级目录
3. 如果acl路径不在系统默认路径修改acl/CMakelists.txt文件修改acl_lib,acl_inc路径
4. 给脚本文件加权限: chmod +x run.sh
5. 运行脚本: ./run.sh
6. 如果需要安装之后运行单元测试模块,可在脚本后加命令: ./run.sh ACLTEST
5. 如果需要运行测试案例需要修改test目录下acl.cpp中的set_device函数中.json文件的路径为绝对路径
6. 给脚本文件加权限: chmod +x run.sh
7. 运行脚本: ./run.sh
8. 如果需要安装之后运行单元测试模块,可在脚本后加命令: ./run.sh ACLTEST

View File

@@ -1,139 +0,0 @@
# Opencv ACL模块安装及使用<a name="ZH-CN_TOPIC_0302083215"></a>
## 功能描述<a name="section1421916179418"></a>
该模块实现了Opencv部分模块对AscendCL的支持,包括MAT类及部分矩阵操作函数具体见API接口文档
## 目录结构<a name="section8733528154320"></a>
```
├── CMakeLists.txt //Cmake配置
├── include //头文件目录
│ └── opencv2
│ └── acl
│ ├── acl.hpp //ACL头文件
│ ├── acl_init.hpp //ACL初始化模块类的声明
│ ├── acl_mat.hpp //aclMat类的声明
│ ├── acl_type.hpp //ACL类型声明
│ ├── gemm.hpp //gemm模块
│ ├── init_core.hpp //ACL初始化环境核心实现
│ ├── mat_core.hpp //Mat类核心实现
│ ├── mathfuncs.hpp //math函数模块
│ ├── matrices.hpp //矩阵操作模块
│ └── operator_desc.hpp //算子描述模块
├── README_CN.md
├── run.sh //自动化部署脚本
├── src //源文件目录,对应声明
│ ├── acl_init.cpp
│ ├── acl_mat.cpp
│ ├── gemm.cpp
│ ├── mathfuncs.cpp
│ ├── matrices.cpp
│ ├── operator_desc.cpp
│ └── precomp.hpp //头文件总包含
└── test //单元测试目录
├── acl.cpp //总测试模块
├── acl.json
├── test_acl.cpp //aclMat类重载运算符测试
├── test_common.cpp //测试公用模块
├── test_common.hpp //测试公用模块声明
├── test_correctness.cpp //函数正确性验证
├── test_correctness.hpp
├── test_gemm.cpp //gemm模块性能验证
├── test_main.cpp
├── test_mathfuncs.cpp //math函数模块性能验证
├── test_matrices.cpp //矩阵操作模块性能验证
├── test_perf.hpp
└── test_precomp.hpp //测试头文件总包含
```
## 环境要求<a name="zh-cn_topic_0230709958_section1256019267915"></a>
- 操作系统及架构CentOS x86\_64、CentOS aarch64、Ubuntu 18.04 x86\_64、EulerOS x86、EulerOS aarch64
- 编译器:
- 运行环境操作系统架构为x86时编译器为g++
- 运行环境操作系统架构为arm64时编译器为aarch64-linux-gnu-g++
- python及依赖的库Python3.7.*x*3.7.0 ~ 3.7.11、Python3.8.*x*3.8.0 ~ 3.8.11
- 已完成昇腾AI软件栈的部署。
## 配置环境变量
- 开发环境上环境变量配置
1. CANN-Toolkit包提供进程级环境变量配置脚本供用户在进程中引用以自动完成CANN基础环境变量的配置配置示例如下所示
```
. ${HOME}/Ascend/ascend-toolkit/set_env.sh
```
“$HOME/Ascend”请替换“Ascend-cann-toolkit”包的实际安装路径。
2. 算子编译依赖Python以Python3.7.5为例请以运行用户执行如下命令设置Python3.7.5的相关环境变量。
```
#用于设置python3.7.5库文件路径
export LD_LIBRARY_PATH=/usr/local/python3.7.5/lib:$LD_LIBRARY_PATH
#如果用户环境存在多个python3版本则指定使用python3.7.5版本
export PATH=/usr/local/python3.7.5/bin:$PATH
```
Python3.7.5安装路径请根据实际情况进行替换,您也可以将以上命令写入~/.bashrc文件中然后执行source ~/.bashrc命令使其立即生效。
3. 开发环境上设置环境变量配置AscendCL单算子验证程序编译依赖的头文件与库文件路径。
编译脚本会按环境变量指向的路径查找编译依赖的头文件和库文件,“$HOME/Ascend”请替换“Ascend-cann-toolkit”包的实际安装路径。
- 当运行环境操作系统架构是x86时配置示例如下所示
```
export DDK_PATH=$HOME/Ascend/ascend-toolkit/latest/x86_64-linux
export NPU_HOST_LIB=$DDK_PATH/acllib/lib64/stub
```
- 当运行环境操作系统架构时AArch64时配置示例如下所示
```
export DDK_PATH=$HOME/Ascend/ascend-toolkit/latest/arm64-linux
export NPU_HOST_LIB=$DDK_PATH/acllib/lib64/stub
```
- 运行环境上环境变量配置
- 若运行环境上安装的“Ascend-cann-toolkit”包环境变量设置如下
```
. ${HOME}/Ascend/ascend-toolkit/set_env.sh
```
- 若运行环境上安装的“Ascend-cann-nnrt”包环境变量设置如下
```
. ${HOME}/Ascend/nnrt/set_env.sh
```
- 若运行环境上安装的“Ascend-cann-nnae”包环境变量设置如下
```
. ${HOME}/Ascend/nnae/set_env.sh
```
“$HOME/Ascend”请替换相关软件包的实际安装路径。
## 安装说明
1. 在配置好AScend之后,用户需要官网下载好opencv库和本模块(acl),保证acl模块和opencv在同一级目录下
2. 进入acl目录将run.sh脚本拷贝或者移动到acl和opencv的同级目录
3. 如果acl路径不在系统默认路径修改acl/CMakelists.txt文件修改acl_lib,acl_inc路径
4. 给脚本文件加权限: chmod +x run.sh
5. 运行脚本: ./run.sh
6. 如果需要安装之后运行单元测试模块,可在脚本后加命令: ./run.sh ACLTEST

View File

@@ -1,33 +0,0 @@
#! /bin/bash
opencv_directory=./opencv
acl_directory=./acl
if [ -d $opencv_directory -o -d $acl_directory ]
then
mv $acl_directory $opencv_directory/modules/
fi
cd $opencv_directory
build_directory=$PWD/build
if [ ! -d $build_directory ]
then
mkdir -p build
fi
cd build
cmake ..
make -j
while [ $? != 0 ]
do
make -j
done
for var in $@
do
if [ $var == "ACLTEST" ]
then
cd bin
./opencv_test_acl
fi
done

View File

@@ -7,7 +7,7 @@ namespace opencv_test
{
namespace
{
aclCxt *acl_context_0 = set_device("/home/perfxlab4/OpenCV_ACL/modules/acl/test/acl.json", 1, 2);
aclCxt *acl_context_0 = set_device("../../modules/acl/test/acl.json", 1, 2);
////////////////////////////////////////////////////Correctness_test////////////////////////////////////////////////////////
/* range: rows: 1 ~ 64, cols: 1 ~ 64, type: 0 ~ 7

2
run.sh
View File

@@ -30,4 +30,4 @@ do
cd bin
./opencv_test_acl
fi
done
done