×ÔÓÉ»ã±àX¶î¶¨³¡¾°ÓÅ»¯Ö¸ÄÏ??¡ºÔÚÏßÃâ·Ñ²¥·Å¡»??¡º³©ÏíÒ»Ö±¡»?´Óµ×²ãÔ­Àíµ½ÊµÕ½¼¼ÇÉ£¬ÎÒÃǽ«ÎªÄú·ºÆðÒ»Ì×ÖÜÈ«¡¢ÊÊÓõÄÓÅ»¯½â¾ö¼Æ»®£¬×ÊÖúÄúÔÚÇ¿ÁÒµÄÊÖÒÕ¾ºÕùÖÐÍÑÓ±¶ø³ö£¬¼ÝÔ¦ÅÌËãµÄδÀ´ ¡£¶´Ï¤¡°¶î¶¨³¡¾°¡±£ºÐÔÄÜÓÅ»¯µÄ¾«×¼×޵ãÔÚ̽ÌÖ¡°×ÔÓÉ»ã±àX¶î¶¨³¡¾°ÓÅ»¯Ö¸ÄÏ¡±Ö®Ç°£¬ÎÒÃDZØÐèÊ×ÏÈÃ÷È·¡°¶î¶¨³¡¾°¡±ÕâÒ»¿´·¨µÄÉîÔ¶ÒâÒå ¡£Ëü²¢·ÇѰ³£¶øÌ¸µÄͨÓÃÓÅ»¯£¬¶øÊÇÖ¸ÏòÌØ¶¨Ó¦Óá¢Ìض¨Ó²¼þÇéÐÎϵÄÐÔÄÜ¡°×î¼Ñʵ¼ù¡±?"> ×ÔÓÉ»ã±àX¶î¶¨³¡¾°ÓÅ»¯Ö¸ÄÏ">

paµç×Ó¹Ù·½ÍøÕ¾

PA¼¯ÍÅ|Öйú¹ÙÍø
ÏûºÄÈÕ±¨Íø > ÒªÎÅ

×ÔÓÉ»ã±àX¶î¶¨³¡¾°ÓÅ»¯Ö¸ÄÏ

ÄÐÉúÍâÑó×öÄðÄð½´½´µÄȪԴ½ÒÃØ,Ì½Ñ°ÖÆ×÷Àú³Ì,·ÖÏíÒì¹úÃÀʳÎÄ»¯

ʱ¼ä: 2025-10-24 02:32:00 ȪԴ:³ÂѧӢ

ÍâµØÊ±¼ä2025-10-24

´Óµ×²ãÔ­Àíµ½ÊµÕ½¼¼ÇÉ£¬ÎÒÃǽ«ÎªÄú·ºÆðÒ»Ì×ÖÜÈ«¡¢ÊÊÓõÄÓÅ»¯½â¾ö¼Æ»®£¬×ÊÖúÄúÔÚÇ¿ÁÒµÄÊÖÒÕ¾ºÕùÖÐÍÑÓ±¶ø³ö£¬¼ÝÔ¦ÅÌËãµÄδÀ´ ¡£

¶´Ï¤¡°¶î¶¨³¡¾°¡±£ºÐÔÄÜÓÅ»¯µÄ¾«×¼×޵ã

ÔÚ̽ÌÖ¡°×ÔÓÉ»ã±àX¶î¶¨³¡¾°ÓÅ»¯Ö¸ÄÏ¡±Ö®Ç°£¬ÎÒÃDZØÐèÊ×ÏÈÃ÷È·¡°¶î¶¨³¡¾°¡±ÕâÒ»¿´·¨µÄÉîÔ¶ÒâÒå ¡£Ëü²¢·ÇѰ³£¶øÌ¸µÄͨÓÃÓÅ»¯£¬¶øÊÇÖ¸ÏòÌØ¶¨Ó¦Óá¢Ìض¨Ó²¼þÇéÐÎϵÄÐÔÄÜ¡°×î¼Ñʵ¼ù¡± ¡£ÏëÏóһϣ¬Ò»Á¾F1Èü³µµÄµ÷У£¬¾ø²»»áÊÇΪÁËÓ¦¶ÔÒ»Ñùƽ³£Í¨ÇÚ£¬¶øÊÇΪÁËÔÚÈüµÀÉÏÅܳö¼«ÖµÄËÙÂÊ ¡£

