<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>GPU on KnightLi的博客</title>
        <link>https://knightli.com/zh-tw/tags/gpu/</link>
        <description>Recent content in GPU on KnightLi的博客</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-tw</language>
        <lastBuildDate>Sun, 26 Apr 2026 19:35:57 +0800</lastBuildDate><atom:link href="https://knightli.com/zh-tw/tags/gpu/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Ubuntu 26.04 LTS 的 GPU 與硬體支援更新：CUDA、ROCm、DPC&#43;&#43; 和更多平台變化</title>
        <link>https://knightli.com/zh-tw/2026/04/26/ubuntu-26-04-lts-gpu-hardware-ai-updates/</link>
        <pubDate>Sun, 26 Apr 2026 19:35:57 +0800</pubDate>
        
        <guid>https://knightli.com/zh-tw/2026/04/26/ubuntu-26-04-lts-gpu-hardware-ai-updates/</guid>
        <description>&lt;p&gt;如果上一篇比較像是 &lt;code&gt;Ubuntu 26.04 LTS&lt;/code&gt; 的桌面總覽，那這篇可以看作它在硬體與算力側的補充版。官方在這一輪 &lt;code&gt;26.04&lt;/code&gt; 裡，把不少和 AI、GPU 計算、平台相容性直接相關的內容都推進了主倉庫或正式支援範圍。&lt;/p&gt;
&lt;p&gt;先說結論：這次最值得關注的，不只是桌面和核心升級，而是 &lt;strong&gt;Ubuntu 正在把 Intel、NVIDIA、AMD 三家的 GPU 計算堆疊，更系統地納入發行版生態&lt;/strong&gt;。&lt;/p&gt;
&lt;h2 id=&#34;1-intel-dpc-與相關元件進入-ubuntu-archive&#34;&gt;1. Intel DPC++ 與相關元件進入 Ubuntu Archive
&lt;/h2&gt;&lt;p&gt;從 &lt;code&gt;26.04&lt;/code&gt; 開始，Intel 開源的 &lt;code&gt;oneAPI DPC++&lt;/code&gt; 編譯器已經可以直接從 Ubuntu Archive 取得，用來建構 &lt;code&gt;SYCL&lt;/code&gt; 程式碼。其執行階段也包含面向 Intel GPU 的配接器。&lt;/p&gt;
&lt;p&gt;同時進入 Ubuntu 倉庫的，還有兩個相關元件：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;oneDPL&lt;/code&gt;，也就是 DPC++ library，提供更高生產力的開發介面&lt;/li&gt;
&lt;li&gt;&lt;code&gt;oneDNN&lt;/code&gt;，而且是基於 &lt;code&gt;dpclang-6&lt;/code&gt; 建構，可在 Intel GPU 上運行&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;這代表如果你本來就在看 &lt;code&gt;SYCL&lt;/code&gt;、異質運算，或是 Intel GPU 上的 AI 工作負載，Ubuntu 現在給出的路徑會直接很多，不再需要完全依賴一套獨立維護的外部環境。&lt;/p&gt;
&lt;p&gt;官方也特別提醒一點：如果要實際調用這些 Intel GPU 相關能力，使用者需要加入 &lt;code&gt;render&lt;/code&gt; 群組。&lt;/p&gt;
&lt;h2 id=&#34;2-nvidia-cuda-toolkit-現在也能直接-apt-install&#34;&gt;2. NVIDIA CUDA toolkit 現在也能直接 &lt;code&gt;apt install&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;對很多開發者和維運人員來說，這可能是這份更新裡最實用的一條。&lt;/p&gt;
&lt;p&gt;從 &lt;code&gt;26.04&lt;/code&gt; 開始，&lt;code&gt;NVIDIA CUDA toolkit&lt;/code&gt; 已經可以直接透過 Ubuntu Archive 安裝。命令就是：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt install cuda-toolkit
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;這背後的意義，不只是「少打幾條指令」。&lt;/p&gt;
&lt;p&gt;對以 Ubuntu 為目標平台發佈軟體的開發者來說，新的模式意味著可以直接宣告對 &lt;code&gt;CUDA runtime&lt;/code&gt; 的依賴，後續安裝與相容性由 Ubuntu 在發行版層面處理。這會讓 CUDA 在 Ubuntu 上更容易取得，也更接近系統原生能力，而不是額外疊上一層需要單獨維護的外部軟體堆疊。&lt;/p&gt;
&lt;h2 id=&#34;3-amd-rocm-710-進入-universe&#34;&gt;3. AMD ROCm 7.1.0 進入 Universe
&lt;/h2&gt;&lt;p&gt;AMD 這邊，Ubuntu Universe 現在已經包含 &lt;code&gt;ROCm 7.1.0&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;這套函式庫主要提供的是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;面向 AMD GPU 的 AI 訓練與推論後端能力&lt;/li&gt;
&lt;li&gt;機器學習與高效能運算相關的軟體基礎設施&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;官方還提到，Canonical 會在自己的 CI/CD 流程裡持續測試 ROCm 相關元件。除了 &lt;code&gt;autopkgtests&lt;/code&gt;，也覆蓋了一些使用者態應用，包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;llama.cpp&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;pytorch&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Blender&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Lemonade Server&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;這條資訊其實很關鍵，因為它說明 Ubuntu 不是單純「把套件放進倉庫」，而是把 ROCm 當成一套可維護的軟體堆疊來驗證。&lt;/p&gt;
&lt;h2 id=&#34;4-這一輪真正的重點是三家-gpu-生態都在落地&#34;&gt;4. 這一輪真正的重點，是三家 GPU 生態都在落地
&lt;/h2&gt;&lt;p&gt;把 &lt;code&gt;DPC++&lt;/code&gt;、&lt;code&gt;CUDA&lt;/code&gt; 和 &lt;code&gt;ROCm&lt;/code&gt; 放在一起看，會更容易理解 &lt;code&gt;26.04&lt;/code&gt; 的方向：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Intel：推進 &lt;code&gt;SYCL&lt;/code&gt; / &lt;code&gt;oneAPI&lt;/code&gt; 相關能力進入官方倉庫&lt;/li&gt;
&lt;li&gt;NVIDIA：讓 &lt;code&gt;CUDA toolkit&lt;/code&gt; 具備發行版級的安裝路徑&lt;/li&gt;
&lt;li&gt;AMD：把 &lt;code&gt;ROCm 7.1.0&lt;/code&gt; 納入 Universe，並持續做測試&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果你平常會在 Ubuntu 上碰到這些場景，這一輪更新會比較有感：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;本地大模型推論&lt;/li&gt;
&lt;li&gt;GPU 加速訓練或微調&lt;/li&gt;
&lt;li&gt;Blender、科學運算、HPC&lt;/li&gt;
&lt;li&gt;需要在多種 GPU 平台之間切換的開發環境&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;換句話說，Ubuntu 現在不只是「能裝顯卡驅動」，而是開始更完整地承接 &lt;strong&gt;AI 與 GPU 計算所需的使用者態軟體堆疊&lt;/strong&gt;。&lt;/p&gt;
&lt;h2 id=&#34;5-nvidia-dynamic-boost-預設啟用&#34;&gt;5. NVIDIA Dynamic Boost 預設啟用
&lt;/h2&gt;&lt;p&gt;從 &lt;code&gt;25.04&lt;/code&gt; 開始，支援的 NVIDIA 筆電已經預設啟用 &lt;code&gt;Dynamic Boost&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;這個功能的邏輯很直接：系統會根據當前負載，在 CPU 和 GPU 之間動態分配功耗。對遊戲場景來說，常見收益就是在需要時把更多功率給 GPU，以換取更高效能。&lt;/p&gt;
&lt;p&gt;不過它有兩個前提：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;裝置接上交流電&lt;/li&gt;
&lt;li&gt;GPU 負載夠高&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;在電池供電狀態下，它不會介入。&lt;/p&gt;
&lt;h2 id=&#34;6-intel-新一代內顯與獨顯支援持續往前推進&#34;&gt;6. Intel 新一代內顯與獨顯支援持續往前推進
&lt;/h2&gt;&lt;p&gt;Ubuntu 這一輪也把對新 Intel GPU 的支援繼續往前推，重點包括：&lt;/p&gt;
&lt;p&gt;整合顯示：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Intel Core Ultra Xe2&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Intel Core Ultra Xe3&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;獨立顯示：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Intel Arc 5 B570&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Intel Arc 5 B580&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Intel Arc Pro B50&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Intel Arc Pro B60&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Intel Arc Pro B65&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Intel Arc Pro B70&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;圍繞這批裝置，官方也列出了一些已經到位的特性：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;基於 Intel Embree 的 GPU 與 CPU 光線追蹤渲染效能提升，像 &lt;code&gt;Blender 4.2+&lt;/code&gt; 這類應用可受益&lt;/li&gt;
&lt;li&gt;&amp;ldquo;Battlemage&amp;rdquo; 裝置支援 &lt;code&gt;AVC&lt;/code&gt;、&lt;code&gt;JPEG&lt;/code&gt;、&lt;code&gt;HEVC&lt;/code&gt; 和 &lt;code&gt;AV1&lt;/code&gt; 的硬體視訊編碼&lt;/li&gt;
&lt;li&gt;Intel Compute Runtime 引入新的 &lt;code&gt;CCS&lt;/code&gt; 最佳化&lt;/li&gt;
&lt;li&gt;已啟用 Intel Xe GPU 偵錯支援&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果你更關注後續版本，&lt;code&gt;25.10&lt;/code&gt; 還會繼續帶進一些新能力，例如：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;借助 &lt;code&gt;Linux kernel 6.17&lt;/code&gt; 初步支援代號 &lt;code&gt;Panther Lake&lt;/code&gt; 的下一代 Intel 用戶端平台&lt;/li&gt;
&lt;li&gt;改進 IOMMU、PCIe 子系統與多 GPU 支援&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Mesa 25.2.3&lt;/code&gt; 為 Battlemage 和 Panther Lake 啟用 &lt;code&gt;VK_KHR_shader_bfloat16&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;intel-media-driver 25.3.0&lt;/code&gt; 增加 Panther Lake 解碼與 &lt;code&gt;VP9&lt;/code&gt; 編碼支援&lt;/li&gt;
&lt;li&gt;&lt;code&gt;intel-compute-runtime 25.31&lt;/code&gt; 調整 Level Zero 的 &lt;code&gt;USM&lt;/code&gt; 池與本地顯存事件配置策略&lt;/li&gt;
&lt;li&gt;&lt;code&gt;level-zero 1.24&lt;/code&gt; 與 &lt;code&gt;level-zero-raytracing 1.1.0&lt;/code&gt; 帶來更完整的規範與 RTAS 擴充支援&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;7-nvidia-桌機的掛起恢復也更穩定了&#34;&gt;7. Nvidia 桌機的掛起恢復也更穩定了
&lt;/h2&gt;&lt;p&gt;從 &lt;code&gt;25.10&lt;/code&gt; 開始，Ubuntu 在專有 &lt;code&gt;Nvidia&lt;/code&gt; 驅動中啟用了掛起恢復支援，以減少桌機喚醒後的損毀與卡死問題。&lt;/p&gt;
&lt;p&gt;這類改動不算「看得見的新功能」，但對實際日常穩定性很重要，尤其是長時間開機、經常掛起恢復的桌面環境。&lt;/p&gt;
&lt;h2 id=&#34;8-arm樹莓派risc-v-和-ibm-z-也有硬性門檻變化&#34;&gt;8. ARM、樹莓派、RISC-V 和 IBM Z 也有硬性門檻變化
&lt;/h2&gt;&lt;p&gt;除了 GPU 軟體堆疊，這份發行說明裡還有幾條平台層面的變化很值得單獨記一下。&lt;/p&gt;
&lt;h3 id=&#34;arm64-桌面平台&#34;&gt;ARM64 桌面平台
&lt;/h3&gt;&lt;p&gt;從 &lt;code&gt;25.10&lt;/code&gt; 開始，&lt;code&gt;linux-generic&lt;/code&gt; 的 &lt;code&gt;ARM64&lt;/code&gt; 核心會提供更廣泛的桌面相容性，覆蓋那些使用 &lt;code&gt;UEFI&lt;/code&gt; 開機的 ARM64 桌面平台。&lt;/p&gt;
&lt;h3 id=&#34;raspberry-pi-新開機配置&#34;&gt;Raspberry Pi 新開機配置
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;25.10&lt;/code&gt; 引入、&lt;code&gt;26.04&lt;/code&gt; 持續調整的一個變化，是樹莓派開機分割區的新配置。&lt;/p&gt;
&lt;p&gt;它的目標是提升開機可靠性：新寫入的開機資源會先被「測試」，確認沒問題後才會提交為新的 &amp;ldquo;known good&amp;rdquo; 集合。&lt;/p&gt;
&lt;p&gt;這裡最需要注意的是韌體時間要求：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Pi 3 / 3+ / CM3+ / Zero 2W&lt;/code&gt;：不需要額外操作，開機韌體就在映像檔內&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Pi 4 / 400 / CM4&lt;/code&gt;：開機韌體日期不得早於 &lt;code&gt;2022-11-25&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Pi 5 / 500 / CM5&lt;/code&gt;：開機韌體日期不得早於 &lt;code&gt;2025-02-11&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;檢查命令是：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo rpi-eeprom-update
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;如果韌體太舊，而且你使用的是 &lt;code&gt;Ubuntu 24.04 LTS&lt;/code&gt; 或更新版本，可以這樣更新：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo rpi-eeprom-update -a
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo reboot
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;raspberry-pi-桌面映像改用-desktop-minimal&#34;&gt;Raspberry Pi 桌面映像改用 desktop-minimal
&lt;/h3&gt;&lt;p&gt;從 &lt;code&gt;25.10&lt;/code&gt; 開始，樹莓派版 Ubuntu Desktop 映像改為基於 &lt;code&gt;desktop-minimal&lt;/code&gt;，而不是完整的 &lt;code&gt;desktop&lt;/code&gt; seed。&lt;/p&gt;
&lt;p&gt;官方給出的收益很明確：預設安裝的應用更少，未壓縮映像與實際系統都能節省大約 &lt;code&gt;777MB&lt;/code&gt; 空間。&lt;/p&gt;
&lt;p&gt;如果升級後想批次移除這批預設應用，可以使用：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt purge ubuntu-desktop --autoremove
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;如果你想保留其中某些應用，先用 &lt;code&gt;apt&lt;/code&gt; 把它們標記為手動安裝即可。&lt;/p&gt;
&lt;h3 id=&#34;樹莓派-swap-改由-cloud-init-處理&#34;&gt;樹莓派 swap 改由 cloud-init 處理
&lt;/h3&gt;&lt;p&gt;從 &lt;code&gt;25.10&lt;/code&gt; 開始，樹莓派桌面映像裡的 swap 檔建立改由 &lt;code&gt;cloud-init&lt;/code&gt; 負責。&lt;br&gt;
如果你想在首次開機前自訂 swap 大小，可以直接修改開機分割區上的 &lt;code&gt;user-data&lt;/code&gt;。&lt;/p&gt;
&lt;h3 id=&#34;risc-v-門檻上調&#34;&gt;RISC-V 門檻上調
&lt;/h3&gt;&lt;p&gt;從 &lt;code&gt;25.10&lt;/code&gt; 開始，&lt;code&gt;Ubuntu 26.04 LTS&lt;/code&gt; 的 &lt;code&gt;RISC-V&lt;/code&gt; 版本要求硬體實作 &lt;code&gt;RVA23S64 ISA profile&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;不符合這個要求的裝置，已經不能執行 &lt;code&gt;Ubuntu 26.04 LTS&lt;/code&gt;。如果你手上還是較早的 &lt;code&gt;RVA20&lt;/code&gt; 處理器板卡，那就得繼續留在 &lt;code&gt;Ubuntu 24.04 LTS&lt;/code&gt; 這一代支援線上。&lt;/p&gt;
&lt;p&gt;按照官方說明，截至 &lt;code&gt;2026 年 4 月&lt;/code&gt;，現實裡還沒有可用的 &lt;code&gt;RVA23S64&lt;/code&gt; 硬體，因此目前唯一受支援的平台，其實是基於 &lt;code&gt;QEMU&lt;/code&gt; 並使用 &lt;code&gt;-cpu rva23s64&lt;/code&gt; 配置的虛擬化環境。&lt;/p&gt;
&lt;h3 id=&#34;ibm-z-最低要求提高到-z15&#34;&gt;IBM Z 最低要求提高到 z15
&lt;/h3&gt;&lt;p&gt;從 &lt;code&gt;26.04&lt;/code&gt; 開始，&lt;code&gt;s390x&lt;/code&gt; 架構最低要求提高到 &lt;code&gt;z15&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;這意味著：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;z14&lt;/code&gt; / &lt;code&gt;LinuxONE II&lt;/code&gt; 以及更早的平台，已經不能安裝 &lt;code&gt;Ubuntu 26.04 LTS&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;z15&lt;/code&gt; / &lt;code&gt;LinuxONE III&lt;/code&gt; 以及更新平台，會有更好的效能表現&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;9-哪些人更適合先看這篇&#34;&gt;9. 哪些人更適合先看這篇
&lt;/h2&gt;&lt;p&gt;如果你屬於下面這些場景，這篇會比桌面總覽更值得優先看：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;在 Ubuntu 上做 &lt;code&gt;CUDA&lt;/code&gt;、&lt;code&gt;ROCm&lt;/code&gt;、&lt;code&gt;SYCL&lt;/code&gt; 或本地 AI 推論&lt;/li&gt;
&lt;li&gt;用 Intel、NVIDIA、AMD GPU 做開發或計算任務&lt;/li&gt;
&lt;li&gt;維護 Raspberry Pi、ARM64、RISC-V、IBM Z 等非標準 x86 平台&lt;/li&gt;
&lt;li&gt;對升級後的驅動、執行時、倉庫可用性和平台門檻更敏感&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;10-一句話總結&#34;&gt;10. 一句話總結
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Ubuntu 26.04 LTS&lt;/code&gt; 在硬體與 AI 軟體堆疊上的重點，不是哪一家顯卡單獨增強了什麼，而是 &lt;strong&gt;Intel 的 DPC++、NVIDIA 的 CUDA、AMD 的 ROCm，都開始以更官方、更多倉庫內、也更可維護的方式進入 Ubuntu 生態&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;如果你過去把 Ubuntu 當成「先裝系統，再自己拼 GPU 環境」的底座，那從 &lt;code&gt;26.04&lt;/code&gt; 開始，它已經更像一個願意主動承接 AI 與異質運算工作負載的發行版了。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>解決 Ollama 使用 CPU 而不使用 GPU 運算的問題</title>
        <link>https://knightli.com/zh-tw/2026/04/24/fix-ollama-using-cpu-instead-of-gpu/</link>
        <pubDate>Fri, 24 Apr 2026 18:30:00 +0800</pubDate>
        
        <guid>https://knightli.com/zh-tw/2026/04/24/fix-ollama-using-cpu-instead-of-gpu/</guid>
        <description>&lt;p&gt;本地跑大模型時，最讓人困惑的一類問題就是：機器明明有顯卡，&lt;code&gt;Ollama&lt;/code&gt; 卻還是主要吃 &lt;code&gt;CPU&lt;/code&gt;，速度也慢得離譜。&lt;/p&gt;
&lt;p&gt;先說結論，這類問題通常不是單一原因。最常見的幾類分別是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Ollama&lt;/code&gt; 根本沒有識別到可用 GPU&lt;/li&gt;
&lt;li&gt;驅動、&lt;code&gt;ROCm&lt;/code&gt; 或 &lt;code&gt;CUDA&lt;/code&gt; 環境沒裝對&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ollama&lt;/code&gt; 服務啟動時沒有繼承正確的環境變數&lt;/li&gt;
&lt;li&gt;模型太大，實際已經退回到 &lt;code&gt;CPU&lt;/code&gt; 或 &lt;code&gt;CPU/GPU&lt;/code&gt; 混合載入&lt;/li&gt;
&lt;li&gt;AMD 平台存在額外相容性問題，例如 &lt;code&gt;ROCm&lt;/code&gt; 版本、&lt;code&gt;gfx&lt;/code&gt; 代號或裝置可見性設定不對&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;下面按最省時間的順序排查。&lt;/p&gt;
&lt;h2 id=&#34;1-先確認是不是真的沒用到-gpu&#34;&gt;1. 先確認是不是真的沒用到 GPU
&lt;/h2&gt;&lt;p&gt;最直接的方法是看：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ollama ps
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;重點看 &lt;code&gt;PROCESSOR&lt;/code&gt; 這一欄。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;100% GPU&lt;/code&gt;：表示模型完整跑在顯卡上&lt;/li&gt;
&lt;li&gt;&lt;code&gt;100% CPU&lt;/code&gt;：表示完全沒用上顯卡&lt;/li&gt;
&lt;li&gt;&lt;code&gt;48%/52% CPU/GPU&lt;/code&gt; 這類結果：表示模型部分進了顯存，部分落到系統記憶體&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果你看到的是 &lt;code&gt;100% CPU&lt;/code&gt;，後面就該重點查環境和服務設定。&lt;br&gt;
如果看到的是混合載入，那不一定代表顯卡沒生效，更可能只是顯存不夠。&lt;/p&gt;
&lt;h2 id=&#34;2-先排除最常見的誤區模型塞不進顯存&#34;&gt;2. 先排除最常見的誤區：模型塞不進顯存
&lt;/h2&gt;&lt;p&gt;很多人以為只要裝了 GPU，&lt;code&gt;Ollama&lt;/code&gt; 就一定會全顯卡推理。其實不是。&lt;/p&gt;
&lt;p&gt;如果模型太大、上下文太長，或者機器上已經有其他模型佔著顯存，&lt;code&gt;Ollama&lt;/code&gt; 很可能會退回到：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;部分 GPU + 部分 CPU&lt;/li&gt;
&lt;li&gt;直接 &lt;code&gt;100% CPU&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;這時候可以先做兩個最簡單的驗證：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;換一個更小的模型測試&lt;br&gt;
例如先用 &lt;code&gt;4B&lt;/code&gt;、&lt;code&gt;7B&lt;/code&gt; 這類小模型，而不是一上來就跑更大的參數量。&lt;/li&gt;
&lt;li&gt;卸載其他已載入的模型後再試&lt;br&gt;
先看 &lt;code&gt;ollama ps&lt;/code&gt;，確認沒有別的模型佔著顯存。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;如果小模型能上 GPU、大模型不行，問題通常就不在驅動，而在顯存容量。&lt;/p&gt;
&lt;h2 id=&#34;3-檢查顯卡驅動和底層環境是否可用&#34;&gt;3. 檢查顯卡驅動和底層環境是否可用
&lt;/h2&gt;&lt;p&gt;如果連小模型都只能跑 &lt;code&gt;CPU&lt;/code&gt;，下一步就該看底層環境。&lt;/p&gt;
&lt;h3 id=&#34;nvidia-方向&#34;&gt;NVIDIA 方向
&lt;/h3&gt;&lt;p&gt;先確認驅動正常、系統能看到顯卡。常見檢查方式包括：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nvidia-smi
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;如果這裡都報錯，&lt;code&gt;Ollama&lt;/code&gt; 幾乎不可能正常使用 GPU。&lt;/p&gt;
&lt;h3 id=&#34;amd--rocm-方向&#34;&gt;AMD / ROCm 方向
&lt;/h3&gt;&lt;p&gt;如果你是 &lt;code&gt;AMD GPU&lt;/code&gt;，尤其是 &lt;code&gt;ROCm&lt;/code&gt; 環境，重點先看：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rocminfo
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rocm-smi
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;如果這些工具都不能正常列出裝置，說明問題還在 &lt;code&gt;Ollama&lt;/code&gt; 之前，先不要繼續折騰應用層。&lt;/p&gt;
&lt;p&gt;對 AMD 來說，最常見的問題不是「有沒有裝驅動」，而是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ROCm&lt;/code&gt; 版本和系統版本不匹配&lt;/li&gt;
&lt;li&gt;當前 GPU 架構支援不完整&lt;/li&gt;
&lt;li&gt;裝置雖然存在，但執行環境沒有正確暴露給 &lt;code&gt;Ollama&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;4-重啟-ollama-服務不要只重開終端&#34;&gt;4. 重啟 Ollama 服務，不要只重開終端
&lt;/h2&gt;&lt;p&gt;這是非常高頻的坑。&lt;/p&gt;
&lt;p&gt;很多人裝完驅動、改完環境變數、補完 &lt;code&gt;ROCm&lt;/code&gt; 之後，只是重新開一個終端，然後直接繼續 &lt;code&gt;ollama run&lt;/code&gt;。但如果 &lt;code&gt;Ollama&lt;/code&gt; 是以背景服務方式執行，它很可能還在用舊環境。&lt;/p&gt;
&lt;p&gt;所以更穩的做法是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;完整重啟 &lt;code&gt;Ollama&lt;/code&gt; 服務&lt;/li&gt;
&lt;li&gt;必要時直接重啟系統&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果你是在 Linux 上以服務方式執行，通常要確認服務進程已經重新拉起，而不是沿用之前的舊進程。&lt;/p&gt;
&lt;h2 id=&#34;5-檢查服務環境變數有沒有真的傳進去&#34;&gt;5. 檢查服務環境變數有沒有真的傳進去
&lt;/h2&gt;&lt;p&gt;這一步在 &lt;code&gt;AMD ROCm&lt;/code&gt; 環境尤其重要。&lt;/p&gt;
&lt;p&gt;有些機器在終端裡手動執行命令沒問題，但 &lt;code&gt;Ollama&lt;/code&gt; 服務還是只跑 &lt;code&gt;CPU&lt;/code&gt;，原因就是服務進程沒有拿到你在 shell 裡設定的變數。&lt;/p&gt;
&lt;p&gt;常見需要關注的變數包括：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ROCR_VISIBLE_DEVICES
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;HSA_OVERRIDE_GFX_VERSION
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;其中：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ROCR_VISIBLE_DEVICES&lt;/code&gt; 用來限制或指定 &lt;code&gt;ROCm&lt;/code&gt; 能看到哪些 GPU&lt;/li&gt;
&lt;li&gt;&lt;code&gt;HSA_OVERRIDE_GFX_VERSION&lt;/code&gt; 常見於某些 AMD 平台的相容性處理&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果你只是在當前終端裡臨時 &lt;code&gt;export&lt;/code&gt; 了變數，但 &lt;code&gt;Ollama&lt;/code&gt; 是 systemd、桌面背景服務或其他守護進程啟動的，這些變數未必會生效。&lt;/p&gt;
&lt;p&gt;也就是說，終端裡「看起來已經設定好了」，不代表 &lt;code&gt;Ollama&lt;/code&gt; 真的拿到了。&lt;/p&gt;
&lt;h2 id=&#34;6-amd-平台重點看-rocm-相容性&#34;&gt;6. AMD 平台重點看 ROCm 相容性
&lt;/h2&gt;&lt;p&gt;從公開頁面資訊來看，這個問題對應的影片主題本身就落在 &lt;code&gt;AMD Max+ 395&lt;/code&gt;、&lt;code&gt;strix halo&lt;/code&gt;、&lt;code&gt;AMD ROCm&lt;/code&gt; 這條線上。&lt;br&gt;
這類環境裡，&lt;code&gt;Ollama&lt;/code&gt; 不走 GPU，往往比 NVIDIA 平台更依賴版本匹配。&lt;/p&gt;
&lt;p&gt;可以優先排查下面幾項：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;ROCm&lt;/code&gt; 版本是否適合當前系統和顯卡&lt;/li&gt;
&lt;li&gt;當前 GPU 是否屬於 &lt;code&gt;ROCm&lt;/code&gt; 支援較好的架構範圍&lt;/li&gt;
&lt;li&gt;是否需要補 &lt;code&gt;HSA_OVERRIDE_GFX_VERSION&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;是否是舊版 &lt;code&gt;Ollama&lt;/code&gt; 或舊版底層推理庫導致相容性問題&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;如果你已經確認 &lt;code&gt;rocminfo&lt;/code&gt; 正常、GPU 也能被系統識別，但 &lt;code&gt;Ollama&lt;/code&gt; 仍然只跑 &lt;code&gt;CPU&lt;/code&gt;，那大概率就要回到版本組合上重新檢查，而不是繼續盲目調模型參數。&lt;/p&gt;
&lt;h2 id=&#34;7-dockerwsl-或遠端環境要額外檢查裝置映射&#34;&gt;7. Docker、WSL 或遠端環境要額外檢查裝置映射
&lt;/h2&gt;&lt;p&gt;如果你不是直接在裸機跑，而是在下面這些環境裡執行：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Docker&lt;/li&gt;
&lt;li&gt;WSL&lt;/li&gt;
&lt;li&gt;遠端容器&lt;/li&gt;
&lt;li&gt;虛擬化環境&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;那還要多看一層：GPU 裝置有沒有真的暴露進去。&lt;/p&gt;
&lt;p&gt;典型現象是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;宿主機能看到 GPU&lt;/li&gt;
&lt;li&gt;容器裡的 &lt;code&gt;Ollama&lt;/code&gt; 卻只能跑 &lt;code&gt;CPU&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;這時要先確認不是 &lt;code&gt;Ollama&lt;/code&gt; 本身的問題，而是容器或子系統根本沒拿到 GPU 存取權限。&lt;/p&gt;
&lt;h2 id=&#34;8-最後再看日誌而不是一開始就亂猜&#34;&gt;8. 最後再看日誌，而不是一開始就亂猜
&lt;/h2&gt;&lt;p&gt;如果前面都查過了，最有效的做法不是繼續反覆重裝，而是直接看 &lt;code&gt;Ollama&lt;/code&gt; 的啟動日誌和執行日誌。&lt;/p&gt;
&lt;p&gt;重點看兩類資訊：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;有沒有識別到 GPU&lt;/li&gt;
&lt;li&gt;有沒有出現驅動、庫載入、裝置初始化失敗之類的報錯&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;只要日誌裡明確出現類似「找不到相容 GPU」或「ROCm/CUDA 初始化失敗」，排查方向就會立刻清楚很多。&lt;/p&gt;
&lt;h2 id=&#34;排查順序&#34;&gt;排查順序
&lt;/h2&gt;&lt;p&gt;如果你只想記最短路徑，可以按這個順序來：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;ollama ps&lt;/code&gt; 看現在到底是 &lt;code&gt;GPU&lt;/code&gt;、&lt;code&gt;CPU&lt;/code&gt; 還是混合載入&lt;/li&gt;
&lt;li&gt;換一個更小的模型，排除顯存不夠&lt;/li&gt;
&lt;li&gt;用 &lt;code&gt;nvidia-smi&lt;/code&gt;、&lt;code&gt;rocminfo&lt;/code&gt;、&lt;code&gt;rocm-smi&lt;/code&gt; 先確認底層環境正常&lt;/li&gt;
&lt;li&gt;完整重啟 &lt;code&gt;Ollama&lt;/code&gt; 服務&lt;/li&gt;
&lt;li&gt;檢查服務環境變數，尤其是 AMD 的 &lt;code&gt;ROCR_VISIBLE_DEVICES&lt;/code&gt;、&lt;code&gt;HSA_OVERRIDE_GFX_VERSION&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;如果是 Docker / WSL，再檢查裝置映射&lt;/li&gt;
&lt;li&gt;最後看日誌定位具體報錯&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;結語&#34;&gt;結語
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Ollama&lt;/code&gt; 使用 &lt;code&gt;CPU&lt;/code&gt; 而不使用 &lt;code&gt;GPU&lt;/code&gt;，本質上通常是三類問題之一：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GPU 根本沒有被識別&lt;/li&gt;
&lt;li&gt;GPU 能被識別，但執行環境沒有傳到 &lt;code&gt;Ollama&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;GPU 在工作，但模型太大，最後還是回落到 &lt;code&gt;CPU&lt;/code&gt; 或混合記憶體&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;先把這三類分開，排查就會快很多。&lt;br&gt;
如果你是 AMD 平台，尤其要把注意力放在 &lt;code&gt;ROCm&lt;/code&gt; 版本、裝置可見性和相容性變數上，而不是只看 &lt;code&gt;Ollama&lt;/code&gt; 命令本身。&lt;/p&gt;
&lt;p&gt;原影片：&lt;a class=&#34;link&#34; href=&#34;https://www.bilibili.com/video/BV1cHoYBqE8k/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.bilibili.com/video/BV1cHoYBqE8k/&lt;/a&gt;&lt;/p&gt;
</description>
        </item>
        <item>
        <title>NVIDIA nvbandwidth 是什麼：GPU 頻寬測試工具怎麼用</title>
        <link>https://knightli.com/zh-tw/2026/04/24/nvidia-nvbandwidth-guide/</link>
        <pubDate>Fri, 24 Apr 2026 14:41:35 +0800</pubDate>
        
        <guid>https://knightli.com/zh-tw/2026/04/24/nvidia-nvbandwidth-guide/</guid>
        <description>&lt;p&gt;如果你最近在排查多張 &lt;code&gt;NVIDIA GPU&lt;/code&gt; 之間的互連效能，或是想確認 &lt;code&gt;PCIe&lt;/code&gt;、&lt;code&gt;NVLink&lt;/code&gt;、主機記憶體到顯存之間的實際頻寬，&lt;code&gt;NVIDIA/nvbandwidth&lt;/code&gt; 是一個很值得知道的小工具。&lt;/p&gt;
