ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

如何快速构建 PowerPC 上的 vLLM 推理引擎

如何快速构建 PowerPC 上的 vLLM 推理引擎 如何快速构建 PowerPC 上的 vLLM 推理引擎【免费下载链接】vllmA high-throughput and memory-efficient inference and serving engine for LLMs项目地址: https://gitcode.com/GitHub_Trending/vl/vllm你的 ppc64le 服务器已经放好了模型但docker build卡在依赖编译阶段这篇文章交付一个能在 PowerPC 上跑起来的 vLLM LLM 推理引擎从拉代码、一条命令构建镜像到启动服务、发请求验证四步走完不需要 CUDA也不需要你手写任何编译参数。快速判断这篇文章适不适合你你需要满足的前提你不需要具备的条件CPU 架构ppc64lePOWER9 / POWER10GPU 或 CUDA 编译经验内存≥32GB取决于模型大小理解 OpenBLAS、PyTorch 编译细节系统装有 Docker 的 Linux镜像基于 UBI 9自己维护 Python 环境与依赖链存储≥100GB 可用空间编译产物较大LLM 推理引擎调优经验内存低于 32GB 的话先考虑小参数或量化版模型后面踩坑章节会再提。动手实操 ️拉代码并确认架构先确认机器是 ppc64le再拉代码架构不对后面全白跑uname -m git clone https://gitcode.com/GitHub_Trending/vl/vllm cd vllmuname -m输出必须是ppc64le。如果输出x86_64或aarch64你登错机器了。ppc64le 镜像一条命令构建在仓库根目录执行构建这是全流程最慢的一步视核心数通常需要 1 小时以上docker build -f docker/Dockerfile.ppc64le -t vllm-ppc64le .Dockerfile.ppc64le 分两个阶段builder 阶段自动执行build_vllm_$(uname -m).shppc64le 下即 build_vllm_ppc64le.sh安装 gcc-toolset-14 工具链并把 torchaudio、xgrammar 这类没有现成 wheel 的依赖从源码编译好最终阶段装配 vLLM wheel 并安装进运行镜像。两个值得知道的参数构建脚本设置CFLAGS-mcpupower10 -mtunepower10产物针对 POWER10 指令集调优在 POWER9 上运行会自动回退无需额外处理ppc64le 没有官方 PyTorch wheel镜像通过UV_EXTRA_INDEX_URL从 IBM 的 ppc64le wheel 源拉取构建机必须能出网带 NUMA 权限启动服务镜像的入口命令已预设为vllm serve你只需传入模型名再加两个权限参数避免 NUMA 告警docker run -it --rm \ --cap-add SYS_NICE --security-opt seccompunconfined \ -p 8000:8000 vllm-ppc64le \ --model your_model_name_or_path --dtypebfloat16--cap-add SYS_NICEseccompunconfinedvLLM CPU 后端用get_mempolicy、migrate_pages做 NUMA 内存绑定容器默认安全策略会拦掉这些系统调用--dtypebfloat16CPU 上 float16 支持不稳定bfloat16 是 CPU 平台推荐精度服务启动后 30 秒验证推理看到日志里 Application startup complete 后用两条请求验证curl http://localhost:8000/v1/models curl http://localhost:8000/v1/chat/completions \ -H Content-Type: application/json \ -d {model: your_model_name_or_path, messages: [{role: user, content: 你好}], max_tokens: 32}第一条请求会触发模型加载偏慢属正常第二条能返回非空content说明整条链路通了。确认跑通了 踩坑速查验证清单逐条打勾docker images | grep vllm-ppc64le能看到镜像docker run --rm vllm-ppc64le vllm --version输出版本号curl localhost:8000/v1/models返回模型列表chat/completions返回非空 content服务日志中没有exitcode 9或 OOM 记录构建阶段长时间无输出症状→ 构建日志停在 torchaudio 或 xgrammar 源码编译。原因一句话→ ppc64le 上这两个包没有预编译 wheel只能本地编编译是 CPU 瓶颈。解法→ 构建命令追加--build-arg MAX_JOBS$(nproc)用满核心然后等。get_mempolicy: Operation not permitted症状→ 服务启动时刷出该警告。原因一句话→ 容器默认 seccomp 策略拦截了 NUMA 系统调用。解法→docker run加--cap-add SYS_NICE --security-opt seccompunconfined本文命令已包含。推理进程被 exitcode 9 杀掉症状→ worker 突然退出日志出现 exitcode 9。原因一句话→ KV 缓存加权重分片超出了单个 NUMA 节点的内存容量。解法→ 调小VLLM_CPU_KVCACHE_SPACE单位 GiB或换更小/量化模型。进阶调优如果推理峰值 CPU 利用率低可以尝试VLLM_CPU_OMP_THREADS_BIND0-31按物理核数改区间把 OpenMP 线程绑到指定核避免跨核抢占如果是多路服务器可以尝试--tensor-parallel-size设为 NUMA 节点数lscpu | grep NUMA node(s):查询每个节点一个 rank避免跨节点访存如果并发请求数上不去可以尝试调大VLLM_CPU_KVCACHE_SPACEGiB但别超过单 NUMA 节点容量否则又回到 exitcode 9收尾到这里你已经完成 vLLM LLM 推理引擎在 ppc64le 上的完整落地拉代码、一条命令构建镜像、带 NUMA 权限启动服务、curl 验证推理。想深入 CPU 平台环境变量与受支持模型列表看 docs/getting_started/installation/cpu.md要量化吞吐和延迟看 benchmarks/README.md。【免费下载链接】vllmA high-throughput and memory-efficient inference and serving engine for LLMs项目地址: https://gitcode.com/GitHub_Trending/vl/vllm创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表