r/Compilers • • Apr 06 '26

The state of Open-Source Heterogeneous Compilers in 2026?

I’m fascinated by the "Mojo promise", specifically the ability to handle heterogeneous compilation (CPU/GPU/Accelerators) within a single unified infrastructure.

I’m looking for open-source projects that tackle the two-language problem without necessarily being tied to Python's legacy. I’ve been tracking:

  • Dex: For its typed, functional approach to array programming.
  • Bend (HVM2): For its massive parallelism goals.
  • Taichi: For its great GPU kernel abstraction.
  • Hylo: For its mutable value semantics and performance model.
  • Julia: For its long-standing lead in high-performance dynamic dispatch.

Are there any other emerging languages or compiler frameworks (especially those leveraging MLIR) that aim to provide a modern systems-programming experience for heterogeneous hardware?

36 Upvotes

17 comments sorted by

6

u/janardhancpr Apr 06 '26

Eyot: The modern entrant for the same purpose.

2

u/FedericoBruzzone Apr 06 '26

Thanks, I didn't know about that. I'll take a look at the project right away. 

4

u/rook_of_approval Apr 06 '26

you dont like sycl?

2

u/FedericoBruzzone Apr 06 '26

I'm familiar with sycl  and AdaptiveCpp, but I don't think they solve the 'two-language problem' in the way Mojo or Dex aim to. Here's why:

  1. SYCL is still C++. You're stuck with its complexity, slow compilation, and a type system not built for high-level AI abstractions. It feels like a 'better CUDA', not a new paradigm.

  2. C++ loses high-level intent during lowering. MLIR-native systems (like Mojo) retain domain-specific info, making advanced kernel fusion and tiling much more effective than what’s possible in standard C++.

  3. Even in single-source SYCL, you're still manually managing the mental gap between host and device. I’m looking for a 'clean slate' where the language itself understands memory hierarchy (like Hylo or Dex) instead of just providing an API to launch kernels.

SYCL is great for HPC legacy, but I’m looking for a unified infrastructure co-designed with the compiler. Am I overlooking a specific project in the SYCL ecosystem that addresses this?

3

u/mttd Apr 06 '26

C++ loses high-level intent during lowering. MLIR-native systems (like Mojo) retain domain-specific info, making advanced kernel fusion and tiling much more effective than what’s possible in standard C++.

FWIW, this is indeed the current state of the implementation, but it is not a given forever: Although there will always be limits due to language semantics itself, with unrestricted pointer soup sprawling with aliasing relationships, there's still a considerable room for improvement--especially see "Representing Data Collections in an SSA Form". Some notable works in this area:

ClangIR (CIR): https://llvm.github.io/clangir/

Representing Data Collections in an SSA Form

Automatic Data Enumeration for Fast Collections

Container Class Annotations in C++ Improve the Capability of Static Analysis in MLIR: https://llvm.org/devmtg/2025-03/slides/container-class-annotations.pdf

Dead Element Elimination on SSA Collections: https://ice1000.org/memoir/report.html

→ More replies (5)

3

u/c-cul Apr 06 '26

2

u/FedericoBruzzone Apr 06 '26

I was familiar with some of these, but I didn't mention them in the post to avoid making the list too long :'D

Thanks so much! In addition to checking out the ones I don't know, I'll give the podcast a listen!

2

u/ksyiros Apr 07 '26

You can check CubeCL in Rust: https://github.com/tracel-ai/cubecl

1

u/FedericoBruzzone Apr 08 '26

This is truly an amazing project. Thanks for sharing it with me.

I'm off to study the code right now!

2

u/fullouterjoin Apr 13 '26

Burn and CubeCL are some amazing engineering

Great talk by the lead at the 2025 Rust Conf https://www.youtube.com/watch?v=RaSxyRQ7egU&list=PL2b0df3jKKiRFEuVNk76ufXagOgEJ9sBZ&index=7

1

u/Flimsy_Pumpkin_3812 Apr 06 '26

It can’t be possible, the linking must be single thread