&lt;p&gt;它不是通用跑分軟體，也不是大模型框架裡的隱藏命令，而是 NVIDIA 開源出來、專門用來測量 GPU 相關記憶體拷貝頻寬與延遲的工具。相比只看理論頻寬，&lt;code&gt;nvbandwidth&lt;/code&gt; 更適合回答一個實際問題：&lt;strong&gt;這台機器目前這組 GPU 和互連鏈路，實際到底能跑出多少頻寬。&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&#34;1-nvbandwidth-是做什麼的&#34;&gt;1. &lt;code&gt;nvbandwidth&lt;/code&gt; 是做什麼的
&lt;/h2&gt;&lt;p&gt;從官方 README 的定位來看，&lt;code&gt;nvbandwidth&lt;/code&gt; 是一個用來測量 &lt;code&gt;NVIDIA GPU&lt;/code&gt; 頻寬的命令列工具。&lt;/p&gt;
&lt;p&gt;它重點關注的是各種 &lt;code&gt;memcpy&lt;/code&gt; 模式下的傳輸表現，例如：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;GPU -&amp;gt; GPU&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CPU -&amp;gt; GPU&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GPU -&amp;gt; CPU&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;多節點 GPU 之間的傳輸&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;這類測試特別適合下面幾種場景：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;排查多卡訓練或推理時的互連瓶頸&lt;/li&gt;
&lt;li&gt;驗證 &lt;code&gt;NVLink&lt;/code&gt;、&lt;code&gt;PCIe&lt;/code&gt;、&lt;code&gt;C2C&lt;/code&gt; 等鏈路的實際表現&lt;/li&gt;
&lt;li&gt;比較不同伺服器、不同拓撲、不同驅動或 CUDA 版本下的傳輸差異&lt;/li&gt;
&lt;li&gt;做叢集部署前的基礎硬體驗收&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;簡單說，&lt;code&gt;nvbandwidth&lt;/code&gt; 看的不是模型吞吐，而是更底層的「資料搬運能力」。&lt;/p&gt;
&lt;h2 id=&#34;2-它測的不是單一分數&#34;&gt;2. 它測的不是單一分數
&lt;/h2&gt;&lt;p&gt;很多人會把「頻寬測試」理解成最後只得到一個分數，但 &lt;code&gt;nvbandwidth&lt;/code&gt; 實際輸出的資訊會更細。&lt;/p&gt;
&lt;p&gt;它會依照測試類型給出矩陣結果。比如在 &lt;code&gt;device_to_device_memcpy_write_ce&lt;/code&gt; 這類測試裡，輸出會按 GPU 的行列展示每一對裝置之間的頻寬。這樣你不只知道「這台機器大概有多快」，還可以看出：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;哪兩張卡之間速度特別高&lt;/li&gt;
&lt;li&gt;哪些卡之間明顯受限於 &lt;code&gt;PCIe&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;某些 GPU 配對之間是否存在異常低頻寬&lt;/li&gt;
&lt;li&gt;多卡拓撲是否符合預期&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果你在看八卡伺服器、雙路平台或跨節點系統，這類矩陣結果通常會比單一平均值更有參考意義。&lt;/p&gt;
&lt;h2 id=&#34;3-ce-和-sm-兩類拷貝怎麼理解&#34;&gt;3. &lt;code&gt;CE&lt;/code&gt; 和 &lt;code&gt;SM&lt;/code&gt; 兩類拷貝怎麼理解
&lt;/h2&gt;&lt;p&gt;官方文件把測試分成兩類：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CE&lt;/code&gt;：基於 &lt;code&gt;memcpy&lt;/code&gt; API 的 copy engine 拷貝&lt;/li&gt;
&lt;li&gt;&lt;code&gt;SM&lt;/code&gt;：基於 kernel 的拷貝&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;這兩類結果不一定會完全一樣，因為它們代表的是不同的拷貝路徑。&lt;br&gt;
如果你只是想看裝置之間的一般資料搬運表現，通常會先關注 &lt;code&gt;CE&lt;/code&gt;；如果你要研究更細的執行路徑，再繼續看 &lt;code&gt;SM&lt;/code&gt; 會更合適。&lt;/p&gt;
&lt;p&gt;另外，README 也說明帶寬結果預設取多次測試的中位數；新版又補上了統計波動資訊，這對判斷結果是否穩定會更有幫助。&lt;/p&gt;
&lt;h2 id=&#34;4-執行它需要什麼環境&#34;&gt;4. 執行它需要什麼環境
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;nvbandwidth&lt;/code&gt; 不是那種「下載就能直接跑」的純二進位小工具，它需要標準的 CUDA 開發環境。&lt;/p&gt;
&lt;p&gt;官方 README 目前列出的基本要求包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CUDA Toolkit 11.x&lt;/code&gt; 或更高版本&lt;/li&gt;
&lt;li&gt;支援 &lt;code&gt;C++17&lt;/code&gt; 的編譯器&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CMake 3.20+&lt;/code&gt;，更推薦 &lt;code&gt;3.24+&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Boost program_options&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;可用的 &lt;code&gt;CUDA&lt;/code&gt; 裝置與相容驅動&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果你要跑多節點版本，要求會更高。當前 README 明確寫到：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;多節點建置需要 &lt;code&gt;CUDA Toolkit 12.3&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;驅動需要 &lt;code&gt;550&lt;/code&gt; 或更高&lt;/li&gt;
&lt;li&gt;需要 &lt;code&gt;MPI&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;需要設定 &lt;code&gt;nvidia-imex&lt;/code&gt; 服務&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;所以它更像是面向 Linux GPU 伺服器與叢集環境的工程工具，而不是給一般桌面使用者隨手裝來玩的。&lt;/p&gt;
&lt;h2 id=&#34;5-單機版怎麼編譯和執行&#34;&gt;5. 單機版怎麼編譯和執行
&lt;/h2&gt;&lt;p&gt;單機版建置流程很直接：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cmake .
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;make
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;在 &lt;code&gt;Ubuntu&lt;/code&gt; / &lt;code&gt;Debian&lt;/code&gt; 上，官方還提供了一個 &lt;code&gt;debian_install.sh&lt;/code&gt; 腳本，用來安裝通用依賴並建置專案。&lt;/p&gt;
&lt;p&gt;編譯完成後，可以先看幫助：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./nvbandwidth -h
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;幾個比較常用的參數包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-l&lt;/code&gt;：列出可用測試&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-t&lt;/code&gt;：按測試名稱或索引執行指定測試&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-p&lt;/code&gt;：按前綴批次執行測試&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-b&lt;/code&gt;：設定 memcpy buffer 大小，預設 &lt;code&gt;512 MiB&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-i&lt;/code&gt;：設定測試迭代次數&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-j&lt;/code&gt;：輸出 &lt;code&gt;JSON&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-H&lt;/code&gt;：啟用 huge pages 的主機記憶體配置&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果只是想先跑一輪預設測試，直接執行：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./nvbandwidth
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;如果只想測一個具體項目，例如某個裝置到裝置的拷貝：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./nvbandwidth -t device_to_device_memcpy_read_ce
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;6-多節點支援是它比較特別的地方&#34;&gt;6. 多節點支援是它比較特別的地方
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;nvbandwidth&lt;/code&gt; 不只是單機多卡測試工具，它也支援多節點場景。&lt;/p&gt;
&lt;p&gt;從 README 來看，多節點版本的建置方式是：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cmake -DMULTINODE&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; .
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;make
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;執行時通常要搭配 &lt;code&gt;mpirun&lt;/code&gt;，並以「每張 GPU 一個進程」的方式啟動。&lt;br&gt;
官方文件也要求所有參與測試的 rank 都處在同一個 multinode clique 內，並建議在 MPI 環境下主要執行帶 &lt;code&gt;multinode&lt;/code&gt; 前綴的測試。&lt;/p&gt;
&lt;p&gt;這一點說明它的定位明顯更偏向高效能運算與大型 GPU 系統，而不只是工作站自測。&lt;/p&gt;
&lt;p&gt;如果你手上是 &lt;code&gt;NVLink&lt;/code&gt; 多節點部署、&lt;code&gt;GB200&lt;/code&gt; / &lt;code&gt;Grace Hopper&lt;/code&gt; 這類更複雜的平台，&lt;code&gt;nvbandwidth&lt;/code&gt; 的價值會比一般消費級顯卡環境大得多。&lt;/p&gt;
&lt;h2 id=&#34;7-新版-v09-更新了什麼&#34;&gt;7. 新版 &lt;code&gt;v0.9&lt;/code&gt; 更新了什麼
&lt;/h2&gt;&lt;p&gt;截至 &lt;strong&gt;2026 年 4 月 24 日&lt;/strong&gt;，GitHub Releases 頁面顯示 &lt;code&gt;nvbandwidth&lt;/code&gt; 的最新版本是 &lt;strong&gt;&lt;code&gt;v0.9&lt;/code&gt;&lt;/strong&gt;，發布時間是 &lt;strong&gt;2026 年 4 月 8 日&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;這一版比較值得注意的更新主要有：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;為頻寬輸出增加波動統計資訊&lt;/li&gt;
&lt;li&gt;增加 host memory huge pages 支援（&lt;code&gt;Windows&lt;/code&gt; 不啟用）&lt;/li&gt;
&lt;li&gt;為裝置到裝置測試增加 pair sampling 選項&lt;/li&gt;
&lt;li&gt;補充 troubleshooting guide&lt;/li&gt;
&lt;li&gt;統一單機與多節點執行路徑&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;另外還有兩點工程層面的變化也很實用：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;改進 CUDA 架構檢測，降低對實際 GPU 存取的依賴&lt;/li&gt;
&lt;li&gt;在 &lt;code&gt;CUDA Toolkit 13.0+&lt;/code&gt; 場景下棄用 &lt;code&gt;Volta&lt;/code&gt;（&lt;code&gt;sm_70&lt;/code&gt; / &lt;code&gt;sm_72&lt;/code&gt;）支援&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果你之前只看過舊版資料，現在再回來看，&lt;code&gt;v0.9&lt;/code&gt; 已經不只是「測一下頻寬」的初始版本，而是朝著更適合自動化、排障和大型系統測試的方向繼續推進了。&lt;/p&gt;
&lt;h2 id=&#34;8-什麼時候適合用它&#34;&gt;8. 什麼時候適合用它
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;nvbandwidth&lt;/code&gt; 最適合下面這些情況：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;你想確認多張 &lt;code&gt;NVIDIA GPU&lt;/code&gt; 之間的真實互連頻寬&lt;/li&gt;
&lt;li&gt;你懷疑某張卡被插在了受限的 &lt;code&gt;PCIe&lt;/code&gt; 插槽&lt;/li&gt;
&lt;li&gt;你想比較 &lt;code&gt;NVLink&lt;/code&gt; 和非 &lt;code&gt;NVLink&lt;/code&gt; 路徑的差異&lt;/li&gt;
&lt;li&gt;你在做多節點 GPU 叢集部署，需要驗證鏈路是否正常&lt;/li&gt;
&lt;li&gt;你想把測試結果接進自動化流程，輸出 &lt;code&gt;JSON&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;但如果你的目標只是看「訓練快不快」或「推理 tokens/s 有多少」，那它不是直接答案。&lt;br&gt;
這時你還需要搭配訓練框架、推理引擎或具體 workload 的實測一起看。&lt;/p&gt;
&lt;h2 id=&#34;9-可以怎麼理解它的價值&#34;&gt;9. 可以怎麼理解它的價值
&lt;/h2&gt;&lt;p&gt;很多 GPU 效能問題，本質上都不是「算力不夠」，而是資料沒有搬好。&lt;/p&gt;
&lt;p&gt;例如：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GPU 之間沒有走到預期的鏈路&lt;/li&gt;
&lt;li&gt;跨 NUMA 節點存取導致速度下降&lt;/li&gt;
&lt;li&gt;某些卡配對之間頻寬異常&lt;/li&gt;
&lt;li&gt;跨節點通訊配置不完整&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;這類問題如果只看 &lt;code&gt;nvidia-smi&lt;/code&gt;、只看模型吞吐，往往不容易定位。&lt;br&gt;
而 &lt;code&gt;nvbandwidth&lt;/code&gt; 這種更底層、矩陣化的測試工具，剛好能把「鏈路層實際發生了什麼」暴露出來。&lt;/p&gt;
&lt;p&gt;所以你可以把它理解成：&lt;strong&gt;給 NVIDIA GPU 系統做頻寬體檢的命令列工具。&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&#34;相關連結&#34;&gt;相關連結
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;GitHub 專案：&lt;a class=&#34;link&#34; href=&#34;https://github.com/NVIDIA/nvbandwidth&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/NVIDIA/nvbandwidth&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Releases：&lt;a class=&#34;link&#34; href=&#34;https://github.com/NVIDIA/nvbandwidth/releases&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/NVIDIA/nvbandwidth/releases&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>如何檢查 Tesla V100 是否存在 ECC 錯誤</title>
        <link>https://knightli.com/zh-tw/2026/04/23/check-tesla-v100-ecc-errors/</link>
        <pubDate>Thu, 23 Apr 2026 11:50:21 +0800</pubDate>
        
        <guid>https://knightli.com/zh-tw/2026/04/23/check-tesla-v100-ecc-errors/</guid>
        <description>&lt;p&gt;如果你手上有一張 &lt;code&gt;Tesla V100&lt;/code&gt;，想先做最基礎的健康檢查，&lt;code&gt;ECC&lt;/code&gt; 狀態是很值得優先看的項目。&lt;/p&gt;
&lt;p&gt;最直接的方法，就是用 &lt;code&gt;nvidia-smi&lt;/code&gt; 查看顯卡詳細資訊。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nvidia-smi -q
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 查询第 0 块 GPU&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nvidia-smi -q -i &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;重點看 &lt;code&gt;ECC Errors&lt;/code&gt; 這一段。&lt;/p&gt;
&lt;p&gt;一張狀態正常的卡，&lt;code&gt;ECC Errors&lt;/code&gt; 下面常見的 4 段統計都應該是 &lt;code&gt;0&lt;/code&gt; 或 &lt;code&gt;N/A&lt;/code&gt;。如果這裡已經出現非零值，就代表這張卡曾經出現過對應類型的 ECC 異常，需要進一步判斷是否適合繼續使用。&lt;/p&gt;
&lt;p&gt;參考輸出如下：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;35
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;36
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;37
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;38
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;39
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;40
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;41
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;42
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;43
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;44
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nvidia-smi -q
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ECC Mode
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        Current                          : Enabled
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        Pending                          : Enabled
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ECC Errors
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        Volatile
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            Single Bit
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                Device Memory            : 0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                Register File            : 0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                L1 Cache                 : 0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                L2 Cache                 : 0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                Texture Memory           : N/A
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                Texture Shared           : N/A
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                CBU                      : N/A
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                Total                    : 0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            Double Bit
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                Device Memory            : 0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                Register File            : 0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                L1 Cache                 : 0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                L2 Cache                 : 0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                Texture Memory           : N/A
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                Texture Shared           : N/A
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                CBU                      : 0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                Total                    : 0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        Aggregate
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            Single Bit
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                Device Memory            : 0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                Register File            : 0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                L1 Cache                 : 0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                L2 Cache                 : 0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                Texture Memory           : N/A
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                Texture Shared           : N/A
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                CBU                      : N/A
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                Total                    : 0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            Double Bit
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                Device Memory            : 0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                Register File            : 0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                L1 Cache                 : 0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                L2 Cache                 : 0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                Texture Memory           : N/A
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                Texture Shared           : N/A
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                CBU                      : 0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                Total                    : 0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    Retired Pages
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;可以簡單這樣理解：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Volatile&lt;/code&gt; 是本次上電週期內的錯誤統計&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Aggregate&lt;/code&gt; 是累計錯誤統計&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Single Bit&lt;/code&gt; 是可糾正錯誤&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Double Bit&lt;/code&gt; 是不可糾正錯誤，風險更高&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果你只是想做快速篩查，先記住一個實用標準：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;大部分項目應為 &lt;code&gt;0&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;某些不適用項目顯示 &lt;code&gt;N/A&lt;/code&gt; 也正常&lt;/li&gt;
&lt;li&gt;如果 &lt;code&gt;Double Bit&lt;/code&gt; 或總數不是 &lt;code&gt;0&lt;/code&gt;，就不要只看賣家口頭描述，最好繼續做更完整的壓力測試與穩定性驗證&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;這一步不能取代完整驗卡，但足夠作為 &lt;code&gt;V100&lt;/code&gt; 到手後的第一輪排查。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>特斯拉 V100 現在還值得買嗎：ECC 檢查、散熱改造與 DIY 避坑</title>
        <link>https://knightli.com/zh-tw/2026/04/23/tesla-v100-buying-ecc-cooling-diy-guide/</link>
        <pubDate>Thu, 23 Apr 2026 11:15:10 +0800</pubDate>
        
        <guid>https://knightli.com/zh-tw/2026/04/23/tesla-v100-buying-ecc-cooling-diy-guide/</guid>
        <description>&lt;p&gt;如果你最近在看二手 &lt;code&gt;Tesla V100&lt;/code&gt;，很容易碰到兩種說法：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;一種覺得它現在依然很能打，性價比很高&lt;/li&gt;
&lt;li&gt;另一種覺得這類卡水很深，DIY 玩家一不小心就會翻車&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;這兩種說法其實都對。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;V100&lt;/code&gt; 不是不能買，而是不能用普通消費級顯卡的思路去買。你真正要看的，不只是能不能點亮，也不只是賣家口中的「全新」或「原廠拆機」，而是這張卡有沒有被動過手腳、&lt;code&gt;ECC&lt;/code&gt; 狀態怎麼樣，以及散熱與供電方案到底靠不靠譜。&lt;/p&gt;
&lt;p&gt;這篇文章整理出幾條對實際買卡和上機最有幫助的判斷標準。&lt;/p&gt;
&lt;h2 id=&#34;先看結論&#34;&gt;先看結論
&lt;/h2&gt;&lt;p&gt;如果你只想看最短版，先記住下面幾點：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;V100&lt;/code&gt; 大致從 &lt;code&gt;2017&lt;/code&gt; 年生產到 &lt;code&gt;2021&lt;/code&gt; 年停產，&lt;code&gt;16G&lt;/code&gt; 版本裡 &lt;code&gt;2021&lt;/code&gt; 年的卡並不常見&lt;/li&gt;
&lt;li&gt;光看「全零 ECC」或「原廠拆機」都不夠，很多關鍵數據與外觀狀態都有可能被處理過&lt;/li&gt;
&lt;li&gt;真正危險的，往往不是買到一張老卡，而是買到一張被拆過、刷過、散熱方案有硬傷的卡&lt;/li&gt;
&lt;li&gt;對 &lt;code&gt;DIY&lt;/code&gt; 玩家來說，&lt;code&gt;V100&lt;/code&gt; 最大的坑通常不是核心本身，而是轉接板、供電、熱點溫度與底板散熱&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;一先看年份與批次對不上就要警惕&#34;&gt;一、先看年份與批次，對不上就要警惕
&lt;/h2&gt;&lt;p&gt;一個很實用的判斷方法是：先看晶片年份，再看周邊器件年份是否對得上。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/04/23/tesla-v100-buying-ecc-cooling-diy-guide/1.png&#34;
	width=&#34;1139&#34;
	height=&#34;670&#34;
	srcset=&#34;https://knightli.com/2026/04/23/tesla-v100-buying-ecc-cooling-diy-guide/1_hu_a8325dae98af3ae7.png 480w, https://knightli.com/2026/04/23/tesla-v100-buying-ecc-cooling-diy-guide/1_hu_40537b27bd676168.png 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Tesla V100&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;170&#34;
		data-flex-basis=&#34;408px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;例如晶片表面出現 &lt;code&gt;1828&lt;/code&gt;，通常可以理解為：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;18&lt;/code&gt; 代表 &lt;code&gt;2018&lt;/code&gt; 年&lt;/li&gt;
