×ÔÓÉ»ã±àX¶î¶¨³¡¾°ÓÅ»¯Ö¸ÄÏ??È«¼¯×ÊÔ´Ãâ·Ñ¿´µ½àË??ÓÃÁ¦?´Óµ×²ãÔÀíµ½ÊµÕ½¼¼ÇÉ£¬ÎÒÃǽ«ÎªÄú·ºÆðÒ»Ì×ÖÜÈ«¡¢ÊÊÓõÄÓÅ»¯½â¾ö¼Æ»®£¬×ÊÖúÄúÔÚÇ¿ÁÒµÄÊÖÒÕ¾ºÕùÖÐÍÑÓ±¶ø³ö£¬¼ÝÔ¦ÅÌËãµÄδÀ´¡£¶´Ï¤¡°¶î¶¨³¡¾°¡±£ºÐÔÄÜÓÅ»¯µÄ¾«×¼×޵ãÔÚ̽ÌÖ¡°×ÔÓÉ»ã±àX¶î¶¨³¡¾°ÓÅ»¯Ö¸ÄÏ¡±Ö®Ç°£¬ÎÒÃDZØÐèÊ×ÏÈÃ÷È·¡°¶î¶¨³¡¾°¡±ÕâÒ»¿´·¨µÄÉîÔ¶ÒâÒå¡£Ëü²¢·ÇѰ³£¶øÌ¸µÄͨÓÃÓÅ»¯£¬¶øÊÇÖ¸ÏòÌØ¶¨Ó¦Óá¢Ìض¨Ó²¼þÇéÐÎϵÄÐÔÄÜ¡°×î¼Ñʵ¼ù¡±?"> ×ÔÓÉ»ã±àX¶î¶¨³¡¾°ÓÅ»¯Ö¸ÄÏ">
¿ìËÙʶ±ð!91ºÃÉ«ÏÈÉúÏÂÔØ.Ïêϸ½â´ð¡¢Ú¹ÊÍÓëÂäʵ´øÄ㳩ÏíÌðÃÛÐÒ¸£
ÍâµØÊ±¼ä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ÖУ¬ÎÒÃǽ«ÉîÈë̽ÌÖÏêϸµÄÓÅ»¯¼¼ÇɺÍʵ¼ùÒªÁì¡£
ÔÚpart1ÖУ¬ÎÒÃÇÈ·Á¢ÁË¡°¶î¶¨³¡¾°¡±µÄ׼ȷ½ç˵ÒÔ¼°¡°×ÔÓÉ»ã±à¡±×÷ΪҪº¦ÓÅ»¯¹¤¾ßµÄÖ÷ÒªÐÔ¡£ÏÖÔÚ£¬ÎÒÃǽ«ÉîÈëµ½ÏêϸµÄʵ¼ù²ãÃæ£¬Ì½ÌÖÔõÑùÔËÓÃ×ÔÓÉ»ã±à£¬Õë¶ÔÌØ¶¨µÄ¶î¶¨³¡¾°¾ÙÐÐÐÔÄÜÓÅ»¯¡£ÕâÐèÒªÎÒÃǾ߱¸¶ÔÅÌËã»úϵͳ½á¹¹µÄÉîÈëÃ÷È·£¬ÒÔ¼°¶ÔËã·¨ºÍÊý¾Ý½á¹¹µÄÃôÈñ¶´²ìÁ¦¡£
ÔÚ¾ø´ó´ó¶¼¶î¶¨³¡¾°Ï£¬ÐÔÄÜÓÅ»¯µÄÁ½´ó»ùʯÊÇÖ¸Áî¼¶²¢ÐУ¨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רÓÃÖ¸ÁÌá¸ß´úÂëÃܶȺÍÖ´ÐÐЧÂÊ¡£
×ÊÔ´¹ÜÀí£ºÊÖ¶¯¹ÜÀí¿ÍÕ»£¬×èÖ¹¿ÍÕ»Òç³ö£¬×¼È·¿ØÖÆÄÚ´æÊ¹Óá£
׼ȷ¶¨Î»Æ¿¾±£ºÊ¹ÓÃÐÔÄÜÆÊÎö¹¤¾ß£¨Èçperf,VTune,gprof£©ÕÒ³öÓ¦ÓóÌÐòÖÐ×îºÄʱµÄ²¿·Ö£¬Õâͨ³£ÊÇÓÅ»¯µÄÖØµã¡£Ã÷È·Ó²¼þ¼Ü¹¹£ºÉîÈëÑо¿Ä¿µÄCPUµÄÖ¸Á¡¢Á÷Ë®Ïß¡¢»º´æÌõÀí½á¹¹¡¢¼Ä´æÆ÷ÊýÄ¿µÈ¡£Ñ¡ÔñºÏÊʵÄÓÅ»¯Õ½ÂÔ£ºÆ¾Ö¤Æ¿¾±µÄÌØÕ÷£¬Ñ¡ÔñÏòÁ¿»¯¡¢Êý¾Ý¸´Óá¢Á÷Ë®ÏßÓÅ»¯µÈÕ½ÂÔ¡£
±àд»ã±à´úÂë»òIntrinsics£ºÖ±½Ó»ã±à£º¹ØÓÚÐÔÄÜÒªÇó×ÖµIJ¿·Ö£¬Ö±½ÓÓÃAT&T»òIntelÓï·¨µÄ»ã±à±àд¡£Intrinsics£ºÔÚC/C++´úÂëÖÐʹÓÃintrinsicsº¯Êý£¬ËüÃÇÊÇ»ã±àÖ¸ÁîµÄ¡°¸ß¼¶½Ó¿Ú¡±¡£»ìÏý±à³Ì£º½«Òªº¦µÄ»ã±àº¯Êýͨ¹ýextern"C"µÈ·½·¨Ç¶Èëµ½¸ß¼¶ÓïÑÔÏîÄ¿ÖС£
»Ø¹é²âÊÔÓëÑéÖ¤£ºÓÅ»¯ºó£¬Îñ±Ø¾ÙÐÐÖÜÈ«µÄ»Ø¹é²âÊÔ£¬È·±£¹¦Ð§×¼È·ÐÔ¡£ÔٴξÙÐÐÐÔÄÜÆÊÎö£¬Á¿»¯ÓÅ»¯Ð§¹û¡£Ò»Á¬µü´ú£ºÐÔÄÜÓÅ»¯ÊÇÒ»¸öÒ»Á¬µÄÀú³Ì£¬Ëæ×ÅÓªÒµÐèÇóµÄת±ä»òÓ²¼þµÄÉý¼¶£¬¿ÉÄÜÐèÒªÒ»Ö±µØÖØÐÂÆÀ¹ÀºÍµ÷½âÓÅ»¯¼Æ»®¡£
¡°×ÔÓÉ»ã±àX¶î¶¨³¡¾°ÓÅ»¯Ö¸ÄÏ¡±²¢·ÇÒ»ÀÍÓÀÒݵÄÃØóÅ£¬¶øÊÇÒ»ÖÖÍ·ÄÔ·½·¨ºÍÒ»Ì×ÒªÁìÂÛ¡£ËüÒªÇ󿪷¢ÕßÌø³ö¸ß¼¶ÓïÑÔµÄÌñ¾²Çø£¬ÉîÈëÃ÷È·ÅÌËãµÄʵÖÊ£¬²¢Óµ±§¶ÔÓ²¼þµÄÖ±½ÓÕÆ¿Ø¡£ÔÚÈÕÐÂÔÂÒìµÄÊÖÒÕÀ˳±ÖУ¬ÎÞÂÛÊÇ×Ô¶¯¼ÝÊ»µÄ¸ÐÖªËã·¨¡¢´óÐÍÓÎÏ·µÄÎïÀíÒýÇæ¡¢ÕվɽðÈÚÊг¡µÄÁ¿»¯ÉúÒâϵͳ£¬¶¼Àë²»¿ª¶ÔÐÔÄܵļ«ÖÂ×·Çó¡£
ÕÆÎÕ×ÔÓÉ»ã±à£¬Õë¶Ô¶î¶¨³¡¾°¾ÙÐÐϸÄåÓÅ»¯£¬½«ÊÇÄúÔÚÏÂÒ»´úÅÌËã¸ïÖÀÖмá³ÖÁìÏȵÄÒªº¦¡£Õâ²»µ«ÊÇÊÖÒյľ«½ø£¬¸üÊǶÔЧÂʺÍÁ¢ÒìµÄ²»Ð¸Ì½Ë÷¡£