224GB,这就是摆在我桌上这个小小盒子里的显存容量。这两张显卡协同工作,运行一个拥有1220亿参数的单一模型。但这还不是最疯狂的,真正疯狂的是这是一块NVIDIA显卡,却插在一台拥有AMD Strix Halo处理器的迷你主机上。AMD和NVIDIA被迫做了一件它们本不该做的事:在同一台AI模型中同时运行各自的GPU。看,都在工作,我都能听到声音了。两者合计每秒生成33到34个token。这就是分工,稍后我会详细解释,先来个背景介绍。去年,GMK Tech推出了EVO X2,它是地球上首批(如果不是首款)运行AMD Strix Halo的迷你主机之一。对于不熟悉的人来说,Strix Halo是一款APU(加速处理器),它将GPU和CPU集成在一起,共享一个高达128GB的公共内存池。大部分内存可以分配给GPU,以运行大语言模型、图像生成等任务。它们抢在所有人前面,甚至包括NVIDIA的DGX Spark。现在GMK Tech再次做到了,为这款Strix Halo机器带来了全新的技巧:背部有一个改变一切的接口。

好吧,我停止夸张了。那是一个OCuLink端口。虽然别人没有,但它开启了无数可能性。本质上,它是一个带有外部端口的PCIe插槽,速度高达63GB每秒。这和全尺寸台式机中显卡插入的插槽类型相同,只不过它出现在迷你主机上,这意味着我们第一次可以将真正的桌面级GPU插入Strix Halo机器。我将从小处着手,然后再尝试一些疯狂的操作。但在把价值1万美元的显卡塞进迷你主机之前,我想先检查一点。看这张小卡,就在那儿等着我。前几天我在酒店办公,Wi-Fi对大楼里的任何人都开放。这很方便,但我不想让数据流量到处漂浮。所以我在工作前会连接Surfshark VPN。我的Git提交、容器下载和终端会话都通过AES-256加密隧道发送。Clean Web功能也处理令人讨厌的广告和追踪器,它们不会让网站变得杂乱无章。Surfshark拥有独立审计的零日志政策,加上重启即擦除内存的服务器。我最喜欢的功能是它仍然没有设备限制,一个计划覆盖我的MacBook、手机以及我收集的任何其他设备。当我在办公室外工作时,连接回实验室让我感觉好多了。使用surfshark.com/alexiski可额外获得四个月免费试用,还有30天无理由试用期。链接在下方。保护你的连接,继续构建项目。现在回到视频内容。

我想检查的是去年在X2上测试的所有内容是否仍然适用于X3。我取出了我在去年的X2上已经测试过的模型,它比较旧,是的,但我为了确保准确性。Qwen 2.5 320亿参数模型在旧的X2上每秒运行约11个token。而在X3上是11.2,芯片相同,速度也差不多。这是一件好事,这使得其余的测试具有可靠性。给极客们一个快速提示:我的所有测试都将使用Llama CPP而不是Ollama。尽管我去年确实测试过Ollama,但虽然它很方便,但在这些硬件上速度较慢。数据是准确的。让我们进入有趣的部分。这是RTX 5080,拥有16GB极快的显存。将其插入OCuLink端口,在模型能容纳的情况下,它的速度是内置GPU的三倍左右。我说“如果能容纳”,是因为16GB并不能容纳那么多模型,不像这里可以容纳大模型的128GB。但我们会讲到那一点。当模型变得太大时,看吧,我们正在使用所有内存,GPU利用率达到10%,但根本没有输出任何内容。不过确实在生成,只是非常慢。NVtop显示我们充分利用了GPU。哦,看吧,女士们先生们,我们有几个token出来了。我不会让你坐在那里看完的,因为速度大约为每秒1.6个token。5080在这里性能断崖式下跌,而Strix Halo内部的RTX 4060(注:原文为8060,结合上下文及常见迷你主机配置推测可能指代错误或特定型号,此处忠实翻译为8060)仍有11.2个token每秒的速度。因此,只要模型能装下,eGPU就大获全胜。顺便提一下,这台机器自带Windows系统且运行良好。它实际上以与Linux完全相同的方式同时驱动两块GPU。我立即在上面安装了Linux进行双启动,但我先做了这个测试并启动了它。这正在同时使用两块GPU。这是在使用我的可扩展Web架构提示词,实际上是在两块GPU上运行。在NVtop中看起来是这样的,你可以看到第一个GPU上的那个峰值,那是NVIDIA的显卡。这里是AMD GPU,同样的峰值或稍长一点。总体而言,我们获得了87个token每秒(NVIDIA)和24个token每秒(AMD)。

