Access the full text.
Sign up today, get DeepDyve free for 14 days.
Periphery instantiation generates a concrete configuration for the global controller from the allocated set of control signals (therefore also described in Section 6.2)
J. Caamaño, Willy Wolff, P. Clauss (2016)
Code Bones: Fast and Flexible Code Generation for Dynamic and Speculative Polyhedral Optimization
Frank Hannig, Vahid Lari, Srinivas Boppu, Alexandru Tanase, Oliver Reiche (2014)
Invasive Tightly-Coupled Processor ArraysACM Transactions on Embedded Computing Systems (TECS), 13
J. Teich, L. Thiele (1991)
Control generation in the design of processor arraysJournal of VLSI signal processing systems for signal, image and video technology, 3
Mark Wijtvliet, Luc Waeijen, Henk Corporaal (2016)
Coarse grained reconfigurable architectures in the past 25 years: Overview and classificationProceedings of the 16th International Conference on Embedded Computer Systems: Architectures
D. Kissler, Frank Hannig, A. Kupriyanov, J. Teich (2006)
A Dynamically Reconfigurable Weakly Programmable Processor Array Architecture Template
J. Teich (1993)
A compiler for application specific processor arrays
Michael Witterauf, Alexandru Tanase, Frank Hannig, Jürgen Teich (2016)
Modulo scheduling of symbolically tiled loops for tightly coupled processor arrays2016 IEEE 27th International Conference on Application-specific Systems, Architectures and Processors (ASAP)
M. Wijtvliet, Luc Waeijen, H. Corporaal (2016)
Coarse grained reconfigurable architectures in the past 25 years: Overview and classification2016 International Conference on Embedded Computer Systems: Architectures, Modeling and Simulation (SAMOS)
(2014)
Invasivetightly-coupled processorarrays:Adomain-specific architecture/compilerco-design approach
Lothar Thiele (1989)
On the design of piecewise regular processor arraysProceedings of the IEEE International Symposium on Circuits and Systems. IEEE
P. Feautrier (1991)
Dataflow analysis of array and scalar referencesInternational Journal of Parallel Programming, 20
A. Konstantinidis, P. Kelly, J. Ramanujam, P. Sadayappan (2013)
Parametric GPU Code Generation for Affine Loop Programs
Benoît Dupont De Dinechin, Renaud Ayrignac, Pierre-Edouard Beaucamps, Patrice Couvert, Benoît Ganne, Pierre Guironnet de Massas, François Jacquet, Samuel Jones, Nicolas Morey Chaisemartin, Frédéric Riss, et al (2013)
A clustered manycore processor architecture for embedded and accelerated applicationsProceedings of the 2013 IEEE High Performance Extreme Computing Conference (HPEC’13). IEEE, 2013
Brent Bohnenstiehl, Aaron Stillmaker, J. Pimentel, Timothy Andreas, Bin Liu, A. Tran, E. Adeagbo, B. Baas (2017)
KiloCore: A Fine-Grained 1,000-Processor Array for Task-Parallel ApplicationsIEEE Micro, 37
Marcel Brand, Frank Hannig, Alexandru Tanase, J. Teich (2017)
Orthogonal Instruction Processing: An Alternative to Lightweight VLIW Processors2017 IEEE 11th International Symposium on Embedded Multicore/Many-core Systems-on-Chip (MCSoC)
H. Nelis, E. Deprettere (1988)
Automatic design and partitioning of systolic/wavefront arrays for VLSICircuits, Systems and Signal Processing, 7
(1991)
Systematic design of local processor arrays for numerical algorithms
Martin Kong, R. Veras, Kevin Stock, F. Franchetti, L. Pouchet, P. Sadayappan (2013)
When polyhedral transformations meet SIMD code generationProceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation
L. Thiele (1989)
On the design of piecewise regular processor arraysIEEE International Symposium on Circuits and Systems,
J. Teich, Alexandru Tanase, Frank Hannig (2014)
Symbolic Mapping of Loop Programs onto Processor ArraysJournal of Signal Processing Systems, 77
B. Rau, C. Glaeser (1981)
Some scheduling techniques and an easily schedulable horizontal architecture for high performance scientific computing
Srinivas Boppu, Frank Hannig, J. Teich (2014)
Compact Code Generation for Tightly-Coupled Processor ArraysJournal of Signal Processing Systems, 77
Srinivas Boppu, Frank Hannig, J. Teich (2013)
Loop program mapping and compact code generation for programmable hardware accelerators2013 IEEE 24th International Conference on Application-Specific Systems, Architectures and Processors
Michael Witterauf, Alexandru Tanase, Frank Hannig, Jürgen Teich (2016)
Modulo scheduling of symbolically tiled loops for tightly coupled processor arraysProceedings of the IEEE 27th International Conference on Application-specific Systems
Manupa Karunaratne, Aditi Mohite, T. Mitra, L. Peh (2017)
HyCUBE: A CGRA with reconfigurable single-cycle multi-hop interconnect2017 54th ACM/EDAC/IEEE Design Automation Conference (DAC)
G. Chaitin, M. Auslander, A. Chandra, J. Cocke, Martin Hopkins, Peter Markstein (1981)
Register Allocation Via ColoringComput. Lang., 6
J. Teich, Alexandru Tanase, Frank Hannig (2013)
Symbolic parallelization of loop programs for massively parallel processor arrays2013 IEEE 24th International Conference on Application-Specific Systems, Architectures and Processors
J. Teich, L. Thiele, Li Zhang (1996)
Scheduling of partitioned regular algorithms on processor arrays with constrained resourcesProceedings of International Conference on Application Specific Systems, Architectures and Processors: ASAP '96
B. Dinechin, Renaud Ayrignac, Pierre-Edouard Beaucamps, Patrice Couvert, Benoit Ganne, P. Massas, F. Jacquet, Samuel Jones, Nicolas Chaisemartin, F. Riss, Thierry Strudel (2013)
A clustered manycore processor architecture for embedded and accelerated applications2013 IEEE High Performance Extreme Computing Conference (HPEC)
Srinivas Boppu (2015)
Code Generation for Tightly Coupled Processor Arrays
Frank Hannig (2009)
Scheduling Techniques for High-Throughput Loop Accelerators
Jürgen Teich, Alexandru Tanase, Frank Hannig (2013)
Symbolic parallelization of loop programs for massively parallel processor arraysProceedings of the IEEE 24th International Conference on Application-Specific Systems
DaeGon Kim, S. Rajopadhye (2009)
Efficient Tiled Loop Generation: D-Tiling
Sven Verdoolaege (2010)
isl: An Integer Set Library for the Polyhedral Model
Albert Hartono, M. Baskaran, J. Ramanujam, P. Sadayappan (2010)
DynTile: Parametric tiled loop generation for parallel execution on multicore processors2010 IEEE International Symposium on Parallel & Distributed Processing (IPDPS)
Michael Witterauf, Frank Hannig, J. Teich (2019)
Polyhedral fragments: an efficient representation for symbolically generating code for processor arraysProceedings of the 17th ACM-IEEE International Conference on Formal Methods and Models for System Design
Srinivas Boppu, Frank Hannig, Jürgen Teich (2013)
Loop program mapping and compact code generation for programmable hardware acceleratorsProceedings of the IEEE 24th International Conference on Application-Specific Systems
A. Jimborean, P. Clauss, Jean-François Dollinger, Vincent Loechner, J. Caamaño (2014)
Dynamic and Speculative Polyhedral Parallelization Using Compiler-Generated SkeletonsInternational Journal of Parallel Programming, 42
Tightly Coupled Processor Arrays (TCPAs), a class of massively parallel loop accelerators, allow applications to offload computationally expensive loops for improved performance and energy efficiency. To achieve these two goals, executing a loop on a TCPA requires an efficient generation of specific programs as well as other configuration data for each distinct combination of loop bounds and number of available processing elements (PEs). Since both these parameters are generally unknown at compile time—the number of available PEs due to dynamic resource management, and the loop bounds, because they depend on the problem size—both the programs and configuration data must be generated at runtime. However, pure just-in-time compilation is impractical, because mapping a loop program onto a TCPA entails solving multiple NP-complete problems. As a solution, this article proposes a unique mixed static/dynamic approach called symbolic loop compilation. It is shown that at compile time, the NP-complete problems (modulo scheduling, register allocation, and routing) can still be solved to optimality in a symbolic way resulting in a so-called symbolic configuration, a space-efficient intermediate representation parameterized in the loop bounds and number of PEs. This phase is called symbolic mapping. At runtime, for each requested accelerated execution of a loop program with given loop bounds and known number of available PEs, a concrete configuration, including PE programs and configuration data for all other components, is generated from the symbolic configuration according to these parameter values. This phase is called instantiation. We describe both phases in detail and show that instantiation runs in polynomial time with its most complex step, program instantiation, not directly depending on the number of PEs and thus scaling to arbitrary sizes of TCPAs. To validate the efficiency of this mixed static/dynamic compilation approach, we apply symbolic loop compilation to a set of real-world loop programs from several domains, measuring both compilation time and space requirements. Our experiments confirm that a symbolic configuration is a space-efficient representation suited for systems with little memory—in many cases, a symbolic configuration is smaller than even a single concrete configuration instantiated from it—and that the times for the runtime phase of program instantiation and configuration loading are negligible and moreover independent of the size of the available processor array. To give an example, instantiating a configuration for a matrix-matrix multiplication benchmark takes equally long for 4× 4 and 32× 32 PEs.
ACM Transactions on Embedded Computing Systems (TECS) – Association for Computing Machinery
Published: Jul 29, 2021
Keywords: Systolic arrays
Read and print from thousands of top scholarly journals.
Already have an account? Log in
Bookmark this article. You can see your Bookmarks on your DeepDyve Library.
To save an article, log in first, or sign up for a DeepDyve account if you don’t already have one.
Copy and paste the desired citation format or use the link below to download a file formatted for EndNote
Access the full text.
Sign up today, get DeepDyve free for 14 days.
All DeepDyve websites use cookies to improve your online experience. They were placed on your computer when you launched this website. You can change your cookie settings through your browser.