Page 58 - 《软件学报》2020年第10期
P. 58
3034 Journal of Software 软件学报 Vol.31, No.10, October 2020
AlexNet 于 2012 年被提出,首次在 CNN 中成功地应用了 ReLU、Dropout 和 LRN 等,可以算是 LeNet 的一
个更深、更宽的版本,是现代深度 CNN 的奠基之作.本小节为消除大规模存储设备 I/O 造成的影响以方便测试,
选用了模拟数据(dummy data)作为数据集,批处理大小为 64,基于 Caffe 进行 1 800 次迭代训练.如图 12 所示,本
原型系统相较于优化后的 GVirtuS 系统吞吐量提升了 1.4 倍.
Fig.11 Performance comparison of LeNet training Fig.12 Performance comparison of AlexNet training
图 11 LeNet 训练性能对比 图 12 AlexNet 训练性能对比
6 讨论与展望
6.1 虚拟化额外开销
从系统评测章节可以看出,虽然本加速器虚拟化框架的设计相较于现有的解决方案有很大的性能提升,但
是对比 PCI 直通方案的理想性能,仍有一定的差距.在时间拆分分析部分,不难看出原型系统中通信模块的耗时
仍然较多,其中,耗时最长的操作是对于 FS.base 和 GS.base 两个 MSR 的修改.这两个操作存有优化的余地,理论
上可以通过在服务端虚拟机地址空间中添加内存映射来回避写 MSR 的操作.由于涉及到的内存页较多,映射时
必须收集到所有可能通过段寄存器访问的内存区域,因此本文会将这种优化作为未来工作继续加以研究.
6.2 安全性分析
虽然虚拟机之间有着很强的隔离性,但是本文所提到的代理执行设计允许应用程序在用户态实现虚拟机
地址空间的切换,所以可能造成潜在的安全隐患,本小节针对使用本加速器虚拟化框架后的安全性进行了分析.
本文将虚拟机监视器以及服务端虚拟机视为可信部分,假设恶意用户只可能通过客户端虚拟机发起攻击,攻击
对象可以是服务端虚拟机,也可以是同一物理服务器上的其他客户端虚拟机.本文分析了以下攻击方式.
(1) VMFUNC 非法切换攻击.一个恶意用户可以在自己控制的客户虚拟机内自定义包含 VMFUNC 指令的
应用程序,该程序可以不使用 Wormhole 提供的跳板机制,从而自行指定参数,试图将控制流切换到其他非服务
端的客户虚拟机,造成敏感数据的泄露等.Wormhole 通过限定每个客户端虚拟机的 EPTP 列表,第 0 项为当前扩
展页表,第 1 项为目标服务端虚拟机的扩展页表,其余 510 项强制填充无效地址 0,使客户端虚拟机在执行地址
空间切换时只有两种选项:切换到自己或绑定的服务端虚拟机.如果恶意应用程序传给 VMFUNC 指令参数大
于 1,则会发生下陷被虚拟机监视器拦截,因此不会对其他虚拟机造成影响.
(2) 非法后端函数跳转攻击.一个恶意用户可能试图篡改映射到客户端虚拟地址空间的后端处理函数指针
数组中的地址,例如将函数指针指向一些可能会泄露敏感数据的函数来劫持控制流.Wormhole 在映射后端处理
函数指针数组时,在扩展页表中将数组所在内存页的读写权限设为了只读(read-only),如果发生试图修改后端
处理函数指针数组的行为,将会触发虚拟机下陷,虚拟机监视器会捕捉并阻止后续行为.
7 总 结
本文面向时下流行的云端深度学习场景,针对目前缺乏可用性好、方便高效、易于维护的加速器虚拟化方
案的现状,提出了 Wormhole——一套基于硬件虚拟化技术的加速器虚拟化框架,为各类云服务提供商开发可定