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、pip3、rocblas 和 miopen-hip:
bash
sudo apt install -y rocm-cmake python3-pip rocblas miopen-hip
为 rbuild 设置并激活 Python 虚拟环境:
bash
python3 -m venv venv_rbuild
source venv_rbuild/bin/activate
在 Python 虚拟环境中安装 rbuild:
bash
pip install https://github.com/RadeonOpenCompute/rbuild/archive/master.tar.gz
[!NOTE]
您可以使用deactivate命令停用 Python 虚拟环境。
按照 安装 rbuild 中的说明操作。
构建 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选项。
按照 安装 rbuild 中的说明操作。
安装先决条件:
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 指定不同的位置。
进入项目文件夹并创建 build 目录:
bash
mkdir build
cd build
配置 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。
构建 MIGraphX 源代码:
cpp
make -j$(nproc)
您可以使用以下命令进行验证:
cpp
make -j$(nproc) check
安装 MIGraphX 库:
cpp
make install
设置开发环境最简单的方法是使用 Docker。
使用 Dockerfile 构建 Docker 镜像:
bash
docker build -t migraphx .
使用 docker run 进入开发环境:
bash
docker run --device='/dev/kfd' --device='/dev/dri' -v=`pwd`:/code/AMDMIGraphX -w /code/AMDMIGraphX --group-add video -it migraphx
在 Docker 容器中,所有必需的先决条件都已安装,因此您可以进入 /code/AMDMIGraphX 文件夹,并按照 使用 CMake 构建 MIGraphX 中的步骤(从第 2 步开始)操作。
要使用 MIGraphX 的 Python 模块,您可以设置 PYTHONPATH 或使用 .deb 包:
设置 PYTHONPATH:
bash
export PYTHONPATH=/opt/rocm/lib:$PYTHONPATH
创建 deb 包:
bash
make package
这将提供 .deb 包的路径。
安装命令:
bash
dpkg -i <path_to_deb_file>
要在您的 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 目录中安装开发依赖项,并配置 cmake 在 build 目录中使用这些依赖项。您可以通过向 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 文件夹内构建一个本地可搜索的网站。
文档使用 Doxygen 和 rocm-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