Skip to content

Release v3.10.0

Choose a tag to compare

@sa-faizal sa-faizal released this 02 Feb 22:38
ae97779

IREE Release v3.10.0

1. Compiler

1.1 Codegen & Dispatch Improvements

  • Introduced Producer-Consumer Fusion (PCF) infrastructure for improved fusion of producer and consumer operations across dispatch boundaries:
    • Added LowerStructuralPCFPass for lowering structural PCF patterns. (#22915)
    • Added FusePCFWritesPass for fusing writes in PCF patterns. (#22914)
    • Added FuseConsumersPass to improve consumer fusion in codegen pipelines. (#22912)
    • Added ConvertForallToLoopsPass for converting scf.forall operations to standard loops. (#22911)

1.2 LinalgExt Enhancements

  • Added map_gather op and verifier to complement existing map_scatter functionality. (#23041)
  • Simplified linearize-delinearize pairs in map_scatter operations. (#22958)
  • Avoided unnecessary masking in map_scatter for improved performance. (#22959)

1.3 Dispatch Creation & Encoding

  • Create more multi-use dispatches for improved dispatch efficiency. (#22011)
  • Added FoldExtractSliceOfBroadcast pattern for dispatch creation. (#22694)
  • Sink bit-extend producers into split-reduction forall loop. (#21850)
  • Added UnifyEncodingForGlobals pass for unified encoding handling. (#22767)

1.4 AMDGPU & LDS Improvements

  • Unified DMA transfer linearization based on destination contiguity for better memory access patterns. (#22995)
  • Preferred contiguous subviews in GPUConvertToCoalescedDMA for improved memory coalescence. (#23011)
  • Added 3-stage pipelining with hipblaslt compute->write->read ordering (#22788)

1.5 Data Tiling (CPU)

  • Adjusted scalable tile sizes and flags for data-tiling fusion on CPU backends. (#22878)
  • Adjusted tile sizes for unpack operations on SVE. (#21728)
  • Redefined intrinsics M/N interleaving for GPU data tiling. (#22812)

1.6 Bug Fixes & Improvements

  • Fixed HAL dealloca verifier to avoid segfault. (#22988)
  • Fixed VM integer to f64 cast folding. (#22997)
  • Fixed Flatbuffers to not canonicalize empty strings to null strings. (#23039)
  • Fixed RISC-V toolchain prefix usage and added RISCV_TOOLCHAIN_TRIPLE. (#22853)

2. Runtime

2.1 VM Improvements

  • Added new linear-scan register allocator for improved register allocation. (#23027)
  • Added DiscardRefs and AssignRef VM ops for better reference management. (#23021)
  • Added --iree-vm-materialize-ref-discards pass for reference discard materialization. (#23026)
  • Added iree_vm_list_get_ref_retain_or_move for flexible reference handling in VM lists. (#23043)
  • Added VMFB disassembly support and cleaned up move handling. (#23018)
  • Fixed potential stack unwinding leak in VM. (#23019)
  • Supported float type conversion between f32 and f64 in VM lists. (#22893)
  • Un-packed VM ABI shims and added proper alignment in C and C++ modules. (#22845)
  • Cleaned up bytecode ISA decoding macros (NFC). (#23042)
  • Cleaned up move bit handling for disassembly/verifier/dispatch. (#23020)

3. Infrastructure & CI

  • Upgraded to GCC 11 to fix stablehlo template instantiation error. (#23008)
  • Added ci-extra flags for scheduled builds. (#23033)
  • Allowed ci-extra to be set on integrates. (#23034)

Change Log

Git History

What's Changed

Contributors

@Abhishek-Varma, @bangtianliu, @benvanik, @bjacob, @dependabot, @efric, @egebeysel, @fwalbroel, @gymlet, @hanhanW, @HanKuanChen, @ihowell, @IanWood1, @IvanButygin, @jerryyin, @jtuyls, @keshavvinayak01, @kuhar, @lialan, @Max191, @maxbartel, @MaheshRavishankar, @Muzammiluddin-Syed-ECE, @nirvedhmeshram, @nohyeonkwon, @qedawkins, @rkayaith, @sa-faizal, @schuermans-roofline, @sommerlukas, @asidorova, @vivekkhandelwal1, @willghatch, @yzhang93, @Yu-Zhewen, @ziliangzl, @zjgarvey, @amd-eochoalo

New Contributors

Full Changelog: v3.9.0...v3.10.0