Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support more operations in EXLA over MLIR #1295

Closed
polvalente opened this issue Aug 31, 2023 · 5 comments
Closed

Support more operations in EXLA over MLIR #1295

polvalente opened this issue Aug 31, 2023 · 5 comments

Comments

@polvalente
Copy link
Contributor

polvalente commented Aug 31, 2023

#1247 added support for MLIR compilation to EXLA

The following functions still have to be supported for full coverage:

  • window_reduce

Require complex numbers

  • conj
  • complex
  • fft
  • ifft
  • imag
  • real

Require HLO->MHLO conversion

  • eigh
  • cholesky
  • qr

Done

  • abs
  • acos
  • acosh
  • add
  • asin
  • asinh
  • atan
  • atan2
  • atanh
  • bitwise_and
  • bitwise_not
  • bitwise_or
  • bitwise_xor
  • cbrt
  • ceil
  • constant_from_binary
  • constant_r0
  • convert_element_type
  • cos
  • cosh
  • div
  • eq_total_order
  • equal
  • erf
  • erf_inv
  • erfc
  • exp
  • expm1
  • floor
  • get_shape_op
  • get_tuple_element
  • greater
  • greater_equal
  • iota
  • is_finite
  • is_infinity
  • is_nan
  • less
  • less_equal
  • log
  • log1p
  • max
  • min
  • mul
  • ne_total_order
  • neg
  • not_equal
  • parameter
  • pow
  • rem
  • round
  • rsqrt
  • shift_left
  • shift_right_arithmetic
  • shift_right_logical
  • sigmoid
  • sign
  • sin
  • sinh
  • sqrt
  • sub
  • tanh
  • tuple
  • bitcast_convert_type
  • broadcast_in_dim
  • clamp
  • clz
  • concatenate
  • dot
  • dot_general
  • dynamic_slice
  • optimization_barrier
  • pad
  • population_count
  • reshape
  • reverse
  • select
  • slice
  • transpose
  • map
  • reduce
  • variadic_reduce
  • conv_general_dilated
  • create_token
  • dynamic_update_slice
  • gather
  • scatter
  • select_and_scatter
  • sort
  • top_k
  • triangular_solve
  • variadic_sort
  • infeed
  • outfeed
  • conditional_if
  • call
  • while_loop
@wtedw
Copy link
Contributor

wtedw commented Sep 12, 2023

Does full Apple Silicon support require this PR?
Wondering if M1 GPU is already supported now that this PR is merged: elixir-nx/xla#9

@polvalente
Copy link
Contributor Author

Is this required for full Apple Silicon support?

It's a requirement, but not sufficient. The fact that the Jax/XLA metal plugin is closed source means that we can't lock into the older version of OpenXLA that would be needed for Metal support, because it would mean depending on something we have zero control over, while potentially keeping bugfixes, optimizations and features out of our codebase.

@wtedw
Copy link
Contributor

wtedw commented Sep 12, 2023

Gotcha, thanks 👍

@atomkirk
Copy link

Thank you for doing this!!!

@polvalente
Copy link
Contributor Author

closing this in favor of #1392

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants