Pith. sign in

REVIEW 2 major objections 5 minor 88 references

A Multi-level Compiler Backend for Accelerated Micro-kernels Targeting RISC-V ISA Extensions

T0 review · 2 major / 5 minor · reviewed 2026-08-08 · deepseek-v4-flash

Pith's one-line read A compiler backend organized as layered SSA intermediate representations can generate micro-kernels for a RISC-V accelerator that reach 90–95% FPU utilization without handwritten assembly.

desk verdict Solid systems paper: the multi-level SSA backend for RISC-V accelerators is real, reproducible, and the 90% utilization claim holds up; the unroll-factor concern is a minor footnote, not a flaw. read the letter →

arxiv 2502.04063 v1 pith:S7LOMCDF submitted 2025-02-06 cs.PL

classification cs.PL
keywords compilerbackendstaticsingleassignmentRISC-VISAextensionsmicro-kernelsregisterallocationFPUutilizationstreamingregisters
verification ladder T0 review T1 audit T2 compute T3 formal

The pith

A machine-rendered reading of the paper's core claim, the machinery that carries it, and where it could break.

The reading

This paper tries to show that the classic hourglass compiler design, where one low-level IR feeds a generic backend, is not the only viable route to high performance on specialized hardware. The authors instead build a backend as a stack of structured SSA-based IRs that carry domain knowledge about a RISC-V accelerator's custom extensions, namely hardware loops and streaming registers, all the way down to assembly. Lowering automatically from a high-level linear algebra DSL, their prototype reports up to 90% FPU utilization on representative deep-learning kernels, and up to 95% when kernels are written directly in the backend's low-level dialects. If this holds, domain-specific compilation could reach custom accelerators without expert-tuned assembly or library code, which is what the paper aims to establish.

What carries the argument

The load-bearing machinery is a family of SSA-based IRs arranged by abstraction level: a low-level RISC-V dialect whose operations are assembly instructions, structured control-flow dialects that keep loops and function calls with region bodies, and target-specific dialects that model streaming registers, stream configurations as compile-time constants, and hardware loops as operations with explicit iteration counts and region bodies. The central transformation is progressive lowering: a high-level generic operation is first rewritten into a memory-stream operation with explicit iteration bounds, then into a streaming region that wraps hardware-loop operations, so access patterns and loop control are decided while domain structure still exists. Register allocation walks the structured regions backwards in three passes, allocating loop-carried values first so the same physical register is reused across iterations, and never spills. Scheduling uses unroll-and-jam with an unroll factor of at least four to hide the target FPU's three-stage pipeline.

What would settle it

Modify the cycle-accurate RTL simulator so that floating-point multiply and add have different pipeline latencies, say five and three cycles, while keeping the generated schedule and unroll factor fixed at four; if FPU utilization drops substantially below the reported 90-95%, the uniform three-stage assumption is load-bearing. Alternatively, sweep the unroll factor from one to eight on the same kernels and check that the utilization plateau starts at four as claimed.

Watch

Extended reading notes

Core claim

The paper's central claim is that a multi-level backend, composed of several structured SSA IRs rather than a single catch-all low-level representation, can generate near-peak micro-kernels for an accelerator with non-standard ISA extensions. Concretely, the authors encode RISC-V assembly as SSA operations, add higher-level dialects that model the accelerator's streaming registers and hardware repetition loops, and perform register allocation over structured regions in three linear passes instead of reconstructing liveness from unstructured control flow. With progressive lowering from a high-level linear algebra abstraction through a memory-stream representation, compiler-generated kernels reach 90% FPU utilization on representative ML kernels, while kernels expressed directly in the low-level dialects reach up to 95%. The same kernels compiled through a conventional general-purpose compiler flow peak near 42% utilization, which the paper attributes to the information loss caused by lowering into a single low-level IR.

Load-bearing premise

The automatic scheduler assumes every floating-point operation on the target takes exactly three pipeline stages, so unrolling the inner loop by at least four eliminates all read-after-write stalls; if FPU latencies differ by operation or the memory system adds variable delays, the reported 90-95% utilization would drop.

Editorial extensions

If this is right

  • Custom RISC-V ISA extensions such as hardware loops and streaming registers can be targeted automatically from a high-level DSL, removing the need to hand-write assembly for each kernel.
  • Backends organized as several structured IRs can keep domain information available for scheduling, register allocation, and code generation instead of discarding it at a single mid-level IR.
  • Spill-free register allocation over structured regions is sufficient for high-performance linear algebra micro-kernels, so general-purpose spilling heuristics need not be part of micro-kernel compilation.
  • Kernel performance approaches the roofline as problem size grows, meaning accelerator setup and function-call overheads dominate only on small inputs.
  • Existing general-purpose compiler flows leave roughly half of FPU capacity unused on this accelerator, and the multi-level backend closes most of that gap.

Reading between the lines

Editorial extensions of the paper, not claims the author makes directly.

  • A fair head-to-head test would require a competing backend that also understands the target extensions; the paper presents its general-purpose compilation flows as context rather than as direct baselines, so the 42% figure is indicative, not a controlled comparison.
  • The same multi-level recipe should transfer to other accelerators whose custom features can be expressed as structured SSA operations, but the paper demonstrates only one target; implementing a second backend would test the claim's generality.
  • The fixed rule of unrolling by at least the pipeline depth suggests a generic scheduling heuristic; for targets with non-uniform FPU latencies or variable memory delays, the compiler would need a latency model or autotuning.
  • Because structured control flow is a precondition for the spill-free allocator, applying this backend to general-purpose code would require reintroducing liveness analysis and spilling; the paper explicitly scopes itself to linear algebra micro-kernels.
