Files
ascend-opencv/README_CN.md
luoliang c3e709b788 update
2022-07-26 15:44:06 +08:00

5.7 KiB
Executable File
Raw Blame History

Opencv ACL模块安装及使用

功能描述

该模块实现了Opencv部分模块对AscendCL的支持,包括MAT类及部分矩阵操作函数具体见API接口文档

目录结构

├── 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              //测试头文件总包含

环境要求

  • 操作系统及架构CentOS x86_64、CentOS aarch64、Ubuntu 18.04 x86_64、EulerOS x86、EulerOS aarch64
  • 编译器:
    • 运行环境操作系统架构为x86时编译器为g++
    • 运行环境操作系统架构为arm64时编译器为aarch64-linux-gnu-g++
  • python及依赖的库Python3.7.x3.7.0 ~ 3.7.11、Python3.8.x3.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. 如果需要运行测试案例需要修改test目录下acl.cpp中的set_device函数中.json文件的路径为绝对路径
  5. 给脚本文件加权限: chmod +x run.sh
  6. 运行脚本: ./run.sh
  7. 如果需要安装之后运行单元测试模块,可在脚本后加命令: ./run.sh ACLTEST