<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Hardware on Tarragon</title><link>https://tarrragon.github.io/blog/tags/hardware/</link><description>Recent content in Hardware on Tarragon</description><generator>Hugo -- gohugo.io</generator><language>zh-TW</language><copyright>Tarragon (CC BY 4.0)</copyright><lastBuildDate>Tue, 12 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://tarrragon.github.io/blog/tags/hardware/index.xml" rel="self" type="application/rss+xml"/><item><title>5.0 VRAM + RAM 分層預算</title><link>https://tarrragon.github.io/blog/llm/05-discrete-gpu/vram-ram-budget/</link><pubDate>Tue, 12 May 2026 00:00:00 +0000</pubDate><guid>https://tarrragon.github.io/blog/llm/05-discrete-gpu/vram-ram-budget/</guid><description>&lt;p>PC 場景跑本地 LLM 的判讀模型本質跟 &lt;a href="https://tarrragon.github.io/blog/llm/00-foundations/hardware-memory-budget/" data-link-title="0.5 Apple Silicon 記憶體預算" data-link-desc="記憶體決定能跑什麼，Q4 量化下的可運作模型對照與系統保留">Mac 統一記憶體&lt;/a> 不同：Mac 是一塊預算切系統 / 模型 / &lt;a href="https://tarrragon.github.io/blog/llm/knowledge-cards/kv-cache/" data-link-title="KV Cache" data-link-desc="已處理 token 的 attention 中間結果暫存：避免重算、加速後續生成">KV cache&lt;/a>、PC 是 &lt;a href="https://tarrragon.github.io/blog/llm/knowledge-cards/vram/" data-link-title="VRAM" data-link-desc="顯卡上的記憶體、跟系統 RAM 是兩塊獨立預算、決定能載入多大模型權重跟 KV cache">VRAM&lt;/a> 跟系統 RAM 兩塊&lt;strong>分層預算&lt;/strong>、靠 &lt;a href="https://tarrragon.github.io/blog/llm/knowledge-cards/pcie/" data-link-title="PCIe" data-link-desc="PC 上連接 GPU 跟主機板的高速序列匯流排、影響模型載入速度跟 MoE 卸載時的推論吞吐">PCIe&lt;/a> 連起來。本章把「16GB 5060 Ti 能跑 30B 嗎」這類含糊說法、換成可操作的兩塊預算判讀。生字速度上限主要受 &lt;a href="https://tarrragon.github.io/blog/llm/knowledge-cards/memory-bandwidth/" data-link-title="Memory Bandwidth" data-link-desc="記憶體每秒能讀寫多少 bytes：決定本地 LLM 生字速度的真正瓶頸">memory bandwidth&lt;/a> 影響、跟 &lt;a href="https://tarrragon.github.io/blog/llm/knowledge-cards/unified-memory/" data-link-title="Unified Memory Architecture" data-link-desc="Apple Silicon 讓 CPU / GPU / NE 共用同一塊記憶體：跑大模型的優勢來源">統一記憶體&lt;/a> 的 Mac 場景判讀軸不同。&lt;/p>
&lt;p>讀完本章後、你可以對自己這台 PC 直接回答：能跑哪些模型、要不要做 MoE 卸載、KV cache 該量化到哪一級、context 能開多大、系統 RAM 容量該不該升級。&lt;/p>
&lt;h2 id="本章目標">本章目標&lt;/h2>
&lt;p>讀完本章後、你應該能：&lt;/p>
&lt;ol>
&lt;li>看 PC 規格（VRAM + RAM）立刻知道能跑哪一級的模型、需不需要卸載。&lt;/li>
&lt;li>理解為什麼 16GB VRAM + 64GB RAM 跑 30B MoE 比跑 14B Dense 全載 VRAM 划算。&lt;/li>
&lt;li>判讀 KV cache 量化跟 context 長度的權衡。&lt;/li>
&lt;li>判斷自己這台 PC 適不適合跑本地 LLM、瓶頸在 VRAM 還是 RAM。&lt;/li>
&lt;/ol>
&lt;h2 id="pc-記憶體預算的基本算式">PC 記憶體預算的基本算式&lt;/h2>
&lt;p>PC 跑本地 LLM 的預算拆成兩塊、各有自己的容量上限：&lt;/p>





