目录
一、软件简介
MIGraphX是图形推理引擎,加速机器学习模型推理,MIGraphX可以通过直接安装二进制文件或从源代码构建来使用。
二、部署安装
2.1 MIGraphX_Samples_V1.2目录结构
├── 3rdParty:依赖库
├── Resource:资源文件目录,包括模型,测试图像等
│ └── Models:示例模型
│ └── TestImage:测试图像
│ └── Configuration.xml:配置文件
├── Src
│ └── Classifier:分类器源码
│ └── Detector:检测器源码
│ └── Utility:工具
│ └── Sample.cpp:示例程序
│ └── main.cpp
├── CMakeLists.txt
├── README.md
├── requirements.txt
2.2 构建安装
2.2.1 安装依赖
MIGraphX的依赖库包括:
安装方法(这里以centos为例):
yum install rocm-cmake
yum install miopen-hip
yum install protobuf
yum install half
pip install pybind11
2.2.2 安装rbuild
pip install https://github.com/RadeonOpenCompute/rbuild/archive/master.tar.gz
2.2.3设置安装目录
设置环境变量ROCM_PATH为MIGraphX的安装目录。比如MIGraphX安装在/opt/rocm/目录下,则设置
export ROCM_PATH="/opt/rocm/"
2.2.4 构建并安装MIGraphX
git clone https://github.com/ROCmSoftwarePlatform/AMDMIGraphX.git
cd AMDMIGraphX
rbuild build -d depend --cxx=/opt/rocm/llvm/bin/clang++
cd build
make install
2.2.5 安装OpenCV依赖
当前路径为工程根目录
sh ./3rdParty/InstallOpenCVDependences.sh
注意:根据不同的系统,选择脚本中相应的安装方式
2.2.6 修改CMakeLists.txt
如果使用ubuntu系统,需要修改CMakeLists.txt中依赖库路径:
将”{CMAKE_CURRENT_SOURCE_DIR}/depend/lib64/{CMAKE_CURRENT_SOURCE_DIR}/depend/lib/“
2.2.7 安装OpenCV并编译工程
当前路径为工程根目录
rbuild build -d depend
2.2.8 设置环境变量
将依赖库路径加入环境变量LD_LIBRARY_PATH,在~/.bashrc中添加如下语句:
Centos:
export LD_LIBRARY_PATH=/opt/rocm/lib/:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=项目根目录/depend/lib64/:$LD_LIBRARY_PATH
Ubuntu:
export LD_LIBRARY_PATH=/opt/rocm/lib/:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=项目根目录/depend/lib/:$LD_LIBRARY_PATH
然后执行:
```
source ~/.bashrc
三、使用
运行
cd ./build/
./MIGraphX_Samples
根据提示选择要运行的示例程序,比如执行
./MIGraphX_Samples 3
运行YOLOV5示例程序
注:需要MIGraphX 0.9版本以上才能运行YOLOV5模型
四、模型转换说明
4.1 SSD模型
- Resource/Models/Detector/SSD/目录下提供了模型转换示例,deploy.prototxt对应的onnx版本为deploy_Caffe2ONNX.prototxt。本示例使用caffe框架,其他框架需要按照caffe的实现方式作出相应的修改。
- 模型转换成功后需要修改 Resource/Configuration.xml中SSD网络结构参数,xml中对每个参数的含义作出了详细的解释。
4.2 YOLOV3模型
- Resource/Models/Detector/YOLOV3/目录下提供了模型转换示例,deploy.prototxt对应的onnx版本为deploy_Caffe2ONNX.prototxt。本示例使用caffe框架,其他框架需要按照caffe的实现方式作出相应的修改。
- 模型转换成功后需要修改 Resource/Configuration.xml中YOLOV3网络结构参数,xml中对每个参数的含义作出了详细的解释。
4.3 YOLOV5模型
YOLOV5模型中的Focus模块使用到了步长为2的切片操作,MIGraphX暂时不支持该操作,在转换为onnx模型的时候对这部分做了修改,具体修改方法参考Resource/Models/Detector/YOLOV5/yolov5s.onnx模型。
注意事项
- 如果使用int8模式推理,为了保证模型精度,需要选择合适的量化校准数据,推荐使用测试集中的部分具有代表性的数据作为校准数据,如果校准数据为空,MIGraphX会使用默认的量化参数,可能会导致精度下降。