Hacker News 中文摘要

RSS订阅

完全由GPU运行的CPU -- A CPU that runs entirely on GPU

文章摘要

nCPU是一个针对模型原生和张量优化的CPU研究运行时项目,提供组织化的工作负载、工具和文档,旨在优化CPU上的模型运行效率。该项目托管在GitHub上,由开发者robertcprice维护,专注于提升CPU在AI模型运行时的性能表现。

文章总结

以下是GitHub项目nCPU的主要内容整理:

项目概述

nCPU是一个完全运行在GPU上的神经网络CPU模拟器,其核心特点是: - 所有CPU组件(寄存器、内存、标志位、程序计数器)均以PyTorch张量形式实现 - 每个ALU操作都通过训练好的神经网络模型执行 - 支持两种执行模式:神经网络模式(默认)和快速模式(使用原生GPU运算)

技术亮点

  1. 创新运算方式

    • 加法:采用Kogge-Stone进位前瞻算法(8个神经网络层)
    • 乘法:基于字节对查找表的神经网络(256×256×16)
    • 位运算:向量化真值表
    • 移位:基于注意力的位路由
  2. 性能表现

    • 整数运算准确率100%(通过347项测试验证)
    • 模型加载时间60ms
    • 执行速度136-262微秒/周期(约4,975 IPS)
  3. 关键发现

    • 神经网络乘法比加法快12倍(与传统CPU相反)
    • 进位前瞻算法使加法速度提升3.3倍
    • 向量化使移位操作速度提升6.5倍

项目结构

nCPU/ ├── ncpu/ # 核心CPU实现 ├── kernels/ # Metal计算内核 ├── models/ # 23个训练模型(约135MB) ├── demos/ # 演示程序(含DOOM光线投射) ├── programs/ # 汇编程序 ├── tests/ # 测试套件 └── paper/ # 研究论文

使用方式

```bash

安装

pip install -e ".[dev]"

运行程序(神经网络模式)

python main.py --program programs/sum1to_10.asm

快速模式(原生GPU运算)

python main.py --binary firmware.bin --fast ```

演示案例

DOOM光线投射演示展示了神经网络算术的实际应用: - 神经网络模式:约2.5 FPS(所有运算通过模型) - 快速模式:约5,000 FPS(原生运算) - 两种模式输出完全相同

许可协议

MIT开源许可证

该项目由Robert Price开发,目前获得115颗星标,主要使用Python(58.7%)和Rust(40.9%)实现。

评论总结

以下是评论内容的总结:

  1. 对LLM数学计算能力的肯定

    • RagnarD认为LLM能进行精确数学计算很重要
      "Being able to perform precise math in an LLM is important"
    • deep1283对乘法比加法更快表示惊讶
      "What surprised me is the inversion where MUL ends up faster than ADD"
  2. 性能比较与疑问

    • lorenzohess询问与CPU的速度差异
      "how much slower is this than an actual CPU?"
    • nomercy400质疑传统MUL/ADD周期理论
      "MUL and ADD can be implemented in one or a few cycles...What am I missing?"
  3. 对GPU替代CPU的讨论

    • bob1029认为CPU在低延迟任务中不可替代
      "Latency hiding cannot deal well in workloads that are branchy and serialized"
    • artemonster批评完全转向GPU的建议不切实际
      "suggesting using lambos to plow fields and tractors to race in nascar"
  4. 幽默与技术想象

    • MadnessASAP调侃用神经网络模拟CPU运行ChatGPT
      "self-hosting ChatGPT on my own neural network simulated CPU"
    • mrlonglong用幽默表达惊讶
      "Now I've seen it all. Time to die.. (meant humourously)"
  5. 命名与技术本质探讨

    • andrewdb质疑GPU的命名合理性
      "Most GPUs...aren't 'processing graphics' anyhow"
    • Surac认为GPU本质是专用CPU
      "GPU are just special purpous CPU"