News Hacker|极客洞察

235 74 天前 github.com
🤯在 GPU 上用神经网络实现完整 AArch64 CPU(乘法快于加法,性能极差)
用神经网络在 GPU 上跑 CPU,是省电还是纯炫技?

🎯 讨论背景

作者做了一个把完整 CPU 行为用训练好的神经网络在 GPU(通用并行加速器)上近似并运行的实验,并实现了对 AArch64(ARM 的 64 位指令集)的仿真与可视化 demo。评论围绕两个轴展开:一是工程可行性与性能(有人报告加减实现相比传统 CPU 慢约 625,000×,同时出现乘法比加法快的现象),二是方法论与潜在研究价值(如可微分执行管线对程序合成的启发)。讨论把该项目与历史上的并行/加速尝试联系起来(例如 Xeon Phi、Larrabee、Transputer、Blue Gene Active Storage)并引出关于内存体系(GDDR/HBM vs regular RAM)、统一内存/APU 和异构整合的技术要点。总体语境是把这项工作当作有趣的概念证明和研究方向启发,而非立刻能替代传统 CPU 的工程方案。

📌 讨论焦点

趣味性与探索价值

这是一个典型的“能不能做到”的黑客式实验:作者用训练好的神经网络模块在 GPU 上仿真完整的 AArch64 ISA,目标是最终在 GPU 上运行操作系统或由 learned systems 组成的系统。项目声称整数算术达到“100% accuracy”,并在页面底部提供了 DOOM raycast 等可视化演示作为证据和趣味展示。评论区大多把它看作有创意的 proof‑of‑concept,既赞赏其想象力,也认为这是一个为后续研究和更高效实现提供基线的有趣项目。总体语气倾向于把它当作学术/爱好性实验而非立刻可用的生产方案。

[来源1] [来源2] [来源3] [来源4] [来源5]

性能与可行性怀疑

多位评论者指出实用性问题并给出具体数据:基于加减的实现相比 2.5GHz 的 CPU 约慢 625,000×,远不能用于通用计算。实现中出现的性能倒置(乘法约比加法快 12×)被解释为神经网络把乘法当作并行查表近似,从而消除了进位链的序列依赖,但这种折衷并不能弥补整体慢几个数量级的问题。有人提出更务实的替代方案:用 QEMU 将目标指令翻译成 GPU shader 并复用 GPU 的原生算术/逻辑单元,这类方法在理论上会比用神经网络近似快得多。评论还强调现实系统需要 CPU 来调度/引导 GPU,且训练依赖、确定性与可证明正确性都是严重的工程障碍。

[来源1] [来源2] [来源3] [来源4] [来源5] [来源6]

异构与体系结构分工辩论

讨论把这项工作放在更大的异构计算语境:CPU 通过预测、分支处理和极低延迟来直接处理串行/branchy 工作负载,而 GPU 通过大规模并行来隐藏延迟,二者在调度与程序模型上本质不同。评论中提到现实中的折衷与融合路径,例如 APU/统一内存(像 Apple M 系列或 nVidia Jetson)、PS5 那类使用 GDDR 的 APU,以及将 HBM 放到封装上的设想来缩小带宽/容量矛盾。讨论细化到内存带宽与容量的权衡(GDDR/HBM vs regular RAM)、缓存/NUMA 行为和 compute‑in‑memory 等,使得“简单把所有软件搬到 GPU”在工程上并不可行。总体观点是短期内不会完全淘汰 CPU,但更紧密的异构整合是合理的演进方向。

[来源1] [来源2] [来源3] [来源4] [来源5]

理论与研究潜力

一些评论关注该做法带来的理论新颖性:如果把执行流水线用可微分的网络表示,则执行本身可做 end-to-end 的反向传播,理论上可以用梯度方法去学习指令序列或做程序合成,这比单纯追求速度更具研究价值。神经网将乘法作为并行近似/查表处理的观察与模拟计算中乘法便宜、加法需要前缀/进位链的对照,提示了在低精度/近似计算范式下不同操作复杂度的重新评估。另有观点认为,把低级机器码“作为思考对象”整合进 LLM,有助于提升模型在精确算术与低级推理上的能力,即便当下效率不可比拟。整体上评论把主要价值指向方法论和未来研究方向,而非当下的工程实用性。

[来源1] [来源2] [来源3] [来源4]

讽刺与对“把 AI 扔到一切问题上”潮流的批评

若干评论用讽刺口吻批评把神经网络强行替换现有工具或硬件的趋势,举例嘲讽用拍照测量木板尺寸或用 AI 做所有事情的荒谬性。有人认为这类观点部分来源于对处理器架构差异的无知,把 GPU 当成万能加速器的流行说法被视为误解和炒作。还有评论从经济与能耗角度讽刺厂商和研究者的动机,提示技术好玩不等于有商业或能耗合理性。整体情绪是既好奇又怀疑,并带有明显的调侃与警惕意味。

[来源1] [来源2] [来源3] [来源4]

📚 术语解释

AArch64: ARM 的 64 位指令集架构(AArch64),本文中作者声称用神经网络在 GPU 上仿真完整的 AArch64 ISA。

NPU (Neural Processing Unit): 专门为神经网络推理设计的硬件加速器,评论中有把 GPU 视为 NPU 或讨论将实现迁移到真正的 NPU 的想法。

GPGPU: General‑purpose GPU,即把 GPU 用于通用并行计算的范式,讨论把该实验放在 GPGPU 的历史与实践语境下进行评估。

QEMU: 一个开源的机器仿真与动态二进制翻译器,评论提到通过 QEMU 将 CPU 指令翻译为 GPU shader 并复用本地算术单元会比用 NN 近似更高效。

HBM (High Bandwidth Memory): 高带宽内存技术,常用于加速器封装以提供极高带宽但通常容量有限,评论中用于讨论把 GPU‑class 内存与系统内存的权衡。

GDDR: Graphics DDR 类型显存,带宽高但容量与随机访问特性与系统 RAM 不同,评论用它来解释 APU/PS5 等设计的带宽/容量限制。

APU: 指把 CPU 与 GPU 更紧密集成、共享内存的加速处理单元(例如某些 SoC 设计),讨论中把 APU/统一内存作为异构整合的现实路径。

subleq / muxleq: subleq/muxleq 是基于单指令(OISC)或 multiplexed subleq 的极简虚拟机/指令集,评论里有人建议用它在 GPU 上重构小型 VM 做实验对比。