ͬÑù£¬¶î¶¨³¡¾°µÄÓÅ»¯£¬ÕýÊÇÒª½«ÅÌËã×ÊÔ´¾«×¼Æ¥Åäµ½Æä×î½¹µã¡¢×îºÄʱµÄʹÃüÉÏ£¬½«ÆäÐÔÄÜʩչµ½¼«Ö ¡£

ºÎν¡°¶î¶¨³¡¾°¡± £¿Ëü°üÀ¨Á˼¸¸öÒªº¦Î¬¶È£º

Ó¦ÓÃÌØÕ÷£ºÄúµÄ³ÌÐòÊÇ÷缯ÐÍÅÌËã £¿Êý¾Ý÷缯ÐÍ £¿ÕÕ¾ÉI/O÷缯ÐÍ £¿ËüÊÇ·ñÉæ¼°´ó×ڵĸ¡µãÔËËã¡¢ÏòÁ¿²Ù×÷¡¢»òÕßÌØ¶¨µÄÖ¸Á£¨ÈçAVX¡¢NEON£© £¿ÀýÈ磬ÔÚͼÏñ´¦Öóͷ£ÖУ¬¾í»ý²Ù×÷ºÍÏñËØ¼¶ÔËËãÊǽ¹µã£»ÔÚ½ðÈÚÆÊÎöÖУ¬¸ßƵÉúÒâµÄµÍÑÓ³ÙÖÁ¹ØÖ÷Òª£»ÔÚ¿ÆÑ§ÅÌËãÖУ¬´ó¹æÄ£¾ØÕóÔËËãÊdz£Ì¬ ¡£

Ó²¼þÇéÐΣºÄúÔËÐдúÂëµÄCPUÐͺ𢽹µãÊý¡¢»º´æ½á¹¹¡¢ÄÚ´æ´ø¿í¡¢GPUÐͺŵÈ£¬¶¼Ö±½ÓÓ°Ïì×Å»ã±à´úÂëµÄÖ´ÐÐЧÂÊ ¡£Í³Ò»¶Î»ã±à´úÂ룬ÔÚ²î±ð¼Ü¹¹µÄ´¦Öóͷ£Æ÷ÉÏ£¬ÆäÐÔÄÜÌåÏÖ¿ÉÄÜÌì²îµØ±ð ¡£ÀýÈ磬ijЩָÁîÔÚIntelƽ̨ÉÏÌåÏÖÓÅÒ죬µ«ÔÚARMƽ̨ÉÏ¿ÉÄÜÐèÒª²î±ðµÄʵÏÖ·½·¨ ¡£

ÐÔÄÜÖ¸±ê£ºÄú×î¿´ÖØµÄÊÇʲô £¿ÊǼ«ÖµÄÍÌÍÂÁ¿ £¿ÊǺÁÃë¼¶µÄÑÓ³Ù £¿ÕÕ¾ÉÔÚÌØ¶¨¹¦ºÄϵÄÐÔÄÜÌåÏÖ £¿¡°¶î¶¨³¡¾°¡±µÄ½ç˵£¬Ò²°üÀ¨ÁËÄúÐèÒªÓÅ»¯µÄÏêϸÐÔÄÜÖ¸±ê ¡£

Ã÷È·Á˶³¡¾°£¬ÎÒÃDZãÕÒµ½ÁËÐÔÄÜÓÅ»¯µÄ¡°°ÐÐÄ¡± ¡£¶ø¡°×ÔÓÉ»ã±à¡±£¬ÔòÊÇʵÏÖÕâÒ»¾«×¼ÓÅ»¯µÄÀûÆ÷ ¡£¸ß¼¶ÓïÑÔËäÈ»´øÀ´ÁË¿ª·¢µÄ±ã½ÝÐÔ£¬µ«ÔÚijЩ¶ÔÐÔÄÜÓÐ׿«ÖÂÒªÇóµÄ³¡¾°Ï£¬ÆäÁýͳ²ã¼¶ÍùÍù»áÒþ²ØµôһЩҪº¦µÄÐÔÄÜϸ½Ú£¬µ¼Ö±àÒëÆ÷ÌìÉúµÄ´úÂë²¢·Ç×îÓÅ ¡£×ÔÓÉ»ã±à£¬×÷ΪÅÌËã»úÖ¸ÁîµÄÖ±½ÓÌåÏÖ£¬ÉÁ¿ª·¢ÕßÄܹ»Ö±´ïÓ²¼þ²ãÃæ£¬¾ÙÐÐ×îϸÄ廯µÄ¿ØÖÆ ¡£

»ã±àµÄ¡°×ÔÓÉ¡±£ºÕÆ¿ØÓ²¼þµÄÔ¿³×