&lt;li&gt;&lt;code&gt;28&lt;/code&gt; 代表第 &lt;code&gt;28&lt;/code&gt; 週&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;也就是說，這是一顆 &lt;code&gt;2018&lt;/code&gt; 年第 &lt;code&gt;28&lt;/code&gt; 週生產的晶片。&lt;/p&gt;
&lt;p&gt;除了晶片本體，周邊電感上通常也能看到對應年份標記。如果晶片年份和電感年份差距非常大，例如：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;晶片是 &lt;code&gt;2017&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;電感卻是 &lt;code&gt;2020&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;那就需要提高警覺。這不一定百分之百代表有問題，但至少說明它已經不是那種原始狀態非常完整的卡。&lt;/p&gt;
&lt;p&gt;反過來說，如果年份大致能對上，例如：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;2018&lt;/code&gt; 晶片搭配 &lt;code&gt;2018&lt;/code&gt; 年周邊料件&lt;/li&gt;
&lt;li&gt;&lt;code&gt;2019&lt;/code&gt; 年末晶片搭配 &lt;code&gt;2020&lt;/code&gt; 年周邊&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;這種就更正常一些。&lt;/p&gt;
&lt;h2 id=&#34;二外觀檢查不要只看晶片也要看電感彈簧與框架&#34;&gt;二、外觀檢查不要只看晶片，也要看電感、彈簧與框架
&lt;/h2&gt;&lt;p&gt;外觀檢查可以拆成幾步來看。&lt;/p&gt;
&lt;h3 id=&#34;1-先摸電感&#34;&gt;1. 先摸電感
&lt;/h3&gt;&lt;p&gt;用手輕輕摸一圈電感，正常情況下不應該有任何一顆是鬆動的。&lt;/p&gt;
&lt;p&gt;如果有電感已經晃動，通常代表：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;焊接狀態不正常&lt;/li&gt;
&lt;li&gt;後續使用中問題可能持續放大&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;這種卡即使現在能亮，也不建議輕易碰。&lt;/p&gt;
&lt;h3 id=&#34;2-再看固定彈簧有沒有被拆過&#34;&gt;2. 再看固定彈簧有沒有被拆過
&lt;/h3&gt;&lt;p&gt;這裡有一個很實用的判斷邏輯：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;如果賣家強調這是「原廠拆機」&lt;/li&gt;
&lt;li&gt;那固定彈簧理論上就不應該被輕易拆過&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;因為正常伺服器原廠環境，通常不會特地去拆這個彈簧。&lt;/p&gt;
&lt;p&gt;如果你輕輕一撬，彈簧就很容易下來，那大概率表示這張卡之前已經被拆過。要是賣家同時還說它是「原廠拆機、未動過」，可信度就得打個問號。&lt;/p&gt;
&lt;h3 id=&#34;3-框架太好拆也不正常&#34;&gt;3. 框架太好拆，也不正常
&lt;/h3&gt;&lt;p&gt;中間框架拆掉之後，如果整個結構輕輕一拿就分離，通常也代表這張卡曾經被反覆拆裝過。&lt;/p&gt;
&lt;p&gt;對二手 &lt;code&gt;V100&lt;/code&gt; 來說，這很關鍵，因為後續的刷寫、改造與維修，往往都會留下這些拆裝痕跡。&lt;/p&gt;
&lt;h2 id=&#34;三底板如果太容易分離就要懷疑刷過-vbios-或動過手腳&#34;&gt;三、底板如果太容易分離，就要懷疑刷過 VBIOS 或動過手腳
&lt;/h2&gt;&lt;p&gt;這裡有一個很重要的點：&lt;code&gt;PCB&lt;/code&gt; 下層有一塊金屬背板，它不只是防護件，也負責輔助散熱。&lt;/p&gt;
&lt;p&gt;在正常原裝狀態下，這塊底板通常不太容易拆。原因包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;膠固定&lt;/li&gt;
&lt;li&gt;結構結合很緊&lt;/li&gt;
&lt;li&gt;本來就不是設計給人反覆拆裝的&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果稍微一用力，底板就和 &lt;code&gt;PCB&lt;/code&gt; 很容易分開，那基本就要懷疑：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;之前被拆過&lt;/li&gt;
&lt;li&gt;裡面可能刷過 &lt;code&gt;VBIOS&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;可能做過二次處理&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;這不代表它一定不能用，但如果你買的是「原裝無拆」這種口徑，那這種現象顯然不對。&lt;/p&gt;
&lt;h2 id=&#34;四ecc-怎麼看最重要的不是是不是零而是會不會增長&#34;&gt;四、&lt;code&gt;ECC&lt;/code&gt; 怎麼看：最重要的不是是不是零，而是會不會增長
&lt;/h2&gt;&lt;p&gt;很多人買 &lt;code&gt;V100&lt;/code&gt; 時最關心 &lt;code&gt;ECC&lt;/code&gt;，這部分也需要單獨拆開看。&lt;/p&gt;
&lt;p&gt;常見做法是用 &lt;code&gt;nvidia-smi&lt;/code&gt; 的詳細查詢，把 &lt;code&gt;ECC Errors&lt;/code&gt; 相關資訊拉出來看。&lt;/p&gt;
&lt;h3 id=&#34;1-即時錯誤最危險&#34;&gt;1. 即時錯誤最危險
&lt;/h3&gt;&lt;p&gt;上面那部分可以理解成「即時錯誤」。&lt;/p&gt;
&lt;p&gt;如果在運行過程中，這部分數字持續增加，那通常就不是小問題了，往往代表這張卡已經處在明顯不穩定的狀態。&lt;/p&gt;
&lt;p&gt;簡單說：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;跑起來不報新錯，比靜態全零更重要&lt;/li&gt;
&lt;li&gt;一壓測就開始增長錯誤，比歷史累積數字更可怕&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2-全生命週期累積錯誤不一定可怕&#34;&gt;2. 全生命週期累積錯誤不一定可怕
&lt;/h3&gt;&lt;p&gt;另一部分是全生命週期累積錯誤，也就是這張卡從出廠到現在一共出現過多少次糾錯或異常。&lt;/p&gt;
&lt;p&gt;如果這類數字只是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;個位數&lt;/li&gt;
&lt;li&gt;十幾次&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;未必就是大問題。&lt;/p&gt;
&lt;p&gt;只要實際運行時，上面的即時錯誤沒有繼續增加，很多時候卡仍然可以正常使用。&lt;/p&gt;
&lt;h3 id=&#34;3-屏蔽頁更值得重點看&#34;&gt;3. 屏蔽頁更值得重點看
&lt;/h3&gt;&lt;p&gt;更值得重點關注的是下面那部分「屏蔽頁」資訊，也就是某些顯存塊因為不可糾正錯誤而被屏蔽掉。&lt;/p&gt;
&lt;p&gt;大致可以這樣理解：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;單精度和雙精度可能各自有被屏蔽的塊&lt;/li&gt;
&lt;li&gt;兩邊加起來如果超過 &lt;code&gt;10&lt;/code&gt;，這張卡就進入需要更謹慎的區間&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;這不一定代表完全不能用，但意味著它的實際可用顯存和長期穩定性已經受到影響。&lt;/p&gt;
&lt;h2 id=&#34;五不要迷信全零-ecc因為數據本身也可能被刷過&#34;&gt;五、不要迷信「全零 ECC」，因為數據本身也可能被刷過
&lt;/h2&gt;&lt;p&gt;這裡有一個很現實的提醒：&lt;/p&gt;
&lt;p&gt;&lt;code&gt;ECC&lt;/code&gt; 數據並不是天生就絕對可信。&lt;/p&gt;
&lt;p&gt;如果一張卡：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;數據看起來非常漂亮&lt;/li&gt;
&lt;li&gt;但外觀拆裝痕跡又很重&lt;/li&gt;
&lt;li&gt;結構狀態也明顯被動過&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;那就不能只憑「ECC 全零」這一點來判斷。&lt;/p&gt;
&lt;p&gt;可以用一個很形象的比喻來理解：就像一台老車，到了很多年後突然顯示里程 &lt;code&gt;0&lt;/code&gt;、輪胎幾乎沒有磨損，你很難不懷疑里程表被人動過。&lt;/p&gt;
&lt;p&gt;放到 &lt;code&gt;V100&lt;/code&gt; 上也是一樣：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;數據太完美，不一定是好事&lt;/li&gt;
&lt;li&gt;更重要的是數據、外觀、壓力測試結果能不能互相對得上&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;六壓力測試不能省但只測核心也不夠&#34;&gt;六、壓力測試不能省，但只測核心也不夠
&lt;/h2&gt;&lt;p&gt;可以用 &lt;code&gt;gpu-burn&lt;/code&gt; 之類的工具做壓力測試，先壓個幾分鐘到十幾分鐘，觀察：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;是否穩定&lt;/li&gt;
&lt;li&gt;是否掉卡&lt;/li&gt;
&lt;li&gt;是否出現新的 &lt;code&gt;ECC&lt;/code&gt; 錯誤&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;但還有一點也要特別注意：&lt;/p&gt;
&lt;p&gt;只測核心，不代表整張卡就真的沒問題。&lt;/p&gt;
&lt;p&gt;因為 &lt;code&gt;V100&lt;/code&gt; 的很多翻車，不是核心先死，而是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;供電部分溫度過高&lt;/li&gt;
&lt;li&gt;底板區域散熱不足&lt;/li&gt;
&lt;li&gt;熱點溫度過高&lt;/li&gt;
&lt;li&gt;轉接板與散熱系統長期處在危險邊緣&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;所以壓力測試只能說明「這張卡現在能跑」，不能單獨證明「這套 DIY 方案能長期穩定使用」。&lt;/p&gt;
&lt;h2 id=&#34;七diy-玩家最容易翻車的不是買卡而是散熱與供電&#34;&gt;七、DIY 玩家最容易翻車的，不是買卡，而是散熱與供電
&lt;/h2&gt;&lt;p&gt;這大概也是整篇裡最值得記住的部分。&lt;/p&gt;
&lt;p&gt;核心觀點很明確：&lt;/p&gt;
&lt;p&gt;對 &lt;code&gt;DIY&lt;/code&gt; 玩家來說，隨便拼一個底板，再壓一個普通水冷頭上去，並不是穩妥方案。&lt;/p&gt;
&lt;p&gt;問題在於 &lt;code&gt;V100&lt;/code&gt; 不是普通消費卡，它是一張：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;功耗高&lt;/li&gt;
&lt;li&gt;發熱大&lt;/li&gt;
&lt;li&gt;熱分布複雜&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;的伺服器加速卡。&lt;/p&gt;
&lt;p&gt;除了核心本體發熱，底板、供電區域、連接器區域同樣會發熱，而且溫度並不低。&lt;/p&gt;
&lt;h3 id=&#34;1-不要只盯著-gpu-平均溫度&#34;&gt;1. 不要只盯著 GPU 平均溫度
&lt;/h3&gt;&lt;p&gt;很多監控軟體顯示的是整卡平均溫度，但真正更危險的，往往是 &lt;code&gt;hot spot&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;也就是說：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;你看到表面溫度只有六十幾度&lt;/li&gt;
&lt;li&gt;但局部熱點可能早就超過一百度&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;這也是為什麼很多看起來「溫度還行」的 &lt;code&gt;DIY V100&lt;/code&gt;，最後還是會突然報廢。&lt;/p&gt;
&lt;h3 id=&#34;2-底板散熱一定要考慮&#34;&gt;2. 底板散熱一定要考慮
&lt;/h3&gt;&lt;p&gt;底板和供電區域散熱不能忽略。&lt;/p&gt;
&lt;p&gt;如果只是給核心上了個散熱器，但：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;MOS&lt;/code&gt; 沒顧到&lt;/li&gt;
&lt;li&gt;底板沒有做好導熱&lt;/li&gt;
&lt;li&gt;背面沒有足夠的散熱設計&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;那整套方案依然是不完整的。&lt;/p&gt;
&lt;h3 id=&#34;3-低價拼裝水冷方案風險很高&#34;&gt;3. 低價拼裝水冷方案風險很高
&lt;/h3&gt;&lt;p&gt;對那種「隨便找個轉接底板，再上個便宜一體水冷」的方案，顯然要抱持保留態度。&lt;/p&gt;
&lt;p&gt;問題不在於它一定會立刻壞，而在於它經常存在：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;水道覆蓋不均&lt;/li&gt;
&lt;li&gt;供電區散熱不完整&lt;/li&gt;
&lt;li&gt;熱點區域沒有真正壓住&lt;/li&gt;
&lt;li&gt;長期運行後壽命不可控&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;八如果一定要-diy至少注意這幾件事&#34;&gt;八、如果一定要 DIY，至少注意這幾件事
&lt;/h2&gt;&lt;p&gt;比較核心的建議包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;優先選成熟一點、口碑更穩定的底板方案&lt;/li&gt;
&lt;li&gt;不要只看核心散熱，背面供電區和底板導熱也要做&lt;/li&gt;
&lt;li&gt;水冷頭要看覆蓋和均熱能力，不是隨便能壓上去就行&lt;/li&gt;
&lt;li&gt;壓力測試之後還要繼續觀察溫度、熱點與長期穩定性&lt;/li&gt;
&lt;li&gt;電源品質也會影響嘯叫與整體穩定&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;換句話說，&lt;code&gt;DIY V100&lt;/code&gt; 真正難的不是「裝上去能亮」，而是「裝上去之後還能長期穩定地活」。&lt;/p&gt;
&lt;h2 id=&#34;九嘯叫與轉接板個體差異也都是現實問題&#34;&gt;九、嘯叫與轉接板個體差異，也都是現實問題
&lt;/h2&gt;&lt;p&gt;最後還有兩個經常被忽略的點：&lt;/p&gt;
&lt;h3 id=&#34;1-嘯叫不一定能徹底消除&#34;&gt;1. 嘯叫不一定能徹底消除
&lt;/h3&gt;&lt;p&gt;它和卡本身體質、電感、電容、供電狀態都有關，不是換一根線或加一個小配件就一定能百分之百解決。&lt;/p&gt;
&lt;h3 id=&#34;2-轉接板個體差異很大&#34;&gt;2. 轉接板個體差異很大
&lt;/h3&gt;&lt;p&gt;這也是為什麼有些賣家即使願意賣裸卡，也會強調：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;先上機測試&lt;/li&gt;
&lt;li&gt;記錄序號&lt;/li&gt;
&lt;li&gt;做壓力測試&lt;/li&gt;
&lt;li&gt;全程錄影&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;因為很多糾紛未必出在晶片本體，而是出在後續搭配的轉接板與散熱方案上。&lt;/p&gt;
&lt;h2 id=&#34;結語&#34;&gt;結語
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Tesla V100&lt;/code&gt; 現在還值不值得買？答案是：值得，但前提是你知道自己買的是什麼，也知道後面要怎麼用。&lt;/p&gt;
&lt;p&gt;如果你只看：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;能不能點亮&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ECC&lt;/code&gt; 是否全零&lt;/li&gt;
&lt;li&gt;賣家有沒有說「原廠拆機」&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;那遠遠不夠。&lt;/p&gt;
&lt;p&gt;真正更值得看的，是這幾件事：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;年份與批次是否對得上&lt;/li&gt;
&lt;li&gt;外觀拆裝痕跡是否異常&lt;/li&gt;
&lt;li&gt;底板和結構是否被明顯動過&lt;/li&gt;
&lt;li&gt;壓力測試時錯誤是否增長&lt;/li&gt;
&lt;li&gt;你的散熱與供電方案是否真的可靠&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;尤其對 &lt;code&gt;DIY&lt;/code&gt; 玩家來說，&lt;code&gt;V100&lt;/code&gt; 最危險的地方，往往不是「買到老卡」，而是「低估了這類卡對散熱、供電與改造品質的要求」。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>llama.cpp ollama 顯卡性能天梯：CUDA、ROCm、Vulkan</title>
        <link>https://knightli.com/zh-tw/2026/04/23/llama-cpp-gpu-benchmark-cuda-rocm-vulkan-scoreboard/</link>
        <pubDate>Thu, 23 Apr 2026 10:22:04 +0800</pubDate>
        
        <guid>https://knightli.com/zh-tw/2026/04/23/llama-cpp-gpu-benchmark-cuda-rocm-vulkan-scoreboard/</guid>
        <description>&lt;h2 id=&#34;先看懂這些參數&#34;&gt;先看懂這些參數
&lt;/h2&gt;&lt;h3 id=&#34;q4_0-是什麼&#34;&gt;&lt;code&gt;Q4_0&lt;/code&gt; 是什麼
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;Q4_0&lt;/code&gt; 是一種 4-bit 量化格式。它的意義不是「模型更強」，而是「模型更小、更省顯存、更容易塞進更多設備裡」。這些榜單大多統一使用 &lt;code&gt;Llama 2 7B, Q4_0&lt;/code&gt;，核心目的就是減少變數，讓不同 GPU 的成績更容易橫向比較。&lt;/p&gt;
&lt;h3 id=&#34;pp512-是什麼&#34;&gt;&lt;code&gt;pp512&lt;/code&gt; 是什麼
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;pp512&lt;/code&gt; 一般可以理解為 &lt;code&gt;prompt processing 512 tokens&lt;/code&gt;，也就是處理 512 個輸入 token 時的吞吐。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;pp&lt;/code&gt; = prompt processing&lt;/li&gt;
&lt;li&gt;&lt;code&gt;512&lt;/code&gt; = 輸入長度是 512 token&lt;/li&gt;
&lt;li&gt;&lt;code&gt;t/s&lt;/code&gt; = tokens per second&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;它更像是「吃提示詞的速度」，通常能更充分地並行，所以數字往往很高。&lt;/p&gt;
&lt;h3 id=&#34;tg128-是什麼&#34;&gt;&lt;code&gt;tg128&lt;/code&gt; 是什麼
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;tg128&lt;/code&gt; 一般可以理解為 &lt;code&gt;text generation 128 tokens&lt;/code&gt;，也就是連續生成 128 個 token 時的速度。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;tg&lt;/code&gt; = text generation&lt;/li&gt;
&lt;li&gt;&lt;code&gt;128&lt;/code&gt; = 連續生成 128 token&lt;/li&gt;
&lt;li&gt;&lt;code&gt;t/s&lt;/code&gt; = tokens per second&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;它更接近我們平時感受到的「模型回答快不快」。因為生成階段是逐 token 遞推，所以通常明顯低於 &lt;code&gt;pp512&lt;/code&gt;。&lt;/p&gt;
&lt;h3 id=&#34;fa-是什麼&#34;&gt;&lt;code&gt;FA&lt;/code&gt; 是什麼
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;FA&lt;/code&gt; 是 &lt;code&gt;Flash Attention&lt;/code&gt;。簡單理解，就是注意力計算的一種最佳化開關。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;with FA&lt;/code&gt; 表示啟用了 Flash Attention&lt;/li&gt;
&lt;li&gt;&lt;code&gt;no FA&lt;/code&gt; 表示關閉 Flash Attention&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;在不少卡上，&lt;code&gt;FA&lt;/code&gt; 對 &lt;code&gt;pp512&lt;/code&gt; 的提升比對 &lt;code&gt;tg128&lt;/code&gt; 更明顯；但不同後端、不同驅動和不同架構之間，提升幅度並不一致，個別設備甚至會出現 PP 上升、TG 變化很小，或者 PP 反而下降的情況。&lt;/p&gt;
&lt;h3 id=&#34;ts-怎麼看&#34;&gt;&lt;code&gt;t/s&lt;/code&gt; 怎麼看
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;t/s&lt;/code&gt; 就是 &lt;code&gt;tokens per second&lt;/code&gt;。它不是幀率，也不是 FLOPS，而是模型吞吐表現的直接結果。&lt;/p&gt;
&lt;p&gt;讀榜單時最重要的一點是：&lt;strong&gt;先確認你比較的是不是同一種測試。&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;不要把 &lt;code&gt;pp512&lt;/code&gt; 和 &lt;code&gt;tg128&lt;/code&gt; 直接混著比&lt;/li&gt;
&lt;li&gt;不要把 &lt;code&gt;no FA&lt;/code&gt; 和 &lt;code&gt;with FA&lt;/code&gt; 混著比&lt;/li&gt;
&lt;li&gt;不要把 CUDA、ROCm、Vulkan 的結果當成完全等價的同一條曲線&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;先說結論&#34;&gt;先說結論
&lt;/h2&gt;&lt;p&gt;從這幾條討論串目前可見的資料看，大致可以先記住這幾個結論：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CUDA&lt;/code&gt; 仍然是目前 &lt;code&gt;llama.cpp&lt;/code&gt; GPU 跑分裡最強、樣本也最密集的一條線，特別是高階 Nvidia 卡在 &lt;code&gt;pp512&lt;/code&gt; 上優勢很大。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ROCm&lt;/code&gt; 在高階 AMD 卡和 Instinct 卡上已經能給出非常像樣的成績，&lt;code&gt;MI300X&lt;/code&gt;、&lt;code&gt;7900 XTX&lt;/code&gt;、&lt;code&gt;W7900&lt;/code&gt; 這些條目都不弱。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Vulkan&lt;/code&gt; 的優點不是「絕對最快」，而是覆蓋面最廣，Nvidia、AMD、Intel、Apple Asahi / MoltenVK，甚至很多老卡和核顯都能找到條目。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tg128&lt;/code&gt; 往往更接近日常體感，&lt;code&gt;pp512&lt;/code&gt; 更適合看吞吐能力。很多「榜一」卡，在兩項裡的領先幅度並不完全一樣。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;cuda-完整榜單&#34;&gt;CUDA 完整榜單
&lt;/h2&gt;&lt;h3 id=&#34;llama-2-7b-q4_0-no-fa&#34;&gt;Llama 2 7B, Q4_0, no FA
&lt;/h3&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Chip&lt;/th&gt;
          &lt;th&gt;Memory&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;pp512 t/s&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;tg128 t/s&lt;/th&gt;
          &lt;th&gt;Commit&lt;/th&gt;
          &lt;th&gt;Thanks to&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 5090&lt;/td&gt;
          &lt;td&gt;32 GB / GDDR7 / 512 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;14073.41 ± 115.16&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;290.02 ± 1.10&lt;/td&gt;
          &lt;td&gt;8cf6b42&lt;/td&gt;
          &lt;td&gt;@totaldev&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX PRO 6000 Blackwell&lt;/td&gt;
          &lt;td&gt;96 GB / GDDR7 / 512 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;14854.63 ± 22.73&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;274.20 ± 0.14&lt;/td&gt;
          &lt;td&gt;79c1160&lt;/td&gt;
          &lt;td&gt;@Tom94&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;H100 80 GB&lt;/td&gt;
          &lt;td&gt;80 GB / HBM3 / 5120 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;9918.34 ± 176.97&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;267.81 ± 1.54&lt;/td&gt;
          &lt;td&gt;5143fa8&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;A100 80 GB&lt;/td&gt;
          &lt;td&gt;80 GB / HBM2e / 5120 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4849.53 ± 8.94&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;190.88 ± 0.33&lt;/td&gt;
          &lt;td&gt;5143fa8&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 4090 D&lt;/td&gt;
          &lt;td&gt;24 GB / GDDR6X / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;10293.86 ± 134.72&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;189.33 ± 0.19&lt;/td&gt;
          &lt;td&gt;79c1160&lt;/td&gt;
          &lt;td&gt;@autonomous-AI-lab&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 4090&lt;/td&gt;
          &lt;td&gt;24 GB / GDDR6X / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;11992.70 ± 107.99&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;186.21 ± 0.13&lt;/td&gt;
          &lt;td&gt;2241453&lt;/td&gt;
          &lt;td&gt;@lhl&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 5080&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR7 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;8297.36 ± 9.50&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;181.99 ± 0.42&lt;/td&gt;
          &lt;td&gt;8a4280c&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 5070 Ti&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR7 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;6952.38 ± 13.73&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;176.85 ± 0.07&lt;/td&gt;
          &lt;td&gt;933414c&lt;/td&gt;
          &lt;td&gt;@TinyServal&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 6000 Ada&lt;/td&gt;
          &lt;td&gt;48 GB / GDDR6 / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;9229.23 ± 101.78&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;176.07 ± 0.26&lt;/td&gt;
          &lt;td&gt;b8e09f0&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 3090 Ti&lt;/td&gt;
          &lt;td&gt;24 GB / GDDR6X / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;6567.49 ± 20.30&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;171.19 ± 3.98&lt;/td&gt;
          &lt;td&gt;9c35706&lt;/td&gt;
          &lt;td&gt;@slaren&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 3090&lt;/td&gt;
          &lt;td&gt;24 GB / GDDR6X / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;5174.69 ± 21.83&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;158.16 ± 0.21&lt;/td&gt;
          &lt;td&gt;c76b420&lt;/td&gt;
          &lt;td&gt;@m18coppola&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;L40&lt;/td&gt;
          &lt;td&gt;48 GB / GDDR6 / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;8870.49 ± 378.76&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;152.01 ± 0.28&lt;/td&gt;
          &lt;td&gt;ee09828&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 4080 SUPER&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR6X / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;8125.15 ± 41.05&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;148.33 ± 0.20&lt;/td&gt;
          &lt;td&gt;81086cd&lt;/td&gt;
          &lt;td&gt;@zacharyarnaise&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 4080&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR6X / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;8031.64 ± 26.49&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;142.49 ± 0.16&lt;/td&gt;
          &lt;td&gt;20638e4&lt;/td&gt;
          &lt;td&gt;@Ristovski&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 3080&lt;/td&gt;
          &lt;td&gt;10 GB / GDDR6X / 320 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;5013.86 ± 24.80&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;139.65 ± 0.99&lt;/td&gt;
          &lt;td&gt;9c35706&lt;/td&gt;
          &lt;td&gt;@slaren&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX A6000&lt;/td&gt;
          &lt;td&gt;48 GB / GDDR6 / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4913.93 ± 6.79&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;138.73 ± 2.75&lt;/td&gt;
          &lt;td&gt;4795c91&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 4070 Ti SUPER&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR6X / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;6924.53 ± 13.87&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;132.26 ± 0.16&lt;/td&gt;
          &lt;td&gt;9c35706&lt;/td&gt;
          &lt;td&gt;@Ristovski&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX PRO 4000 Blackwell&lt;/td&gt;
          &lt;td&gt;24 GB / GDDR7 / 192 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4992.83 ± 113.52&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;131.66 ± 0.20&lt;/td&gt;
          &lt;td&gt;7d77f07&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX A5000&lt;/td&gt;
          &lt;td&gt;24 GB / GDDR6 / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4028.16 ± 19.14&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;130.07 ± 2.74&lt;/td&gt;
          &lt;td&gt;e5155e6&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Tesla V100&lt;/td&gt;
          &lt;td&gt;32 GB / HBM2 / 4096 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3042.64 ± 40.71&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;129.08 ± 0.05&lt;/td&gt;
          &lt;td&gt;51f5a45&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 5070&lt;/td&gt;
          &lt;td&gt;12 GB / GDDR7 / 192 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;5184.75 ± 18.70&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;127.54 ± 0.46&lt;/td&gt;
          &lt;td&gt;@Spyro000&lt;/td&gt;
          &lt;td&gt;-&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;A40&lt;/td&gt;
          &lt;td&gt;48 GB / GDDR6 / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4609.01 ± 10.67&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;124.11 ± 0.17&lt;/td&gt;
          &lt;td&gt;3470a5c&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;A30&lt;/td&gt;
          &lt;td&gt;24 GB / HBM2e / 3072 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2767.10 ± 1.88&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;124.81 ± 0.16&lt;/td&gt;
          &lt;td&gt;583cb83&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Titan V&lt;/td&gt;
          &lt;td&gt;12 GB / HBM2 / 3072 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2617.46 ± 2.10&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;108.79 ± 0.05&lt;/td&gt;
          &lt;td&gt;e56abd2&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 2080 Ti&lt;/td&gt;
          &lt;td&gt;11 GB / GDDR6 / 352 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2890.66 ± 2.42&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;107.51 ± 0.21&lt;/td&gt;
          &lt;td&gt;9c35706&lt;/td&gt;
          &lt;td&gt;@ariya&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Quadro RTX 6000&lt;/td&gt;
          &lt;td&gt;24 GB / GDDR6 / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2751.18 ± 19.43&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;102.77 ± 0.04&lt;/td&gt;
          &lt;td&gt;b8e09f0&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Quadro RTX 8000&lt;/td&gt;
          &lt;td&gt;48 GB / GDDR6 / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2709.95 ± 3.35&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;102.68 ± 0.03&lt;/td&gt;
          &lt;td&gt;b8e09f0&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX A4500&lt;/td&gt;
          &lt;td&gt;20 GB / GDDR6 / 320 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2827.20 ± 66.43&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;97.32 ± 2.80&lt;/td&gt;
          &lt;td&gt;5cdb27e&lt;/td&gt;
          &lt;td&gt;@aleksyx&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 5060 Ti 16 GB&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR7 / 128 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3737.25 ± 6.79&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;90.94 ± 0.02&lt;/td&gt;
          &lt;td&gt;89d1029&lt;/td&gt;
          &lt;td&gt;@mike-llamacpp&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 2070 SUPER&lt;/td&gt;
          &lt;td&gt;8 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2088.34 ± 1.94&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;88.06 ± 0.28&lt;/td&gt;
          &lt;td&gt;bc07349&lt;/td&gt;
          &lt;td&gt;@phstudy&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX A4000&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2684.06 ± 15.28&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;83.77 ± 0.37&lt;/td&gt;
          &lt;td&gt;65349f2&lt;/td&gt;
          &lt;td&gt;@TinyServal&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Titan Xp&lt;/td&gt;
          &lt;td&gt;12 GB / GDDR5X / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1154.96 ± 1.46&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;76.08 ± 0.08&lt;/td&gt;
          &lt;td&gt;c4510dc&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 3060&lt;/td&gt;
          &lt;td&gt;12 GB / GDDR6 / 192 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2137.50 ± 10.12&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;75.57 ± 0.07&lt;/td&gt;
          &lt;td&gt;baa9255&lt;/td&gt;
          &lt;td&gt;@QuantiusBenignus&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Quadro RTX 4000&lt;/td&gt;
          &lt;td&gt;8 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1536.89 ± 0.90&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;65.62 ± 0.62&lt;/td&gt;
          &lt;td&gt;7d77f07&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 4060 Ti 8 GB&lt;/td&gt;
          &lt;td&gt;8 GB / GDDR6 / 128 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3394.63 ± 7.44&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;63.86 ± 0.01&lt;/td&gt;
          &lt;td&gt;89d1029&lt;/td&gt;
          &lt;td&gt;@mike-llamacpp&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GTX 1080 Ti&lt;/td&gt;
          &lt;td&gt;11 GB / GDDR5X / 352 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1084.41 ± 3.01&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;62.49 ± 0.06&lt;/td&gt;
          &lt;td&gt;9c35706&lt;/td&gt;
          &lt;td&gt;@ariya&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX A4000 Ada&lt;/td&gt;
          &lt;td&gt;20 GB / GDDR6 / 160 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2779.77 ± 9.91&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;61.83 ± 0.04&lt;/td&gt;
          &lt;td&gt;a74a0d6&lt;/td&gt;
          &lt;td&gt;@sdwolfz&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 2060 SUPER&lt;/td&gt;
          &lt;td&gt;8 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1420.24 ± 1.95&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;60.04 ± 0.01&lt;/td&gt;
          &lt;td&gt;5c0eb5e&lt;/td&gt;
          &lt;td&gt;@ggerganov&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Tesla P100&lt;/td&gt;
          &lt;td&gt;16 GB / HBM2 / 4096 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;760.80 ± 2.92&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;58.35 ± 0.00&lt;/td&gt;
          &lt;td&gt;b8372ee&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;DGX Spark&lt;/td&gt;
          &lt;td&gt;128 GB / LPDDR5x&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3062.31 ± 11.02&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;57.21 ± 0.06&lt;/td&gt;
          &lt;td&gt;5acd455&lt;/td&gt;
          &lt;td&gt;@ggerganov&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Tesla P40&lt;/td&gt;
          &lt;td&gt;24 GB / GDDR5 / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1007.42 ± 1.23&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;54.74 ± 0.07&lt;/td&gt;
          &lt;td&gt;c76b420&lt;/td&gt;
          &lt;td&gt;@m18coppola&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 2000 Ada&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR6 / 128 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1956.22 ± 7.74&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;50.62 ± 0.04&lt;/td&gt;
          &lt;td&gt;756cfea&lt;/td&gt;
          &lt;td&gt;@DigitalRudeness&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Tesla T4&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1219.06 ± 4.18&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;46.38 ± 0.73&lt;/td&gt;
          &lt;td&gt;d32e03f&lt;/td&gt;
          &lt;td&gt;@pt13762104&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 4050 Laptop&lt;/td&gt;
          &lt;td&gt;6 GB / GDDR6 / 96 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1725.85 + 17.85&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;43.72 + 0.41&lt;/td&gt;
          &lt;td&gt;d79d8f3&lt;/td&gt;
          &lt;td&gt;@TimCabbage&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GTX 1660&lt;/td&gt;
          &lt;td&gt;6 GB / GDDR5 / 192 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;148.91 ± 0.01&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;41.35 ± 0.02&lt;/td&gt;
          &lt;td&gt;9515c61&lt;/td&gt;
          &lt;td&gt;@ariya&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Tesla M40&lt;/td&gt;
          &lt;td&gt;24 GB / GDDR5 / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;282.65 ± 0.15&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;38.04 ± 0.02&lt;/td&gt;
          &lt;td&gt;97d5117&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GTX 1070 Ti&lt;/td&gt;
          &lt;td&gt;8 GB / GDDR5 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;714.44 ± 2.04&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;37.82 ± 0.02&lt;/td&gt;
          &lt;td&gt;79c1160&lt;/td&gt;
          &lt;td&gt;@pebaryan&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Jetson AGX Orin&lt;/td&gt;
          &lt;td&gt;64 GB / LPDDR5 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;991.31 ± 1.15&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;33.58 ± 0.14&lt;/td&gt;
          &lt;td&gt;c1b1876&lt;/td&gt;
          &lt;td&gt;@TinyServal&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Tesla P4&lt;/td&gt;
          &lt;td&gt;8 GB / GDDR5 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;514.53 ± 3.06&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;33.29 ± 0.00&lt;/td&gt;
          &lt;td&gt;c76b420&lt;/td&gt;
          &lt;td&gt;@m18coppola&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;P106-100&lt;/td&gt;
          &lt;td&gt;6 GB / GDDR5 / 192 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;406.94 ± 0.25&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;30.40 ± 0.02&lt;/td&gt;
          &lt;td&gt;5fd160b&lt;/td&gt;
          &lt;td&gt;@pebaryan&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GTX 1060&lt;/td&gt;
          &lt;td&gt;6 GB / GDDR5 / 192 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;416.85 ± 1.75&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;27.79 ± 0.02&lt;/td&gt;
          &lt;td&gt;5fd160b&lt;/td&gt;
          &lt;td&gt;@pebaryan&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Quadro T1000&lt;/td&gt;
          &lt;td&gt;4 GB / GDDR5 / 128 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;79.44 ± 0.01&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;27.82 ± 0.18&lt;/td&gt;
          &lt;td&gt;f6da8cb&lt;/td&gt;
          &lt;td&gt;@hanabu&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Quadro P2000&lt;/td&gt;
          &lt;td&gt;5 GB / GDDR5 / 160 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;309.30 ± 0.05&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;23.63 ± 0.00&lt;/td&gt;
          &lt;td&gt;baa9255&lt;/td&gt;
          &lt;td&gt;@TinyServal&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Quadro P1000&lt;/td&gt;
          &lt;td&gt;4 GB / GDDR5 / 128 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;183.40 ± 0.11&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;13.99 ± 0.13&lt;/td&gt;
          &lt;td&gt;1e74897&lt;/td&gt;
          &lt;td&gt;@aleksyx&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Tesla K80&lt;/td&gt;
          &lt;td&gt;12 GB / GDDR5 / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;133.14 ± 0.55&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;13.80 ± 0.02&lt;/td&gt;
          &lt;td&gt;32732f2&lt;/td&gt;
          &lt;td&gt;@pebaryan&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;llama-2-7b-q4_0-with-fa&#34;&gt;Llama 2 7B, Q4_0, with FA
