[英]Prefetch instructions on ARM
較新的ARM處理器包括PLD和PLI指令。
我正在編寫緊密的內部循環(在C ++中),它具有非順序的內存訪問模式,但是我的代碼完全理解的模式。 如果我可以在處理當前內存位置的同時預取下一個位置,我預計會有大幅加速,我希望這很快就足以嘗試值得實驗!
我正在使用來自ARM的新的昂貴的編譯器,它似乎沒有在任何地方包含PLD指令,更不用說在我關心的這個特定循環中了。
如何在C ++代碼中包含顯式預取指令?
如果您試圖從這些循環中提取真正的最大性能,那么我建議在匯編程序中編寫整個循環結構。 您應該能夠使用內聯匯編,具體取決於循環中涉及的數據結構。 如果你可以展開任何一個循環(比如使訪問非順序訪問所涉及的部分),那就更好了。
冒着明顯的問題:你有沒有驗證過編譯器的目標架構? 例如(幽默我),如果默認編譯器是針對ARM7的,那么你永遠不會看到PLD指令。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.