¡°×ÔÓÉ»ã±à¡±²¢·ÇÒâζ×ÅÎÞÐòµÄ¡¢ËæÒâµÄ±àд ¡£Ç¡Ç¡Ïà·´£¬ËüÊÇÒ»ÖÖ»ùÓÚ¶ÔÅÌËã»úϵͳ½á¹¹Éî¿ÌÃ÷È·µÄ¡¢¸ß¶È׼ȷµÄ±à³Ì·½·¨ ¡£Ëü¸¶Ó뿪·¢ÕßÒÔÏÂÄÜÁ¦£º

Ö¸Á׼ȷ¿ØÖÆ£ºÄܹ»Ñ¡ÓÃ×îÊʺÏÌØ¶¨²Ù×÷µÄ»úеָÁ×èÖ¹²»ÐëÒªµÄÖ¸Áîת»»»òÈßÓà²Ù×÷ ¡£ÀýÈ磬ֱ½ÓʹÓÃSIMD£¨µ¥Ö¸Áî´ó¶¼¾Ý£©Ö¸ÁîÀ´²¢Ðд¦Öóͷ£¶à¸öÊý¾Ý£¬´Ó¶ø´ó·ùÌáÉýÅÌËã÷缯ÐÍʹÃüµÄÍÌÍÂÁ¿ ¡£¼Ä´æÆ÷·ÖÅÉÓÅ»¯£ºÄܹ»Ï¸Ä嵨¹ÜÀíCPU¼Ä´æÆ÷£¬×î´óÏ޶ȵØïÔÌ­ÄÚ´æ¶Áд²Ù×÷ ¡£

¼Ä´æÆ÷ÊÇCPUÄÚ²¿ËÙÂÊ×î¿ìµÄ´æ´¢µ¥Î»£¬ÆµÈÔµÄÄÚ´æ»á¼û»á³ÉΪÐÔÄÜÆ¿¾± ¡£Í¨¹ýºÏÀíµÄ¼Ä´æÆ÷·ÖÅÉ£¬¿ÉÒÔÏÔÖøÌá¸ß´úÂëµÄÖ´ÐÐЧÂÊ ¡£Á÷Ë®ÏߺͷÖÖ§Õ¹ÍûʹÓãºÉîÈëÃ÷È·CPUµÄÁ÷Ë®ÏßÊÂÇéÔ­ÀíºÍ·ÖÖ§Õ¹Íû»úÖÆ£¬±àдÄܹ»×î´ó»¯Ö¸Áî²¢ÐжȺÍ×îС»¯Á÷Ë®ÏßÍ£ÁôµÄ´úÂë ¡£

Õâ°üÀ¨Ö¸ÁîÅÅÐò¡¢Ñ­»·Õö¿ª¡¢´úÂëÖØÅŵȼ¼ÇÉ ¡£Ìض¨Ó²¼þÌØÕ÷ʹÓ㺳ä·ÖʹÓÃÌØ¶¨CPU¼Ü¹¹ÌṩµÄÖÖÖÖÖ¸ÁÀ©Õ¹ºÍÓ²¼þ¼ÓËÙÌØÕ÷£¬ÈçÏòÁ¿Ö¸Á£¨SSE,AVX,NEON£©¡¢Ìض¨ÃüѧÔËËã¼ÓËÙµ¥Î»µÈ ¡£ÄÚ´æ»á¼ûģʽÓÅ»¯£ºÓÅ»¯Êý¾ÝµÄ¼ÓÔØºÍ´æ´¢Ë³Ðò£¬Ìá¸ß»º´æÖÀÖÐÂÊ£¬ïÔÌ­»º´æ²¨¶¯ ¡£

Õâ¿ÉÄÜÉæ¼°µ½Êý¾Ý½á¹¹µÄÉè¼Æµ÷½â£¬ÒÔ¼°ÄÚ´æ¶ÔÆëµÈϸ½Ú ¡£

µ±ÎÒÃǽ«¡°×ÔÓÉ»ã±à¡±Óë¡°¶î¶¨³¡¾°¡±ÍŽá£¬¾Í±¬·¢ÁË¡°×ÔÓÉ»ã±àX¶î¶¨³¡¾°ÓÅ»¯Ö¸ÄÏ¡±µÄ½¹µã¼ÛÖµ ¡£ÕâÌ×Ö¸ÄÏ£¬½«²»ÔÙÊÇͨÓõĴúÂëµ÷ÓŽ¨Ò飬¶øÊÇÕë¶ÔÌØ¶¨Ó¦Óõġ°Á¿Éí¶¨ÖÆ¡±¼Æ»® ¡£ËüÒªÇóÎÒÃÇÉîÈëÆÊÎöÓ¦ÓÃµÄÆ¿¾±£¬Ã÷È·Ä¿µÄÓ²¼þµÄÌØÕ÷£¬È»ºóÔËÓûã±àÓïÑԵľ«ÃîÖ®´¦£¬ÓеķÅʸ£¬Õ¥È¡³öÿһ·ÖÐÔÄÜ ¡£

