OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  代码  ›  MIGraphX — AMD 推理优化框架

MIGraphX — AMD 推理优化框架

 
  app ·  2026-02-28 21:57:17 · 4 次点击  · 0 条评论  

AMD MIGraphX

AMD MIGraphX 是 AMD 的图推理引擎,用于加速机器学习模型推理。

[!NOTE]
已发布的文档可在 MIGraphX 获取,该文档格式组织有序、易于阅读,并支持搜索和目录导航。文档源文件位于本仓库的 docs 文件夹中。与所有 ROCm 项目一样,该文档是开源的。有关如何为文档贡献的更多信息,请参阅 为 ROCm 文档做贡献

[!NOTE]
在安装 MIGraphX 之前,您必须 安装 ROCm

从二进制包安装

使用以下命令安装二进制包:

sudo apt update && sudo apt install -y migraphx

头文件和库将安装在 /opt/rocm-<version> 目录下,其中 <version> 是 ROCm 版本。

从源码构建

从源码构建有三种方式:

构建先决条件

以下是构建 MIGraphX 所需的先决条件列表。

  • ROCm CMake 模块 必需
  • MIOpen 用于在 GPU 上运行
  • rocBLAS 用于在 GPU 上运行
  • HIP 用于在 GPU 上运行
  • Protobuf 用于读取 onnx 文件
  • Half,一个基于 IEEE 754 的半精度浮点库
  • pybind11 用于 Python 绑定
  • JSON 用于模型序列化为 JSON 字符串格式
  • MessagePack 用于模型序列化为二进制格式
  • SQLite3 用于创建内核调优信息数据库或对现有数据库运行查询

安装 ROCm 构建工具 rbuild

  1. 安装 rocm-cmakepip3rocblasmiopen-hip

    bash sudo apt install -y rocm-cmake python3-pip rocblas miopen-hip

  2. 为 rbuild 设置并激活 Python 虚拟环境:
    bash python3 -m venv venv_rbuild source venv_rbuild/bin/activate

  3. 在 Python 虚拟环境中安装 rbuild

    bash pip install https://github.com/RadeonOpenCompute/rbuild/archive/master.tar.gz

[!NOTE]
您可以使用 deactivate 命令停用 Python 虚拟环境。

使用 ROCm 构建工具 rbuild 编译

  1. 按照 安装 rbuild 中的说明操作。

  2. 构建 MIGraphX 源代码:

    bash rbuild build -d depend -B build -DGPU_TARGETS=$(/opt/rocm/bin/rocminfo | grep -o -m1 'gfx.*')

完成后,所有先决条件都在 depend 文件夹中,MIGraphX 则在 build 目录中。

[!NOTE]
如果遇到 rbuild: command not found 错误,是因为 rbuild 安装在 $HOME/.local/bin 目录下,而该目录不在 PATH 环境变量中。您可以通过 export PATH=$HOME/.local/bin:$PATH 将该文件夹添加到 PATH,或者在安装 rbuild 时在 pip3 命令中添加 --prefix /usr/local 选项。

使用 CMake 构建 MIGraphX

  1. 按照 安装 rbuild 中的说明操作。

  2. 安装先决条件:

    bash rbuild prepare -d depend

    这会将所有先决条件放入 depend 文件夹。它们可以在 cmake 配置中用作 -DCMAKE_PREFIX_PATH=depend

    如果您拥有 sudo 权限,作为 rbuild 命令的替代方案,您可以像 Dockerfile 中那样,通过调用 ./tools/install_prereqs.sh 来安装先决条件。

    默认情况下,所有先决条件都安装在默认位置 (/usr/local),并且所有用户都可以访问。对于默认位置,运行脚本需要 sudo 权限。您也可以使用 ./tools/install_prereqs.sh $custom_location 指定不同的位置。

  3. 进入项目文件夹并创建 build 目录:

    bash mkdir build cd build

  4. 配置 CMake。如果先决条件安装在默认位置 /usr/local,请使用:

    bash CXX=/opt/rocm/llvm/bin/clang++ cmake .. -DGPU_TARGETS=$(/opt/rocm/bin/rocminfo | grep -o -m1 'gfx.*')

    否则,您需要设置 -DCMAKE_PREFIX_PATH=$your_loc 来配置 CMake。

  5. 构建 MIGraphX 源代码:

    cpp make -j$(nproc)

    您可以使用以下命令进行验证:

    cpp make -j$(nproc) check

  6. 安装 MIGraphX 库:

    cpp make install

使用 Docker

设置开发环境最简单的方法是使用 Docker。

  1. 使用 Dockerfile 构建 Docker 镜像:

    bash docker build -t migraphx .

  2. 使用 docker run 进入开发环境:

    bash docker run --device='/dev/kfd' --device='/dev/dri' -v=`pwd`:/code/AMDMIGraphX -w /code/AMDMIGraphX --group-add video -it migraphx

  3. 在 Docker 容器中,所有必需的先决条件都已安装,因此您可以进入 /code/AMDMIGraphX 文件夹,并按照 使用 CMake 构建 MIGraphX 中的步骤(从第 2 步开始)操作。

使用 MIGraphX Python 模块

要使用 MIGraphX 的 Python 模块,您可以设置 PYTHONPATH 或使用 .deb 包:

  • 设置 PYTHONPATH

    bash export PYTHONPATH=/opt/rocm/lib:$PYTHONPATH

  • 创建 deb 包:

    bash make package

    这将提供 .deb 包的路径。

    安装命令:

    bash dpkg -i <path_to_deb_file>

调用 MIGraphX API

要在您的 CMake 项目中使用 MIGraphX 的 C/C++ API,您必须将 CMAKE_PREFIX_PATH 设置为 MIGraphX 的安装位置,并运行:

find_package(migraphx)
target_link_libraries(myApp migraphx::c)

其中 myApp 是您项目中的 CMake 目标。

为开发而构建

使用 rbuild,您可以通过以下命令安装开发依赖项:

rbuild develop -DGPU_TARGETS=$(/opt/rocm/bin/rocminfo | grep -o -m1 'gfx.*')

这将在 deps 目录中安装开发依赖项,并配置 cmakebuild 目录中使用这些依赖项。您可以通过向 rbuild 命令传递 --deps-dir--build-dir 标志来更改这些目录:

rbuild develop --build-dir build_rocm_55 --deps-dir /home/user/deps_dir

构建文档

可以使用以下命令构建 HTML 和 PDF 文档:

cmake --build . --config Release --target doc make doc

这将在 docs/html 文件夹内构建一个本地可搜索的网站。

文档使用 Doxygenrocm-docs-core 构建。

运行以下步骤以在本地构建文档。您可以复用 安装 rbuild 中创建的相同虚拟环境。

cd docs

pip3 install -r sphinx/requirements.txt

python3 -m sphinx -T -E -b html -d _build/doctrees -D language=en . _build/html

根据您的设置,pip install 可能需要 sudo 权限。

代码格式化

所有代码都使用 clang-format 进行格式化。要格式化文件,请使用:

clang-format-10 -style=file -i <path-to-source-file>

此外,可以安装 githooks 以在每次提交时格式化代码:

./.githooks/install
4 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor