摘要:现在AI有多火不用我多聊吧?不管是训练GPT这种大模型,还是好几块GPU一起协同干活,最缺的就是能让数据跑得又快又不卡壳的“通道”。
现在AI有多火不用我多聊吧?不管是训练GPT这种大模型,还是好几块GPU一起协同干活,最缺的就是能让数据跑得又快又不卡壳的“通道”。
而PCIe,就是干这活儿的核心角色。
本来想直接说它在AI里多重要,后来发现好多人连“通道”“链路”这些基础词都搞不清,那咱就从根上捋,把PCIe那点事儿用大白话说透。
你知道AI服务器里的GPU咋跟CPU传数据不?靠的就是PCIe的“链路”。
之前听人说“x16链路”,我还以为是啥行业黑话,后来查了资料才搞懂,其实就是16个“通道”凑成的一组。
每个通道就是一对信号线,一条专门发数据,一条专门收数据,跟咱们俩打电话似的,得有来有回才能聊得起来。
这些术语看着挺唬人,其实跟咱平时用的网线原理差不多,就是规格和速度比网线高多了。
要是连这些基础概念都没搞明白,后面说Gen6有多厉害,那真跟听天书没啥区别。
PCIe干活也分“步骤”,它有三层结构,就像工厂里的流水线。
最上面一层管“要什么数据”,中间一层管“数据没毛病”,最下面一层管“把数据安全发出去”。
还有个叫“枚举”的环节,就是服务器开机时,给每个PCIe设备发个“身份证”,也就是BDFID,再分配一块内存地址。
AI服务器里那么多GPU、SSD,要是没这一步,CPU都不知道该跟谁通信,训练任务直接就卡那儿动不了。
这步看着不起眼,却是PCIe能稳定干活的关键,要是枚举慢了或者出错了,运维人员就得围着服务器转圈找问题,那场面想想都头大。
从Gen1到Gen6PCIe可不是一开始就这么快的。
2003年出的Gen1,单通道每秒才传250MB,现在随便一个高速SSD都比它快。
后来到了Gen5,单通道速度直接冲到4GB每秒,Gen6更狠,一下翻倍到8GB每秒。
本来想只跟大家说这些数字,后来发现编码方式也很关键。
Gen6用了FLIT模式,虽然带宽利用率比Gen5低了点,Gen5能到98%左右,Gen6是92%出头,但它多了FEC/ECC校验。
这玩意儿干啥用?就是减少数据传错的概率。
很显然,Gen6这么改就是冲着AI来的,毕竟AI训练传的数据量太大了,要是传错一个数,前面几天的训练可能都白干,这买卖谁也不想做。
除了速度,PCIe还有些“保命”技术。
比如AER,也就是高级错误报告,数据传错了它能立马报警,告诉运维人员“哪儿出问题了”。
还有DPC,下游端口隔离,要是一个GPU坏了,它能把坏的设备隔离开,不让故障扩散,其他GPU该干活还能干活。
之前听阿里云的朋友说,他们用了SR-IOV技术,单根I/O虚拟化,一个PCIe物理端口能当多个虚拟端口用,GPU的利用率一下就提上去了。
这些技术看着复杂,其实都是为了解决AI集群的实际问题。
你想啊,要是一个设备坏了整个集群都停,那损失可就大了,所以这些技术还真不能少。
Gen6还有个共享流量控制机制,就是让多个设备能动态分带宽。
比如AI训练时,GPU需要大量带宽传数据,这时候就多给它分点;GPU闲下来了,再把带宽分给SSD。
本来想觉得这功能可有可无,后来发现对AI集群太重要了,要是带宽固定死,GPU忙的时候不够用,闲的时候又浪费,多不划算。
更何况现在NVIDIA的H100GPU都支持Gen6了,搭配它家的Gen6交换机,能搭出每秒1.6TB的互联集群,这速度用来训练GPT-5这种超大规模模型,肯定比以前顺畅多了。
PCIe里的交换机,就像小区里的快递站。
根复合体是收件的,一边连CPU,一边连PCIe总线;端点设备就是住户,比如GPU、SSD;交换机就负责把“快递”,也就是数据,准确送到每个住户手里。
之前看NVIDIA的PCIeGen6交换机,能连32个x16端口,也就是说一台交换机能接32块GPU,这么多GPU一起干活,数据传得还不卡,这就是交换机的功劳。
毫无疑问,没有交换机,多GPU集群就是一盘散沙,数据传不过去,再强的算力也用不上。
还有个叫NTB的技术,非透明桥接,能让两个独立的PCIe“域”,比如两台AI服务器通信,不用共享内存地址。
之前有个做自动驾驶的公司就用了这技术,一台服务器处理激光雷达数据,另一台做模型推理,数据传输延迟还不到10微秒。
本来想觉得这技术太偏门,后来发现对需要多服务器协作的场景来说,这就是刚需。
比如自动驾驶汽车里的AI系统,数据得实时处理,要是传数据慢了,可能就会出问题,所以NTB这技术还真挺重要。
咱再说说实际应用案例,百度的飞桨平台,用PCIeGen5交换机搭了个AI训练集群,100块GPU连在一起,训练ResNet-50模型的时间,从24小时缩短到8小时。
还有特斯拉的D1芯片,用PCIeGen4搭了个“D1集群”,每块D1芯片通过PCIe跟旁边的芯片通信,整个集群的算力能到1.8EFLOPS,用来支撑自动驾驶模型的实时迭代刚好够用。
如此看来,PCIe不是光快就行,还得能适配AI的各种需求,不管是多设备协同,还是低延迟传输,都得兼顾到。
PCIe就是AI的“算力血管”,从基础的通道、链路术语,到Gen1到Gen6的速度进化,再到AER、DPC这些保障技术,还有交换机、NTB的应用,都是为了让数据传得更快、更稳、更安全。
要是你也搞AI或者硬件相关的工作,这些知识真得懂点,不然跟人聊技术的时候都插不上话。
一开始我也觉得PCIe挺难的,后来把它拆成“怎么传数据”“怎么传得快”“怎么传不错”这几个问题,发现其实也没那么玄乎。
未来Gen7也要出来了,速度还得涨,到时候AI训练肯定会更顺,咱就等着看它的新表现吧。
来源:律行僧