Share X Bluesky LinkedIn Reddit HN

Editorial analysis

A structured set of objections, weighed in public.

Desk editor's note, referee report, and a circularity audit.

Referee Report

2 major / 5 minor

Summary. The paper proposes a compiler backend architecture built from multiple structured SSA-based IRs rather than a single low-level IR, and implements it for the Snitch RISC-V core with its SSR/FREP ISA extensions. The authors introduce a family of MLIR/xDSL dialects (rv, rv_cf, rv_scf, rv_func, rv_snitch, snitch_stream, memref_stream), a spill-free register allocator that exploits structured control flow, and a progressive lowering path from linalg to Snitch assembly. The evaluation uses a cycle-accurate Verilator model and reports up to 95% FPU utilization for handwritten micro-kernels and up to 90% for kernels generated from a high-level linalg DSL, with a step-by-step ablation for the MatMul kernel.

Significance. If the results are reproducible, this is a valuable demonstration that a multi-level, structured backend can target custom ISA extensions without hand-written assembly. The artifact is a notable strength: it pins tool versions and a commit hash, uses deterministic cycle-accurate simulation, and provides a full Docker-based reproduction workflow. The ablation in Table 3 cleanly separates the effects of streams, scalar replacement, FREP, fusion, and unroll-and-jam, and the register-allocation study covers a reasonable kernel set. The main gaps are the lack of direct evidence for the scheduler's unroll-factor heuristic, and the fact that the Clang/MLIR comparison flows do not target Snitch's custom extensions, so they are not equal-footing baselines.

major comments (2)
  1. [Section 3.4, Table 3] The claim that stalls are minimized when the unroll factor is at least four rests on an unstated and unverified hardware assumption: that every Snitch FPU operation has a three-stage pipeline with issue-to-use latency of at most three cycles. No citation, Verilator latency measurement, or unroll-factor sweep is provided. Since Table 3 shows that Unroll-and-Jam is the single step that raises MatMul occupancy from 24.5% to 90.67%, this assumption is load-bearing for the headline result. Please add a concrete reference to the Snitch specification or a direct measurement of FPU latency, and ideally a small sweep (e.g., unroll factors 2, 3, 4, 5, 6) on the MatMul kernel to demonstrate that the chosen factor is sufficient and that the scheduler is not overfit to the specific N=5 shape. Also reconcile the statement in Section 4.4 that kernels 'process four reductions at a time' with Table 3's 'five elements' interleaving.
  2. [Section 4.1, Section 4.4, Figure 10] The paper correctly states that the Clang and MLIR flows are 'not a baseline for direct comparison' because they do not target the Snitch ISA extensions, but it then uses the large utilization gap in Figure 10 to support the conclusion that the LLVM backend is the limiting factor. Because those flows cannot issue SSR or FREP instructions, the gap could be attributed entirely to the absence of custom-extension support rather than to the multi-level IR structure. The paper should either remove the comparative language, clearly label the plots as reference points rather than baselines, or add a variant that targets the same custom instructions from a flat low-level IR so that the contribution of the multi-level structure is not conflated with the contribution of the extensions.
minor comments (5)
  1. [Section 4.4, Figure 10 caption] The text in Section 4.4 says the high-level pipeline reaches 'as high as 90%' FPU utilization, while the Figure 10 caption says kernels 'reach up to 95% FPU utilization'; clarify which pipeline produced the 95% figure (the handwritten low-level path in Section 4.2 or the high-level path).
  2. [Section 4.2] The paper states that the FPU peak is two FLOPs per cycle for 64-bit FMA operations, but the MatMulT kernel on 32-bit data is reported at 2.45 FLOPs/cycle; explain the 32-bit packed-SIMD peak so the throughput number is placed in context.
  3. [Table 3] The 'FRep' column header is not defined in the caption; state explicitly whether the entry is the number of emitted FREP instructions.
  4. [Artifact Appendix A.2] The artifact appendix lists xDSL 0.23.01 while Section 4.1 states xDSL v0.21.1; align the versions or explain the discrepancy.
  5. [Figure 9] The labels such as 'MatMulT 1xK 40xK' are hard to parse; consider separating the shape annotations into a legend or subcaptions for readability.

Circularity Check

0 steps flagged · score 0.0 of 10

No significant circularity: the headline FPU-utilization numbers are measured against an external RTL simulator and a roofline, and the unroll factor is chosen from a stated pipeline-depth assumption rather than fitted to the reported results.

full rationale

The paper's central claim is an engineering measurement, not a derivation: FPU utilization is computed from cycle counts obtained on a Verilator cycle-accurate RTL simulation of Snitch, against a theoretical roofline derived from FLOP counts and peak FP throughput (Section 4.1). The scheduler selects an unroll factor from a stated hardware property ('For Snitch, the FPU has three stages for all operations, so stalls are minimized when the unroll factor is at least four', Section 3.4) rather than fitting the factor to the measured 90.67% occupancy in Table 3; the row for Unroll-and-Jam reports a measured outcome, not a fitted prediction. No equations in the paper equate the target result to an input, and no benchmark constant is fit and then renamed as a prediction. The self-citations present (Snitch [80], Stream Semantic Registers [65], xDSL [14,31]) describe external hardware and tooling that are re-derived or executed in the artifact: the open-source Snitch SystemVerilog is compiled with Verilator, and the artifact is archived at 10.5281/zenodo.14052014. None of these self-citations is loaded with a uniqueness theorem or an unverified premise that forces the paper's conclusion. The 'spill-free' claim is explicitly scoped to kernels with spare registers (Table 2), and the paper states this choice 'might become a concern for those with more involved features such as deeper loop nests', which is a stated limitation rather than a circular step. The main vulnerability, the unverified three-stage FPU latency assumption, is a correctness risk that would lower utilization if wrong, not a circularity. Overall, the evaluation is self-contained against an external simulator and roofline, so no circularity is found.

