Saturday, August 23, 2025

20250823 芯片的Sputnik 时刻


disclaimer:我只是个对技术痴迷的简单工程师。

绝大多数人不知道我大学毕业第一个工作是在一家芯片设计公司。那是九十年代初。国内最好的desktop基本还是386。486不常见。在这家公司我头一次见识了Sun Microsystem 的Sparc工作站还有Cadence和Synopsis EDA软件。

我们是封闭开发。公司在西山总参的大院子里。每天一早我们从院子外的驻地走进大院吃早饭然后上班。晚上再出大院回驻地睡觉。日子非常简单充实。白天跟着带班前辈学习,读文档,然后分析现有的设计,提改进。入职时间不长,我就发现了一个浮点处理器的设计疏漏。得到了团队带队老师的肯定。

当时国内跟我们一样靠国家投资支撑的芯片设计公司有几家。今天剩下来的最著名的是胡伟武的龙芯。当时大家的条件和水平基本差不多。可以说都不大行。客观上,八九十年代国外芯片设计从工具到理念都有飞跃。国内虽然有能人,但是投入远远跟不上。

出国以后,我又一次接触到芯片设计。当时有英特尔奔腾项目出来的潘哥带,用着学校斥巨资购入的最新的工作站和EDA软件。那种体会真的是冰火两重天。工作效率根本不在一个宇宙。当初花时间发现的设计问题,新软件只要简单动动手指就能发现和改正。我们十来个学生一年就设计出一个完整的带分支预测的32位CPU。潘哥说如果测试向量再用点儿心,这个设计就可以拿到fab去流片了。

一晃眼,快三十年过去了。

深度求索8月21日发布新一代DeepSeek V3.1大模型。其中特别有一句提到采用UE8M0 FP8 Scale数据格式进行训练。

“Additionally, DeepSeek-V3.1 is trained using the UE8M0 FP8 scale data format to ensure compatibility with microscaling data formats.”

这里请让我向不太了解这些的朋友们做个科普。计算机浮点数主要由两个部分组成,一个是小数部分,另一个是指数部分。像IEEE 754标准里32位浮点数有23个小数位和8个指数位。剩下的那一个是符号位。很明显指数位越多,表达的数字范围越大。相反,小数位越多数字会更精确。

用少的bit数的数据格式做AI大模型训练的一个问题是训练的中间数值会越界。常用的8位浮点数FP8采用的是E5M2或者E4M3。它们的范围也就是+/-57344或+/-448以内。UE8M0的数据范围是2^127以内。这样会大大减少训练中的数值越界。

NVIDIA最新的Blackwell支持MXFP8,底层也只是E5M2和E4M3。从目前的消息看UE8M0不被NVIDIA芯片支持。这样DeepSeek-V3.1应该是完全在华为升腾900系列芯片上训练的。

做一块好的芯片很难。更难的是要形成一个围绕芯片的生态。直白的讲就是芯片要有很多人去用。而且要有最前沿的用法不断在使用中创新。毫无疑问当下最强的芯片和最好的生态都围绕在AI主题下。DeepSeek-V3.1的横空出世标志着芯片和生态圈的问题同步解决。

非常难得经历了三十年,国产的芯片和AI在华为和深度求索的努力下终于真的走到了世界前沿。恭喜这两家公司和背后努力的人。

其实想说的话很多。

Reference:

https://huggingface.co/deepseek-ai/DeepSeek-V3.1-Base