亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

__builtin_prefetch,它讀多少?

__builtin_prefetch,它讀多少?

C++
白豬掌柜的 2020-01-05 08:00:14
我正在嘗試通過使用優化一些C ++(RK4)__builtin_prefetch我不知道如何預取整個結構。我不知道const void *addr讀了多少書。我希望有下一個值from和to加載。for (int i = from; i < to; i++){    double kv = myLinks[i].kv;    particle* from = con[i].Pfrom;    particle* to = con[i].Pto;    //Prefetch values at con[i++].Pfrom & con[i].Pto;    double pos = to->px- from->px;    double delta = from->r + to->r - pos;    double k1 = axcel(kv, delta, from->mass) * dt; //axcel is an inlined function    double k2 = axcel(kv, delta + 0.5 * k1, from->mass) * dt;    double k3 = axcel(kv, delta + 0.5 * k2, from->mass) * dt;    double k4 = axcel(kv, delta + k3, from->mass) * dt;    #define likely(x)       __builtin_expect((x),1)    if (likely(!from->bc))    {            from->x += (( k1 + 2 * k2 + 2 * k3 + k4) / 6);    }}鏈接:http://www.ibm.com/developerworks/linux/library/l-gcc-hacks/
查看完整描述

2 回答

?
呼啦一陣風

TA貢獻1802條經驗 獲得超6個贊

它讀取高速緩存行。高速緩存行的大小可能有所不同,但是在現代CPU上最有可能為64字節。如果您需要讀取多條緩存行,請簽出prefetch_range。


查看完整回答
反對 回復 2020-01-06
  • 2 回答
  • 0 關注
  • 423 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號