| ±à¼ÍƼö: |
±¾ÎÄÕûÌåÐԵĽéÉÜÁËÒì¹¹¼ÆËãµÄ¶¨Ò壬³¡¾°Óë¾ÖÏÞÐÔ¡£½«ÉîÈ벻ͬµÄ AI Ó¦Óó¡¾°½øÒ»²½½âÊÍÒì¹¹¼ÆËãµÄÓÅÊÆ.
±¾ÎÄÀ´×ÔÓÚinfoq.£¬ÓÉ»ðÁú¹ûÈí¼þAnna±à¼¡¢ÍƼö¡£ |
|
Ïêµ®ÉúÒÁʼ£¬¼ÆËã»ú´¦ÀíÄÜÁ¦¾Í´¦ÓÚ¸ßËÙ·¢Õ¹ÖС£¼°ÖÁ×î½üÊ®Äê£¬Ëæ×Å´óÊý¾Ý¡¢Çø¿éÁ´¡¢AI
µÈм¼ÊõµÄ³ÖÐø»ð±¬£¬ÈËÃÇΪÌáÉý¼ÆËã´¦ÀíËٶȸüÊÇ·¢Õ¹Á˶àÖÖ²»Í¬µÄ¼¼Êõ˼·¡£´óÊý¾ÝÊÜ»ÝÓÚ·Ö²¼Ê½¼¯Èº¼¼Êõ£¬Çø¿éÁ´´øÀ´ÁËרÓô¦ÀíÆ÷£¨Application-Specific
IC, ASIC£©µÄ´ºÌ죬AI ÔòÈôóÖÚÌýµ½ÁË¡°Òì¹¹¼ÆË㡱Õâ¸ö¼ÆËã»ú½çµÄѧÊõÃû´Ê¡£

¡°Òì¹¹¼ÆË㡱£¨Heterogeneous computing£©£¬ÊÇÖ¸ÔÚϵͳÖÐʹÓò»Í¬Ìåϵ½á¹¹µÄ´¦ÀíÆ÷µÄÁªºÏ¼ÆË㷽ʽ¡£ÔÚ
AI ÁìÓò£¬³£¼ûµÄ´¦ÀíÆ÷°üÀ¨£ºCPU£¨X86£¬Arm£¬RISC-V µÈ£©£¬GPU£¬FPGA ºÍ ASIC¡££¨°´ÕÕͨÓÃÐԴӸߵ½µÍÅÅÐò£©
AI ÊÇһÎÏΪ¸´ÔÓ¡¢×ۺϵÄѧ¿Æ¡£ÔÚÖ»ÓÐ CPU ƽ̨µÄÇé¿öÏ£¬AI ¿ª·¢ÕßҪѧϰµÄËã·¨¡¢Ä£ÐÍ¡¢¿ò¼Ü¡¢±à³ÌÓïÑÔÒѾ²»ÉÙ¡£Èç¹ûÔÙ¿¼ÂǶà¸ö²»Í¬´¦ÀíÆ÷ƽ̨£¬Çé¿ö»á±äµÃ¸üΪ¸´ÔÓ¡£ÔÚÕ¹¿ªÌÖÂÛ²»Í¬µÄÓ¦Ó󡾰֮ǰ£¬ÎÒÃÇÏÈÁ˽âÒ»ÏÂʲôÊÇ¡°Òì¹¹¼ÆË㡱¡£
Òì¹¹¼ÆËã
Ê×ÏÈÐèÒªÃ÷È·µÄÊÇ£¬¼ÆËã»úÌåϵ½á¹¹¡ÙÓ²¼þ¼Ü¹¹¡£Ìåϵ½á¹¹²»µ¥°üÀ¨Ó²¼þ²ãÃæµÄʵÏÖ£¬Ò²°üÀ¨Èí¼þ²ãÃæµÄ¿¼Á¿¡£µ±
IBM ÔÚ S/360 ·þÎñÆ÷ÖÐÌá³öÌåϵ½á¹¹Õâ¸ö¸ÅÄî֮ǰ£¬Ã¿Ò»´ú IBM ·þÎñÆ÷µÄÓ²¼þʵÏÖ¶¼»áÓÐËù²»Í¬£¨Æäʵ½ñÈյĴ¦ÀíÆ÷Ó²¼þÒàÊÇÈç´Ë£©¡£ÓÉ´Ë´øÀ´Á˸÷²»ÏàͬµÄÖ¸ÁÒÔÖÁÓÚ¿ª·¢Õß±àдµÄÈí¼þÎÞ·¨ÔÚ²»Í¬µÄ
IBM ·þÎñÆ÷ÉÏÔËÐС£
Òò´Ë£¬¾µäµÄÌåϵ½á¹¹¸ÅÄîÓëÈíÓ²¼þµÄ½çÃæ¡ª¡ªÖ¸ÁÓбȽϴóµÄ¹ØÏµ¡£Í¨³£À´½²£¬Èç¹ûÁ½¸ö´¦ÀíÆ÷¶¼ÄÜÖ§³ÖͬһÌ×Ö¸Á£¬ÄÇô¿ÉÒÔÈÏΪËüÃÇÓÐÏàͬµÄÌåϵ½á¹¹¡£ºÃ±È
AMD µÄ CPU ºÍ Intel µÄ CPU ¶¼ÊôÓÚ X86 CPU¡£
ËäÈ»Òì¹¹¼ÆËãÄÜ´øÀ´Ç±ÔÚµÄËãÁ¦ÌáÉý£¬µ«Ò²»áÔì³É¶îÍâµÄ¿ª·¢³É±¾¡£ÔÚ½øÐÐÒì¹¹¼ÆË㿪·¢Ö®Ç°£¬¿ª·¢ÕßÐèÒª½øÐм¸¸ö·½ÃæµÄÆÀ¹À¡£
µÚÒ»£¬È¨ºâ´úÂëͨÓÃÐÔÓë´úÂëÐÔÄÜ¡£
½ñÌìµÄ AI ¿ª·¢Õß¿ÖÅÂÖ»ÔÚ½ÏÉÙµÄÇé¿öÏ¿ÉÄÜ»áÖ±½ÓʹÓÃÖ¸Á½øÐбà³Ì£¨ÀýÈ磬X86
CPU µÄ AVX2 Ö¸ÁîµÈ£©£¬¾ø´ó¶àÊýÇé¿öÏ£¬ÎÒÃÇÓõ½µÄÖ÷ÒªÊÇЩ³ÌÐò¿â¡£È»¶ø³ÌÐò¿âÔÚ²»Í¬Æ½Ì¨ÉϵÄʵÏÖÒÀ¾ÉÐèÒªµ÷ÓõײãµÄÖ¸Á¡£ÔÚ
AI ÕâÑùÐèÒª¸ßÐÔÄܱà³ÌµÄÁìÓò£¬³£ÓÃµÄ BLAS (Basic Linear Algebra Subprograms)
³ÌÐò¿â¾ÍÓжàÖÖÑ¡Ôñ£º

