posted

0 Comments

Bitfusion 的工作原理决定了它有一些额外的资源消耗,主要是客户端和服务器之间的网络传输开销。这些额外的开销对于GPU的利用率会有一些怎样的损耗呢?我们通过测试来评估一下。

我们把 vSphere 虚拟化平台上直接使用 GPU (直通模式) 作为基准,看看使用 Bitfusion 的结果跟它之间有多大的差距。至于利用 GPU 进行机器学习在虚机化平台和裸金属平台之间有多大的性能差异,VMware 的研究团队已经做过这方面的测试,基本上没有性能差异;由于 vSphere 的优化功能,在某些测试场景中虚拟化环境下的性能甚至要比裸机环境还要好一些。

我们用三台服务器搭建了一个测试环境,一台主机上安装了 GPU,并在这台主机上运行 Btifusion 服务器虚机;在另一台主机的虚机中运行 TensorFlow 机器学习框架性能测试套件 tf_cnn_benchmarks,通过网络来访问 Bitfusion 服务器提供的 GPU 计算资源(测试环境的具体硬件配置列在本文最后的附录中)。我们主要是针对3种不同的网络配置来进行测试,考量不同的网络条件对机器学习的性能有多大影响,从而为用户在实际环境中选择网络配置提供一个参考。三种测试场景如下:

  1. 直接采用 10Gb/s 网络,使用虚拟网卡 VMXNET3;
  2. 采用 100Gb/s 的聚合以太网 RDMA 方案 RoCE,直通方式访问;
  3. 采用 100Gb/s 的聚合以太网 RDMA 方案 RoCE,通过虚拟化方式 PVRDMA 访问。

 

什么是 RDMA?

首先介绍一下基本概念 RDMA,熟悉的同学可以直接跳过。

RDMA 的全称是 Remote Direct Memory Access (远程内存直接访问),它是一种性能加速技术,通过网卡来直接访问另一台服务器上的内存,而不需要 CPU 的介入。服务器间传统的数据交换需要通过 CPU 从内存中读取数据,然后再通过网络协议堆栈交由网卡把数据传送到到另一台服务器;另一台服务器则执行相反的操作,也需要经过网卡转交给 CPU 再写入到内存中,这中间会消耗大量的 CPU 资源。RDMA 则通过一整套的软硬件协议,把这些工作完全交给网卡来实现,这样可以大大提高跨服务器数据访问的效率,并且节省大量的 CPU 资源。现在,一些大型软件如数据库系统等纷纷增加了对 RDMA 的支持,以获得更高的系统性能。

 

目前主要有以下三种 RDMA 技术方案:

  • InfiniBand (IB) – 需要 InfiniBand 专用的网卡和交换机,性能最高,也最昂贵。
  • RDMA Over Converged Ethernet (RoCE) – 利用现有的以太网和交换机来支持 RDMA,只需要网卡支持 RoCE 就行了。
  • Internet Wide Area RDMA Protocol (iWARP) – 在 TCP 网络上支持 RDMA,也可以利用现有的网络设备,只是网卡要求特殊,要求支持 iWARP 。

 

我们测试中用到的方案为 RoCE,这是由主机上的网卡 HCA (Host Channel Adapter) 来实现的。虚机使用 HCA 提供的 RDMA 有两种方式,一种就是直通方式,虚机独占使用 HCA,这就是我们第2种测试场景中的网络配置;另一种是虚拟化方式 PVRDMA (Paravirtual RDMA),是 VMware 对于 RDMA 技术的半虚拟化实现,vSphere 会在虚机中提供 PVRDMA 虚拟网卡,再通过 VMkernel 中的 PVRDMA 堆栈来访问 HCA,这种方式可以让多个虚机共享 HCA 设备,这是我们第3种测试场景中的网络配置。


PVRDMA 架构

 

 

测试结果

在测试中,我们选择了两种非常代表性的深度学习模型 Incepton3 (Inception Net V3) 和 resnet50 (Residual Neural Net 50 [50层残差神经网络]) 来对 ImageNet 进行图像分类学习。测试结果如下面的图表所示,我们把基准性能 (直通模式) 的性能定义为1,每次测试的性能跟基准的比值显示在图表中,Performance Ratio的值越接近于1就表示使用 Bifusion 所导致的性能损耗越小,值为1表示完全没有性能损耗。

 

测试场景1:直接采用 10Gb/s 网络,使用虚拟网卡 VMXNET3

很显然,这是三个场景中性能损耗最大的,这个场景中的网速最慢,也没有利 RDMA 方案来分担 CPU 的传输负担。10Gb/s 是最普通的数据中心网络配置,这是利用普通网络可以达到的性能结果。

 

测试场景2:采用 100Gb/s 的聚合以太网 RDMA 方案 RoCE,直通方式访问

这是三个场景中性能最高的一个,采用了 100Gb/s 高速网络,又是直通模式来使用主机网卡的 RDMA 功能。在高性能网络配置下,可以看到 Bitfusion 所造成的性能损耗几乎可以忽略不计。

 

测试场景3:采用 100Gb/s 的聚合以太网 RDMA 方案 RoCE,通过虚拟化方式 PVRDMA 访问

这种场景因为采用了虚拟化的 RDMA 方式,性能跟直通方式相比有一定下降。这是实际应用最可能的一种场景,一般我们都会有多个虚机来共享同一物理网卡所提供的 RDMA 功能,PVRDMA 是一个必然的选择。

 

总结

Bitfusion 由于采用了客户机和服务器模式来共享 GPU,CUDA 调用和相关的数据都需要通过网络来进行传输,相比于在本机上使用 GPU 会有一定的性能损耗。从测试结果我们可以看到 Bitfusion 对于 GPU 的性能损耗最大偏差也不到 20%,相比于 Bitfusion 方案所带来的共享便利和 GPU 利用率的提升是完全可以接受的。

需要注意的是 RDMA 的直通模式虽然性能最优,但是它基本上是让虚机饶过了 hypervisor 来直接使用 RDMA 设备,在这种情况下虚机无法用到 vSphere 的一些核心功能,包括 vMotion、动态添加和删除虚拟设备、虚机快像、DRS (Distributed Resource Scheduler) 和高可用 HA 功能。PVRDMA 是 VMware 对于 RDMA 技术的半虚拟化实现,它不存在直通模式的这些局限,完全可以用到 vSphere 的所有功能,并且可以实现多个虚机对于 RDMA 设备的共享。

另外我们也可以看到 Bitfusion 方案的性能损耗也取决于深度学习模型和 batch size 的大小,大的 batch size 有助于降低性能损耗,这是值得我们在真实环境中配置 Bitfusion 平台时借鉴的。

 

测试环境

下面列出测试所用的软硬件环境供大家参考。

表1:测试硬件

 

表2:测试软件

 

本文的内容和测试数据来自于英文博客 Machine Learning Leveraging NVIDIA GPUs with Bitfusion on VMware vSphere (Part 2 of 2)

 

 

延伸阅读

将 VMware vSphere / vSAN 软件与 Intel 的最新硬件平台技术相结合,可以为用户交付最佳的超融合架构平台,帮助用户简化数据中心管理,降低采购和运维成本,轻松应对企业在数字化转型中面对的各种挑战,是现代应用的理想运行平台。

  • VMware vSAN 是最佳的存储方案平台,具有管理简便、高性能、低成本、易扩展的特点,在 vSAN 平台上可以支持任何类型的应用。
  • Intel 至强处理器提供最强计算能力,基于傲腾 (Optane) 和 3D NAND 技术的固态盘是理想的高速缓存,以太网融合网卡提供稳定的网络带宽和低网络延迟。