求真百科欢迎当事人提供第一手真实资料,洗刷冤屈,终结网路霸凌。

FLOPS查看源代码讨论查看历史

事实揭露 揭密真相
跳转至: 导航搜索
  FLOPS

FLOPS(即“每秒浮点运算次数”,“每秒峰值速度”)是“每秒所执行的浮点运算次数”(floating-point operations per second)的缩写。它常被用来估算电脑的执行效能,尤其是在使用到大量浮点运算的科学计算领域中。正因为FLOPS字尾的那个S,代表秒,而不是复数,所以不能省略掉。在这里所谓的“浮点运算”,实际上包括了所有涉及小数的运算。这类运算在某类应用软件中常常出现,而它们也比整数运算更花时间。现今大部分的处理器中,都有一个专门用来处理浮点运算的“浮点运算器”(FPU)。也因此FLOPS所量测的,实际上就是FPU的执行速度。而最常用来测量FLOPS的基准程式(benchmark)之一,就是Linpack。

简介

传统服务器架构的瓶颈主要来自内部PCIe Fabric树形互连。首先,传统的数据中心服务器通常只配备一个网络接口(独立网卡或者Bond网卡),当该服务器配备多个加速部件(比如GPU)并通过网络接口并发传输数据时,就会面临很大的流量汇聚,使其成为系统的瓶颈。而这种同步式的网络访问,在分布式AI训练任务中非常常见。AI训练的数据集一般被划分为多个批次,每个批次的数据处理完成之后,所有参与计算的NPU加速器都要进行梯度的同步。跨服务器的NPU梯度同步操作都要通过网络接口进行通信。这种周期性的同步式网络接口访问,势必导致网络接口上的拥塞。类似的端口拥塞还会发生在PCIe树形拓扑的跟节点处。分布式AI训练业务在每个批次的数据处理完成之后,会同步载入下一批次数据,导致内存的并发访问。其次,PCIe Switch端口上的拥塞可能导致整体通信效率的降低。当NPU1和NPU3同时向NPU2发送数据时,将会在与NPU2直接相连的PCIe Switch端口上形成拥塞。由于NPU1和NPU3到NPU2的通信距离不同,导致二者之间具有显著的带宽差异。而AI训练任务的梯度AllReduce是一个全局性的同步操作,其完成时间往往受限于最慢的链路,所以这种链路带宽的不公平性也会导致系统性能的下降。

评价

EFLOP服务器架构重点解决上述互连问题,服务器配备了与加速器(NPU)等量的网卡(NIC),并将NPU和NIC进行绑定配对,每一对绑定的NPU和NIC处于同一PCIe Switch之下,约束NPU的网络通信只能经由自己绑定的NIC。这样,NPU的网络通信流量全部被局限在PCIe Switch之内,避免了网络接口上的拥塞。针对PCIe Switch引入的拥塞问题,在PCIe流量较大的情况下,禁用NPU之间进行跨PCIe Switch通信,使其通过网络接口进行数据交换,利用网络协议栈的流量控制机制来降低系统的拥塞程度。值得强调的是,网络化服务器架构是一个开放的架构,可为各种加速器提供高速互连,对于自带直连总线(如英伟达的 NVLink)的加速器同样兼容,利用其直连总线实现更高带宽通信。[1]

参考文献

  1. FLOPS搜狗