¼´±ãֻʹÓà CPU ½øÐмÆË㣬ÒÀÈ»»áÃæÁÙÖîÈç OpenBLAS ºÍ Intel MKL Ö®¼äµÄÑ¡Ôñ¡£¿ª·¢ÕßÐèÒª¸ù¾Ý¾ßÌåÐèÇó½÷É÷ÆÀ¹ÀͨÓÃÐÔÓëÐÔÄÜÖ®¼äµÄÓÅÏȼ¶¡£AI
ÕâЩÄêËäÈ»ºÜ»ð£¬µ«ÊÇ AI Ó¦ÓÃÊÕÒæÓ뿪·¢³É±¾µÄì¶ÜÒ²Ò»Ö±½ÏΪͻ³ö¡£
µÚ¶þ£¬¿¼ÂÇ¿ª·¢»·¾³µÄ³ÉÊì¶È¡£
ËäÈ» AI ¿ª·¢Õß¿ÉÓõļÆËãÓ²¼þÓÐ CPU£¬GPU£¬FPGA£¬ASIC µÈ£¬Ä¿Ç°¿ª·¢»·¾³±È½Ï³ÉÊìµÄÊÇ
CPU£¬GPU ºÍ FPGA¡£ASIC ÔÚ¿ª·¢³ÉÊì¶ÈÉÏĿǰ½ÏΪÞÏÞΣ¬ÒòΪӦÓÃרÓÐоƬµÄ¿ª·¢ÒÀÀµÓÚËùÃé×¼µÄÓ¦ÓÃÊÇ·ñÒѾ´ïµ½ÁËÒ»¸ö±È½Ï³ÉÊìµÄ½×¶Î¡£¶ø
AI ÁìÓòÖУ¬¼´±ãÊÇ×î³ÉÊìµÄ»úÆ÷ÊÓ¾õ£¨CV£©Ò²ÒÀÈ»»¹ÔÚ³ÖÐø·¢Õ¹ÖС£Òò´Ë£¬ASIC ³§ÉÌÒª´òÔìÒ»¸ö½ÏΪÎȶ¨µÄ¿ª·¢»·¾³ÃæÁÙÒ»¶¨µÄÌôÕ½¡£
ÕâÒ²ÎÞ¹ÖºõÄê³õÖªÃûµÄ¡°¿óÒµ¡±¹«Ë¾±¬³öÁË AI оƬÍŶӴó¹æÄ£²ÃÔ±µÄÏûÏ¢¡£
µÚÈý£¬¿¼ÂǼ¼ÊõÆÕ¼°³Ì¶È¡£
Ô½ÆÕ¼°µÄ¼¼ÊõÓ²¼þ³É±¾Ô½µÍ£¬È˲Ŵ¢±¸Ò²¸üΪ³ä×ã¡£ÕâÒ»µãÉÏ£¬ FPGA ¾Í±È½ÏÕ¼ÁÓÊÆ£¬±Ï¾¹Ò»°ãÈ˺ÜÉÙ»ú»á½Ó´¥
FPGA Ó²¼þ¡£
Òò´Ë£¬Ä¿Ç°Òì¹¹¼ÆË㿪·¢ÈÔÈ»ÒÔ CPU ½áºÏ GPU ΪÖ÷¡£
ѰÕÒÒì¹¹¼ÆË㳡¾°
ÒªÕæÕý·¢»ÓÒì¹¹¼ÆËãµÄÓÅÊÆ£¬±ØÐëµÃѰÕÒºÏÊʵij¡¾°¡£·ñÔò GPU µÈд¦ÀíÆ÷²¢²»×ÜÊÇÄÜ´øÀ´ÐÔÄܵÄÌáÉý¡£ÎÒÃÇÏÈÀ´»ØÏëÒ»ÏÂ
GPU ×îµäÐÍ¡¢×îÉó¤µÄÓ¦Óó¡¾°¡ª¡ª´óÐÍ 3D ÓÎÏ·ÊÇÔõôÑùµÄ£º
°ÑÓÎÏ·Êý¾ÝÔØÈëÏÔ´æ
ÔÚÓû§ÓÎÏ·µÄ¹ý³ÌÖУ¬ÏÔ¿¨Ê¼ÖÕÔÚ½øÐиßËÙÔËËã
ÒÔÉÏ¿´ÆðÀ´ºÃÏñÊÇÒ»¶Î·Ï»°£¬µ«ÒªÀí½â GPU µÈд¦ÀíÆ÷µÄÌØµã£¬Õâ¶Î·Ï»°ÖµµÃ·´¸´»ØÎ¶¡£GPU µÄÓÅÊÆ³¡¾°ÔÚÓÚ£º
Ò»¶¨Á¿µÄÊý¾Ý¡£Èç¹ûÊý¾ÝÁ¿Ì«Ð¡£¬ÄÇô GPU ¿ÉÄÜ»á±È CPU Âý¡£ÈçºÎÅжÏÕâ¸öÁÙ½çµãÒ²ºÜ¼òµ¥£¬¿ÉÒÔÀûÓÃ
Python µÄ Pandas dataframe ºÍ RAPIDS µÄ cuDF ½øÐÐÒ»¸ö¶Ô±È²âÊÔ¡£
Êý¾ÝÁ¿²»ÄÜÌ«´ó£¬ÏÔ´æÒ»¶¨Òª×°µÃÏ¡£Ò»µ©·¢ÉúÏÔ´æ¶ÔÍâµÄ I/O£¨ÄÄÅÂÊÇÄÚ´æºÍÏÔ´æÖ®¼äµÄ£©£¬´¦ÀíËÙ¶ÈÒÀÈ»»áÊܵ½ºÜ´óÓ°Ïì¡£
ÐèÒªÓгÖÐøµÄ¹¤×÷Á÷·¢Ë͸ø GPU ´¦Àí¡£¼ÆËãºËÐĸü¶àµÄ GPU Æô¶¯´ú¼Û±È CPU ¸ßµÃ¶à¡£
¿´ËÆÃ¬¶ÜµÄµÚÒ»µãºÍµÚ¶þµã˵Ã÷£¬ÒªÕÒµ½Òì¹¹¼ÆËãµÄÓÅÊÆ³¡¾°²¢²»ÈÝÒס£ÊÂʵÉÏ£¬Ò»¸ö¼ÆËãÈÎÎñµÄ´¦Àíʱ¼ä°üÀ¨¼ÆËãÓë
I/O£¨CPU ·ÃÎÊÄÚ´æÒ²ËãÔÚÄÚ£©Á½²¿·Ö¡£¸ßËãÁ¦µÄ AI ´¦ÀíÆ÷¿ÉÒÔ°ïÄã¼ÓËÙ¼ÆËãµÄ²¿·Ö£¬µ«°ÓÚ·þÎñÆ÷¼Ü¹¹£¬Òì¹¹¼ÆËãÒ²»á´øÀ´Ò»Ð©¶îÍâµÄ
I/O ¿ªÏú¡£Òò´Ë£¬ÎÊÌâµÄ¹Ø¼üÔÚÓÚÒ»¸ö³ÌÐòµÄ´¦Àíʱ¼ä¾¿¾¹ÊÇ»¨ÔÚ¼ÆËãÉϸü¶à£¬»¹ÊÇ»¨ÔÚ I/O Éϸü¶à¡£
ÔÚ Linux ϵͳÏ£¬ÎÒÃÇ¿ÉÒÔͨ¹ý perf ¹¤¾ß£¨Linux kernel
profiling£©À´Á˽âÒ»¸ö´¦ÀíÈÎÎñÖ´ÐÐʱµÄ CPU ¼ÆË㷱æ³Ì¶È¡£

