直到目前,Windows on ARM 电脑一直不支持 Nvidia 的桌面 GPU,主要原因是该公司尚未发布公开的 Windows ARM64 驱动,而且 Windows on ARM 实际上一直与高通芯片绑定。Nvidia 现在通过 RTX Spark 项目提供了 ARM64 驱动,但它面向的是 RTX Spark 系统,而不是现有的桌面 GeForce GPU。
现在情况变了,一名开发者取得突破,在从 RTX Spark 软件中提取出 ARM64 Nvidia 驱动后,让 RTX 4060 在 Windows 11 ARM 上成功运行。

最先由 Windows Latest 发现的是,一名开发者(在哔哩哔哩上用户名为 VoidTech)成功让一块 Nvidia RTX 4060 搭配华为青云台式机使用,该机器搭载的是鲲鹏 920 处理器。
不了解的人可以知道,鲲鹏 920 是一款基于 Arm 的服务器处理器,采用的底层架构与智能手机芯片或新款 Snapdragon X Elite 相同。
“成功在运行 Windows 11 ARM 的华为鲲鹏 920 上驱动 NVIDIA 独立显卡。硬件:华为青云 W510(鲲鹏 920)+ RTX 4060,”这名开发者在哔哩哔哩的视频中写道,原文经 Google Translate 翻译。
“显卡功能正常,无视频输出信号,适合串流使用,”他补充道。

我看了这段中文视频,并把它上传到我的 YouTube 频道作为镜像链接。我还注意到一些有趣的细节。该设备看起来是一台华为青云 W510 ARM 工作站,配备 24 核鲲鹏 920 处理器(ARMv8.2)、32GB DDR4-2933 内存,以及 8GB 显存的 RTX 4060。
Kunpeng 920(24 核)和 2 × 16GB DDR4-2933 规格页虽然 Windows 11 on ARM 似乎能很好地配合 RTX 4060 工作,但仍有一些限制,几乎可以肯定它不能当作日常主力机使用。例如,某些游戏根本无法运行。
此外,考虑到 x64 翻译会消耗大约四分之一的 CPU 性能,性能大幅下降几乎是必然的。
如你所知,华为仍受美国贸易限制,鲲鹏 920 系统并非为 Windows 设计,也没有得到官方支持。青云 W510 主要面向 Linux 系统,包括统信 UOS。
这也意味着 Windows 不支持华为系统中的 ACPI 表和硬件配置。ACPI 必须兼容,Windows 才能与硬件、处理器、电源管理和外接设备通信。

最终,开发者使用了一个开源补丁项目 dixyes/d920s10 来修正 ACPI 表,从而让 Windows on ARM 成功启动。

不过,让 Windows 与鲲鹏 920 正常配合只是问题的一半,因为 GeForce 驱动是为英特尔和 AMD 的 x64 处理器构建的。虽然 Windows 11 可以将许多 x64 应用翻译运行在 ARM 上,但它无法翻译内核级驱动。
这也是我们一直没看到类似实验的原因,也是 Nvidia 对 Windows on ARM 保持沉默如此重要的原因,因为到目前为止,这个平台几乎只属于高通。
RTX 4060 本身使用 PCIe 4.0 x8 接口,开发者从 RTX Spark 软件中提取出原生 Windows ARM64 Nvidia 驱动,并将其安装到桌面 RTX 4060 上。随后 Windows 成功识别到显卡,并启用了硬件加速、DirectX 12 和 Vulkan。
这块显卡甚至在 Windows 自带的 DirectX 诊断中显示为 WHQL 认证。

开发者表示,这个看起来像是 590 版本的驱动基于 Nvidia 的统一架构,这意味着理论上还可以支持其他 RTX 显卡,包括 RTX 20、30、40 和 50 系列。
Nvidia 自己的工具显示其精确版本为 591.33,搭配 CUDA 13.1。

不出所料,搭配 Windows 11 Arm64 的 RTX 4060 几乎没法正常使用,因为性能很差。RTX 4060 本身看起来工作正常,但游戏性能受到华为鲲鹏 920 处理器的严重限制。
大多数 Windows 游戏都是为 x64 处理器构建的,因此 Windows 运行时必须将它们翻译为 ARM64。与现代桌面处理器相比,鲲鹏 920 的单核性能也较弱。因此,GPU 很多时候都在等待 CPU。

不过,我们还是有一些测试结果:

不过,据称包括 Night Raid、Solar Bay 和 Speed Way 在内的 3DMark 原生 ARM64 版本测试运行时没有同样的问题。Night Raid 得分 43,530,Solar Bay 约 32,370,Speed Way 为 2,252。Time Spy 则是例外,因为它仍通过 x86/x64 翻译运行,而非原生运行,图形得分为 6,369。

开发者还测试了 x64 版本的 Blender,它通过 Nvidia 的 CUDA 渲染器成功检测到了 RTX 4060。任务管理器确认 GPU 正在处理渲染任务,占用率达到约 89%,不过 Blender 本身仍是在 Windows 的 x64 翻译层下运行。
之所以需要这种变通方法,是因为目前除 WSL 外,还没有原生的 Windows on ARM CUDA 工具包,所以 CUDA 应用暂时只能以 x64 版本运行。
Blender 渲染,任务管理器显示 RTX 4060 约 89%开发者还运行了 Nvidia 的三项 RTX 光追演示。第一项正确渲染了光线追踪和 DLSS,第三项,也就是上面的《星球大战:反射》演示,则在 23 到 25 FPS 下顺利启用了光线追踪和反射。
不过第二项演示完全无法开启光线追踪,开发者认为这可能是 GPU 检测错误,也可能是因为驱动是从其他产品中提取出来的。

Windows on Arm 本身并不是为游戏而设计的,而且这么多年投入下来,高通在让反作弊软件正常工作方面也仍然吃力。
同样的问题也影响到了 Windows 11 Arm64 上的 RTX 4060 移植,因为内核级反作弊仍是个难题。在这次测试中,《尘白禁区:终末地》无法运行,启动后不久便无声退出。
开发者怀疑是其 ACE(Anti-Cheat Expert)反作弊,或者 x64 翻译导致游戏渲染出错,但无法确认具体原因。
另一个问题是,华为的 ARM 设备在连接 RTX 4060 时无法直接向显示器输出视频。
问题还不止于显卡,因为华为主板没有 Windows 驱动,所以其板载网卡和其他组件在 Windows 下完全无法工作。
为绕过显示问题,开发者不得不使用 Sunshine 和 Moonlight 将 Windows 桌面和游戏画面远程串流到另一台设备,这也会让整体观感更慢一些。