&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-text" data-lang="text">&lt;span class="line">&lt;span class="ln">1&lt;/span>&lt;span class="cl">VRAM = 顯卡記憶體（GDDR6/7）= 高頻寬區
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">2&lt;/span>&lt;span class="cl"> └── 通常需放：當前活躍模型層 + KV cache + 推論中間結果
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">3&lt;/span>&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">4&lt;/span>&lt;span class="cl">系統 RAM = 主機板上的 DDR4/5 = 高容量區
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">5&lt;/span>&lt;span class="cl"> └── 可以放：MoE 不活躍專家層（透過 --n-cpu-moe）、暫存權重、context cache
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">6&lt;/span>&lt;span class="cl"> └── 通常需保留：作業系統 + 應用程式 + GPU driver pinned memory
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">7&lt;/span>&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">8&lt;/span>&lt;span class="cl">PCIe = 兩塊預算之間的橋
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">9&lt;/span>&lt;span class="cl"> └── 5.0 x16 廠商標稱單向約 64 GB/s、模型載入時較常成為瓶頸、推論時通常較少&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>兩塊預算各自的估算原則（具體數值依硬體世代、廠商規格與驅動版本而變化、本章引用的數字以廠商規格表為主、實際吞吐受系統配置影響）：&lt;/p>
&lt;ol>
&lt;li>&lt;strong>VRAM 容量&lt;/strong>：決定能放多少模型層。Dense 模型若要生字快、所有層都該在 VRAM；MoE 模型可以只放「共用層 + 部分專家」、其餘走 RAM。&lt;/li>
&lt;li>&lt;strong>VRAM 頻寬&lt;/strong>：影響生字速度上限。常見消費級 NVIDIA 卡的廠商標稱頻寬（向廠商規格表查驗）大致落在數百 GB/s 到約 1 TB/s 級的區間（如 RTX 5060 Ti 16GB 標稱約 448 GB/s、RTX 5070 Ti 約 896 GB/s）；生字 t/s 約等於「VRAM 頻寬 ÷ 模型每 token 讀取的 bytes」、但實際吞吐還受 CUDA backend、量化方式與 batch size 影響。&lt;/li>
&lt;li>&lt;strong>系統 RAM 容量&lt;/strong>：影響 MoE 卸載與多模型併存的彈性。對 16GB VRAM 卡而言、64GB DDR5 通常足以支撐重度 MoE 卸載、128GB 對多模型併存或長 context cache 更從容、32GB 則會限縮可卸載的層數。&lt;/li>
&lt;li>&lt;strong>系統 RAM 頻寬&lt;/strong>：影響卸載到 CPU 的層走多快。DDR5 6000 雙通道的標稱頻寬約 96 GB/s（依主機板、CMK 模組與時序變動）、相對 VRAM 慢約一個量級、所以卸載層數要跟可接受的生字速度損失一起調。&lt;/li>
&lt;li>&lt;strong>PCIe 頻寬&lt;/strong>：模型載入時通常是瓶頸、單人推論時較少成為主要瓶頸（除非每 token 都需要把大量卸載權重拉回 VRAM）。&lt;/li>
&lt;/ol>
&lt;h2 id="pc-配置與可運作模型對照">PC 配置與可運作模型對照&lt;/h2>
&lt;p>下表整理 2026 年 5 月常見消費級 NVIDIA GPU 加上不同 RAM 容量、可運作模型的數量級對照。體感標籤是社群常見回報的相對描述、實際因 llama.cpp / Ollama 版本、CUDA backend、模型量化版本、&lt;code>--n-cpu-moe&lt;/code> 設定與工作流類型而變動、需自行實測校準。&lt;/p></description><content:encoded><![CDATA[<p>PC 場景跑本地 LLM 的判讀模型本質跟 <a href="/blog/llm/00-foundations/hardware-memory-budget/" data-link-title="0.5 Apple Silicon 記憶體預算" data-link-desc="記憶體決定能跑什麼，Q4 量化下的可運作模型對照與系統保留">Mac 統一記憶體</a> 不同：Mac 是一塊預算切系統 / 模型 / <a href="/blog/llm/knowledge-cards/kv-cache/" data-link-title="KV Cache" data-link-desc="已處理 token 的 attention 中間結果暫存：避免重算、加速後續生成">KV cache</a>、PC 是 <a href="/blog/llm/knowledge-cards/vram/" data-link-title="VRAM" data-link-desc="顯卡上的記憶體、跟系統 RAM 是兩塊獨立預算、決定能載入多大模型權重跟 KV cache">VRAM</a> 跟系統 RAM 兩塊<strong>分層預算</strong>、靠 <a href="/blog/llm/knowledge-cards/pcie/" data-link-title="PCIe" data-link-desc="PC 上連接 GPU 跟主機板的高速序列匯流排、影響模型載入速度跟 MoE 卸載時的推論吞吐">PCIe</a> 連起來。本章把「16GB 5060 Ti 能跑 30B 嗎」這類含糊說法、換成可操作的兩塊預算判讀。生字速度上限主要受 <a href="/blog/llm/knowledge-cards/memory-bandwidth/" data-link-title="Memory Bandwidth" data-link-desc="記憶體每秒能讀寫多少 bytes：決定本地 LLM 生字速度的真正瓶頸">memory bandwidth</a> 影響、跟 <a href="/blog/llm/knowledge-cards/unified-memory/" data-link-title="Unified Memory Architecture" data-link-desc="Apple Silicon 讓 CPU / GPU / NE 共用同一塊記憶體：跑大模型的優勢來源">統一記憶體</a> 的 Mac 場景判讀軸不同。</p>
<p>讀完本章後、你可以對自己這台 PC 直接回答：能跑哪些模型、要不要做 MoE 卸載、KV cache 該量化到哪一級、context 能開多大、系統 RAM 容量該不該升級。</p>
<h2 id="本章目標">本章目標</h2>
<p>讀完本章後、你應該能：</p>
<ol>
<li>看 PC 規格（VRAM + RAM）立刻知道能跑哪一級的模型、需不需要卸載。</li>
<li>理解為什麼 16GB VRAM + 64GB RAM 跑 30B MoE 比跑 14B Dense 全載 VRAM 划算。</li>
<li>判讀 KV cache 量化跟 context 長度的權衡。</li>
<li>判斷自己這台 PC 適不適合跑本地 LLM、瓶頸在 VRAM 還是 RAM。</li>
</ol>
<h2 id="pc-記憶體預算的基本算式">PC 記憶體預算的基本算式</h2>
<p>PC 跑本地 LLM 的預算拆成兩塊、各有自己的容量上限：</p>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="ln">1</span><span class="cl">VRAM = 顯卡記憶體（GDDR6/7）= 高頻寬區
</span></span><span class="line"><span class="ln">2</span><span class="cl">  └── 通常需放：當前活躍模型層 + KV cache + 推論中間結果
</span></span><span class="line"><span class="ln">3</span><span class="cl">
</span></span><span class="line"><span class="ln">4</span><span class="cl">系統 RAM = 主機板上的 DDR4/5 = 高容量區
</span></span><span class="line"><span class="ln">5</span><span class="cl">  └── 可以放：MoE 不活躍專家層（透過 --n-cpu-moe）、暫存權重、context cache
</span></span><span class="line"><span class="ln">6</span><span class="cl">  └── 通常需保留：作業系統 + 應用程式 + GPU driver pinned memory
</span></span><span class="line"><span class="ln">7</span><span class="cl">
</span></span><span class="line"><span class="ln">8</span><span class="cl">PCIe = 兩塊預算之間的橋
</span></span><span class="line"><span class="ln">9</span><span class="cl">  └── 5.0 x16 廠商標稱單向約 64 GB/s、模型載入時較常成為瓶頸、推論時通常較少</span></span></code></pre></div><p>兩塊預算各自的估算原則（具體數值依硬體世代、廠商規格與驅動版本而變化、本章引用的數字以廠商規格表為主、實際吞吐受系統配置影響）：</p>
<ol>
<li><strong>VRAM 容量</strong>：決定能放多少模型層。Dense 模型若要生字快、所有層都該在 VRAM；MoE 模型可以只放「共用層 + 部分專家」、其餘走 RAM。</li>
<li><strong>VRAM 頻寬</strong>：影響生字速度上限。常見消費級 NVIDIA 卡的廠商標稱頻寬（向廠商規格表查驗）大致落在數百 GB/s 到約 1 TB/s 級的區間（如 RTX 5060 Ti 16GB 標稱約 448 GB/s、RTX 5070 Ti 約 896 GB/s）；生字 t/s 約等於「VRAM 頻寬 ÷ 模型每 token 讀取的 bytes」、但實際吞吐還受 CUDA backend、量化方式與 batch size 影響。</li>
<li><strong>系統 RAM 容量</strong>：影響 MoE 卸載與多模型併存的彈性。對 16GB VRAM 卡而言、64GB DDR5 通常足以支撐重度 MoE 卸載、128GB 對多模型併存或長 context cache 更從容、32GB 則會限縮可卸載的層數。</li>
<li><strong>系統 RAM 頻寬</strong>：影響卸載到 CPU 的層走多快。DDR5 6000 雙通道的標稱頻寬約 96 GB/s（依主機板、CMK 模組與時序變動）、相對 VRAM 慢約一個量級、所以卸載層數要跟可接受的生字速度損失一起調。</li>
<li><strong>PCIe 頻寬</strong>：模型載入時通常是瓶頸、單人推論時較少成為主要瓶頸（除非每 token 都需要把大量卸載權重拉回 VRAM）。</li>
</ol>
<h2 id="pc-配置與可運作模型對照">PC 配置與可運作模型對照</h2>
<p>下表整理 2026 年 5 月常見消費級 NVIDIA GPU 加上不同 RAM 容量、可運作模型的數量級對照。體感標籤是社群常見回報的相對描述、實際因 llama.cpp / Ollama 版本、CUDA backend、模型量化版本、<code>--n-cpu-moe</code> 設定與工作流類型而變動、需自行實測校準。</p>
<table>
  <thead>
      <tr>
          <th>GPU</th>
          <th>VRAM</th>
          <th>RAM 配置</th>
          <th>全載 VRAM 可跑 Dense</th>
          <th>配合 MoE 卸載可跑模型</th>
          <th>體感區段（社群回報）</th>
          <th>備註</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>RTX 4060 / 5060</td>
          <td>8GB</td>
          <td>16GB</td>
          <td>7B Q4</td>
          <td>14B MoE 卸載</td>
          <td>入門體驗</td>
          <td>對寫 code 的中大型任務通常仍須混用雲端</td>
      </tr>
      <tr>
          <td>RTX 4060 Ti / 5060 Ti</td>
          <td>16GB</td>
          <td>32GB</td>
          <td>14B Q4 / 20B Q3</td>
          <td>30B MoE 卸載部分專家層</td>
          <td>可日常使用</td>
          <td>MoE 卸載空間受 32GB RAM 限制</td>
      </tr>
      <tr>
          <td>RTX 4060 Ti / 5060 Ti</td>
          <td>16GB</td>
          <td>64GB</td>
          <td>14B Q4</td>
          <td>30B MoE Q4 + 重度卸載</td>
          <td>多數寫 code 任務流暢</td>
          <td>2026 年常被列為合理起點之一</td>
      </tr>
      <tr>
          <td>RTX 4070 Ti / 5070 Ti</td>
          <td>16GB</td>
          <td>64GB</td>
          <td>14B Q4</td>
          <td>30B MoE Q4 / 70B MoE Q3 卸載</td>
          <td>補完體感更接近即時</td>
          <td>VRAM 頻寬規格上接近 5060 Ti 兩倍</td>
      </tr>
      <tr>
          <td>RTX 4090</td>
          <td>24GB</td>
          <td>64GB</td>
          <td>32B Q4 / 70B Q3</td>
          <td>70B MoE Q4</td>
          <td>大型任務也流暢</td>
          <td>Dense 70B 可在 Q3 量化下全載</td>
      </tr>
      <tr>
          <td>RTX 5090</td>
          <td>32GB</td>
          <td>64GB ~ 128GB</td>
          <td>70B Q4</td>
          <td>100B+ MoE 卸載</td>
          <td>容量充裕</td>
          <td>適合 70B Dense 主力或多模型併存場景</td>
      </tr>
  </tbody>
</table>
<p>讀這張表要注意四件事：</p>
<ol>
<li><strong>「全載 VRAM」跟「卸載」是兩種選型</strong>。全載生字較快但模型較小、卸載生字較慢但能跑較大模型；MoE 結構讓兩者的速度差距小於 Dense 模型。</li>
<li><strong>量化等級可以調整</strong>。16GB VRAM 跑 30B MoE Q4 比跑 30B MoE Q5 留下更多 VRAM 餘量、給 KV cache 跟併發數使用。</li>
<li><strong>RAM 容量影響選型</strong>。32GB RAM 配 16GB VRAM 時、可卸載層數有限、能跑的最大 MoE 規模受限；64GB RAM 配 16GB VRAM 通常足以支撐 30B 級 MoE 的重度卸載。</li>
<li><strong>多卡升級建議在單卡跑穩後評估</strong>。雙 GPU 在 llama.cpp 上要設定 <a href="/blog/llm/knowledge-cards/llama-cpp-tensor-split/" data-link-title="llama.cpp Tensor Split" data-link-desc="llama.cpp 多 GPU 場景中把模型張量按比例切到多張卡上的權重分配機制">tensor split</a>、實際速度提升依模型與配置變化；消費級主機板的 PCIe lane 分配（常見一條 x16 + 一條 x4）也會影響多卡效益。建議先把單卡跑熟、再依瓶頸決定是否多卡。</li>
</ol>
<h2 id="為什麼-16gb-vram--64gb-ram-常被列為寫-code-場景的合理起點">為什麼 16GB VRAM + 64GB RAM 常被列為寫 code 場景的合理起點</h2>
<p>這個配置（RTX 5060 Ti 16GB / RTX 5070 Ti 16GB + 64GB DDR5）在 2026 年 5 月的 PC 本地 LLM 社群裡、常被作為「寫 code 用途」的價格效能比合理起點。對應的判讀軸有四條：</p>
<ol>
<li><strong>30B 級 MoE 模型在多數寫 code 任務已能勝任</strong>。Qwen3-30B-A3B 等 <a href="/blog/llm/knowledge-cards/moe/" data-link-title="Mixture of Experts (MoE)" data-link-desc="把 transformer 的 FFN 層拆成多個專家、每 token 只啟用少數、總參數大但每 token 計算量小的架構">MoE</a> 模型在公開 coding benchmark 上的回報（如 Qwen 官方技術報告、社群 SWE-bench 跑分）顯示表現接近大型 Dense 模型；具體分數依任務類型、prompt 設計與評測版本變動、需參考各模型官方文件或 <a href="/blog/llm/knowledge-cards/swe-bench/" data-link-title="SWE-bench" data-link-desc="用真實 GitHub issue 量化 LLM coding 能力的 benchmark">SWE-bench 卡片</a>。模型總參數與 <a href="/blog/llm/knowledge-cards/active-parameter/" data-link-title="Active Parameter" data-link-desc="MoE 模型每生成一個 token 實際參與計算的參數量、跟模型總參數量不同、影響推論速度上限">active parameter</a> 是兩個獨立軸、影響記憶體需求跟生字速度上限。</li>
<li><strong>MoE 卸載讓 16GB VRAM 能載入 30B 級模型</strong>。把約 30 層 MoE 專家權重留在 RAM、其餘放 VRAM、Qwen3-30B-A3B Q4 量化下整套模型總記憶體約落在 18 ~ 22GB 區間、其中常見約 12 ~ 14GB 在 VRAM（實際依模型結構與 <code>--n-cpu-moe</code> 設定變化）。</li>
<li><strong>KV cache 量化能在剩餘 VRAM 開大 context</strong>。模型權重放好後、剩餘 VRAM 配上 K=Q8 / V=Q4 的 KV cache 量化、社群常見回報能開到 128K ~ 256K 級 context（依模型 attention 配置變化）、寫 code 場景的長 prompt 較少需要截斷。</li>
<li><strong>零件可分次採購、後續可升級</strong>。相對 Apple Silicon 整機綁定配置、PC 零件（GPU、RAM、CPU、儲存）可分次採購與升級；具體零件價格依在地市場、世代與促銷波動、本文不引用具體幣值。</li>
</ol>
<p>下表是社群討論中常被提及的兩張同代 16GB 卡的相對對照、用意是「同樣 16GB VRAM 但頻寬不同對 throughput 的影響」、不是嚴格 benchmark：</p>
<table>
  <thead>
      <tr>
          <th>顯卡</th>
          <th>VRAM 頻寬（廠商標稱）</th>
          <th>Prefill 數量級</th>
          <th>生成數量級</th>
          <th>可開 context（量化 KV cache 下）</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>RTX 5060 Ti 16GB</td>
          <td>約 448 GB/s</td>
          <td>數百 t/s</td>
          <td>數十 t/s（較 5070 Ti 低約一半）</td>
          <td>128K ~ 256K 級</td>
      </tr>
      <tr>
          <td>RTX 5070 Ti 16GB</td>
          <td>約 896 GB/s</td>
          <td>約為 5060 Ti 的 2 倍</td>
          <td>約為 5060 Ti 的 2 倍</td>
          <td>128K ~ 256K 級</td>
      </tr>
  </tbody>
</table>
<p>兩張卡的差異主要在 VRAM 頻寬（廠商標稱接近 2 倍）、不在 VRAM 容量。對「同樣的模型能否載入」沒影響、對「生字多快」影響較大。實際 throughput 因驅動版本、模型量化方式、<code>--n-cpu-moe</code> 設定與 prompt 長度而變動、需自行用 <code>llama-bench</code> 或實際工作流校準。</p>
<blockquote>
<p><strong>事實查核註</strong>：表中 prefill / 生成的具體數字是社群討論中常見回報的相對數量級、不是經本文系統實測的 benchmark。VRAM 頻寬以 NVIDIA 廠商規格表為主、實作上會被 GDDR 模組廠商、PCIe 版本、CUDA backend 版本影響。引用前請以最新官方規格表跟 <a href="https://github.com/ggml-org/llama.cpp/discussions">llama.cpp 官方 benchmark</a> 為準。</p></blockquote>
<p>社群常見回報的三個觀察點（同樣需以自身配置實測校準）：</p>
<ol>
<li><code>--n-cpu-moe</code> 數值往上加（如從 20 加到 30）、單張卡的 VRAM 佔用降低、可開的 context 上限拉大、但生成速度也會下降；具體下降幅度依模型 active parameter 比例變化。</li>
<li>KV cache 量化（K=Q8 / V=Q4）相對 fp16 KV cache 體積大幅壓縮、能換取更大 context 上限；寫 code 場景的補完品質影響社群多數回報為小幅或不明顯、但會視 prompt 長度與任務類型而異。</li>
<li>系統 RAM 從 32GB 升到 64GB 後、可卸載的 MoE 層數上限明顯提高、能跑的最大模型規模也跟著拉開；具體層數依模型結構而定。</li>
</ol>
<p>對應的 PC 配置面向（2026 年 5 月、不引用具體幣值）：</p>
<ul>
<li><strong>價格優先</strong>：RTX 5060 Ti 16GB + 64GB DDR5 + 中階 CPU（如 AMD 9900X / Intel 14700K）+ 1TB NVMe。</li>
<li><strong>生字速度優先</strong>：RTX 5070 Ti 16GB + 64GB DDR5 + 中階 CPU。VRAM 容量跟 5060 Ti 相同、頻寬規格接近兩倍。</li>
<li><strong>跑得了 70B 級</strong>：RTX 4090 24GB / RTX 5090 32GB + 64GB ~ 128GB DDR5。</li>
</ul>
<p>若你正準備組新機主要為了跑本地 LLM 寫 code、16GB VRAM + 64GB RAM 是社群常見的合理起點；具體選哪張卡、視預算上限與對生字速度的要求而定。</p>
<h2 id="moe-卸載-vs-全載-dense-的選型差異">MoE 卸載 vs 全載 Dense 的選型差異</h2>
<p>PC 場景有 Mac 沒有的選型變數：<strong>同樣 16GB VRAM、要跑「全載 14B Dense」還是「卸載 30B MoE」？</strong></p>
<p>兩條路線的差異：</p>
<table>
  <thead>
      <tr>
          <th>維度</th>
          <th>全載 14B Dense</th>
          <th>卸載 30B MoE</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>生字速度</td>
          <td>相對較快</td>
          <td>相對較慢、視卸載層數而定</td>
      </tr>
      <tr>
          <td>模型能力</td>
          <td>14B 級、跨檔案重構任務的成功率較 30B 低</td>
          <td>30B 級、跨檔案重構任務社群回報成功率相對較高</td>
      </tr>
      <tr>
          <td>對 RAM 容量需求</td>
          <td>較低（32GB 通常足夠）</td>
          <td>較高（64GB 常見起點、128GB 對重度使用者更從容）</td>
      </tr>
      <tr>
          <td>context 上限</td>
          <td>KV cache 競 VRAM、上限受限</td>
          <td>配合 KV cache 量化、社群回報可開 128K 級以上</td>
      </tr>
      <tr>
          <td>系統熱度與功耗</td>
          <td>GPU 為主負載</td>
          <td>GPU 跟 CPU 同時負擔</td>
      </tr>
  </tbody>
</table>
<p><strong>判讀原則</strong>：寫 code 場景下、模型能力對任務成敗的影響通常比生字速度更顯著；30B 模型能完成的跨檔案任務、生字較慢仍可能勝過 14B 較快但解不出來的情況。若工作流以高頻短補完為主、對生字即時體感要求高、14B Dense 全載仍是合理選擇。實際取捨建議用一週實測校準。</p>
<h2 id="kv-cache-量化與-context-的權衡">KV cache 量化與 context 的權衡</h2>
<p>VRAM 預算扣掉模型權重後、剩下的空間主要給 KV cache。KV cache 跟 context 長度大致成正比、長 context 場景的 VRAM 限制跟 Mac 統一記憶體場景類似、但 PC 多了「量化 KV cache」這個工程選項。</p>
<p>下表為 KV cache 體積的數量級估算（依模型 attention head 數、hidden size、量化策略變化、實際值需用工具測量、本表用於說明量化前後的比例變化）：</p>
<table>
  <thead>
      <tr>
          <th>Context 長度</th>
          <th>KV cache 不量化（數量級）</th>
          <th>KV cache K=Q8 / V=Q4（數量級）</th>
          <th>16GB VRAM 餘量觀察</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>8K tokens</td>
          <td>1 GB 級</td>
          <td>&lt; 0.5 GB</td>
          <td>餘量寬鬆</td>
      </tr>
      <tr>
          <td>32K tokens</td>
          <td>數 GB 級</td>
          <td>1 ~ 2 GB</td>
          <td>量化後仍寬鬆</td>
      </tr>
      <tr>
          <td>128K tokens</td>
          <td>10 GB 級以上</td>
          <td>數 GB 級</td>
          <td>不量化時 VRAM 不足</td>
      </tr>
      <tr>
          <td>256K tokens</td>
          <td>數十 GB 級</td>
          <td>10 GB 級</td>
          <td>量化後接近 VRAM 上限</td>
      </tr>
  </tbody>
</table>
<p>KV cache 量化在寫 code 場景的體感判讀有三條社群常見回報的原則（具體影響因模型、量化版本與工作流而變、需自行實測校準）：</p>
<ol>
<li><strong>K（key）對量化容忍度通常較高</strong>：key 用來計算 attention score、本質是相對量級的比較。社群多數回報指出 K=Q8 相對 fp16 在補完品質上差異不明顯、可作為較安全的起手量化等級。</li>
<li><strong>V（value）對量化敏感度集中在長 context 末尾</strong>：value 是被加權平均的內容、量化誤差會累積進輸出。短 prompt（&lt; 32K）下 V=Q4 跟 fp16 的差異多為小幅；長 prompt（128K+）的對話末尾、社群回報偶爾觀察到「對前文細節記憶較模糊」的情形、但對跨檔案 code 補完任務影響社群多數回報為小。</li>
<li><strong>品質影響在 coding 跟自由創作場景不同</strong>：寫 code 的輸出空間受語法 / 型別 / 編譯限制、KV cache 量化的小幅誤差較容易被約束過濾；自由創作（小說、詩、長對話）對 V 量化較敏感、社群回報品質差異較明顯。</li>
</ol>
<p>實務上、K=Q8 / V=Q4 是 PC 場景開大 context 的常見組合；若觀察到長 prompt 末尾的回答品質下降、可考慮把 V 升回 Q8 或 fp16（代價是 VRAM 佔用上升、context 上限會縮短）。</p>
<p>具體調參邏輯詳見 <a href="/blog/llm/05-discrete-gpu/kv-cache-quantization-strategy/" data-link-title="5.2 KV cache 量化策略" data-link-desc="PC 場景用 K=Q8 / V=Q4 等量化把 KV cache 壓縮、騰出 VRAM 開大 context window 或加併發數的判讀">5.2 KV cache 量化策略</a>。</p>
<h2 id="系統-ram-容量在-pc-場景的角色">系統 RAM 容量在 PC 場景的角色</h2>
<p>Mac 統一記憶體只有一個容量數字、PC 多了「VRAM」跟「系統 RAM」兩個獨立數字。PC 場景的預算分配若全部投入 VRAM、可能忽略系統 RAM 對 MoE 卸載策略的支撐角色。</p>
<p>系統 RAM 在本地 LLM 場景的主要用途（具體佔用量依工作流變化）：</p>
<ol>
<li><strong>作業系統 + 開發工具</strong>：Windows / Linux + VS Code + 瀏覽器、常見佔用約 8 ~ 16GB。</li>
<li><strong>GPU driver pinned memory</strong>：NVIDIA driver 為了 PCIe DMA 會固定一塊系統 RAM、依驅動版本與配置常見約 1 ~ 2GB。</li>
<li><strong>MoE 卸載的專家權重</strong>：跑 30B MoE 卸載多數專家層、所需 RAM 落在 10 GB 級以上；跑 70B MoE 重度卸載通常需要數十 GB 級。具體數字依模型結構與 <code>--n-cpu-moe</code> 設定變化。</li>
<li><strong>多模型併存</strong>：同時跑 coding model + embedding model + 翻譯模型、每個各佔數 GB 級。</li>
<li><strong>page cache / 系統暫存</strong>：Linux 會把剩餘 RAM 用於 page cache、模型 reload 時可加速。</li>
</ol>
<p>對 16GB VRAM 配置而言、64GB RAM 通常足以支撐重度 MoE 卸載、是社群常見的起點容量。32GB RAM 配 16GB VRAM 在重度 MoE 卸載場景容易吃緊、可卸載層數會受限；視工作流類型、32GB 也可能足夠跑全載 Dense 模型。</p>
<h2 id="pcie-頻寬的角色">PCIe 頻寬的角色</h2>
<p>PCIe 在「載入模型」階段較常成為瓶頸、單人推論時通常不是、但 MoE 卸載會讓 PCIe 在推論時也參與資料流：</p>
<ol>
<li><strong>模型載入時</strong>：PCIe 5.0 x16 廠商標稱單向約 64 GB/s（PCIe 4.0 x16 約一半）、實際走完磁碟 → RAM → VRAM 整條路徑的吞吐通常較規格低、模型載入時間視 NVMe 讀取速度、檔案系統與量化格式變動。常見差異在啟動秒數、推論階段一般感受不到。</li>
<li><strong>MoE 卸載推論時</strong>：每 token 啟用的專家層權重需透過 PCIe 從 RAM 拉到 VRAM。以 Qwen3-30B-A3B 為例、每 token 啟用約 3B active parameter；若部分專家層在 RAM、每 token 需透過 PCIe 拉部分權重。單人推論場景下、相對 PCIe 5.0 x16 的可用頻寬佔比通常較小、社群多數回報不是主要瓶頸；併發數高或卸載比例極大時會逐漸顯現。</li>
<li><strong>多卡推論</strong>：多卡 tensor parallel 會密集走 PCIe / NVLink。消費級 GPU 普遍不支援 NVLink、訊息走 PCIe；多卡的吞吐縮放比社群回報相對單卡 + MoE 卸載的線性度差、需依工作流評估。</li>
</ol>
<p>實務上、單卡 + MoE 卸載場景下 PCIe 較少成為主要瓶頸；多卡或極端卸載比例下、PCIe lane 分配（如主機板的 x16 + x4 配置）會明顯影響可達吞吐。</p>
<h2 id="給讀者的決策表">給讀者的決策表</h2>
<p>看完上面的對照後、可以照下表做決策：</p>
<table>
  <thead>
      <tr>
          <th>情境</th>
          <th>建議</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>已有 8GB VRAM 卡、想試本地</td>
          <td>用 Qwen3 7B / Gemma 4 8B 試一週、評估是否值得升級、寫 code 主力可暫時保留雲端</td>
      </tr>
      <tr>
          <td>已有 12GB VRAM 卡（如 3060 / 4070）</td>
          <td>14B Dense Q4 全載 / 20B MoE Q4 卸載、依寫 code 場景速度需求選擇</td>
      </tr>
      <tr>
          <td>已有 16GB VRAM 卡、RAM 32GB</td>
          <td>先評估升級 RAM 到 64GB 再評估 MoE 卸載策略、32GB RAM 配 16GB VRAM 卸載空間有限</td>
      </tr>
      <tr>
          <td>已有 16GB VRAM 卡、RAM 64GB</td>
          <td>Qwen3-30B-A3B MoE Q4 + <code>--n-cpu-moe</code> 約 30 是社群常見起點配置</td>
      </tr>
      <tr>
          <td>已有 24GB VRAM 卡（如 4090）</td>
          <td>32B Dense Q4 全載 / 70B MoE Q4 卸載、依任務類型評估</td>
      </tr>
      <tr>
          <td>已有 32GB VRAM 卡（如 5090）</td>
          <td>70B Dense Q4 全載通常可行、依任務評估是否仍需 MoE 卸載</td>
      </tr>
      <tr>
          <td>正準備組新機、價格優先</td>
          <td>5060 Ti 16GB + 64GB DDR5 + 中階 CPU、整機可分次採購、具體預算依在地零件價格而定</td>
      </tr>
      <tr>
          <td>正準備組新機、追求生字速度</td>
          <td>5070 Ti 16GB + 64GB DDR5、VRAM 頻寬規格相對 5060 Ti 約 2 倍</td>
      </tr>
      <tr>
          <td>正準備組新機、要兼跑 70B</td>
          <td>4090 24GB / 5090 32GB + 64GB ~ 128GB DDR5</td>
      </tr>
  </tbody>
</table>
<h2 id="釐清需求類型個人使用-vs-服務多人">釐清需求類型：個人使用 vs 服務多人</h2>
<p>初次接觸本地 LLM 時、常見的疑問是「是不是要 H100 / H200 等資料中心級配置才能跑」。實際上資料中心級配置的設計目標是<strong>大規模並發推論服務</strong>（同時對許多 client 出 token）、跟單人寫 code 的需求側重不同。釐清需求類型後、硬體選擇會清楚很多。</p>
<p>三條判讀軸：</p>
<ol>
<li><strong>能載入的模型大小</strong>主要受 VRAM 容量影響、跟 GPU 算力等級沒有單一對應關係。16GB VRAM 配 MoE 卸載可載入 30B 級 MoE 模型；資料中心級 GPU 容量更大、能載入更大的 Dense 模型、但對個人寫 code 場景的能力提升不一定線性。</li>
<li><strong>生字速度上限</strong>主要由 VRAM 頻寬影響。消費級高階卡（如 RTX 5070 Ti、4090、5090）的頻寬已足以支撐單人寫 code 場景的補完即時體感、實際差異依模型量化、context 長度與 backend 變化。</li>
<li><strong>大量並發推論</strong>才需要資料中心級配置。單人開 VS Code 跟 LLM 對話、通常不會用到資料中心的並發優勢。</li>
</ol>
<p>對應的決策路徑：先確認需求是「個人寫 code」還是「服務多人」、再選 16GB VRAM + 64GB RAM 級的起點配置、實測一週觀察模型能力是否符合任務需求、再依痛點選擇升級方向（VRAM 容量、頻寬、或多卡）。</p>
<p>升級到能跑 70B 級之前、建議先確認痛點是「模型能力不夠」還是「生字速度不夠」。本地 30B MoE 在多數寫 code 任務上已能勝任、社群多數使用者回報不是每個工作流都需要 70B 級模型；具體判斷需用自己的任務實測。</p>
<h2 id="下一章">下一章</h2>
<p>下一章：<a href="/blog/llm/05-discrete-gpu/moe-cpu-offload-strategy/" data-link-title="5.1 MoE 模型與 CPU 卸載策略" data-link-desc="PC 場景把 MoE 不活躍專家層留在系統 RAM 的判讀：何時值得卸載、卸幾層、對 prefill 跟生成的影響各自不同">5.1 MoE 模型與 CPU 卸載策略</a>、深入 <code>--n-cpu-moe</code> 的判讀。</p>
]]></content:encoded></item><item><title>GPU Compute Backend</title><link>https://tarrragon.github.io/blog/llm/knowledge-cards/gpu-compute-backend/</link><pubDate>Tue, 12 May 2026 00:00:00 +0000</pubDate><guid>https://tarrragon.github.io/blog/llm/knowledge-cards/gpu-compute-backend/</guid><description>&lt;p>GPU compute backend 的核心概念是「推論軟體（如 llama.cpp、PyTorch）跟 GPU 之間的計算 API 抽象層」。不同廠商 GPU 對應不同 backend、同一推論軟體通常要為每個 backend 編譯獨立 build。選對 backend 直接影響 GPU 算力能否被有效利用。&lt;/p>
&lt;h2 id="概念位置">概念位置&lt;/h2>
&lt;p>各家 GPU 對應的常見 backend（2026 年 5 月狀態、依社群實踐變化）：&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Backend&lt;/th>
 &lt;th>主要 GPU 廠商&lt;/th>
 &lt;th>平台支援&lt;/th>
 &lt;th>llama.cpp 生態成熟度&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>CUDA&lt;/td>
 &lt;td>NVIDIA&lt;/td>
 &lt;td>Windows / Linux&lt;/td>
 &lt;td>最成熟、社群預設&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>ROCm&lt;/td>
 &lt;td>AMD&lt;/td>
 &lt;td>Linux 主、Windows 演進中&lt;/td>
 &lt;td>中、依 GPU 型號變化&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Vulkan&lt;/td>
 &lt;td>跨廠商通用&lt;/td>
 &lt;td>Windows / Linux&lt;/td>
 &lt;td>中、通用 fallback&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Metal&lt;/td>
 &lt;td>Apple Silicon&lt;/td>
 &lt;td>macOS&lt;/td>
 &lt;td>成熟（屬模組一範圍）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>SYCL&lt;/td>
 &lt;td>Intel ARC&lt;/td>
 &lt;td>Windows / Linux&lt;/td>
 &lt;td>相對年輕&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>DirectML&lt;/td>
 &lt;td>多廠商（DirectX）&lt;/td>
 &lt;td>Windows&lt;/td>
 &lt;td>較少用於 LLM&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>OpenVINO&lt;/td>
 &lt;td>Intel&lt;/td>
 &lt;td>多平台&lt;/td>
 &lt;td>偏 Intel 生態&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;p>選 backend 的判讀依硬體跟平台：NVIDIA GPU 用 CUDA、AMD on Linux 優先 ROCm、AMD on Windows 多用 Vulkan、Intel ARC 用 Vulkan 或 SYCL、Apple Silicon 用 Metal。&lt;/p>
