至强可扩展处理器对Intel来说意味着什么?

 

2017年,Intel确立了“以数据为中心”的转型目标,致力于释放数据指数级增长带来的潜能。同年,第一款至强可扩展处理器推出。Intel并没有把至强称作是服务器产品,而把它定位于数据中心产品,从边缘服务到云,体现了市场前进的趋势。并且在数据中心战略引导下, Intel通过收购及多方面投入,在数据中心的布局不断丰富。

 

伴随着云计算的发展,Intel已经面向全球用户交付超过5000万颗至强可扩展处理器,超过10亿个至强核心为云提供动力,超过800个云服务提供商部署了至强可扩展处理器。可以说,至强可扩展处理器是Intel技术战略的重要成果,也是当今“多云”环境下Intel计算平台的重要基石。

 

今年4月,Intel宣布了第三代可扩展处理器。性能比上一代提升了46%,而除此之外,最突出的是内置的安全性和AI特性,使得第三代至强成为Intel目前唯一内置AI和安全解决方案的数据中心x86处理器。

 

新产品发布以来,中国市场反响如何?为何注重AI和安全的强化?背后有哪些深厚的技术底蕴?日前,与非网深度对话Intel技术专家,对这款里程碑式的处理器一探究竟。

 

据Intel市场营销集团副总裁、中国区数据中心销售总经理陈葆立介绍,新产品发布一个多月之后,国内领先的公有云服务厂商第一时间都推出了针对第三代至强的产品, OEM客户也陆续发布了基于第三代至强的全新服务器产品。

 

增强安全方案背后的四大支柱

 

Intel技术专家介绍,第三代至强增强的安全解决方案主要源于四大安全技术支持:软件防护扩展SGX、密码操作硬件加速、TME加密、平台固件恢复技术。其中,TME加密和平台固件恢复技术更多是在背后作为平台支持,提供对整个软件生态及硬件组件服务。软件防护扩展和密码操作硬件加速,则和传统意义上的ISV、CSP关系更加紧密。


 
软件防护扩展SGX( Software Guard Extension)在Intel第六代酷睿处理器上已经进行了搭载,而在第三代可扩展至强上则是首次提供了硬件级的支持。该如何理解该技术所提供的“扩展”能力?Intel技术专家指出,对于操作系统来说,希望提供CPU的一系列的指令集,软件防护扩展就是一个新的指令集扩展,方便软件开发者通过直接调用CPU的指令来实现平台安全隔离的技术。

 

密码操作硬件加速则提供了硬件级的加速,通过从硬件方面来对算法实现加速处理,有助于降低算力损耗。

 

在行业用户都普遍关注数据问题的当下,有三种需求比较普遍:第一,用户希望可以在云端加密存储;第二,云端和用户的本地数据中心之间可以进行加密传输;第三,数据如果在服务器中,服务器进行运算时需要在内存和服务器CPU之间进行交互。为了保证数据全生命周期的安全,很有必要对这三种数据状态进行加密保护。

 

在数据中心,工作负载在内存中对CPU进行运算的时候,Intel提供指定的内存区域和操作系统、硬件配置隔离开,这个指定的内存区域被称作“飞地”。

 

 

Intel技术专家解释,“飞地”可以理解为一个组织把数据加载到云端或是远端的模块上,对这个用户来说,像是孤悬在海外不受自己保护的区域。那么怎样进行保护呢?就需要借助于远端CPU的能力,也就是Intel的软件防护扩展SGX,可以把敏感数据隔离使用。

 

SGX可以理解为一种基于硬件的可信执行环境,隐私计算联盟最近在推荐整个业态都使用类似的基于硬件的可信执行环境。

 

在实际应用中,SGX相当于提供了一个全新形态的安全和隐私保护。比如CPU系统内存中加载的数据,当CPU来回调动这些数据的时候,可以通过一种机制,为单独的应用程序划分出专门的区域,由CPU进行单独的加解密操作。放在里面的数据,包括部分代码和整个底层的操作系统、虚拟机管理程序这一系列高权限软件的访问都会被禁止。这样即使黑客已经控制了系统的虚拟机管理程序,也无法访问安全飞地中受保护的数据和代码。

 

通过这种方式,各级组织可以放心地把敏感的工作负载放到公有云或远端节点。从而实现本地加密,传输到远端模块,在云上进行加密存储,在运算的时候,在内存中由SGX提供内存隔离“飞地”来进行必要的敏感数据运算。对于现在流行的联邦学习或是跨实体的数据互操作,都可以通过这种方式得当便利。例如腾讯、百度、阿里都可以基于这种能力,提供更为广泛的跨实体的工作负载协作。

 

