ekzhang
Disclaimer: I am the author
https://jax-js.com/detr-resnet-50
I don’t think I intend to support everything in ONNX right now, especially quant/dequant, but eventually it would be interesting to see if we can help accelerate transformers.js with a jax-js backend + goodies like kernel fusion
jax-js is more trying to explore being an ML research library, rather than ONNX which is a runtime for exported models
Thanks for the feedback though, just explaining how we arrived at this API. I hope you’d at least try it out — hopefully you will see when developing that the refs are more flexible than alternatives.
Show HN: Jax-JS, array library in JavaScript targeting WebGPU
Show HN: jax-js – JAX in pure JavaScript
You write code like in JAX/NumPy, but it’s fully interactive on the frontend and compiles down to shaders on the user’s GPU (with WebGPU). So far I’ve used it for purely frontend-only ML demos. https://jax-js.com/mobileclip
Show HN: jax-js, an ML library and compiler for the web
Another idea I had is to customize the rootfs. It boots Alpine right now, but should be trivial to change it to anything else (and it only takes ~5 seconds to build!).
Show HN: SSH-hypervisor – like SSH, but each user gets their own microVM
https://ekzhang.substack.com/p/ssh-hypervisor-simcity-for-vms
This is a project I made over the weekend. What if when you SSH'd into a machine, instead of giving you a user login, it would provision a new microVM just for you?It's like a little SimCity for VMs.This turned out to be a lot of fun, and I've wanted to make my own custom SSH server for a while now, with its fancy progress bars and color animations. The hardest part was definitely debugging VM...
ChickadeeOS, a teaching operating system for Harvard's CS 161
Building a cloud GPU notebook that boots in seconds
We wanted to improve the Jupyter Notebook experience while offering high-performance, cloud compute. So we sought out to fix some of the problems in cloud offerings for notebooks, and we ended up rebuilding a lot of the interface ourselves. This means you can do things like:
- Within the same notebook, swap from CPU to GPU, and the kernel will restart in seconds while keeping your work.
- Use _lots_ of hardware: up to 8x H100/B200 GPUs, not just one.
- Automatic idle shutdown (configurable timeout) so you don't get a huge bill / forget to stop your notebook.
- Real-time collaborative editing.
- Integrations with Pyright and Ruff for a better IDE-like experience.
Unlike Google Colab, we are a full cloud offering, so you can integrate with the rest of the Modal platform — use custom images, attach persistent volumes and so on. We've heard these are the actual, boring but really important features you need to do experimental work in notebooks.
Happy to hear any feedback! Would love for you to try it out.
Modal Notebooks, a real-time collaborative notebook with cloud GPUs
How the jax.jit() JIT compiler works in Jax-JS
There are different tradeoffs here, but I’d like to replicate the speed and ergonomics of Python libraries with NumPy/PyTorch/JAX without the difficulty of distribution. jax-js is lightweight enough to be embedded in a website, but optimized to take advantage of tech like Wasm and WebGPU.
Let me know if you have any feedback on this compiler design. It’s working well and faster than tfjs at matrix multiplication, while having kernel fusion as well.
How the jax.jit() JIT compiler works in jax-js
How I Created the Amazon Logo
Realtime MLS-MPM particle system in Three.js WebGPURenderer
Modal SDKs for JavaScript and Go
The other features that were hard requirements for us were multi-tenancy and high availability / failover.
By the way, fck-nat is just a basic shell script that sets the `ip_forward` and `rp_filter` sysctls and adds an IP masquerade rule. If you look at vprox, we also do this but build a lot on top of it. https://github.com/modal-labs/vprox