
åã¯ã©ãŠãTPUããã€ã¹ã¯ã4ã€ã®ãTPUv2ããããã§æ§æãããŠããŸãã ãããã«ã¯16 GBã®ã¡ã¢ãªãš2ã€ã®ã³ã¢ããããåã³ã¢ã«ã¯ãããªãã¯ã¹ä¹ç®çšã®2ã€ã®ãŠãããããããŸãã åãããŠã2ã€ã®ã³ã¢ã¯45 TFLOPSãåºåããåèš180 TFLOPSãšTPUããã64 GBã®ã¡ã¢ãª
ç§ãã¡ã®ã»ãšãã©ã¯ãNvidia GPUã§è©³çŽ°ãªãã¬ãŒãã³ã°ãæäŸããŠããŸãã çŸåšã代æ¿æ段ã¯ã»ãšãã©ãããŸããã Google Tensor Processing UnitïŒTPUïŒã¯ã深局åŠç¿ã®ããã«ç¹å¥ã«èšèšããããããã§ãããéããçãã¯ãã§ãã
2é±éåã®æåã®çºè¡šãã9ãæåŸãGoogleã¯ããããTPUv2ããªãªãŒã¹ããGoogle Cloudãã©ãããã©ãŒã ã®æåã®ããŒã¿ãã¹ã¿ãŒãå©çšã§ããããã«ããŸããã RiseMLã§ç§ãã¡ã¯ãã®æ©äŒãå©çšããŠãããã€ãã®ç°¡åãªãã³ãããŒã¯ãè¿œãåºããŸããã çµéšãšäºåçãªçµæãå ±æããããšæããŸãã
é·ãéãç§ãã¡ã¯ãã£ãŒãã©ãŒãã³ã°çšæ©åšã®åžå Žã§ã®ç«¶äºã®åºçŸãåŸ ã£ãŠããŸããã Nvidiaã®ç¬å ãç Žããå°æ¥ã®ãã£ãŒãã©ãŒãã³ã°ã€ã³ãã©ã¹ãã©ã¯ãã£ãã©ã®ããã«ãªãããå€æããå¿ èŠããããŸãã
TPUã¯ãŸã åæã®ããŒã¿çã§ãããGoogleãæ確ãã€æ®éçã«ç§ãã¡ã«ãããæãåºãããã®ã§ãè°è«ãããè©äŸ¡ã®äžéšã¯å°æ¥å€æŽãããå¯èœæ§ãããããšã«çæããŠãã ããã
Google Cloudã®TPU
TPUv1ãããã®ç¬¬1äžä»£ã¯ããŒã¿åºåã®é«éåã«çŠç¹ãåœãŠãŠããŸããããçŸåšã®ç¬¬2äžä»£ã¯äž»ã«åŠç¿ã®é«éåã«çŠç¹ãåœãŠãŠããŸãã TPUv2ã®äžå¿ã«ã¯ãè¡åã®ä¹ç®ãæ åœããã·ã¹ããªãã¯ã¢ã¬ã€ããããããã¯ãã£ãŒãã©ãŒãã³ã°ã§ç©æ¥µçã«äœ¿çšãããŠããŸãã Jeff Deanã®ã¹ã©ã€ãã«ãããšãåCloud TPUããã€ã¹ã¯4ã€ã®ãTPUv2ããããã§æ§æãããŠããŸãã ãããã«ã¯16 GBã®ã¡ã¢ãªãš2ã€ã®ã³ã¢ããããåã³ã¢ã«ã¯ãããªãã¯ã¹ä¹ç®çšã®2ã€ã®ãŠãããããããŸãã 2ã€ã®ã³ã¢ãåãããŠ45 TFLOPSãçæããåèš180 TFLOPSãšTPUããã64 GBã®ã¡ã¢ãªãæäŸããŸãã æ¯èŒã®ããã«ãçŸåšã®äžä»£ã®Nvidia V100ã«ã¯125 TFLOPSãš16 GBã®ã¡ã¢ãªãããªãã
Google Cloudãã©ãããã©ãŒã ã§ãã³ãœã«ããã»ããµã䜿çšããã«ã¯ãCloud TPUãå®è¡ããå¿ èŠããããŸãïŒä»¥åã«å²ãåœãŠãåãåã£ãŠããŸããïŒã Cloud TPUãç¹å®ã®ä»®æ³ãã·ã³ã€ã³ã¹ã¿ã³ã¹ã«å²ãåœãŠãå¿ èŠã¯ãããŸããïŒå¯èœæ§ããããŸããïŒã 代ããã«ãã€ã³ã¹ã¿ã³ã¹ããã®TPUã¢ã¯ã»ã¹ã¯ãããã¯ãŒã¯çµç±ã§ãã åã¯ã©ãŠãTPUã«ã¯ååãšIPã¢ãã¬ã¹ãå²ãåœãŠãããŸãããããã¯TensorFlowã³ãŒãã§æå®ããå¿ èŠããããŸãã

