Hi all,
I’ve been exploring Mojo’s GPU support on my Intel Arc hardware and wanted to share results and ask about the roadmap.
Hardware: 2× Intel Arc Pro B60 (Battlemage Xe2, 24 GB each)
What I tested:
- Installed mojo-intel-gpu v0.1.0 (William Obino’s Level Zero FFI bindings - excelent work!)
- Ran all 4 examples — vector_add, matrix_multiply, reduction, and benchmark — all pass on B60
Benchmark results (B60 vs published B580):
| Operation | B60 (this test) | B580 (published) |
|---|---|---|
| H2D 1MB | 83.6 µs | ~83 µs |
| D2H 1MB | 100 µs | ~83 µs |
| Kernel dispatch | 7.6 µs | 5.4 µs |
| E2E vector_add 1M | 2.89 ms | — |
Performance is in the same ballpark as the B580 — the Level Zero FFI approach works well.
The bigger question: I also installed MAX 26.5.0 (nightly) and probed the driver layer. The virtual device API accepts "level_zero" as a string, but load_devices() fails with "Unknown virtual device API: level_zero" — the supported APIs are hardcoded in the clo>
I’m interested in MAX model serving on Intel Arc GPUs (for hot-swap and multi-model workflows, not just compute kernels). What would it take to add "level_zero" as a first-class device API in MAX’s driver layer?
Specific questions:
- Is there a roadmap item for Intel XPU device support in MAX?
- Could the community contribute a Level Zero backend if the C++ driver SDK were available?
- Are there any hooks/extension points in the
_coremodule that would allow adding a new device API without modifying the closed-source binary?
I have the hardware (2× Arc B60, RTX 3090, RTX 2080 Ti) and I’m willing to test, provide detailed feedback, benchmark, or contribute code. If there’s a branch, a PR, or even just an experimental build — I’ll run it and report results. I’m invested in seeing this work>
— John