Ħ¶û¶¨ÂɵÄÖսὫʹ·þÎñÓÚÌض¨ÁìÓòµÄ¼Ü¹¹³ÉΪ¼ÆËãµÄδÀ´¡£Ò»¸ö¿ª´´ÐÔµÄÀý×Ó¾ÍÊǹȸèÔÚ 2015 ÄêÍƳöµÄÕÅÁ¿´¦Àíµ¥Ôª£¨TPU£©£¬Ä¿Ç°ÒѾÔÚΪ³¬¹ýÊ®ÒÚÈËÌṩ·þÎñ¡£TPU ʹÉî¶ÈÉñ¾ÍøÂ磨DNN£©µÄ¼ÆËãËÙ¶ÈÌá¸ßÁË 15-30 ±¶£¬ÄܺÄЧÂʱÈÀàËƼ¼Êõϵĵ±´ú CPU ºÍ GPU ¸ß³öÁË 30-80 ±¶¡£
ËäÈ» TPU ÊÇÒ»ÖÖרÓü¯³Éµç·£¬µ«ËüÔËÐеijÌÐòÀ´×Ô TensorFlow ¿ò¼ÜϵÄÉñ¾ÍøÂ磬Çý¶¯Á˹ȸèÊý¾ÝÖÐÐĵÄÐí¶àÖØÒªÓ¦Ó㬰üÀ¨Í¼Ïñʶ±ð¡¢·Òë¡¢ËÑË÷ºÍÓÎÏ·¡£
ͨ¹ýרÃÅΪÉñ¾ÍøÂçÖØзÖÅäоƬ¼ÆËã×ÊÔ´£¬TPU ÔÚÕæʵÊý¾ÝÖÐÐĸºÔØ»·¾³ÏÂЧÂÊÒª±ÈͨÓÃÀàÐ͵ļÆËã»ú¸ß 30-80 ±¶£¬Ä¿Ç°ÒÑΪȫÇò 10 ÒÚÈËÌṩÈÕ³£·þÎñ¡£
Éñ¾ÍøÂçµÄÍÆÀí½×¶Îͨ³£»áÓÐÑϸñµÄÏìӦʱ¼äÒªÇó£¬Õâ½µµÍÁËͨÓüÆËã»úËùʹÓü¼ÊõµÄÓÐЧÐÔ£»Í¨ÓüÆËã»úͨ³£ÔËÐеýϿ죬µ«Ä³Ð©Çé¿öÏÂÒ²»á½ÏÂý¡£
ºËÐĹ۵ã
ËùÓÐÖ¸ÊýÔö³¤¶¼½«Óнáβ
1965 Ä꣬¾ÝÓ¢Ìضû´´Ê¼ÈËÖ®Ò»µÄ Gordon Moore Ô¤²â£¬Ð¾Æ¬Öеľ§Ìå¹ÜÊýÁ¿Ã¿Ò»Á½Ä궼»áÔö¼ÓÒ»±¶¡£¾¡¹Ü 2017 Äê 1 Ô嵀 ACM ͨѶ·âÃæºôÓõµÀ£º“µ£ÐÄÎÒ»áÖÕ½á¼òÖ±ÊÇè½ÈËÓÇÌ씣¬Ä¦¶û¶¨ÂÉȷʵ»¹ÊÇÊÙÖÕÕýÇÞÁË¡£2014 ÄêÍƳöµÄ DRAM оƬ°üº¬ÁË 80 ÒÚ¸ö¾§Ìå¹Ü£¬¶øÔÚÈËÃǵÄÔ¤²âÖм´Ê¹µ½ÁË 2019 Ä꣬´øÓÐ 160 ÒÚ¸ö¾§Ìå¹ÜµÄ DRAM оƬҲ²»»á´ó¹æÄ£Éú²ú£¬µ«¸ù¾ÝĦ¶û¶¨ÂɵÄÔ¤²â£¬ËÄÄêÀᄃÌå¹ÜÊýÁ¿Ó¦¸Ã±ä³ÉËı¶¶à¡£2010 Äê¿îµÄÓ¢ÌضûÖÁÇ¿ E5 ´¦ÀíÆ÷ÓµÓÐ 23 ÒÚ¸ö¾§Ìå¹Ü£¬¶ø 2016 ÄêµÄÖÁÇ¿ E5 Ò²Ö»ÓÐ 72 ÒÚ¸ö¾§Ìå¹Ü£¬»òÕß˵±ÈĦ¶û¶¨ÂÉÔ¤¼ÆµÄÊýÖµµÍ 2.5 ±¶——ÏÔÈ»£¬×Ýʹ°ëµ¼ÌåÐÐÒµ»¹ÔÚ½ø²½£¬µ«Æä½Å²½ÒÑÊ®·Ö»ºÂý¡£
Dennard Scaling ÊÇÒ»¸öÏÊΪÈËÖª£¬µ«Í¬ÑùÖØÒªµÄ¹Û²ì½á¹û¡£Robert Dennard ÔÚ 1974 ÄêÈÏΪ£¬¾§Ìå¹Ü²»¶Ï±äС£¬µ«Ð¾Æ¬µÄ¹¦ÂÊÃܶȲ»±ä¡£Èç¹û¾§Ìå¹Ü³ß´çÏßÐÔËõСÁ½±¶£¬ÄÇôͬÑùÃæ»ýÉÏоƬÖо§Ìå¹ÜµÄÊýÁ¿¾Í»á±äΪ 4 ±¶¡£Í¬Ê±£¬Èç¹ûµçÁ÷ºÍµçѹ¶¼½µµÍÁ˶þ·ÖÖ®Ò»£¬ËüËùʹÓõŦÂʽ«Ï½µ 4 ±¶£¬ÔÚÏàͬµÄƵÂÊÏÂÌṩÏàͬµÄ¹¦ÂÊ¡£Dennard Scaling ÔÚ±»·¢ÏÖµÄ 30 Äêºó½áÊø£¬ÆäÔÒò²¢²»ÊÇÒòΪ¾§Ìå¹ÜµÄ³ß´ç²»ÔÙËõС£¬¶øÊÇÒòΪµçÁ÷ºÍµçѹ²»ÄÜÔÚ¼ÌÐøϽµµÄͬʱ±£³Ö¿É¿¿ÐÔÁË¡£
¼ÆËã¼Ü¹¹Ê¦ÃÇÒ»Ö±óƶ¨Ä¦¶û¶¨ÂÉºÍ Dennard Scaling£¬²¢Í¨¹ý¸´ÔӵĴ¦ÀíÆ÷Éè¼ÆºÍÄÚ´æ²ã´Î½á¹¹£¬½«×ÊԴת»¯ÎªÐÔÄÜ£¬ÕâЩÉè¼ÆÀûÓÃÁ˲»Í¬µÄ´¦ÀíÖ¸ÁîµÄÖ®¼äµÄ²¢ÐÐÐÔ£¬µ«¼Ü¹¹Ê¦ÃDz¢Ã»ÓÐʲô±à³ÌµÄ֪ʶ¡£ε=(´ο£à*))) °¦£¬ÓÚÊǼܹ¹Ê¦ÃÇ×îÖÕ»¹ÊÇÔÙÒ²ÕÒ²»µ½Ðµİ취¿ÉÒÔÀûÓÃÖ¸Á±ðµÄ²¢ÐÐÐÔ¡£Dennard ScalingÔÚ 2004 ÄêÖÕ½áÁË£¬»ö²»µ¥ÐеÄÊǼÌÐøÌáÉýÖ¸Á±ð²¢ÐÐÐԵķ½·¨Ò²¿ªÊ¼È±Ï¯£¬ÕâÆÈʹҵ½çÖ»ÄÜ´Óµ¥ºË¸ßºÄÄÜ´¦ÀíÆ÷ת»»µ½¶àºË¸ßЧÂÊ´¦ÀíÆ÷¡£
½ñÌìÎÒÃÇÈÔÈ»×ñÊؼª¶÷·°¢Ä·´ï¶û£¨IBM ÖøÃû¹¤³Ìʦ£¬°¢Ä·´ï¶û¶¨ÂɵÄÌá³öÕߣ©ÔÚ 1967 ÄêÌá³öµÄ¶¨ÂÉ£¬¸Ã¶¨ÂÉÈÏΪ²»¶ÏÔö¼Ó´¦ÀíÆ÷ÊýÁ¿»áµ¼ÖÂÐÔÄÜÌáÉýµÄµÝ¼õ¡£°¢Ä·´ï¶û¶¨ÂÉ˵£¬²¢ÐмÆËãµÄÀíÂÛ¼ÓËÙÊܵ½ÈÎÎñ˳Ðò²¿·ÖµÄÏÞÖÆ£»Èç¹ûÈÎÎñµÄ 1/8 ÊÇ´®Ðеģ¬Ôò×î´ó¼ÓËÙÒ²Ö»±ÈÔʼÐÔÄÜ¸ß 8 ±¶——¼´Ê¹ÈÎÎñµÄÆäÓಿ·ÖºÜÈÝÒײ¢ÐУ¬²¢ÇҼܹ¹Ê¦Ôö¼ÓÁË 100 ¸ö´¦ÀíÆ÷Ò²ÊÇÈç´Ë¡£
ÏÂͼÏÔʾÁ˹ýÈ¥ËÄÊ®ÄêÒÔÀ´£¬ÉÏÊöÈý´ó¶¨ÂɶԴ¦ÀíÆ÷ÐÔÄܵÄÓ°Ïì¡£°´ÕÕÄ¿Ç°µÄËٶȣ¬±ê×¼´¦ÀíÆ÷µÄÐÔÄÜÔÚ 2038 ÄêÒÔÇ°¶¼²»»áÔٴ籶¡£
ͼ 1. ÒÀÕÕHennessyºÍPattersonµÄÀíÂÛ£¬ÎÒÃÇ»æÖÆÁ˹ýÈ¥40ÄêÖУ¬32λºÍ64λ´¦ÀíÆ÷ÄÚºËÿÄê×î¸ßµÄSPECCPUintÐÔÄÜ£»ÃæÏòÍÌÍÂÁ¿µÄSPECCPUint_rate·´Ó³ÁËÀàËƵÄÇé¿ö£¬¼´Ê¹ÆäƽÎÈÆÚÑÓ³ÙÁ˼¸Äê
¾§Ìå¹Ü¿´À´Ã»Ê²Ã´½ø²½¿Õ¼äÁË£¨Õâ·´Ó³ÁËĦ¶û¶¨ÂɵĽáÊø£©£¬¶øÿƽ·½ºÁÃ×оƬÃæ»ýµÄ¹¦ºÄÕýÔÚÔö¼Ó£¨±Ï¾¹ Dennard Scaling Ò²½áÊøÁË£©£¬µ«ÈËÃǶÔÓÚоƬµÄ¹¦ÂÊÔ¤ËãÈ´²¢Ã»ÓÐÔö¼Ó£¨ÒòΪµç×ÓµÄÒƶ¯¡¢»úеºÍ·¢ÈÈÏÞÖÆ£©£¬Ð¾Æ¬Éè¼ÆʦÃÇÒѾÔÚ³ä·Ö·¢»Ó¶àºËÐĵÄÄÜÁ¦ÁË£¨µ«ÕâÒ²Êܵ½°¢Ä·´ï¶û¶¨ÂɵÄÏÞÖÆ£©£¬¼Ü¹¹Ê¦ÃÇÏÖÔÚÆÕ±éÈÏΪ£¬ÄÜÏÔÖø¸Ä½øÐÔÄÜ¡¢¼Û¸ñ¡¢ÄÜÔ´ÈýÕßƽºâµÄΨһ;¾¶¾ÍÊÇÌض¨ÁìÓòµÄ¼Ü¹¹——ËüÃÇÖ»ÊÊÓÃÓÚ´¦Àí¼¸ÖÖÌض¨µÄÈÎÎñ£¬µ«Ð§Âʷdz£¸ß¡£
ÔÚÔƶ˵ĴóÐÍÊý¾Ý¼¯ºÍ´óÁ¿¼ÆËã»úÖ®¼äµÄÐ×÷ʹµÃ»úÆ÷ѧϰ½üÄêÀ´ÓÐÁ˺ܴóµÄ½ø²½£¬ÌرðÊÇÔÚÉî¶ÈÉñ¾ÍøÂ磨DNN£©·½Ãæ¡£ÓëһЩÆäËûÁìÓò²»Í¬£¬DNN µÄÓ¦Ó÷½Ê½ºÜ¹ã·º¡£DNN µÄÍ»ÆÆÐÔ½øÕ¹°üÀ¨½«ÓïÒôʶ±ðµÄµ¥´Ê´íÎóÂÊÏà±ÈÀÏ·½·¨½µµÍÁË 30%£¬ÕâÊǽü 20 ÄêÀ´×î´óµÄµ¥´ÎÌáÉý£»×Ô 2011 ÄêÒÔÀ´£¬½«Í¼Ïñʶ±ðµÄ´íÎóÂÊ´Ó 26% ½µµÍÖÁ 3.5%£»ÔÚΧÆåÉÏ»÷°ÜÁËÈËÀàÊÀ½ç¹Ú¾ü£»¸Ä½øÁËËÑË÷ÅÅÃûµÈµÈ¡£µ¥¸ö DNN ¼Ü¹¹»òÐíÓ¦Ó÷¶Î§ºÜÕ£¬µ«ÕâÖÖ·½·¨ÈÔÈ»´ßÉú³öÁË´óÁ¿Êµ¼ÊÓ¦Óá£
Éñ¾ÍøÂçÀàËÆÓÚÈËÄÔÖÐÉñ¾µÄ¹¦ÄÜ£¬»ùÓÚ¼òµ¥µÄÈ˹¤Éñ¾Ôª£¬ËüÃÇÊÇÊäÈëµÄ¼ÓȨºÍµÄ·ÇÏßÐÔº¯Êý£¬ÀýÈç max(0,value)¡£ÕâЩÈ˹¤Éñ¾Ôª±»·ÖΪÐí¶à²»Í¬µÄ²ã£¬ÆäÖÐÒ»²ãµÄÊä³ö¾Í»á×÷ΪÏÂÒ»²ãµÄÊäÈë¡£Éî¶ÈÉñ¾ÍøÂçÖеēÉî²ã”´ú±íÓжà¸ö²ã£¬ÓÉÓÚÔÆÉÏÓм«´óµÄÊý¾Ý¼¯£¬Ö»Ðè»»Óøü´ó¡¢¸ü¶àµÄ²ã¾Í¿ÉÒÔ¹¹½¨³ö¸ü׼ȷµÄÄ£ÐÍ£¬ËüÒ²¾Í¿ÉÒÔ»ñÈ¡¸ü¸ß½×³éÏóµÄģʽ»òÊǸÅÄ¶ø GPU ¿ÉÒÔÌṩ×ã¹»µÄ¼ÆËãÄÜÁ¦°ïÎÒÃÇ¿ª·¢ DNN¡£
DNN ÔËÐеÄÁ½¸ö½×¶Î±»³ÆΪѵÁ·£¨»òѧϰ£©ºÍÍÆÀí£¨»òÔ¤²â£©£¬·Ö±ðÖ¸´ú¿ª·¢ÓëÉú²ú¡£ÑµÁ·Ò»¸ö DNN ¿ÉÄÜÐèÒªÊýÌ죬µ«ÑµÁ·ºÃµÄ DNN ½øÐÐÍÆÀíÖ»ÐèÒª¼¸ºÁÃë¡£Õë¶Ô²»Í¬µÄÓ¦Ó㬿ª·¢ÕßÐèҪѡÔñÉñ¾ÍøÂçµÄÀàÐͺͲãÊý£¬¶øѵÁ·¹ý³Ì»á¾ö¶¨ÍøÂçÖеÄȨÖØ¡£¼¸ºõËùÓеÄѵÁ·¶¼ÊǸ¡µãÔËË㣬Õâ¾ÍÊÇ GPU ÔÚÉî¶Èѧϰʱ´úÈç´ËÊÜ»¶ÓµÄÔÒòÖ®Ò»¡£
±»³ÆΪ“Á¿»¯”µÄת»»½«¸¡µãÐÍתΪÕûÐÍ£¬ÕûÐÍͨ³£Ö»ÓÐ 8 λ——ÕâÖ̶ֳÈͨ³£×ãÒÔÂú×ãÍÆÀíµÄÒªÇóÁË¡£Óë IEEE 754 16 λ¸¡µã³Ë·¨Ïà±È£¬8 λÕûÐͳ˷¨Ö»ÐèÒª 1/6 µÄÄܺģ¬ÐèÒªµÄ¿Õ¼äÒ²Ö»ÐèÒª 1/6£¬¶øת»»ÎªÕûÐͼӷ¨Ò²ÄÜ´øÀ´ 13 ±¶ÄÜºÄºÍ 38 ±¶¿Õ¼äµÄÌáÉý¡£
ϱíչʾÁËÁ½¸öÀý×Ó£¬¹²ÈýÀà¡¢Áù¸ö DNN ʵÀýµÄÔËÐÐЧÂÊ——Õâ´ú±íÁ˹ȸèÊý¾ÝÖÐÐÄ 2016 Äê 95% µÄÉî¶ÈÉñ¾ÍøÂçÍÆÀí¹¤×÷¸ºÔØ£¬ÎÒÃÇ°ÑËüÃÇ×÷Ϊ benchmark¡£ËüÃÇÔÚ TensorFlow ÖеĴúÂ붼·Ç³£¶Ì£¬Ö»ÓÐ 100-1500 ÐС£ÕâЩÀý×ÓÊÇÖ÷·þÎñÆ÷ÉÏÔËÐнϴóÓ¦ÓóÌÐòÖеÄС×é¼þ£¬ÕâЩ´óÓ¦ÓÿÉÄÜ»áÓÉÊýǧµ½Êý°ÙÍòÐÐ C++´úÂë¹¹³É¡£Ó¦ÓóÌÐòͨ³£ÃæÏòÓû§£¬Õâ¾Í¶ÔÏìӦʱ¼ä´øÀ´ÁËÑϸñµÄÒªÇó¡£
±í 1. 2016Äê7Ô£¬¹È¸èTPUÉϵÄDNN¹¤×÷¸ºÔØ¡£¹²ÁùÖÖDNNÓ¦Óã¨ÈýÖÖDNNÀàÐÍ£©£¬´ú±í95%µÄTPU¹¤×÷¸ºÔØ
Èç±í 1 Ëùʾ£¬Ã¿¸öÄ£ÐÍÐèÒª 500 ÍòÖÁ 1 ÒÚ¸öȨÖØ£¬¼´±ãÖ»ÊÇ·ÃÎÊÕâЩȨÖض¼ÐèÒª»¨·Ñ´óÁ¿Ê±¼äºÍÄܺġ£ÎªÁ˽µµÍ·ÃÎʳɱ¾£¬ÔÚѵÁ·»òÕßÍÆÀíÖлáÕë¶ÔÒ»ÅúÍêÈ«²»Ïà¸ÉµÄÊäÈëÑù±¾¶¼Ê¹ÓÃͬÑùµÄȨÖØ£¬ÕâÖÖ×ö·¨¿ÉÒÔÌá¸ßÐÔÄÜ¡£
TPU ÆðÔ´¡¢¼Ü¹¹¼°ÊµÏÖ
ÔçÔÚ 2006 Ä꣬¹È¸è¾Í¿ªÊ¼¿¼ÂÇÔÚÆäÊý¾ÝÖÐÐIJ¿Êð GPU£¨Í¼Ðδ¦ÀíÆ÷£©£¬»òÕß FPGA £¨field programmable gate array£¬ÏÖ³¡¿É±à³ÌÃÅÕóÁУ©£¬»òÕßרÓü¯³Éµç·£¨ASIC£©¡£µ±Ê±µÄ½áÂÛÊÇ£¬ÄÜÔÚרÃŵÄÓ²¼þÉÏÔËÐеÄÓ¦Óò¢²»¶à£¬ËüÃÇʹÓùȸè´óÐÍÊý¾ÝÖÐÐĵĸ»Óà¼ÆËãÄÜÁ¦¼´¿É£¬»ù±¾¿ÉÒÔ¿´×öÊÇÃâ·ÑµÄ£¬ÁíÍâÒ²ºÜÄѲ»Ôõô»¨Ç®¾Í´øÀ´ºÜ´ó¸Ä½ø¡£Çé¿öÔÚ 2013 Äê³öÏÖÁ˱仯£¬µ±Ê±¹È¸èÓû§Ã¿ÌìʹÓÃÓïÒôʶ±ð DNN ÓïÒôËÑË÷Èý·ÖÖÓ£¬Ê¹µÃ¹È¸èÊý¾ÝÖÐÐĵļÆËãÐèÇóÔö¼ÓÁËÒ»±¶£¬¶øÈç¹ûʹÓô«Í³µÄ CPU ½«·Ç³£°º¹ó¡£Òò´Ë£¬¹È¸èÆô¶¯ÁËÒ»ÏîÓÅÏȼ¶±ð·Ç³£¸ßµÄÏîÄ¿£¬¿ìËÙÉú²úÒ»¿î¶¨ÖÆоƬÓÃÓÚÍÆÀí£¬²¢¹ºÂòÏÖ³ÉµÄ GPU ÓÃÓÚѵÁ·¡£¹È¸èµÄÄ¿±êÊǽ«ÐÔ¼Û±ÈÌá¸ß 10 ±¶¡£ÎªÁËÍê³ÉÕâÏîÈÎÎñ£¬¹È¸èÔÚÆäÊý¾ÝÖÐÐÄÉè¼Æ¡¢ÑéÖ¤¡¢¹¹½¨²¢²¿ÊðÁË TPU£¬¶øÕâÒ»¹ý³Ì½ö½öÓÃÁË 15 ¸öÔ¡£
ΪÁ˽µµÍ²¿ÊðÍƳٵķçÏÕ£¬¹È¸è¹¤³Ìʦ½« TPU Éè¼Æ³É I/O ×ÜÏßÉϵÄд¦ÀíÆ÷£¬²¢ÔÊÐíËüÏñ GPU Ò»Ñù²åÈëÏÖÓзþÎñÆ÷£¬¶ø²»ÊÇʹ TPU Óë CPU ½ôÃܼ¯³É¡£´ËÍ⣬ΪÁ˼ò»¯Ó²¼þÉè¼ÆºÍµ÷ÊÔ£¬Ö÷»ú·þÎñÆ÷½«Ö¸Áî·¢Ë͸ø TPU ÁîÆäÖ´ÐУ¬¶ø²»ÊÇÈà TPU È¥×ÔÐлñÈ¡¡£Òò´Ë£¬TPU ÔÚÀíÄîÉϸü½Ó½ü¸¡µãµ¥Ôª£¨FPU£©Ð´¦ÀíÆ÷£¬¶ø²»ÊÇ GPU¡£
¹È¸è¹¤³Ìʦ½« TPU ¿´×öÒ»¸öϵͳ½øÐÐÓÅ»¯¡£ÎªÁ˼õÉÙÓëÖ÷»ú CPU µÄ½»»¥£¬TPU ÔËÐÐÕû¸öÍÆÀíÄ£ÐÍ£¬µ«ÌṩÁËÓë 2015 Äê¼°ÒÔºóµÄ DNN ÏàÆ¥ÅäµÄÁé»îÐÔ£¬¶ø²»¾ÖÏÞÓÚ 2013 ÄêµÄ DNN¡£
TPU Ö¸Áîͨ¹ý PCI-e Gen3x16 ×ÜÏß´ÓÖ÷»ú±»·¢Ë͵½Ö¸Á³åÆ÷ÖС£ÄÚ²¿¼ÆËãÄ£¿éͨ³£Í¨¹ý 256 ×Ö½Ú¿í¶ÈµÄ·¾¶Á¬½ÓÔÚÒ»Æ𡣶ÔÓÚÓÒ²àµÄоƬ²¼¾Öͼ£¬´ÓÓÒÉϽǿªÊ¼£¬¾ØÕó³Ë·¨µ¥ÔªÊÇ TPU µÄºËÐÄ£¬256×256 MAC ¿ÉÒÔ¶ÔÓзûºÅ»òÎÞ·ûºÅµÄÕûÐÍÖ´ÐÐ 8 λ³Ë·¨ºÍ¼Ó·¨ÔËËã¡£µÃµ½µÄ 16 λµÄ½á¹û»á´æÈë¾ØÕó¼ÆË㵥ԪϷ½µÄ¹² 4MB ¿Õ¼äµÄ 32 λÀÛ¼ÓÆ÷ÖС£ÕâËĸö MiB ´ú±íº¬ÓÐ 4,096 ¸ö 256 ÔªËØµÄ 32 λÀÛ¼ÓÆ÷¡£¾ØÕó¼ÆË㵥ԪÿÖÜÆÚ²úÉúÒ»¸ö 256 ÔªËصIJ¿·ÖºÍ¡£
ͼ 2. TPU¼Ü¹¹Ê¾Òâͼ¼°Ð¾Æ¬²¼¾Öͼ
¾ØÕóµ¥ÔªµÄȨÖØͨ¹ýƬÄÚ¡¸È¨ÖØ FIFO¡¹À´·Ö¼¶£¬¸Ã FIFO ´ÓÎÒÃdzÆ֮Ϊ¡¸È¨ÖØ´æ´¢Æ÷¡¹µÄƬÍâ 8GB DRAM ÖжÁÈ¡£»¶ÔÓÚÍÆÀí£¬È¨Öؽö×÷¶ÁÈ¡£»8GB ¿Õ¼ä¿ÉÒÔÖ§³Öͬʱ¼¤»î¶à¸öÄ£ÐÍ¡£È¨ÖØ FIFO ÓÐËIJãÉî¡£Öмä½á¹û±£´æÔÚ 24MiB µÄƬÉÏ¡¸Í³Ò»»º³åÆ÷¡¹ÖУ¬¿ÉÒÔ×÷Ϊ¾ØÕó¼ÆËãµ¥ÔªµÄÊäÈë¡£¿É±à³Ì DMA ¿ØÖÆÆ÷»áz z°¥CPU Ö÷»ú´æ´¢Æ÷ºÍͳһ»º³åÆ÷¼ä´«ËÍÊý¾Ý¡£ÎªÁËÄÜÔڹȸèµÄ¹æÄ£ÉÏ¿É¿¿µØ²¿Êð£¬ÄÚ´æ´¢Æ÷ºÍÍâ´æ´¢Æ÷°üº¬ÄÚÖôíÎó¼ì²éÓë¾ÀÕýÓ²¼þ¡£
TPU ΢¼Ü¹¹µÄÔÀíÊDZ£³Ö¾ØÕó¼ÆËãµ¥ÔªÒ»Ö±ÔÚ¹¤×÷ÖС£ÎªÁËʵÏÖÕâһĿ±ê£¬¶ÁȡȨÖصÄÖ¸Áî×ñѽâñî·ÃÎÊ/Ö´ÐÐÔÀí£¬Ëü¿ÉÒÔÔÚ·¢ËÍȨÖصĵØÖ·Ö®ºó¡¢µ«´ÓȨÖØ´æ´¢Æ÷ÖÐÈ¡³öȨÖØ֮ǰÍê³ÉÒ»ÌõÖ¸Áî¡£Èç¹ûÊäÈ뼤»î»òȨÖØÊý¾ÝûÓÐ×¼±¸ºÃ£¬¾ØÕó¼ÆËãµ¥Ôª½«Í£Ö¹¡£
ÓÉÓÚ¶ÁÈ¡´óÐ;²Ì¬Ëæ»ú´æÈ¡´æ´¢Æ÷£¨Static Random-Access Memory£¬SRAM£©ÏûºÄµÄÄÜÔ´±ÈÊýѧÔËËã¶àµÃ¶à£¬¾ØÕóµ¥ÔªÊ¹Óá¸Âö¶¯Ö´ÐС¹Í¨¹ý¼õÉÙͳһ»º³åÆ÷µÄ¶ÁдÀ´½ÚÔ¼ÄÜÁ¿¡£À´×Ô²»Í¬·½ÏòµÄÊý¾ÝÒÔ¹æÂɵļä¸ôµ½´ïÕóÁÐÖеĵ¥Ôª£¬È»ºó½øÐÐ×éºÏ¼ÆËã¡£Ò»¸öº¬ÓÐ 65,536 ¸öÔªËصÄÏòÁ¿-¾ØÕó³Ë·¨ÔËËã×÷Ϊ¶Ô½Ç²¨Ç°ÔÚ¾ØÕóÖÐÒƶ¯¡£ÕâЩȨÖر»Ô¤¼ÓÔØ£¬²¢Ëæ×ÅÐÂÊý¾Ý¿éµÄµÚÒ»¸öÊý¾ÝÒ»ÆðËæ×ÅÇ°½ø²¨ÉúЧ¡£¿ØÖƺÍÊý¾Ý±»Á÷Ë®Ïß»¯£¬¸ø³ÌÐòÔ±Ò»ÖÖ´í¾õ£¬·Â·ð 256 ¸öÊäÈëÊÇÒ»´Î¶ÁÈ¡µÄ£¬²¢Á¢¼´¸üР256 ¸öÀÛ¼ÓÆ÷ÖÐÿ¸öÀÛ¼ÓÆ÷µÄÒ»¸öλÖᣴÓÕýÈ·ÐԵĽǶÈÀ´¿´£¬Èí¼þ²»Á˽â¾ØÕóµ¥ÔªµÄÂö¶¯ÌØÐÔ£¬µ«ÎªÁËÌá¸ßÐÔÄÜ£¬±ØÐ뿼Âǵ¥ÔªµÄÑÓ³Ù¡£
TPU Èí¼þÕ»±ØÐëÓëΪ CPU ºÍ GPU ¿ª·¢µÄÈí¼þÕ»¼æÈÝ£¬ÕâÑùÓ¦ÓÿÉÒÔ¿ìËÙÒÆÖ²µ½ TPU ÉÏ¡£ÔÚ TPU ÉÏÔËÐеÄÓ¦Óò¿·Öͨ³£Óà TensorFlow ±àд£¬²¢±àÒë³É¿ÉÒÔÔÚ GPU »ò TPU ÉÏÔËÐÐµÄ API¡£
CPU¡¢GPU¡¢TPU ƽ̨
¶àÊýÌåϵ¼Ü¹¹Ñо¿µÄÂÛÎÄ»ùÓÚÔËÐÐСÐÍ¡¢Ò×ÓÚÒÆÖ²µÄ»ù×¼²âÊÔÄ£Ä⣬ÕâЩ»ù×¼²âÊÔ¿ÉÒÔÔ¤²âDZÔÚµÄÐÔÄÜ£¨Èç¹ûʵÏֵĻ°£©¡£±¾ÎÄÓëÉÏÊöÂÛÎIJ»Í¬£¬ÊÇ¶Ô 2015 ÄêÒÔÀ´Êý¾ÝÖÐÐÄÔËÐÐÕæʵ¡¢´óÐÍÉú²ú¹¤×÷¸ºÔصĻúÆ÷½øÐлعËÐÔÆÀ¹À£¬ÆäÖÐһЩ»úÆ÷µÄÈÕ³£Óû§³¬¹ý 10 ÒÚ¡£±í 1 ÖÐÁгöµÄÁùÖÖÓ¦Óôú±íÁË 2016 Äê TPU Êý¾ÝÖÐÐÄ 95% µÄʹÓá£
ÓÉÓÚ²âÁ¿µÄÊÇÉú²ú»·¾³µÄ¸ºÔØ£¬Òª±È½ÏµÄ»ù׼ƽ̨±ØÐë¿ÉÒÔÔÚ Google Êý¾ÝÖÐÐIJ¿Êð£¬ÒòΪÉú²ú»·¾³µÄ¼ÆË㸺ÔØÒ²¾ÍÖ»ÄÜÔÚÕâÀïÔËËã¡£¹È¸èÊý¾ÝÖÐÐĵĺܶà·þÎñÆ÷ºÍ¹È¸è¹æÄ£¶ÔÓ¦ÓóÌÐò¿É¿¿ÐÔµÄÒªÇóÒâζ×Å»úÆ÷±ØÐëÖÁÉÙ¼ì²éÄÚ´æ´íÎó¡£ÓÉÓÚӢΰ´ï Maxwell GPU ºÍ×î½üµÄ Pascal P40 GPU ²»¼ì²éÄÚ²¿´æ´¢ÖеĴíÎó£¬ÒԹȸèµÄ¹æÄ£²¿ÊðÕâЩ´¦ÀíÆ÷¡¢Í¬Ê±»¹Âú×ã¹È¸èÓ¦ÓóÌÐòµÄÑϸñ¿É¿¿ÐÔÒªÇóÊÇ×ö²»µ½µÄ¡£
±í 2 ÏÔʾÁ˲¿ÊðÔڹȸèÊý¾ÝÖÐÐĵķþÎñÆ÷£¬¿ÉÒÔ½«ÆäÓë TPU ½øÐбȽϡ£´«Í³µÄ CPU ·þÎñÆ÷ÒÔÓ¢ÌضûµÄ 18 ºËË«²å²Û Haswell ´¦ÀíÆ÷Ϊ´ú±í£¬¸Ãƽ̨ҲÊÇ GPU »ò TPU µÄÖ÷»ú·þÎñÆ÷¡£¹È¸è¹¤³ÌʦÔÚ·þÎñÆ÷ÖÐʹÓÃÁËËĸö TPU оƬ¡£
±í 2. »ù×¼²âÊԵķþÎñʹÓÃHaswell CPU¡¢K80 GPU¼°TPU
ºÜ¶à¼ÆËã»ú¼Ü¹¹Ê¦Ã»Óп¼Âǵ½´Ó²úÆ··¢²¼µ½Ð¾Æ¬¡¢Ö÷°å¡¢Èí¼þ¿ÉÒÔ·þÎñÓÚÊý¾ÝÖÐÐĵÄÓû§Ö®¼äµÄʱ¼ä²î¡£±í3Ö¸³ö£¬2014 ÄêÖÁ 2017 Äê¼ä£¬ÉÌÒµÔƹ«Ë¾µÄ GPU ʱ¼ä²îΪ 5 ÖÁ 25 ¸öÔ¡£Òò´Ë£¬µ±Ê±ÊʺÏÓë 2015 ÄêͶÈëʹÓÃµÄ TPU µÄ×ö¶Ô±ÈµÄ GPU ÏÔÈ»ÊÇӢΰ´ï K80£¬ºóÕß´¦ÓÚÏàͬµÄ°ëµ¼Ì幤ÒÕÖУ¬²¢ÔÚ TPU ²¿ÊðÇ°Áù¸öÔ·¢²¼¡£
±í 3.2015Äêµ½2017Ä꣬Ӣΰ´ïGPU´Ó·¢²¼µ½Ôƶ˲¿ÊðµÄʱ¼ä²î¾à£¬Õâ4´úGPU·Ö±ðΪKepler¡¢Maxwell¡¢PascalºÍVolta¼Ü¹¹
ÿ¸ö K80 ¿¨°üº¬Á½¿é¹èƬ£¬²¢ÌṩÄÚ²¿´æ´¢Æ÷ºÍ DRAM µÄ´íÎó¼ì²âºÍ¾À´í¹¦ÄÜ¡£ÕâÖÖ·þÎñÆ÷ÖÐ×î¶à¿É°²×° 8 ¸ö K80 ¹èƬ£¬ÕâÒ²ÊÇÎÒÃÇ»ù×¼²âÊÔµÄÅäÖá£CPU ºÍ GPU ¶¼Ê¹ÓôóÐÍоƬ£º´óÔ¼ 600 mm2µÄоƬÃæ»ý£¬´óÔ¼ÊÇÓ¢Ìضû Core i7 µÄÈý±¶¡£
ÐÔÄÜ£ºRoofline¡¢ÏìӦʱ¼ä¡¢ÍÌÍÂÁ¿
ΪÁË˵Ã÷ÕâÁùÖÖÓ¦ÓÃÔÚÈýÀà´¦ÀíÆ÷ÉϵÄÐÔÄÜ£¬ÎÒÃÇʹÓÃÁ˸ßÐÔÄܼÆËã»úȺ£¨HPC£©µÄ Roofline ÐÔÄÜÄ£ÐÍ¡£ÕâÒ»¼òµ¥µÄÊÓ¾õÄ£ÐÍËäÈ»²»ÍêÃÀ£¬µ«½ÒʾÁËÐÔÄÜÆ¿¾±³öÏÖµÄÔÒò¡£¸ÃÄ£Ðͱ³ºóµÄ¼ÙÉèÊÇÓ¦ÓÃÐèÇóµÄ¼ÆËãÎÞ·¨ÍêȫװÈëƬÉÏ»º´æ£¬Òò´ËËüÃÇҪô¼ÆËãÊÜÏÞ£¬ÒªÃ´ÄÚ´æ´ø¿íÊÜÏÞ¡£¶ÔÓÚ HPC£¬y Öá±íʾÿÃ븡µãÔËËãÐÔÄÜ£¨µ¥Î»ÊÇ FLOPS£©£¬Òò´Ë·åÖµ¼ÆËãÂÊÐγÉÁË roofline ͼµÄ“ƽ»º”Çø¡£x Öá±íʾÔËËãÃܶȣ¨operational intensity£©£¬µ¥Î»ÊÇ FLOPS/byte¡£ÄÚ´æ´ø¿í±íʾÿÃë¶àÉÙ±ÈÌØ£¬ÐγÉÁË roofline µÄ“Çãб”²¿·Ö£¬ÒòΪ (FLOPS/sec)/ (FLOPS/Byte) = Bytes/sec¡£Ã»Óгä×ãµÄÔËËãÃܶÈʱ£¬³ÌÐòÊÜÏÞÓÚÄÚ´æ´ø¿í£¬ÐÔÄÜÖ»ÄÜÔÚ roofline µÄ“Çãб”²¿·Ö֮ϡ£
Ò»¸öÓ¦ÓõÄÿÃëʵ¼Ê¼ÆËãÁ¿ÓëÆäÌ컨°å¼ÆËãÁ¿Ö®¼äµÄ¾àÀë´ú±íÁ˱£³ÖÔËËãÃܶȲ»±äʱÐÔÄÜÌáÉýµÄDZÁ¦£»ÌáÉýÔËËãÃܶȵÄÓÅ»¯£¨È绺´æ·Ö¿é£©¿ÉÄÜ´øÀ´¸ü´óµÄÐÔÄÜÌáÉý¡£
ΪÁËÔÚ TPU ÉÏʹÓà Roofline Ä£ÐÍ£¬µ±DNNÓ¦Óñ»Á¿»¯Ê±£¬ÎÒÃÇÊ×ÏȽ«¸¡µãÔËËãÌæ»»³ÉÕûÊýÔËËã¡£ÓÉÓÚ DNN Ó¦ÓõÄȨÖØͨ³£ÎÞ·¨×°ÈëƬÉÏÄڴ棬Òò´ËµÚ¶þ¸ö¸Ä±ä¾ÍÊǽ«ÔËËãÃܶÈÖØж¨ÒåΪÿ¶ÁÈ¡ 1 ×Ö½ÚµÄȨÖØֵʱµÄÕûÊý³Ë»ýÀÛ¼ÓÔËËã²Ù×÷ÊýÄ¿£¬Èç±í1Ëùʾ¡£
ͼ 3 չʾÁ˵¥¸ö TPU¡¢CPU ºÍ GPU ¹èƬÒÔ Roofline Ä£ÐÍÆÀ¹ÀµÄÐÔÄÜÖ¸±ê£¬Í¼ÖÐÊÇÖ¸Êý×ø±ê¡£TPU µÄ Roofline Ä£ÐÍ“Çãб”²¿·Ö½Ï³¤£¬´Ó¼ÆËãÃܶȽǶȿ¼ÂÇ£¬ÕâÒâζ×ÅÐÔÄܸü¶àµØÊÜÏÞÓÚÄÚ´æ´ø¿í£¬¶ø²»ÊǼÆËãÄÜÁ¦·åÖµ¡£Áù¸öÓ¦ÓÃÖÐÓÐÎå¸ö¶¼½Ó½üÌ컨°å£¬MLP ºÍ LSTM ÊÜÏÞÓÚÄڴ棬CNN ÊÜÏÞÓÚ¼ÆËã¡£
ͼ 3£ºTPU¡¢CPUºÍGPUÔÚ Roofline Ä£ÐÍÉϵÄÐÔÄܱíÏÖ¡£Îå½ÇÐDZíʾTPU£¬Èý½ÇÐαíʾӢΰ´ïTesla K80 GPU£¬Ô²±íʾӢÌضû¿á¦ÀíÆ÷£¨Haswell£©£»ËùÓÐTPUÎå½ÇÐǶ¼ÓëÆäËûÁ½ÖÖоƬµÄ Roofline Ä£ÐͳÖƽ»òÔÚºóÕßÖ®ÉÏ
Èçͼ 3 Ëùʾ£¬ÔÚ Haswell ÒÔ¼° K80 ÉÏ£¬ÕâÁù¸ö DNN Ó¦ÓþàÀë Roofline Ì컨°åµÄ¾àÀ붼´óÓÚ TPU ÉϵľàÀë¡£ÏìӦʱ¼äÊÇÔÒòËùÔÚ¡£ÕâЩӦÓÃÖеĺܶà¸öÊÇÃæÏòÖÕ¶ËÓû§·þÎñµÄÒ»²¿·Ö¡£Ñо¿±íÃ÷£¬¼´Ê¹ÏìӦʱ¼äµÄЩ΢Ôö¼Ó¶¼»áµ¼ÖÂÓû§Ê¹Óø÷þÎñµÄƵÂʽµµÍ¡£ÑµÁ·¿ÉÄÜûÓпÁ¿ÌµÄÏìӦʱ¼ä deadline£¬µ«ÍÆÀíͨ³£ÓУ¬»òÕß˵Ïà±ÈÓÚÑ¡Ôñ¸ü´óÍÌÍÂÁ¿£¬ÍÆÀíÈÎÎñ¸üÆ«ºÃµÍÑÓ³Ù¡£
ÀýÈ磬°´ÕÕÓ¦Óÿª·¢ÕßµÄÒªÇó£¬MLP0 Ó¦ÓÃÒªÇóÔÚ 99% µÄʱ¼äÄÚÏìӦʱ¼ä²»´óÓÚ 7ms¡££¨Ã¿ÃëÍê³ÉÍÆÀíµÄÊýÄ¿ÒªÇóºÍ 7ms µÄÑÓ³ÙÒªÇóÖаüÀ¨·þÎñÆ÷Ö÷»úʱ¼äºÍ¼ÓËÙÆ÷ʱ¼ä£©¼´±ã¶ÔÏìӦʱ¼äµÄÏÞÖÆ·Å¿íһЩ£¬Haswell ºÍ K80 ÔËÐÐʱҲ·Ö±ðÖ»ÄÜ´ïµ½ MLP0 Ó¦ÓÃ×î¸ßÍÌÍÂÁ¿µÄ 42% ºÍ 37%¡£ÕâЩÏÞÖÆÒ²»áÓ°Ïìµ½TPU£¬Ëü»áÒÔ 80% µÄÍÌÍÂÁ¿À´ÔËÐУ¬¸ü¼Ó½Ó½ü TPU µÄ MLP0 ×î´óÍÌÍÂÁ¿¡£Óë CPU ºÍ GPU Ïà±È£¬µ¥Ïß³Ì TPU ûÓи´ÔÓµÄ΢¼Ü¹¹ÌØÕ÷£¬Ò²¾Í²»ÐèҪΪƽ¾ù×´¿ö¶øÏûºÄ¾§Ìå¹ÜºÍ¹¦ÂÊÀ´Ìá¸ßÐÔÄÜ£¬ËüÖ±½ÓÊÊÓÃÓÚ 99% µÄ×´¿ö£¬¼´ TPU ûÓлº´æ¡¢·ÖÖ§Ô¤²â¡¢ÂÒÐòÖ´ÐС¢¶à´¦Àí¡¢ÍƲâÔ¤¶Á¡¢µØÖ·ºÏ²¢¡¢¶àÏ̡߳¢ÉÏÏÂÎÄÇеȵȡ£¼«¼òÊÇÁìÓòרÓô¦ÀíÆ÷µÄÓÅÊÆ¡£
±í 4 ÏÔʾÁËÿ¸öоƬµÄÏà¶ÔÍÆÀíÐÔÄܵ×Ïߣ¬°üÀ¨Á½¸ö¼ÓËÙÆ÷ vs. CPU µÄÖ÷»ú·þÎñÆ÷¿ªÏú£¬Õ¹Ê¾ÁËÕâÁù¸ö DNN Ó¦ÓÃÏà¶ÔÐÔÄܵļÓȨƽ¾ùÖµ£¬±íÃ÷ K80 оƬËÙ¶ÈÊÇ Haswell µÄ 1.9 ±¶£¬TPU оƬËÙ¶ÈÊÇ Haswell µÄ 29.2 ±¶£¬TPU оƬËÙ¶ÈÒ²¾ÍÊÇ GPU µÄ 15.3 ±¶¡£
±í 4£ºÔÚ DNN ¹¤×÷¸ºÔØÏ K80 GPU оƬºÍ TPU оƬÓë CPU µÄÐÔÄܱȡ£¼ÓȨƽ¾ùֵʹÓÃÁ˱í 1 ÖÐÁù¸ö app µÄʵ¼Ê»ìºÏ
ÐԼ۱ȡ¢È«ÖÜÆڳɱ¾£¨TCO£©¡¢ÐÔÄÜ£¯¹¦ºÄ
´óÅúÁ¿¹ºÂò¼ÆËã»úʱ»á¸ü¶àµØ¿¼ÂÇÐԼ۱ȶø·ÇÐÔÄÜ¡£Êý¾ÝÖÐÐÄ×îºÃµÄ³É±¾Ö¸±êÊÇÈ«ÖÜÆڳɱ¾£¨TCO£©¡£Ò»¸ö×éÖ¯£¨Èç¹È¸è£©¹ºÂòÊýǧÕÅоƬʱËùÖ§¸¶µÄʵ¼Ê¼Û¸ñÈ¡¾öÓÚÓëÏà¹ØÆóÒµµÄ̸ÅйµÍ¨¡£ÓÉÓÚÉæ¼°ÉÌÒµ»úÃÜ£¬ÎÒÃÇÎÞ·¨¹«¿ª´ËÀà¼Û¸ñÐÅÏ¢»òÊý¾Ý¡£µ«ÊÇ£¬¹¦ÂÊÓë TCO Ïà¹Ø£¬ÎÒÃÇ¿ÉÒÔ¹«¿ªÃ¿Ì¨·þÎñÆ÷µÄ¹¦ºÄÊý£¬Òò´ËÕâÀïÎÒÃÇʹÓÃÐÔÄÜ£¯¹¦ºÄ±È´úÌæÐÔÄÜ£¯TCO ±È¡£Õⲿ·ÖÎÒÃǶԱÈÁËÕû¸ö·þÎñÆ÷¶ø²»Êǵ¥¸öоƬ¡£
ͼ 4 ÏÔʾÁË K80 GPU ºÍ TPU Ïà¶ÔÓÚ Haswell CPU µÄƽ¾ùÐÔÄÜ/¹¦ºÄ±È¡£ÎÒÃǸø³öÁËÁ½ÖÖ²»Í¬µÄÐÔÄÜ/¹¦ºÄ±È¼ÆËã¡£ÎÒÃÇչʾÁËÁ½ÖÖ²»Í¬µÄÐÔÄÜ£¯¹¦ºÄ¼ÆËã·½·¨¡£µÚÒ»ÖÖ“total”°üÀ¨¼ÆËã GPU ºÍ TPU µÄÐÔÄÜ£¯¹¦ºÄʱÖ÷»ú CPU ·þÎñÆ÷ËùÏûºÄµÄ¹¦ÂÊ£»µÚ¶þÖÖ“incremental”´Ó GPU ºÍ TPU ÖмõÈ¥ÁËÖ÷»ú CPU ·þÎñÆ÷ËùÏûºÄµÄ¹¦ÂÊ¡£
ͼ 4£ºGPU ·þÎñÆ÷Óë CPU ·þÎñÆ÷µÄÐÔÄÜ/¹¦ºÄ¶Ô±È£¨À¶É«Ìõ£©¡¢TPU ·þÎñÆ÷Óë CPU ·þÎñÆ÷µÄ¹¦ºÄ¶Ô±È£¨ºìÉ«Ìõ£©¡¢TPU ·þÎñÆ÷Óë GPU ·þÎñÆ÷µÄ¹¦ºÄ¶Ô±È£¨³ÈÉ«Ìõ£©¡£TPU' ÊÇʹÓà K80 µÄ GDDR5 Äڴ潫 TPU ½øÐиĽøºóµÄоƬ
¶ÔÓÚ×ÜÐÔÄÜ/ÍßÌØ£¬K80 ·þÎñÆ÷ÊÇ Haswell µÄ2.1±¶¡£ ¶ÔÓÚÔöÁ¿ÐÔÄÜ/ÍßÌØ£¬µ±ºöÂÔ Haswell ·þÎñÆ÷µçԴʱ£¬K80 ·þÎñÆ÷ÊÇ Haswell µÄ 2.9 ±¶¡£TPU ·þÎñÆ÷µÄ×ÜÐÔÄÜ/ÍßÌØ±È Haswell Òª¸ß³ö34±¶£¬TPU ·þÎñÆ÷µÄÐÔÄÜ/¹¦ÂÊÒ²¾ÍÊÇ K80 ·þÎñÆ÷µÄ 16 ±¶¡£ ¶ÔÓÚ TPU À´Ëµ£¬Ïà±È CPU µÄÏà¶ÔÔöÁ¿ÐÔÄÜ/ÍßÌØÒԹȸèÉè¼Æ ASIC µÄˮƽÒѾ×öµ½ÁË 83 ±¶£¬Í¬Ê±Ò²¾ÍÊÇ GPU µÄÐÔÄÜ/ÍßÌصÄ29±¶¡£
¶ÔÌæ´úÐÔ TPU Éè¼ÆµÄÆÀ¹À
ºÍ FPU ÀàËÆ£¬TPU Ðͬ´¦ÀíÆ÷±È½ÏÈÝÒ×ÆÀ¹À£¬Òò´ËÎÒÃÇΪÁù¸öÓ¦Óô´½¨ÁËÒ»¸öÐÔÄÜÄ£ÐÍ¡£Ä£ÐÍÄ£ÄâµÄ½á¹ûºÍÓ²¼þʵ¼ÊÐÔÄܵÄƽ¾ù²î¾àСÓÚ 10%¡£
ÎÒÃÇʹÓÃÐÔÄÜÄ£ÐÍÆÀ¹ÀÁËÁíÒ»¿î¼ÙÏëµÄ TPU оƬ£¬¼ÇΪ TPU'£¨Ê¹ÓÃͬÑùµÄ°ëµ¼Ìå¼¼ÊõÔٶ໨ 15 ¸öÔÂÎÒÃǾÍÄÜÉè¼Æ³öÕâ¿îоƬ£©¡£¸ü¼¤½øµÄÂß¼ºÏ³ÉºÍÄ£¿éÉè¼Æ¿ÉÒÔ°ÑʱÖÓƵÂÊÔÙÌá¸ß 50%£»Îª GDDR5 ÄÚ´æÉè¼Æ½Ó¿Úµç·£¨¾ÍÏñ K80 ÄÇÑù£©¿ÉÒÔ½«È¨ÖضÁÈ¡µÄÄÚ´æ´ø¿íÌá¸ßËı¶£¬½« roofline ´Óбµ½Æ½µÄ¹Õµã´Ó 1350 ½µµ½ 250¡£
µ¥¶À½«Ê±ÖÓƵÂÊÌá¸ßµ½ 1,050 MHz ¶ø²»¸ÄÉÆÄÚ´æµÄ»°£¬ÐÔÄÜÌáÉý·Ç³£ÓÐÏÞ¡£Èç¹ûÎÒÃÇ°ÑʱÖÓƵÂʱ£³ÖÔÚ 700MHz£¬µ«¸ÄÓà GDDR5 ×÷ΪÄڴ棬Ôò¼ÓȨƽ¾ùÖµ·ÉÔ¾ÖÁ 3.9±¶¡£Í¬Ê±×öÕâÁ½ÖÖ´ëÊ©Æäʵ²¢²»»á¸Ä±äÐÔÄÜ£¬Òò´Ë¼ÙÉèµÄ TPU' Ö»¾ß±¸¸ü¿ìµÄÄÚ´æ¾Í¹»ÁË¡£
½« DDR3 ȨÖØÄÚ´æÌæ»»³ÉÓë K80 Ïàͬ GDDR5 ÄÚ´æÐèÒª½«ÄÚ´æͨµÀµÄÊýÁ¿·Ò»±¶£¬¼´ 4 ¸öͨµÀ¡£ÕâÒ»¸Ä½ø»áÐèÒª½«Ð¾Æ¬Ãæ»ýÀ©´óÔ¼ 10%¡£GDDR5 »¹ÐèÒª½« TPU ϵͳµÄ¹¦ÂÊÔ¤Ëã´Ó 861W Ìá¸ßµ½ 900W ×óÓÒ£¬ÒòΪÿ̨·þÎñÆ÷¶¼ÓÐËĸö TPU¡£
´Óͼ4¿É¿´³ö£¬TPU'µÄ×ÜÌåÿ¹èƬÐÔÄÜ£¯¹¦ºÄÊÇ Haswell µÄ 86 ±¶£¬K80 µÄ 41 ±¶¡£Æä incremental Ö¸±êÊÇ Haswell µÄ 196 ±¶£¬K80 µÄ 68 ±¶¡£
ÌÖÂÛ
Õⲿ·Ö°´ÕÕ Hennessy ºÍ Patterson µÄÃýÎó-ÏÝÚå-·´²µ¸ñʽÀ´Õ¹¿ª£º
ÃýÎó£ºÊý¾ÝÖÐÐÄµÄ DNN ÍƶÏÓ¦Óý«ÍÌÍÂÁ¿ºÍÏìӦʱ¼ä´¦ÓÚͬµÈÖØÒªµÄµØλ¡£
ÎÒÃǾªÑÈÓڹȸè TPU ¿ª·¢Õ߶ÔÏìӦʱ¼äÓÐÕâô¸ßµÄÒªÇó£¬2014 ÄêÓÐÈË͸¶˵µÄÊÇ£º¶ÔÓÚ TPU À´Ëµ£¬ÅúÁ¿´óСӦ¸Ã×ã¹»´ó£¬ÒÔµ½´ï TPU µÄ¼ÆËãÐÔÄÜ·åÖµ£¬¶ÔÑÓ³ÙµÄÒªÇó²»ÓÃÄÇô¿Á¿Ì¡£Ò»¸öÆðµ½Íƶ¯×÷ÓõÄÓ¦ÓÃÊÇÀëÏßͼÏñ´¦Àí£¬¹È¸è¿ª·¢ÕßµÄÖ±¾õÊÇ£¬Èç¹û½»»¥Ê½·þÎñÒ²ÐèÒª TPU£¬Ôò´ó²¿·Ö·þÎñÐèÒªÀÛ»ý×ã¹»´óµÄÅúÁ¿È»ºó²Å½»¸ø TPU ¼ÆËã¡£¼´Ê¹ 2014 Äê¹È¸è¹Ø×¢ÏìӦʱ¼ä£¨LSTM1£©µÄÓ¦Óÿª·¢Õ߳ƣ¬2014 ÄêµÄÏÞÖÆÊÇ 10ms£¬¶øÕæÕýÏò TPU ÒÆֲʱ 10ms ½«±»¼õÉÙÖÁ 7ms¡£ºÜ¶à´ËÀà·þÎñ¶Ô TPU µÄÒâÁÏÖ®ÍâµÄÒªÇó£¬ÒÔ¼°ËüÃǶԿìËÙÏìӦʱ¼äµÄÓ°ÏìºÍÆ«ºÃ£¬¸Ä±äÁËÕâ¸öµÈʽ¡£Ó¦ÓñàдÕßͨ³£»áÑ¡Ôñ½µµÍÑÓ³Ù£¬¶ø²»ÊÇÀÛ»ý¸ü´óµÄÅúÁ¿¡£ÐÒÔ˵ÄÊÇ£¬TPU ¾ß±¸Ò»¸ö¼òµ¥¡¢¿ÉÖظ´µÄÖ´ÐÐÄ£ÐÍ£¬À´Âú×ã½»»¥Ê½·þÎñµÄµÍÏìӦʱ¼äÒÔ¼°¸ß·åÖµÍÌÍÂÁ¿ÒªÇ󣬼´±ãÊǼÆËãÏà¶Ô½ÏСµÄÅúÁ¿Ê±Ò²±Èµ±Ç° CPU ºÍ GPU ¾ß±¸¸üºÃµÄÐÔÄÜ¡£
ÃýÎó£ºK80 GPU ¼Ü¹¹ºÜÊʺϽøÐÐ DNN ÍÆÀí¡£
ÎÒÃÇ·¢ÏÖ TPU ÔÚÐÔÄÜ¡¢Äܺĺͳɱ¾·½ÃæÓÅÓÚ K80 GPU ÓÐÎå¸ö·½ÃæµÄÔÒò¡£1¡¢TPU Ö»ÓÐÒ»¸ö´¦ÀíÆ÷£¬¶ø K80 ÓÐ 13 ¸ö£¬µ¥Ï̵߳±È»¸üÈÝÒ×Âú×ãÑϸñµÄÑÓ³ÙÄ¿±ê¡£2¡¢TPU ¾ß±¸Ò»¸ö·Ç³£´óµÄ¶þά³Ë·¨µ¥Ôª£¬GPU ÓÐ 13 ¸öСµÄһά³Ë·¨µ¥Ôª¡£DNN µÄ¾ØÕóÏà³ËÃܶÈÊʺ϶þάÕóÁÐÖеÄËãÊõÂß¼ÔËËãµ¥Ôª¡£3¡¢¶þάÕóÁл¹ÄÜͨ¹ý±ÜÃâ·ÃÎʼĴæÆ÷À´´Ù³ÉÂö¶¯Ê½µÄоƬʵÏÖ£¬½ÚÔ¼ÄÜÔ´¡£4¡¢TPU µÄÁ¿»¯Ó¦ÓÃʹÓà 8 λÕûÐÍ£¬¶ø²»ÊÇ GPU µÄ 32 λ¸¡µã£» K80 ²¢²»Ö§³Ö 8 λÕûÐÍ¡£Ê¹ÓøüСµÄÊý¾Ý£¬¸ÄÉƵIJ»½öÊǼÆËãÄܺģ¬»¹ÄÜËı¶»¯È¨ÖØ FIFO µÄÓÐЧÈÝÁ¿ºÍȨÖØÄÚ´æµÄÓÐЧ´ø¿í¡££¨¾¡¹ÜÍÆÀíʱʹÓõÄÊÇ 8 λÕûÐÍ£¬µ«ÑµÁ·ÕâЩӦÓÃʱ»á±£Ö¤ºÍʹÓø¡µãÒ»ÑùµÄ׼ȷÂÊ£©5¡¢TPU ºöÂÔ GPU ÐèÒª¶ø DNN ²»ÐèÒªµÄÌØÕ÷£¬´Ó¶øËõС TPU оƬ¡¢½ÚÔ¼Äܺġ¢ÎªÆäËû¸Ä½øÁôÏ¿ռ䡣TPU оƬµÄ´óС¼¸ºõÊÇ K80 µÄÒ»°ë£¬Í¨³£ÔËÐÐËùÐèÄÜÁ¿ÊǺóÕßµÄÈý·ÖÖ®Ò»£¬¶øËüµÄÄÚ´æÈ´ÊǺóÕßµÄ 3.5 ±¶¡£ÕâÎå¸öÒòËص¼Ö TPU ÔÚÄܺĺÍÐÔÄÜ·½ÃæÓÅÓÚ K80 GPU 30 ±¶¡£
ÏÝÚ壺ÔÚÉè¼ÆÁìÓòרÓüܹ¹Ê±²»¹Ë¼Ü¹¹ÀúÊ·¡£
²»ÊÊÓÃͨÓüÆËãµÄÏë·¨¿ÉÄÜÊʺÏÁìÓòרÓüܹ¹¡£¶ÔÓÚ TPU ¶øÑÔ£¬Èý¸öÖØÒªµÄ¼Ü¹¹ÌØÕ÷¿ÉÒÔ×·Ëݵ½ 1980 Äê´úÔçÆÚ£ºÂö¶¯ÕóÁУ¨systolic array£©¡¢½âñî·ÃÎÊ/Ö´ÐУ¨decoupled access/execute£©ºÍ¸´ÔÓµÄÖ¸Á¡£µÚÒ»¸öÌØÕ÷¼õÉÙÁË´óÐ;ØÕóÏà³Ëµ¥ÔªµÄÃæ»ýºÍÄܺģ»µÚ¶þ¸öÌØÕ÷ÔÚ¾ØÕóÏà³Ëµ¥ÔªÔËËãÆڼ䲢ÐлñȡȨÖØ£»µÚÈý¸öÌØÕ÷¸üºÃµØÀûÓà PCIe bus µÄÓÐÏÞ´ø¿íÀ´·¢ËÍÖ¸Áî¡£Òò´Ë£¬¶Ô¼ÆËã»ú¼Ü¹¹ÀúÊ·±È½ÏÁ˽âµÄÁìÓòרÓüܹ¹Éè¼Æʦ¾ß±¸¾ºÕùÓÅÊÆ¡£
ÃýÎó£ºÈç¹û¹È¸è¶Ô CPU µÄʹÓøü¼Ó¸ßЧ£¬ËüµÃµ½µÄ½á¹û½«¿ÉÒÔæÇÃÀ TPU¡£
ÓÉÓÚÓÐЧʹÓà CPU µÄ¸ß¼¶ÏòÁ¿À©Õ¹£¨AVX2£©¶ÔÕûÐͼÆËã×ö¸ßЧµÄÖ§³ÖÐèÒª´óÁ¿¹¤×÷£¬×î³õÔÚ CPU ÉÏÖ»ÓÐÒ»¸ö DNN ÓÐ 8 λÕûÐ͵ÄÐÔÄܲâÊÔ½á¹û£¬ËüµÄÐÔÄÜÌáÉý´óÔ¼ÊÇ 3.5 ±¶¡£ËùÓÐµÄ CPU ÐÔÄÜÆÀ¹À¶¼»ùÓÚ¸¡µãµÄ¼ÆËãÐÔÄÜÀ´Õ¹Ê¾»á¸üÃ÷È·£¨Ò²²»»áռ̫¶àͼ±í¿Õ¼ä£©£¬Ò²¾ÍûÓиøÕâ¸öÕûÐͼÆËã½á¹û»æÖƵ¥¶ÀµÄ Roofline ͼ¡£Èç¹ûËùÓÐ DNN ¶¼Äܹ»µÃµ½ÀàËƵļÓËÙ£¬TPU ´øÀ´µÄÐÔÄÜ/¹¦ºÄ±ÈÌáÉý½«·Ö±ð´Ó 41 ±¶ºÍ 83 ±¶½µÎª 12 ±¶ºÍ 24 ±¶¡£
ÃýÎó£ºÈç¹û¹È¸èʹÓúÏÊʵÄа汾£¬GPU ½á¹û½«Óë TPU ²î²»¶à¡£
±í 3 ±¨¸æÁË·¢²¼ GPU ºÍ¿Í»§ºÎʱ¿ÉÒÔÔÚÔÆÖÐʹÓà GPU µÄÇø±ð¡£Óë½ÏÐ嵀 GPU ½øÐй«Æ½±È½Ï½«°üÀ¨Ð嵀 TPU£¬¶ø¶ÔÓÚ¶îÍâÔö¼ÓµÄ 10W ¹¦ºÄ£¬ÎÒÃÇÖ»ÐèʹÓà K80 µÄ GDDR5 ÄÚ´æ¾Í¿ÉÒÔ½« 28 ÄÉÃס¢0.7GHz¡¢40W TPU µÄÐÔÄÜÌá¸ßÈý±¶¡£°Ñ TPU Òƶ¯µ½ 16 ÄÉÃ×¹¤ÒÕ½«½øÒ»²½Ìá¸ßÆäÐÔÄÜ/¹¦ºÄ¡£16 ÄÉÃ×Ӣΰ´ï Pascal P40 GPU µÄ·åÖµÐÔÄÜÊǵÚÒ»´úTPU µÄÒ»°ë£¬µ«Ëü 250 ÍßµÄÄܺÄÈ´ÊÇÔÀ´µÄºÜ¶à±¶¡£ÈçÇ°ËùÊö£¬È±·¦´íÎó¼ì²âÒâζ×Å Google ÎÞ·¨ÔÙÈ¥Êý¾ÝÖÐÐIJ¿Êð P40£¬Òò´ËÎÞ·¨ÔÚËüÃÇÉíÉÏÔËÐÐÉú²ú¹¤×÷¸ºÔØÀ´È·¶¨Æäʵ¼ÊÏà¶ÔÐÔÄÜ¡£
Ïà¹ØÑо¿
Á½Æª½éÉÜ DNN ASIC µÄÑо¿ÎÄÕÂÖÁÉÙ¿ÉÒÔ×·Ëݵ½ 20 ÊÀ¼Í 90 Äê´ú³õ¡£Èç 2016 ÄêµÄ ACM ͨѶÖÐËùÊö£¬DianNao ¼Ò×åÓÐËÄÖÖ DNN ¼Ü¹¹£¬Í¨¹ý¶Ô DNN Ó¦ÓóÌÐòÖеÄÄÚ´æ·ÃÎÊģʽÌṩÓÐЧµÄ¼Ü¹¹Ö§³Ö£¬¿ÉÒÔ×î´óÏ޶ȵؼõÉÙƬÉϺÍÍⲿ DRAM µÄÄÚ´æ·ÃÎÊ¡£×î³õµÄ DianNao ʹÓà 64 ¸ö 16 λÕûÊý³Ë·¨ÀÛ¼Óµ¥ÔªµÄÕóÁС£
¹È¸è TPU 3.0 ÓÚ½ñÄê 5 ÔÂÍƳö£¬Æ书ÄÜÊÇ TPU 2.0 µÄ°Ë±¶£¬ÐÔÄܸߴï 100petaflops£¬Ð¾Æ¬Ê¹ÓÃÒºÌåÀäȴΪ DNN Éè¼ÆÌض¨ÁìÓò¼Ü¹¹ÈÔÈ»ÊǼÆËã»ú¼Ü¹¹Ê¦µÄÈÈÃÅ»°Ì⣬ÆäÖÐÒ»¸ö½¹µãÊÇÏ¡Êè¾ØÕóµÄ¼ÆËã¼Ü¹¹£¬ÕâÊÇÔÚ 2015 Äê TPU Ê״β¿ÊðÖ®ºóÌá³öµÄ¡£
Efficient Inference Engine£¨¸ßЧÍÆÀí»ú£©ÖÐÓÐÒ»²½µ¥¶ÀµÄ³õʼɨÃ裬Ëü»á¹ýÂËÈ¥µô·Ç³£Ð¡µÄÖµ£¬½«È¨ÖØÊýÁ¿¼õÉÙµ½ 1/10 ×óÓÒ£¬È»ºóʹÓùþ·òÂü±àÂë½øÒ»²½ËõСÊý¾ÝÒÔÌá¸ßÍÆÀíµÄÐÔÄÜ¡£Cnvlutin ÂÔÈ¥Á˼¤»îÊäÈëΪÁãʱµÄ³Ë·¨ÔËË㣬ÕâÖÖ¼ÆËã³öÏֵļ¸ÂÊ¿ÉÒÔ´ïµ½ 44%£¬²¿·ÖÔÒòÊÇ·ÇÏßÐԱ任º¯Êý ReLU »á°ÑÊäÈëµÄ¸ºÖµ×ª»»ÎªÁ㣻ÕâÖÖÂÔÈ¥¼ÆËãµÄ×ö·¨Ê¹Æ½¾ùÐÔÄÜÌá¸ßÁË 1.4 ±¶¡£
Eyeriss ÊÇÒ»ÖÖÐÂÓ±µÄµÍ¹¦ºÄÊý¾ÝÁ÷¼Ü¹¹£¬Í¨¹ýÓγ̱àÂëÀûÓÃÊý¾ÝÖеÄÁãÀ´¼õÉÙÄÚ´æÕ¼Ó㬲¢Í¨¹ý±ÜÃâÊäÈëΪÁãʱµÄ¼ÆËãÀ´½ÚÊ¡Äܺġ£Minerva ÊÇÒ»ÖÖ¿çËã·¨¡¢½á¹¹ºÍµç·ѧ¿ÆµÄÐͬÉè¼Æϵͳ£¬Í¨¹ýÁ¿»¯Êý¾ÝÒÔ¼°¶Ô½ÏСµÄ¼¤»îº¯Êý¼ôÖ¦µÄ·½Ê½°Ñ¹¦ºÄ½µµÍµ½ÔÀ´µÄ 1/8¡£ÕâÖÖϵͳÔÚ 2017 ÄêÕ¹³öµÄ³É¹ûÊÇ SCNN——Ò»ÖÖÏ¡ÊèºÍѹËõ¾í»ýÉñ¾ÍøÂçµÄ¼ÓËÙÆ÷¡£È¨Öغͼ¤»îº¯Êý¶¼±»Ñ¹ËõÔÚ DRAM ºÍÄÚ²¿»º³åÆ÷ÖУ¬´Ó¶ø¼õÉÙÁËÊý¾Ý´«ÊäËùÐèµÄʱ¼äºÍÄÜÁ¿£¬²¢ÔÊÐíоƬ´æ´¢¸ü´óµÄÄ£ÐÍ¡£
2016 ÄêÒÔÀ´µÄÁíÒ»¸öÇ÷ÊÆ£¬ÊÇÓÃÓÚѵÁ·µÄÌض¨ÁìÓò¼Ü¹¹¡£ÀýÈ磬ScaleDeep ¾ÍÊÇΪ DNN ѵÁ·ºÍÍÆÀíÉè¼ÆµÄ¸ßÐÔÄÜ·þÎñÆ÷µÄÒ»´Î³¢ÊÔ£¬Ëü°üº¬Êýǧ¸ö´¦ÀíÆ÷¡£ÆäÖеÄÿ¿éоƬ¶¼ÒÔ 3£º1 µÄ±ÈÀý°üº¬¼ÆËãרÓÃÄ£¿éºÍ´æ´¢×¨ÓÃÄ£¿é£¬ÐÔÄÜÓÅÓÚ GPU 6-28 ±¶¡£ËüÖ§³Ö 16 λ»ò 32 λ¸¡µã¼ÆË㡣оƬͨ¹ýÓë DNN ͨÐÅģʽƥÅäµÄ¸ßÐÔÄÜ»¥Á¬ÍØÆËÁ¬½Ó¡£ºÍ SCNN Ò»Ñù£¬ÕâÖÖÍØÆËÖ»ÔÚ CNN ÉÏÆÀ¹À¡£2016 Ä꣬CNN ½öÕ¼¹È¸èÊý¾ÝÖÐÐÄ TPU ¹¤×÷Á¿µÄ 5%¡£¼ÆËã»ú¼Ü¹¹Ê¦ÆÚ´ý¶ÔÆäËüÀàÐ굀 DNN ºÍÓ²¼þʵÏÖ½øÐÐ ScaleDeep ÆÀ¹À¡£
DNN ËƺõÊÇ FPGA ×÷ΪÊý¾ÝÖÐÐļÆËãƽ̨µÄÒ»¸öÁ¼ºÃÓÃÀý¡£Êµ¼Ê²¿ÊðµÄÒ»¸öÀý×ÓÊÇ Catapult¡£¾¡¹Ü Catapult ÊÇÔÚ 2014 Ä깫¿ª·¢²¼µÄ£¬µ«ËüÓë TPU ÊÇͬһ¸öʱ´úµÄ£¬ÒòΪ 2015 ÄêÔÚ΢ÈíÊý¾ÝÖÐÐIJ¿ÊðÁË 28 ÄÉÃ× Stratix V FPGA£¬Óë¹È¸è²¿Êð TPU ²î²»¶àÔÚͬһʱ¼ä¡£Catapult ÔËÐÐ CNN ±ÈÆÕͨ·þÎñÆ÷¿ì 2.3 ±¶¡£Ò²Ðí Catapult ºÍ TPU ×îÏÔÖøµÄÇø±ðÔÚÓÚ£¬ÎªÁË»ñµÃ×î¼ÑÐÔÄÜ£¬Óû§±ØÐëʹÓõͼ¶Ó²¼þÉè¼ÆÓïÑÔ Verilog Ϊ FPGA ±àд³¤³ÌÐò£¬¶ø²»ÊÇʹÓø߼¶ TensorFlow ¿ò¼Ü±àд¶Ì³ÌÐò£»Ò²¾ÍÊÇ˵£¬“¿ÉÔÙ±à³ÌÐÔ”£¨re-programmability£©À´×ÔÓÚ TPU µÄÈí¼þ£¬¶ø²»ÊÇ×î¿ì FPGA µÄ¹Ì¼þ¡£
×ܽá
¾¡¹Ü TPU ÔÚ I/O ×ÜÏßÉÏ£¬²¢ÇÒÄÚ´æ´ø¿íÏà¶ÔÓÐÏÞÏÞÖÆÁËËü·¢»ÓÈ«²¿Ð§ÄÜ£¨Áù¸ö DNN Ó¦ÓóÌÐòÖÐÓÐËĸöÊÜÏÞÓÚÄڴ棩£¬µ«Ò»¸öºÜ´óµÄÊý¼´±ã²ðµ½ºÜϸ£¬²ðµ½Ã¿¸öÖÜÆÚ 65536 ´Î³Ë·¨ÀÛ¼Ó¼ÆË㣬ÈÔÈ»ÊÇÒ»¸öÏà¶Ô½Ï´óµÄÊý×Ö£¬Èç roofline ÐÔÄÜÄ£ÐÍËùʾ¡£Õâ¸ö½á¹û±íÃ÷£¬Amdahl ¶¨ÂɵÄÆäʵÓÐÒ»¸ö·Ç³£ÓмÛÖµµÄÍÆÂÛ——´óÁ¿Á®¼Û×ÊÔ´µÄµÍЧÀûÓÃÈÔÈ»¿ÉÒÔÌṩÆľßÐԼ۱ȵĸßÐÔÄÜ¡£
ÎÒÃÇÁ˽⵽£¬ÍÆÀíÓ¦ÓþßÓÐÑϸñµÄÏìӦʱ¼äÏÞÖÆ£¬ÒòΪËüÃÇͨ³£ÊÇÃæÏòÓû§µÄÓ¦Óã»Òò´Ë£¬Îª DNN Éè¼Æ¼ÆËãоƬµÄÉè¼ÆʦÃÇÐèÒª±£Ö¤Âú×ã 99% Çé¿öϵÄʱ¼äÏÞÖÆÒªÇó¡£
TPU оƬÀûÓÃÆäÔÚ MAC ºÍƬÉÏÄÚ´æµÄÓÅÊÆÔËÐÐʹÓÃÌض¨ÁìÓò TensorFlow ¿ò¼Ü±àдµÄ¶Ì³ÌÐò£¬¸Ã TensorFlow ¿ò¼Ü±È K80 GPU оƬ¿ì 15 ±¶£¬Òò´ËÄÜ»ñµÃ 29 ±¶µÄÐÔÄÜ/¹¦ºÄÓÅÊÆ£¬ÕâÓëÐÔÄÜ/×ÜÓµÓгɱ¾Ïà¹Ø¡£Óë Haswell CPU оƬÏà±È£¬¶ÔÓ¦µÄ±ÈÂÊ·Ö±ðΪ 29 ºÍ 83 ±¶¡£
ÓÐÎå¸ö¼Ü¹¹ÒòËØ¿ÉÒÔ½âÊÍÕâÖÖÐÔÄܲî¾à£º
´¦ÀíÆ÷¡£TPUÖ»ÓÐÒ»¸ö´¦ÀíÆ÷£¬¶øK80ÓÐ13¸ö£¬CPUÓÐ18¸ö£»µ¥Ïß³Ìʹϵͳ¸üÈÝÒ×±£³ÖÔڹ̶¨µÄÑÓ³ÙÏÞÖÆÄÚ¡£
´óÐͶþά³Ë·¨µ¥Ôª¡£TPUÓÐÒ»¸ö·Ç³£´óµÄ¶þά³Ë·¨µ¥Ôª£¬¶øCPUºÍGPU·Ö±ðÖ»ÓÐ18¸öºÍ13¸ö½ÏСµÄһά³Ë·¨µ¥Ôª£»¶þάӲ¼þÔÚ¾ØÕó³Ë·¨ÖÐÓкܺõÄÐÔÄÜ¡£
Âö¶¯ÕóÁС£¶þά×éÖ¯Ö§³ÖÂö¶¯ÕóÁУ¬¼õÉټĴæÆ÷·ÃÎʺÍÄÜÁ¿ÏûºÄ¡£
8λÕûÐÍ¡£TPUµÄÓ¦ÓÃʹÓà 8 λÕûÐͶø²»ÊÇ 32 λ¸¡µãÔËËãÀ´Ìá¸ß¼ÆËãºÍÄÚ´æЧÂÊ¡£
ÆúµôµÄÌØÕ÷¡£TPU·ÅÆúÁË CPU ºÍ GPU ÐèÒªµ«ÊÇ DNN Óò»µ½µÄ¹¦ÄÜ£¬ÕâʹµÃ TPU ¸ü±ãÒË£¬Í¬Ê±¿ÉÒÔ½ÚÔ¼×ÊÔ´£¬²¢ÔÊÐí¾§Ìå¹Ü±»ÖØÐÂÓÃÓÚÌض¨ÁìÓòµÄ°åÔØÄÚ´æ¡£
ËäȻδÀ´µÄ CPU ºÍ GPU ÔÚÔËÐÐÍÆÀíʱËٶȸü¿ì£¬µ«ÊÇʹÓà circa-2015 ÐÍ GPU ÄÚ´æÖØÐÂÉè¼ÆµÄ TPU ½«±ÈÔÀ´¿ìÈý±¶£¬²¢Ê¹ÆäÐÔÄÜ/¹¦ºÄÓÅÊÆ·Ö±ðΪ K80 ºÍ Haswell µÄ 70 ±¶ºÍ 200 ±¶¡£
ÖÁÉÙÔÚ¹ýȥʮÄêÖУ¬¼ÆËã»ú¼Ü¹¹Ñо¿ÈËÔ±·¢²¼µÄ´´Ð³ɹû¶¼ÊÇÀ´×ÔÄ£Äâ¼ÆËãµÄ£¬ÕâЩ³É¹ûʹÓÃÁËÓÐÏ޵Ļù×¼£¬¶ÔÓÚͨÓô¦ÀíÆ÷µÄ¸Ä½øÒ²Ö»ÓÐ 10% »ò¸üÉÙ£¬¶øÎÒÃÇÏÖÔÚ±¨¸æµÄÐÔÄÜÌáÉýÊÇÔÀ´µÄÊ®±¶²»Ö¹£¬ÕâÊÇÓ¦ÓÃÓÚÕæʵÉú²úÓ¦ÓõÄÕæʵӲ¼þÖв¿ÊðµÄÌض¨ÁìÓò¼Ü¹¹µÄÊÕÒæ¡£
ÉÌÒµ²úÆ·Ö®¼äµÄÊýÁ¿¼¶²îÒìÔÚ¼ÆËã»ú¼Ü¹¹ÖкÜÉÙ¼û£¬¶øÕâÉõÖÁ¿ÉÄܵ¼Ö TPU ³ÉΪ¸ÃÁìÓòδÀ´¹¤×÷µÄµä·¶¡£ÎÒÃÇÔ¤¼Æ£¬ÆäËûÈËÒ²»á¸ú½øÕâ¸ö·½Ïò£¬²¢½«Ãż÷ÌáµÃ¸ü¸ß¡£
|
Ê×Ò³|¹ØÓÚлá|±±ÎïÁª»î¶¯|»áÔ±·þÎñ|ÎïÁª·äȺ|´´¿Í¿Õ¼ä|»áÔ±µ¥Î»|ÁªÏµÎÒÃÇ
µç»°£º010-66095089 µØÖ·£º±±¾©ÊÐÎ÷³ÇÇø¸´ÐËÃÅÄÚ´ó½Ö45ºÅÔº ¾©ICP±¸17049596ºÅ
±¾Õ¾ÓÉÖÆ×÷ά»¤