Publication | Closed Access
Automatic memory partitioning and scheduling for throughput and power optimization
77
Citations
16
References
2011
Year
Cluster ComputingEngineeringPower Optimization (Eda)Optimal ThroughputComputer ArchitectureSystem-level DesignPower OptimizationEmbedded SystemsHardware SystemsArray ComputingHigh-performance ArchitectureMemory PartitioningComputing SystemsParallel ComputingCompilersAutomatic Memory PartitioningPower-aware ComputingComputer EngineeringScheduling (Computing)Computer ScienceHardware AccelerationEnergy ManagementMemory BottleneckMany-core ArchitectureVirtual Resource PartitioningParallel ProgrammingPower-efficient Computing
Memory bottleneck has become a limiting factor in satisfying the explosive demands on performance and cost in modern embedded system design. Selected computation kernels for acceleration are usually captured by nest loops, which are optimized by state-of-the-art techniques like loop tiling and loop pipelining. However, memory bandwidth bottlenecks prevent designs from reaching optimal throughput with respect to available parallelism. In this paper we present an automatic memory partitioning technique which can efficiently improve throughput and reduce energy consumption of pipelined loop kernels for given throughput constraints and platform requirements. Also, our proposed algorithm can handle general array access beyond affine array references. Our partition scheme consists of two steps. The first step considers cycle accurate scheduling information to meet the hard constraints on memory bandwidth requirements specifically for synchronized hardware designs. An ILP formulation is proposed to solve the memory partitioning and scheduling problem optimally for small designs, followed by a heuristic algorithm which is more scalable and equally effective for solving large scale problems. Experimental results show an average 6× throughput improvement on a set of real-world designs with moderate area increase (about 45% on average), given that less resource sharing opportunities exist with higher throughput in optimized designs. The second step further partitions the memory banks for reducing the dynamic power consumption of the final design. In contrast to previous approaches, our technique can statically compute memory access frequencies in polynomial time with little or no profiling. Experimental results show about 30% power reduction on the same set of benchmarks.
| Year | Citations | |
|---|---|---|
Page 1
Page 1