&lt;/h3&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Chip&lt;/th&gt;
          &lt;th&gt;Memory&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;pp512 t/s&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;tg128 t/s&lt;/th&gt;
          &lt;th&gt;Commit&lt;/th&gt;
          &lt;th&gt;Thanks to&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 5090&lt;/td&gt;
          &lt;td&gt;32 GB / GDDR7 / 512 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;14970.15 ± 381.06&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;300.40 ± 0.28&lt;/td&gt;
          &lt;td&gt;8cf6b42&lt;/td&gt;
          &lt;td&gt;@totaldev&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX PRO 6000 Blackwell&lt;/td&gt;
          &lt;td&gt;96 GB / GDDR7 / 512 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16618.98 ± 20.66&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;281.11 ± 0.41&lt;/td&gt;
          &lt;td&gt;5143fa8&lt;/td&gt;
          &lt;td&gt;@Tom94&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;H100 80 GB&lt;/td&gt;
          &lt;td&gt;80 GB / HBM3 / 5120 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;11263.29 ± 98.34&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;280.74 ± 1.17&lt;/td&gt;
          &lt;td&gt;5143fa8&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;A100 80 GB&lt;/td&gt;
          &lt;td&gt;80 GB / HBM2e / 5120 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;5285.96 ± 6.58&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;200.90 ± 0.12&lt;/td&gt;
          &lt;td&gt;5143fa8&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 4090 D&lt;/td&gt;
          &lt;td&gt;24 GB / GDDR6X / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;12506.97 ± 11.51&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;191.57 ± 0.03&lt;/td&gt;
          &lt;td&gt;79c1160&lt;/td&gt;
          &lt;td&gt;@autonomous-AI-lab&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 4090&lt;/td&gt;
          &lt;td&gt;24 GB / GDDR6X / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;14770.63 ± 102.93&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;188.96 ± 0.05&lt;/td&gt;
          &lt;td&gt;2241453&lt;/td&gt;
          &lt;td&gt;@lhl&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 5080&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR7 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;9487.70 ± 21.89&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;184.68 ± 0.05&lt;/td&gt;
          &lt;td&gt;8a4280c&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 5070 Ti&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR7 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;8419.56 ± 35.50&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;182.43 ± 0.09&lt;/td&gt;
          &lt;td&gt;933414c&lt;/td&gt;
          &lt;td&gt;@TinyServal&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 6000 Ada&lt;/td&gt;
          &lt;td&gt;48 GB / GDDR6 / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;10576.85 ± 530.21&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;179.47 ± 0.32&lt;/td&gt;
          &lt;td&gt;b8e09f0&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 3090 Ti&lt;/td&gt;
          &lt;td&gt;24 GB / GDDR6X / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;6924.01 ± 10.76&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;172.26 ± 1.31&lt;/td&gt;
          &lt;td&gt;9c35706&lt;/td&gt;
          &lt;td&gt;@slaren&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX PRO 4500 Blackwell&lt;/td&gt;
          &lt;td&gt;32 GB / GDDR7 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;7251.66 ± 92.40&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;168.90 ± 0.20&lt;/td&gt;
          &lt;td&gt;becc481&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 3090&lt;/td&gt;
          &lt;td&gt;24 GB / GDDR6X / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;5560.06 ± 16.28&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;161.89 ± 0.18&lt;/td&gt;
          &lt;td&gt;c76b420&lt;/td&gt;
          &lt;td&gt;@m18coppola&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;L40&lt;/td&gt;
          &lt;td&gt;48 GB / GDDR6 / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;10097.64 ± 671.22&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;153.76 ± 0.12&lt;/td&gt;
          &lt;td&gt;ee09828&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 4080 SUPER&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR6X / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;9439.01 ± 56.75&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;147.48 ± 1.41&lt;/td&gt;
          &lt;td&gt;81086cd&lt;/td&gt;
          &lt;td&gt;@zacharyarnaise&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 4080&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR6X / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;9205.93 ± 22.31&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;143.47 ± 0.02&lt;/td&gt;
          &lt;td&gt;20638e4&lt;/td&gt;
          &lt;td&gt;@Ristovski&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX A6000&lt;/td&gt;
          &lt;td&gt;48 GB / GDDR6 / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;5662.39 ± 13.87&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;144.87 ± 0.18&lt;/td&gt;
          &lt;td&gt;4795c91&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 3080&lt;/td&gt;
          &lt;td&gt;10 GB / GDDR6X / 320 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;5569.56 ± 14.04&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;139.95 ± 0.95&lt;/td&gt;
          &lt;td&gt;9c35706&lt;/td&gt;
          &lt;td&gt;@slaren&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX PRO 4000 Blackwell&lt;/td&gt;
          &lt;td&gt;24 GB / GDDR7 / 192 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;5674.44 ± 139.53&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;136.38 ± 0.13&lt;/td&gt;
          &lt;td&gt;7d77f07&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX A5000&lt;/td&gt;
          &lt;td&gt;24 GB / GDDR6 / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4552.15 ± 9.68&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;135.83 ± 0.11&lt;/td&gt;
          &lt;td&gt;e5155e6&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Tesla V100&lt;/td&gt;
          &lt;td&gt;32 GB / HBM2 / 4096 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2973.78 ± 3.62&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;134.76 ± 0.02&lt;/td&gt;
          &lt;td&gt;51f5a45&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 4070 Ti SUPER&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR6X / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;7612.32 ± 37.35&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;132.85 ± 0.31&lt;/td&gt;
          &lt;td&gt;9c35706&lt;/td&gt;
          &lt;td&gt;@Ristovski&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;A30&lt;/td&gt;
          &lt;td&gt;24 GB / HBM2e / 3072 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3068.72 ± 0.63&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;131.93 ± 0.18&lt;/td&gt;
          &lt;td&gt;583cb83&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 5070&lt;/td&gt;
          &lt;td&gt;12 GB / GDDR7 / 192 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;5783.44 ± 36.95&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;128.21 ± 2.52&lt;/td&gt;
          &lt;td&gt;@Spyro000&lt;/td&gt;
          &lt;td&gt;-&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;A40&lt;/td&gt;
          &lt;td&gt;48 GB / GDDR6 / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;5256.38 ± 19.39&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;126.24 ± 0.06&lt;/td&gt;
          &lt;td&gt;3470a5c&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Titan V&lt;/td&gt;
          &lt;td&gt;12 GB / HBM2 / 3072 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2481.25 ± 1.31&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;112.17 ± 0.01&lt;/td&gt;
          &lt;td&gt;e56abd2&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 2080 Ti&lt;/td&gt;
          &lt;td&gt;11 GB / GDDR6 / 352 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3107.61 ± 4.34&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;109.17 ± 0.07&lt;/td&gt;
          &lt;td&gt;9c35706&lt;/td&gt;
          &lt;td&gt;@ariya&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Quadro RTX 6000&lt;/td&gt;
          &lt;td&gt;24 GB / GDDR6 / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3053.96 ± 1.37&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;104.38 ± 0.04&lt;/td&gt;
          &lt;td&gt;b8e09f0&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Quadro RTX 8000&lt;/td&gt;
          &lt;td&gt;48 GB / GDDR6 / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3052.35 ± 5.64&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;103.63 ± 0.02&lt;/td&gt;
          &lt;td&gt;b8e09f0&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX A4500&lt;/td&gt;
          &lt;td&gt;20 GB / GDDR6 / 320 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3453.10 ± 49.19&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;103.00 ± 0.25&lt;/td&gt;
          &lt;td&gt;5cdb27e&lt;/td&gt;
          &lt;td&gt;@aleksyx&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 5060 Ti 16 GB&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR7 / 128 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4195.53 ± 1.98&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;93.46 ± 0.01&lt;/td&gt;
          &lt;td&gt;89d1029&lt;/td&gt;
          &lt;td&gt;@mike-llamacpp&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 2070 SUPER&lt;/td&gt;
          &lt;td&gt;8 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2293.29 ± 5.91&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;87.71 ± 0.29&lt;/td&gt;
          &lt;td&gt;bc07349&lt;/td&gt;
          &lt;td&gt;@phstudy&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX A4000&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2807.83 ± 52.44&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;85.17 ± 0.66&lt;/td&gt;
          &lt;td&gt;65349f2&lt;/td&gt;
          &lt;td&gt;@TinyServal&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 3060&lt;/td&gt;
          &lt;td&gt;12 GB / GDDR6 / 192 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2407.67 ± 3.73&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;76.92 ± 0.03&lt;/td&gt;
          &lt;td&gt;baa9255&lt;/td&gt;
          &lt;td&gt;@QuantiusBenignus&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Titan Xp&lt;/td&gt;
          &lt;td&gt;12 GB / GDDR5X / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1218.12 ± 1.82&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;73.84 ± 0.04&lt;/td&gt;
          &lt;td&gt;c4510dc&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Quadro RTX 4000&lt;/td&gt;
          &lt;td&gt;8 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1662.80 ± 2.04&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;67.62 ± 0.67&lt;/td&gt;
          &lt;td&gt;7d77f07&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 4060 Ti 8 GB&lt;/td&gt;
          &lt;td&gt;8 GB / GDDR6 / 128 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3803.45 ± 70.80&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;64.03 ± 0.53&lt;/td&gt;
          &lt;td&gt;89d1029&lt;/td&gt;
          &lt;td&gt;@mike-llamacpp&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Tesla P100&lt;/td&gt;
          &lt;td&gt;16 GB / HBM2 / 4096 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;787.36 ± 3.27&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;61.99 ± 0.00&lt;/td&gt;
          &lt;td&gt;b8372ee&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GTX 1080 Ti&lt;/td&gt;
          &lt;td&gt;11 GB / GDDR5X / 352 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1138.14 ± 2.02&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;61.38 ± 0.03&lt;/td&gt;
          &lt;td&gt;9c35706&lt;/td&gt;
          &lt;td&gt;@ariya&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX A4000 Ada&lt;/td&gt;
          &lt;td&gt;20 GB / GDDR6 / 160 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3171.86 ± 4.34&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;61.37 ± 0.01&lt;/td&gt;
          &lt;td&gt;a74a0d6&lt;/td&gt;
          &lt;td&gt;@sdwolfz&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 2060 SUPER&lt;/td&gt;
          &lt;td&gt;8 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1563.77 ± 0.51&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;61.13 ± 0.05&lt;/td&gt;
          &lt;td&gt;5c0eb5e&lt;/td&gt;
          &lt;td&gt;@ggerganov&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;DGX Spark&lt;/td&gt;
          &lt;td&gt;128 GB / LPDDR5x&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3661.37 ± 38.66&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;56.74 ± 0.03&lt;/td&gt;
          &lt;td&gt;5acd455&lt;/td&gt;
          &lt;td&gt;@ggerganov&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Tesla P40&lt;/td&gt;
          &lt;td&gt;24 GB / GDDR5 / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1079.66 ± 0.18&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;53.73 ± 0.05&lt;/td&gt;
          &lt;td&gt;c76b420&lt;/td&gt;
          &lt;td&gt;@m18coppola&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 2000 Ada&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR6 / 128 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2250.14 ± 5.91&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;50.71 ± 0.01&lt;/td&gt;
          &lt;td&gt;756cfea&lt;/td&gt;
          &lt;td&gt;@DigitalRudeness&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Tesla T4&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1309.73 ± 1.02&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;44.03 ± 0.57&lt;/td&gt;
          &lt;td&gt;d32e03f&lt;/td&gt;
          &lt;td&gt;@pt13762104&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GTX 1660&lt;/td&gt;
          &lt;td&gt;6 GB / GDDR5 / 192 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;154.45 ± 0.52&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;41.43 ± 0.01&lt;/td&gt;
          &lt;td&gt;9515c61&lt;/td&gt;
          &lt;td&gt;@ariya&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Tesla M40&lt;/td&gt;
          &lt;td&gt;24 GB / GDDR5 / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;290.17 ± 0.11&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;39.98 ± 0.01&lt;/td&gt;
          &lt;td&gt;97d5117&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GTX 1070 Ti&lt;/td&gt;
          &lt;td&gt;8 GB / GDDR5 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;790.52 ± 2.39&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;37.87 ± 0.00&lt;/td&gt;
          &lt;td&gt;79c1160&lt;/td&gt;
          &lt;td&gt;@pebaryan&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Jetson AGX Orin&lt;/td&gt;
          &lt;td&gt;64 GB / LPDDR5 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1171.96 ± 4.70&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;35.88 ± 0.18&lt;/td&gt;
          &lt;td&gt;c1b1876&lt;/td&gt;
          &lt;td&gt;@TinyServal&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Tesla P4&lt;/td&gt;
          &lt;td&gt;8 GB / GDDR5 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;529.53 ± 2.12&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;33.12 ± 0.03&lt;/td&gt;
          &lt;td&gt;c76b420&lt;/td&gt;
          &lt;td&gt;@m18coppola&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;P106-100&lt;/td&gt;
          &lt;td&gt;6 GB / GDDR5 / 192 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;438.49 ± 0.38&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;30.64 ± 0.06&lt;/td&gt;
          &lt;td&gt;5fd160b&lt;/td&gt;
          &lt;td&gt;@pebaryan&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GTX 1060&lt;/td&gt;
          &lt;td&gt;6 GB / GDDR5 / 192 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;446.19 ± 0.81&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;28.18 ± 0.01&lt;/td&gt;
          &lt;td&gt;5fd160b&lt;/td&gt;
          &lt;td&gt;@pebaryan&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Quadro T1000&lt;/td&gt;
          &lt;td&gt;4 GB / GDDR5 / 128 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;27.46 ± 0.23&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;27.46 ± 0.23&lt;/td&gt;
          &lt;td&gt;f6da8cb&lt;/td&gt;
          &lt;td&gt;@hanabu&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Quadro P2000&lt;/td&gt;
          &lt;td&gt;5 GB / GDDR5 / 160 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;311.55 ± 0.19&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;23.76 ± 0.01&lt;/td&gt;
          &lt;td&gt;baa9255&lt;/td&gt;
          &lt;td&gt;@TinyServal&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Tesla K80&lt;/td&gt;
          &lt;td&gt;12 GB / GDDR5 / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;133.36 ± 0.60&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;14.27 ± 0.32&lt;/td&gt;
          &lt;td&gt;32732f2&lt;/td&gt;
          &lt;td&gt;@pebaryan&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Quadro P1000&lt;/td&gt;
          &lt;td&gt;4 GB / GDDR5 / 128 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;173.82 ± 0.02&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;13.65 ± 0.14&lt;/td&gt;
          &lt;td&gt;1e74897&lt;/td&gt;
          &lt;td&gt;@aleksyx&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;apple-silicon-參考口徑&#34;&gt;Apple Silicon 參考口徑
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;#4167&lt;/code&gt; 這條討論和後三條最大的區別，是它更早建立了統一口徑，除了 &lt;code&gt;Q4_0&lt;/code&gt;，還會順帶放 &lt;code&gt;F16&lt;/code&gt; 和 &lt;code&gt;Q8_0&lt;/code&gt;。它對理解 &lt;code&gt;PP / TG / t/s&lt;/code&gt; 很有幫助。&lt;/p&gt;
&lt;p&gt;討論裡直接給出的說明是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;PP&lt;/code&gt; 表示 &lt;code&gt;prompt processing&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;TG&lt;/code&gt; 表示 &lt;code&gt;text-generation&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;t/s&lt;/code&gt; 表示 &lt;code&gt;tokens per second&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;文中可見的一個時間對比樣例，是 &lt;code&gt;M2 Ultra&lt;/code&gt; 在同一台機器上隨著版本和 &lt;code&gt;FA&lt;/code&gt; 演進後的成績：&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;時間&lt;/th&gt;
          &lt;th&gt;設備&lt;/th&gt;
          &lt;th&gt;版本/說明&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;頻寬 GB/s&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;GPU 核心&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;F16 PP&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;F16 TG&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Q8_0 PP&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Q8_0 TG&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Q4_0 PP&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Q4_0 TG&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;2023-11-21&lt;/td&gt;
          &lt;td&gt;M2 Ultra&lt;/td&gt;
          &lt;td&gt;8e672ef&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;800&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;76&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1401.85&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;41.02&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1248.59&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;66.64&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1238.48&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;94.27&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;2024-11-12&lt;/td&gt;
          &lt;td&gt;M2 Ultra&lt;/td&gt;
          &lt;td&gt;86ed72d + FA&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;800&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;76&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1525.95&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;43.15&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1368.18&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;73.11&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1391.78&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;108.80&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;2025-08-02&lt;/td&gt;
          &lt;td&gt;M2 Ultra&lt;/td&gt;
          &lt;td&gt;5c0eb5e + FA&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;800&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;76&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1561.35&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;43.24&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1386.97&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;73.35&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1412.42&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;109.41&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;設備&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Q4_0 PP&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Q4_0 TG&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Q8_0 PP&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Q8_0 TG&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;F16 PP&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;F16 TG&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;M1 Pro 16 GPU&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;266.25&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;36.41&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;270.37&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;22.34&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;302.14&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;12.75&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;M2 Ultra 76 GPU&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1238.48&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;94.27&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1248.59&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;66.64&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1401.85&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;41.02&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;M3 Max 40 GPU&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;690.99&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;65.85&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;749.37&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;43.00&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;794.26&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;25.27&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Apple 這條線這裡不展開全文搬運，後面重點看你指定的三類獨顯後端榜單。&lt;/p&gt;
