判定程式屬於計算密集和訪存密集的方法

2021-07-25 19:38:32 字數 427 閱讀 8897

分析程式是計算密集(compute intensive)還是訪存密集(memory intensive)

1)算出機器的單核峰值效能

主頻*simd寬度*2(如果存在乘加指令), cpupeak

2)測出機器峰值頻寬

用streaming測出實際頻寬峰值,但是該峰值是所有處理器核的總和,需要除以實際物理核數(超執行緒不算),算出峰值頻寬,mempeak

3)分析演算法的計算訪存比

加減乘除都算一次操作(連續的乘加操作算一次);單次訪存算一次操作(如果會用到非連續資料,那麼要按cacheline長度算,因為機器實際會按照cache line讀取資料);

flop/bytes

4)結論:

if cpupeak/mempeak > flop/byptes, then  訪存密集

else 計算密集

計算密集型和IO密集型

什麼是計算密集型 計算密集型就是計算 邏輯判斷量非常大而且集中的型別,因為主要占用cpu資源所以又叫cpu密集型,而且當計算任務數等於cpu核心數的時候,是cpu執行效率最高的時候。特點 消耗cpu 什麼是io密集型 io密集型就是磁碟的讀取資料和輸出資料非常大的時候就是屬於io密集型 由於io操作...

IO密集型和計算密集型

乙個計算為主的程式 專業一點稱為cpu密集型程式 多執行緒跑的時候,可以充分利用起所有的cpu核心,比如說4個核心的cpu,開4個執行緒的時候,可以同時跑4個執行緒的運算任務,此時是最大效率。但是如果執行緒遠遠超出cpu核心數量 反而會使得任務效率下降,因為頻繁的切換執行緒也是要消耗時間的。因此對於...

CPU計算密集型和IO密集型

cpu計算密集型和io密集型 計算密集型任務由於主要消耗cpu資源,因此,執行效率至關重要。python這樣的指令碼語言執行效率很低,完全不適合計算密集型任務。對於計算密集型任務,最好用c語言編寫。第二種任務的型別是io密集型,涉及到網路 磁碟io的任務都是io密集型任務,這類任務的特點是cpu消耗...