这仅针对一个智能体。如果我们像10个智能体或聊天,无论你怎么称呼它,会发生什么?让我们做10个并打印出1万个token。开始吧。这会显著降低每个智能体的速度,但会展示这些GPU在多吞吐量场景下的能力。显然做了更多工作,你可以在NVtop中看到这一点。哦是的,它转速上升了,噪音也大多了。虽然噪音不是特别大,但你可以看到这里已经接近1万个token,当我们完成时它应该达到1万左右。NVIDIA 1号已完成,AMD仍在运行。现在来看看分解数据:这个智能体是70个token每秒,那个也是70,然后是72、71、79、69。所以NVIDIA智能体处理了10个任务,几乎没有任何问题,完全完成。只使用了21瓦功率。AMD那边怎么了?仍在运行。所有智能体都完成了吗?没有,有些才刚刚开始,我们大约每秒21到22个token。这展示了如果你有兴趣这样做,它是如何扩展到多个智能体的,我相信很多人都有这个兴趣。所以5080是有效的,这很酷,但16GB充其量只是个热身。我想知道如果我们装上NVIDIA制造的最大显卡会发生什么。嗯,他们确实有更大的GPU,但这是真正会卖给你10,000到14,000美元的那一款。单张GPU拥有96GB VRAM。那个杀死5080的320亿参数模型,Pro 6000以每秒69个token的速度完成它,消耗了近600瓦功率。这几乎达到了它的最大潜力。使用了19.9GB/96GB显存,速度是内置芯片的六倍。但有趣的部分来了。看吧,我加载了1220亿参数的Q4量化模型。这在磁盘上占用76.5GB。

实际上,NVTOP 显示的是英伟达那边的情况,但没有显示 AMD 那边,因为它没有连接以配合 NVTOP 工作。它的运行速度达到了每秒 121 个 token,这比那个拥有 320 亿参数的模型快得多。更大的模型反而更快了,这是怎么回事呢?原来,这个拥有 1220 亿参数的模型是一个混合专家(Mixture of Experts)模型。它总共有 1220 亿个参数,但同一时间只有 10 个处于激活状态。所以,当你在 Hugging Face 等平台上查看模型信息时,你会看到“A10B”这样的标注,这意味着激活参数为 10。也就是说,在任何时刻,实际上只有 10% 的参数被加载。虽然模型体积庞大,但它运行起来却轻快灵活。同样的技巧也帮助了内部这块小小的芯片发挥作用。

像这样拥有 350 亿参数的现代混合专家模型,例如 Qwen 2.5-32B-Instruct(注:原文为 Quen,推测指 Qwen),其运行速度几乎是传统稠密模型(Old School)的六倍。所谓“旧式”指的是稠密模型,“新式”则是混合专家模型。顺便提一下,当我第一次将这张显卡插入电脑时,计算机完全拒绝开机,屏幕一片漆黑。固件无法在启动阶段处理如此巨大的显卡。因此,我不得不先在不连接该卡的情况下引导机器进入系统。在涉及外置显卡(eGPU)尤其是通过 OCuLink 连接时,这通常是大忌,因为你不应该热插拔它们。但事实上,为了使其工作,我不得不这样做。

我先引导进入 Linux 系统,然后开启显卡电源,通过“后门”将其接入。实际上,我让 Cloud Code 帮我写了一个脚本来实现这一操作,但它确实奏效了。这样一来,这台机器基本上可以独立运行所有任务,这意味着我们大功告成了吗?不完全是。我想看看是否能投入一个连这两张显卡中的任何一张都无法单独处理的超大模型。我决定使用那个拥有 1220 亿参数的模型,但这里有一个 Q8 版本。据说它的质量更高,因为量化程度更低。你量化的越少,带走的信息就越少,从而保留更多的信息。因此,它的质量应该更好,对吧?

我实际上还没有测试过这个特定版本,但我测试了不同的量化程度所产生的输出效果。我做了一个完整的阶梯对比视频,并会在这里上方和下方留下链接。无论如何,这是那个最大的模型,它在磁盘上占用 130 GB 的空间,这意味着它无法装入上述任何一张显卡中。因此,我不得不将其拆分。一部分加载到英伟达 GPU 上,另一部分加载到 AMD GPU 上。你可以在评论区叫我疯子,但你知道的,我们在这里就是要做这些疯狂的事情。这就是我们这个频道的风格:运行一个横跨两家公司、拥有完全不同软件堆栈的显卡模型来进行推理。而且它真的可行。

