smolnero

RSS: https://smolnero.com/posts_feed
第一性原理思考(GitHub)

蠕虫式驻留:劫持整个 GPU 的调度权

作者梳理 GPU 内核边界的演变:传统模型中 host 逐个派发 kernel,kernel 结束后再协调下一步;Hexagon-MLIR 的融合思路把多个算子合并到一个可推理区域,减少中间值的搬运与读回;Hazy Research 的 megakernel 进一步把解释器、依赖调度和资源管理搬进一个常驻 GPU 的程序,让 GPU 内部直接消费任务,不必每次回到 host 做原生 dispatch。 文章的核心论点:去掉 kernel 边界不是免费的,同步、竞争、死锁、共享内存/register/SM 时间限制都要在常驻程序里自己管;不同层次(编译器、host runtime、设备侧软件、硬件)各自掌握不同信息,把调度决策下移到更靠近硬件的一层只有在该层拥有 host 用不上的实时信息时才划算,否则只是把复杂度搬了个位置。 还提到 AMD RX 7900 XTX 上常驻 tinygrad UOps 的实验、Flapping Airplanes 的 Worm 方案,以及 ThunderKittens、HipKittens、TileLang 等对 tile/worker/pipeline 控制权的不同取舍。 作者强调 capacity ≠ coordination,机器可以并行度极高但调度差就会浪费;常驻 kernel 一旦能持续接受新任务、解释执行、协调资源,就开始像 runtime 本身的一部分,离"劫持整个 GPU"只差一步。
评论点赞收藏16 天前

图与硅片之间:深入 Apple Neural Engine 编译器

<figure> <img src="https://cdn.u.pika.page/TUWMwhKDeW1hS8FUix0jVcd62WK6nIHtF_vh5uuLTKk/s:1800:1400/fn:SNxDarwin/plain/s3://pika-production/ppp60f14eq1s63ay2mdy7ygpdnpk"> </figure><p>当我继续深入编译器的深渊时,有一个想法终于开始在我心中成形,编译器不仅仅是把语言A转化成机器B的翻译器。这个描述在刚开始学习时很有用,但它忽略了编译器有趣的大部分内容。<br><br>编译器也是一种管理信息的系统,同时逐步改变程序的形式。在每个阶段,它都必须决定哪些仍然重要,哪些可以转换,哪些最终可以丢弃。</p><p>这也是我在写LLVM时感兴趣的重要原因,也直接影响了KGEN和MLIR。LLVM促使我思考为什么存在中间表示。KGEN进一步复杂化了这一问题,展示了为什么单一表示可能并不总是足够。<br><br>Mojo可以在LIT中保留源级信息,同时保持信息仍然有用的信息;在参数信息仍然重要时进入KGEN,并在编译器完成推理前通过HLCF保持结构化控制流。</p><p>大部分讨论都围绕着编译器<em>想要</em>无论是保存还是改造。我的下一个项目,斯宾塞·布林格尔森的引入了稍微不那么可谈判的东西,那就是机器本身。</p><p>苹果神经引擎是一个异常不透明的目标,鉴于这是苹果,这应该会让人感到意外<strong>没人</strong>.苹果通过Core ML公开公开了ANE,而编译器、程序格式、驱动、固件以及其底层的大部分机制仍未被记录。<br><br>Bryngelson的论文是对该栈的独立逆向工程,基于对苹果私有软件的直接测量和分析。在本文中,我主要关注编译器之后,神经网络图被转化为ANE实际可执行的过程。</p><p>考虑一个神经网络图,由卷积、偏置加法和ReLU激活组成。在图层面,这三种操作…</p>
评论点赞收藏24 天前

Mojo 编译器第一性原理:KGEN、MLIR 与编译器选择记住什么

Mojo 编译器不经过传统 AST,而是早期就进入 MLIR 的 LIT dialect,再经 KGEN/POP/HLCF 等多个 dialect 逐步 lowering 到 LLVM IR。 核心观点:lowering 不是单向翻译,而是编译器不断决定"还需要知道什么、什么时候可以安全丢弃"的过程。解析采用 lazy 三阶段(name/signature/body resolution),推迟决策直到信息足够。
评论点赞收藏30 天前

