ת£ºSSEÖ¸Áî½éÉܼ°ÆäC¡¢C++Ó¦ÓÃ
SSEÊÇÓ¢ÌØ¶ûÌá³öµÄ¼´MMXÖ®ºóÐÂÒ»´ú£¨µ±È»ÊǼ¸ÄêǰÁË£©CPUÖ¸Á£¬×îÔçÓ¦ÓÃÔÚPIIIϵÁÐCPUÉÏ¡£ÏÖÔÚÒѾµÃµ½ÁËIntel PIII¡¢P4¡¢Celeon¡¢Xeon¡¢AMD Athlon¡¢duronµÈϵÁÐCPUµÄÖ§³Ö¡£¶ø¸üеÄSSE2Ö¸Á½öµÃµ½ÁËP4ϵÁÐCPUµÄÖ§³Ö£¬ÕâÒ²ÊÇΪʲôÕâÆªÎÄÕÂÊǽ²SSE¶ø²»ÊÇSSE2µÄÔÒòÖ®Ò»¡£ÁíÒ»¸öÔÒò¾ÍÊÇSSEºÍSSE2µÄÖ¸ÁîϵͳÊǷdz£ÏàËÆµÄ£¬SSE2±ÈSSE¶àµÄ½öÊÇÉÙÁ¿µÄ¶îÍ⸡µã´¦Àí¹¦ÄÜ¡¢64λ¸¡µãÊýÔËËãÖ§³ÖºÍ64λÕûÊýÔËËãÖ§³Ö¡£
SSEΪʲô»á±È´«Í³µÄ¸¡µãÔËËã¸ü¿ìÄØ£¿ÒòΪËüʹÓÃÁË128λµÄ´æ´¢µ¥Ôª£¬Õâ¶ÔÓÚ32λµÄ¸¡µãÊýÀ´½²£¬ÊÇ¿ÉÒÔ´æÏÂ4¸öµÄ£¬Ò²¾ÍÊÇ˵£¬SSEÖеÄËùÓмÆËã¶¼ÊÇÒ»´ÎÐÔÕë¶Ô4¸ö¸¡µãÊýÀ´Íê³ÉµÄ£¬ÕâÖÖÅú´¦Àíµ±È»¾Í»á´øÀ´Ð§ÂʵÄÌáÉý¡£ÎÒÃÇÔÙÀ´»Ø¹ËÒ»ÏÂSSEµÄÈ«³Æ£ºStream SIMD Extentions£¨Á÷SIMDÀ©Õ¹£©¡£SIMD¾ÍÊÇsingle instruction multiple data£¬Á¬ÆðÀ´¾ÍÊÇ“Êý¾ÝÁ÷µ¥Ö¸Áî¶àÊý¾ÝÀ©Õ¹”£¬´ÓÃû×ÖÎÒÃǾͿÉÒÔ¸üºÃµÄÀí½âSSEÊÇÈçºÎ¹¤×÷µÄÁË¡£
ËäÈ»SSE´ÓÀíÂÛÉÏÀ´½²Òª±È´«Í³µÄ¸¡µãÔËËã»á¿ì£¬µ«ÊÇËûËùÊܵÄÏÞÖÆÒ²ºÜ¶à£¬Ê×ÏÈ£¬ËäÈ»ËûÖ´ÐÐÒ»´ÎÏ൱ÓÚËĴΣ¬»á±È´«Í³µÄ¸¡µãÔËËãÖ´ÐÐ4´ÎµÄËÙ¶ÈÒª¿ì£¬µ«ÊÇËûÖ´ÐÐÒ»´ÎµÄËÙ¶ÈÈ´²¢Ã»ÓÐÏëÏóÖеÄÄÇô¿ì£¬ËùÒÔÒªÌåÏÖSSEµÄËÙ¶È£¬±ØÐëÓÐStream×öǰÌᣬ¾ÍÊÇ´óÁ¿µÄÁ÷Êý¾Ý£¬ÕâÑù²ÅÄÜ·¢»ÓSIMDµÄÇ¿´ó×÷Óá£Æä´Î£¬SSEÖ§³ÖµÄÊý¾ÝÀàÐÍÊÇ4¸ö32루¹²¼Æ128룩¸¡µãÊý¼¯ºÏ£¬¾ÍÊÇC¡¢C++ÓïÑÔÖеÄfloat[4]£¬²¢ÇÒ±ØÐëÊÇÒÔ16λ×ֽڱ߽ç¶ÔÆëµÄ£¨ÉÔºó»áÒÔ´úÂëÀ´½øÐвûÊÍ£¬¹ØÓڱ߽ç¶ÔÆëµÄ¸ÅÄ¶ÁÕß¿ÉÒԲο¼ÂÛ̳ÉÏµÄÆäËüÎÄÕ£¬¶¼»áÓкÜÏêϸµÄ½â´ð£¬ÎÒÕâÀï¾ÍË¡²»×¸ÊöÁË£©¡£Òò´ËÕâÒ²¸øÊäÈëºÍÊä³ö´øÀ´Á˲»ÉÙµÄÂé·³£¬Êµ¼ÊÉÏÖ÷ÒªÓ°ÏìSSE·¢»ÓÐÔÄܵľÍÊDz»Í£µÄ¶ÔÊý¾Ý½øÐи´ÖÆÒÔÊÊÓÃÓ¦ËüµÄÊý¾Ý¸ñʽ¡£
ÎÒÊÇÒ»¸öC++³ÌÐòÔ±£¬¶Ô»ã±à²¢²»ºÜÊ죬µ«ÎÒÓÖÏëÓÃSSEÀ´ÓÅ»¯ÎҵijÌÐò£¬ÎÒ¸ÃÔõô×öÄØ£¿ÐÒºÃVC++.netΪÎÒÃÇÌṩÁ˺ܷ½±ãµÄÖ¸ÁîCº¯Êý¼¶µÄ·â×°ºÍC¸ñʽÊý¾ÝÀàÐÍ£¬ÎÒÃÇÖ»ÐèÏñƽʱдC++´úÂëÒ»Ñù¶¨Òå±äÁ¿¡¢µ÷Óú¯Êý¾Í¿ÉÒԺܺõÄÓ¦ÓÃSSEÖ¸ÁîÁË¡£
µ±È»ÁË£¬ÎÒÃÇÐèÒª°üº¬Ò»¸öÍ·Îļþ£¬ÕâÀïÃæ°üÀ¨ÁËÎÒÃÇÐèÒªµÄÊý¾ÝÀàÐͺͺ¯ÊýµÄÉùÃ÷£º
#include <xmmintrin.h>
SSEÔËËãµÄ±ê×¼Êý¾ÝÀàÐÍÖ»ÓÐÒ»¸ö£¬¾ÍÊÇ£º
__m128£¬ËüÊÇÕâÑù¶¨ÒåµÄ£º
typedef struct __declspec(intrin_type) __declspec(align(16)) __m128 {
float m128_f32[4];
} __m128;
¼ò»¯Ò»Ï£¬¾ÍÊÇ£º
struct __m128
{
float m128_f32[4];
};
±ÈÈçÒª¶¨ÒåÒ»¸ö__m128±äÁ¿£
Ïà¹ØÎĵµ£º
µ½×îºó»¹ÊÇ×Ô¼º½â¾öÁË£¬µ¼Ö¸ÃÎÊÌâµÄÔÒòÊÇÔÚlinuxÆô¶¯µ½×îºó³öÏÖ£º
/bin/sh: can't access tty; job control turned off
¶ø³öÏָôíÎóµÄÔÒòºÍ½â¾ö·½·¨googleºóÓÐǧ°ÙÖÖ£¬³¢ÊÔÁ˺ܶàÖÖ¶¼Ã»ÓаïÎÒ½â¾öÎÊÌâ¡£
ÏÂÃæÊÇÎÒ×Ô¼ºµÄ½â¾ö·½·¨£º
1. vi /etc/inittab µÚÒ»ÐÐÌí¼Ó
console::sysinit:/etc/init.d ......
¼ÙÉèxmlÎļþÊÇ
<?xml version="1.0" encoding="gb2312" ?>
- <books auth="wren">
- <book id="B01">
<name>¹þÀï²¨ÌØ </name>
<price>10 </price>
<memo>ÕâÊÇÒ»±¾ºÜºÃ¿´µÄÊé¡£ </memo>
</book>
- <boo ......
ʲôÊǺõijÌÐòÔ±£¿ÊDz»ÊǶ®µÃºÜ¶à¼¼Êõϸ½Ú£¿»¹ÊǶ®µ×²ã±à³Ì£¿»¹ÊDZà³ÌËٶȱȽϿ죿
ÎÒ¾õµÃ¶¼²»ÊÇ¡£¶ÔÓÚһЩ¼¼Êõϸ½ÚÀ´ËµºÍµ×²ãµÄ¼¼Êõ£¬Ö»Òª¿´°ïÖú£¬²é×ÊÁϾÍÄÜÕÒµ½£¬¶Ô
ÓÚËٶȿ죬ֻҪ±àµÃ¶àÒ²¾ÍÊìÄÜÉúÇÉÁË¡£
ÎÒÈÏΪºÃµÄ³ÌÐòÔ±Ó¦¸ÃÓÐÒÔϼ¸·½ÃæµÄËØÖÊ£º
1¡¢ÓÐרÑо«Éñ£¬ÇÚÑ§ÉÆÎÊ¡¢¾ÙÒ»·´ ......
C++µÄstaticÓÐÁ½ÖÖÓ÷¨£ºÃæÏò¹ý³Ì³ÌÐòÉè¼ÆÖеÄstaticºÍÃæÏò¶ÔÏó³ÌÐòÉè¼ÆÖеÄstatic¡£Ç°ÕßÓ¦ÓÃÓÚÆÕͨ±äÁ¿ºÍº¯Êý£¬²»Éæ¼°ÀࣻºóÕßÖ÷Ҫ˵Ã÷staticÔÚÀàÖеÄ×÷Óá£
Ò»¡¢ÃæÏò¹ý³ÌÉè¼ÆÖеÄstatic
1¡¢¾²Ì¬È«¾Ö±äÁ¿
ÔÚÈ«¾Ö±äÁ¿Ç°£¬¼ÓÉϹؼü×Östatic£¬¸Ã±äÁ¿¾Í±»¶¨Òå³ÉΪһ¸ö¾²Ì¬È«¾Ö±äÁ¿¡£ÎÒÃÇÏȾÙÒ»¸ö¾²Ì¬È«¾Ö±äÁ¿µÄÀý×Ó£¬ÈçÏ£º ......