Skip to content

XLA Serving v0.0.13

Latest

Choose a tag to compare

@github-actions github-actions released this 03 Nov 17:54

Highlights

  • 78 Elementwise Math & Bitwise Data Ops: Added C++ kernels and Python bindings (data.ops.math and data.ops.bitwise) for 78 elementwise math, bitwise, special-function, Bessel, floating-point predicate, and matmul transforms with broadcasting (#610, #611, #612, #634).
  • Priority-Aware Batch Scheduling: Added priority-aware request queuing (PriorityAwareQueue, SchedulerConfig, and QueueSelectionPolicy) to the serving runtime's batch scheduler (#599, #602, #615, #619).
  • Zero-Copy & Pre-Allocated Buffers: Added support for TPU premapped buffers, pinned host buffers, partial/mixed pre-allocated outputs, input buffer aliasing, and zero-copy tensorflow::Tensor host conversion (#594, #628, #639, #655, #662, #686).
  • CLI History & Rollback: Added xsm-cli history and xsm-cli rollback for inspecting and reverting model configuration updates, plus full BatchOptions support in xsm-cli update (#597, #660).

What's Changed

Serving Runtime & Performance

  • Priority-aware batching: Integrate PriorityAwareQueue, SchedulerScope, QueueSelectionPolicy, and SchedulerConfig into SharedBatchScheduler and BatchRunnerOp (#599, #602, #615, #619).
  • Pre-allocated & zero-copy buffers:
    • Support TPU premapped buffers in the serving runtime (#639).
    • Support pinned host buffers and partial/mixed pre-allocated outputs with load-time output name resolution (#628, #655, #662).
    • Honor exported input buffer aliasing in the AOT serving runtime (#594).
    • Add zero-copy tensorflow::Tensor to HostBuffer conversion via a type-keyed converter registry (#686).
  • Model warmup improvements: Bypass the batch queue for warmup requests and record model warmup latency metrics (#673, #699, #701).
  • Runtime overhead reductions: Cache transform factory lookups in TransformBase (#605), execute RunWithMapReturnOnWorker as a single worker-pool task (#683), and drop unused MLIR dialects from StableHloLoader (#663).
  • Self-contained TPU serving image: Bundle libtpu.so directly into the TPU serving container (#640).
  • TensorFlow SavedModel interop: Add bundle detection and HostBuffer conversion in TfSavedModelFunctionRunnerOp (#547, #629).

Data Processing (xla_serving_data)

  • Math & bitwise transforms: Add 78 elementwise math, bitwise, special-function, Bessel, predicate, and matmul C++ transforms and Python bindings (#610, #611, #612).
  • Dynamic shapes: Add PartialShape to represent shapes with unknown dimensions in data/processor and HostBufferSpec (#681, #688).
  • CPU embeddings: Unify CPU embedding method signatures with structured input configs (#595, #633).
  • Transform registry: Simplify transform deserializer registration with SetDeserializerWithDetail and fall back to std::type_info::name() matching across shared libraries (#635, #649, #664, #665).

CLI (xsm-cli)

  • Configuration history & rollback: Add xsm-cli history and xsm-cli rollback commands to inspect and revert model configuration updates (#597).
  • Batching configuration: Support full BatchOptions flags in xsm-cli update (#660).
  • Model inspection: Improve xsm-cli show and xsm-cli show --details output for CompositeProcessor functions (#607).

Examples & Benchmarks

  • DLRM benchmark: Add reproducible DLRM serving benchmark and Cloud TPU v6e results (#606).
  • Gemma 3 example: Add Gemma 3 (keras_hub) export example and prediction client by @gaurides (#601).
  • Math preprocessor example: Add examples/math_preprocessor demonstrating data.ops.math and data.ops.bitwise (#634).

New Contributors

Full Changelog: v0.0.12...v0.0.13