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

ÐÂ2ÊÖ»ú»áÔ±¶ËÍøÖ·

ÐÂ2»áÔ±ÊÖ»ú¹ÜÀí¶Ë-ÐÂ2»áÔ±ÊÖ»úÍøÖ·´óÈ«
ÏûºÄÈÕ±¨Íø > ÒªÎÅ

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

¿ìËÙʶ±ð!91ºÃÉ«ÏÈÉúÏÂÔØ.Ïêϸ½â´ð¡¢Ú¹ÊÍÓëÂäʵ´øÄ㳩ÏíÌðÃÛÐÒ¸£

ʱ¼ä: 2025-10-23 06:22:48 ȪԴ:³Â½ð¸»

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

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

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

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

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

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