※ 引述《linkone (小豆豆)》之銘言:
: 請問一下各位大大 如果現在有兩個大小為20萬以上的一維陣列
: 那如果要把 A 陣列的東西都丟給 B 陣列 大家會選擇用memcpy
: 還是就用一個 for 迴圈 去做? 或是有其他更好的方法可以用呢?
: 再請問一下如果 要做 A 陣列 + B 陣列用SSE要怎麼做呢?
: SSE要怎麼一次載入四個值 是要先有二個大小為 4 的陣列
: 然後把 A 跟 B 的前四個值先丟進去再用SSE的指令load進來還是怎樣
: 如果是上述的方法 那這樣用SSE的加速效果會因為要把四個值丟進去大小為四的
: 陣列裡而有影響呢?
http://topic.csdn.net/t/20041201/20/3606786.html
這裡有提到一本書 :
游戏编程指南/彭博
可以在這下
http://www.ccrun.com/view.asp?id=498
我看了下 裡面有完整代碼
書頁碼的第76頁(word總頁數的第84頁)
事实上memcpy( )还有进一步“压榨”的余地,下面是用SSE指令实现的
超高速memcpy( )。把它拷贝到你的程序中享受完美的速度吧(快80%以上),
呵呵(nQWORDs为要拷贝多少个8字节,注意它应能整除8!)
代碼:
http://nopaste.csie.org/ba404
同样的,memset也可用SSE指令优化(快300%以上),代码在此
(nQWORDs应能被8整除)
http://nopaste.csie.org/38047
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 115.43.138.67