&lt;blockquote>
&lt;p>&lt;strong>事實查核註&lt;/strong>：上表的「llama.cpp 生態成熟度」是社群常見回報、不是經本卡系統實測的 benchmark；各 backend 的支援度跟 throughput 依推論軟體版本快速演進、引用前以對應 backend 的官方文件跟 &lt;a href="https://github.com/ggml-org/llama.cpp/releases">llama.cpp release notes&lt;/a> 為準。&lt;/p>&lt;/blockquote>
&lt;h2 id="設計責任">設計責任&lt;/h2>
&lt;p>理解 GPU compute backend 後可以解釋三個現象：為什麼下載 llama.cpp release 要選 CUDA / ROCm / Vulkan 版本（每個 build 對應一種 backend）、為什麼同樣硬體 throughput 差很多（backend 不對或 fallback 到 CPU）、為什麼非 NVIDIA GPU 跑 LLM 經驗較少（CUDA 生態太成熟、其他 backend 仍在演進）。&lt;/p>
&lt;p>選 PC GPU 跑本地 LLM 時、backend 成熟度是「工具鏈支援度」軸、跟硬體規格軸獨立、選卡時兩軸都要考慮。詳見 &lt;a href="https://tarrragon.github.io/blog/llm/05-discrete-gpu/gpu-vendor-differences/" data-link-title="5.6 GPU 廠商差異" data-link-desc="NVIDIA CUDA、AMD ROCm、Intel ARC 在 llama.cpp 生態的相對位置、選卡時的判讀軸">5.6 GPU 廠商差異&lt;/a>。&lt;/p></description><content:encoded><![CDATA[<p>GPU compute backend 的核心概念是「推論軟體（如 llama.cpp、PyTorch）跟 GPU 之間的計算 API 抽象層」。不同廠商 GPU 對應不同 backend、同一推論軟體通常要為每個 backend 編譯獨立 build。選對 backend 直接影響 GPU 算力能否被有效利用。</p>
<h2 id="概念位置">概念位置</h2>
<p>各家 GPU 對應的常見 backend（2026 年 5 月狀態、依社群實踐變化）：</p>
<table>
  <thead>
      <tr>
          <th>Backend</th>
          <th>主要 GPU 廠商</th>
          <th>平台支援</th>
          <th>llama.cpp 生態成熟度</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>CUDA</td>
          <td>NVIDIA</td>
          <td>Windows / Linux</td>
          <td>最成熟、社群預設</td>
      </tr>
      <tr>
          <td>ROCm</td>
          <td>AMD</td>
          <td>Linux 主、Windows 演進中</td>
          <td>中、依 GPU 型號變化</td>
      </tr>
      <tr>
          <td>Vulkan</td>
          <td>跨廠商通用</td>
          <td>Windows / Linux</td>
          <td>中、通用 fallback</td>
      </tr>
      <tr>
          <td>Metal</td>
          <td>Apple Silicon</td>
          <td>macOS</td>
          <td>成熟（屬模組一範圍）</td>
      </tr>
      <tr>
          <td>SYCL</td>
          <td>Intel ARC</td>
          <td>Windows / Linux</td>
          <td>相對年輕</td>
      </tr>
      <tr>
          <td>DirectML</td>
          <td>多廠商（DirectX）</td>
          <td>Windows</td>
          <td>較少用於 LLM</td>
      </tr>
      <tr>
          <td>OpenVINO</td>
          <td>Intel</td>
          <td>多平台</td>
          <td>偏 Intel 生態</td>
      </tr>
  </tbody>
</table>
<p>選 backend 的判讀依硬體跟平台：NVIDIA GPU 用 CUDA、AMD on Linux 優先 ROCm、AMD on Windows 多用 Vulkan、Intel ARC 用 Vulkan 或 SYCL、Apple Silicon 用 Metal。</p>
<blockquote>
<p><strong>事實查核註</strong>：上表的「llama.cpp 生態成熟度」是社群常見回報、不是經本卡系統實測的 benchmark；各 backend 的支援度跟 throughput 依推論軟體版本快速演進、引用前以對應 backend 的官方文件跟 <a href="https://github.com/ggml-org/llama.cpp/releases">llama.cpp release notes</a> 為準。</p></blockquote>
<h2 id="設計責任">設計責任</h2>
<p>理解 GPU compute backend 後可以解釋三個現象：為什麼下載 llama.cpp release 要選 CUDA / ROCm / Vulkan 版本（每個 build 對應一種 backend）、為什麼同樣硬體 throughput 差很多（backend 不對或 fallback 到 CPU）、為什麼非 NVIDIA GPU 跑 LLM 經驗較少（CUDA 生態太成熟、其他 backend 仍在演進）。</p>
<p>選 PC GPU 跑本地 LLM 時、backend 成熟度是「工具鏈支援度」軸、跟硬體規格軸獨立、選卡時兩軸都要考慮。詳見 <a href="/blog/llm/05-discrete-gpu/gpu-vendor-differences/" data-link-title="5.6 GPU 廠商差異" data-link-desc="NVIDIA CUDA、AMD ROCm、Intel ARC 在 llama.cpp 生態的相對位置、選卡時的判讀軸">5.6 GPU 廠商差異</a>。</p>
]]></content:encoded></item><item><title>NVLink</title><link>https://tarrragon.github.io/blog/llm/knowledge-cards/nvlink/</link><pubDate>Tue, 12 May 2026 00:00:00 +0000</pubDate><guid>https://tarrragon.github.io/blog/llm/knowledge-cards/nvlink/</guid><description>&lt;p>NVLink 的核心概念是「NVIDIA 自家的 GPU 之間高速互連介面、頻寬高於 &lt;a href="https://tarrragon.github.io/blog/llm/knowledge-cards/pcie/" data-link-title="PCIe" data-link-desc="PC 上連接 GPU 跟主機板的高速序列匯流排、影響模型載入速度跟 MoE 卸載時的推論吞吐">PCIe&lt;/a>、適合多卡 tensor parallel 場景」。資料中心級 GPU（如 A100 / H100 / H200）普遍支援、消費級 RTX 30 系列部分支援（如 3090）、RTX 40 / 50 系列普遍移除 NVLink、消費級多卡通常只能走 PCIe。&lt;/p>
&lt;h2 id="概念位置">概念位置&lt;/h2>
&lt;p>NVLink 在多卡推論場景的角色：&lt;/p>
&lt;ol>
&lt;li>&lt;strong>tensor parallel&lt;/strong>：把一個 transformer 層的 weight 切到多張卡、每 token 計算時需要卡間同步、卡間頻寬影響直接。&lt;/li>
&lt;li>&lt;strong>pipeline parallel&lt;/strong>：把不同層分到不同卡、卡間需要傳 activation、頻寬要求中等。&lt;/li>
&lt;li>&lt;strong>資料分發&lt;/strong>：把不同 request 分到不同卡（data parallel）、卡間流量低、PCIe 也夠。&lt;/li>
&lt;/ol>
&lt;p>頻寬對照（廠商標稱、依世代變化）：&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>介面&lt;/th>
 &lt;th>卡間頻寬（標稱）&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>PCIe 4.0 x16&lt;/td>
 &lt;td>約 32 GB/s 單向&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>PCIe 5.0 x16&lt;/td>
 &lt;td>約 64 GB/s 單向&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>NVLink（H100）&lt;/td>
 &lt;td>約 900 GB/s 雙向、依世代&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>NVLink（A100）&lt;/td>
 &lt;td>約 600 GB/s 雙向&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;p>NVLink 比 PCIe 高一個量級、是資料中心多卡推論的關鍵；消費級 RTX 場景多卡通常只能走 PCIe、縮放效益相對受限。&lt;/p>