ʵ¼ùÕßµÄÊӽǣºÎªºÎÑ¡Ôñ×ÔÓÉ»ã±à £¿

Ò²ÐíÓÐÈË»áÖÊÒÉ£¬ÔÚÏÖ´úÈí¼þ¿ª·¢ÖУ¬¸ß¼¶ÓïÑÔºÍǿʢµÄ±àÒëÆ÷ÒѾ­×㹻ǿʢ£¬ÎªºÎ»¹ÒªÍ¶Èëʱ¼äºÍ¾«ÉñȥѧϰºÍʹÓûã±à £¿ÃÕµ×ÔÚÓÚ£º

×îºóµÄÐÔÄܱÚÀÝ£º¹ØÓÚÄÇЩ¶ÔÐÔÄÜÓÐ׎üºõ¿Á¿ÌÒªÇóµÄÁìÓò£¬ÈçǶÈëʽʵʱϵͳ¡¢¸ßÐÔÄÜÅÌË㡢ͼÐÎäÖȾ¡¢ÒôÊÓÆµ±à½âÂë¡¢¼ÓÃܽâÃÜ¡¢ÒÔ¼°ÐÂÐ˵ÄAIÍÆÀíµÈ£¬±àÒëÆ÷µÄÓÅ»¯ÄÜÁ¦ÍùÍùÓÐÆä¼«ÏÞ ¡£×ÔÓÉ»ã±àÊÇÍ»ÆÆÕâЩ¼«ÏÞµÄÐëÒªÊÖ¶Î ¡£Ã÷È·µ×²ã»úÖÆ£ºÑ§Ï°ºÍʹÓûã±à£¬Äܹ»¼«´óµØ¼ÓÉî¶ÔÅÌËã»úµ×²ãÊÂÇéÔ­ÀíµÄÃ÷È· ¡£

ÕâÖÖÃ÷È·²»µ«ÓÐÖúÓÚ±àд¸üÓÅ»¯µÄ´úÂ룬ҲÄܸüºÃµØ¾ÙÐÐÐÔÄÜÆÊÎö¡¢¹ÊÕÏÅŲ飬ÉõÖÁ¼ÓÈ뵽еÄÓ²¼þ¼Ü¹¹Éè¼ÆÖÐ ¡£Ëã·¨µÄÖ±½ÓÓ³É䣺ÓÐЩËã·¨£¬Æä×îÓÅʵÏÖ·½·¨ÔÚ¿´·¨ÉϾÍÓë»ã±àÖ¸Áî¸ß¶ÈÆõºÏ ¡£ÀýÈ磬ijЩλ²Ù×÷¡¢ÃÜÂëѧËã·¨¡¢»òÕß³õ¼¶Ó²¼þ½»»¥ ¡£Óûã±àÖ±½ÓʵÏÖ£¬¿ÉÒÔ×èÖ¹¸ß¼¶ÓïÑÔ´øÀ´µÄÌØÊ⿪Ïú ¡£

ÌØ¶¨³¡¾°ÏµÄЧÂÊÌáÉý£º×ÝÈ»ÊÇÖ»ÓÅ»¯Ò»Ð¡¶ÎÖÁ¹ØÖ÷ÒªµÄ´úÂ룬Æä´øÀ´µÄÕûÌåÐÔÄÜÌáÉýÒ²¿ÉÄܷdz £¿É¹Û ¡£ÀýÈ磬ÔÚÒ»¸öÐèÒª´¦Öóͷ£º£Á¿Êý¾ÝµÄϵͳÖУ¬¶ÔÊý¾ÝÔ¤´¦Öóͷ£»ò½¹µãÅÌËãÑ­»·¾ÙÐлã±àÓÅ»¯£¬¿ÉÒÔÏÔÖøËõ¶ÌÕûÌå´¦Öóͷ£Ê±¼ä ¡£

