Skip to content

Releases: gomlx/go-xla

v0.2.2: New `OptimizationBarrier` op, `pjrt.IsCPU()`

Choose a tag to compare

@janpfeifer janpfeifer released this 21 Mar 03:37
  • StableHLO: added OptimizationBarrier() op.
  • For Value.OpName(): return "InputParameter" (stablehlo.InputParameterName) for input parameters instead of "nil".
  • Added pjrt.Plugin.IsCPU() method.
  • Internal: fixed order of implemented ops in OpType enum.

v0.2.1 Small fix to NVidia drivers path

Choose a tag to compare

@janpfeifer janpfeifer released this 18 Mar 18:19
66f9f35
Merge pull request #29 from gomlx/fixed-nvidia-cuda-path

- Fixed CUDA library paths -- it was hardcoded to a test directory.

v0.2.0: Dynamic Shapes; added `Call()`; Quantized shapes;

Choose a tag to compare

@janpfeifer janpfeifer released this 12 Mar 06:49
f7fc0c2
  • go.mod: updated to Go 1.25: needed for synctest.
  • Fixed sub-byte types Int4, Int2, Uint4, Uint2 to assume packed storage; Added byte (Uint8) to Int4 bitcast test.

StableHLO

  • Added Call() op (thx @ajroetker).
  • Added Value.OpName() for introspection.
  • Dynamic Shapes (thx @ajroetker) -- with and without dynamic bounds.
    • Added DimensionBounds and EncodeBounds fields to Shape struct
    • Added ops: DynamicReshape, DynamicBroadcastInDim, DynamicIota, DynamicGather,
      DynamicPad, DynamicConv.
  • Quantization:
    • Add Quantization field to shapes.Shape.
    • Add i2, i4, ui2 and ui4 DTypes.
    • Add UniformQuantize() and UniformDequantize() ops.
    • Add Value.WithOutputElementType() to allow change of quantization parameters for operations.
  • Functions:
    • Ops choose the "innermost" scope of their operands -- meaning they are added the closure functions if they are operating on a value that is local to the closure.

PJRT

  • Updated DefaultCPUVersion to "v0.98.0" (pjrt-cpu-binaries version)
  • Added Client.IsCUDA() method.
  • Installation:
    • prevent race condition of concurrent (auto-)installations (using flock, so it works cross-processes).
  • Bumped XLA's pjrt_c_api.h to version 0.98
  • Added Buffer.Bitcast.

v0.1.4

Choose a tag to compare

@janpfeifer janpfeifer released this 17 Dec 19:12
  • Updated installer library/cli to support linux/arm64 and windows/amd64.
    Generalized CPU installation.
  • linux and amazonlinux now use the same PJRT binary, built on a glibc-2.35 system (Ubuntu 22.04).
  • Updated dependency to pjrt-cpu-binaries v0.83.3.

v0.1.3

Choose a tag to compare

@janpfeifer janpfeifer released this 16 Dec 15:51
  • Replaced GenPool by the internal/pool.Pool: it simplifies a bit, a bit faster and one less
    dependency.

v0.1.2 prjt_installer in its own module

Choose a tag to compare

@janpfeifer janpfeifer released this 14 Dec 16:16
  • Removed external dependency to github.com/charmbracelet/huh/spinner from pkg/installer.
  • Split cmd/pjrt_installer into its own module (its own go.mod), to limit default go-xla "apparent" dependencies.
  • Package pkg/installer:
    • Spinner now limited to 1 line (truncates line to fit)
  • Fixed GitHub CI tests: added missing GH_TOKEN.

v0.1.1 Removed spurious debug message

Choose a tag to compare

@janpfeifer janpfeifer released this 12 Dec 08:23
Fixed spurious debug message.

go-xla = gomlx/gopjrt+gomlx/stablehlo; First release, updated docs.

Choose a tag to compare

@janpfeifer janpfeifer released this 12 Dec 06:58

v0.1.0 Merge stablehlo and pjrt into go-xla.

  • Merge stablehlo and pjrt into go-xla.
  • Installation scripts also exported as a library.
  • Added "installer.AutoInstall".
  • Improvements:
    • Fixed memory leaks on plugin destruction.
    • Replaced sync.Pool by GenPool: this avoids frequent unnecessary freeing of arenas.
  • Align with Google style:
    • Removed github.com/janpfeifer/must dependencies
    • Removed testify dependencies