v1.14.0
📦 accelerateView on GitHub →
✨ 7 features🐛 24 fixes🔧 9 symbols
Summary
This release focuses heavily on FSDP2 improvements, including better dtype handling, sharding of embeddings/norms, and QLoRA stability. It also introduces end-to-end support for AMD ROCm devices.
Migration Steps
- If you rely on the package name `pytorch-triton-xpu`, update your dependencies to use `triton-xpu` instead.
✨ New Features
- FSDP2 now fully shards embedding and norm layers.
- Added support for dynamic batch size in BatchSamplerShard with the `even_batches` option.
- Added support for AMD ROCm devices, enabling end-to-end acceleration.
- Added padded allgather and broadcast operations for Neuron devices to reduce recompilation.
- Improved offloading support for quantized models, including Torchao, int8, and tied-weight handling.
- Added `max` reduction type utility.
- The package name `pytorch-triton-xpu` was renamed to `triton-xpu`.
🐛 Bug Fixes
- Fixed dtype mismatch when loading full state dict in FSDP2.
- Fixed region compilation issues in FSDPv2.
- Fixed mixed-dtype AssertionError by casting the model to a uniform dtype before calling `fully_shard` in FSDP2.
- Fixed QLoRA crashes by auto-excluding non-floating frozen Params4bit from `fully_shard` in FSDP2.
- Fixed FSDP2 auto-wrap policy ignoring the `_no_split_modules` fallback.
- Fixed key-based matching in `fsdp2_load_full_state_dict`.
- Added missing `model_has_params4bit` guard to `fsdp2_load_full_state_dict` call.
- Fixed issue where FSDP1 keys (REMOVED / NOT_YET_IMPLEMENTED) were leaked when transitioning to FSDP2.
- Prevented double-wrapping models when calling `prepare_model()`.
- Fixed int8 offload hook detachment statistics restoration.
- Fixed `keep_in_fp32_modules` not working for tied weights in `load_and_quantize_model`.
- Fixed `dtype_byte_size` calculation for FP8 fnuz / e8m0fnu dtypes.
- Fixed iterable dataset sharding condition when `n_shards == num_processes`.
- Fixed implicit padding in `split_between_processes` when `apply_padding=False` and `num_samples < num_processes`.
- Allowed Flash Attention kernels in DeepSpeed Sharded Prediction (SP).
- Conditionally imported `torch.distributed.algorithms.join` in `accelerator.py`.
- Fixed `is_hf_initialized` attribute state.
- Fixed MLU backend not being part of the `_prepare_backend` elif chain.
- Fixed notebook launcher CUDA initialization.
- Relaxed numerical tolerance for XPU in `test_big_modeling`.
- Fixed Gloo backend error during `test_load_checkpoint_and_dispatch_with_broadcast` on XPU.
- Fixed `TrackioTracker.log()` ignoring the `step` parameter.
- Fixed MLflowTracker.store_init_configuration mutating the caller's config dictionary.
- Added missing Neuron device case handling.