&lt;h2 id=&#34;rocm--hip-完整榜單&#34;&gt;ROCm / HIP 完整榜單
&lt;/h2&gt;&lt;h3 id=&#34;llama-2-7b-q4_0-no-fa-1&#34;&gt;Llama 2 7B, Q4_0, no FA
&lt;/h3&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Chip&lt;/th&gt;
          &lt;th&gt;Memory&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;pp512 t/s&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;tg128 t/s&lt;/th&gt;
          &lt;th&gt;Commit&lt;/th&gt;
          &lt;th&gt;Thanks to&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Instinct MI300X&lt;/td&gt;
          &lt;td&gt;192 GB / HBM3 / 8192 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;11476.40 ± 72.79&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;232.92 ± 0.53&lt;/td&gt;
          &lt;td&gt;ee3a9fc&lt;/td&gt;
          &lt;td&gt;@yeahdongcn&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RX 7900 XTX&lt;/td&gt;
          &lt;td&gt;24 GB / GDDR6 / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3552.27 ± 101.96&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;167.11 ± 0.50&lt;/td&gt;
          &lt;td&gt;2f0c2db&lt;/td&gt;
          &lt;td&gt;@Diablo-D3&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Instinct MI210&lt;/td&gt;
          &lt;td&gt;64 GB / HBM2e / 4096 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2486.22 ± 9.58&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;124.51 ± 0.04&lt;/td&gt;
          &lt;td&gt;8160b38&lt;/td&gt;
          &lt;td&gt;@65a&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Pro W7900&lt;/td&gt;
          &lt;td&gt;48 GB / GDDR6 / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3213.17 ± 80.47&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;121.18 ± 0.06&lt;/td&gt;
          &lt;td&gt;8160b38&lt;/td&gt;
          &lt;td&gt;@65a&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RX 7900 XT&lt;/td&gt;
          &lt;td&gt;20 GB / GDDR6 / 320 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3098.38 ± 24.02&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;116.15 ± 0.06&lt;/td&gt;
          &lt;td&gt;1e15bfd&lt;/td&gt;
          &lt;td&gt;@AdamNiederer&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RX 9070&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2381.77 ± 3.68&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;114.48 ± 0.60&lt;/td&gt;
          &lt;td&gt;d0660f2&lt;/td&gt;
          &lt;td&gt;@andj1210&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Instinct MI100&lt;/td&gt;
          &lt;td&gt;32 GB / HBM2 / 4096 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2732.83 ± 1.98&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;110.48 ± 0.14&lt;/td&gt;
          &lt;td&gt;9c35706&lt;/td&gt;
          &lt;td&gt;@firefox42&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RX 9070 XT&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;5055.19 ± 109.58&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;101.27 ± 0.27&lt;/td&gt;
          &lt;td&gt;583cb83&lt;/td&gt;
          &lt;td&gt;@Hadrianneue&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RX 7800 XT&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2151.81 + 17.94&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;100.94 + 0.10&lt;/td&gt;
          &lt;td&gt;00131d6&lt;/td&gt;
          &lt;td&gt;@olegshulyakov&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Instinct MI50&lt;/td&gt;
          &lt;td&gt;32 GB / HBM2 / 4096 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1057.24 ± 0.53&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;98.95 ± 0.25&lt;/td&gt;
          &lt;td&gt;97d5117&lt;/td&gt;
          &lt;td&gt;@wtarreau&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RX 7900 GRE&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1456.98 ± 12.39&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;96.07 ± 0.10&lt;/td&gt;
          &lt;td&gt;6fa3b55&lt;/td&gt;
          &lt;td&gt;@MihaiBojescu&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AI PRO R9700&lt;/td&gt;
          &lt;td&gt;32 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4443.54 ± 339.25&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;93.84 ± 0.26&lt;/td&gt;
          &lt;td&gt;bd4ef13&lt;/td&gt;
          &lt;td&gt;@gogich77&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Instinct MI60&lt;/td&gt;
          &lt;td&gt;32 GB / HBM2 / 4096 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1289.11 ± 0.62&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;91.46 ± 0.13&lt;/td&gt;
          &lt;td&gt;504af20&lt;/td&gt;
          &lt;td&gt;@Said-Akbar&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RX 6900 XT&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1889.84 ± 31.21&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;88.49 ± 0.00&lt;/td&gt;
          &lt;td&gt;a972fae&lt;/td&gt;
          &lt;td&gt;@notgood&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Pro VII&lt;/td&gt;
          &lt;td&gt;16 GB / HBM2 / 4096 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1064.99 ± 1.18&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;87.45 ± 0.04&lt;/td&gt;
          &lt;td&gt;2739a71&lt;/td&gt;
          &lt;td&gt;@8XXD8&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RX 6800 XT&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1447.07 ± 1.36&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;83.92 ± 0.03&lt;/td&gt;
          &lt;td&gt;79c1160&lt;/td&gt;
          &lt;td&gt;@MrLavender&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Pro V620&lt;/td&gt;
          &lt;td&gt;32 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1803.65 ± 2.54&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;74.66 ± 0.01&lt;/td&gt;
          &lt;td&gt;5c0eb5e&lt;/td&gt;
          &lt;td&gt;@samteezy&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RX 9060 XT&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1419.67 ± 3.64&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;67.58 ± 0.24&lt;/td&gt;
          &lt;td&gt;a0e13dc&lt;/td&gt;
          &lt;td&gt;@lcy0321&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RX 5700 XT&lt;/td&gt;
          &lt;td&gt;8 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;354.17 ± 0.18&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;67.55 ± 0.04&lt;/td&gt;
          &lt;td&gt;c05e8c9&lt;/td&gt;
          &lt;td&gt;@daniandtheweb&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Instinct MI25&lt;/td&gt;
          &lt;td&gt;16 GB / HBM2 / 2048 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;409.83 ± 0.23&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;63.94 ± 0.06&lt;/td&gt;
          &lt;td&gt;2739a71&lt;/td&gt;
          &lt;td&gt;@8XXD8&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AI Max+ 395&lt;/td&gt;
          &lt;td&gt;128 GB / LPDDR5&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;911.36 ± 1.79&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;50.01 ± 0.07&lt;/td&gt;
          &lt;td&gt;e60f241&lt;/td&gt;
          &lt;td&gt;@firefox42&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RX 7600 XT&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR6 / 128 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1099.64 ± 2.05&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;48.58 ± 0.06&lt;/td&gt;
          &lt;td&gt;9c35706&lt;/td&gt;
          &lt;td&gt;@wbruna&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RX Vega 64&lt;/td&gt;
          &lt;td&gt;8 GB / HBM2 / 2048 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;240.68 ± 0.09&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;48.46 ± 0.09&lt;/td&gt;
          &lt;td&gt;ec428b0&lt;/td&gt;
          &lt;td&gt;@davispuh&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Radeon 8060S&lt;/td&gt;
          &lt;td&gt;System Shared / DDR5&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;351.36 ± 0.67&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;47.97 ± 0.33&lt;/td&gt;
          &lt;td&gt;1d0125b&lt;/td&gt;
          &lt;td&gt;@hspak&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Radeon 880M&lt;/td&gt;
          &lt;td&gt;System Shared / DDR5&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;163.25 ± 13.86&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;12.97 ± 1.63&lt;/td&gt;
          &lt;td&gt;c55d53a&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;llama-2-7b-q4_0-with-fa-1&#34;&gt;Llama 2 7B, Q4_0, with FA
&lt;/h3&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Chip&lt;/th&gt;
          &lt;th&gt;Memory&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;pp512 t/s&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;tg128 t/s&lt;/th&gt;
          &lt;th&gt;Commit&lt;/th&gt;
          &lt;th&gt;Thanks to&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Instinct MI300X&lt;/td&gt;
          &lt;td&gt;192 GB / HBM3 / 8192 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;11945.97 ± 54.29&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;218.53 ± 0.09&lt;/td&gt;
          &lt;td&gt;ee3a9fc&lt;/td&gt;
          &lt;td&gt;@yeahdongcn&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RX 7900 XTX&lt;/td&gt;
          &lt;td&gt;24 GB / GDDR6 / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3874.25 ± 11.92&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;170.12 ± 0.56&lt;/td&gt;
          &lt;td&gt;2f0c2db&lt;/td&gt;
          &lt;td&gt;@Diablo-D3&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Pro W7900&lt;/td&gt;
          &lt;td&gt;48 GB / GDDR6 / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3472.86 ± 52.86&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;127.43 ± 0.12&lt;/td&gt;
          &lt;td&gt;8160b38&lt;/td&gt;
          &lt;td&gt;@65a&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Instinct MI210&lt;/td&gt;
          &lt;td&gt;64 GB / HBM2e / 4096 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2571.82 ± 2.89&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;130.18 ± 0.06&lt;/td&gt;
          &lt;td&gt;8160b38&lt;/td&gt;
          &lt;td&gt;@65a&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RX 9070&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2452.68 ± 1.33&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;115.32 ± 0.52&lt;/td&gt;
          &lt;td&gt;d0660f2&lt;/td&gt;
          &lt;td&gt;@andj1210&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RX 7900 XT&lt;/td&gt;
          &lt;td&gt;20 GB / GDDR6 / 320 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3261.75 ± 9.09&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;112.30 ± 0.06&lt;/td&gt;
          &lt;td&gt;1e15bfd&lt;/td&gt;
          &lt;td&gt;@AdamNiederer&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Instinct MI50&lt;/td&gt;
          &lt;td&gt;32 GB / HBM2 / 4096 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1129.43 ± 0.15&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;105.82 ± 0.07&lt;/td&gt;
          &lt;td&gt;97d5117&lt;/td&gt;
          &lt;td&gt;@wtarreau&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Instinct MI100&lt;/td&gt;
          &lt;td&gt;32 GB / HBM2 / 4096 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2755.00 ± 3.68&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;104.71 ± 0.10&lt;/td&gt;
          &lt;td&gt;9c35706&lt;/td&gt;
          &lt;td&gt;@firefox42&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AI PRO R9700&lt;/td&gt;
          &lt;td&gt;32 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4773.07 ± 49.30&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;97.98 ± 0.13&lt;/td&gt;
          &lt;td&gt;bd4ef13&lt;/td&gt;
          &lt;td&gt;@gogich77&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RX 7900 GRE&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1598.79 ± 11.48&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;97.53 ± 0.06&lt;/td&gt;
          &lt;td&gt;6fa3b55&lt;/td&gt;
          &lt;td&gt;@MihaiBojescu&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RX 9070 XT&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4903.51 ± 96.36&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;97.28 ± 0.13&lt;/td&gt;
          &lt;td&gt;583cb83&lt;/td&gt;
          &lt;td&gt;@Hadrianneue&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RX 7800 XT&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2304.63 + 2.85&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;95.99 + 0.21&lt;/td&gt;
          &lt;td&gt;00131d6&lt;/td&gt;
          &lt;td&gt;@olegshulyakov&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RX 6900 XT&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1948.31 ± 13.51&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;85.04 ± 0.02&lt;/td&gt;
          &lt;td&gt;a972fae&lt;/td&gt;
          &lt;td&gt;@notgood&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Pro V620&lt;/td&gt;
          &lt;td&gt;32 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1256.86 ± 0.55&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;70.83 ± 0.02&lt;/td&gt;
          &lt;td&gt;5c0eb5e&lt;/td&gt;
          &lt;td&gt;@samteezy&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RX 9060 XT&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1479.27 ± 0.71&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;65.42 ± 0.19&lt;/td&gt;
          &lt;td&gt;a0e13dc&lt;/td&gt;
          &lt;td&gt;@lcy0321&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RX 5700 XT&lt;/td&gt;
          &lt;td&gt;8 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;314.17 ± 0.29&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;62.02 ± 0.05&lt;/td&gt;
          &lt;td&gt;c05e8c9&lt;/td&gt;
          &lt;td&gt;@daniandtheweb&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AI Max+ 395&lt;/td&gt;
          &lt;td&gt;128 GB / LPDDR5&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1003.53 ± 2.91&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;49.87 ± 0.02&lt;/td&gt;
          &lt;td&gt;e60f241&lt;/td&gt;
          &lt;td&gt;@firefox42&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Radeon 8060S&lt;/td&gt;
          &lt;td&gt;System Shared / DDR5&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;366.08 ± 1.44&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;48.97 ± 0.15&lt;/td&gt;
          &lt;td&gt;1d0125b&lt;/td&gt;
          &lt;td&gt;@hspak&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RX 7600 XT&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR6 / 128 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1199.16 ± 1.07&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;47.65 ± 0.06&lt;/td&gt;
          &lt;td&gt;9c35706&lt;/td&gt;
          &lt;td&gt;@wbruna&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RX Vega 64&lt;/td&gt;
          &lt;td&gt;8 GB / HBM2 / 2048 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;153.17 ± 0.72&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;42.46 ± 0.40&lt;/td&gt;
          &lt;td&gt;ec428b0&lt;/td&gt;
          &lt;td&gt;@davispuh&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Radeon 880M&lt;/td&gt;
          &lt;td&gt;System Shared / DDR5&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;213.31 ± 14.05&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16.16 ± 1.41&lt;/td&gt;
          &lt;td&gt;c55d53a&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;vulkan-完整榜單&#34;&gt;Vulkan 完整榜單
&lt;/h2&gt;&lt;h3 id=&#34;llama-2-7b-q4_0-no-fa-2&#34;&gt;Llama 2 7B, Q4_0, no FA
&lt;/h3&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Chip&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;pp512 t/s&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;tg128 t/s&lt;/th&gt;
          &lt;th&gt;Commit&lt;/th&gt;
          &lt;th&gt;Comments&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 5090&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;10381.64 ± 508.84&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;263.63 ± 0.91&lt;/td&gt;
          &lt;td&gt;ca71fb9&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 7900 XTX&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3531.93 ± 31.74&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;191.28 ± 0.20&lt;/td&gt;
          &lt;td&gt;2f0c2db&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 4090&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;9452.03 ± 187.70&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;187.97 ± 0.21&lt;/td&gt;
          &lt;td&gt;4ae88d0&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 5080&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;7444.99 ± 20.11&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;185.10 ± 0.54&lt;/td&gt;
          &lt;td&gt;f6b533d&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia A100&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;6389.86 ± 4.83&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;160.78 ± 0.16&lt;/td&gt;
          &lt;td&gt;2257758&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 3090&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4298.97 ± 10.59&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;160.13 ± 0.25&lt;/td&gt;
          &lt;td&gt;4ae88d0&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 4080 Super&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;7101.18 ± 269.79&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;147.13 ± 5.64&lt;/td&gt;
          &lt;td&gt;81086cd&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 3080&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4287.11 ± 55.50&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;139.15 ± 0.05&lt;/td&gt;
          &lt;td&gt;7c7d6ce&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX A5000&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3641.55 ± 9.05&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;139.89 ± 0.69&lt;/td&gt;
          &lt;td&gt;4ae88d0&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 9070 XT&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;5036.04 ± 88.16&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;137.11 ± 0.02&lt;/td&gt;
          &lt;td&gt;e9fd8dc&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 5070 Ti&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;6213.63 ± 27.72&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;135.63 ± 0.18&lt;/td&gt;
          &lt;td&gt;d13d0f6&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon AI Pro R9700&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4036.04 ± 34.58&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;130.19 ± 0.39&lt;/td&gt;
          &lt;td&gt;3191462&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia Tesla V100&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1391.39 ± 1.19&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;129.58 ± 0.58&lt;/td&gt;
          &lt;td&gt;7d77f07&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 4070 Ti Super&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;6099.18 ± 154.30&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;129.45 ± 0.18&lt;/td&gt;
          &lt;td&gt;4ae88d0&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 7900 XT&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2941.58 ± 17.17&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;123.18 ± 0.40&lt;/td&gt;
          &lt;td&gt;71e74a3&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 9070&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3164.10 ± 66.84&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;119.71 ± 3.40&lt;/td&gt;
          &lt;td&gt;21c17b5&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 7800 XT&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2017.33 ± 19.30&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;118.27 ± 0.27&lt;/td&gt;
          &lt;td&gt;4fdbc1e&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 7900 GRE&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2336.31 ± 7.52&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;116.11 ± 0.26&lt;/td&gt;
          &lt;td&gt;4b2a477&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Apple M3 Ultra&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1116.83 ± 0.55&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;115.54 ± 0.78&lt;/td&gt;
          &lt;td&gt;2d451c8&lt;/td&gt;
          &lt;td&gt;MoltenVK&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel Arc Pro B70&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3379.00 ± 47.92&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;112.02 ± 1.08&lt;/td&gt;
          &lt;td&gt;b863507&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia Titan V&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;984.36 ± 4.13&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;108.86 ± 0.28&lt;/td&gt;
          &lt;td&gt;e56abd2&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon Pro VII&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1078.54 ± 0.86&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;107.82 ± 0.14&lt;/td&gt;
          &lt;td&gt;N/A&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 6900 XT&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1837.21 ± 25.44&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;104.60 ± 0.30&lt;/td&gt;
          &lt;td&gt;a972fae&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel Arc Pro A60&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2261.11 ± 9.53&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;104.25 ± 0.07&lt;/td&gt;
          &lt;td&gt;97d5117&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 6800 XT&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1752.92 ± 1.71&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;100.32 ± 0.97&lt;/td&gt;
          &lt;td&gt;N/A&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon VII&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1059.14 ± 0.56&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;101.19 ± 0.53&lt;/td&gt;
          &lt;td&gt;77d6ae4&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 2080 Ti&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1888.24 ± 9.20&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;97.58 ± 6.60&lt;/td&gt;
          &lt;td&gt;N/A&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 6800&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1698.69 ± 0.80&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;95.61 ± 0.19&lt;/td&gt;
          &lt;td&gt;4b385bf&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon Pro W6800X Duo&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;687.71 ± 4.33&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;94.82 ± 0.12&lt;/td&gt;
          &lt;td&gt;N/A&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 5060 Ti&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3460.92 ± 7.16&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;93.51 ± 0.15&lt;/td&gt;
          &lt;td&gt;89f10ba&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 4070&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3179.37 ± 46.16&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;92.29 ± 0.28&lt;/td&gt;
          &lt;td&gt;9a48399&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon Pro W6800X&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;510.80 ± 0.13&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;86.47 ± 0.46&lt;/td&gt;
          &lt;td&gt;13b4548&lt;/td&gt;
          &lt;td&gt;MoltenVK&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 6700 XT&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1051.20 ± 0.98&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;83.88 ± 0.08&lt;/td&gt;
          &lt;td&gt;6d75883&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 6750 XT&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1040.58 ± 0.35&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;81.98 ± 0.03&lt;/td&gt;
          &lt;td&gt;228f34c&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon Pro V620&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1595.32 ± 1.59&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;81.78 ± 0.06&lt;/td&gt;
          &lt;td&gt;03d4698&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 3070&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2113.02 ± 7.38&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;78.71 ± 0.13&lt;/td&gt;
          &lt;td&gt;1b8fb81&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon Instinct MI60&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;369.26 ± 2.48&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;78.16 ± 1.40&lt;/td&gt;
          &lt;td&gt;504af20&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 3060&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1815.70 ± 5.85&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;75.94 ± 0.80&lt;/td&gt;
          &lt;td&gt;92c0b38&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Apple M4 Max&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;724.77 ± 20.93&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;75.02 ± 0.14&lt;/td&gt;
          &lt;td&gt;1ece0cb6&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia Tesla T10&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1692.70 ± 2.05&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;75.01 ± 0.21&lt;/td&gt;
          &lt;td&gt;7f76692&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX A4000&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2248.14 ± 7.59&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;73.74 ± 0.08&lt;/td&gt;
          &lt;td&gt;f5245b5&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 5700 XT&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;529.69 ± 0.26&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;70.73 ± 0.04&lt;/td&gt;
          &lt;td&gt;4fdbc1e&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 9060 XT&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2141.67 ± 6.87&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;70.54 ± 0.74&lt;/td&gt;
          &lt;td&gt;ed52f36&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel Arc B580&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;620.94 ± 15.33&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;70.14 ± 0.28&lt;/td&gt;
          &lt;td&gt;7f76692&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon Pro V540&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;583.88 ± 6.56&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;69.64 ± 0.24&lt;/td&gt;
          &lt;td&gt;9da3dcd&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon Pro W5700&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;449.85 ± 0.46&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;68.55 ± 0.15&lt;/td&gt;
          &lt;td&gt;23bc779&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel Arc Pro B60&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;522.36 ± 3.60&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;68.55 ± 0.01&lt;/td&gt;
          &lt;td&gt;516a4ca&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia GTX 1080 Ti&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;540.69 ± 0.71&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;64.99 ± 0.08&lt;/td&gt;
          &lt;td&gt;360d653&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 2070 Super&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1199.13 ± 7.70&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;64.64 ± 0.20&lt;/td&gt;
          &lt;td&gt;b7552cf&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 3070 Mobile&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1689.40 ± 19.57&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;63.64 ± 0.39&lt;/td&gt;
          &lt;td&gt;ceff6bb&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia Tesla P100&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;678.14 ± 1.40&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;63.16 ± 0.06&lt;/td&gt;
          &lt;td&gt;eec1e33&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD BC-250&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;370.66 ± 0.04&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;62.32 ± 0.32&lt;/td&gt;
          &lt;td&gt;5886f4f&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 6650 XT&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1029.52 ± 1.21&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;62.14 ± 0.02&lt;/td&gt;
          &lt;td&gt;dbb852b&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 4060 Mobile&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2135.66 ± 23.18&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;59.53 ± 0.03&lt;/td&gt;
          &lt;td&gt;a5c07dc&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia Tesla P40&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;488.06 ± 0.27&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;59.36 ± 0.16&lt;/td&gt;
          &lt;td&gt;N/A&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia GTX 1660 Ti Mobile&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;511.67 ± 2.85&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;56.60 ± 0.07&lt;/td&gt;
          &lt;td&gt;b43556e&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon Instinct MI25&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;439.42 ± 0.34&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;54.69 ± 0.03&lt;/td&gt;
          &lt;td&gt;2739a71&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 6600 XT&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;574.65 ± 0.86&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;53.92 ± 0.11&lt;/td&gt;
          &lt;td&gt;091592d&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Ryzen AI Max+ 395&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1288.96 ± 6.49&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;53.59 ± 0.38&lt;/td&gt;
          &lt;td&gt;7f76692&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 7600 XT&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;840.85 ± 3.02&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;53.02 ± 0.01&lt;/td&gt;
          &lt;td&gt;01d8eaa&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel Arc A770&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1073.85 + 29.68&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;52.56 + 0.11&lt;/td&gt;
          &lt;td&gt;a69d54f&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia GB10&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2737.79 ± 19.56&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;52.28 ± 0.03&lt;/td&gt;
          &lt;td&gt;b9da444&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD FirePro S9300 x2&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;247.26 ± 0.43&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;51.86 ± 0.11&lt;/td&gt;
          &lt;td&gt;eec1e33&lt;/td&gt;
          &lt;td&gt;Split across two GPUs&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 6600&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;761.89 ± 1.76&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;50.63 ± 0.02&lt;/td&gt;
          &lt;td&gt;b1c70e2&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX Vega 56&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;439.87 ± 0.61&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;50.23 ± 0.14&lt;/td&gt;
          &lt;td&gt;92c0b38&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel Arc B570&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;913.95 ± 0.90&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;49.64 ± 0.03&lt;/td&gt;
          &lt;td&gt;7f76692&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 3060 Mobile&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1059.76 ± 3.54&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;49.03 ± 0.13&lt;/td&gt;
          &lt;td&gt;dbb3a47&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 6800M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;861.99 ± 7.67&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;48.71 ± 0.71&lt;/td&gt;
          &lt;td&gt;8e6f8bc&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 6600M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;605.59 ± 0.65&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;48.21 ± 0.07&lt;/td&gt;
          &lt;td&gt;fe5b78c&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel Arc A770M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;875.92 ± 2.16&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;47.69 ± 0.16&lt;/td&gt;
          &lt;td&gt;eeee367&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia P104-100&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;311.90 ± 0.22&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;46.18 ± 0.05&lt;/td&gt;
          &lt;td&gt;eec1e33&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX Vega 64&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;356.08 ± 0.09&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;45.73 ± 0.18&lt;/td&gt;
          &lt;td&gt;ec428b0&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX A2000&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1245.19 ± 8.76&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;45.52 ± 0.54&lt;/td&gt;
          &lt;td&gt;b1afcab&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 7600M XT&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;459.39 ± 2.34&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;45.28 ± 0.10&lt;/td&gt;
          &lt;td&gt;b9ab0a4&lt;/td&gt;
          &lt;td&gt;eGPU&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon Pro V340&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;375.41 ± 0.24&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;45.16 ± 0.06&lt;/td&gt;
          &lt;td&gt;9da3dcd&lt;/td&gt;
          &lt;td&gt;Split across two GPUs&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia GTX 1070 Ti&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;297.50 ± 0.54&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;42.86 ± 1.20&lt;/td&gt;
          &lt;td&gt;860a9e4&lt;/td&gt;
          &lt;td&gt;eGPU&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel Arc A750&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1075.94 ± 13.89&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;42.66 ± 0.18&lt;/td&gt;
          &lt;td&gt;c1b1876&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 4050 Mobile&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1154.28 + 15.76&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;41.89 + 0.10&lt;/td&gt;
          &lt;td&gt;d79d8f3&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia GTX 1070&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;321.57 ± 0.93&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;41.48 ± 0.09&lt;/td&gt;
          &lt;td&gt;eec1e33&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel Arc Pro B50&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;193.50 ± 0.24&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;39.99 ± 0.10&lt;/td&gt;
          &lt;td&gt;7b43f55&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia Tesla M40&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;92.48 ± 0.02&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;39.35 ± 1.22&lt;/td&gt;
          &lt;td&gt;b8372ee&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 580&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;258.03 ± 0.71&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;39.32 ± 0.03&lt;/td&gt;
          &lt;td&gt;de4c07f&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 470&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;218.07 ± 0.56&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;38.63 ± 0.21&lt;/td&gt;
          &lt;td&gt;e288693&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon Pro W5500&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;315.39 ± 3.76&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;36.82 ± 0.38&lt;/td&gt;
          &lt;td&gt;860a9e4&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 480&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;248.66 ± 0.28&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;34.71 ± 0.14&lt;/td&gt;
          &lt;td&gt;3b15924&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Apple M2 Ultra&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;205.98 ± 0.02&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;34.34 ± 0.12&lt;/td&gt;
          &lt;td&gt;dbb852b&lt;/td&gt;
          &lt;td&gt;Asahi Linux&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia GTX 980&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;186.24 ± 0.09&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;33.90 ± 0.51&lt;/td&gt;
          &lt;td&gt;860a9e4&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia P106-100&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;183.78 ± 0.26&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;29.77 ± 0.04&lt;/td&gt;
          &lt;td&gt;23bc779&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD FirePro W8100&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;155.22 ± 0.17&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;29.52 ± 0.05&lt;/td&gt;
          &lt;td&gt;4536363&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia Tesla P4&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;265.54 ± 0.21&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;28.03 ± 0.14&lt;/td&gt;
          &lt;td&gt;24d2ee0&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 6500 XT&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;255.25 ± 0.35&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;27.81 ± 0.10&lt;/td&gt;
          &lt;td&gt;g9fdfcd&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Apple M3&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;263.70 ± 0.02&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;26.39 ± 0.14&lt;/td&gt;
          &lt;td&gt;b9ab0a4&lt;/td&gt;
          &lt;td&gt;MoltenVK&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD FirePro S10000&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;94.78 ± 0.02&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;25.32 ± 0.02&lt;/td&gt;
          &lt;td&gt;914a82d&lt;/td&gt;
          &lt;td&gt;Split across two GPUs&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia Quadro P2000&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;169.55 ± 0.17&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;23.05 ± 0.03&lt;/td&gt;
          &lt;td&gt;63f8fe0&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel Core Ultra 200 Series&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;544.95 ± 4.15&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;22.49 ± 0.09&lt;/td&gt;
          &lt;td&gt;cea560f&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Ryzen AI 9 300 Series&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;479.07 ± 0.41&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;22.41 ± 0.18&lt;/td&gt;
          &lt;td&gt;N/A&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Ryzen 6000 Series&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;240.89 ± 0.52&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;21.26 ± 0.08&lt;/td&gt;
          &lt;td&gt;ee09828&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Apple M2 Pro&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;62.70 ± 0.03&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;20.95 ± 0.11&lt;/td&gt;
          &lt;td&gt;1fe0029&lt;/td&gt;
          &lt;td&gt;Asahi Linux&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia GTX 1050 Ti&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;136.42 ± 0.67&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;20.96 ± 0.21&lt;/td&gt;
          &lt;td&gt;2f0c2db&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Ryzen 8000 Series&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;266.19 ± 1.36&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;20.53 ± 0.08&lt;/td&gt;
          &lt;td&gt;a5c07dc&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Ryzen 7000 Series&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;281.62 ± 1.56&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;19.91 ± 0.07&lt;/td&gt;
          &lt;td&gt;ebce03e&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Ryzen Z1 Extreme&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;199.36 ± 7.02&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;18.77 ± 0.02&lt;/td&gt;
          &lt;td&gt;53ff6b9&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD FirePro D700&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;69.95 ± 0.04&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16.62 ± 0.01&lt;/td&gt;
          &lt;td&gt;d3bd719&lt;/td&gt;
          &lt;td&gt;MoltenVK, running in FP16 mode on FP32 only chip&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon Pro WX 4100&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;78.79 ± 0.10&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16.05 ± 0.07&lt;/td&gt;
          &lt;td&gt;860a9e4&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Apple M2&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;50.79 ± 0.16&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;13.50 ± 0.02&lt;/td&gt;
          &lt;td&gt;8c0d6bb&lt;/td&gt;
          &lt;td&gt;Asahi Linux&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Apple M1&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;38.29 ± 0.00&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;12.47 ± 0.03&lt;/td&gt;
          &lt;td&gt;2370665&lt;/td&gt;
          &lt;td&gt;Asahi Linux&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Ryzen 5000 Series&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;90.55 ± 0.08&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;10.98 ± 0.07&lt;/td&gt;
          &lt;td&gt;d84635b&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel Core 1100 Series&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;187.20 ± 1.78&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;10.39 ± 0.04&lt;/td&gt;
          &lt;td&gt;abb9f3c&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 550&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;52.66 ± 0.49&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;10.20 ± 0.01&lt;/td&gt;
          &lt;td&gt;N/A&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Ryzen 4000 Series&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;103.87 ± 0.02&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;9.63 ± 0.01&lt;/td&gt;
          &lt;td&gt;4b385bf&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia Tesla K80&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;89.46 ± 0.10&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;9.39 ± 0.06&lt;/td&gt;
          &lt;td&gt;5d46bab&lt;/td&gt;
          &lt;td&gt;Running on single GPU&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia Tesla K40&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;64.37 ± 0.09&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;9.30 ± 0.19&lt;/td&gt;
          &lt;td&gt;eec1e33&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;MediaTek Dimensity 9400&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;38.36 ± 15.15&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;8.92 ± 0.06&lt;/td&gt;
          &lt;td&gt;b9ab0a4&lt;/td&gt;
          &lt;td&gt;GPU supports coopmat but pp512 is faster with it turned off&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel Core Ultra 100 Series&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;185.51 ± 0.22&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;8.21 ± 0.07&lt;/td&gt;
          &lt;td&gt;1d72c84&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Ryzen 3000 Series&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;48.63 ± 0.10&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;8.49 ± 0.01&lt;/td&gt;
          &lt;td&gt;1fe0029&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;CIX CD8180&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2.80 ± 0.01&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;5.51 ± 0.00&lt;/td&gt;
          &lt;td&gt;4dca015&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel Core 1000 Series&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;25.58 ± 0.00&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4.25 ± 0.18&lt;/td&gt;
          &lt;td&gt;N/A&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel Core 8000 Series&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;25.43 ± 0.17&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3.35 ± 0.03&lt;/td&gt;
          &lt;td&gt;c4df49a&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel N150&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;28.84 ± 0.02&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2.93 ± 0.00&lt;/td&gt;
          &lt;td&gt;4f63cd7&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;llama-2-7b-q4_0-fa-enabled&#34;&gt;Llama 2 7B, Q4_0, FA enabled