¡°×ÔÓÉ»ã±àX¶î¶¨³¡¾°ÓÅ»¯Ö¸ÄÏ¡±µÄ½µÉú£¬ÕýÊÇΪÁËÓ¦¶ÔÕâЩÌôÕ½£¬ÎªÄÇЩϣÍûÔÚÐÔÄÜÉÏ×·Çó¼«ÖµĿª·¢Õߺ͹¤³ÌʦÌṩһ·ÝÇåÎúµÄõ辶ͼ ¡£Ëü²»ÊÇÊÖÒÕìż¼£¬¶øÊǶÔЧÂʺÍÐÔÄܵļ«ÖÂ×·Çó£¬ÊǽâËøÅÌËãDZÄܵÄÒªº¦ ¡£ÔÚ½ÓÏÂÀ´µÄpart2ÖУ¬ÎÒÃǽ«ÉîÈë̽ÌÖÏêϸµÄÓÅ»¯¼¼ÇɺÍʵ¼ùÒªÁì ¡£

×ÔÓÉ»ã±àX¶î¶¨³¡¾°ÓÅ»¯£º´ÓÔ­Àíµ½ÊµÕ½µÄÉî¶È̽Ë÷

ÔÚpart1ÖУ¬ÎÒÃÇÈ·Á¢ÁË¡°¶î¶¨³¡¾°¡±µÄ׼ȷ½ç˵ÒÔ¼°¡°×ÔÓÉ»ã±à¡±×÷ΪҪº¦ÓÅ»¯¹¤¾ßµÄÖ÷ÒªÐÔ ¡£ÏÖÔÚ£¬ÎÒÃǽ«ÉîÈëµ½ÏêϸµÄʵ¼ù²ãÃæ£¬Ì½ÌÖÔõÑùÔËÓÃ×ÔÓÉ»ã±à£¬Õë¶ÔÌØ¶¨µÄ¶î¶¨³¡¾°¾ÙÐÐÐÔÄÜÓÅ»¯ ¡£ÕâÐèÒªÎÒÃǾ߱¸¶ÔÅÌËã»úϵͳ½á¹¹µÄÉîÈëÃ÷È·£¬ÒÔ¼°¶ÔËã·¨ºÍÊý¾Ý½á¹¹µÄÃôÈñ¶´²ìÁ¦ ¡£

Ò»¡¢½¹µãÓÅ»¯Õ½ÂÔ£ºÖ¸Áî¼¶²¢ÐÐÓëÊý¾Ý¸´ÓÃ

ÔÚ¾ø´ó´ó¶¼¶î¶¨³¡¾°Ï£¬ÐÔÄÜÓÅ»¯µÄÁ½´ó»ùʯÊÇÖ¸Áî¼¶²¢ÐУ¨ILP£©ºÍÊý¾Ý¸´Óà ¡£×ÔÓÉ»ã±àÕýÊÇʵÏÖÕâÁ½´óÄ¿µÄµÄ×îÖ±½ÓÊÖ¶Î ¡£

Ö¸Áî¼¶²¢ÐÐ(ILP)µÄÒÕÊõ£º

Ö¸ÁîÁ÷Ë®»¯Óë̽²â£ºÏÖ´úCPU½ÓÄÉÖ¸ÁîÁ÷Ë®ÏßÀ´Ìá¸ßÍÌÍÂÁ¿£¬µ«Ä³Ð©Ö¸ÁÈç³ý·¨¡¢ÄÚ´æ»á¼û£©»áÔì³ÉÁ÷Ë®ÏßÍ£Áô ¡£»ã±àÔÊÐíÎÒÃÇÈ«ÐݲÅÅÖ¸ÁîµÄ˳Ðò£¬Ê¹ÓÃCPUµÄÂÒÐòÖ´ÐÐÄÜÁ¦£¬ÌͣÁô£¬ÊµÏÖ¸ü¸ßµÄ²¢ÐжÈ ¡£ÀýÈ磬½«ºÄʱµÄÅÌËãÖ¸ÁîÌáǰ£¬´ýÆäÖ´ÐÐʱ£¬½«ÄÚ´æ»á¼ûÖ¸Áî°²ÅÅÔÚºóÃæ ¡£

SIMDÖ¸Á£¨ÏòÁ¿»¯£©£º¹ØÓÚÊý¾Ý÷缯ÐÍʹÃü£¨Í¼Ïñ´¦Öóͷ£¡¢¿ÆÑ§ÅÌËã¡¢ÒôƵ/ÊÓÆµ±àÂ룩£¬SIMDÊÇÐÔÄÜÌáÉýµÄ¡°ÉñÆ÷¡± ¡£»ã±à¿ÉÒÔÖ±½ÓŲÓÃAVX¡¢SSE¡¢NEONµÈÖ¸Á£¬ÈÃÒ»ÌõÖ¸Áîͬʱ´¦Öóͷ£¶à¸öÊý¾ÝÔªËØ£¨Èç4¸ö32λ¸¡µãÊý¡¢8¸ö16λÕûÊý£© ¡£

