8000 RecSDK/training/common at develop · kiminh/RecSDK · GitHub
[go: up one dir, main page]

Skip to content

Latest commit

 

History

History
 
 

common

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

README.md

training common 说明

本目录包含RecSDK公共的组件

目录结构概览

├── python  # python公共组件
    ├── communication # 通信相关信息
    ├── constants # 公共常量
    ├── log # 日志模块
    ├── perf_factory # 优化模块
    ├── util # 公共util
    ├── validator # 检核模块
    ├── tests # 测试用例
├── src # C++公共组件
    ├── core # 核心组件
        ├── common_func # 公共函数库
        ├── error # 报错模块
        ├── initializer # 初始化器模块
        ├── lccl # lccl通信模块
        ├── log # 日志模块
        ├── pcie_through # pcie_through模块
        ├── tests # 测试模块
    ├── pybind # pybind接口
    ├── tests # 测试用例

源码编译安装

编译环境依赖:

  • Python3.7.5
  • GCC 7.3.0
  • CMake 3.20.6

开源依赖:

  • pybind11(可选,见下)
  • securec(必需)
  • openmpi 4.1.5: 请参考软件文档在编译环境完成安装
  • tensorflow 1.15/2.6.5:根据实际需求选择对应版本

将securec的压缩包(huaweicloud-sdk-c-obs-3.23.9.zip)置于RecSDK代码同级的opensource目录下;pybind11 获取方式按以下优先级:已安装(import pybind11 直接可用)→ 本地 opensource 源码树(将 pybind11 >= 2.10.3 压缩包置于 opensource 目录)→ pip 安装(前两者均不可用时尝试 pip install pybind11,需要网络)。按以下步骤编译whl包。

编译方法 方案1:进入common代码目录,构建单独的rec_sdk_common whl包:

  • src/build.sh:用于构建src下面的so文件
  • setup.py:执行脚本 python3.7 setup.py bdist_wheel 构建whl包

方案2:在最外层的RecSDK目录,和mx_rec whl包一起打包

  • setup_tf1.py:执行脚本 python3.7 setup_tf1.py bdist_wheel 构建tf1版本whl包。构建成功后,whl包在build/mindxsdk-mxrec/tf1_whl子目录下。
  • setup_tf2.py:执行脚本 python3.7 setup_tf2.py bdist_wheel 构建tf2版本whl包。构建成功后,whl包在build/mindxsdk-mxrec/tf2_whl子目录下。

测试用例

运行测试用例前需先设置CANN相关环境变量,参考前文安装方式章节。

Python侧测试用例

运行Python测试用例所需依赖:

  • pytest 7.1.1
  • pytest-cov 4.1.0
  • pytest-html

如需使用python测试用例,需要先安装上述依赖以及能够在tf1环境下进行源码编译并安装好rec_sdk_common,然后进入tests目录中。参考以下命令执行python侧测试用例:

bash run_python_dt.sh

C++侧测试用例

运行C++侧测试用例所需依赖:

将googletest(googletest-release-1.8.1.zip)、emock(emock-0.9.0.zip)与securec的压缩包(huaweicloud-sdk-c-obs-3.23.9.zip)置于RecSDK代码同级的opensource目录下;pybind11 获取方式按以下优先级:已安装(import pybind11 直接可用)→ 本地 opensource 源码树(将 pybind11 >= 2.10.3 压缩包置于 opensource 目录)→ pip 安装(前两者均不可用时尝试 pip install pybind11,需要网络)。

如需使用C++测试用例,需要按照上述描述准备需要的依赖,准备好之后,进入src目录中。参考以下命令执行C++测试用例:

使用如下命令:

bash test_ut.sh

注:

  1. 部分C++用例使用了emock库进行打桩,需要在x86环境上运行;在arm64环境运行失败时可忽略。
  2. test_ut.sh脚本运行完成后会使用lcov及相关工具(如perl-Digest-MD5)生成覆盖率统计信息,若工具未安装完全,生成失败时可忽略。
0