Data Transfer Optimizations for Host-CPU and Accelerators in AXI4MLIR
Reviewed by Pith T0 review T1 audit T2 compute T3 formal T4 kernel pith:2YMCBYMFrecord.jsonopen to challenge →
read the original abstract
As custom hardware accelerators become more prevalent, it becomes increasingly important to automatically generate efficient host-driver code that can fully leverage the capabilities of these accelerators. This approach saves time and reduces the likelihood of errors that can occur during manual implementation. AXI4MLIR extends the MLIR compiler framework to generate host-driver code for custom accelerators for linear algebra problems. By leveraging specific compiler optimizations, we can further increase accelerator utilization. In this work we offer two key observations through a MatMul accelerator case study. First, the accelerator's compute core utilization is less than 10%, and second, the critical latency bottleneck is caused by copying data between the heap and memory-mapped DMA buffers. We identify a set of missing host code optimizations to improve the under-utilization and the latency bottleneck. Therefore, we propose three key host-code data-movement-related optimizations, extending AXI4MLIR. The optimizations provide DMA-based data allocation, coalescing of DMA transfers, and pipelining of the accelerator's load, compute, and store stages.
This paper has not been read by Pith yet.
Forward citations
Cited by 1 Pith paper
-
Defeat the Heap: Zero-Copy Data Movement in AXI4MLIR
Extending the accel dialect in AXI4MLIR with direct DMA-mapped allocation eliminates a staging copy and reduces main memory data movement by up to 2x on matrix multiplication accelerators.
discussion (0)
Sign in with ORCID, Apple, or X to comment. Anyone can read and Pith papers without signing in.