&lt;blockquote>
&lt;p>&lt;strong>事實查核註&lt;/strong>：NVLink 各世代的頻寬數字依 NVIDIA 官方規格、不同 GPU 跟世代有差異；NVLink 在哪些消費級 / 工作站 / 資料中心 GPU 可用、依時段跟廠商策略變化、引用前以 &lt;a href="https://www.nvidia.com/">NVIDIA 官方產品頁&lt;/a> 跟對應 GPU 的 datasheet 為準。&lt;/p>&lt;/blockquote>
&lt;h2 id="設計責任">設計責任&lt;/h2>
&lt;p>理解 NVLink 後可以解釋兩個現象：為什麼資料中心多卡 LLM 推論能線性 scale（NVLink 頻寬足以做 tensor parallel）、為什麼消費級雙卡 RTX 推論縮放比通常低於線性（沒 NVLink、走 PCIe x4 / x8、卡間頻寬限制）。&lt;/p>
&lt;p>選消費級 GPU 跑本地 LLM 時、NVLink 不是常見選項；多卡升級的判讀應該基於「能否容忍縮放比低於線性」、而不是預期 NVLink 等級的卡間頻寬。詳見 &lt;a href="https://tarrragon.github.io/blog/llm/05-discrete-gpu/gpu-vendor-differences/" data-link-title="5.6 GPU 廠商差異" data-link-desc="NVIDIA CUDA、AMD ROCm、Intel ARC 在 llama.cpp 生態的相對位置、選卡時的判讀軸">5.6 GPU 廠商差異&lt;/a>。&lt;/p></description><content:encoded><![CDATA[<p>NVLink 的核心概念是「NVIDIA 自家的 GPU 之間高速互連介面、頻寬高於 <a href="/blog/llm/knowledge-cards/pcie/" data-link-title="PCIe" data-link-desc="PC 上連接 GPU 跟主機板的高速序列匯流排、影響模型載入速度跟 MoE 卸載時的推論吞吐">PCIe</a>、適合多卡 tensor parallel 場景」。資料中心級 GPU（如 A100 / H100 / H200）普遍支援、消費級 RTX 30 系列部分支援（如 3090）、RTX 40 / 50 系列普遍移除 NVLink、消費級多卡通常只能走 PCIe。</p>
<h2 id="概念位置">概念位置</h2>
<p>NVLink 在多卡推論場景的角色：</p>
<ol>
<li><strong>tensor parallel</strong>：把一個 transformer 層的 weight 切到多張卡、每 token 計算時需要卡間同步、卡間頻寬影響直接。</li>
<li><strong>pipeline parallel</strong>：把不同層分到不同卡、卡間需要傳 activation、頻寬要求中等。</li>
<li><strong>資料分發</strong>：把不同 request 分到不同卡（data parallel）、卡間流量低、PCIe 也夠。</li>
</ol>
<p>頻寬對照（廠商標稱、依世代變化）：</p>
<table>
  <thead>
      <tr>
          <th>介面</th>
          <th>卡間頻寬（標稱）</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>PCIe 4.0 x16</td>
          <td>約 32 GB/s 單向</td>
      </tr>
      <tr>
          <td>PCIe 5.0 x16</td>
          <td>約 64 GB/s 單向</td>
      </tr>
      <tr>
          <td>NVLink（H100）</td>
          <td>約 900 GB/s 雙向、依世代</td>
      </tr>
      <tr>
          <td>NVLink（A100）</td>
          <td>約 600 GB/s 雙向</td>
      </tr>
  </tbody>
</table>
<p>NVLink 比 PCIe 高一個量級、是資料中心多卡推論的關鍵；消費級 RTX 場景多卡通常只能走 PCIe、縮放效益相對受限。</p>
<blockquote>
<p><strong>事實查核註</strong>：NVLink 各世代的頻寬數字依 NVIDIA 官方規格、不同 GPU 跟世代有差異；NVLink 在哪些消費級 / 工作站 / 資料中心 GPU 可用、依時段跟廠商策略變化、引用前以 <a href="https://www.nvidia.com/">NVIDIA 官方產品頁</a> 跟對應 GPU 的 datasheet 為準。</p></blockquote>
<h2 id="設計責任">設計責任</h2>
<p>理解 NVLink 後可以解釋兩個現象：為什麼資料中心多卡 LLM 推論能線性 scale（NVLink 頻寬足以做 tensor parallel）、為什麼消費級雙卡 RTX 推論縮放比通常低於線性（沒 NVLink、走 PCIe x4 / x8、卡間頻寬限制）。</p>
<p>選消費級 GPU 跑本地 LLM 時、NVLink 不是常見選項；多卡升級的判讀應該基於「能否容忍縮放比低於線性」、而不是預期 NVLink 等級的卡間頻寬。詳見 <a href="/blog/llm/05-discrete-gpu/gpu-vendor-differences/" data-link-title="5.6 GPU 廠商差異" data-link-desc="NVIDIA CUDA、AMD ROCm、Intel ARC 在 llama.cpp 生態的相對位置、選卡時的判讀軸">5.6 GPU 廠商差異</a>。</p>
]]></content:encoded></item><item><title>PCIe</title><link>https://tarrragon.github.io/blog/llm/knowledge-cards/pcie/</link><pubDate>Tue, 12 May 2026 00:00:00 +0000</pubDate><guid>https://tarrragon.github.io/blog/llm/knowledge-cards/pcie/</guid><description>&lt;p>PCIe（PCI Express）的核心概念是「PC 上 GPU 跟主機板（CPU + 系統 RAM）之間的高速序列匯流排」。獨立 GPU 場景下、模型權重從 SSD / 系統 RAM 走 PCIe 進 VRAM、之後推論主要在 GPU 內部完成；但 &lt;a href="https://tarrragon.github.io/blog/llm/knowledge-cards/moe-cpu-offload/" data-link-title="MoE CPU 卸載" data-link-desc="把 Mixture-of-Experts 模型不活躍的專家層權重放在系統 RAM、用到再走 PCIe 拉回 GPU、讓有限 VRAM 跑得了更大模型">MoE CPU 卸載&lt;/a> 啟用時、每 token 都需要從系統 RAM 走 PCIe 拉部分權重、PCIe 頻寬開始影響推論吞吐。&lt;/p>
&lt;h2 id="概念位置">概念位置&lt;/h2>
&lt;p>PCIe 在本地 LLM 推論的兩個階段角色不同：&lt;/p>
&lt;ol>
&lt;li>&lt;strong>模型載入階段&lt;/strong>：模型權重從 SSD → 系統 RAM → 走 PCIe → &lt;a href="https://tarrragon.github.io/blog/llm/knowledge-cards/vram/" data-link-title="VRAM" data-link-desc="顯卡上的記憶體、跟系統 RAM 是兩塊獨立預算、決定能載入多大模型權重跟 KV cache">VRAM&lt;/a>。PCIe 是常見瓶頸、影響「啟動時間」、不影響推論。&lt;/li>
&lt;li>&lt;strong>推論階段&lt;/strong>：
&lt;ul>
&lt;li>全載 VRAM 場景：權重已在 VRAM、推論時 PCIe 流量很少。&lt;/li>
&lt;li>MoE 卸載場景：每 token 從系統 RAM 拉專家權重經 PCIe、PCIe 頻寬成為次要瓶頸。&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ol>
&lt;p>PCIe 版本跟頻寬（廠商標稱、單向）：&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>版本&lt;/th>
 &lt;th>x16 單向標稱頻寬&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>PCIe 4.0 x16&lt;/td>
 &lt;td>約 32 GB/s&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>PCIe 5.0 x16&lt;/td>
 &lt;td>約 64 GB/s&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>PCIe 6.0 x16&lt;/td>
 &lt;td>約 128 GB/s&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;p>實際傳輸吞吐受驅動、檔案系統、量化格式影響、通常低於規格上限。&lt;/p>