æ°ããã¯ã©ãŠãTPUãäœæããŸãã IPã¢ãã¬ã¹ãããããšã«æ³šæããŠãã ããã GIFã¢ãã¡ãŒã·ã§ã³
TPUã¯TensorFlowããŒãžã§ã³1.6ã§ã®ã¿ãµããŒããããŠããããªãªãŒã¹åè£ã¹ããŒã¿ã¹ã®ãŸãŸã§ãã ããã«ãå¿ èŠãªãã¹ãŠã®ã³ãŒããTensorFlowã«å«ãŸããŠãããããVMã«ãã©ã€ããŒã¯å¿ èŠãããŸããã TPUã§å®è¡ããããã®ã³ãŒãã¯ãTensorFlowã®äžéšã§ãããXLA JITã³ã³ãã€ã©ãŒã«ãã£ãŠæé©åããã³ã³ã³ãã€ã«ãããŸãã
TPUãå¹æçã«äœ¿çšããã«ã¯ãã³ãŒãã¯Estimatorã¯ã©ã¹ã®é«ã¬ãã«ã®æœè±¡åã«åºã¥ããŠããå¿ èŠããããŸãã 次ã«ã TPUEstimatorã¯ã©ã¹ã«é²ã¿ãŸããTPUEstimatorã¯ã©ã¹ã¯ãTPUãå¹æçã«äœ¿çšããããã«å¿ èŠãªå€ãã®ã¿ã¹ã¯ãå®è¡ããŸãã ããšãã°ãTPUã®ããŒã¿ãã¥ãŒãæ§æããã³ã¢éã®èšç®ã䞊ååããŸãã TPUEstimatorã䜿çšããã«å®è¡ããæ¹æ³ã¯ééããªããããŸããããã®ãããªäŸãããã¥ã¡ã³ãã¯ãŸã ããã£ãŠããŸããã
ãã¹ãŠãèšå®ãããããéåžžã©ããTensorFlowã³ãŒããå®è¡ããŸãã TPUã¯ããŒãæã«æ€åºãããèšç®ã¹ã±ãžã¥ãŒã«ãã³ã³ãã€ã«ãããŠè»¢éãããŸãã èå³æ·±ãããšã«ãTPUã¯ã¯ã©ãŠãã¹ãã¬ãŒãžã³ã³ãããŒã«ãã€ã³ããšæŠèŠïŒã€ãã³ãæŠèŠïŒãçŽæ¥èªã¿æžãããããšãã§ããŸãã ãããè¡ãã«ã¯ãã¯ã©ãŠãTPUã¢ã«ãŠã³ãã§ã¯ã©ãŠãã¹ãã¬ãŒãžãžã®èšé²ãæå¹ã«ããå¿ èŠããããŸãã
ãã³ãããŒã¯
ãã¡ãããæãèå³æ·±ãã®ã¯ããã³ãœã«ããã»ããµã®å®éã®ããã©ãŒãã³ã¹ã§ãã GitHubã®TensorFlowãªããžããªã«ã¯ã å®èšŒæžã¿ã§æé©åãããTPUã¢ãã«ã®ã¹ã€ãŒãããããŸã ã 以äžã¯ResNetãšInceptionã®å®éšçµæã§ãã ãŸããTPUçšã«æé©åãããŠããªãã¢ãã«ãã©ã®ããã«èšç®ããããã確èªãããã®ã§ã ã¢ãã«ãé©å¿ãããŠãé·æçæèšæ¶ïŒLSTMïŒã®ã¢ãŒããã¯ãã£äžã®ããã¹ããTPUã§å®è¡ããããåé¡ããŸããã å®éãGoogleã¯ãã倧ããªã¢ãã«ã®äœ¿çšãæšå¥šããŠããŸãïŒ ãTPUã䜿çšããã¿ã€ãã³ã°ããåç §ïŒã ã¢ãã«ãå°ããã®ã§ãTPUãå©ç¹ããããããã©ããã確èªããã®ã¯ç¹ã«èå³æ·±ãã§ãã
ãã¹ãŠã®ã¢ãã«ã«ã€ããŠã1ã€ã®Cloud TPUãš1ã€ã®Nvidia P100ããã³V100 GPUã®åŠç¿é床ãæ¯èŒããŸããã å®å šãªæ¯èŒã«ã¯ã垯åå¹ ã ãã§ãªããã¢ãã«ã®æçµçãªå質ãšåæã®æ¯èŒãå«ããå¿ èŠãããããšã«æ³šæããŠãã ããã ç§ãã¡ã®å®éšã¯åãªãè¡šé¢çãªæåã®ãã³ãããŒã¯ã§ãããå°æ¥ã®ããã«è©³çŽ°ãªåæãæ®ããŸãã
TPUããã³P100ã®ãã¹ãã¯ãn1-standard-16 Google Cloudãã©ãããã©ãŒã ïŒ16åã®Intel Haswellä»®æ³CPUã60 GBã¡ã¢ãªïŒã®ã€ã³ã¹ã¿ã³ã¹ã§å®è¡ãããŸããã V100 GPUã§ã¯ãAWSäžã®p3.2xlargeã€ã³ã¹ã¿ã³ã¹ã䜿çšãããŸãã ïŒ8ã€ã®ä»®æ³CPUã60 GBã®ã¡ã¢ãªïŒã Ubuntu 16.04ã®äžã®ãã¹ãŠã®ã·ã¹ãã ã TPUã®å ŽåãTensorFlow 1.6.0-rc1ã¯PyPiãªããžããªããã€ã³ã¹ããŒã«ãããŸããã GPUã®ãã¹ãã¯ãCUDA 9.0ããã³cuDNN 7.0ã®ãµããŒããå«ããTensorFlow 1.5ã€ã¡ãŒãžïŒ tensorflowïŒ1.5.0-gpu-py3 ïŒãå«ãnvidia- dockerã³ã³ãããŒããå®è¡ãããŸããã
TPUæé©åã¢ãã«
ãŸããå ¬åŒã«TPUçšã«æé©åãããã¢ãã«ã®ããã©ãŒãã³ã¹ãèŠãŠã¿ãŸãããã 以äžã«ç€ºãããã©ãŒãã³ã¹ã¯ã1ç§éã«åŠçãããç»åã®æ°ã§ãã

