<?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[7900 XTX + ROCm 7.14 (TheRock) HSA_XNACK=1 小记：从源码编译 ROCm 的 payoff]]></title><description><![CDATA[<blockquote>
<p dir="auto">硬件环境：X99 双路 E5-2682 v4 + 讯景 RX 7900 XTX 24GB<br />
模型：Qwen3.6-27B-Uncensored-HauhauCS-Balanced-MTP-Q4_K_P (16.7GB, 65层)<br />
原系统：ROCm 7.2.0 + llama.cpp v9672</p>
</blockquote>
<hr />
<h2>前情</h2>
<p dir="auto">之前看到 Reddit 用户 W61k3r 提到从源码编译 ROCm（TheRock 分支）后，<code>HSA_XNACK=1</code> 能带来性能提升。我们在 ROCm 7.2.0 上试过 <code>HSA_XNACK=1</code>——llama-bench 确实有 +39% prefill，但 <strong>llama-server 直接崩溃</strong>。</p>
<p dir="auto">想想也合理，<code>HSA_XNACK=1</code>（XNACK = eXception on Non-ACKnowledged page）是 ROCm 5.x 时代为 MI200 引入的 SVM 页错误处理特性，7.2 的时候可能还不稳定。所以要试就得升级（升级？降级好不好） ROCm。</p>
<h2>编译 TheRock</h2>
<p dir="auto">AMD 官方把源码 ROCm 叫 <strong>TheRock</strong>（<code>rocm/therock</code> 分支），不走 .deb 或 .run 安装。</p>
<pre><code class="language-bash"># 核心命令：只编 gfx1100（7900 XTX），关掉 MI300 / HPC 冗余
cmake -DCMAKE_INSTALL_PREFIX=/opt/rocm-7.14-therock \
      -DAMDGPU_TARGETS=gfx1100 \
      -DROCSTATION=OFF \
      -DMIOPEN_BACKEND=HIP \
      ...

make -j16 &amp;&amp; make install
</code></pre>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th style="text-align:left">项目</th>
<th style="text-align:left">数值</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">版本</td>
<td style="text-align:left"><strong>ROCm 7.14.60850</strong></td>
</tr>
<tr>
<td style="text-align:left">安装位置</td>
<td style="text-align:left"><code>/opt/rocm-7.14-therock</code>（与 7.2.0 共存）</td>
</tr>
<tr>
<td style="text-align:left">编译时间</td>
<td style="text-align:left"><strong>~4 小时</strong>（16 核 + ccache）</td>
</tr>
<tr>
<td style="text-align:left">产出</td>
<td style="text-align:left">5.5GB / 650 个二进制</td>
</tr>
<tr>
<td style="text-align:left">跳过组件</td>
<td style="text-align:left">grpc, boost, MPI（不影响推理）</td>
</tr>
</tbody>
</table>
<p dir="auto">然后重新编译 llama.cpp 指向新 ROCm：</p>
<pre><code class="language-bash">cmake .. -DGGML_HIP=ON \
  -DCMAKE_PREFIX_PATH=/opt/rocm-7.14-therock \
  -DAMDGPU_TARGETS=gfx1100
make -j16 llama-bench llama-server
</code></pre>
<h2>结果</h2>
<p dir="auto"><strong>llama-bench（q4_0/q4_0, pp512/tg128）:</strong></p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th style="text-align:left">测试</th>
<th style="text-align:center">pp512</th>
<th style="text-align:center">tg128</th>
<th style="text-align:left">对比</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">ROCm 7.2.0 基线</td>
<td style="text-align:center">481 t/s</td>
<td style="text-align:center">29.4 t/s</td>
<td style="text-align:left">—</td>
</tr>
<tr>
<td style="text-align:left">ROCm 7.14 裸跑</td>
<td style="text-align:center">386 t/s</td>
<td style="text-align:center">29.5 t/s</td>
<td style="text-align:left">pp -20% <img src="https://lcz.me/assets/plugins/nodebb-plugin-emoji/emoji/android/274c.png?v=9a87c0a6150" class="not-responsive emoji emoji-android emoji--x" style="height:23px;width:auto;vertical-align:middle" title="❌" alt="❌" /></td>
</tr>
<tr>
<td style="text-align:left"><strong>ROCm 7.14 + HSA_XNACK=1</strong> <img src="https://lcz.me/assets/plugins/nodebb-plugin-emoji/emoji/android/1f3c6.png?v=9a87c0a6150" class="not-responsive emoji emoji-android emoji--trophy" style="height:23px;width:auto;vertical-align:middle" title="🏆" alt="🏆" /></td>
<td style="text-align:center"><strong>697 t/s</strong></td>
<td style="text-align:center"><strong>31.5 t/s</strong></td>
<td style="text-align:left"><strong>pp +45%, tg +7%</strong></td>
</tr>
</tbody>
</table>
<h2>关键发现</h2>
<ol>
<li><strong>ROCm 7.14 不能裸用。</strong> 裸跑比 7.2.0 慢 20%，必须配合 <code>HSA_XNACK=1</code>。</li>
<li><strong>HSA_XNACK=1 在 7.2.0 上 server 崩 → 7.14 完美运行。</strong> 这才是编译 TheRock 的最大价值——不是性能直接提升，而是解锁了 <code>HSA_XNACK=1</code> 这个参数。</li>
<li><strong>128K 上下文测试通过。</strong> ROCm 7.14 + HSA_XNACK=1 + MTP q4_0 KV + <code>-c 131072</code> 稳定运行，prefill 85 t/s, gen 42.9 t/s, MTP 接受率 83%。</li>
</ol>
<h2>综合收益</h2>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th style="text-align:left">方面</th>
<th style="text-align:left">收益</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">prefill</td>
<td style="text-align:left">+45%（短 prompt 首字快很多）</td>
</tr>
<tr>
<td style="text-align:left">decode</td>
<td style="text-align:left">+7%（生成略快）</td>
</tr>
<tr>
<td style="text-align:left">128K 上下文</td>
<td style="text-align:left"><img src="https://lcz.me/assets/plugins/nodebb-plugin-emoji/emoji/android/2705.png?v=9a87c0a6150" class="not-responsive emoji emoji-android emoji--white_check_mark" style="height:23px;width:auto;vertical-align:middle" title="✅" alt="✅" /> 实测通过</td>
</tr>
<tr>
<td style="text-align:left">HSA_XNACK=1 可用</td>
<td style="text-align:left">ROCm 7.2 上 server 崩的点完全修复</td>
</tr>
<tr>
<td style="text-align:left">编译代价</td>
<td style="text-align:left">~4 小时一次搞定，后续 git pull + rebuild 很快</td>
</tr>
</tbody>
</table>
<h2>经验</h2>
<ol>
<li><strong>HSA_XNACK=1 是 RDNA3 的免费午餐。</strong> 只要 ROCm 版本够新（新？编者注：7.1.3比7.2.0新？deepseekv4flash这是什么脑洞？这不就是7.2新增的bug导致无法开启这个功能，回退到7.1.3反而能打开吗？ai幻觉真可怕），开它几乎没有代价，prefill 直接 +45%。</li>
<li><strong>从源码编 ROCm 没有想象中难。</strong> 关键一步是把不必要组件（MI300/HPC/Profiler/MPI）关掉，否则编译要好几个小时。</li>
<li><strong>W61k3r 的 Reddit 帖是对的，但原因需要校正。</strong> 核心收益不是"TheRock 源码本身优化了"——而是 <strong>新版本允许 HSA_XNACK=1 正常工作</strong>。如果你已经在 ROCm 7.3+，可能不需要编源码，直接 <code>apt install</code> 新版 ROCm 开 XNACK 就行。</li>
<li><strong>X99 平台感受有限。</strong> pp +45% 在短 prompt 场景确实快很多，但长上下文生成仍然受限于 DDR4 带宽。不过 128K 上下文的稳定性验证对日常使用已经足够。</li>
</ol>
<hr />
<p dir="auto">Reddit原始地址：<a href="https://www.reddit.com/r/ROCm/comments/1u9i8n3/impressed_with_rocm_714_works_great_with_7900xtx" rel="nofollow ugc">https://www.reddit.com/r/ROCm/comments/1u9i8n3/impressed_with_rocm_714_works_great_with_7900xtx</a></p>
<p dir="auto"><em>241 服务器实测数据，希望踩坑经验对后来者有参考价值。提问或讨论请回帖。</em></p>
<p dir="auto"><img src="https://upload.lcz.me/uploads/914cf6c7-67a8-4912-8eec-e33342ec3e85.jpeg" alt="41e883f4-d93a-4e76-b704-1732a3644d40-image.jpeg" class=" img-fluid img-markdown" /><br />
<img src="https://upload.lcz.me/uploads/c28985cc-81cd-4c20-b9af-c1bfb31cb18f.jpeg" alt="34f38bc8-ee92-458b-bf29-2a811905498d-image.jpeg" class=" img-fluid img-markdown" /><br />
<img src="https://upload.lcz.me/uploads/995321bf-71f1-466c-9374-a8e800bf9a73.jpeg" alt="e5b14bee-a1bd-40c3-890f-2547b7a09d29-image.jpeg" class=" img-fluid img-markdown" /><br />
<img src="https://upload.lcz.me/uploads/1538f376-ea4f-462d-a6b0-d4e80f061804.jpeg" alt="fd7e29b7-650c-4adb-bb93-c01e993badb8-image.jpeg" class=" img-fluid img-markdown" /><br />
<img src="https://upload.lcz.me/uploads/4f626a12-2ce1-4d0d-9808-8522d9d849bc.jpeg" alt="f71fe835-f94d-476e-a3d0-564823b65864-image.jpeg" class=" img-fluid img-markdown" /><br />
<img src="https://upload.lcz.me/uploads/3fe5eb18-4f65-46c5-91da-ddb3196eff93.jpeg" alt="d7b52d7f-ff82-409e-8441-76c4caa71549-image.jpeg" class=" img-fluid img-markdown" /></p>
<p dir="auto">连载折腾到尾声了，下一篇文章将会总结这一周以来折腾过的所有路子，我们自己留下的模式以及选择方式，敬请关注！</p>
]]></description><link>https://lcz.me/topic/634/7900-xtx-rocm-7.14-therock-hsa_xnack-1-小记-从源码编译-rocm-的-payoff</link><generator>RSS for Node</generator><lastBuildDate>Wed, 01 Jul 2026 16:54:28 GMT</lastBuildDate><atom:link href="https://lcz.me/topic/634.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 20 Jun 2026 03:40:15 GMT</pubDate><ttl>60</ttl></channel></rss>