HN user

boywitharupee

46 karma
Posts0
Comments67
View on HN
No posts found.
NASA Force 3 months ago

the timer and urgency of this reminds me of the movie Armageddon where they had limited time to form a crew for a space mission.

In C++, it's an rvalue reference , which can be effectively thought of as an lvalue

hmm...this doesn't sound quite right? the comma operator's result in C++ is not an rvalue reference - it takes on exactly the value category of its right operand (which in this case is an lvalue)

so, these are hand optimized primitives for specific model of nvidia gpus? do you still have to make launch/scheduling decisions to maximize occupancy? how does this approach scale to other target devices with specialized instruction sets and different architecture?

In a similar fashion, you'll see that JAX has frontend code being open-sourced, while device-related code is distributed as binaries. For example, if you're on Google's TPU, you'll see libtpu.so, and on macOS, you'll see pjrt_plugin_metal_1.x.dylib.

The main optimizations (scheduler, vectorizer, etc.) are hidden behind these shared libraries. If open-sourced, they might reveal hints about proprietary algorithms and provide clues to various hardware components, which could potentially be exploited.

the title seems like a misnomer.

shouldn't this be "python 3.13 gets a new jit compiler" because python already has a jit.

JAX is a wrapper on top of XLA. Instead of writing pure python, you're writing JAX abstractions.

for ex, a simple loop in JAX:

  def solve(i, v): return i+v
  x = jax.lax.fori_loop(0, 5, solve, 10)

in tinygrad, the llama2 model with Metal runtime produces 1k kernels. this means we have to compile them all, leading to both startup and runtime costs from repeated compilations and buffer bindings. someone suggested using one megakernel to call the rest. could dynamic partitioning help here?