ããã±ãŒãžãµã€ãºïŒTPUã§ã¯1024ãGPUã§ã¯128ã åŸè ã®å Žåã圌ãã¯TensorFlow ãã³ãããŒã¯ãªããžããªããå®è£ ãååŸããŸããã ãã¬ãŒãã³ã°ããŒã¿ãšããŠãã¯ã©ãŠãã¹ãã¬ãŒãžïŒTPUã®å ŽåïŒããã³ããŒã«ã«ãã©ã€ãïŒGPUã®å ŽåïŒã§Googleã®ImageNetããŒã¿ã»ãããã·ãã¥ã¬ãŒãããŸã
ResNet-50ã§ã¯ã1ã€ã®Cloud TPUãã³ãœã«ããã»ããµïŒ8ã³ã¢ãš64 GBã®RAMïŒããP100ã®çŽ8.4å ãV100ã®çŽ5.1åã®é床ã§ããã InceptionV3ã®å Žåãããã©ãŒãã³ã¹ã®éãã¯ã»ãŒåãã§ãïŒããããã8.4ããã³ã4.8ïŒã 粟床ãäœãïŒfp16ïŒèšç®ã§ã¯ãV100ã¯éåžžã«é«éã§ãã

é床ã«å ããŠãäŸ¡æ Œãèæ ®ããå¿ èŠãããããšã¯æããã§ãã ãã®è¡šã¯ãæ¯ç§ã®è«æ±ããšã«äŸ¡æ Œã§æ£èŠåãããããã©ãŒãã³ã¹ã瀺ããŠããŸãã TPUã¯äŸç¶ãšããŠæ確ã«åã¡ãŸãã
ã«ã¹ã¿ã ã¢ãã«LSTM
ã«ã¹ã¿ã ã¢ãã«ã¯ã1024åã®é衚瀺ãŠããããæã€ããã¹ããåé¡ããããã®åæ¹åLSTMã§ãã LSTMã¯ææ°ã®ãã¥ãŒã©ã«ãããã¯ãŒã¯ã®äž»èŠãªæ§æèŠçŽ ã§ãããããããã¯å ¬åŒã®ãã·ã³ããžã§ã³ã¢ãã«ã«è¿œå ããã®ã«é©ããŠããŸãã
å ã®ã³ãŒãã¯æ¢ã«Estimatorãã¬ãŒã ã¯ãŒã¯ã䜿çšããŠãããããTPUEstimatorã«ç°¡åã«é©åãããããšãã§ããŸãã 倧ããªæ³šæç¹ã1ã€ãããŸããTPUã§ã¯ã ã¢ãã«ã®åæãéæã§ããŸããã§ããããåãã¢ãã«ïŒãã±ãããµã€ãºãªã©ïŒãGPUã§æ£åžžã«æ©èœããŸããã ããã¯äœããã®ä¿®æ£ããããã°ã«ãããã®ã ãšæããŸã-ç§ãã¡ã®ã³ãŒãïŒèŠã€ããå Žåã¯ãç¥ãããã ããïŒïŒãŸãã¯TensorFlowã®ããããã§ãã
TPUã¯LSTMã¢ãã«ïŒ21402ãµã³ãã«/ç§ïŒã®ããã©ãŒãã³ã¹ãããã«å€§å¹ ã«åäžãããããšãå€æããŸããïŒP100ïŒ1658ãµã³ãã«/ç§ïŒã®çŽ12.9å ãV100ïŒ2778ãµã³ãã«ïŒã®çŽ7.7åã®é床/ sïŒïŒ ã¢ãã«ãæ¯èŒçå°ãããæé©åãããŠããªãããšãèãããšãããã¯éåžžã«ææãªçµæã§ãã ãã ãããã°ãä¿®æ£ããããŸã§ããããã®çµæã¯æ«å®çãªãã®ãšã¿ãªãããŸãã
ãããã«
ãã¹ããããã¢ãã«ã§ã¯ãææ°äžä»£ã®GPUãšæ¯èŒããŠãããã©ãŒãã³ã¹ãšã³ã¹ãåæžã®äž¡æ¹ã®é¢ã§TPUãéåžžã«åªããããã©ãŒãã³ã¹ãçºæ®ããŸããã ããã¯ä»¥åã®æšå®ãšççŸããŸãã

以åã®ãã³ãããŒã¯ã®çµæã ãœãŒã¹ïŒ ãã©ãŒãã¹
Google 㯠TPUã倧èŠæš¡ã¢ãã«ã®ã¹ã±ãŒãªã³ã°ã«æé©ãªãœãªã¥ãŒã·ã§ã³ãšããŠæšå¥šããŠããŸãããå°èŠæš¡ã¢ãã«ã«é¢ããäºåçãªçµæã¯éåžžã«ææã§ãã äžè¬ã«ãTPUã®äœ¿çšãšTensorFlowã³ãŒãã®é©å¿ã®çµéšã¯ãããŒã¿çã«ã¯ãã§ã«é©ããŠããŸãã
TPUãããå€ãã®èŠèŽè ã«å©çšå¯èœã«ãªããšãTPUã¯Nvidia GPUã®çã®ä»£æ¿åã«ãªããšèããŠããŸãã