&lt;/h3&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Chip&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;pp512 t/s&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;tg128 t/s&lt;/th&gt;
          &lt;th&gt;Commit&lt;/th&gt;
          &lt;th&gt;Comments&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 5090&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;11796.38 ± 601.36&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;273.68 ± 0.52&lt;/td&gt;
          &lt;td&gt;ca71fb9&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 7900 XTX&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3332.90 ± 11.47&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;195.30 ± 0.23&lt;/td&gt;
          &lt;td&gt;2f0c2db&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 5080&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;8054.59 ± 35.68&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;192.17 ± 0.21&lt;/td&gt;
          &lt;td&gt;f6b533d&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 4090&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;10830.41 ± 36.25&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;190.10 ± 0.31&lt;/td&gt;
          &lt;td&gt;4ae88d0&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia A100&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;7064.40 ± 1.63&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;170.56 ± 0.02&lt;/td&gt;
          &lt;td&gt;2257758&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 3090&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4732.33 ± 4.80&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;162.28 ± 0.21&lt;/td&gt;
          &lt;td&gt;4ae88d0&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 4080 Super&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;8007.37 ± 46.03&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;150.20 ± 0.26&lt;/td&gt;
          &lt;td&gt;81086cd&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 3080&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4913.83 ± 21.52&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;145.74 ± 0.16&lt;/td&gt;
          &lt;td&gt;7c7d6ce&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia Tesla V100&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1411.25 ± 2.12&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;142.13 ± 0.03&lt;/td&gt;
          &lt;td&gt;7d77f07&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX A5000&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4071.22 ± 13.13&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;140.43 ± 0.22&lt;/td&gt;
          &lt;td&gt;4ae88d0&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 9070 XT&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4911.74 ± 28.52&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;138.20 ± 0.18&lt;/td&gt;
          &lt;td&gt;e9fd8dc&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 5070 Ti&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;6764.53 ± 11.95&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;135.65 ± 0.02&lt;/td&gt;
          &lt;td&gt;d13d0f6&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon AI Pro R9700&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4333.83 ± 29.36&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;130.90 ± 0.12&lt;/td&gt;
          &lt;td&gt;3191462&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 7900 XT&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3043.93 ± 10.42&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;124.20 ± 0.09&lt;/td&gt;
          &lt;td&gt;71e74a3&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 7800 XT&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2094.64 ± 14.38&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;119.63 ± 0.13&lt;/td&gt;
          &lt;td&gt;4fdbc1e&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 9070&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3277.24 ± 18.17&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;119.55 ± 0.06&lt;/td&gt;
          &lt;td&gt;21c17b5&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 7900 GRE&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2402.07 ± 22.50&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;116.77 ± 0.08&lt;/td&gt;
          &lt;td&gt;4b2a477&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Apple M3 Ultra&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1115.55 ± 0.75&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;115.99 ± 0.12&lt;/td&gt;
          &lt;td&gt;2d451c8&lt;/td&gt;
          &lt;td&gt;MoltenVK&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel Arc Pro B70&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3314.53 ± 17.95&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;111.63 ± 0.05&lt;/td&gt;
          &lt;td&gt;b863507&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia Titan V&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;792.74 ± 4.30&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;109.21 ± 0.72&lt;/td&gt;
          &lt;td&gt;e56abd2&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon Pro VII&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;783.94 ± 0.77&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;108.45 ± 0.48&lt;/td&gt;
          &lt;td&gt;N/A&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 6900 XT&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1761.93 ± 4.75&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;106.15 ± 0.04&lt;/td&gt;
          &lt;td&gt;a972fae&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 2080 Ti&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1936.25 ± 32.08&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;100.99 ± 0.24&lt;/td&gt;
          &lt;td&gt;N/A&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 6800 XT&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1704.79 ± 0.71&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;100.50 ± 0.06&lt;/td&gt;
          &lt;td&gt;N/A&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon Pro W6800X Duo&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;795.28 ± 0.72&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;100.08 ± 0.02&lt;/td&gt;
          &lt;td&gt;N/A&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 5060 Ti&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3912.65 ± 5.86&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;97.01 ± 0.14&lt;/td&gt;
          &lt;td&gt;89f10ba&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 6800&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1749.46 ± 3.36&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;96.65 ± 0.48&lt;/td&gt;
          &lt;td&gt;4b385bf&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 4070&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4293.57 ± 27.70&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;91.49 ± 0.89&lt;/td&gt;
          &lt;td&gt;9a48399&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 6750 XT&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;997.05 ± 0.45&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;82.29 ± 0.06&lt;/td&gt;
          &lt;td&gt;228f34c&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 6700 XT&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1010.90 ± 12.89&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;81.86 ± 0.19&lt;/td&gt;
          &lt;td&gt;6d75883&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 3060&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2012.88 ± 10.12&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;80.59 ± 0.02&lt;/td&gt;
          &lt;td&gt;92c0b38&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon Pro V620&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1556.31 ± 2.82&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;79.24 ± 0.09&lt;/td&gt;
          &lt;td&gt;03d4698&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX A4000&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2482.74 ± 26.05&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;76.07 ± 0.08&lt;/td&gt;
          &lt;td&gt;f5245b5&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia Tesla T10&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1840.14 ± 1.22&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;76.05 ± 0.13&lt;/td&gt;
          &lt;td&gt;7f76692&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 5700 XT&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;538.31 ± 0.35&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;74.43 ± 0.03&lt;/td&gt;
          &lt;td&gt;4fdbc1e&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel Arc B580&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;419.49 ± 3.37&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;72.00 ± 0.24&lt;/td&gt;
          &lt;td&gt;7f76692&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Apple M4 Max&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;557.46 ± 26.87&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;71.79 ± 4.16&lt;/td&gt;
          &lt;td&gt;1ece0cb6&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon Pro W5700&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;446.98 ± 0.39&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;71.30 ± 0.24&lt;/td&gt;
          &lt;td&gt;23bc779&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel Arc Pro B60&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;274.76 ± 0.27&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;70.54 ± 0.03&lt;/td&gt;
          &lt;td&gt;516a4ca&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 9060 XT&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1915.41 ± 7.90&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;70.52 ± 0.16&lt;/td&gt;
          &lt;td&gt;ed52f36&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia Tesla P100&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;685.51 ± 0.88&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;66.48 ± 0.02&lt;/td&gt;
          &lt;td&gt;eec1e33&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 6650 XT&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1088.90 ± 0.40&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;64.53 ± 0.75&lt;/td&gt;
          &lt;td&gt;dbb852b&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia GTX 1080 Ti&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;529.96 ± 0.38&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;64.63 ± 0.10&lt;/td&gt;
          &lt;td&gt;360d653&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD BC-250&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;356.87 ± 1.24&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;63.14 ± 0.09&lt;/td&gt;
          &lt;td&gt;5886f4f&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 3070 Mobile&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1832.07 ± 57.14&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;62.92 ± 0.37&lt;/td&gt;
          &lt;td&gt;ceff6bb&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 4060 Mobile&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2358.03 ± 12.17&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;60.01 ± 0.08&lt;/td&gt;
          &lt;td&gt;a5c07dc&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia Tesla P40&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;484.37 ± 0.27&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;59.22 ± 0.15&lt;/td&gt;
          &lt;td&gt;N/A&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia GTX 1660 Ti Mobile&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;514.34 ± 0.88&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;57.30 ± 0.42&lt;/td&gt;
          &lt;td&gt;b43556e&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 7600 XT&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1024.38 ± 7.56&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;56.11 ± 0.02&lt;/td&gt;
          &lt;td&gt;01d8eaa&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD FirePro S9300 x2&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;243.33 ± 0.22&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;55.64 ± 0.06&lt;/td&gt;
          &lt;td&gt;eec1e33&lt;/td&gt;
          &lt;td&gt;Split across two GPUs&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia GB10&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3279.89 ± 26.78&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;53.64 ± 0.05&lt;/td&gt;
          &lt;td&gt;b9da444&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 6600&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;808.76 ± 0.15&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;53.24 ± 0.03&lt;/td&gt;
          &lt;td&gt;b1c70e2&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel Arc A770&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1119.68 + 30.25&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;53.07 + 0.09&lt;/td&gt;
          &lt;td&gt;a69d54f&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Ryzen AI Max+ 395&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1357.07 ± 10.94&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;53.00 ± 0.13&lt;/td&gt;
          &lt;td&gt;7f76692&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX Vega 56&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;428.54 ± 0.50&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;52.66 ± 0.03&lt;/td&gt;
          &lt;td&gt;92c0b38&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel Arc B570&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;288.51 ± 0.09&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;50.49 ± 0.05&lt;/td&gt;
          &lt;td&gt;7f76692&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia P104-100&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;325.30 ± 0.25&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;48.64 ± 0.04&lt;/td&gt;
          &lt;td&gt;eec1e33&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon Pro V340&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;360.23 ± 0.74&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;47.54 ± 0.06&lt;/td&gt;
          &lt;td&gt;9da3dcd&lt;/td&gt;
          &lt;td&gt;Split across two GPUs&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 6800M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;784.16 ± 2.76&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;49.06 ± 0.34&lt;/td&gt;
          &lt;td&gt;8e6f8bc&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX Vega 64&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;320.12 ± 0.22&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;47.06 ± 0.01&lt;/td&gt;
          &lt;td&gt;ec428b0&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX A2000&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1361.85 ± 3.26&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;45.69 ± 0.20&lt;/td&gt;
          &lt;td&gt;b1afcab&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel Arc A770M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;384.74 ± 0.78&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;45.68 ± 0.06&lt;/td&gt;
          &lt;td&gt;eeee367&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel Arc A750&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;303.37 ± 1.44&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;43.96 ± 0.03&lt;/td&gt;
          &lt;td&gt;c1b1876&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia GTX 1070 Ti&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;292.85 ± 0.23&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;43.42 ± 0.34&lt;/td&gt;
          &lt;td&gt;860a9e4&lt;/td&gt;
          &lt;td&gt;eGPU&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia GTX 1070&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;330.84 ± 1.02&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;43.33 ± 0.06&lt;/td&gt;
          &lt;td&gt;360d653&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia Tesla M40&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;93.35 ± 0.01&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;41.68 ± 0.01&lt;/td&gt;
          &lt;td&gt;b8372ee&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel Arc Pro B50&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;132.48 ± 0.04&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;41.02 ± 0.04&lt;/td&gt;
          &lt;td&gt;7b43f55&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 470&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;197.26 ± 0.27&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;37.28 ± 0.11&lt;/td&gt;
          &lt;td&gt;3769fe6&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 480&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;194.52 ± 0.61&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;37.23 ± 0.09&lt;/td&gt;
          &lt;td&gt;0bcb40b&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Apple M2 Ultra&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;198.83 ± 0.85&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;198.83 ± 0.85&lt;/td&gt;
          &lt;td&gt;dbb852b&lt;/td&gt;
          &lt;td&gt;Asahi Linux&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia GTX 980&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;180.97 ± 0.74&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;34.16 ± 0.10&lt;/td&gt;
          &lt;td&gt;860a9e4&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia P106-100&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;183.40 ± 0.34&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;30.79 ± 0.32&lt;/td&gt;
          &lt;td&gt;23bc779&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD FirePro W8100&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;140.52 ± 0.34&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;29.28 ± 0.14&lt;/td&gt;
          &lt;td&gt;4536363&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia Tesla P4&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;287.14 ± 0.29&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;28.37 ± 0.24&lt;/td&gt;
          &lt;td&gt;24d2ee0&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia Quadro P2000&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;181.71 ± 0.12&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;23.77 ± 0.02&lt;/td&gt;
          &lt;td&gt;63f8fe0&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel Core Ultra 200 Series&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;536.48 ± 1.27&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;23.05 ± 0.04&lt;/td&gt;
          &lt;td&gt;cea560f&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Ryzen AI 9 300 Series&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;532.59 ± 3.55&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;22.31 ± 0.06&lt;/td&gt;
          &lt;td&gt;N/A&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Ryzen 6000 Series&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;277.91 ± 0.37&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;21.15 ± 0.09&lt;/td&gt;
          &lt;td&gt;ee09828&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Apple M2 Pro&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;58.86 ± 0.02&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;20.97 ± 0.03&lt;/td&gt;
          &lt;td&gt;1fe0029&lt;/td&gt;
          &lt;td&gt;Asahi Linux&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Ryzen 8000 Series&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;297.39 ± 1.22&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;20.59 ± 0.38&lt;/td&gt;
          &lt;td&gt;a5c07dc&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Ryzen 7000 Series&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;312.85 ± 2.51&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;20.09 ± 0.35&lt;/td&gt;
          &lt;td&gt;835b2b9&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia GTX 1050 Ti&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;127.54 ± 1.03&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;20.08 ± 0.17&lt;/td&gt;
          &lt;td&gt;2f0c2db&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon Pro WX 4100&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;75.59 ± 0.19&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16.56 ± 0.04&lt;/td&gt;
          &lt;td&gt;860a9e4&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Apple M1&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;35.93 ± 0.00&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;12.85 ± 0.02&lt;/td&gt;
          &lt;td&gt;2370665&lt;/td&gt;
          &lt;td&gt;Asahi Linux&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Apple M2&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;46.81 ± 0.08&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;12.25 ± 2.30&lt;/td&gt;
          &lt;td&gt;8c0d6bb&lt;/td&gt;
          &lt;td&gt;Asahi Linux&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Ryzen 5000 Series&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;79.06 ± 0.01&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;10.75 ± 0.00&lt;/td&gt;
          &lt;td&gt;5d195f1&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel Core 1100 Series&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;174.77 ± 4.47&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;10.58 ± 0.03&lt;/td&gt;
          &lt;td&gt;abb9f3c&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia Tesla K40&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;64.37 ± 0.02&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;9.92 ± 0.06&lt;/td&gt;
          &lt;td&gt;eec1e33&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Ryzen 4000 Series&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;113.32 ± 0.01&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;9.87 ± 0.01&lt;/td&gt;
          &lt;td&gt;4b385bf&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia Tesla K80&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;88.26 ± 0.19&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;9.49 ± 0.01&lt;/td&gt;
          &lt;td&gt;5d46bab&lt;/td&gt;
          &lt;td&gt;Running on single GPU&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Ryzen 5 3000 Series&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;47.41 ± 0.14&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;8.47 ± 0.01&lt;/td&gt;
          &lt;td&gt;1fe0029&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel Core Ultra 100 Series&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;77.66 ± 2.75&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;7.75 ± 0.05&lt;/td&gt;
          &lt;td&gt;2e89f76&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel Core 8000 Series&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;25.55 ± 0.04&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3.35 ± 0.02&lt;/td&gt;
          &lt;td&gt;c4df49a&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel N150&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;25.59 ± 0.00&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2.91 ± 0.00&lt;/td&gt;
          &lt;td&gt;4f63cd7&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;這些表格該怎麼用&#34;&gt;這些表格該怎麼用
&lt;/h2&gt;&lt;p&gt;如果你只是想買卡，或者看手裡機器大概在哪個檔位，最實用的讀法其實是這三步：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;先看你關心的是 &lt;code&gt;tg128&lt;/code&gt; 還是 &lt;code&gt;pp512&lt;/code&gt;。&lt;br&gt;
日常對話、寫程式、聊天體感，優先看 &lt;code&gt;tg128&lt;/code&gt;；長上下文吞吐、批次處理、服務端壓 prompt，則更應該看 &lt;code&gt;pp512&lt;/code&gt;。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;再看你實際跑的後端。&lt;br&gt;
Nvidia 通常看 &lt;code&gt;CUDA&lt;/code&gt; 更貼近真實上限；AMD 機器更應該先對照 &lt;code&gt;ROCm&lt;/code&gt; 和 &lt;code&gt;Vulkan&lt;/code&gt;；跨平台相容場景則更適合參考 &lt;code&gt;Vulkan&lt;/code&gt;。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;最後再看 &lt;code&gt;FA&lt;/code&gt;。&lt;br&gt;
很多卡開啟 &lt;code&gt;FA&lt;/code&gt; 後 &lt;code&gt;pp512&lt;/code&gt; 會漲得更明顯，但 &lt;code&gt;tg128&lt;/code&gt; 不一定同步大漲，所以不能只看單個最高分。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;一句話總結&#34;&gt;一句話總結
&lt;/h2&gt;&lt;p&gt;同樣是 &lt;code&gt;llama.cpp&lt;/code&gt; 跑分，&lt;code&gt;pp512&lt;/code&gt;、&lt;code&gt;tg128&lt;/code&gt;、&lt;code&gt;Q4_0&lt;/code&gt;、&lt;code&gt;FA&lt;/code&gt;、&lt;code&gt;CUDA / ROCm / Vulkan&lt;/code&gt; 分別代表完全不同的維度。先把口徑分清，再看數字，榜單才有意義。&lt;/p&gt;
&lt;p&gt;如果你只想記一個最短結論，那就是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CUDA&lt;/code&gt; 目前整體最強&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ROCm&lt;/code&gt; 在高階 AMD 卡上已經很能打&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Vulkan&lt;/code&gt; 覆蓋最廣，老卡、核顯、Intel Arc、Apple Asahi 都能找到可比條目&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tg128&lt;/code&gt; 比 &lt;code&gt;pp512&lt;/code&gt; 更接近日常真實體感&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;原始來源&#34;&gt;原始來源
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;CUDA discussion #15013: &lt;a class=&#34;link&#34; href=&#34;https://github.com/ggml-org/llama.cpp/discussions/15013&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/ggml-org/llama.cpp/discussions/15013&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Apple Silicon discussion #4167: &lt;a class=&#34;link&#34; href=&#34;https://github.com/ggml-org/llama.cpp/discussions/4167&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/ggml-org/llama.cpp/discussions/4167&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;ROCm discussion #15021: &lt;a class=&#34;link&#34; href=&#34;https://github.com/ggml-org/llama.cpp/discussions/15021&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/ggml-org/llama.cpp/discussions/15021&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Vulkan discussion #10879: &lt;a class=&#34;link&#34; href=&#34;https://github.com/ggml-org/llama.cpp/discussions/10879&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/ggml-org/llama.cpp/discussions/10879&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>顯卡推理速度測試的常用指標具體含義：FA、pp512、tg128、Q4_0 都是什麼意思</title>
        <link>https://knightli.com/zh-tw/2026/04/23/how-to-read-llm-cuda-scoreboard-fa-pp512-tg128-q4-0/</link>
        <pubDate>Thu, 23 Apr 2026 00:15:00 +0800</pubDate>
        
        <guid>https://knightli.com/zh-tw/2026/04/23/how-to-read-llm-cuda-scoreboard-fa-pp512-tg128-q4-0/</guid>
        <description>&lt;p&gt;只要你開始看本地大模型或顯卡推理速度測試，很快就會遇到一堆縮寫：&lt;code&gt;FA&lt;/code&gt;、&lt;code&gt;pp512&lt;/code&gt;、&lt;code&gt;tg128&lt;/code&gt;、&lt;code&gt;Q4_0&lt;/code&gt;。它們看起來都像是效能指標，但如果沒有上下文，確實很容易看得一頭霧水。&lt;/p&gt;
