RI³ÉÏñÊÖÒÕÔÚÉúֳҽѧÖÐµÄÆæÒìÓÅÊÆ
·ÅÉäÏß³ÉÏñÊÖÒÕÒÀ¸½Æä¾«×¼µÄÆÊ½â¶¨Î»ÄÜÁ¦£¬ÔÚ±¾ÌåÄÚÉ侫¶¯Ì¬ÊÓ²ìÁìÓò¾ß±¸²»¿ÉÌæ»»ÐÔ¡£Ïà½ÏÓڹŰ峬Éù¼ì²â£¬RIÄܹ»²¶»ñ0.1Ãë¼¶µÄÉ侫¹ÜËõ¶Ì½ÚÂÉ£¬ÅäºÏÔìÓ°¼ÁʹÓÿÉÇåÎú·ºÆð¾«ÄÒÏÙѹÁ¦×ª±äÇúÏß¡£ÕâÖÖÌØÊâÓ°ÏñºÏ¼¯¶ÔÕï¶ÏÄæÏòÉ侫֢¡¢Ê侫¹Ü¹£×è¾ßÓÐÖ÷Òª²Î¿¼¼ÛÖµ£¬ÆäÖÐ78%µÄ°¸Àý¸½´ø²¡ÀíÇÐÆ¬±ÈÕÕÊý¾Ý¡£ÖµµÃ×¢ÖØµÄÊÇ£¬×¨ÒµÒ½ÁÆÖ°Ô±ÔÚÔÚÏßԢĿʱÐèÌØÊâ¹Ø×¢±ê×¢µÄÔìÓ°¼ÁŨ¶È²ÎÊý£¬ÕâÖ±½ÓÓ°ÏìÓ°ÏñÅжÁµÄ׼ȷÐÔ¡£
ÃÚÄòϵͳ¼²²¡Õï¶ÏµÄÓ°ÏñѧÒÀ¾Ý
±¾»ã±àÊÕ¼µÄµä·¶²¡ÀýÖУ¬ÓÐ43ÀýÉæ¼°Ç°ÏßÏÙ·Ê´óºÏ²¢É侫Õϰ¡£Í¨¹ýRI¶¯Ì¬×·×ٿɼû¾«ÒºÔÚÄòµÀǰÏßÏÙ²¿µÄÒì³£ÖÍÁôÕ÷Ïó£¬ÕâÖÖ¿ÉÊÓ»¯Ö¤¾Ý×ÊÖúÒ½Éú¾«×¼ÅжϹ£×èλÖ᣶ÔÐèÒªÔÚÏßԢĿÍêÕûÀú³ÌµÄѧϰҽʦϵͳÌṩµÄÂýËÙ²¥·Å¹¦Ð§£¨1/8xÖÁ1/32x£©¿ÉÇåÎúÊÓ²ìÉ侫Æðʼ½×¶Î¾«ÄÒÆ½»¬¼¡µÄͬ²½Ëõ¶ÌʱÐò¡£ÁÙ´²Í³¼ÆÏÔʾ£¬ÕâÀàÓ°Ïñ×ÊÁÏʹÊÖÊõ¼Æ»®Öƶ©×¼È·ÂÊÌáÉý27%£¬ÌØÊâÔÚ´¦Öóͷ£ÖØ´óÐÔÉ侫¹ÜÄÒÖ×ʱÓÅÊÆÏÔÖø¡£
Ó°ÏñÊý¾Ý¼¯µÄ¿ÆÑ§·ÖÀàϵͳ
¸ÃºÏ¼¯½ÓÄÉÈý¼¶·ÖÀà±ê×¼£º°´ÆÊ½â²¿Î»·ÖΪǰÏßÏٶΡ¢¾«ÄҶΡ¢Ê侫¹ÜÄ©¶Î£»°´²¡±äÀàÐ͹éÄÉΪ¹£×èÐÔ¡¢Éñ¾ÐÔ¡¢Ñ×Ö¢ÐÔÈýÀࣻ°´ÔìÓ°·½·¨Çø·ÖͨÀýÔìÓ°ÓëÔöÇ¿ÔìÓ°¡£ÕâÖֽṹ»¯±àÅż«´óÌáÉýÁËÔÚÏßԢĿЧÂÊ£¬Ò½Ê¦¿Éƾ֤ÁÙ´²ÐèÇó¿ìËÙ¶¨Î»Ä¿µÄ°¸Àý¡£ÔÚ¼ìË÷"É侫ʹ֢ºòȺ"ʱ£¬ÏµÍ³»áÖÇÄÜÍÆËÍ12ÀýÏà¹Ø¶¯Ì¬Ó°Ïñ£¬ÆäÖÐ9Àý¸½´øÄòÁ÷¶¯Á¦Ñ§¼ì²âµÄµþ¼ÓÊý¾Ý¡£
ÌØÊⲡÀýµÄÁÙ´²½Ìѧ¼ÛÖµ
»ã±àÖÐÊÕ¼µÄ27ÀýÒÉÄÑÔÓÖ¢Ó°Ïñ¾ßÓÐÖ÷Òª½ÌѧÒâÒ壬°üÀ¨ÓÐÊýµÄÏÈÌìÐÔÉ侫¹ÜÖØ¸´»ûÐΰ¸Àý¡£Í¨¹ýRIÒ»Á¬Ö¡ÆÊÎö£¬¿ÉÒÔÇåÎú¿´µ½Ë«Í¨µÀÉ侫ʱµÄѹÁ¦²îת±ä£¬ÕâÀàÓ°Ïñ×ÊÁÏÔÚͨÀýÁÙ´²Êµ¼ùÖÐÄÑÒÔ»ñÈ¡¡£ÔÚÏßÔ¢Ä¿Æ½Ì¨ÌØÊâÉèÖÃ"ר¼Ò½â¶Á"ģʽ£¬ÓÉÈýλ¸±Ö÷ÈÎÒÔÉÏҽʦͬ²½½â˵Ҫº¦Ö¡ÌØÕ÷£¬ÅäºÏÈýÎ¬ÖØÐÞÄ£×ÓÑÝʾÒì³£ÆÊ½â½á¹¹£¬ÕâÖÖÊÓÌý×éºÏ½ÌѧʹÃ÷ȷЧÂÊÌáÉý3±¶ÒÔÉÏ¡£
Ó°ÏñÊý¾ÝµÄÇå¾²»ñÈ¡ÓëʹÓù淶
ËùÓÐRI±¾ÌåÄÚÉ侫ӰÏñ¾ùͨ¹ýÂ×ÀíίԱ»áÉóºË£¬Êý¾ÝÊÕÂÞÀú³ÌÑÏ¿á×ñÕÕHIPAA£¨¿µ½¡°ü¹ÜÁ÷ͨÓëÔðÈη¨°¸£©±ê×¼¡£ÔÚÏßԢĿƽ̨½ÓÄɶ¯Ì¬Ë®Ó¡ÊÖÒÕºÍ128λ¼ÓÃÜ´«Ê䣬ȷ±£Ò½ÁÆÊý¾ÝÇå¾²ÐÔ¡£Ö´ÒµÒ½Ê¦ÔÚʹÓÃÕâЩӰÏñ¾ÙÐÐѧÊõ½»Á÷ʱ£¬Ðè×¢ÖØ»¼ÕßÒþ˽ÐÅÏ¢µÄÍÑÃô´¦Öóͷ££¬ÓÈÆäÊÇÉæ¼°ÉúÖ³Æ÷ÆÊ½âÌØÕ÷µÄÓ°Ïñ½ØÍ¼£¬±ØÐèɾ³ýËùÓпÉʶ±ðСÎÒ˽¼ÒÉí·ÝµÄÊý¾ÝÔªËØ¡£
±¾RI±¾ÌåÄÚÉ侫»ã±àºÏ¼¯×÷Ϊ¿çѧ¿ÆÒ½Ñ§Ó°Ïñ×ÊÔ´£¬¼ÈÖª×ãÁÙ´²Õï¶Ï²Î¿¼ÐèÇó£¬ÓÖΪ½Ìѧ¿ÆÑÐÌṩÕä¹óËØ²Ä¡£Í¨¹ý¹æ·¶»¯µÄÔÚÏßԢĿƽ̨£¬Ò½ÁÆ×¨ÒµÖ°Ô±¿ÉÏµÍ³ÕÆÎÕÉ侫ÐÄÀíµÄ¶¯Ì¬Ó°ÏñÌØÕ÷£¬ÌáÉýÃÚÄòÉúֳϵͳ¼²²¡µÄÕïÖÎˮƽ¡£Î´À´½«Ò»Á¬¸üÐÂÖÇÄܱêעϵͳÓëÐéÄâÏÖʵ½»»¥¹¦Ð§£¬Íƶ¯Ó°ÏñҽѧµÄÊý×Ö»¯×ªÐÍÀú³Ì¡£
Ò»¡¢RustÄÚÁª»ã±àÊÖÒÕϵͳ¸ÅÊö
RustµÄÄÚÁª»ã±à¹¦Ð§Í¨¹ý±ê×¼¿âÌṩµÄasm!ºêʵÏÖ£¬¸ÃÌØÕ÷×Ô2021Äê°æÆð³ÉΪÎȹ̹¦Ð§¡£×÷Ϊϵͳ±à³ÌÓïÑԵĽ¹µãÀ©Õ¹£¬ÄÚÁª»ã±àÔÊÐí¿ª·¢ÕßÖ±½ÓÔÚunsafe¿éÖÐǶÈëÌØ¶¨¼Ü¹¹µÄ»ã±àÖ¸Áî¡£ÔÚRust By ExampleµÄʵ¼ù½ÌѧÖУ¬ÕâÖÖÄÜÁ¦³£±»ÓÃÓÚ»á¼ûÌØÊâ¼Ä´æÆ÷»òʵÏÖ¼«ÖÂÐÔÄÜÓÅ»¯¡£ÓëCÓïÑԵĹŰ巽·¨²î±ð£¬Rustͨ¹ýÑÏ¿áµÄÀàÐͼì²éÈ·±£ÄÚ´æÇå¾²£¬×ÝÈ»ÔÚ¾ÙÐеײã²Ù×÷ʱҲÄÜά»¤ËùÓÐȨϵͳµÄÍêÕûÐÔ¡£
¶þ¡¢»ù±¾Óï·¨½á¹¹ÓëÇå¾²¹æ·¶
ÄÚÁª»ã±àµÄ±ê×¼ÃûÌÃΪasm!(Ä£°å, ²Ù×÷Êý, Ñ¡Ïî)
£¬ÆäÖÐÄ£°å×Ö·û´®°üÀ¨AT&T»òIntelÓï·¨Ö¸Áî¡£¿ª·¢ÕßÐèÒªÌØÊâ×¢ÖØÔÚRustÖÐʹÓÃÄÚÁª»ã±à±ØÐè°ü¹üÔÚunsafe¿éÖУ¬ÕâÊDZàÒëÆ÷±ÜÃâÒâÍâÄÚ´æ»á¼ûµÄÒªº¦Éè¼Æ¡£ÒÔx86_64¼Ü¹¹ÎªÀý£¬±àд¼òÆÓµÄMOVÖ¸ÁîʱÐèÒªÖ¸¶¨clobbered¼Ä´æÆ÷£¬Í¨¹ý"memory"±ê¼Ç֪ͨ±àÒëÆ÷¿ÉÄÜÐ޸ĵÄÄÚ´æÇøÓò¡£ÔõÑùÔÚ°ü¹ÜÇå¾²ÐÔµÄÌõ¼þÏÂ×î´ó»¯»ã±àЧÂÊ£¿ÕâÐèҪ׼ȷ¿ØÖƲÙ×÷ÊýÔ¼ÊøÌõ¼þÓ븱×÷ÓÃÉùÃ÷¡£
Èý¡¢¼Ä´æÆ÷·ÖÅÉÓë²ÎÊýת´ï»úÖÆ
RustµÄasm!ºêÌṩÎÞаµÄ¼Ä´æÆ÷°ó¶¨¼Æ»®£¬Ö§³ÖÊäÈë¡¢Êä³ö¡¢¶ÁдÈýÖÖ²Ù×÷ÊýÀàÐÍ¡£¹ØÓÚ·µ»ØÖµ´¦Öóͷ££¬¿É½ÓÄÉout("eax") result
ÕâÑùµÄÓï·¨½«Rust±äÁ¿°ó¶¨µ½Ìض¨¼Ä´æÆ÷¡£µ±´¦Öóͷ£¸¡µãÔËËãʱ£¬±ØÐè×¢ÖØ²î±ð¼Ü¹¹µÄSIMD¼Ä´æÆ÷ÉèÖòî±ð¡£ÖµµÃ¹Ø×¢µÄÊÇ£¬Rust 1.67ÐÂÔöµÄÈ«¾Ö»ã±àÆ÷Ö¸Áglobal_asm!£©À©Õ¹ÁËÄ£¿é¼¶»ã±à´úÂëǶÈëÄÜÁ¦£¬ÕâÔÚ¿ª·¢²Ù×÷ϵͳÄں˵ȳ¡¾°ÓÈΪÖ÷Òª¡£ÔõÑùÔÚ²î±ðÄ¿µÄ¼Ü¹¹Öд¦Öóͷ£¼Ä´æÆ÷·ÖÅÉ£¿ÕâÐèÒªÁ¬ÏµLLVMºó¶ËµÄÏêϸʵÏÖ¾ÙÐе÷½â¡£
ËÄ¡¢¿çƽ̨¼æÈÝʵÏÖÕ½ÂÔ
´¦Öóͷ£¶à¼Ü¹¹Ö§³Öʱ£¬Ìõ¼þ±àÒ루cfgÊôÐÔ£©³ÉΪҪº¦¹¤¾ß¡£Õë¶ÔARMÓëx86µÄÌØÕ÷²î±ð£¬¿ª·¢ÕßÓ¦µ±ÎªÃ¿¸ö¼Ü¹¹½¨Éè×ÔÁ¦µÄasm!´úÂë¿é¡£Rust By ExampleÌṩÁËÒ»Ì×ÓÐÓõĴúÂë×é֯ģʽ£º½«Ìض¨Æ½Ì¨µÄ»ã±àʵÏÖ·â×°ÔÚÌØÕ÷£¨trait£©ÖУ¬Í¨¹ý±àÒëʱ¼ì²é×Ô¶¯Ñ¡ÔñʵÏÖ°æ±¾¡£¹ØÓÚÖ¸ÁѡÔñÎÊÌ⣬¿ÉÁ¬Ïµtarget_featureÊôÐÔʵÏÖÔËÐÐʱ¼ì²â¡£ÔÚά»¤¿çƽ̨ÏîĿʱ£¬±ØÐèÑÏ¿á²âÊÔÿ¸ö¼Ü¹¹µÄABI¼æÈÝÐÔ£¬ÌØÊâÊÇÉæ¼°Õ»Ö¡²Ù×÷»òϵͳŲÓõij¡¾°¡£
Îå¡¢ÐÔÄÜÓÅ»¯Óëµ÷ÊÔ¼¼ÇÉ
ÔÚÐÔÄÜÒªº¦Â·¾¶ÖÐʹÓÃÄÚÁª»ã±àʱ£¬LLVMÓÅ»¯Æ÷µÄ½»»¥·½·¨Ö±½ÓÓ°Ïì×îÖÕЧ¹û¡£Í¨¹ýÓÅ»¯Ñ¡ÏîÈçnomemºÍreadnone¿ÉÌáÉýÖ¸Áîµ÷ÀíЧÂÊ¡£µ÷ÊÔ½×¶ÎÍÆ¼öʹÓÃcargo-asm¹¤¾ßÖ±½ÓÊÓ²ìÌìÉúµÄ»úеÂ룬ÕâÄÜÓÐÓÃÑéÖ¤¼Ä´æÆ÷·ÖÅÉÊÇ·ñÇкÏÔ¤ÆÚ¡£µä·¶¹ýʧ°¸Àý°üÀ¨ÒÅÍüÖ¸¶¨volatileÐÞÊε¼Ö±àÒëÆ÷ÓÅ»¯µôÐëÒªÖ¸Á»ò¹ýʧԤ¼ÆÖ¸ÁîÖÜÆÚÊýÔì³ÉµÄÐÔÄÜ»ØÍË¡£ÔõÑùƽºâÇå¾²ÐÔÓëÖ´ÐÐЧÂÊ£¿ÕâÐèÒªÁ¬ÏµRustµÄÁ㱾ǮÁýͳÔÔò¾ÙÐÐÏ꾡Éè¼Æ¡£
Áù¡¢Rust By ExampleʵսӦÓÃÆÊÎö
²ÎÕÕRust¹Ù·½½ÌѧÏîÄ¿ÖеÄÄÚÁª»ã±àÕ½ڣ¬ÎÒÃǿɹ¹½¨ÍêÕûµÄ¿ª·¢Ñ§Ï°Â·¾¶¡£°¸Àýº¸Ç´Ó¼òÆÓµÄCPUID¼ì²âµ½ÍêÕûµÄÉÏÏÂÎÄÇл»ÊµÏÖ£¬Ã¿¸öʾÀý¶¼ÅäÓÐÏêϸµÄÑ¡Ïî˵Ã÷¡£Í¨¹ý±ÈÕÕCÄÚÁª»ã±àʵÏÖ£¬¿ÉÒÔÇåÎú¿´³öRustÔÚÄÚ´æÇå¾²°ü¹Ü·½ÃæµÄÆæÒìÓÅÊÆ¡£½Ì³ÌÌØÊâÇ¿µ÷¹ýʧ´¦Öóͷ£Ä£Ê½£¬Ê¹ÓÃcore::archÄ£¿éÌṩµÄ¼Ü¹¹Ìض¨º¯Êý×÷Ϊ¸¨ÖúÑéÖ¤ÊֶΡ£Í¨¹ýÖð²½¹¹½¨¿ÉÖÐÖ¹µÄ»ã±àº¯Êý¿ò¼Ü£¬¿ª·¢ÕßÄÜÉîÈëÃ÷È·ÔõÑùÔÚRustÀàÐÍϵͳ±£»¤ÏÂÇå¾²²Ù×÷µ×²ãÓ²¼þ¡£
ÕÆÎÕRustÄÚÁª»ã±àÊÖÒÕÐèÒªÀíÂÛÓëʵ¼ù²¢ÖØ¡£´ÓRust By ExampleÌṩµÄ»ù´¡Ä£Ê½³ö·¢£¬¿ª·¢ÕßÄÜÖð²½¹¹½¨Çå¾²¿É¿¿µÄϵͳ¼¶½â¾ö¼Æ»®¡£¸ÃÊÖÒÕʹRustÔÚ¼á³ÖÄÚ´æÇå¾²ÓÅÊÆµÄͬʱ£¬»ñµÃÁËÓë¹Å°åϵͳÓïÑÔÒ»ÂɵÄÓ²¼þ¿ØÖÆÄÜÁ¦£¬Îª²Ù×÷ϵͳ¿ª·¢¡¢Çý¶¯±à³ÌµÈ³¡¾°ÌṩÁËеĿÉÄÜ¡£¼Ç×ÅʼÖÕÔÚÐÔÄÜÐèÇóÓëÇå¾²¹æ·¶¼ä×·Çó×î¼Ñƽºâ£¬ÕâÕýÊÇRustϵͳ±à³ÌÕÜѧµÄ½¹µãÌåÏÖ¡£