Page 56 - 《软件学报》2020年第10期
P. 56
3032 Journal of Software 软件学报 Vol.31, No.10, October 2020
5.1 微型基准测试(microbenchmark)
为了验证 Wormhole 的设计对于第 2.1 节提出的通信性能问题的提升,本节对原型系统中 Neuron Layer 单
元测试中所有 CUDA API 的转发流程作了时间拆分(time breakdown)分析,调用过程中各部分的时间开销及占用
总时间的百分比如图 7 所示.测试中 API 调用的总时间为 23 778 309 322cycle,可以看到,额外性能开销占整个流
程耗时的比例从 GVirtuS 的 88%降到了 20%(4 660 728 884 个 cycle),其中,额外内存拷贝耗时占 3.65%
(866 946 457 个 cycle),系统调用修改 FS.base 和 GS.base MSR 的耗时占比为 10.64%(2 530 932 006 个 cycle),余
下的包括 VMFUNC 在内的控制流量切换操作的耗时占比为 5.31%(1 262 850 421 个 cycle).
Fig.7 Analysis of the average time cost of Neuron testcase in the prototype system
图 7 原型系统中 Neuron 测试用例平均耗时占比分析
从绝对时间开销来看,本次测试中 GVirtuS 基于 TCP/IP 的通知机制消耗了 248 617 785 293 个 cycle,而
Wormhole 原型系统中的控制流切换机制仅消耗了 4 660 728 884 个 cycle.为了更细粒度地验证本设计在第 3.3
节中提出的“跨虚拟机地址空间的执行流切换”(下称“快速切换”)和“执行流切换过程中零虚拟机下陷”(下称
“零下陷”)两个技术点的效果,本节增加了一次测试,在该测试中关闭了“零下陷”功能,即每次执行流切换前后主
动下陷到虚拟机监视器更换 MSR.结果表明,API 调用的总时间为 29 638 851 151 个 cycle,而通信模块占用了
9 432 980 220 个 cycle,意味着“快速切换”技术点将 TCP/IP 通信开销降低了 2 个数量级,而“零下陷”技术点进一
步将执行流切换的开销降低了 50%.综上所述,本设计大幅优化了虚拟化带来的额外耗时,从微观角度证明了
Wormhole 的设计相较于以 GVirtuS 为代表的现有设计大幅降低了虚拟化带来的额外开销.
从 CPU 利用率来看,如表 4 所示,Wormhole 只占用了 1 个 CPU 的总时间 12.145s,其中用户态有效时间为
9.474s、内核态有效时间为 2.661s,利用率高达 99.92%,远高于 GVirtuS 环境下 2 个 CPU 的 46.61%和 38.52%,
甚至要优于 PCI 直通方案的 97.28%,证明了 Wormhole 的设计相较于现有方案,大幅度地提升了 CPU 的利用率.
Table 4 The improvement of CPU utilization during Neuron Layer testcase
表 4 Neuron Layer 测试中的 CPU 利用率提升效果
总时间(s) 用户态执行时间(s) 内核态执行时间(s) CPU 利用率(%)
原生物理环境 6.947 4.494 2.264 97.28
GVirtuS 后端 94.705 11.833 32.306 46.61
GVirtuS 前端 93.990 6.498 29.706 38.52
Wormhole 12.145 9.474 2.661 99.92
5.2 神经网络层单元测试
本节将使用 Caffe 官方提供的多种神经网络层的单元测试用例,从宏观角度体现 Wormhole 在不同神经网
络层测试中获得的性能提升,采用测试用例自带的时间统计工具来衡量各个测试的用时,时间单位为 ms,评价
性能高低的标准是耗时越短,性能越好.
本节选取了现实场景中一些重要的神经网络层作为单元测试用例,主要有以下几类:计算机视觉 [31] 领域常
用的图像处理网络层:(1) 卷积层(下称 CONV)和逆卷积层(下称 DECONV);(2) 自然语言处理 [32] 领域常用的循