&lt;blockquote>
&lt;p>&lt;strong>事實查核註&lt;/strong>：PCIe 各版本的標稱頻寬數字以 &lt;a href="https://pcisig.com/">PCI-SIG&lt;/a> 官方規格為主、實際可達吞吐依硬體配置變化、引用前以對應版本的官方規格文件為準。&lt;/p>&lt;/blockquote>
&lt;p>消費級主機板的 PCIe lane 分配常見「一條 x16 + 一條 x4」、加第二張 GPU 時、第二張的有效頻寬可能只有 x4、影響多卡縮放效益。詳見 &lt;a href="https://tarrragon.github.io/blog/llm/05-discrete-gpu/llama-cpp-on-pc/" data-link-title="5.3 llama.cpp 在 PC 上" data-link-desc="CUDA / ROCm build 取得、核心旗標地圖、llama-bench 校準、多卡 tensor split 的入門設定">5.3 llama.cpp 在 PC 上&lt;/a> 的多卡 tensor split 段落。&lt;/p>
&lt;h2 id="設計責任">設計責任&lt;/h2>
&lt;p>理解 PCIe 後可以解釋三個現象：為什麼模型載入要等幾秒到十幾秒（PCIe 是橋）、為什麼單卡 + MoE 卸載通常不卡 PCIe（每 token 拉的權重量小於 PCIe 頻寬）、為什麼雙卡縮放比沒有直接翻倍（PCIe lane 跟主機板配置）。&lt;/p>
&lt;p>選 PC 配置時、PCIe 版本影響模型載入體感、但對單人推論的生字速度通常影響小。多卡升級前要看主機板的 PCIe lane 分配。&lt;/p></description><content:encoded><![CDATA[<p>PCIe（PCI Express）的核心概念是「PC 上 GPU 跟主機板（CPU + 系統 RAM）之間的高速序列匯流排」。獨立 GPU 場景下、模型權重從 SSD / 系統 RAM 走 PCIe 進 VRAM、之後推論主要在 GPU 內部完成；但 <a href="/blog/llm/knowledge-cards/moe-cpu-offload/" data-link-title="MoE CPU 卸載" data-link-desc="把 Mixture-of-Experts 模型不活躍的專家層權重放在系統 RAM、用到再走 PCIe 拉回 GPU、讓有限 VRAM 跑得了更大模型">MoE CPU 卸載</a> 啟用時、每 token 都需要從系統 RAM 走 PCIe 拉部分權重、PCIe 頻寬開始影響推論吞吐。</p>
<h2 id="概念位置">概念位置</h2>
<p>PCIe 在本地 LLM 推論的兩個階段角色不同：</p>
<ol>
<li><strong>模型載入階段</strong>：模型權重從 SSD → 系統 RAM → 走 PCIe → <a href="/blog/llm/knowledge-cards/vram/" data-link-title="VRAM" data-link-desc="顯卡上的記憶體、跟系統 RAM 是兩塊獨立預算、決定能載入多大模型權重跟 KV cache">VRAM</a>。PCIe 是常見瓶頸、影響「啟動時間」、不影響推論。</li>
<li><strong>推論階段</strong>：
<ul>
<li>全載 VRAM 場景：權重已在 VRAM、推論時 PCIe 流量很少。</li>
<li>MoE 卸載場景：每 token 從系統 RAM 拉專家權重經 PCIe、PCIe 頻寬成為次要瓶頸。</li>
</ul>
</li>
</ol>
<p>PCIe 版本跟頻寬（廠商標稱、單向）：</p>
<table>
  <thead>
      <tr>
          <th>版本</th>
          <th>x16 單向標稱頻寬</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>PCIe 4.0 x16</td>
          <td>約 32 GB/s</td>
      </tr>
      <tr>
          <td>PCIe 5.0 x16</td>
          <td>約 64 GB/s</td>
      </tr>
      <tr>
          <td>PCIe 6.0 x16</td>
          <td>約 128 GB/s</td>
      </tr>
  </tbody>
</table>
<p>實際傳輸吞吐受驅動、檔案系統、量化格式影響、通常低於規格上限。</p>
<blockquote>
<p><strong>事實查核註</strong>：PCIe 各版本的標稱頻寬數字以 <a href="https://pcisig.com/">PCI-SIG</a> 官方規格為主、實際可達吞吐依硬體配置變化、引用前以對應版本的官方規格文件為準。</p></blockquote>
<p>消費級主機板的 PCIe lane 分配常見「一條 x16 + 一條 x4」、加第二張 GPU 時、第二張的有效頻寬可能只有 x4、影響多卡縮放效益。詳見 <a href="/blog/llm/05-discrete-gpu/llama-cpp-on-pc/" data-link-title="5.3 llama.cpp 在 PC 上" data-link-desc="CUDA / ROCm build 取得、核心旗標地圖、llama-bench 校準、多卡 tensor split 的入門設定">5.3 llama.cpp 在 PC 上</a> 的多卡 tensor split 段落。</p>
<h2 id="設計責任">設計責任</h2>
<p>理解 PCIe 後可以解釋三個現象：為什麼模型載入要等幾秒到十幾秒（PCIe 是橋）、為什麼單卡 + MoE 卸載通常不卡 PCIe（每 token 拉的權重量小於 PCIe 頻寬）、為什麼雙卡縮放比沒有直接翻倍（PCIe lane 跟主機板配置）。</p>
<p>選 PC 配置時、PCIe 版本影響模型載入體感、但對單人推論的生字速度通常影響小。多卡升級前要看主機板的 PCIe lane 分配。</p>
]]></content:encoded></item><item><title>VRAM</title><link>https://tarrragon.github.io/blog/llm/knowledge-cards/vram/</link><pubDate>Tue, 12 May 2026 00:00:00 +0000</pubDate><guid>https://tarrragon.github.io/blog/llm/knowledge-cards/vram/</guid><description>&lt;p>VRAM（Video RAM）的核心概念是「顯卡晶片上的高速記憶體、跟系統主機板上的 RAM 是物理上獨立的兩塊預算」。獨立 GPU 場景下、模型權重要載入 VRAM 才能用 GPU 高速計算；VRAM 容量直接決定能跑多大模型。跟 Apple Silicon 的 &lt;a href="https://tarrragon.github.io/blog/llm/knowledge-cards/unified-memory/" data-link-title="Unified Memory Architecture" data-link-desc="Apple Silicon 讓 CPU / GPU / NE 共用同一塊記憶體：跑大模型的優勢來源">統一記憶體&lt;/a> 不同、PC 上 VRAM 跟系統 RAM 兩塊預算要分開規劃。&lt;/p>
&lt;h2 id="概念位置">概念位置&lt;/h2>
&lt;p>VRAM 同時影響「能載入什麼」跟「跑多快」兩個維度：&lt;/p>
&lt;ol>
&lt;li>&lt;strong>容量&lt;/strong>（GB）：決定能放多少模型權重 + &lt;a href="https://tarrragon.github.io/blog/llm/knowledge-cards/kv-cache/" data-link-title="KV Cache" data-link-desc="已處理 token 的 attention 中間結果暫存：避免重算、加速後續生成">KV cache&lt;/a> + 推論中間結果。容量不夠則跑不起來、需透過 &lt;a href="https://tarrragon.github.io/blog/llm/knowledge-cards/moe-cpu-offload/" data-link-title="MoE CPU 卸載" data-link-desc="把 Mixture-of-Experts 模型不活躍的專家層權重放在系統 RAM、用到再走 PCIe 拉回 GPU、讓有限 VRAM 跑得了更大模型">MoE CPU 卸載&lt;/a> 把部分權重放系統 RAM。&lt;/li>
&lt;li>&lt;strong>頻寬&lt;/strong>（GB/s）：影響每 token 生成速度上限、見 &lt;a href="https://tarrragon.github.io/blog/llm/knowledge-cards/memory-bandwidth/" data-link-title="Memory Bandwidth" data-link-desc="記憶體每秒能讀寫多少 bytes：決定本地 LLM 生字速度的真正瓶頸">memory bandwidth&lt;/a> 卡片。&lt;/li>
&lt;/ol>
&lt;p>常見消費級 GPU 的 VRAM 規格（廠商標稱、依世代與型號變化）：&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>GPU&lt;/th>
 &lt;th>VRAM 容量&lt;/th>
 &lt;th>VRAM 類型&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>RTX 5060 / 4060&lt;/td>
 &lt;td>8GB&lt;/td>
 &lt;td>GDDR6/7&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>RTX 5060 Ti / 4060 Ti&lt;/td>
 &lt;td>16GB&lt;/td>
 &lt;td>GDDR6/7&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>RTX 5070 Ti / 4070 Ti&lt;/td>
 &lt;td>16GB&lt;/td>
 &lt;td>GDDR6/7&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>RTX 4090&lt;/td>
 &lt;td>24GB&lt;/td>
 &lt;td>GDDR6X&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>RTX 5090&lt;/td>
 &lt;td>32GB&lt;/td>
 &lt;td>GDDR7&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;p>VRAM 容量是選 GPU 跑本地 LLM 的第一決策軸、頻寬是第二決策軸。同容量下、頻寬接近 2 倍的卡（如 5070 Ti 對 5060 Ti）生字速度差異明顯。&lt;/p>