密码操作硬件加速方面,密码操作几乎遍布服务器工作负载,不论是软件、网络传输还是存储。但是,随着密码操作的安全性要求越来越高,秘钥的长度在不断增长,这对算力的要求是几何级的增长。

 

Intel作为硬件提供商,需要在硬件层面帮助软件的密码操作加速。据Intel技术专家介绍,这主要通过三种方式实现:一种是在CPU指令集中,不断添加新的指令集现实现硬件加速;第二种是在CPU的每一代微架构上都会进行调整,充分考虑新的指令集如何在硬件中进行融合;第三种是软件优化结合硬件加速指令集的扩展。通过软件优化方面的多缓存并行执行和函数缝合技术,Intel实现了软件运行时也不会占用特别多的数据资源,在并行加速方面获得了速度的提升。

 

通过内置增强加密处理密码操作硬件加速技术,公钥密码签名即OpenSSL RSA 2048位的签名上,相比上一代CPU,单线程情况下提升5.6倍;在进行AES-GCM对称加密方式的情况下,相对上一代CPU,单线程情况下提升3.3倍。

 

Intel技术专家强调,通过三种方式的组合,对硬件的加速能力提升比较明显。特别是随着量子计算的来临,传统上很多对称和非对称的加密在密码操作上会有些力不从心,这三种方式可以通过不断地演进来提供支持。

 

三大AI用例

 

通过整个架构的改进,第三代至强的性能比前一代有74%的性能提升。据Intel方面介绍,这样的性能相较于AMD有25倍的领先优势。在现有的CPU架构中,大量运用了AVX-512指令集,也正是得益于这样的指令集支持,第三代至强在多种AI负载上都能良好的性能表现。

 

Intel技术专家介绍,围绕架构和AVX-512指令集,Intel和业界一起投入了大量资源,在软件方案上进行了深度优化。以AI开发中应用最广泛的开源框架TensorFlow为例,最新的进展是TensorFlow的维护者谷歌,已经认可了Intel在TensorFlow投入的优化性能。因此,从最新版本2.5版开始,其默认发行版就是Intel的优化版。

 

不只是深度学习,在机器学习场景中,Scikit-Learn是当前较为流行的应用开发包,Intel也和开源社区一起优化了针对Scikit-Learn的机器学习的软件算法性能,可以获得100倍的性能提升。

 

 
Intel技术专家介绍了第三代至强当前的几个应用案例。

 

第一个例子是数字娱乐体验。现在游戏场景一个新趋势,是要把用户的形象融入到游戏角色中。因此游戏厂商在开发过程中,就利用AI技术把人脸的照片和游戏的3D模型进行耦合,这样玩家的面部就会出现在游戏角色当中,游戏互动会变得更有趣。

 

照片到3D模型的整个角色图像的映射,其实就是一个深度学习的应用场景。传统上是用基于FP32的运算精度来处理的。基于第三代至强可扩展处理器,Intel进一步支持了int8的低精度的推理技术。通过FP32向int8的转换,最后实现了完全可用的游戏角色生成精度,同时性能提升了4.23倍。

 

用户在这个过程导入了Intel在提供低精度支持的AI推理过程中的开源工具LPOT,它是一个开源的Python库,在GitHub上供业界使用。这个工具可以无缝对接TensorFlow、PyTorch训练出来的模型,客户基本上不需要写代码,直接用TensorFlow已经训练出来的模型,就可以简单高效地把FP32的推理模型转换成int8,同时保证非常高的准确性。通常在图像类应用中,从FP32转到int8,精度损失通常低于1%的。这家客户在应用中也达到了这样的精度效果,同时获得了4倍多的性能提升。

 

第二个案例是和阿里云的AI部门(阿里PAI)在自然语言推理上的合作。最近几年的自然语言的应用,基本上是基于Transformer的基础算法模块来开发的。Intel和阿里云正是在第三代至强上针对Transformer的一个模型进行了深度优化,通过VNNI int8实现了3倍的性能提升。

 

第三代至强可扩展处理器和本身在FP32性能上就有36%的性能提升,再进一步通过VNNI int8的性能优化,又获得了42%的性能提升。因此,阿里PAI的Transformer模型性能达到了3倍左右的提升。这样的Transformer模型正在阿里云平台上每天服务百万级的用户,通过性能改进,用户就获得了更低的响应延时,用户体验得到了提升。

 

值得一提的还有在线推荐系统,不论是线上购物,还是在网上浏览内容,往往都有在线推荐系统发挥作用。它有两个主要组成部分:一个组成部分是计算密集型服务中的计算,包含了深度学习模型的推理。另外一个部分是存储型服务,今天的推荐系统在设计时,需要满足10亿甚至是更高级别的用户量级,系统需要对每个用户的使用习惯、偏好进行了解,然后把每个人的特征在系统中保存起来。每次推荐过程中,需要把对用户特征信息实时提取出来,来产生针对性的、千人千面的推荐结果。

 