&lt;p&gt;例如你可能會看到這樣一行：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;CUDA Scoreboard for Llama 2 7B, Q4_0 (no FA)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;再往下看，又會看到像這樣的欄位：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pp512 t/s
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;tg128 t/s
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;如果不把這些詞拆開理解，你很難真正看懂這類速度測試到底在測什麼，也很難知道兩張不同顯示卡的成績到底該怎麼比。&lt;/p&gt;
&lt;p&gt;這篇文章不打算討論「哪張卡更值得買」，而是專門把顯卡推理速度測試裡最常見的幾個指標拆開講清楚。&lt;/p&gt;
&lt;h2 id=&#34;先看整行標題到底在說什麼&#34;&gt;先看整行標題到底在說什麼
&lt;/h2&gt;&lt;p&gt;像 &lt;code&gt;CUDA Scoreboard for Llama 2 7B, Q4_0 (no FA)&lt;/code&gt; 這樣一行，其實已經把測試背景交代得差不多了。&lt;/p&gt;
&lt;p&gt;它至少包含四層資訊：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CUDA&lt;/code&gt;：說明跑分是在 NVIDIA GPU 的 CUDA 路徑上完成的&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Llama 2 7B&lt;/code&gt;：說明測試對象是 &lt;code&gt;Llama 2&lt;/code&gt; 的 &lt;code&gt;7B&lt;/code&gt; 參數版本&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Q4_0&lt;/code&gt;：說明模型用了 4-bit 量化格式&lt;/li&gt;
&lt;li&gt;&lt;code&gt;no FA&lt;/code&gt;：說明這次測試關閉了 &lt;code&gt;Flash Attention&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;也就是說，這種標題的完整意思通常是：&lt;/p&gt;
&lt;p&gt;「在 NVIDIA 顯示卡上，執行某個量化版本的大模型，並測量它在特定推理路徑下的速度表現。」&lt;/p&gt;
&lt;h2 id=&#34;fa-是什麼flash-attention&#34;&gt;FA 是什麼：Flash Attention
&lt;/h2&gt;&lt;p&gt;這裡的 &lt;code&gt;FA&lt;/code&gt;，指的是 &lt;code&gt;Flash Attention&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;它是大模型推理和訓練中非常關鍵的一類加速技術，主要目標是優化注意力機制的計算方式。因為在 Transformer 模型裡，注意力計算本來就是最耗時、最吃顯存頻寬的部分之一。&lt;/p&gt;
&lt;p&gt;傳統注意力實作的一個問題是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;需要頻繁讀寫顯存&lt;/li&gt;
&lt;li&gt;中間結果很多&lt;/li&gt;
&lt;li&gt;資料會在顯存和片上快取之間來回搬運&lt;/li&gt;
&lt;li&gt;上下文一長，開銷會非常明顯&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;Flash Attention&lt;/code&gt; 做的事情，可以簡單理解成：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;重新組織計算順序&lt;/li&gt;
&lt;li&gt;減少中間結果落到顯存的次數&lt;/li&gt;
&lt;li&gt;讓更多操作留在更快的快取裡完成&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;所以它的典型效果通常有三點：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;更快&lt;/li&gt;
&lt;li&gt;更省顯存&lt;/li&gt;
&lt;li&gt;在數學上和普通注意力等價，不是「犧牲精度換速度」&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;這也是為什麼今天很多推理框架、訓練框架都把它當成非常重要的優化項。&lt;/p&gt;
&lt;h2 id=&#34;no-fa-是什麼意思&#34;&gt;no FA 是什麼意思
&lt;/h2&gt;&lt;p&gt;既然 &lt;code&gt;FA&lt;/code&gt; 是 &lt;code&gt;Flash Attention&lt;/code&gt;，那麼 &lt;code&gt;no FA&lt;/code&gt; 就很好理解了：這次測試沒有啟用 &lt;code&gt;Flash Attention&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;也就是說，跑分用的是更傳統的注意力實作。&lt;/p&gt;
&lt;p&gt;之所以很多跑分表會特地把 &lt;code&gt;no FA&lt;/code&gt; 標出來，通常是為了下面幾件事：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;做對照組，方便看出開啟 &lt;code&gt;FA&lt;/code&gt; 後到底提升了多少&lt;/li&gt;
&lt;li&gt;相容某些不支援 &lt;code&gt;FA&lt;/code&gt; 的硬體或軟體環境&lt;/li&gt;
&lt;li&gt;避免不同測試項混在一起，導致資料不可比&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;所以你看到 &lt;code&gt;no FA&lt;/code&gt; 時，不要把它理解成「這張卡不行」，更準確的理解是：&lt;/p&gt;
&lt;p&gt;「這個成績是在沒有開啟 Flash Attention 優化的前提下測出來的。」&lt;/p&gt;
&lt;h2 id=&#34;q4_0-是什麼量化格式&#34;&gt;Q4_0 是什麼：量化格式
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Q4_0&lt;/code&gt; 指的是一種 4-bit 量化格式。&lt;/p&gt;
&lt;p&gt;大模型原始權重通常不是這種低精度格式，直接載入時體積會非常大。量化做的事情，本質上就是把原本更高精度的權重壓縮成更低位寬的表示方式，讓模型更容易在消費級顯示卡上運行。&lt;/p&gt;
&lt;p&gt;你可以先把它粗略理解成：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Q&lt;/code&gt;：Quantization，量化&lt;/li&gt;
&lt;li&gt;&lt;code&gt;4&lt;/code&gt;：4-bit&lt;/li&gt;
&lt;li&gt;&lt;code&gt;_0&lt;/code&gt;：某一種具體量化方案的標識&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;它的重要意義在於：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;減少模型體積&lt;/li&gt;
&lt;li&gt;降低顯存需求&lt;/li&gt;
&lt;li&gt;讓本來裝不下的模型變得能跑起來&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;所以 &lt;code&gt;Llama 2 7B, Q4_0&lt;/code&gt; 的意思，不是「一個普通的 7B 模型」，而是「一個已經經過 4-bit 量化壓縮的 7B 模型」。&lt;/p&gt;
&lt;h2 id=&#34;pp512-ts-是什麼意思&#34;&gt;pp512 t/s 是什麼意思
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;pp512&lt;/code&gt; 一般指的是：&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Prompt Processing 512 tokens&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;它衡量的是模型處理輸入提示詞時的速度，單位通常是 &lt;code&gt;t/s&lt;/code&gt;，也就是 &lt;code&gt;tokens per second&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;這裡的 &lt;code&gt;512&lt;/code&gt;，表示測試時輸入的提示詞長度是 &lt;code&gt;512 token&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;這個指標測的不是「吐字速度」，而是模型在開始回答之前，對輸入內容做編碼和計算的速度。你可以把它理解成模型在「先把你說的話讀完」的階段有多快。&lt;/p&gt;
&lt;p&gt;這個階段通常有一個很重要的特點：並行度比較高。&lt;/p&gt;
&lt;p&gt;因為輸入序列可以成批處理，所以 GPU 在這個階段往往能把算力壓得很滿。也正因如此，&lt;code&gt;pp512&lt;/code&gt; 的數值經常會非常高，看起來甚至高得有點誇張。&lt;/p&gt;
&lt;p&gt;所以如果你看到：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pp512 ≈ 14000 t/s
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;不要驚訝，這測的是「輸入處理吞吐量」，不是模型一邊一邊吐字的速度。&lt;/p&gt;
&lt;h2 id=&#34;tg128-ts-是什麼意思&#34;&gt;tg128 t/s 是什麼意思
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;tg128&lt;/code&gt; 一般指的是：&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Text Generation 128 tokens&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;它測的是模型連續生成 &lt;code&gt;128 token&lt;/code&gt; 時的平均生成速度，單位同樣是 &lt;code&gt;t/s&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;這個指標更接近我們平時對「模型回答快不快」的直覺感受，因為它真的在測輸出階段。&lt;/p&gt;
&lt;p&gt;但它和 &lt;code&gt;pp512&lt;/code&gt; 最大的不同在於：文本生成通常是自回歸的。&lt;/p&gt;
&lt;p&gt;簡單說就是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;要先算出第一個 token&lt;/li&gt;
&lt;li&gt;才能繼續算第二個 token&lt;/li&gt;
&lt;li&gt;再繼續算第三個 token&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;所以這個階段沒法像輸入處理那樣大規模並行，速度天然會慢很多。&lt;/p&gt;
&lt;p&gt;這也是為什麼你經常會看到：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;pp512&lt;/code&gt; 是上萬 &lt;code&gt;t/s&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tg128&lt;/code&gt; 卻只有幾百 &lt;code&gt;t/s&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;這不是跑分出錯，而是它們本來就在測兩種完全不同的工作負載。&lt;/p&gt;
&lt;h2 id=&#34;為什麼-pp512-和-tg128-會差這麼多&#34;&gt;為什麼 pp512 和 tg128 會差這麼多
&lt;/h2&gt;&lt;p&gt;這是很多人第一次看 scoreboard 時最困惑的一點。&lt;/p&gt;
&lt;p&gt;原因可以概括成一句話：&lt;/p&gt;
&lt;p&gt;&lt;code&gt;pp512&lt;/code&gt; 更像在測並行吞吐，&lt;code&gt;tg128&lt;/code&gt; 更像在測逐 token 生成能力。`&lt;/p&gt;
&lt;p&gt;再展開一點說：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;輸入階段更容易並行&lt;/li&gt;
&lt;li&gt;輸出階段更依賴逐步遞推&lt;/li&gt;
&lt;li&gt;生成階段通常更吃顯存頻寬和快取效率&lt;/li&gt;
&lt;li&gt;所以生成速度遠低於輸入處理速度是正常現象&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;也正因為這樣，很多時候兩張卡的表現會出現一種很有意思的情況：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;在 &lt;code&gt;pp512&lt;/code&gt; 上，一張卡更強&lt;/li&gt;
&lt;li&gt;在 &lt;code&gt;tg128&lt;/code&gt; 上，另一張卡反而略快&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;這並不矛盾。因為一個更偏算力峰值，一個更偏實際生成路徑下的頻寬和延遲表現。&lt;/p&gt;
&lt;h2 id=&#34;ts-到底怎麼理解&#34;&gt;t/s 到底怎麼理解
&lt;/h2&gt;&lt;p&gt;這裡的 &lt;code&gt;t/s&lt;/code&gt;，就是 &lt;code&gt;tokens per second&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;它表示模型每秒能處理或生成多少個 token。&lt;/p&gt;
&lt;p&gt;但需要注意，&lt;code&gt;token&lt;/code&gt; 不是「字」，也不是「單詞」，它是模型分詞器切出來的單位。不同模型、不同語言環境下，一個 token 對應的文本長度可能差別很大。&lt;/p&gt;
&lt;p&gt;所以在實際閱讀跑分時，&lt;code&gt;t/s&lt;/code&gt; 更適合用來做：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;同模型下不同顯示卡對比&lt;/li&gt;
&lt;li&gt;同環境下不同參數設定對比&lt;/li&gt;
&lt;li&gt;同一框架裡開啟或關閉某個優化項前後的對比&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;而不太適合直接拿來跨模型、跨框架、跨分詞器硬比「誰絕對更快」。&lt;/p&gt;
&lt;h2 id=&#34;看-scoreboard-時最該先抓住哪幾個點&#34;&gt;看 scoreboard 時，最該先抓住哪幾個點
&lt;/h2&gt;&lt;p&gt;如果你不想每次都被一堆縮寫淹沒，可以先抓這幾個核心問題：&lt;/p&gt;
&lt;h3 id=&#34;1-測試模型是什麼&#34;&gt;1. 測試模型是什麼
&lt;/h3&gt;&lt;p&gt;比如是不是 &lt;code&gt;Llama 2 7B&lt;/code&gt;，是不是同一個量化版本，例如 &lt;code&gt;Q4_0&lt;/code&gt;。模型不同、量化不同，成績直接橫比意義不大。&lt;/p&gt;
&lt;h3 id=&#34;2-有沒有開啟關鍵優化&#34;&gt;2. 有沒有開啟關鍵優化
&lt;/h3&gt;&lt;p&gt;最常見的就是 &lt;code&gt;FA&lt;/code&gt;。如果一個測試開了 &lt;code&gt;Flash Attention&lt;/code&gt;，另一個沒開，那兩邊成績不能簡單直接對讀。&lt;/p&gt;
&lt;h3 id=&#34;3-看的是輸入速度還是輸出速度&#34;&gt;3. 看的是輸入速度還是輸出速度
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;pp512&lt;/code&gt; 和 &lt;code&gt;tg128&lt;/code&gt; 分別在測不同階段。一個更像「讀題速度」，一個更像「回答速度」。&lt;/p&gt;
&lt;h3 id=&#34;4-關注的是吞吐還是體感&#34;&gt;4. 關注的是吞吐還是體感
&lt;/h3&gt;&lt;p&gt;如果你更在意長提示詞載入速度，&lt;code&gt;pp512&lt;/code&gt; 更有參考價值；如果你更在意模型回答時的流暢程度，&lt;code&gt;tg128&lt;/code&gt; 往往更貼近真實體感。&lt;/p&gt;
&lt;h2 id=&#34;一個更實用的理解方式&#34;&gt;一個更實用的理解方式
&lt;/h2&gt;&lt;p&gt;如果要把這些指標壓縮成一句最容易記住的話，可以這樣理解：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Q4_0&lt;/code&gt;：模型被壓縮成了 4-bit 量化版本&lt;/li&gt;
&lt;li&gt;&lt;code&gt;FA&lt;/code&gt;：是不是啟用了 Flash Attention 加速&lt;/li&gt;
&lt;li&gt;&lt;code&gt;pp512&lt;/code&gt;：處理 512 token 輸入時有多快&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tg128&lt;/code&gt;：生成 128 token 輸出時有多快&lt;/li&gt;
&lt;li&gt;&lt;code&gt;t/s&lt;/code&gt;：速度單位，每秒多少 token&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;只要先把這五件事分清楚，再看類似的 CUDA Scoreboard 時，就更容易判斷「這個分數到底是在測什麼」。&lt;/p&gt;
&lt;h2 id=&#34;結語&#34;&gt;結語
&lt;/h2&gt;&lt;p&gt;很多 GPU 跑分表看起來複雜，不是因為指標本身特別神祕，而是因為它把模型、量化、優化項和不同階段的吞吐都壓縮進了很短的幾行縮寫裡。&lt;/p&gt;
&lt;p&gt;一旦把 &lt;code&gt;FA&lt;/code&gt;、&lt;code&gt;Q4_0&lt;/code&gt;、&lt;code&gt;pp512&lt;/code&gt;、&lt;code&gt;tg128&lt;/code&gt; 這些詞拆開，你會發現這類 scoreboard 其實並不難讀。&lt;/p&gt;
&lt;p&gt;真正重要的，不是只記住某張卡跑了多少分，而是知道：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;這個分數是在什麼模型下測的&lt;/li&gt;
&lt;li&gt;有沒有開關鍵優化&lt;/li&gt;
&lt;li&gt;它測的是輸入，還是輸出&lt;/li&gt;
&lt;li&gt;它更反映算力，還是更接近實際生成體驗&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;這樣你以後再看類似跑分表時，就更容易判斷這些結果分別對應什麼測試條件和性能含義。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>大模型常見張量類型入門：FP32、FP16、BF16、TF32 與 FP8</title>
        <link>https://knightli.com/zh-tw/2026/04/22/common-tensor-formats-fp32-fp16-bf16-tf32-fp8/</link>
        <pubDate>Wed, 22 Apr 2026 22:40:00 +0800</pubDate>
        
        <guid>https://knightli.com/zh-tw/2026/04/22/common-tensor-formats-fp32-fp16-bf16-tf32-fp8/</guid>
        <description>&lt;p&gt;只要你開始接觸大模型訓練、推理或部署，很快就會遇到一組高頻縮寫：&lt;code&gt;FP32&lt;/code&gt;、&lt;code&gt;FP16&lt;/code&gt;、&lt;code&gt;BF16&lt;/code&gt;、&lt;code&gt;TF32&lt;/code&gt;、&lt;code&gt;FP8&lt;/code&gt;。它們看起來像是模型頁面上的幾個附加標籤，但實際影響遠不只是「寫法不同」。&lt;/p&gt;
&lt;p&gt;這些類型決定了數字在顯存裡怎麼存、在計算中怎麼表示，也直接影響模型訓練是否穩定、推理速度如何，以及一張顯示卡到底能裝下多大的模型。&lt;/p&gt;
&lt;p&gt;所以如果你想真正理解大模型裡的精度取捨，最值得先補的一課，不是某個具體模型的跑分，而是先把這些常見張量類型各自是什麼、為什麼會這樣設計搞清楚。&lt;/p&gt;
&lt;h2 id=&#34;張量類型到底在決定什麼&#34;&gt;張量類型到底在決定什麼
&lt;/h2&gt;&lt;p&gt;大模型本質上是海量參數參與的矩陣運算，而張量類型就是這些數字在顯存裡如何存、在計算中如何表示。&lt;/p&gt;
&lt;p&gt;它的核心取捨通常圍繞三個維度展開：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;精度&lt;/li&gt;
&lt;li&gt;顯存占用&lt;/li&gt;
&lt;li&gt;計算速度&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;這和圖片格式其實很像。無損格式保留細節更多，但體積大、載入慢；壓縮格式會丟掉一部分人眼不敏感的資訊，換來更小的體積與更快的處理速度。大模型之所以能接受這種取捨，是因為在極大量參數裡，很多微小數值變化並不會明顯影響最終輸出。&lt;/p&gt;
&lt;p&gt;也正因如此，模型世界裡才會出現一整套不同精度的張量格式。&lt;/p&gt;
&lt;h2 id=&#34;一個數字是怎麼被表示的&#34;&gt;一個數字是怎麼被表示的
&lt;/h2&gt;&lt;p&gt;理解這些格式之前，可以先記住一個非常基礎的結構。一個浮點數通常由三部分組成：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;符號位：決定正負&lt;/li&gt;
&lt;li&gt;指數位：決定數值範圍&lt;/li&gt;
&lt;li&gt;尾數位：決定數值精細程度&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;在大模型裡，尾數精度當然重要，但很多時候模型更怕的是數值範圍不夠，也就是指數位太小，導致溢出或訓練不穩定。很多張量格式的設計，本質上就是在「範圍」與「細節」之間重新分配有限的 bit 數。&lt;/p&gt;
&lt;p&gt;下面這張圖可以先幫你建立一個整體印象：&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/04/22/common-tensor-formats-fp32-fp16-bf16-tf32-fp8/tensor-format-overview.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;FP32、FP16、BF16、TF32 與 FP8 的位寬結構總覽&#34;
	
	
&gt;&lt;/p&gt;
&lt;h2 id=&#34;fp32最穩但最貴&#34;&gt;FP32：最穩，但最貴
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;FP32&lt;/code&gt; 是最傳統的單精度浮點格式，總共 32 bit，也就是 4 個位元組。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/04/22/common-tensor-formats-fp32-fp16-bf16-tf32-fp8/fp32-layout.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;FP32 位寬結構示意圖&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;它的優點很直接：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;數值範圍大&lt;/li&gt;
&lt;li&gt;精度高&lt;/li&gt;
&lt;li&gt;訓練最穩&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;但問題也同樣明顯：太占顯存。&lt;/p&gt;
&lt;p&gt;一個非常粗略的估算方式是：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;顯存占用 ≈ 參數量 × 每個參數的位元組數
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;如果一個 27B 模型完全用 &lt;code&gt;FP32&lt;/code&gt; 存權重，那麼光權重本身就大約需要：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;27B × 4 bytes ≈ 108GB
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;這還沒算激活值、KV Cache、優化器狀態與其他執行期開銷。也就是說，&lt;code&gt;FP32&lt;/code&gt; 在今天的大模型推理與訓練裡，已經不是「預設選擇」，而更像是「最穩的基線格式」。&lt;/p&gt;
&lt;h2 id=&#34;fp16體積減半但穩定性一般&#34;&gt;FP16：體積減半，但穩定性一般
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;FP16&lt;/code&gt; 把每個參數壓縮到 2 個位元組，顯存占用相較 &lt;code&gt;FP32&lt;/code&gt; 直接減半。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/04/22/common-tensor-formats-fp32-fp16-bf16-tf32-fp8/fp16-layout.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;FP16 位寬結構示意圖&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;對同一個 27B 模型來說，如果只看權重體積：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;27B × 2 bytes ≈ 54GB
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;這就已經能解釋為什麼很多部署說明裡，27B 模型的顯存需求會落在 50GB 左右。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;FP16&lt;/code&gt; 的優勢很明顯：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;顯存壓力大幅下降&lt;/li&gt;
&lt;li&gt;吞吐更高&lt;/li&gt;
&lt;li&gt;早期混合精度訓練大量使用&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;但它的問題在於指數位偏小，動態範圍不夠大。對大模型訓練來說，這會讓溢出更容易發生，需要額外依賴 loss scaling 一類技巧來補救，工程上比較麻煩。&lt;/p&gt;
&lt;p&gt;所以現在 &lt;code&gt;FP16&lt;/code&gt; 仍然常見，但在很多場景裡，它已經不再是最舒服的選擇。&lt;/p&gt;
&lt;h2 id=&#34;bf16大模型時代更實用的半精度&#34;&gt;BF16：大模型時代更實用的半精度
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;BF16&lt;/code&gt; 同樣只占 2 個位元組，但和 &lt;code&gt;FP16&lt;/code&gt; 的設計重點不一樣。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/04/22/common-tensor-formats-fp32-fp16-bf16-tf32-fp8/bf16-layout.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;BF16 位寬結構示意圖&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;它保留了更大的指數範圍，讓它在動態範圍上更接近 &lt;code&gt;FP32&lt;/code&gt;，只是犧牲了一部分尾數精度。這種取捨對大模型尤其友好，因為很多時候模型對「範圍」更敏感，對尾數少幾位反而沒那麼敏感。&lt;/p&gt;
&lt;p&gt;這也是為什麼現在很多訓練框架、很多大模型論文與大量實際部署方案，都更偏向 &lt;code&gt;BF16&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;你可以把它理解成：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;顯存成本接近 &lt;code&gt;FP16&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;穩定性體驗更接近 &lt;code&gt;FP32&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果一套 27B 部署方案寫的是 50GB 左右顯存，而另一套經過進一步優化後接近 30GB，前者往往還停留在 &lt;code&gt;FP16/BF16&lt;/code&gt; 這一層，後者則通常已經繼續往更低精度或量化方向走了。&lt;/p&gt;
&lt;h2 id=&#34;tf32不是省顯存而是加速-fp32-工作流&#34;&gt;TF32：不是省顯存，而是加速 FP32 工作流
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;TF32&lt;/code&gt; 很容易被誤會成「又一種更省的格式」，但它的定位其實不太一樣。&lt;/p&gt;
&lt;p&gt;從常見理解上看，它可以近似視為一種保留較大指數範圍、但縮短尾數精度的計算格式。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/04/22/common-tensor-formats-fp32-fp16-bf16-tf32-fp8/tf32-layout.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;TF32 計算格式示意圖&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;不過要注意，&lt;code&gt;TF32&lt;/code&gt; 更像是一條 Tensor Core 計算路徑裡的內部計算格式，而不是像 &lt;code&gt;FP16/BF16&lt;/code&gt; 那樣主要拿來做權重存儲。&lt;/p&gt;
&lt;p&gt;它主要是 NVIDIA 在較新的 GPU 上提供的一種計算模式，目標不是減少顯存占用，而是讓原本基於 &lt;code&gt;FP32&lt;/code&gt; 的訓練流程，在盡量不大改程式碼的前提下跑得更快。&lt;/p&gt;
&lt;p&gt;它的特點可以概括成一句話：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;對外看起來還是 &lt;code&gt;FP32&lt;/code&gt; 工作流&lt;/li&gt;
&lt;li&gt;底層在矩陣乘法時做了更快的近似計算&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;所以 &lt;code&gt;TF32&lt;/code&gt; 主要解決的是「&lt;code&gt;FP32&lt;/code&gt; 太慢」的問題，而不是「&lt;code&gt;FP32&lt;/code&gt; 太占顯存」的問題。如果你關心的是為什麼同一個模型部署時顯存需求不一樣，&lt;code&gt;TF32&lt;/code&gt; 不是最主要的答案。&lt;/p&gt;
&lt;h2 id=&#34;fp8進一步壓縮但更考驗工程能力&#34;&gt;FP8：進一步壓縮，但更考驗工程能力
&lt;/h2&gt;&lt;p&gt;再往下走就是 &lt;code&gt;FP8&lt;/code&gt;。它把單個數值繼續壓縮到更少 bit 數，進一步降低顯存頻寬與存儲成本。&lt;/p&gt;
&lt;p&gt;它常見的不是單一一種格式，而是兩類變體：&lt;code&gt;E4M3&lt;/code&gt; 和 &lt;code&gt;E5M2&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/04/22/common-tensor-formats-fp32-fp16-bf16-tf32-fp8/fp8-layout.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;FP8 兩種常見變體示意圖&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;但 &lt;code&gt;FP8&lt;/code&gt; 的代價也很明顯：位數太少以後，你很難同時兼顧範圍和精度，因此實際工程裡通常會針對不同階段採用不同變體，分別照顧前向、反向與梯度的穩定性。&lt;/p&gt;
&lt;p&gt;這類格式代表的是一種更激進的思路：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;願意犧牲更多精度&lt;/li&gt;
&lt;li&gt;換取更低的存儲與更高的吞吐&lt;/li&gt;
&lt;li&gt;需要更成熟的硬體與訓練框架配合&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;它很有前景，但對一般使用者來說，日常最常碰到的核心分界點，通常還是 &lt;code&gt;FP32&lt;/code&gt;、&lt;code&gt;FP16&lt;/code&gt; 和 &lt;code&gt;BF16&lt;/code&gt;。&lt;/p&gt;
&lt;h2 id=&#34;為什麼理解這些類型很重要&#34;&gt;為什麼理解這些類型很重要
&lt;/h2&gt;&lt;p&gt;很多人第一次看到這些縮寫，會把它們理解成「模型下載頁上的一些實作細節」。但實際上，它們會直接改變你對模型訓練與部署的理解方式。&lt;/p&gt;
&lt;p&gt;例如同樣一張顯示卡：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;為什麼有些模型訓練必須強調數值穩定性&lt;/li&gt;
&lt;li&gt;為什麼有些推理方案會優先談量化與低精度&lt;/li&gt;
&lt;li&gt;為什麼看起來參數量相近的模型，部署門檻卻差很多&lt;/li&gt;
&lt;li&gt;為什麼有些格式適合存權重，有些格式更適合做計算路徑&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;這些問題往下拆，最後幾乎都會回到同一個核心：你到底怎麼在「精度、範圍、顯存和速度」之間做取捨。&lt;/p&gt;
&lt;p&gt;也正因如此，理解 &lt;code&gt;FP32&lt;/code&gt;、&lt;code&gt;FP16&lt;/code&gt;、&lt;code&gt;BF16&lt;/code&gt;、&lt;code&gt;TF32&lt;/code&gt; 和 &lt;code&gt;FP8&lt;/code&gt;，不只是為了看懂術語表，而是為了在面對訓練配置、推理引擎與部署門檻時，知道這些數字背後到底在交換什麼。&lt;/p&gt;
&lt;h2 id=&#34;一個實用的理解框架&#34;&gt;一個實用的理解框架
&lt;/h2&gt;&lt;p&gt;如果你不想一開始就記一堆格式細節，可以先用下面這個順序理解：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;FP32&lt;/code&gt;：最穩、最貴&lt;/li&gt;
&lt;li&gt;&lt;code&gt;FP16&lt;/code&gt;：更省顯存，但範圍偏小&lt;/li&gt;
&lt;li&gt;&lt;code&gt;BF16&lt;/code&gt;：顯存接近 &lt;code&gt;FP16&lt;/code&gt;，穩定性更適合大模型&lt;/li&gt;
&lt;li&gt;&lt;code&gt;TF32&lt;/code&gt;：主要解決 &lt;code&gt;FP32&lt;/code&gt; 太慢，不主要解決顯存&lt;/li&gt;
&lt;li&gt;&lt;code&gt;FP8&lt;/code&gt;：更激進的壓縮與加速路線&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/04/22/common-tensor-formats-fp32-fp16-bf16-tf32-fp8/tensor-format-summary.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;常見張量類型總結圖&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;當你以後再看到模型下載頁裡寫著 &lt;code&gt;fp16&lt;/code&gt;、&lt;code&gt;bf16&lt;/code&gt;、&lt;code&gt;fp8&lt;/code&gt;，或者看到不同部署教學給出完全不一樣的顯存門檻時，就不會再覺得那只是「寫法不同」。它們背後其實對應的是完全不同的精度預算與工程取捨。&lt;/p&gt;
&lt;h2 id=&#34;結語&#34;&gt;結語
&lt;/h2&gt;&lt;p&gt;大模型裡的張量類型，表面上是在討論 bit 數，實際上討論的是一整套工程取捨。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;FP32&lt;/code&gt;、&lt;code&gt;FP16&lt;/code&gt;、&lt;code&gt;BF16&lt;/code&gt;、&lt;code&gt;TF32&lt;/code&gt; 和 &lt;code&gt;FP8&lt;/code&gt; 沒有絕對的好壞，它們只是分別站在不同的位置上，幫你在穩定性、範圍、精度、顯存和速度之間做平衡。&lt;/p&gt;
&lt;p&gt;如果把這一層看懂，後面無論你是在讀訓練論文、調推理參數，還是比較不同部署方案，都會更容易抓住重點。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>16G 顯卡也能跑 35B 模型：LM Studio 下 MoE 模型的顯存壓縮思路</title>
        <link>https://knightli.com/zh-tw/2026/04/22/16gb-gpu-run-35b-moe-models-in-lm-studio/</link>
        <pubDate>Wed, 22 Apr 2026 21:47:34 +0800</pubDate>
        
        <guid>https://knightli.com/zh-tw/2026/04/22/16gb-gpu-run-35b-moe-models-in-lm-studio/</guid>
        <description>&lt;p&gt;很多人對 16G 顯存的印象是：本地部署大模型時，大概也就跑到 12B 到 14B，量化之後再往上就會變得很吃力。這個判斷不算離譜，但也不是 16G 顯卡真正的上限。&lt;/p&gt;
&lt;p&gt;如果模型選型和參數設定都合適，16G 顯卡其實不一定只能停留在「小參數量模型」這一檔。圍繞這件事，一套比較有代表性的思路是：在 &lt;code&gt;LM Studio&lt;/code&gt; 裡利用 &lt;code&gt;MoE&lt;/code&gt; 模型和合理的卸載策略，把 35B 級模型跑到比較可用的速度。&lt;/p&gt;
&lt;h2 id=&#34;01-為什麼-16g-顯卡不一定只能跑-12b-到-14b&#34;&gt;01 為什麼 16G 顯卡不一定只能跑 12B 到 14B
&lt;/h2&gt;&lt;p&gt;這裡的核心觀點很直接：顯存大小固然重要，但模型架構同樣重要。&lt;/p&gt;
&lt;p&gt;如果你拿一個標準稠密模型硬塞進 16G 顯卡，確實很快就會遇到瓶頸。因為這類模型在推理時通常要參與全部參數計算，顯存壓力和帶寬壓力都會直接上來。&lt;/p&gt;
&lt;p&gt;但 &lt;code&gt;MoE&lt;/code&gt; 模型不一樣。它的總參數量可以很大，可是在單次推理時，只會啟動其中一部分專家參數。以 35B 級模型為例，雖然總參數規模不小，但單次推理實際參與計算的參數量要小得多，所以它對顯存的實際要求沒有想像中那麼誇張。&lt;/p&gt;
&lt;p&gt;也正因為這樣，16G 顯卡在面對這類模型時，並不是完全沒有操作空間。&lt;/p&gt;
&lt;h2 id=&#34;02-實測重點35b-moe-模型可以跑得很快&#34;&gt;02 實測重點：35B MoE 模型可以跑得很快
&lt;/h2&gt;&lt;p&gt;一個重點案例，是 &lt;code&gt;Qwen 3.5 35B A3B&lt;/code&gt; 一類的 &lt;code&gt;MoE&lt;/code&gt; 模型量化版本。在 16G 顯卡配合 &lt;code&gt;LM Studio&lt;/code&gt; 做參數調整後，&lt;code&gt;Q6&lt;/code&gt; 量化大約能跑到 30 多 &lt;code&gt;tokens/s&lt;/code&gt;，此前 &lt;code&gt;Q4&lt;/code&gt; 量化甚至能測到更高的速度。&lt;/p&gt;
&lt;p&gt;這個結果之所以有參考價值，不只是因為「能跑」，而是因為速度已經進入了「明顯可用」的區間。&lt;/p&gt;
&lt;p&gt;作為對比，同類大參數量但不是 &lt;code&gt;MoE&lt;/code&gt; 的模型，在 16G 顯卡上如果直接硬跑，往往會出現爆顯存、速度明顯掉下來的情況。換句話說，決定結果的不是單純看參數總量，而是看模型在推理時到底怎麼用這些參數。&lt;/p&gt;
&lt;h2 id=&#34;03-在-lm-studio-裡重點不只一個參數&#34;&gt;03 在 LM Studio 裡，重點不只一個參數
&lt;/h2&gt;&lt;p&gt;想在 16G 顯卡上把這類模型跑順，關鍵不是碰運氣，而是調對兩個參數：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;GPU Offload&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;強制把部分專家層載入到 CPU 記憶體的參數&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;第一項比較好理解，&lt;code&gt;GPU Offload&lt;/code&gt; 基本就是能拉多高就拉多高，讓模型盡量優先使用顯卡計算。&lt;/p&gt;
&lt;p&gt;第二項才是這裡的重點。它的作用不是傳統意義上那種「顯存爆了之後再借系統記憶體」，而是主動把一部分專家層放到 CPU 記憶體裡，提前降低顯存占用。因為 &lt;code&gt;MoE&lt;/code&gt; 模型本來就不是每次都要把所有專家都啟動，所以把一部分專家放到記憶體裡，對整體推理速度的影響沒有很多人想像中那麼誇張。&lt;/p&gt;
&lt;p&gt;比較穩妥的做法，是先在一個區間裡嘗試，再根據自己的機器慢慢調：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;可以先把相關參數設到 &lt;code&gt;20&lt;/code&gt; 到 &lt;code&gt;35&lt;/code&gt; 之間&lt;/li&gt;
&lt;li&gt;然後結合顯存占用和記憶體壓力，逐步微調&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;本質上，這套方法就是用系統記憶體去換顯存空間。&lt;/p&gt;
&lt;h2 id=&#34;04-128k-上下文下也能跑縮小上下文還能繼續壓顯存&#34;&gt;04 128K 上下文下也能跑，縮小上下文還能繼續壓顯存
&lt;/h2&gt;&lt;p&gt;還有一個比較有意思的點：測試時把上下文長度拉到了 &lt;code&gt;128K&lt;/code&gt;，在這種偏激進的設定下，35B 級 &lt;code&gt;MoE&lt;/code&gt; 模型依然能跑出比較高的速度。&lt;/p&gt;
&lt;p&gt;這說明一個問題，16G 顯卡的瓶頸沒有想像中那麼死板。尤其在 &lt;code&gt;LM Studio&lt;/code&gt; 這種本地推理工具裡，很多時候不是「能不能運行」的二選一，而是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;你願不願意拿更多記憶體換顯存&lt;/li&gt;
&lt;li&gt;你願不願意縮短上下文長度&lt;/li&gt;
&lt;li&gt;你願不願意接受不同量化版本之間的能力差異&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果把上下文從 &lt;code&gt;128K&lt;/code&gt; 進一步縮到 &lt;code&gt;64K&lt;/code&gt; 或 &lt;code&gt;32K&lt;/code&gt;，顯存壓力還可以繼續下降。也就是說，某些 35B 級 &lt;code&gt;MoE&lt;/code&gt; 模型甚至可能在更小顯存的顯卡上勉強跑起來，只是速度和記憶體壓力要重新權衡。&lt;/p&gt;
&lt;h2 id=&#34;05-這種方法的代價對系統記憶體和虛擬記憶體要求更高&#34;&gt;05 這種方法的代價：對系統記憶體和虛擬記憶體要求更高
&lt;/h2&gt;&lt;p&gt;這類方案並不是白送性能。&lt;/p&gt;
&lt;p&gt;需要注意的是，當顯存壓力被進一步壓縮時，系統記憶體占用會明顯上升，虛擬記憶體的壓力也會變大。換句話說，你省下來的不是成本，只是把壓力從顯卡挪到了記憶體和磁碟交換空間上。&lt;/p&gt;
&lt;p&gt;所以如果你也想照著試，最好先確認幾件事：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;你的系統記憶體是否足夠&lt;/li&gt;
&lt;li&gt;虛擬記憶體是否留得夠大&lt;/li&gt;
&lt;li&gt;機器背景是否還有很多佔資源的軟體在運行&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果這些條件跟不上，最後看到的可能不是「35B 也能飛快跑」，而是整台機器都被拖慢。&lt;/p&gt;
&lt;h2 id=&#34;06-量化版本也不是越激進越好&#34;&gt;06 量化版本也不是越激進越好
&lt;/h2&gt;&lt;p&gt;這裡還有一個實際取捨：雖然更低位數的量化通常能進一步節省顯存，但不一定就是最合適的方案。&lt;/p&gt;
&lt;p&gt;實際經驗是，有些模型在 &lt;code&gt;Q4&lt;/code&gt; 下速度確實更高，但對原始能力的影響也更明顯；相對來說，&lt;code&gt;Q6&lt;/code&gt; 在速度和能力保留之間更平衡。所以最終不一定要無腦追求最小體積，而是要看你更在意什麼：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;如果你主要追求速度和塞進顯存&lt;/li&gt;
&lt;li&gt;或者你更在意模型原有能力的保留&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;這兩種取向，對應的量化選擇可能並不一樣。&lt;/p&gt;
&lt;h2 id=&#34;07-哪些模型思路值得試&#34;&gt;07 哪些模型思路值得試
&lt;/h2&gt;&lt;p&gt;從這個思路來看，最值得嘗試的並不是「盲目追大參數量」，而是優先找適合這種玩法的模型：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;MoE&lt;/code&gt; 架構模型&lt;/li&gt;
&lt;li&gt;在 &lt;code&gt;LM Studio&lt;/code&gt; 裡支援較好、量化版本較全的模型&lt;/li&gt;
&lt;li&gt;對長上下文或指令跟隨有明確優勢的模型&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;除了主講的 35B &lt;code&gt;MoE&lt;/code&gt; 模型，這類方案也適合延伸到一些其他方向，比如偏長上下文記憶、指令遵循表現更好的實驗性模型，以及一些速度表現不錯的輕量量化版本。&lt;/p&gt;
&lt;p&gt;這類推薦背後的邏輯其實很一致：先找架構上適合「記憶體換顯存」的模型，再談參數調優，而不是先看參數量再決定能不能跑。&lt;/p&gt;
&lt;h2 id=&#34;08-簡單總結&#34;&gt;08 簡單總結
&lt;/h2&gt;&lt;p&gt;如果你手裡正好是一張 16G 顯卡，覺得本地大模型最多只能玩 12B 到 14B，這種想法可以稍微更新一下。&lt;/p&gt;
&lt;p&gt;更準確的說法應該是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;16G 顯卡跑大模型並不是完全沒戲&lt;/li&gt;
&lt;li&gt;稠密模型和 &lt;code&gt;MoE&lt;/code&gt; 模型要分開看&lt;/li&gt;
&lt;li&gt;&lt;code&gt;LM Studio&lt;/code&gt; 裡的 &lt;code&gt;GPU Offload&lt;/code&gt; 和專家層轉移到 CPU 記憶體的參數，能明顯改變顯存占用情況&lt;/li&gt;
&lt;li&gt;你實際上是在用更高的記憶體壓力，換更大的模型規模和更高的可用速度&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;這套思路不一定適合所有機器，但它至少說明了一點：本地部署大模型時，顯存上限不是唯一限制，模型架構和推理配置同樣重要。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Ollama 多顯卡使用筆記：顯存疊加、GPU 選擇和常見誤區</title>
        <link>https://knightli.com/zh-tw/2026/04/19/ollama-multiple-gpu-notes/</link>
        <pubDate>Sun, 19 Apr 2026 00:18:00 +0800</pubDate>
        
        <guid>https://knightli.com/zh-tw/2026/04/19/ollama-multiple-gpu-notes/</guid>
        <description>&lt;p&gt;折騰 Ollama 本地推理時，經常會遇到類似問題：我現在有一張顯卡，主機板還有空 PCIe 槽，再加幾張 GPU 對 Ollama 有幫助嗎？多顯卡是否必須同型號？顯存能不能疊加？會不會像訓練框架那樣多卡並行加速？&lt;/p&gt;
&lt;p&gt;這篇整理一下 Ollama 多顯卡的實際行為。重點先說結論：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ollama 支援多 GPU。&lt;/li&gt;
&lt;li&gt;多 GPU 最大價值通常是讓更大的模型放進總顯存，而不是線性提升 token/s。&lt;/li&gt;
&lt;li&gt;預設策略下，如果模型能完整放進某一張 GPU，Ollama 傾向於放在單卡上。&lt;/li&gt;
&lt;li&gt;如果模型無法完整放進單張 GPU，Ollama 會把模型分布到可用 GPU 上。&lt;/li&gt;
&lt;li&gt;不同型號 GPU 可以被 Ollama 看到並使用，但效能和分配效果不一定理想。&lt;/li&gt;
&lt;li&gt;不需要 SLI / NVLink 才能用多卡。&lt;/li&gt;
&lt;li&gt;想限制 Ollama 使用哪些 GPU，需要用 &lt;code&gt;CUDA_VISIBLE_DEVICES&lt;/code&gt;、&lt;code&gt;ROCR_VISIBLE_DEVICES&lt;/code&gt; 或 &lt;code&gt;GGML_VK_VISIBLE_DEVICES&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;官方行為先單卡放不下再多卡&#34;&gt;官方行為：先單卡，放不下再多卡
&lt;/h2&gt;&lt;p&gt;Ollama FAQ 裡對多 GPU 載入邏輯說得比較直接：載入新模型時，Ollama 會估算模型所需 VRAM，並和目前可用顯存比較。如果模型能完整放進某一張 GPU，它會載入到那張 GPU 上；如果單張 GPU 放不下，才會分布到所有可用 GPU 上。&lt;/p&gt;
&lt;p&gt;這個策略的原因是效能。單卡載入通常能減少推理時跨 PCIe 匯流排的資料傳輸，因此往往更快。&lt;/p&gt;
&lt;p&gt;所以不要把 Ollama 的多 GPU 理解成「有幾張卡就自動幾倍加速」。更準確的理解是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;小模型能進單卡：通常單卡跑。&lt;/li&gt;
&lt;li&gt;大模型單卡放不下：跨多卡分層載入。&lt;/li&gt;
&lt;li&gt;顯存仍不夠：一部分會落到系統記憶體，速度會明顯下降。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;可以用下面命令確認模型到底載入到了哪裡：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ollama ps
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;輸出裡的 &lt;code&gt;PROCESSOR&lt;/code&gt; 會顯示類似：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;100% GPU
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;48%/52% CPU/GPU
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;100% CPU
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;如果看到 &lt;code&gt;48%/52% CPU/GPU&lt;/code&gt;，說明已經有一部分在系統記憶體裡了。此時多加 GPU 或換更大顯存的卡，通常比繼續依賴 CPU/RAM 更有意義。&lt;/p&gt;
&lt;h2 id=&#34;多-gpu-不是簡單疊算力&#34;&gt;多 GPU 不是簡單疊算力
&lt;/h2&gt;&lt;p&gt;本地大模型推理和遊戲裡的 SLI 不是一回事。Ollama 多卡時，更常見的是把模型的不同層或張量放到不同裝置上。這樣可以用多張卡的顯存裝下更大的模型，但推理過程中仍然可能需要裝置之間傳遞資料。&lt;/p&gt;
&lt;p&gt;因此，多 GPU 帶來的收益通常分兩種：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;顯存收益：更容易裝下大模型，或者避免落到 CPU/RAM。&lt;/li&gt;
&lt;li&gt;效能收益：只有在原本單卡裝不下或嚴重混 CPU 時，提升才會很明顯。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果一個 8B 或 14B 模型本來就能完整放進單張 3090，強行拆到兩張卡不一定更快，甚至可能因為跨卡傳輸變慢。Ollama 官方預設「能單卡就單卡」的策略，就是為了避免這類不必要的跨 PCIe 開銷。&lt;/p&gt;
&lt;h2 id=&#34;不需要-sli-或-nvlink&#34;&gt;不需要 SLI 或 NVLink
&lt;/h2&gt;&lt;p&gt;Ollama 多 GPU 不依賴 SLI。多張普通 PCIe GPU 只要驅動和 Ollama 能識別，就可以被調度。&lt;/p&gt;
&lt;p&gt;NVLink 或更高 PCIe 頻寬可能對某些跨卡場景有幫助，但它不是 Ollama 多 GPU 的前提條件。很多二手 GPU 伺服器或工作站，靠普通 PCIe 多卡也能跑。&lt;/p&gt;
&lt;p&gt;真正要注意的是 PCIe 頻寬。&lt;code&gt;x1&lt;/code&gt;、&lt;code&gt;x4&lt;/code&gt;、&lt;code&gt;x8&lt;/code&gt;、&lt;code&gt;x16&lt;/code&gt; 的差異會影響模型載入到顯存的速度；如果頻繁切換大模型，PCIe 鏈路會更容易成為瓶頸。模型載入完成後，生成階段受 PCIe 的影響通常會小一些，但跨卡分層仍然可能帶來額外開銷。&lt;/p&gt;
&lt;p&gt;比較穩的建議是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;能用 x16 / x8 就不要用礦卡 x1 轉接。&lt;/li&gt;
&lt;li&gt;大模型頻繁切換時，PCIe 頻寬更重要。&lt;/li&gt;
&lt;li&gt;如果模型長期常駐顯存，PCIe 頻寬瓶頸會相對不明顯。&lt;/li&gt;
&lt;li&gt;多卡機器要重點看主機板 PCIe 拓撲和 CPU 直連通道。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;如何限制-ollama-使用哪些-nvidia-gpu&#34;&gt;如何限制 Ollama 使用哪些 NVIDIA GPU
&lt;/h2&gt;&lt;p&gt;NVIDIA 多卡環境下，用 &lt;code&gt;CUDA_VISIBLE_DEVICES&lt;/code&gt; 控制 Ollama 能看到哪些卡。&lt;/p&gt;
&lt;p&gt;臨時執行：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CUDA_VISIBLE_DEVICES&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;0,1 ollama serve
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;只讓 Ollama 用第二張卡：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CUDA_VISIBLE_DEVICES&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; ollama serve
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;強制不用 NVIDIA GPU，可以給一個無效 ID：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CUDA_VISIBLE_DEVICES&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;-1 ollama serve
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;官方文件提醒，數字 ID 的順序可能變化，更可靠的是用 GPU UUID。先查看 UUID：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nvidia-smi -L
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;輸出類似：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;GPU 0: NVIDIA GeForce RTX 3090 (UUID: GPU-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;GPU 1: NVIDIA GeForce RTX 3070 (UUID: GPU-yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;然後指定 UUID：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CUDA_VISIBLE_DEVICES&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;GPU-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx ollama serve
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;如果 Ollama 是 Linux systemd 服務安裝的，需要寫到服務環境變數裡：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo systemctl edit ollama.service
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;加入：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-ini&#34; data-lang=&#34;ini&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;[Service]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;na&#34;&gt;Environment&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;CUDA_VISIBLE_DEVICES=0,1&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;然後重載並重啟：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo systemctl daemon-reload
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo systemctl restart ollama
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;amd-和-vulkan-的選擇變數&#34;&gt;AMD 和 Vulkan 的選擇變數
&lt;/h2&gt;&lt;p&gt;AMD ROCm 環境下，用 &lt;code&gt;ROCR_VISIBLE_DEVICES&lt;/code&gt; 控制可見 GPU：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ROCR_VISIBLE_DEVICES&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;0,1 ollama serve
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;如果要強制不用 ROCm GPU，也可以用無效 ID：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ROCR_VISIBLE_DEVICES&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;-1 ollama serve
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Ollama 官方 GPU 文件還提到，如果用實驗性的 Vulkan 支援，可以透過 &lt;code&gt;GGML_VK_VISIBLE_DEVICES&lt;/code&gt; 選擇 Vulkan GPU：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;OLLAMA_VULKAN&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;GGML_VK_VISIBLE_DEVICES&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;0&lt;/span&gt; ollama serve
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;如果 Vulkan 裝置有問題，可以停用：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;GGML_VK_VISIBLE_DEVICES&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;-1 ollama serve
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;AMD 多卡比 NVIDIA 更容易遇到驅動、ROCm 版本、GFX 版本支援的問題。官方文件中也提到 Linux 下 ROCm 驅動版本、&lt;code&gt;HSA_OVERRIDE_GFX_VERSION&lt;/code&gt; 等相容性處理。多張不同代 AMD 卡混用時，先確認每張卡是否單獨可用，再考慮多卡。&lt;/p&gt;
&lt;h2 id=&#34;docker-裡怎麼暴露多張-gpu&#34;&gt;Docker 裡怎麼暴露多張 GPU
&lt;/h2&gt;&lt;p&gt;如果用 Docker 跑 Ollama，NVIDIA 環境通常需要先安裝 &lt;code&gt;nvidia-container-toolkit&lt;/code&gt;，然後用 &lt;code&gt;--gpus&lt;/code&gt; 暴露裝置。&lt;/p&gt;
&lt;p&gt;暴露全部 GPU：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run -d &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --gpus&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;all &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -v ollama:/root/.ollama &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -p 11434:11434 &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --name ollama &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  ollama/ollama
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;只暴露指定 GPU：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run -d &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --gpus &lt;span class=&#34;s1&#34;&gt;&amp;#39;&amp;#34;device=0,1&amp;#34;&amp;#39;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -v ollama:/root/.ollama &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -p 11434:11434 &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --name ollama &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  ollama/ollama
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;也可以結合環境變數：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run -d &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --gpus&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;all &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -e &lt;span class=&#34;nv&#34;&gt;CUDA_VISIBLE_DEVICES&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;0,1 &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -v ollama:/root/.ollama &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -p 11434:11434 &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --name ollama &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  ollama/ollama
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;如果容器裡 &lt;code&gt;nvidia-smi&lt;/code&gt; 看不到卡，Ollama 也不可能用到 GPU。先排查 Docker GPU passthrough，再排查 Ollama。&lt;/p&gt;
&lt;h2 id=&#34;ollama_sched_spread-是什麼&#34;&gt;&lt;code&gt;OLLAMA_SCHED_SPREAD&lt;/code&gt; 是什麼
&lt;/h2&gt;&lt;p&gt;在一些多 GPU 配置討論裡，會看到 &lt;code&gt;OLLAMA_SCHED_SPREAD=1&lt;/code&gt; 或 &lt;code&gt;OLLAMA_SCHED_SPREAD=true&lt;/code&gt;。它和 Ollama 的調度策略有關，常被用於希望模型或請求更分散地利用多張 GPU 的場景。&lt;/p&gt;
&lt;p&gt;可以這樣設定：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;OLLAMA_SCHED_SPREAD&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; ollama serve
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;或者 systemd：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-ini&#34; data-lang=&#34;ini&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;[Service]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;na&#34;&gt;Environment&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;OLLAMA_SCHED_SPREAD=true&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;不過它不是萬能開關。開啟後並不等於 token/s 線性增長，也可能因為多個模型同時載入、顯存估算、上下文長度和 KV cache 增長導致 OOM。官方 FAQ 的核心策略仍然是：如果單 GPU 能完整容納模型，單 GPU 通常更高效；單 GPU 放不下時才跨多 GPU。&lt;/p&gt;
&lt;p&gt;所以建議把 &lt;code&gt;OLLAMA_SCHED_SPREAD&lt;/code&gt; 當成進階調度實驗項，而不是多卡必開項。先理解預設行為，再根據實際 &lt;code&gt;ollama ps&lt;/code&gt;、日誌和 &lt;code&gt;nvidia-smi&lt;/code&gt; 觀察結果調整。&lt;/p&gt;
&lt;h2 id=&#34;怎麼觀察多卡是否真的用上&#34;&gt;怎麼觀察多卡是否真的用上
&lt;/h2&gt;&lt;p&gt;常用觀察命令：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ollama ps
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;watch -n 0.5 nvidia-smi
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;查看 Ollama 服務日誌：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;journalctl -u ollama -f
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;如果使用 Docker：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker logs -f ollama
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;你需要關注：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ollama 是否發現相容 GPU。&lt;/li&gt;
&lt;li&gt;模型是否顯示 &lt;code&gt;100% GPU&lt;/code&gt; 或 CPU/GPU 混合。&lt;/li&gt;
&lt;li&gt;每張卡顯存是否有占用。&lt;/li&gt;
&lt;li&gt;載入模型時是否多卡顯存同時增長。&lt;/li&gt;
&lt;li&gt;生成時 token/s 是否比 CPU/RAM 混跑明顯改善。&lt;/li&gt;
&lt;li&gt;是否頻繁 OOM 或卸載模型。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果只看 GPU 利用率，很容易誤判。LLM 推理時 GPU 利用率不一定長期滿載，尤其是多卡、低 batch、小上下文、慢 CPU 或慢 PCIe 環境下。&lt;/p&gt;
&lt;h2 id=&#34;常見誤區&#34;&gt;常見誤區
&lt;/h2&gt;&lt;h3 id=&#34;誤區-1兩張-12gb-顯卡等於一張-24gb-顯卡&#34;&gt;誤區 1：兩張 12GB 顯卡等於一張 24GB 顯卡
&lt;/h3&gt;&lt;p&gt;不完全等價。多卡可以讓模型跨裝置放置，但跨卡存取有額外開銷。它能解決「放不下」的問題，不一定等價於單張大顯存卡的速度和穩定性。&lt;/p&gt;
&lt;h3 id=&#34;誤區-2不同型號顯卡不能混用&#34;&gt;誤區 2：不同型號顯卡不能混用
&lt;/h3&gt;&lt;p&gt;不一定。只要驅動、計算能力和執行庫都支援，Ollama 可以看到多張 GPU。但混用時，速度通常受較慢卡、較小顯存和 PCIe 拓撲影響。最穩的多卡配置仍然是同型號、同顯存、同代驅動支援良好的卡。&lt;/p&gt;
&lt;h3 id=&#34;誤區-3多卡一定比單卡快&#34;&gt;誤區 3：多卡一定比單卡快
&lt;/h3&gt;&lt;p&gt;不一定。如果模型能完整放進單張快卡，單卡可能更快。多卡主要適合大模型、長上下文、單卡顯存不夠的情況。&lt;/p&gt;
&lt;h3 id=&#34;誤區-4必須有-nvlink--sli&#34;&gt;誤區 4：必須有 NVLink / SLI
&lt;/h3&gt;&lt;p&gt;不需要。普通 PCIe 多卡也能被 Ollama 使用。NVLink 不是前提。&lt;/p&gt;
&lt;h3 id=&#34;誤區-5加-gpu-後不用重啟服務&#34;&gt;誤區 5：加 GPU 後不用重啟服務
&lt;/h3&gt;&lt;p&gt;不一定。Linux systemd 服務、Windows 背景應用、Docker 容器都可能需要重啟，才能重新識別裝置和環境變數。&lt;/p&gt;
&lt;h2 id=&#34;選卡建議&#34;&gt;選卡建議
&lt;/h2&gt;&lt;p&gt;如果目標是 Ollama 本地推理，優先級大致是：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;單卡顯存越大越省心。&lt;/li&gt;
&lt;li&gt;同型號多卡比混合多卡更容易排錯。&lt;/li&gt;
&lt;li&gt;PCIe 通道越完整，載入大模型越舒服。&lt;/li&gt;
&lt;li&gt;老卡要先確認 CUDA compute capability 或 ROCm 支援。&lt;/li&gt;
&lt;li&gt;多卡電源、散熱和機箱風道要提前算清楚。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;對於預算有限的二手平台：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;雙 3090 仍然是很常見的大顯存方案。&lt;/li&gt;
&lt;li&gt;P40 / M40 這類老 Tesla 顯存大，但功耗、散熱、驅動和效能都要權衡。&lt;/li&gt;
&lt;li&gt;4070 / 4070 Ti 這類新卡能效好，但單卡顯存容量限制更明顯。&lt;/li&gt;
&lt;li&gt;多張 8GB 老卡能折騰，但不建議為了大模型長期使用。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;小結&#34;&gt;小結
&lt;/h2&gt;&lt;p&gt;Ollama 多顯卡支援可以理解成「顯存擴展優先，效能加速其次」。如果模型能完整放進一張 GPU，預設單卡通常更快；如果單卡放不下，多卡可以把模型分布到多張 GPU 上，避免大量落到 CPU/RAM，從而讓大模型變得可用。&lt;/p&gt;
&lt;p&gt;實際配置時，先用 &lt;code&gt;ollama ps&lt;/code&gt; 看模型載入位置，再用 &lt;code&gt;nvidia-smi&lt;/code&gt; 或 ROCm 工具觀察顯存占用。需要限制 GPU 時，NVIDIA 用 &lt;code&gt;CUDA_VISIBLE_DEVICES&lt;/code&gt;，AMD ROCm 用 &lt;code&gt;ROCR_VISIBLE_DEVICES&lt;/code&gt;，Vulkan 用 &lt;code&gt;GGML_VK_VISIBLE_DEVICES&lt;/code&gt;。如果在 Docker 中執行，先確保容器層面能看到 GPU。&lt;/p&gt;
&lt;p&gt;多卡不是魔法。它能幫你裝下更大的模型，但不保證線性加速。真正穩定好用的路線，仍然是盡量選大顯存單卡或同型號多卡，並把驅動、PCIe、電源、散熱和模型量化一起考慮。&lt;/p&gt;
&lt;h2 id=&#34;參考連結&#34;&gt;參考連結
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Ollama FAQ：How does Ollama load models on multiple GPUs?：&lt;a class=&#34;link&#34; href=&#34;https://github.com/ollama/ollama/blob/main/docs/faq.mdx&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/ollama/ollama/blob/main/docs/faq.mdx&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Ollama GPU 文件：Hardware support / GPU Selection：&lt;a class=&#34;link&#34; href=&#34;https://github.com/ollama/ollama/blob/main/docs/gpu.mdx&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/ollama/ollama/blob/main/docs/gpu.mdx&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Ollama Docker Hub：&lt;a class=&#34;link&#34; href=&#34;https://hub.docker.com/r/ollama/ollama&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://hub.docker.com/r/ollama/ollama&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;NVIDIA Container Toolkit：&lt;a class=&#34;link&#34; href=&#34;https://github.com/NVIDIA/nvidia-container-toolkit&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/NVIDIA/nvidia-container-toolkit&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>如何判斷 Ollama 模型是否已載入到 GPU</title>
        <link>https://knightli.com/zh-tw/2026/04/06/check-ollama-model-loaded-on-gpu/</link>
        <pubDate>Mon, 06 Apr 2026 10:15:18 +0800</pubDate>
        
        <guid>https://knightli.com/zh-tw/2026/04/06/check-ollama-model-loaded-on-gpu/</guid>
        <description>&lt;p&gt;想確認 Ollama 模型是否真的跑在 GPU 上，最直接的方法就是查看目前已載入模型的處理器占用資訊。&lt;/p&gt;
&lt;h2 id=&#34;使用指令&#34;&gt;使用指令
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ollama ps
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;範例輸出&#34;&gt;範例輸出
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;NAME        ID            SIZE    PROCESSOR   UNTIL
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;llama3:70b  bcfb190ca3a7  42 GB   100% GPU    4 minutes from now
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;如何解讀-processor-欄位&#34;&gt;如何解讀 &lt;code&gt;PROCESSOR&lt;/code&gt; 欄位
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;100% GPU&lt;/code&gt;：模型完全載入在 GPU 顯存中。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;100% CPU&lt;/code&gt;：模型完全載入在系統記憶體中（未使用 GPU 推理）。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;48%/52% CPU/GPU&lt;/code&gt;：模型部分在系統記憶體、部分在 GPU 顯存中，屬於混合載入。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;實用建議&#34;&gt;實用建議
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;如果你預期使用 GPU，但看到 &lt;code&gt;100% CPU&lt;/code&gt;，先檢查顯卡驅動、CUDA/ROCm 環境與 Ollama 執行參數。&lt;/li&gt;
&lt;li&gt;模型參數量較大、顯存不足時，通常會出現 CPU/GPU 混合載入。&lt;/li&gt;
&lt;li&gt;排查效能問題時，先執行 &lt;code&gt;ollama ps&lt;/code&gt; 再看速度數據，能更快定位瓶頸。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;總結&#34;&gt;總結
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;ollama ps&lt;/code&gt; 是判斷模型是否真正使用 GPU 的第一步。重點看 &lt;code&gt;PROCESSOR&lt;/code&gt; 欄位，就能快速確認目前載入位置，並據此決定後續優化方向。&lt;/p&gt;
&lt;!-- ollama-related-links:start --&gt;
</description>
        </item>
        
    </channel>
</rss>
