首先来做一个芯片的成本分析,考虑到不同公司之间研发成本差异巨大,所以主要研究固定成本,固定成本主要来自流片成本和晶圆成本以及封测成本。
流片即tape-out,成本主要来自光罩的制作。依照不同的制程,光罩的数量也不一样多,下表是TSMC在不同制程的大致光罩数量,可以发现,越新的制程,光罩数量越多。(少数节点有光罩数持平的现象,是因为换FinFET或引进EUV mask。)
在新制程中,每一道光罩的成本也增加了,所以整套光罩成本是几何性地增加。据估计,一套16nm光罩需要1亿新台币,约合2千万人民币,已经是天价了,到了2nm,光罩要价高达30亿新台币,大约6亿人民币。三星8纳米光罩成本大约900万美元,7纳米的光罩成本大约1200-1500万美元,5纳米大约4000-5000万美元。
流片也有两种类型,一种是Full Mask,“全掩膜”的意思,即在一次制造流程中整个掩膜只为某一个设计服务。另一种是MPW (Multi Project Wafer,多项目晶圆),即在一次制造流程中整个掩膜为多个设计项目服务,也即同一次制造流程可以承担多个IC设计的制造任务。不过这种方式花费时间成本较高,进度无法掌控,对于车厂而言,进度无法掌控完全不可接受,因此相信小鹏和蔚来都是Full Mask。
一片十二英寸晶圆面积大约70685平方毫米,英伟达Orin的die size是450平方毫米。
12英寸晶圆可以切割大约125片Orin,台积电7纳米晶圆每片大约10000美元,三星8纳米晶圆价格大约6000美元,每片Orin的晶圆成本大约48美元,封装与测试成本大约2美元,即50美元。Orin目前千颗起售价大约500美元,毛利率大约90%,英伟达一向如此,毛利率基本就是90%。
蔚来和小鹏的自研芯片都是对标双Orin的性能,即使5纳米工艺,die size最低下限跟Orin也应该差不多,当然如果降低性能,die size可以小很多。我们假定die size还是450平方毫米,那么每片晶圆可以切割125片,假设采用了台积电的5纳米工艺制造,台积电5纳米晶圆每片16000美元,每个芯片成本大约128美元,加上2美元的封测费,大致是130美元。如果4纳米的话每片晶圆是19000美元,每个芯片成本大约152美元,整体成本大约155美元。
台积电基本上是下单量2.5万片起,那么一次性下单就是312.5万个芯片,考虑到汽车销量,这么高的量,大部分厂家估计5年都用不完,5纳米的话也就是一次性需要付出4亿美元。光罩成本每片分摊大约13美元,每片成本大约143美元。这么大的量估计对小鹏和蔚来来说压力很大,据说三星的最小下单量远低于台积电(尽管这样三星还是客户很少),估计是5千片起,那么就是62.5万个芯片,三星的5纳米晶圆每片价格大约低台积电20%,也就是大约13000美元,每个芯片成本大约105美元,但光罩分摊成本会大增到64美元,每个芯片等于169美元硬件成本。这也就理解为什么特斯拉和英伟达Orin一直在三星下单的原因了。
除了研发成本还有各种IP购买成本、EDA成本、索喜这样的芯片设计与制造服务成本,估计大约在1.5-2亿美元之间,如果按62.5万个芯片计算,那么每个芯片分摊成本约为240-320美元,总计成本大约409-489美元之间,略微低于直接购买英伟达Orin。不过自研芯片对加强品牌形象,提升科技感和市值帮助极大,间接收益远高于直接成本。
40核心应该不是CPU的核心,虽然小鹏官方网站英文介绍是40核心CPU,但上图写得明白是40核心处理器,这个很好推测,大概率是24个ARM Cortex-A78AE内核,12个ARM MALI-G78AE 内核,4个ARM Cortex-R52内核做安全岛,加起来就是40核心。这个CPU算力大约是460kDMIPS,没有蔚来的芯片高。当然也不排除是32个A78AE内核,6个G78AE GPU核心,2个R52核心。MALI -G78AE是ARM为汽车领域设计的GPU核心,原型是为手机领域设计的MALI-G78。14核心基础频率760MHz的MALI-G78AE的算力是1360GFLOPS@FP32。
小鹏在宣传上提到了DSA (Domain Specific Architecture,领域专用架构),实际NPU就是一种DSA。CNN时代AI加速器一般叫NPU,大模型transformer时代则多叫DSA。智驾领域的算法从过去基于CNN算法的多个不同任务的感知网络向以Transformer为基础框架的BEV大模型演进。BEV作为新一代自动驾驶感知算法,在传统CNN加速芯片上部署难度极大甚至完全无法部署。Transformer模型对访存要求相对传统CNN算法会高出很多,需要较高的存储带宽,同时Transformer内的非线性层有非常高的精度要求,相应需要更多的浮点计算资源,而绝大多数AI加速器都是定点整数计算资源。其次Attention模块是一个matmul-softmax-matmul的结构,在序列长度比较大时,Reduce维度的计算对Vector(向量)计算资源要求非常多。此外BEV模型里Grid Sample算法里还有一些类似聚合、分散的特殊算子。所有这些计算需求在传统AI芯片的硬件上难以满足,需要近似CPU的运算资源。
DSA非常简单,典型代表就是谷歌的TPU,近来针对AI运算的DSA高度雷同,也没什么技术门槛。简单地说就是在NPU的MAC阵列上加入了标量运算和向量运算单元。
标量算力,主要用于逻辑控制,任务调度。
向量算力,主要用于激活、池化、排序等计算。
矩阵算力,主要是矩阵乘法,用于卷积,全连接等计算。
随着算力专有程度的提高,其算力通用性也会降低,算力的可编程性变差。打个比方,我们分别把矩阵算力、向量算力和标量算力,类比作飞机,高铁和汽车三种交通工具。飞机,速度最快,但乘坐成本最高,且只能往来于特定的几个机场站点;高铁,速度相对较快,准备工作相对较少,高铁站的数量也相对较多;汽车,速度相较最慢,但便捷性最高,也无需额外的准备工作。标量算力是最通用的算力,可以从功能上覆盖向量计算和矩阵计算,且理论上可以覆盖几乎所有的计算需求;同理,向量计算也可以覆盖矩阵计算的功能;最后,矩阵计算,其算力专有程度最高,只能用于矩阵计算。但随着算力专有程度变高,越容易堆叠算力,算力的能效比也越高。由于矩阵算力的可编程性较差,需要借助算子库或者DSL(Domain Specific Language)才能把矩阵算力很好的利用起来。向量算力用于保证DSA的可编程性和兼容性,如TPU、NPU中的Vector Unit,GPGPU中的CUDA core;标量算力则主要用于逻辑控制。
从2018年开始,谷歌的第三代TPU就是标量向量矩阵都具备了。
TPU第五代TPUv5e和TPUv5P与第三代没有本质变化
谷歌几代TPU只是增加了HBM的容量和带宽,实际英伟达也是如此,变化的只是HBM的容量和带宽,架构都是换汤不换药。
最后来说一说小鹏支持的300亿参数大模型。Roofline Model可以看出平均带宽需求和峰值计算能力如天花板一样是整个系统计算的能力上限,以计算强度上限Imax为界,划分出AI芯片的两个瓶颈区域,即图中橘色的内存受限区(Memory Bound)和图中蓝色的计算受限区(Compute Bound)。存储决定了下限,计算决定了上限。因为 Decoding 阶段 Token 逐个处理,使用 KV Cache 之后, Multi-Head Attention 里的矩阵乘矩阵操作全部降级为矩阵乘向量即GEMV。除此之外,Transformer 模型中的另一个关键组件 FFN 中主要也包含两个矩阵乘法操作,但Token之间不会交叉融合,也就是任何一个Token都可以独立计算,因此在Decoding阶段不用Cache之前的结果,但同样会出现矩阵乘矩阵操作降级为矩阵乘向量。Prefill阶段则是GEMM,矩阵与矩阵的乘法。GEMV是访存密集型操作,性能完全取决于存储带宽。
支持大模型参数数量由存储带宽和外在的存储容量决定,假设一个大模型参数为300亿,按照车载的INT8精度,它所占的存储是30GB,如果是英伟达的RTX4090,它的显存带宽是1008GB/s,也就是每30毫秒生成一个token,这个就是RTX4090的理论速度上限。特斯拉第一代FSD芯片的存储带宽是63.5GB/s,也就是每471毫秒生成一个token,帧率不到3Hz,自动驾驶领域一般图像帧率是30Hz,而英伟达的Orin存储带宽是204.5GB/s,即每146毫秒生成一个token,勉强可以达到7Hz,注意这只是计算的数据搬运所需要的时间,数据计算的时间都完全忽略了,要做到30Hz,带宽至少要提高5倍,也就是1TB/s。实际情况远比这个复杂的多,车载领域不是传统LLM使用CPU和GPU分离形式,车载领域的计算SoC都是将CPU和AI运算部分合二为一,AI运算部分通常是GPU或加速器,是和CPU共享内存的,而在非车载领域,GPU或AI运算部分有独立的存储,即显存。车载领域共享内存一般是LPDDR,它主要是为CPU设计的,注重速度即频率而非带宽,不像显存,一般是GDDR或HBM,注重带宽,不看重频率高低。上述所有理论都是基于显存的,在车载领域共享LPDDR,其性能远远低于单独配置的显存,无论是速度还是容量,共享存储都必须远比单独的显存要高才能做到大模型推理计算。
车载领域存储比算力重要很多,最好的解决办法是HBM,但太贵了,32GB HBM2最低成本也得2000美元,汽车领域对价格还是比较敏感的,退而求其次,就是GDDR了。GDDR6的成本远低于HBM,32GB GDDR6大概只要180美元或更低。