⚠️ 注意:有限维护
此项目不再积极维护。现有版本仍然可用,但没有计划的更新、错误修复、新功能或安全补丁。用户应注意,漏洞可能不会得到解决。
AMD 支持¶
TorchServe 可以在 ROCm 支持 的任何操作系统和设备组合上运行。
支持的 ROCm 版本¶
当前稳定的 major.patch
版本以及上一个 path 版本都将得到支持。例如,版本 N.2
和 N.1
,其中 N
是当前主要版本。
安装¶
确保你的系统上安装了 python >= 3.8。
克隆仓库
git clone git@github.com:pytorch/serve.git
进入克隆的文件夹
cd serve
为 python 创建一个虚拟环境
python -m venv venv
激活虚拟环境。如果你使用其他 shell (fish, csh, powershell),请使用
/venv/bin/
中相应的选项。source venv/bin/activate
安装支持 ROCm 所需的依赖项。
python ./ts_scripts/install_dependencies.py --rocm=rocm61 python ./ts_scripts/install_from_src.py
在 python 虚拟环境中启用 amd-smi
sudo chown -R $USER:$USER /opt/rocm/share/amd_smi/ pip install -e /opt/rocm/share/amd_smi/
使用 HIP_VISIBLE_DEVICES
选择加速器¶
如果你在运行 TorchServe 的系统上有多个加速器,可以通过设置环境变量 HIP_VISIBLE_DEVICES
来选择哪些加速器对 TorchServe 可见,将其设置为一个由逗号分隔的、从 0 开始索引的整数组成的字符串,表示加速器的 ID。
如果你有 8 个加速器,但只希望 TorchServe 看到最后四个,则执行 export HIP_VISIBLE_DEVICES=4,5,6,7
。
ℹ️ **不设置**
HIP_VISIBLE_DEVICES
将导致 TorchServe 使用其运行系统上所有可用的加速器。
⚠️ 如果将
HIP_VISIBLE_DEVICES
设置为空字符串(例如export HIP_VISIBLE_DEVICES=
或export HIP_VISIBLE_DEVICES=""
),可能会遇到问题;如果想移除其效果,请使用unset HIP_VISIBLE_DEVICES
。
⚠️ 同时设置
CUDA_VISIBLE_DEVICES
和HIP_VISIBLE_DEVICES
可能会导致意外行为,应避免这样做。将来这样做可能会引发异常。
Docker¶
开发中
Dockerfile.rocm
为 TorchServe 提供了初步的 ROCm 支持。
构建和运行 dev-image
docker build --file docker/Dockerfile.rocm --target dev-image -t torch-serve-dev-image-rocm --build-arg USE_ROCM_VERSION=rocm62 --build-arg BUILD_FROM_SRC=true .
docker run -it --rm --device=/dev/kfd --device=/dev/dri torch-serve-dev-image-rocm bash
示例用法¶
安装了支持 ROCm 所需依赖项的 TorchServe 后,你就可以准备服务你的模型了。
如需一个简单示例,请参考 serve/examples/image_classifier/mnist/
。