Skip to main content

cutejax

CuteDSL jax wrapper that adds some useful features, and is the best library ever.

What it adds over cutlass.jax.cutlass_call

  • Pytree arguments that can contain code. cutlass_call only takes jax arrays. cutejax.call takes any pytree: arrays become kernel tensors, everything else (callables, config objects, eqx.Modules) becomes part of the cache key and runs as codegen inside the trace. This is how FlashAttention-4 flex-attention masks work in examples/fa4_attention.py. Or in my actual fa4-jax library.
  • Per-dimension static/dynamic choice. cutlass_call has one all-or-nothing use_static_tensors flag. ArraySpec(static_dims=...) lets you bake some dims in and leave others symbolic — e.g. static heads/head_dim, dynamic batch/seqlen.
  • Tied dimensions. ArraySpec(dim_names=...) makes two dims share one symbolic variable, so the compiler knows they're equal and the runtime checks it.
  • Small HLO. cutlass_call embeds the compiled object file in the HLO at every call site; cutejax registers a named FFI target, so the HLO is just a custom_call. Dispatch speed is the same either way. This does mean that each kernel links in a new .so and uses a tvm-ffi dispatch slot, but there's 1024 slots so it's probably fine.
  • A compile watchdog. Turns a runaway trace into an error instead of letting it eat all your RAM. Apparently this happens in cutedsl if you try to iterate over a dynamically shaped array? Idk why you would be so silly as to do that. But still, this fixes it.
  • Convenience. cutejax.Module registers with both jax's and cute's pytree registries; cutejax.cond gives you data-dependent branches in undecorated code.
  • Caching. You can store compilation results in a redis cache for "blazing speed".
  • Works on older jax. Tested on 0.8.2 through 0.11.0.

When to use the built-in instead

  • You need non-row-major layouts. cutlass_call's TensorSpec(mode=...) can remap dimensions. But why would you even want that?

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cutejax-0.1.4.tar.gz (102.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cutejax-0.1.4-py3-none-any.whl (26.6 kB view details)

Uploaded Python 3

File details

Details for the file cutejax-0.1.4.tar.gz.

File metadata

  • Download URL: cutejax-0.1.4.tar.gz
  • Upload date:
  • Size: 102.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for cutejax-0.1.4.tar.gz
Algorithm Hash digest
SHA256 d8c222f87398eda23167b5f127894fdefc6ad82c56dd8d32973ec3fcefedb8b7
MD5 c1d8f944f532ba174ce9a658eccb98df
BLAKE2b-256 26c7aeccdfaf8dcdea6c99583a9c4494d7d0b12d8693499932a77f3f8dc4b201

See more details on using hashes here.

Provenance

The following attestation bundles were made for cutejax-0.1.4.tar.gz:

Publisher: release.yml on nshepperd/cutejax

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cutejax-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: cutejax-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 26.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for cutejax-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 b4eedb653e9047dbc5cd16d5c6806fccc31ce93990898c3a7790ef8f485e6018
MD5 b934ca777a8136f3c879434e64d8179a
BLAKE2b-256 42c4dbe17948a1d41447b7c1da011e8c64427094b9f2699f17012ae65a44824b

See more details on using hashes here.

Provenance

The following attestation bundles were made for cutejax-0.1.4-py3-none-any.whl:

Publisher: release.yml on nshepperd/cutejax

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.1.4 This release

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page