910B有哪些提升

  1. 前言
  2. 910 vs 910B
    1. 机内带宽
    2. 机间带宽
    3. 显存
    4. FP32的计算性能
  3. 参考

前言

初代芯片910甚至发了Paper,而910B的公开信息少之又少,因此简单总结梳理一下我了解的区别。

910 vs 910B

机内带宽

910:一个子系统内部(0~3卡或4~7卡)可以随意走HCCS,跨子系统需要走PCIe总线。

类似Nvidia V100的形态?

910B:8张卡都通过HCCS接口互联,HCCS接口带宽392GB/s = 7 * 56G

类似Nvidia A100的形态?总带宽弱于A100的600GB/s,但是基本与A800的400GB/s持平。

从机内互联这个角度来看,说910B是对标A100的好像没毛病!

可不要小瞧这个 fullmesh 的优化,据说这直接让切分维度为 8 的 tp 并行的速度提升了整整 10 倍。想想也不奇怪,因为tp的通信量是非常恐怖的,拿低带宽的 PCIe 来 tp 通信本就是非常不合理的。

机间带宽

Ascend芯片的一大亮点就是卡内自带了一张RoCE网卡,如果你曾经在GPU集群配置RoCE网络时遇到过“源地址路由”的坑,那么你大可放心,在昇腾服务器上不会给你犯错的机会。因为RoCE平面的路由都交给Ascend的Device OS给你做了,相当于简化了运维人员的工作。

所谓”源地址路由的坑“,如果八张网卡的IP地址都在同一个网段中,则必须为他们分别配置路由规则,否则就会发生从A网卡入的流量从B卡返回,从而导致网络不通。

使用云服务的时候,这个错误容易发生。因为一些云服务的基础服务帮助用户把RoCE网卡IP配置的事情给做了,而且有可能把八张RoCE网卡都放在了同一个网段。

910:每张卡自带一个 100GE 的RoCE网卡。

910B:每张卡自带一个 200GE 的RoCE网卡。

使用 hccn_tool 工具可以直接查看网卡的网速:

hccn_tool -i 3 -status -g
    ...
    Speed: 200000Mb/s   # 200GE 网卡
    ...

此处RoCE网卡的带宽提升据说也是使用了”叠片技术”,具体细节旧不清楚了。

显存

  • 910:32GB的HBM2
  • 910B:64GB的HBM2e

使用 npu-smi 工具可以查看一张卡的显存大小

$ npu-smi info -i 0 -t memory
    ...
    HBM Capacity(MB)            : 65536
    ...

这里需要补充说明一个点,正如前面所说的,Ascend内部运行着一个操作系统(即 Device OS)。在910芯片上Device OS只用DDR空间,剩下的32GB的HBM空间全部交给了用户;在910B上取消了DDR空间,Device OS通过Mirror的方式使用HBM空间,占用了部分(小于2GB)宝贵的HBM空间,因此用户可用的空间只有62GB左右了。

这里相较A100芯片的80GB显存,的确是略逊一筹了。事实上这个影响也许比想象中还要大:

  1. 在大模型时代模型的参数量正在指数级增长,一张卡的显存有的时候比计算量还要金贵,他直接决定了多少张卡能放得下一整个模型。
  2. 另外,在并行策略方面,如果八张卡能放下的参数量有限,那么意味着整个模型的并行策略会更加复杂一些。

再说到HBM的工艺,这可是影响显存读写速率的关键因素。

V100和Ascend910均采用HBM2,A100和Ascend910B均采用HBM2e,这里也是符合910B对标A100的结论的。

但是,我们再看看Nvidia的后面几代芯片:

H100:HBM3
H200(23年底发布):HBM3e

可以说采用的HBM工艺上,NV已经遥遥领先了,虽说背后的HBM技术是三星和海力士提供的,但是能够拿到供货也算是一种实力的体现吧。

至此HBM工艺应该暂告一段落,到了HBM4,似乎整个架构会发生较大的颠覆,拭目以待。

FP32的计算性能

使用过910的人都知道910有一个大问题,就是对FP32的计算能力非常弱,仅部分vector计算单元支持fp32的计算。要知道DaVinci Core计算单元中真正的算力担当可是Cube计算单元!

因此在进行模型迁移的时候往往需要做一些无奈的妥协(使用混合精度),然而混合精度又非常容易引发算子溢出(定位难度极大,往往需要做全量的算子dump,然后一步一步的找溢出的位置)。

据了解,自动驾驶场景下FP32精度的使用规模非常大,因此上面提到的问题也更容易遇到。

好在910B的Cude计算单元支持了fp32类型的计算,因此上面这个问题也得到了解决。

参考


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 nz_nuaa@163.com
github