浅谈图计算加速
引言
图计算加速是近年来的热门话题。与传统计算密集型应用不同,图计算具有计算访存比低、随进访存多、程序行为受输入数据影响大等特点,这也使得传统的软硬件加速技术在图计算应用上无法取得理想的效果。本文将从硬件行为的角度,分析和梳理图计算加速的不同思路。
从底层硬件的角度来看,图计算程序与其他类型的应用一样,由指令和数据两部分组成。指令部分的访存特征依然遵循局部性原则,而数据部分的访问特征则由数据本身的逻辑关系决定,因此呈现高度随机性。由于图计算应用中的输入数据在体量上往往远大于指令部分,因此对数据部分的访问性能决定了整个图计算应用的性能。在现有商用处理器中,一次访存的平均用时可用如下公式表示:
T i m e a v e r a g e = H i t T i m e + M i s s R a t e T L B × M i s s P e n a l t y T L B Time_{average}=HitTime+MissRate_{TLB} \times MissPenalty_{TLB} Timeaverage=HitTime+MissRateTLB×MissPenaltyTLB
+ ∑ i = 1 n ( C a c h e M i s s R a t e i × C a c h e M i s s P e n a l t y i ) + \sum_{i=1}^{n}(CacheMissRate_i \times CacheMissPenalty_i) +i=1∑n(CacheMissRatei×CacheMissPenaltyi)
+ ( 1 − M i s s R a t e M a i n M e m o r y ) × H i t T i m e M a i n M e m o r y + (1-MissRate_{MainMemory}) \times HitTime_{MainMemory} +(1−MissRateMainMemory)×HitTimeMa