[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f6jw3posmbtzg":3},{"code":4,"message":5,"data":6,"timestamp":32},10000,"success",{"full_name":7,"position":8,"description":9,"language":10,"stars":11,"forks":12,"stars_gained":13,"age_days":14,"hn_threads":15,"one_liner":22,"summary_md":23,"topic":24,"github_topics":27,"license":28,"homepage":29,"updated_at":30,"history":31},"chenglou\u002Fhandwired",1,"Turn your regular JavaScript code into a neural net.","TypeScript",1986,157,195,10,[16],{"id":17,"title":18,"points":19,"comments":20,"posted_at":21},50105735,"Handwired",3,0,"2026-10-15","把普通 JavaScript 的控制流编译成可微的矩阵乘加 ReLU 计算图，让程序无需训练即可在 GPU 上并行执行。","## 解决什么问题\n\n真实的代码大多是控制流：分支、循环、可变状态。GPU kernel 和神经网络运行时是为稠密算术设计的，想把普通程序搬上 GPU，通常得用 kernel 语言或张量 DSL 重写。Handwired 走的是反方向：把 JavaScript 的 if-else、循环和状态下降成 float 上的矩阵乘法加 ReLU，再在 JS 或 WebGPU 上执行。README 自己的例子很能说明问题：一个对常量的三元表达式被改写成两个 ReLU 构成的指示函数，两个分支都计算，再用算术结果挑一个。\n\n## 有什么不同\n\n和 PyTorch 这类数组式张量框架相比，Handwired 不是拿来写模型的库，而是对程序结构做变换。和手写 WebGPU compute shader 相比，你保留普通单线程 JavaScript，由编译器去找并行度。真正有特点的只有两点：因为输出只剩 matmul 和 ReLU，整个程序是可微的，所以冻结的权重可以解冻训练，也可以把一个冻结程序接到通用网络上端到端训练；也因为原语集合极小，fusion、稀疏化、重排这类 GPU 优化有了很好的下手对象。\n\n## 适合谁\n\n适合研究者和对编译器好奇的工程师，用来玩一些奇怪的问题：训练程序里的常量到底会发生什么，或者怎样用普通 JS 在 GPU 上对 10 万份文档做带分支的搜索。README 里那个毫秒级的 JSON 搜索 demo 是最具体的卖点。它不适合现在就要上生产推理的团队：README 没有给出 API 稳定性、错误处理或真实 JS 语义覆盖的承诺，\"无需训练、精确\"的说法只在展示的玩具例子上成立，并不保证任意代码。如果你需要成熟的 GPU 张量库或模型服务栈，应该另找工具。\n\n## 上手成本\n\nREADME 坦诚地表明项目处于早期：clone 之后 `bun install`，再 `bun start`，然后去读 `docs\u002F`、`src\u002F` 和 `template\u002F`。这意味着需要 Bun 运行时，并且愿意读源码而不是文档。项目是 MIT 协议， licensing 不是障碍。主要风险在成熟度和语义覆盖：README 是概念宣讲加 demo，`lab\u002F` 被明说是一堆旧实验，看或不看都行。浮点数的数值行为、无界循环怎么处理、到底支持多少 JavaScript 特性，在提供的材料里都没有说明，所以这些说法应当当作方向而非保证。\n\n## 点评\n\nHandwired 是一个真正少见的想法：把程序编译成可微计算图，而且原语集合小到让 GPU 优化变得可行。但 HotRepo 的信号说明这是全新项目：只有 9 天，约 1,984 star，在新 TypeScript 榜上起步很快，并没有长期跟踪的历史；外面唯一的讨论是一条安静的 Hacker News 帖子。这个形态说明它是一波爆发，而不是成熟工具。如果你喜欢编译器和自动微分实验，或者想验证\"训练冻结程序\"这条思路，值得花一个下午；在语义和 API 有文档之前，不值得依赖。",{"slug":25,"name":26},"machine-learning","机器学习",[],"MIT","https:\u002F\u002Fchenglou.me\u002Fhandwired\u002F","2026-10-25T01:06:36Z",[],1792918240]