懒猫后花园

哦,这该死的代码

摘要: 范畴论概念辨析 范畴 (Category) 包含对象(Object)和态射,对比集合概念,范畴不仅定义了静态的成员,也定义了成员之间的动态交互关系。不是任意对象和态射都能称为范畴,态射中至少包含一个单位态射,任何对象经过该态射得到本身。 不仅态射可以让对象发生变换,态射本身也可以看作一个对象处理进行 阅读全文
posted @ 2025-07-31 10:24 DevilXXL 阅读(216) 评论(0) 推荐(0)
摘要: 什么时候需要并发? 由于片上buffer 宝贵,且不同程序中的同一个计算操作对存储开销具有动态性,同一个程序中不同计算操作的先后顺序具有动态性,多个计算单元往往共享同一块片上 buffer 资源以便提高 buffer 利用率以及交换上下文数据。多对一便存在仲裁竞争等问题。 最简单的 baseline 阅读全文
posted @ 2025-07-18 22:40 DevilXXL 阅读(43) 评论(0) 推荐(0)
摘要: zhihu-title: GPGPU? NPU? zhihu-topics: - GPGPU - NPU zhihu-link: https://zhuanlan.zhihu.com/p/1926295995316172022 zhihu-created-at: 2025-08-06 17:26 起 阅读全文
posted @ 2025-07-09 15:19 DevilXXL 阅读(144) 评论(0) 推荐(0)
摘要: 整形算术单元容易预测实现硬件行为,而浮点单元由于 (1)不遵守结合律(2)rounding 模式和特殊情况处理(subnormal、nan、-0、+inf、-inf) 往往更难预测硬件计算结果。神经网络中运算 MAC 运算累加超长数组同时涉及 (1) 和 (2) 问题,不满足交换律使得遍历保证 10 阅读全文
posted @ 2025-07-07 11:23 DevilXXL 阅读(172) 评论(0) 推荐(0)
摘要: 很早在纸上推导过梯度的计算方法,但每次都忘记推导过程反复推导。于此想总结新的记忆方法。 梯度下降推导过程难以记忆来自于矩阵微积分,矩阵微积分中涉及标量、向量、矩阵之间两两求导操作,其定义如下图,√ 表示存在定义,x 表示不存在定义[1]: 函数 \ 自变量 scalar vector matrix 阅读全文
posted @ 2025-07-04 16:20 DevilXXL 阅读(97) 评论(3) 推荐(0)
摘要: DeepSeek ISCA 2025 [1] 6.4 小节中提到无论 load/store 语义的 scale-up 网络,还是 message 语义的 scale-out 网络,维护一致性都会明显增加额外的通信开销。期望一种既需要程序员通过 acquire/release 等语义编程保证一致性,硬 阅读全文
posted @ 2025-05-23 21:35 DevilXXL 阅读(149) 评论(0) 推荐(0)
摘要: 在四月的尾巴终于把第一次流片交出去了。许多前辈曾告诫我流片如何困难,而想要请教却很难得到统一的回答。经过这一轮流片切身怯魅,积攒了一些浅薄的流片 know how 经验分享。 流片要见实物,而想要让数百万千万至数亿晶体管老老实实守本分工作并不是那么轻松。从算法到编译器到RTL到网表到GDS到电路板, 阅读全文
posted @ 2025-05-05 21:21 DevilXXL 阅读(304) 评论(2) 推荐(0)
摘要: 熟悉的 AI 加速器领域 on-chip buffer 往往使用 scratchpad memory,对传统 cache 结构接触不多。但 cache 可谓是传统 CPU 架构中最最基础和重要的一个组件,从 cache 的设计思想上或许可以借鉴学习 AI 的访存问题。 SRAM + 映射 = Cac 阅读全文
posted @ 2025-05-02 16:28 DevilXXL 阅读(162) 评论(0) 推荐(0)
摘要: 去 ICAC 蹭完饭有一阵了,懒癌发作拖到现在才做心得总结。ICAC 印象最深刻的是复旦陈迟晓老师带来的 《2.5D/3D/3.5D Integration: Fabrication and Chiplet Partition》 演讲。因为先前纯数字架构接触更多一些,对 chiplet 更多是门外汉 阅读全文
posted @ 2025-04-06 22:24 DevilXXL 阅读(326) 评论(0) 推荐(0)
摘要: 先前 blog [1] 从能耗角度量化了现在计算问题本质是访存问题,同时提到由于算法和工艺的限制优化应当存在一个上限。这篇 blog 将结合具体 AI workload 探讨这个边界。 访存优化归类 各种加速工作优化核心在于将更多的操作放在底层低密度、低代价的 on-chip memory ,以避开 阅读全文
posted @ 2025-03-08 16:42 DevilXXL 阅读(373) 评论(0) 推荐(0)
摘要: 虽然早在 1967 年就已经提出了 Tomasulo 调度算法 [1],但网上仍很少找到关于落到模块粒度的教程文档。从零复现一遍成本太大,因此用画原理图的方式做思想实验,尝试理解 Tomasulo 在电路上如何实现,文章参考《Computer Architecture:A Quantitative 阅读全文
posted @ 2025-02-15 23:19 DevilXXL 阅读(297) 评论(0) 推荐(0)
摘要: RTL 设计工程中遇到一种怪象:虽然可用的人手很多,但很难将任务拆分分配下去,导致人力出现紧张。将原因归因于下: RTL 代码可读性差 抛一个仓库让成员从源码中理解难度颇高。往往需要配合辅助的文档以及频繁对接,这极大分散顶层开发架构师的精力; 控制模块耦合性强 组合逻辑比如计算单元易于解耦,控制逻辑 阅读全文
posted @ 2025-02-14 15:27 DevilXXL 阅读(210) 评论(0) 推荐(0)
摘要: 无论片内还是片外访存,存储器的访存代价非常大 [1]。因此有非常多的工作放眼在减少 memory access 以提升系统能耗和表现。我将减少访存归类为三种方法: 发掘数据复用。如矩阵乘法中输入某个矩阵的某一行/列要多次复用读入,依次可以读取一次之后利用先前读取的结果,这一类方法依赖于算法的数据复用 阅读全文
posted @ 2025-01-26 19:01 DevilXXL 阅读(254) 评论(0) 推荐(1)
摘要: “做硬件,核心不在硬件”,这半年历程得出了这么似乎有违常理的结论。 现有成本体系下的幸存者 工程科学的发展逻辑 做芯片是工程科学,而非纯理论科学。工程科学的发展是由很多人为历史因素导致的。工程就像在庞大的 design space 搜索,做出来的东西并不是发现了某种普适定律,而是投资某条技术路线。我 阅读全文
posted @ 2025-01-05 14:18 DevilXXL 阅读(240) 评论(0) 推荐(0)
摘要: Big Picture Reconfigurable: CGRA vs FPGA 从架构来看 CGRA(Coarse-Grained Reconfigurable Architecture) 和 FPGA 非常类似,Memory、PE 以及 NoC 片上网络。调研反馈实际二者边界也是逐渐模糊: 硬件 阅读全文
posted @ 2024-11-23 15:09 DevilXXL 阅读(617) 评论(0) 推荐(0)
摘要: CMOS 计算和存储工艺发展步调并不一致,SOTA Memory 最高频率的远远低于 SOTA CMOS。如下图所示[1]: 除了性能,能耗上存储也远远高于计算能耗,存储能耗受诸多譬如大小、宽度等参数影响,但不妨粗略进行数量级估计计算,如图 2014 年 ISSCC 经典的数据 45 nm 0.9V 阅读全文
posted @ 2024-11-22 17:01 DevilXXL 阅读(538) 评论(0) 推荐(0)
摘要: 符号推理,简单调研一下 符号 vs 模拟 形式验证和 UVM 验证方法(Functional Verification)本质出发点是不同的,一个基于符号逻辑推理,另一个基于模拟器。 比如有组合电路 A 和组合电路 B,要验证他们逻辑功能一致,即真值表一致。 ⚠️以下内容有猜测部分,待调研工具具体实现 阅读全文
posted @ 2024-11-16 22:41 DevilXXL 阅读(125) 评论(0) 推荐(0)
摘要: 冯诺伊曼架构和存算不是对立的概念 从智能角度证明存算架构力度远远不够 存算针对的是存储和计算关系,冯诺依曼架构针对的是程序和数据都要存储,二者重心不一样因此不是对立的概念。 如果按原教旨主义理解冯诺依曼架构,就要追溯到 《First Draft of a Report on the EDVAC[1] 阅读全文
posted @ 2024-11-02 23:57 DevilXXL 阅读(113) 评论(0) 推荐(0)
摘要: 很早前看到知乎的这篇回答[1],技术栈太浅薄不能理解 spatial computing 的核心问题,而今年 groq、tensotorrent、SambaNova 各种新鲜技术范式出现层出不穷,把我的胃口吊得高高的,遂调研 spatial computing。 Dataflow Accelerat 阅读全文
posted @ 2024-10-19 17:48 DevilXXL 阅读(783) 评论(0) 推荐(0)
摘要: 电路中一个输出连接多个输入,需要提高输出门的驱动能力;若多个输出连接一个输入,则需要引入高阻态保证逻辑的正确性。一般 CMOS 的逻辑门单元理想状态下同一时刻总有一个连通,是无法输出高阻态的。输入高阻态需要特殊的器件,在 PDK 中一般以传输门或者三态buf方式实现。 MUX: 逻辑实现 NUX 是 阅读全文
posted @ 2024-10-04 10:52 DevilXXL 阅读(1118) 评论(0) 推荐(0)