&lt;blockquote>
&lt;p>&lt;strong>事實查核註&lt;/strong>：上表是 2026 年 5 月主流消費級 NVIDIA GPU 規格的數量級對照、實際 VRAM 容量、頻寬、GDDR 版本依特定型號、廠商 / SKU、製造時間變化、引用前以 &lt;a href="https://www.nvidia.com/en-us/geforce/graphics-cards/">NVIDIA 官方規格頁&lt;/a> 為準。&lt;/p>&lt;/blockquote>
&lt;h2 id="設計責任">設計責任&lt;/h2>
&lt;p>理解 VRAM 後可以解釋三個現象：為什麼同樣 16GB 容量、不同卡的生字速度差很多（頻寬不同）；為什麼 MoE 模型在 16GB VRAM 上跑得了 30B 級模型（透過卸載）；為什麼 &lt;a href="https://tarrragon.github.io/blog/llm/knowledge-cards/pcie/" data-link-title="PCIe" data-link-desc="PC 上連接 GPU 跟主機板的高速序列匯流排、影響模型載入速度跟 MoE 卸載時的推論吞吐">PCIe&lt;/a> 頻寬在 PC 場景影響 MoE 卸載的速度（系統 RAM 跟 VRAM 之間的橋）。&lt;/p>
&lt;p>選 PC 規劃本地 LLM 時、VRAM 容量決定能跑的模型上限、VRAM 頻寬決定生字速度上限、系統 RAM 容量決定 MoE 卸載空間。詳見 &lt;a href="https://tarrragon.github.io/blog/llm/05-discrete-gpu/vram-ram-budget/" data-link-title="5.0 VRAM &amp;#43; RAM 分層預算" data-link-desc="PC 獨立 GPU 場景的記憶體預算判讀：VRAM 是快的世界、RAM 是大的世界、PCIe 把兩個世界連起來">5.0 VRAM + RAM 分層預算&lt;/a>。&lt;/p></description><content:encoded><![CDATA[<p>VRAM（Video RAM）的核心概念是「顯卡晶片上的高速記憶體、跟系統主機板上的 RAM 是物理上獨立的兩塊預算」。獨立 GPU 場景下、模型權重要載入 VRAM 才能用 GPU 高速計算；VRAM 容量直接決定能跑多大模型。跟 Apple Silicon 的 <a href="/blog/llm/knowledge-cards/unified-memory/" data-link-title="Unified Memory Architecture" data-link-desc="Apple Silicon 讓 CPU / GPU / NE 共用同一塊記憶體：跑大模型的優勢來源">統一記憶體</a> 不同、PC 上 VRAM 跟系統 RAM 兩塊預算要分開規劃。</p>
<h2 id="概念位置">概念位置</h2>
<p>VRAM 同時影響「能載入什麼」跟「跑多快」兩個維度：</p>
<ol>
<li><strong>容量</strong>（GB）：決定能放多少模型權重 + <a href="/blog/llm/knowledge-cards/kv-cache/" data-link-title="KV Cache" data-link-desc="已處理 token 的 attention 中間結果暫存：避免重算、加速後續生成">KV cache</a> + 推論中間結果。容量不夠則跑不起來、需透過 <a href="/blog/llm/knowledge-cards/moe-cpu-offload/" data-link-title="MoE CPU 卸載" data-link-desc="把 Mixture-of-Experts 模型不活躍的專家層權重放在系統 RAM、用到再走 PCIe 拉回 GPU、讓有限 VRAM 跑得了更大模型">MoE CPU 卸載</a> 把部分權重放系統 RAM。</li>
<li><strong>頻寬</strong>（GB/s）：影響每 token 生成速度上限、見 <a href="/blog/llm/knowledge-cards/memory-bandwidth/" data-link-title="Memory Bandwidth" data-link-desc="記憶體每秒能讀寫多少 bytes：決定本地 LLM 生字速度的真正瓶頸">memory bandwidth</a> 卡片。</li>
</ol>
<p>常見消費級 GPU 的 VRAM 規格（廠商標稱、依世代與型號變化）：</p>
<table>
  <thead>
      <tr>
          <th>GPU</th>
          <th>VRAM 容量</th>
          <th>VRAM 類型</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>RTX 5060 / 4060</td>
          <td>8GB</td>
          <td>GDDR6/7</td>
      </tr>
      <tr>
          <td>RTX 5060 Ti / 4060 Ti</td>
          <td>16GB</td>
          <td>GDDR6/7</td>
      </tr>
      <tr>
          <td>RTX 5070 Ti / 4070 Ti</td>
          <td>16GB</td>
          <td>GDDR6/7</td>
      </tr>
      <tr>
          <td>RTX 4090</td>
          <td>24GB</td>
          <td>GDDR6X</td>
      </tr>
      <tr>
          <td>RTX 5090</td>
          <td>32GB</td>
          <td>GDDR7</td>
      </tr>
  </tbody>
</table>
<p>VRAM 容量是選 GPU 跑本地 LLM 的第一決策軸、頻寬是第二決策軸。同容量下、頻寬接近 2 倍的卡（如 5070 Ti 對 5060 Ti）生字速度差異明顯。</p>
<blockquote>
<p><strong>事實查核註</strong>：上表是 2026 年 5 月主流消費級 NVIDIA GPU 規格的數量級對照、實際 VRAM 容量、頻寬、GDDR 版本依特定型號、廠商 / SKU、製造時間變化、引用前以 <a href="https://www.nvidia.com/en-us/geforce/graphics-cards/">NVIDIA 官方規格頁</a> 為準。</p></blockquote>
<h2 id="設計責任">設計責任</h2>
<p>理解 VRAM 後可以解釋三個現象：為什麼同樣 16GB 容量、不同卡的生字速度差很多（頻寬不同）；為什麼 MoE 模型在 16GB VRAM 上跑得了 30B 級模型（透過卸載）；為什麼 <a href="/blog/llm/knowledge-cards/pcie/" data-link-title="PCIe" data-link-desc="PC 上連接 GPU 跟主機板的高速序列匯流排、影響模型載入速度跟 MoE 卸載時的推論吞吐">PCIe</a> 頻寬在 PC 場景影響 MoE 卸載的速度（系統 RAM 跟 VRAM 之間的橋）。</p>
<p>選 PC 規劃本地 LLM 時、VRAM 容量決定能跑的模型上限、VRAM 頻寬決定生字速度上限、系統 RAM 容量決定 MoE 卸載空間。詳見 <a href="/blog/llm/05-discrete-gpu/vram-ram-budget/" data-link-title="5.0 VRAM &#43; RAM 分層預算" data-link-desc="PC 獨立 GPU 場景的記憶體預算判讀：VRAM 是快的世界、RAM 是大的世界、PCIe 把兩個世界連起來">5.0 VRAM + RAM 分層預算</a>。</p>
]]></content:encoded></item><item><title>0.5 Apple Silicon 記憶體預算</title><link>https://tarrragon.github.io/blog/llm/00-foundations/hardware-memory-budget/</link><pubDate>Mon, 11 May 2026 00:00:00 +0000</pubDate><guid>https://tarrragon.github.io/blog/llm/00-foundations/hardware-memory-budget/</guid><description>&lt;p>本章只處理 Apple Silicon Mac 的場景。Mac 是「&lt;a href="https://tarrragon.github.io/blog/llm/knowledge-cards/unified-memory/" data-link-title="Unified Memory Architecture" data-link-desc="Apple Silicon 讓 CPU / GPU / NE 共用同一塊記憶體：跑大模型的優勢來源">統一記憶體&lt;/a>」架構、CPU 跟 GPU 共用同一塊 RAM、所以判讀模型是「一塊預算切系統 / 模型 / KV cache」。Windows / Linux + 獨立 GPU 是「VRAM + 系統 RAM」兩塊分層預算、判讀模型本質不同、見 &lt;a href="https://tarrragon.github.io/blog/llm/05-discrete-gpu/vram-ram-budget/" data-link-title="5.0 VRAM &amp;#43; RAM 分層預算" data-link-desc="PC 獨立 GPU 場景的記憶體預算判讀：VRAM 是快的世界、RAM 是大的世界、PCIe 把兩個世界連起來">模組五 5.0 VRAM + RAM 分層預算&lt;/a>。&lt;/p>
&lt;p>Apple Silicon Mac 跑本地 LLM 的核心限制是&lt;strong>記憶體大小&lt;/strong>、而非 CPU 或 GPU 算力。記憶體決定能載入多大的模型；模型載得進、推論才有得跑（生字速度則由 &lt;a href="https://tarrragon.github.io/blog/llm/knowledge-cards/memory-bandwidth/" data-link-title="Memory Bandwidth" data-link-desc="記憶體每秒能讀寫多少 bytes：決定本地 LLM 生字速度的真正瓶頸">memory bandwidth&lt;/a> 決定、見 &lt;a href="https://tarrragon.github.io/blog/llm/00-foundations/why-llm-feels-slow/" data-link-title="0.1 為什麼 LLM 生字慢" data-link-desc="自回歸架構與記憶體頻寬瓶頸：為何即使 Mac 算力很強，本地 LLM 仍一個字一個字吐">0.1&lt;/a>）。本章把「24GB 能跑 70B」這類含糊說法、換成可操作的記憶體預算判讀。&lt;/p>
&lt;p>讀完本章後，你可以對自己這台 Mac 直接回答：能跑哪些模型、要用什麼量化、要留多少給系統、風扇會不會狂轉、什麼時候該升級。&lt;/p>
&lt;h2 id="本章目標">本章目標&lt;/h2>
&lt;p>讀完本章後，你應該能：&lt;/p>
&lt;ol>
&lt;li>看 Mac 規格立刻知道能跑哪一級的模型。&lt;/li>
&lt;li>理解量化等級跟模型大小的乘積為何決定可行性。&lt;/li>
&lt;li>為「給系統留多少記憶體」這件事設一個合理上界。&lt;/li>
&lt;li>判斷自己這台 Mac 適不適合跑本地 LLM。&lt;/li>
&lt;/ol>
&lt;h2 id="記憶體預算的基本算式">記憶體預算的基本算式&lt;/h2>
&lt;p>跑本地 LLM 的記憶體預算大致拆成三塊：&lt;/p>





