An idiom-finding tool for increasing productivity of accelerators
An idiom-finding tool for increasing productivity of accelerators
复制标题
DOI:
10.1145/1995896.1995928
复制
发表时间:
2011-05
期刊:
影响因子:
--
通讯作者:
L. Carrington;M. Tikir;C. Olschanowsky;M. Laurenzano;Joshua Peraza;A. Snavely;S. Poole
中科院分区:
文献类型:
--
作者:
L. Carrington;M. Tikir;C. Olschanowsky;M. Laurenzano;Joshua Peraza;A. Snavely;S. Poole
Suppose one is considering purchase of a computer equipped with accelerators. Or suppose one has access to such a computer and is considering porting code to take advantage of the accelerators. Is there a reason to suppose the purchase cost or programmer effort will be worth it? It would be nice to able to estimate the expected improvements in advance of paying money or time. We exhibit an analytical framework and tool-set for providing such estimates: the tools first look for user-defined idioms that are patterns of computation and data access identified in advance as possibly being able to benefit from accelerator hardware. A performance model is then applied to estimate how much faster these idioms would be if they were ported and run on the accelerators, and a recommendation is made as to whether or not each idiom is worth the porting effort to put them on the accelerator and an estimate is provided of what the overall application speedup would be if this were done. As a proof-of-concept we focus our investigations on Gather/Scatter (G/S) operations and means to accelerate these available on the Convey HC-1 which has a special-purpose "personality" for accelerating G/S. We test the methodology on two large-scale HPC applications. The idiom recognizer tool saves weeks of programmer effort compared to having the programmer examine the code visually looking for idioms; performance models save yet more time by rank-ordering the best candidates for porting; and the performance models are accurate, predicting G/S runtime speedup resulting from porting to within 10% of speedup actually achieved. The G/S hardware on the Convey sped up these operations 20x, and the overall impact on total application runtime was to improve it by as much as 21%.