运行开始了。这并不是精确的五五开,而更倾向于平衡分配。英伟达分得了 88 GB,AMD 分得了 34 GB,我们得到了每秒约 37 到 38 个 token 的速度。英伟达显卡功耗约为 150 瓦,Radeon 显卡约为 70 瓦。相当酷吧?我早就告诉过你了。但你可能会问,我是怎么做到的呢?问题在于英伟达和 AMD 使用不同的“语言”,即不同的软件堆栈。英伟达使用的是 CUDA,这项技术存在已久且相当成熟。而 AMD 使用的则是 ROCm(Radeon Open Compute Platform),不是 Rock,而是 Ro... 我之前也不知道这一点,现在知道了。

这两者通常不兼容,但 Vulkan(原文误作 Vulcan)可以在两者上运行。我之前也讨论过 Vulkan。Vulkan 是跨平台的,旨在设计用于不同平台之间(虽然这句话表述得很糟糕,但意思你应该明白了)。当你使用 LM Studio 时,你可以选择使用 CUDA 还是 Vulkan。你可以在 LM Studio 的运行时设置中直接挑选它们。它们的性能特征甚至有所不同:某些模型在 Vulkan 上运行得更好,而另一些则在 ROCm 上表现更佳。Vulkan 和 ROCm 也支持 Windows,尽管主要是 Vulkan...

第二个问题是模型太大,单张显卡无法容纳。因此,你必须像流水线一样将其切片。模型的权重由层组成。大约 70% 的层位于英伟达 GPU 上,其余部分则放在 AMD GPU 上。每一个词、每个 token 都必须经过两张显卡的处理。我们的速度在一定程度上受限于 OCuLink 接口的带宽。如果拥有更快的连接,速度会比现在更快。我遇到的另一个问题是,你可以在这台机器的 BIOS 中配置 AMD GPU。并非所有的 Strix Halo 机器都提供这种控制权,但在这里可以。你可以指定分配给该芯片(GPU)的显存数量。

我在这里选择了 96 GB。如果留在自动模式且不连接此 GPU,则必须实际指定它。我还对并发处理能力感到好奇。因为英伟达显卡在提供服务方面非常出色,特别是这张 Pro 6000(注:原文为 RTX/Pro 语境下的专业卡或消费级旗舰,结合功耗150W及上下文可能指代特定型号如RTX 4090或专业卡,但原文写的是Pro 6000可能是口误指代某款高性能卡或笔误,此处忠实翻译为 Pro 6000),在处理多个请求、多用户同时使用时表现优异,非常适合代理任务。因此,我同时发起了八个请求。当然,它的扩展性相当不错,总速度攀升到了每秒约 80 个 token。

需要澄清的是,这是两台机器共同工作的结果,而不仅仅是 Pro 6000。这里另一个不错的地方是,虽然这是一张 600 瓦的显卡(注:原文指代前文提到的大卡,可能为口误或特定型号),但在此任务中它仅消耗约 130 到 150 瓦的电力,而 AMD 机器消耗约 76 瓦。这两台机器实际上都非常凉爽,即使现在也是如此。我甚至对 RTX 6000(注:原文此处又提RTX 6000,与前文Pro 6000可能指同一张卡或口误)的凉爽程度感到惊讶。朋友们,千万不要把手伸进风扇里,这可不是个好主意。

这就引出了另一个问题:你应该购买其中一张显卡还是整个系统?嗯,如果你打算买其中之一,不如直接买个 eGPU 扩展坞。而既然买了扩展坞,不妨再配个外置显卡(eGPU)。或者,你应该考虑去年发布的型号吗?如果你不需要通过 eGPU 进行扩展,去年的型号拥有完全相同的芯片。看看这台机器的价格,它比市面上大多数具备这种新能力的 Strix Halo 机器都要便宜,这简直不可思议。更令人难以置信的是,去年的型号 X2 售价仅为 369.9 美元。实际上它更便宜,比新款便宜了约 100 美元。

你能找到任何售价低于 4,000 美元且内置 Strix Halo 芯片的产品吗?这两款机器拥有完全相同的芯片和内存,均为 128 GB。多花那 100 美元能得到什么?只是那个 OCuLink 接口而已。但你不仅获得了新功能,也在某种程度上失去了一些东西。首先是稳定性。实际上,配合底座使用时这台机器相当稳定,但摆放起来有点别扭。当它放在桌面上时,你很可能用手轻轻一碰就会把它撞倒。哦,而且你不能将它平放。

而 X2 至少可以像这样平放。然而,X2 仍然提供了大量的接口。如果你不需要 OCuLink 接口,那么 X2 是更好的选择。X3 确实很酷,它拥有 OCuLink 接口,但并没有 X2 那么多的端口。如果你还没有看过我的 X2 视频,请点击这里观看。感谢收看,我们下次再见。