£¨ÒýÓÃ×Ô£º https://perf.wiki.kernel.org/index.php/Tutorial
£©
ÔÚÉÏÃæµÄʾÀýÖУ¬IPC£¨Instructions Per Second£©½öΪ 0.679£¬ÒªÖªµÀÏÖ´úµÄ
CPU µ¥ºË IPC ÀíÂÛ·åÖµ¿ÉÒÔ´ïµ½ 10 ¡£Ò»°ãÈÏΪ£¬ÔËÐÐʱ IPC Èç¹ûµÍÓÚ 1£¬ËµÃ÷ÕýÔÚÔËÐеŤ×÷Á÷ÔÚ
I/O£¨CPU ¶ÁÈ¡Äڴ棩ÉÏ»¨µÄʱ¼ä¸ü¶à¡£ÔÚÕâÖÖÇé¿öÏ£¬Òì¹¹¼ÆËã´øÀ´µÄÌáÉý¾Í²»Ì«¿ÉÄÜÏñÓ²¼þ³§ÉÌÐû´«µÄÄÇÑù´ïµ½
10 ±¶£¬ÉõÖÁ 100 ±¶¡£
Ç°ÃæÌáµ½¡°Òì¹¹¼ÆËãÒ²»á´øÀ´Ò»Ð©¶îÍâµÄ I/O ¿ªÏú¡±¡£ÕâÖ÷ÒªÊÜÏÞÓÚÒÔ CPU ΪºËÐĵÄϵͳ¼Ü¹¹£¬ÆäËûд¦ÀíÆ÷Ö»ÄÜͨ¹ý
PCI/E Á¬½Óµ½ÏµÍ³¡£µ±ÐèÒª°ÑÊý¾Ý´ÓÓ²ÅÌÔØÈëµ½ÏÔ´æµÄʱºò£º£¨¼ÙÉèʹÓà PCI/E Ó²ÅÌ£©
Êý¾Ý´ÓÓ²Å̾¹ý PCI/E ¸´ÖƵ½ÄÚ´æ
Êý¾Ý´ÓÄÚ´æ¾¹ý PCI/E ¸´ÖƵ½ÏÔ´æ
ÔÚÕâÖÖÇé¿öÏ£¬Êý¾Ý´ÓÓ²ÅÌÔØÈëÏÔ´æµÄËÙ¶ÈÖ»ÓÐ PCI/E ´«ÊäËٶȵÄÒ»°ë¡£ÎªÁ˽â¾öÕâ¸öÎÊÌ⣬GPU ³§ÉÌ¿ª·¢ÁË
GPUDirect Storage ¼¼Êõ£¬ÕâÑù¿ÉÒÔÖ±½Ó°ÑÊý¾Ý´ÓÓ²Å̼ÓÔØµ½ÏÔ´æ¡£

