看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《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