# 原生 NVIDIA / CUDA 移植状态 2026-10-14。**真实 CUDA 和 GPU 光栅化尚未实现,本页不是加速验收通过记录。** 当前窗口、CSS、文字和阴影仍由 CPU 绘制。预览耗时必须另外以实际来宾计时和帧缓冲截图验收;不能将 PCI 发现、240 Hz EDID、WHPX 或宿主 NVIDIA 驱动当作 CUDA 成功。 本次继续实现了独立的 `Source/XFESystem.Gpu.Nvidia`:Blackwell Copy Engine 32 位填色与同引擎完成信号、57 位地址/GPFIFO 编码,以及在调用者提供的有效原生映射中有序发布命令、GPPut 和 doorbell,并保护尚未完成的资源。26 项宿主测试与固定官方头文件的独立二进制 oracle 通过,来源、哈希和 MIT 许可见 `Tools/Gpu`。**尚未提供 GSP/RM、DMA/GPU MMU 或通道初始化,所以模块没有被内核构造或选为渲染后端,尚无真实设备执行结果。** 私有宿主内存上的写入测试不是 GPU 测试。 ## 已写入的第一层 `NativeNvidiaDiscovery` 是 C# 原生 DriverKit 驱动,匹配 PCI `10DE` 的显示控制器。它通过所属 PCI 总线取得已经分配的 BAR,复制完整 64 位地址,读取 PCI Express 能力和 MSI-X 向量数量,并校验寄存器窗口几何。它不探测 BAR 大小、不映射寄存器、不写 MMIO、不申请 DMA、不发送 GPU 命令,最后明确返回 Declined,由总线恢复固件状态。这样不会为了显示“已加速”而抢走仍供桌面使用的固件显示面。 `PciGpuDiscovery` 与 `IRenderBackendProbe` 刻意分开。前者仅有资源发现证据,不能成为通过后端自检的候选。`NativeNvidiaDiscovery.Report` 输出的 `CudaAcceleration` 和 `GpuRasterization` 均为 0;没有 NVIDIA 来宾设备时输出 Count 0。当前 QEMU `-vga std` 没有透传 RTX 5090,因此不能在该配置中测试 NVIDIA 命令执行。 本轮资源验证的 9 项宿主测试通过;独立项目使用固定 Cosmos 3.0.94 编译该驱动,0 警告、0 错误。它们证明资源验证与 API 编译,**不证明 RTX 5090 实体初始化、CUDA 提交或显示成功**。原生镜像编译和 QEMU 记录由本轮总验收报告给出。 ## 为什么尚不能提交第一条计算命令 NVIDIA 的开源仓库包含操作系统无关的资源管理代码,以及单独的 Linux 内核接口层;官方要求内核模块、GSP 固件和用户态驱动使用对应版本。当前 XFESystem 没有该资源管理/固件协议实现,也没有 Linux 的内核或 CUDA 用户态驱动 ABI。不能把 Windows 的 `nvcuda.dll` 或 Linux 的 `.ko` 链接进裸机 C# 内核就得到 CUDA。[NVIDIA 仓库说明](https://github.com/NVIDIA/open-gpu-kernel-modules#kernel-interface-and-os-agnostic-components-of-kernel-modules) 这不是缺少一组绘图 API 名称。官方的 [Linux OS 接口实现](https://github.com/NVIDIA/open-gpu-kernel-modules/blob/main/kernel-open/nvidia/os-interface.c) 涉及页分配、映射、同步、计时、PCI 和设备访问;XFESystem 需要逐项提供本机实现。Blackwell 的 [GB202 内核代码](https://github.com/NVIDIA/open-gpu-kernel-modules/blob/main/src/nvidia/src/kernel/gpu/arch/blackwell/kern_gpu_gb202.c) 还涉及 GSP、GPU MMU、FIFO、显示和故障处理。UEFI 留下的可见 framebuffer 不证明这些资源已属于 XFESystem,也不证明存在可继续使用的计算上下文。 公开文档确实定义了 Blackwell 的计算方法和 GP FIFO 通道,例如 [Compute B 类标识](https://github.com/NVIDIA/open-gpu-kernel-modules/blob/main/src/common/sdk/nvidia/inc/class/clcec0.h)、[GP FIFO B 类](https://github.com/NVIDIA/open-gpu-kernel-modules/blob/main/src/common/sdk/nvidia/inc/class/clca6f.h) 和 [计算方法/QMD](https://nvidia.github.io/open-gpu-doc/classes/compute/)。这些是上下文内的数据格式,不是完整的设备启动程序。把格式编码进数组或让 CPU 解释它们,均不构成 GPU 执行。 ## 最小真实执行闭环 下列是基于现有缺项制定的实现顺序,不是已实现功能: 1. 固定一个 NVIDIA 驱动/GSP 协议版本,取得对应固件并记录许可证、来源和哈希;在 XFESystem 中实现 BAR 映射、DMA 内存生命周期、中断和超时。 2. 实现该芯片的 GSP 启动、通信队列、RPC、错误回报与资源管理;验证实际固件握手。不能假定主板固件已经留下可复用的计算状态。 3. 建立 GPU 虚拟地址空间并分配/映射代码、输入、输出、QMD、GP FIFO、用户通道与完成 fence。根据实际设备支持的类创建对象,不只按“Blackwell”名字硬编码。 4. 装载适合该 GPU 的真实计算程序,提交一个小型填色/向量运算,等待有期限的完成信号,再从输出读回并逐项验证。记录在 XFESystem 中执行的设备、队列、提交序号、耗时和结果哈希。 5. 将该输出接入真实显示链路,验证脏矩形、字形覆盖、透明混合、资源回收和故障回退;此时才能将桌面选择为 GPU 渲染。 6. GPU 命令执行与 CUDA 兼容是两个验收项。若只是直接提交厂商计算指令,应标记为原生 GPU 计算;只有实现/移植 CUDA 上下文、模块、内存、内核启动、同步等所需接口并跑通实际 CUDA 程序后,才能标记 CUDA 支持。 Windows 主机协助执行、远程 GPU 服务或改用 Linux 内核都不能满足本项目的自研系统独立运行要求,本轮没有采用。当前也没有安装或重绑宿主显卡驱动,没有重启宿主电脑。 ## 必须保留的验收边界 - PCI/BAR 几何测试属于驱动前置测试,不计入 GPU/CUDA 成功数。 - 真实 RTX 5090 提交只能在提供该设备的 XFESystem 环境里验收。标准 VGA 的 QEMU 只能覆盖“没有 NVIDIA 设备时正确拒绝”的路径。 - 首次预览 1 秒以内的要求应从真实点击计时到完整可用的首帧,包含原网页脚本、DOM、布局、光栅化和呈现。不能通过先显示空白页、替换成静态截图或省略网页功能来宣告达标。