一直被喷不实用的超算 在深度学习时代会改变吗?

而把计算任务部署到超算上,又面临着不少的成本,除去使用费用不说,由于超算只提供编译平台,使用者还要自己去熟悉系统。而且目前的超级计算机虽然大多为学术机构所有,但是一想到要把自己用户的数据拿到别人的机子上计算,总觉得有点怪怪的……

所以,超算并不是不能用来处理我们日常、商业中遇到的计算问题,而是很多本来不是超算最擅长的,综合使用成本而言,没有必要使用超算。

用超算训练AI,会不会是超算民用的第一步?

不过一个好消息是,随着深度学习的普及和发展,超算的计算能力或许可以被更多人应用起来。

众所周知,深度学习的神经网络层数更深,每个神经元之间互相连接,形成了一个非常复杂的结构。而每个神经元中又都需要Sigmoid函数这类复杂的数学计算,加上图像识别、语音识别这类工作本身数据训练集就很大,最后就集结成了一种非常可怕的计算量。

这几年深度学习的发展,离不开计算能力的发展。英伟达之所以能靠卖GPU超过同行,最大的原因就是深度学习对计算能力的依赖。

那么,超级计算机能不能应用在深度学习上呢?答案是肯定的。

在今年年初的德扑人机大赛中,打赢了人类牌手的Libratus就是一个在超级计算机上训练的AI。Libratus甚至没有搭建神经网络,光学习了游戏规则,利用强化学习自我博弈就超越了人类水平。

在国内,百度旗下的深度学习开源平台PaddlePaddle也支持超算应用,甚至还入选了今年的ASC超算大赛总决赛。计算性能的超越让一些以往不可能的事情成为可能,比如上面那个德扑的案例,不应用神经网络、单纯靠强化学习的自我博弈在没有超算的情况下可能要花费无法想象的时间,而有了超算后,这件事情就成为了可能。

同理,一些大量数据、长时间的深度学习/深度强化学习模型训练都可以在超计算机上完成。不过,这个领域中的超级计算机的竞争对手也不少。

首先就是芯片厂商们,英伟达、IBM、高通等等厂商都在争先恐后的研发着适用于深度学习的芯片。早在3年前,IBM推出的TrueNorth就已经集成了54亿个硅晶体管,计算能力已经接近当年的超级计算机,功耗却只有65毫瓦。英伟达也曾推出过集成8个GPU的“超算系统”,计算能力也可以满足大部分人的需求。

其次就是云服务供应商,也就是上述芯片厂商的客户们。他们不光花重金搭建起来能力超群的分布式计算系统,还贴心的和TensorFlow、caffe等等深度学习框架合作,让算法可以无缝部署在系统上。阿里云在今年推出的异构计算产品最高可提供每秒75万亿次的算力,虽然比起超级计算机还差的远,但性价比却不低。

最后,还有一大批以研究算法为主的技术供应商。他们虽然不能提供算力,却可以通过种种方式压缩算法模型,让算法模型在更低算力的硬件中也能运行。比如西雅图的一个创业团队,就在一直尝试用二值化神经网络调整模型精度,试图在能耗和成果中找到一个平衡。

加上在深度学习上,高成本、软件环境复杂、数据隐私担忧等等问题仍然有待解决。综合看来超级计算机仍然不是最好的解决方案。

让人哭笑不得的是,很多人认为深度学习带来的高强度计算要求会推进超级计算机的商业化、民用应用,结果反而是带动了其他算力供应商的发展,给超级计算机造就了更多的竞争对手。

即使我们暂时还不能在生活场景中享受到超算带来的益处,但超算在天文、物理、军工上带来的贡献仍然是巨大的,如果没有超算,在研发火箭、卫星时几乎无法进行模拟计算。而超算带来的快速、高精度的模拟,为这些高精尖技术的研发节约了无法估计金钱和时间成本。或许,等我们能在火星上观光的那天,就会切实体会到超算带来的福利吧。