给普通人的 LLVM:它为什么存在,以及为什么重要

LLVM 的核心创新不是发明了中间表示(IR),而是让 IR 成为"终身"基础设施——从编译、链接到运行时持续可用,让系统能根据程序实际行为反复优化。 这个理念来自 2004 年论文《LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation》,与 2003 年 LLVA 论文提出的虚拟 ISA(V-ISA)一脉相承:在软件抽象和硬件细节之间保留一个足够低层但足够丰富的表示层。 SSA(静态单赋值)形式是支撑这一设计的关键技术选择,每个值只被赋值一次,让编译器更容易做数据分析。
评论点赞收藏38 天前

当 Batch 已为 1:ShardTensor 与分割世界的代价

ShardTensor 将 PyTorch 分布式张量抽象扩展到科学机器学习,解决单个样本超过单卡显存的分区问题。传统数据并行把不同样本分到不同 GPU,但当 batch 已经是 1 时,只能把空间域本身切分。 论文思路来自科学计算中已有的 domain decomposition,核心挑战是通信开销——分区后各 GPU 仍需跨设备交换信息。作者认为 AI 下一步的突破可能不来自更大更快的硬件,而来自更有效地协调已有资源。
评论点赞收藏42 天前

从想法到硅片:为什么 MLIR 存在

MLIR 是为了解决 AI 编译栈碎片化而生的编译器基础设施。不同 ML 系统各自构建中间表示,重复造轮子;MLIR 的核心思路是在降维过程中保留高层语义,逐步将计算意图翻译为硬件可执行的指令。 LLVM 证明了共享编译器基础设施的价值,但现代异构计算需要在多个抽象层级同时推理,这正是 MLIR 填补的空白。
评论点赞收藏44 天前

当内部存储器失效时:无需焊接的Wii U恢复方法

<p>那天,我们小分部的办公室又是一个炎热的星期天。我和妻子正和家人一起玩着每周一次的FaceTime游戏之夜。正当我们准备结束通话时,我的姐夫突然插话道:</p><p>“哦,对了!在我们挂断电话之前,我得把Wii U扔掉。有没有人要提出抗议,等我把它扔出去?五……四……”</p><p>我的嫂子立刻回应道:“什么?不!它有什么问题?”</p><p>“我也不懂。它就是再也玩不了游戏了,还老是报错。”</p><p>“哎呀,这台机对我来说可是有特殊意义的啊!不过要是它不行,那我也只好把它扔掉了。”</p><p>我也不知道自己怎么了。上一次认真尝试利用漏洞、进行低级恢复,还是在我花了好几个月时间,试图让一台坏掉的M1 Max MacBook Pro重新启动的时候。<br><br>当时,多家公司和维修店都告诉我,要彻底解决这个问题根本不可能,可经过数月的努力,我终于在2024年新年那天,让这台机器重新运转了起来。<br><br>直到今天,我依然在用它,而且它运行得依旧非常稳定。</p><p>尽管冒名顶替综合症几乎每星期都会找上我,但对电脑、科技以及机器学习的热爱,总能让我满怀期待地坐在电脑前,心怀好奇地思索:接下来我又会发现些什么新奇的东西呢?<br><br>不过自从把M1修好之后,我再也没那么强烈地想要去从事这类项目了。也许是因为家里没有空调,热得让人喘不过气来;也许是因为我的自尊心作祟;又或者只是因为那周末那种特别的顽皮劲儿——想胡闹一番,好好探个究竟。</p><p>过了一会儿,我开口说道:</p><p>“别扔掉它!我来把它重新启动起来。”</p><p>他们愣住了…</p>
评论点赞收藏64 天前

并行编程的禅意:内核的姿态

