Comment by syl20bnr

17 hours ago

It also compiles directly to MSL, it is just missing from the post title.

No it compiles indirectly through wgpu, which means it doesn’t have access to any Metal extensions not exposed by the wgpu interface.

  • I am the coder of the MSL dialect for the CubeCL CPP compiler. Since 0.5 release it directly compiles to MSL and support simdgroup matrix functions for instance. It does use wgpu for the runtime but without naga as we added msl pass through to wgpu just for this.

  • wgpu has some options to access backend-specific types and shader passthrough (i.e., you provide your own shader for a backend directly).

    Generally wgpu is open to supporting any Metal extensions you need. There's usually an analogous extension in one of the other backends (e.g., Vulkan, DX12) anyway.