IOOpt: automatic derivation of I/O complexity bounds for affine programs
IOOpt: automatic derivation of I/O complexity bounds for affine programs
复制标题
IOOpt:自动推导仿射程序的 I/O 复杂度界限
DOI:
10.1145/3453483.3454103
复制
发表时间:
2021
期刊:
影响因子:
--
通讯作者:
Rastello, Fabrice
中科院分区:
文献类型:
--
作者:
Olivry, Auguste;Iooss, Guillaume;Tollenaere, Nicolas;Rountev, Atanas;Sadayappan, P.;Rastello, Fabrice
Evaluating the complexity of an algorithm is an important step when developing applications, as it impacts both its time and energy performance. Computational complexity, which is the number of dynamic operations regardless of the execution order, is easy to characterize for affine programs. Data movement (or, I/O) complexity is more complex to evaluate as it refers,when considering all possible valid schedules, to the minimum required number of I/O between a slow (e.g. main memory) and a fast (e.g. local scratchpad) storage location.This paper presents IOOpt, a fully automated tool that automatically bounds the data movement of an affine (tilable) program. Given a tilable program described in a DSL, it automatically computes: 1. a lower bound of the I/O complexity as a symbolic expression of the cache size and program parameters; 2. an upper bound that allows one to assess the tightness of the lower bound; 3. a tiling recommendation (loop permutation and tile sizes) that matches the upper bound. For the lower bound algorithm which can be applied to any affine program, a substantial effort has been made to provide bounds that are as tight as possible for neural networks: In particular, it extends the previous work of Olivry et al. to handle multi-dimensional reductions and expose the constraints associated with small dimensions that are present in convolutions. For the upper bound algorithm that reasons on the tile band of the program (e.g. output of a polyhedral compiler such as PluTo), the algebraic computations involved have been tuned to behave well on tensor computations such as direct tensor contractions or direct convolutions. As a bonus, the upper bound algorithm that has been extended to multi-level cache can provide the programmer with a useful tiling recommendation.We demonstrate the effectiveness of our tool by deriving the symbolic lower and upper bounds for several tensor contraction and convolution kernels. Then we evaluate numerically the tightness of our bound using the convolution layers of Yolo9000 and representative tensor contractions from the TCCG benchmark suite. Finally, we show the pertinence of our I/O complexity model by reporting the running time of the recommended tiled code for the convolution layers of Yolo9000.
登录
查看更多内容
DOI:
--
发表时间:
1991
期刊:
International Workshop on Languages and Compilers for Parallel Computing
影响因子:
--
作者:
J. Ferrante;Vivek Sarkar;W. Thrash
通讯作者:
W. Thrash
DOI:
10.1007/978-3-642-22685-4_12
发表时间:
2011
期刊:
Proceedings of the Conference on High Performance Computing Networking, Storage and Analysis
影响因子:
--
作者:
D. Ranjan;J. Savage;M. Zubair
通讯作者:
M. Zubair
DOI:
10.1145/3362694
发表时间:
2017
期刊:
ACM Transactions on Mathematical Software (TOMS)
影响因子:
--
作者:
T. Smith;R. A. van de Geijn
通讯作者:
R. A. van de Geijn
影响因子:
--
作者:
Wenlei Bao;S. Krishnamoorthy;L. Pouchet;P. Sadayappan
通讯作者:
P. Sadayappan
DOI:
--
发表时间:
2017
期刊:
International Conference on Field-Programmable Logic and Applications
影响因子:
--
作者:
Junyi Liu;John Wickerson;G. Constantinides
通讯作者:
G. Constantinides