结合 HipKittens 论文分析 AMD GPU 内核调度,提出八波乒乓调度重叠计算与内存传输。作者借 Suzuki 禅学反思并行编程中独立与依赖的张力,并延伸至人类心理模式与创伤适应,探讨技术抽象在不同硬件架构下的重构及个体行为模式的灵活性。
评论点赞收藏70 天前

从启蒙到对齐:用工具架构重塑自我觉察

smolnero 团队阐述其产品设计哲学“Alignment”,将自我觉察与工具架构结合。重点介绍两款基于 Swift 开发的本地优先应用:感恩练习工具 Thank You 和笔记整理工具 de.brief。 文章主张通过代码结构(如 Swift 的类型安全)和隐私保护来辅助认知清晰,实质为新产品理念推广。
评论点赞收藏72 天前

并行编程的禅意:小我与全局求和

作者借《并行编程导论》中的“全局求和”概念,类比人类自我认知与协作困境。指出单纯增加算力或行为改变无法解决结构性问题,强调诚实沟通与信息整合的重要性。 适合对技术哲学、系统思维及个人成长感兴趣的读者。
评论点赞收藏76 天前

并行编程的禅意

文章将并行编程中的处理器协调问题与人类身心整合进行类比,指出算力提升的关键在于协同而非单纯堆叠。作者引用《禅与摩托车维修艺术》及《禅心初者》概念,探讨思想、情绪与身体同步的重要性,认为内部冲突导致焦虑与倦怠,诚实沟通如同程序同步机制。
评论点赞收藏78 天前

Wedding Thank You Cards

In September 2024, Edgar and I got engaged. Little did we know the journey we had just begun. The day we bought our rings, we came home to find out that we would not be able to renew our lease. We had...
评论点赞收藏170 天前

I Built Ralphex This Weekend

A first principles piece on autonomous coding loops, budget constraints, and why persistence — in code and in life — is the only strategy that compounds. For Anyone Building Under Constraints I'm an i...
评论点赞收藏211 天前

Thank You: The Origin Story of the App

A reflection on gratitude, technology, and first principle connection. When gratitude becomes habitual, it changes how we live. This principle has shaped our philosophy. Years ago, during an office re...
评论点赞收藏237 天前

SmolFinance’s Storage Layer

As I continue working to move from a Go noob to a software craftsman—much like someone learning woodworking to craft their own furniture, this piece breaks down /db/store.go from first principles. The...
评论点赞收藏346 天前

SmolFinance

“What I cannot create, I do not understand.” - RF What is SmolFinance? SmolFinance is a local-first trading and journaling application, written in Go. When I first began exploring the tools available ...
评论点赞收藏351 天前

detached reservation: Cold Heart

That fear of being disliked—or worse, hated—by others. You know it, they know it, everyone knows it. It’s a quiet, persistent ache that sits just below the surface. The moment we detach from that fear...
评论点赞收藏491 天前

detached observation: Evaluation Phase

At the end of the day, we all have the ability to interpret. Often, our evaluations hover at the surface — quick assumptions about what’s needed in the moment, or anticipations of what’s to come. Most...
评论点赞收藏507 天前

detached observations: Semantics Phase

Sometimes, challenges are required. And those challenges—without fail—inform you when something isn’t working. Those are the markers. My body stayed longer than it should have, but the feedback loop w...
评论点赞收藏518 天前

Looking for Seeds

Merchant Cash Advances (MCAs) are gaining popularity in the loan market. These short-term loans were introduced under the guise of supporting small businesses—providing short-term capital to help cove...
评论点赞收藏524 天前

detached observations: Parsing Phase

After something is dequeued, it doesn’t just disappear. It asks to be made legible. This is where we begin to shape what’s surfaced—assigning structure, context, and meaning. Parsing isn’t about solvi...
评论点赞收藏527 天前

Thankless, is Mother

An ode to the motherly habits that dive into the depths of oneself. Because the “MAN” we are—derives from it. The data gathered from my latest internal conquests is simple: I can really hate myself. B...
评论点赞收藏530 天前

登录芦苇

登录后关注作者、收藏内容和参与讨论。