微软高级软件工程师Alice Vinogradova将她用SAP的ABAP语言编写的数据库移植到了驱动Sinclair ZX Spectrum的经典Z80处理器上,并对结果感到惊喜。
Vinogradova将她的数据库命名为ZVDB-Z80,并将其描述为"一个完全用ABAP开发的向量数据库,旨在提供不依赖外部向量数据库的独立解决方案"。
**ABAP(1983年诞生)和Z80(1976年诞生)几乎是同时代产物**
ABAP,全称Advanced Business Application Programming,是ERP巨头SAP为其平台创建的应用程序编程语言。
代码自然发布在GitHub上,这位工程师解释说:"上个月,我在清理旧代码时重新发现了ZVDB。"
当Vinogradova重新审视ZVDB时,她"有了一个让我会心一笑的领悟"。
"ABAP(1983年诞生)和Z80(1976年诞生)几乎是同时代产物,"她写道。"它们成长于同一个计算时代——那时内存珍贵,周期需要精打细算,每个字节都很重要。"
Vinogradova欣赏开发者在这些限制条件下创建优秀软件所需的技巧。
"当我构建ZVDB时,我刻意应用了所有我知道的Z80优化技术,"她写道。"为什么?因为这些'老旧'技术是永恒的——它们恰好能让现代代码运行得极快。"
因此,她在用Z80汇编语言重写ZVDB时再次使用了这些技术,并声称在这款经典CPU上运行时,她的代码"尽管时钟速度差异达857倍,但仅慢了3-6倍"。
Vinogradova认为这并不令人意外。"这些优化技术就是为Z80而生的。它们恰好具有普遍的最优性,"她写道,然后解释了为什么她认为Z80思维"在2025年仍然获胜"。
我在ABAP中应用的每一条Z80经验在现代硬件上依然有效:
查找表总是比计算更快 - Z80:节省宝贵的周期 - 现代CPU:缓存友好的访问模式
顺序内存访问为王 - Z80:一个周期vs随机访问的四个周期 - HANA:列式存储偏爱顺序模式
位操作是通用的 - Z80:原生CPU指令 - 现代CPU:SIMD做同样的事情,但更快
预计算胜过运行时数学运算 - Z80:无法承担计算成本 - 现代系统:为什么要计算能记住的东西?
"那些使用Z80汇编的岁月不仅是怀旧——它们是训练,"她补充道。"那时每个周期都很重要,你猜怎么着?每个周期现在仍然很重要。规模变了,原则没变。"
"当我将此移植到HANA AMDP时,它会更快。因为AMDP会采用我的Z80优化算法并将其并行化。但核心洞察——查找胜过计算,顺序胜过随机——这来自1976年。"
她的GitHub页面当然包含了这里讨论的代码,以及如何在真实的Sinclair ZX Spectrum、在线模拟器JSSpeccy或Qaop/JS,或本地模拟器Fuse、ZEsarUX、Speccy或Retro Virtual Machine上运行的说明。
好文章,需要你的鼓励
苏州大学研究团队提出"语境降噪训练"新方法,通过"综合梯度分数"识别长文本中的关键信息,在训练时强化重要内容、抑制干扰噪音。该技术让80亿参数的开源模型在长文本任务上达到GPT-4o水平,训练效率比传统方法高出40多倍。研究解决了AI处理长文档时容易被无关信息干扰的核心问题,为文档分析、法律研究等应用提供重要突破。
在Cloudera的“价值观”中,企业智能化的根基可以被概括为两个字:“源”与“治”——让数据有源,智能可治。
清华大学团队首次揭示了困扰AI训练领域超过两年的"幽灵故障"根本原因:Flash Attention在BF16精度下训练时会因数字舍入偏差与低秩矩阵结构的交互作用导致训练崩溃。研究团队通过深入分析发现问题源于注意力权重为1时的系统性舍入误差累积,并提出了动态最大值调整的解决方案,成功稳定了训练过程。这项研究不仅解决了实际工程问题,更为分析类似数值稳定性挑战提供了重要方法论。