JuliaGPU/Metal.jl

Add Support for BFloat16

tgymnich opened this issue · 3 comments

With Julia 1.11 coming up, we will have native support for BFloat16 JuliaLang/julia#51470.

Metal also supports BFloat16 onwards from Apple6 GPU architecture.

M1 belongs to the Apple7 GPU family

https://developer.apple.com/documentation/metalperformanceshaders/mpsdatatype

Hi, I would love to work on this issue.

Looks like precompilation fails for Metal.jl in 1.11 alpha 2 because of a version restriction in GPUCompiler.jl code.

Also there are multiple failures with current alpha if we ignore the code component for GPUCompiler.CodeCache like Metal.rand. Also the Core.BFloat16 is only partially implemented in 1.11 for tricking LLVM I suppose. For full usage we have to rely on BFloat16s.jl. I feel I should wait for 1.11 stable before starting working on this issue.

I suspect the version restriction is in place because the GPUCompiler probably needs to be updated for 1.11.

I believe the idea was to have minimal support in Julia base, and use packages to implement the full functionality, which can move much faster with releases and such.