£¨ÒýÓÃ×Ô£º https://devblogs.nvidia.com/gpudirect-storage/
£©
Ò»°ãÆóÒµ¼¶¼ÆËãÏÔ¿¨µÄÏÔ´æ´óСΪ 16GB »ò 32GB£¬¶øÒ»°ãÆóÒµ¼¶ CPU µÄÄÚ´æÉÏÏÞ¿ÉÒÔ´ïµ½ 768GB
»ò 1TB¡£ÔÚº£Á¿Êý¾ÝµÄ³¡¾°Ï£¬ÈçºÎÀûÓÃÒì¹¹ËãÁ¦ÐèÒª×ÐϸµÄÉè¼Æ£¬²»È»Òì¹¹¼ÆËã²úÉúµÄ I/O ¿ªÏú¿ÉÄÜ»áÊÊµÃÆä·´¡£
Òì¹¹¼ÆËãÔÚ AI ÖеÄÓ¦ÓÃ
Òì¹¹¼ÆËãµÄÓÅÊÆÓë¾ÖÏÞ¶¼·Ç³£Í»³ö¡£ÔÚ AI µÄÈ«Á÷³ÌÖУ¬¿ª·¢ÕßÖð½¥ÔÚÒÔϽ׶ÎÖÐÕÒµ½ÁËÒì¹¹¼ÆËãµÄ³¡¾°¡£
Êý¾Ý×¼±¸½×¶Î
²»Í¬ÓÚ´«Í³´óÊý¾ÝÓ¦Óã¬AI Ó¦ÓõÄÊý¾Ý²»µ«°üÀ¨Ò»°ãµÄ½á¹¹»¯Êý¾Ý£¬Ò²°üº¬ÁË´óÁ¿·Ç½á¹¹»¯Êý¾Ý£¨ÈçͼƬ¡¢ÊÓÆµ¡¢ÉùÒô¡¢Îı¾µÈ£©¡£Õë¶Ôº£Á¿½á¹¹»¯Êý¾ÝµÄ´¦Àí£¬ÒòΪͨ³£
I/O Õ¼±ÈÔ¶¸ßÓÚ¼ÆËãÕ¼±È£¬Òò´ËÕⲿ·ÖÊý¾ÝµÄ´¦ÀíÒÀ¾ÉÒÔ CPU ΪÖ÷¡£²»¹ý£¬½ñÌìµÄ CPU Ò²ÌṩÁË
AVX2 ÏòÁ¿Ö¸Á½øÐÐ SIMD ¼ÆË㣨µ¥Ö¸Áî¶àÊý¾Ý£©¡£
µ«ÔڷǽṹÊý¾Ý£¬ÓÈÆäÊÇͼƬ¡¢ÊÓÆµµÈµÄת½âÂë´¦ÀíÉÏ£¬Ò칹оƬµÄÓÅÊÆ»¹ÊDZȽÏÃ÷ÏÔ¡£
Ä£ÐÍѵÁ·¡¢µ÷ÓŽ׶Î
ĿǰµÄÉî¶ÈѧϰģÐÍÖ÷ÒªÊÇ»ùÓÚÕÅÁ¿£¨tensor based£©Ä£ÐÍ£¬ºÜ¶à AI ´¦ÀíÆ÷»á×ÅÖØ¼ÓÇ¿×Ô¼ºµÄ³ËÀÛ¼Ó£¨MACC£¬»ù´¡µÄ¾ØÕó¼ÆËã²Ù×÷£©´¦ÀíÄÜÁ¦¡£Ä£ÐÍѵÁ·ÊÇÕû¸ö
AI Á÷³ÌÖÐÒì¹¹¼ÆËã×îΪÓÐÓÅÊÆµÄ²¿·Ö¡£GPU£¬TPU ºÍÆäËûһЩ ASIC ¶¼ÄÜÔÚÕâÀï·¢»Ó×÷Óá£
»ØÏëÒ»ÏÂǰÎÄÖÐÌÖÂÛ¹ýµÄÓÎÏ·³¡¾°£¬Ä£ÐÍѵÁ·ÊDz»ÊǺÍËüºÜÏñÄØ£¿
ÔËÐÐʱ½×¶Î
ÔËÐÐʱµÄÈÎÎñÖ÷Òª°üÀ¨Ä£ÐÍÍÆÀí£¬ÏòÁ¿ÏàËÆ¶ÈËÑË÷µÈ¡£
Ä£ÐÍÍÆÀí±¾Éí²¢²»ÐèÒªÏñÄ£ÐÍѵÁ·ÄÇÑù½øÐдó¹æÄ£¼ÆË㣬µ«Ä£ÐÍÍÆÀíÍùÍùÉæ¼°¶àÖÖ²»Í¬ÀàÐ͵ÄÓ²¼þ²¿Êðƽ̨¡£Òò´Ë£¬Ä£ÐÍÍÆÀíÖеÄÒì¹¹¼ÆËãÊ×ÒªÈÎÎñ²»ÊÇÈÚºÏËãÁ¦£¬¶øÊÇ¿¼ÂÇ´úÂëµÄ¿çƽ̨ͨÓÃÐÔÒÔ½µµÍ¿ª·¢³É±¾¡£Òµ½çÒѾÓÐһЩ¿ªÔ´Ä£ÐÍÍÆÀí¿ò¼ÜÀ´½â¾ö´úÂëµÄ¿çƽ̨ͨÓÃÐÔÎÊÌ⣬±ÈÈç
Linux »ù½ð»áÆìÏ嵀 Adlik ºÍ ΢ÈíµÄ ONNX RT¡£
ÏòÁ¿ÏàËÆ¶ÈËÑË÷£¬ÊÇͼƬ¡¢ÊÓÆµËÑË÷¡¢ÍƼöϵͳ¡¢ÎÊ´ðϵͳÖеij£Óü¼Êõ¡£ÓÉÓÚÒªËÑË÷µÄÌØÕ÷ÏòÁ¿¹æÄ£ÍùÍù»á´ïµ½ÉÏÒÚÉõÖÁÊ®ÒÚ¼¶£¬ËÑË÷ʱµÄ
I/O ±ÈÖØºÜ¸ß£¬Òì¹¹¼ÆËãÔÚËÑË÷ʱµÄ°ïÖú»á±È½ÏÓÐÏÞ¡£µ«ÊÇÔÚ½¨Á¢ÏòÁ¿ÏàËÆ¶ÈË÷ÒýʱȴÊÇÒ»¸öµäÐ͵ļÆËãÃܼ¯ÐÍÈÎÎñ£¬Òì¹¹¼ÆËãÄÜ´ó·ùÌáÉýË÷Òý´´½¨ËÙ¶È¡£¹©¿ª·¢Õ߲ο¼µÄ¿ªÔ´ÏîÄ¿ÓÐ
Facebook Faiss¡¢Spotify Annoy¡¢NMSLIB ÒÔ¼° Linux »ù½ð»áÆìϵÄ
Milvus µÈ¡£
»úÆ÷ѧϰÓëÒì¹¹¼ÆËã
ÔÚ»úÆ÷ѧϰÁìÓò£¬Òì¹¹¼ÆËã¼¼ÊõµÄÓ¦ÓÃÊǽüÄêÀ´±¸ÊܲúÒµ½çºÍѧÊõ½ç¹Ø×¢µÄ»°Ìâ¡£ÔÚÊý¾Ý¸ßËÙÔö³¤µÄ±³¾°Ï£¬Òì¹¹¼ÆËã¼¼ÊõÊÇÌáÉý»úÆ÷ѧϰӦÓÿª·¢Á÷³ÌÖС°ÈË¡±Óë
¡°»ú¡±µÄЧÂʵÄÖØÒªÍ¾¾¡£±¾ÎĽ«½áºÏ»úÆ÷ѧϰӦÓõĿª·¢±Õ»·¶Ô½üÆÚÓ¿ÏÖµÄÏà¹ØÒì¹¹¼ÓËÙ¼¼Êõ½øÐнéÉÜ¡£

