sse絕對是優化神器之一,是由英特爾所提出的cpu指令集,具有intel sse指令集支援的處理器有8個128位的暫存器,每乙個暫存器可以存放4個(32位)單精度的浮點數,sse的英文全稱:stream simd extentions,而simd的英文全稱:single instruction multiple data。它的強悍地方在於,一道指令可以完成多個(一般是4個)資料的操作
下面主要介紹一下,浮點型算術指令,其它的都類似,可以檢視說明書:
sse的指令格式:
第一部分為指令的操作,可選擇項比較多,比如add,sub
等;第二部分為p或者s,分別表示為packed(多個一起運算)或者scala(第乙個運算)r;
第三部分為s,表示單精度浮點數
// for迴圈乘法
timestart = gettickcount();
for (int i = 0; i < size; ++i)
timeend = gettickcount();
cout << "normal_mul test time is " << (timeend - timestart) * 0.001 << endl;
// sse指令乘法
timestart = gettickcount();
for (int i = 0; i < size; ++i)
timeend = gettickcount();
cout << "sse_mul test time is " << (timeend - timestart) * 0.001 << endl;
// 釋放記憶體
_mm_free(srcone);
_mm_free(srctwo);
_mm_free(dest);
system("pause");
return 0;
}效果還是不錯的,見下面:
小試牛刀(一)
1 有10張餅,每天至少吃一張,問第三天吃完的概率 36 512 思路 這裡的三天吃完,是指恰巧第三天吃完 那麼第一天最多吃8張,剩下兩天對應的只有1種情況,第一天吃7張,剩下兩天對應的有2種情況,第一天吃6張,剩下兩天對應的有3種情況,同理依次類推 1 2 3 4 5 6 7 8 36。10張餅一...
boost graph lib 小試牛刀
最近要做社會網路的社群發現,發現用bgl能減少不少 量。經過一番調研發現bgl封裝的很牛叉,dijkstra等演算法統統具備,奈何自己對泛型程式設計不太熟,遇到問題還是很糾結。primer泛型程式設計 演算法部分和stl原始碼分析接下來有時間一定要讀下。下面僅以鄰接鍊錶和自定義節點為例 typede...
Anti Debug 小試牛刀
本文整理了日常生活中遇到的一些anti debug技術,除非特殊說明,均適用於mac ios開發 作為第一篇正式博文,會不定期更新,謝謝大家.123 4567 89 define pt deny attach 31 include intmain 程式正常執行,會輸出hello 但是程式載入到gdb...