&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-text" data-lang="text">&lt;span class="line">&lt;span class="ln">1&lt;/span>&lt;span class="cl">總記憶體 = 系統與其他 app（保留）+ 模型權重 + KV cache + 推論中間結果&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>各塊的估算原則：&lt;/p>
&lt;ol>
&lt;li>&lt;strong>系統與其他 app&lt;/strong>：至少留 8GB 給 macOS、VS Code、瀏覽器與其他工作流程。重度多工建議留 10 ~ 12GB。&lt;/li>
&lt;li>&lt;strong>模型權重&lt;/strong>：用「參數規模 × 每權重 bits / 8」算出 bytes。其中「Q4」代表&lt;a href="https://tarrragon.github.io/blog/llm/knowledge-cards/quantization/" data-link-title="Quantization" data-link-desc="用較少 bits 表示模型權重：壓縮記憶體佔用、加快生字速度，代價是少量品質衰減">每個權重佔 4 bits&lt;/a>。例如 31B 模型 Q4 量化 = 31 × 4 / 8 = 15.5 GB、加上 metadata 與 overhead 約 16 ~ 18GB。&lt;/li>
&lt;li>&lt;strong>&lt;a href="https://tarrragon.github.io/blog/llm/knowledge-cards/kv-cache/" data-link-title="KV Cache" data-link-desc="已處理 token 的 attention 中間結果暫存：避免重算、加速後續生成">KV cache&lt;/a>&lt;/strong>：跟 &lt;a href="https://tarrragon.github.io/blog/llm/knowledge-cards/context-window/" data-link-title="Context Window" data-link-desc="模型一次能處理的最大 token 數量：prompt 加生成的總和上限">context&lt;/a> 長度成正比。短 context（&amp;lt; 2K tokens）約 0.5 ~ 1GB、長 context（10K+ tokens）可能超過 5GB。&lt;/li>
&lt;li>&lt;strong>推論中間結果&lt;/strong>：通常 1 ~ 2GB。&lt;/li>
&lt;/ol>
&lt;p>實際留給模型的可用記憶體 = 總記憶體 − 系統保留（8GB）− KV cache（2 ~ 5GB）− 推論 overhead（2GB）。&lt;/p>
&lt;h2 id="mac-記憶體與可運作模型對照">Mac 記憶體與可運作模型對照&lt;/h2>
&lt;p>下表是 2026 年 5 月、Apple Silicon Mac 在 Q4 量化下的可運作模型對照。預設 Q4 是因為它是 31B 等級寫 code 場景的甜蜜點、下節「為什麼 32GB 是寫 code 場景的甜蜜點」會展開原因。所有體感標籤都假設「主要用途是寫 code」、純文字對話的甜蜜點會往較小模型偏。&lt;/p></description><content:encoded><![CDATA[<p>本章只處理 Apple Silicon Mac 的場景。Mac 是「<a href="/blog/llm/knowledge-cards/unified-memory/" data-link-title="Unified Memory Architecture" data-link-desc="Apple Silicon 讓 CPU / GPU / NE 共用同一塊記憶體：跑大模型的優勢來源">統一記憶體</a>」架構、CPU 跟 GPU 共用同一塊 RAM、所以判讀模型是「一塊預算切系統 / 模型 / KV cache」。Windows / Linux + 獨立 GPU 是「VRAM + 系統 RAM」兩塊分層預算、判讀模型本質不同、見 <a href="/blog/llm/05-discrete-gpu/vram-ram-budget/" data-link-title="5.0 VRAM &#43; RAM 分層預算" data-link-desc="PC 獨立 GPU 場景的記憶體預算判讀：VRAM 是快的世界、RAM 是大的世界、PCIe 把兩個世界連起來">模組五 5.0 VRAM + RAM 分層預算</a>。</p>
<p>Apple Silicon Mac 跑本地 LLM 的核心限制是<strong>記憶體大小</strong>、而非 CPU 或 GPU 算力。記憶體決定能載入多大的模型；模型載得進、推論才有得跑（生字速度則由 <a href="/blog/llm/knowledge-cards/memory-bandwidth/" data-link-title="Memory Bandwidth" data-link-desc="記憶體每秒能讀寫多少 bytes：決定本地 LLM 生字速度的真正瓶頸">memory bandwidth</a> 決定、見 <a href="/blog/llm/00-foundations/why-llm-feels-slow/" data-link-title="0.1 為什麼 LLM 生字慢" data-link-desc="自回歸架構與記憶體頻寬瓶頸：為何即使 Mac 算力很強，本地 LLM 仍一個字一個字吐">0.1</a>）。本章把「24GB 能跑 70B」這類含糊說法、換成可操作的記憶體預算判讀。</p>
<p>讀完本章後，你可以對自己這台 Mac 直接回答：能跑哪些模型、要用什麼量化、要留多少給系統、風扇會不會狂轉、什麼時候該升級。</p>
<h2 id="本章目標">本章目標</h2>
<p>讀完本章後，你應該能：</p>
<ol>
<li>看 Mac 規格立刻知道能跑哪一級的模型。</li>
<li>理解量化等級跟模型大小的乘積為何決定可行性。</li>
<li>為「給系統留多少記憶體」這件事設一個合理上界。</li>
<li>判斷自己這台 Mac 適不適合跑本地 LLM。</li>
</ol>
<h2 id="記憶體預算的基本算式">記憶體預算的基本算式</h2>
<p>跑本地 LLM 的記憶體預算大致拆成三塊：</p>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="ln">1</span><span class="cl">總記憶體 = 系統與其他 app（保留）+ 模型權重 + KV cache + 推論中間結果</span></span></code></pre></div><p>各塊的估算原則：</p>
<ol>
<li><strong>系統與其他 app</strong>：至少留 8GB 給 macOS、VS Code、瀏覽器與其他工作流程。重度多工建議留 10 ~ 12GB。</li>
<li><strong>模型權重</strong>：用「參數規模 × 每權重 bits / 8」算出 bytes。其中「Q4」代表<a href="/blog/llm/knowledge-cards/quantization/" data-link-title="Quantization" data-link-desc="用較少 bits 表示模型權重：壓縮記憶體佔用、加快生字速度，代價是少量品質衰減">每個權重佔 4 bits</a>。例如 31B 模型 Q4 量化 = 31 × 4 / 8 = 15.5 GB、加上 metadata 與 overhead 約 16 ~ 18GB。</li>
<li><strong><a href="/blog/llm/knowledge-cards/kv-cache/" data-link-title="KV Cache" data-link-desc="已處理 token 的 attention 中間結果暫存：避免重算、加速後續生成">KV cache</a></strong>：跟 <a href="/blog/llm/knowledge-cards/context-window/" data-link-title="Context Window" data-link-desc="模型一次能處理的最大 token 數量：prompt 加生成的總和上限">context</a> 長度成正比。短 context（&lt; 2K tokens）約 0.5 ~ 1GB、長 context（10K+ tokens）可能超過 5GB。</li>
<li><strong>推論中間結果</strong>：通常 1 ~ 2GB。</li>
</ol>
<p>實際留給模型的可用記憶體 = 總記憶體 − 系統保留（8GB）− KV cache（2 ~ 5GB）− 推論 overhead（2GB）。</p>
<h2 id="mac-記憶體與可運作模型對照">Mac 記憶體與可運作模型對照</h2>
<p>下表是 2026 年 5 月、Apple Silicon Mac 在 Q4 量化下的可運作模型對照。預設 Q4 是因為它是 31B 等級寫 code 場景的甜蜜點、下節「為什麼 32GB 是寫 code 場景的甜蜜點」會展開原因。所有體感標籤都假設「主要用途是寫 code」、純文字對話的甜蜜點會往較小模型偏。</p>
<table>
  <thead>
      <tr>
          <th>Mac 記憶體</th>
          <th>留給模型</th>
          <th>能跑的最大模型</th>
          <th>體感</th>
          <th>備註</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>8GB</td>
          <td>0GB</td>
          <td>4B 以上模型互動體感失效</td>
          <td>不在本指南範圍</td>
          <td>連 4B 模型 Q4 都很勉強</td>
      </tr>
      <tr>
          <td>16GB</td>
          <td>6 ~ 8GB</td>
          <td>Gemma 4 E4B、Qwen3 7B、Llama 3.2 8B</td>
          <td>勉強</td>
          <td>同時開 VS Code 就會吃緊、常 swap</td>
      </tr>
      <tr>
          <td>24GB</td>
          <td>12 ~ 14GB</td>
          <td>Gemma 4 26B A4B（MoE、見下段）、Qwen3-Coder 14B、Llama 3.3 13B</td>
          <td>堪用</td>
          <td>多數工程師的起點</td>
      </tr>
      <tr>
          <td>32GB</td>
          <td>18 ~ 22GB</td>
          <td><strong>Gemma 4 31B（含 <a href="/blog/llm/knowledge-cards/mtp/" data-link-title="Multi-Token Prediction (MTP)" data-link-desc="Google 為 Gemma 系列釋出的 speculative decoding 工程化實作">MTP</a> drafter）甜蜜點</strong>、Qwen3-Coder 30B Q4</td>
          <td>順暢</td>
          <td>寫 code 場景最佳價格效能比</td>
      </tr>
      <tr>
          <td>48GB</td>
          <td>32 ~ 36GB</td>
          <td>Qwen3-Coder 32B Q5、Llama 3.3 70B Q3</td>
          <td>順暢</td>
          <td>開始接近 GPT-4 mini 等級</td>
      </tr>
      <tr>
          <td>64GB</td>
          <td>48 ~ 52GB</td>
          <td>Qwen3-Coder 32B bf16、Llama 3.3 70B Q4</td>
          <td>順暢</td>
          <td>大模型用較高量化、品質更好</td>
      </tr>
      <tr>
          <td>96GB+</td>
          <td>80GB+</td>
          <td>Llama 3.3 70B Q8、實驗 100B+ 模型</td>
          <td>順暢</td>
          <td>過度配置、除非有特殊需求</td>
      </tr>
  </tbody>
</table>
<p>讀這張表要注意四件事：</p>
<ol>
<li><strong>體感是 coding 場景</strong>。純對話、寫文章、解釋程式的記憶體門檻較低。</li>
<li><strong>量化等級可以調整</strong>。32GB 跑 31B Q4 順暢、跑 31B Q5 也行（吃 21GB 左右）；跑 70B Q3 會崩潰，因為 70B Q3 約 26GB，加上 KV cache 跟系統，超過 32GB。</li>
<li><strong>fanless 機種要打折</strong>。MacBook Air 系列因為散熱被動，跑大型模型 5 分鐘後會降頻，實際生字速度比有風扇的同代機器低 30 ~ 50%。</li>
<li><strong>記憶體不是 SSD</strong>。Apple Silicon 的「統一記憶體」是 RAM、不是 SSD swap。雖然 macOS 會 swap、但 swap 後生字速度會慢一個量級以上、實質喪失互動可用性。</li>
</ol>
<h2 id="moe-與-dense-模型在記憶體預算上的差異">MoE 與 dense 模型在記憶體預算上的差異</h2>
<p><a href="/blog/llm/knowledge-cards/moe-cpu-offload/" data-link-title="MoE CPU 卸載" data-link-desc="把 Mixture-of-Experts 模型不活躍的專家層權重放在系統 RAM、用到再走 PCIe 拉回 GPU、讓有限 VRAM 跑得了更大模型">Mixture of Experts（MoE）</a> 模型跟 dense 模型的記憶體 / 速度判讀方式不同、Gemma 4 26B A4B 這類 MoE 模型在上表「24GB Mac」一格出現時、容易讓人誤以為跟 14B dense 同等的記憶體需求。實際差異：</p>
<table>
  <thead>
      <tr>
          <th>維度</th>
          <th>Dense 模型（如 Gemma 4 31B）</th>
          <th>MoE 模型（如 Gemma 4 26B A4B）</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>名義參數</td>
          <td>31B 全部參與每個 token</td>
          <td>26B 總參數、每個 token 啟用約 4B（A4B 表示 active 4B）</td>
      </tr>
      <tr>
          <td>記憶體佔用</td>
          <td>整份權重必須塞進記憶體（18GB Q4）</td>
          <td>整份權重也要塞（13GB Q4）、但活躍部分小</td>
      </tr>
      <tr>
          <td>速度上限</td>
          <td>頻寬 / 整份權重 ≈ 30 tok/s</td>
          <td>頻寬 / 活躍權重 ≈ 80 tok/s（同硬體下）</td>
      </tr>
      <tr>
          <td>量化容忍度</td>
          <td>Q4 31B 仍可用</td>
          <td>Q4 在 MoE 上的影響跟 dense 不同、需 case-by-case 驗證</td>
      </tr>
  </tbody>
</table>
<p>判讀重點：MoE 的記憶體需求看「總參數」、但速度看「啟用參數」。同記憶體預算下 MoE 通常跑得比 dense 快、但能力強度比較需配合具體 benchmark 判讀、名義參數僅作初步篩選。PC 獨立 GPU 上的 MoE 部署策略（CPU 卸載專家層）見 <a href="/blog/llm/knowledge-cards/moe-cpu-offload/" data-link-title="MoE CPU 卸載" data-link-desc="把 Mixture-of-Experts 模型不活躍的專家層權重放在系統 RAM、用到再走 PCIe 拉回 GPU、讓有限 VRAM 跑得了更大模型">MoE CPU 卸載卡片</a>。</p>
<h2 id="為什麼-32gb-是寫-code-場景的甜蜜點">為什麼 32GB 是寫 code 場景的甜蜜點</h2>
<p>32GB Mac 跑 Gemma 4 31B（Q4 + MTP）是 2026 年 5 月寫 code 場景最佳的價格效能比，原因是三個趨勢的交會：</p>
<ol>
<li><strong>31B 模型剛好能力夠用</strong>。Gemma 4 31B / Qwen3-Coder 30B 在 SWE-bench 等 coding benchmark 上的表現大幅超越 14B 模型，接近 GPT-4 mini 等級。14B 等級的模型在跨檔案任務上仍經常失誤。</li>
<li><strong>Q4 量化在 31B 上的品質衰減仍可接受</strong>。Q4 在 7B 模型上品質衰減明顯，但 31B 模型有「參數冗餘」，Q4 反而是甜蜜點。</li>
<li><strong>32GB 剛好夠 18GB 模型 + 8GB 系統 + 6GB 其他</strong>。再小（24GB）跑 31B Q4 會吃緊；再大（48GB）邊際效益降低，除非要跑 70B。</li>
</ol>
<p>對應的 Mac 機型（2026 年 5 月可購）：</p>
<ul>
<li>MacBook Pro 14 / 16 with M4 Pro / Max，32GB 配置。</li>
<li>Mac mini M4 Pro，32GB 配置（最便宜的進入點）。</li>
<li>Mac Studio M4 Max，32GB 起跳。</li>
</ul>
<p>如果你正準備買新 Mac 主要為了跑本地 LLM 寫 code、32GB 在 [預算敏感、單機、Gemma 4 31B 為主] 通常是最划算的起點。16GB 在 [&gt;14B 模型 / 多工] 會被擠到 swap、48GB+ 在純寫 code 場景超過甜蜜點、但對 [長 context coding agent / 70B 模型] 仍有實際價值。</p>
<h2 id="16gb-mac-的可行策略">16GB Mac 的可行策略</h2>
<p>16GB Mac 是現實上的最小可用配置。能跑的最大實用模型是 Gemma 4 E4B（Google 的 8B 級實驗版本）或 Qwen3 7B。體感上：</p>
<ol>
<li>同時開 VS Code + Chrome + Slack 跟跑模型會擠到 swap、整台 Mac 變慢；建議跑模型時關掉其他重度 app。</li>
<li>模型品質明顯弱於 31B 等級。簡單 function 補完還行、跨檔案重構交給雲端旗艦更划算。</li>
<li>適合「偶爾用本地、主要還是雲端」的混用策略。</li>
</ol>
<p>如果你的 Mac 是 16GB，先用 Gemma 4 E4B 試試看，評估自己工作流是否真的需要本地 LLM。多數情況下答案是「雲端 API 月費比換 Mac 便宜」。</p>
<h2 id="kv-cache-與長-context-的記憶體陷阱">KV cache 與長 context 的記憶體陷阱</h2>
<p>模型權重佔的記憶體是固定的，但 KV cache 隨 context 長度線性增加。長 context 場景的記憶體陷阱常被忽略。</p>
<p>接近真實的估算（Gemma 4 31B、Q4 量化）：</p>
<table>
  <thead>
      <tr>
          <th>Context 長度</th>
          <th>KV cache 估算</th>
          <th>總記憶體需求</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>1K tokens</td>
          <td>~0.5 GB</td>
          <td>模型 18GB + 0.5GB</td>
      </tr>
      <tr>
          <td>4K tokens</td>
          <td>~2 GB</td>
          <td>模型 18GB + 2GB</td>
      </tr>
      <tr>
          <td>16K tokens</td>
          <td>~8 GB</td>
          <td>模型 18GB + 8GB</td>
      </tr>
      <tr>
          <td>32K tokens</td>
          <td>~16 GB</td>
          <td>模型 18GB + 16GB → 32GB Mac 開始 swap</td>
      </tr>
  </tbody>
</table>
<p>陷阱是把 context 長度設到模型支援的上限（如 32K、128K）卻沒算 KV cache 成本。32GB Mac 跑 31B 模型，實際可用 context 大約只有 8 ~ 16K tokens；超過就會 swap，速度崩潰。</p>
<p>解法：</p>
<ol>
<li>短 prompt 場景（compact code completion）：完全沒問題，多數設定都在 2K 以下。</li>
<li>中等 context（4 ~ 16K）：32GB Mac 仍可運作，但要留意 KV cache 吃多少。</li>
<li>長 context（16K+）：考慮 oMLX 的 paged SSD KV cache（把 KV cache 部分頁面換出到 SSD、換取較長 context、代價是 TTFT 與生字速度略增）。詳見 <a href="/blog/llm/00-foundations/mlx-mtp-omlx/" data-link-title="0.4 MLX / MTP / oMLX 的區別" data-link-desc="三個常被混為一談的術語：framework、加速技巧、特化 server，疊加而非互斥">0.4 MLX / MTP / oMLX</a>。</li>
</ol>
<h2 id="風扇發熱與降頻">風扇、發熱與降頻</h2>
<p>Apple Silicon Mac 跑本地 LLM 會持續滿載 CPU / GPU。實際體感：</p>
<table>
  <thead>
      <tr>
          <th>機型</th>
          <th>散熱</th>
          <th>持續推論體感</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>MacBook Air（fanless）</td>
          <td>被動</td>
          <td>5 ~ 10 分鐘後降頻，生字速度掉 30 ~ 50%</td>
      </tr>
      <tr>
          <td>MacBook Pro 14 / 16</td>
          <td>主動</td>
          <td>風扇明顯轉，但能維持效能</td>
      </tr>
      <tr>
          <td>Mac mini</td>
          <td>主動</td>
          <td>風扇轉但較安靜</td>
      </tr>
      <tr>
          <td>Mac Studio</td>
          <td>主動</td>
          <td>體感安靜，效能維持最好</td>
      </tr>
  </tbody>
</table>
<p>對「全天候用本地 LLM」的工作流，桌機型（Mac mini、Studio）比筆電好。筆電上跑長時間推論還要考慮電池與發熱對手部舒適度的影響。</p>
<h2 id="按情境選機型決策表">按情境選機型決策表</h2>
<p>決策表把前面三個變數（手上預算 / 想跑的 model size / 主要用途）摺成一張快查、依情境定位、不需要重新讀整章。詳細的模型選型考慮見 <a href="/blog/llm/01-local-llm-services/model-selection-priority/" data-link-title="1.4 寫 code 場景的模型選型優先順序" data-link-desc="Gemma 4 31B MTP → Qwen3-Coder 30B → Qwen3 14B → gpt-oss 20B 的取捨與適用情境">1.4 模型選型優先順序</a>。</p>
<table>
  <thead>
      <tr>
          <th>情境</th>
          <th>建議</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>已有 16GB Mac，想試本地</td>
          <td>用 Gemma 4 E4B 試一週，主力仍用雲端，評估是否值得升級</td>
      </tr>
      <tr>
          <td>已有 24GB Mac，想試本地</td>
          <td>Gemma 4 12B 或 Qwen3-Coder 14B，是合理起點</td>
      </tr>
      <tr>
          <td>已有 32GB Mac</td>
          <td>Gemma 4 31B MTP 是預設選擇，能力 / 速度甜蜜點</td>
      </tr>
      <tr>
          <td>已有 48GB+ Mac</td>
          <td>Qwen3-Coder 32B 或 Llama 3.3 70B Q4，能力接近 GPT-4 mini</td>
      </tr>
      <tr>
          <td>正準備買新 Mac，預算敏感</td>
          <td>Mac mini M4 Pro 32GB 是最划算的進入點</td>
      </tr>
      <tr>
          <td>正準備買新 Mac，要兼顧攜帶</td>
          <td>MacBook Pro 14 with M4 Pro 32GB</td>
      </tr>
      <tr>
          <td>正準備買新 Mac，要追求最大本地能力</td>
          <td>Mac Studio M4 Max 64GB+</td>
      </tr>
  </tbody>
</table>
<p>陷阱是把 96GB+ 配置當成「未來證明」。模型架構演進可能讓現在的記憶體預算明年就不重要（例如 1-bit 量化、新的稀疏架構）。買超大記憶體前先確認有具體現有需求支撐；「以後可能跑得到 100B+ 模型」這類期待風險很高。</p>
<h2 id="下一章">下一章</h2>
<p>下一章：<a href="/blog/llm/00-foundations/info-judgment-frames/" data-link-title="0.6 判讀本地 LLM 資訊的五個框架" data-link-desc="本地 LLM 資訊更新快，學會用版本、層級、變數、能力、資料流五個框架評估文章與宣稱">0.6 判讀本地 LLM 資訊的五個框架</a>、把心智模型轉成判讀資訊的反射。</p>
]]></content:encoded></item></channel></rss>