2.2 深度学习
深度学习是机器学习的一个分支,人类日常生活中的语音识别和图像识别由大型神经网络掌控,通过对百万级,甚至十亿级参数的训练形成模型,并集成到在线服务中。一旦模型建立,一些复杂的任务例(如社交网络过滤、欺诈和异常识别等)都可以毫不费力地被执行。深度学习网络也可以被抽象成一个有百万量级神经元互联的大脑,网络的规模越大、模型参数越多,网络的工作表现通常会越好。现如今的深度学习网络可以拥有数十亿级的参数和百万级的互联。
深度学习模型不断地被训练和优化,伴随着这一持续过程的一个挑战是高昂的通信成本。大量的数据不断地被共享,如果发生同步延时,计算过程就会被拖延,而网络通常被认为是引起延时的原因。在训练过程中,网络里使用的训练服务器先天地存在Incast问题,因为集群几乎是在同一时间返回结果,Incast场景会导致在连接参数服务器的交换机处产生拥塞,从而带来丢包损失和同步延时。由于更多的节点需要更多的通信请求,所以更多的并行处理可能会增加延时,增加网络拥塞。在网络有损情况下,数据拷贝会引入延迟抖动、拥塞丢包等性能损失,造成处理器空闲等待数据,并拖累整体并行计算性能,导致无法通过简单增加处理器数量来提升整体计算性能。
2.3 NVMe over Fabrics
Non-Volatile Memory Express(NVMe)是一种存储通信接口和规范,它基于固态硬盘(Solid-State Driver,SSD)提供了一套低延迟、内部并发化的接口规范。NVMe快速可靠的特点十分适用于未来云数据中心的高并行环境。全闪存阵列(All-Flash-Arrays,AFA)需要NVMe访问网络,因而需要极低的延迟,以形成竞争优势。
在融合基础架构数据中心中,NVMe over Fabrics被指定基于UDP运行在RoCEv2上,或者基于TCP运行在iWARP上。当网络检测到拥塞时,ECN指示符会被标记在数据包上,接收端收到后就会通知发送端降低发送速率,以避免丢包损失。如果信息的往返时间太长,丢包损失仍然不可避免,而丢包则需要重新传输,这将严重降低NVMe存储的访问速度。基于有损网络的存储云化,因为网络存在拥塞丢包、延迟抖动、故障倒换而严重影响NVMe存储云化的效果。