大多数生成式 AI 模型都在大型数据中心集群中进行训练和运行,但在本地构建、测试和原型化 AI 系统的能力在今天同样重要。
直到最近,这还需要高端的多GPU工作站,往往需要花费数万美元。随着10月份基于GB10的DGX Spark的发布,Nvidia试图改变这种情况。虽然功率远不如数据中心产品,但拥有128GB显存的该系统本质上是一个盒装AI实验室,能够运行几乎任何你抛给它的AI工作负载。
正如我们在初次体验中提到的,Spark并不是第一个甚至不是最便宜的选择。AMD和苹果也提供具有大量统一内存的系统,这些内存在CPU和GPU之间共享,这使得它们在AI开发者和爱好者中极其受欢迎。
AMD的Ryzen AI Max+ 395 APU(为了简洁起见,我们从这里开始简称为"Strix Halo")特别有趣。除了售价约为Spark的三分之二到一半之外,Strix Halo基于与公司数据中心产品大致相同的ROCm和HIP软件栈。这提供了从桌面到数据中心更清晰的迁移路径,尽管不一定是无缝的。
为了看看Strix Halo与Spark的对比如何,HP送来了其Z2 Mini G1a工作站,让我们能够了解这两个小TOPS盒子在各种AI工作负载中的表现,从单用户和批量推理到微调和图像生成。
系统概览
与Spark相比,HP的Z2 Mini G1a要大得多,部分原因是其集成PSU和更大的散热解决方案。
你首先会注意到HP比Spark大很多。这部分是因为Nvidia选择了通过USB-C连接的外部电源适配器,而HP选择了带集成电源的稍大机箱。
我们通常更喜欢HP的方法,特别是因为更大的机箱允许更强大的散热解决方案,尽管Spark的做工和质感确实显得更高端。
虽然Spark使用兼作散热器的全金属机箱,但G1a更像HP产品,有着干净但塑料外壳覆盖坚固金属机箱。这种设计理念的好处是可维修性。进入G1a就像按下机器背面的按钮滑掉顶盖一样简单。
然而,由于机器使用焊接的LPDDR5x内存,任何一个系统实际上都没有太多可做的。HP确实有两个标准的2280 PCIe 4.0 x4 M.2 SSD,用户可以维修。
相比之下,Spark更像设备,尽管通过移除系统底部的磁性板和四个螺丝也可以更换SSD。
HP的设计比Spark更容易维修,按下按钮即可取下盖子
在机器内部是一对鼓风机风扇,从前面吸入冷空气,从后面排出。如果你好奇,G1a的双M.2 SSD直接位于这些风扇下方,这应该能防止它们在重负载下过热。
在机器背面,我们看到HP在I/O方面与Nvidia采取了非常不同的方法。
虽然Spark优先考虑高速网络,但HP G1a的I/O要普通得多
从左到右,我们看到一个2.5 GbE RJ45端口、四个标准USB端口(2个10 Gbps、2个USB 2.0)、一对40 Gbps Thunderbolt端口以及两个mini DisplayPort。在机器侧面,你会找到一个3.5毫米耳机-麦克风组合插孔和两个额外的10 Gbps USB 3.0端口,有标准和USB-C两种形式。
你还会注意到两个可以配置HP Flex IO模块的空白空间,包括串口、USB和千兆、2.5 GbE或10 GbE端口。
同时,Spark优先考虑多节点AI计算环境的高速网络。电源按钮旁边有四个USB-C端口,最左边的用于电力传输。对于显示输出,有一个HDMI端口以及一个10 GbE RJ45网络端口和一对QSFP笼子,通过系统的板载ConnectX-7网卡提供总共200 Gbps的网络带宽。
这些端口旨在使用与数据中心相同的硬件和软件,实现多个Spark或其他GB10系统的集群。
据我们了解,你也可以使用G1a的Thunderbolt端口作为高速网络接口来互连多个系统,尽管我们无法测试该用例。
规格参数
在我们深入探讨生成式 AI性能之前(我们预计大多数人会关心这个),我们想花点时间谈论一下机器各自的CPU。
Strix Halo是一个相当有趣的处理器。与其桌面对应产品一样,它具有16个完整的Zen 5核心,分布在两个核心复合芯片(CCD)上,能够时钟到5.1 GHz。这些CCD使用先进封装连接到处理内存、PCIe和图形处理的I/O芯片。
Z2 Mini G1a实际上使用芯片的Pro变体,它增加了许多硬件安全和管理功能,对于在敏感环境中批量部署这些系统的企业可能很有吸引力。
Spark的GB10 Grace Blackwell超级芯片同时具有与联发科合作开发的Arm CPU芯片,包含10个X925性能核心和10个Cortex A725效率核心,总共20个。
虽然这些核心绝不慢,但在我们有限的测试中,AMD的Zen 5微架构在我们的Sysbench、7zip压缩/解压缩和HandBrake转码工作负载中提供了10到15%的更高性能。
然而,在代表许多HPC工作负载的高性能Linpack基准测试中,G1a实现了两倍多的双精度性能,1.6 teraFLOPS对比Spark的708 gigaFLOPS。我们注意到这个分数是仅使用X925核心实现的,因为启用A725测试实际上降低了性能,表明可能还有改进空间。
虽然生成式 AI性能很大程度上依赖于低精度GPU FLOPS,但Strix Halo更强大的CPU可能使其成为寻找能运行生成式 AI模型的PC而不是AI设备的人的更灵活选择。
生成式 AI性能
转到生成式 AI,我们应该花一分钟谈论一下对这两个系统的一些性能声明。
虽然Nvidia可能声称拥有petaFLOPS的AI计算能力,但现实是大多数用户永远不会接近这个水平。原因很简单:实现这种性能水平需要结构化稀疏性,这个特性对推理工作负载几乎没有好处。
因此,Spark的峰值性能实际上更接近500 dense teraFLOPS,并且只对能利用FP4数据类型的工作负载有效。更多时候,Spark实际上将以8或16位精度运行,将峰值性能分别限制在250和125 teraFLOPS。
持续性能通常略低于理论值。在Max Achievable MatMul FLOPS(MAMF)基准测试中测试GB10,我们在BF16下实现了101 teraFLOPS,在FP8下实现了207 teraFLOPS。
那么为G1a提供动力的Strix Halo部分呢?在这里我们看到了AMD最大的弱点之一。虽然AMD声称其顶级规格的Strix Halo SKU有126个平台TOPS,但你很难找到任何能充分利用这一点的应用程序。这些TOPS中有50个由NPU提供,需要专门的软件来利用——稍后详述。其余的TOPS通过CPU和GPU实现。
Strix Halo的GPU表现不俗。据我们估计——AMD实际上没有给出芯片的峰值浮点性能——GPU能够输出大约56 teraFLOPS的峰值BF16性能。在MAMF中,我们实现了大约82%,即46 teraFLOPS,这同样不错。
但由于GPU基于AMD较旧的RDNA 3.5架构,它缺乏对Spark的Blackwell GPU提供的较低精度数据类型的支持。
从技术上讲,该架构确实支持INT8,但性能基本上与BF16相同。理论上,它应该提供大约112 TOPS的INT4,但诀窍是找到实际以该精度进行计算的软件。16个不同的值就是没有太多粒度。
在纸面上,这给了Spark在原始AI计算能力方面2.2-9倍的性能优势。
虽然这在我们的测试中反复出现,但计算只是生成式 AI硬币的一面。另一面是内存带宽。根据你的用例,它甚至可能使AMD和Nvidia系统之间的性能差距成为非问题。
大语言模型推理
我们从大语言模型推理开始讨论,正是因为它说明了为什么更多的TOPS和FLOPS并不总是转化为更好的AI性能。
为了一致性,我们在Linux中运行了大多数测试:HP上的Ubuntu 24.04 LTS和Nvidia轻度定制的发行版DGX OS。
编辑注:我们在Ubuntu中测试G1a时遇到了GPU挂起的一些问题。但是,通过添加一些内核参数,我们能够解决该问题。
可以通过编辑Grub启动配置来进行调整,运行:
sudo nano /etc/default/grub
然后将GRUB_CMDLINE_LINUX=""条目更新为如下所示:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash amdgpu.cwsr_enable=0 amd_iommu=offwq! amdgpu.gttsize=131072 ttm.pages_limit=33554432"
完成后,按Ctrl X保存并退出编辑器。最后,通过运行以下命令更新引导加载程序并重启机器:
sudo update-grub sudo reboot
如果你仍然遇到GPU挂起,我们建议查看Framework论坛上的这个帖子。
仅看Llama.cpp中的单批次性能——在消费者CPU和GPU上运行大语言模型最受欢迎的框架之一——我们可以看到GB10和Strix Halo以相似的速度输出Token,AMD盒子在使用Vulkan后端时取得了微弱领先。
在单批次推理中,AMD的Strix Halo APU在Token生成上与Spark不相上下,但在首Token时间上落后很多
在单用户场景中,Token生成通常受到内存带宽的瓶颈限制。GB10声称有大约273 GB/s的内存带宽,而AMD的Strix Halo管理大约256 GB/s。
这可能是许多AI爱好者对Spark首次亮相时如此失望的原因之一。以三分之二到一半的价格,你可以得到一个同样快速输出Token的Strix Halo盒子。
但是,如果你把注意力转向首Token时间列,你会注意到GB10的GPU比Strix Halo盒子中的GPU快大约2-3倍,这是在处理相对较短的256Token提示时。随着序列长度的增加,这个差距变得更加明显。这是因为提示处理往往很快变成计算绑定的。
对于较短的提示或多轮对话,Llama.cpp的提示缓存减轻了很多这种性能不足。在这种情况下,我们只是在谈论在AMD平台上多等一两秒,考虑到Strix Halo较低的平均售价,只想在家运行大语言模型的客户可能愿意忽视这一点。
对于工作负载需要将大文档输入模型上下文的用户,Spark更强大的GPU在这里给了它明显的优势,只是客户需要权衡其更高的价格。
多批次性能
除了单批次性能,我们还测试了两台机器在更大批次大小下的表现。用户将工作批处理,如从一堆文档或电子邮件中提取信息,而不是一个接一个地顺序处理它们,这并不罕见。
在这种情况下,我们使用vLLM,根据我们的经验,它比Llama.cpp更优雅地处理大批次大小和并发性,Llama.cpp更适合单用户应用程序的优化。我们还使用Qwen3-30B-A3B-Instruct-2507以其原生BF16精度来避免量化开销。
为了看看机器的表现如何,我们要求它们处理1,024Token输入并在从1到64的批次大小范围内生成1,024Token响应。
该图表显示了在各种批次大小(1-64)下的整体吞吐量(tok/s)与端到端延迟的关系
在X轴上,我们绘制了完成批处理作业所需的时间(秒),而在Y轴上我们显示了每个批次大小的整体吞吐量(每秒Token数)。
再一次,Spark更快的图形处理器使其在G1a上占据优势。虽然这显然是Spark的胜利,但除非你经常运行批处理作业,否则性能优势可能会被忽视,特别是如果你可以安排它们在夜间运行。批量推理并不完全是交互式的,所以你可以轻易地走开,完成后回来。
微调
当我们看使用微调技术通过向模型暴露新信息来教授新技能时,情况类似。
微调需要大量内存,对于Mistral 7B这样的模型可能需要多达100GB。正如我们之前讨论的,像LoRA或QLoRA这样的技术可以显著减少训练模型所需的内存。
任一平台都有多达128GB的可用内存,Spark和G1a都很适合这种工作负载,尽管它们并不特别快。
对于完整微调,GB10成功地远远领先于AMD的Strix Halo,但仍落后于W7900或RTX 6000 Ada等上一代工作站卡
运行Meta的Llama 3.2 3B的完整微调,我们看到Spark大约用G1a三分之二的时间完成工作。但是,与提供更高浮点性能以及更快GDDR6内存的Radeon Pro W7900或RTX 6000 Ada等工作站卡相比,Spark和G1a简直被超越了。
当我们开始研究在更大模型上使用QLoRA时,事情真正变得有趣。要在家微调Llama 3.1 70B这样的模型,你通常需要多个工作站卡。但由于它们庞大的内存占用,这项工作完全可以使用AMD或Nvidia盒子来完成。
转向更大的70B参数,GB10更快的GPU使其在QLoRA微调中占据优势
使用相对较小的数据集——我们之前已经表明这可以足以调整模型的风格——性能更符合我们的预期。G1a在50分钟多一点的时间内完成了工作,而Spark大约20分钟。
对于使用更大数据库或LoRA等级的更大微调工作,这很容易延长到几小时或可能几天,使Spark的性能优势更加重要。
但就像我们在多批次推理测试中讨论的那样,除非你经常微调模型,否则Spark的更高性能可能不值得比来自HP、Minisforum、Framework或任何其他迷你PC供应商的类似配置的Strix Halo系统的价格。
图像生成
Spark的更高性能确实给它明显优势的一个领域是图像和视频生成工作负载。像微调一样,图像生成是一个特别消耗计算和内存的工作负载,但往往不受带宽限制。
这部分是因为图像模型不像大语言模型那样容易压缩,而不会对输出质量做出重大让步。因此,许多人喜欢以其原生精度运行这些模型,无论是FP32、BF16还是FP8。
如果你计划使用ComfyUI生成图像或视频,Nvidia GPU仍然是你最好的选择
在ComfyUI中运行Black Forest Lab的FLUX.1 Dev,我们的测试系统几乎完全按照其16位浮点性能的预期进行缩放。
分别具有120和125 teraFLOPS的BF16算力,Spark大致匹配AMD的Radeon Pro W7900,同时实现了对基于Strix Halo的G1a大约2.5倍的领先,在我们的测试中实现了大约46 teraFLOPS的实际性能。
可以说图像生成显然不是Strix盒子的强项。
但NPU呢?
AMD的Strix Halo APU还配备了相当强大的神经处理单元(NPU),这得益于公司对Xilinx的收购。XDNA 2 NPU能够输出额外的50 TOPS AI性能。当然,诀窍是找到能利用它的软件。大多数NPU用例专注于最小化音频和视频中的噪音降低、背景模糊和光学字符识别等功能的功耗。
但是,AMD和其他公司已经开始将NPU用于生成式 AI应用程序,结果参差不齐。由于像Lemonade Server这样的应用程序,你现在可以完全在NPU上运行大语言模型。除非你试图节省电力,否则你可能还不想这样做。
截至撰写本文时,模型支持有些有限,NPU似乎无法访问GPU的所有250 GB/s内存带宽。在Windows中在NPU上运行Mistral 7B,我们观察到仅4-5 tok/s的解码性能,而我们本来期望看到接近40 tok/s。
但是,AMD显然在推动分解推理的想法,其中计算繁重的提示处理被卸载到NPU,而内存带宽密集的解码阶段由GPU处理。性能更好,但仍然不如你只在GPU上运行模型。
这种分解方法对于功率受限的笔记本电脑很有意义,但对于像G1a这样的桌面系统来说就不那么重要了。话虽如此,我们有兴趣看看AMD将此带向何方。
我们还能够在Amuse中使NPU工作,这是一个初学者友好的图像生成套件。AMD最近添加了对直接在NPU上运行Stable Diffusion 3的支持,在这种情况下,性能实际上比在GPU上运行相同模型要好得多。
在这里我们看到Amuse使用Strix Halo中的XDNA 2 NPU使用Stable Diffusion 3生成图像
在NPU上运行,Amuse能够使用20步在一分钟多一点的时间内生成1,024 x 1,024图像,而在GPU上运行相同测试需要大约两倍的时间。
有一些值得指出的注意事项。此时集成相当有限,仅在初学者模式下可用,性能滑块设置为平衡。切换到"专家模式"禁用了NPU,迫使模型在图形处理器上运行。
集成也仅限于Stable Diffusion 3,考虑到它在一年多前首次亮相,现在已经相当老了。尽管如此,很高兴看到更多应用程序利用NPU做更多事情,而不仅仅是视频通话中的背景模糊。
Nvidia的CUDA护城河正在变浅
在AMD和Nvidia之间的任何比较中经常出现的一个卖点是软件兼容性,也就是CUDA护城河。
虽然你可以期望几乎任何在CUDA上运行的软件在Spark上都能正常工作,但这在基于Strix Halo的G1a上并不能保证。
近二十年的CUDA开发很难忽视,但是,虽然AMD在其ROCm和HIP库的软件支持方面传统上落后,但该公司在最近几个月取得了显著进展。
一年前,我们面临着许多头痛问题,库要么不可用,要么依赖专门为AMD基于CDNA的数据中心芯片构建的分支,这意味着它们不能在消费者平台上运行。今天,这不再是那么大的问题。事实上,我们的大多数PyTorch测试脚本在AMD平台上运行时无需修改。但是,如果我们说这种体验与Spark上一样无缝,我们就是在撒谎。
很多软件可以在AMD的消费者硬件上工作,但这并不总是像运行pip install xyz-package这样简单。我们仍然需要从源代码构建库或使用专门为Radeon GPU制作的分支——vLLM、BitsandBytes和Flash Attention 2只是几个例子。
在许多情况下,特别是在处理更接近硬件编写的软件时,软件需要专门为那一代Radeon图形编译。Llama.cpp只是一个例子,我们需要针对gfx1151目标编译才能让软件运行。
无论在哪个平台上工作,处理这些依赖项都不容易,所以很高兴看到AMD和Nvidia提供预配置了你开始所需的一切的Docker容器。对于我们的vLLM测试,我们使用了红队和绿队的vLLM Docker容器来确保我们获得最佳性能。
也许我们最大的软件挑战实际上不是软件相关的。Strix Halo基于AMD较旧的RDNA 3.5架构,这意味着它缺乏对Spark的Blackwell GPU提供的许多低精度数据类型的支持。结果,我们经常被迫以16位精度运行模型,即使FP8或FP4会是更好的选择。
AMD的RDNA 4架构应该通过添加对稀疏性和FP8的支持来解决其中一些问题。但是,行业的大部分现在正在围绕微缩放数据类型(如MXFP4)重新定位,因为其更小的内存占用和更宽的有效范围。
虽然AMD正在迅速缩小差距,但Nvidia在硬件和软件方面仍然保持有意义的领先。
你们一直在等待的答案
是的,DGX Spark确实可以运行《孤岛危机》
我们知道你们都会问。是的。这两个盒子都能运行《孤岛危机》。
在1440p、中等设置下,《孤岛危机重制版》在G1a上以非常可观的90-100 FPS运行。这里没有真正的惊喜,因为HP使用的是x86 CPU和来自有着悠久图形血统公司的GPU。
让游戏在DGX Spark上运行有点复杂,因为GB10的Arm CPU无论好坏都不支持32位指令。幸运的是,我们能够使用名为FEX的实用程序让它运行。如果你好奇,可以在这里找到我们使用的安装脚本。
不幸的是,我们无法在Spark上使Steam性能叠加层工作,这意味着我们无法获得具体的性能指标。在中等设置下,游戏完全可以玩,甚至不需要诉诸使用Nvidia的AI升级技术,这在游戏中实际上有效。
虽然你可以在Spark或其他GB10系统上运行游戏,但我们不确定是否推荐它超过Strix Halo盒子或那里的任何数量的更便宜的游戏PC。
总结
这些系统中哪一个适合你真的取决于你有多关心生成式 AI
这些系统中哪一个适合你真的取决于你是想要专门用于AI的机器还是恰好能够运行你可能抛给它的大多数AI工作负载的PC。
我们怀疑许多读到这里的人可能属于后一类。如果你要在新PC上花费2K-4K美元,我们认为期望它能做好不止一件事是不无理的。
在这方面,HP的Z2 Mini G1a是那里更好的选择之一,特别是如果你主要对运行单批次大语言模型推理而不是微调或图像生成感兴趣。AMD的Strix Halo SoC可能没有Nvidia GB10盒子的计算能力,但它能胜任地运行Windows和Linux,不需要跳过圈圈就能玩你最喜欢的游戏。
尽管存在性能差距,对于为不断增长的AI PC部门构建应用程序的软件工程师来说,基于AMD的系统可能仍然是更好的开发平台,如果没有其他原因,仅仅是因为微软的NPU要求。
但对于那些真正想要AI设备来原型化智能体、微调模型或生成文本、图像和视频内容的人来说,Spark或其GB10兄弟之一可能是更好的选择,假设你能承受要价。
在我们的测试中,该机器始终提供比基于AMD的HP系统2-3倍的性能,同时还受益于显著更成熟和活跃的软件生态系统。正如我们所展示的,你也可以在紧急情况下在Spark上运行非AI工作负载,但这不是它的目的。Spark本质上是一个盒装AI实验室,最好这样使用。
Q&A
Q1:AMD Strix Halo和Nvidia DGX Spark各自的优势是什么?
A:Strix Halo的优势在于价格更低(约2950美元)、更强的CPU性能(16核Zen 5)、更好的游戏兼容性,适合需要多功能PC的用户。DGX Spark优势在于更强的AI计算能力(2-3倍性能)、更成熟的软件生态系统、更好的批处理和微调性能,适合专业AI开发。
Q2:这两款工作站在大语言模型推理方面表现如何?
A:在单批次推理中,两款产品性能相近,Strix Halo在某些情况下甚至略有领先,主要受内存带宽限制。但Spark在首Token时间方面快2-3倍,在处理长文档或大批量推理时优势明显。对于一般用户的单次对话需求,性能差异不大。
Q3:如果预算有限应该选择哪款产品?
A:如果主要用于单用户LLM推理和需要多功能PC,建议选择Strix Halo系统,价格更低且能满足基本AI需求。如果专注于AI开发、需要频繁微调模型或生成图像视频,且预算充足,应选择DGX Spark,其专业性能优势值得额外投资。