Cascaded DMA Controller for Speedup of Indirect Memory Access in Irregular Applications
Cascaded DMA Controller for Speedup of Indirect Memory Access in Irregular Applications
复制标题
DOI:
10.1109/ia349570.2019.00017
复制
发表时间:
2019-11
期刊:
影响因子:
--
通讯作者:
Tomoya Kashimata;T. Kitamura;K. Kimura;H. Kasahara
中科院分区:
文献类型:
--
作者:
Tomoya Kashimata;T. Kitamura;K. Kimura;H. Kasahara
Indirect memory accesses caused by sparse linear algebra calculations are widely used in important real applications. However, they also cause serious inefficient memory accesses and pipeline stalls resulting low execution efficiency even with high memory bandwidth and much computational resource. One of the important issues of indirect memory accesses, such as accessing A[B[i]], is it requires two succeeding different memory accesses: the index loads (B[i]) and the following data element accesses (A[B[i]]). To overcome this situation, we propose the Cascaded-DMAC (CDMAC). This CDMAC is intended to be attached in each core of a multicore chip in addition to a CPU core, a vector accelerator, and a local data memory. It performs data transfers between an off-chip main memory and an in-core local data memory, which provides data to the accelerator. The key idea of the CDMAC is cascading two DMACs so that the first one loads indices, then the second one accesses data elements by using these indices. Thus, this organization realizes the autonomous indirect memory accesses by giving an index array and an element array, and obtains the efficient SIMD computations by lining up the sparse data into the local data memory. We implemented a multicore processor having the proposed CDMAC on an FPGA board. The evaluation result of sparse matrix-vector multiplications on the FPGA shows that the CDMAC achieves 17x speedup at most compared with the CPU data transfer.