SuperAPI AI 工具集

h100

部署与运维

查看项目

更新于 10-15 17:24

技能介绍

用途:在 H100 机器上远程开展 SGLang 开发,当本地环境无法验证 CUDA、Triton、扩散管线或其他 GPU 相关 SGLang 行为时优先使用。环境已就绪:容器 sglang_bbuf 基于 lmsysorg/sglang:dev 运行,仓库已克隆至 /sgl-workspace/sglang,python[all] 与 python[diffusion] 的可编辑安装已完成,/root/.cache 作为缓存路径挂载,InfiniBand 路径(/sys/class/infiniband、/dev/infiniband、/usr/sbin/show_gids)及 Hugging Face 缓存均已挂载;但不要假设每个 docker exec 上下文中 HF_TOKEN 可见,运行受限模型前用 echo ${HF_TOKEN:+set} 确认,必要时在命令内显式导出 HF_TOKEN 与 HUGGINGFACE_HUB_TOKEN。

主要用法与工作流:先通过 ssh h100_sglang 检查主机、容器与 GPU 状态(hostname/whoami、docker ps、nvidia-smi),若容器未运行则执行 docker start sglang_bbuf;为每条 GPU 验证命令选择 0 利用率、仅占用少量显存的空闲 GPU,并设置 CUDA_VISIBLE_DEVICES。编辑前先检查仓库分支与状态,并在创建验证工作树前将 main 快进到最新干净提交。推荐两种隔离策略:用 git worktree add --detach 创建分离工作树做纯远程实验,或将本地工作树通过 tar 经 ssh 流式传入容器 /tmp 目录做精确快照验证。验证从 import 或语法检查开始(python -m compileall),再做针对改动区域的 pytest 测试(如扩散改动跑 test_qwen_image_modulation.py),GPU 相关改动显式固定空闲 GPU。内核相关扩散工作可先对 rms_norm_fn、RMSNorm under torch.compile、norm_infer、apply_rotary_embedding 等做定向冒烟测试;使用 DiffGenerator.from_pretrained(..., local_mode=True) 等依赖 multiprocessing.spawn 的流程时需用带 if name == "main" 的真实 .py 文件,脚本从 stdin 执行会失败。

限制与注意事项:该主机当前不提供 kill-idle helper,不能自动回收其他用户的空闲占用,空闲 GPU 紧张时需重新检查 nvidia-smi 或先协调;避免在仓库脏或本地快照与远端 HEAD 不一致时直接写入;将 checkpoint、依赖与环境失败与代码回归区分开;对比 eager 与 torch.compile 时不要只看加速数字,应捕获匹配的 perf dump 并用 compare_perf.py 与 llm-torch-profiler-analysis 分析;完成后清理临时验证目录。