详解CPU漏洞对机器学习的影响:几乎所有卷积层都受影响,QR分解降速37%

作者 | Mikel Bober-Irizar

翻译 | 刘畅

编辑 | Donna

(备注:KPTI 在计算机中指 Kernel page-table isolation,是一种Linux内核功能,可以减弱安全漏洞带来的影响)

2018新年伊始,互联网公司发现了两个非常严重的新漏洞。这两个漏洞分别是熔毁(Meltdown)幽灵(Spectre),它们主要会影响几大处理器供应商。

这些漏洞会使攻击者利用处理器在推测性执行时产生的错误,读取(并潜在地执行)其各自进程之外的存储器位置。这意味着,攻击者可以读取其他软件存储器中的敏感数据。

如果在Linux内核中打一个叫做KAISER(也称为KPTI)或PTI(页表隔离)的补丁,可以有效地解决了利用了Meltdown的攻击。但是,这个补丁会对Linux的性能造成很大的影响。据报告显示,CPU性能下降的范围是5%到35%,另有一些综合的评测标准显示,CPU的性能下降幅度甚至超过了50%。

(报告地址:https://www.phoronix.com/scan.php?page=article&item=linux-415-x86pti&num=2)

然而,PTI的性能问题在很大程度上取决于每个人手头需要执行的任务。换句话说,这种性能的大幅度下降可能仅仅出现在FSMark等综合的基准测试中。

所以问题来了:在机器学习的应用程序中,我们会看到什么样的性能?

环境部署

为了比较在使用和不使用PTI时,机器学习应用程序的性能变化,我部署了一个新的带intel微码(也称为微指令)的机器。该机器装有Ubuntu 16.04版本的操作系统。

我还比较了Ubuntu 16.04(4.10.0-42-generic版本)上自动安装的最新内核与最新的主线内核版本(4.15.0-041500rc6-generic版本),这个版本的Linux带有PTI补丁。

我采用的工具是基于Python 3.6(带有用pip下载的额外软件包)的Anaconda,由它来执行整个测试。

我用于测试的机子配置包括英特尔酷睿i7-5820K(Haswell-E,stock clocks)和64GB DDR4 @ 2400MHz。

值得注意的是,AMD的处理器没有启用PTI补丁,因为它们不受Meltdown攻击的影响——所以如果你使用的是AMD处理器,性能将不会受到任何影响。

测试结果

请注意,图表上的比例是从60%开始的

首先,我们可以看到几乎所有的程序性能都有轻微的下降,不过在卷积层模型的推理过程中下降的速度非常快。尤其是AlexNet,它的推理速度比正常的慢了大约5%,但反向传播速度几乎是相同的——这就是为什么对训练造成的影响大约只是推理的一半。

就Keras的原始操作而言,全连接和LSTM层几乎没有受到任何的性能影响,但卷积层却减少了10%左右。

对于AlexNet和MNIST的基准测试,我使用了TensorFlow教程的模型。而对于Keras,我则使用了一个只有几层卷积并可以随机初始化的模型。我还计算了其在随机数据上的推理速度。

值得注意的是,这些基准测试都仅使用了CPU来运行。

我在这里使用了Scikit-learn工具包来衡量“传统”机器学习和数据科学算法的性能。

我们看到,与神经网络相比,操作系统带来的性能下降更大,且PCA和线性/逻辑回归受到的影响最严重。造成这种下降的原因可能是由于某些数学受到了非常严重的影响——正如下面针对NumPy的基准结果所讨论的那样。

有趣的是,K最近邻算法完全没有受到PTI的影响,而且目测在新的内核上表现的还稍好一些。这有可能只是在性能测试错误的范围之内,但也有可能是其他一些内核的改进,稍微帮助提高了该算法的速度。

我还从内存里缓存的文件中提取了一个pandas.read_csv()函数的基准,用于查看带PTI的系统对CSV解析的速度降低了多少——输入博世(Bosch)Kaggle竞赛数据集(大小2GB,1M行,1K列,类型是浮点数, 80%缺失),带来了6%左右的读取性能下降。

所有的Scikit-learn工具包基准也是在博世数据集上进行计算的。我发现,普遍来讲,它对于进行机器学习算法基准测试,效果是很好的,因为这是一个庞大的,标准化的且格式良好的数据集(尽管因为采用完整的数据会花费太久的时间,kNN和K-means算法是在一个子集上进行计算的)。

这些基准在这里可能是最综合的了,因为仅测试了单一的scipy操作的速度。然而,这些结果告诉我们,PTI带来的性能损失是与任务依赖有极大联系的。在这里我们可以看到,大多数的操作受到的影响都很小,包括点积和FFT(快速傅里叶变换)操作,其对性能的影响也很小。

当PTI启用时,SVD(奇异值分解),LU分解和QR(正交三角)分解性能都会受到大幅度的影响。QR分解从190GFLOPS降低到110GFLOPS,降低了37%的性能。这可能有助于解释为什么PCA(主要依赖于SVD)和线性回归(主要依赖于QR分解)的性能会下降。

这些基准测试是使用英特尔自己的ibench软件包完成的,只是使用了Anaconda而不是英特尔的python发行版。

对XGBoost算法进行测试时,我得到了一些有趣的结果。

在大多数情况下,使用较少的线程数时,无论使用慢速精确的方法还是快速直方图方法,PTI带给XGBoost的性能影响都可以忽略不计。

但是,当使用非常多的线程时,也就是CPU同时处理更多的任务时,使用PTI系统会带来速度的下降。

这并不是XGBoost在大量线程内核上执行的完美表示(因为它是在12个逻辑内核上运行了40个线程)。不过,它也能表明,带PTI的系统在CPU同时处理很多事情时,会带来更大的性能影响。不幸的是,我不能访问任何的可以修改内核的高内核数量的服务器,所以我不能得到一个更深入的结果。

与测试scikit-learn一样,这些基准测试是在博世(Bosch)数据集上进行的。

结论

最重要的结论是,PTI带来的性能影响其实是非常依赖于任务的——一些任务不受影响,而有些任务的性能却下降了40%。不过就总体而言,我认为这种影响比我预期的要小,因为只是一些应用程序受到了严重的影响。

原文链接:https://medium.com/implodinggradients/meltdown-c24a9d5e254e

原文发布于微信公众号 - AI科技大本营(rgznai100)

原文发表时间:2018-01-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏企鹅号快讯

你的深度学习应用可能存在安全风险

360安全实验室(肖奇学 、Deyue Zhang)、佐治亚大学(李康)和弗吉尼亚大学(Weilin Xu)的研究者,他们在论文《Security Risks ...

24050
来自专栏玉树芝兰

如何用Python和深度神经网络寻找近似图片?

给你10万张图片,让你从中找出与某张图片最为近似的10张,你会怎么做?不要轻言放弃,也不用一张张浏览。使用Python,你也可以轻松搞定这个任务。

16010
来自专栏新智元

谷歌、亚马逊和百度的深度学习野心:TensorFlow、MXNet、PaddlePaddle 三大框架对比

【新智元导读】本文作者陈汝丹从定位、框架使用、分布式构成三个方面比较了 TensorFlow、MXNet、PaddlePaddle三个常用开源框架。 本文转载自...

37360
来自专栏ATYUN订阅号

机器学习项目:使用Keras和tfjs构建血细胞分类模型

人工智能的应用非常广泛,尤其是在医疗领域。先进的人工智能工具可以帮助医生和实验室技术人员更准确地诊断疾病。例如,尼日利亚的一位医生可以使用这个工具从他根本不了解...

27530
来自专栏企鹅号快讯

谷歌TensorFlowLite正式发布,机器学习框架向移动端大步挺进!

上个月,谷歌正式宣布推出针对移动设备和嵌入式设备的轻量级解决方案 TensorFlow Lite。而在此之前,今年 5 月份的谷歌 I/O 大会上他们已经对此进...

21270
来自专栏数据派THU

一万元搭建深度学习系统:硬件、软件安装教程,以及性能测试

来源:量子位 作者:Slav Ivanov@blog.slavv.com 编译:问耕 本文长度为4600字,建议阅读6分钟 本文教你万元打造一个深度学习系统。 ...

25660
来自专栏机器之心

教程 | 从预处理到部署:如何使用Lore快速构建机器学习模型

选自Medium 作者:Montana Low 机器之心编译 参与:李诗萌、思源 机器学习的构建和部署通常需要非常多的工作与努力,这对于软件开发者和入门者造成了...

40850
来自专栏机器之心

资源 | Luminoth:基于TensorFlow的开源计算机视觉工具包

36170
来自专栏SnailTyan

动手学深度学习——第一课笔记(上)

第一课:从上手到多类分类 课程首先介绍了深度学习的很多应用:例如增强学习、物体识别、语音识别、机器翻译、推荐系统、广告点击预测等。 课程目的:通过动手实现来理解...

37700
来自专栏AI研习社

想要训练专属人脸识别模型?先掌握构建人脸数据集的三种绝招

雷锋网 AI 研习社按,随着深度学习的发展,很多技术已经落地,成为我们每天都能接触到的产品,人脸识别就是其中之一。人脸识别的应用范围很广,涉及上下班打卡、门禁、...

20620

扫码关注云+社区

领取腾讯云代金券