<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[测试SGLang 部署方案后最终恢复llama.cpp方案 —— 单卡AMD Radeon AI PRO R9700（gfx1201 / RDNA4）]]></title><description><![CDATA[<h2>1. 本机硬件 / 软件配置（实测）</h2>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>项目</th>
<th>实测值</th>
</tr>
</thead>
<tbody>
<tr>
<td>CPU</td>
<td>Intel Core Ultra 7 265K（Arrow Lake，20 核 20 线程，最高 5.5 GHz，单 NUMA）</td>
</tr>
<tr>
<td>内存</td>
<td>64 GB（62 GiB 可用），8 GB swap</td>
</tr>
<tr>
<td>GPU</td>
<td><strong>AMD Radeon AI PRO R9700</strong>（<code>gfx1201</code>，RDNA4 / Navi 48，64 CU，300 W 功耗墙）</td>
</tr>
<tr>
<td>显存</td>
<td><strong>32 GB</strong>（<code>34208743424 B</code> ≈ 31.9 GiB）</td>
</tr>
<tr>
<td>硬盘</td>
<td>Kingston NV2 915 GB NVMe（剩余 721 GB）</td>
</tr>
<tr>
<td>操作系统</td>
<td>Ubuntu 24.04.4 LTS，内核 7.0.0-31-generic</td>
</tr>
<tr>
<td>ROCm</td>
<td><strong>7.2.4</strong>（HIP 7.2.5 / hipcc 22.0），amdgpu 驱动 7.1.3</td>
</tr>
<tr>
<td>Python</td>
<td>3.12.3（<code>/usr/bin/python3</code>），pip 24.0</td>
</tr>
<tr>
<td>其它</td>
<td>无 conda、无 Docker、无 uv；有 git 2.43 / cmake 3.28 / gcc 13.3 / make 4.3</td>
</tr>
<tr>
<td>GPU 状态</td>
<td>已就绪：<code>rocm-smi</code> 正常识别 R9700，<code>/dev/kfd</code> 存在，当前用户在 <code>render</code>、<code>video</code> 组</td>
</tr>
<tr>
<td>网络</td>
<td>HuggingFace / PyPI / GitHub / <a href="http://repo.radeon.com" rel="nofollow ugc">repo.radeon.com</a> 全部可达（200）</td>
</tr>
<tr>
<td>已有模型</td>
<td><code>~/.cache/huggingface</code> 含 <code>mattbucci/Qwen3.8-27B-AWQ</code>、<code>Qwen/Qwen3.5-0.8B</code>；另有 llama.cpp 的 <code>Qwen3.8-27B-Uncensored-Q5_K_M.gguf</code></td>
</tr>
</tbody>
</table>
<hr />
<h2>2. 核心结论：SGLang 对 gfx1201 的支持现状</h2>
<ol>
<li><strong>官方 ROCm 支持只覆盖数据中心卡</strong>：<code>gfx942</code>（MI300/MI325）、<code>gfx950</code>（MI350）。官方 AMD 文档几乎只以 MI300X 为例。</li>
<li><strong>消费级 RDNA 未被官方支持</strong>：SGLang 官方 tracking issue <a href="https://github.com/sgl-project/sglang/issues/30599" rel="nofollow ugc">#30599</a> 明确把 RDNA4 <code>gfx1201</code> 列为「blocked / <img src="https://lcz.me/assets/plugins/nodebb-plugin-emoji/emoji/android/274c.png?v=301515bb865" class="not-responsive emoji emoji-android emoji--x" style="height:23px;width:auto;vertical-align:middle" title="❌" alt="❌" /> 不支持」，并指出 sgl-kernel 的 <code>setup_rocm.py</code> 白名单会直接 <code>sys.exit(1)</code>。</li>
<li><strong>最新稳定版不含 gfx1201</strong>：截至整理时最新稳定版为 <strong>v0.5.19</strong>（2026-09-05）；实测 <code>main</code> 分支 <code>sgl-kernel/setup_rocm.py</code> 白名单为 <code>gfx942 / gfx950 / gfx1250</code>，<strong>不含 gfx1201</strong>。</li>
<li><strong>可行路径 = PR #32092</strong>：开源 PR <strong><a href="https://github.com/sgl-project/sglang/pull/32092" rel="nofollow ugc">#32092 [AMD] Add experimental gfx1201 inference support</a></strong> 处于<strong>未合并（open）<strong>状态，但</strong>恰好是在「Radeon AI PRO R9700 + ROCm 7.2」上验证通过的</strong>（与本机显卡完全一致）。它自带完整构建/启动文档。</li>
<li><strong>对比</strong>：vLLM 已把 <code>gfx1200/gfx1201</code> 列入其 ROCm 构建（<code>PYTORCH_ROCM_ARCH</code>），对 RDNA4 的官方支持更成熟，可作为备选（见 §9）。</li>
</ol>
<p dir="auto"><strong>一句话</strong>：在本机这块 R9700 上跑 SGLang，今天只能走「从源码 + PR #32092」这条路；这是<strong>功能可用、但属实验性、单卡限定</strong>的方案。</p>
<hr />
<h2>3. gfx1201 实验支持的范围（PR #32092 实测边界）</h2>
<p dir="auto"><strong><img src="https://lcz.me/assets/plugins/nodebb-plugin-emoji/emoji/android/2705.png?v=301515bb865" class="not-responsive emoji emoji-android emoji--white_check_mark" style="height:23px;width:auto;vertical-align:middle" title="✅" alt="✅" /> 支持（单卡、<code>--tp 1</code>）：</strong></p>
<ul>
<li>BF16 / FP16 稠密模型</li>
<li>在线 FP8 量化（稠密模型，<code>--quantization fp8</code>）</li>
<li>BF16 / FP8 的 Triton 融合 MoE</li>
<li>GPT-OSS 原生 MXFP4 检查点（<code>triton_kernel</code> MoE runner）</li>
</ul>
<p dir="auto"><strong><img src="https://lcz.me/assets/plugins/nodebb-plugin-emoji/emoji/android/274c.png?v=301515bb865" class="not-responsive emoji emoji-android emoji--x" style="height:23px;width:auto;vertical-align:middle" title="❌" alt="❌" /> 不支持 / 未验证：</strong></p>
<ul>
<li>多卡（张量并行 TP / 专家并行 EP）、custom all-reduce</li>
<li>AITER（必须关闭：<code>SGLANG_USE_AITER=0</code>）</li>
<li>AWQ / GPTQ / Marlin / gguf / modelopt / Quark MXFP4 等其它量化（官方标注「未支持」；AWQ 在 AMD 上走 Triton 反量化，理论上可能能跑，但<strong>不在 gfx1201 验证范围内</strong>，需自行试）</li>
<li>注意力后端只能用 <strong>Triton</strong>（FlashInfer / FA3 等不可用）</li>
</ul>
<hr />
<h2>4. 最优部署步骤（从源码构建，gfx1201）</h2>
<h3>4.0 系统级调优（AMD 官方建议，单卡消费级可选但推荐）</h3>
<pre><code class="language-bash"># 1) 关闭 NUMA 自动平衡（AMD 官方 AMD GPU 文档建议；本机单 NUMA，影响较小）
sudo sh -c 'echo 0 &gt; /proc/sys/kernel/numa_balancing'

# 2) 可选：/etc/default/grub 的 GRUB_CMDLINE_LINUX 追加（AMD MI300X 文档建议，单卡可跳过）
#    pci=realloc=off iommu=pt
#    然后 sudo update-grub &amp;&amp; reboot
</code></pre>
<blockquote>
<p dir="auto">关键点：ROCm 7.2 <strong>原生支持 gfx1201</strong>（自 ROCm 6.4.1 起），<strong>无需</strong> <code>HSA_OVERRIDE_GFX_VERSION</code> 之类的兼容变量。</p>
</blockquote>
<h3>4.1 创建独立虚拟环境（避免污染系统 Python）</h3>
<pre><code class="language-bash">sudo apt install -y python3-venv python3-dev
python3 -m venv ~/sglang-gfx1201
source ~/sglang-gfx1201/bin/activate
pip install -U pip setuptools wheel
</code></pre>
<h3>4.2 安装 ROCm 版 PyTorch（先装，避免被覆盖）</h3>
<p dir="auto">ROCm 7.2.4 对应的官方 pin 是 <strong>torch 2.11.0</strong>（SGLang <code>pyproject_other.toml</code> 的 <code>srt_hip_rocm724</code> extra 明确 <code>torch==2.11.0</code>）：</p>
<pre><code class="language-bash"># 只跑文本 LLM，装 torch 即可；torchvision/torchaudio 仅多模态需要
pip install torch==2.11.0+rocm7.2 --index-url https://download.pytorch.org/whl/rocm7.2
# 需要多模态再加（版本号以 index 实际为准）：
# pip install torchvision==0.26.0+rocm7.2 torchaudio==2.11.0+rocm7.2 --index-url https://download.pytorch.org/whl/rocm7.2
</code></pre>
<p dir="auto">验证 GPU 可见：</p>
<pre><code class="language-bash">python -c "import torch; print(torch.__version__); print(torch.cuda.is_available(), torch.cuda.get_device_name(0))"
# 期望: 2.11.0+rocm7.2 / True / AMD Radeon AI PRO R9700
</code></pre>
<h3>4.3 克隆 SGLang 并检出 PR #32092（gfx1201 支持）</h3>
<pre><code class="language-bash">git clone https://github.com/sgl-project/sglang.git ~/sglang
cd ~/sglang
git fetch origin pull/32092/head:gfx1201
git checkout gfx1201
</code></pre>
<h3>4.4 为 gfx1201 编译 sgl-kernel（单架构）</h3>
<pre><code class="language-bash">cd ~/sglang
export AMDGPU_TARGET=gfx1201
export PYTORCH_ROCM_ARCH=gfx1201
export GPU_ARCHS=gfx1201
export SGLANG_USE_AITER=0        # RDNA4 上必须关闭 AITER

cd sgl-kernel
python setup_rocm.py install
cd ..
</code></pre>
<blockquote>
<p dir="auto"><img src="https://lcz.me/assets/plugins/nodebb-plugin-emoji/emoji/android/26a0.png?v=301515bb865" class="not-responsive emoji emoji-android emoji--warning" style="height:23px;width:auto;vertical-align:middle" title="⚠" alt="⚠" />️ 不要在同一份 sgl-kernel 构建里混入 CDNA 目标（gfx942/gfx950）；gfx1201 必须单独构建（wave32 vs wave64 差异）。</p>
</blockquote>
<h3>4.5 安装 SGLang 所依赖的 triton_kernels 固定版本</h3>
<p dir="auto">PR #32092 依赖特定 revision 的 <code>matmul_ogs</code> API：</p>
<pre><code class="language-bash">pip install --no-deps \
  "git+https://github.com/triton-lang/triton.git@4a24bf0b19a027ec0833b31cbc9ac29add7b17af#subdirectory=python/triton_kernels"
</code></pre>
<h3>4.6 安装 SGLang Python 包（HIP 版）</h3>
<pre><code class="language-bash">cd ~/sglang
# 切到 ROCm 版 pyproject（AMD 官方文档的标准步骤）
rm -rf python/pyproject.toml &amp;&amp; mv python/pyproject_other.toml python/pyproject.toml
pip install -e "python[all_hip_rocm724]"

# 若安装过程把 torch 覆盖成 CUDA 版，强制装回 ROCm 版：
# pip install --force-reinstall --no-deps torch==2.11.0+rocm7.2 --index-url https://download.pytorch.org/whl/rocm7.2
</code></pre>
<blockquote>
<p dir="auto"><code>all_hip_rocm724</code> = 面向 ROCm 7.2.4 / torch 2.11 的依赖集（<code>pyproject_other.toml</code> 中已定义，pin <code>torch==2.11.0</code>）。</p>
</blockquote>
<hr />
<h2>5. 启动服务器（32 GB 显存的最优参数）</h2>
<h3>5.1 推荐方案：Qwen3.8-27B 在线 FP8（gfx1201 已验证的稠密量化路径）</h3>
<pre><code class="language-bash">source ~/sglang-gfx1201/bin/activate
cd ~/sglang
export SGLANG_USE_AITER=0

python3 -m sglang.launch_server \
  --model-path Qwen/Qwen3.8-27B \
  --quantization fp8 \
  --dtype bfloat16 \
  --attention-backend triton \
  --sampling-backend pytorch \
  --model-loader-extra-config '{"enable_multithread_load": false}' \
  --tp 1 \
  --mem-fraction-static 0.90 \
  --chunked-prefill-size 2048 \
  --host 0.0.0.0 \
  --port 30000
</code></pre>
<p dir="auto">参数说明：</p>
<ul>
<li><code>--quantization fp8</code>：<strong>在线</strong> FP8 量化，把 BF16 权重动态量化为 FP8（~28.5 GB），是 gfx1201 上已验证的稠密模型量化方式。</li>
<li><code>--dtype bfloat16</code>：计算 dtype。</li>
<li><code>--attention-backend triton</code>：gfx1201 只能走 Triton 注意力。</li>
<li><code>--sampling-backend pytorch</code>：配合 Triton 使用（AMD 常见组合）。</li>
<li><code>--model-loader-extra-config '{"enable_multithread_load": false}'</code>：PR 文档明确要求——单线程加载，规避 RDNA4 上并行 checkpoint 加载时的 host→device 拷贝卡顿（不影响推理速度）。</li>
<li><code>--tp 1</code>：gfx1201 只支持单卡。</li>
<li><code>--mem-fraction-static 0.90</code>：给 32 GB 显存留 ~2.9 GB 余量，27B-FP8 能放进且不会 OOM。</li>
<li><code>--chunked-prefill-size 2048</code>：小分块 prefill，兼顾 TTFT 与 decode 延迟（27B 混合 GDN 模型上尤其实用）。</li>
</ul>
<blockquote>
<p dir="auto"><img src="https://lcz.me/assets/plugins/nodebb-plugin-emoji/emoji/android/26a0.png?v=301515bb865" class="not-responsive emoji emoji-android emoji--warning" style="height:23px;width:auto;vertical-align:middle" title="⚠" alt="⚠" />️ 在线 FP8 需要先完整下载 BF16 版 Qwen3.8-27B（~54 GB），再量化进显存。下载量大但显存占用只有 ~28.5 GB，32 GB 卡上<strong>只能低并发（bs ≤ 2）</strong>。</p>
</blockquote>
<h3>5.2 备选：直接跑本机缓存的 AWQ 模型（需自行验证）</h3>
<pre><code class="language-bash">python3 -m sglang.launch_server \
  --model-path mattbucci/Qwen3.8-27B-AWQ \
  --quantization awq \
  --dtype bfloat16 \
  --attention-backend triton \
  --sampling-backend pytorch \
  --model-loader-extra-config '{"enable_multithread_load": false}' \
  --tp 1 --host 0.0.0.0 --port 30000
</code></pre>
<ul>
<li>AWQ 4-bit 权重 ~15 GB，显存压力小很多、并发更高。</li>
<li>但 <strong>AWQ 不在 gfx1201 官方验证范围内</strong>（官方文档明说「其它量化格式未支持」）。AMD 上 AWQ 走 Triton 反量化，理论上可行，<strong>建议实测</strong>；报错就回退到 §5.1 的 FP8。</li>
</ul>
<h3>5.3 更稳的小模型（首次跑通验证环境用）</h3>
<pre><code class="language-bash"># Qwen3.5-0.8B（你已缓存）——先验证整条链路能跑通
python3 -m sglang.launch_server \
  --model-path Qwen/Qwen3.5-0.8B \
  --dtype bfloat16 \
  --attention-backend triton \
  --sampling-backend pytorch \
  --model-loader-extra-config '{"enable_multithread_load": false}' \
  --tp 1 --host 127.0.0.1 --port 30000
</code></pre>
<p dir="auto">看到日志输出 <code>The server is fired up and ready to roll!</code> 即启动成功。然后用 OpenAI 兼容接口测试：</p>
<pre><code class="language-bash">curl http://127.0.0.1:30000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{"model":"Qwen/Qwen3.5-0.8B","messages":[{"role":"user","content":"你好"}]}'
</code></pre>
<hr />
<h2>6. 32 GB 显存能装什么（模型选型建议）</h2>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>模型</th>
<th>精度</th>
<th>显存占用</th>
<th>可行性</th>
</tr>
</thead>
<tbody>
<tr>
<td>Qwen3.8-27B</td>
<td>BF16</td>
<td>~54 GB</td>
<td><img src="https://lcz.me/assets/plugins/nodebb-plugin-emoji/emoji/android/274c.png?v=301515bb865" class="not-responsive emoji emoji-android emoji--x" style="height:23px;width:auto;vertical-align:middle" title="❌" alt="❌" /> 放不下</td>
</tr>
<tr>
<td>Qwen3.8-27B</td>
<td>在线 FP8</td>
<td>~28.5 GB</td>
<td><img src="https://lcz.me/assets/plugins/nodebb-plugin-emoji/emoji/android/26a0.png?v=301515bb865" class="not-responsive emoji emoji-android emoji--warning" style="height:23px;width:auto;vertical-align:middle" title="⚠" alt="⚠" />️ 紧，仅低并发（已验证路径）</td>
</tr>
<tr>
<td>Qwen3.8-27B</td>
<td>AWQ 4bit</td>
<td>~15 GB</td>
<td><img src="https://lcz.me/assets/plugins/nodebb-plugin-emoji/emoji/android/26a0.png?v=301515bb865" class="not-responsive emoji emoji-android emoji--warning" style="height:23px;width:auto;vertical-align:middle" title="⚠" alt="⚠" />️ 需实测（AWQ 未验证）</td>
</tr>
<tr>
<td>Qwen3-30B-A3B / Qwen3.8-35B-A3B（MoE）</td>
<td>BF16/FP8</td>
<td>~18–22 GB</td>
<td><img src="https://lcz.me/assets/plugins/nodebb-plugin-emoji/emoji/android/2705.png?v=301515bb865" class="not-responsive emoji emoji-android emoji--white_check_mark" style="height:23px;width:auto;vertical-align:middle" title="✅" alt="✅" /> Triton MoE 已支持，性价比高</td>
</tr>
<tr>
<td>Qwen3-14B / Qwen2.5-14B</td>
<td>BF16</td>
<td>~28 GB</td>
<td><img src="https://lcz.me/assets/plugins/nodebb-plugin-emoji/emoji/android/2705.png?v=301515bb865" class="not-responsive emoji emoji-android emoji--white_check_mark" style="height:23px;width:auto;vertical-align:middle" title="✅" alt="✅" /> 稳</td>
</tr>
<tr>
<td>Qwen3-8B / Qwen2.5-7B</td>
<td>BF16</td>
<td>~16 GB</td>
<td><img src="https://lcz.me/assets/plugins/nodebb-plugin-emoji/emoji/android/2705.png?v=301515bb865" class="not-responsive emoji emoji-android emoji--white_check_mark" style="height:23px;width:auto;vertical-align:middle" title="✅" alt="✅" /> 稳、并发高</td>
</tr>
<tr>
<td>GPT-OSS-20B</td>
<td>原生 MXFP4</td>
<td>~13 GB</td>
<td><img src="https://lcz.me/assets/plugins/nodebb-plugin-emoji/emoji/android/2705.png?v=301515bb865" class="not-responsive emoji emoji-android emoji--white_check_mark" style="height:23px;width:auto;vertical-align:middle" title="✅" alt="✅" /> 已验证（MoE 路径）</td>
</tr>
</tbody>
</table>
<hr />
<h2>7. 性能 / 调优要点</h2>
<ol>
<li><strong>只跑单卡</strong>：gfx1201 不支持 TP/EP，<code>--tp 1</code> 是唯一选择。</li>
<li><strong><code>SGLANG_USE_AITER=0</code> 必须设置</strong>：AITER 是 CDNA 专用，RDNA4 上会报错。</li>
<li><strong>注意力后端锁死 <code>triton</code></strong>，采样后端配 <code>pytorch</code>。</li>
<li><strong><code>--mem-fraction-static</code></strong>：32 GB 卡上给 0.85–0.90，留余量避免 OOM。</li>
<li><strong><code>--chunked-prefill-size 2048</code></strong>：长输入/混合负载下让 decode 不被长 prefill 卡住。</li>
<li><strong>KV cache 量化</strong>：<code>--kv-cache-dtype fp8_e4m3</code> 可进一步省显存（若模型/后端支持）。</li>
<li><strong>大检查点加载慢</strong>：ROCm 下 host 内存注册可能耗时数分钟，属正常；PR 要求单线程加载。</li>
<li>若追求吞吐，优先选 MoE 小参数（Qwen3-30B-A3B 类）而非硬塞 27B 稠密。</li>
</ol>
<hr />
<h2>8. 风险与注意事项</h2>
<ul>
<li><strong>PR #32092 未合并</strong>：属实验代码，可能不跟随最新 main；建议锁定其分支 commit 后不要再 <code>git pull main</code>。</li>
<li><strong>无预编译 wheel / 官方 Docker 镜像支持 gfx1201</strong>：本机也没装 Docker，因此源码构建是唯一现实路径。</li>
<li><strong>量化限制</strong>：不要用 <code>awq_marlin / gptq_marlin / gguf / modelopt_fp8 / modelopt_fp4</code>（Marlin/gguf 是 CUDA 专用）。</li>
<li><strong>构建时间长</strong>：sgl-kernel 全量 HIP 编译可能需 20–60 分钟，<code>MAX_JOBS</code> 可调（CPU 20 线程可设 <code>MAX_JOBS=16</code>）。</li>
<li><strong>gfx1201 与 CDNA 不可混编</strong>：一份构建只对一个架构。</li>
</ul>
<hr />
<h2>9. 备选方案（若 SGLang 实验路径不稳）</h2>
<ol>
<li><strong>vLLM</strong>：已官方支持 <code>gfx1200/gfx1201</code>（其 <code>Dockerfile.rocm_base</code> 的 <code>PYTORCH_ROCM_ARCH</code> 含这两个目标），对 RDNA4 更成熟，同样有 ROCm 版安装/Docker 路径，是「想要稳定 OpenAI 兼容推理服务」时最直接的替代。</li>
<li><strong>llama.cpp / Ollama</strong>：你机器上已装 llama.cpp 且有 <code>Qwen3.8-27B-Uncensored-Q5_K_M.gguf</code>，<strong>现在就能跑</strong>，无需任何额外构建；适合本地对话/低门槛场景，但没有 SGLang 的连续批处理/radix cache 等高级特性。</li>
<li>若必须用 SGLang 的全套特性（radix cache、speculative decoding、结构化输出等），则按本方案 §4–§5 走 PR #32092。</li>
</ol>
<hr />
<h2>10. 参考链接 （感兴趣可以自查）</h2>
<ul>
<li><a href="https://docs.sglang.io/docs/hardware-platforms/amd_gpu" rel="nofollow ugc">SGLang 官方 AMD GPU 文档</a></li>
<li><a href="https://docs.sglang.io/docs/get-started/install" rel="nofollow ugc">SGLang 官方安装文档</a></li>
<li><a href="https://docs.sglang.io/docs/advanced_features/quantization" rel="nofollow ugc">SGLang 量化兼容矩阵</a></li>
<li><a href="https://github.com/sgl-project/sglang/issues/30599" rel="nofollow ugc">GitHub issue #30599：官方 RDNA3/RDNA4 支持追踪</a></li>
<li><a href="https://github.com/sgl-project/sglang/pull/32092" rel="nofollow ugc">GitHub PR #32092：Add experimental gfx1201 inference support（本方案核心）</a></li>
<li><a href="https://download.pytorch.org/whl/rocm7.2" rel="nofollow ugc">PyTorch ROCm 轮子索引</a></li>
<li><a href="https://rocm.docs.amd.com/projects/radeon-ryzen/en/latest/docs/install/installrad/native_linux/install-pytorch.html" rel="nofollow ugc">AMD Radeon/Ryzen PyTorch 安装指南</a></li>
</ul>
<h2>11.后续查资料继续实验及恢复</h2>
<h2>本机硬件 / 软件配置（实测）</h2>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>项目</th>
<th>值</th>
</tr>
</thead>
<tbody>
<tr>
<td>CPU</td>
<td>Intel Core Ultra 7 265K（Arrow Lake，20 核 20 线程，最高 5.5 GHz，单 NUMA）</td>
</tr>
<tr>
<td>内存</td>
<td>64 GB，8 GB swap</td>
</tr>
<tr>
<td>GPU</td>
<td>AMD Radeon AI PRO R9700（gfx1201 / RDNA4 / Navi 48，64 CU，300W）</td>
</tr>
<tr>
<td>显存</td>
<td>32 GB</td>
</tr>
<tr>
<td>硬盘</td>
<td>Kingston NV2 915 GB NVMe</td>
</tr>
<tr>
<td>系统</td>
<td>Ubuntu 24.04.4 LTS，内核 7.0.0-31-generic</td>
</tr>
<tr>
<td>ROCm</td>
<td>7.2.4（HIP 7.2.5），amdgpu 驱动 7.1.3</td>
</tr>
<tr>
<td>Python</td>
<td>3.12.3</td>
</tr>
</tbody>
</table>
<hr />
<h2>12、SGLang 调研结论</h2>
<ol>
<li>SGLang 官方 ROCm 支持只覆盖数据中心卡 <code>gfx942</code>（MI300）、<code>gfx950</code>（MI350）；消费级 RDNA4 <code>gfx1201</code> 属<strong>实验性、未合并</strong>（官方 tracking issue #30599，PR #32092）。</li>
<li>最新稳定版 v0.5.19 的 sgl-kernel 白名单<strong>不含 gfx1201</strong>，需从源码 + 社区补丁构建。</li>
<li>已在本机从源码（release/v0.5.18 + gfx1201 补丁）构建并部署，模型 Qwen3.8-27B-AWQ。</li>
</ol>
<h2>13、SGLang 部署结果（已被清理，此处留档）</h2>
<ul>
<li>部署形式：systemd 用户服务 <code>sglang</code>，端点 <code>http://127.0.0.1:30001</code>。</li>
<li>配置：AWQ 4-bit + float16 + triton 注意力 + CUDA graph 解码，显存 ~29.9/32 GB。</li>
<li>实测速度：<strong>~4.3 tok/s</strong>（27B AWQ 在 RDNA4 上走未优化 Triton 反量化，偏慢）。</li>
<li>结论：27B 在 R9700 上物理上限约 16.6 tok/s（社区 70 补丁 + FP8 极限），达不到 50 tok/s。</li>
</ul>
<h2>14、快速方案研究结论</h2>
<ul>
<li>要 ≥50 tok/s 只能换 <strong>7–8B 小模型</strong>，实测 ~98 tok/s（llama.cpp/Ollama 原生 gfx1201）。</li>
<li>本机 llama.cpp（HIP 后端）实测 27B 可达 <strong>~38–57 tok/s</strong>，远快于 SGLang 的 4.3 tok/s。</li>
</ul>
<h2>15、最终清理（按用户要求）</h2>
<p dir="auto"><strong>已删除：</strong></p>
<ul>
<li>SGLang 运行服务（systemd 用户单元 <code>sglang.service</code> + 软链）</li>
<li><code>~/sglang-test/</code> 整个目录（含 25GB venv、227MB 源码、全部脚本与日志，共约 45GB）</li>
<li><code>~/.cache/sglang</code> 编译缓存</li>
<li><code>loginctl enable-linger</code>（已还原为 disable）</li>
<li>桌面 5 个 SGLang 相关文档（.md / .pdf）</li>
</ul>
<p dir="auto"><strong>已保留（模型文件）：</strong></p>
<ul>
<li><code>~/models/Qwen3.8-27B-AWQ</code>（18GB，HF 格式 AWQ 模型）</li>
<li><code>~/models/Qwen3.5-0.8B</code>（1.7GB）</li>
<li><code>~/models/qwen3.8/</code>（38GB：Qwen3.8-27B-Uncensored-Q5_K_M.gguf、Qwen3.8-27B-Q5_K_M.gguf、mmproj-f16.gguf）</li>
</ul>
<h2>16、llama.cpp 恢复与测试（当前状态）</h2>
<ul>
<li>服务：systemd <strong><code>qwen38.service</code></strong>（<code>active</code> 运行中 + <code>enabled</code> 开机自启）</li>
<li>启动命令：<code>/home/magicz890/llama.cpp/build/bin/llama-server</code>
<ul>
<li>模型 <code>-m Qwen3.8-27B-Uncensored-Q5_K_M.gguf</code> + <code>--mmproj mmproj-f16.gguf</code></li>
<li>别名 <code>--alias qwen3.8</code>，上下文 <code>-c 131072</code>（128K），KV 量化 <code>q8_0</code></li>
<li>推测解码 <code>--spec-type draft-mtp --spec-draft-n-max 2</code>，flash attention <code>-fa on</code></li>
<li><code>-ngl all</code>（全 GPU）、<code>--host 0.0.0.0 --port 8080</code></li>
</ul>
</li>
<li>健康检查：<code>/health</code> → <code>{"status":"ok"}</code>；<code>/v1/models</code> 正常（含多模态能力）</li>
<li>推理测试：中文输出正确、3 路并发全 200、无错误日志</li>
<li><strong>实测解码速度：长生成 ~50 tok/s，短回答 90–105 tok/s（MTP 命中时）</strong></li>
</ul>
<h2>17、最终状态一览</h2>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>项</th>
<th>状态</th>
</tr>
</thead>
<tbody>
<tr>
<td>SGLang 服务/软件/缓存/文档</td>
<td>已全部删除（零残留）</td>
</tr>
<tr>
<td>模型文件</td>
<td>保留在 <code>~/models/</code>（共 ~57GB）</td>
</tr>
<tr>
<td>llama.cpp（qwen38.service）</td>
<td>运行中、自启、端口 8080、稳定</td>
</tr>
<tr>
<td>桌面文件</td>
<td>AMD_AI_Pro_R9700_SGLang_部署研究报告、ceshi/、llama_cpp服务端待机诊断报告.pdf、本文件</td>
</tr>
</tbody>
</table>
<hr />
<h2>常用管理命令</h2>
<pre><code class="language-bash"># llama.cpp 服务
systemctl status qwen38.service          # 查看状态
sudo systemctl restart qwen38.service    # 重启
journalctl -u qwen38.service -f          # 看日志

# 测试接口
curl http://127.0.0.1:8080/health
curl http://127.0.0.1:8080/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{"model":"qwen3.8","messages":[{"role":"user","content":"你好"}]}'
</code></pre>
]]></description><link>https://lcz.me/topic/1583</link><generator>RSS for Node</generator><lastBuildDate>Wed, 09 Sep 2026 22:53:48 GMT</lastBuildDate><atom:link href="https://lcz.me/topic/1583.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 09 Sep 2026 11:34:49 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to 测试SGLang 部署方案后最终恢复llama.cpp方案 —— 单卡AMD Radeon AI PRO R9700（gfx1201 / RDNA4） on Wed, 09 Sep 2026 17:09:38 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/paul-hou" aria-label="Profile: paul-hou">@<bdi>paul-hou</bdi></a> 是的</p>
]]></description><link>https://lcz.me/post/16936</link><guid isPermaLink="true">https://lcz.me/post/16936</guid><dc:creator><![CDATA[Magic629]]></dc:creator><pubDate>Wed, 09 Sep 2026 17:09:38 GMT</pubDate></item><item><title><![CDATA[Reply to 测试SGLang 部署方案后最终恢复llama.cpp方案 —— 单卡AMD Radeon AI PRO R9700（gfx1201 / RDNA4） on Wed, 09 Sep 2026 12:05:17 GMT]]></title><description><![CDATA[<p dir="auto">SGLang沒雙卡似乎玩不起來</p>
]]></description><link>https://lcz.me/post/16885</link><guid isPermaLink="true">https://lcz.me/post/16885</guid><dc:creator><![CDATA[paul hou]]></dc:creator><pubDate>Wed, 09 Sep 2026 12:05:17 GMT</pubDate></item></channel></rss>