Intel技术专家指出,这样一个系统在服务成千上亿的用户时,内存需求量是非常大的。传统方案没有搭载傲腾持久内存技术时,可能会用到一个非常昂贵的存储系统,如果要实现实时,还需配置一大堆的DDR4内存,对成本带来很大挑战。有了持久内存之后,这一问题迎刃而解,傲腾持久内存可以在3个节点上提供海量的内存容量,现在双路平台可以扩展到1TB,如果用更高端的至强型号来配合,双路可扩展多达6TB。通过提供海量的内存容量,可以大大简化系统复杂度,降低应用成本。

 

第三个案例是关于隐私计算的。现在AI应用需要越来越多的数据,但与之相矛盾的,是用户越来越注重数据的隐私性,因此隐私计算已经被AI开发者、产业界越来越重视。

 

隐私计算有不同的实现方法,现在比较成熟的是联邦学习技术方案,简单来说,其原理就是把计算推到数据端,使得数据不需要“出门”就可以完成多方合作的AI训练任务。

 

联邦学习当前在金融行业很受重视,因为金融行业的数据敏感性较高,我国也有非常严格的金融行业数据监管要求,基本上金融行业的数据不出机房。因此,金融行业在AI应用中迫切需要通过隐私保护技术加密的数据交换。中国银联已经在积极拥抱联邦学习,Intel和中国银联的合作中,结合了Intel的开源技术Analytics Zoo,去年年底已经实践了端到端的、基于Intel SGX进一步加强保护的联邦学习整体方案。通过软件和硬件的综合数据保护,在金融行业当提供了更高的数据保护等级,来满足AI深入应用过程中行业监管的需求。

 

去年,Intel和平安科技还基于第三代至强前期样品进行了合作,实现了基于SGX技术加持的云边协同的隐私计算实践方案。在这个案例中,不仅实现了基于联邦学习在云端的多方配合,让数据不出本地就可以完成机房配合的AI的模型训练,并且,平安科技利用SGX技术进一步在边端,加强线下应用中的数据保护。

 

Intel技术专家强调,隐私计算和SGX结合是非常有前景的市场机会,在金融、医疗、车联网等应用中都有类似的需求。


为深度学习插上机密计算的翅膀

 

新出台的隐私法案对深度学习、机器学习应用带来了新的挑战,为了符合现行法规要求并保护用户隐私,需要对数据进行改造。但是,这个改造过程中有多个痛点,比如应用是不是能正常展开,应用模型精度会不会受影响,一些场景下数据不能离开本地的数据孤岛情况……这些问题成为当前隐私保护的痛点和现状。

 

Intel技术专家指出,主要有三类数据需要保护,一是模型训练时的数据,可能涉及医疗、人脸等方面的敏感数据;二是模型数据,模型训练完毕通常是固化的,但它本质上是商业机密,在一些场景下,如果攻击者拿到这个模型的访问权限,可以重构一些训练数据(试想如果训练数据是人脸信息数据就非常危险了),因此模型数据需要被保护起来;三是预测结果,很多模型的预测结果涉及健康以及个人相关信息,甚至是个人标识的相关信息,这也需要保护起来。

 

深度学习应用中离客户最近的端是模型部署端,即推理端。也就是在模型训练完后,加载到相关的服务中,为用户提供深度学习的服务,比如推荐、识别或简单的自然语言处理。这个场景相对简单,用户的输入数据通过网络加密传输到推理服务中,推理服务会提前加载训练好的模型,对数据进行预测和处理,之后把结果加密返回给用户。通常这是一个很安全的场景,但现在推理过程中,主流的框架都是用明文数据进行计算和推理,一旦被攻破,攻击者就可以拿到完整的输入数据、模型数据和预测结果,有很大的安全威胁隐患。

 

通过第三代至强可扩展处理器上的SGX功能,就可以对推理服务进行保护。它能够给整个应用程序提供足够大的加密内存(现在是TB级),不管深度学习应用还是大数据应用都可以运行,推理服务可以完整地运行在SGX飞地中,通过这种方式,可以保证攻击者拿不到任何明文数据。

 

SGX生态最新加入了LibOS,之前应用迁移到SGX有额外成本,但现在有了LibOS中间层,应用程序的系统调用会被LibOS中间层转化为SGX SDK能够识别的调用。通过这一层转化,可以让应用程序不修改任何一行代码就可以完整地在SGX中运行,解决了之前的迁移成本和易用性的问题。同时,LibOS继承了SGX的安全性,也是一个硬件级的安全标准。通过LibOS社区和Intel开发人员的努力,很多项目已经可以通过LibOS迁移到SGX中运行,常见的深度学习框架TensorFlow、PyTorch、OpenVINO等,以及通过Python写的程序或是Redis数据库都可以迁移进去。

 

