Skip to content

Commit

Permalink
Address review feedback and other improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
christiangnrd committed Oct 4, 2024
1 parent 98c03ba commit e839afc
Showing 1 changed file with 10 additions and 12 deletions.
22 changes: 10 additions & 12 deletions post/2024-10-02-metal-1.4.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,20 +38,18 @@ standard `Random.rand[n][!]` functions.
## Future work

Although Metal.jl is now in v1, there is still work to be done to make it as fast and
feature-complete. In particular:
feature-complete as possible. In particular:

- since the last blog post, Metal.jl has started using native ObjectiveC FFI for wrapping
Metal APIs. However, these wrappers have to be written manually for every piece of
Objective-C code. We are looking for help improving Clang.jl and ObjectiveC.jl to enable
the automatic generation of these wrappers. See tracking [issue](https://github.com/JuliaInterop/ObjectiveC.jl/issues/41);
Objective-C code. *We are looking for help with improving Clang.jl and ObjectiveC.jl* to [enable
the automatic generation of these wrappers](https://github.com/JuliaInterop/ObjectiveC.jl/issues/41);
- the MPS wrappers are incomplete, automatic wrapper generation would greatly help with
full MPS support;
- support for atomic operations is missing, which is required to implement a full-featured
KernelAbstractions.jl back-end. See tracking [issue](https://github.com/JuliaGPU/Metal.jl/issues/218);
- full support for BFloat16 values, which has been supported since Metal 3.1 (macOS 14),
is not yet in Metal.jl. See tracking [issue](https://github.com/JuliaGPU/Metal.jl/issues/298);
- some functionality present in CUDA.jl could be ported to Metal.jl to improve usability.
See tracking [issue](https://github.com/JuliaGPU/Metal.jl/issues/443);
- general performance improvements. In particular, improvements to the ObjectiveC.jl type model
could greatly reduce the number of allocations currently necessary for every
Objective-C/Metal operation. See tracking [issue](https://github.com/JuliaInterop/ObjectiveC.jl/issues/13).
- to implement a full-featured KernelAbstractions.jl back-end, Metal atomic operations need to [be
hooked up to Atomix](https://github.com/JuliaGPU/Metal.jl/issues/218);
- [full support for BFloat16 values](https://github.com/JuliaGPU/Metal.jl/issues/298),
which has been supported since Metal 3.1 (macOS 14), is not yet in Metal.jl. There is,
however, a [draft PR](https://github.com/JuliaGPU/Metal.jl/pull/446) in the works. Check it out
if you're interested in helping out;
- some functionality present in CUDA.jl [could be ported to Metal.jl to improve usability](https://github.com/JuliaGPU/Metal.jl/issues/443).

0 comments on commit e839afc

Please sign in to comment.