快速开始
本文档涵盖了 ByteIR 的开发环境的准备、快速入门和基础教程。
快速上手
ByteIR 有三大独立组件,以及三大前端。 每个都有不同的配置和不同的依赖关系。 本章将使用一个简单的 PyTorch 可执行示例开始使用 ByteIR。
前提
ByteIR PyTorch 前端需要特定版本的 PyTorch,以及从源代码构建的其他工具。 请参考此链接。
同样,ByteIR 编译器也需要特定的 LLVM 和 Python 版本来从源代码构建。 请参考此页面。
ByteIR 运行时需要从源代码构建的 LLVM 版本。LLVM 版本通常与编译器相同。
构建 ByteIR PyTorch 前端
git clone https://github.com/bytedance/byteir.git
cd byteir/frontends/torch-frontend
# 准备 python 环境和 torch-mlir 依赖
bash scripts/prepare.sh
cmake -S . \
-B ./build \
-GNinja \
-DLLVM_EXTERNAL_LIT=$(which lit) \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DCMAKE_C_COMPILER=clang \
-DCMAKE_CXX_COMPILER=clang++ \
-DPython3_EXECUTABLE=$(which python3)
cmake --build ./build --target all
# torch_frontend-*.whl in ./build/torch-frontend/python/dist/
运行 ByteIR PyTorch 前段示例
PYTHONPATH=./build/python_packages/ python3 examples/inference/infer_resnet.py
构建 ByteIR 编译器
确保应用子模块中可能存在的补丁文件
bash /path_to_byteir/scripts/apply_patches.sh
然后构建编译器。如果使用 cmake 和 Ninja
mkdir /path_to_byteir/build
cd /path_to_byteir/build/
# 构建 ByteIR
cmake ../cmake/ -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DLLVM_INSTALL_PATH=path_to_LLVM_installed_or_built_directory \
-DLLVM_EXTERNAL_LIT=lit_executatble_location # or using $(which lit), this is optional for external lit
cmake --build . --target all
或者使用 Visual Studio。 这里我们使用 Visual Studio 2019 示范。
mkdir /path_to_byteir/build
cd /path_to_byteir/build/
# 构建 ByteIR
cmake ../cmake/ -G "Visual Studio 16 2019" -A x64 \
-DCMAKE_BUILD_TYPE=Release \
-DLLVM_INSTALL_PATH=path_to_LLVM_installed_or_built_directory \
-DLLVM_EXTERNAL_LIT=lit_location # this is optional for external lit
cmake --build . --target all
测试 ByteIR 编译器
这条指令执行所有 ByteIR 编译器的单元测试:
cmake --build . --target check-byteir
构建 ByteIR 运行时
构建 ByteIR 运行时。 如果使用 cmake 和 Ninja
mkdir /path_to_runtime/build
cd /path_to_runtime/build/
# 构建 runtime
cmake ../cmake/ -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DLLVM_INSTALL_PATH=path_to_LLVM_installed_or_built_directory \
-DCMAKE_INSTALL_PREFIX="$(pwd)/install" \
-Dbrt_ENABLE_PYTHON_BINDINGS=ON \
-Dbrt_USE_CUDA=On
cmake --build . --target all --target install
或者使用 Visual Studio。
mkdir /path_to_runtime/build
cd /path_to_runtime/build/
# 构建 runtime
cmake ..\cmake -G "Visual Studio 16 2019" -A x64 \
-DCMAKE_BUILD_TYPE=Release \
-DLLVM_INSTALL_PATH=path_to_LLVM_installed_or_built_directory \
-DCMAKE_INSTALL_PREFIX="$(pwd)/install" \
-Dbrt_ENABLE_PYTHON_BINDINGS=ON \
-Dbrt_USE_CUDA=On
cmake --build . --target all --target install
测试 ByteIR 运行时
使用运行时的单元测试测试运行时
cd /path_to_runtime/build
./bin/brt_test_all