英伟达的“GPU共享抗疫法”,为什么没能走进中国方案?
它来了它来了,它带着AI方案走来了!
海外疫情的日益严峻,AI投身抗疫的海外版也陆续上线。
在诸多项目中,共享算力方案听起来格外耳熟。有点像中国人民“躺在家为国做贡献”类似,英伟达号召游戏玩家们“开电脑为抗疫做贡献”。,吁PC玩家们捐献自家GPU/CPU的闲置算力,支援斯坦福大学的分布式计算Folding@home(FAH)项目,以弥补病毒研究算力的不足。
英特尔、MSI微星等巨头和网友们也纷纷响应,表示自己准备好了:为了拯救世界,多掏点电费算什么!MSI甚至用了“复仇者联盟”终局之战的配图,用“人人都是超级英雄”来疯狂暗示。
不过,共享算力能否为抗击新冠病毒起到作用?为何在中国抗疫方案中却没有见到它的身影呢?
共享算力:分布式计算的全民版本
想要了解共享算力对于抗击新冠病毒的价值,要从斯坦福大学 Pande 实验室发起的Folding@home说起。
所谓算力共享,是指依托建立的网络信息中心,运用云端分布式计算技术实现网络算力的互联共享,以达成分析计算。
比如这次用于抗击新冠疫情的Folding@home,就是目前世界上最大的分布式计算计划(2007年吉尼斯世界纪录),主要用于疾病的AI研究,为蛋白质折叠、聚合及由此引起的相关疾病,进行药物计算设计和其他分子动力学研究。
自2000年10月1日启动以来,已经吸引了英伟达、索尼等商业巨头的参与,成功模拟5-10微秒的折叠过程。目前,Folding@home所有的 GPU 项目,也都瞄准了COVID-19 ,旨在找到它的潜在药物靶标,未来CPU项目也会尽快加入。
玩家的参与方式,需要在项目客户端上选择“Any disease”,就会收到相关需求,根据其进行客户端设置就好。然后Folding@home就会在后台,以非常的优先级,也就是在计算机空闲时来供给案例,不必担心会影响游戏、视频等正常的计算机体验。
而在疫情爆发之前,算力共享也已经有了不少成熟应用。
早在2002年就建立的项目“BOINC算力地球”,就号称能够帮助普通人的电脑实现和外星文明的“第五类接触”。
C端用户允许BOINC在闲置时调用个人的CPU 和 GPU 计算能力,支持数学、医学、天文学、气象学等各个领域的科学研究。英国牛津大学就曾使用BOINC的算力来预测未来 100 年全球气候变化。
过去十几年间 BOINC 平台的算力资源一直在持续增长。截至 2019 年3月,已经有超过 440 万的志愿用户加入BOINC ,日活的主机大约 60 万台,贡献出大概 30 PFLOPS 的算力。如果按照AWS服务器同等体量的算力租金来计算的话,共享一年的价值就相当于全球PC用户为科研捐出了5000万美元。
而BOINC的创建者,正是加州大学伯克利分校分布式计算领域的著名科学家David Anderson。
BOINC支援过最大的项目,是加州大学伯克利分校发起的、搜索外星智能生物的计算资源共享计划SETI@HOME。分析位于波多黎各阿雷西博天文台和望远镜,以及位于维吉尼亚州的绿岸天文望远镜(Green Bank Telescope)所搜集到的无线电信号,来寻找外星高等智能生物存在的证据,是一个庞大的运算工程。
1999年5月17日启动至今,吸引了全世界超过 500万个用户,有超过71万台活跃主机,每天提供约30PetaFLOPS的运算能力。
当然,分布式计算平台真正大规模走入人们的视野,还离不开“挖矿”的市场化洗礼。
2017-2018年,区块链(尤其是数字货币)的火热也带动了“共享算力经济”,出现了众多可以出租个人计算机资源的平台。用户将带显卡的机器托管到矿池里,把剩余算力租赁给“矿场”挖矿来获得收益,平台也得以降低虚拟币的算力成本。
那么,共享算力作为分布式计算的“民主化版本”,究竟有哪些利与弊呢?
丰满理想与骨感现实:
共享算力的真实面貌
国王说 :“亲爱的大臣,昨晚我梦见一个数字,是190554261410902619,我不知道这个数是不是一个素数,我需要最快知道答案。”
大臣回答 :“陛下,我也不知道,不过,我们刚给王国里的每个百姓按自然数顺序编了身份证号码,只要发布命令,让每个人用自己的号码去除国王所梦见的数字,很快就能得到答案。”
命令发布后的第二天,国王就收获了两个报告 ,一个是 456275009,另一个是 456275291。
这个故事中,就蕴涵了分布式计算的思想。
一方面,信息技术的飞速发展、人工智能的产业化浪潮,让处理、分析海量数据的算力,成了新的关键资源。
比如分析蛋白质这类项目,涉及到复杂的模型结构和庞大的计算量,即便是利用超级计算机也需要消耗很长的时间,以及高昂的服务器租赁成本。
如果能让许多计算机参与到运算过程中,将需要大量计算的项目分割成小块,由由多台计算机同时处理,再上传运算结果后统一合并得出数据结论,过程就能够大为缩短。
而且,与中心化的商业云计算平台不同,大量个人计算机的用户都存在一定的资源闲置。
有统计显示,全球的电脑年出货量是2亿台,以每五年为一个更换周期来计算,全球大概有10亿台电脑随时保持运行的状态,但利用率只有20-30%,绝大部分时间都在闲置状态。
如果让它们成为分布式计算的节点,以公益捐赠或者小成本购买的方式,那些因无力支付算力费用而停滞的项目因此获得支持,按需取用,岂不是人类的科技进程都要加快很多?
当然,共享算力这事儿出道多年,始终没有收获规模化 的个人用户支持,背后一定是有其特殊的原因。
首先,共享算力一般会发生在高度公益属性,或是具备高度经济收益的项目上。
个人闲置算力的确资源庞大,而且成本低廉,试问谁不想在这场算力圈地运动中“一呼百应”呢?毕竟云服务商自己搭建数据中心,还要投入机房、房租、电费、运维等等成本。如果让全民为自己打工,这种场景你仔细想……你想得美!
要知道,就算平台的信誉有所保证,用户在共享闲置算力时电脑也要持续运行,尤其是使用GPU计算时,会一直会保持在满负载运行状态,耗电量也必然会增大,有的还会占用软件内存导致卡顿,设备的耐久性和寿命也会因此打折扣。
所以除非有足够的理由驱使,比如为了人类命运共同体协力抗击病毒,亦或是给予充分的经济回报,比如挖矿,否则很难调动起大多数人的积极性。
其次,就算是值得托付的项目/平台,也未必能管理好共享资源。
一方面,分布式计算只适合那些能够通过计算来解决全部或部分问题的研究,而且计算过程还需要容易被分割成个人计算机处理能力可接受的大小,这就限制了许多研究采用“共享模式”来进行。
另一方面,项目方/平台方需要管理海量用户的GPU/CPU硬件资源,但商业竞争的关系,GPU的设计细节并未公开,不同厂商产品也存在很大的差异。而且算力上传到云端虚拟化还会产生性能损耗,这都增加了其部署和管理的难度。
这也是为什么,在上线21年后,SETI @ Home决定在今年3月31日终止向志愿者分配作业。项目小组解释,是因为已经分析完所有需要的数据,而且数据的分布式计算管理很费事,专案小组决定把精力放在完成数据的后端分析,和撰写论文上面。
第三,能将共享资源效率最大化的平台,必然具备强大的技术能力,这也限制了共享项目的扩张。
因为对海量个人算力的云端虚拟化、调配,需要部署分布计算环境(也称为中间件),用来提供公共服务,支持分布式应用,否则,项目人员就不得不解决多种操作系统、多种网络协议、多种数据库、性能、效率、安全等等,与业务本身没有直接关系的难题。
比如虚拟化技术,多核 CPU 和拥有大量核数的 GPU出现,让计算机性能得到数量级提高的同时,也加大了共享的部署难度,很容易造成GPU密集型负载的性能混乱和资源浪费,这就需要通过虚拟化来对丰富的计算资源进行抽象和模拟,让算力达到原生GPPU/CPU的性能,同时成千上万个应用相互之间没有任何干扰。
这样功能强大、稳定统一的技术,主要还是掌握在云计算厂商手中。
这或许也从某个层面,解释了中国的AI抗疫动作里,暂时还没有出现“全民共享GPU”这个选项。
方兴未艾,自有担当:
中国云计算的今日景况
其一,中国云计算产业规模不断增长,拥有相对充足的算力资源。
在过去的数年间,从国家政策到企业需求,推动了国内云计算产业规模的高速增长。信通院、IDC等研究机构发布的数据显示,2018年,中国云计算产业规模达到962.8亿元人民币,较2017年增长39.2%,2019年产业规模则预计超过千亿,达到1290.7亿元人民币。众多省市都在建设超级计算中心,这为抗疫期间AI算力的紧缺需求,提供了高效战略调动的前提。
第二,中国云服务厂商市场份额和技术能力趋于世界前列,在疫情危急关头挺身而出开放算力。
IDC《全球公有云服务市场跟踪》报告显示,中国公有云服务整体市场规模(IaaS/PaaS/SaaS)超 40 亿美金,中国云厂商占据了全球四强席位。
而这些科技企业的加入,也撑起了算力需求的江山。阿里云宣布向全球公共科研机构免费开放一切AI算力,百度研究院免费开放线性时间算法LinearFold以及世界上现有最快的RNA结构预测网站;滴滴云也免费开放了GPU云计算资源和技术支持,用于抗击疫情相关工作……此外,一些云服务厂商也在积极研发,并无偿开放多款专门针对疫情调研、排查、防控的智能服务产品,比如至少阿里、腾讯、字节跳动、华为等云协同办公厂商先后免费开放多项功能,上海经信委与各运营商商议提供6个月以上云办公、云视频会议的免费服务……
有这么多算力巨无霸撑起了计算资源的硬核输入,自然也就不需要号召全民开机、支持抗疫了。
从这个角度来说,争分夺秒的“GPU抗疫”,既是对与新型冠状病毒赛跑的科研人员的强有力支持,也是一个全球云计算业态的最佳侧写。