[問題] 利用 prefetch 指令反而變慢?

看板ASM (組合語言)作者時間17年前 (2007/12/10 22:03), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串1/1
請問一下 我有一個大陣列 int array[1000] 我需要依序把它們讀出來做計算 因此我覺得利用 prefetchnta 可以加快我的速度 for (int i = 0; i < 1000; i++) { sum += array[i]; asm("prefetchnta (%0)" ::"g"(array+i+1)); } 但實際跑出來 加了 prefetchnta 反而比較慢 請問是什麼原因呢? 謝謝啦~~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.223.205.156 ※ 編輯: shane123 來自: 61.223.205.156 (12/10 22:04) ※ 編輯: shane123 來自: 61.223.204.115 (12/11 07:55) ※ 編輯: shane123 來自: 61.223.204.115 (12/11 07:55)

01/29 21:08, , 1F
看看編譯出來的 .s 可能看得出來
01/29 21:08, 1F
文章代碼(AID): #17NKSuc3 (ASM)
文章代碼(AID): #17NKSuc3 (ASM)