图片来源:三星
DRAM内存行业高度集中,三大巨头,SK Hynix、三星和美光合计市场占有率达95%,三巨头足以掌控标准,表面上看DRAM标准是JEDEC控制的,实际在标准正式公布前,三巨头就会有量产产品问世。还有一些IP巨头,如存储控制器IP巨头新思科技,在2024年就能够提供LPDDR6控制器的IP。新思科技在2024年5月发布一篇PPT,名字就叫LPDDR6 A Deep Into the JEDEC Press Release。
三星已经确认LPDDR6将于2025年下半年量产,第一个使用LPDDR6的是高通即将于2025年10月底发布的骁龙8至尊二代,汽车领域应该也会有至尊二代座舱和Ride,鉴于汽车至尊一代刚刚开始推广,至尊二代估计要等到明年了。据说苹果也有意使用。
图片来源:网络
LPDDR6与LPDDR5最大区别一是速度,二是总线宽度。速度方面,LPDDR6起步是10.6Gbps,然后有12.8Gbps、14.4Gbps和16.0Gbps几档,目前三星的LPDDR5X就有10.667Gbps,LPDDR5T则有9.6Gbps,LPDDR6为了凸显优势,大部分厂家都会选择12.8Gbps和14.4Gbps,早期JEDEC定的标准最高是14.4Gbps,但就像LPDDR5早期定的标准最高是8.5Gbps一样,后期肯定会超过,LPDDR6至少会到16.0Gbps。
LPDDR时间线
LPDDR6与LPDDR5区别之二是总线宽度,LPDDR5是16位单通道,LPDDR6是24位,由两个12-bit通道合并而成,某些苛刻应用如车载和工业领域,可以留一个通道做备份,一个通道数据丢失,另一个可以补上。不过数据系统还是32位或64位,因此LPDDR6的有效带宽计算比较复杂,LPDDR6在SoC的位宽和LPDDR5完全不同,LPDDR5常见的是96、128、256bit,LPDDR6则是72、96、144、288bit。标准LPDDR5X的理论带宽是8533Mbps (2.1GHz * 32Bits) * 2Bytes (16Bits DQ data per channel) = 17.1Gbps,初级LPDDR6的理论带宽是10.667Gbps (2.7GHz * 32Bits) * 3Bytes (24Bits DQ data channels) = 32Gbps。相比LPDDR5x,LPDDR6的Command Bus上多了一个CA/CS pin。在保留大部分LPDDR5/5x的signals基础上,增加了一个ALERT信号。
LPDDR6有效位宽计算
因为大部分缓存是256或512位宽,为避免来回转换,288bits拆分为了256 data bits + 32 non-data bits。
RAS代表Reliability, Availability and Serviceability,DBI是Data Bus Inversion,32位数据只能在RAS和DBI中间选一个。DBI (Data Bus Inversion) 反转是在DDR4开始增加的一个功能,其工作原理实际很简单:当驱动器(控制器写入或DRAM读取)在总线上发送数据时,系统会统计逻辑"0"位的数量。如果某个数据通道中"0"的数量达到或超过5个,那么整个字节的数据将被反转,同时第9位DBI指示位会被置为低电平。这样做确保了在8个数据位和1个DBI位中,至少有5位处于"1"的状态。这也保证了在整个数据通道中,信号变化的最大总数只会是5个"1"变为9个"1",或者相反的情况。我们不会遇到所有位都从0变为1或从1变为0的极端情况。DBI技术限制了信号同时切换的数量,从而减小了SSN的影响,提高了信号完整性。同时减少了信号切换的次数,特别是高电平的切换次数,从而降低了功耗。
允许PHY single channel管理2 Channels DRAM Banks,即高效模式,节约了成本,高性能模式可以选择高成本的双Phy模式。
LPDDR6增加了ALERT信号,对Write Command下的ECC/EDC信息反查,支持通过4个fault寄存器确认16个不同Error。
不同存储技术的参数
GDDR6/7和HBM都是高位宽,高传输速率,LPDDR则频率很高。也就是说GDDR6/7和HBM只适合做显存,不适合配合CPU做RAM,LPDDR则两者兼顾,除了特斯拉的HW4使用GDDR6外,所有SoC都是使用LPDDR,特斯拉也许是对存储带宽特别在意,才用GDDR6,但此举拉低了CPU的频率,除非遇到特别大的模型,否则提升不大。
当前的主流 LLM 基本都是 Decoder Only 的 Transformer 模型,其推理过程可以分为两个阶段:
图片来源:论文《A Survey on Efficient Inference for Large Language Models》
Prefill:根据输入 Tokens(Recite, the, first, law, of, robotics) 生成第一个输出 Token(A),通过一次 Forward 就可以完成,在 Forward 中,输入 Tokens 间可以并行执行(类似 Bert 这些 Encoder 模型),因此执行效率很高。
Decoding:从生成第一个 Token(A) 之后开始,采用自回归方式一次生成一个 Token,直到生成一个特殊的 Stop Token(或者满足用户的某个条件,比如超过特定长度) 才会结束,在 Decoding 阶段 Token 是逐个生成的,上述的计算过程中每次都会依赖之前的结果,换句话说这是串行计算,而非GPU擅长的并行计算,GPU大部分时候都在等待数据搬运。加速的办法是计算当前 Token 时直接从KV Cache中读取而不是重新计算。对于通用LLM,应用场景是要考虑多个并发客户使用,即Batch Size远大于1,KV Cache的缓存量会随着Batch Size暴增,但在车里用户只有一个,就是自动驾驶端到端大模型,即Batch Size为1。
因为 Decoding 阶段 Token 逐个处理,使用 KV Cache 之后,上面介绍的 Multi-Head Attention 里的矩阵乘矩阵操作全部降级为矩阵乘向量即GEMV。除此之外,Transformer 模型中的另一个关键组件 FFN 中主要也包含两个矩阵乘法操作,但是 Token 之间不会交叉融合,也就是任何一个 Token 都可以独立计算,因此在 Decoding 阶段不用 Cache 之前的结果,但同样会出现矩阵乘矩阵操作降级为矩阵乘向量。Prefill阶段则是GEMM,矩阵与矩阵的乘法。
矩阵乘向量操作是明显的访存bound,而以上操作是LLM 推理中最主要的部分,这也就导致LLM 推理是访存 bound 类型。简单说,Prefill阶段完全取决于算力,Decoding阶段完全取决于存储带宽。
数据来源:英伟达论文《LiteVLM: A Low-Latency Vision-Language Model Inference Pipeline for Resource-Constrained Environments》
如果不计算ViT阶段,那么解码阶段延迟大概占总延迟的58%。换句话说,存储带宽决定了LLM推理运算58%的延迟,因此非常重要。
常见存储带宽
目前顶级自动驾驶芯片如英伟达的Thor(最低端的z除外,其存储带宽还是204.8GB/s)和高通的SA8397/SA8797都是273GB/s,稍低一级的英伟达Orin和地平线的J6P是204.8GB/s,存储控制器die size面积大,也就是成本高,碍于控制成本,其余大部分自动驾驶芯片都是76.8-102.4GB/s。
高通改走高端路线,对英伟达发起挑战,国内厂家也需要奋起,国人能够接受国产高价车型,不妨把成本控制放一放,更强调性能。
免责说明:本文观点和数据仅供参考,和实际情况可能存在偏差。本文不构成投资建议,文中所有观点、数据仅代表笔者立场,不具有任何指导、投资和决策意见。


财经自媒体联盟

4001102288 欢迎批评指正
All Rights Reserved 新浪公司 版权所有