alphago用了多少gpu,alphago gpu有多少
来源:整理 编辑:亚灵电子网 2023-08-06 11:48:57
1,alphago gpu有多少
从2015年10月的分布式运算公布的版本,AlphaGo使用一千多块CPU及一百多块GPU,而这次围棋对战分析据说只用了服务器总的百分之三十资源,其余的在空闲。

2,AlphaGo用的什么CPU
AlphaGo的配置是可变的,最低配置是48个CPU加一个GPU,这种配置下由于计算能力太弱,所以它的围棋能力很弱,最高配置是1920个CPU加280个GPU。和李世石下棋的就是这个配置。部分媒体翻译有误,说和李世石对战的AlphaGo是单机版,实际上不是这样,和李对战的AlphaGo连接的是谷歌的内网,把当前战况发送到谷歌的计算中心,通过计算后,决定要怎么走,再发送回来。最高配置的AlphaGo的计算能力大概相当于天河二号超级计算机的计算能力的十分之一。至于具体是哪一款,官方没有说,我猜是英特尔的至强E7,因为谷歌也是美国公司,完全可以买到英特尔的E7,不像我们的天河二号,想买E7,美国不让卖,只能买到E5,还不是最强的E5。实际上从计算能力的对比也可以看出来,天河二号用了3.2万个E5,计算能力仅为AlphaGo的10倍,如果AlphaGo也用E5,应该是没有这么强,所以应该是18核36线程版的E7,而天河二号用的是12核24线程的E5。换算一下差不多,18核的E7性能相当于12核E5的1.5倍,1920个18核E7,相当于2880个12核E5,性能相当于使用了3.2万个12核E5的天河二号的十分之一,这数字就对上了。至于AlphaGo的GPU用的可能是英伟达的特斯拉,用于加速运算,由于同配置下的GPU的浮点计算能力比CPU强大得多,在部分需要大量浮点计算的场景调用GPU辅助运算,可以大大提高效率。从AlphaGo的规模来看,总功耗预计会在2000KW左右,也就是下一个小时的棋,要消耗2000度电。

