Changelog
jax-triton 0.4.0 (unreleased)
- New features
- Added support for Gluon kernels.
triton_callnow accepts pytrees as inputs and outputs. Note thatinput_output_aliasesandzeroed_outputsnow index into the flattened inputs and outputs, matchingjax.experimental.pallas.pallas_call.triton_callnow accepts arbitrary backend options via thebackend_optionsargument.- Added a
has_side_effectargument totriton_callto prevent dead-code elimination (DCE) at the XLA level. - Missing metaparams are now filled in from the kernel parameter defaults.
triton_callnow accepts kernel operands (arrays and scalars) as keyword arguments, matched by kernel parameter name. Keywords namingconstexprparameters, or names that are not kernel parameters, are still treated as metaparams.jax_tritonis now importable on hosts without GPU support; the GPU support check is deferred until lowering time.- Exposed the custom call name
CUSTOM_CALL_TARGET_NAME, which can be used withdisabled_checksinjax.export.exportwithout hand-coding this name. triton_callnow acceptsRefarguments for in-place buffer updates.- Added support for Triton and Gluon kernels that build TMA descriptors on Hopper and Blackwell GPUs. This feature requires jaxlib >0.11.0.
-
The
out_shapeargument totriton_callhas been renamed toout_typeto match the modern Pallas APIs. -
Deprecations
- The
out_shapeargument totriton_callis deprecated in favor ofout_type. - The
input_output_aliasesandzeroed_outputsarguments totriton_callare deprecated; useRefarguments for in-place buffer updates instead. -
Passing
np.float32scalars totriton_callis deprecated. Use plain Pythonfloatinstead, which now maps tofp32by default. -
Breaking changes
- Python
floatscalar arguments are now conditionally mapped to"fp32"if representable in the float32 range (matching upstream Triton), falling back to"fp64"otherwise. - Removed the
jax_triton.utilssubmodule together withjax_triton.cdivandjax_triton.next_power_of_2. Usetriton.cdivandtriton.next_power_of_2instead. - Removed the
enable_fp_fusionargument totriton_call. Passbackend_options=dict(enable_fp_fusion=...)instead. - When using
input_output_aliases, aliased buffers must no longer be declared as implicit outputs; the aliased input buffer is used directly. A clearer error is now raised for the old calling convention. -
triton_callkeyword arguments that name a non-constexprkernel parameter are now treated as operands (subject to scalar-static/array separation), not metaparams. -
Bug fixes
- Fixed
input_output_aliasesindexing when positional scalar arguments precede array inputs. - Temporary files are no longer leaked when compiling on ROCm.
- The compute capability is now resolved from
gpu_infowhen a device is unavailable. jax_tritonnow unsetsTRITON_CACHE_DIRon import for compatibility with Triton >= 3.4.0.