ÀýÈ磬ÔÚͼÏñÄ£ºýËã·¨ÖУ¬¿ÉÒÔ½«¶à¸öÏñËØµÄƽ¾ùÖµÅÌËã²¢Ðл¯ ¡£ÏÔʽSIMDIntrinsics£º×ÝÈ»²»Ö±½Ó±àдµ×²ã»ã±à£¬Ðí¶à±àÒëÆ÷Ò²ÌṩÁËSIMDintrinsics£¨ÄÚ½¨º¯Êý£©£¬ËüÃÇÏÖʵÉÏÊǶÔÌØ¶¨»ã±àÖ¸ÁîµÄ·â×°£¬Àû±ãÎÒÃÇÔÚC/C++µÈ¸ß¼¶ÓïÑÔÖÐʹÓÃSIMDÖ¸Áî ¡£

µ«ÒªµÖ´ï¼«ÖÂÐÔÄÜ£¬Ö±½ÓÃ÷È·ºÍʹÓûã±à»òintrinsicsµÄ×éºÏÊÇÐëÒªµÄ ¡£

Êý¾Ý¸´Óõļ«ÖÂ×·Çó£º

¼Ä´æÆ÷·ÖÅɵÄÒÕÊõ£ºCPU¼Ä´æÆ÷ÊÇËÙÂÊ×î¿ìµÄ´æ´¢ ¡£ÔÚ»ã±à²ãÃæ£¬ÎÒÃÇ¿ÉÒÔ׼ȷ¿ØÖƱäÁ¿ÔڼĴæÆ÷ÖеÄÉúÃüÖÜÆÚ£¬ïÔÌ­²»ÐëÒªµÄÄÚ´æ¶Áд ¡£ÀýÈ磬½«Ñ­»·ÖÐÆµÈÔʹÓõıäÁ¿£¨¼ÆÊýÆ÷¡¢ÖÐÐÄЧ¹û£©Ê¼ÖÕ¼á³ÖÔڼĴæÆ÷ÖÐ ¡£»º´æÓÅ»¯£ºÓÅ»¯ÄÚ´æ»á¼ûģʽ£¬Ìá¸ßCPU»º´æµÄÖÀÖÐÂÊ ¡£

Õâ°üÀ¨£ºÊý¾Ý¾Ö²¿ÐÔ£ºÖ»¹ÜÈÃÐèÒªµÄÊý¾ÝÔÚͳһʱ¼ä±»»á¼û ¡£Êý¾Ý¹æÕû»¯£ºÆ¾Ö¤ÄÚ´æµØÖ·Ë³Ðò»á¼ûÊý¾Ý£¬×èÖ¹¡°ÌøÔ¾Ê½¡±»á¼û ¡£Ñ­»·Õö¿ªÓëÊý¾ÝÔ¤È ¡£ºÕö¿ªÑ­»·¿ÉÒÔ̻¶¸ü¶àµÄ²¢ÐÐÐÔ£¬²¢ÎªºóÐøÅÌËãԤȡÊý¾Ý ¡£ÊÖ¶¯»º´æÐÐÌî³ä£ºÔÚÄ³Ð©ÌØ¶¨³¡¾°Ï£¬¿ÉÒÔͨ¹ýÌØÊâÊÖÒÕÌî³ä»º´æÐУ¬×èÖ¹»º´æ²¨¶¯ ¡£

¶þ¡¢¶î¶¨³¡¾°ÏµĻã±àÓÅ»¯ÊµÀýÆÊÎö

ÈÃÎÒÃÇÀ´¿´¼¸¸öµä·¶µÄ¶î¶¨³¡¾°£¬ÒÔ¼°»ã±àÓÅ»¯µÄÓ¦Óãº

³¡¾°Ò»£ºÍ¼Ïñ´¦Öóͷ£ÖеÄÂ˲¨Æ÷£¨¾í»ý£©