3,从CPUGPU到TPU
我们知道,任何一台计算机,也包括智能手机,游戏机等有计算能力的设备,都有一个计算的核心芯片,叫做CPU(Central Processing Unit),即中央处理器,它负责所有的计算,并且控制计算机的全部工作。CPU的性能从上个世纪60年代中期开始,几乎按照每18个月翻一番的速度在进步,从1965年至今,差不多翻了34次了,也就是说计算速度提高了160亿倍。如果再把这个进步分解一下,又可以分成两个维度,一个是主频的提高,另一个是集成电路芯片密度(称为集成度)的提高。 主频提高后,本来一秒钟算10万个周期,现在可以算30亿个,增加了几万倍。密度提高后,本来几个周期完成一次计算任务,现在可以流水作业、分工合作,一个周期完成好几次计算。两者的加速是叠加的,使得今天计算机的速度变得飞快。 但是,CPU的主频不可能无限制提高,因为光速是一个绝对的瓶颈,今天计算机CPU内部,电子运动的速度已经接近光速所给的极限了,几乎没有了再提高的可能性,事实上从10年前开始,这条路就走不通了。 那么怎么办呢?英特尔公司的办法是,将计算机CPU的集成度进一步提高,最早一个集成电路中只有几千个晶体管,今天最多的有60亿个,这样计算可以并行开展,这也是为什么我们计算机和手机CPU有什么四核、八核之说。 那么接下来,为什么不能做成16核、32核甚至100核呢?因为以今天的工艺,做到那么多核处理器的体积要大得不得了,光是散热问题就没法解决。面对这个问题怎么办呢?英特尔总的态度是,没法解决,你们多买我一些处理器,多建造一些服务器,再把计算中心修得大一点就好了。且不说这个法子灵不灵,在很多场合也没有条件这么做,比如在无人驾驶汽车中,总不能扛着一个机柜上路吧。 我们知道,有主动性的人,总是想方设法寻找更好的解决方法。英伟达的创始人黄仁勋就是这样的人。黄仁勋和他在英伟达的同事就想,CPU的计算速度之所以不够快,是因为它被设计成能够适应所有的计算了,里面很多晶体管都用来搭建控制电路了。 另外,因为计算太复杂,因此处理器本身设计得太复杂。而在计算机里面,有一种计算相对单一,就是控制显示器的图形计算,于是英伟达就为这一类计算专门设计了一种处理器,叫做GPU,即图形处理器。 当然,在英伟达之前,做图形工作站的太阳公司和SGI公司也设计出类似的产品,但是不通用。GPU比CPU的好处有两个: 第一,控制电路简单了,因此更多的晶体管用于了计算,而不是控制,这样本来10亿个晶体管可以搭建四个内核,还有希望搭建八个、十六个甚至更多。 第二,将单个儿单个儿的计算,变成一批一批的计算。在现实生活中,大部分的计算每次都是在两个数之间进行的,比如A+B=C,它是一个运算指令(“+”)带上两个数字(“A”和“B”),下一次做X-Y,是另一个运算指令(“-”)带上另外两个数字(“X”和“Y”)。因此计算机处理器实际上是按照一个指令通道(流)对应一个数据通道设计的(被称为SISD)。打个不很恰当的比方,一般的计算就如同你蹲在地上一个个地捡豆子。 而图形计算是整个一条线(在计算机科学里被称为向量)按照同一种操作一口气算完,比如A1+B1=C1,A2+B2=C2,……,最后A1000+B1000=C1000,对于这些计算来讲,指令都是一样的,只是使用不同的数据而已,因此它可以设计出非常多的功能简单的计算核心,然后对一条指令开发很多数据通道(即所谓的SIMD)即可。 这就相当于用一个吸尘器在地上吸豆子,你走过一条线,就吸起一大堆,效率就高多了。对此,英伟达提出一种所谓的“统一计算架构”(CUDA)的概念,就是很多很多核都做同一件事情,并且在此基础上设计出图形处理器GPU。 有了GPU,很多重复一致的计算就可以并行了。GPU最早是针对图形计算设计的,但是后来英伟达发现机器学习的算法也可以用这种方式实现,于是到了2016年,英伟达又针对机器学习的特点,设计了针对机器学习的GPU,它最新的P40处理器内部有多达3000个所谓“统一计算架构”的内核。 虽然每一个能力都比不上英特尔四核处理器中的一个内核,但是P40等GPU的内核数量非常多,因此做人工智能计算就非常快。今天特斯拉搞的辅助驾驶,一片这样的处理器就能解决所有的问题。在去年对阵李世石的AlphaGo中,就是用了176个英伟达的GPU,承担了主要的计算功能。 但是毕竟机器学习中的向量计算和通用的向量计算还是有所不同,能否让计算的内核功能再专一一点,只做和一种非常特定的机器学习算法(即Google的人工神经网络算法)相关的向量计算呢? 于是,Google提出了一种张量(Tensor)计算的概念。所谓张量,它原本是一个数学概念,表示各种向量或者数值之间的关系。比如你的两张照片是两个不同的向量,它们之间的一些相似性就是一个张量。人工神经网络的算法可以看成是张量的计算,至于为什么,大家不必细究,记住这个结论就可以了。 接下来,Google就在英伟达等公司GPU的基础上,进一步让计算变得专注,设计了一种仅仅针对特定张量计算的处理器,叫做TPU,其中T就代表张量(Tensor)。Google宣称,一个TPU对AlphaGo这样的任务,效率抵得上15-30个英伟达的GPU,这也就是为什么这一次Google讲新版的AlphaGo在硬件上瘦身了的原因。 去年战胜李世石的AlphaGo的耗电量是人脑的300倍,如今的AlphaGo用的机器少了很多,至少少了一个数量级,也就是说耗电量从人脑的300倍下降到30倍以下,这个进步速度还是很惊人的。 当然,英伟达表示不服气,说你Google是在拿苹果和橘子比,而用我的测试处理器性能的程序来评测,我的P40可比你的TPU快多了。其实TPU和GPU谁更好,完全要看做什么事情了。 从CPU到GPU,再到TPU,效率提升的根本原因在于两个字——专注,相比之下,我们手机和电脑的CPU是非常“不专注”的。 在社会生活中,情况和计算机处理器其实很相似。工业革命开始后,英国工厂主把分工做得特别细,于是效率大增。亚当·斯密在《国富论》中讲,即使是制作缝衣服针这件事,当分工很细致后,一个工人一天能生产上千根,如果一个工人做所有的工序,一天恐怕连10根都做不了。因此,英国工业革命后,就把整个欧洲的加工业碾压了。这其实就好比TPU和CPU的关系。 但是,TPU的使用有一个前提,就是这种芯片的市场至少要有上百万片,否则就不值得做,因为它做一个样片的成本就得上百万美元,而设计成本则是上千万。如果市场需求量只有几万片,还不如用很多CPU来工作呢。这就如同制作缝衣服针,一年仅欧洲恐怕要用到上亿根,才值得做社会分工。如果只用三五十根,还不如让几个工人慢慢磨呢!因此,分工和专注的前提都是市场规模足够大。 最后讲一下人的技能,什么时候需要专而精,什么时候需要广博,其实没有一定之规,但是一个很好的判断标准就是市场是否大到需要非常专而精。

文章TAG:
alphago用了多少gpualphago 多少 gpu