<?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/tags/gpu/</link>
        <description>Recent content in GPU on KnightLi的博客</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-cn</language>
        <lastBuildDate>Sun, 26 Apr 2026 19:35:57 +0800</lastBuildDate><atom:link href="https://knightli.com/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/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/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 不是单纯“把包放进仓库”，而是在按一个可维护的软件栈去验证它。&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;“Battlemage” 设备支持 &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;它的目标是提升启动可靠性：新写入的启动资源会先被“测试”，确认没问题后才会提交为新的 “known good” 集合。&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/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/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;
</description>
        </item>
        <item>
        <title>NVIDIA nvbandwidth 是什么：GPU 带宽测试工具怎么用</title>
        <link>https://knightli.com/2026/04/24/nvidia-nvbandwidth-guide/</link>
        <pubDate>Fri, 24 Apr 2026 14:41:35 +0800</pubDate>
        
        <guid>https://knightli.com/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 支持（Windows 不启用）&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/2026/04/23/check-tesla-v100-ecc-errors/</link>
        <pubDate>Thu, 23 Apr 2026 11:50:21 +0800</pubDate>
        
        <guid>https://knightli.com/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/2026/04/23/tesla-v100-buying-ecc-cooling-diy-guide/</link>
        <pubDate>Thu, 23 Apr 2026 10:58:03 +0800</pubDate>
        
        <guid>https://knightli.com/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;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;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/2026/04/23/llama-cpp-gpu-benchmark-cuda-rocm-vulkan-scoreboard/</link>
        <pubDate>Thu, 23 Apr 2026 09:58:11 +0800</pubDate>
        
        <guid>https://knightli.com/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;p&gt;讨论正文前部还给了几台 Apple Silicon 设备的统一样例：&lt;/p&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/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/2026/04/23/how-to-read-llm-cuda-scoreboard-fa-pp512-tg128-q4-0/</guid>
        <description>&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;/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;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;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;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;一句话理解：这是某个量化版模型在 NVIDIA 显卡上的推理速度测试，而且没有开启 &lt;code&gt;Flash Attention&lt;/code&gt;。&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;ul&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;no-fa-是什么意思&#34;&gt;no FA 是什么意思
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;no FA&lt;/code&gt; 就是没开 &lt;code&gt;Flash Attention&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;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;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;h2 id=&#34;pp512-ts-是什么意思&#34;&gt;pp512 t/s 是什么意思
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;pp512&lt;/code&gt; 一般是 &lt;code&gt;Prompt Processing 512 tokens&lt;/code&gt;，测的是输入处理速度。&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;：每秒多少 token&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-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;h2 id=&#34;tg128-ts-是什么意思&#34;&gt;tg128 t/s 是什么意思
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;tg128&lt;/code&gt; 一般是 &lt;code&gt;Text Generation 128 tokens&lt;/code&gt;，测的是输出生成速度。&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;：每秒多少 token&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;它更接近我们平时感受到的“模型回答快不快”。因为生成是逐 token 递推的，所以它通常会明显低于 &lt;code&gt;pp512&lt;/code&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;h2 id=&#34;为什么-pp512-和-tg128-会差这么多&#34;&gt;为什么 pp512 和 tg128 会差这么多
&lt;/h2&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;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;。它表示模型每秒能处理或生成多少 token。&lt;/p&gt;
&lt;p&gt;但 &lt;code&gt;token&lt;/code&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;h2 id=&#34;一页记住&#34;&gt;一页记住
&lt;/h2&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;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;code&gt;FA&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;测的是输入处理还是文本生成&lt;/li&gt;
&lt;li&gt;单位是不是 &lt;code&gt;t/s&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;把这几件事分清楚，绝大多数 scoreboard 都不会太难读。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>大模型常见张量类型入门：FP32、FP16、BF16、TF32 与 FP8</title>
        <link>https://knightli.com/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/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/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/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/2026/04/19/ollama-multiple-gpu-notes/</link>
        <pubDate>Sun, 19 Apr 2026 00:18:00 +0800</pubDate>
        
        <guid>https://knightli.com/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/2026/04/06/check-ollama-model-loaded-on-gpu/</link>
        <pubDate>Mon, 06 Apr 2026 10:15:18 +0800</pubDate>
        
        <guid>https://knightli.com/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;：模型部分在内存、部分在显存中，属于混合加载。&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>
