Jax and Equinox: What are they and why should I bother?
1–10 of 17 posts
Re: Jax and Equinox: What are they and why should I bother?
#2Re: Jax and Equinox: What are they and why should I bother?
#3https://github.com/patrick-kidger/equinox?tab=readme-ov-file...
I've enjoyed using Equinox and Diffrax for performing ODE simulations. To my knowledge the only other peer library with similar capabilities is the Julia DifferentialEquations.jl package.
Re: Jax and Equinox: What are they and why should I bother?
#4Will it try and bind me to other technologies?
Does it work out of the box on ${GPU}?
Is it well supported?
Will it continue to be supported?
Re: Jax and Equinox: What are they and why should I bother?
#5JAX feels close to achieving a sort of high-level GPGPU ecosystem. Super fledgling — but I keep finding more little libraries that build on JAX (and can be compositionally used with other JAX libraries because of it).
Only problem is that lots of compositional usage leads to big code and therefore big compile times for XLA.
Re: Jax and Equinox: What are they and why should I bother?
#6For me the questions to answer for whether or not I should bother. Will it try and bind me to other technologies? Does it work out of the box on ${GPU}? Is it well supported? Will it continue to be supported?
Sadly, I cannot get JAX to work with the built-in GPU on my M1 MacBook Air. In theory it's supposed to work:
https://developer.apple.com/metal/jax/
But it crashes Python when I try to run a compiled function. And that's only after discovering I need an older specific version of jax-metal, because newer versions apparently don't work with M1 anymore (only M2/M3) -- they don't even report the GPU as existing. And even if you get it running, it's missing support for complex numbers.
I'm not clear whether it's Google or Apple who is building/maintaining support for Apple M chips though.
JAX works perfectly in CPU mode though on my MBA, so at least I can use it for development and debugging.
Re: Jax and Equinox: What are they and why should I bother?
#7Re: Jax and Equinox: What are they and why should I bother?
#8For me the questions to answer for whether or not I should bother. Will it try and bind me to other technologies? Does it work out of the box on ${GPU}? Is it well supported? Will it continue to be supported?
Playing with JAX on Google Colab (Nvidia T4), everything works great. Sadly, I cannot get JAX to work with the built-in GPU on my M1 MacBook Air. In theory it's supposed to work: https://developer.apple.com/metal/jax/ But it crashes Python when I try to run a compiled function. And that's only after discovering I need an older specific version of jax-metal, because newer versions apparently don't work with M1 anymore…
Re: Jax and Equinox: What are they and why should I bother?
#9For me the questions to answer for whether or not I should bother. Will it try and bind me to other technologies? Does it work out of the box on ${GPU}? Is it well supported? Will it continue to be supported?
Re: Jax and Equinox: What are they and why should I bother?
#10Earlier quoted context omitted.
Playing with JAX on Google Colab (Nvidia T4), everything works great. Sadly, I cannot get JAX to work with the built-in GPU on my M1 MacBook Air. In theory it's supposed to work: https://developer.apple.com/metal/jax/ But it crashes Python when I try to run a compiled function. And that's only after discovering I need an older specific version of jax-metal, because newer versions apparently don't work with M1 anymore…
Pretty sure it's Apple building it, and they're using JAX in-house so I imagine it will get better over time. Though they do love to drop support for old things so maybe M1 will never work again...