Æ¿¾±£º´ó×ÚÏàËÆµÄ³Ë¼ÓÔËË㣬¶ÔÄÚ´æ»á¼ûÒªÇó¸ß ¡£»ã±àÓÅ»¯£ºÊ¹ÓÃSIMDÖ¸ÁÈçAVX2,NEON£©²¢Ðд¦Öóͷ£¶à¸öÏñËØµã ¡£½«Â˲¨Æ÷ºË£¨kernel£©¼ÓÔØµ½¼Ä´æÆ÷»ò³£Á¿ÄÚ´æÖУ¬ïÔÌ­ÖØ¸´¼ÓÔØ ¡£ÓÅ»¯Í¼ÏñÊý¾ÝµÄÄÚ´æ»á¼ûģʽ£¬È·±£»º´æÖÀÖÐÂÊ£¬ÀýÈç°´Ðлò°´¿é¶ÁÈ¡ ¡£

Ñ­»·Õö¿ª£¬ïÔÌ­Ñ­»·¿ØÖÆÖ¸ÁîµÄ¿ªÏú ¡£

³¡¾°¶þ£º¸ßÐÔÄÜÅÌËãÖеľØÕó³Ë·¨

Æ¿¾±£ºO(n^3)µÄÖØÆ¯ºó£¬´ó×ڵĸ¡µã³Ë¼ÓÔËËã ¡£»ã±àÓÅ»¯£ºTiling(·Ö¿é)£º½«´ó¾ØÕóÆÊÎö³ÉС¿é£¬Ìá¸ß»º´æÊ¹ÓÃÂÊ£¬Ê¹Ð¡¿é¾ØÕóÄܹ»ÍêÈ«·ÅÈ뻺´æ ¡£LoopUnrolling&RegisterBlocking£º½øÒ»²½Õö¿ªÐ¡¿éÄÚµÄÑ­»·£¬²¢½«ÖÐÐÄЧ¹û¾¡¿ÉÄÜÉúÑÄÔڼĴæÆ÷ÖУ¬Ðγɡ°¼Ä´æÆ÷¿é¡± ¡£

SIMDÏòÁ¿»¯£º¶ÔÏòÁ¿»¯µÄ³Ë¼Ó²Ù×÷¾ÙÐÐÓÅ»¯ ¡£BLAS¿âµÄ»ã±àʵÏÖ£ºÐí¶à¸ßÐÔÄÜÊýѧ¿â£¨ÈçIntelMKL,OpenBLAS£©µÄ½¹µã²¿·Ö¾ÍÊÇÓɸ߶ÈÓÅ»¯µÄ»ã±à´úÂë±àдµÄ£¬ÒÔ³ä·ÖʹÓÃÌØ¶¨CPU¼Ü¹¹ ¡£

³¡¾°Èý£ºÇ¶ÈëʽϵͳÖеÄʵʱ¿ØÖÆ

Æ¿¾±£º¼«µÍµÄÑÓ³ÙÒªÇ󣬲»¿ÉÕ¹ÍûµÄÖÐÖ¹ÏìÓ¦£¬ÓÐÏÞµÄ×ÊÔ´ ¡£»ã±àÓÅ»¯£º×¼È·µÄʱÐò¿ØÖÆ£º×èÖ¹¸ß¼¶ÓïÑÔÖеĺ¯ÊýŲÓÿªÏú¡¢¶¯Ì¬ÄÚ´æ·ÖÅɵȲ»È·¶¨ÐÔ ¡£ÖÐÖ¹´¦Öóͷ£ÓÅ»¯£º±àд¸ßЧµÄ»ã±àÖÐÖ¹·þÎñÀý³Ì£¬¿ìËÙÉúÑÄÏÖ³¡¡¢´¦Öóͷ£ÖÐÖ¹¡¢»Ö¸´ÏÖ³¡ ¡£Ìض¨Ó²¼þÖ¸ÁʹÓÃARMCortex-MϵÁеÄThumbÖ¸Á£¬»òDSPרÓÃÖ¸ÁÌá¸ß´úÂëÃܶȺÍÖ´ÐÐЧÂÊ ¡£

×ÊÔ´¹ÜÀí£ºÊÖ¶¯¹ÜÀí¿ÍÕ»£¬×èÖ¹¿ÍÕ»Òç³ö£¬×¼È·¿ØÖÆÄÚ´æÊ¹Óà ¡£

Èý¡¢ÊµÑé¡°×ÔÓÉ»ã±àX¶î¶¨³¡¾°ÓÅ»¯Ö¸ÄÏ¡±µÄ°ì·¨

