ABSTRACT
In this paper we present the design and implementation of a DMATiler which combines compiler analysis and runtime management to optimize local memory performance. In traditional cache model based loop tiling optimizations, the compiler approximates runtime cache misses as the number of distinct cache lines touched by a loop nest. In contrast, the DMATiler has the full control of the addresses, sizes, and sequences of data transfers. DMATiler uses a simplified DMA performance model to formulate the cost model for DMA-tiled loop nests, then solves it using a custom gradient descent algorithm with heuristics guided by DMA characteristics. Given a loop nest, DMATiler uses loop interchange to make the loop order more friendlier for data movements. Moreover, DMATiler applies compressed data buffer and advanced DMA command to further optimize data transfers. We have implemented the DMATiler in the IBM XL C/C++ for Multi-core Acceleration for Linux, and have conducted experiments with a set of loop nest benchmarks. The results show DMATiler is much more efficient than software controlled cache (average speedup of 9.8x) and single level loop blocking (average speedup of 6.2x) on the Cell BE processor.
- ]]V. Sarkar and N. Megiddo, "An analytical model for loop tiling and its solution," in ISPASS'00, 2000. Google ScholarDigital Library
- ]]M. Wolf and M. Lam, "A loop transformation theory and an algorithm to maximize parallelism," vol. 2, no. 4, pp. 452--471, 1991. Google ScholarDigital Library
- ]]M. Wolfe, High Performance Compilers for Parallel Computing. Addison Wesley, 1996. Google ScholarDigital Library
- ]]T. Liu, H. Lin, T. Chen, , J. K. O'Brien, and L. Shao, "DBDB: Optimizing DMA transfer for the cell be architecture," in ICS'09, 2009. Google ScholarDigital Library
- ]]S. Boyd and L. Vandenberghe, Convex Optimization. Cambridge University Press. (Online version available at: http://www.stanford.edu/~boyd/cvxbook.html), 2004. Google ScholarDigital Library
- ]]A. E. Eichenberger, J. K. O'Brien, K. M. O'Brien, P. Wu, and et al, "Using advanced compiler technology to exploit the performance of the Cell Broadband Engine architecture," IBM System. Journal, vol. 45, no. 1, pp. 59--84, 2006. Google ScholarDigital Library
Index Terms
- DMATiler: revisiting loop tiling for direct memory access
Recommendations
Time skewing made simple
PPoPP '11: Proceedings of the 16th ACM symposium on Principles and practice of parallel programmingTime skewing and loop tiling has been known for a long time to be a highly beneficial acceleration technique for nested loops especially on bandwidth hungry multi-core processors, but it is little used in practice because efficient implementations ...
A Case Study of Implementing Supernode Transformations
Supernode transformation is a technique to decrease the communication overhead by partitioning and scheduling a loop nest to a multi-processor system. This is achieved by grouping a number of iterations in a perfectly nested loop with regular ...
DBDB: optimizing DMATransfer for the cell be architecture
ICS '09: Proceedings of the 23rd international conference on SupercomputingIn heterogeneous multi-core systems, such as the Cell BE or certain embedded systems, the accelerator core has its own fast local memory without hardware supported coherence. It is software's responsibility to dynamically transfer the working set when ...
Comments