用于可微分神经计算机、基于GPU的CPU模拟和程序合成的研究运行时。具备神经ALU、恒定时间加密、JEPA世界模型以及基于Metal的自托管C编译器。
一台完整的计算机,其中每一层——算术、操作系统、编译器、显示——要么是训练好的神经网络,要么完全在GPU上运行。
模型不是在计算机上运行。模型就是计算机本身。
nCPU 是一个代码库,从五个方向追求同一论点:计算机可以由学习到的组件构建,而一旦整个执行栈是可微分的,程序就不再是你编写的东西,而变成了可以通过梯度下降搜索的对象。下面的每个子系统都基于独立的测量;它们共同覆盖从单个 ALU 操作到操作系统再到程序合成的整个栈。
每个 ALU 操作——加法、减法、乘法、位运算、移位、除法——都是一个训练好的神经网络。神经操作系统 (neurOS) 管理内存、调度进程、并通过 11 个训练好的模型编译代码,没有任何手工编写的回退方案。神经显示器通过 char→glyph MLP 和一个 ConvNet(143K 参数)渲染字符。完整流水线——源代码 → 神经编译器 → 神经汇编器 → 神经 CPU → 神经显示器——是端到端可微分的。
神经 ALU 在 32 位整数运算上达到 100% 准确率,经过每个可能输入的穷举验证。一个结果颠覆了传统的硬件层次结构:在这里乘法比加法快12 倍,因为加法需要 8 次传递的进位链,而乘法分解为并行的字节对查表。
| 指令 | 策略 | 延迟 |
|---|---|---|
| ADD/SUB/CMP | Kogge-Stone 先行进位(8 次传递) | 248 µs |
| MUL | 字节对 LUT(65,536 条目) | 21 µs |
| AND/OR/XOR | 向量化真值表 | 21 µs |
| SHL/SHR | 基于注意力的位路由 | 434 µs |
| DIV | 恢复除法(神经减法) | 变化 |
neurOS 组件准确率:
一个在单个 GPU 上自给自足的计算机——CPU 仅在引导时参与。Rust + Metal 内核执行约 200 条 ARM64 指令(整数和浮点),速度约为 190 万条指令每秒,具有零拷贝共享内存,且运行间周期计数方差为零(σ = 0.0)。
在上面运行的内容:
nSynth 是一个基于 Rust 的程序合成系统,通过梯度下降、枚举和搜索从输入/输出示例中发现可执行程序。结合全面的机器学习/张量引擎和完整的 Web 栈,它能够合成:
覆盖率: 420/420 个合成问题(Mog:315/315,nSynth:105/105)
三大支柱:
cd nsynth
cargo run --release --bin nsynth_codegen --lang python --examples '{
"name":"reverse","signature":"fn reverse(arr: List<i64>) -> List<i64>",
"examples":[{"inputs":[[1,2,3]],"expected":[3,2,1]}]
}'
# → def reverse(arr): return arr[::-1]
神经 ALU 作为路由专家注入到 Transformer 的前向传播中。一个学习到的逐 token 门控决定每个 token 是流经原始的 MLP 还是流经神经 ALU。双线性软真值表提供可微分的逻辑,张量操作提供可微分的算术,门控由模型置信度调制。
来自 11 个模型的扫描结果(涵盖 Qwen 2.5/3/3.5 系列),针对算术任务:
实际迁移效果是经过测量的,而非外推:在完整 HumanEval 上(Qwen3.5-4B, A100),从 62.2% 提升到 64.6%——多解决了四个问题。
计算机本身的预测世界模型。在精确执行的同时,一个 JEPA 风格的网络(联合嵌入预测架构)学习在压缩的潜在空间中预测机器状态转换:
latent_state_t + 指令 → 预测器 → latent_state_{t+1}
它在两个层面运行。一个 Python 演示(ncpu/jepa_neural_cpu/)在预测器旁边执行真实程序,将预测误差转化为实时异常信号。一个 Rust Metal 实现(kernels/rust_metal/src/jepa/,2,858 行)观察确定性 GPU 执行,并通过学习到的偏差覆盖主动引导调度。
由于底层的基板是精确的,这个世界模型具有大多数模型缺乏的两个特性:无限制的免费地面真值(运行更多程序),以及能够随意混合预测执行和精确执行——探索时使用廉价的潜在推测,重要时使用精确执行。长期方向是构建一个位级、指令级、程序级和任务级的预测器层次结构。
python3 -m ncpu.jepa_neural_cpu.demo # 自底向上的 JEPA 神经计算机演示
python -m ncpu.world_model.quickstart # JEPA 机器世界模型快速启动
pip install -e ".[demo,dev]"
# 头号演示:作为完整计算机的 GPU(macOS / Apple Silicon)
python -m ncpu gpu # 启动它
python -m ncpu gpu --neural-alu # 在 Metal 着色器中加入神经 ALU
python -m ncpu gpu debug # 26 命令确定性调试器
# 跨平台,无重型依赖
python -m ncpu discover # 通过示例编程,使用可微分合成
python -m ncpu text --interactive # 神经文本/密码机
# 完整神经流水线(需要模型栈)
python -m ncpu full-neural # 自底向上的神经 CPU + 神经显示
python -m ncpu meta-compare # 并排对比演示
# JEPA 预测层
python3 -m ncpu.jepa_neural_cpu.demo
python -m ncpu.world_model.quickstart
# 原生 Rust,无需 Python
cd kernels/rust_metal
cargo run --bin ncpu_run -- --elf ../../demos/gpu/busybox.elf --rootfs -- echo hello
三种模式执行相同的程序并产生相同的结果。神经模式将每个操作都通过训练好的网络。快速模式使用原生张量,具有相同的 ISA 和相同的可微分性。计算模式以梯度流换取速度——正是在这里,UNIX 操作系统启动、编译器自托管、BusyBox 运行。
# 神经模式——每个操作都是训练好的模型
from ncpu.model import CPU
cpu = CPU(neural_execution=True)
cpu.load_program("MOV R0, 7\nMOV R1, 6\nMUL R2, R0, R1\nHALT")
cpu.run()
print(cpu.get_register("R2")) # 42 — 由神经字节对 LUT 计算
# 可微分协处理器——注入任意 Hugging Face 模型
from ncpu.coprocessor import inject_ncpu_coprocessor, NCPUCoprocessorConfig
config = NCPUCoprocessorConfig(confidence_aware=True, deterministic_alu=True)
inject_ncpu_coprocessor(model, config)
# 可微分程序合成
from ncpu.differentiable import ProgramSynthesizer, SynthesisSpec
spec = SynthesisSpec(examples=[
({0: 3.0, 1: 5.0}, {2: 8.0}),
({0: 7.0, 1: 2.0}, {2: 9.0}),
])
synth = ProgramSynthesizer(max_program_len=6)
result = synth.synthesize(spec, max_iters=2000)
# 发现: ADD R2, R0, R1; HALT
# JEPA 世界模型——预测机器状态转换
from ncpu.world_model.je_world_model import JEWorldModel, JEWMConfig
model = JEWorldModel(JEWMConfig(state_dim=22, action_dim=8))
pred = model.predict_next_latent(model.encode_state(state), model.encode_action(action))
这里的 GPU 执行产生零周期计数方差——在 270 次运行中 σ = 0.0,而相同代码在原生 Apple Silicon 上显示 47–73% 的时序方差。由于没有数据缓存,就没有缓存行和缓存未命中惩罚,因此 AES T 表攻击无从下手。
基于这一特性,ncpu/crypto/ 提供了恒定时间的 AES-128(ECB 和 CBC),由 19 个恒定时间基元构建,通过所有 FIPS 197 和 NIST SP 800-38A 测试向量。
一个隐藏的控制器,将神经机器的一部分转变为用于代码生成的内部协处理器:缓冲的思考 → 写入 → 验证 → 修补 → 提交循环,学习到的动作/暂停/描述符/状态修补/内存头,以及在推理期间更新的任务局部快速权重。学习到的内存头将验证 MSE 比基线降低了 83.26%。
端到端测量:qwen3.5:4b 的 HumanEval+ 从 147 提升到 154,qwen3.5:9b 从 144 提升到 156;qwen3.5:9b 的 BigCodeBench-Hard 从 33 提升到 49。
SUBLEQ 加上 MUX,在三种执行模式下运行。在神经模式下,SUB 经过 Kogge-Stone 先行进位(约 248 µs),MUX 经过神经 AND/OR/NOT(约 63 µs)。它加载 .dec 镜像并启动 eForth。关键在于:如果训练好的网络能够精确执行一个双指令的单指令集计算机,那么这种构造可以扩展到任何指令集。
cargo build --release --bin nsynth_codegen
./target/release/nsynth_codegen --lang python --examples '{
"name":"square","signature":"fn square(x: i64) -> i64",
"examples":[{"inputs":[0],"expected":0},{"inputs":[3],"expected":9}]
}'
# → def square(x: int): return (0 * x * x) + (1 * x * x) + 0
ncpu/
differentiable/ # 可微分执行、程序合成、ISA 发现
coprocessor/ # 将 nCPU 注入 Transformer 前向传播
execution_training/# 可微分执行作为代码语言模型的训练信号
crypto/ # 恒定时间密码学 (AES-128)
distributed/ # 多 GPU 分布式执行
jepa_neural_cpu/ # 自底向上的 JEPA 神经计算机演示
world_model/ # JEPA 机器世界模型(预测动力学)
autoresearch/ # 自动化研究 + 复合 NPCoT 循环
os/
neuros/ # 神经操作系统:17 个模块 (MMU, TLB, 缓存, 调度器...)
gpu/ # GPU UNIX 操作系统:shell, 文件系统, ELF 加载器, C 源代码
self_optimizing/ # SOME:隐藏控制器, 快速权重
neural/ # NeuralCPU:神经 ALU 桥, 编织流水线
model/ # 基于模型的 CPU (neural_ops, assembler)
tensor/ # 基于张量的 ARM64 模拟器 (可微分)
# 编译/加速后端
kernels/ # rust_metal (Rust+Metal ARM64 内核), mlx, npcot_wasm
nsynth/ # 通用合成引擎:梯度 + 枚举 + 搜索 + ML + Web
# 420/420 合成覆盖率, 1000+ ML API, 500+ Web API
# 核心:程序合成 (105/105), ML/张量 (18+ 模块), Web (19+ 模块)
# 通用 ML:注意力, 扩散, 流, ODE, NeRF, RL, 元学习
# 完整 Web:WASM, WebGPU, 框架, API, 样式, 打包
packages/ # 配套包 (metal_mlp)
# 模型和合成语料库
models/ # 训练的神经组件权重 (参见 models/MODEL_INDEX.md)
programs/ # 合成基准语料库 (算术, 位运算, 算法, ...)
# 证据, 论文, 实验
artifacts/ # 论文引用的已提交基准结果 + 测试
paper/ # 研究论文 + 模块化章节
benchmarks/ # 基准测试驱动脚本
experiments/ # 探索性实验运行
# 使用和运维
examples/ # 最小可运行演示 (每个执行路径一个)
demos/ # 较大的展示演练 (BusyBox, Alpine, 编译器)
scripts/ # 入口点 + 维护者自动化
tools/ # 开发者工具
training/ # 训练流程
packaging/ # 部署脚手架 (Homebrew, Modal, DEPLOYMENT.md)
# 测试, 文档, 资源
tests/ # 测试套件 (参见 tests/README.md)
docs/ # 文档
assets/ # 徽标 / 静态资源
# 构建和运行时输出 (gitignore 忽略 — 可重新生成, 不提交)
checkpoints/ # 大型 .pt 权重检查点
training_results/ # 协处理器缩放扫描, 消融研究
dist/ # 构建分发包
logs/ outputs/ # 运行日志和临时输出
每个顶级目录都有自己的 README.md 描述其用途。
python -m ncpu doctor
pytest tests/ -q # 2,500+ 测试覆盖整个堆栈
覆盖范围包括 ALU 的穷举形式化验证、神经操作、neurOS、计算模式、多进程执行、MUXLEQ、BusyBox/Alpine、GPU 调试工具包、协处理器、Mog 合成、可微分执行、恒定时间密码学、自修改程序、diff 编译器、多 GPU 分布、SOME 和 JEPA 预测模型。
MIT
| 组件 | 准确率 | 组件 | 准确率 |
|---|
| MMU | 100% | 汇编器代码生成 | 100% |
| TLB | 99.6% | 汇编器词法分析器 | 99.4% |
| 缓存 | 99.7% | 编译器优化器 | 95.2% |
| 调度器 | 99.2% | 看门狗 | 100% |
| 预取 | 97.8% | 块分配器 | 98.4% |
| 模型 | 算术准确率 | 备注 |
|---|
| Qwen3.5-2B (instruct) | 14.5% → 71.0% (+56.5 个百分点) | 总体最佳 |
| Qwen3.5-2B (base) | 15.5% → 63.0% (+47.5 个百分点) | ADD/SUB/MUL/DIV 均为 100% |
| Qwen3.5-4B | +51.0 个百分点 | 基础模型提升最大(并列) |
| Qwen3.5-9B | +51.0 个百分点 | 基础模型提升最大(并列) |
| 模式 | 运行内容 | 可微分? | 速度 |
|---|
| 神经 | 13 个训练好的 .pt 模型 | 是——完整梯度流 | ~5K IPS |
| 快速 | 原生张量操作 | 是——标准自动微分 | ~5K IPS |
| 计算 | Rust + Metal 着色器 | 否(离散硬件) | ~1.9M IPS |
| 层 | 实现 | 结果 |
|---|
| ALU | 13 个训练好的 .pt 模型 | 精确的 32 位整数算术,经过穷举验证 |
| OS | neurOS——11 个神经模型,无回退 | 学习到的 MMU、TLB、缓存、调度器、编译器 |
| GPU 计算 | Rust Metal 内核,约 200 条 ARM64 指令 | 任意程序,约 1.9M IPS |
| UNIX OS | 在 Metal 上编译的 C 语言 | fork/pipe/wait,25 命令的 shell,28 个系统调用 |
| 编译器 | cc.c,约 4,200 行,自托管 | 编译自身,然后编译程序——在 GPU 上 |
| ELF 加载器 | 在 GPU 上运行真实 Linux 二进制文件 | 在 Metal 上运行 BusyBox 和 Alpine Linux v3.20 |
| 协处理器 | Transformer 前向传播中的神经 ALU | Token 通过神经算术进行路由,有测量到的增益 |
| JEPA | 机器动力学的预测世界模型 | 在精确基板上的潜在推测 + 异常检测 |
| 程序合成 | 通过执行反向传播 | 从 I/O 示例中发现程序 |
| 恒定时间密码学 | AES-128 ECB/CBC (ncpu/crypto/) | σ = 0.0 时序;通过 FIPS 197 + NIST SP 800-38A 向量 |
| 多 GPU | 具有共享内存的分布式核心 | 跨 GPU 的 fork/pipe/wait;并行和流水线执行 |
| SOME | 带有潜在头的隐藏控制器 | 自优化推理;HumanEval+ 和 BigCodeBench 的增益 |