׼ȷ¶¨Î»Æ¿¾±£ºÊ¹ÓÃÐÔÄÜÆÊÎö¹¤¾ß£¨Èçperf,VTune,gprof£©ÕÒ³öÓ¦ÓóÌÐòÖÐ×îºÄʱµÄ²¿·Ö£¬Õâͨ³£ÊÇÓÅ»¯µÄÖØµã ¡£Ã÷È·Ó²¼þ¼Ü¹¹£ºÉîÈëÑо¿Ä¿µÄCPUµÄÖ¸Á¡¢Á÷Ë®Ïß¡¢»º´æÌõÀí½á¹¹¡¢¼Ä´æÆ÷ÊýÄ¿µÈ ¡£Ñ¡ÔñºÏÊʵÄÓÅ»¯Õ½ÂÔ£ºÆ¾Ö¤Æ¿¾±µÄÌØÕ÷£¬Ñ¡ÔñÏòÁ¿»¯¡¢Êý¾Ý¸´Óá¢Á÷Ë®ÏßÓÅ»¯µÈÕ½ÂÔ ¡£

±àд»ã±à´úÂë»òIntrinsics£ºÖ±½Ó»ã±à£º¹ØÓÚÐÔÄÜÒªÇó×ÖµIJ¿·Ö£¬Ö±½ÓÓÃAT&T»òIntelÓï·¨µÄ»ã±à±àд ¡£Intrinsics£ºÔÚC/C++´úÂëÖÐʹÓÃintrinsicsº¯Êý£¬ËüÃÇÊÇ»ã±àÖ¸ÁîµÄ¡°¸ß¼¶½Ó¿Ú¡± ¡£»ìÏý±à³Ì£º½«Òªº¦µÄ»ã±àº¯Êýͨ¹ýextern"C"µÈ·½·¨Ç¶Èëµ½¸ß¼¶ÓïÑÔÏîÄ¿ÖÐ ¡£

»Ø¹é²âÊÔÓëÑéÖ¤£ºÓÅ»¯ºó£¬Îñ±Ø¾ÙÐÐÖÜÈ«µÄ»Ø¹é²âÊÔ£¬È·±£¹¦Ð§×¼È·ÐÔ ¡£ÔٴξÙÐÐÐÔÄÜÆÊÎö£¬Á¿»¯ÓÅ»¯Ð§¹û ¡£Ò»Á¬µü´ú£ºÐÔÄÜÓÅ»¯ÊÇÒ»¸öÒ»Á¬µÄÀú³Ì£¬Ëæ×ÅÓªÒµÐèÇóµÄת±ä»òÓ²¼þµÄÉý¼¶£¬¿ÉÄÜÐèÒªÒ»Ö±µØÖØÐÂÆÀ¹ÀºÍµ÷½âÓÅ»¯¼Æ»® ¡£

½áÓ¼ÝÔ¦ÅÌËãµÄδÀ´

¡°×ÔÓÉ»ã±àX¶î¶¨³¡¾°ÓÅ»¯Ö¸ÄÏ¡±²¢·ÇÒ»ÀÍÓÀÒݵÄÃØóÅ£¬¶øÊÇÒ»ÖÖÍ·ÄÔ·½·¨ºÍÒ»Ì×ÒªÁìÂÛ ¡£ËüÒªÇ󿪷¢ÕßÌø³ö¸ß¼¶ÓïÑÔµÄÌñ¾²Çø£¬ÉîÈëÃ÷È·ÅÌËãµÄʵÖÊ£¬²¢Óµ±§¶ÔÓ²¼þµÄÖ±½ÓÕÆ¿Ø ¡£ÔÚÈÕÐÂÔÂÒìµÄÊÖÒÕÀ˳±ÖУ¬ÎÞÂÛÊÇ×Ô¶¯¼ÝÊ»µÄ¸ÐÖªËã·¨¡¢´óÐÍÓÎÏ·µÄÎïÀíÒýÇæ¡¢ÕվɽðÈÚÊг¡µÄÁ¿»¯ÉúÒâϵͳ£¬¶¼Àë²»¿ª¶ÔÐÔÄܵļ«ÖÂ×·Çó ¡£

ÕÆÎÕ×ÔÓÉ»ã±à£¬Õë¶Ô¶î¶¨³¡¾°¾ÙÐÐϸÄåÓÅ»¯£¬½«ÊÇÄúÔÚÏÂÒ»´úÅÌËã¸ïÖÀÖмá³ÖÁìÏȵÄÒªº¦ ¡£Õâ²»µ«ÊÇÊÖÒյľ«½ø£¬¸üÊǶÔЧÂʺÍÁ¢ÒìµÄ²»Ð¸Ì½Ë÷ ¡£

±êÇ©:
±à¼­: ÀîÖ¾Ô¶
ÍøÕ¾µØÍ¼