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

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

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

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

Î÷Î÷ÈËÎÄÒÕÊõ¿ÎÕÕÆ¬¸ßÇåÊÓÆµ´óÈ«,¾«²Ê¿Î³ÌÄÚÈݼ¯½õ,¸ßÇåÓ°Ïñ×ÊÁÏ

ʱ¼ä: 2025-10-23 08:01:03 ȪԴ:³Â·ç

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

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

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

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

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

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