Assumptions & free parameters 1 free parameters · 4 assumptions · 1 invented entities

The paper's results rest on standard SSA/MLIR theory, documented Snitch hardware behavior (pipeline, FREP, SSRs, TCDM), and three hand-set design choices: an unroll factor of at least four, a register pool limited to caller-saved registers, and a no-spilling policy. No constants are fitted to benchmark data; the unroll factor is selected from the stated pipeline depth. The multi-level IRs are the only newly introduced artifacts, and they are backed by released code.

free parameters (1)
  • Unroll factor for unroll-and-jam = at least 4 (5 for MatMul inner loop)
    Chosen by hand from the stated 3-stage FPU pipeline depth, not swept or autotuned; performance figures depend on it.
assumptions (4)
  • standard math SSA form guarantees that a linear walk of use-def chains respects definition order, extended to MLIR regions with blocks and arguments.
    Invoked in Section 3.3 to justify a single backward-walk register allocation; it is a standard result of SSA IR design, not proved here.
  • domain assumption Every Snitch FPU operation has a three-stage pipeline, so unrolling by at least four removes RAW stalls.
    Stated in Section 3.4 and used to select the unroll factor; the paper does not measure per-operation latencies.
  • domain assumption Snitch's in-order core and software-managed TCDM make performance predictable, so a simple schedule suffices without exploring a schedule space.
    Stated in Section 3.4; it justifies skipping autotuning and is a property of the specific hardware, not a general result.
  • ad hoc to paper Register spilling is undesirable for micro-kernels, so a spill-free allocator is the right target.
    Positioned in Section 3.3 as the design stance; it shapes both the allocator and the evaluation, and is a reasonable but not proven premise.
invented entities (1)
  • New xDSL/MLIR dialects for RISC-V and Snitch (rv, rv_cf, rv_scf, rv_func, rv_snitch, snitch_stream, memref_stream) independent evidence
    purpose: Represent assembly instructions, structured control flow, ABI conventions, streaming registers, FREP loops, and high-level stream abstractions in SSA form for progressive lowering.
    These are software abstractions, not speculative physical entities; they are implemented and shipped in the artifact (Zenodo DOI, commit 902bfbc8), and the paper shows generated IR and assembly, giving a concrete falsifiable handle.

how reviews work

0 comments
Cite this review

Pith. "Pith review of A Multi-level Compiler Backend for Accelerated Micro-kernels Targeting RISC-V ISA Extensions." pith.science (2026). https://pith.science/paper/S7LOMCDF