除了安全的运行环境,SGX的远程认证功能也非常有利于构建联邦学习应用。在联邦学习常见的架构中,不同的参与方都是在本地训练一个模型,再通过安全聚集的方式(往往是可信第三方的参与),汇聚成一个联合模型。在常规的联邦学习设计中,可信第三方和本地参与方是易受攻击的,可信第三方一旦被攻击,联邦学习的流程就不再安全,模型数据和临时数据也会被攻破;而本地方如果被攻破,敏感数据可能会被泄露。SGX可以完整地保护可信第三方和每一个参与方,同时保证他们不需要做太多的应用更改。此外,它的远程认证功能可以让参与的每一方进行互相信任。

 

不过,在实际应用中,会遇到很多大数据问题。例如推荐系统中一个分布式的大规模数据推荐场景中,就不是一个简单的深度学习框架或者是简单的SGX问题,会用到很多大数据框架,数据存储过程中会遇到HDFS或S3等数据存储,在清洗和准备阶段会用到Spark、Flink、Ray框架,在分析建模时会用到TensorFlow、PyTorch框架等。这个过程会涉及到很多项目、框架和数据的流转。该如何全面保护用户的隐私?如何解决框架流转、数据流转的问题?

 

Intel通过Analytics Zoo开源项目去解决,可以保证在大规模数据落地过程中,端到端的AI落地不需要进行重复的代码重写,也不需要进行大规模数据的拷贝。

 

针对隐私问题,可以通过Analytics Zoo最新的大数据和机器学习机密计算的特性去解决。具体而言分为两部分,一是通过SGX技术、LibOS技术,包括Analytics Zoo现有的API和实例给用户构建一个可信的大数据AI平台;二是希望帮助大规模数据上的机器学习和深度学习应用可以迁移过来。完成上述工作之后,就可以基于SGX构建可信的联邦学习平台。

 

Intel技术专家分享了一个和蚂蚁集团合作的大数据隐私保护的案例。在Occlum LibOS项目中,通过Analytics Zoo和Occlum团队的合作,可以将大数据应用、深度学习应用或单机的深度学习应用,无缝迁移到第三代至强平台上,实现安全可信的机器学习以及大数据分析。而不需要应用程序去做太大的更改,不管是代码层级还是配置层级上。同时可以在一定程度上对现有架构实现复用,在数据推理阶段,通过Intel DL Boost技术,可以在int8的低精度下实现两倍的性能提升。

 

目前,通过Occlum可以在SGX上运行的应用越来越多。除了深度学习应用,大数据应用如Spark、Flink、Hadoop都可以无缝通过Occlum运行在SGX中。Analytics Zoo和BigDL开源深度学习框架也可以无缝跑在这个环境中,为用户提供大规模的数据的建模能力和数据分析能力。

 

Intel与蚂蚁集团对分布式的大规模可信模型部署方案进行测试发现,有SGX保护和没有任何保护的方案相比,总体而言只有13%左右的端到端开销,如果使用DL Boost加速,可以实现2倍的性能,SGX带来的性能开销几乎可以忽略不计。

 

写在最后

 

放眼Intel的整个计算平台中,AI加速可以还可以通过Habana、FPGA等平台提供,从整体计算架构的角度来看,至强内置AI的出发点是什么?

 

英特尔技术专家表示,市场对AI算力需要多重解决方案,面向数据中心、端侧等不同场合。即使是运行同样的AI的任务,也对性能、算力、功耗要求有很大差异。从定位上来讲,第三代至强平台支持AI通用计算。因为在很多AI应用中,AI前端、后端和其他类型的计算任务有耦合,比如AI计算、训练、推理,前端数据可能来自于大数据平台,后端输出可能是交互型的应用环境。至强平台通用性的优势是能够把一系列的运算任务都整合起来,可以支持整个完整的流程。

 

如果在数据中心的某些AI任务中,整个业务模型对算力有更高要求,或是部署过程中对能耗有额外考虑,就需要有其他类型的计算方案来支持。比如Habana或是ASIC加速方案,来满足更高算力要求的任务场景;FPGA则被用于更高能效需求的AI部署场景。通过整体算力平台,给用户充分的选择。

 

而SGX方面,该技术从2015年用于第六代酷睿算起已经应用多年,在这个时间节点引入数据中心处理器中,也是看到了当前产业应用对隐私计算的需求。通过多重软硬结合的安全解决方案,来为隐私计算、深度学习提供高安全的支持。

 

处在数据爆发对基础算力颠覆的前夜,不论是面向未来广泛的AI应用,还是从芯片底层提供安全支持,第三代至强看来已经做好准备。