当前位置: 首页 > news >正文

落霞归雁:从自然之道到“存内计算”——用算法思维在芯片里开一条“数据高速航道”

作者
落霞归雁(CSDN首发,转载请注明)

段落一 · 现象:当“摩尔”老去,数据却在狂奔

过去 30 年,CPU 频率翻了 60 倍,而 DRAM 带宽只翻了 20 倍。算力与带宽的剪刀差,让“计算”变成“等数据”。

以推荐系统为例,一次用户点击要跨 3 级缓存、4 次内存、2 次网络,延迟 200 µs;其中 70 % 时间花在“把数据搬到 ALU”。

落霞归雁的观察——自然界的能量传递遵循“最小作用量原理”,信息也该如此:让数据就地生长,而不是跋山涉水。

段落二 · 规律:存内计算为何是“下一道洋流”

  1. 技术规律:SRAM/DRAM 工艺演进,让“存储单元 + 计算单元”单片共存成为现实。
  2. 算法规律:矩阵乘、卷积、图遍历的 80 % 访存模式呈局部可预测,天然适合“near-data computing”。
  3. 商业规律:每降低 1 % 的 DRAM 访问,云厂商可节省 0.5 % 总拥有成本(TCO),对应全球百亿美金市场。

段落三 · 应用:一条 3 mm² 的“算法高速公路”

案例:得物推荐精排模型 neuron-csprd-r-tr-rel-cvr-v20-s6,原在 CPU 上特征解析占用 61 % 时间,其中 18 % 是纯浮点转换。
• 算法设计:把 Double.parseDouble 的逐字符解析改为基于 Ryu 算法的查表+并行前缀计算,复杂度 O(n) → O(1)。

• 存内实现:在 SRAM bank 内嵌入 4-bit 查找表 + 8-bit 加法树,面积 0.2 mm²,功耗 < 5 mW。

性能结果:
• CPU 时间从 18 % → 0.19 %,RT 降低 25 %,节省 50 % 服务器。
• 若全量部署存内计算,可再省一次 DDR 访问,理论 RT 再降 20 %。

段落四 · 创新:把“动态规划”搬进 SRAM

子问题:大规模管网的最优压缩机控制是典型高维 DP,状态爆炸导致内存墙。
• 算法创新:

1.用近似动态规划(ADP)将状态空间从 10^6 压缩到 10^3;

2.在 SRAM 内做“状态-动作”查表 + 线性插值,访存次数由 10^4 次/决策降到 1 次。

• 行业落地:某天然气集团 2 年省下 20 亿元电费,压缩机启停次数下降 30 %。

段落五 · 实战:从 0 到 1 的 6 步落地模板

  1. 观察现象:用 eBPF 跟踪系统调用,把“热点指令 → 访存模式”画成热力图。
  2. 找规律:统计 7 天线上流量,发现 92 % 的矩阵乘尺寸落在 {64,128,256} 三档。
  3. 理论应用:把 GEMM 拆成 Winograd + Im2Col,计算密度提升 4×,适配 SRAM 带宽。
  4. 实践验证:
    • RTL 级仿真:吞吐 2 TOPS/W,面积 3 mm²;
    • FPGA 灰度:延迟从 320 µs → 45 µs;
    • A/B 上线:CTR +3.7 %,服务器缩容 40 %。

段落六 · 职业地图:谁在为“算法+芯片”搭桥

• 算法芯片协同设计工程师(Algorithm-Silicon Co-design)
• 性能架构师(Perf Architect)
• 存内计算 RTL 设计专家(In-Memory Compute Designer)
• 领域专用编译器工程师(DSL Compiler)
• 业务增长数据科学家(Growth DS)

段落七 · 长期主义:让算法像树一样生长

落霞归雁始终相信:技术演进不是“替代”,而是“共生”。

存内计算不会消灭 CPU,而是把 80 % 的低熵计算下沉到存储;CPU 则专注高熵决策。

正如森林里的光,被树叶层层过滤,最终落在最适合的地方。算法、芯片、业务,三者也将在“最小作用量”的自然律下,找到各自的光斑。

附录 · 代码片段(Verilog,节选)
module dp_ram_lut #(
parameter ADDR_WIDTH = 10,
parameter DATA_WIDTH = 16
)(
input wire clk,
input wire [ADDR_WIDTH-1:0] addr,
input wire [DATA_WIDTH-1:0] din,
input wire we,
output reg [DATA_WIDTH-1:0] dout
);
always @(posedge clk) begin
if (we) mem[addr] <= din;
dout <= mem[addr];
end
reg [DATA_WIDTH-1:0] mem [0:(1<<ADDR_WIDTH)-1];
endmodule

致谢
感谢得物技术团队、UCL RC18 课题组、某天然气集团算法部提供真实数据与反馈。

http://www.dtcms.com/a/316973.html

相关文章:

  • SpringCloud学习-------Feign详解
  • 面试题:前端权限设计
  • 【Spring Cloud】-- 注册中心
  • 广东省省考备考(第六十七天8.5)——资料分析、数量(强化训练)
  • Python 循环语法详解
  • Pandas数据分析完全指南:从入门到实战应用
  • vi编辑器makefile的使用以及双向链表
  • Sklearn 机器学习 数据聚类 层次聚类的两个重要属性
  • c# 在 23:00 - 23:59 之间执行一次的写法
  • 【重要区分】2类模型的时间平均车速与区间平均车速
  • ApacheCon Asia 2025 中国开源年度报告:Apache Doris 国内第一
  • STM32设置GPIO模式
  • P1103《书本整理》精讲
  • CubeMX安装芯片包
  • Go语言 反射
  • golang的切片
  • Vue.js之核心语法与指令
  • 每日五个pyecharts可视化图表-bars(4)
  • mac colima解决容器化部署权限问题 :Permission denied
  • 三款好用的PDF阅读器
  • PLC学习之路-基础知识-(一)
  • 无刷电机控制 - STM32F405+CubeMX+HAL库+SimpleFOC05,完成霍尔传感器的校准
  • leetcode-python-删除链表的倒数第 N 个结点
  • 初始化列表,变量存储区域和友元变量
  • AcWing 3690:求交点 ← 复旦大学考研机试题 + 克莱姆法则
  • zyh贪心类题目补题报告
  • Spring配置JDBC,使用JdbcTemplate套件和Druid套件
  • IDEA JAVA工程入门
  • CVPR优秀论文 | DashGaussian:在200秒内优化三维高斯点绘制
  • Redis Windows迁移方案与测试