|
AI¿ª·¢´óһͳ£º¹È¸èOpenXLA¿ªÔ´£¬ÕûºÏËùÓпò¼ÜºÍAIоƬ时间£º2023-03-15 ÔÚÈ¥Äê 10 Ô嵀 Google Cloud Next 2022 »î¶¯ÖУ¬OpenXLA ÏîÄ¿Õýʽ¸¡³öË®Ãæ£¬¹È¸èÓë°üÀ¨°¢Àï°Í°Í¡¢AMD¡¢Arm¡¢ÑÇÂíÑ·¡¢Ó¢Ìضû¡¢Ó¢Î°´ïµÈ¿Æ¼¼¹«Ë¾Íƶ¯µÄ¿ªÔ´ AI ¿ò¼ÜºÏ×÷£¬ÖÂÁ¦Óڻ㼯²»Í¬»úÆ÷ѧϰ¿ò¼Ü£¬ÈûúÆ÷ѧϰ¿ª·¢ÈËÔ±»ñµÃÄÜÖ÷¶¯Ñ¡Ôñ¿ò¼Ü¡¢Ó²¼þµÄÄÜÁ¦¡£ ±¾ÖÜÈý£¬¹È¸èÐû²¼ OpenXLA ÏîÄ¿Õýʽ¿ªÔ´¡£
ÏîÄ¿Á´½Ó£º ͨ¹ý´´½¨Óë¶àÖÖ²»Í¬»úÆ÷ѧϰ¿ò¼Ü¡¢Ó²¼þƽ̨¹²Í¬¹¤×÷µÄͳһ»úÆ÷ѧϰ±àÒëÆ÷£¬OpenXLA ¿ÉÒÔ¼ÓËÙ»úÆ÷ѧϰӦÓõĽ»¸¶²¢Ìṩ¸ü´óµÄ´úÂë¿ÉÒÆÖ²ÐÔ¡£¶ÔÓÚ AI Ñо¿ºÍÓ¦ÓÃÀ´Ëµ£¬ÕâÊÇÒ»¸öÒâÒåÖØ´óµÄÏîÄ¿£¬Jeff Dean Ò²ÔÚÉç½»ÍøÂçÉϽøÐÐÁËÐû´«¡£
Èç½ñ£¬»úÆ÷ѧϰ¿ª·¢ºÍ²¿ÊðÊܵ½Ë鯬»¯µÄ»ù´¡ÉèÊ©µÄÓ°Ï죬ÕâЩ»ù´¡ÉèÊ©¿ÉÄÜÒò¿ò¼Ü¡¢Ó²¼þºÍÓÃÀý¶øÒì¡£ÕâÖÖÏ໥¸ô¾øÏÞÖÆÁË¿ª·¢ÈËÔ±µÄ¹¤×÷ËÙ¶È£¬²¢¶ÔÄ£Ð͵ĿÉÒÆÖ²ÐÔ¡¢Ð§ÂʺÍÉú²ú»¯Ôì³ÉÁËÕϰ¡£ 3 Ô 8 ÈÕ£¬¹È¸èµÈ»ú¹¹Í¨¹ý OpenXLA ÏîÄ¿£¨ÆäÖаüÀ¨ XLA¡¢StableHLO ºÍ IREE ´æ´¢¿â£©µÄ¿ª·Å£¬³¯×ÅÏû³ýÕâЩÕϰÂõ³öÁËÖØÒªÒ»²½¡£ OpenXLA ÊÇÓÉ AI / »úÆ÷ѧϰÐÐÒµÁìµ¼Õß¹²Í¬¿ª·¢µÄ¿ªÔ´ ML ±àÒëÆ÷Éú̬ϵͳ£¬¹±Ï×Õß°üÀ¨°¢Àï°Í°Í¡¢AWS¡¢AMD¡¢Æ»¹û¡¢Arm¡¢Cerebras¡¢¹È¸è¡¢Graphcore¡¢Hugging Face¡¢Ó¢Ìضû¡¢Meta ºÍӢΰ´ï¡£ËüʹµÃ¿ª·¢ÈËÔ±Äܹ»±àÒëºÍÓÅ»¯À´×ÔËùÓÐÁìÏÈ»úÆ÷ѧϰ¿ò¼ÜµÄÄ£ÐÍ£¬ÒÔ±ãÔÚ¸÷ÖÖÓ²¼þÉϽøÐиßЧѵÁ·ºÍ·þÎñ¡£Ê¹Óà OpenXLA µÄ¿ª·¢ÈËÔ±¿ÉÒԹ۲쵽ѵÁ·Ê±¼ä¡¢ÍÌÍÂÁ¿¡¢·þÎñÑÓ³ÙÒÔ¼°×îÖÕ·¢²¼ºÍ¼ÆËã³É±¾·½ÃæµÄÃ÷ÏÔÌáÉý¡£ »úÆ÷ѧϰ¼¼ÊõÉèÊ©ÃæÁÙµÄÌôÕ½ Ëæ×Å AI ¼¼Êõ½øÈëʵÓý׶Σ¬Ðí¶àÐÐÒµµÄ¿ª·¢ÍŶӶ¼ÔÚʹÓûúÆ÷ѧϰÀ´Ó¦¶ÔÏÖʵÊÀ½çµÄÌôÕ½£¬ÀýÈç½øÐм²²¡µÄÔ¤²âºÍÔ¤·À¡¢¸öÐÔ»¯Ñ§Ï°ÌåÑéºÍºÚ¶´ÎïÀíѧ̽Ë÷¡£ Ëæ×ÅÄ£ÐͲÎÊýÊýÁ¿³ÊÖ¸Êý¼¶Ôö³¤£¬Éî¶ÈѧϰģÐÍËùÐèµÄ¼ÆËãÁ¿Ã¿Áù¸öÔ·һ·¬£¬¿ª·¢ÈËÔ±ÕýÔÚѰÇó»ù´¡¼Ü¹¹µÄ×î´óÐÔÄܺÍÀûÓÃÂÊ¡£´óÁ¿ÍŶÓÕýÔÚÀûÓöàÐͺÅÖÖÀàµÄÓ²¼þ£¬´ÓÊý¾ÝÖÐÐÄÖеĽÚÄÜ»úÆ÷ѧϰרÓà ASIC µ½¿ÉÒÔÌṩ¸ü¿ìÏìÓ¦ËÙ¶ÈµÄ AI ±ßÔµ´¦ÀíÆ÷¡£ÏàÓ¦µÄ£¬ÎªÁËÌá¸ßЧÂÊ£¬ÕâЩӲ¼þÉ豸ʹÓö¨ÖÆ»¯µÄ¶ÀÌØËã·¨ºÍÈí¼þ¿â¡£ µ«ÁíÒ»·½Ã棬Èç¹ûûÓÐͨÓõıàÒëÆ÷½«²»Í¬Ó²¼þÉ豸ÇŽӵ½µ±½ñʹÓõĶàÖÖ¿ò¼Ü£¨ÀýÈç TensorFlow¡¢PyTorch£©ÉÏ£¬ÈËÃǾÍÐèÒª¸¶³ö´óÁ¿Å¬Á¦²ÅÄÜÓÐЧµØÔËÐлúÆ÷ѧϰ¡£ÔÚʵ¼Ê¹¤×÷ÖУ¬¿ª·¢ÈËÔ±±ØÐëÊÖ¶¯ÓÅ»¯Ã¿¸öÓ²¼þÄ¿±êµÄÄ£ÐͲÙ×÷¡£ÕâÒâζ×ÅʹÓö¨ÖÆÈí¼þ¿â»ò±àÐ´ÌØ¶¨ÓÚÉ豸µÄ´úÂëÐèÒªÁìÓòרҵ֪ʶ¡£ ÕâÊÇÒ»¸öì¶ÜµÄ½á¹û£¬ÎªÁËÌá¸ßЧÂÊʹÓÃרÓü¼Êõ£¬½á¹ûÈ´ÊÇ¿ç¿ò¼ÜºÍÓ²¼þµÄ¹ÂÁ¢¡¢²»¿É¸ÅÀ¨µÄ·¾¶µ¼ÖÂά»¤³É±¾¸ß£¬½ø¶øµ¼Ö¹©Ó¦ÉÌËø¶¨£¬¼õ»ºÁË»úÆ÷ѧϰ¿ª·¢µÄ½ø¶È¡£ ½â¾ö·½·¨ºÍÄ¿±ê OpenXLA ÏîÄ¿ÌṩÁË×îÏȽøµÄ ML ±àÒëÆ÷£¬¿ÉÒÔÔÚ ML »ù´¡ÉèÊ©µÄ¸´ÔÓÐÔÖнøÐÐÀ©Õ¹¡£ËüµÄºËÐÄÖ§ÖùÊÇÐÔÄÜ¡¢¿ÉÀ©Õ¹ÐÔ¡¢¿ÉÒÆÖ²ÐÔ¡¢Áé»îÐÔºÍÒ×ÓÃÐÔ¡£½èÖú OpenXLA£¬ÎÒÃÇ¿ÊÍûͨ¹ý¼ÓËÙÈ˹¤ÖÇÄܵĿª·¢ºÍ½»¸¶À´ÊµÏÖ AI ÔÚÏÖʵÊÀ½çÖеĸü´óDZÁ¦¡£ OpenXLA µÄÄ¿±êÔÚÓÚ£º ͨ¹ýÊÊÓÃÓÚÈκοò¼Ü£¬½ÓÈëרÓÃÉ豸ºó¶ËºÍÓÅ»¯µÄͳһ±àÒëÆ÷ API£¬Ê¹¿ª·¢ÈËÔ±¿ÉÒÔÇáËɵØÔÚËûÃǵÄÊ×Ñ¡¿ò¼ÜÖÐÕë¶Ô¸÷ÖÖÓ²¼þ±àÒëºÍÓÅ»¯ÈκÎÄ£ÐÍ¡£ Ϊµ±Ç°ºÍÐÂÐËÄ£ÐÍÌṩÐÐÒµÁìÏȵÄÐÔÄÜ£¬Ò²¿ÉÀ©Õ¹ÖÁ¶à¸öÖ÷»úºÍ¼ÓËÙÆ÷Âú×ã±ßÔµ²¿ÊðµÄÏÞÖÆ£¬²¢Íƹ㵽δÀ´µÄÐÂÐÍÄ£Ðͼܹ¹ÉÏ¡£ ¹¹½¨Ò»¸ö·Ö²ãºÍ¿ÉÀ©Õ¹µÄ»úÆ÷ѧϰ±àÒëÆ÷ƽ̨£¬Îª¿ª·¢ÈËÔ±Ìṩ»ùÓÚ MLIR µÄ×é¼þ£¬ÕâЩ×é¼þ¿ÉÕë¶ÔÆä¶ÀÌØµÄÓÃÀý½øÐÐÖØÐÂÅäÖã¬ÓÃÓÚÓ²¼þ¶¨ÖÆ»¯±àÒëÁ÷³Ì¡£ AI/ML Áìµ¼ÕßÉçÇø ÎÒÃǽñÌìÔÚ»úÆ÷ѧϰ»ù´¡¼Ü¹¹ÖÐÃæÁÙµÄÌôÕ½ÊǾ޴óµÄ£¬Ã»ÓÐÈκÎÒ»¸ö×éÖ¯¿ÉÒÔµ¥¶ÀÓÐЧµØ½â¾öÕâЩÌôÕ½¡£OpenXLA ÉçÇø»ã¼¯ÁËÔÚ AI ¶ÑÕ»µÄ²»Í¬¼¶±ð£¨´Ó¿ò¼Üµ½±àÒëÆ÷¡¢runtime ºÍоƬ£©ÉÏÔËÐеĿª·¢ÈËÔ±ºÍÐÐÒµÁìµ¼Õߣ¬Òò´Ë·Ç³£ÊʺϽâ¾öÎÒÃÇÔÚ ML ÁìÓò¿´µ½µÄË鯬»¯ÎÊÌâ¡£ ×÷Ϊһ¸ö¿ªÔ´ÏîÄ¿£¬OpenXLA ×ñÑÒÔÏÂÔÔò£º ƽµÈµØÎ»£º¸öÈËÎÞÂÛ´ÓÊô¹ØÏµÈçºÎ£¬¶¼Æ½µÈµØ×ö³ö¹±Ïס£¼¼ÊõÁìµ¼ÕßÊÇÄÇЩ¹±Ï××î¶àʱ¼äºÍ¾«Á¦µÄÈË¡£ ×ðÖØÎÄ»¯£ºËùÓгÉÔ±¶¼Ó¦Î¬»¤ÏîÄ¿¼ÛÖµ¹ÛºÍÐÐΪ׼Ôò£¬ÎÞÂÛËûÃÇÔÚÉçÇøÖеÄְλÈçºÎ¡£ ¿ÉÀ©Õ¹¡¢¸ßЧµÄÖÎÀí£ºÐ¡ÍŶÓ×ö³ö»ùÓÚ¹²Ê¶µÄ¾ö²ß£¬¾ßÓÐÇåÎúµ«ºÜÉÙʹÓõÄÉý¼¶Â·¾¶¡£ ͸Ã÷¶È£ºËùÓоö¶¨ºÍÀíÓɶ¼Ó¦¸Ã¶Ô¹«ÖÚÇåÎú¿É¼û¡£ OpenXLA Éú̬ϵͳ£ºÐÔÄÜ¡¢¹æÄ£ºÍ¿ÉÒÆÖ²ÄÜÁ¦ OpenXLA ͨ¹ýÄ£¿é»¯¹¤¾ßÁ´Ïû³ýÁË»úÆ÷ѧϰ¿ª·¢ÈËÔ±µÄÕϰ£¬Ëüͨ¹ýͨÓñàÒëÆ÷½Ó¿ÚµÃµ½ËùÓÐÁìÏÈ¿ò¼ÜµÄÖ§³Ö£¬ÀûÓÿÉÒÆÖ²µÄ±ê×¼»¯Ä£Ðͱíʾ£¬²¢Ìṩ¾ßÓÐÇ¿´óµÄÄ¿±êÏòºÍÌØ¶¨Ó²¼þÓÅ»¯µÄÌØ¶¨ÁìÓò±àÒëÆ÷¡£¸Ã¹¤¾ßÁ´°üÀ¨ XLA¡¢StableHLO ºÍ IREE£¬ËùÓÐÕâЩ¹¤¾ß¶¼ÀûÓà MLIR£ºÒ»ÖÖ±àÒëÆ÷»ù´¡¼Ü¹¹£¬Ê¹»úÆ÷ѧϰģÐÍÄܹ»ÔÚÓ²¼þÉÏÒ»Öµرíʾ¡¢ÓÅ»¯ºÍÖ´ÐС£
OpenXLA Ö÷ÒªÁÁµã »úÆ÷ѧϰÓÃÀýµÄ·¶Î§ OpenXLA µ±Ç°µÄʹÓú¸ÇÁË ML ÓÃÀýµÄ·¶Î§£¬°üÀ¨ÔÚ°¢ÀïÔÆÉÏ¶Ô DeepMind µÄ AlphaFold¡¢GPT2 ºÍ Swin Transformer µÈÄ£ÐͽøÐÐÈ«ÃæÑµÁ·£¬ÒÔ¼°ÔÚ Amazon.com ÉϽøÐжàģ̬ LLM ѵÁ·¡£Waymo µÈ¿Í»§ÀûÓÃÁË OpenXLA ½øÐгµÔØÊµÊ±ÍÆÀí¡£´ËÍ⣬OpenXLA »¹ÓÃÓÚÓÅ»¯Å䱸 AMD RDNA™ 3 µÄ±¾µØ»úÆ÷É쵀 Stable Diffusion ·þÎñ¡£ ×î¼ÑÐÔÄÜ£¬¿ªÏä¼´Óà OpenXLA ʹ¿ª·¢ÈËÔ±ÎÞÐè±àÐ´ÌØ¶¨ÓÚÉ豸µÄ´úÂ룬¼´¿ÉÇáËɼӿìÄ£ÐÍÐÔÄÜ¡£Ëü¾ßÓÐÕûÌåÄ£ÐÍÓÅ»¯¹¦ÄÜ£¬°üÀ¨¼ò»¯´úÊý±í´ïʽ¡¢ÓÅ»¯ÄÚ´æÊý¾Ý²¼¾ÖÒÔ¼°¸Ä½øµ÷¶ÈÒÔ¼õÉÙ·åÖµÄÚ´æÊ¹ÓúÍͨÐÅ¿ªÏú¡£¸ß¼¶Ëã×ÓÈںϺÍÄÚºËÉú³ÉÓÐÖúÓÚÌá¸ßÉ豸ÀûÓÃÂʲ¢½µµÍÄÚ´æ´ø¿íÒªÇó¡£ ÇáËÉÀ©Õ¹¹¤×÷¸ºÔØ ¿ª·¢¸ßЧµÄ²¢Ðл¯Ëã·¨·Ç³£ºÄʱ²¢ÇÒÐèҪרҵ֪ʶ¡£½èÖú GSPMD µÈ¹¦ÄÜ£¬¿ª·¢ÈËÔ±Ö»Ðè×¢Ê͹ؼüÕÅÁ¿µÄÒ»¸ö×Ó¼¯£¬È»ºó±àÒëÆ÷¾Í¿ÉÒÔʹÓÃÕâЩ×Ó¼¯×Ô¶¯Éú³É²¢ÐмÆËã¡£ÕâÏû³ýÁË¿ç¶à¸öÓ²¼þÖ÷»úºÍ¼ÓËÙÆ÷¶ÔÄ£ÐͽøÐзÖÇøºÍ¸ßЧ²¢Ðл¯ËùÐèµÄ´óÁ¿¹¤×÷¡£ ±ãЯÐԺͿÉÑ¡ÐÔ OpenXLA Ϊ¶àÖÖÓ²¼þÉ豸Ìṩ¿ªÏä¼´ÓõÄÖ§³Ö£¬°üÀ¨ AMD ºÍ NVIDIA GPU¡¢x86 CPU ºÍ Arm ¼Ü¹¹ÒÔ¼° ML ¼ÓËÙÆ÷£¬Èç Google TPU¡¢AWS Trainium ºÍ Inferentia¡¢Graphcore IPU¡¢Cerebras Wafer-Scale Engine µÈµÈ¡£OpenXLA »¹Í¨¹ý StableHLO Ö§³Ö TensorFlow¡¢PyTorch ºÍ JAX£¬StableHLO ÊÇÒ»¸öÓÃ×÷ OpenXLA ÊäÈë¸ñʽµÄ¿ÉÒÆÖ²²ã¡£ Áé»îÐÔ OpenXLA ΪÓû§ÌṩÁËÊÖ¶¯µ÷ÕûÄ£ÐÍÈȵãµÄÁé»îÐÔ¡£×Ô¶¨Òåµ÷ÓõÈÀ©Õ¹»úÖÆÊ¹Óû§Äܹ»Óà CUDA¡¢HIP¡¢SYCL¡¢Triton ºÍÆäËûÄÚºËÓïÑÔ±àдÉî¶ÈѧϰÔÓ´Ó¶øÄܹ»³ä·ÖÀûÓÃÓ²¼þÌØÐÔ¡£ StableHLO StableHLO ÊÇ ML ¿ò¼ÜºÍ ML ±àÒëÆ÷Ö®¼äµÄÒ»¸ö¿ÉÒÆÖ²²ã£¬ÊÇÒ»¸öÖ§³Ö¶¯Ì¬¡¢Á¿»¯ºÍÏ¡ÊèÐԵĸ߼¶ÔËË㣨HLO£©µÄÔËË㼯¡£´ËÍ⣬Ëü¿ÉÒÔ±»ÐòÁл¯Îª MLIR ×Ö½ÚÂëÒÔÌṩ¼æÈÝÐÔ±£Ö¤¡£ËùÓÐÖ÷ÒªµÄ ML ¿ò¼Ü£¨JAX¡¢PyTorch¡¢TensorFlow£©¶¼¿ÉÒÔ²úÉú StableHLO¡£2023 Ä꣬¹È¸è¼Æ»®Óë PyTorch ÍŶӽôÃܺÏ×÷£¬ÊµÏÖÓë PyTorch 2.0 °æ±¾µÄÕûºÏ¡£ |