@misc{pith2026250204063,
  author       = {Pith},
  title        = {Pith review of: A Multi-level Compiler Backend for Accelerated Micro-kernels Targeting RISC-V ISA Extensions},
  year         = {2026},
  howpublished = {\url{https://pith.science/paper/S7LOMCDF}},
  note         = {Machine review of arXiv:2502.04063}
}
read the original abstract

High-performance micro-kernels must fully exploit today's diverse and specialized hardware to deliver peak performance to DNNs. While higher-level optimizations for DNNs are offered by numerous compilers (e.g., MLIR, TVM, OpenXLA), performance-critical micro-kernels are left to specialized code generators or handwritten assembly. Even though widely-adopted compilers (e.g., LLVM, GCC) offer tuned backends, their CPU-focused input abstraction, unstructured IR, and general-purpose best-effort design inhibit tailored code generation for innovative hardware. We think it is time to widen the classical hourglass backend and embrace progressive lowering across a diverse set of structured abstractions to bring domain-specific code generation to compiler backends. We demonstrate this concept by implementing a custom backend for a RISC-V-based accelerator with hardware loops and streaming registers, leveraging knowledge about the hardware at levels of abstraction that match its custom ISA. We use incremental register allocation over structured IRs, while dropping classical spilling heuristics, and show up to 90% FPU utilization across key DNN kernels. By breaking the backend hourglass model, we reopen the path from domain-specific abstractions to specialized hardware.

Figures

Figures reproduced from arXiv: 2502.04063 by the authors.

Figure 1
Figure 1. Traditional backends offer a narrow interface to abstraction-rich frameworks like MLIR, often triggering the development of expert-tuned libraries to exploit custom ac￾celerator features (left). Our multi-level backend combines target-specific abstractions with progressive lowering offer￾ing a wide backend for accelerator code generation (right). a result, C/C++, Fortran, Swift, Rust, and many more lan￾guages that t… view at source ↗
Figure 2
Figure 2. Organizing program abstractions as SSA-based IRs enables a modular approach for compiler construction. The above vector-matrix product in MLIR makes the use-def rela￾tionships explicit and obviates the need for intricate analyses by capturing information at the right abstraction level (e.g., directly expressing iteration types in linalg.generic). name, and each use of a value refers to a unique definition. We use SS… view at source ↗
Figure 3
Figure 3. Simplified high-level overview of the Snitch micro￾architecture used in our evaluation (Section 4) based on [80]. FPU utilization can be maximized using hardware loops (FREP) to remove explicit loop control flow and SSRs to eliminate explicit FP load/stores for affine access patterns. 2.2 Machine Learning Abstractions in SSA SSA is well-suited in expressing programs with IRs at differ￾ent abstraction levels for opti… view at source ↗
Figures from the paper (7 more)
Figure 5
Figure 5. Figure 5: Our multi-level compiler backend utilizes a host of MLIR dialects to generate efficient code, tailored to the RISC-V Snitch accelerator. The high-level information from the linalg dialect is progressively lowered to the custom Snitch ISA extensions. Our modular approac…
Figure 6
Figure 6. Figure 6: Our multi-level backend uses a mix of SSA-based IRs to represent different levels of abstraction around the RISC-V ISA for a matrix-vector calculation. The SSA formulation of the ISA empowers the compiler to employ well-understood analyses and transformations and, when…
Figure 7
Figure 7. Figure 7: The memref_stream abstractions bridge the gap between high-level linear algebra abstractions and Snitch accelerator capabilities, allowing us to schedule computation before separating access from execution. a feature required for general-purpose register allocation, ha…
Figure 8
Figure 8. Figure 8: We compare our prototype compiler with flows using Clang and MLIR, and separately evaluate the expres￾sivity of our MLIR backend (Section 4.1). (Section 2.4). We compile the open-source reference Sys￾temVerilog implementation of Snitch with Verilator [13] to generate t…
Figure 9
Figure 9. Figure 9: Our low-level representation is flexible enough to represent linear algebra operations commonly used in machine learning (ML) reaching high FPU utilization, reaching 95% peak FPU utilization and 94% of theoretical maximum throughput. Despite the high FPU utilization, t…
Figure 10
Figure 10. Figure 10: Selected micro-kernels compiled with our end-to-end prototype compiler reach up to 95% FPU utilization. In contrast, MLIR does not outperform a naive C implementation compiled with Clang on this platform. 4 12 20 28 36 44 52 60 N 4 12 20 28 36 44 52 60 K 22 25 34 35 4…
Figure 11
Figure 11. Figure 11: Sustained throughput of the 64-bit MatMul kernel (𝐶𝑀×𝑁 = 𝐴𝑀×𝐾𝐵𝐾×𝑁 when 𝑀 = 1). We achieve throughput of over 90% (≥ 1.80 FLOPs/cycle) of the theoretical peak (above the white border) as shape sizes increase, indicating that the computation offsets constant overheads. …

Discussion (0). Continue with ORCID to comment.

Reference graph

Works this paper leans on

88 extracted references · 52 canonical work pages

  1. [1]

    Cranelift Code Generator

    2024. Cranelift Code Generator. https://github.com/bytecodealliance/ wasmtime/tree/main/cranelift

  2. [2]

    The European Processor Initiative Accelerator Processor Stream

    2024. The European Processor Initiative Accelerator Processor Stream. https://www.european-processor-initiative.eu/accelerator/

  3. [3]

    GCC, the GNU Compiler Collection - GNU Project

    2024. GCC, the GNU Compiler Collection - GNU Project. https: //gcc.gnu.org/

  4. [4]

    High performance RISC-V CPUs

    2024. High performance RISC-V CPUs. https://www.ventanamicro. com/technology/risc-v-cpu-ip/

  5. [5]

    Intel oneDNN

    2024. Intel oneDNN. https://github.com/oneapi-src/oneDNN

  6. [6]

    LLVM for PULP Platform Projects, Snitch RISC-V ISA Exten- sion Support, PULP Project

    2024. LLVM for PULP Platform Projects, Snitch RISC-V ISA Exten- sion Support, PULP Project. https://github.com/pulp-platform/llvm- project/tree/d2f0eff9be1f58bb186499e2055eb6888ce88dcc

  7. [7]

    MLIR Documentation: linalg Dialect

    2024. MLIR Documentation: linalg Dialect. https://mlir.llvm.org/docs/ Dialects/Linalg

  8. [8]

    NVIDIA cuDNN

    2024. NVIDIA cuDNN. https://developer.nvidia.com/cudnn

Show all 88 references
  1. [9]

    oneAPI Programming Model

    2024. oneAPI Programming Model. https://www.oneapi.io/

  2. [10]

    RISC-V Packed SIMD Extension

    2024. RISC-V Packed SIMD Extension. https://github.com/riscv/riscv- p-spec

  3. [11]

    Snitch Cluster, PULP Project

    2024. Snitch Cluster, PULP Project. https://github.com/pulp-platform/ snitch_cluster/tree/772b86ae84ec0d5a6f1e755cb524ba0aae2cefc3

  4. [12]

    Torch-MLIR

    2024. Torch-MLIR. https://github.com/llvm/torch-mlir

  5. [13]

    Verilator

    2024. Verilator. https://www.veripool.org/wiki/verilator

  6. [14]

    xDSL: A Python Compiler Design Toolkit

    2024. xDSL: A Python Compiler Design Toolkit. https://github.com/ xdslproject/xdsl

  7. [15]

    XuanTie RISC-V ISA Extensions Specification

    2024. XuanTie RISC-V ISA Extensions Specification. https://github. com/XUANTIE-RV/thead-extension-spec

  8. [16]

    Murray, Benoit Steiner, Paul Tucker, Vijay Va- sudevan, Pete Warden, Martin Wicke, Yuan Yu, and Xiaoqiang Zheng

    Martin Abadi, Paul Barham, Jianmin Chen, Zhifeng Chen, Andy Davis, Jeffrey Dean, Matthieu Devin, Sanjay Ghemawat, Geoffrey Irv- ing, Michael Isard, Manjunath Kudlur, Josh Levenberg, Rajat Monga, Sherry Moore, Derek G. Murray, Benoit Steiner, Paul Tucker, Vijay Va- sudevan, Pet...

  9. [17]

    2001.Optimizing Compilers for Modern Architectures: A Dependence-based Approach(1 ed.)

    Randy Allen and Ken Kennedy. 2001.Optimizing Compilers for Modern Architectures: A Dependence-based Approach(1 ed.). Morgan Kaufmann, San Francisco

  10. [18]

    Riyadh Baghdadi, Jessica Ray, Malek Ben Romdhane, Emanuele Del Sozzo, Abdurrahman Akkas, Yunming Zhang, Patricia Suriana, Shoaib Kamil, and Saman Amarasinghe. 2019. Tiramisu: A Polyhedral Compiler for Expressing Fast and Portable Code. In Proceedings of the 2019 IEEE/ACM Inter...

  11. [19]

    George Bisbas, Anton Lydike, Emilien Bauer, Nick Brown, Mathieu Fehr, Lawrence Mitchell, Gabriel Rodriguez-Canal, Maurice Jamieson, Paul H. J. Kelly, Michel Steuwer, and Tobias Grosser. 2024. A Shared Compilation Stack for Distributed-Memory Parallelism in Stencil DSLs. In Pro...

  12. [20]

    Uday Bondhugula. 2020. High Performance Code Generation in MLIR: An Early Case Study with GEMM. arXiv:2003.00532 [cs] (March 2020). http://arxiv.org/abs/2003.00532 arXiv: 2003.00532

  13. [21]

    Florent Bouchez, Alain Darte, Christophe Guillon, and Fabrice Rastello

  14. [22]

    Florent Bouchez Tichadou and Fabrice Rastello (Eds.). 2023. SSA-based Compiler Design (1st ed. 2022 ed.). Springer Nature Switzerland AG, Cham

  15. [23]

    Sebastian Braun and Ivan Tashev. 2020. Data Augmentation and Loss Normalization for Deep Noise Suppression. In Speech and Computer, Alexey Karpov and Rodmonga Potapova (Eds.). Springer International Publishing, Cham, 79–86. doi: 10.1007/978-3-030-60276-5_8

  16. [24]

    Adrián Castelló, Julian Bellavita, Grace Dinh, Yuka Ikarashi, and Héc- tor Martínez. 2024. Tackling the Matrix Multiplication Micro-Kernel Generation with Exo. In 2024 IEEE/ACM International Symposium on Code Generation and Optimization (CGO) . 182–193. doi: 10.1109/ CGO57630....

  17. [25]

    Tianqi Chen, Thierry Moreau, Ziheng Jiang, Lianmin Zheng, Eddie Yan, Meghan Cowan, Haichen Shen, Leyuan Wang, Yuwei Hu, Luis Ceze, Carlos Guestrin, and Arvind Krishnamurthy. 2018. TVM: An Automated End-to-End Optimizing Compiler for Deep Learning. In Proceedings of the 13th US...

  18. [26]

    Tianqi Chen, Lianmin Zheng, Eddie Yan, Ziheng Jiang, Thierry Moreau, Luis Ceze, Carlos Guestrin, and Arvind Krishnamurthy. 2019. Learning to Optimize Tensor Programs. doi:10.48550/arXiv.1805.08166 arXiv:1805.08166 [cs, stat]

  19. [27]

    Sharan Chetlur, Cliff Woolley, Philippe Vandermersch, Jonathan Co- hen, John Tran, Bryan Catanzaro, and Evan Shelhamer. 2014. cuDNN: Efficient Primitives for Deep Learning. arXiv:1410.0759 [cs] (Dec. 2014). arXiv:1410.0759 [cs] http://arxiv.org/abs/1410.0759

  20. [28]

    Keith Cooper and Linda Torczon. 2023. Engineering a Compiler (3rd ed.). Elsevier. doi: 10.1016/C2014-0-01395-0

  21. [29]

    David R. Ditzel. 2022. Accelerating ML Recommendation With Over 1,000 RISC-V/Tensor Processors on Esperanto’s ET-SoC-1 Chip. IEEE Micro 42, 3 (May 2022), 31–38. doi: 10.1109/MM.2022.3140674

  22. [30]

    J. J. Dongarra, Jeremy Du Croz, Sven Hammarling, and I. S. Duff. 1990. A Set of Level 3 Basic Linear Algebra Subprograms. ACM Trans. Math. Softw. 16, 1 (March 1990), 1–17. doi: 10.1145/77626.79170

  23. [31]

    Mathieu Fehr, Michel Weber, Christian Ulmann, Alexandre Lopoukhine, Martin Lücke, Théo Degioanni, Michel Steuwer, and Tobias Grosser. 2023. Sidekick Compilation with xDSL. doi:10.48550/arXiv.2311.07422 arXiv:2311.07422 [cs]

  24. [32]

    Angelo Garofalo, Manuele Rusci, Francesco Conti, Davide Rossi, and Luca Benini. 2019. PULP-NN: A Computing Library for Quantized Neural Network Inference at the Edge on RISC-V Based Parallel Ultra Low Power Clusters. In2019 26th IEEE International Conference on Elec- tronics, ...

  25. [34]

    Gürkay- nak, and Luca Benini

    Michael Gautschi, Pasquale Davide Schiavone, Andreas Traber, Igor Loi, Antonio Pullini, Davide Rossi, Eric Flamand, Frank K. Gürkay- nak, and Luca Benini. 2017. Near-Threshold RISC-V Core With DSP Extensions for Scalable IoT Endpoint Devices. IEEE Transactions on Very Large Sc...

  26. [35]

    Perry Gibson and José Cano. 2023. Transfer-Tuning: Reusing Auto- Schedules for Efficient Tensor Program Code Generation. In Proceed- ings of the International Conference on Parallel Architectures and Com- pilation Techniques (PACT ’22). Association for Computing Machinery, New...

  27. [36]

    van de Geijn

    Kazushige Goto and Robert A. van de Geijn. 2008. Anatomy of High- Performance Matrix Multiplication. ACM Trans. Math. Softw. 34, 3 (May 2008), 12:1–12:25. doi: 10.1145/1356052.1356053

  28. [37]

    Tobias Grosser, Armin Groesslinger, and Christian Lengauer. 2012. Polly — Performing Polyhedral Optimizations on a Low-Level Inter- mediate Representation. Parallel Processing Letters 22, 04 (Dec. 2012), 1250010. doi: 10.1142/S0129626412500107

  29. [38]

    Tobias Gysi, Christoph Müller, Oleksandr Zinenko, Stephan Herhut, Eddie Davis, Tobias Wicky, Oliver Fuhrer, Torsten Hoefler, and Tobias Grosser. 2021. Domain-Specific Multi-Level IR Rewriting for GPU: The Open Earth Compiler for GPU-accelerated Climate Simulation. ACM Trans. A...

  30. [39]

    Sebastian Hack, Daniel Grund, and Gerhard Goos. 2006. Register Allocation for Programs in SSA-Form. In Compiler Construction, Alan Mycroft and Andreas Zeller (Eds.). Springer, Berlin, Heidelberg, 247–

  31. [40]

    Bastian Hagedorn, Archibald Samuel Elliott, Henrik Barthels, Rastislav Bodik, and Vinod Grover. 2020. Fireiron: A Data-Movement-Aware Scheduling Language for GPUs. InProceedings of the ACM International Conference on Parallel Architectures and Compilation Techniques (PACT ’20)...

  32. [41]

    Alexander Heinecke, Greg Henry, Maxwell Hutchinson, and Hans Pabst. 2016. LIBXSMM: Accelerating Small Matrix Multiplications by Runtime Code Generation. In SC16: International Conference for High Performance Computing, Networking, Storage and Analysis . IEEE, Salt Lake City, U...

  33. [42]

    Hennessy and David A

    John L. Hennessy and David A. Patterson. 2019. A New Golden Age for Computer Architecture. Commun. ACM 62, 2 (jan 2019), 48–60. doi:10.1145/3282307

  34. [43]

    Yuka Ikarashi, Gilbert Louis Bernstein, Alex Reinking, Hasan Genc, and Jonathan Ragan-Kelley. 2022. Exocompilation for Productive Pro- gramming of Hardware Accelerators. In Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implemen...

  35. [44]

    Alexandra Jimborean, Konstantinos Koukos, Vasileios Spiliopoulos, David Black-Schaffer, and Stefanos Kaxiras. 2018. Fix the code. Don’t tweak the hardware: A new compiler approach to Voltage- Frequency scaling. In Proceedings of Annual IEEE/ACM International Symposium on Code ...

  36. [45]

    Le, Tong Chen, Gong Su, Haruki Imai, Yasushi Negishi, Anh Leu, Kevin O’Brien, Kiyokuni Kawachiya, and Alexandre E

    Tian Jin, Gheorghe-Teodor Bercea, Tung D. Le, Tong Chen, Gong Su, Haruki Imai, Yasushi Negishi, Anh Leu, Kevin O’Brien, Kiyokuni Kawachiya, and Alexandre E. Eichenberger. 2020. Compiling ONNX Neural Network Models Using MLIR. doi:10.48550/arXiv.2008.08272 arXiv:2008.08272 [cs]

  37. [46]

    Navdeep Katel, Vivek Khandelwal, and Uday Bondhugula. 2022. MLIR- based Code Generation for GPU Tensor Cores. In Proceedings of the 31st ACM SIGPLAN International Conference on Compiler Construction (CC 2022). Association for Computing Machinery, New York, NY, USA, 117–128. do...

  38. [47]

    Fredrik Kjolstad, Shoaib Kamil, Stephen Chou, David Lugato, and Saman Amarasinghe. 2017. The Tensor Algebra Compiler. Proc. ACM Program. Lang. 1, OOPSLA (Oct. 2017), 77:1–77:29. doi:10.1145/3133901

  39. [48]

    David Koeplinger, Matthew Feldman, Raghu Prabhakar, Yaqi Zhang, Stefan Hadjis, Ruben Fiszel, Tian Zhao, Luigi Nardi, Ardavan Pedram, Christos Kozyrakis, and Kunle Olukotun. 2018. Spatial: A Language and Compiler for Application Accelerators. In Proceedings of the 39th ACM SIGP...

  40. [49]

    Konstantinos Koukos, David Black-Schaffer, Vasileios Spiliopoulos, and Stefanos Kaxiras. 2013. Towards More Efficient Execution: A De- coupled Access-Execute Approach. In Proceedings of the 27th Interna- tional ACM Conference on International Conference on Supercomputing (ICS ...

  41. [50]

    Alex Krizhevsky, Ilya Sutskever, and Geoffrey E. Hinton. 2017. Ima- geNet Classification with Deep Convolutional Neural Networks. Com- mun. ACM 60, 6 (may 2017), 84–90. doi: 10.1145/3065386

  42. [51]

    Braedy Kuzma, Ivan Korostelev, João P. L. De Carvalho, José E. Moreira, Christopher Barton, Guido Araujo, and José Nelson Amaral. 2023. Fast matrix multiplication via compiler-only layered data reorganization and intrinsic lowering. Software: Practice and Experience 53, 9 (Sep...

  43. [52]

    Chris Lattner and Vikram Adve. 2004. LLVM: A Compilation Frame- work for Lifelong Program Analysis & Transformation. In Interna- tional Symposium on Code Generation and Optimization, 2004. CGO

  44. [53]

    Chris Lattner, Mehdi Amini, Uday Bondhugula, Albert Cohen, Andy Davis, Jacques Pienaar, River Riddle, Tatiana Shpeisman, Nicolas Vasi- lache, and Oleksandr Zinenko. 2021. MLIR: Scaling Compiler Infras- tructure for Domain Specific Computation. In 2021 IEEE/ACM Interna- tional ...

  45. [54]

    Sadayappan

    Rui Li, Yufan Xu, Aravind Sukumaran-Rajam, Atanas Rountev, and P. Sadayappan. 2021. Analytical Characterization and Design Space Exploration for Optimization of CNNs. In Proceedings of the 26th ACM International Conference on Architectural Support for Programming Languages and...

  46. [55]

    Hsin-I Cindy Liu, Marius Brehler, Mahesh Ravishankar, Nicolas Vasi- lache, Ben Vanik, and Stella Laurenzo. 2022. TinyIREE: An ML Exe- cution Environment for Embedded Systems From Compilation to De- ployment. IEEE Micro 42, 5 (2022), 9–16. doi:10.1109/MM.2022.3178068

  47. [56]

    A Multi-Level Compiler Backend for Accelerated Micro-kernels Targetting RISC-V ISA Extensions

    Alexandre Lopoukhine, Federico Ficarelli, Christos Vasiladiotis, Anton Lydike, Josse Van Delm, Alban Dutilleul, Luca Benini, Marian Verhelst, and Tobias Grosser. 2024. Artifact of "A Multi-Level Compiler Backend for Accelerated Micro-kernels Targetting RISC-V ISA Extensions". ...

  48. [57]

    Rachit Nigam, Samuel Thomas, Zhijing Li, and Adrian Sampson. 2021. A Compiler Infrastructure for Accelerator Generators. In Proceedings of the 26th ACM International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS ’21) . As- sociatio...

  49. [58]

    Jeff Niu and Mehdi Amini. 2023. MLIR Dialect Design and Composition for Front-End Compilers. https://llvm.org/devmtg/2023-05/

  50. [59]

    Adam Paszke, Sam Gross, Francisco Massa, Adam Lerer, James Bradbury, Gregory Chanan, Trevor Killeen, Zeming Lin, Natalia Gimelshein, Luca Antiga, Alban Desmaison, Andreas Kopf, Edward Yang, Zachary DeVito, Martin Raison, Alykhan Tejani, Sasank Chil- amkurthy, Benoit Steiner, L...

  51. [60]

    Dylan Patel. 2021. Tenstorrent Wormhole Analysis - A Scale Out Architecture for Machine Learning That Could Put Nvidia On Their Back Foot. https://www.semianalysis.com/p/tenstorrent-wormhole- analysis-a-scale

  52. [61]

    Gianna Paulin, Matheus Cavalcante, Paul Scheffler, Luca Bertaccini, Yichao Zhang, Frank Gurkaynak, and Luca Benini. 2022. Soft Tiles: Capturing Physical Implementation Flexibility for Tightly-Coupled Parallel Processing Clusters. In 2022 IEEE Computer Society Annual Symposium ...

  53. [62]

    Fernando Magno Quintão Pereira. 2007. The Design and Im- plementation of a SSA-based Register Allocator. https://www. semanticscholar.org/paper/The-Design-and-Implementation-of-a- SSA-based-Pereira/9266bd5e1102892dcbe6e38907abc119bb4e761f

  54. [63]

    Antonio Pullini, Davide Rossi, Igor Loi, Giuseppe Tagliavini, and Luca Benini. 2019. Mr.Wolf: An Energy-Precision Scalable Parallel Ultra Low Power SoC for IoT Edge Processing. IEEE Journal of Solid-State Circuits 54, 7 (2019), 1970–1981. doi:10.1109/JSSC.2019.2912307

  55. [64]

    Jonathan Ragan-Kelley, Connelly Barnes, Andrew Adams, Sylvain Paris, Frédo Durand, and Saman Amarasinghe. 2013. Halide: A Lan- guage and Compiler for Optimizing Parallelism, Locality, and Recom- putation in Image Processing Pipelines. InProceedings of the 34th ACM SIGPLAN Conf...

  56. [65]

    Fabian Schuiki, Florian Zaruba, Torsten Hoefler, and Luca Benini

  57. [66]

    Michel Steuwer, Toomas Remmelg, and Christophe Dubach. 2017. LIFT: A Functional Data-Parallel IR for High-Performance GPU Code Generation. In 2017 IEEE/ACM International Symposium on Code Gener- ation and Optimization (CGO) . 74–85. doi:10.1109/CGO.2017.7863730

  58. [67]

    Giuseppe Tagliavini, Stefan Mach, Davide Rossi, Andrea Marongiu, and Luca Benini. 2019. Design and Evaluation of SmallFloat SIMD extensions to the RISC-V ISA. In 2019 Design, Automation & Test in Europe Conference & Exhibition (DATE). IEEE, Florence, Italy, 654–657. doi:10.239...

  59. [68]

    Jim M. R. Teichgräber. 2023. Efficient Compilation of an Extensible Intermediate Representation. Bachelor’s Thesis. Technische Universität München. https://github.com/J-MR-T/MoNaCo

  60. [69]

    Philippe Tillet, H. T. Kung, and David Cox. 2019. Triton: An Inter- mediate Language and Compiler for Tiled Neural Network Compu- tations. In Proceedings of the 3rd ACM SIGPLAN International Work- shop on Machine Learning and Programming Languages (MAPL 2019) . Association for...

  61. [70]

    Sadayappan, and Fabrice Rastello

    Nicolas Tollenaere, Guillaume Iooss, Stéphane Pouget, Hugo Brunie, Christophe Guillon, Albert Cohen, P. Sadayappan, and Fabrice Rastello

  62. [71]

    Van Zee, Tyler M

    Field G. Van Zee, Tyler M. Smith, Bryan Marker, Tze Meng Low, Robert A. Van De Geijn, Francisco D. Igual, Mikhail Smelyanskiy, Xianyi Zhang, Michael Kistler, Vernon Austel, John A. Gunnels, and Lee Killough. 2016. The BLIS Framework: Experiments in Portability.ACM Trans. Math....

  63. [72]

    Steven Varoumas. 2023. Using MLIR to Optimize Basic Lin- ear Algebraic Subprograms. https://llvm.org/devmtg/2023- 05/slides/TechnicalTalks-May10/08-Varoumas-UsingMLIR-to- OptimizeBasicLinearAlgebraicSubprograms.pdf

  64. [73]

    Nicolas Vasilache, Oleksandr Zinenko, Aart J. C. Bik, Mahesh Ravis- hankar, Thomas Raoux, Alexander Belyaev, Matthias Springer, Tobias Gysi, Diego Caballero, Stephan Herhut, Stella Laurenzo, and Albert Cohen. 2022. Composable and Modular Code Generation in MLIR: A Structured a...

  65. [74]

    Jonatan Waern, Per Ekemark, Konstantinos Koukos, Stefanos Kaxiras, and Alexandra Jimborean. 2016. Profiling-Assisted Decoupled Access- Execute. http://arxiv.org/abs/1601.01722 arXiv:1601.01722 [cs]

  66. [75]

    Andrew Waterman and Krste Asanović. 2019. The RISC-V Instruction Set Manual, Volume 1: User-Level ISA (document version 20191213 ed.). RISC-V Foundation. Available at https://riscv.org/technical/ specifications

  67. [76]

    Christian Wimmer and Michael Franz. 2010. Linear Scan Register Allocation on SSA Form. In Proceedings of the 8th Annual IEEE/ACM International Symposium on Code Generation and Optimization (CGO ’10). Association for Computing Machinery, New York, NY, USA, 170–

  68. [77]

    Tiago Cariolano De Souza Xavier, George Souza Oliveira, Ewerton Daniel De Lima, and Anderson Faustino Da Silva. 2012. A Detailed Analysis of the LLVM’s Register Allocators. In 2012 31st International Conference of the Chilean Computer Science Society . IEEE, Valparaíso, Chile,...

  69. [78]

    Florian Zaruba. 2023. Harnessing the RISC-V Wave: The Future is Now. https://www.axelera.ai/harnessing-the-risc-v-wave-the-future- is-now/

  70. [79]

    Florian Zaruba, Fabian Schuiki, and Luca Benini. 2021. Manticore: A 4096-Core RISC-V Chiplet Architecture for Ultraefficient Floating- Point Computing. IEEE Micro 41, 2 (March 2021), 36–42. doi: 10.1109/ MM.2020.3045564

  71. [80]

    Florian Zaruba, Fabian Schuiki, Torsten Hoefler, and Luca Benini. 2021. Snitch: A Tiny Pseudo Dual-Issue Processor for Area and Energy Efficient Execution of Floating-Point Intensive Workloads. IEEE Trans. Comput. 70, 11 (Nov. 2021), 1845–1860. doi: 10.1109/TC.2020.3027900

  72. [81]

    Yunming Zhang, Mengjiao Yang, Riyadh Baghdadi, Shoaib Kamil, Julian Shun, and Saman Amarasinghe. 2018. GraphIt: A High- Performance Graph DSL. Proc. ACM Program. Lang. 2, OOPSLA (Oct. 2018), 121:1–121:30. doi:10.1145/3276491

  73. [179]

    doi: 10.1145/1772954.1772979

  74. [262]

    doi: 10.1007/11688839_20

  75. [2004]

    IEEE Computer Society, Washington, DC, USA, 75–

    (CGO ’04). IEEE Computer Society, Washington, DC, USA, 75–. doi:10.1109/CGO.2004.1281665

  76. [2005]

    Research Report

    Register Allocation and Spill Complexity under SSA . Research Report. Laboratoire de l’informatique du parallélisme. 2+28p. pages. https://hal-lara.archives-ouvertes.fr/hal-02102197

  77. [2016]

    In 12th USENIX Symposium on Operating Systems Design and Implemen- tation (OSDI 16)

    TensorFlow: A System for Large-Scale Machine Learning. In 12th USENIX Symposium on Operating Systems Design and Implemen- tation (OSDI 16). 265–283. https://www.usenix.org/conference/osdi16/ technical-sessions/presentation/abadi

  78. [2019]

    In Advances in Neural Information Processing Systems , Vol

    PyTorch: An Imperative Style, High-Performance Deep Learning Library. In Advances in Neural Information Processing Systems , Vol. 32. Curran Associates, Inc. https://proceedings.neurips.cc/paper/2019/ hash/bdbca288fee7f92f2bfa9f7012727740-Abstract.html

  79. [2021]

    IEEE Trans

    Stream Semantic Registers: A Lightweight RISC-V ISA Extension Achieving Full Compute Utilization in Single-Issue Cores. IEEE Trans. Comput. 70, 2 (Feb. 2021), 212–227. doi: 10.1109/TC.2020.2987314

  80. [2023]

    ACM Trans

    Autotuning Convolutions Is Easier Than You Think. ACM Trans. Archit. Code Optim. 20, 2 (March 2023), 20:1–20:24. doi: 10.1145/ 3570641

Pith tools

Reviewed August 8, 2026 · model on record in the stance chip above.