ÈçÉÏͼËùʾ£¬»úÆ÷ѧϰӦÓõĿª·¢±Õ»·°üÀ¨Êý¾ÝÕûºÏ¡¢ÌØÕ÷ÌáÈ¡¡¢Ä£Ð͵ÄÉè¼Æ¡¢ÑµÁ·ºÍÑéÖ¤µÈ¶à¸ö»·½Ú¡£Ê×ÏÈÐèÒª¶ÔÔʼÊý¾Ý½øÐлã¾ÛÕûÀí£¬È»ºó½øÐÐÊý¾Ý·ÖÎö²¢ÌáÈ¡Êý¾ÝÌØÕ÷×÷ΪģÐÍÊäÈë¡£ÔÚÄ£ÐÍÉè¼Æ»·½Ú£¬ÐèÒª¶ÔÄ£ÐÍÀàÐÍ¡¢ÓÅ»¯Ëã·¨ºÍÅäÖòÎÊý½øÐÐÑ¡Ôñ¡£ÔÚÄ£ÐÍѵÁ·Íê³Éºó£¬ÐèÒªÊý¾Ý¿ÆÑ§¼Ò¸ù¾ÝÄ£ÐÍÑéÖ¤µÄ½á¹û¶ÔÉÏÓεĸ÷»·½Ú½øÐе÷Õû£¬ÀýÈç²¹³äеÄÊý¾ÝÔ´¡¢À©Õ¹Êý¾ÝÌØÕ÷¡¢µ÷ÕûÄ£Ð͵ÄÑ¡ÔñºÍ²ÎÊýÉè¼Æ£¬È»ºóÖØÐÂѵÁ·ºÍÑé֤ģÐÍ£¬Ö±µ½¶à´Îµü´úÖ®ºóµÃµ½ÁîÈËÂúÒâµÄ½á¹û¡£
ÏÈ̸̸ÉÏÊöÁ÷³ÌÖеġ°ÈË¡±¡£¡°ÓжàÉÙÈ˹¤¾ÍÓжàÉÙÖÇÄÜ¡±Õâ¸öÏÖÏóÔÚÉú²úÓ¦ÓÃÖнÏΪÆÕ±é¡£ÉÏÊöÁ÷³ÌÖдæÔÚ´óÁ¿µÄÈ˹¤¾ö²ß»·½Ú£¬ÐèÒªÊý¾Ý¿ÆÑ§¼Ò¸ù¾Ýרҵ֪ʶºÍ¾Ñé½øÐкÏÀí¾ö²ß¡£ÓÉÓÚÓ¦Óó¡¾°µÄ¶àÑùÐÔ£¬Í¨ÓõÄÉè¼ÆÍ¨³£ÎÞ·¨Âú×ã¸÷ÖÖ³¡¾°Ï¶ԻúÆ÷ѧϰϵͳµÄÌØ¶¨ÐèÇó¡£Êý¾Ý¿ÆÑ§¼ÒÐèÒª½áºÏʵ¼ÊÎÊÌ⣬ͨ¹ý´óÁ¿µÄ¹Û²ì·ÖÎöÒÔ¼°¶à´ÎµÄ³¢ÊԺ͵÷ÓÅÖ®ºó²ÅÄÜ»ñµÃÕæÕýºÏÊʵÄÉè¼Æ¡£Ëæ×Å»úÆ÷ѧϰÀíÂÛ·½·¨ºÍÓ¦Óó¡¾°µÄÈÕÒæ·á¸»£¬Êý¾Ý¿ÆÑ§¼ÒÕýÃæÁÙ×ÅǰËùδÓеľö²ßÊýÁ¿ºÍÄѶȡ£Ëæ×ʤ×÷ÄѶȵÄÔö¼Ó£¬ÈËÁ¦¶Ô»úÆ÷ѧϰϵͳ¿ª·¢Ð§ÂʵÄÓ°ÏìÒ²½«Öð½¥Ôö´ó£¬ÉõÖÁ³ÉΪÕû¸öÁ÷³ÌµÄÆ¿¾±¡£
ÔÙ̸̸¡°»ú¡±¡£´Ó»úÆ÷ЧÂʽǶÈÉÏ¿´£¬ÉÏÊöµü´ú¹ý³ÌÖÐÉæ¼°µ½ÁË´óÁ¿µÄÊý¾Ý´¦ÀíºÍ¼ÆËã²Ù×÷¡£ÀýÈ磬ÔÚÊý¾ÝÕûºÏ»·½Ú£¬Éæ¼°µ½¶à¸öÊý¾ÝÔ´²»Í¬Î¬¶È´óÁ¿Êý¾ÝµÄ¹ØÁª·ÖÎöºÍÇåÏ´²Ù×÷¡£ÌØÕ÷ÌáÈ¡»·½ÚÖÐÔʼÊý¾ÝµÄͳ¼ÆÌØÕ÷·ÖÎöÒÔ¼°ÌØÕ÷Êý¾ÝµÄ¹¹ÔìºÍ±àÂë¾ùÐèÒª½øÐдóÁ¿µÄ¸¡µãÔËËãºÍ¾ØÕóÔËËã¡£¶øÔÚÄ£ÐÍѵÁ·ºÍÑéÖ¤»·½Ú»áÉæ¼°µ½»úÆ÷ѧϰģÐ͵ÄѵÁ·ºÍÍÆÀí¼ÆË㣬°üº¬ÁË´óÁ¿µÄÊýÖµ¼ÆËã¡¢¾ØÕóÔËËãºÍ¸¡µãÔËËã²Ù×÷¡£Êý¾ÝµÄ·ÉËÙÔö³¤Ê¹µÃ»úÆ÷ѧϰӦÓöԼÆËã»úϵͳÊý¾Ý´¦ÀíµÄÐÔÄÜÒªÇóÈÕÒæÑÏ¿Á£¬ÉÏÊö»·½ÚµÄ¼ÆËãЧÂʽ«Ö±½ÓÓ°Ïìµ½È˹¤²ÎÓëЧÂÊÒÔ¼°»úÆ÷ѧϰϵͳµÄÕûÌåµü´úЧÂÊ¡£
Òì¹¹¼ÓËÙ¼¼Êõ¶Ô¡°ÈË¡±Óë¡°»ú¡±µÄЧÂÊ´øÀ´Á˾޴óµÄÌáÉý¿Õ¼ä¡£µ±Ç°µÄÒì¹¹¼ÓËÙËã·¨¸²¸ÇÁËÊý¾ÝÕûºÏ¡¢ÌØÕ÷ÌáÈ¡¡¢Ä£ÐÍѵÁ·µÈ»·½Ú¡£Ó봫ͳµÄ»ùÓÚ
CPU µÄËã·¨Ïà±È£¬Òì¹¹²¢ÐÐËã·¨¿É»ñµÃÒ»µ½Á½¸öÊýÁ¿¼¶µÄ¼ÓËÙ£¬ÏÔÖøÌáÉýÁË»úÆ÷µÄÔËËãЧÂÊ¡£ÁíÒ»·½Ã棬Òì¹¹¼ÓËÙ¼¼Êõ°ïÖúÊý¾Ý¿ÆÑ§¼Ò¸ü¿ìµÄ»ñµÃÔËËã½á¹û£¬²¢¿ÉÓÐЧ¼ÓËÙ
AutoML µÄ½â¿Õ¼äËÑË÷¹ý³Ì£¬Ìá¸ßÉè¼ÆÓëµ÷ÓÅЧÂÊ¡£
ÏÂÎĽ«¾Û½¹Êý¾ÝÕûºÏ¡¢ÌØÕ÷ÌáÈ¡¡¢Ä£ÐÍÉè¼Æµ÷ÓÅ¡¢Ä£ÐÍѵÁ·Ëĸö»·½Ú£¬¶ÔÆäÖÐÓ¿ÏÖµÄÐÂÐËÒì¹¹¼ÆËã¼¼Êõ½øÐнéÉÜ¡£
Êý¾ÝÕûºÏ
Êý¾ÝÕûºÏ´¦ÓÚ»úÆ÷ѧϰ¿ª·¢Á÷³ÌµÄÉÏÓΣ¬°üÀ¨Êý¾ÝÔ´ÕûºÏ£¬Êý¾ÝÌáÈ¡ÓëÊý¾ÝÇåÏ´µÈ¹¤×÷¡£ÓÉÓÚ¸÷Ó¦Óó¡¾°²îÒì½Ï´ó£¬Êý¾ÝÔ´ÓëÊý¾ÝÀàÐÍ·×·±¸´ÔÓ£¬Êý¾ÝÕûºÏ½×¶ÎËùÉæ¼°µÄ·½·¨Ó빤¾ßÏ൱·á¸»¡£ÆäÖÐÊý¾Ý¿â¡¢Êý¾Ý´¦ÀíÒýÇæ¡¢Êý¾Ý·ÖÎö³ÌÐò¿â°çÑÝÁËÖØÒª½ÇÉ«£¬·Ö±ðÓ¦¶ÔÊý¾Ý»ã¾Û¡¢¶Ô½Ó¡¢Í¨ÓÃÊý¾Ý´¦Àí¡¢¶¨ÖÆ»¯Êý¾Ý´¦ÀíµÈÈÎÎñ¡£
Êý¾Ý¿â·½Ã棬ZILLIZ ÃæÏò PostgreSQL ÉúÌ¬ÍÆ³öÁË GPU ·ÖÎöÒýÇæ MegaWise
[1][2]£¬°¢Àï°Í°ÍÔÚ AnalyticDB [3] ÖÐÌṩÁË GPU ¼ÓËÙÄÜÁ¦£¬BlazingSQL
[4] »ùÓÚ RAPIDS [5] ¹¹½¨ÁË GPU ¼ÓËÙµÄ SQL ·ÖÎöÒýÇæ¡£½üÆÚÔÚÊý¾Ý¿âÁìÓòÓ¿ÏÖµÄÒì¹¹¼ÓËÙ¼¼Êõ¼¯ÖÐÓÚ
AP ·½Ã棬ÕâЩÐÂÐÍ·ÖÎöÒýÇæ¶ÔÓÚÊý¾Ý¼ÓÔØ¡¢±ä»»¡¢¹ýÂË¡¢¾ÛºÏ¡¢Á¬½ÓµÈÌØ¶¨¸ºÔØ»ñµÃÁËÊ®±¶ÖÁ°Ù±¶µÄ¼ÓËÙЧ¹û¡£
Êý¾Ý´¦ÀíÒýÇæ·½Ã棬Spark3.0 ½«ÒýÈë¶Ô GPU µÄµ÷¶ÈÖ§³Ö [6]¡£´ËÍ⣬ÔÚÔ¤ÀÀ°æÖУ¬Ò²¿´µ½
SparkR ÒÔ¼° SparkSQL ÒýÈëÁËÁÐʽ´¦Àíģʽ¡£Òì¹¹¼ÆËã×ÊÔ´µ÷¶ÈÓëÁÐʽ´¦ÀíÕâÁ½ÏîÄÚÈÝΪ Spark
ºËÐÄ×é¼þµÄÒì¹¹¼ÓËÙ¹¤×÷µì¶¨ÁËÁ¼ºÃµÄ»ù´¡¡£´ËÍ⣬ҲΪÓж¨ÖÆÐèÇóµÄ¸ß¼¶Óû§ÌṩÁËÒì¹¹¼ÓËÙ UDF µÄÌõ¼þ¡£
Êý¾Ý·ÖÎö³ÌÐò¿â·½Ã棬Ӣΰ´ïÍÆ³ö cuDF [7]¡£×Ô 0.10 °æ±¾ÒÔÀ´£¬¿ªÆôÁËÒ»ÂÖ´ó¹æÄ£Öع¹£¬ÔÚ³ÖÐøÌáÉýµ×²ã¿âÐÔÄܵÄͬʱ£¬¶Ô
Python ²ãµÄ API Ò²½øÐÐÁËÀ©Õ¹¡£½ØÖ¹Ä¿Ç° 0.13 °æ±¾£¬Öð²½Íê³ÉÁËÒ»Ì×Àà Pandas
API¡£Ä¿Ç°½Ó¿Ú³ÉÊì¶È¿ÉÖ§³Å Pandas Óë cuDF µÄÐͬÊý¾Ý´¦Àí¡£
ÌØ¶¨Êý¾ÝÀàÐÍ´¦Àí·½Ãæ£¬OpenCL ÌṩÁËͼÏñ´¦ÀíµÄ GPU ¼ÓËÙÄÜÁ¦ [8]£¬Ó¢Î°´ïÔÚ cuStrings
[9] ÏîÄ¿ÖÐÌṩÁËÃæÏò×Ö·û´®µÄ GPU ¼ÓËÙ´¦Àíº¯Êý¿â£¬ZILLIZ ÔÚÆä¼´½«¿ªÔ´µÄ Arctern
ÏîÄ¿Öн«ÍƳöÃæÏòµØÀíÐÅÏ¢Êý¾Ý´¦ÀíµÄ GPU ¼ÓËÙÒýÇæ [10]¡£
ÌØÕ÷ÌáÈ¡
ÌØÕ÷ÌáÈ¡¹ý³Ì¶ÔÔʼÊý¾ÝÖеĹؼüÐÅÏ¢½øÐÐÌáÈ¡²¢±àÂë³É½á¹¹»¯Êý¾Ý£¬Æä½á¹û½«×÷ΪģÐ͵ÄÊäÈëÊý¾Ý²ÎÓëÄ£Ð͵ÄѵÁ·ºÍÑéÖ¤¹ý³Ì¡£ÌØÕ÷ÌáÈ¡¹ý³ÌÉæ¼°µÄ¼ÆËã²Ù×÷Ö÷Òª°üº¬Êý¾ÝµÄÌØÕ÷·ÖÎö¡¢±ä»»ºÍѡȡ£¬ÀýÈç¾ùÖµ¡¢·½²î¡¢Ð·½²î¡¢Ïà¹ØÏµÊýµÈͳ¼ÆÌØÕ÷µÄ¼ÆË㣬¹éÒ»»¯¡¢°×»¯µÈÊý¾Ý±ä»»²Ù×÷£¬ÒÔ¼°
PCA¡¢SVD µÈÌØÕ÷ѡȡ²Ù×÷¡£ÉÏÊö²Ù×÷ÆÕ±éÉæ¼°µ½¶Ô´óÁ¿Êý¾Ý½øÐÐÏàͬ»òÏàËÆµÄ´¦Àí¹ý³Ì£¬ÊʺϲÉÓÃÒì¹¹¼ÓËÙ¼¼ÊõÌáÉý¼ÆËãЧÂÊ¡£
Êý¾Ýͳ¼ÆÌØÕ÷·ÖÎö·½Ã棬cuDF [11] ÌṩÁ˶Ô×îÖµ¡¢ÆÚÍû¡¢·½²î¡¢·å¶È¡¢Æ«¶ÈµÈ³£ÓÃͳ¼ÆÁ¿µÄ¼ÆËã½Ó¿Ú¡£´ËÍ⣬cuDF
»¹Ö§³Ö UDF£¬Í¨¹ý JIT ¼¼Êõ½« UDF ±àÒë³É cuda kernel ÔÚ GPU ÖÐÖ´ÐУ¬´Ó¶øÊµÏÖÓû§×Ô¶¨ÒåµÄÊý¾ÝÌØÕ÷·ÖÎö¡£µ±Ç°¸Ã¹¦ÄÜÏà±È
pandas UDF ÄÜÁ¦½ÏÈõ£¬½öÖ§³ÖÊýÖµÐͼ°²¼¶ûÐͼÆËã¡£
Êý¾Ý±ä»»·½Ã棬Ӣΰ´ïÃæÏò¸ßάÊý¾ÝÔËËã·¢²¼ÁË cuPy ÏîÄ¿¡£¸ÃÏîĿʹÓà ndarray ½á¹¹¶Ô¸ßάÊý¾Ý½øÐÐ×éÖ¯£¬²¢ÔÚ´Ë»ù´¡Ö®ÉÏÌṩÁË´óÁ¿µÄÒì¹¹¼ÓËÙÊý¾ÝÔËË㹦ÄÜ£¬ÆäÖаüÀ¨¸µÀïÒ¶±ä»»ÒÔ¼°ÏßÐÔ´úÊý¾ØÕó±ä»»µÈ³£ÓÃÊý¾Ý±ä»»¹¦ÄÜ¡£
ÌØÕ÷ѡȡ·½Ã棬Ӣΰ´ïÍÆ³öµÄ cuML ÏîÄ¿ÌṩÁËÒ»Ì×Òì¹¹¼ÓËٵĻúÆ÷ѧϰ»ù´¡Ëã·¨¿â¡£¸ÃÏîÄ¿×Ô 2018
Äê·¢²¼ÒÔÀ´³ÖÐøµØÀ©Õ¹¶Ô³£ÓõĻúÆ÷ѧϰËã·¨µÄÒì¹¹¼ÓËÙÖ§³Ö£¬µ±Ç°°üº¬ÁË SVD¡¢PCA¡¢UMAP¡¢TSNE¡¢Random
Projection µÈÌØÕ÷³É·Ö·ÖÎö¹¦ÄÜ¡£
Ä£ÐÍÉè¼ÆÓëµ÷ÓÅ
ÔÚÌáÈ¡ÌØÕ÷Ö®ºó£¬Êý¾Ý¿ÆÑ§¼ÒÃÇÐèÒª¸ù¾Ýʵ¼ÊµÄ»úÆ÷ѧϰÎÊÌâÒÔ¼°ÑµÁ·Êý¾ÝµÄÌØÕ÷¶Ô»úÆ÷ѧϰģÐ;ÐÐÉè¼ÆºÍµ÷ÓÅ¡£Ä£ÐÍÉè¼Æ°üÀ¨¶Ô»úÆ÷ѧϰģÐ͵ÄÀàÐÍ¡¢Ä£ÐÍѵÁ·ÖÐÇó½âÓÅ»¯ÎÊÌâµÄËã·¨ÒÔ¼°Ä£ÐͲÎÊý½øÐÐÑ¡Ôñ¡£ÔÚÄ£ÐÍѵÁ·Íê³ÉÖ®ºó£¬»¹ÐèÒªÑé֤ģÐ͵Ľá¹û׼ȷ¶È£¬²¢ÏàÓ¦µÄ¶ÔÄ£ÐÍÉè¼Æ½øÐеü´úµ÷ÓÅ¡£ÔÚ´«Í³µÄ»úÆ÷ѧϰϵͳÖУ¬¸Ã»·½ÚÍêÈ«ÓÉÈ˽øÐоö²ß£¬ÆäЧÂÊÑÏÖØÒÀÀµÓÚÊý¾Ý¿ÆÑ§¼ÒºÍËã·¨¹¤³ÌʦµÄרҵ֪ʶºÍ¾Ñé¡£
ΪÁ˼õÉÙ»úÆ÷ѧϰ¹ý³ÌÖжÔÈËÁ¦ºÍרҵ֪ʶµÄÒÀÀµ£¬½üÄêÀ´Ñ§Êõ½çºÍ²úÒµ½ç¶Ô AutoML Ïà¹Ø¼¼ÊõͶÈëÁË´óÁ¿µÄ¹Ø×¢ºÍ³¢ÊÔ¡£AutoML
ÖÂÁ¦ÓÚ×Ô¶¯»¯Íê³ÉÄ£ÐÍÉè¼Æ£¬²¢¸ù¾ÝÄ£ÐÍÑéÖ¤½á¹û¶ÔÄ£Ð͵ÄÉè¼Æ¿Õ¼ä½øÐÐ×Ô¶¯ËÑË÷£¬´Ó¶ø´ïµ½½üËÆ×îÓŵÄÄ£ÐÍÑ¡ÔñºÍÅäÖá£AutoML
¼õÉÙÁË»úÆ÷ѧϰ¹ý³ÌÖеÄÈ˹¤²ÎÓ룬´Ó¶øÓÐÍûÌá¸ß»úÆ÷ѧϰµü´ú¹ý³ÌµÄЧÂÊ¡£
µ±Ç°ÉÐδ³öÏÖÕë¶Ô AutoML µÄÒì¹¹¼ÓËÙÏîÄ¿»òÕßËã·¨¿â¡£È»¶ø£¬²»ÂÛÊÇÈ˹¤»¹ÊÇ×Ô¶¯»¯µÄÄ£ÐÍÉè¼Æ¶¼ÐèÒª¶ÔÄ£Ð͵ÄѵÁ·ºÍÑéÖ¤¹ý³Ì½øÐдóÁ¿µü´ú£¬ÔÚÕâ·½ÃæÒì¹¹¼ÆËã¼¼ÊõÒѾ±»ÆÕ±éÓÃÓÚ¼ÆËã¹ý³ÌµÄ¼ÓËÙ¡£
Ä£ÐÍѵÁ·
»úÆ÷ѧϰµÄÄ£ÐÍѵÁ·²¿·Ö´æÔÚ´óÁ¿µÄÔËËãÃܼ¯ÐÍÈÎÎñ£¬ÆäÔËËã¸ºÔØ²»½öÈ¡¾öÓÚËã·¨Âß¼£¬Ò²È¡¾öÓÚѵÁ·¼¯¡¢Êý¾Ý¼¯µÄÁ¿¡£Ëæ×ÅÊý¾ÝµÄ±¬Õ¨Ê½Ôö³¤£¬Ä£ÐÍѵÁ·µÄÈÎÎñ¸ºÔØÒ²ÏÔÖøÌáÉý£¬´«Í³µÄ»ùÓÚ
CPU µÄ·½°¸ÔÚÐÔÄÜ¡¢É豸³É±¾¡¢Äܺĵȼ¸¸ö·½ÃæÓÀ´½Ï´óÌôÕ½¡£Òò´Ë£¬Òì¹¹¼ÓËÙ¼¼Êõ³ÉΪ½â¾öÉÏÊöÌôÕ½µÄÖØÒªÍ¾¾¶£¬¸ü¸ßµÄÄ£ÐÍѵÁ·ËÙ¶ÈÒ²½«Ö±½ÓÌá¸ßÄ£Ð͵ü´úÖÐÈ˹¤»·½ÚµÄ²ÎÓëЧÂÊ¡£
Êý¾Ý¼¯´¦Àí·½Ãæ£¬cuML ÌṩÁË train_test_split£¬Óë sklearn ÖеĽӿÚÐÐΪÀàËÆ£¬ÓÃÓÚ»®·ÖѵÁ·¼¯ºÍ²âÊÔ¼¯¡£
Ëã·¨·½Ã棬cuML ÌṩÁËÒ»Ì× GPU ¼ÓËÙµÄ ML Ëã·¨°ü¡£ÔÚµ±Ç° 0.13 °æ±¾ÖУ¬³£ÓÃËã·¨Èç
linear regression, SGD, random forest, SVM, k-means
µÈ¶¼Óк¸Ç£¬ÁíÍ⻹ÌṩÁ˶Ôʱ¼äÐòÁÐÔ¤²â·ÖÎöµÄÖ§³Ö£¬°üÀ¨ HoltWinters, kalman filter,
ARIMA Èý¸öÄ£ÐÍ¡£ÔÚÔçÆÚ°æ±¾ÖУ¬ÊÜÖÆÓÚÏÔ´æÈÝÁ¿£¬cuML ¶ÔÓÚ´óÄ£ÐÍ»ò´óѵÁ·¼¯µÄÖ§³Ö²»¾¡ÈËÒâ¡£cuML
×Ô 0.9 °æ±¾Ìṩ¶à½Úµã / ¶à¿¨·½°¸£¨MNMG£©£¬µ±Ç°ÒÑÓÐµÄ MNMG Ëã·¨°üÀ¨£ºK-means,
SVD, PCA£¬KNN£¬random forest¡£
»ùÓÚÊ÷µÄËã·¨·½Ã棬XGBoost ÔçÔÚ 16 Äêµ×¾Í¿ªÊ¼ÁËËã·¨µÄ GPU ¼ÓËÙ¹¤×÷£¬²¢ÓÚ 17 ÄêÖ§³Ö¶à¿¨¡£cuML
ÔÚ½üÆÚµÄ°æ±¾ÖÐÒ²¶Ô»ùÓÚÊ÷µÄËã·¨½øÐÐÁËÐÔÄÜÓÅ»¯ [12]£¬×Ô 0.10 °æ±¾ÌṩÓë XGBoost GPU
¼ÓËÙËã·¨µÄ¶Ô½ÓÖ§³Ö [13]¡£
×ܽáÓëÕ¹Íû
Òì¹¹¼ÆËãÔÚ»úÆ÷ѧϰӦÓõĿª·¢±Õ»·ÖжÔÓÚÌá¸ß¡°ÈË¡±Óë¡°»ú¡±µÄЧÂÊÕ¹ÏÖ³ö¾Þ´óDZÁ¦£¬²¿·Ö¿â¡¢ÏµÍ³Óë²úÆ·ÒѾӦÓÃÓÚÉú²ú»·¾³¡£µ«Òì¹¹¼ÆËã¼¼ÊõÔÚÈ˹¤ÖÇÄÜÁìÓòÈÔ´¦ÓÚ¿ìËÙ·¢Õ¹ÆÚ£¬½øÒ»²½·á¸»¹¤¾ßÁ´ÒÔ¼°ÍêÉÆÓëÒÑÓÐÉú̬µÄÕûºÏÊÇÒì¹¹¼ÆËã¼¼Êõ¼ÓËÙÂ䵨µÄÖØÒªÌôÕ½¡£µ±Ç°Òì¹¹¼ÆËã¼¼ÊõµÄÖ÷ÒªÍÆ¶¯Á¦ÊÇӢΰ´ïµÈ¼¼Êõ¾ÞÍ·£¬Ò²Ó¿ÏÖ³öÒ»ÅúÈç
ZILLIZ¡¢Kinetica¡¢OmniSci µÈÐÂÐ˼¼ÊõÍŶӣ¬Ö÷Á÷µÄ¼ÆËã¿ò¼ÜÈç Spark µÈÒ²Öð²½Ìá¸ß¶ÔÒì¹¹¼ÆËãµÄÔÉúÖ§³Ö¡£¿ÉÒÔÔ¤¼û£¬Òì¹¹¼ÆË㽫³ÉΪÈ˹¤ÖÇÄÜÓ¦ÓÃÁìÓòµÄÖØÒª¼¼ÊõÇ÷ÊÆ£¬ÔÚÌá¸ß²úÆ·ÑݽøÐ§ÂÊ¡¢½µµÍÉ豸ÓëÈ˹¤³É±¾·½Ãæ·¢»ÓÖÁ¹ØÖØÒªµÄ×÷Óá£
|