原生 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 仓库说明
这不是缺少一组绘图 API 名称。官方的 Linux OS 接口实现 涉及页分配、映射、同步、计时、PCI 和设备访问;XFESystem 需要逐项提供本机实现。Blackwell 的 GB202 内核代码 还涉及 GSP、GPU MMU、FIFO、显示和故障处理。UEFI 留下的可见 framebuffer 不证明这些资源已属于 XFESystem,也不证明存在可继续使用的计算上下文。
公开文档确实定义了 Blackwell 的计算方法和 GP FIFO 通道,例如 Compute B 类标识、GP FIFO B 类 和 计算方法/QMD。这些是上下文内的数据格式,不是完整的设备启动程序。把格式编码进数组或让 CPU 解释它们,均不构成 GPU 执行。
最小真实执行闭环
下列是基于现有缺项制定的实现顺序,不是已实现功能:
- 固定一个 NVIDIA 驱动/GSP 协议版本,取得对应固件并记录许可证、来源和哈希;在 XFESystem 中实现 BAR 映射、DMA 内存生命周期、中断和超时。
- 实现该芯片的 GSP 启动、通信队列、RPC、错误回报与资源管理;验证实际固件握手。不能假定主板固件已经留下可复用的计算状态。
- 建立 GPU 虚拟地址空间并分配/映射代码、输入、输出、QMD、GP FIFO、用户通道与完成 fence。根据实际设备支持的类创建对象,不只按“Blackwell”名字硬编码。
- 装载适合该 GPU 的真实计算程序,提交一个小型填色/向量运算,等待有期限的完成信号,再从输出读回并逐项验证。记录在 XFESystem 中执行的设备、队列、提交序号、耗时和结果哈希。
- 将该输出接入真实显示链路,验证脏矩形、字形覆盖、透明混合、资源回收和故障回退;此时才能将桌面选择为 GPU 渲染。
- GPU 命令执行与 CUDA 兼容是两个验收项。若只是直接提交厂商计算指令,应标记为原生 GPU 计算;只有实现/移植 CUDA 上下文、模块、内存、内核启动、同步等所需接口并跑通实际 CUDA 程序后,才能标记 CUDA 支持。
Windows 主机协助执行、远程 GPU 服务或改用 Linux 内核都不能满足本项目的自研系统独立运行要求,本轮没有采用。当前也没有安装或重绑宿主显卡驱动,没有重启宿主电脑。
必须保留的验收边界
- PCI/BAR 几何测试属于驱动前置测试,不计入 GPU/CUDA 成功数。
- 真实 RTX 5090 提交只能在提供该设备的 XFESystem 环境里验收。标准 VGA 的 QEMU 只能覆盖“没有 NVIDIA 设备时正确拒绝”的路径。
- 首次预览 1 秒以内的要求应从真实点击计时到完整可用的首帧,包含原网页脚本、DOM、布局、光栅化和呈现。不能通过先显示空白页、替换成静态截图或省略网页功能来宣告达标。