DevCloud 上手记,如何在云端快速启动 ROCm 推理服务
云端实例选型:别让硬件配置成为第一道坎
在 DevCloud 上启动 ROCm 推理服务,第一步往往不是敲代码,而是选对实例。很多新手容易陷入“显存越大越好”的误区,却忽略了 CPU 与内存的配比平衡。对于运行 vLLM 这类大模型推理框架,GPU 固然是核心,但数据预处理、张量并行通信以及操作系统本身的开销都需要充足的 CPU 算力和系统内存支撑。
根据实战经验,推荐选择搭载 AMD Instinct MI250 或 MI300 系列加速卡的实例。在 CPU 与内存配比上,建议遵循 1:4 或 1:8 的原则。例如,若实例配备 8 核 CPU,系统内存至少应配置 32GB,理想状态是 64GB。这是因为在模型加载阶段,权重文件会先读入系统内存再转移至显存,若系统内存捉襟见肘,极易触发 OOM(内存溢出)导致实例崩溃。此外,DevCloud 的部分高性能实例支持 RDMA 网络,若计划进行多卡张量并行(Tensor Parallelism)部署,务必勾选支持高速互联的机型,这能显著降低卡间通信延迟,避免吞吐量被网络带宽卡脖子。
一键部署 ROCm 7.x:告别手动编译噩梦
选定实例后,接下来是环境搭建。传统方式下,手动添加软件源、下载驱动、核对内核版本不仅繁琐,还容易因步骤遗漏导致“依赖地狱”。在 DevCloud 环境中,我们可以利用预置的初始化脚本实现 ROCm 7.x 的秒级安装。
登录实例后,首先执行以下脚本自动完成驱动安装与环境变量配置。该脚本会自动检测当前内核版本,拉取匹配的 ROCm 7.x 官方源,并安装包括 hip-runtime、rocblas、miopen 在内的核心组件:
#!/bin/bash
# rocml_install.sh - 适用于 Ubuntu 22.04+ 的 ROCm 7.x 一键安装脚本
echo ">>> 开始检查系统依赖..."
sudo apt-get update && sudo apt-get install -y wget gnupg2 curl
echo ">>> 添加 ROCm 官方软件源..."
wget https://repo.radeon.com/rocm/rocm.gpg.key -O - | sudo apt-key add -
echo 'deb [arch=amd64] https://repo.radeon.com/rocm/apt/7.0/ jammy main' | sudo tee /etc/apt/sources.list.d/rocm.list
echo ">>> 安装 ROCm 7.x 核心组件..."
sudo apt-get update
sudo apt-get install -y rocm-dev hip-runtime-amd miopen-hip rocblas
echo ">>> 配置用户组权限..."
sudo usermod -aG video,render $USER
echo ">>> 设置环境变量..."
cat <<EOF >> ~/.bashrc
export PATH=/opt/rocm/bin:\$PATH
export LD_LIBRARY_PATH=/opt/rocm/lib:\$LD_LIBRARY_PATH
export HSA_OVERRIDE_GFX_VERSION=9.4.2 # 根据实际显卡架构调整,MI250 通常为 9.4.2
EOF
source ~/.bashrc
echo ">>> 安装完成!请重启实例或重新登录以使组权限生效。"
脚本执行完毕后,无需重启整个系统(除非内核模块未加载),只需重新登录终端或执行 newgrp video 即可生效。验证安装是否成功,直接运行 rocm-smi。如果能看到清晰的 GPU 列表、温度、功耗及显存使用率,说明驱动层已正常工作。接着运行 rocminfo 确认架构识别无误,这一步能规避掉 90% 因架构不匹配导致的后续编译错误。
网络防火墙配置:打通外部访问的“最后一公里”
环境就绪后,很多开发者会发现本地能启动服务,但外部无法连接。这通常是因为云平台的网络安全组(Security Group)或实例内部的防火墙阻挡了端口。vLLM 默认监听 8000 端口,必须显式放行才能对外提供服务。
在 DevCloud 控制台找到你的实例详情页,进入“安全组”或“防火墙”设置标签页。添加入站规则(Inbound Rule):
- 协议类型:TCP
- 端口范围:8000
- 授权对象:0.0.0.0/0(若仅特定 IP 访问,建议填写具体 IP 以增强安全性)
除了云平台层面的设置,还需检查实例内部的 ufw 或 iptables 状态。在终端执行以下命令确保内部防火墙放行:
# 检查 ufw 状态
sudo ufw status
# 若处于 active 状态,放行 8000 端口
sudo ufw allow 8000/tcp
# 验证端口监听情况
netstat -tulpn | grep 8000
完成上述两步后,建议在本地终端使用 curl <实例公网 IP>:8000 进行测试。若返回 HTML 报错页或连接超时,请再次核对云控制台的安全组规则是否已应用生效。
构建可复用镜像:Dockerfile 最佳实践
为了将这套环境固化下来,方便在其他云平台快速复用或进行 CI/CD 流水线集成,我们将上述步骤封装为一个 Dockerfile。该镜像基于 Ubuntu 22.04,预装了 ROCm 7.x 驱动基础库(注:容器内通常需宿主机透传驱动,此处主要配置用户态工具链与 PyTorch/vLLM 运行环境),并做好了网络与权限优化。
FROM ubuntu:22.04
# 避免交互式安装提示
ENV DEBIAN_FRONTEND=noninteractive
# 安装基础依赖
RUN apt-get update && apt-get install -y \
wget gnupg2 curl git cmake ninja-build \
python3 python3-pip python3-venv \
&& rm -rf /var/lib/apt/lists/*
# 添加 ROCm 源并安装运行时库 (容器内需宿主机有驱动)
RUN wget https://repo.radeon.com/rocm/rocm.gpg.key -O - | apt-key add - \
&& echo 'deb [arch=amd64] https://repo.radeon.com/rocm/apt/7.0/ jammy main' > /etc/apt/sources.list.d/rocm.list \
&& apt-get update \
&& apt-get install -y rocm-libs miopen-hip rocblas hip-runtime-amd \
&& rm -rf /var/lib/apt/lists/*
# 设置环境变量
ENV PATH=/opt/rocm/bin:$PATH \
LD_LIBRARY_PATH=/opt/rocm/lib:$LD_LIBRARY_PATH \
HSA_OVERRIDE_GFX_VERSION=9.4.2 \
PYTHONUNBUFFERED=1
# 创建非 root 用户以避免权限问题
RUN useradd -m -u 1000 devuser && \
usermod -aG video,render devuser
# 安装 PyTorch (ROCm 版) 和 vLLM
# 注意:生产环境建议指定具体版本号以保证稳定性
RUN pip3 install --no-cache-dir torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm7.0 \
&& pip3 install --no-cache-dir vllm
# 暴露 vLLM 默认端口
EXPOSE 8000
# 设置工作目录
WORKDIR /workspace
USER devuser
ENTRYPOINT ["vllm", "serve"]
构建该镜像后,你可以通过 docker run --device /dev/kfd --device /dev/dri --group-add video --ipc=host --shm-size 16g -p 8000:8000 <镜像名> 命令在任何支持 ROCm 的 Linux 宿主机上瞬间拉起服务。这种容器化方案不仅解决了环境一致性问题,也让从开发到生产的迁移变得像复制粘贴一样简单。
🎁 开发者“神装”补给站|CSDN 6 月宠粉专属福利
工欲善其事,必先利其器。为了帮大家扫清 AI 实践的障碍,CSDN AI 开发者计划,在文末为大家准备了一份「AI 开发者能量包」!
更多推荐



所有评论(0)