CPU-AI计算-软件分析
CPU-AI计算-软件分析
参考文献链接
https://mp.weixin.qq.com/s/hBQ48CNjfPtRqWkTiP-Kzw
https://mp.weixin.qq.com/s/ROyNjTP-R72Mqu6JPvrn9A
https://www.youtube.com/watch?v=2gsnGPaV4HY
https://mp.weixin.qq.com/s/l0XFqGzg666SpBMtArgwjw
首款5纳米旗舰CPU!AMD终于能突破5GHz
AMD锐龙7000系发布,苏妈的新CPU终于来了!
最近显卡价格已崩,PS5立涨400、XSX「空气机」已久,诸位「香打游戏的」钱包准备好了吗?
今天,苏妈在官宣了Zen 4系列的Ryzen 7000处理器,这是世界首批采用5nm制程的桌面处理器。
主要亮点大概就是:
一、性能咔咔的。新大哥7950X,无悬念吊打自家老大哥5950X和对面的12900K,记得换CPU。二、AM5新平台,记得换主板。不再支持DDR4,记得换内存。三、TDP涨了,大哥170W,小弟105W,记得换电源。四、散热器可兼容,但上上下下都换一遍了,散热器不换,能压住5.7G的旗舰?
对了,这次7000系全系配核显,不过性能就别期待了,也就亮个机。
价格:六核12线程,又卖两千多了?
说到钱包,自然要先看价格:
7000系首发价格
5000系首发价格
这次的大哥7950X比前代大哥5950X的最初发布价格低了100美元,为699美元,12核24线程的「二弟」7900X与5900X价格一样,TDP同为170W。
中端方面,8核16线程的7700X比5700X贵了100美元,入门级的7600X定价维持在了299美元,与5600X的首发价一样。TDP也上升至了105W,达到了上代大哥5950X一样的水平。
看起来,六核CPU卖2000多的时代,结束了没几年,又要回来了?
英特尔最近也宣布,由于供应链中断和其他因素,将提高其芯片定价,不过在英特尔推出13代Raptor Lake之前,到底卖多少钱,谁也说不好。
参数上,R9 7950X与之前的老大5950X相比,维持了16核32线程的配置。但同性能功耗降低62%,同功耗性能提升49。
其中,基础频率为4.5GHz,单核超频频率为5.7GHz(5.85GHz F-Max)。甚至比英特尔的Alder Lake Core i9-12900KS还快200MHz,后者的单核提升频率为5.5GHz。
R9 7950X的TDP也从105W大幅拉升到了170W。
5.7GHz这个频率也给了人无限遐想。如果散热到位,液氮加持,体质优秀的大雕,这回全核稳定上个6G?
而正常使用的话,之前拆下来的360水冷还能不能压得住,配上显卡需要多大电源,这些问题都有待后续发烧友们的测试了。
这回终于要换主板了
本次AMD还发布了新的AM5芯片组,新插座采用1718针LGA设计,支持高达 170W TDP的处理器。
内存为双通道DDR5内存,以及新的SVI3电源基础架构,最多支持24条PCIe
5.0通道,不再支持DDR4内存。
换句话说,从2017年到现在一直在服役的AM4平台,随着7000系CPU的推出,终于要逐渐退出一线了。
比起隔壁某厂出一代CPU换一代主板的操作,一套主板平台可以用5年,只能说很厚道了。
换了新主板,换DDR5新内存也就是顺水推舟的事,另外24条PCIe 5.0通道支持下,也基本不用再担心固态硬盘抢通道的问题了。
根据AMD的说法,新的AM5主板将会兼容AM4的散热器,水冷风冷什么的,拆下来直接能装上接着用,至于压不压得住,那可能是另外一回事了。
此外,AMD 还首次在其主流锐龙阵容中加入了集成显卡。不过说白了,能花大几千买这几款CPU的,谁还不买个独显呢。这波自带亮机卡,有总比没有好吧。
性能大比:全面超越12900K?
可以看到,与往代Ryzen系列旗舰相比,7950X在频率上有了明显的提升。这也是AMD过去几年来的产品趋势。
而且,由于架构改进带来的能效,Ryzen下的频率提升带来的是性能的提升。
在单核跑分中,7000系与5000系拉开了比较明显的差距,入门小弟7600X的单核表现已经吊打了前任大哥5950X,战胜英特尔现任旗舰12900K也不在话下。
仅不敌英特尔即将发布的旗舰13900K,不过关键还是要看隔壁的新旗舰卖多少钱了。
在多线程应用(如Chaos V-Ray)上,7950X与12900K对比,最高性能优势可达57%,能效优势(每瓦特性能)也高达47%。
在游戏性能上,7950X在基准测试中大部分强于英特尔旗舰12900K,其中《DOTA2》+23%,《古墓丽影:暗影》+14%,《无主之地3》打平,CSGO则输了1%。
后续游戏实测可能更有参考价值。
和前任大哥相比,7950X也是提升相当明显,无论是游戏还是渲染任务,提升基本都在30%以上。按照AMD的说法,就连甜品级的7600X,都能和12900K打得有来有回。
甚至在游戏(跑分)上,全面超越了12900K。不得不说,5nm的好处是显而易见的,不管是核心的频率还是功耗,甚至是芯片的尺寸上,AMD的7000系都有了质的飞跃——终于能超过5GHz了!
此外,相比Zen3而言,Zen4有着29%的单线程、>35%的多线程以及>25%每瓦性能的增益。
台积电的5nm工艺节点配上全新的Zen 4架构,也给7000系带来了13%的IPC提升。
不过,这波性能上的提升,主要还是来自更高的时钟频率和更高的TDP。
当然,AMD也提到了在AI推理上的提升。但是吧,谁会用AMD做机器学习呢……、
后,哪款7000系的CPU感兴趣?
全球最强智算
所凭借的算力值,每秒浮点运算次数已经高达12EFLOPS(百亿亿次)。
相比之下,谷歌单集群算力峰值是9EFLOPS,特斯拉也仅有1.9EFLOPS。
那么张北县的这个“速度”,到底有多快?
举个例子。
以前要训练一个自动驾驶的模型,大概需要花费的时间是7天。
而在“全球最强算力”加持之下,这个时间直接缩短到了1小时之内,整整提速了将近170倍!
智算,即为人工智能专门提供的AI算力。这个“全球最强智算”的庐山真面目,正是来自位于河北省张北县的阿里云飞天智算平台所启用的张北智算中心。
这个智算中心不仅是在AI算力上取得第一这么简单,据了解,这个智算中心还“解锁”了如下能力:
- 千卡并行效率达90%以上,计算资源利用率可提升3倍
- 最高可将存储IO性能提升10倍,将系统时延显著降低90%
- 最多可提升AI训练效率11倍,推理效率6倍
- PUE最低降至1.09,建设占地面积节省90%
而且这些AI算力,正在带来一个更加智能化的日常。
如此智算都用在了哪里?
首先就是刚才提到的自动驾驶。
此前,阿里云便和小鹏汽车打造了中国最大的自动驾驶智算中心“扶摇”。
而这也是国内第一个投入实际运营的,专为自动驾驶服务的超大智能算力集群。
也正如其名,“扶摇”之意,是指阿里云提供的超大算力和AI研发工具链,能让小鹏汽车的自动驾驶技术的迭代效率“直上九天”。
总体而言,“扶摇”具备两大特征。
首先就是以超大规模GPU算力作为AI模型迭代的基础。
这是因为自动驾驶、或者说智能汽车上的核心功能,其实都是AI,是大规模的深度学习算法。
而无论是训练,还是测试这样的模型,扮演主角的不再是传统CPU的逻辑推理能力,而是以AI加速器为主的浮点计算能力,GPU则是当前AI加速器的主流。
其次,便是提供了针对自动驾驶应用特征的计算集群、性能加速软件和AI大数据一体式平台,使得模型训练速度、GPU资源利用率和算法研发效能都大大提升。
据了解,目前已经建成交付的扶摇智算中心,总算力达到600PFLOPS,即每秒进行6x1017次浮点运算。
整体计算效率上,扶摇实现了算力的线性扩展。存储吞吐比业界20GB/s的普遍水准提升了40倍,数据传输能力相当于从送快递的微型面包车,换成了20多米长的40吨集装箱重卡。
这也就是自动驾驶核心模型训练时间,能够由7天缩短至1小时内的主要原因。
而自动驾驶,只是飞天智算中心应用的场景之一。
在科研领域,也早已处于“上岗”状态。
北京大学化学与分子工程学院便利用阿里云的智能算力,将靶向药研究数据集计算效率提升了100倍。
此前算法依赖的是单机式算力,受限于软硬件的限制,往往系统整体性能偏低,无法满足快速增长的算力需求。而通过集群进行并行计算,能让算力规模不再成为掣肘。
不过有一说一,算力这个东西,其实通过自行购买GPU搭建集群的方式便可以获取,而且此前行业内普遍的做法也是如此。
那么为什么诸多领域现在都开始时兴采用智算中心了呢?
这是因为近年来,不论是自动驾驶、元宇宙,亦或是生命科学天文学,各类科研和产业应用的发展,都越发具备数智驱动的趋势,这种情况下算的更快往往就是核心优势,算力成为了绝对的生产力。
基于如此现状,智能计算可以提供更加多元化的算力服务,逐渐成为了主流选择。
但智能计算不同于通用型计算,需要海量数据对AI模型进行训练,算力往往在模型参数更新、数据迁移等环节被消耗,千卡以上规模仅有40%的有效算力输出,甚至出现计算卡越多,总体性能越差的情况。
这便导致了规模化的算力的获取困难,不仅硬件成本昂贵,而且还需要专业的技术从系统架构、软件等方面进行深度重构和优化,自建智算中心,成本和时间便成为了最大的敌人。
以自动驾驶为例,复杂路况下的复杂决策能力,包括识别红绿灯、路口、行车车辆等等,其实已经进入L3-L4级范围。
按照如此迭代速度,未来3-5年,自动驾驶研发很快会进入较为成熟的L4级甚至是L5级,迭代所需算力规模也会快速上升到只有“智算中心”才能满足。
算力需求的指数级膨胀,造成目前自动驾驶玩家的“算力”焦虑越来越严重。
因此,当下自动驾驶对于智算中心的需求,其实是为保持持续的技术领先优势做储备。
而飞天智算中心便在拿下全球第一速度之外,还规避了诸多传统高性能计算固有的疑难杂症。
为了解开这些疑难,阿里连顶会最佳论文都没少拿。
“全球最强”背后的一套功法
秘密就藏在背后的飞天智算平台:
一个可以持续进化的智能算力系统。
换句话说,做智算中心不能仅考虑基础设施和硬件,也要考虑其上运行的软件平台、算法和服务。
这其中最重要的是做到软硬一体,通过“打磨”让软件和硬件在一个平台中真正相互融合。
首先,要做到单集群12EFLOPS的算力峰值,仅靠单块芯片无法完成,就需要考虑并行效率的问题。
如果在一台普通电脑里装两张相同的游戏显卡,大概只能获得75%的性能,也就是花了两份钱只享受到一份半的效果。
类似的问题在智算中心也存在,而且更严重。因为要用到上千张GPU做并行计算,算力输出最低往往仅有40%左右。花一千份的钱,只享受四百份的效果,亏大了。
那么在飞天智算平台,千卡并行的效率可以做到多少呢?
90%。
要做到这一点,最关键的就是减少非计算部分的开销——上图里的阿里云灵骏智能计算就是干这事的。
△采用浸没式液冷的灵骏智能计算,Pue低至1.09
此外,还需要分布式并行计算框架、混合精度、数据通信的优化、I/O的优化等,都需要在业务实践中反复打磨、相互配合才能做到极致的优化。
除了GPU之外,构建如此大规模算力也少不了异构计算。
飞天智算平台适配多种芯片架构,支持X86、ARM、GPU、NPU等多种处理器混合部署和统一调度。
据灵骏产品研发负责人曹政透露,为了支持国产化芯片的生态发展,在云服务的领域他们甚至做到了比厂商更好的性能调优。
那么,这种“打磨”的能力从何而来?
源于阿里多年的业务实践。
拿淘宝来说,商品搜索、智能客服、千人千面的个性化推荐等,平均每天需要处理10亿张图像、120万小时视频、55万小时语音和5000亿句自然语言。
每逢618、双11大促,更是要面对峰值负载的考验,多年来已沉淀出适应实际需求的技术体系和最佳工程实践。
在AI开发层,阿里云还有两个杀手锏:PAI-EPL和PAI-Blade。
前者能够支撑万亿级参数的大模型训练,提供了包括数据并行、模型并行、流水并行在内的丰富的分布式训练能力。
在内部测试中,PAI-EPL只用了512张 GPU就完成了M6万亿模型的训练,大幅降低了超大模型训练的成本,将训练效率提升了11倍以上。
PAI-Blade则为用户提供了一站式的通用推理优化工具,对算法模型进行量化、剪枝、稀疏化、蒸馏等操作,尽量避免用户改模型代码,可将推理效率提升6倍以上,极大地方便用户使用。
这些综合技术整合到一起,就成了飞天智算平台软硬一体能力的来源。
除了智算中心自身软硬件之外,其上运行的算法和智能服务也是飞天智算平台中的重要能力。
全链路AI开发工具与大数据服务,包括阿里云大数据+AI一体化产品体系,集合了机器学习平台PAI、大数据开发与治理平台DataWorks、MaxCompute、Hologres、Flink等计算引擎实现架构统一。
如此一来,可适用于多种AI场景的计算和开发需求,包括科学研究、精准医学、气象预报、数字孪生、自动驾驶等多种场景。最多可提升AI训练效率11倍,推理效率6倍。
另外说到智能算法也别忘了达摩院。据介绍,达摩院开源的M6大模型从诞生之初就与飞天智算平台一起生长,相互配合起来更能发挥出彼此的实力。
最后,绿色低碳也是飞天智算中心的优势之一。
对于大型算力中心来说,衡量绿色化程度的一个重要指标是能源利用效率(PUE, Power Usage Effectiveness)。
根据《2021年中国数据中心市场报告》,2021年全国数据中心平均PUE为1.49,华北地区平均约为1.40。
这意味着IT设备每消耗1度电,就有额外的0.49或0.4度电用于散热、供配电系统本身的消耗、照明等其他用途。
而张北智算中心采用了行业独有的单相浸没式液冷解决方案,将服务器泡在特殊冷却液里,PUE最低可以达到1.09,行业领先。
△图:阿里云浸没式液冷服务器
此外,AI调温和模块化设计等都起到了关键作用。
不仅如此,智算中心选址在张北还可以利用起当地充足的光伏和风电资源,做到100%使用清洁能源。
不过为了克服光伏和风力发电不稳定的问题,也需要更强大的供配电技术来保障。
如何评价全球智算王座易主?
纵向看时间。
两年前,阿里首次公开自研AI集群细节,那篇论文还被计算机体系结构顶级会议HPCA 2020收录。
不过在多年来一直参与平台建设的曹政看来,当年团队把注意力单纯的集中在了技术上。
如今升级扩展到智算平台,除了规模扩大,技术进化以外,还更看重产品、服务,看重智算平台能否真正顺滑的与生产流程相结合。
横向看对比。
建设大规模智能算力有几类玩家,云计算公司、AI算法公司、硬件公司。
阿里在其中是一种比较特别的存在,既有自研云计算技术体系,又有内部AI业务的大量实践,最近又开始涉足自研芯片。
如此打造出来的智算平台高度自主可控,既能以此为蓝本不断复制出新的智算中心,又能在服务不同行业时低成本迁移。
如专为小鹏汽车定制打造的乌兰察布智算中心便是很好的例证。
如果把目光拉远,更大的图景在于数字化升级、智能化转型。
这些年来,智算中心的服务对象从大型技术公司、AI算法初创公司,逐渐扩展到自动驾驶、AI for Science等交叉行业。
随着智能化转型逐渐深入,不久的将来还要服务于农业、制造业、能源、物流这些离IT技术更远的行业,而越是这样的行业就越是需要端到端的解决方案。
从这一点来看,强调“打磨”、“顺滑”的飞天智算平台,再一次“幸运地”引领了时代趋势。
深度学习硬件的过去、现在和未来
过去十年是深度学习的“黄金十年”,它彻底改变了人类的工作和娱乐方式,并且广泛应用到医疗、教育、产品设计等各行各业,而这一切离不开计算硬件的进步,特别是GPU的革新。
深度学习技术的成功实现取决于三大要素:第一是算法。20世纪80年代甚至更早就提出了大多数深度学习算法如深度神经网络、卷积神经网络、反向传播算法和随机梯度下降等。
第二是数据集。训练神经网络的数据集必须足够大,才能使神经网络的性能优于其他技术。直至21世纪初,诸如Pascal和ImageNet等大数据集才得以现世。
第三是硬件。只有硬件发展成熟,才能将大型数据集训练大型神经网络的所需时间控制在合理的范围内。业内普遍认为:比较“合理”的训练时间大概是两周。至此,深度学习领域燃起了燎原之火。
如果把算法和数据集看作是深度学习的混合燃料,那么GPU就是点燃它们的火花,当强大的GPU可用来训练网络时,深度学习技术才变得实用
此后,深度学习取代了其他算法,被广泛应用在图像分类、图像检测、语音识别、自然语言处理、时序分析等领域,甚至在围棋和国际象棋方面也能看到它的身影。随着深度学习潜入人类生活的方方面面,模型训练和推理对硬件的要求也越来越高。
从2012年AlexNet出现到2016年ResNet问世,图像神经网络的训练算力消耗(以petaflop/s-day为单位)增长了将近2个数量级,而从2018年的BERT到近年的GPT-3,训练算力消耗增加了近4个数量级。在此期间,得益于某些技术的进步,神经网络的训练效率明显提升,由此节省了不少算力,否则算力消耗的增长还会更夸张。
研究人员想用更大的无监督语言数据集训练更大的语言模型,然而,尽管他们已经拥有4000个节点的GPU集群,但在合理训练时间内能处理的运算还是非常有限。这就意味着,深度学习技术的发展有多快,取决于硬件发展有多快。
如今,深度学习模型不但越来越复杂,而且应用范围越来越广泛。因此,还需要持续提升深度学习的性能。
那么,深度学习硬件究竟如何继续提升?英伟达首席科学家Bill Dally无疑是回答这一问题的权威,在H100 GPU发布前,他在一次演讲中回顾了深度学习硬件的现状,并探讨摩尔定律失效的情况下持续提升性能扩展的若干方向。OneFlow社区对此进行了编译。
GPU架构演进史
从2012年的K20X到2020年的A100,GPU的推理性能提高到原来的317倍。这就是我们所说的“黄氏定律”,这种发展速度比“摩尔定律”快得多。
GPU的推理性能提升
但不同于“摩尔定律”,在“黄氏定律”中,GPU的性能提升不完全依赖制程技术的进步。上图用黑、绿、蓝三色分别标注了这几种GPU,分别代表它们使用了三种不同的制程技术。早期的K20X和M40使用的是28纳米制程;P100、V100和Q8000使用的是16纳米制程;A100使用的是7纳米制程。制程技术的进步大概只能让GPU的性能提高到原来的1.5或2倍。而总体317倍的性能提升绝大部分归功于GPU架构和线路设计的完善。
2012年,英伟达推出了一款Kepler架构GPU,但它并不是专为深度学习设计的。英伟达在2010年才开始接触深度学习,当时还没有考虑为深度学习量身定制GPU产品。
Kepler (2012)
Kepler的目标使用场景是图像处理和高性能运算,但主要还是用于图像处理。因此,它的特点是高浮点运算能力,它的FP32计算(单精度浮点数计算)速度达到近4 TFLOPS,内存带宽达到250 GB/s。基于Kepler出色的性能表现,英伟达也将它视为自家产品的基准线。
Pascal (2016)
后来,英伟达在2016年推出了Pascal架构,它的设计更适合深度学习。英伟达经过一些研究后发现,不少神经网络都可以用FP16(半精度浮点数计算)训练,因此Pascal架构的大部分型号都支持FP16计算。下图这款Pascal GPU的FP32计算速度可达10.6 TFLOPS,比前一款Kepler GPU高出不少,而它的FP16计算则更快,速度是FP32的两倍。
Pascal架构还支持更多复杂指令,例如FDP4,这样就可以将获取指令、解码和获取操作数的开销分摊到8个算术运算中。相较于之前的融合乘加(Fuse Multiply-Add)指令只能将开销分摊到2个算术运算,Pascal架构可以减少额外开销带来的能耗,转而将其用于数学运算。
Pascal架构还使用了HBM显存,带宽达到732 GB/s,是Kepler的3倍。之所以增加带宽,是因为内存带宽是深度学习性能提升的主要瓶颈。此外,Pascal使用了NVLink,可以连接更多机器和GPU集群,从而更好地完成大规模训练。英伟达为深度学习推出的DGX-1系统就使用了8个基于Pascal架构的GPU。
Volta (2017)
2017年,英伟达推出了适用于深度学习的Volta架构,它的设计重点之一是可以更好地分摊指令开销。Volta架构中引入了Tensor Core,用于深度学习的加速。Tensor Core可以用指令的形式与GPU连接,其中的关键指令是HMMA (Half Precision Matrix Multiply Accumulate,半精度矩阵乘积累加),它将2个4×4 FP16矩阵相乘,然后将结果加和到一个FP32矩阵中,这种运算在深度学习中很常见。通过HMMA指令,就可以将获取指令和解码的开销通过分摊降低到原来的10%到20%。
剩下的就是负载问题。如果想要超越Tensor Core的性能,那就应该在负载上下功夫。在Volta架构中,大量的能耗和空间都被用于深度学习加速,所以即使牺牲可编程性,也不能带来太多性能提升。
Volta还升级了HBM显存,内存带宽达到900 GB/s,还使用了新版本的NVLink,可以让构建集群时的带宽增加到2倍。此外,Volta架构还引进了NVSwitch,可以连接多个GPU,理论上NVSwitch最多可以连接1024个GPU,构建一个大型共享内存机器。
Turing (2018)
2018年,英伟达推出了Turing架构。由于之前的Tensor Core大获成功,所以英伟达又顺势推出了Integer Tensor Core。因为大部分的神经网络用FP16即可训练,做推理时也不需要太高的精度和太大的动态范围,用Int8即可。所以,英伟达在Turing架构中引进了Integer Tensor Core,使性能提高到原来的2倍。
Turing架构还使用了GDDR显存,以支持那些有高带宽需求的NLP模型和推荐系统。当时有人质疑称,Turing架构的能源效率比不上市面上的其他加速器。但如果仔细计算,会发现其实Turing架构的能源效率更高,因为Turing用的是G5显存,而其他加速器用的是LPDDR内存。我认为,选择G5显存是一个正确的决定,因为它可以支持同类产品没能支持的高带宽需求的模型。
我对Turing架构深感骄傲的一点是,它还配备了支持光线追踪(Ray Tracing)的RT Core。英伟达在2013年才开始研究RT Core,在短短5年后就正式推出了RT Core。
Ampere (2020)
2020年,英伟达发布了Ampere架构,让当年发布的A100实现了性能飞跃,推理速度可达1200 Teraflops以上。Ampere架构的一大优点是,它支持稀疏性。我们发现,大部分神经网络都是可以稀疏化的,也就是说,可以对神经网络进行“剪枝”,将大量权重设置为0而不影响它的准确率。但不同神经网络的可稀疏化程度不同,这就有些棘手。比如,在保证不损失准确率的前提下,卷积神经网络的密度可以降低至30%到40%,而全连接神经网络则可降低至10%到20%。
传统观点认为,由于运算稀疏矩阵包的开销较大,所以如果密度不能降到10%以下,权衡之下不如运算密集矩阵包。我们一开始和斯坦福大学合作研究稀疏性,后来做出了很好的机器,它们在矩阵密度达到50%时也能高效运行,但要想让稀疏矩阵在电源门控(power gating)方面比密集矩阵更优越还是很困难,这是我们一直想突破的地方。最终,我们攻破难题研发出了Ampere,而秘诀就是结构化稀疏。
结构化稀疏
Ampere架构规定矩阵的每4个数值中,非零值不能超过2个,也就是通过去掉非零值对权重进行压缩。通过输入码字(code word)判断哪些权重应被保留,并用码字判断这些非零权重应该乘以哪些输入激活,然后相加,完成点乘操作。这种做法非常高效,让Ampere架构在大多数神经网络上的性能提升到原来的2倍。
此外,Ampere架构还有不少创新点,例如Ampere内置了TF32(即TensorFloat-32)格式,它结合了FP32的8位指数位和FP16的10位尾数位。Ampere还支持BFLOAT格式,BFLOAT的指数位与FP32相同,尾数位比FP32少,所以可以视为FP32的缩减版。上述的所有数据格式都支持结构化稀疏,所以无论用FP16和TF32训练,还是用Int8和Int4推理,都可以获得结构化稀疏带来的高性能。
随着Ampere在量化方面做得越来越好,它可以应用在很多神经网络上并保证高性能。Ampere有6个HBM堆栈,且HBM显存的带宽也有所升级,达到2TB/s。端到端推理时,Ampere的运算能力可达3.12 TOPS/W(Int8)和6.24 TOPS/W(Int4)。
GPU推理性能提升的三大因素
GPU推理性能提升的三大因素
总结深度学习过去的发展,GPU推理性能在8年内提升317倍主要归功于三大因素:
首先,最重要的是数字表示(number representation)法的发展。FP32的精度太高,导致算术运算的成本太高。后来Turing和Ampere架构支持Int8,极大提升了GPU的每瓦性能。Google发表论文公布TPU1时表示,TPU1的优势就在于它是专门为机器学习量身定制的。实际上,Google应该是在拿自家的TPU1和英伟达的Kepler进行比较(如前所述,Kepler并非专门为深度学习而设计),所以TPU1的优势归根结底可以说是Int8相较于FP32的优势。
其次,GPU支持复杂指令。Pascal架构新增了点乘指令,然后Volta、Turing和Ampere架构新增了矩阵乘积指令,让开销得到分摊。在GPU中保留可编程引擎可以带来很多好处,它可以像加速器一样高效,因为每项指令完成的任务非常多,每项指令的开销分摊几乎可以忽略不计。
最后,制程技术的进步。芯片制程从28纳米发展到如今的7纳米,为GPU性能提升作出了一定的贡献。
下列例子可以让你更好地理解开销分摊的效果:如果执行HFMA操作,“乘”和“加”2个操作合计只需1.5pJ(皮焦耳,Picojoules),然而获取指令、解码和获取操作数需要30pJ的开销,分摊下来开销就会高达2000%。
而如果执行HDP4A操作,就可以将开销分摊到8个操作,使开销下降至500%。而HMMA操作,由于绝大部分的能耗都用于负载,开销仅为22%,IMMA则更低,为16%。因此,虽然追求可编程性会增加少量开销,但采取不同的设计可带来的性能提升更加重要。
从单卡性能到GPU集群连接
以上谈论的都是单个GPU的性能,但训练大型语言模型显然需要多个GPU,因此还要改善GPU之间的连接方式。
我们在Pascal架构中引入NVLink,后来的Volta架构采用了NVLink 2,Ampere架构采用了NVLink 3,每一代架构的带宽都翻了一倍。此外,我们在Volta架构中推出了第一代NVSwitch,又在Ampere架构推出了第二代。通过NVLink和NVSwitch,可以构建超大型的GPU集群。另外,我们还推出了DGX box。
DGX box
2020年,英伟达收购了Mellanox,所以现在可以提供包含Switches和Interconnect在内的整套数据中心解决方案,供构建大型GPU集群之用。此外,我们还配备了DGX SuperPOD,它在AI性能记录500强名单上排行前20。以往,用户需要定制机器,现在只需要购置一台可以部署DGX SuperPOD的预配置机器,就可以获得DGX SuperPOD带来的高性能。此外,这些机器还非常适用于科学计算。
从前,用单台机器训练单个大型语言模型需要几个月之久,但通过构建GPU集群就可以大大提高训练效率,因此,优化GPU集群连接和提升单个GPU的性能同样重要。
深度学习加速器:新技术的试验场
接下来谈谈英伟达的加速器研发工作。英伟达把加速器视为试验新技术的载体,成功的技术最终会被应用到主流GPU中。
可以这样理解加速器:它有一个由内存层次结构输入的矩阵乘法单元,接下来要做的是让大部分的能耗用于矩阵乘法计算,而不是用于数据搬运。
为了这个目标,我们在2013左右启动了NVIDIA DLA项目,它是一款开源产品,配套非常完善,与其他深度学习加速器别无二致。但DLA有大型MAC阵列,支持2048次Int8、1024次Int16或1024次FP16操作。
DLA有两个独特之处:一是支持稀疏化。我们从容易实现的目标开始着手,所有的数据传输,包括从DMA到Unified Buffer和从Unified Buffer到MAC阵列,都只涉及非零值,通过编码决定哪些元素被留下,然后对这些元素进行解压缩,再输入MAC阵列进行运算。
DLA解压缩的方式比较巧妙,它并不向MAC阵列中输入零值,因为这会让一连串的数据都变为零。相反,它设置了单独的线路表示零值,当乘法器在任一输入中接收到该线路时,就会锁定乘法器内的数据,然后发送输出,输出的数据不会增加任何数值,这种数据门控(Data Gating)的能源效率非常高。
二是在硬件层面支持Winograd变换。要知道,如果要做卷积,例如一个m×n的卷积核,在空间域就需要n的2次方个乘法器和加法器,但如果在频域,就只需要逐点相乘。
所以大型卷积核在频域运算比在空间域运算更高效。根据卷积核大小的不同,对部分图像网络而言,Winograd变换可以带来4倍的性能提升。
EIE(2016)
2016年,我在斯坦福和我当时的学生韩松(MIT EECS助理教授、原深鉴科技联合创始人)一起研究EIE (Efficient Inference Engine)。这是对稀疏化的初步探索之一。我们在硬件层面支持CSR(Compressed Sparse Row)矩阵表示,这种做法非常高效,在密度为50%时,甚至比全密度计算还要节能。
后来发现,如果想让加速器更高效,应该构建向量单元阵列,这样每个引擎不会只执行单个乘加,而是每个循环每个PE(Processing Element)执行16×16=256个乘加。但当我们开始构建向量单元阵列时,发现很难高效实现稀疏化,于是转而采用结构化稀疏。
EIE处理标量单元时,它将指针结构储存在单独的内存中,然后通过流水阶段来处理指针结构,决定哪些数据可以相乘,继而执行乘法,将运算结果放置在合适的位置。这一整套流程运行得非常高效。
我们还发现,提高神经网络运算效率的方法除了“剪枝”实现稀疏化之外,还有量化。因此,我们决定使用码本量化(codebook quantization)。在用比特数表示的数据方面,码本量化是提升效率的最佳方法。所以我们对codebook(码本)进行了训练。
事实证明,如果你能使用反向传播来捕捉梯度下降,那就可以将反向传播运用到任何事物中。所以我们在码本中使用反向传播,训练了给定精度的最优码字集。假设码本有7个比特,那么你将得到128个码字,我们就在神经网络中找到最优的128个码字进行训练。
码本量化面临一个问题:数学运算的开销很高。因为不管码本有多大,实际数值是多少,你都需要在RAM(随机访问内存)中进行查找。实际数值必须以高精度表示,而你无法将这些码字准确地表示出来。
因此,我们在高精度数学方面花了很多精力。从压缩的角度来看,这样做的效果很好,但从数学能量(math energy)的角度来看,就显得不是很划算,所以在后续工作中我们就放弃了这项技术。
Eyeriss(2016)
Joel Emer(同时供职于英伟达和麻省理工大学)和麻省理工大学的Vivienne Sze一起构建了Eyeriss,主要解决了平铺问题,或者说是如何限制计算,以此来将数据搬运(data movement)最小化。典型的方法是使用行固定(row stationary),在行中传播权重,输出在列中激活,并最大限度地减少数据搬运消耗的能量。
SCNN(2017)
我们现在仍在进行稀疏性研究。2017年,我们为稀疏编译(神经网络的进化版)搭建了一台名为SCNN(Sparse CNNs)的机器,我们所做的是:将与处理稀疏性相关的所有复杂问题都转移到输出上。读取所有的输入激活,同时明确它们需要去往哪里,因此这里的“f宽向量”是典型的向量输入激活。我们一次会读取四个输入激活,四个权重,每个权重都需要乘以每个输入激活。这只是一个关于把结果放在哪里的问题,所以我们用f乘f计算。
在坐标计算中,我们取输入激活和权重的指数,并计算出在输出激活中需要求和结果的位置。然后在这些累加器缓冲区上做了一个数据发散(scatter_add)计算。在此之前,一切都非常有效。但事实证明,将不规则性转移到输出上不是一个好办法,因为在输出中,精度实际上是最宽泛的。当你倾向于累加,做了八位权重,八位激活,累加到了24位。在这里我们用宽位累加器(wide accumulators )做了大量的数据搬运,效果优于做更密集一点的数据搬运。不过提升也没有想象的那么多,也许是密度单元能量的50%。
SIMBA(RC18)(2019)
我们要做的另一件事是:用现有加速器建造一个多芯片模块——SIMBA(RC18),在2018年产生了做此研究的想法,同时这款芯片也展示了很多巧妙的技术。它有一个很好的PE架构,该芯片则在其中间提供了一项非常有效的信令技术(signaling technology)。现在该架构扩展到了完整的36个芯片,其中每个芯片都有一个4x4的PE矩阵,在这个单位中,每个PE又有8个宽矢量单位,因此我们能够得到128 TOPS的运算能力,每个Op有0.1 pJ,大约相当于10 TOPS/W。从中我们学到了很多关于权衡(trade-offs)的东西。
我们意识到:构建这些PE阵列宛如建立一个非常大的设计空间(design space),关乎如何构建内存层次结构,如何调度数据等等,对此我们建立了一个叫做MAGNET的系统。
MAGNET
上图是一个于2019年发表在ICCAD(国际计算机辅助设计会议)上的设计空间探索系统,主要用于枚举其设计空间,如:每个向量单元应该有多宽,每个PE有多少向量单元,权重缓冲区有多大,累加器缓冲区有多大,激活缓冲区有多大等等。后来发现,我们需要去做另一个级别的缓存,于是添加了权重收集器和累加器收集器。
MAGNET RESULTS
通过这种额外的缓存级别,我们最终取得了成功。这表明这里的数据流是不同的,而权重固定数据流最初是由Sze和Joel来完成的。你将大部分能量投到了数据路径以外的事情上,比如投入到累积缓冲区、权重缓冲区和输入缓冲区中。但通过这些混合数据流,权重固定,局部输出固定,输出固定,局部权重固定,能够在数学运算中获得几乎三分之二的能量,并且可以减少花在这些内存阵列中的能量,从而在内存层次结构的另一个层上进行处理。这使得现在的每瓦性能达到约为20 TOPS。
VS-Quant
2021年,在MLSYS(The Conference on Machine Learning and Systems,机器学习与系统会议)会议上,我们引入了VS-Quant,以此来探索出一种在压缩比特数(这方面码本量化效果很好)和数学开销方面都很划算的量化方式。我们使用整数表示,但同时想要缩放该整数表示,以便可以表示出整数的动态范围。
但事实证明,如果你现在将其应用到整个神经网络,那么效果不会很好,因为神经网络上有很多不同的动态范围,所以VS-Quant的关键是:我们对一个相对较小的向量施加了一个单独的比例因子(scale factor),大约通过在32个权重上进行上述操作,动态范围会小得多。我们可以把这些整数放在上面,也可以对其调整优化。
也许我们没有将离群值准确地表示出来,但更好地表示出了其余数字。如此一来,我们就可以用相对低精度的权重和激活来换取较高的精度。所以我们现在有多个比例因子(scale factors ):一个是权重因子,一个是激活因子。
Energy, Area, and Accuracy Tradeoff
我们基本上是在向量层级进行这些操作,结果如Bert-base所示。与不进行权重训练相比,我们可以通过训练在某些情况下节省20%的能量和70%的空间,上图的绿色表示基本上没有损失准确性;蓝色、橙色和红色表示准确性更高或更低。但即使在蓝色水平,准确性也相当高了。
通过VS-Quant和一些其他调整,我们在这些语言模型上进行了试运行。在语言模型上运行比在大约为120 TOPS/W的图像模型上运行要困难得多。
Accelerators
所以对于加速器,要先做一个矩阵乘法器。我们需要提出一种平铺方法,一种采用神经网络的七个嵌套循环计算方法。本质上是将其中一些循环复制到内存系统的各层,以最大限度地重复使用每层的内存层次结构,并尽量减少数据搬运。
我们还研究了稀疏性,在压缩方面很不错。它基本上增加了内存带宽和通信带宽,减少了内存和通信的能量。稀疏性发展的下一个层次是:当你有一个零值,只需单独发送一条线表示零值,而不必在每个循环中切换到8或16位。
Ampere架构可以通过使用结构化稀疏来重用乘法器,这是一种很有效的方法,只需要几个多路复用器的开销(基本上可以忽略不计)。在进行指针操作时,我们也可以重用乘法器,从中可获得2倍的性能。数值表征(number representation)非常重要。我们从EIE开始(译者注:Efficient Inference Engine,韩松博士在ISCA 2016上的论文。实现了压缩的稀疏神经网络的硬件加速。与其近似方法的ESE获得了FPGA2017的最佳论文。),试图做码本,但这使得数学上的缩放很昂贵。
最后,在加速器里试验成功的技术最终会被运用到GPU中。这是一种很好的测试方式,我们认为,GPU是一个针对特定领域硬件的平台,它的内存系统非常好,网络流畅,能够让深度学习应用运行得非常快。
深度学习硬件的未来
Future Directions
接下来谈谈深度学习硬件的未来。上图是一个能量流向饼状图,从中可以看到大部分都流向于数据路径,其背后有大约50%是关于数学运算,所以我们想让数学运算的能量消耗更少;剩下很多流向内存和数据搬运。其中绿色的是数据搬运,其余部分是输入缓冲区、权重缓冲区、累加缓冲区和累加收集器,占比都有不同。
我们正在研究降低数学运算的能量消耗,最好的一个办法就是将其转移到对数系统。因为在对数系统中,乘法变成了加法,而加法的耗能通常要低得多。另一个办法是转为更小的数值,这一点可以通过VS-Quant实现。通过更精确地量化,我们可以用较低的精度数从神经网络中获得同等的精度。
我们希望能将平铺做得更好,比如在某些情况下,可能会在内存层次结构中添加更多层,这样就可以降低内存能量,也可以使内存电路和通信电路的效果更好。
在Ampere架构上,我们已经在结构化稀疏的工作是一个很好的开始,但我认为我们可以通过降低密度或选择多个密度来调整激活和权重,以此做得更好。
随着研究的深入,工艺技术也会带来一些电容缩放的进展。
总结
2012年发布Kepler架构以来,GPU的推理性能(inference performance)每年都在翻倍增长。发展到现在,很大程度上要归功于不断更好的数字表示。本次我们谈了很多内容,比如从Kepler架构的FP32到FP16到Int8再到Int4;谈到了通过分配指令开销,使用更复杂的点积;谈到了Pascal架构,Volta架构中的半精密矩阵乘累加,Turing架构中的整数矩阵乘累加,还有Ampere架构和结构稀疏。
关于Plumbing我谈得很少,但Plumbing却非常重要。通过Plumbing来布置片上内存系统和网络,由此可以充分利用强大的Tensor Cores(张量核心)。对于Tensor Cores来说,使其在Turing架构中每秒执行一千兆的操作,并将数据输入到执行通用基准测试中,以此来安排分支存储器、片上存储器和它们之间的互连互通以及正常运行,都非常重要。
展望未来,我们准备尝试将各种新技术应用到加速器中。前面提到,我们已经就稀疏性和平铺技术进行了多次实验,并在MAGNet项目中试验了不同的平铺技术和数值表示等等。但我们仍然倍感压力,因为深度学习的进步其实取决于硬件性能的持续提升,让GPU的推理性能每年都翻一番是一项巨大的挑战。
其实我们手里的牌打得差不多了,这意味着我们必须开始研发新的技术,以下是我认为值得关注的四个方向:首先,研究新的数字表示,比如对数(Log number),以及比EasyQuant更加巧妙的量化方案;其次,继续深入研究稀疏性;然后,研究存储电路和通信电路;最后,改良现有的工艺技术。
答听众问
Dejan Milojicic:需要多大的矩阵卷积才能将Winograd算法转换成更高效的卷积实现?
Bill Dally:我认为,3×3的矩阵卷积就很高效。当然,卷积越大,效率越高。
Dejan Milojicic:高带宽存储器(High Bandwidth Memory, HBM)的内存带宽是如何计算的?是通过所有的GPU核同时访问内存吗?
Bill Dally:每个HBM堆栈都有一个单独的帧缓冲区,像Ampere架构有六个堆栈。我们的内存带宽是通过每个内存控制器以全带宽运行来计算的。各个GPU核之间都有一个缓存层,然后我们的片上网络的带宽是HBM带宽好几倍,所以基本上只需运行一小部分的流式多处理器就能使HBM达到饱和。
Dejan Milojicic:带有NVLink的分布式计算如何工作?谁来决定具体执行哪一个计算?在多个GPU上做scatter-gather时,哪些地方会产生开销以及会产生哪些开销?
Bill Dally:程序员会决定把数据和线程放在什么位置,而你只需在GPU上启动线程和数据以及确定它们的运行位置。采用NVLink进行连接的系统具备一大优势,那就是它是一个共享的地址空间,传输相对较小数据时的开销也相当小,所以我们在网络中采取集群通信。
通常情况下,如果你在深度学习中做数据并行,那么每个GPU都会运行相同的网络,但处理的是同一数据集的不同部分,它们会各自累积权重梯度,之后你再共享各个GPU上的梯度并累积所有梯度,然后添加到权重中。集群通信就非常擅长处理这样的工作。
Dejan Milojicic:我们到底是应该为所有应用创建通用的深度学习加速器,还是分别创建专用的加速器,比如视觉加速器或自然语言处理加速器?
Bill Dally:在不影响效率的情况下,我认为加速器当然越通用越好,英伟达的GPU在加速深度学习效率方面堪比专用加速器。真正重要的是,机器学习领域正在以惊人的速度向前发展。
几年前,大家还在使用循环神经网络处理语言,然后Transformer出现并以迅雷不及掩耳之速取代了RNN,转眼间所有人都开始使用Transformer进行自然语言处理。同样,就在几年前,每个人都在使用CNN来处理图像,虽然现在仍有不少人在使用卷积神经网络,但越来越多人开始使用Transformer来处理图像。
因此,我并不支持产品过度专用化或者为某一网络创建专用加速器,因为产品的设计周期通常需要持续好几年时间,而在此期间,人们很可能已经不再使用这种网络了。我们必须具备敏锐的眼光,及时洞察行业变化,因为它时刻都在以惊人的速度发展。
Dejan Milojicic:摩尔定律对GPU性能和内存占用有何影响?
Bill Dally:摩尔定律认为,晶体管成本会随时间逐年降低。今天,集成电路上可容纳的晶体管数量确实越来越多,芯片制程也实现了从16纳米到7纳米的飞跃,集成电路上的晶体管密度越来越大,但单个晶体管的价格却并未降低。因此,我认为摩尔定律有些过时了。
尽管如此,集成电路上能容纳更多的晶体管仍是一件好事,这样我们就能够建造更大规模的GPU。虽然大型GPU的能耗也会更高,价格也更加昂贵,但这总归是一件好事,因为我们能够构建一些从前无法构建的产品。
Dejan Milojicic:如果开发者比较重视PyTorch这样的框架,那么他们应该从硬件的进步中学习什么来让自己的深度学习模型运行更高效?
Bill Dally:这个问题很难回答。框架在抽象硬件方面做得很好,但仍然有一些影响模型运行速度的因素值得研究。我们可以尝试去做的是,当想出一项更好的技术时,比如更好的数值表示方法,可以尝试将各种不同的技术与框架相结合,看看哪种方法更加有效,这是研发工作不可或缺的环节。
Dejan Milojicic:英伟达是否正在实验新的封装方法?
Bill Dally:我们一直在对各种封装技术进行各种实验,弄清楚它们能做什么和不能做什么,以便在合适的时机将它们部署到产品。比如其中一些项目在研究多芯片模块,用焊接凸点、混合键合做芯片堆叠,其实有很多简洁的封装技术。
Dejan Milojicic:英伟达的Tensor Core和谷歌的TPU相比,谁更胜一筹?
Bill Dally:我们对谷歌最新的TPU并不了解,但他们之前推出的TPU都是专用引擎,基本上都内置了大型的乘加器阵列。
TPU独立的单元来处理非线性函数和批量归一化(batch norm)之类的事情,但我们的方法是建立一个非常通用的计算单元流式多处理器(SM),只需非常通用的指令就可以让它做任何事情,然后再用Tensor Core来加速矩阵乘法部分。因此,Tensor Core和谷歌的TPU都有类似的乘加器阵列,只是我们使用的阵列相对较小。
Dejan Milojicic:英伟达最大的对手是谁?
Bill Dally:英伟达从来不跟其他公司比较,最大的对手就是我们自己,我们也在不断地挑战自己,我认为这才是正确的态度。如果我们一味地把其他人视作竞争对手,反而放缓我们前进的脚步。不必过多关注其他人在做什么,我们真正应该关注的是哪些事情是可能实现的。我们所做的事就像在追求光速,我们更关注怎样才能做到最好,以及距离光速还有多远,这才是真正的挑战。
Dejan Milojicic:你对量子计算有何看法?量子模拟是深度学习挑战的自然延伸吗?
Bill Dally:2021年3月,我们发布了一款名为“cuQuantum”的软件开发工具包。Google之前也研制出了具有53个量子比特的计算机,并称自己实现了“量子优越性”。一些传统计算机无法完成的计算,用cuQuantum在五分钟内就能完成了。所以,如果想真正做到精准的量子算法,而不是今天的嘈杂中型量子(Noisy Intermediate-Scale Quantum,NIST)计算,GPU应该是最佳选择。
英伟达的传统GPU计算机是目前最快的量子计算机之一,阿里巴巴也在类似的经典计算中取得了不错的成绩,这恰好印证了我们的结论。我们对量子计算的看法是:英伟达不会因为这一技术领域的任何动态而感到惊讶。
实际上,我们还成立了一个研究小组来追踪量子计算领域的前沿动态,比如IBM宣布研制出了具有127个量子比特的芯片。我们也一直在跟踪量子比特数量和相干时间(coherence time)等方面的进展。
考虑到所需的量子比特数量、量子比特的准确性、噪音对量子的干扰以及量子纠错所需的开销,我认为未来五到十年内,量子计算都无法实现商用。
我最乐观的看法是,大概五年后,人们将开始进行量子化学模拟,这应该最有可能做到的。但在那之前,还有很多物理上的难题需要解决。很多人还没有意识到,量子计算机就是模拟计算机,而模拟计算机需要非常精确且易于隔离,否则任何与环境的耦合都会导致结果不一致。
Dejan Milojicic:在你看来,机器何时才能达到通用人工智能(AGI)的水平?
Bill Dally:我对这个问题的看法比较消极。试看一些比较成功的人工智能用例,例如神经网络,其实它本质上就是通用函数拟合器。神经网络可以通过观察来学习一个函数,所以它的价值还是体现在人工感知而不是人工智能。
虽然我们目前已经取得了不错的成果,但还是可以继续研究如何使用人工智能和深度学习来提高生产力,从而改善医疗、教育,给人们带来更加美好的生活。其实,我们不需要AGI来做到这些,而应该重视如何最大程度地利用现有技术。距离AGI还有很长的路要走,我们也必须弄清到底什么是AGI。
欢迎下载体验 OneFlow v0.8.0 最新版本:
https://github.com/Oneflow-Inc/oneflow/
芯片中,软件越来越重要
到 2026 年,软件市场的规模将接近硬件市场的三倍,而英特尔首席执行官 Pat Gelsinger 在本月的 Hot Chips 会议上并没有忘记这一事实。Gelsinger 在会议的主题演讲中表示,软件将推动硬件开发,特别是芯片,因为复杂的系统会推动对计算能力的永不满足的需求。
“软件变得更加重要。我们必须将它们视为我们拥有的神圣接口,然后将硬件置于其中,这就是芯片必须融入其中的地方,”Gelsinger 说。
软件在芯片开发中的重要性在Hot Chips会议上得到了复兴。根据 1990 年代出现的硬件-软件协同设计的概念,许多芯片设计都是基于硬件和软件协同设计的概念开发的,以确保“通过并行设计利用硬件和软件的协同作用来满足系统级目标” 。
软件正在通过人工智能等新型计算方式推动行业向前发展,而芯片制造商现在在硬件开发中采用软件优先的方法来支持新的应用程序。
Tirias Research 的分析师 Kevin Krewell 表示,软件驱动硬件开发的想法并不新鲜,但它已经在工作负载加速器时代复活了。
“自 1980 年代以来,我们就拥有 FPGA,它们是软件定义的硬件。更现代的解释是,硬件是硬件块的无定形集合,由编译器编排以有效地执行某些工作负载,而无需大量外部控制硬件,”Krewell 说。
芯片设计人员正在着手进行硬件-软件协同优化,以打破软件任务与其运行的硬件之间的壁垒,目标是获得更高的效率。“由于摩尔定律的放缓、晶体管速度和效率的提高以及软件编译器技术的改进,它今天再次流行起来,”Krewell 说。
英特尔正试图通过设计可以扩展计算能力的新型芯片来满足该软件永不满足的计算需求。
Gelsinger 说:“人们开发软件,而芯片必须在它下面。”
他补充说,芯片设计人员“还需要考虑随之而来的关键软件组件的组成,以及这种组合,软件 [和] 硬件的协同优化基本上成为了能够带来如此复杂系统的途径。”。
Gelsinger 表示,软件间接定义了英特尔的代工战略,以及工厂生产新型芯片的能力,这些芯片在一个封装中塞满了多个加速器。
例如,英特尔已在代号为 Ponte Vecchio 的用于高性能计算应用程序的代号为 Ponte Vecchio 中放置了 47 个计算块(也称为chiplet)。英特尔支持 UCIe(通用小芯片互连 Express)协议,用于小芯片中的芯片到芯片通信。
“我们将不得不在硬件和软件领域进行协同优化。还跨越多个chiplet——它们如何协同工作,”Gelsinger 说。Gelsinger 说,需要一类新的 EDA 工具来大规模构建系统芯片。
英特尔还阐明了“software defined, silicon enhanced”战略,并将其与成为芯片制造商的长期战略紧密联系在一起。目标是在云中插入由硅增强的中间件。英特尔正在提议订阅功能来解锁提高其速度的中间件和芯片。
软件可以通过新一代的 smartNIC 和 DPU 使数据中心基础设施变得灵活和智能,它们是具有网络和存储组件的计算密集型芯片。
在 Hot Chips 大会上发表演讲的 AMD 高级研究员 Jaideep Dastidar 表示,网络硬件架构正处于一个转折点,软件定义的网络和存储功能塑造了硬件设计。AMD 谈到了400G 自适应智能网卡,其中包括软件定义的内核和固定功能逻辑,例如用于处理和传输数据的 ASIC。
软件元素正在帮助这些芯片承担各种工作负载,包括从 CPU 卸载的片上计算。该软件还使这些芯片能够灵活地适应新的标准和应用。“我们决定采用传统的硬件-软件协同设计范例,并将其扩展到硬件软件可编程逻辑协同设计,”Dastidar 说。
该芯片已将 ASIC 添加到可编程逻辑适配器中,可以在其中进行分层定制,例如自定义标头扩展,或者添加或删除新的加速器功能。程序逻辑适配器——可以是定义 ASIC 功能的 FPGA——也可以进行完全定制的数据平面卸载。
400G 自适应智能网卡还具有可编程逻辑代理以与嵌入式处理子系统进行交互。该芯片具有对逻辑适配器接口进行编程的软件,以创建一致的 IO 代理以与嵌入式处理器子系统进行交互,可以对其进行调整以运行网络控制平面。软件允许数据平面应用程序在 ASIC 或可编程逻辑或两者中完全执行。
人工智能芯片公司Groq 设计了一种人工智能芯片,其中软件接管了芯片的控制权。芯片将芯片管理交给编译器,编译器控制硬件功能、代码执行、数据移动等任务。
张量流处理器架构在战略点包括集成软件控制单元,以向硬件发送指令。
Groq 摒弃了传统的芯片设计,重新审视了硬件-软件接口,并设计了一款具有类 AI 软件控制的芯片来处理芯片操作。编译器可以推断硬件上的正确性和调度指令。“我们明确地将控制权交给软件,特别是编译器,以便它可以推断硬件上的正确性和调度指令,”Abts 说。
Groq 使用 AI 技术(根据概率和关联数据中识别的模式做出决策)来确定硬件功能。这与传统计算不同,在传统计算中,决策是按逻辑做出的,这会导致浪费。“这不是要抽象出硬件的细节。它是关于明确控制底层硬件,编译器可以定期查看硬件在任何给定周期的工作情况,”Abts 说。
系统变得越来越复杂,成千上万的 CPU、GPU、smartNIC、FPGA 被插入到异构计算环境中。这些芯片中的每一个在响应时间、延迟和变化方面都不同,这可能会减慢大规模应用的速度。
“任何需要在整个机器上协调努力的事情最终都将受到网络中最坏情况延迟的限制。我们所做的是试图避免在系统级别出现的一些浪费、欺诈和滥用,”Abts说。Abts 给出了一个传统 RDMA 请求的示例,其中通常向目标发出读取会导致内存事务,然后将回复流回网络,以便以后使用。
“一个更简化的版本是编译器知道正在读取的地址。并且数据只是在需要时通过网络推送,以便可以在源头使用。这允许更高效的网络事务,网络上的消息更少,开销也更少,”Abts 说。空间感知的概念出现在许多演示文稿中,这涉及减少数据必须传输的距离。芯片与内存或存储之间的接近是人工智能芯片设计中的一个共同点。
Groq 通过解耦 CPU 中的主要计算单元(例如整数和向量执行内核)并将它们捆绑到单独的组中,对其基本芯片设计进行了细粒度的更改。接近度将加速处理整数或向量处理,这些处理用于基本计算和人工智能任务。
Abts 说,重新排序与数据在 AI 中的处理器之间的传输方式有很大关系。
参考文献链接
https://mp.weixin.qq.com/s/hBQ48CNjfPtRqWkTiP-Kzw
https://mp.weixin.qq.com/s/ROyNjTP-R72Mqu6JPvrn9A
https://www.youtube.com/watch?v=2gsnGPaV4HY
https://mp.weixin.qq.com/s/l0XFqGzg666SpBMtArgwjw