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

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

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

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

ÂÃÐÐÕߺÍܽÄþÄÈÉîÈë½»Á÷ÎÄÕÂÕ¹ÏÖ¾ªÈËÕæÏàÔõÑùÃ÷È·ÂÃÐÐÕߺÍܽÄþÄÈ

ʱ¼ä: 2025-10-23 20:18:01 ȪԴ:³ÂÁ¢·ò

ÍâµØÊ±¼ä2025-10-23uriwqrhkjdbfkjbekrasdgr

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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