From 64d6c5a545b2182a680a111eced1a34f84aefbd4 Mon Sep 17 00:00:00 2001 From: Quentin Anthony Date: Thu, 9 Mar 2023 18:12:50 -0500 Subject: [PATCH 01/20] Update engine.py Remove PP Grad Tail Check (until https://github.com/microsoft/DeepSpeed/pull/2538 is merged to upstream) --- deepspeed/runtime/pipe/engine.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/deepspeed/runtime/pipe/engine.py b/deepspeed/runtime/pipe/engine.py index a080559b1a2a..765733f45ae8 100644 --- a/deepspeed/runtime/pipe/engine.py +++ b/deepspeed/runtime/pipe/engine.py @@ -990,9 +990,7 @@ def _exec_send_grads(self, buffer_id): if isinstance(inputs, tuple): first_input = inputs[0] assert all([torch.is_tensor(elt) for elt in inputs[1:]]) - inputs_grad_tail = [ - elt.grad for elt in inputs[1:] if elt.grad is not None - ] + inputs_grad_tail = [elt.grad for elt in inputs[1:]] elif torch.is_tensor(inputs): first_input = inputs inputs_grad_tail = [] From 0a237296f760efd4f58eb3c32b6cdc429a39041a Mon Sep 17 00:00:00 2001 From: Quentin Anthony Date: Thu, 9 Mar 2023 18:25:30 -0500 Subject: [PATCH 02/20] Update README.md --- README.md | 224 ++---------------------------------------------------- 1 file changed, 5 insertions(+), 219 deletions(-) diff --git a/README.md b/README.md index bfa03a6e8c9a..b50b85af844f 100755 --- a/README.md +++ b/README.md @@ -1,7 +1,4 @@ [![License MIT](https://badgen.net/badge/license/MIT/blue)](https://github.com/Microsoft/DeepSpeed/blob/master/LICENSE) -[![PyPI version](https://badge.fury.io/py/deepspeed.svg)](https://pypi.org/project/deepspeed/) -[![Downloads](https://pepy.tech/badge/deepspeed)](https://pepy.tech/project/deepspeed) -[![Build](https://badgen.net/badge/build/check-status/blue)](#build-pipeline-status)
@@ -9,222 +6,11 @@
-## Latest News - DeepSpeed trained the world's most powerful language models ([MT-530B](https://www.microsoft.com/en-us/research/blog/using-deepspeed-and-megatron-to-train-megatron-turing-nlg-530b-the-worlds-largest-and-most-powerful-generative-language-model/), [BLOOM](https://huggingface.co/blog/bloom-megatron-deepspeed)); [learn how](https://www.deepspeed.ai/tutorials/large-models-w-deepspeed/). +## DeeperSpeed -* [2023/02] [Automatic Tensor Parallelism: Enables tensor parallelism by default without providing an injection policy](https://www.deepspeed.ai/tutorials/automatic-tensor-parallelism/) -* [2022/12] [DeepSpeed Data Efficiency: A composable library that makes better use of data, increases training efficiency, and improves model quality](https://www.deepspeed.ai/2022/12/11/data-efficiency.html) -* [2022/11] [Stable Diffusion Image Generation under 1 second w. DeepSpeed MII](https://github.com/microsoft/DeepSpeed-MII/tree/main/examples/benchmark/txt2img) -* [2022/10] [DeepSpeed-MII: instant speedup on 24,000+ open-source DL models with up to 40x cheaper inference](https://www.deepspeed.ai/2022/10/10/mii.html) -* [2022/09] [ZeRO-Inference: Democratizing massive model inference](https://www.deepspeed.ai/2022/09/09/zero-inference.html) -* [2022/07] [Azure and DeepSpeed empower easy-to-use and high-performance model training](https://azure.microsoft.com/en-us/blog/azure-empowers-easytouse-highperformance-and-hyperscale-model-training-using-deepspeed/) +DeeperSpeed is a fork of Microsoft's [Deepspeed](https://github.com/microsoft/DeepSpeed) library that is tailor-made for the [GPT-NeoX](https://github.com/EleutherAI/gpt-neox) by [EleutherAI](https://www.eleuther.ai/). ---- +Prior to 3/9/2023, DeeperSpeed was based on an old version of DeepSpeed (0.3.15). In order to migrate to the latest upstream DeepSpeed version while allowing users to access the old versions of GPT-NeoX and DeeperSpeed, we have introduced two versioned releases for both libraries: -# Extreme Speed and Scale for DL Training and Inference - -[DeepSpeed](https://www.deepspeed.ai/) is an easy-to-use deep learning optimization software suite that enables unprecedented scale and speed for Deep Learning Training and Inference. With DeepSpeed you can: - -* Train/Inference dense or sparse models with billions or trillions of parameters -* Achieve excellent system throughput and efficiently scale to thousands of GPUs -* Train/Inference on resource constrained GPU systems -* Achieve unprecedented low latency and high throughput for inference -* Achieve extreme compression for an unparalleled inference latency and model size reduction with low costs - ---- - -# DeepSpeed's three innovation pillars - - - - -## DeepSpeed-Training - -DeepSpeed offers a confluence of system innovations, that has made large scale DL training effective, and efficient, greatly improved ease of use, and redefined the DL training landscape in terms of scale that is possible. These innovations such as ZeRO, 3D-Parallelism, DeepSpeed-MoE, ZeRO-Infinity, etc. fall under the training pillar. Learn more: [DeepSpeed-Training](https://www.deepspeed.ai/training/) - -## DeepSpeed-Inference - -DeepSpeed brings together innovations in parallelism technology such as tensor, pipeline, expert and ZeRO-parallelism, and combines them with high performance custom inference kernels, communication optimizations and heterogeneous memory technologies to enable inference at an unprecedented scale, while achieving unparalleled latency, throughput and cost reduction. This systematic composition of system technologies for inference falls under the inference pillar. Learn more: [DeepSpeed-Inference](https://www.deepspeed.ai/inference) - - -## DeepSpeed-Compression - -To further increase the inference efficiency, DeepSpeed offers easy-to-use and flexible-to-compose compression techniques for researchers and practitioners to compress their models while delivering faster speed, smaller model size, and significantly reduced compression cost. Moreover, SoTA innovations on compression like ZeroQuant and XTC are included under the compression pillar. Learn more: [DeepSpeed-Compression](https://www.deepspeed.ai/compression) - ---- - -# DeepSpeed Software Suite - -## DeepSpeed Library - - The [DeepSpeed](https://github.com/microsoft/deepspeed) library (this repository) implements and packages the innovations and technologies in DeepSpeed Training, Inference and Compression Pillars into a single easy-to-use, open-sourced repository. It allows for easy composition of multitude of features within a single training, inference or compression pipeline. The DeepSpeed Library is heavily adopted by the DL community, and has been used to enable some of the most powerful models (see [DeepSpeed Adoption](#deepspeed-adoption)). - -## Model Implementations for Inference (MII) - - [Model Implementations for Inference (MII)](https://github.com/microsoft/deepspeed-mii) is an open-sourced repository for making low-latency and high-throughput inference accessible to all data scientists by alleviating the need to apply complex system optimization techniques themselves. Out-of-box, MII offers support for thousands of widely used DL models, optimized using DeepSpeed-Inference, that can be deployed with a few lines of code, while achieving significant latency reduction compared to their vanilla open-sourced versions. - -## DeepSpeed on Azure - - DeepSpeed users are diverse and have access to different environments. We recommend to try DeepSpeed on Azure as it is the simplest and easiest method. The recommended method to try DeepSpeed on Azure is through AzureML [recipes](https://github.com/Azure/azureml-examples/tree/main/v1/python-sdk/workflows/train/deepspeed). The job submission and data preparation scripts have been made available [here](https://github.com/microsoft/Megatron-DeepSpeed/tree/main/examples/azureml). For more details on how to use DeepSpeed on Azure, please follow the [Azure tutorial](https://www.deepspeed.ai/tutorials/azure/). - ---- - -# DeepSpeed Adoption - -DeepSpeed is an important part of Microsoft’s new -[AI at Scale](https://www.microsoft.com/en-us/research/project/ai-at-scale/) -initiative to enable next-generation AI capabilities at scale, where you can find more -information [here](https://innovation.microsoft.com/en-us/exploring-ai-at-scale). - -DeepSpeed has been used to train many different large-scale models, below is a list of several examples that we are aware of (if you'd like to include your model please submit a PR): - - * [Megatron-Turing NLG (530B)](https://www.microsoft.com/en-us/research/blog/using-deepspeed-and-megatron-to-train-megatron-turing-nlg-530b-the-worlds-largest-and-most-powerful-generative-language-model/) - * [Jurassic-1 (178B)](https://uploads-ssl.webflow.com/60fd4503684b466578c0d307/61138924626a6981ee09caf6_jurassic_tech_paper.pdf) - * [BLOOM (176B)](https://huggingface.co/blog/bloom-megatron-deepspeed) - * [GLM (130B)](https://github.com/THUDM/GLM-130B) - * [YaLM (100B)](https://github.com/yandex/YaLM-100B) - * [GPT-NeoX (20B)](https://github.com/EleutherAI/gpt-neox) - * [AlexaTM (20B)](https://www.amazon.science/blog/20b-parameter-alexa-model-sets-new-marks-in-few-shot-learning) - * [Turing NLG (17B)](https://www.microsoft.com/en-us/research/blog/turing-nlg-a-17-billion-parameter-language-model-by-microsoft/) - * [METRO-LM (5.4B)](https://arxiv.org/pdf/2204.06644.pdf) - -DeepSpeed has been integrated with several different popular open-source DL frameworks such as: - -| | Documentation | -| ---------------------------------------------------------------------------------------------- | -------------------------------------------- | - | [Transformers with DeepSpeed](https://huggingface.co/docs/transformers/main/main_classes/deepspeed) | -| | [Accelerate with DeepSpeed](https://huggingface.co/docs/accelerate/usage_guides/deepspeed) | -| | [Lightning with DeepSpeed](https://pytorch-lightning.readthedocs.io/en/stable/api/pytorch_lightning.strategies.DeepSpeedStrategy.html) | -| | [MosaicML with DeepSpeed](https://docs.mosaicml.com/en/latest/trainer/using_the_trainer.html?highlight=deepspeed#deepspeed-integration) | -| | [Determined with DeepSpeed](https://docs.determined.ai/latest/training/apis-howto/deepspeed/overview.html) | - ---- - -# Build Pipeline Status - -| Description | Status | -| ----------- | ------ | -| NVIDIA | [![nv-torch12-p40](https://github.com/microsoft/DeepSpeed/actions/workflows/nv-torch12-p40.yml/badge.svg)](https://github.com/microsoft/DeepSpeed/actions/workflows/nv-torch12-p40.yml) [![nv-torch18-v100](https://github.com/microsoft/DeepSpeed/actions/workflows/nv-torch18-v100.yml/badge.svg)](https://github.com/microsoft/DeepSpeed/actions/workflows/nv-torch18-v100.yml) [![nv-torch-latest-v100](https://github.com/microsoft/DeepSpeed/actions/workflows/nv-torch-latest-v100.yml/badge.svg)](https://github.com/microsoft/DeepSpeed/actions/workflows/nv-torch-latest-v100.yml) [![nv-inference](https://github.com/microsoft/DeepSpeed/actions/workflows/nv-inference.yml/badge.svg)](https://github.com/microsoft/DeepSpeed/actions/workflows/nv-inference.yml) [![nv-nightly](https://github.com/microsoft/DeepSpeed/actions/workflows/nv-nightly.yml/badge.svg)](https://github.com/microsoft/DeepSpeed/actions/workflows/nv-nightly.yml) | -| AMD | [![amd](https://github.com/microsoft/DeepSpeed/actions/workflows/amd.yml/badge.svg)](https://github.com/microsoft/DeepSpeed/actions/workflows/amd.yml) | -| PyTorch Nightly | [![nv-torch-nightly-v100](https://github.com/microsoft/DeepSpeed/actions/workflows/nv-torch-nightly-v100.yml/badge.svg)](https://github.com/microsoft/DeepSpeed/actions/workflows/nv-torch-nightly-v100.yml) | -| Integrations | [![nv-transformers-v100](https://github.com/microsoft/DeepSpeed/actions/workflows/nv-transformers-v100.yml/badge.svg)](https://github.com/microsoft/DeepSpeed/actions/workflows/nv-transformers-v100.yml) [![nv-lightning-v100](https://github.com/microsoft/DeepSpeed/actions/workflows/nv-lightning-v100.yml/badge.svg)](https://github.com/microsoft/DeepSpeed/actions/workflows/nv-lightning-v100.yml) [![nv-accelerate-v100](https://github.com/microsoft/DeepSpeed/actions/workflows/nv-accelerate-v100.yml/badge.svg)](https://github.com/microsoft/DeepSpeed/actions/workflows/nv-accelerate-v100.yml) | -| Misc | [![Formatting](https://github.com/microsoft/DeepSpeed/actions/workflows/formatting.yml/badge.svg)](https://github.com/microsoft/DeepSpeed/actions/workflows/formatting.yml) [![pages-build-deployment](https://github.com/microsoft/DeepSpeed/actions/workflows/pages/pages-build-deployment/badge.svg)](https://github.com/microsoft/DeepSpeed/actions/workflows/pages/pages-build-deployment) [![Documentation Status](https://readthedocs.org/projects/deepspeed/badge/?version=latest)](https://deepspeed.readthedocs.io/en/latest/?badge=latest)| - -# Installation - -The quickest way to get started with DeepSpeed is via pip, this will install -the latest release of DeepSpeed which is not tied to specific PyTorch or CUDA -versions. DeepSpeed includes several C++/CUDA extensions that we commonly refer -to as our 'ops'. By default, all of these extensions/ops will be built -just-in-time (JIT) using [torch's JIT C++ extension loader that relies on -ninja](https://pytorch.org/docs/stable/cpp_extension.html) to build and -dynamically link them at runtime. - -## Requirements -* [PyTorch](https://pytorch.org/) must be installed _before_ installing DeepSpeed. -* For full feature support we recommend a version of PyTorch that is >= 1.8 and ideally the latest PyTorch stable release. -* A CUDA or ROCm compiler such as [nvcc](https://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/#introduction) or [hipcc](https://github.com/ROCm-Developer-Tools/HIPCC) used to compile C++/CUDA/HIP extensions. -* Specific GPUs we develop and test against are listed below, this doesn't mean your GPU will not work if it doesn't fall into this category it's just DeepSpeed is most well tested on the following: - * NVIDIA: Pascal, Volta, Ampere, and Hopper architectures - * AMD: MI100 and MI200 - -## PyPI -We regularly push releases to [PyPI](https://pypi.org/project/deepspeed/) and encourage users to install from there in most cases. - -```bash -pip install deepspeed -``` - -After installation, you can validate your install and see which extensions/ops -your machine is compatible with via the DeepSpeed environment report. - -```bash -ds_report -``` - -If you would like to pre-install any of the DeepSpeed extensions/ops (instead -of JIT compiling) or install pre-compiled ops via PyPI please see our [advanced -installation instructions](https://www.deepspeed.ai/tutorials/advanced-install/). - -## Windows -Windows support is partially supported with DeepSpeed. On Windows you can build wheel with following steps, currently only inference mode is supported. -1. Install pytorch, such as pytorch 1.8 + cuda 11.1 -2. Install visual cpp build tools, such as VS2019 C++ x64/x86 build tools -3. Launch cmd console with Administrator privilege for creating required symlink folders -4. Run `python setup.py bdist_wheel` to build wheel in `dist` folder - -# Features - -Please checkout [DeepSpeed-Training](https://www.deepspeed.ai/training), [DeepSpeed-Inference](https://www.deepspeed.ai/inference) and [DeepSpeed-Compression](https://www.deepspeed.ai/compression) pages for full set of features offered along each of these three pillars. - -# Further Reading - -All DeepSpeed documentation, tutorials, and blogs can be found on our website: [deepspeed.ai](https://www.deepspeed.ai/) - - -| | Description | -| ---------------------------------------------------------------------------------------------- | -------------------------------------------- | -| [Getting Started](https://www.deepspeed.ai/getting-started/) | First steps with DeepSpeed | -| [DeepSpeed JSON Configuration](https://www.deepspeed.ai/docs/config-json/) | Configuring DeepSpeed | -| [API Documentation](https://deepspeed.readthedocs.io/en/latest/) | Generated DeepSpeed API documentation | -| [Tutorials](https://www.deepspeed.ai/tutorials/) | Tutorials | -| [Blogs](https://www.deepspeed.ai/posts/) | Blogs | - - -# Contributing -DeepSpeed welcomes your contributions! Please see our -[contributing](CONTRIBUTING.md) guide for more details on formatting, testing, -etc. - -## Contributor License Agreement -This project welcomes contributions and suggestions. Most contributions require you to -agree to a Contributor License Agreement (CLA) declaring that you have the right to, and -actually do, grant us the rights to use your contribution. For details, visit -https://cla.opensource.microsoft.com. - -When you submit a pull request, a CLA bot will automatically determine whether you need -to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply -follow the instructions provided by the bot. You will only need to do this once across -all repos using our CLA. - -## Code of Conduct -This project has adopted the [Microsoft Open Source Code of -Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the -[Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact -[opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. - -# Publications -1. Samyam Rajbhandari, Jeff Rasley, Olatunji Ruwase, Yuxiong He. (2019) ZeRO: memory optimizations toward training trillion parameter models. [arXiv:1910.02054](https://arxiv.org/abs/1910.02054) and [In Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis (SC '20)](https://dl.acm.org/doi/10.5555/3433701.3433727). -2. Jeff Rasley, Samyam Rajbhandari, Olatunji Ruwase, and Yuxiong He. (2020) DeepSpeed: System Optimizations Enable Training Deep Learning Models with Over 100 Billion Parameters. [In Proceedings of the 26th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining (KDD '20, Tutorial)](https://dl.acm.org/doi/10.1145/3394486.3406703). -3. Minjia Zhang, Yuxiong He. (2020) Accelerating Training of Transformer-Based Language Models with Progressive Layer Dropping. [arXiv:2010.13369](https://arxiv.org/abs/2010.13369) and [NeurIPS 2020](https://proceedings.neurips.cc/paper/2020/hash/a1140a3d0df1c81e24ae954d935e8926-Abstract.html). -4. Jie Ren, Samyam Rajbhandari, Reza Yazdani Aminabadi, Olatunji Ruwase, Shuangyan Yang, Minjia Zhang, Dong Li, Yuxiong He. (2021) ZeRO-Offload: Democratizing Billion-Scale Model Training. [arXiv:2101.06840](https://arxiv.org/abs/2101.06840) and [USENIX ATC 2021](https://www.usenix.org/conference/atc21/presentation/ren-jie). -5. Hanlin Tang, Shaoduo Gan, Ammar Ahmad Awan, Samyam Rajbhandari, Conglong Li, Xiangru Lian, Ji Liu, Ce Zhang, Yuxiong He. (2021) 1-bit Adam: Communication Efficient Large-Scale Training with Adam's Convergence Speed. [arXiv:2102.02888](https://arxiv.org/abs/2102.02888) and [ICML 2021](http://proceedings.mlr.press/v139/tang21a.html). -6. Samyam Rajbhandari, Olatunji Ruwase, Jeff Rasley, Shaden Smith, Yuxiong He. (2021) ZeRO-Infinity: Breaking the GPU Memory Wall for Extreme Scale Deep Learning. [arXiv:2104.07857](https://arxiv.org/abs/2104.07857) and [SC 2021](https://dl.acm.org/doi/abs/10.1145/3458817.3476205). -7. Conglong Li, Ammar Ahmad Awan, Hanlin Tang, Samyam Rajbhandari, Yuxiong He. (2021) 1-bit LAMB: Communication Efficient Large-Scale Large-Batch Training with LAMB's Convergence Speed. [arXiv:2104.06069](https://arxiv.org/abs/2104.06069) and [HiPC 2022](https://hipc.org/advance-program/). -8. Conglong Li, Minjia Zhang, Yuxiong He. (2021) The Stability-Efficiency Dilemma: Investigating Sequence Length Warmup for Training GPT Models. [arXiv:2108.06084](https://arxiv.org/abs/2108.06084) and [NeurIPS 2022](https://openreview.net/forum?id=JpZ5du_Kdh). -9. Yucheng Lu, Conglong Li, Minjia Zhang, Christopher De Sa, Yuxiong He. (2022) Maximizing Communication Efficiency for Large-scale Training via 0/1 Adam. [arXiv:2202.06009](https://arxiv.org/abs/2202.06009). -10. Samyam Rajbhandari, Conglong Li, Zhewei Yao, Minjia Zhang, Reza Yazdani Aminabadi, Ammar Ahmad Awan, Jeff Rasley, Yuxiong He. (2022) DeepSpeed-MoE: Advancing Mixture-of-Experts Inference and Training to Power Next-Generation AI Scale [arXiv:2201.05596](https://arxiv.org/abs/2201.05596) and [ICML 2022](https://proceedings.mlr.press/v162/rajbhandari22a.html). -11. Shaden Smith, Mostofa Patwary, Brandon Norick, Patrick LeGresley, Samyam Rajbhandari, Jared Casper, Zhun Liu, Shrimai Prabhumoye, George Zerveas, Vijay Korthikanti, Elton Zhang, Rewon Child, Reza Yazdani Aminabadi, Julie Bernauer, Xia Song, Mohammad Shoeybi, Yuxiong He, Michael Houston, Saurabh Tiwary, Bryan Catanzaro. (2022) Using DeepSpeed and Megatron to Train Megatron-Turing NLG 530B, A Large-Scale Generative Language Model [arXiv:2201.11990](https://arxiv.org/abs/2201.11990). -12. Xiaoxia Wu, Zhewei Yao, Minjia Zhang, Conglong Li, Yuxiong He. (2022) Extreme Compression for Pre-trained Transformers Made Simple and Efficient. [arXiv:2206.01859](https://arxiv.org/abs/2206.01859) and [NeurIPS 2022](https://openreview.net/forum?id=xNeAhc2CNAl). -13. Zhewei Yao, Reza Yazdani Aminabadi, Minjia Zhang, Xiaoxia Wu, Conglong Li, Yuxiong He. (2022) ZeroQuant: Efficient and Affordable Post-Training Quantization for Large-Scale Transformers. [arXiv:2206.01861](https://arxiv.org/abs/2206.01861) and [NeurIPS 2022](https://openreview.net/forum?id=f-fVCElZ-G1). -14. Reza Yazdani Aminabadi, Samyam Rajbhandari, Minjia Zhang, Ammar Ahmad Awan, Cheng Li, Du Li, Elton Zheng, Jeff Rasley, Shaden Smith, Olatunji Ruwase, Yuxiong He. (2022) DeepSpeed Inference: Enabling Efficient Inference of Transformer Models at Unprecedented Scale. [arXiv:2207.00032](https://arxiv.org/abs/2207.00032) and [SC 2022](https://dl.acm.org/doi/abs/10.5555/3571885.3571946). -15. Zhewei Yao, Xiaoxia Wu, Conglong Li, Connor Holmes, Minjia Zhang, Cheng Li, Yuxiong He. (2022) Random-LTD: Random and Layerwise Token Dropping Brings Efficient Training for Large-scale Transformers. [arXiv:2211.11586](https://arxiv.org/abs/2211.11586). -16. Conglong Li, Zhewei Yao, Xiaoxia Wu, Minjia Zhang, Yuxiong He. (2022) DeepSpeed Data Efficiency: Improving Deep Learning Model Quality and Training Efficiency via Efficient Data Sampling and Routing. [arXiv:2212.03597](https://arxiv.org/abs/2212.03597). - - -# Videos -1. DeepSpeed KDD 2020 Tutorial - 1. [Overview](https://www.youtube.com/watch?v=CaseqC45DNc&list=PLa85ZdUjfWS21mgibJ2vCvLziprjpKoW0&index=29) - 2. [ZeRO + large model training](https://www.youtube.com/watch?v=y4_bCiAsIAk&list=PLa85ZdUjfWS21mgibJ2vCvLziprjpKoW0&index=28) - 3. [17B T-NLG demo](https://www.youtube.com/watch?v=9V-ZbP92drg&list=PLa85ZdUjfWS21mgibJ2vCvLziprjpKoW0&index=27) - 4. [Fastest BERT training + RScan tuning](https://www.youtube.com/watch?v=o1K-ZG9F6u0&list=PLa85ZdUjfWS21mgibJ2vCvLziprjpKoW0&index=26) - 5. DeepSpeed hands on deep dive: [part 1](https://www.youtube.com/watch?v=_NOk-mBwDYg&list=PLa85ZdUjfWS21mgibJ2vCvLziprjpKoW0&index=92), [part 2](https://www.youtube.com/watch?v=sG6_c4VXLww&list=PLa85ZdUjfWS21mgibJ2vCvLziprjpKoW0&index=94), [part 3](https://www.youtube.com/watch?v=k9yPkBTayos&list=PLa85ZdUjfWS21mgibJ2vCvLziprjpKoW0&index=93) - 6. [FAQ](https://www.youtube.com/watch?v=nsHu6vEgPew&list=PLa85ZdUjfWS21mgibJ2vCvLziprjpKoW0&index=24) -2. Microsoft Research Webinar - * Registration is free and all videos are available on-demand. - * [ZeRO & Fastest BERT: Increasing the scale and speed of deep learning training in DeepSpeed](https://note.microsoft.com/MSR-Webinar-DeepSpeed-Registration-On-Demand.html). -3. [DeepSpeed on AzureML](https://youtu.be/yBVXR8G8Bg8) -4. Community Tutorials - * [DeepSpeed: All the tricks to scale to gigantic models (Mark Saroufim)](https://www.youtube.com/watch?v=pDGI668pNg0) - * [Turing-NLG, DeepSpeed and the ZeRO optimizer (Yannic Kilcher)](https://www.youtube.com/watch?v=tC01FRB0M7w) - * [Ultimate Guide To Scaling ML Models (The AI Epiphany)](https://www.youtube.com/watch?v=hc0u4avAkuM) +- Version 1.0 of [GPT-NeoX](https://github.com/EleutherAI/gpt-neox/releases/tag/v1.0) and [DeeperSpeed](https://github.com/EleutherAI/DeeperSpeed/releases/tag/v1.0) maintain snapshots of the old stable versions that [GPT-NeoX-20B](https://arxiv.org/abs/2204.06745) and the [Pythia Suite](https://github.com/EleutherAI/pythia) were trained on. +- Version 2.0 of [GPT-NeoX](https://github.com/EleutherAI/gpt-neox/releases/tag/v2.0) and [DeeperSpeed](https://github.com/EleutherAI/DeeperSpeed/releases/tag/v2.0) are the latest versions built on the latest DeepSpeed, and will be maintained going forward. From 5317ca6d0c02eeed3c0421e5d0b7956e020d5f85 Mon Sep 17 00:00:00 2001 From: Quentin Anthony Date: Tue, 2 May 2023 10:40:08 +0530 Subject: [PATCH 03/20] Rebase DS Autotuning to DeeperSpeed 2.0 (#49) * Add SLURM launcher Signed-off-by: Dashiell Stander * Need to import SlurmRunner Signed-off-by: Dashiell Stander * Clean up the config JSON Signed-off-by: Dashiell Stander * Properly clean up json configs Signed-off-by: Dashiell Stander * runner Signed-off-by: Dashiell Stander * Switch to using an argument Signed-off-by: Dashiell Stander * Pre-commit Signed-off-by: Dashiell Stander * Prevent clean-up when using slurm, add in hostfile Signed-off-by: Dashiell Stander * Pass launcher in to autotuning jobs Signed-off-by: Dashiell Stander * Pass slurm comment in Signed-off-by: Dashiell Stander * Add a comment argument to DeepSpeed runner Signed-off-by: Dashiell Stander * Switch slurm_comment to just comment Signed-off-by: Dashiell Stander * Switch slurm_comment to just comment Signed-off-by: Dashiell Stander * Use SLURM --nodelist instead of --include Co-authored-by: Quentin Anthony Signed-off-by: Dashiell Stander * Use SLURM --nodelist instead of --include > > > Co-authored-by: Quentin Anthony Signed-off-by: Dashiell Stander * Launcher args Signed-off-by: Dashiell Stander * Debug print statement... Signed-off-by: Dashiell Stander * Debug print statements... Signed-off-by: Dashiell Stander * Debug print statements... Signed-off-by: Dashiell Stander * Debug print statements... Signed-off-by: Dashiell Stander * Debug print statements... Signed-off-by: Dashiell Stander * user_config bug Signed-off-by: Dashiell Stander * user_config bug Signed-off-by: Dashiell Stander * Fix config dict * Pydantic to dict Signed-off-by: Dashiell Stander * Pydantic to dict Signed-off-by: Dashiell Stander * Will it work now? Signed-off-by: Dashiell Stander * Just make it a dict immediately Signed-off-by: Dashiell Stander * Exclude unset things Signed-off-by: Dashiell Stander * Add dilation to pooling flops profiler Signed-off-by: Dashiell Stander * Adding return_indices... Signed-off-by: Dashiell Stander * Do cleanup with SLURM. Co-authored-by: Quentin Anthony * Do cleanup with SLURM. Co-authored-by: Quentin Anthony * Horrific hack to get metrics.json * Push pipeline grad tail fix * No longer hardcode path Signed-off-by: Dashiell Stander * Also pass in no_ssh_check Signed-off-by: Dashiell Stander * Also pass in no_ssh_check Signed-off-by: Dashiell Stander * Also pass in master_addr Signed-off-by: Dashiell Stander * Stop hardcoding number of steps.... Signed-off-by: Dashiell Stander * detailed flops breakdown Signed-off-by: Dashiell Stander * Fix autotuning reporting bug Signed-off-by: Dashiell Stander * Fix autotuning reporting bug Signed-off-by: Dashiell Stander * Actually off by a million, not a thousand Signed-off-by: Dashiell Stander * Clean up debugging stuff Signed-off-by: Dashiell Stander * Add JSRunner for summit launching on multiple nodes * import JSRUN_LAUNCHER from constants * Fix jsrun typo * Update multinode_runner.py (#45) * add CUDA_VISIBLE_DEVICES to jsrunner --------- Signed-off-by: Dashiell Stander Signed-off-by: Dashiell Stander Signed-off-by: Dashiell Stander Co-authored-by: Dashiell Stander Co-authored-by: Dashiell Stander Co-authored-by: Dashiell Stander Co-authored-by: Quentin TastyRice Co-authored-by: Dashiell Stander Co-authored-by: MLRichter Co-authored-by: Stella Biderman --- deepspeed/autotuning/autotuner.py | 16 +++-- deepspeed/autotuning/scheduler.py | 49 ++++++++++--- deepspeed/launcher/constants.py | 1 + deepspeed/launcher/multinode_runner.py | 99 ++++++++++++++++++++++++-- deepspeed/launcher/runner.py | 14 +++- deepspeed/runtime/engine.py | 11 +-- 6 files changed, 158 insertions(+), 32 deletions(-) diff --git a/deepspeed/autotuning/autotuner.py b/deepspeed/autotuning/autotuner.py index 786597273462..56a58e835e13 100755 --- a/deepspeed/autotuning/autotuner.py +++ b/deepspeed/autotuning/autotuner.py @@ -451,11 +451,8 @@ def tune(self): f"The model requires at least {memory_to_string(self.activation_mem, postfix='B')} activation memory for micro batch size 1." ) - #TODO: FIX THIS - stage = self.user_config.get(ZERO_OPTIMIZATION, - {}).get(ZERO_OPTIMIZATION_STAGE, - "all") - stage = "all" + zero = self.user_config.get('zero_optimization', {}) + stage = zero.get("stage", "all") user_zero_stages = [stage] if not isinstance(stage, list) else stage logger.info(f"User-defined zero stages are {stage}.") @@ -556,9 +553,12 @@ def tune_space(self, # calculate max micro batch size using gpu memory, model instantiation memory and activation memory # calculated_max_micro_batch_size = (memory_per_gpu - instantiation_memory) // activation_memory_micro_batch_size_1 + logger.info(f'GPU memory: {self.gpu_mem}') + logger.info(f'Instantiation mem required for stage {stage}: {self.get_instantiation_memory_required_per_gpu(stage)}') + logger.info(f'Activation mem: {self.activation_mem}') calculated_max_micro_batch_size = int( - self.gpu_mem - - self.get_instantiation_memory_required_per_gpu(stage)) // self.activation_mem + (self.gpu_mem - + self.get_instantiation_memory_required_per_gpu(stage))) // self.activation_mem logger.info( f"Start tuning for space {tuning_space_name}, calculated_max_micro_batch_size = {calculated_max_micro_batch_size}" ) @@ -756,6 +756,8 @@ def model_info_profile_run(self): with open(model_info_path, 'r') as f: model_info = hjson.load(f) return model_info + else: + print(f'Could not find model_info at {model_info_path}') def update_records(self, space_name, exp, metric_val, num_exps): if space_name not in self.records: diff --git a/deepspeed/autotuning/scheduler.py b/deepspeed/autotuning/scheduler.py index 2a4c0c70d955..1d6da61c89ed 100755 --- a/deepspeed/autotuning/scheduler.py +++ b/deepspeed/autotuning/scheduler.py @@ -15,6 +15,8 @@ from tqdm import tqdm from ..utils import logger +from ..launcher.constants import MVAPICH_LAUNCHER, PDSH_LAUNCHER, OPENMPI_LAUNCHER, SLURM_LAUNCHER +from .constants import * from .constants import AUTOTUNING, AUTOTUNING_METRIC_PATH from .utils import get_val_by_key, search_error, was_interruptted """ @@ -97,8 +99,14 @@ def schedule_experiments(self, exp_paths): def run_job(self, exp: dict, reservations): exp_id = exp["exp_id"] + exp["master_addr"] = self.args.master_addr exp["master_port"] = self.args.master_port + exp_id exp["result_dir"] = os.path.join(self.results_dir, exp['name']) + exp["hostfile"] = self.args.hostfile + exp["launcher"] = self.args.launcher + exp["no_ssh_check"] = self.args.no_ssh_check + if self.args.launcher == 'slurm' and hasattr(self.args, 'comment'): + exp["comment"] = self.args.comment user_script = self.args.user_script user_args = self.args.user_args @@ -325,13 +333,26 @@ def run_experiment(exp: dict, reservations, user_script, user_args): slots = ",".join(map(str, reservation.slots)) include_str += f"{reservation.node.host}:{slots}@" include_str = include_str[:-1] + master_addr = exp["master_addr"] master_port = exp["master_port"] - exp["launcher_args"] = [ - "--include", - f"{include_str}", - "--master_port", - str(master_port), - ] + hostfile = exp["hostfile"] + launcher_args = ["--launcher", exp["launcher"]] + if master_addr: + launcher_args += ["--master_addr", master_addr] + if exp["launcher"] not in (MVAPICH_LAUNCHER, OPENMPI_LAUNCHER, SLURM_LAUNCHER): + launcher_args += [ + "--include", + f"{include_str}", + "--master_port", + str(master_port), + ] + if hostfile != '': + launcher_args += ["--hostfile", hostfile] + if 'comment' in exp: + launcher_args += ["--comment", exp["comment"]] + if exp['no_ssh_check']: + launcher_args += ["--no_ssh_check"] + exp["launcher_args"] = launcher_args logger.debug(f'launcher args={exp["launcher_args"]}') exp["user"] = get_user() @@ -398,7 +419,7 @@ def run_experiment(exp: dict, reservations, user_script, user_args): err.flush() os.fsync(out) os.fsync(err) - + clean_up(exp, reservations) logger.info( @@ -420,16 +441,22 @@ def clean_up(exp: dict, reservations): logger.debug( f"Cleaning up exp_id = {exp['exp_id']} on the following workers: {nodes_str}") - # PDSH flags for max node fan out and specific hosts to launch on - # See https://linux.die.net/man/1/pdsh for flag details - pdsh_cmd = ['pdsh', '-f', str(PDSH_MAX_FAN_OUT), '-w', nodes_str] + + if exp['launcher'] == 'slurm': + runner_cmd = ['srun', '-w', nodes_str] + if 'comment' in exp: + runner_cmd += ['--comment', exp['comment']] + else: + # PDSH flags for max node fan out and specific hosts to launch on + # See https://linux.die.net/man/1/pdsh for flag details + runner_cmd = ['pdsh', '-f', str(PDSH_MAX_FAN_OUT), '-w', nodes_str] kill_cmd = [ 'pkill', '-f', exp['name'], ] - cmd = pdsh_cmd + kill_cmd + cmd = runner_cmd + kill_cmd logger.debug("cmd = {}".format(' '.join(cmd))) result = subprocess.Popen(cmd, env=env) diff --git a/deepspeed/launcher/constants.py b/deepspeed/launcher/constants.py index 09dd1bdd1def..3d49a7565ea6 100644 --- a/deepspeed/launcher/constants.py +++ b/deepspeed/launcher/constants.py @@ -4,6 +4,7 @@ PDSH_MAX_FAN_OUT = 1024 OPENMPI_LAUNCHER = 'openmpi' +JSRUN_LAUNCHER = 'jsrun' MPICH_LAUNCHER = 'mpich' SLURM_LAUNCHER = 'slurm' MVAPICH_LAUNCHER = 'mvapich' diff --git a/deepspeed/launcher/multinode_runner.py b/deepspeed/launcher/multinode_runner.py index 6027d1076e80..fc831637abc5 100644 --- a/deepspeed/launcher/multinode_runner.py +++ b/deepspeed/launcher/multinode_runner.py @@ -1,5 +1,7 @@ + '''Copyright The Microsoft DeepSpeed Team''' +import json import os import sys import shutil @@ -170,6 +172,61 @@ def get_cmd(self, environment, active_resources): ] + self.user_arguments +class JSRunner(MultiNodeRunner): + def __init__(self, args, world_info_base64, resource_pool): + super().__init__(args, world_info_base64) + self.resource_pool = resource_pool + self.add_export('CUDA_VISIBLE_DEVICES', '0,1,2,3,4,5') + + def backend_exists(self): + #TODO: if IB is available we should suggestion mvapich + #This ompi check will still work for jsrun since spectrum-mpi is based on ompi + return shutil.which('ompi_info') + + @property + def name(self): + return "jsrun" + + def validate_args(self): + super().validate_args() + #TODO: Allow for include/exclude at node-level but not gpu-level + if self.args.include != "" or self.args.exclude != "": + raise ValueError( + f"{self.name} backend does not support worker include/exclusion") + if self.args.num_nodes != -1 or self.args.num_gpus != -1: + raise ValueError( + f"{self.name} backend does not support limiting num nodes/gpus") + + def get_cmd(self, environment, active_resources): + total_process_count = sum(self.resource_pool.values()) + + jsrun_cmd = [ + 'jsrun', + '-n', + f'{total_process_count}', + '-c', + f'{7}', + '-g', + f'{1}', + '-a', + f'{1}', + + ] + split(self.args.launcher_args) + + export_cmd = [] + for k, v in self.exports.items(): + export_cmd += ['-E', "{}={}".format(k, v)] + + python_exec = [] + if not self.args.no_python: + python_exec = [sys.executable, "-u"] + if self.args.module: + python_exec.append("-m") + + return jsrun_cmd + export_cmd + python_exec + [self.user_script + ] + self.user_arguments + + class MPICHRunner(MultiNodeRunner): def __init__(self, args, world_info_base64, resource_pool): super().__init__(args, world_info_base64) @@ -227,6 +284,35 @@ def __init__(self, args, world_info_base64, resource_pool): def backend_exists(self): return shutil.which('sinfo') + def parse_user_args(self): + user_args = [] + for arg in self.args.user_args: + if arg.startswith('{') and arg.endswith('}'): + try: + arg_dict = json.loads(arg) + if 'config_files' in arg_dict: + config_files = {} + for k, v in arg_dict.get('config_files', {}).items(): + config_files[k] = json.loads(v) + arg_dict['config_files'] = config_files + except json.JSONDecodeError as jde: + raise ValueError( + 'SLURM is picky and needs you to use plain json for your configs. Check for comments and lowercase trues' + ) from jde + arg = json.dumps(arg_dict, separators=(',', ':')) + user_args.append(arg) + return user_args + + @staticmethod + def _pdsh_include_to_nodelist(include_string: str): + """If an `--include` string of the form `node1@node2` has been passed in, transforms it to a format SLURM will accept.""" + NODE_SEP = '@' + SLOT_LIST_START = ':' + if NODE_SEP not in include_string: + return include_string + if SLOT_LIST_START in include_string: + raise NotImplementedError('Currently only allocating whole nodes is supported while using the SLURM launcher.') + return include_string.replace(NODE_SEP, ',') @property def name(self): return 'slurm' @@ -240,15 +326,14 @@ def get_cmd(self, environment, active_resources): f'{total_process_count}', ] + split(self.args.launcher_args) - if getattr(self.args, 'slurm_comment', ''): - srun_cmd += ['--comment', self.args.slurm_comment] + if getattr(self.args, 'comment', ''): + srun_cmd += ['--comment', self.args.comment] if self.args.include != "": - srun_cmd.append('--include') - srun_cmd.append(f'{self.args.include}') - if self.args.exclude != "": - srun_cmd.append('--exclude') - srun_cmd.append(f'{self.args.exclude}') + srun_cmd.append('--nodelist') + srun_cmd.append(self._pdsh_include_to_nodelist(self.args.include)) + srun_cmd += ['--comment', self.args.slurm_comment] + if self.args.num_nodes > 0: srun_cmd.append('--nodes') srun_cmd.append(f'{self.args.num_nodes}') diff --git a/deepspeed/launcher/runner.py b/deepspeed/launcher/runner.py index 044f6ff03365..856eeb6db4c4 100755 --- a/deepspeed/launcher/runner.py +++ b/deepspeed/launcher/runner.py @@ -18,8 +18,8 @@ import signal import time -from .multinode_runner import PDSHRunner, OpenMPIRunner, MVAPICHRunner, SlurmRunner, MPICHRunner -from .constants import PDSH_LAUNCHER, OPENMPI_LAUNCHER, MVAPICH_LAUNCHER, SLURM_LAUNCHER, MPICH_LAUNCHER +from .multinode_runner import PDSHRunner, OpenMPIRunner, MVAPICHRunner, SlurmRunner, MPICHRunner, JSRunner +from .constants import PDSH_LAUNCHER, OPENMPI_LAUNCHER, MVAPICH_LAUNCHER, SLURM_LAUNCHER, MPICH_LAUNCHER, JSRUN_LAUNCHER from ..constants import TORCH_DISTRIBUTED_DEFAULT_PORT from ..nebula.constants import NEBULA_EXPORT_ENVS from ..utils import logger @@ -169,6 +169,13 @@ def parse_args(args=None): help="Run DeepSpeed autotuner to discover optimal configuration parameters " "before running job.") + parser.add_argument( + "--comment", + default="", + type=str, + help="A comment that can be used for metadata." + ) + parser.add_argument("--elastic_training", action="store_true", help="Enable elastic training support in DeepSpeed.") @@ -511,6 +518,8 @@ def main(args=None): runner = PDSHRunner(args, world_info_base64) elif args.launcher == OPENMPI_LAUNCHER: runner = OpenMPIRunner(args, world_info_base64, resource_pool) + elif args.launcher == JSRUN_LAUNCHER: + runner = JSRunner(args, world_info_base64, resource_pool) elif args.launcher == MPICH_LAUNCHER: runner = MPICHRunner(args, world_info_base64, resource_pool) elif args.launcher == MVAPICH_LAUNCHER: @@ -548,6 +557,7 @@ def main(args=None): cmd = runner.get_cmd(env, active_resources) logger.info(f"cmd = {' '.join(cmd)}") + result = subprocess.Popen(cmd, env=env) def sigkill_handler(signum, frame): diff --git a/deepspeed/runtime/engine.py b/deepspeed/runtime/engine.py index 13c669b6de90..969e41cf0560 100644 --- a/deepspeed/runtime/engine.py +++ b/deepspeed/runtime/engine.py @@ -661,10 +661,12 @@ def autotuning_metric(self): return self._config.autotuning_config.metric def autotuning_profile_model_info(self): - return self.autotuning_enabled( - ) and self._config.autotuning_config.model_info and self._config.autotuning_config.model_info.get( - "profile", - False) + return ( + self.autotuning_enabled() and + self._config.autotuning_config.model_info and + self._config.autotuning_config.model_info.get("profile", False) + ) + def sparse_gradients_enabled(self): return self._config.sparse_gradients_enabled @@ -2214,7 +2216,6 @@ def step(self, lr_kwargs=None): if flops_profiler_active: if self.autotuning_enabled(): self.flops = self.flops_profiler.get_total_flops() * 3 - else: self.flops_profiler.print_model_profile( profile_step=self.global_steps, module_depth=self.flops_profiler_module_depth(), From 3362dad87d1a8c1a5e9414e02a5d09b38064c064 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20Th=C3=A9rien?= <39810288+bentherien@users.noreply.github.com> Date: Thu, 18 May 2023 15:54:07 -0400 Subject: [PATCH 04/20] Prevent zero optimizer loading when finetuning a model and using zero_optimization (#51) * added if statement in load_checkpoint() to prevent zero optimizer loading when the load_module_only=True or load_optimizer_states=False * bugfix --------- Co-authored-by: Benjamin Therien --- deepspeed/runtime/engine.py | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/deepspeed/runtime/engine.py b/deepspeed/runtime/engine.py index 969e41cf0560..ed2992e5dd0c 100644 --- a/deepspeed/runtime/engine.py +++ b/deepspeed/runtime/engine.py @@ -2779,17 +2779,18 @@ def load_checkpoint(self, load_module_only=load_module_only, custom_load_fn=custom_load_fn) - load_zero_checkpoint = self.zero_optimization() or self.bfloat16_enabled() - if load_zero_checkpoint and load_path is not None: - success = self._load_zero_checkpoint( - load_dir, - tag, - load_optimizer_states=load_optimizer_states) - if not success: - self.optimizer._restore_from_bit16_weights() + if not load_module_only and load_optimizer_states: + load_zero_checkpoint = self.zero_optimization() or self.bfloat16_enabled() + if load_zero_checkpoint and load_path is not None: + success = self._load_zero_checkpoint( + load_dir, + tag, + load_optimizer_states=load_optimizer_states) + if not success: + self.optimizer._restore_from_bit16_weights() - if self.zero_optimization_partition_weights(): - self.optimizer.checkpoint_event_epilogue() + if self.zero_optimization_partition_weights(): + self.optimizer.checkpoint_event_epilogue() return load_path, client_states From 317355cbd85a21875e0de887fb9af632b55483a4 Mon Sep 17 00:00:00 2001 From: Dashiell Stander Date: Thu, 18 May 2023 15:54:56 -0400 Subject: [PATCH 05/20] Make checkpoints compatible with NeoX (#47) Signed-off-by: Dashiell Stander --- deepspeed/checkpoint/__init__.py | 2 +- deepspeed/checkpoint/deepspeed_checkpoint.py | 27 ++++++++++++++++++++ deepspeed/checkpoint/reshape_3d_utils.py | 12 ++++++++- deepspeed/checkpoint/reshape_utils.py | 17 ++++++++++-- deepspeed/checkpoint/zero_checkpoint.py | 11 +++++--- 5 files changed, 61 insertions(+), 8 deletions(-) diff --git a/deepspeed/checkpoint/__init__.py b/deepspeed/checkpoint/__init__.py index 2ef0817c724e..e037601b95ca 100644 --- a/deepspeed/checkpoint/__init__.py +++ b/deepspeed/checkpoint/__init__.py @@ -2,7 +2,7 @@ from .reshape_meg_2d import reshape_meg_2d_parallel -from .deepspeed_checkpoint import DeepSpeedCheckpoint +from .deepspeed_checkpoint import DeepSpeedCheckpoint, NeoxCheckpoint from .utils import (get_layer_ckpt_name_for_rank, get_model_ckpt_name_for_rank, diff --git a/deepspeed/checkpoint/deepspeed_checkpoint.py b/deepspeed/checkpoint/deepspeed_checkpoint.py index c1a31b0fb4a5..6db3c88720f1 100644 --- a/deepspeed/checkpoint/deepspeed_checkpoint.py +++ b/deepspeed/checkpoint/deepspeed_checkpoint.py @@ -88,6 +88,18 @@ def __init__(self, dir, tp_degree=None, pp_degree=None, dp_degree=None): FINAL_LAYER_NORM_INDEX) self._build_global_state() + @property + def original_tp_degree(self): + return self.zero_checkpoint.get_src_tp_degree() + + @property + def original_pp_degree(self): + return self.zero_checkpoint.get_src_pp_degree() + + @property + def zero_files(self): + return self.zero_checkpoint.file_list + def is_change_tp_degree(self): return self.tp_degree != self.zero_checkpoint.get_src_tp_degree() @@ -315,3 +327,18 @@ def _validate_folder(self, dir): ]: ckpt_files = get_files_with_prefix(file_list, file_prefix) assert len(ckpt_files) > 0, f'{dir} seems a bogus DeepSpeed checkpoint folder: Cannot find {file_prefix}* files in there.' + + +class NeoxCheckpoint(DeepSpeedCheckpoint): + + def _validate_folder(self, dir): + basic_folder_validation(dir) + + file_list = get_files(dir) + + for file_prefix in [ + MODEL_FILE_PREFIX, + LAYER_FILE_PREFIX + ]: + ckpt_files = get_files_with_prefix(file_list, file_prefix) + assert len(ckpt_files) > 0, f'{dir} seems a bogus DeepSpeed checkpoint folder: Cannot find {file_prefix}* files in there.' diff --git a/deepspeed/checkpoint/reshape_3d_utils.py b/deepspeed/checkpoint/reshape_3d_utils.py index 15faffb2a680..d2c16fa63fa1 100644 --- a/deepspeed/checkpoint/reshape_3d_utils.py +++ b/deepspeed/checkpoint/reshape_3d_utils.py @@ -76,10 +76,20 @@ def can_reshape(self, target_3d_desc): return len(err_msg) == 0, err_msg +def get_num_pp0_files(file_list): + num_layer1_files = len(get_files_with_prefix(file_list, f'{LAYER_FILE_PREFIX}01')) + num_layer2_files = len(get_files_with_prefix(file_list, f'{LAYER_FILE_PREFIX}02')) + if (num_layer1_files > 0) or (num_layer2_files == 0): + return num_layer1_files + else: + return num_layer2_files + + + def get_model_3d_descriptor(dir): file_list = get_files(dir) zero_file_list = get_zero_files(dir) - num_pp0_files = len(get_files_with_prefix(file_list, f'{LAYER_FILE_PREFIX}01')) + num_pp0_files = get_num_pp0_files(file_list) if num_pp0_files > 0: tp_degree = num_pp0_files pp_degree = len(get_files_with_prefix(file_list, MODEL_FILE_PREFIX)) // tp_degree diff --git a/deepspeed/checkpoint/reshape_utils.py b/deepspeed/checkpoint/reshape_utils.py index 4d6b272f43e3..b7f09e8a502c 100644 --- a/deepspeed/checkpoint/reshape_utils.py +++ b/deepspeed/checkpoint/reshape_utils.py @@ -3,7 +3,7 @@ import os import torch from collections import OrderedDict -from .constants import (ZERO_FILE_PREFIX, FP16_ZERO_FILE_PREFIX, BF16_ZERO_FILE_PREFIX) +from .constants import (ZERO_FILE_PREFIX, FP16_ZERO_FILE_PREFIX, BF16_ZERO_FILE_PREFIX, PARTITION_COUNT) def basic_folder_validation(dir): @@ -61,12 +61,25 @@ def _key_list_to_string(key_list): return '.'.join(key_list) +def _to_list_if_int(list_or_int): + if isinstance(list_or_int, int): + return [list_or_int] + else: + return list_or_int + + def merge_state_dict(dict_a, dict_b, key_list): merged_dict = type(dict_a)({}) for key, value in dict_b.items(): if key in dict_a.keys(): - merged_dict[key] = merge_state(dict_a[key], dict_b[key], [str(key)]) + # TODO: Fix ugliest hack ever + if key == PARTITION_COUNT: + count_a = _to_list_if_int(dict_a[key]) + count_b = _to_list_if_int(dict_b[key]) + merged_dict[key] = merge_state(count_a, count_b, [str(key)]) + else: + merged_dict[key] = merge_state(dict_a[key], dict_b[key], [str(key)]) else: merged_dict[key] = value diff --git a/deepspeed/checkpoint/zero_checkpoint.py b/deepspeed/checkpoint/zero_checkpoint.py index cb33e8e37671..fa13c8c57d22 100644 --- a/deepspeed/checkpoint/zero_checkpoint.py +++ b/deepspeed/checkpoint/zero_checkpoint.py @@ -135,14 +135,17 @@ def _get_param_group_states(self, sd): return None base_optimizer_state = optimizer_state.get(BASE_OPTIMIZER_STATE, None) - if base_optimizer_state is None: + if base_optimizer_state is None or isinstance(base_optimizer_state, list): return None return base_optimizer_state.get(GROUP_STATE_KEY, None) def _update_partition_count(self, sd): partition_counts = self._get_optimizer_state(sd, PARTITION_COUNT) - if partition_counts: - num_groups = len(partition_counts) + if isinstance(partition_counts, int): + partition_counts = [partition_counts] + num_partitions = len(partition_counts) + if num_partitions: + # num_groups = len(partition_counts) sd[OPTIMIZER_STATE_DICT][PARTITION_COUNT] = [self.target_3d.dp_degree - ] * num_groups + ] * num_partitions From f2acc07001e49a9b8fdb1ca432d11215f9613f0b Mon Sep 17 00:00:00 2001 From: Quentin Anthony Date: Thu, 18 May 2023 16:35:43 -0400 Subject: [PATCH 06/20] Add consecutive hysteresis support (#52) --- deepspeed/runtime/config.py | 3 +++ deepspeed/runtime/constants.py | 5 +++++ deepspeed/runtime/fp16/loss_scaler.py | 3 +++ docs/_pages/config-json.md | 7 +++++++ docs/_pages/training.md | 1 + docs/_tutorials/curriculum-learning.md | 1 + 6 files changed, 20 insertions(+) diff --git a/deepspeed/runtime/config.py b/deepspeed/runtime/config.py index bc5511226565..c0d0911c8d29 100755 --- a/deepspeed/runtime/config.py +++ b/deepspeed/runtime/config.py @@ -204,11 +204,14 @@ def get_dynamic_loss_scale_args(param_dict): FP16_LOSS_SCALE_WINDOW, FP16_MIN_LOSS_SCALE, FP16_HYSTERESIS, + FP16_CONSECUTIVE_HYSTERESIS, ] if any(arg in list(fp16_dict.keys()) for arg in dynamic_loss_args): init_scale = get_scalar_param(fp16_dict, FP16_INITIAL_SCALE_POWER, FP16_INITIAL_SCALE_POWER_DEFAULT) scale_window = get_scalar_param(fp16_dict, FP16_LOSS_SCALE_WINDOW, FP16_LOSS_SCALE_WINDOW_DEFAULT) delayed_shift = get_scalar_param(fp16_dict, FP16_HYSTERESIS, FP16_HYSTERESIS_DEFAULT) + consecutive_hysteresis = get_scalar_param(fp16_dict, FP16_CONSECUTIVE_HYSTERESIS, + FP16_CONSECUTIVE_HYSTERESIS_DEFAULT) min_loss_scale = get_scalar_param(fp16_dict, FP16_MIN_LOSS_SCALE, FP16_MIN_LOSS_SCALE_DEFAULT) loss_scale_args = { INITIAL_LOSS_SCALE: 2**init_scale, diff --git a/deepspeed/runtime/constants.py b/deepspeed/runtime/constants.py index 62b46e2a6ce9..0bdac2557847 100755 --- a/deepspeed/runtime/constants.py +++ b/deepspeed/runtime/constants.py @@ -140,6 +140,7 @@ "initial_scale_power": 16, "loss_scale_window": 1000, "hysteresis": 2, + "consecutive_hysteresis": false, "min_loss_scale": 1 } ''' @@ -167,6 +168,10 @@ FP16_HYSTERESIS = "hysteresis" FP16_HYSTERESIS_DEFAULT = 2 +# FP16 consecutive hysteresis +FP16_CONSECUTIVE_HYSTERESIS = "consecutive_hysteresis" +FP16_CONSECUTIVE_HYSTERESIS_DEFAULT = False + # FP16 min loss scale FP16_MIN_LOSS_SCALE = "min_loss_scale" FP16_MIN_LOSS_SCALE_DEFAULT = 1 diff --git a/deepspeed/runtime/fp16/loss_scaler.py b/deepspeed/runtime/fp16/loss_scaler.py index e12ee92fdf98..20f4b65b8538 100755 --- a/deepspeed/runtime/fp16/loss_scaler.py +++ b/deepspeed/runtime/fp16/loss_scaler.py @@ -111,6 +111,7 @@ class DynamicLossScaler(LossScalerBase): init_scale (float, optional, default=2**32): Initial loss scale attempted by :class:`DynamicLossScaler.` scale_factor (float, optional, default=2.0): Factor used when adjusting the loss scale. If an overflow is encountered, the loss scale is readjusted to loss scale/``scale_factor``. If ``scale_window`` consecutive iterations take place without an overflow, the loss scale is readjusted to loss_scale*``scale_factor``. scale_window (int, optional, default=1000): Number of consecutive iterations without an overflow to wait before increasing the loss scale. + consecutive_hysteresis (bool, optional, default=False): Whether to refill hysteresis if we reach an iteration that doesn't overflow """ def __init__(self, @@ -190,6 +191,8 @@ def update_scale(self, overflow): self.last_overflow_iter = self.cur_iter else: if self.consecutive_hysteresis: + hysteresis_msg = f"Consecutive hysteresis is enabled. Restoring hysteresis to {self.delayed_shift}" + logger.info(hysteresis_msg) self.cur_hysteresis = self.delayed_shift if (self.cur_iter - self.last_overflow_iter) % self.scale_window == 0: if not self.consecutive_hysteresis: diff --git a/docs/_pages/config-json.md b/docs/_pages/config-json.md index a0fd279ff969..cf7e8492bcd5 100755 --- a/docs/_pages/config-json.md +++ b/docs/_pages/config-json.md @@ -224,6 +224,7 @@ Example of **scheduler** "initial_scale_power": 16, "loss_scale_window": 1000, "hysteresis": 2, + "consecutive_hysteresis": false, "min_loss_scale": 1 } ``` @@ -264,6 +265,12 @@ Example of **scheduler** | --------------------------------------------------------------------------------------------------- | ------- | | **hysteresis** is a **fp16** parameter representing the delay shift in dynamic loss scaling. | `2` | +**fp16:consecutive_hysteresis**: [boolean] + +| Description | Default | +| --------------------------------------------------------------------------------------------------- | ------- | +| **consecutive_hysteresis** is a **fp16** parameter representing whether to refill the hysteresis if we reach an iteration that doesn't overflow | `false` | + **fp16:min_loss_scale**: [integer] | Description | Default | diff --git a/docs/_pages/training.md b/docs/_pages/training.md index 3a52a1065eb1..9c95fa7857ca 100644 --- a/docs/_pages/training.md +++ b/docs/_pages/training.md @@ -201,6 +201,7 @@ Enable 16-bit (FP16) training by in the `deepspeed_config` JSON. "loss_scale": 0, "loss_scale_window": 1000, "hysteresis": 2, + "consecutive_hysteresis": false, "min_loss_scale": 1 } ``` diff --git a/docs/_tutorials/curriculum-learning.md b/docs/_tutorials/curriculum-learning.md index 817bf622e851..2663614746bf 100644 --- a/docs/_tutorials/curriculum-learning.md +++ b/docs/_tutorials/curriculum-learning.md @@ -37,6 +37,7 @@ Curriculum learning can be used by setting the `curriculum_learning` key in the "loss_scale": 0, "loss_scale_window": 1000, "hysteresis": 2, + "consecutive_hysteresis": false, "min_loss_scale": 1 }, "curriculum_learning": { From 22fda1e0ee462c2b411575dc954cc8a29d78a7b2 Mon Sep 17 00:00:00 2001 From: Dashiell Stander Date: Fri, 19 May 2023 07:14:35 -0400 Subject: [PATCH 07/20] Add necessary comma (#53) Signed-off-by: Dashiell Stander --- deepspeed/launcher/runner.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deepspeed/launcher/runner.py b/deepspeed/launcher/runner.py index 1281de0167be..2928bb5985c5 100755 --- a/deepspeed/launcher/runner.py +++ b/deepspeed/launcher/runner.py @@ -21,7 +21,7 @@ import signal import time -from .multinode_runner import PDSHRunner, OpenMPIRunner, MVAPICHRunner, SlurmRunner, MPICHRunner, JSRunner IMPIRunner +from .multinode_runner import PDSHRunner, OpenMPIRunner, MVAPICHRunner, SlurmRunner, MPICHRunner, JSRunner, IMPIRunner from .constants import PDSH_LAUNCHER, OPENMPI_LAUNCHER, MVAPICH_LAUNCHER, SLURM_LAUNCHER, MPICH_LAUNCHER, JSRUN_LAUNCHER, IMPI_LAUNCHER from ..constants import TORCH_DISTRIBUTED_DEFAULT_PORT from ..nebula.constants import NEBULA_EXPORT_ENVS From a48c6493f1fc6a1652723ab5542f7703be6f03a5 Mon Sep 17 00:00:00 2001 From: Kshitij Gupta Date: Tue, 7 Nov 2023 05:13:07 +0530 Subject: [PATCH 08/20] bf16 load and finetune fix (#57) --- deepspeed/runtime/engine.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deepspeed/runtime/engine.py b/deepspeed/runtime/engine.py index 6fc18ced418d..24e036ed91aa 100644 --- a/deepspeed/runtime/engine.py +++ b/deepspeed/runtime/engine.py @@ -2667,7 +2667,7 @@ def _load_checkpoint(self, if load_module_only: deepspeed_states = ['module'] - if self.optimizer is not None and self.fp16_enabled(): + if self.optimizer is not None: self.optimizer.refresh_fp32_params() else: if self.has_moe_layers: From b9260436e7da3e297fc6bedfd27d9e69fbba6f5c Mon Sep 17 00:00:00 2001 From: Zhao Tianyu Date: Sun, 26 Nov 2023 11:49:39 +0900 Subject: [PATCH 09/20] BF16 optimizer sync parameters with module when load_module_only=True (#56) * Let bf16 optimizer synchronize parameters with module in load_module_only mode. * Fix BF16 parameter groups * enable loading lr scheduler even when loading module only --- deepspeed/runtime/engine.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/deepspeed/runtime/engine.py b/deepspeed/runtime/engine.py index 24e036ed91aa..e698f8240cb7 100644 --- a/deepspeed/runtime/engine.py +++ b/deepspeed/runtime/engine.py @@ -2669,6 +2669,8 @@ def _load_checkpoint(self, deepspeed_states = ['module'] if self.optimizer is not None: self.optimizer.refresh_fp32_params() + if load_lr_scheduler_states and self.lr_scheduler is not None: + self.lr_scheduler.load_state_dict(checkpoint['lr_scheduler']) else: if self.has_moe_layers: largest_group_name = groups._get_max_expert_size_name() @@ -3164,7 +3166,8 @@ def _get_zero_param_shapes(self): # if we don't use it, we get parameters ordered incorrectly if hasattr(self.optimizer, "round_robin_bit16_groups"): bit16_groups = self.optimizer.round_robin_bit16_groups - elif self.bfloat16_enabled() and not self.zero_optimization(): + elif self.bfloat16_enabled() and (not self.zero_optimization() or self.zero_optimization_stage() == 1 + and hasattr(self.optimizer, 'bf16_groups')): bit16_groups = self.optimizer.bf16_groups else: bit16_groups = self.optimizer.bit16_groups if self.zero_optimization_stage( From a1af9e77fb690655aa4da35078c9a551e0aa2ba5 Mon Sep 17 00:00:00 2001 From: Hailey Schoelkopf <65563625+haileyschoelkopf@users.noreply.github.com> Date: Fri, 19 Jan 2024 10:32:08 -0500 Subject: [PATCH 10/20] Update Slurm Launcher (#59) * Fix SLURM runner comment handling * Add --account in Slurm Launcher * fix switch of --account + --comment * Add `--account` runner argument --- deepspeed/launcher/multinode_runner.py | 4 +++- deepspeed/launcher/runner.py | 9 ++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/deepspeed/launcher/multinode_runner.py b/deepspeed/launcher/multinode_runner.py index 1442fff4aa7b..40df5d001dd3 100644 --- a/deepspeed/launcher/multinode_runner.py +++ b/deepspeed/launcher/multinode_runner.py @@ -426,10 +426,12 @@ def get_cmd(self, environment, active_resources): if getattr(self.args, 'comment', ''): srun_cmd += ['--comment', self.args.comment] + if getattr(self.args, 'account', ''): + srun_cmd += ['--account', self.args.account] + if self.args.include != "": srun_cmd.append('--nodelist') srun_cmd.append(self._pdsh_include_to_nodelist(self.args.include)) - srun_cmd += ['--comment', self.args.slurm_comment] if self.args.num_nodes > 0: srun_cmd.append('--nodes') diff --git a/deepspeed/launcher/runner.py b/deepspeed/launcher/runner.py index a9cfa15411f6..2c53e2d59ef4 100755 --- a/deepspeed/launcher/runner.py +++ b/deepspeed/launcher/runner.py @@ -177,7 +177,14 @@ def parse_args(args=None): "--comment", default="", type=str, - help="A comment that can be used for metadata." + help="A comment that can be used for metadata. Used to pass --comment argument to srun in Slurm launcher" + ) + + parser.add_argument( + "--account", + default="", + type=str, + help="Used to pass --account argument to srun in Slurm launcher" ) parser.add_argument("--elastic_training", From 02e2ebf7dee6aaab3d89094ed470a4609763c742 Mon Sep 17 00:00:00 2001 From: Colin Date: Sat, 2 Mar 2024 17:19:16 -0500 Subject: [PATCH 11/20] feat: fix PipelineEngine init logging error (#60) --- deepspeed/runtime/pipe/engine.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deepspeed/runtime/pipe/engine.py b/deepspeed/runtime/pipe/engine.py index b0fc3c920ea4..f08657b793d7 100644 --- a/deepspeed/runtime/pipe/engine.py +++ b/deepspeed/runtime/pipe/engine.py @@ -136,7 +136,7 @@ def __init__(self, has_bool_tensors=False, *super_args, **super_kwargs): assert isinstance(self._config.pipeline['grad_partitioned'], bool) self.is_pipe_partitioned = self.is_model_parallel and self._config.pipeline['pipe_partitioned'] self.is_grad_partitioned = self.is_model_parallel and self._config.pipeline['grad_partitioned'] - logger.info(f'is_pipe_partitioned= {self.is_pipe_partitioned}', + logger.info(f'is_pipe_partitioned= {self.is_pipe_partitioned} ' f'is_grad_partitioned= {self.is_grad_partitioned}') model_parameters = filter(lambda p: p.requires_grad, self.module.parameters()) From 6d097beccc4e3b0ac806c7d975f8c10d4689de26 Mon Sep 17 00:00:00 2001 From: Hailey Schoelkopf <65563625+haileyschoelkopf@users.noreply.github.com> Date: Fri, 8 Mar 2024 16:24:20 -0500 Subject: [PATCH 12/20] add _deepspeed_no_cast attribute (#61) --- deepspeed/runtime/engine.py | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/deepspeed/runtime/engine.py b/deepspeed/runtime/engine.py index f005f1ab58b6..20df5eaf81bd 100644 --- a/deepspeed/runtime/engine.py +++ b/deepspeed/runtime/engine.py @@ -1074,11 +1074,25 @@ def _configure_distributed_model(self, model): if self.fp16_enabled(): if is_zero_init_model: self.__check_params(self.module, torch.half) - self.module.half() + # selectively avoid casting specially + # marked parameters to 16-bit + self.module._apply( + lambda t: t.half() if ( + t.is_floating_point() and + not getattr(t, "_deepspeed_no_cast", False) + ) else t + ) elif self.bfloat16_enabled(): if is_zero_init_model: self.__check_params(self.module, torch.bfloat16) - self.module.bfloat16() + # selectively avoid casting specially + # marked parameters to 16-bit + self.module._apply( + lambda t: t.bfloat16() if ( + t.is_floating_point() and + not getattr(t, "_deepspeed_no_cast", False) + ) else t + ) else: self.__check_params(self.module, torch.float) From 5621cec290ecc5557ac576b851ea704cbcf98e78 Mon Sep 17 00:00:00 2001 From: jacobthebanana <50071502+jacobthebanana@users.noreply.github.com> Date: Thu, 6 Mar 2025 10:48:54 -0500 Subject: [PATCH 13/20] Merged upstream torch-compatibility changes in elasticity/elastic_agent.py (#62) --- deepspeed/elasticity/elastic_agent.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/deepspeed/elasticity/elastic_agent.py b/deepspeed/elasticity/elastic_agent.py index 91a217cb9971..039b999dfeca 100644 --- a/deepspeed/elasticity/elastic_agent.py +++ b/deepspeed/elasticity/elastic_agent.py @@ -6,7 +6,7 @@ from torch.distributed.elastic.agent.server.local_elastic_agent import LocalElasticAgent from typing import Any, Dict, Optional, Tuple from datetime import datetime -from torch.distributed.elastic.agent.server.api import log, _get_socket_with_port +from torch.distributed.elastic.utils.distributed import get_free_port from torch.distributed.elastic.metrics import put_metric from torch.distributed.elastic.agent.server.api import ( RunResult, @@ -24,6 +24,10 @@ from contextlib import closing import subprocess +from torch.distributed.elastic.utils.logging import get_logger + +log = get_logger(__name__) + class DSElasticAgent(LocalElasticAgent): @@ -39,9 +43,12 @@ def __init__( self.ds_env = env @staticmethod - def _set_master_addr_port(store: Store, master_addr: Optional[str], master_port: Optional[int]): + def _set_master_addr_port(store: Store, + master_addr: Optional[str], + master_port: Optional[int], + local_addr: Optional[str] = None): if master_port is None: - sock = _get_socket_with_port() + sock = get_free_port() with closing(sock): master_port = sock.getsockname()[1] From 91d1c55ba037b5ada99ae14884dff87a4dc5b9ea Mon Sep 17 00:00:00 2001 From: Quentin Anthony Date: Thu, 6 Mar 2025 10:12:46 -0800 Subject: [PATCH 14/20] merge in local branch for v3.0 release (#64) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Safe usage of popen (#6490) Avoid shell=True security issues with Popen * Handle an edge case where `CUDA_HOME` is not defined on ROCm systems (#6488) * Handles an edge case when building `gds` where `CUDA_HOME` is not defined on ROCm systems * Update version.txt after 0.15.1 release (#6493) **Auto-generated PR to update version.txt after a DeepSpeed release** Released version - 0.15.1 Author - @loadams Co-authored-by: loadams * HPU: add required ENV vars to acccelerator init (#6495) Co-authored-by: Olatunji Ruwase * Op_builder->is_compatible quite warning (#6093) Set the default value of op_builder/xxx.py/is_compatible()/verbose to False for quite warning. Add verbose judgement before op_builder/xxx.py/is_compatible()/self.warning(...). Otherwise the verbose arg will not work. --------- Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * fix pipeline eval_batch micro_batches argument for schedule (#6484) Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * Fix the broken url link (#6500) Simple changes to fix the Intel cpu example link and add more xpu examples. Signed-off-by: roger feng * fix environment variable export bug for MultiNodeRunner (#5878) In some multi-node environment like SLURM,there are some environment vars that contain special chars and can trigger errors when being exported. For example, there is a var `SLURM_JOB_CPUS_PER_NODE=64(x2)` when requesting two nodes with 64 cpus using SLURM. Using `runner.add_export` to export this var will add a command `export SLURM_JOB_CPUS_PER_NODE=64(x2)` when launching subprocesses, while this will cause a bash error since `(` is a key word of bash, like: ``` [2024-08-07 16:56:24,651] [INFO] [runner.py:568:main] cmd = pdsh -S -f 1024 -w server22,server27 export PYTHONPATH=/public/home/grzhang/code/CLIP-2; export SLURM_JOB_CPUS_PER_NODE=64(x2); ... server22: bash: -c: 行 0: 未预期的符号“(”附近有语法错误 ``` This PR simply wrap the environment vars with a pair of `"` to make sure they are treated as string. Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * Revert "BF16 optimizer: Clear lp grads after updating hp grads in hook" (#6508) Reverts microsoft/DeepSpeed#5328 After offline discussion with @YangQun1 , we agreed that there is no memory effect as clear_lp_grads flag triggers zero_() ops which just zeros buffers and does not free any memory. the outcome is compute overhead. * wrap include cuda_bf16.h with ifdef BF16_AVAILABLE (#6520) * Avoid security issues of subprocess shell (#6498) Avoid security issues of `shell=True` in subprocess --------- Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * Add conditional on torch version for scaled_dot_product_attention (#6517) Changes from #4724 broke support for torch<2.0 in the flops profiler as the scaled_dot_product_attention [wasn't added](https://pytorch.org/docs/2.0/generated/torch.nn.functional.scaled_dot_product_attention.html#torch.nn.functional.scaled_dot_product_attention) until a beta version in torch 2.0 Resolved: #5534 Todo: - [ ] Test this - [ ] Issue resolution with users. * Added Intel Gaudi to Accelerator Setup Guide (#6543) Added Intel Gaudi to the list of accelerators in the setup guide. Co-authored-by: sakell Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * Skip failing newly added tests in accelerate (#6574) Adding the new tests in https://github.com/huggingface/accelerate/pull/3097 caused the nv-accelerate-v100 tests to fail. Due to other CI issues we didn't notice this at first. This just skips the problematic test for now. cc: @stas00 / @muellerzr * Use msgpack for p2p comm (#6547) Use msgpack for P2P communication in pipeline engine. Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * DeepNVMe perf tuning (#6560) Add performance tuning utilities: `ds_nvme_tune` and `ds_io`. Update tutorial with tuning section. --------- Co-authored-by: Ubuntu Co-authored-by: Joe Mayer <114769929+jomayeri@users.noreply.github.com> * [Accelerator] Cambricon MLU support (#6472) ### Description This PR includes Cambricon MLU accelerator support. With this PR, DeepSpeed supports MLU as backend for training and inference tasks. --------- Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * Fix gradient accumulation for Z2+offload (#6550) The ZeRO 1/2 optimizer performs incorrect gradient accumulation in the path for ZeRO2 + Offloading. This issue is caused by two main reasons: 1) The micro_step_id in the ZeRO 1/2 optimizer is: - Initialized to 0 in the constructor. - Reset to -1 during the backward pass. For example, given a gradient accumulation step of 4, the micro_step_id changes as follows: - For the first global step: 1, 2, 3, 4. - Subsequently: 0, 1, 2, 3. 2) Gradients are copied to the buffer on the first micro step and accumulated in the buffer during the following micro steps. However, the current code incorrectly copies gradients at steps that are not at the accumulation boundary. This PR aligns the micro_step_id initialization in both the constructor and the backward pass, and corrects the condition for copying and accumulating gradients. Co-authored-by: Olatunji Ruwase Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * fix errors when setting zero3 leaf modules with torch.compile (#6564) When setting zero3 leaf modules to a higher level module and running with torch.compile, there are a few errors from ZeROOrderedDict. First it doesn't support Deep copy for not having a constructor with no parameters. Second, it doesn't check the existence of ds_status attr on param before accessing the attr. change contributed by Haifeng Chen Co-authored-by: Olatunji Ruwase Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * [XPU] Support DeepNVMe new code structure (#6532) In DeepNVMe GDS update, many functions are changed into a more abstract way. Also added some files. These change break zero-infinity on XPU. To bring this feature back, we have this PR: 1. modify the aio opbuilder for new files. 2. Add custom cpu_op_desc_t for xpu users. (XPU don't handle buffer aligned here) --------- Co-authored-by: Olatunji Ruwase Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * Add APIs to offload states of model, optimizer, and engine (#6011) This PR adds the following APIs to offload model, optimizer, and engine states. ```pytyon def offload_states(self, include: Container[OffloadStateTypeEnum] = None, device: OffloadDeviceEnum = OffloadDeviceEnum.cpu, pin_memory: bool = True, non_blocking: bool = False) -> None: """Move the ZeRO optimizer buffers to the specified device. Arguments: include: Optional. The set of states to offload. If not provided, all states are offloaded. device: Optional. The device to move the ZeRO optimizer buffers to. pin_memory: Optional. Whether to pin the memory of the offloaded states. non_blocking: Optional. Whether to offload the states asynchronously. ... def offload_states_back(self, non_blocking: bool = False) -> None: ``` Here is the typical usage. ```python # Offload after forward, backward, and step model.offload_states() # Do something requiring a lot of device memory ... # Load states back to device memory model.offload_states_back() ``` You can selectively offload states to balance the offloading overhead and memory saving. ```python model.offload_states(include=set([OffloadStateTypeEnum.hp_params, OffloadStateTypeEnum.opt_states], device=OffloadDeviceEnum.cpu) ``` Performance (4.3B parameters / 4x A100) - Environment (4x A100, [benchmark script](https://gist.github.com/tohtana/05d5faba5068cf839abfc7b1e38b85e4)) - Average Device to Host transfer time: 2.45 GB/s, aggregated: 9.79 GB/s - Average Host to Device transfer: 11.05 GB/s, aggregated: 44.19 GB/s - Mem (allocated by PyTorch) - Before offload 18.2GB - After offloading 17.7MB - Time ([benchmark script](https://github.com/microsoft/DeepSpeedExamples/tree/tohtana/offload_states/training/offload_states), offloading time/loading time) python output_table.py | |pin_memory=0 non_blocking=0|pin_memory=0 non_blocking=1|pin_memory=1 non_blocking=0|pin_memory=1 non_blocking=1| |--:|---------------------------|---------------------------|---------------------------|---------------------------| | 1|4.34 / 3.42 |4.99 / 2.37 |6.5 / 2.42 |6.0 / 2.39 | | 2|9.9 / 3.28 |5.1 / 2.34 |6.21 / 2.42 |6.25 / 2.45 | | 3|9.92 / 3.19 |6.71 / 2.35 |6.33 / 2.38 |5.93 / 2.42 | | 4|9.55 / 2.82 |7.11 / 2.39 |6.9 / 2.38 |6.5 / 2.43 | | 5|4.4 / 3.35 |6.04 / 2.41 |6.26 / 2.41 |6.32 / 2.47 | | 6|4.4 / 3.57 |6.58 / 2.42 |6.88 / 2.4 |6.35 / 2.43 | | 7|9.51 / 3.12 |6.9 / 2.39 |6.9 / 2.39 |6.46 / 2.4 | | 8|4.77 / 3.64 |6.69 / 2.39 |7.39 / 2.42 |6.56 / 2.46 | | 9|9.5 / 3.07 |7.18 / 2.42 |6.67 / 2.39 |7.38 / 2.46 | TODO: - Enable offloading to a NVMe storage -> NVMe support is non-trivial. I suggest adding the support in another PR - [DONE] Discard buffer (and recreate it) instead of offloading. We don't need to restore the contiguous buffer for reduce. - [DONE] Check pin_memory improves performance or not --------- Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> Co-authored-by: Olatunji Ruwase * add bfloat16 to inference support dtypes (#6528) to allow running inference tasks using bfloat16 --------- Co-authored-by: Olatunji Ruwase Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> Co-authored-by: Logan Adams * [COMPILE] workflow for deepspeed + torch.compile (#6570) We use simple model + deepspeed zero 3 + torch.compile and count graph break numbers to demonstrate current status of combing deepspeed + torch.compile. --------- Co-authored-by: Masahiro Tanaka <81312776+tohtana@users.noreply.github.com> * Fixes on the accelerate side mean we do not need to skip this test (#6583) HF accelerate implemented fixes here: https://github.com/huggingface/accelerate/pull/3131 This means we can revert the changes from #6574 * Fix torch include in `op_builder/mlu/fused_adam.py` and update no-torch workflow triggers (#6584) Changes from #6472 caused the no-torch workflow that is an example of how we build the DeepSpeed release package to fail (so we caught this before a release, see more in #6402). These changes also copy the style used to include torch in other accelerator op_builder implementations, such as npu [here](https://github.com/microsoft/DeepSpeed/blob/master/op_builder/npu/fused_adam.py#L8) and hpu [here](https://github.com/microsoft/DeepSpeed/blob/828ddfbbda2482412fffc89f5fcd3b0d0eba9a62/op_builder/hpu/fused_adam.py#L15). This also updates the no-torch workflow to run on all changes to the op_builder directory. The test runs quickly and shouldn't add any additional testing burden there. Resolves: #6576 * [ROCm] Fix subprocess error (#6587) Fixes https://github.com/microsoft/DeepSpeed/issues/6585 Use shell=True for subprocess.check_output() in case of ROCm commands. Do not use shlex.split() since command string has wildcard expansion. Signed-off-by: Jagadish Krishnamoorthy * Cleanup CODEOWNERS file to be valid (#6603) * Add SSF Best practices badge (#6604) Work in progress to ensure we meet SSF best practices: https://www.bestpractices.dev/en/projects/9530 * Move V100 workflows from cuda 11.1/11.7 to 12.1 (#6607) * Fix SD workflow (#6609) SD workflow needed updates when we moved to pydantic 2 support that was never added before. Passing nv-sd workflow [here](https://github.com/microsoft/DeepSpeed/actions/runs/11239699283) * Pin accelerate to fix CI failures/issues (#6610) * Add llama3.2 vision autotp (#6577) Llama3.2-11b and llama3.2-90b including vision model and text model, these two models have different num_kv_heads, so we need to set num_kv_heads dynamically. Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * Improve DS logging control (#6602) Disable `steps_per_print` by default. * Fix device selection using CUDA_VISIBLE_DEVICES (#6530) This PR addresses #5818. Instead of contiguous numbers based on the device count, this PR uses device indices in `--include`. --------- Co-authored-by: Olatunji Ruwase Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * Handle when `backend` is also in compile_kwargs (#6502) cc @tohtana Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> Co-authored-by: Olatunji Ruwase Co-authored-by: Masahiro Tanaka <81312776+tohtana@users.noreply.github.com> * Rearrange inference OPS and stop using builder.load (#5490) This PR mainly handles all places where InferenceBuilder is used to access any op or a specific implementation for an op. Instead an op is defined, and its proper implementation is picked inside and the usage will be transparent to the user. What was done in the PR: 1) Added missing ops (added a py file with fallback mechanism) 2) Added missing fallback implementations for existing ops 3) removed all usages for builder.load and replaced them with ops instead. 4) added workspace op and inferenceContext which contains all workspace related functions and inferenceContext is the python fallback of inferenceContext in CUDA 5) a small change to softmax_context signature to fit the fallback signature. --------- Co-authored-by: Joe Mayer <114769929+jomayeri@users.noreply.github.com> Co-authored-by: Lev Kurilenko <113481193+lekurile@users.noreply.github.com> Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> Co-authored-by: Olatunji Ruwase * Unpin accelerate tests, update lightning with node16 removal. (#6611) HF accelerate fixes implemented in https://github.com/huggingface/accelerate/pull/3145 mean that we no longer need to pin the Accelerate version! nv-lightning tests now run on Ubuntu 20.04+, so we support >node 16, so we can remove the explicit permissions for that in the env config. * Enabled Qwen2-MoE Tensor Parallelism (TP) inference (#6551) Modified _replace_module in auto_tp.py : The modification keeps the layers 'shared_expert_gate' and 'gate' in qwen2-moe the original type torch.nn.Linear and not changes them into LinearLayer. In this way, their weights will not be split into multiple HPU/GPU cards. Then the qwen2-moe can run on multiple HPU/GPU cards. Since the weights of 'gate' are not split into multiple HPU/GPU cards, all gather operations are not needed, which may improve performance. --------- Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * Update version.txt after 0.15.2 release (#6615) **Auto-generated PR to update version.txt after a DeepSpeed release** Released version - 0.15.2 Author - @jomayeri Co-authored-by: jomayeri * Clean up prefetched parameters (#6557) Parameters prefetched by ZeRO3 are sometimes not used. This occurs when the actual sub-module execution differs from previous tracing. As a result, the state of the allgather handle for such a parameter remains `INFLIGHT`, causing functions like `empty_partition_cache` to detect it and throw an error. This PR resolves the issue by ensuring that communication finishes and the parameters are freed. As this issue was mentioned in #6011, this includes the change of the branch. We need to merge #6011 first. --------- Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> Co-authored-by: Olatunji Ruwase * AIO CPU Locked Tensor (#6592) Restoring the functionality of the cpu locked tensor in the AIO library. Make async_io operator available for CPU accelerator, i.e., CPU only environment. --------- Co-authored-by: Olatunji Ruwase * reduce setting global variables to reduce torch compile graph breaks (#6541) setting global variables during training will create a graph breaks when using torch.compile (reading global variables doesn't). this commit attempts to reduce the setting of global variables in the checkpointing flows. there are 2 main uses setting global variables: 1. Share data between functions 2. Establish that this is the first call to the code For most of the cases the data in the global variables is data that can be computed on demand or set once in an initial state in a configure function. For "check that this is the first run" use case the code was moved to the configure function. --------- Co-authored-by: Olatunji Ruwase Co-authored-by: Masahiro Tanaka <81312776+tohtana@users.noreply.github.com> Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * Add API to get devices of offload states (#6586) This PR adds an API `deepspeed.runtime.zero.offload_states get_state_devices`, which gets devices of offload states as suggested in this [comment](https://github.com/microsoft/DeepSpeed/pull/6011#issuecomment-2358068777). We could lift this up to `deepspeed.utils` but would need to resolve a circular import: User code -> `deepspeed.utils` -> `deepspeed.utils.offload_states` -> `deepspeed.runtime.zero` -> `deepspeed.runtime.zero.partition_parameters` -> `deepspeed.utils` This will require a significant refactoring as long as we have `OffloadStateTypeEnum` in `deepspeed.runtime.zero`. --------- Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> Co-authored-by: Olatunji Ruwase * apply fp16 autocast only to floating point values * Ignore reuse_dist_env (#6623) Tests with `reuse_dist_env = True` often causes memory leaks. This PR ignores `reuse_dist_env` and forcibly sets it to `False`. This change might slow down the tests, but I think it is better to manually restart runners and relaunch tests. Memory usages (See #6578): - `reuse_dist_env == True`: https://github.com/microsoft/DeepSpeed/actions/runs/11302940871/job/31439471512 - `reuse_dist_env == False`: https://github.com/microsoft/DeepSpeed/actions/runs/11303250613/job/31440137894 * [compile] Show breakdown of graph break (#6601) This PR extends https://github.com/microsoft/DeepSpeed/pull/6570 by showing a breakdown of graph breaks. So we can see how graph breaks are distributed among different reasons. An example of graph break output can be seen from the following workflow run https://github.com/microsoft/DeepSpeed/actions/runs/11199157962 * Add API for updating ZeRO gradients (#6590) * Accept btl_tcp_if_include option through launcher_args (#6613) This patch fixes issue #4460. When `btl_tcp_if_include` option is provided through `--launcher_args`, we use the provided option instead of the hardcoded `--mca btl_tcp_if_include eth0`. Otherwise we use `--mca btl_tcp_if_include eth0` as the default for compatibility. Fixes #4460 --------- Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> Co-authored-by: Olatunji Ruwase * Add first Step in LR Schedulers (#6597) Some (not all) of the LR schedulers in runtime were missing the initialization of the optimizer group lr. --------- Co-authored-by: Olatunji Ruwase Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * Support safetensors export (#6579) ## Feature This commit implements the following features: - [x] support saving checkpoint as safetensors (more commonly used format) - [x] support sharding checkpoints (which is important for very large models) Most of the codes are borrowed from https://github.com/huggingface/transformers/blob/v4.45.1/src/transformers/modeling_utils.py#L2490 ## Usage For `pytorch_model.bin` export ``` python zero_to_fp32.py . output_dir/ ``` For `model.safetensors` export ``` python zero_to_fp32.py . output_dir/ --safe_serialization ``` --------- Co-authored-by: Masahiro Tanaka <81312776+tohtana@users.noreply.github.com> Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * add option to disable logger while compiling to avoid graph breaks (#6496) adding an option to disable calls for logger while compiling to avoid graph breaks. Here I used an environment variable to determine whether to activate this option, but it can also be determined using the json config file or any other way you see fit. --------- Co-authored-by: snahir Co-authored-by: Masahiro Tanaka <81312776+tohtana@users.noreply.github.com> * Lock cache file of HF model list (#6628) The error in the following log suggests that the cache file for HF model list can be broken: https://github.com/microsoft/DeepSpeed/actions/runs/11343665365/job/31546708118?pr=6614 The actual cause of the above error is unclear, but `_hf_model_list` potentially breaks the cache file when it is concurrently called from multiple processes. This PR locks the cache file to ensure `_hf_model_list` safely reads and writes the file. * Add README Pipeline Status for Huawei Ascend NPU (#6588) Hello! Following the merge of https://github.com/microsoft/DeepSpeed/pull/6445, I have implemented a CI pipeline to validate the Huawei Ascend NPU. --------- Co-authored-by: sjh Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> Co-authored-by: Olatunji Ruwase Co-authored-by: Masahiro Tanaka <81312776+tohtana@users.noreply.github.com> * Update torch version in workflows (#6631) Set PyTorch version in CI workflows to v2.5. Context: The [error](https://github.com/microsoft/DeepSpeed/actions/runs/11371525624/job/31633793986?pr=6630) in #6630 might have been caused by the PyTorch version mismatch or something. * Use file store for tests (#6632) This PR changes the `init_method` for tests to `FileStore` for robustness. * Fix Memory Leak In AIO (#6630) Fixing a memory leak in AIO pinned tensor as well as an incorrect function type for gds op. --------- Co-authored-by: Masahiro Tanaka <81312776+tohtana@users.noreply.github.com> * [XPU] upgrade xpu max1100 CI workflow to pytorch2.3 (#6646) With intel-extension-for-pytorch=2.3.110 released last month, max1100 CI workflow can be updated too. Software versions aligned with #6570 . Increased CI tests scope for torch/ipex2.3 will be in later PR. This workflow passed in my cloned repo self-hosted runner. * [XPU] host timer check version from Torch 2.5 to Torch 2.6 (#6633) Elapsed time would be supported in Torch 2.6. Co-authored-by: Masahiro Tanaka <81312776+tohtana@users.noreply.github.com> * [XPU] [DeepNVMe] use same cpu_op_desc_t with cuda (#6645) We have found that #6592 uses `_pinned_tensor_mgr` to create cpu bounce buffer, which is same with what our xpu accelerator currently doing. So no need to use xpu device specific cpu_op_desc_t. In this PR: 1. remove custom csrc/xpu/aio/deepspeed_cpu_op.cpp 2. modify xpu async_io opbuilder. This issue cannot be easily done with revert #6532 , for we added some source file as last time GDS feature going in DS. So file this new PR :) * Update version.txt after 0.15.3 release (#6652) **Auto-generated PR to update version.txt after a DeepSpeed release** Released version - 0.15.3 Author - @jomayeri Co-authored-by: jomayeri * Fix expert grad scaling problem with ZeRO optimizer (#6546) Fix [#6545] work: - expert gradient average: divide edp_world_size -> divide dp_world_size - unit test: make sure model with different dp/ep has same expert gradient --------- Co-authored-by: wangyiou Co-authored-by: Masahiro Tanaka <81312776+tohtana@users.noreply.github.com> Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * Add attribute check for language_model when replace last linear module (#6650) Fix module has no attribute 'language_model' issue. Co-authored-by: Masahiro Tanaka <81312776+tohtana@users.noreply.github.com> * fix init_device_mesh for torch 2.4 (#6614) Start torch 2.4, in [`init_device_mesh()`](https://github.com/pytorch/pytorch/blob/de4c2a3b4e89d96334dc678d1c3f2ae51a6630a0/torch/distributed/device_mesh.py#L915) ,device type with a GPU index, such as "cuda:0", is not allowed. ![image](https://github.com/user-attachments/assets/1ddb61bf-8a15-4e0a-9115-a3681d7f19ff) --------- Co-authored-by: Olatunji Ruwase Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> Co-authored-by: Masahiro Tanaka <81312776+tohtana@users.noreply.github.com> Co-authored-by: Masahiro Tanaka * Fix dynamo issue (#6527) Dynamo use faketensor to trace tensor ops. In some case, the mechanism break compiling with deepspeed. An example could be found at https://gist.github.com/oraluben/9b8240c2fe482eb4382453d6c97a5f76, to see issues, install deepspeed==0.14.4 instead of my fork without this PR, llama cannot be compiled. Detailed explanation: 1. `ZeROOrderedDict` dynamo use deepcopy to copy tensors, which will call `object.__reduce__`. When copying `ZeROOrderedDict`, the default implementation do not copy its `_parent_module` and will lead to failure. 2. `param` maybe faketensor and do not have `ds_status` yet, but during tracing it's ok to just skip the `register_external_parameter`, it should be done ways before. --------- Co-authored-by: Olatunji Ruwase Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> Co-authored-by: Masahiro Tanaka <81312776+tohtana@users.noreply.github.com> * sequence parallel for uneven heads (#6392) In sequence_parallel (Ulysses), the sequence parallel size is constrained by the requirement to be divisible by the number of heads, which prevents some models/workloads from setting a specific sequence parallel size. This PR implements uneven all-to-all heads splitting. - both support batch first (b,s,...) and seq_len first(s,b..) layout. - Added unit tests with numerical checks. Locally also tested with **7 heads with sp=4** and **20 heads with sp=8**, and it passed. --------- Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> Co-authored-by: Olatunji Ruwase Co-authored-by: Ma, Guokai Co-authored-by: Masahiro Tanaka <81312776+tohtana@users.noreply.github.com> * Add fallback for is_compiling (#6663) Importing `torch.compiler.is_compiling` causes an error with an older version of PyTorch. This PR adds a fallback for `is_compiling` to use an equivalent function of older PyTorch versions. This will resolve #6656. Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * Update profiler registration check (#6668) Resolves #5432. * Add support for H100/sm_90 arch compilation (#6669) Resolves: #6549 * Update Gaudi2 docker image (#6677) * Update gaudi2 docker version to latest release (1.18) (#6648) Updated docker version to 1.18.0-latest Note: for this update the firmware on the Gaudi2 node had to be updated to use firmware version 1.18. Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * Update base docker image for A6000 GPU tests (#6681) Update to a [container (24.03)](https://docs.nvidia.com/deeplearning/frameworks/pytorch-release-notes/rel-24-03.html) with python 3.10 as transformers dropped support for python 3.8 in their latest release. Note: nv-human-eval.yml was never completed and isn't used, it is just updated for any potential future support. Resolves: #6672 * Remove packages that no longer need to be updated in the latest container (#6682) * Fix training of pipeline based peft's lora model (#5477) Hi, guys I find there is an assert failure when I train huggingface's lora based model in pipeline style. Here is the whole steps that I created my model: 1) Load the pre-trained chatglm-6b model from huggingface, as Model_A 2) Use huggingface's peft's `get_peft_model(...)` and my `LoraConfig(...)` from Model_A to create the lora model, as Model_B 3) Create my own pipeline based model Model_C from Model_B And I run Model_C under 2 3090ti GPUs. And the assertion failure looks like this: ```text Traceback (most recent call last): File "/home/ubuntu/proj/chatglm-finetuning/train_pipeline.py", line 372, in main() File "/home/ubuntu/proj/chatglm-finetuning/train_pipeline.py", line 351, in main loss = engine.train_batch(data_iter=train_dataloader) File "/home/ubuntu/anaconda3/lib/python3.9/site-packages/deepspeed/runtime/pipe/engine.py", line 375, in train_batch self._exec_schedule(sched) File "/home/ubuntu/anaconda3/lib/python3.9/site-packages/deepspeed/runtime/pipe/engine.py", line 1375, in _exec_schedule self._exec_instr(**cmd.kwargs) File "/home/ubuntu/anaconda3/lib/python3.9/site-packages/deepspeed/runtime/pipe/engine.py", line 276, in _exec_reduce_tied_grads dist.all_reduce(grad, group=group) File "/home/ubuntu/anaconda3/lib/python3.9/site-packages/deepspeed/comm/comm.py", line 117, in log_wrapper return func(*args, **kwargs) File "/home/ubuntu/anaconda3/lib/python3.9/site-packages/deepspeed/comm/comm.py", line 496, in all_reduce return cdb.all_reduce(tensor, op, group, async_op) File "/home/ubuntu/anaconda3/lib/python3.9/site-packages/deepspeed/comm/torch.py", line 159, in all_reduce return torch.distributed.all_reduce(tensor=tensor, op=op, group=group, async_op=async_op) File "/home/ubuntu/anaconda3/lib/python3.9/site-packages/torch/distributed/distributed_c10d.py", line 1520, in all_reduce _check_single_tensor(tensor, "tensor") File "/home/ubuntu/anaconda3/lib/python3.9/site-packages/torch/distributed/distributed_c10d.py", line 463, in _check_single_tensor raise RuntimeError( RuntimeError: Invalid function argument. Expected parameter `tensor` to be of type torch.Tensor. ``` After some debugging, I find out the root cause is that my configuration of lora (in below) only add extra lora layer(part) in qkv related layers but not the embedding layer. So the whole embedding layer's parameters are freezed. ```python lora_config = LoraConfig(r=8, # copied from finetuning_lora.py lora_alpha=32, target_modules=["query_key_value"], lora_dropout=0.1, bias="none", task_type="CAUSAL_LM", inference_mode=False, ) ``` And in my implementation of pipeline based model, I declared the embeding layer as a tied-layer. So the whole thing is that there are no gradients at all for embedding layer, but embedding layer as the tied layer needs to be synced between two gpus. The value of gradient is None but is still passed to `all_reduce` operation. Current, my fix is simple and add a check if this `grad` is None. --------- Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> Co-authored-by: Heyang Qin Co-authored-by: Masahiro Tanaka <81312776+tohtana@users.noreply.github.com> * Update checkout action to latest version (#5021) Latest checkout uses latest (non-deprecated) version of node (16 -> 20). More information [here](https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/): ``` Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: actions/checkout@v3. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/. ``` Checkout action: https://github.com/actions/checkout Node 20 requires a minimum of Ubuntu 20.04, so workflows currently using 18.04 are failing/will fail. * Add attribute check to support git-base autotp (#6688) Git-base model is an image-text model. After supporting the llama3.2 vision model, we set num_kv_heads dynamically. Git-base only includes vision_config, so we need to add an attribute check for vision_config/text_config when setting num_kv_heads. Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * fix memcpy issue on backward for zero-infinity (#6670) This PR is similar to [PR#5301](https://github.com/microsoft/DeepSpeed/pull/5301), that optimizes the D2H time use pinned memory. Previously, the D2H memcpy will be the bottleneck during the final backward pass of each iteration for ZeRO-Infinity(offload), as shown in Trace-1. The new version can eliminate the bottleneck, as shown in Trace-2. _Trace-1_ image _Trace-2_ image cc @tjruwase --------- Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> Co-authored-by: Olatunji Ruwase * Free memory in universal checkpointing tests (#6693) Tests in universal checkpointing were not freeing the engine after use when `reuse_dist_env` was set to `True`, leading to memory leaks. This PR ensure freeing the engine in the tests and enables `reuse_dist_env`. Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * Explictly set device when reusing dist env (#6696) A rank of a process can change when reusing the environment. This PR explicitly sets the device when reusing the environment. * Update URL in README Pipeline Status for Huawei Ascend NPU (#6706) * Pin transformers to 4.45.2 in nv-ds-chat workflow (#6710) This commit causes breaking changes we need to fix, for now we will pin the version but we will fix shortly https://github.com/huggingface/transformers/pull/33325 * [Bug Fix] Support threads_per_head < 64 for wavefront size of 64 (#6622) When launching apply_rotary_pos_half kernel, only threads_per_head of 64 is supported for wavefront size of 64. This change adds support for threads_per_head < 64 such as 4, 8, 16. Fixes the issue introduced in https://github.com/microsoft/DeepSpeed/pull/5402 --------- Signed-off-by: Jagadish Krishnamoorthy Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> Co-authored-by: Logan Adams * Use one param coordinator for both train/inference scenarios (#6662) The parameter coordinator in ZeRO3 throws a "backward pass is invalid for module in evaluation mode" error when the training mode is unexpected, as it expects all modules to be in training mode during the backward pass. This is an unnecessarily strict restriction. This PR relaxes the restriction by using a single parameter coordinator (instead of separate ones for training and evaluation modes) and resetting the prefetch state before starting a forward pass. Use of `is_compiling` needs to be fixed after #6663 is merged. --------- Co-authored-by: Olatunji Ruwase Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * Update yapf version (#6721) This update is needed to support eventually running on ubuntu-24.04 from GitHub, specifically because the python version is updated to 3.12 and results in the following error: `ModuleNotFoundError: No module named 'lib2to3'` since that package is deprecated. * Update flake8 version (#6722) This PR is useful for updating the flake8 checks we run, but is mostly needed to update flake8 so that it can run on newer versions of python which are included in newer ubuntu-latest versions from GitHub that we update to in #6717 * Switch what versions of python are supported (#5676) Add support for testing compilation with python 3.11/3.12. Also add the dockerfiles used to build those images. --------- Co-authored-by: Michael Wyatt * Update version.txt after 0.15.4 release (#6731) **Auto-generated PR to update version.txt after a DeepSpeed release** Released version - 0.15.4 Author - @loadams Co-authored-by: loadams * Update GH hosted workflows to 24.04 (#6717) `ubuntu-latset` is moving to be 24.04, so we should test updating as well to ensure it doesn't break any of our workflows. * Add COMMITTER file (#6741) Add COMMITTER file * Update AMD apex version (#6739) * Fix Type Name Inconsistency & Typo in cpu_adam (#6732) There is a typing error & inconsistency in cpu-adam code, while not affecting functionality, impacts code readability. Specifically, the type name `ds_params_percision_t` contains a typo ('percision'), whereas the related type name `ds_state_precision_t` is spelled correctly. I think it is beneficial to fix this typo&inconsistency to improve code readability, maintainability and further development. I have tested the corrected version of cpu_adam, and it compiles and runs successfully. Compilation Log: image Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> Co-authored-by: Olatunji Ruwase * Add Domino code (#6733) add domino code Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * Add data type check for bf16 (#6742) Add data type check for bf16 to fix #6723 * add zero3 ```module_granularity_threshold ``` to zero optimization. (#6649) This PR adds Z3 coalesced fetch to zero optimization. Currently, some logic can be reused, but it's difficult to realize that as optimization choice(I only discovered these logic when trying to implement it). The benefit of this approach is reducing host overhead(reduce many hooks) and during the process of recursive fetching parameters (especially in fine-grained models, such as those with a large number of moe experts). This is particularly helpful for host-sensitive devices (such as hpu), where it achieved a 40% performance improvement in our customer workloads. FYI @delock @deepcharm --------- Co-authored-by: Ma, Guokai Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> Co-authored-by: Olatunji Ruwase * AIO File Offsets (#6641) Adding the option for a file offset to the read/write functions of AIO & GDS ops. --------- Co-authored-by: jomayeri Co-authored-by: Masahiro Tanaka <81312776+tohtana@users.noreply.github.com> Co-authored-by: Olatunji Ruwase Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * Update path for BingBertSquad from DeepSpeedExamples (#6746) In https://github.com/microsoft/DeepSpeedExamples/pull/245, the DeepSpeedExamples directory structure was refactored, this updates the DeepSpeed examples from those changes. * Sanitize inputs to eval() (#6745) * Adding the governance doc (#6748) Drafted governance doc for the LFAI. Co-authored-by: Minjia Zhang * Add no_sync context manager (#6675) Fix #1902 --------- Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * Gaudi2 Nightly job for daily check (#6753) Co-authored-by: Logan Adams * Disable failing python tests (#6758) * A faster and more memory-efficient implementation of `zero_to_fp32` (#6658) It is a faster and more memory-efficient implementation of `zero_to_fp32`. The previous version double the memory usage, which cause cpu OOM for very large models (e.g. llama 405B). https://github.com/microsoft/DeepSpeed/blob/b647fb2470f8f6fefe5cab0ea84a2d89696eb898/deepspeed/utils/zero_to_fp32.py#L438-L441 ## How does it work? 1. **Lazy loading**: Load checkpoint with `mmap=True`, thus the weights are mmaped rather than loading all the storages into memory. 2. **Lazy merge**: `GatheredTensor` contains the mmaped weights and tensor offset. It is a memory-efficient pseudo tensor. Only when `tensor.contiguous()` is called, it starts to load related weights to memory and merge into a single tensor. 3. **Release memory in time**: Save checkpoints shard by shard, and release the memory once a shard is saved. Throughout the process, only one shard of tensors are keeped in memory. ## How much benefit in speed and memory ? Experiments were conducted on a linux host with 1TB of memory. Here is a detailed comparision | | world size | peak memory(GB) | elapsed time(h:mm:ss) | |----------------------|------------|--------------|--------------------| | llama3-8B(old->new) | 8 | 90 -> 41 | 0:02:17 -> 0:01:10 | | llama2-13B(old->new) | 8 | 146 -> 54 | 0:02:30 -> 0:01:47 | | llama2-70B(old->new) | 16 | 789 -> 159 | 0:20:47 -> 0:20:45 | | qwen1.5-110B(old->new) | 32 | OOM -> 217 | ? -> 0:34:21 | | llama3-405B(old->new) | 192 | OOM -> 262 | ? -> 2:09:59 | You can reproduce with the following scripts ```sh # 1. install requirments apt-get install time # 2. prepare zero-3 checkpoints # 3. convert zero to fp32 checkpoints /usr/bin/time -v python zero_to_fp32.py . output_dir/ --safe_serialization ``` - **memory**: Theoretically, this PR reduces the memory cost from `2M` to `(1/n)M`, where `M` is the memory cost of the full weights, `n` is num_shards. - **speed**: The speed gain mainly comes from avoiding extra tensor copying. The benifit may be slight. ## Impl history - [v1](https://github.com/xu-song/DeepSpeed/commit/19712a1c75bfc1da4a7f3ecca6915a86af671568#diff-6a2ca3427fa608c387b7351359f98cfc1313be6e960cee86344ff246bf1b8326R441-R447) : a hf_hub compatible approach. It has been discarded due to the controversial implementation of `data_ptr().` - [v2](https://github.com/microsoft/DeepSpeed/pull/6658/files): a simple approach with `torch.empty` --------- Co-authored-by: Olatunji Ruwase Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * Pin transformers version to work around latest torch requirements (#6759) Latest transformers seems to break our tests that aren't on torch latest (>= 2.5). Issue opened here: https://github.com/huggingface/transformers/issues/34795. This pins our version so these tests can pass in the meantime. * make xpu ops compatible with oneapi 2025.0 (#6760) Compatibility update for xpu ops This PR introduces changes that will make xpu ops compatible with the OneAPI 2025.0 toolkit. This is an important update that will allow us to develop and ship our most demanding models on this innovative hardware. --------- Signed-off-by: baodii Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> Co-authored-by: Logan Adams * Add explicit parameters for torch.load (#6751) Successor PR to #6094: > FutureWarning: You are using torch.load with weights_only=False (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for weights_only will be flipped to True. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via torch.serialization.add_safe_globals. We recommend you start setting weights_only=True for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature. Todo: - [ ] Update values in non-test files to True where necessary. * Fix setup.py bash cmd generation to correctly extract git info (#6762) Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * Use `json_schema_extra` instead of extra keyword in `Field` (#6764) > Using extra keyword arguments on `Field` is deprecated and will be removed. Use `json_schema_extra` instead. (Extra keys: 'new_param'). Deprecated in Pydantic V2.0 to be removed in V3.0. See Pydantic V2 Migration Guide at https://errors.pydantic.dev/2.9/migration/ Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * Enable torch compile on _allgather_params (#6769) * Previosuly ZerO3 was crashing when trying to compile _allgather_params * Disabling grad solves the issue * Removes unnecessary cloning (#6761) `clone_tensors_for_torch_save()` function: When the `item.device` is different from `device` input, `tensor.clone()` is not actually required because `to()` function also clones the original tensor. +) I observed memory bloat under following conditions: * Training a Whisper model w/ `transformers` framework with `ZeRO-0` and `ZeRO-1` configuration. * Memory bloating can be observed every time the model state_dict is cloned using `clone_tensors_for_torch_save()` After I removed the unnecessary `clone()`, seems like the problem is solved. Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> Co-authored-by: Olatunji Ruwase * Fix potential memory issues when use deepspeed Z3 (#6726) I had OOM problem when doing DPO training using zero3. It needs to call module twice in one training step, and second call is with no_grad(). The problem is caused by two bugs: 1. "__n_available_params", which helps to control fetched parameters, becomes negative after release_and_reset_all() function. 2. module.ds_grads_remaining becomes negative in backward() if we call module more than once in one training step. I tried to create two patches to fix these issues. --------- Signed-off-by: Wenbin Chen Co-authored-by: Olatunji Ruwase Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> Co-authored-by: Hongwei Chen <33092912+hwchen2017@users.noreply.github.com> * Unpin with latest transformers fixes (#6763) Reverts #6759 Requires from transformers: https://github.com/huggingface/transformers/pull/34816 https://github.com/huggingface/transformers/pull/34800 Todo: - [x] Need to merge first PR to get support for torch 2.4 * docs: fix HF links (#6780) The current link https://huggingface.co/docs/transformers/main_classes/deepspeed is very unhelpful. It turns out in the past it had some guides: https://huggingface.co/docs/transformers/v4.27.1/main_classes/deepspeed#shared-configuration Later it's refreshed and moved to https://huggingface.co/docs/transformers/deepspeed * Fix Doc Error: ZeRO Stage 2 gradient partitioning (#6775) Fix the issue described in https://github.com/microsoft/DeepSpeed/issues/6707 * Cleanup code docs warnings (#6783) We have a number of warnings in our readthedocs sphinx/autodoc .rst files, so this cleans some of those up so we can fix real issues there. * Domino Blog (#6776) This PR is domino blog on our public side. cc @tjruwase --------- Co-authored-by: Olatunji Ruwase Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * Update version.txt before release (#6784) * Revert release workflow (#6785) * Update version.txt after 0.16.0 release (#6786) **Auto-generated PR to update version.txt after a DeepSpeed release** Released version - 0.16.0 Author - @loadams Co-authored-by: loadams * Domino news update on readme.md (#6815) * Fix zero checkpoint (#6792) Fix #6791 --------- Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * Update python version but now we need to include setuptools on our own (#6787) TODO: - [x] determine if this means we should technically add setuptools to the requirements.txt * Adding the new feature of FPDT (#6462) [FPDT](https://arxiv.org/abs/2408.16978) can only be used with [this version](https://github.com/microsoft/Megatron-DeepSpeed/pull/441) of Megatron-DeepSpeed. --------- Co-authored-by: Jinghan Yao Co-authored-by: Sam Ade Jacobs Co-authored-by: Jinghan Yao Co-authored-by: Logan Adams Co-authored-by: Olatunji Ruwase Co-authored-by: Jinghan Yao Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> Co-authored-by: Masahiro Tanaka <81312776+tohtana@users.noreply.github.com> Co-authored-by: Masahiro Tanaka * Pin transformers to avoid errors with latest version (#6820) * Ulyssess offload blog (#6814) Ulysses-Offload (FPDT) blog, please see corresponding tutorial page at [link](https://github.com/microsoft/DeepSpeed/pull/6813). --------- Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> Co-authored-by: Logan Adams * add FPDT tutorial (#6813) Tutorial page for Ulysses-Offload (FPDT), blog page to follow. --------- Co-authored-by: Jinghan Yao Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> Co-authored-by: Logan Adams * Update README.md (#6824) Fix broken tutorial link * Update README.md (#6825) Add Ulysses-offload to News page Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * Pin transformers version in cpu-torch-latest due to multiprocessing error. (#6823) This is a copy of https://github.com/microsoft/DeepSpeed/pull/6820 for the cpu-torch-latest tests. This PR will revert/fix these: https://github.com/microsoft/DeepSpeed/pull/6822 * Update pre-commit version (#6821) * Update version.txt after 0.16.1 release (#6826) **Auto-generated PR to update version.txt after a DeepSpeed release** Released version - 0.16.1 Author - @loadams Co-authored-by: loadams * Pin HPU tests (#6831) HPU tests are impacted by the same issue as other tests that use transformers latest. This PR pins to a version of transformers before the fix. * Flops profiler support einops.einsum (#6755) - Added support for FlopsProfiler to include einops.einsum operation - Added _patch_miscellaneous_operations() and _reload_miscellaneous_operations() to include this operation and potentially include other miscellaneous operations in the future - Added _einops_einsum_flops_compute() that mimic already-existed _einsum_flops_compute() --------- Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * Pin pytest-subtests version for accelerate tests (#6842) * Inference UTs check for trition support from accelerator (#6782) Instead of checking if installed or not check for support. Skip if not supported. Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * Unpin pytest-subtests now that 0.14.1 is released (#6844) The issue we encountered was covered here: https://github.com/pytest-dev/pytest-subtests/issues/173 And is resolved with the latest changes from this PR: https://github.com/pytest-dev/pytest-subtests/issues/174, and is published in the latest version 0.14.1. * Merge LoCo with Zero++ (#6730) ### Integration of LoCo Method into ZeRO++ #### Overview This PR introduces the integration of the **LoCo** method, as outlined in [this paper](https://arxiv.org/abs/2407.04480), into the ZeRO++ framework of DeepSpeed. The key enhancement involves applying error feedback compensation to 4-bit gradients before communication. This approach ***improves pre-training loss outcomes without additional time overhead***, though it requires extra GPU memory. The extent of this memory increase depends on model size and training configuration. #### Experimental Results We conducted pre-training experiments using the Llama2 architecture, adjusting the number of layers and hidden size. The experiments included: - **A smaller-scale model with 0.8B parameters trained on 30B tokens**. - **A larger-scale model with 8B parameters trained on 5B tokens**. The training data was sampled from **Redpajama-V2**.

**Findings**: - **Smaller Models (0.8B parameters)**: Significant gains were observed when applying the LoCo method. - **Larger Models (8B parameters)**: The gains were present but less pronounced. This could be due to: 1. Relatively smaller data volume. 2. Lower pre-training loss for larger models, making significant improvements harder to achieve. However, even a smaller pre-training loss gap in larger models can translate to meaningful gains in downstream tasks. #### Example Script For reference, the [run.sh](https://github.com/user-attachments/files/17679552/zeroplus-7b3.zip) script used for the 8B parameter, 5B tokens experiment is attached. The experiment was conducted using the **DeepSpeed-Megatron** platform. #### Acknowledgments Special thanks to cc @GuanhuaWang for ongoing communication and guidance throughout this work. --- We appreciate your consideration of this PR and welcome any feedback or questions! --------- Co-authored-by: ChuanxinTang Co-authored-by: root Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> Co-authored-by: Logan Adams Co-authored-by: Hongwei Chen <33092912+hwchen2017@users.noreply.github.com> * Fix type error in `ZeROOrderedDict` (#6794) As @keskival pointed in https://github.com/microsoft/DeepSpeed/commit/3d5cf739ead7c78f518a518ccaa15a323bd5c8da#r149582004, I've confirmed there's a type error, which this PR fixes. I didn't run into this because our internal version still use `*r2`. Co-authored-by: Tero Keski-Valkama Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * Fix uneven head sequence parallelism bug (#6774) (#6797) Here `gather_idx < 2` represents `is_first_all2all`. During the first all2all, `uneven_head_all2all` will be called if either `num_heads % seq_world_size != 0` or `get_num_kv_heads() is None`. During the second all2all, it'll return return `uneven_head_all2all` if and only if `get_num_kv_heads() is None` which is always set during the first uneven all2all. This means that there will no longer be issue where `uneven_head_all2all ` is returned for the second all2all because of `num_heads % seq_world_size != 0`. Fixes: #6774 --------- Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * Fix nv-torch-nightly test by pinning transformers (#6849) * Remove broken links to non-active site (#6854) The site referenced in various places on the README is no longer active: https://deepspeed4science.ai ![image](https://github.com/user-attachments/assets/8ec47313-2abf-40d6-b1f8-9a9234c15e2f) Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * Avoid poisoning process with CUDA calls as soon as importing (#6810) Call `torch.cuda.device_count() > 0` before `torch.cuda.is_available()`, to give priority to nvml based availability, so that we can try not to poison process with CUDA calls as soon as we execute `import deepspeed`. https://github.com/pytorch/pytorch/blob/v2.5.1/torch/cuda/__init__.py#L120-L124 There are 2 reasons to make this change: Firstly, if we accidentally import deepspeed, since the CUDA runtime initializes when the first CUDA API call is made and caches the device list, changing the CUDA_VISIBLE_DEVICES within the same process after initialization won't have any effect on the visible devices. The specific case: https://github.com/OpenRLHF/OpenRLHF/pull/524#issuecomment-2501505023 A demo for reproduction before the fix is applied: ```python import torch import os os.environ["CUDA_VISIBLE_DEVICES"] = "" import deepspeed os.environ["CUDA_VISIBLE_DEVICES"] = "0,1,2,3" torch.cuda.set_device('cuda:0') ``` Secondly, https://pytorch.org/docs/stable/notes/cuda.html When assessing the availability of CUDA in a given environment (is_available()), PyTorch’s default behavior is to call the CUDA Runtime API method cudaGetDeviceCount. Because this call in turn initializes the CUDA Driver API (via cuInit) if it is not already initialized, subsequent forks of a process that has run is_available() will fail with a CUDA initialization error. Signed-off-by: Hollow Man Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * Fix xpu tests workflow failure by changing pip index url (#6864) Update xpu-max1100.yml and xpu-compile.yml * Domino updates (#6861) Updating our website for Domino --------- Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * add domino navigation (#6866) add domino item into navigation list * Update TSC (#6867) * Remove warnings from autodoc and sphinx (#6788) Co-authored-by: Olatunji Ruwase * Update real_accelerator.py (#6845) ### Comment out or delete `accelerate_name="cpu"` when `xpu` is not detected. When `xpu `is not detected it just pass at lines from 68 to 74 if `DS_ACCELERATOR` is set. However, `cpu` is assigned to `accelerate_name` if it cannot import `intel_extension_for_pytorch` or find` xpu`, namely, at line from 125 to 133 when`DS_ACCELERATOR` is not set. I found this problem yesterday and spent whole afternoon figuring it out. I got `intel_extension_for_pytorch `installed with other package which I do not use actually and have no idea about this. Then I found that it `cpu` is assigned to accelerate_name directly if it cannot find `xpu` and it affects `cuda` detection. In fact, `cpu` will be assigned finally if `cuda` is even not detected at line from 170 to 177. --------- Co-authored-by: Olatunji Ruwase Co-authored-by: Logan Adams Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * Fix assertion for offloading states (#6855) This PR fixes the assertions in `offload_states` method mentioned in #6833. Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * Remove pin from transformers version and fix Processing/Threading issues in tests (#6822) Changes from https://github.com/huggingface/transformers/pull/34966 caused the `nv-torch-latest-v100` tests to fail with the following error: ``` File "/tmp/azureml/cr/j/e4bfd57a509846d6bbc4914639ad248d/exe/wd/actions-runner/_work/DeepSpeed/DeepSpeed/unit-test-venv/lib/python3.10/site-packages/transformers/modeling_utils.py", line 3941, in from_pretrained raise EnvironmentError( OSError: Can't load the model for 'hf-internal-testing/tiny-random-VisionEncoderDecoderModel-vit-gpt2'. If you were trying to load it from 'https://huggingface.co/models', make sure you don't have a local directory with the same name. Otherwise, make sure 'hf-internal-testing/tiny-random-VisionEncoderDecoderModel-vit-gpt2' is the correct path to a directory containing a file named pytorch_model.bin, tf_model.h5, model.ckpt or flax_model.msgpack. ``` Sample failure here: https://github.com/microsoft/DeepSpeed/actions/runs/12169422174/job/33942348835?pr=6794#step:8:3506 This was resolved on the Transformers side here: https://github.com/huggingface/transformers/pull/35236 * Add MLP/lm_head tp grain size setting. (#6828) This PR aims to add MLP/lm_head tp size granularity setting to deepspeed.init_inference() API. It will be more flexible to set the MLP/lm_head sharding grain size. DNN library favors tensor size in granularity of power of 2, we pick 64 as a default size. We aim to be able to set the MLP/lm_head tp grain size flexibly. This is a preliminary solution. If there is a better solution, we can discuss it together. Thanks~ --------- Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> Co-authored-by: Olatunji Ruwase * Fix --enable_each_rank_log when used with PDSH multi-node runner (#6863) This PR addresses fixes https://github.com/microsoft/DeepSpeed/issues/6859 by threading this argument into the deepspeed launcher command build by PDSHRunner. --------- Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * Update transformers ops unit tests to use `requried_torch_version` (#6884) * Don't error out when cpu accelerator doesn't have torch (as default for whl building) (#6886) This fixes a bug introduced in #6845, which breaks the `no-torch` workflow that we require in order to do releases where we do not require torch to be in the environment when building an sdist. This adds the same logic to the cpuaccelerator that the cudaaccelerator had where we don't require torch to be installed to build the whl. * Add arctic model support by adding w2 to all_reduce (#6856) As title says. Default behavior of arctic model produces shape issues with AutoTP due to the MLP layer performing `w2 * act(w1*w3)`. However, method provided to fix Mixtral-7x8b in #5257 does not work since the MLP for Arctic is also used within a ModuleList for the MoE. This results in MLP weights hiding behind individual experts as layers `#.w#`, which is not caught by the fix in #5257. This adds the check directly within replace, where it can check for actual layer names for the `w2` key in the model to patch with `all_reduce`. --------- Signed-off-by: Daniel Huang Co-authored-by: Olatunji Ruwase Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * Update code owners (#6890) Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * Update version.txt after 0.16.2 release (#6893) **Auto-generated PR to update version.txt after a DeepSpeed release** Released version - 0.16.2 Author - @loadams Co-authored-by: loadams * Allow to compile collective for PT>2.3 (#6899) Allow to compile collective for PT>2.3 commit re-uploaded due to github CI issue originally uploaded by @nelyahu * Zero2: avoid graph breaks in torch.compile by using param_idx (#6803) inside reduce_independent_p_g_buckets_and_remove_grads and in reduce_ipg_grads which are being executed during the BWD hook in zero2, the model param is being stored inside params_in_ipg_bucket. torch.compile has hard time tracing parameters. By using the param's static index inside the group the same logic can be maintain with less complexity. --------- Co-authored-by: Olatunji Ruwase Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> Co-authored-by: Logan Adams * hpu_accelerator: use torch.use_deterministic_algorithms (#6897) formal API instead of hpu.setDeterministic * Fix error caused by all_reduce call in domino (#6880) Fix #6851 Initialize communication backend to fix error caused by all_reduce call in the Domino transformer layer. Verified correctness in local test. --------- Co-authored-by: Olatunji Ruwase Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * Update Gaudi2 jobs to latest 1.19 build (#6905) Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * Change compile for pipeline module torch.compile (#6478) We have encountered and issue with torch.compile and the pipeline module. modifying a member of the module (micro_offset) during the forward function will cause torch compile to restart the analysis and treat the module as dynamic. In order to bypass this issue without significantly changing the way the pipeline module works we propose to compile only the layers in the pipeline module instead of the forward function of pipeline module. this will bypass the issue and should still give most of the benefit of torch compiling the pipeline module while avoiding the issue. --------- Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * Stage3: Use new torch grad accumulation hooks API (#6773) * This commit addresses a Deepspeed issue [#6718](https://github.com/microsoft/DeepSpeed/issues/6718) * The existing code has been using the grad_acc node hook to reduce params grads. The constructs such as `param.data = replicated_tensor.data` used in `allgather_params(..)` are compiled into `param.set()` causing the hook assigned to the grad_acc node not being called. * Starting from PyTorch 2.1 there is a new and robust hook API on a param itself: `param.register_post_accumulate_grad_hook(..)` * This commit will make use of the proper API depending on the PyTorch version * It will also disable compile for PyTorch versions < 2.1 --------- Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> Co-authored-by: Masahiro Tanaka <81312776+tohtana@users.noreply.github.com> * Cleanup ops/transformer/inference tests (#6830) * Fix `checkpointable_layers` Logic (#6881) **Problem** There's an edge-case in DeepSpeed, where if all three of the following are true: 1. Deepspeed activation checkpointing is applied 2. The user passes `checkpointable_layers` (e.g. https://github.com/EleutherAI/gpt-neox/blob/f5325805678c2b9e35aae4528283e0132c5f5bbc/megatron/model/gpt2_model.py#L175) 3. The user's model class contains `GPT2ModelPipe` or GPTModelPipe` Then the `checkpointable_layers` will not be activation checkpointed. **Reason** This is because in the current logic, `_is_checkpointable` will short-circuit to just return layers matching `ParallelTransformerLayerPipe` in the case of `self.__class__.__name__ in ('GPTModelPipe', 'GPT2ModelPipe')`. See https://github.com/microsoft/DeepSpeed/blob/da771ed42e41a44d5047813ca4672f1cfe9d1731/deepspeed/runtime/pipe/module.py#L653 **Proposed Fixes** I think that `checkpointable_layers` should always be checked for, and added logic to this effect. I also found the documentation for `checkpointable_layers` confusing and contradictory, so I updated the docstring. Lastly, I added a unit test for `checkpointable_layers`. --------- Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * [BUG FIX]:fix get torch.version.cuda error when cuda is None in rocm (#6909) HI, I found some error when using deepspeed with rocm-torch ``` torch_cuda_version = ".".join(torch.version.cuda.split('.')[:2]) ``` will raise an AttributeError when torch.version.cuda is None. This occurs because the CUDA version in rocm-torch/version.py is set to always be None, leading to potential runtime errors in environments where ROCm is being used. --------- Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * Add fp8_gemm fallback for non-triton systems (#6916) - Removed try/except from __init__ file in fp_quantizer and added a single entry point instead - Renamed file fp8_gemm to fp8_gemm_triton, and the function matmul_fp8 to matmul_fp8_triton - Added a new entry point fp8_gemm with matmul_fp8 inside, and if the system supports triton it calls the triton implementation and if not it calls the fallback Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * Reduce the device bubble introduced by heavy loop synchronization in coalesced fetch/release(z3_leaf_module) (#6694) depend on https://github.com/microsoft/DeepSpeed/pull/6649 When performing fetch/release operations on Z3 leaf modules, the loop time is excessively long in fine-grained module. Compared to non-leaf modules, Z3 leaf modules may include a larger number of parameters. Although each loop unit does not consume much time, the overall loop length can be significant. ![image](https://github.com/user-attachments/assets/9891835a-2620-47f3-aba6-ea22b8905d1c) **The fetch time is impacted by:** Post-allgather operations (narrow, slice ,cat, difficult to avoid) Memory pressure(record_stream/fetch event create&sync) **The release time is impacted by:** slice Free parameter record_stream Considering the fine-grained leaf modules, where each parameter is relatively small, we can treat the parameters within each leaf module as a unified entity to handle memory pressure. This approach can approximately halve the CPU time required for fetch/release operations. --------- Co-authored-by: Ma, Guokai Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> Co-authored-by: Olatunji Ruwase * Cleanup ops/transformer/inference tests (#6925) * Check transformers version in BLOOM for inference v1 (#6766) This PR checks that the `transformers` version is `<= 4.43.4` in the BLOOM container for inference v1, due to breaking changes in `transformers > 4.43.4`. --------- Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * inference: remove unused _validate_args function (#5505) Co-authored-by: Olatunji Ruwase Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * Use `torch.log1p` (#6930) This function provides greater precision than `log(1 + x)` for small values of `x`. Found with TorchFix https://github.com/pytorch-labs/torchfix/ * Update python version classifiers (#6933) Update python version classifiers in setup.py to reflect python versions currently supported. * Fix building on Windows with presence of Triton (#6749) This fixes some errors when installing DeepSpeed on Windows with the presence of Triton. I guess we can assume we don't need the warning about NFS on Windows for now. I did not try how to detect NFS path on Windows, but we can detect UNC path starting with `\\` if needed. `os.rename` does not allow overwriting the file on Windows, and `os.replace` is more cross-platform. Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * Fix windows blog examples (#6934) * Add deepseek autotp (#6937) Deepseek including Multi-Head Latent Attention(MLA) and MoE. For MLA TP, we need to skip two low-rank layers("q_a_proj" and "kv_a_proj_with_mqa) For Deepseek MoE, tp_parse gets this moe layer name is layer_idx.down_proj, it is hard to add the policy, so we set the down_proj layer to all_reduce_linears default. * Add position_ids arg to OPTEmbedding forward function (#6939) This PR updates the DeepSpeed `OPTEmbedding` forward function to include a new `positions_ids` argument. --------- Co-authored-by: Logan Adams * Add information on security expectations with this software (#6941) Inspired by the link vllm [includes](https://github.com/vllm-project/vllm/blob/main/SECURITY.md), this starts to give users insight into the security expectations they should have from using DeepSpeed. * Support pure meta model lm_head tp (#6812) Add lm_head tp support when checkpoint not provided to deepspeed.init_inference(). --------- Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> Co-authored-by: Ma, Guokai * Remove op compilation flags due to perf issue (#6944) in some scenarios some of the optimization flags for the ops compiler for HPU can cause a significant performance degradation. remove the flags until the issue is resolved * Pin nv-a6000 workflow (#6938) Breaking change in transformers is https://github.com/huggingface/transformers/pull/35235. Need to make changes to unpin nv-a6000 workflow. * [inf] Add config var to enable keeping module on host (#6846) Using keep_module_on_host config var will let us control if the loaded checkpoints to model parameters will be moved to the device or stay on host --------- Co-authored-by: Olatunji Ruwase Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * `warn` to `warning` (#6952) `warn` is deprecated, see https://docs.python.org/3/library/logging.html#logging.Logger.warning ```DeprecationWarning: The 'warn' method is deprecated, use 'warning' instead``` * Add extra_repr to Linear classes for debugging purpose (#6954) **Summary** This PR adds `extra_repr` method to some Linear classes so that additional info is printed when printing such modules. It is useful for debugging. Affected modules: - LinearLayer - LinearAllreduce - LmHeadLinearAllreduce The `extra_repr` method gives the following info: - in_features - out_features - bias (true or false) - dtype **Example** Print llama-2-7b model on rank 0 after `init_inference` with world size = 2. Previously we only got class names of these modules: ``` InferenceEngine( (module): LlamaForCausalLM( (model): LlamaModel( (embed_tokens): Embedding(32000, 4096) (layers): ModuleList( (0-31): 32 x LlamaDecoderLayer( (self_attn): LlamaSdpaAttention( (q_proj): LinearLayer() (k_proj): LinearLayer() (v_proj): LinearLayer() (o_proj): LinearAllreduce() (rotary_emb): LlamaRotaryEmbedding() ) (mlp): LlamaMLP( (gate_proj): LinearLayer() (up_proj): LinearLayer() (down_proj): LinearAllreduce() (act_fn): SiLU() ) (input_layernorm): LlamaRMSNorm((4096,), eps=1e-05) (post_attention_layernorm): LlamaRMSNorm((4096,), eps=1e-05) ) ) (norm): LlamaRMSNorm((4096,), eps=1e-05) (rotary_emb): LlamaRotaryEmbedding() ) (lm_head): LmHeadLinearAllreduce() ) ) ``` Now we get more useful info: ``` InferenceEngine( (module): LlamaForCausalLM( (model): LlamaModel( (embed_tokens): Embedding(32000, 4096) (layers): ModuleList( (0-31): 32 x LlamaDecoderLayer( (self_attn): LlamaSdpaAttention( (q_proj): LinearLayer(in_features=4096, out_features=2048, bias=False, dtype=torch.bfloat16) (k_proj): LinearLayer(in_features=4096, out_features=2048, bias=False, dtype=torch.bfloat16) (v_proj): LinearLayer(in_features=4096, out_features=2048, bias=False, dtype=torch.bfloat16) (o_proj): LinearAllreduce(in_features=2048, out_features=4096, bias=False, dtype=torch.bfloat16) (rotary_emb): LlamaRotaryEmbedding() ) (mlp): LlamaMLP( (gate_proj): LinearLayer(in_features=4096, out_features=5504, bias=False, dtype=torch.bfloat16) (up_proj): LinearLayer(in_features=4096, out_features=5504, bias=False, dtype=torch.bfloat16) (down_proj): LinearAllreduce(in_features=5504, out_features=4096, bias=False, dtype=torch.bfloat16) (act_fn): SiLU() ) (input_layernorm): LlamaRMSNorm((4096,), eps=1e-05) (post_attention_layernorm): LlamaRMSNorm((4096,), eps=1e-05) ) ) (norm): LlamaRMSNorm((4096,), eps=1e-05) (rotary_emb): LlamaRotaryEmbedding() ) (lm_head): LmHeadLinearAllreduce(in_features=2048, out_features=32000, bias=False, dtype=torch.bfloat16) ) ) ``` * Update import for torchvision.transformers (#6958) Fixes import - found via [torchfix](https://github.com/pytorch-labs/torchfix). * Remove Duplicate Declaration of pandas in `Dockerfile` (#6959) ### Description This pull request removes the redundant installation of `pandas` from the `Dockerfile`. It was previously declared twice, and this update eliminates the duplicate entry, improving the clarity and maintainability of the `Dockerfile`. https://github.com/microsoft/DeepSpeed/blob/018ece5af2d89a11a4a235f81f94496c78b4f990/docker/Dockerfile#L124 https://github.com/microsoft/DeepSpeed/blob/018ece5af2d89a11a4a235f81f94496c78b4f990/docker/Dockerfile#L135 ### Changes Removed the duplicate pandas installation line from the `RUN pip install` command. * Add the missing view operations from sequence parallel(async). (#6750) FYI @loadams a view operation was missing in some updates compared to the original version https://github.com/microsoft/DeepSpeed/blob/17ed7c77c58611a923a6c8d2a3d21d359cd046e8/deepspeed/sequence/layer.py#L56 add missing view operation. The shape required for the view cannot be easily obtained in the current function, so refactor layout params code. --------- Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> Co-authored-by: Masahiro Tanaka <81312776+tohtana@users.noreply.github.com> * Update `torch.norm` to `torch.linalg.norm` and `torch.linalg.vector_norm` (#6931) - [x] Update PR since `torch.norm` and `torch.linalg.norm` have [different function signatures](https://pytorch.org/docs/stable/generated/torch.linalg.norm.html#torch.linalg.norm). - [x] Check if there are any numeric differences between the functions. - [x] Determine why there appear to be performance differences from others [here](https://github.com/pytorch/pytorch/issues/136360). - [x] Update to `torch.linalg.vectornorm` Follow up PR handles these in the comm folder: #6960 * Using explicit GPU upcast for ZeRO-Offload (#6962) Following discussion in [PR-6670](https://github.com/microsoft/DeepSpeed/pull/6670), the explict upcast is much more efficient than implicit upcast, this PR is to replace implicit upcast with explict one. The results on 3B model are shown below: | Option | BWD (ms) | Speed up | |------------|-----|------| | Before PR-6670 | 25603.30 | 1x | | After PR-6670 | 1174.31 | 21.8X | | After this PR| 309.2 | 82.8X | * Update version.txt after 0.16.3 release (#6965) **Auto-generated PR to update version.txt after a DeepSpeed release** Released version - 0.16.3 Author - @loadams Co-authored-by: loadams * Precisely track nvme optimizer offload (#6963) Fix #4998 * Update build_win.bat script to exclue GDS op as it lacks Windows support. (#6971) Nvidia GDS [does not support Windows](https://developer.nvidia.com/gpudirect-storage). * Add CUDA 12.8 support and comment on CUDA 12.7 (#6975) * Update torch versions to support 2.6 (#6977) * generalize deepspeed linear and implement it for non cuda systems (#6932) Co-authored-by: Olatunji Ruwase Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * Update recommended Windows whl building versions (#6983) * Title: Fix setup_env_ranks to Properly Set Environment Variables Instead of Raising Error (#6979) This pull request addresses an issue in setup_env_ranks where, under certain conditions, the function raises an error instead of setting the necessary MPI-related environment variables (LOCAL_RANK, RANK, and WORLD_SIZE). The intended behavior is to properly map Open MPI variables (OMPI_COMM_WORLD_*) to the variables expected by DeepSpeed/PyTorch, but the code currently raises an EnvironmentError if these Open MPI variables are not found. With this fix, setup_env_ranks will: - Correctly detect and map the required Open MPI environment variables. - Only raise an error if there is genuinely no valid way to obtain rank information from the environment (e.g., both Open MPI variables and any fallback mechanism are unavailable). Fix #6895 Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> Co-authored-by: Olatunji Ruwase * Specify torchvision in nv-ds-chat workflow (prevents errors with torch 2.6) (#6982) Fixes #6984. The workflow was pulling the updated torch 2.6, which caused CI failures. This keeps us on torch 2.5 for now, since installing torchvision as a dependency later on was pulling torch 2.6 with it which was unintended. This PR also unsets NCCL_DEBUG to avoid a large print out in the case of any errors. * Remove assumption that padding only occurs on last rank (#6974) As discussed in [PR-6918](https://github.com/microsoft/DeepSpeed/pull/6918), padding can occur on multiple ranks with large DP degrees. For example, with: - Flattened tensor size: 266240 - DP degree: 768 - Alignment: 1536 - Required padding: 1024 (1536 * 174 - 266240) - Per-rank partition size: 348 (1536 * 174 / 768) - The padding occurs on last three ranks. This PR removes the single-rank padding assumption for more general cases. --------- Co-authored-by: Sam Foreman Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> Co-authored-by: Olatunji Ruwase * Use ds-specific module id to avoid conflicts (#6847) Fix #6772 --------- Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * Update A6000 workflows to use newer docker container - 24.09 vs 24.03 (#6967) - Issues with nv-sd updates, will follow up with a subsequent PR * Allow NVIDIA Blackwell (#6991) NVIDIA Blackwell GPU generation has number 10. The SM code and architecture should be `100`, but the current code generates `1.`, because it expects a 2 characters string. This change modifies the logic to consider it as a string that contains a `.`, hence splits the string and uses the array of strings. Signed-off-by: Fabien Dupont * Update GH org references (#6998) Signed-off-by: Olatunji Ruwase Signed-off-by: Logan Adams Signed-off-by: Fabien Dupont Co-authored-by: Fabien Dupont * Update CNAME * Update CNAME * [XPU] max1100 workflow update for docker and softwares (#7003) 1. update intel oneAPI basekit to 2025.0 2. update torch/ipex/oneccl to 2.5 * autotp training(fix dco) (#7004) Same as [this PR](https://github.com/deepspeedai/DeepSpeed/pull/6922). [affeb88](https://github.com/deepspeedai/DeepSpeed/pull/6922/commits/affeb884576936b3a0efc5ce86435da37db1d87e) I noticed the CI updated the DCO check recently. Using the suggested rebase method for sign-off would reintroduce many conflicts, so I opted for a squash merge with sign-off instead. thanks: ) Signed-off-by: inkcherry * import triton files when triton is supported and installed (#6989) Those files have code that gets run when importing them, so in systems that doesn't support triton but have triton installed this causes issues. In general, I think it is better to import triton when it is installed and supported. Signed-off-by: Omar Elayan * Update A6000 tests transformers version (#7016) Signed-off-by: Logan Adams Co-authored-by: Stas Bekman * Fix ds-chat CI regression (#7015) Fix #7014 Avoid naming collision on `partition()` --------- Signed-off-by: Olatunji Ruwase * [Ulysses tutorial] typos (#7024) Fix typos * fix hostname -I for macOS #6497 (#6990) BUGFIX for Apple Silicon hostname https://github.com/microsoft/DeepSpeed/issues/6497 --------- Signed-off-by: Fabien Dupont Signed-off-by: Olatunji Ruwase Signed-off-by: Logan Adams Signed-off-by: inkcherry Signed-off-by: Roman Fitzjalen Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> Co-authored-by: Fabien Dupont Co-authored-by: Olatunji Ruwase Co-authored-by: Liangliang Ma <1906710196@qq.com> Co-authored-by: inkcherry * Update workflows to cuda 12.4 (#7000) - Update existing workflows that use cu121 to cu124. Note, this means that where we download torch latest, we will now be getting torch 2.6 rather than the torch latest 2.5 provided with cuda 12.1. - Note, nv-nightly is failing in master currently due to unrelated errors, so this could be ignored in this PR (nv-nightly tested locally, where it passes with 12.1 and it also passes with 12.4). --------- Signed-off-by: Fabien Dupont Signed-off-by: Logan Adams Signed-off-by: Olatunji Ruwase Signed-off-by: inkcherry Signed-off-by: Omar Elayan Co-authored-by: Fabien Dupont Co-authored-by: Olatunji Ruwase Co-authored-by: Liangliang Ma <1906710196@qq.com> Co-authored-by: inkcherry Co-authored-by: Omar Elayan <142979319+oelayan7@users.noreply.github.com> * [ROCm] Enable fp_quantizer on ROCm (#7027) This change is required to successfully build fp_quantizer extension on ROCm. --------- Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * add gds chinese blog (#7034) cc @tjruwase @jomayeri --------- Co-authored-by: root * Add chinese blog for deepspeed windows, and fix format (#7035) Fix #7029 - Add Chinese blog for deepspeed windows - Fix format in README.md Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * AIO on ROCM (#7023) Adding compile support for AIO library on AMD GPUs. --------- Co-authored-by: Olatunji Ruwase Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * Control trace cache warnings (#7039) Make trace cache warnings configurable, and disabled by default. Fix #6985, #4081, #5033, #5006, #5662 --------- Signed-off-by: Olatunji Ruwase * Update CUDA compute capability to support Blackwell (#7047) Update CUDA compute capability for cross compile according to wiki page. https://en.wikipedia.org/wiki/CUDA#GPUs_supported --------- Signed-off-by: Hongwei * Update setup.py handling of ROCm cupy (#7051) * nv-ds-chat breaks with latest transformers (#7052) Signed-off-by: Logan Adams * Rename aio_thread_count to intra_op_parallelism (#7056) Propagate API change. Signed-off-by: Olatunji Ruwase * add autoTP training zero2 tests (#7049) - add zero2 test - minor fix with transformer version update & ds master merge. Signed-off-by: inkcherry Co-authored-by: Olatunji Ruwase * Fix, bf16 optimizer remove dup loop (#7054) bf16 with moe refresh optimizer state from bf16 ckpt will raise IndexError: list index out of range Signed-off-by: shaomin Co-authored-by: shaomin Co-authored-by: Hongwei Chen <33092912+hwchen2017@users.noreply.github.com> * Update version.txt after 0.16.4 release (#7063) **Auto-generated PR to update version.txt after a DeepSpeed release** Released version - 0.16.4 Author - @loadams Co-authored-by: loadams * fix an outdated doc wrt CUDA_VISIBLE_DEVICES (#7058) @jeffra and I fixed this many years ago, so bringing this doc to a correct state. --------- Signed-off-by: Stas Bekman * Tecorigin sdaa accelerator (#6903) Description This PR includes Tecorigin SDAA accelerator support. With this PR, DeepSpeed supports SDAA as backend for training tasks. --------- Signed-off-by: siqi Co-authored-by: siqi Co-authored-by: Olatunji Ruwase Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * Handle special case of libuv for Windows (#7064) More information on libuv in pytorch: https://pytorch.org/tutorials/intermediate/TCPStore_libuv_backend.html Issue tracking the prevalence of the error on Windows (unresolved at the time of this PR): https://github.com/pytorch/pytorch/issues/139990 LibUV github: https://github.com/libuv/libuv Windows error: ``` File "C:\hostedtoolcache\windows\Python\3.12.7\x64\Lib\site-packages\torch\distributed\rendezvous.py", line 189, in _create_c10d_store return TCPStore( ^^^^^^^^^ RuntimeError: use_libuv was requested but PyTorch was build without libuv support ``` use_libuv isn't well supported on Windows in pytorch <2.4, so we need to guard around this case. --------- Signed-off-by: Logan Adams * Update README with info on newest accelerator (#7065) Signed-off-by: Logan Adams * Bug Fix for offload_states API (#7050) @fukun07 and I discovered a bug when using the `offload_states` and `reload_states` APIs of the Zero3 optimizer. When using grouped parameters (for example, in weight decay or grouped lr scenarios), the order of the parameters mapping in `reload_states` ([here](https://github.com/deepspeedai/DeepSpeed/blob/14b3cce4aaedac69120d386953e2b4cae8c2cf2c/deepspeed/runtime/zero/stage3.py#L2953)) does not correspond with the initialization of `self.lp_param_buffer` ([here](https://github.com/deepspeedai/DeepSpeed/blob/14b3cce4aaedac69120d386953e2b4cae8c2cf2c/deepspeed/runtime/zero/stage3.py#L731)), which leads to misaligned parameter loading. This issue was overlooked by the corresponding unit tests ([here](https://github.com/deepspeedai/DeepSpeed/blob/master/tests/unit/runtime/zero/test_offload_states.py)), so we fixed the bug in our PR and added the corresponding unit tests. --------- Signed-off-by: Wei Wu Co-authored-by: Masahiro Tanaka <81312776+tohtana@users.noreply.github.com> * Fix TOCTOU issues, switch to fstat (#7067) Signed-off-by: Logan Adams * config torch to avoid graph breaks caused by logger (#6999) Following changes in Pytorch trace rules , my previous PR to avoid graph breaks caused by logger is no longer relevant. So instead I've added this functionality to torch dynamo - https://github.com/pytorch/pytorch/commit/16ea0ddcdbe49f5560bfbbc6ab331c3422e27b2e This commit allows the user to config torch to ignore logger methods and avoid associated graph breaks. To enable ignore logger methods - os.environ["DISABLE_LOGS_WHILE_COMPILING"] = "1" To ignore logger methods except for a specific method / methods (for example, info and isEnabledFor) - os.environ["DISABLE_LOGS_WHILE_COMPILING"] = "1" and os.environ["LOGGER_METHODS_TO_EXCLUDE_FROM_DISABLE"] = "info, isEnabledFor" Signed-off-by: ShellyNR Co-authored-by: snahir * Fix meta load tensor imcompatible issue (#7073) The partition tensor doesn't need to move to the current device when meta load is used. Signed-off-by: Lai, Yejing Co-authored-by: Olatunji Ruwase * Replace calls to `python setup.py sdist` with `python -m build --sdist` (#7069) With future changes coming to pip/python/etc, we need to modify to no longer call `python setup.py ...` and replace it instead: https://packaging.python.org/en/latest/guides/modernize-setup-py-project/#should-setup-py-be-deleted ![image](https://github.com/user-attachments/assets/ea39ef7b-3cbe-4916-86f0-bc46a5fce96d) This means we need to install the build package which is added here as well. Additionally, we pass the `--sdist` flag to only build the sdist rather than the wheel as well here. --------- Signed-off-by: Logan Adams * Revert "Handle special case of libuv for Windows (#7064)" (#7076) This reverts commit 8577bd244903f454e319953a6ae1c3838558ac69. Fixes: #7072 * Add DeepseekV3 AutoTP. (#7045) Add deepseekv3 autotp. Signed-off-by: Lai, Yejing * Improve inference tutorial docs (#7083) Fixes: #7082 --------- Signed-off-by: Logan Adams * Pin transformers version on tests that use latest. (#7085) Latest transformers causes failures when cpu-torch-latest test, so we pin it for now to unblock other PRs. --------- Signed-off-by: Logan Adams * Update README.md with ICS '23 MoE paper link (#7087) Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * Update parallelism for nv-torch-latest/nightly tests due to more GPUs/runner (#7086) Signed-off-by: Logan Adams Co-authored-by: Olatunji Ruwase * Remove workflows for very old torch versions (#7090) These jobs haven't been run in a long time and were originally used when compatibility with torch <2 was more important. Signed-off-by: Logan Adams * Use new dlpack api; Formatting fixes (#7101) Fix CI issues by using new dlpack [api](https://pytorch.org/docs/stable/_modules/torch/utils/dlpack.html#from_dlpack) Minor pre-commit fixes. Signed-off-by: Olatunji Ruwase * Avoid graph breaks by disabling sourceless calls in instrument_w_nvtx (#7081) This PR is a continuation of the efforts to improve Deepspeed performance when using PyTorch compile. The `instrument_w_nvtx` decorator is used to instrument code with NVIDIA Tools Extension (NVTX) markers for profiling and visualizing code execution on GPUs. Along with executing the function itself, `instrument_w_nvtx` makes calls to `nvtx.range_push` and `nvtx.range_pop` which can't be traced by Dynamo. That's why this decorator causes a graph break. The impact on performance can be significant due to numerous uses of the decorator throughout the code. We propose a simple solution: Don't invoke the sourceless functions when torch is compiling. --------- Signed-off-by: Max Kovalenko Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * Avoid graph breaks in torch.compile caused by inner classes in the backward hooks (#7062) This PR is part of the effort to improve Deepspeed performance when using PyTorch compile. There is a known [bug](https://github.com/pytorch/pytorch/issues/128942) in torch.compile which causes a graph break when an inner class is defined within a method that is being compiled. The following would then appear in the log: `[__graph_breaks] torch._dynamo.exc.Unsupported: missing: LOAD_BUILD_CLASS` This is the case with the inner classes `PreBackwardFunctionForModule` and `PostBackwardFunctionModule`. While there is an open PyTorch [PR#133805 ](https://github.com/pytorch/pytorch/pull/133805) for this, we can solve the issue by moving the inner classes into the initialization code. No graph breaks and the corresponding logs are produced anymore. --------- Signed-off-by: Max Kovalenko Signed-off-by: Olatunji Ruwase Signed-off-by: inkcherry Signed-off-by: shaomin Signed-off-by: Stas Bekman Signed-off-by: siqi Signed-off-by: Logan Adams Signed-off-by: Wei Wu Signed-off-by: ShellyNR Signed-off-by: Lai, Yejing Co-authored-by: Olatunji Ruwase Co-authored-by: inkcherry Co-authored-by: wukong1992 Co-authored-by: shaomin Co-authored-by: Hongwei Chen <33092912+hwchen2017@users.noreply.github.com> Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> Co-authored-by: loadams Co-authored-by: Stas Bekman Co-authored-by: siqi654321 Co-authored-by: siqi Co-authored-by: Wei Wu <45323446+U-rara@users.noreply.github.com> Co-authored-by: Masahiro Tanaka <81312776+tohtana@users.noreply.github.com> Co-authored-by: Shelly Nahir <73890534+ShellyNR@users.noreply.github.com> Co-authored-by: snahir Co-authored-by: Yejing-Lai * Only run pre-commit on the changes (#7106) Run pre-commit on all files may change files that are not part of the current branch. The updated script will only run pre-commit on the files that have been changed in the current branch. Signed-off-by: Hongwei * Avoid graph break due to unsupported frozenset (#7105) This PR is a continuation of the efforts to improve Deepspeed performance when using PyTorch compile. The `fetch_sub_module()` routine makes use of the `frozenset` which is problematic because: 1. `iter_params` returns an iterable over model parameters 2. `frozenset` wraps this iterable, making it unmodifiable 3. PyTorch’s compilation process cannot infer how `frozenset` interacts with tensors, leading to a graph break. If we replace the `frozenset` with a modifiable `set`, then there is no longer such graph break. Signed-off-by: Max Kovalenko Co-authored-by: Masahiro Tanaka <81312776+tohtana@users.noreply.github.com> Co-authored-by: Olatunji Ruwase * Fix fused_qkv print model ValueError (#7109) Suppose qkv_linear_weight_shape = [in_features, out_features]. The qkv linear weight shape is [3, in_features, out_features] if using fued_qkv gemm optimization. It will cause "ValueError: too many values to unpack (expected 2)" issue when printing the model. Solution: Take the last two weight dimensions shapes as in_features and out_features. Signed-off-by: Lai, Yejing Co-authored-by: Hongwei Chen <33092912+hwchen2017@users.noreply.github.com> Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> * Update references to new X/Twitter handle (#7110) As a part of joining the Linux Foundation AI&Data it makes sense to rename the X/Twitter accounts associated with DeepSpeed. --------- Signed-off-by: Logan Adams * revert steps_per_print_default change --------- Signed-off-by: roger feng Signed-off-by: Jagadish Krishnamoorthy Signed-off-by: baodii Signed-off-by: Wenbin Chen Signed-off-by: Hollow Man Signed-off-by: Daniel Huang Signed-off-by: Fabien Dupont Signed-off-by: Olatunji Ruwase Signed-off-by: Logan Adams Signed-off-by: inkcherry Signed-off-by: Omar Elayan Signed-off-by: Roman Fitzjalen Signed-off-by: Hongwei Signed-off-by: shaomin Signed-off-by: Stas Bekman Signed-off-by: siqi Signed-off-by: Wei Wu Signed-off-by: ShellyNR Signed-off-by: Lai, Yejing Signed-off-by: Max Kovalenko Co-authored-by: Olatunji Ruwase Co-authored-by: Alex Morehead Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> Co-authored-by: loadams Co-authored-by: Nadav Elyahu <88962733+nelyahu@users.noreply.github.com> Co-authored-by: Jinxing Pan <58251866+terry-for-github@users.noreply.github.com> Co-authored-by: Roger Feng Co-authored-by: Geary.Z <92413813+TideDra@users.noreply.github.com> Co-authored-by: Omar Elayan <142979319+oelayan7@users.noreply.github.com> Co-authored-by: ShifaAbu Co-authored-by: sakell Co-authored-by: Masahiro Tanaka <81312776+tohtana@users.noreply.github.com> Co-authored-by: Ubuntu Co-authored-by: Joe Mayer <114769929+jomayeri@users.noreply.github.com> Co-authored-by: andyG <135115931+Andy666G@users.noreply.github.com> Co-authored-by: Nir Sonnenschein Co-authored-by: Liangliang Ma Co-authored-by: Logan Adams Co-authored-by: Yizhou Wang Co-authored-by: Jagadish Krishnamoorthy Co-authored-by: Yejing-Lai Co-authored-by: Yichen Yan Co-authored-by: Lev Kurilenko <113481193+lekurile@users.noreply.github.com> Co-authored-by: gyou2021 Co-authored-by: jomayeri Co-authored-by: Masahiro Tanaka Co-authored-by: Ma, Guokai Co-authored-by: diskkid Co-authored-by: Xu Song Co-authored-by: Shelly Nahir <73890534+ShellyNR@users.noreply.github.com> Co-authored-by: snahir Co-authored-by: jiahao su Co-authored-by: sjh Co-authored-by: wyooyw Co-authored-by: wangyiou Co-authored-by: Lzhang-hub <57925599+Lzhang-hub@users.noreply.github.com> Co-authored-by: inkcherry Co-authored-by: Raza Sikander Co-authored-by: xuanhua Co-authored-by: Heyang Qin Co-authored-by: Xinyu Lian Co-authored-by: Michael Wyatt Co-authored-by: Chengming Zhang Co-authored-by: Hongwei Chen <33092912+hwchen2017@users.noreply.github.com> Co-authored-by: jomayeri Co-authored-by: Minjia Zhang Co-authored-by: Minjia Zhang Co-authored-by: Xu Song Co-authored-by: baodi Co-authored-by: Quentin Gallouédec <45557362+qgallouedec@users.noreply.github.com> Co-authored-by: Max Kovalenko Co-authored-by: Hyeonseung Lee Co-authored-by: ChenWenbin Co-authored-by: 谭九鼎 <109224573@qq.com> Co-authored-by: Wentao Ye <44945378+yewentao256@users.noreply.github.com> Co-authored-by: Guanhua Wang Co-authored-by: Jinghan Yao Co-authored-by: Jinghan Yao Co-authored-by: Sam Ade Jacobs Co-authored-by: Jinghan Yao Co-authored-by: Jinghan Yao Co-authored-by: Hoa La <87745938+lvhoaa@users.noreply.github.com> Co-authored-by: xyxie Co-authored-by: ChuanxinTang Co-authored-by: root Co-authored-by: Tero Keski-Valkama Co-authored-by: Eugene29 <52263376+Eugene29@users.noreply.github.com> Co-authored-by: kaiksi-bb <122809228+kaiksi-bb@users.noreply.github.com> Co-authored-by: ℍ𝕠𝕝𝕝𝕠𝕨 𝕄𝕒𝕟 Co-authored-by: keiwoo Co-authored-by: Aviv Keshet Co-authored-by: Daniel Huang Co-authored-by: hj-wei Co-authored-by: Sergii Dymchenko Co-authored-by: woctordho Co-authored-by: Xia Weiwen Co-authored-by: Hyogeun Oh (오효근) Co-authored-by: Fabio Geraci <118277438+fabiosanger@users.noreply.github.com> Co-authored-by: Sam Foreman Co-authored-by: Fabien Dupont Co-authored-by: Liangliang Ma <1906710196@qq.com> Co-authored-by: Stas Bekman Co-authored-by: Roman Fitzjalen Co-authored-by: Ramya Ramineni <62723901+rraminen@users.noreply.github.com> Co-authored-by: root Co-authored-by: wukong1992 Co-authored-by: shaomin Co-authored-by: siqi654321 Co-authored-by: siqi Co-authored-by: Wei Wu <45323446+U-rara@users.noreply.github.com> Co-authored-by: Siddharth Singh --- .../deepspeed_chat_bug_report.md | 2 +- .../ISSUE_TEMPLATE/inference_bug_report.md | 2 +- .github/workflows/amd-mi100.yml | 56 - .github/workflows/amd-mi200.yml | 12 +- .github/workflows/auto-sync.yml | 59 - .github/workflows/cpu-inference.yml | 68 +- ...-torch110-p40.yml => cpu-torch-latest.yml} | 42 +- .github/workflows/formatting.yml | 7 +- .github/workflows/hpu-gaudi2-nightly.yml | 85 ++ .github/workflows/hpu-gaudi2.yml | 136 ++ .github/workflows/no-torch.yml | 49 + .github/workflows/nv-a6000.yml | 37 +- .github/workflows/nv-accelerate-v100.yml | 11 +- .github/workflows/nv-ds-chat.yml | 20 +- ...nv-torch110-v100.yml => nv-flash-attn.yml} | 52 +- .github/workflows/nv-h100.yml | 4 +- .github/workflows/nv-human-eval.yml | 53 + .github/workflows/nv-inference.yml | 39 +- .github/workflows/nv-lightning-v100.yml | 9 +- .github/workflows/nv-megatron.yml | 63 - .github/workflows/nv-mii.yml | 32 +- .github/workflows/nv-nightly.yml | 18 +- .github/workflows/nv-pre-compile-ops.yml | 11 +- .github/workflows/nv-sd.yml | 12 +- .github/workflows/nv-torch-latest-cpu.yml | 49 - .github/workflows/nv-torch-latest-v100.yml | 21 +- .github/workflows/nv-torch-nightly-v100.yml | 14 +- .github/workflows/nv-transformers-v100.yml | 8 +- .github/workflows/python.yml | 9 +- .github/workflows/release.yml | 10 +- .github/workflows/setup-venv/action.yml | 2 +- .github/workflows/xpu-compile.yml | 65 + .github/workflows/xpu-max1100.yml | 96 ++ .gitignore | 76 +- .pre-commit-config.yaml | 19 +- CODEOWNERS | 83 +- COMMITTERS.md | 11 + CONTRIBUTING.md | 10 +- GOVERNANCE.md | 101 ++ MANIFEST.in | 4 +- README.md | 2 +- SECURITY.md | 4 + accelerator/abstract_accelerator.py | 48 +- accelerator/cpu_accelerator.py | 98 +- accelerator/cuda_accelerator.py | 84 +- accelerator/hpu_accelerator.py | 329 +++++ accelerator/mlu_accelerator.py | 300 ++++ accelerator/mps_accelerator.py | 50 +- accelerator/npu_accelerator.py | 48 +- accelerator/real_accelerator.py | 106 +- accelerator/sdaa_accelerator.py | 328 +++++ accelerator/xpu_accelerator.py | 318 +++++ benchmarks/README.md | 4 +- bin/deepspeed.bat | 2 + bin/ds_bench | 5 +- bin/ds_io | 6 + bin/ds_nvme_tune | 9 + bin/ds_report.bat | 2 + blogs/comm-opt/README.md | 2 +- blogs/deepspeed-chat/README.md | 16 +- blogs/deepspeed-chat/chinese/README.md | 18 +- .../ds-chat-release-8-31/README.md | 88 +- blogs/deepspeed-chat/japanese/README.md | 18 +- blogs/deepspeed-domino/README.md | 199 +++ blogs/deepspeed-domino/images/design-base.png | Bin 0 -> 16423 bytes .../deepspeed-domino/images/design-column.png | Bin 0 -> 20229 bytes .../deepspeed-domino/images/design-hybrid.png | Bin 0 -> 4590 bytes blogs/deepspeed-domino/images/design-row.png | Bin 0 -> 21185 bytes blogs/deepspeed-domino/images/domino-hero.png | Bin 0 -> 395781 bytes blogs/deepspeed-domino/images/domino-logo.png | Bin 0 -> 5528 bytes blogs/deepspeed-domino/images/gpt3-scale.png | Bin 0 -> 21207 bytes .../deepspeed-domino/images/implement-bwd.png | Bin 0 -> 71201 bytes .../deepspeed-domino/images/implement-fwd.png | Bin 0 -> 62208 bytes blogs/deepspeed-domino/images/tp-ar.png | Bin 0 -> 6500 bytes .../images/tp-comm-overhead.png | Bin 0 -> 37583 bytes blogs/deepspeed-fastgen/2024-01-19/README.md | 187 +++ .../assets/images/fastgen-hero-dark.png | Bin 0 -> 86613 bytes .../assets/images/fastgen-hero-light.png | Bin 0 -> 80553 bytes .../images/th_lat_curve_falcon-180B_tp8.png | Bin 0 -> 151520 bytes .../images/th_lat_curve_falcon-40b_tp2.png | Bin 0 -> 149067 bytes ...urve_mistralai-Mixtral-8x7B-v0.1_tp4_1.png | Bin 0 -> 1145723 bytes ...urve_mistralai-Mixtral-8x7B-v0.1_tp4_2.png | Bin 0 -> 105718 bytes .../assets/images/th_lat_curve_phi-2_tp1.png | Bin 0 -> 1255169 bytes blogs/deepspeed-fastgen/README.md | 29 +- blogs/deepspeed-fastgen/chinese/README.md | 26 +- blogs/deepspeed-fastgen/japanese/README.md | 24 +- .../03-05-2024/README-Chinese.md | 143 ++ blogs/deepspeed-fp6/03-05-2024/README.md | 147 ++ .../03-05-2024/assets/fp6-design.png | Bin 0 -> 445557 bytes .../03-05-2024/assets/hero-figure.png | Bin 0 -> 800588 bytes .../03-05-2024/assets/servingllm/100-1000.png | Bin 0 -> 866799 bytes .../03-05-2024/assets/servingllm/100-250.png | Bin 0 -> 868325 bytes .../03-05-2024/assets/servingllm/100-500.png | Bin 0 -> 827892 bytes blogs/deepspeed-gds/README.md | 88 ++ blogs/deepspeed-gds/chinese/README.md | 77 ++ blogs/deepspeed-gds/japanese/README.md | 77 ++ blogs/deepspeed-gds/media/figure1.png | Bin 0 -> 32011 bytes blogs/deepspeed-gds/media/figure2.png | Bin 0 -> 40188 bytes blogs/deepspeed-gds/media/figure3.png | Bin 0 -> 44077 bytes blogs/deepspeed-gds/media/table1.png | Bin 0 -> 46740 bytes blogs/deepspeed-offloadpp/README.md | 4 +- blogs/deepspeed-triton/README.md | 8 +- blogs/deepspeed-ucp/README.md | 273 ++++ blogs/deepspeed-ucp/chinese/README.md | 124 ++ blogs/deepspeed-ucp/japanese/README.md | 115 ++ blogs/deepspeed-ucp/media/flowchart.png | Bin 0 -> 58071 bytes blogs/deepspeed-ucp/media/image1.png | Bin 0 -> 142850 bytes blogs/deepspeed-ucp/media/image2.png | Bin 0 -> 179248 bytes blogs/deepspeed-ucp/media/image3.png | Bin 0 -> 42403 bytes blogs/deepspeed-ucp/media/image4.png | Bin 0 -> 133064 bytes blogs/deepspeed-ucp/media/image5.png | Bin 0 -> 132667 bytes blogs/deepspeed-ucp/media/image6.png | Bin 0 -> 82311 bytes blogs/deepspeed-ucp/media/image7.png | Bin 0 -> 147097 bytes blogs/deepspeed-ucp/media/image8.png | Bin 0 -> 93380 bytes blogs/deepspeed-ulysses/README.md | 8 +- blogs/deepspeed-ulysses/chinese/README.md | 2 +- blogs/deepspeed-ulysses/japanese/README.md | 4 +- .../10-03-2023/README-Chinese.md | 14 +- .../10-03-2023/README-Japanese.md | 16 +- .../deepspeed-visualchat/10-03-2023/README.md | 16 +- blogs/deepspeed4science/chinese/README.md | 4 +- blogs/deepspeed4science/japanese/README.md | 4 +- blogs/intel-inference/README.md | 143 ++ .../intel-inference/assets/intel-results.png | Bin 0 -> 65371 bytes .../intel-inference/assets/software-arch.png | Bin 0 -> 13952 bytes blogs/ulysses-offload/README.md | 263 ++++ blogs/ulysses-offload/media/image1.png | Bin 0 -> 1314185 bytes blogs/ulysses-offload/media/image2.png | Bin 0 -> 134983 bytes blogs/ulysses-offload/media/image3.png | Bin 0 -> 187041 bytes blogs/ulysses-offload/media/image4.png | Bin 0 -> 319690 bytes blogs/ulysses-offload/media/image5.png | Bin 0 -> 91541 bytes blogs/windows/08-2024/README.md | 101 ++ blogs/windows/08-2024/chinese/README.md | 103 ++ blogs/windows/08-2024/japanese/README.md | 123 ++ blogs/windows/08-2024/media/bert_training.png | Bin 0 -> 266174 bytes .../08-2024/media/cifar10_training.png | Bin 0 -> 43754 bytes blogs/windows/08-2024/media/ds_report.png | Bin 0 -> 211867 bytes .../08-2024/media/llama2-7b_inference.png | Bin 0 -> 88831 bytes .../08-2024/media/opt125m_finetuning.png | Bin 0 -> 140797 bytes .../media/win_pip_install_deepspeed.png | Bin 0 -> 175851 bytes blogs/zeropp/chinese/README.md | 2 +- blogs/zeropp/japanese/README.md | 4 +- build_win.bat | 21 +- csrc/adagrad/cpu_adagrad.cpp | 207 ++- csrc/adam/cpu_adam.cpp | 3 - csrc/adam/cpu_adam_impl.cpp | 254 ++-- csrc/adam/multi_tensor_adam.cu | 79 +- csrc/adam/multi_tensor_apply.cuh | 10 +- csrc/aio/common/deepspeed_aio_common.cpp | 59 +- csrc/aio/common/deepspeed_aio_common.h | 2 +- csrc/aio/common/deepspeed_aio_utils.cpp | 36 +- csrc/aio/common/deepspeed_aio_utils.h | 24 +- csrc/aio/py_lib/deepspeed_aio_op_desc.cpp | 40 + csrc/aio/py_lib/deepspeed_aio_op_desc.h | 43 + csrc/aio/py_lib/deepspeed_aio_thread.cpp | 39 +- csrc/aio/py_lib/deepspeed_aio_thread.h | 23 +- csrc/aio/py_lib/deepspeed_cpu_op.cpp | 109 ++ csrc/aio/py_lib/deepspeed_cpu_op.h | 38 + csrc/aio/py_lib/deepspeed_pin_tensor.cpp | 24 +- csrc/aio/py_lib/deepspeed_pin_tensor.h | 7 +- csrc/aio/py_lib/deepspeed_py_aio.cpp | 26 +- csrc/aio/py_lib/deepspeed_py_aio.h | 5 +- csrc/aio/py_lib/deepspeed_py_aio_handle.cpp | 286 +--- csrc/aio/py_lib/deepspeed_py_aio_handle.h | 61 +- csrc/aio/py_lib/deepspeed_py_copy.cpp | 4 +- csrc/aio/py_lib/deepspeed_py_copy.h | 3 - csrc/aio/py_lib/deepspeed_py_io_handle.cpp | 322 +++++ csrc/aio/py_lib/deepspeed_py_io_handle.h | 94 ++ csrc/aio/py_lib/py_ds_aio.cpp | 96 +- csrc/aio/py_test/aio_bench_generate_param.py | 6 +- csrc/aio/py_test/aio_bench_perf_sweep.py | 141 +- csrc/aio/py_test/ds_aio_args.py | 175 +++ csrc/aio/py_test/ds_aio_basic.py | 25 +- csrc/aio/py_test/ds_aio_handle.py | 119 +- csrc/aio/py_test/ds_aio_job.py | 49 + csrc/aio/py_test/run_read_sweep.sh | 113 +- csrc/aio/py_test/run_write_sweep.sh | 52 +- csrc/aio/py_test/test_ds_aio.py | 66 +- csrc/aio/py_test/test_ds_aio_utils.py | 41 +- csrc/aio/py_test/validate_async_io.py | 1 + csrc/common/custom_cuda_kernel.cu | 44 - csrc/cpu/comm/ccl.cpp | 407 +----- csrc/cpu/comm/shm.cpp | 692 ++++++++++ csrc/cpu/comm/shm.h | 12 + csrc/cpu/comm/shm_interface.cpp | 186 +++ .../evoformer_attn/gemm_kernel_utils.h | 9 +- csrc/fp_quantizer/fp_quantize.cpp | 126 ++ csrc/fp_quantizer/fp_quantize.cu | 532 +++++++ csrc/fp_quantizer/includes/context.h | 66 + csrc/fp_quantizer/includes/fp_quantize.h | 128 ++ csrc/gds/py_lib/deepspeed_gds_op.cpp | 161 +++ csrc/gds/py_lib/deepspeed_gds_op.h | 45 + csrc/gds/py_lib/deepspeed_gds_utils.h | 91 ++ csrc/gds/py_lib/deepspeed_py_gds_handle.cpp | 125 ++ csrc/gds/py_lib/deepspeed_py_gds_handle.h | 49 + csrc/gds/py_lib/py_ds_gds.cpp | 130 ++ csrc/gds/py_test/validate_gds.py | 10 + csrc/includes/cpu_adagrad.h | 149 +- csrc/includes/cpu_adam.h | 173 +-- csrc/includes/cpu_lion.h | 161 +-- csrc/includes/cublas_wrappers.h | 14 +- csrc/includes/custom_cuda_layers.h | 3 - csrc/includes/ds_kernel_utils.h | 2 +- csrc/includes/feed_forward.h | 10 +- csrc/includes/gemm_test.h | 32 +- csrc/includes/memory_access_utils.h | 29 + csrc/includes/quantization.h | 30 + csrc/includes/quantization_utils.h | 1 + csrc/includes/reduction_utils.h | 48 + csrc/includes/simd.h | 139 +- csrc/includes/strided_batch_gemm.h | 13 +- csrc/lion/cpu_lion.cpp | 3 - csrc/lion/cpu_lion_impl.cpp | 211 ++- csrc/quantization/pt_binding.cpp | 108 +- csrc/quantization/quant_reduce.cu | 294 ++++ csrc/quantization/swizzled_quantize.cu | 231 ++++ csrc/random_ltd/token_sort.cu | 2 +- csrc/transformer/cublas_wrappers.cu | 109 +- .../inference/csrc/apply_rotary_pos_emb.cu | 2 +- .../transformer/inference/csrc/pt_binding.cpp | 98 +- .../includes/inference_cublas_wrappers.h | 93 +- csrc/xpu/adagrad/cpu_adagrad.cpp | 196 +++ csrc/xpu/adam/fused_adam_frontend.cpp | 25 + csrc/xpu/adam/multi_tensor_adam.dp.cpp | 159 +++ csrc/xpu/adam/multi_tensor_apply.dp.hpp | 226 +++ csrc/xpu/common/custom_cuda_kernel.dp.cpp | 92 ++ csrc/xpu/includes/compat.h | 19 + csrc/xpu/includes/cpu_adagrad.h | 120 ++ csrc/xpu/includes/cpu_adam.h | 237 ++++ csrc/xpu/includes/simd.h | 198 +++ csrc/xpu/includes/type_shim.h | 155 +++ csrc/xpu/packbits/packing.cpp | 100 ++ deepspeed/__init__.py | 93 +- deepspeed/autotuning/README.md | 8 +- deepspeed/autotuning/autotuner.py | 19 +- deepspeed/autotuning/scheduler.py | 1 - deepspeed/autotuning/utils.py | 2 +- deepspeed/checkpoint/__init__.py | 2 +- deepspeed/checkpoint/constants.py | 5 + deepspeed/checkpoint/deepspeed_checkpoint.py | 79 +- deepspeed/checkpoint/ds_to_universal.py | 322 ++++- deepspeed/checkpoint/reshape_3d_utils.py | 2 +- deepspeed/checkpoint/reshape_utils.py | 21 +- deepspeed/checkpoint/universal_checkpoint.py | 74 +- deepspeed/checkpoint/utils.py | 7 +- deepspeed/checkpoint/zero_checkpoint.py | 6 +- deepspeed/comm/ccl.py | 53 +- deepspeed/comm/comm.py | 42 +- deepspeed/comm/config.py | 14 +- deepspeed/comm/torch.py | 88 +- deepspeed/elasticity/elastic_agent.py | 8 +- deepspeed/elasticity/utils.py | 2 +- deepspeed/env_report.py | 7 +- deepspeed/git_version_info.py | 11 +- deepspeed/inference/config.py | 131 +- deepspeed/inference/engine.py | 100 +- deepspeed/inference/quantization/layers.py | 2 +- deepspeed/inference/quantization/utils.py | 18 +- deepspeed/inference/v2/allocator.py | 22 +- .../v2/checkpoint/huggingface_engine.py | 67 +- deepspeed/inference/v2/config_v2.py | 15 +- deepspeed/inference/v2/engine_factory.py | 27 +- deepspeed/inference/v2/engine_v2.py | 26 +- .../inference/v2/kernels/core_ops/__init__.py | 1 + ..._activation.cu => bias_activation_cuda.cu} | 0 .../core_ops/blas_kernels/blas_utils.h | 38 +- .../v2/kernels/core_ops/core_ops.cpp | 6 + .../{layer_norm.cu => layer_norm_cuda.cu} | 1 - .../cuda_linear}/__init__.py | 2 +- .../core_ops/cuda_linear/cuda_linear.py | 207 +++ .../core_ops/cuda_linear/include/configs.h | 96 ++ .../cuda_linear/include/kernel_matmul.cuh | 272 ++++ .../cuda_linear/include/kernel_reduction.cuh | 43 + .../cuda_linear/include/ptx_cp.async.cuh | 75 + .../core_ops/cuda_linear/include/ptx_mma.cuh | 139 ++ .../cuda_linear/include/utils_core.cuh | 246 ++++ .../cuda_linear/include/utils_gmem.cuh | 86 ++ .../include/utils_paralleldequant.cuh | 127 ++ .../cuda_linear/include/weight_prepacking.h | 209 +++ .../core_ops/cuda_linear/linear_kernels.cpp | 224 +++ .../core_ops/cuda_linear/linear_kernels.h | 28 + .../cuda_linear/linear_kernels_cuda.cu | 318 +++++ .../cuda_linear/linear_kernels_cuda.h | 51 + .../{rms_norm.cu => rms_norm_cuda.cu} | 0 ...ls.cu => gated_activation_kernels_cuda.cu} | 5 +- .../v2/kernels/includes/ds_kernel_utils.h | 2 +- .../v2/kernels/ragged_ops/__init__.py | 2 +- .../embed/{embed.cu => embed_cuda.cu} | 0 .../kernels/ragged_ops/includes/top_k_utils.h | 21 + .../blocked_kv_rotary.cpp | 7 + .../blocked_kv_rotary.cuh | 2 + .../blocked_kv_rotary.h | 2 + .../blocked_kv_rotary.py | 13 +- ...kv_rotary.cu => blocked_kv_rotary_cuda.cu} | 221 ++- .../blocked_trained_kv_rotary.py | 4 +- .../linear_blocked_kv_copy.py | 2 +- ...logits_gather.cu => logits_gather_cuda.cu} | 0 .../ragged_ops/moe_gather/moe_gather.cpp | 10 +- .../ragged_ops/moe_gather/moe_gather.cuh | 2 + .../ragged_ops/moe_gather/moe_gather.h | 3 +- .../ragged_ops/moe_gather/moe_gather.py | 9 +- .../{moe_gather.cu => moe_gather_cuda.cu} | 107 +- .../ragged_ops/moe_scatter/moe_scatter.cpp | 7 +- .../ragged_ops/moe_scatter/moe_scatter.cu | 208 --- .../ragged_ops/moe_scatter/moe_scatter.cuh | 1 + .../ragged_ops/moe_scatter/moe_scatter.py | 8 +- .../moe_scatter/moe_scatter_cuda.cu | 216 +++ .../v2/kernels/ragged_ops/ragged_ops.cpp | 6 +- .../ragged_ops/top_k_gating/__init__.py | 6 + .../top_k_gating.cpp} | 26 +- .../top_k_gating.cuh} | 3 +- .../top_k_gating.h} | 4 +- .../top_k_gating.py} | 14 +- .../top_k_gating_cuda.cu} | 69 +- .../v2/model_implementations/__init__.py | 7 + .../common_parameters/mlp_parameters.py | 18 + .../common_parameters/moe_parameters.py | 23 +- .../model_implementations/falcon/__init__.py | 6 + .../model_implementations/falcon/container.py | 129 ++ .../v2/model_implementations/falcon/model.py | 213 +++ .../v2/model_implementations/falcon/policy.py | 33 + .../flat_model_helpers.py | 10 +- .../inference_model_base.py | 4 + .../inference_policy_base.py | 2 +- .../inference_transformer_base.py | 42 +- .../layer_container_base.py | 4 +- .../llama_v2/__init__.py | 2 +- .../{llama_v2_containers.py => container.py} | 4 +- .../llama_v2/{llama_v2_model.py => model.py} | 17 +- .../{llama_v2_policy.py => policy.py} | 6 +- .../v2/model_implementations/mistral/model.py | 13 +- .../model_implementations/mistral/policy.py | 8 +- .../model_implementations/mixtral/__init__.py | 6 + .../mixtral/container.py | 46 + .../v2/model_implementations/mixtral/model.py | 261 ++++ .../model_implementations/mixtral/policy.py | 31 + .../v2/model_implementations/opt/container.py | 4 +- .../v2/model_implementations/opt/model.py | 20 +- .../v2/model_implementations/opt/policy.py | 6 +- .../v2/model_implementations/phi/__init__.py | 6 + .../model_implementations/phi/containers.py | 91 ++ .../v2/model_implementations/phi/model.py | 199 +++ .../v2/model_implementations/phi/policy.py | 32 + .../v2/model_implementations/phi3/__init__.py | 6 + .../model_implementations/phi3/containers.py | 75 + .../v2/model_implementations/phi3/model.py | 204 +++ .../v2/model_implementations/phi3/policy.py | 30 + .../v2/model_implementations/qwen/__init__.py | 6 + .../model_implementations/qwen/container.py | 77 ++ .../v2/model_implementations/qwen/model.py | 223 +++ .../v2/model_implementations/qwen/policy.py | 30 + .../model_implementations/qwen_v2/__init__.py | 6 + .../qwen_v2/container.py | 82 ++ .../v2/model_implementations/qwen_v2/model.py | 221 +++ .../model_implementations/qwen_v2/policy.py | 31 + .../qwen_v2_moe/__init__.py | 6 + .../qwen_v2_moe/container.py | 103 ++ .../qwen_v2_moe/model.py | 359 +++++ .../qwen_v2_moe/policy.py | 30 + .../inference/v2/modules/configs/__init__.py | 7 +- .../v2/modules/configs/attention_configs.py | 32 +- .../v2/modules/configs/moe_config.py | 6 + deepspeed/inference/v2/modules/heuristics.py | 20 +- .../attention/dense_blocked_attention.py | 27 +- .../embedding/ragged_embedding.py | 2 +- .../implementations/linear/__init__.py | 1 + .../linear/quantized_linear.py | 205 +++ .../implementations/moe/cutlass_multi_gemm.py | 88 +- .../implementations/unembed/ragged_unembed.py | 9 +- .../inference/v2/ragged/csrc/ragged_ops.cpp | 2 +- deepspeed/inference/v2/ragged/kv_cache.py | 7 +- .../inference/v2/ragged/manager_configs.py | 14 +- .../inference/v2/ragged/ragged_manager.py | 10 +- .../inference/v2/ragged/ragged_wrapper.py | 51 +- .../v2/ragged/sequence_descriptor.py | 6 +- deepspeed/launcher/launch.py | 14 +- deepspeed/launcher/launcher_helper.py | 108 ++ deepspeed/launcher/multinode_runner.py | 105 +- deepspeed/launcher/runner.py | 107 +- deepspeed/linear/__init__.py | 8 + deepspeed/linear/config.py | 54 + deepspeed/linear/context_manager.py | 90 ++ deepspeed/linear/optimized_linear.py | 222 +++ deepspeed/linear/quantization.py | 147 ++ .../model_implementations/diffusers/unet.py | 10 +- .../model_implementations/diffusers/vae.py | 19 +- .../transformers/clip_encoder.py | 6 +- .../transformers/ds_llama2.py | 15 +- .../transformers/ds_transformer.py | 58 +- deepspeed/module_inject/__init__.py | 2 +- deepspeed/module_inject/auto_tp.py | 166 ++- .../module_inject/auto_tp_model_utils.py | 10 + deepspeed/module_inject/containers/bloom.py | 14 + .../containers/features/meta_tensor.py | 2 +- deepspeed/module_inject/containers/llama.py | 6 +- deepspeed/module_inject/containers/unet.py | 2 + deepspeed/module_inject/containers/vae.py | 10 +- deepspeed/module_inject/fusedqkv_utils.py | 163 ++- deepspeed/module_inject/layers.py | 654 ++++++++- deepspeed/module_inject/load_checkpoint.py | 6 +- deepspeed/module_inject/replace_module.py | 108 +- deepspeed/module_inject/tp_shard.py | 57 +- deepspeed/moe/experts.py | 23 +- deepspeed/moe/layer.py | 60 +- deepspeed/moe/mappings.py | 36 +- deepspeed/moe/sharded_moe.py | 217 ++- deepspeed/moe/utils.py | 127 +- deepspeed/monitor/comet.py | 92 ++ deepspeed/monitor/config.py | 83 +- deepspeed/monitor/monitor.py | 6 + deepspeed/monitor/utils.py | 13 + deepspeed/nvme/__init__.py | 8 + deepspeed/nvme/ds_aio_args.py | 175 +++ deepspeed/nvme/ds_aio_basic.py | 134 ++ deepspeed/nvme/ds_aio_handle.py | 222 +++ deepspeed/nvme/ds_aio_job.py | 50 + deepspeed/nvme/parse_nvme_stats.py | 148 ++ deepspeed/nvme/perf_generate_param.py | 97 ++ deepspeed/nvme/perf_run_sweep.py | 320 +++++ deepspeed/nvme/perf_sweep_utils.py | 13 + deepspeed/nvme/test_ds_aio.py | 25 + deepspeed/nvme/test_ds_aio_utils.py | 81 ++ deepspeed/nvme/validate_async_io.py | 10 + deepspeed/ops/__init__.py | 4 +- deepspeed/ops/adagrad/cpu_adagrad.py | 17 +- deepspeed/ops/adam/cpu_adam.py | 25 +- deepspeed/ops/fp_quantizer/__init__.py | 7 + deepspeed/ops/fp_quantizer/fp8_gemm.py | 28 + deepspeed/ops/fp_quantizer/fp8_gemm_triton.py | 171 +++ deepspeed/ops/fp_quantizer/quantize.py | 184 +++ deepspeed/ops/gds/__init__.py | 6 + deepspeed/ops/lion/cpu_lion.py | 20 +- .../bert_sparse_self_attention.py | 2 +- deepspeed/ops/transformer/inference/config.py | 6 +- .../inference/diffusers_attention.py | 52 +- .../inference/diffusers_transformer_block.py | 33 +- .../ops/transformer/inference/ds_attention.py | 29 +- .../transformer/inference/moe_inference.py | 73 +- .../inference/op_binding/bias_add.py | 31 + .../inference/op_binding/bias_gelu.py | 33 + .../inference/op_binding/bias_relu.py | 33 + .../inference/op_binding/bias_residual.py | 29 + .../inference/op_binding/einsum_sec_sm_ecm.py | 29 + .../inference/op_binding/gated_activation.py | 40 + .../inference/op_binding/gelu_gemm.py | 11 +- .../inference/op_binding/layer_norm.py | 60 + .../inference/op_binding/mlp_gemm.py | 38 +- .../inference/op_binding/moe_res_matmul.py | 29 + .../inference/op_binding/pad_transform.py | 26 + .../inference/op_binding/pre_rms_norm.py | 31 + .../inference/op_binding/qkv_gemm.py | 30 +- .../inference/op_binding/residual_add.py | 65 +- .../inference/op_binding/rms_norm.py | 33 + .../inference/op_binding/softmax.py | 54 +- .../inference/op_binding/softmax_context.py | 105 +- .../inference/op_binding/vector_add.py | 28 + .../inference/op_binding/vector_matmul.py | 8 +- .../inference/op_binding/workspace.py | 222 +++ .../transformer/inference/triton/attention.py | 18 +- .../inference/triton/matmul_ext.py | 46 +- .../ops/transformer/inference/triton/ops.py | 20 +- deepspeed/profiling/flops_profiler/README.md | 2 +- .../profiling/flops_profiler/profiler.py | 51 +- deepspeed/pydantic_v1.py | 16 - deepspeed/runtime/__init__.py | 8 - .../activation_checkpointing/checkpointing.py | 135 +- deepspeed/runtime/base_optimizer.py | 63 + deepspeed/runtime/bf16_optimizer.py | 295 ++-- .../nebula_checkpoint_engine.py | 2 +- .../torch_checkpoint_engine.py | 2 +- .../runtime/comm/coalesced_collectives.py | 95 +- deepspeed/runtime/comm/compressed.py | 137 ++ deepspeed/runtime/comm/hccl.py | 124 ++ deepspeed/runtime/comm/nccl.py | 2 +- deepspeed/runtime/compiler.py | 30 + deepspeed/runtime/compression/cupy.py | 4 +- deepspeed/runtime/config.py | 40 +- deepspeed/runtime/config_utils.py | 79 +- deepspeed/runtime/constants.py | 16 + .../data_sampling/data_analyzer.py | 553 +++++++- .../data_sampling/data_sampler.py | 19 +- .../data_sampling/indexed_dataset.py | 48 +- .../data_pipeline/data_sampling/utils.py | 7 +- deepspeed/runtime/domino/__init__.py | 4 + deepspeed/runtime/domino/transformer.py | 517 +++++++ deepspeed/runtime/eigenvalue.py | 18 +- deepspeed/runtime/engine.py | 715 +++++++--- deepspeed/runtime/fp16/fused_optimizer.py | 100 +- deepspeed/runtime/fp16/onebit/adam.py | 17 +- deepspeed/runtime/fp16/onebit/lamb.py | 20 +- deepspeed/runtime/fp16/onebit/zoadam.py | 21 +- deepspeed/runtime/fp16/unfused_optimizer.py | 5 +- deepspeed/runtime/hybrid_engine.py | 39 +- deepspeed/runtime/lr_schedules.py | 44 +- deepspeed/runtime/pipe/engine.py | 344 +++-- deepspeed/runtime/pipe/module.py | 62 +- deepspeed/runtime/pipe/p2p.py | 16 +- deepspeed/runtime/sparse_tensor.py | 1 + deepspeed/runtime/swap_tensor/aio_config.py | 30 +- deepspeed/runtime/swap_tensor/constants.py | 11 +- .../runtime/swap_tensor/optimizer_utils.py | 30 +- .../partitioned_optimizer_swapper.py | 12 +- .../swap_tensor/partitioned_param_swapper.py | 47 +- .../pipelined_optimizer_swapper.py | 23 +- deepspeed/runtime/swap_tensor/utils.py | 4 +- deepspeed/runtime/tensor_parallel/__init__.py | 7 + deepspeed/runtime/tensor_parallel/config.py | 81 ++ .../runtime/tensor_parallel/tp_manager.py | 66 + deepspeed/runtime/utils.py | 546 +++++--- deepspeed/runtime/zero/__init__.py | 2 + deepspeed/runtime/zero/config.py | 106 +- .../zero/contiguous_memory_allocator.py | 2 +- deepspeed/runtime/zero/linear.py | 11 +- deepspeed/runtime/zero/mics.py | 40 +- deepspeed/runtime/zero/offload_config.py | 28 +- deepspeed/runtime/zero/offload_states.py | 74 + deepspeed/runtime/zero/parameter_offload.py | 429 +++--- .../runtime/zero/partition_parameters.py | 491 ++++--- .../zero/partitioned_param_coordinator.py | 152 +- deepspeed/runtime/zero/stage3.py | 712 ++++++++-- deepspeed/runtime/zero/stage_1_and_2.py | 411 +++--- deepspeed/runtime/zero/utils.py | 90 +- deepspeed/sequence/cross_entropy.py | 60 + deepspeed/sequence/fpdt_layer.py | 1225 +++++++++++++++++ deepspeed/sequence/layer.py | 373 ++++- deepspeed/utils/__init__.py | 11 +- deepspeed/utils/bwc.py | 104 ++ deepspeed/utils/config.py | 46 + deepspeed/utils/debug.py | 7 + deepspeed/utils/groups.py | 251 +++- deepspeed/utils/logging.py | 13 +- deepspeed/utils/mixed_precision_linkage.py | 13 +- deepspeed/utils/numa.py | 9 +- deepspeed/utils/nvtx.py | 14 +- deepspeed/utils/tensor_fragment.py | 159 ++- deepspeed/utils/timer.py | 32 +- deepspeed/utils/torch.py | 31 + deepspeed/utils/z3_leaf_module.py | 93 ++ deepspeed/utils/zero_to_fp32.py | 271 +++- docker/Dockerfile | 39 +- docker/gh-builder/Dockerfile.py311 | 35 + docker/gh-builder/Dockerfile.py312 | 35 + docker/{Dockerfile.rocm => rocm/Dockerfile} | 0 docs/CNAME | 2 +- docs/Gemfile | 2 + docs/README.md | 10 + docs/_data/navigation.yml | 12 +- docs/_pages/config-json.md | 65 +- docs/_pages/deepspeed4science.md | 4 +- docs/_pages/inference.md | 4 +- docs/_posts/2020-05-19-bert-record.md | 2 +- .../2020-05-28-fastest-bert-training.md | 2 +- .../2020-09-08-sparse-attention-news.md | 2 +- docs/_posts/2020-09-09-ZeRO-Offload.md | 2 +- docs/_posts/2020-09-09-onebit-adam-news.md | 2 +- .../_posts/2020-09-09-pipeline-parallelism.md | 2 +- docs/_posts/2020-09-09-sparse-attention.md | 2 +- ...0-10-28-progressive-layer-dropping-news.md | 2 +- docs/_posts/2021-11-15-autotuning.md | 6 +- docs/_posts/2021-12-09-deepspeed-moe-nlg.md | 4 +- docs/_posts/2022-07-26-deepspeed-azure.md | 12 +- docs/_posts/2022-09-10-zero-inference.md | 2 +- docs/_posts/2022-10-11-mii.md | 6 +- docs/_posts/2022-12-12-data-efficiency.md | 2 +- docs/_posts/2023-03-31-multi-modal.md | 2 +- .../2023-04-24-deepspeed-chat-chinese.md | 2 +- .../2023-04-24-deepspeed-chat-japanese.md | 2 +- docs/_posts/2023-04-24-deepspeed-chat.md | 2 +- docs/_posts/2023-06-22-zeropp-chinese.md | 2 +- docs/_posts/2023-06-22-zeropp-japanese.md | 2 +- docs/_posts/2023-08-24-ulysses-chinese.md | 2 +- docs/_posts/2023-08-24-ulysses-japanese.md | 2 +- docs/_posts/2023-08-24-ulysses.md | 2 +- docs/_posts/2023-09-12-ZeRO-Inference.md | 2 +- .../2023-09-19-deepspeed4science-chinese.md | 2 +- .../2023-09-19-deepspeed4science-japanese.md | 2 +- ...2023-10-04-deepspeed-visualchat-chinese.md | 2 +- ...023-10-04-deepspeed-visualchat-japanese.md | 2 +- .../_posts/2023-10-04-deepspeed-visualchat.md | 2 +- .../2023-11-06-deepspeed-fastgen-chinese.md | 2 +- .../2023-11-06-deepspeed-fastgen-japanese.md | 2 +- docs/_posts/2023-11-06-deepspeed-fastgen.md | 2 +- docs/_sass/minimal-mistakes/_sidebar.scss | 4 +- .../accelerator-abstraction-interface.md | 74 +- docs/_tutorials/accelerator-setup-guide.md | 256 ++++ docs/_tutorials/advanced-install.md | 56 +- .../automatic-tensor-parallelism.md | 17 +- docs/_tutorials/autotuning.md | 10 +- docs/_tutorials/azure.md | 4 +- docs/_tutorials/bert-finetuning.md | 6 +- docs/_tutorials/bert-pretraining.md | 6 +- docs/_tutorials/cifar-10.md | 2 +- docs/_tutorials/comms-logging.md | 2 +- docs/_tutorials/curriculum-learning.md | 10 +- docs/_tutorials/data-efficiency.md | 12 +- docs/_tutorials/deepnvme.md | 297 ++++ docs/_tutorials/domino.md | 6 + docs/_tutorials/ds-sequence.md | 14 +- docs/_tutorials/flops-profiler.md | 2 +- docs/_tutorials/gan.md | 2 +- docs/_tutorials/getting-started.md | 47 +- docs/_tutorials/inference-tutorial.md | 24 +- docs/_tutorials/large-models-w-deepspeed.md | 2 +- docs/_tutorials/megatron.md | 2 +- docs/_tutorials/mixed_precision_zeropp.md | 4 +- .../mixture-of-experts-inference.md | 2 +- docs/_tutorials/mixture-of-experts-nlg.md | 8 +- docs/_tutorials/mixture-of-experts.md | 9 +- docs/_tutorials/model-compression.md | 34 +- docs/_tutorials/monitor.md | 17 +- docs/_tutorials/onebit-adam.md | 18 +- docs/_tutorials/onebit-lamb.md | 12 +- docs/_tutorials/sparse-attention.md | 16 +- docs/_tutorials/ulysses-offload.md | 68 + docs/_tutorials/universal-checkpointing.md | 56 + docs/_tutorials/zero-offload.md | 4 +- docs/_tutorials/zero-one-adam.md | 14 +- docs/_tutorials/zero.md | 6 +- docs/_tutorials/zeropp.md | 12 +- .../files/DeepSpeed-Meetup-May-Japan-2024.pdf | Bin 0 -> 3952303 bytes docs/assets/images/comet_monitor.png | Bin 0 -> 258147 bytes docs/assets/images/deepnvme_ops_report.png | Bin 0 -> 8964 bytes docs/code-docs/source/index.rst | 2 +- docs/code-docs/source/inference-engine.rst | 2 +- docs/code-docs/source/initialize.rst | 2 +- docs/code-docs/source/model-checkpointing.rst | 2 +- docs/code-docs/source/moe.rst | 2 +- docs/code-docs/source/monitor.rst | 23 +- docs/code-docs/source/schedulers.rst | 9 +- docs/code-docs/source/zero3.rst | 116 +- docs/contributing.md | 6 +- docs/index.md | 46 +- examples/README.md | 6 +- install.sh | 2 +- op_builder/all_ops.py | 1 + op_builder/async_io.py | 82 +- op_builder/builder.py | 213 ++- op_builder/cpu/__init__.py | 3 +- op_builder/cpu/async_io.py | 91 ++ op_builder/cpu/builder.py | 12 +- op_builder/cpu/comm.py | 33 +- op_builder/cpu_adagrad.py | 20 +- op_builder/cpu_adam.py | 21 +- op_builder/cpu_lion.py | 25 +- op_builder/evoformer_attn.py | 37 +- op_builder/fp_quantizer.py | 120 ++ op_builder/gds.py | 66 + op_builder/hpu/__init__.py | 11 + op_builder/hpu/builder.py | 38 + op_builder/hpu/cpu_adam.py | 28 + op_builder/hpu/fp_quantizer.py | 86 ++ op_builder/hpu/fused_adam.py | 105 ++ op_builder/hpu/no_impl.py | 24 + op_builder/hpu/transformer_inference.py | 39 + op_builder/inference_core_ops.py | 24 +- op_builder/inference_cutlass_builder.py | 13 +- op_builder/mlu/__init__.py | 12 + op_builder/mlu/builder.py | 35 + op_builder/mlu/cpu_adagrad.py | 24 + op_builder/mlu/cpu_adam.py | 28 + op_builder/mlu/fused_adam.py | 43 + op_builder/mlu/no_impl.py | 34 + op_builder/npu/__init__.py | 2 + op_builder/npu/async_io.py | 103 ++ op_builder/npu/fused_adam.py | 4 +- op_builder/npu/inference.py | 307 +++++ op_builder/quantizer.py | 5 +- op_builder/ragged_ops.py | 30 +- op_builder/ragged_utils.py | 13 +- op_builder/sdaa/__init__.py | 36 + op_builder/sdaa/builder.py | 60 + op_builder/sdaa/cpu_adam.py | 53 + op_builder/sdaa/fused_adam.py | 67 + op_builder/sdaa/no_impl.py | 59 + op_builder/sparse_attn.py | 29 +- op_builder/spatial_inference.py | 8 +- op_builder/transformer_inference.py | 13 +- op_builder/xpu/__init__.py | 13 + op_builder/xpu/async_io.py | 106 ++ op_builder/xpu/builder.py | 131 ++ op_builder/xpu/cpu_adagrad.py | 23 + op_builder/xpu/cpu_adam.py | 27 + op_builder/xpu/flash_attn.py | 53 + op_builder/xpu/fused_adam.py | 26 + op_builder/xpu/inference.py | 39 + op_builder/xpu/no_impl.py | 33 + op_builder/xpu/packbits.py | 26 + release/release.sh | 2 +- requirements/requirements-dev.txt | 13 +- requirements/requirements-inf.txt | 6 +- requirements/requirements-readthedocs.txt | 4 +- requirements/requirements-sd.txt | 2 +- requirements/requirements-triton.txt | 2 +- requirements/requirements.txt | 5 +- scripts/check-extraindexurl.py | 42 + setup.py | 95 +- .../BingBertSquad_test_common.py | 9 +- .../model/BingBertSquad/run_BingBertSquad.sh | 9 +- .../BingBertSquad/run_BingBertSquad_sanity.sh | 2 +- tests/model/BingBertSquad/run_tests.sh | 2 +- tests/model/BingBertSquad/test_e2e_squad.py | 4 +- .../Megatron_GPT2/run_checkpoint_test.py | 21 +- tests/model/Megatron_GPT2/test_common.py | 9 +- tests/onebit/README.md | 31 + tests/onebit/test_compressed_backend.py | 96 ++ tests/onebit/test_compressed_perf.py | 97 ++ tests/perf/adam_test1.py | 4 +- tests/pytest.ini | 7 +- tests/torch_compile/ds_config_z2.json | 40 + tests/torch_compile/ds_config_z3.json | 41 + tests/torch_compile/test_compile.py | 98 ++ tests/unit/accelerator/test_accelerator.py | 59 + tests/unit/alexnet_model.py | 44 +- tests/unit/checkpoint/common.py | 39 +- .../checkpoint/test_convert_checkpoint.py | 60 + .../unit/checkpoint/test_latest_checkpoint.py | 4 +- tests/unit/checkpoint/test_lr_scheduler.py | 19 +- tests/unit/checkpoint/test_mics_optimizer.py | 2 +- tests/unit/checkpoint/test_moe_checkpoint.py | 10 +- tests/unit/checkpoint/test_other_optimizer.py | 20 +- tests/unit/checkpoint/test_pipeline.py | 4 +- .../checkpoint/test_universal_checkpoint.py | 227 +++ tests/unit/checkpoint/test_zero_optimizer.py | 168 +-- tests/unit/comm/test_dist.py | 13 +- tests/unit/common.py | 193 ++- tests/unit/compression/test_compression.py | 2 +- tests/unit/compression/test_dequantization.py | 9 +- tests/unit/elasticity/test_elastic.py | 10 +- tests/unit/hybrid_engine/test_he_lora.py | 7 +- .../quantization/test_intX_quantization.py | 6 +- .../inference/test_checkpoint_sharding.py | 5 +- tests/unit/inference/test_human_eval.py | 73 + tests/unit/inference/test_inference.py | 275 ++-- tests/unit/inference/test_inference_config.py | 4 +- tests/unit/inference/test_model_profiling.py | 3 + tests/unit/inference/test_stable_diffusion.py | 6 +- .../ragged_ops/test_blocked_kv_copy.py | 12 +- .../ragged_ops/test_blocked_rotary_emb.py | 83 +- .../v2/kernels/ragged_ops/test_moe_gather.py | 67 +- .../v2/kernels/ragged_ops/test_moe_scatter.py | 69 +- ...t_top_1_gating.py => test_top_k_gating.py} | 83 +- .../parameters/test_parameter_list.py | 2 +- .../inference/v2/modules/test_blocked_attn.py | 11 +- .../inference/v2/modules/test_cutlass_moe.py | 114 ++ .../modules/test_quantized_linear_module.py | 183 +++ tests/unit/launcher/test_ds_arguments.py | 4 +- tests/unit/launcher/test_multinode_runner.py | 84 +- tests/unit/launcher/test_user_args.py | 66 + tests/unit/linear/test_ctx.py | 106 ++ tests/unit/linear/test_linear.py | 123 ++ tests/unit/linear/test_quant_param.py | 60 + .../model_parallelism/test_autotp_training.py | 574 ++++++++ .../test_configurable_parallel_mp.py | 4 +- .../test_configurable_parallel_pp.py | 4 +- tests/unit/moe/test_moe.py | 223 ++- tests/unit/moe/test_moe_tp.py | 2 +- tests/unit/monitor/test_monitor.py | 67 + tests/unit/multi_output_model.py | 8 +- .../accelerators/test_accelerator_backward.py | 8 +- .../accelerators/test_accelerator_forward.py | 4 + tests/unit/ops/adagrad/test_cpu_adagrad.py | 4 +- tests/unit/ops/adam/test_cpu_adam.py | 37 +- tests/unit/ops/adam/test_hybrid_adam.py | 10 +- tests/unit/ops/aio/test_aio.py | 175 ++- tests/unit/ops/aio/test_gds.py | 341 +++++ tests/unit/ops/fp_quantizer/test_fp8_gemm.py | 46 + tests/unit/ops/fp_quantizer/test_fp_quant.py | 134 ++ tests/unit/ops/lion/test_cpu_lion.py | 13 +- tests/unit/ops/lion/test_lion.py | 2 + .../inference/inference_test_utils.py | 37 +- .../transformer/inference/test_attention.py | 28 +- .../transformer/inference/test_bias_add.py | 16 +- .../transformer/inference/test_bias_geglu.py | 16 +- .../transformer/inference/test_bias_gelu.py | 20 +- .../transformer/inference/test_bias_relu.py | 16 +- .../ops/transformer/inference/test_gelu.py | 36 +- .../transformer/inference/test_layer_norm.py | 47 +- .../ops/transformer/inference/test_matmul.py | 7 +- .../inference/test_moe_res_matmult.py | 8 +- .../inference/test_residual_add.py | 29 +- .../transformer/inference/test_rms_norm.py | 14 +- .../ops/transformer/inference/test_rope.py | 38 + .../ops/transformer/inference/test_softmax.py | 11 +- tests/unit/pipe/test_pipe_module.py | 8 +- .../flops_profiler/test_flops_profiler.py | 2 +- .../test_activation_checkpointing.py | 54 + .../comm/test_coalesced_collectives.py | 102 +- .../unit/runtime/compile/test_compile_zero.py | 68 + tests/unit/runtime/compile/util.py | 124 ++ .../half_precision/onebit/test_onebit.py | 38 +- .../unit/runtime/half_precision/test_bf16.py | 11 +- .../half_precision/test_dynamic_loss_scale.py | 18 + .../unit/runtime/half_precision/test_fp16.py | 64 +- tests/unit/runtime/pipe/test_pipe.py | 97 +- .../test_averaging_sparse_gradients.py | 5 + .../sparse_tensor/test_sparse_grads.py | 6 +- tests/unit/runtime/test_data_efficiency.py | 36 +- tests/unit/runtime/test_ds_config_dict.py | 45 +- tests/unit/runtime/test_ds_config_model.py | 17 +- tests/unit/runtime/test_ds_initialize.py | 155 ++- tests/unit/runtime/test_lr_schedulers.py | 8 + tests/unit/runtime/test_multi_output_model.py | 21 +- tests/unit/runtime/test_mup_optimizers.py | 8 +- tests/unit/runtime/test_no_sync_ctxt.py | 197 +++ tests/unit/runtime/test_pld.py | 15 +- tests/unit/runtime/test_runtime_utils.py | 25 +- tests/unit/runtime/utils/test_partition.py | 23 +- .../zero/test_ignore_unused_parameters.py | 9 +- .../runtime/zero/test_nvme_checkpointing.py | 146 ++ .../unit/runtime/zero/test_offload_states.py | 135 ++ tests/unit/runtime/zero/test_unwrap_model.py | 67 + tests/unit/runtime/zero/test_zero.py | 353 +++-- tests/unit/runtime/zero/test_zero_config.py | 8 +- tests/unit/runtime/zero/test_zero_context.py | 46 +- .../zero/test_zero_context_ancestry.py | 2 +- .../runtime/zero/test_zero_context_return.py | 18 +- .../runtime/zero/test_zero_leaf_module.py | 262 ++++ .../runtime/zero/test_zero_multiple_run.py | 53 + .../runtime/zero/test_zero_nesting_init.py | 2 +- .../unit/runtime/zero/test_zero_offloadpp.py | 2 + .../runtime/zero/test_zero_tensor_fragment.py | 140 +- tests/unit/runtime/zero/test_zeropp.py | 188 ++- .../unit/sequence_parallelism/test_ulysses.py | 257 ++++ tests/unit/simple_model.py | 15 +- tests/unit/util.py | 44 +- tests/unit/utils/test_groups.py | 2 +- tests/unit/utils/test_partition_balanced.py | 25 + version.txt | 2 +- 828 files changed, 41890 insertions(+), 8018 deletions(-) delete mode 100644 .github/workflows/amd-mi100.yml delete mode 100644 .github/workflows/auto-sync.yml rename .github/workflows/{nv-torch110-p40.yml => cpu-torch-latest.yml} (55%) create mode 100644 .github/workflows/hpu-gaudi2-nightly.yml create mode 100644 .github/workflows/hpu-gaudi2.yml create mode 100644 .github/workflows/no-torch.yml rename .github/workflows/{nv-torch110-v100.yml => nv-flash-attn.yml} (54%) create mode 100644 .github/workflows/nv-human-eval.yml delete mode 100644 .github/workflows/nv-megatron.yml delete mode 100644 .github/workflows/nv-torch-latest-cpu.yml create mode 100644 .github/workflows/xpu-compile.yml create mode 100644 .github/workflows/xpu-max1100.yml create mode 100644 COMMITTERS.md create mode 100644 GOVERNANCE.md create mode 100644 accelerator/hpu_accelerator.py create mode 100644 accelerator/mlu_accelerator.py create mode 100755 accelerator/sdaa_accelerator.py create mode 100644 accelerator/xpu_accelerator.py create mode 100644 bin/deepspeed.bat create mode 100644 bin/ds_io create mode 100644 bin/ds_nvme_tune create mode 100644 bin/ds_report.bat create mode 100644 blogs/deepspeed-domino/README.md create mode 100644 blogs/deepspeed-domino/images/design-base.png create mode 100644 blogs/deepspeed-domino/images/design-column.png create mode 100644 blogs/deepspeed-domino/images/design-hybrid.png create mode 100644 blogs/deepspeed-domino/images/design-row.png create mode 100644 blogs/deepspeed-domino/images/domino-hero.png create mode 100644 blogs/deepspeed-domino/images/domino-logo.png create mode 100644 blogs/deepspeed-domino/images/gpt3-scale.png create mode 100644 blogs/deepspeed-domino/images/implement-bwd.png create mode 100644 blogs/deepspeed-domino/images/implement-fwd.png create mode 100644 blogs/deepspeed-domino/images/tp-ar.png create mode 100644 blogs/deepspeed-domino/images/tp-comm-overhead.png create mode 100644 blogs/deepspeed-fastgen/2024-01-19/README.md create mode 100644 blogs/deepspeed-fastgen/2024-01-19/assets/images/fastgen-hero-dark.png create mode 100644 blogs/deepspeed-fastgen/2024-01-19/assets/images/fastgen-hero-light.png create mode 100644 blogs/deepspeed-fastgen/2024-01-19/assets/images/th_lat_curve_falcon-180B_tp8.png create mode 100644 blogs/deepspeed-fastgen/2024-01-19/assets/images/th_lat_curve_falcon-40b_tp2.png create mode 100644 blogs/deepspeed-fastgen/2024-01-19/assets/images/th_lat_curve_mistralai-Mixtral-8x7B-v0.1_tp4_1.png create mode 100644 blogs/deepspeed-fastgen/2024-01-19/assets/images/th_lat_curve_mistralai-Mixtral-8x7B-v0.1_tp4_2.png create mode 100644 blogs/deepspeed-fastgen/2024-01-19/assets/images/th_lat_curve_phi-2_tp1.png create mode 100644 blogs/deepspeed-fp6/03-05-2024/README-Chinese.md create mode 100755 blogs/deepspeed-fp6/03-05-2024/README.md create mode 100644 blogs/deepspeed-fp6/03-05-2024/assets/fp6-design.png create mode 100644 blogs/deepspeed-fp6/03-05-2024/assets/hero-figure.png create mode 100644 blogs/deepspeed-fp6/03-05-2024/assets/servingllm/100-1000.png create mode 100644 blogs/deepspeed-fp6/03-05-2024/assets/servingllm/100-250.png create mode 100644 blogs/deepspeed-fp6/03-05-2024/assets/servingllm/100-500.png create mode 100644 blogs/deepspeed-gds/README.md create mode 100644 blogs/deepspeed-gds/chinese/README.md create mode 100644 blogs/deepspeed-gds/japanese/README.md create mode 100755 blogs/deepspeed-gds/media/figure1.png create mode 100755 blogs/deepspeed-gds/media/figure2.png create mode 100755 blogs/deepspeed-gds/media/figure3.png create mode 100755 blogs/deepspeed-gds/media/table1.png create mode 100644 blogs/deepspeed-ucp/README.md create mode 100644 blogs/deepspeed-ucp/chinese/README.md create mode 100644 blogs/deepspeed-ucp/japanese/README.md create mode 100644 blogs/deepspeed-ucp/media/flowchart.png create mode 100755 blogs/deepspeed-ucp/media/image1.png create mode 100644 blogs/deepspeed-ucp/media/image2.png create mode 100755 blogs/deepspeed-ucp/media/image3.png create mode 100755 blogs/deepspeed-ucp/media/image4.png create mode 100755 blogs/deepspeed-ucp/media/image5.png create mode 100644 blogs/deepspeed-ucp/media/image6.png create mode 100644 blogs/deepspeed-ucp/media/image7.png create mode 100644 blogs/deepspeed-ucp/media/image8.png create mode 100644 blogs/intel-inference/README.md create mode 100755 blogs/intel-inference/assets/intel-results.png create mode 100755 blogs/intel-inference/assets/software-arch.png create mode 100644 blogs/ulysses-offload/README.md create mode 100644 blogs/ulysses-offload/media/image1.png create mode 100644 blogs/ulysses-offload/media/image2.png create mode 100644 blogs/ulysses-offload/media/image3.png create mode 100644 blogs/ulysses-offload/media/image4.png create mode 100644 blogs/ulysses-offload/media/image5.png create mode 100644 blogs/windows/08-2024/README.md create mode 100644 blogs/windows/08-2024/chinese/README.md create mode 100644 blogs/windows/08-2024/japanese/README.md create mode 100644 blogs/windows/08-2024/media/bert_training.png create mode 100644 blogs/windows/08-2024/media/cifar10_training.png create mode 100644 blogs/windows/08-2024/media/ds_report.png create mode 100644 blogs/windows/08-2024/media/llama2-7b_inference.png create mode 100644 blogs/windows/08-2024/media/opt125m_finetuning.png create mode 100644 blogs/windows/08-2024/media/win_pip_install_deepspeed.png create mode 100644 csrc/aio/py_lib/deepspeed_aio_op_desc.cpp create mode 100644 csrc/aio/py_lib/deepspeed_aio_op_desc.h create mode 100644 csrc/aio/py_lib/deepspeed_cpu_op.cpp create mode 100644 csrc/aio/py_lib/deepspeed_cpu_op.h create mode 100644 csrc/aio/py_lib/deepspeed_py_io_handle.cpp create mode 100644 csrc/aio/py_lib/deepspeed_py_io_handle.h mode change 100755 => 100644 csrc/aio/py_lib/py_ds_aio.cpp create mode 100644 csrc/aio/py_test/ds_aio_args.py create mode 100644 csrc/aio/py_test/ds_aio_job.py delete mode 100644 csrc/common/custom_cuda_kernel.cu create mode 100644 csrc/cpu/comm/shm.cpp create mode 100644 csrc/cpu/comm/shm.h create mode 100644 csrc/cpu/comm/shm_interface.cpp create mode 100644 csrc/fp_quantizer/fp_quantize.cpp create mode 100644 csrc/fp_quantizer/fp_quantize.cu create mode 100644 csrc/fp_quantizer/includes/context.h create mode 100644 csrc/fp_quantizer/includes/fp_quantize.h create mode 100644 csrc/gds/py_lib/deepspeed_gds_op.cpp create mode 100644 csrc/gds/py_lib/deepspeed_gds_op.h create mode 100644 csrc/gds/py_lib/deepspeed_gds_utils.h create mode 100644 csrc/gds/py_lib/deepspeed_py_gds_handle.cpp create mode 100644 csrc/gds/py_lib/deepspeed_py_gds_handle.h create mode 100644 csrc/gds/py_lib/py_ds_gds.cpp create mode 100644 csrc/gds/py_test/validate_gds.py create mode 100644 csrc/xpu/adagrad/cpu_adagrad.cpp create mode 100755 csrc/xpu/adam/fused_adam_frontend.cpp create mode 100644 csrc/xpu/adam/multi_tensor_adam.dp.cpp create mode 100644 csrc/xpu/adam/multi_tensor_apply.dp.hpp create mode 100644 csrc/xpu/common/custom_cuda_kernel.dp.cpp create mode 100755 csrc/xpu/includes/compat.h create mode 100644 csrc/xpu/includes/cpu_adagrad.h create mode 100644 csrc/xpu/includes/cpu_adam.h create mode 100644 csrc/xpu/includes/simd.h create mode 100644 csrc/xpu/includes/type_shim.h create mode 100644 csrc/xpu/packbits/packing.cpp mode change 100644 => 100755 deepspeed/comm/comm.py mode change 100644 => 100755 deepspeed/comm/torch.py rename deepspeed/inference/v2/kernels/core_ops/bias_activations/{bias_activation.cu => bias_activation_cuda.cu} (100%) rename deepspeed/inference/v2/kernels/core_ops/cuda_layer_norm/{layer_norm.cu => layer_norm_cuda.cu} (99%) rename deepspeed/inference/v2/kernels/{ragged_ops/top_1_gating => core_ops/cuda_linear}/__init__.py (69%) create mode 100644 deepspeed/inference/v2/kernels/core_ops/cuda_linear/cuda_linear.py create mode 100644 deepspeed/inference/v2/kernels/core_ops/cuda_linear/include/configs.h create mode 100644 deepspeed/inference/v2/kernels/core_ops/cuda_linear/include/kernel_matmul.cuh create mode 100644 deepspeed/inference/v2/kernels/core_ops/cuda_linear/include/kernel_reduction.cuh create mode 100644 deepspeed/inference/v2/kernels/core_ops/cuda_linear/include/ptx_cp.async.cuh create mode 100644 deepspeed/inference/v2/kernels/core_ops/cuda_linear/include/ptx_mma.cuh create mode 100644 deepspeed/inference/v2/kernels/core_ops/cuda_linear/include/utils_core.cuh create mode 100644 deepspeed/inference/v2/kernels/core_ops/cuda_linear/include/utils_gmem.cuh create mode 100644 deepspeed/inference/v2/kernels/core_ops/cuda_linear/include/utils_paralleldequant.cuh create mode 100644 deepspeed/inference/v2/kernels/core_ops/cuda_linear/include/weight_prepacking.h create mode 100644 deepspeed/inference/v2/kernels/core_ops/cuda_linear/linear_kernels.cpp create mode 100644 deepspeed/inference/v2/kernels/core_ops/cuda_linear/linear_kernels.h create mode 100644 deepspeed/inference/v2/kernels/core_ops/cuda_linear/linear_kernels_cuda.cu create mode 100644 deepspeed/inference/v2/kernels/core_ops/cuda_linear/linear_kernels_cuda.h rename deepspeed/inference/v2/kernels/core_ops/cuda_rms_norm/{rms_norm.cu => rms_norm_cuda.cu} (100%) rename deepspeed/inference/v2/kernels/core_ops/gated_activations/{gated_activation_kernels.cu => gated_activation_kernels_cuda.cu} (96%) rename deepspeed/inference/v2/kernels/ragged_ops/embed/{embed.cu => embed_cuda.cu} (100%) create mode 100644 deepspeed/inference/v2/kernels/ragged_ops/includes/top_k_utils.h rename deepspeed/inference/v2/kernels/ragged_ops/linear_blocked_kv_rotary/{blocked_kv_rotary.cu => blocked_kv_rotary_cuda.cu} (54%) rename deepspeed/inference/v2/kernels/ragged_ops/logits_gather/{logits_gather.cu => logits_gather_cuda.cu} (100%) rename deepspeed/inference/v2/kernels/ragged_ops/moe_gather/{moe_gather.cu => moe_gather_cuda.cu} (50%) delete mode 100644 deepspeed/inference/v2/kernels/ragged_ops/moe_scatter/moe_scatter.cu create mode 100644 deepspeed/inference/v2/kernels/ragged_ops/moe_scatter/moe_scatter_cuda.cu create mode 100644 deepspeed/inference/v2/kernels/ragged_ops/top_k_gating/__init__.py rename deepspeed/inference/v2/kernels/ragged_ops/{top_1_gating/top_1_gating.cpp => top_k_gating/top_k_gating.cpp} (67%) rename deepspeed/inference/v2/kernels/ragged_ops/{top_1_gating/top_1_gating.cuh => top_k_gating/top_k_gating.cuh} (87%) rename deepspeed/inference/v2/kernels/ragged_ops/{top_1_gating/top_1_gating.h => top_k_gating/top_k_gating.h} (86%) rename deepspeed/inference/v2/kernels/ragged_ops/{top_1_gating/top_1_gating.py => top_k_gating/top_k_gating.py} (87%) rename deepspeed/inference/v2/kernels/ragged_ops/{top_1_gating/top_1_gating.cu => top_k_gating/top_k_gating_cuda.cu} (59%) create mode 100644 deepspeed/inference/v2/model_implementations/falcon/__init__.py create mode 100644 deepspeed/inference/v2/model_implementations/falcon/container.py create mode 100644 deepspeed/inference/v2/model_implementations/falcon/model.py create mode 100644 deepspeed/inference/v2/model_implementations/falcon/policy.py rename deepspeed/inference/v2/model_implementations/llama_v2/{llama_v2_containers.py => container.py} (95%) rename deepspeed/inference/v2/model_implementations/llama_v2/{llama_v2_model.py => model.py} (92%) rename deepspeed/inference/v2/model_implementations/llama_v2/{llama_v2_policy.py => policy.py} (76%) create mode 100644 deepspeed/inference/v2/model_implementations/mixtral/__init__.py create mode 100644 deepspeed/inference/v2/model_implementations/mixtral/container.py create mode 100644 deepspeed/inference/v2/model_implementations/mixtral/model.py create mode 100644 deepspeed/inference/v2/model_implementations/mixtral/policy.py create mode 100644 deepspeed/inference/v2/model_implementations/phi/__init__.py create mode 100644 deepspeed/inference/v2/model_implementations/phi/containers.py create mode 100644 deepspeed/inference/v2/model_implementations/phi/model.py create mode 100644 deepspeed/inference/v2/model_implementations/phi/policy.py create mode 100644 deepspeed/inference/v2/model_implementations/phi3/__init__.py create mode 100644 deepspeed/inference/v2/model_implementations/phi3/containers.py create mode 100644 deepspeed/inference/v2/model_implementations/phi3/model.py create mode 100644 deepspeed/inference/v2/model_implementations/phi3/policy.py create mode 100644 deepspeed/inference/v2/model_implementations/qwen/__init__.py create mode 100644 deepspeed/inference/v2/model_implementations/qwen/container.py create mode 100644 deepspeed/inference/v2/model_implementations/qwen/model.py create mode 100644 deepspeed/inference/v2/model_implementations/qwen/policy.py create mode 100644 deepspeed/inference/v2/model_implementations/qwen_v2/__init__.py create mode 100644 deepspeed/inference/v2/model_implementations/qwen_v2/container.py create mode 100644 deepspeed/inference/v2/model_implementations/qwen_v2/model.py create mode 100644 deepspeed/inference/v2/model_implementations/qwen_v2/policy.py create mode 100644 deepspeed/inference/v2/model_implementations/qwen_v2_moe/__init__.py create mode 100644 deepspeed/inference/v2/model_implementations/qwen_v2_moe/container.py create mode 100644 deepspeed/inference/v2/model_implementations/qwen_v2_moe/model.py create mode 100644 deepspeed/inference/v2/model_implementations/qwen_v2_moe/policy.py create mode 100644 deepspeed/inference/v2/modules/implementations/linear/quantized_linear.py create mode 100644 deepspeed/launcher/launcher_helper.py create mode 100644 deepspeed/linear/__init__.py create mode 100644 deepspeed/linear/config.py create mode 100644 deepspeed/linear/context_manager.py create mode 100644 deepspeed/linear/optimized_linear.py create mode 100644 deepspeed/linear/quantization.py mode change 100644 => 100755 deepspeed/module_inject/auto_tp.py create mode 100644 deepspeed/monitor/comet.py create mode 100644 deepspeed/nvme/__init__.py create mode 100644 deepspeed/nvme/ds_aio_args.py create mode 100755 deepspeed/nvme/ds_aio_basic.py create mode 100755 deepspeed/nvme/ds_aio_handle.py create mode 100644 deepspeed/nvme/ds_aio_job.py create mode 100755 deepspeed/nvme/parse_nvme_stats.py create mode 100644 deepspeed/nvme/perf_generate_param.py create mode 100644 deepspeed/nvme/perf_run_sweep.py create mode 100644 deepspeed/nvme/perf_sweep_utils.py create mode 100755 deepspeed/nvme/test_ds_aio.py create mode 100755 deepspeed/nvme/test_ds_aio_utils.py create mode 100644 deepspeed/nvme/validate_async_io.py create mode 100644 deepspeed/ops/fp_quantizer/__init__.py create mode 100644 deepspeed/ops/fp_quantizer/fp8_gemm.py create mode 100644 deepspeed/ops/fp_quantizer/fp8_gemm_triton.py create mode 100644 deepspeed/ops/fp_quantizer/quantize.py create mode 100755 deepspeed/ops/gds/__init__.py create mode 100644 deepspeed/ops/transformer/inference/op_binding/bias_add.py create mode 100644 deepspeed/ops/transformer/inference/op_binding/bias_gelu.py create mode 100644 deepspeed/ops/transformer/inference/op_binding/bias_relu.py create mode 100644 deepspeed/ops/transformer/inference/op_binding/bias_residual.py create mode 100644 deepspeed/ops/transformer/inference/op_binding/einsum_sec_sm_ecm.py create mode 100644 deepspeed/ops/transformer/inference/op_binding/gated_activation.py create mode 100644 deepspeed/ops/transformer/inference/op_binding/layer_norm.py create mode 100644 deepspeed/ops/transformer/inference/op_binding/moe_res_matmul.py create mode 100644 deepspeed/ops/transformer/inference/op_binding/pad_transform.py create mode 100644 deepspeed/ops/transformer/inference/op_binding/pre_rms_norm.py create mode 100644 deepspeed/ops/transformer/inference/op_binding/rms_norm.py create mode 100644 deepspeed/ops/transformer/inference/op_binding/vector_add.py create mode 100644 deepspeed/ops/transformer/inference/op_binding/workspace.py delete mode 100644 deepspeed/pydantic_v1.py create mode 100644 deepspeed/runtime/base_optimizer.py create mode 100644 deepspeed/runtime/comm/compressed.py create mode 100644 deepspeed/runtime/comm/hccl.py create mode 100644 deepspeed/runtime/compiler.py create mode 100644 deepspeed/runtime/domino/__init__.py create mode 100644 deepspeed/runtime/domino/transformer.py mode change 100644 => 100755 deepspeed/runtime/engine.py create mode 100644 deepspeed/runtime/tensor_parallel/__init__.py create mode 100644 deepspeed/runtime/tensor_parallel/config.py create mode 100644 deepspeed/runtime/tensor_parallel/tp_manager.py create mode 100644 deepspeed/runtime/zero/offload_states.py create mode 100644 deepspeed/sequence/cross_entropy.py create mode 100644 deepspeed/sequence/fpdt_layer.py create mode 100644 deepspeed/utils/bwc.py create mode 100644 deepspeed/utils/config.py mode change 100644 => 100755 deepspeed/utils/groups.py create mode 100644 deepspeed/utils/torch.py create mode 100644 deepspeed/utils/z3_leaf_module.py create mode 100644 docker/gh-builder/Dockerfile.py311 create mode 100644 docker/gh-builder/Dockerfile.py312 rename docker/{Dockerfile.rocm => rocm/Dockerfile} (100%) create mode 100644 docs/_tutorials/accelerator-setup-guide.md mode change 100644 => 100755 docs/_tutorials/automatic-tensor-parallelism.md create mode 100644 docs/_tutorials/deepnvme.md create mode 100644 docs/_tutorials/domino.md create mode 100644 docs/_tutorials/ulysses-offload.md create mode 100644 docs/_tutorials/universal-checkpointing.md create mode 100644 docs/assets/files/DeepSpeed-Meetup-May-Japan-2024.pdf create mode 100644 docs/assets/images/comet_monitor.png create mode 100644 docs/assets/images/deepnvme_ops_report.png create mode 100644 op_builder/cpu/async_io.py create mode 100644 op_builder/fp_quantizer.py create mode 100644 op_builder/gds.py create mode 100644 op_builder/hpu/__init__.py create mode 100644 op_builder/hpu/builder.py create mode 100644 op_builder/hpu/cpu_adam.py create mode 100644 op_builder/hpu/fp_quantizer.py create mode 100644 op_builder/hpu/fused_adam.py create mode 100644 op_builder/hpu/no_impl.py create mode 100644 op_builder/hpu/transformer_inference.py create mode 100644 op_builder/mlu/__init__.py create mode 100644 op_builder/mlu/builder.py create mode 100644 op_builder/mlu/cpu_adagrad.py create mode 100644 op_builder/mlu/cpu_adam.py create mode 100644 op_builder/mlu/fused_adam.py create mode 100644 op_builder/mlu/no_impl.py create mode 100644 op_builder/npu/async_io.py create mode 100644 op_builder/npu/inference.py create mode 100755 op_builder/sdaa/__init__.py create mode 100755 op_builder/sdaa/builder.py create mode 100755 op_builder/sdaa/cpu_adam.py create mode 100755 op_builder/sdaa/fused_adam.py create mode 100755 op_builder/sdaa/no_impl.py create mode 100755 op_builder/xpu/__init__.py create mode 100644 op_builder/xpu/async_io.py create mode 100644 op_builder/xpu/builder.py create mode 100644 op_builder/xpu/cpu_adagrad.py create mode 100644 op_builder/xpu/cpu_adam.py create mode 100644 op_builder/xpu/flash_attn.py create mode 100644 op_builder/xpu/fused_adam.py create mode 100644 op_builder/xpu/inference.py create mode 100644 op_builder/xpu/no_impl.py create mode 100644 op_builder/xpu/packbits.py create mode 100755 scripts/check-extraindexurl.py create mode 100644 tests/onebit/README.md create mode 100644 tests/onebit/test_compressed_backend.py create mode 100644 tests/onebit/test_compressed_perf.py create mode 100644 tests/torch_compile/ds_config_z2.json create mode 100644 tests/torch_compile/ds_config_z3.json create mode 100644 tests/torch_compile/test_compile.py create mode 100644 tests/unit/accelerator/test_accelerator.py create mode 100644 tests/unit/checkpoint/test_convert_checkpoint.py create mode 100644 tests/unit/checkpoint/test_universal_checkpoint.py create mode 100644 tests/unit/inference/test_human_eval.py rename tests/unit/inference/v2/kernels/ragged_ops/{test_top_1_gating.py => test_top_k_gating.py} (51%) create mode 100644 tests/unit/inference/v2/modules/test_quantized_linear_module.py create mode 100644 tests/unit/launcher/test_user_args.py create mode 100644 tests/unit/linear/test_ctx.py create mode 100644 tests/unit/linear/test_linear.py create mode 100644 tests/unit/linear/test_quant_param.py create mode 100644 tests/unit/model_parallelism/test_autotp_training.py create mode 100644 tests/unit/ops/aio/test_gds.py create mode 100644 tests/unit/ops/fp_quantizer/test_fp8_gemm.py create mode 100644 tests/unit/ops/fp_quantizer/test_fp_quant.py create mode 100644 tests/unit/ops/transformer/inference/test_rope.py create mode 100644 tests/unit/runtime/compile/test_compile_zero.py create mode 100644 tests/unit/runtime/compile/util.py create mode 100644 tests/unit/runtime/test_no_sync_ctxt.py create mode 100644 tests/unit/runtime/zero/test_nvme_checkpointing.py create mode 100644 tests/unit/runtime/zero/test_offload_states.py create mode 100644 tests/unit/runtime/zero/test_unwrap_model.py create mode 100644 tests/unit/runtime/zero/test_zero_leaf_module.py create mode 100644 tests/unit/runtime/zero/test_zero_multiple_run.py create mode 100644 tests/unit/sequence_parallelism/test_ulysses.py create mode 100644 tests/unit/utils/test_partition_balanced.py diff --git a/.github/ISSUE_TEMPLATE/deepspeed_chat_bug_report.md b/.github/ISSUE_TEMPLATE/deepspeed_chat_bug_report.md index bf997775fe32..f27b1c6303eb 100644 --- a/.github/ISSUE_TEMPLATE/deepspeed_chat_bug_report.md +++ b/.github/ISSUE_TEMPLATE/deepspeed_chat_bug_report.md @@ -32,7 +32,7 @@ If applicable, add screenshots to help explain your problem. **System info (please complete the following information):** - OS: [e.g. Ubuntu 18.04] - GPU count and types [e.g. two machines with x8 A100s each] - - (if applicable) what [DeepSpeed-MII](https://github.com/microsoft/deepspeed-mii) version are you using + - (if applicable) what [DeepSpeed-MII](https://github.com/deepspeedai/deepspeed-mii) version are you using - (if applicable) Hugging Face Transformers/Accelerate/etc. versions - Python version - Any other relevant info about your setup diff --git a/.github/ISSUE_TEMPLATE/inference_bug_report.md b/.github/ISSUE_TEMPLATE/inference_bug_report.md index bc5df17258b0..8a4144ce049a 100644 --- a/.github/ISSUE_TEMPLATE/inference_bug_report.md +++ b/.github/ISSUE_TEMPLATE/inference_bug_report.md @@ -29,7 +29,7 @@ If applicable, add screenshots to help explain your problem. **System info (please complete the following information):** - OS: [e.g. Ubuntu 18.04] - GPU count and types [e.g. two machines with x8 A100s each] - - (if applicable) what [DeepSpeed-MII](https://github.com/microsoft/deepspeed-mii) version are you using + - (if applicable) what [DeepSpeed-MII](https://github.com/deepspeedai/deepspeed-mii) version are you using - (if applicable) Hugging Face Transformers/Accelerate/etc. versions - Python version - Any other relevant info about your setup diff --git a/.github/workflows/amd-mi100.yml b/.github/workflows/amd-mi100.yml deleted file mode 100644 index 7ad0f4178db4..000000000000 --- a/.github/workflows/amd-mi100.yml +++ /dev/null @@ -1,56 +0,0 @@ -name: amd-mi100 - -on: - schedule: - - cron: "0 0 * * *" - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -jobs: - amd-tests: - # The type of runner that the job will run on - runs-on: [self-hosted, amd, mi100] - - # Steps represent a sequence of tasks that will be executed as part of the job - steps: - # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3 - - - id: setup-venv - uses: ./.github/workflows/setup-venv - - - name: Install pytorch - run: | - pip install --cache-dir $TORCH_CACHE torch==1.13.1 torchvision --extra-index-url https://download.pytorch.org/whl/rocm5.1.1 - python -c "import torch; print('torch:', torch.__version__, torch)" - python -c "import torch; print('CUDA available:', torch.cuda.is_available())" - - - name: Install transformers - run: | - git clone https://github.com/huggingface/transformers - cd transformers - # if needed switch to the last known good SHA until transformers@master is fixed - # git checkout 1cc453d33 - git rev-parse --short HEAD - pip install . - - # Runs a set of commands using the runners shell - - name: Install deepspeed - run: | - pip install .[dev,1bit,autotuning] - #python -c "from deepspeed.env_report import cli_main; cli_main()" - ds_report - - - name: Python environment - run: | - pip list - - # Runs a set of commands using the runners shell - - name: Unit tests - run: | - unset TORCH_CUDA_ARCH_LIST # only jit compile for current arch - cd tests - pytest $PYTEST_OPTS -n 4 --verbose unit/ - pytest $PYTEST_OPTS -m 'sequential' unit/ diff --git a/.github/workflows/amd-mi200.yml b/.github/workflows/amd-mi200.yml index 8c4292d4675c..6e8d5847835d 100644 --- a/.github/workflows/amd-mi200.yml +++ b/.github/workflows/amd-mi200.yml @@ -1,9 +1,13 @@ name: amd-mi200 on: + workflow_dispatch: + pull_request: + paths: + - '.github/workflows/amd-mi200.yml' + - 'requirements/**' schedule: - cron: "0 0 * * *" - workflow_dispatch: concurrency: group: ${{ github.workflow }}-${{ github.ref }} @@ -21,14 +25,14 @@ jobs: # Steps represent a sequence of tasks that will be executed as part of the job steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - id: setup-venv uses: ./.github/workflows/setup-venv - name: Install pytorch run: | - pip install -U --cache-dir $TORCH_CACHE torch torchvision --index-url https://download.pytorch.org/whl/rocm5.6 + pip install -U --cache-dir $TORCH_CACHE torch torchvision --index-url https://download.pytorch.org/whl/rocm6.0 python -c "import torch; print('torch:', torch.__version__, torch)" python -c "import torch; print('CUDA available:', torch.cuda.is_available())" @@ -44,8 +48,6 @@ jobs: - name: Install (ROCm) apex run: | git clone https://github.com/ROCmSoftwarePlatform/apex.git - cd apex - git checkout torch_2.1_higher CURRENT_VER=$(git rev-parse HEAD) INSTALLED_VER=$(cat /blob/amd-apex/.venv_installed_version) if [[ "$CURRENT_VER" != "$INSTALLED_VER" ]]; then diff --git a/.github/workflows/auto-sync.yml b/.github/workflows/auto-sync.yml deleted file mode 100644 index bfbf5a2ae37a..000000000000 --- a/.github/workflows/auto-sync.yml +++ /dev/null @@ -1,59 +0,0 @@ -name: AutoSync - -on: - push: - branches: - - 'master' - -jobs: - - Create-PR: - runs-on: ubuntu-20.04 - - steps: - - uses: actions/checkout@v3 - with: - token: ${{ secrets.GHP_TOKEN }} - repository: ${{ secrets.DST_REPO }} - ref: ${{ secrets.DST_REPO_BRANCH }} - path: dst-repo - - - name: Get PR data - run: | - echo "REPO=${{ github.repository }}" >> $GITHUB_ENV - echo "COMMIT_SHA=${{ github.event.after }}" >> $GITHUB_ENV - echo "SHORT_SHA=$(echo ${{ github.event.after }} | cut -c1-8)" >> $GITHUB_ENV - echo "USERNAME=${{ github.event.head_commit.author.username }}" >> $GITHUB_ENV - echo "USER_EMAIL=${{ github.event.head_commit.author.username }}@users.noreply.github.com" >> $GITHUB_ENV - echo "PR_NAME=$(echo '${{ github.event.head_commit.message }}' | head -1 | sed 's|#|${{ github.repository }}#|g')" >> $GITHUB_ENV - - - name: Cherry pick commit - continue-on-error: true - run: | - cd dst-repo - git config --global user.name ${{ env.USERNAME }} - git config --global user.email ${{ env.USER_EMAIL }} - git fetch https://github.com/${{ env.REPO }}.git master - git cherry-pick FETCH_HEAD --strategy-option octopus - - - name: Add modified files - run: | - cd dst-repo - git add . - - - name: Create Pull Request - uses: peter-evans/create-pull-request@v4 - with: - path: dst-repo - token: ${{ secrets.GHP_TOKEN }} - body: | - **Auto-generated PR** - Repo - [${{ env.REPO }}](https://github.com/${{ env.REPO }}) - PR name - ${{ env.PR_NAME }} - Commit - ${{ env.REPO }}@${{ env.COMMIT_SHA }} - Author - @${{ env.USERNAME }} - branch: AutoPR/${{ env.SHORT_SHA }} - assignees: ${{ env.USERNAME }} - title: ${{ env.PR_NAME }} - labels: AutoPR - author: ${{ env.USERNAME }} <${{ env.USER_EMAIL }}> diff --git a/.github/workflows/cpu-inference.yml b/.github/workflows/cpu-inference.yml index 521fe2b5bea4..007313964f4a 100644 --- a/.github/workflows/cpu-inference.yml +++ b/.github/workflows/cpu-inference.yml @@ -2,6 +2,19 @@ name: cpu-inference on: workflow_dispatch: + pull_request: + paths: + - '.github/workflows/cpu-inference.yml' + - 'requirements/**' + - 'deepspeed/__init__.py' + - 'deepspeed/inference/**' + - '!deepspeed/inference/v2/**' # exclude v2 dir + - 'tests/unit/inference/**' + - '!tests/unit/inference/v2/**' # exclude v2 tests dir + merge_group: + branches: [ master ] + schedule: + - cron: "0 0 * * 0" concurrency: group: ${{ github.workflow }}-${{ github.ref }} @@ -9,45 +22,53 @@ concurrency: jobs: unit-tests: - runs-on: ubuntu-20.04 + runs-on: [self-hosted, cpu] + + env: {ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true} # Allow using Node16 actions steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - id: setup-venv uses: ./.github/workflows/setup-venv + - name: Install gcc-9 + run: | + sudo add-apt-repository -u ppa:ubuntu-toolchain-r/test + sudo apt install -y gcc-9 g++-9 + # set gcc-9 and g++9 to default + sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 99 + sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 99 + + - name: Check gcc version + run: | + # Get gcc version + gcc --version + g++ --version + - name: Detect instruction sets on instance run: | lscpu - pip install cmake - git clone https://github.com/intel/intel-extension-for-pytorch - cd intel-extension-for-pytorch/tests/cpu/isa - cmake . - make - ./cpu_features - name: Install numactl run: | sudo apt-get install -y numactl - - name: Install oneCCL Bindings for PyTorch + - name: Install dependencies run: | - python -m pip install intel_extension_for_pytorch - python -m pip install oneccl_bind_pt==2.0 -f https://developer.intel.com/ipex-whl-stable-cpu + pip install torch + # check installed version + pip list |grep \\\ - name: Install oneCCL run: | + pip install cmake git clone https://github.com/oneapi-src/oneCCL cd oneCCL mkdir build cd build cmake .. - make - make install - #source ./_install/env/setvars.sh - # test whether oneCCL is correctly installed - #mpirun -n 2 ./examples/benchmark/benchmark + make -j install - name: Install transformers run: | @@ -62,14 +83,21 @@ jobs: pip install .[dev,1bit,autotuning,inf] ds_report - - name: Python environment + - name: Python environment check run: | pip list + source oneCCL/build/_install/env/setvars.sh + export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libstdc++.so.6 + # check whether the environment is properly setup + python -c "import deepspeed;from deepspeed.accelerator import get_accelerator;print(get_accelerator().device_name());print(get_accelerator().is_available())" - name: Unit tests run: | + # prep oneCCL for CCLBackend comm ops building source oneCCL/build/_install/env/setvars.sh + export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libstdc++.so.6 unset TORCH_CUDA_ARCH_LIST # only jit compile for current arch - cd tests - TRANSFORMERS_CACHE=~/tmp/transformers_cache/ TORCH_EXTENSIONS_DIR=./torch-extensions pytest -m 'seq_inference' unit/ - TRANSFORMERS_CACHE=~/tmp/transformers_cache/ TORCH_EXTENSIONS_DIR=./torch-extensions pytest -m 'inference_ops' -m 'inference' unit/ + cd tests + # LOCAL_SIZE=2 enforce CPU to report 2 devices, this helps run the test on github default runner + LOCAL_SIZE=2 COLUMNS=240 HF_HOME=~/tmp/hf_home/ TORCH_EXTENSIONS_DIR=./torch-extensions pytest -m 'seq_inference' unit/ + LOCAL_SIZE=2 COLUMNS=240 HF_HOME=~/tmp/hf_home/ TORCH_EXTENSIONS_DIR=./torch-extensions pytest -m 'inference_ops' -m 'inference' unit/ diff --git a/.github/workflows/nv-torch110-p40.yml b/.github/workflows/cpu-torch-latest.yml similarity index 55% rename from .github/workflows/nv-torch110-p40.yml rename to .github/workflows/cpu-torch-latest.yml index 45f3e0438233..6496d7e35065 100644 --- a/.github/workflows/nv-torch110-p40.yml +++ b/.github/workflows/cpu-torch-latest.yml @@ -1,31 +1,39 @@ -name: nv-torch110-p40 +name: cpu-torch-latest on: + workflow_dispatch: + pull_request: + paths-ignore: + - 'docs/**' + - 'blogs/**' + - 'deepspeed/inference/v2/**' + - 'tests/unit/inference/v2/**' + merge_group: + branches: [ master ] schedule: - cron: "0 0 * * *" - workflow_dispatch: concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true -permissions: - contents: read - issues: write - jobs: unit-tests: - runs-on: [self-hosted, nvidia, cu111, p40] + runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - id: setup-venv uses: ./.github/workflows/setup-venv + - name: Install system packages + run: | + sudo apt-get install -y numactl pdsh + - name: Install pytorch run: | - pip install -U --cache-dir $TORCH_CACHE torch==1.10.0+cu111 torchvision==0.11.0+cu111 -f https://download.pytorch.org/whl/torch_stable.html + pip install torch torchvision --index-url https://download.pytorch.org/whl/cpu python -c "import torch; print('torch:', torch.__version__, torch)" python -c "import torch; print('CUDA available:', torch.cuda.is_available())" @@ -34,13 +42,13 @@ jobs: git clone https://github.com/huggingface/transformers cd transformers # if needed switch to the last known good SHA until transformers@master is fixed - # git checkout 1cc453d33 + git checkout 981c276 git rev-parse --short HEAD pip install . - name: Install deepspeed run: | - pip install .[dev,1bit,autotuning] --no-build-isolation + pip install .[dev,autotuning] ds_report - name: Python environment @@ -51,13 +59,5 @@ jobs: run: | unset TORCH_CUDA_ARCH_LIST # only jit compile for current arch cd tests - pytest $PYTEST_OPTS --forked -n 4 unit/ --torch_ver="1.10" --cuda_ver="11.1" - - - name: Open GitHub issue if nightly CI fails - if: ${{ failure() && (github.event_name == 'schedule') }} - uses: JasonEtco/create-an-issue@v2 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - filename: .github/ISSUE_TEMPLATE/ci_failure_report.md - update_existing: true + HF_HOME=/tmp/hf_home/ pytest $PYTEST_OPTS -n 4 unit/ --torch_ver="2.6" + HF_HOME=/tmp/hf_home/ pytest $PYTEST_OPTS -m 'sequential' unit/ --torch_ver="2.6" diff --git a/.github/workflows/formatting.yml b/.github/workflows/formatting.yml index a168af277fb8..e33da160aaf3 100644 --- a/.github/workflows/formatting.yml +++ b/.github/workflows/formatting.yml @@ -1,6 +1,7 @@ name: Formatting on: + workflow_dispatch: pull_request: branches: '**' @@ -16,11 +17,11 @@ concurrency: jobs: # formatting and basic install on cpu-only machine - formatting: - runs-on: ubuntu-20.04 + unit-tests: + runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: environment run: | diff --git a/.github/workflows/hpu-gaudi2-nightly.yml b/.github/workflows/hpu-gaudi2-nightly.yml new file mode 100644 index 000000000000..c0576360cd61 --- /dev/null +++ b/.github/workflows/hpu-gaudi2-nightly.yml @@ -0,0 +1,85 @@ +name: hpu-gaudi2-nightly + +on: + workflow_dispatch: + schedule: + - cron: "0 0 * * *" + pull_request: + paths: + - ".github/workflows/hpu-gaudi2-nightly.yml" + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +permissions: + contents: read + issues: write + +jobs: + unit-tests: + # The type of runner that the job will run on + runs-on: [self-hosted, intel, gaudi2] + container: + image: vault.habana.ai/gaudi-docker/1.19.0/ubuntu22.04/habanalabs/pytorch-installer-2.5.1:latest + ports: + - 80 + options: --runtime=habana -e HABANA_VISIBLE_DEVICES=all -e OMPI_MCA_btl_vader_single_copy_mechanism=none --cap-add=sys_nice + + env: + PT_HPU_LAZY_MODE: 0 + TORCHINDUCTOR_COMPILE_THREADS: 1 + TEST_LIST: | + test_adamw.py + test_bf16.py + test_ds_config_dict.py + test_dynamic_loss_scale.py + test_latest_checkpoint.py + test_moe_checkpoint.py + test_multi_output_model.py + test_other_optimizer.py + test_pipe.py + test_pipeline.py + test_universal_checkpoint.py + test_zero_context_return.py + test_zero_leaf_module.py + test_zero_offloadpp.py + test_zero_tiled.py + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v4 + + - name: Check container state + run: | + ldd --version + hl-smi -L + python -c "import torch; print('torch:', torch.__version__, torch)" + python -c "import torch; print('CUDA available:', torch.cuda.is_available())" + + - name: Install transformers + run: | + git clone https://github.com/huggingface/transformers + cd transformers + git rev-parse --short HEAD + pip install . + + - name: Install deepspeed + run: | + pip install .[dev,autotuning] + ds_report + + - name: Python environment + run: | + pip list + + - name: Unit tests + run: | + unset TORCH_CUDA_ARCH_LIST # only jit compile for current arch + cd tests + export PT_HPU_LAZY_MODE=${PT_HPU_LAZY_MODE} + export TORCHINDUCTOR_COMPILE_THREADS=${TORCHINDUCTOR_COMPILE_THREADS} + TEST_LIST=$(echo "$TEST_LIST" | awk 'NF{printf "%s%s", (NR>1 ? " or " : ""), $0} END{if (NR>1) print ""}') + echo "TEST_LIST ${TEST_LIST}" + pytest --verbose unit/ -k "${TEST_LIST}" diff --git a/.github/workflows/hpu-gaudi2.yml b/.github/workflows/hpu-gaudi2.yml new file mode 100644 index 000000000000..48730442686c --- /dev/null +++ b/.github/workflows/hpu-gaudi2.yml @@ -0,0 +1,136 @@ +name: hpu-gaudi2 + +on: + workflow_dispatch: + schedule: + - cron: "0 0 * * *" + pull_request: + paths: + - ".github/workflows/hpu-gaudi2.yml" + - "accelerator/hpu_accelerator.py" + - "op_builder/hpu/**" + - "deepspeed/runtime/engine.py" + - "deepspeed/runtime/bf16_optimizer.py" + - "deepspeed/runtime/zero/stage_1_and_2.py" + - "deepspeed/runtime/zero/stage3.py" + - "deepspeed/runtime/zero/partition_parameters.py" + - "deepspeed/runtime/zero/partitioned_param_coordinator.py" + - "deepspeed/runtime/zero/parameter_offload.py" + - "deepspeed/runtime/pipe/engine.py" + - "deepspeed/runtime/utils.py" + - "deepspeed/inference/engine.py" + - "deepspeed/module_inject/auto_tp.py" + - "deepspeed/module_inject/replace_module.py" + - "deepspeed/module_inject/load_checkpoint.py" + - "deepspeed/module_inject/inject.py" + - "deepspeed/ops/transformer/**" + - "deepspeed/ops/adam/**" + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +permissions: + contents: read + issues: write + +jobs: + unit-tests: + # The type of runner that the job will run on + runs-on: [self-hosted, intel, gaudi2] + container: + image: vault.habana.ai/gaudi-docker/1.19.0/ubuntu22.04/habanalabs/pytorch-installer-2.5.1:latest + ports: + - 80 + options: --runtime=habana -e HABANA_VISIBLE_DEVICES=all -e OMPI_MCA_btl_vader_single_copy_mechanism=none --cap-add=sys_nice + + env: + PT_HPU_LAZY_MODE: 0 + TORCHINDUCTOR_COMPILE_THREADS: 1 + TEST_LIST: | + test_accelerator.py + test_autotuning.py + test_compression.py + test_dist.py + test_elastic.py + test_ds_arguments.py + test_run.py + test_multinode_runner.py + test_moe_tp.py + test_monitor.py + (test_zero_optimizer.py and (TestSaveTensorClone or TestZeRONonDistributed)) + (test_latest_checkpoint.py and test_missing_latest) + test_reshape_checkpoint.py + test_shared_weights.py + test_sparse.py + test_tag_validation.py + test_pipe_module.py + (test_flops_profiler.py and test_flops_profiler_in_inference) + test_get_optim_files.py + test_groups.py + test_partition_balanced.py + (test_adamw.py and TestAdamConfigs) + test_coalesced_collectives.py + test_activation_checkpointing_non_reentrant.py + test_activation_checkpointing.py + test_data.py + (test_ds_config_dict.py and (TestBasicConfig or TestBatchConfig)) + test_ds_config_model.py + test_mup_optimizers.py + (test_pld.py and test_pld_schedule) + test_runtime_utils.py + test_pipe_schedule.py + test_topology.py + (test_ds_initialize.py and (TestClientOptimizer or TestClientLrScheduler)) + test_csr.py + (test_fp16.py and (TestZeroEmptyGrad or TestZeroAllowUntestedOptimizer)) + (test_bf16.py and TestZeroDtypeCocktail) + test_partition.py + test_ignore_unused_parameters.py + test_zero_config.py + test_zero_context_ancestry.py + (test_zero_context.py and not TestSerialContext) + test_zero_dynamic_class.py + test_zero_nesting_init.py + test_zeropp.py + (test_zero.py and (TestZero3ParamPartitioningLargeParam or TestZero3ParamPartitioningLargeParam)) + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v4 + + - name: Check container state + run: | + ldd --version + hl-smi -L + python -c "import torch; print('torch:', torch.__version__, torch)" + python -c "import torch; print('CUDA available:', torch.cuda.is_available())" + + - name: Install transformers + run: | + git clone https://github.com/huggingface/transformers + cd transformers + # if needed switch to the last known good SHA until transformers@master is fixed + git checkout 981c276 + git rev-parse --short HEAD + pip install . + + - name: Install deepspeed + run: | + pip install .[dev,autotuning] + ds_report + + - name: Python environment + run: | + pip list + + - name: Unit tests + run: | + unset TORCH_CUDA_ARCH_LIST # only jit compile for current arch + cd tests + export PT_HPU_LAZY_MODE=${PT_HPU_LAZY_MODE} + export TORCHINDUCTOR_COMPILE_THREADS=${TORCHINDUCTOR_COMPILE_THREADS} + TEST_LIST=$(echo "$TEST_LIST" | awk 'NF{printf "%s%s", (NR>1 ? " or " : ""), $0} END{if (NR>1) print ""}') + echo "TEST_LIST ${TEST_LIST}" + pytest --verbose unit/ -k "${TEST_LIST}" diff --git a/.github/workflows/no-torch.yml b/.github/workflows/no-torch.yml new file mode 100644 index 000000000000..75c4ecb850c9 --- /dev/null +++ b/.github/workflows/no-torch.yml @@ -0,0 +1,49 @@ +name: no-torch + +on: + workflow_dispatch: + pull_request: + paths: + - 'accelerator/**' + - '.github/workflows/no-torch.yml' + - 'op_builder/**' + schedule: + - cron: "0 0 * * *" + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +permissions: + contents: read + issues: write + +jobs: + unit-tests: + runs-on: ubuntu-24.04 + + steps: + - uses: actions/checkout@v4 + + - id: setup-venv + uses: ./.github/workflows/setup-venv + + - name: Python environment + run: | + pip uninstall torch --yes + pip install setuptools + pip install build + pip list + + - name: Build deepspeed + run: | + DS_BUILD_STRING=" " python -m build --sdist + + - name: Open GitHub issue if nightly CI fails + if: ${{ failure() && (github.event_name == 'schedule') }} + uses: JasonEtco/create-an-issue@v2 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + filename: .github/ISSUE_TEMPLATE/ci_failure_report.md + update_existing: true diff --git a/.github/workflows/nv-a6000.yml b/.github/workflows/nv-a6000.yml index a2b99de488d5..77a2661d08a6 100644 --- a/.github/workflows/nv-a6000.yml +++ b/.github/workflows/nv-a6000.yml @@ -3,29 +3,33 @@ name: nv-a6000 on: pull_request: paths: - - "deepspeed/inference/v2/**" - - "tests/unit/inference/v2/**" + - 'accelerator/cuda_accelerator.py' + - 'deepspeed/inference/v2/**' + - 'tests/unit/inference/v2/**' + - '.github/workflows/nv-a6000.yml' workflow_dispatch: + inputs: + mii_branch: + description: 'DeepSpeed-MII Branch' + required: false + default: 'main' + type: string concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true -permissions: - contents: read - issues: write - jobs: unit-tests: runs-on: [self-hosted, nvidia, a6000] container: - image: nvcr.io/nvidia/pytorch:23.03-py3 + image: nvcr.io/nvidia/pytorch:24.09-py3 ports: - 80 options: --gpus all --shm-size "8G" steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Check container state run: | @@ -36,14 +40,16 @@ jobs: python -c "import torch; print('CUDA available:', torch.cuda.is_available())" - name: Install transformers run: | - git clone --depth=1 https://github.com/huggingface/transformers + git clone https://github.com/huggingface/transformers cd transformers + # if you need to use an older transformers version temporarily in case of breakage + git checkout 981c276 git rev-parse --short HEAD python -m pip install . - name: Install deepspeed run: | python -m pip install docutils==0.18.1 jinja2==3.0 urllib3==1.26.11 ninja - python -m pip install .[dev,1bit,autotuning] + python -m pip install .[dev,1bit,autotuning,inf] ds_report - name: Python environment run: | @@ -52,11 +58,16 @@ jobs: run: | unset TORCH_CUDA_ARCH_LIST # only jit compile for current arch cd tests - python -m pytest --color=yes --durations=0 --verbose -rF -m 'inference_v2' unit/ --torch_ver="2.0" --cuda_ver="12" - python -m pytest --color=yes --durations=0 --verbose -rF -m 'inference_v2_ops' unit/ --torch_ver="2.0" --cuda_ver="12" + python -m pytest --color=yes --durations=0 --verbose -rF -m 'inference_v2' unit/ --torch_ver="2.5" --cuda_ver="12" + python -m pytest --color=yes --durations=0 --verbose -rF -m 'inference_v2_ops' unit/ --torch_ver="2.5" --cuda_ver="12" - name: MII unit tests run: | - git clone --depth=1 https://github.com/microsoft/DeepSpeed-MII.git + BRANCH="main" + if [[ ! -z "${{ github.event.inputs.mii_branch }}" ]]; then + BRANCH="${{ github.event.inputs.mii_branch }}" + fi + echo "Cloning DeepSpeed-MII branch: $BRANCH" + git clone -b $BRANCH --depth=1 https://github.com/deepspeedai/DeepSpeed-MII.git cd DeepSpeed-MII pip install .[dev] cd tests diff --git a/.github/workflows/nv-accelerate-v100.yml b/.github/workflows/nv-accelerate-v100.yml index 0f6491e08336..c9caf697b5b3 100644 --- a/.github/workflows/nv-accelerate-v100.yml +++ b/.github/workflows/nv-accelerate-v100.yml @@ -1,12 +1,13 @@ name: nv-accelerate-v100 on: + workflow_dispatch: pull_request: paths-ignore: - 'docs/**' - 'blogs/**' - 'deepspeed/inference/v2/**' - - "tests/unit/inference/v2/**" + - 'tests/unit/inference/v2/**' merge_group: branches: [ master ] schedule: @@ -18,17 +19,17 @@ concurrency: jobs: unit-tests: - runs-on: [self-hosted, nvidia, cu111, v100] + runs-on: [self-hosted, nvidia, cu124, v100] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - id: setup-venv uses: ./.github/workflows/setup-venv - name: Install pytorch run: | - pip install -U --cache-dir $TORCH_CACHE torch torchvision --extra-index-url https://download.pytorch.org/whl/cu111 + pip install -U --cache-dir $TORCH_CACHE torch torchvision --index-url https://download.pytorch.org/whl/cu124 python -c "import torch; print('torch:', torch.__version__, torch)" python -c "import torch; print('CUDA available:', torch.cuda.is_available())" @@ -51,7 +52,5 @@ jobs: pip install .[testing] # force protobuf version due to issues pip install "protobuf<4.21.0" - # tmp fix: force newer datasets version - #pip install "datasets>=2.0.0" pip list pytest $PYTEST_OPTS --color=yes --durations=0 --verbose tests/deepspeed diff --git a/.github/workflows/nv-ds-chat.yml b/.github/workflows/nv-ds-chat.yml index b53fac36315b..faef9f180c77 100644 --- a/.github/workflows/nv-ds-chat.yml +++ b/.github/workflows/nv-ds-chat.yml @@ -10,29 +10,40 @@ on: required: false default: 'master' type: string + pull_request: + paths: + - ".github/workflows/nv-ds-chat.yml" + - "deepspeed/runtime/zero/stage_1_and_2.py" + - "deepspeed/runtime/zero/stage3.py" + - "deepspeed/runtime/hybrid_engine.py" concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true +permissions: + contents: read + issues: write + jobs: unit-tests: - runs-on: [self-hosted, nvidia, cu116, v100] + runs-on: [self-hosted, nvidia, cu124, v100] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - id: setup-venv uses: ./.github/workflows/setup-venv - name: Install pytorch run: | - pip3 install -U --cache-dir $TORCH_CACHE torch --index-url https://download.pytorch.org/whl/cu118 + pip install -U --cache-dir $TORCH_CACHE torch torchvision --index-url https://download.pytorch.org/whl/cu124 python -c "import torch; print('torch:', torch.__version__, torch)" python -c "import torch; print('CUDA available:', torch.cuda.is_available())" - name: Install deepspeed run: | + pip install transformers==4.48.3 pip install .[dev] ds_report @@ -43,7 +54,7 @@ jobs: BRANCH="${{ github.event.inputs.dse_branch }}" fi echo "DeepSpeedExamples Branch: $BRANCH" - git clone -b $BRANCH https://github.com/microsoft/DeepSpeedExamples.git + git clone -b $BRANCH https://github.com/deepspeedai/DeepSpeedExamples.git cd DeepSpeedExamples/applications/DeepSpeed-Chat pip install -r requirements.txt pip install -e . @@ -56,6 +67,7 @@ jobs: run: | cd DeepSpeedExamples/applications/DeepSpeed-Chat unset TORCH_CUDA_ARCH_LIST # only jit compile for current arch + unset NCCL_DEBUG cd tests pytest $PYTEST_OPTS ./ diff --git a/.github/workflows/nv-torch110-v100.yml b/.github/workflows/nv-flash-attn.yml similarity index 54% rename from .github/workflows/nv-torch110-v100.yml rename to .github/workflows/nv-flash-attn.yml index 1fd8aaac0ffa..591969fbd986 100644 --- a/.github/workflows/nv-torch110-v100.yml +++ b/.github/workflows/nv-flash-attn.yml @@ -1,59 +1,59 @@ -name: nv-torch110-v100 +name: nv-flash-attn on: + workflow_dispatch: + pull_request: + paths: + - 'deepspeed/sequence/**' + - 'tests/unit/sequence_parallelism/**' + - '.github/workflows/nv-flash-attn.yml' schedule: - cron: "0 0 * * *" - workflow_dispatch: concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true -permissions: - contents: read - issues: write - jobs: unit-tests: - runs-on: [self-hosted, nvidia, cu111, v100] + runs-on: [self-hosted, nvidia, a6000] + container: + image: nvcr.io/nvidia/pytorch:24.09-py3 + ports: + - 80 + options: --gpus all --shm-size "8G" steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - - id: setup-venv - uses: ./.github/workflows/setup-venv - - - name: Install pytorch + - name: Check container state run: | - pip install -U --cache-dir $TORCH_CACHE torch==1.10.0+cu111 torchvision==0.11.0+cu111 -f https://download.pytorch.org/whl/torch_stable.html + ldd --version + nvcc --version + nvidia-smi python -c "import torch; print('torch:', torch.__version__, torch)" python -c "import torch; print('CUDA available:', torch.cuda.is_available())" - - name: Install transformers run: | - git clone https://github.com/huggingface/transformers + git clone --depth=1 https://github.com/huggingface/transformers cd transformers - # if needed switch to the last known good SHA until transformers@master is fixed - # git checkout 1cc453d33 git rev-parse --short HEAD - pip install . - + python -m pip install . - name: Install deepspeed run: | - pip install .[dev,1bit,autotuning] --no-build-isolation + python -m pip install .[dev] ds_report - + - name: Install FlashAttention + run: | + python -m pip install flash-attn - name: Python environment run: | - pip list - + python -m pip list - name: Unit tests run: | unset TORCH_CUDA_ARCH_LIST # only jit compile for current arch cd tests - pytest $PYTEST_OPTS --forked -n 4 unit/ --torch_ver="1.10" --cuda_ver="11" - pytest $PYTEST_OPTS --forked -m 'sequential' unit/ --torch_ver="1.10" --cuda_ver="11" - + python -m pytest --color=yes --durations=0 --verbose -rF unit/sequence_parallelism/test_ulysses.py --torch_ver="2.5" --cuda_ver="12" - name: Open GitHub issue if nightly CI fails if: ${{ failure() && (github.event_name == 'schedule') }} uses: JasonEtco/create-an-issue@v2 diff --git a/.github/workflows/nv-h100.yml b/.github/workflows/nv-h100.yml index a1b812b3eafd..5574ce8aa634 100644 --- a/.github/workflows/nv-h100.yml +++ b/.github/workflows/nv-h100.yml @@ -1,9 +1,9 @@ name: nv-h100 on: + workflow_dispatch: schedule: - cron: "0 0 * * *" - workflow_dispatch: concurrency: group: ${{ github.workflow }}-${{ github.ref }} @@ -23,7 +23,7 @@ jobs: options: --gpus all --shm-size "8G" steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Check container state run: | diff --git a/.github/workflows/nv-human-eval.yml b/.github/workflows/nv-human-eval.yml new file mode 100644 index 000000000000..3f59c42f697e --- /dev/null +++ b/.github/workflows/nv-human-eval.yml @@ -0,0 +1,53 @@ +name: nv-human-eval + +on: + workflow_dispatch: + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + unit-tests: + runs-on: [self-hosted, nvidia, a6000] + container: + image: nvcr.io/nvidia/pytorch:24.09-py3 + ports: + - 80 + options: --gpus all --shm-size "8G" + + steps: + - uses: actions/checkout@v4 + + - name: Check container state + run: | + ldd --version + nvcc --version + nvidia-smi + python -c "import torch; print('torch:', torch.__version__, torch)" + python -c "import torch; print('CUDA available:', torch.cuda.is_available())" + - name: Install transformers + run: | + git clone --depth=1 https://github.com/huggingface/transformers + cd transformers + git rev-parse --short HEAD + python -m pip install . + - name: Clone Human Eval + run: | + git clone --depth=1 https://github.com/openai/human-eval.git + sed -i '/exec(check_program, exec_globals)/ s/^# //' human-eval/human_eval/execution.py + cd human-eval + git rev-parse --short HEAD + python -m pip install . + - name: Install deepspeed + run: | + python -m pip install .[dev,1bit,autotuning] + ds_report + - name: Python environment + run: | + python -m pip list + - name: Unit tests + run: | + unset TORCH_CUDA_ARCH_LIST # only jit compile for current arch + cd tests + python -m pytest --color=yes --durations=0 --verbose -rF -m 'evaluation' -k "test_human_eval" unit/ --torch_ver="2.5" --cuda_ver="12" diff --git a/.github/workflows/nv-inference.yml b/.github/workflows/nv-inference.yml index f20b4496b6df..8906130bc1af 100644 --- a/.github/workflows/nv-inference.yml +++ b/.github/workflows/nv-inference.yml @@ -1,12 +1,16 @@ name: nv-inference on: + workflow_dispatch: pull_request: - paths-ignore: - - 'docs/**' - - 'blogs/**' - - 'deepspeed/inference/v2/**' - - "tests/unit/inference/v2/**" + paths: + - '.github/workflows/nv-inference.yml' + - 'requirements/**' + - 'deepspeed/__init__.py' + - 'deepspeed/inference/**' + - '!deepspeed/inference/v2/**' # exclude v2 dir + - 'tests/unit/inference/**' + - '!tests/unit/inference/v2/**' # exclude v2 tests dir merge_group: branches: [ master ] schedule: @@ -18,17 +22,17 @@ concurrency: jobs: unit-tests: - runs-on: [self-hosted, nvidia, cu116, v100] + runs-on: [self-hosted, nvidia, cu124, v100] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - id: setup-venv uses: ./.github/workflows/setup-venv - name: Install pytorch run: | - pip install -U --cache-dir $TORCH_CACHE torch==1.13.1 torchvision --extra-index-url https://download.pytorch.org/whl/cu116 + pip install -U --cache-dir $TORCH_CACHE torch==2.1.2 torchvision==0.16.2 --index-url https://download.pytorch.org/whl/cu124 python -c "import torch; print('torch:', torch.__version__, torch)" python -c "import torch; print('CUDA available:', torch.cuda.is_available())" @@ -36,13 +40,14 @@ jobs: run: | git clone https://github.com/huggingface/transformers cd transformers - git checkout f370bebdc + #git checkout f370bebdc git rev-parse --short HEAD pip install . - name: Install deepspeed run: | - pip install .[dev,1bit,autotuning,inf,triton] + DS_ACCELERATOR=cpu pip install .[dev,1bit,autotuning,inf] + #pip install .[dev,1bit,autotuning,inf,triton] ds_report - name: Python environment @@ -53,12 +58,8 @@ jobs: run: | unset TORCH_CUDA_ARCH_LIST # only jit compile for current arch cd tests - coverage run --concurrency=multiprocessing -m pytest $PYTEST_OPTS -m 'seq_inference' unit/ --torch_ver="1.13" --cuda_ver="11.6" - coverage run --concurrency=multiprocessing -m pytest $PYTEST_OPTS -m 'inference_ops' unit/ --torch_ver="1.13" --cuda_ver="11.6" - coverage run --concurrency=multiprocessing -m pytest $PYTEST_OPTS --forked -n 4 -m 'inference' unit/ --torch_ver="1.13" --cuda_ver="11.6" - - - name: Coverage report - run: | - cd tests - coverage combine - coverage report -m + #pytest $PYTEST_OPTS -m 'seq_inference' unit/ --torch_ver="2.1" --cuda_ver="12.4" + pytest $PYTEST_OPTS -m 'inference_ops' unit/ --torch_ver="2.1" --cuda_ver="12.4" + pytest $PYTEST_OPTS --forked -n 4 -m 'inference' unit/ --torch_ver="2.1" --cuda_ver="12.4" + # run ds_report again to check updated op list + ds_report diff --git a/.github/workflows/nv-lightning-v100.yml b/.github/workflows/nv-lightning-v100.yml index d25d40aef967..d31ae5569848 100644 --- a/.github/workflows/nv-lightning-v100.yml +++ b/.github/workflows/nv-lightning-v100.yml @@ -1,12 +1,13 @@ name: nv-lightning-v100 on: + workflow_dispatch: pull_request: paths-ignore: - 'docs/**' - 'blogs/**' - 'deepspeed/inference/v2/**' - - "tests/unit/inference/v2/**" + - 'tests/unit/inference/v2/**' merge_group: branches: [ master ] schedule: @@ -18,17 +19,17 @@ concurrency: jobs: unit-tests: - runs-on: [self-hosted, nvidia, cu111, v100] + runs-on: [self-hosted, nvidia, cu124, v100] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - id: setup-venv uses: ./.github/workflows/setup-venv - name: Install pytorch run: | - pip install -U --cache-dir $TORCH_CACHE torch torchvision --index-url https://download.pytorch.org/whl/cu118 + pip install -U --cache-dir $TORCH_CACHE torch torchvision --index-url https://download.pytorch.org/whl/cu124 python -c "import torch; print('torch:', torch.__version__, torch)" python -c "import torch; print('CUDA available:', torch.cuda.is_available())" diff --git a/.github/workflows/nv-megatron.yml b/.github/workflows/nv-megatron.yml deleted file mode 100644 index 3a3b70dcd17d..000000000000 --- a/.github/workflows/nv-megatron.yml +++ /dev/null @@ -1,63 +0,0 @@ -name: nv-megatron - -on: - pull_request: - paths-ignore: - - 'docs/**' - - 'blogs/**' - - 'deepspeed/inference/v2/**' - - "tests/unit/inference/v2/**" - merge_group: - branches: [ master ] - schedule: - - cron: "0 0 * * *" - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -jobs: - unit-tests: - runs-on: [self-hosted, nvidia, cu116, v100] - - steps: - - uses: actions/checkout@v3 - - - id: setup-venv - uses: ./.github/workflows/setup-venv - - - name: Install pytorch - run: | - pip install -U --cache-dir $TORCH_CACHE torch==1.13.1 torchvision --extra-index-url https://download.pytorch.org/whl/cu116 - python -c "import torch; print('torch:', torch.__version__, torch)" - python -c "import torch; print('CUDA available:', torch.cuda.is_available())" - - - name: Install deepspeed - run: | - pip install .[dev] - ds_report - - - name: Install apex - run: | - git clone https://github.com/NVIDIA/apex.git - cd apex - CURRENT_VER=$(git rev-parse HEAD) - INSTALLED_VER=$(cat /blob/apex/.venv_installed_version) - if [[ "$CURRENT_VER" != "$INSTALLED_VER" ]]; then - pip install -v --disable-pip-version-check --no-cache-dir --no-build-isolation --config-settings "--global-option=--cpp_ext" --config-settings "--global-option=--cuda_ext" --target=/blob/apex/ --upgrade . - git rev-parse HEAD > /blob/apex/.venv_installed_version - fi - echo PYTHONPATH=$PYTHONPATH:/blob/apex/ >> $GITHUB_ENV - - - name: Python environment - run: | - pip list - - - name: Megatron unit tests - run: | - git clone https://github.com/microsoft/Megatron-DeepSpeed.git - cd Megatron-DeepSpeed - pip install . - unset TORCH_CUDA_ARCH_LIST # only jit compile for current arch - cd tests - pytest $PYTEST_OPTS ./ diff --git a/.github/workflows/nv-mii.yml b/.github/workflows/nv-mii.yml index 86de2a3b0bcb..aff0c8a548c1 100644 --- a/.github/workflows/nv-mii.yml +++ b/.github/workflows/nv-mii.yml @@ -1,10 +1,21 @@ name: nv-mii on: + workflow_dispatch: + inputs: + mii_branch: + description: 'DeepSpeed-MII Branch' + required: false + default: 'main' + type: string pull_request: - paths-ignore: - - 'docs/**' - - 'blogs/**' + paths: + - '.github/workflows/nv-mii.yml' + - 'requirements/**' + - 'setup.py' + - 'deepspeed/__init__.py' + - 'deepspeed/inference/**' + - '!deepspeed/inference/v2/**' # exclude v2 dir merge_group: branches: [ master ] schedule: @@ -16,17 +27,17 @@ concurrency: jobs: unit-tests: - runs-on: [self-hosted, nvidia, cu116, v100] + runs-on: [self-hosted, nvidia, cu124, v100] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - id: setup-venv uses: ./.github/workflows/setup-venv - name: Install pytorch run: | - pip3 install -U --cache-dir $TORCH_CACHE torch --index-url https://download.pytorch.org/whl/cu118 + pip3 install -U --cache-dir $TORCH_CACHE torch torchvision --index-url https://download.pytorch.org/whl/cu124 python -c "import torch; print('torch:', torch.__version__, torch)" python -c "import torch; print('CUDA available:', torch.cuda.is_available())" @@ -35,7 +46,7 @@ jobs: git clone https://github.com/huggingface/transformers cd transformers # if needed switch to the last known good SHA until transformers@master is fixed - # git checkout 1cc453d33 + git checkout v4.42.4 git rev-parse --short HEAD pip install . @@ -50,7 +61,12 @@ jobs: - name: MII unit tests run: | - git clone https://github.com/microsoft/DeepSpeed-MII.git + BRANCH="main" + if [[ ! -z "${{ github.event.inputs.mii_branch }}" ]]; then + BRANCH="${{ github.event.inputs.mii_branch }}" + fi + echo "Cloning DeepSpeed-MII branch: $BRANCH" + git clone -b $BRANCH --depth=1 https://github.com/deepspeedai/DeepSpeed-MII.git cd DeepSpeed-MII pip install .[dev] unset TORCH_CUDA_ARCH_LIST # only jit compile for current arch diff --git a/.github/workflows/nv-nightly.yml b/.github/workflows/nv-nightly.yml index 1ed7d34a6be4..7f81484c7646 100644 --- a/.github/workflows/nv-nightly.yml +++ b/.github/workflows/nv-nightly.yml @@ -1,6 +1,10 @@ name: nv-nightly on: + workflow_dispatch: + pull_request: + paths: + - '.github/workflows/nv-nightly.yml' schedule: - cron: "0 0 * * *" @@ -14,17 +18,17 @@ permissions: jobs: unit-tests: - runs-on: [self-hosted, nvidia, cu116, v100] + runs-on: [self-hosted, nvidia, cu124, v100] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - id: setup-venv uses: ./.github/workflows/setup-venv - name: Install pytorch run: | - pip install -U --cache-dir $TORCH_CACHE torch==1.13.1 torchvision --extra-index-url https://download.pytorch.org/whl/cu116 + pip install -U --cache-dir $TORCH_CACHE torch torchvision --index-url https://download.pytorch.org/whl/cu124 python -c "import torch; print('torch:', torch.__version__, torch)" python -c "import torch; print('CUDA available:', torch.cuda.is_available())" @@ -33,10 +37,14 @@ jobs: git clone https://github.com/huggingface/transformers cd transformers # if needed switch to the last known good SHA until transformers@master is fixed - # git checkout 1cc453d33 + git checkout v4.42.4 git rev-parse --short HEAD pip install . + - name: Install datasets + run: | + pip install datasets + - name: Install deepspeed run: | pip install .[dev,1bit,autotuning,inf] @@ -50,7 +58,7 @@ jobs: run: | unset TORCH_CUDA_ARCH_LIST # only jit compile for current arch cd tests - pytest $PYTEST_OPTS --forked -m 'nightly' unit/ --torch_ver="1.13" --cuda_ver="11.6" + pytest $PYTEST_OPTS --forked -m 'nightly' unit/ --torch_ver="2.6" --cuda_ver="12.4" - name: Open GitHub issue if nightly CI fails if: ${{ failure() && (github.event_name == 'schedule') }} diff --git a/.github/workflows/nv-pre-compile-ops.yml b/.github/workflows/nv-pre-compile-ops.yml index 839312190d22..fc810bc190d0 100644 --- a/.github/workflows/nv-pre-compile-ops.yml +++ b/.github/workflows/nv-pre-compile-ops.yml @@ -1,6 +1,7 @@ name: nv-pre-compile-ops on: + workflow_dispatch: pull_request: branches: '**' @@ -8,7 +9,7 @@ on: - 'docs/**' - 'blogs/**' - 'deepspeed/inference/v2/**' - - "tests/unit/inference/v2/**" + - 'tests/unit/inference/v2/**' merge_group: branches: [ master ] schedule: @@ -19,13 +20,13 @@ concurrency: cancel-in-progress: true jobs: - build-ops: - runs-on: ubuntu-20.04 + unit-tests: + runs-on: ubuntu-24.04 container: image: deepspeed/gh-builder:ubuntu1804-py38-torch1131-cu116 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: environment run: | @@ -35,7 +36,7 @@ jobs: #python -c "import torch; print('CUDA available:', torch.cuda.is_available())" - name: Compile DeepSpeed Ops run: | - TORCH_CUDA_ARCH_LIST="7.0;7.5;8.0" DS_BUILD_OPS=1 DS_BUILD_SPARSE_ATTN=0 DS_BUILD_CUTLASS_OPS=0 DS_BUILD_RAGGED_DEVICE_OPS=0 DS_BUILD_EVOFORMER_ATTN=0 pip3 install . + DS_ACCELERATOR=cuda DS_ENABLE_NINJA=1 TORCH_CUDA_ARCH_LIST="7.0;7.5;8.0" DS_BUILD_OPS=1 DS_BUILD_SPARSE_ATTN=0 DS_BUILD_FP_QUANTIZER=0 DS_BUILD_CUTLASS_OPS=0 DS_BUILD_GDS=0 DS_BUILD_RAGGED_DEVICE_OPS=0 DS_BUILD_EVOFORMER_ATTN=0 pip3 install . - name: DS Report run: | ds_report diff --git a/.github/workflows/nv-sd.yml b/.github/workflows/nv-sd.yml index 5ca159074a4d..af406075b868 100644 --- a/.github/workflows/nv-sd.yml +++ b/.github/workflows/nv-sd.yml @@ -1,15 +1,19 @@ name: nv-sd on: + workflow_dispatch: schedule: - cron: "0 0 * * 0" - workflow_dispatch: pull_request: paths: - "deepspeed/ops/transformer/inference/diffusers_**" - "tests/unit/inference/test_stable_diffusion.py" - "deepspeed/model_implementations/diffusers/unet.py" - "deepspeed/model_implementations/diffusers/vae.py" + - "deepspeed/module_inject/containers/vae.py" + - "deepspeed/module_inject/containers/unet.py" + - ".github/workflows/nv-sd.yml" + - "requirements/requirements-sd.txt" concurrency: group: ${{ github.workflow }}-${{ github.ref }} @@ -23,13 +27,13 @@ jobs: sd-tests: runs-on: [self-hosted, nvidia, a6000] container: - image: nvcr.io/nvidia/pytorch:23.03-py3 + image: nvcr.io/nvidia/pytorch:24.03-py3 ports: - 80 options: --gpus all --shm-size "8G" steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Check container state run: | @@ -58,7 +62,7 @@ jobs: run: | unset TORCH_CUDA_ARCH_LIST # only jit compile for current arch cd tests - python -m pytest --color=yes --durations=0 --verbose -rF -m 'stable_diffusion' -k "TestStableDiffusion" unit/ --torch_ver="2.0" --cuda_ver="12" + python -m pytest --color=yes --durations=0 --verbose -rF -m 'stable_diffusion' -k "TestStableDiffusion" unit/ --torch_ver="2.3" --cuda_ver="12" - name: Open GitHub issue if weekly CI fails if: ${{ failure() && (github.event_name == 'schedule') }} diff --git a/.github/workflows/nv-torch-latest-cpu.yml b/.github/workflows/nv-torch-latest-cpu.yml deleted file mode 100644 index 9ca1529d9018..000000000000 --- a/.github/workflows/nv-torch-latest-cpu.yml +++ /dev/null @@ -1,49 +0,0 @@ -name: nv-torch-latest-cpu - -on: - pull_request: - paths-ignore: - - 'docs/**' - - 'blogs/**' - - 'deepspeed/inference/v2/**' - - "tests/unit/inference/v2/**" - merge_group: - branches: [ master ] - schedule: - - cron: "0 0 * * *" - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -jobs: - unit-tests: - runs-on: ubuntu-20.04 - - steps: - - uses: actions/checkout@v3 - - - id: setup-venv - uses: ./.github/workflows/setup-venv - - - name: Install pytorch - run: | - pip install torch==1.12.0+cpu torchvision==0.13.0+cpu torchaudio==0.12.0 --extra-index-url https://download.pytorch.org/whl/cpu - python -c "import torch; print('torch:', torch.__version__, torch)" - python -c "import torch; print('CUDA available:', torch.cuda.is_available())" - - - name: Install deepspeed - run: | - pip install .[dev,autotuning] - ds_report - - - name: Python environment - run: | - pip list - - - name: Unit tests - run: | - unset TORCH_CUDA_ARCH_LIST # only jit compile for current arch - cd tests - TRANSFORMERS_CACHE=/tmp/transformers_cache/ pytest $PYTEST_OPTS -n 4 unit/ --torch_ver="1.12" - TRANSFORMERS_CACHE=/tmp/transformers_cache/ pytest $PYTEST_OPTS -m 'sequential' unit/ --torch_ver="1.12" diff --git a/.github/workflows/nv-torch-latest-v100.yml b/.github/workflows/nv-torch-latest-v100.yml index 8813a4bb2c4f..eba35ba7210a 100644 --- a/.github/workflows/nv-torch-latest-v100.yml +++ b/.github/workflows/nv-torch-latest-v100.yml @@ -1,12 +1,13 @@ name: nv-torch-latest-v100 on: + workflow_dispatch: pull_request: paths-ignore: - 'docs/**' - 'blogs/**' - 'deepspeed/inference/v2/**' - - "tests/unit/inference/v2/**" + - 'tests/unit/inference/v2/**' merge_group: branches: [ master ] schedule: @@ -18,17 +19,17 @@ concurrency: jobs: unit-tests: - runs-on: [self-hosted, nvidia, cu116, v100] + runs-on: [self-hosted, nvidia, cu124, v100] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - id: setup-venv uses: ./.github/workflows/setup-venv - name: Install pytorch run: | - pip install -U --cache-dir $TORCH_CACHE torch torchvision --index-url https://download.pytorch.org/whl/cu118 + pip install -U --cache-dir $TORCH_CACHE torch torchvision --index-url https://download.pytorch.org/whl/cu124 python -c "import torch; print('torch:', torch.__version__, torch)" python -c "import torch; print('CUDA available:', torch.cuda.is_available())" @@ -37,7 +38,7 @@ jobs: git clone https://github.com/huggingface/transformers cd transformers # if needed switch to the last known good SHA until transformers@master is fixed - # git checkout 1cc453d33 + git checkout 981c276 git rev-parse --short HEAD pip install . @@ -54,11 +55,5 @@ jobs: run: | unset TORCH_CUDA_ARCH_LIST # only jit compile for current arch cd tests - coverage run --concurrency=multiprocessing -m pytest $PYTEST_OPTS --forked -n 4 unit/ --torch_ver="2.1" --cuda_ver="11.8" - coverage run --concurrency=multiprocessing -m pytest $PYTEST_OPTS --forked -m 'sequential' unit/ --torch_ver="2.1" --cuda_ver="11.8" - - - name: Coverage report - run: | - cd tests - coverage combine - coverage report -m + pytest $PYTEST_OPTS --forked -n 8 unit/ --torch_ver="2.6" --cuda_ver="12.4" + pytest $PYTEST_OPTS --forked -m 'sequential' unit/ --torch_ver="2.6" --cuda_ver="12.4" diff --git a/.github/workflows/nv-torch-nightly-v100.yml b/.github/workflows/nv-torch-nightly-v100.yml index d0df6e546982..0013ed3f276f 100644 --- a/.github/workflows/nv-torch-nightly-v100.yml +++ b/.github/workflows/nv-torch-nightly-v100.yml @@ -1,8 +1,12 @@ name: nv-torch-nightly-v100 on: + workflow_dispatch: schedule: - cron: "0 0 * * *" + pull_request: + paths: + - '.github/workflows/nv-torch-nightly-v100.yml' concurrency: group: ${{ github.workflow }}-${{ github.ref }} @@ -14,17 +18,17 @@ permissions: jobs: unit-tests: - runs-on: [self-hosted, nvidia, cu116, v100] + runs-on: [self-hosted, nvidia, cu124, v100] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - id: setup-venv uses: ./.github/workflows/setup-venv - name: Install pytorch run: | - pip install --pre torch torchvision --index-url https://download.pytorch.org/whl/nightly/cu118 + pip install --pre torch torchvision --index-url https://download.pytorch.org/whl/nightly/cu124 python -c "import torch; print('torch:', torch.__version__, torch)" python -c "import torch; print('CUDA available:', torch.cuda.is_available())" @@ -33,7 +37,7 @@ jobs: git clone https://github.com/huggingface/transformers cd transformers # if needed switch to the last known good SHA until transformers@master is fixed - # git checkout 1cc453d33 + git checkout 981c276 git rev-parse --short HEAD pip install . @@ -50,7 +54,7 @@ jobs: run: | unset TORCH_CUDA_ARCH_LIST # only jit compile for current arch cd tests - pytest $PYTEST_OPTS --forked -n 4 unit/ + pytest $PYTEST_OPTS --forked -n 8 unit/ pytest $PYTEST_OPTS --forked -m 'sequential' unit/ - name: Open GitHub issue if nightly CI fails diff --git a/.github/workflows/nv-transformers-v100.yml b/.github/workflows/nv-transformers-v100.yml index 7753133f2886..9d1253fd77ca 100644 --- a/.github/workflows/nv-transformers-v100.yml +++ b/.github/workflows/nv-transformers-v100.yml @@ -6,7 +6,7 @@ on: - 'docs/**' - 'blogs/**' - 'deepspeed/inference/v2/**' - - "tests/unit/inference/v2/**" + - 'tests/unit/inference/v2/**' merge_group: branches: [ master ] schedule: @@ -18,10 +18,10 @@ concurrency: jobs: unit-tests: - runs-on: [self-hosted, nvidia, cu116, v100] + runs-on: [self-hosted, nvidia, cu124, v100] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - id: setup-venv uses: ./.github/workflows/setup-venv @@ -29,7 +29,7 @@ jobs: - name: Install pytorch run: | # use the same pytorch version as transformers CI - pip install -U --cache-dir $TORCH_CACHE torch==2.0.1+cu118 --index-url https://download.pytorch.org/whl/cu118 + pip install -U --cache-dir $TORCH_CACHE torch==2.0.1+cu124 --index-url https://download.pytorch.org/whl/cu124 python -c "import torch; print('torch:', torch.__version__, torch)" python -c "import torch; print('CUDA available:', torch.cuda.is_available())" diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml index 279bad471c01..35f9502ecbc9 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -1,6 +1,7 @@ name: python on: + workflow_dispatch: pull_request: branches: '**' @@ -17,18 +18,18 @@ concurrency: cancel-in-progress: true jobs: - version-check: + unit-tests: strategy: matrix: - pyVersion: ["3.6", "3.7", "3.8", "3.9", "3.10"] + pyVersion: ["3.8", "3.9", "3.10"] fail-fast: false - runs-on: ubuntu-20.04 + runs-on: ubuntu-24.04 container: image: deepspeed/gh-builder:py${{ matrix.pyVersion }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: environment run: | diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8e016b4169cb..4bddbc26be4a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -7,11 +7,11 @@ on: jobs: deploy: - runs-on: ubuntu-20.04 + runs-on: ubuntu-24.04 environment: release-env steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: ref: "master" - id: setup-venv @@ -25,7 +25,9 @@ jobs: python release/check_release_version.py --release_version ${{ env.RELEASE_VERSION }} - name: Build DeepSpeed run: | - DS_BUILD_STRING=" " python setup.py sdist + pip install setuptools + pip install build + DS_BUILD_STRING=" " python -m build --sdist - name: Publish to PyPI uses: pypa/gh-action-pypi-publish@release/v1 with: @@ -35,7 +37,7 @@ jobs: run: | python release/bump_patch_version.py --current_version ${{ env.RELEASE_VERSION }} - name: Create Pull Request - uses: peter-evans/create-pull-request@v4 + uses: peter-evans/create-pull-request@v6 with: token: ${{ secrets.GH_PAT }} add-paths: | diff --git a/.github/workflows/setup-venv/action.yml b/.github/workflows/setup-venv/action.yml index ce2c458b9e57..9a88e0651860 100644 --- a/.github/workflows/setup-venv/action.yml +++ b/.github/workflows/setup-venv/action.yml @@ -22,7 +22,7 @@ runs: - id: set-env-vars run: | echo TEST_DATA_DIR=/blob/ >> $GITHUB_ENV - echo TRANSFORMERS_CACHE=/blob/transformers_cache/ >> $GITHUB_ENV + echo HF_HOME=/blob/hf_home/ >> $GITHUB_ENV echo TORCH_EXTENSIONS_DIR=./torch-extensions/ >> $GITHUB_ENV echo TORCH_CACHE=/blob/torch_cache/ >> $GITHUB_ENV echo HF_DATASETS_CACHE=/blob/datasets_cache/ >> $GITHUB_ENV diff --git a/.github/workflows/xpu-compile.yml b/.github/workflows/xpu-compile.yml new file mode 100644 index 000000000000..9e8bd9d792fb --- /dev/null +++ b/.github/workflows/xpu-compile.yml @@ -0,0 +1,65 @@ +name: xpu-compile + +on: + workflow_dispatch: + schedule: + - cron: "0 0 * * *" + pull_request: + paths: + - ".github/workflows/xpu-compile.yml" + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +permissions: + contents: read + issues: write + +jobs: + compile-tests: + runs-on: [self-hosted, intel, xpu] + container: + image: intel/oneapi-basekit:2024.2.1-0-devel-ubuntu22.04 + ports: + - 80 + options: --privileged -it --rm --device /dev/dri:/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --ipc=host --cap-add=ALL + + steps: + - uses: actions/checkout@v4 + - name: Install prerequisite + run: | + apt-get update + apt-get install clinfo libaio-dev python3-pip -y + pip install torch==2.3.1 -f https://pytorch-extension.intel.com/release-whl/stable/xpu/cn/torch/ + pip install intel-extension-for-pytorch==2.3.110+xpu -f https://pytorch-extension.intel.com/release-whl/stable/xpu/cn/intel-extension-for-pytorch/ + pip install oneccl_bind_pt==2.3.100+xpu -f https://pytorch-extension.intel.com/release-whl/stable/xpu/cn/oneccl-bind-pt/ + pip install torchvision==0.18.1 -f https://pytorch-extension.intel.com/release-whl/stable/xpu/cn/torchvision/ + pip install https://github.com/intel/intel-xpu-backend-for-triton/releases/download/v3.0.0b2/triton_xpu-3.0.0b2-cp310-cp310-linux_x86_64.whl + pip install py-cpuinfo numpy + pip install .[dev,autotuning] + + - name: Check container state + run: | + ldd --version + ds_report + python3 -c "import torch; print('torch:', torch.__version__, torch)" + python3 -c "import torch; import intel_extension_for_pytorch; print('XPU available:', torch.xpu.is_available())" + python3 -c "from deepspeed.accelerator import get_accelerator; print('accelerator:', get_accelerator()._name)" + pip list + + - name: Compile Status + shell: bash + run: | + echo "# torch.compile graph breaks" >> $GITHUB_STEP_SUMMARY + export FI_HMEM=system + ulimit -n 1048575 + cd tests/torch_compile + export ZE_AFFINITY_MASK=0,1 + echo "## ZeRO stage 3" >> $GITHUB_STEP_SUMMARY + deepspeed test_compile.py --deepspeed_config ds_config_z3.json 2>&1 | tee log_z3.txt + # for each line start with 'dynamo_output', extract the second field and following fields and append to GITHUB_STEP_SUMMARY using awk + cat log_z3.txt | awk '/^dynamo_output/ {$1=""; print $0}' >> $GITHUB_STEP_SUMMARY + echo "## ZeRO stage 2" >> $GITHUB_STEP_SUMMARY + deepspeed test_compile.py --deepspeed_config ds_config_z2.json 2>&1 | tee log_z2.txt + cat log_z2.txt | awk '/^dynamo_output/ {$1=""; print $0}' >> $GITHUB_STEP_SUMMARY diff --git a/.github/workflows/xpu-max1100.yml b/.github/workflows/xpu-max1100.yml new file mode 100644 index 000000000000..2d84f8f60571 --- /dev/null +++ b/.github/workflows/xpu-max1100.yml @@ -0,0 +1,96 @@ +name: xpu-max1100 + +on: + workflow_dispatch: + schedule: + - cron: "0 0 * * *" + pull_request: + paths: + - ".github/workflows/xpu-max1100.yml" + - "accelerator/xpu_accelerator.py" + - "accelerator/abstract_accelerator.py" + - "accelerator/cpu_accelerator.py" + - "accelerator/real_accelerator.py" + - "csrc/xpu/**" + - "deepspeed/runtime/engine.py" + - "deepspeed/runtime/bf16_optimizer.py" + - "deepspeed/runtime/zero/stage_1_and_2.py" + - "deepspeed/runtime/zero/stage3.py" + - "deepspeed/runtime/zero/partition_parameters.py" + - "deepspeed/runtime/zero/partitioned_param_coordinator.py" + - "deepspeed/runtime/zero/parameter_offload.py" + - "deepspeed/runtime/pipe/engine.py" + - "deepspeed/runtime/utils.py" + - "op_builder/xpu/**" + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +permissions: + contents: read + issues: write + + +jobs: + unit-tests: + runs-on: [self-hosted, intel, xpu] + container: + image: intel/oneapi-basekit:2025.0.1-0-devel-ubuntu24.04 + ports: + - 80 + options: --privileged -it --rm --device /dev/dri:/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --ipc=host --cap-add=ALL + + steps: + - uses: actions/checkout@v4 + - name: Install prerequisite + shell: bash + run: | + apt-get update + apt-get install clinfo libaio-dev python3-pip python3.12-venv -y + python3 -m venv ~/ds_env + source ~/ds_env/bin/activate + pip install torch==2.5.1 -f https://pytorch-extension.intel.com/release-whl/stable/xpu/cn/torch/ + pip install intel-extension-for-pytorch==2.5.10+xpu -f https://pytorch-extension.intel.com/release-whl/stable/xpu/cn/intel-extension-for-pytorch/ + pip install oneccl_bind_pt==2.5.0+xpu -f https://pytorch-extension.intel.com/release-whl/stable/xpu/cn/oneccl-bind-pt/ + pip install torchvision==0.20.1 -f https://pytorch-extension.intel.com/release-whl/stable/xpu/cn/torchvision/ + pip install py-cpuinfo numpy + pip install .[dev,autotuning] + + - name: Check container state + shell: bash + run: | + source ~/ds_env/bin/activate + ldd --version + ds_report + python3 -c "import torch; print('torch:', torch.__version__, torch)" + python3 -c "import torch; import intel_extension_for_pytorch; print('XPU available:', torch.xpu.is_available())" + python3 -c "from deepspeed.accelerator import get_accelerator; print('accelerator:', get_accelerator()._name)" + pip list + + - name: Unit tests + shell: bash + run: | + source ~/ds_env/bin/activate + cd tests/unit + pytest --verbose accelerator/* + pytest --verbose autotuning/* + pytest --verbose checkpoint/test_reshape_checkpoint.py + pytest --verbose checkpoint/test_moe_checkpoint.py + pytest --verbose checkpoint/test_shared_weights.py + pytest --verbose launcher/test_ds_arguments.py launcher/test_run.py + pytest --verbose model_parallelism/* + pytest --verbose moe/test_moe_tp.py + pytest --verbose monitor/* + pytest --verbose utils/* + pytest --verbose runtime/test_ds_config_model.py + pytest --verbose runtime/pipe/test_pipe_schedule.py + pytest --verbose runtime/zero/test_zero_config.py + pytest --verbose runtime/zero/test_zero_tiled.py + pytest --verbose runtime/zero/test_zeropp.py + pytest --verbose runtime/test_autocast.py + pytest --verbose runtime/test_data.py + pytest --verbose runtime/test_runtime_utils.py + pytest --verbose runtime/activation_checkpointing/* + pytest --verbose runtime/utils/* + pytest --verbose runtime/zero/test_zero_dynamic_class.py diff --git a/.gitignore b/.gitignore index 5b9cc7ac3156..db6790886cb4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,40 +1,62 @@ -# Ignore Python compiled files +## Ignore Python compiled files *.pyc -# Ignore IDE-specific files and directories -.idea/ # JetBrains IDE settings -.vscode/ # Visual Studio Code settings -.theia/ # Theia IDE settings - -# Ignore temporary and backup files -*~ # General backup files -*.swp # Vim swap files - -# Ignore log files +## Ignore IDE-specific files and directories +# JetBrains IDE settings +.idea/ +# Visual Studio Code settings +.vscode/ +# Theia IDE settings +.theia/ + +## Ignore temporary and backup files +# General backup files +*~ +# Vim swap files +*.swp + +## Ignore log files *.log -# Ignore a specific generated file +## Ignore a specific generated file deepspeed/git_version_info_installed.py -# Ignore Python bytecode cache +## Ignore Python bytecode cache __pycache__ -# Build + installation data -build/ # Build artifacts -dist/ # Distribution files -*.so # Compiled shared objects -deepspeed.egg-info/ # Deepspeed package info -build.txt # Build information - -# Website generated files -docs/_site/ # Jekyll generated site -docs/build # Generated documentation +## Build + installation data +# Build artifacts +build/ +# Distribution files +dist/ +# Compiled shared objects +*.so +# Deepspeed package info +deepspeed.egg-info/ +# Build information +build.txt + +## Website generated files +# Jekyll generated site +docs/_site/ +# Generated documentation +docs/build docs/code-docs/source/_build docs/code-docs/_build docs/code-docs/build -.sass-cache/ # SASS cache -.jekyll-cache/ # Jekyll cache +# SASS cache +.sass-cache/ +# Jekyll cache +.jekyll-cache/ .jekyll-metadata -# Testing data -tests/unit/saved_checkpoint/ # Saved checkpoints for testing +## Testing data +# Saved checkpoints for testing +tests/unit/saved_checkpoint/ + +# HIP files created during AMD compilation +*_hip.cpp +*_hip.h +*.hip +*.cuh +*hip_layers.h diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 2432a7a24124..9a7bb1c9b371 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -5,7 +5,7 @@ repos: - id: check-useless-excludes - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.0.1 + rev: v5.0.0 hooks: - id: check-case-conflict - id: check-json @@ -23,7 +23,7 @@ repos: - id: trailing-whitespace - repo: https://github.com/google/yapf - rev: v0.32.0 + rev: v0.40.0 hooks: - id: yapf @@ -59,13 +59,13 @@ repos: # Do not check files that are automatically generated '--skip=docs/Gemfile.lock,tests/unit/gpt2-merges.txt,tests/unit/gpt2-vocab.json', '--ignore-regex=\\n', # Do not count the 'n' in an escaped newline as part of a word - '--ignore-words-list=youn,unsupport,noe', # Word used in error messages that need rewording + '--ignore-words-list=youn,unsupport,noe,cann', # Word used in error messages that need rewording --check-filenames, --check-hidden ] - repo: https://github.com/pycqa/flake8 - rev: 4.0.1 + rev: 5.0.4 hooks: - id: flake8 args: ['--config=.flake8'] @@ -76,5 +76,14 @@ repos: name: check-torchcuda entry: ./scripts/check-torchcuda.py language: python - exclude: ^(.github/workflows/|scripts/check-torchcuda.py|docs/_tutorials/accelerator-abstraction-interface.md|accelerator/cuda_accelerator.py|deepspeed/inference/engine.py|deepspeed/model_implementations/transformers/clip_encoder.py|deepspeed/model_implementations/diffusers/vae.py|deepspeed/model_implementations/diffusers/unet.py|op_builder/spatial_inference.py|op_builder/transformer_inference.py|op_builder/builder.py|setup.py|tests/unit/ops/sparse_attention/test_sparse_attention.py) + exclude: ^(.github/workflows/|scripts/check-torchcuda.py|docs/_tutorials/accelerator-abstraction-interface.md|docs/_tutorials/deepnvme.md|accelerator/cuda_accelerator.py|deepspeed/inference/engine.py|deepspeed/model_implementations/transformers/clip_encoder.py|deepspeed/model_implementations/diffusers/vae.py|deepspeed/model_implementations/diffusers/unet.py|op_builder/spatial_inference.py|op_builder/transformer_inference.py|op_builder/builder.py|setup.py|tests/unit/ops/sparse_attention/test_sparse_attention.py) # Specific deepspeed/ files are excluded for now until we wrap ProcessGroup in deepspeed.comm + +- repo: local + hooks: + - id: check-extraindexurl + name: check-extraindexurl + entry: ./scripts/check-extraindexurl.py + language: python + files: \.(yml|yaml|sh|py)$ + exclude: ^(scripts/check-extraindexurl.py) diff --git a/CODEOWNERS b/CODEOWNERS index 2410b3ebc09b..b0d3b8b0d77b 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -7,50 +7,53 @@ # top-level repo folders -/.github/ @jeffra @mrwyattii @loadams -/azure/ @jeffra @awan-10 -/benchmarks/ @jeffra @awan-10 @mrwyattii @molly-smith -/bin/ @jeffra -/csrc/ @RezaYazdaniAminabadi @awan-10 @jeffra @cmikeh2 @arashb -/deepspeed/ @jeffra -/docker/ @jeffra @awan-10 -/docs/ @jeffra @mrwyattii -/examples/ @jeffra @awan-10 @mrwyattii -/op_builder/ @jeffra @RezaYazdaniAminabadi @cmikeh2 -/release/ @jeffra @mrwyattii -/requirements/ @jeffra @mrwyattii -/scripts/ @jeffra @awan-10 -/tests/ @jeffra @mrwyattii @tjruwase +/.github/ @loadams +/azure/ @loadams +/benchmarks/ @guanhuawang @tjruwase +/bin/ @loadams +/csrc/ @tjruwase +/deepspeed/ @loadams @tjruwase +/docker/ @loadams @guanhuawang +/docs/ @loadams @tjruwase +/examples/ @jomayeri @tohtana +/op_builder/ @loadams @tjruwase @jomayeri +/release/ @loadams @jomayeri +/requirements/ @loadams +/scripts/ @loadams @tjruwase +/tests/ @tjruwase @loadams @tohtana # deepspeed -/deepspeed/autotuning/ @cli99 +/deepspeed/autotuning/ @loadams /deepspeed/checkpoint/ @tjruwase -/deepspeed/comm/ @awan-10 -/deepspeed/compression/ @yaozhewei @minjiaz @xiaoxiawu-microsoft @conglongli -/deepspeed/elasticity/ @jeffra @awan-10 -/deepspeed/launcher/ @jeffra @awan-10 -/deepspeed/module_inject/ @RezaYazdaniAminabadi @jeffra @mrwyattii @awan-10 @cmikeh2 @arashb -/deepspeed/moe/ @awan-10 -/deepspeed/monitor/ @awan-10 @jeffra -/deepspeed/nebula/ @tjruwase @jeffra -/deepspeed/ops/ @RezaYazdaniAminabadi @jeffra @mrwyattii @awan-10 @cmikeh2 @arashb -/deepspeed/pipe/ @ShadenSmith @duli2012 -/deepspeed/profiling/ @cli99 -/deepspeed/utils/ @jeffra @tjruwase @awan-10 +/deepspeed/comm/ @guanhuawang +/deepspeed/compression/ @tjruwase +/deepspeed/elasticity/ @tjruwase +/deepspeed/launcher/ @loadams +/deepspeed/module_inject/ @hwchen2017 @loadams +/deepspeed/moe/ @tohtana +/deepspeed/monitor/ @tjruwase +/deepspeed/nebula/ @tjruwase +/deepspeed/nvme/ @tjruwase @jomayeri +/deepspeed/ops/ @tohtana +/deepspeed/pipe/ @tohtana @loadams +/deepspeed/profiling/ @loadams +/deepspeed/sequence/ @tohtana +/deepspeed/utils/ @tjruwase @tohtana # inference -/deepspeed/inference/ @RezaYazdaniAminabadi @jeffra @mrwyattii @awan-10 @cmikeh2 @arashb -/deepspeed/model_implementations/ @RezaYazdaniAminabadi @jeffra @mrwyattii @awan-10 @cmikeh2 @arashb +/deepspeed/inference/ @hwchen2017 @tohtana +/deepspeed/model_implementations/@tohtana @loadams # training -/deepspeed/runtime/ @jeffra @tjruwase -/deepspeed/runtime/activation_checkpointing/ @jeffra @tjruwase -/deepspeed/runtime/checkpoint_engine/ @tjruwase @jeffra -/deepspeed/runtime/comm/ @awan-10 -/deepspeed/runtime/compression/ @awan-10 @conglongli -/deepspeed/runtime/data_pipeline/ @conglongli -/deepspeed/runtime/fp16/ @jeffra @tjruwase -/deepspeed/runtime/fp16/onebit/ @conglongli @awan-10 -/deepspeed/runtime/pipe/ @ShadenSmith @duli2012 -/deepspeed/runtime/swap_tensor/ @tjruwase @mrwyattii -/deepspeed/runtime/zero/ @jeffra @tjruwase @samyam @mrwyattii +/deepspeed/runtime/ @tjruwase @tohtana +/deepspeed/runtime/activation_checkpointing/ @tjruwase +/deepspeed/runtime/checkpoint_engine/ @tjruwase +/deepspeed/runtime/comm/ @guanhuawang +/deepspeed/runtime/compression/ @tjruwase +/deepspeed/runtime/data_pipeline/ @tjruwase +/deepspeed/runtime/domino/ @guanhuawang @hwchen2017 +/deepspeed/runtime/fp16/ @tjruwase @tohtana +/deepspeed/runtime/fp16/onebit/ @tjruwase +/deepspeed/runtime/pipe/ @loadams @tohtana +/deepspeed/runtime/swap_tensor/ @tjruwase @jomayeri +/deepspeed/runtime/zero/ @tjruwase @tohtana diff --git a/COMMITTERS.md b/COMMITTERS.md new file mode 100644 index 000000000000..8418bdf8629d --- /dev/null +++ b/COMMITTERS.md @@ -0,0 +1,11 @@ +# DeepSpeed TSC Committers # + +| Name | GitHub ID | Affiliation +|--- | ---- | --- | +| Olatunji Ruwase | [tjruwase](https://github.com/tjruwase) | Microsoft | +| Logan Adams | [loadams](https://github.com/loadams) | Microsoft | +| Masahiro Tanaka | [tohtana](https://github.com/tohtana) | Microsoft | +| Jeff Rasley | [jeffra](https://github.com/jeffra) | SnowFlake | +| Minjia Zhang | [minjiazhang](https://github.com/minjiazhang) | UIUC | +| Ashwin Aji | [ashwinma](https://github.com/ashwinma) | AMD | +| Sam Foreman | [saforem2](https://github.com/saforem2) | Argonne National Laboratory | diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f6e5f39869eb..bfc22afb5359 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -13,7 +13,7 @@ pre-commit install Afterwards, our suite of formatting tests run automatically before each `git commit`. You can also run these manually: ```bash -pre-commit run --all-files +pre-commit run --files $(git diff --name-only master) ``` If a formatting test fails, it will fix the modified code in place and abort the `git commit`. After looking over the changes, you can `git add ` @@ -23,7 +23,7 @@ and then repeat the previous `git commit` command. ## Testing DeepSpeed tracks two types of tests: unit tests and more costly model convergence tests. The model convergence tests train -[DeepSpeedExamples](https://github.com/microsoft/DeepSpeedExamples/) and measure +[DeepSpeedExamples](https://github.com/deepspeedai/DeepSpeedExamples/) and measure end-to-end convergence and related metrics. Unit tests are found in `tests/unit/` and the model convergence tests are found in `tests/model/`. @@ -40,7 +40,7 @@ tests. Note that [pytest-forked](https://github.com/pytest-dev/pytest-forked) an ### Model Tests To execute model tests, first [install DeepSpeed](#installation). The -[DeepSpeedExamples](https://github.com/microsoft/DeepSpeedExamples/) repository is cloned +[DeepSpeedExamples](https://github.com/deepspeedai/DeepSpeedExamples/) repository is cloned as part of this process. Next, execute the model test driver: ```bash cd tests/model/ @@ -85,8 +85,8 @@ Based on the issue we shall discuss the merit of the new feature and decide whet ### Step 2: implementation and verification Contributor will go ahead and implement the feature, and the DeepSpeed team will provide guidance/helps as needed. The required deliverables include: -* A PR to [microsoft/DeepSpeed](https://github.com/microsoft/DeepSpeed) including (1) the feature implementation (2) unit tests (3) documentation (4) tutorial -* A PR to [microsoft/DeepSpeedExamples](https://github.com/microsoft/DeepSpeedExamples) or [microsoft/Megatron-DeepSpeed](https://github.com/microsoft/Megatron-DeepSpeed) including the examples of how to use the feature (this is related to the planned testing experiments in proposal) +* A PR to [deepspeedai/DeepSpeed](https://github.com/deepspeedai/DeepSpeed) including (1) the feature implementation (2) unit tests (3) documentation (4) tutorial +* A PR to [deepspeedai/DeepSpeedExamples](https://github.com/deepspeedai/DeepSpeedExamples) or [deepspeedai/Megatron-DeepSpeed](https://github.com/deepspeedai/Megatron-DeepSpeed) including the examples of how to use the feature (this is related to the planned testing experiments in proposal) * In the implementation (code, documentation, tutorial), we require the feature author to record their GitHub username as a contact method for future questions/maintenance. After receiving the PRs, we will review them and merge them after necessary tests/fixes. diff --git a/GOVERNANCE.md b/GOVERNANCE.md new file mode 100644 index 000000000000..d488ec55114e --- /dev/null +++ b/GOVERNANCE.md @@ -0,0 +1,101 @@ + +# DeepSpeed Project Charter and Governance + +This charter sets forth the responsibilities and procedures for technical contribution to, and oversight of, the DeepSpeed open source project. All contributors (including committers, maintainers, and other technical positions) and other participants in the Project (collectively, "Collaborators") must comply with the terms of this Charter. + +## Mission and Scope of the Project + +The mission of the Project is to DeepSpeed is a deep learning optimization library that makes distributed training and inference easy, efficient, and effective. + +The scope of the Project includes collaborative development under the Project License (as defined herein) supporting the mission, including documentation, testing, integration, and the creation of other artifacts that aid the development, deployment, operation, or adoption of the open source project. + +## Technical Steering Committee + +1. The Technical Steering Committee (the "TSC") will be responsible for all technical oversight of the open source Project. + +2. The TSC voting members are initially the Project's Committers. At the inception of the project, the Committers of the Project will be as set forth within the "CONTRIBUTING" file within the Project's code repository. The TSC may choose an alternative approach for determining the voting members of the TSC, and any such alternative approach will be documented in the CONTRIBUTING file. Any meetings of the Technical Steering Committee are intended to be open to the public, and can be conducted electronically, via teleconference, or in person. + +3. TSC projects generally will involve Contributors and Committers. The TSC may adopt or modify roles so long as the roles are documented in the CONTRIBUTING file. Unless otherwise documented: + + - **Contributors** include anyone in the technical community that contributes code, documentation, or other technical artifacts to the Project. + - **Committers** are Contributors who have earned the ability to modify ("commit") source code, documentation, or other technical artifacts in a project's repository. + + - A Contributor may become a Committer by a majority approval of the existing Committers. A Committer may be removed by a majority approval of the other existing Committers. + +4. Participation in the Project through becoming a Contributor and Committer is open to anyone so long as they abide by the terms of this Charter. + +5. The TSC may: + - Establish workflow procedures for the submission, approval, and closure/archiving of projects. + - Set requirements for the promotion of Contributors to Committer status, as applicable. + - Amend, adjust, refine and/or eliminate the roles of Contributors and Committers, and create new roles, and publicly document any TSC roles, as it sees fit. + +6. The TSC may elect a TSC Chair, who will preside over meetings of the TSC and will serve until their resignation or replacement by the TSC. The TSC Chair, or any other TSC member so designated by the TSC, will serve as the primary communication contact between the Project and AI & Data, a directed fund of The Linux Foundation. + +7. Responsibilities: The TSC will be responsible for all aspects of oversight relating to the Project, which may include: + + - Coordinating the technical direction of the Project. + - Approving project or system proposals (including, but not limited to, incubation, deprecation, and changes to a sub-project's scope). + - Organizing sub-projects and removing sub-projects. + - Creating sub-committees or working groups to focus on cross-project technical issues and requirements. + - Appointing representatives to work with other open source or open standards communities. + - Establishing community norms, workflows, issuing releases, and security issue reporting policies. + - Approving and implementing policies and processes for contributing (to be published in the CONTRIBUTING file) and coordinating with the series manager of the Project (as provided for in the Series Agreement, the "Series Manager") to resolve matters or concerns that may arise as set forth in Section 7 of this Charter. + - Discussions, seeking consensus, and where necessary, voting on technical matters relating to the code base that affect multiple projects. + - Coordinating any marketing, events, or communications regarding the Project. + +## TSC Voting + +1. While the Project aims to operate as a consensus-based community, if any TSC decision requires a vote to move the Project forward, the voting members of the TSC will vote on a one vote per voting member basis. + +2. Quorum for TSC meetings requires at least fifty percent of all voting members of the TSC to be present. The TSC may continue to meet if quorum is not met but will be prevented from making any decisions at the meeting. + +3. Except as provided in Section 7.c. and 8.a, decisions by vote at a meeting require a majority vote of those in attendance, provided quorum is met. Decisions made by electronic vote without a meeting require a majority vote of all voting members of the TSC. + +4. In the event a vote cannot be resolved by the TSC, any voting member of the TSC may refer the matter to the Series Manager for assistance in reaching a resolution. + +## Compliance with Policies + +1. This Charter is subject to the Series Agreement for the Project and the Operating Agreement of LF Projects. Contributors will comply with the policies of LF Projects as may be adopted and amended by LF Projects, including, without limitation, the policies listed at https://lfprojects.org/policies/. + +2. The TSC may adopt a code of conduct ("CoC") for the Project, which is subject to approval by the Series Manager. In the event that a Project-specific CoC has not been approved, the LF Projects Code of Conduct listed at https://lfprojects.org/policies will apply for all Collaborators in the Project. + +3. When amending or adopting any policy applicable to the Project, LF Projects will publish such policy, as to be amended or adopted, on its website at least 30 days prior to such policy taking effect; provided, however, that in the case of any amendment of the Trademark Policy or Terms of Use of LF Projects, any such amendment is effective upon publication on LF Project's website. + +4. All Collaborators must allow open participation from any individual or organization meeting the requirements for contributing under this Charter and any policies adopted for all Collaborators by the TSC, regardless of competitive interests. Put another way, the Project community must not seek to exclude any participant based on any criteria, requirement, or reason other than those that are reasonable and applied on a non-discriminatory basis to all Collaborators in the Project community. + +5. The Project will operate in a transparent, open, collaborative, and ethical manner at all times. The output of all Project discussions, proposals, timelines, decisions, and status should be made open and easily visible to all. Any potential violations of this requirement should be reported immediately to the Series Manager. + +## Community Assets + +1. LF Projects will hold title to all trade or service marks used by the Project ("Project Trademarks"), whether based on common law or registered rights. Project Trademarks will be transferred and assigned to LF Projects to hold on behalf of the Project. Any use of any Project Trademarks by Collaborators in the Project will be in accordance with the license from LF Projects and inure to the benefit of LF Projects. + +2. The Project will, as permitted and in accordance with such license from LF Projects, develop and own all Project GitHub and social media accounts, and domain name registrations created by the Project community. + +3. Under no circumstances will LF Projects be expected or required to undertake any action on behalf of the Project that is inconsistent with the tax-exempt status or purpose, as applicable, of the Joint Development Foundation or LF Projects, LLC. + +## General Rules and Operations + +The Project will: + +1. Engage in the work of the Project in a professional manner consistent with maintaining a cohesive community, while also maintaining the goodwill and esteem of LF Projects, Joint Development Foundation, and other partner organizations in the open source community. +2. Respect the rights of all trademark owners, including any branding and trademark usage guidelines. + +## Intellectual Property Policy + +1. Collaborators acknowledge that the copyright in all new contributions will be retained by the copyright holder as independent works of authorship and that no contributor or copyright holder will be required to assign copyrights to the Project. + +2. Except as described in Section 7.c., all contributions to the Project are subject to the following: + + - All new inbound code contributions to the Project must be made using Apache License, Version 2.0 available at http://www.apache.org/licenses/LICENSE-2.0 (the "Project License"). + - All new inbound code contributions must also be accompanied by a Developer Certificate of Origin (http://developercertificate.org) sign-off in the source code system that is submitted through a TSC-approved contribution process which will bind the authorized contributor and, if not self-employed, their employer to the applicable license. + - All outbound code will be made available under the Project License. + - Documentation will be received and made available by the Project under the Creative Commons Attribution 4.0 International License (available at http://creativecommons.org/licenses/by/4.0/). + - The Project may seek to integrate and contribute back to other open source projects ("Upstream Projects"). In such cases, the Project will conform to all license requirements of the Upstream Projects, including dependencies, leveraged by the Project. Upstream Project code contributions not stored within the Project's main code repository will comply with the contribution process and license terms for the applicable Upstream Project. + +3. The TSC may approve the use of an alternative license or licenses for inbound or outbound contributions on an exception basis. To request an exception, please describe the contribution, the alternative open source license(s), and the justification for using an alternative open source license for the Project. License exceptions must be approved by a two-thirds vote of the entire TSC. + +4. Contributed files should contain license information, such as SPDX short form identifiers, indicating the open source license or licenses pertaining to the file. + +## Amendments + +1. This charter may be amended by a two-thirds vote of the entire TSC and is subject to approval by LF Projects. diff --git a/MANIFEST.in b/MANIFEST.in index ab79573ef96c..8d84aee0faf4 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -2,8 +2,8 @@ include *.txt README.md include deepspeed/inference/v2/kernels/ragged_ops/libs/*.so include deepspeed/inference/v2/kernels/cutlass_ops/libs/*.so recursive-include requirements *.txt -recursive-include deepspeed *.cpp *.h *.cu *.hip *.tr *.cuh *.cc *.json -recursive-include csrc *.cpp *.h *.cu *.tr *.cuh *.cc +recursive-include deepspeed *.cpp *.h *.hpp *.cu *.hip *.tr *.cuh *.cc *.json +recursive-include csrc *.cpp *.h *.hpp *.cu *.tr *.cuh *.cc recursive-include op_builder *.py recursive-include benchmarks *.py recursive-include accelerator *.py diff --git a/README.md b/README.md index b50b85af844f..233baa31f4ab 100755 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ ## DeeperSpeed -DeeperSpeed is a fork of Microsoft's [Deepspeed](https://github.com/microsoft/DeepSpeed) library that is tailor-made for the [GPT-NeoX](https://github.com/EleutherAI/gpt-neox) by [EleutherAI](https://www.eleuther.ai/). +DeeperSpeed is a fork of the [Deepspeed](https://github.com/microsoft/DeepSpeed) library that is tailor-made for the [GPT-NeoX](https://github.com/EleutherAI/gpt-neox) by [EleutherAI](https://www.eleuther.ai/). Prior to 3/9/2023, DeeperSpeed was based on an old version of DeepSpeed (0.3.15). In order to migrate to the latest upstream DeepSpeed version while allowing users to access the old versions of GPT-NeoX and DeeperSpeed, we have introduced two versioned releases for both libraries: diff --git a/SECURITY.md b/SECURITY.md index 9e9391ee0bac..3061748e610b 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -39,3 +39,7 @@ We prefer all communications to be in English. Microsoft follows the principle of [Coordinated Vulnerability Disclosure](https://www.microsoft.com/en-us/msrc/cvd). + +--- + +Please see [PyTorch's Security Policy](https://github.com/pytorch/pytorch/blob/main/SECURITY.md) for more information and recommendations on how to securely interact with models. diff --git a/accelerator/abstract_accelerator.py b/accelerator/abstract_accelerator.py index 0c7ee3212fad..2a0770ac681b 100644 --- a/accelerator/abstract_accelerator.py +++ b/accelerator/abstract_accelerator.py @@ -12,11 +12,24 @@ class DeepSpeedAccelerator(ABC): def __init__(self): self._name = None self._communication_backend_name = None + self._compile_backend = None @abc.abstractmethod def is_synchronized_device(self): ... + @abc.abstractmethod + def use_host_timers(self): + ... + + @abc.abstractmethod + def resolves_data_dependency(self): + ... + + @abc.abstractmethod + def handles_memory_backpressure(self): + ... + # Device APIs @abc.abstractmethod def device_name(self, device_index): @@ -68,7 +81,7 @@ def manual_seed_all(self, seed): ... @abc.abstractmethod - def initial_seed(self, seed): + def initial_seed(self): ... @abc.abstractmethod @@ -193,6 +206,19 @@ def communication_backend_name(self): def is_triton_supported(self): ... + # Graph operations + @abc.abstractmethod + def create_graph(self): + ... + + @abc.abstractmethod + def capture_to_graph(self, graph, pool=None, stream=None): + ... + + @abc.abstractmethod + def replay_graph(self, graph): + ... + # Tensor operations @property @abc.abstractmethod @@ -258,3 +284,23 @@ def get_op_builder(self, class_name): @abc.abstractmethod def build_extension(self): ... + + @abc.abstractmethod + def export_envs(self): + ... + + @abc.abstractmethod + def visible_devices_envs(self): + ... + + @abc.abstractmethod + def set_visible_devices_envs(self, current_env, local_accelerator_ids): + ... + + @abc.abstractmethod + def get_compile_backend(self): + ... + + @abc.abstractmethod + def set_compile_backend(self, backend): + ... diff --git a/accelerator/cpu_accelerator.py b/accelerator/cpu_accelerator.py index fdbbd33c07a2..de711f73144e 100644 --- a/accelerator/cpu_accelerator.py +++ b/accelerator/cpu_accelerator.py @@ -3,10 +3,21 @@ # DeepSpeed Team -import torch -from deepspeed.accelerator.abstract_accelerator import DeepSpeedAccelerator -import oneccl_bindings_for_pytorch # noqa: F401 # type: ignore -import psutil +from .abstract_accelerator import DeepSpeedAccelerator + +# During setup stage torch may not be installed, pass on no torch will +# allow op builder related API to be executed. +try: + import torch +except ImportError as e: + pass + +try: + import oneccl_bindings_for_pytorch # noqa: F401 # type: ignore + oneccl_imported_p = True +except ImportError as e: + oneccl_imported_p = False + import os @@ -15,12 +26,31 @@ class CPU_Accelerator(DeepSpeedAccelerator): def __init__(self): self._name = 'cpu' - self._communication_backend_name = 'ccl' - self.max_mem = psutil.Process().memory_info().rss + self._compile_backend = "inductor" + if oneccl_imported_p: + self._communication_backend_name = 'ccl' + else: + # fallback to gloo if oneccl_binding_for_pytorch is not installed + self._communication_backend_name = 'gloo' + try: + import psutil + mem = psutil.Process().memory_info().rss + self.max_mem = mem + except ImportError as e: + self.max_mem = 0 def is_synchronized_device(self): return True + def use_host_timers(self): + return self.is_synchronized_device() + + def resolves_data_dependency(self): + return self.is_synchronized_device() + + def handles_memory_backpressure(self): + return self.is_synchronized_device() + # Device APIs def device_name(self, device_index=None): return 'cpu' @@ -47,6 +77,8 @@ def device_count(self): # In flat mode, HBM is in separate NUMA node with no cores on this node. # Ignore these NUMA nodes with no cores. numa_core_lists = get_numa_cores() + if not numa_core_lists: + return 1 numa_count = 0 prev_core_list = [] for core_list in numa_core_lists: @@ -63,7 +95,7 @@ def random(self): return torch.random def set_rng_state(self, new_state, device_index=None): - if device_index == None: + if device_index is None: return torch.set_rng_state(new_state) return torch.set_rng_state(new_state, device_index) @@ -76,8 +108,8 @@ def manual_seed(self, seed): def manual_seed_all(self, seed): return torch.manual_seed(seed) - def initial_seed(self, seed): - return torch.initial_seed(seed) + def initial_seed(self): + return torch.initial_seed() def default_generator(self, device_index): return torch.default_generator @@ -106,12 +138,14 @@ def empty_cache(self): return def get_rss(self): + import psutil mem = psutil.Process().memory_info().rss if mem > self.max_mem: self.max_mem = mem return mem def reset_rss(self): + import psutil mem = psutil.Process().memory_info().rss self.max_mem = mem return mem @@ -157,9 +191,11 @@ def max_memory_reserved(self, device_index=None): return self.max_mem def total_memory(self, device_index=None): + import psutil return psutil.virtual_memory().total def available_memory(self, device_index=None): + import psutil return psutil.virtual_memory().available # Misc @@ -198,8 +234,18 @@ def is_fp16_supported(self): def supported_dtypes(self): return [torch.float, torch.bfloat16] - # Tensor operations + # Graph operations + def create_graph(self): + return None + def capture_to_graph(self, graph, pool=None, stream=None): + from deepspeed.runtime.utils import noop_context + return noop_context() + + def replay_graph(self, graph): + return + + # Tensor operations @property def BFloat16Tensor(self): return torch.BFloat16Tensor @@ -253,7 +299,7 @@ def on_accelerator(self, tensor): # create an instance of op builder and return, name specified by class_name def create_op_builder(self, op_name): builder_class = self.get_op_builder(op_name) - if builder_class != None: + if builder_class is not None: return builder_class() return None @@ -263,16 +309,20 @@ def get_op_builder(self, class_name): # is op_builder from deepspeed or a 3p version? this should only succeed if it's deepspeed # if successful this also means we're doing a local install and not JIT compile path from op_builder import __deepspeed__ # noqa: F401 # type: ignore - from op_builder.cpu import CCLCommBuilder, FusedAdamBuilder, CPUAdamBuilder, NotImplementedBuilder + from op_builder.cpu import AsyncIOBuilder, CCLCommBuilder, ShareMemCommBuilder, FusedAdamBuilder, CPUAdamBuilder, NotImplementedBuilder except ImportError: - from deepspeed.ops.op_builder.cpu import CCLCommBuilder, FusedAdamBuilder, CPUAdamBuilder, NotImplementedBuilder + from deepspeed.ops.op_builder.cpu import AsyncIOBuilder, CCLCommBuilder, ShareMemCommBuilder, FusedAdamBuilder, CPUAdamBuilder, NotImplementedBuilder if class_name == "CCLCommBuilder": return CCLCommBuilder + elif class_name == "ShareMemCommBuilder": + return ShareMemCommBuilder elif class_name == "FusedAdamBuilder": return FusedAdamBuilder elif class_name == "CPUAdamBuilder": return CPUAdamBuilder + elif class_name == "AsyncIOBuilder": + return AsyncIOBuilder else: # return a NotImplementedBuilder to avoid get NoneType[Name] in unit tests return NotImplementedBuilder @@ -280,3 +330,25 @@ def get_op_builder(self, class_name): def build_extension(self): from torch.utils.cpp_extension import BuildExtension return BuildExtension + + def export_envs(self): + return [] + + # TODO: cpu's visible envs is confirmed, keep as CUDA_VISIBLE_DEVICES + def visible_devices_envs(self): + return ['CUDA_VISIBLE_DEVICES'] + + def set_visible_devices_envs(self, current_env, local_accelerator_ids): + for env in self.visible_devices_envs(): + current_env[env] = ",".join(map(str, local_accelerator_ids)) + + def get_compile_backend(self): + return self._compile_backend + + def set_compile_backend(self, backend): + supported_backends = torch._dynamo.list_backends(exclude_tags=()) + if backend in supported_backends: + self._compile_backend = backend + else: + raise ValueError( + f"{backend} not supported by {self.device_name()}. Supported Backends are {supported_backends}") diff --git a/accelerator/cuda_accelerator.py b/accelerator/cuda_accelerator.py index 2786b425ca7f..06fd443f9829 100644 --- a/accelerator/cuda_accelerator.py +++ b/accelerator/cuda_accelerator.py @@ -3,9 +3,11 @@ # DeepSpeed Team +import functools import os import pkgutil import importlib +import sys from .abstract_accelerator import DeepSpeedAccelerator # During setup stage torch may not be installed, pass on no torch will @@ -23,7 +25,8 @@ class CUDA_Accelerator(DeepSpeedAccelerator): def __init__(self): self._name = 'cuda' - self._communication_backend_name = 'nccl' + self._communication_backend_name = 'nccl' if sys.platform != 'win32' else 'gloo' + self._compile_backend = "inductor" if pynvml is None: self._init_pynvml() @@ -42,9 +45,18 @@ def _init_pynvml(self): def is_synchronized_device(self): return False + def use_host_timers(self): + return self.is_synchronized_device() + + def resolves_data_dependency(self): + return self.is_synchronized_device() + + def handles_memory_backpressure(self): + return self.is_synchronized_device() + # Device APIs def device_name(self, device_index=None): - if device_index == None: + if device_index is None: return 'cuda' return 'cuda:{}'.format(device_index) @@ -88,8 +100,8 @@ def manual_seed(self, seed): def manual_seed_all(self, seed): return torch.cuda.manual_seed_all(seed) - def initial_seed(self, seed): - return torch.cuda.initial_seed(seed) + def initial_seed(self): + return torch.cuda.initial_seed() def default_generator(self, device_index): return torch.cuda.default_generators[device_index] @@ -180,17 +192,31 @@ def available_memory(self, device_index=None): # Data types def is_bf16_supported(self): + if not torch.cuda.is_available(): + return True return torch.cuda.is_bf16_supported() def is_fp16_supported(self): + if not torch.cuda.is_available(): + return True + # See https://docs.nvidia.com/deeplearning/tensorrt/support-matrix/index.html#hardware-precision-matrix + # FP16 on compute capability 6.x is deprecated + allow_deprecated_fp16 = os.environ.get('DS_ALLOW_DEPRECATED_FP16', '0') == '1' major, _ = torch.cuda.get_device_capability() if major >= 7: return True + elif major == 6 and allow_deprecated_fp16: + return True else: return False def supported_dtypes(self): - return [torch.float, torch.half, torch.bfloat16] + supported_dtypes = [torch.float] + if self.is_fp16_supported(): + supported_dtypes.append(torch.half) + if self.is_bf16_supported(): + supported_dtypes.append(torch.bfloat16) + return supported_dtypes # Misc def amp(self): @@ -222,35 +248,46 @@ def is_triton_supported(self): else: return False + # Graph operations + def create_graph(self): + return torch.cuda.CUDAGraph() + + def capture_to_graph(self, graph, pool=None, stream=None): + return torch.cuda.graph(graph, pool, stream) + + def replay_graph(self, graph): + graph.replay() + return + # Tensor operations @property def BFloat16Tensor(self): - return torch.cuda.BFloat16Tensor + return functools.partial(torch.tensor, dtype=torch.bfloat16, device='cuda') @property def ByteTensor(self): - return torch.cuda.ByteTensor + return functools.partial(torch.tensor, dtype=torch.uint8, device='cuda') @property def DoubleTensor(self): - return torch.cuda.DoubleTensor + return functools.partial(torch.tensor, dtype=torch.double, device='cuda') @property def FloatTensor(self): - return torch.cuda.FloatTensor + return functools.partial(torch.tensor, dtype=torch.float, device='cuda') @property def HalfTensor(self): - return torch.cuda.HalfTensor + return functools.partial(torch.tensor, dtype=torch.half, device='cuda') @property def IntTensor(self): - return torch.cuda.IntTensor + return functools.partial(torch.tensor, dtype=torch.int, device='cuda') @property def LongTensor(self): - return torch.cuda.LongTensor + return functools.partial(torch.tensor, dtype=torch.long, device='cuda') def pin_memory(self, tensor, align_bytes=1): return tensor.pin_memory() @@ -280,7 +317,7 @@ def op_builder_dir(self): class_dict = None def _lazy_init_class_dict(self): - if self.class_dict != None: + if self.class_dict is not None: return else: self.class_dict = {} @@ -322,3 +359,24 @@ def get_op_builder(self, class_name): def build_extension(self): from torch.utils.cpp_extension import BuildExtension return BuildExtension + + def export_envs(self): + return ['NCCL'] + + def visible_devices_envs(self): + return ['CUDA_VISIBLE_DEVICES'] + + def set_visible_devices_envs(self, current_env, local_accelerator_ids): + for env in self.visible_devices_envs(): + current_env[env] = ",".join(map(str, local_accelerator_ids)) + + def get_compile_backend(self): + return self._compile_backend + + def set_compile_backend(self, backend): + supported_backends = torch._dynamo.list_backends(exclude_tags=()) + if backend in supported_backends: + self._compile_backend = backend + else: + raise ValueError( + f"{backend} not supported by {self.device_name()}. Supported Backends are {supported_backends}") diff --git a/accelerator/hpu_accelerator.py b/accelerator/hpu_accelerator.py new file mode 100644 index 000000000000..b46351f8ca43 --- /dev/null +++ b/accelerator/hpu_accelerator.py @@ -0,0 +1,329 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import functools +import os +import pkgutil +import importlib +import torch + +from .abstract_accelerator import DeepSpeedAccelerator + + +class HPU_Accelerator(DeepSpeedAccelerator): + + def __init__(self): + self._name = 'hpu' + self._communication_backend_name = 'hccl' + self._compile_backend = "hpu_backend" + self.apply_hpu_workarounds() + try: + import habana_frameworks.torch.hpu as hpu + self.hpu = hpu + torch.use_deterministic_algorithms(True) + except ImportError as e: + raise ValueError( + f"HPU_Accelerator requires habana_frameworks.torch.hpu, which is not installed on this system.") + + self.fp16_supported = None + + def apply_hpu_workarounds(self): + + def update_wa_env_var(key, value): + if key not in os.environ.keys(): + os.environ[key] = value + + update_wa_env_var("PT_HPU_LAZY_ACC_PAR_MODE", "0") + update_wa_env_var("PT_HPU_ENABLE_REFINE_DYNAMIC_SHAPES", "0") + + # Device APIs + def is_synchronized_device(self): + return False + + def use_host_timers(self): + return False + + def resolves_data_dependency(self): + return True + + def handles_memory_backpressure(self): + return True + + def device_name(self, device_index=None): + # ignoring device_index. + return 'hpu' + + def device(self, device_index=None): + return torch.device(self.device_name(device_index)) + + def set_device(self, device_index): + self.hpu.set_device(device_index) + + def current_device(self): + return (self.hpu.current_device()) + + def current_device_name(self): + return 'hpu:{}'.format(self.current_device()) + + def device_count(self): + return self.hpu.device_count() + + def synchronize(self, device_index=None): + return self.hpu.synchronize() + + # RNG APIs + def random(self): + return torch.random + + def set_rng_state(self, new_state, device_index=None): + self.hpu.random.set_rng_state(new_state) + + def get_rng_state(self, device_index=None): + return self.hpu.random.get_rng_state() + + def manual_seed(self, seed): + return self.hpu.random.manual_seed(seed) + + def manual_seed_all(self, seed): + self.hpu.random.manual_seed_all(seed) + + def initial_seed(self): + return self.hpu.random.initial_seed() + + def default_generator(self, device_index): + return self.hpu.random.default_generators[device_index] + + # Streams/Events + @property + def Stream(self): + return self.hpu.Stream + + def stream(self, stream): + return self.hpu.stream(stream) + + def current_stream(self, device_index=None): + return self.hpu.current_stream() + + def default_stream(self, device_index=None): + return self.hpu.default_stream() + + @property + def Event(self): + import habana_frameworks.torch.core as htcore + return htcore.hpu.Event + + # Memory management + def empty_cache(self): + return + + def memory_allocated(self, device_index=None): + return self.hpu.memory_allocated() + + def max_memory_allocated(self, device_index=None): + return self.hpu.max_memory_allocated() + + def reset_max_memory_allocated(self, device_index=None): + return self.hpu.reset_max_memory_allocated() + + def memory_cached(self, device_index=None): + return self.hpu.memory_cached(device_index) + + def max_memory_cached(self, device_index=None): + return self.hpu.max_memory_cached(device_index) + + def reset_max_memory_cached(self, device_index=None): + return None + + def memory_stats(self, device_index=None): + return self.hpu.memory_stats(device_index) + + def reset_peak_memory_stats(self, device_index=None): + self.hpu.reset_peak_memory_stats(device_index) + + def memory_reserved(self, device_index=None): + return self.hpu.memory_reserved(device_index) + + def max_memory_reserved(self, device_index=None): + return self.hpu.max_memory_reserved(device_index) + + def total_memory(self, device_index=None): + return self.memory_stats(device_index)['Limit'] + + def available_memory(self, device_index=None): + return self.total_memory(device_index) - self.memory_allocated(device_index) + + # Data types + def is_bf16_supported(self): + return True + + def is_fp16_supported(self): + if self.fp16_supported is None: + import habana_frameworks.torch.utils.experimental as htexp + self.fp16_supported = htexp._is_fp16_supported() + return self.fp16_supported + + def supported_dtypes(self): + supported_dtypes = [torch.float, torch.bfloat16] + if self.is_fp16_supported(): + supported_dtypes.append(torch.half) + return supported_dtypes + + # Misc + def amp(self): + return None + + def is_available(self): + return self.hpu.is_available() + + def range_push(self, msg): + return + + def range_pop(self): + return + + def lazy_call(self, callback): + callback() + + def communication_backend_name(self): + return self._communication_backend_name + + def is_triton_supported(self): + return False + + # Graph operations + def create_graph(self): + return self.hpu.HPUGraph() + + def capture_to_graph(self, graph, pool=None, stream=None): + return self.hpu.graph(graph, stream=stream) + + def replay_graph(self, graph): + graph.replay() + return + + # Tensor operations + @property + def BFloat16Tensor(self): + return functools.partial(torch.tensor, dtype=torch.bfloat16, device='hpu') + + @property + def ByteTensor(self): + return functools.partial(torch.tensor, dtype=torch.uint8, device='hpu') + + @property + def DoubleTensor(self): + return functools.partial(torch.tensor, dtype=torch.double, device='hpu') + + @property + def FloatTensor(self): + return functools.partial(torch.tensor, dtype=torch.float, device='hpu') + + @property + def HalfTensor(self): + return functools.partial(torch.tensor, dtype=torch.half, device='hpu') + + @property + def IntTensor(self): + return functools.partial(torch.tensor, dtype=torch.int, device='hpu') + + @property + def LongTensor(self): + return functools.partial(torch.tensor, dtype=torch.long, device='hpu') + + def pin_memory(self, tensor, align_bytes=1): + return tensor.pin_memory(self.device()) + + def is_pinned(self, tensor): + return tensor.is_pinned() + + def on_accelerator(self, tensor): + device_str = str(tensor.device) + if device_str.startswith('hpu:'): + return True + else: + return False + + def op_builder_dir(self): + try: + # is op_builder from deepspeed or a 3p version? this should only succeed if it's deepspeed + # if successful this also means we're doing a local install and not JIT compile path + from op_builder import __deepspeed__ # noqa: F401 # type: ignore + return "op_builder.hpu" + except ImportError: + return "deepspeed.ops.op_builder.hpu" + + # dict that holds class name <--> class type mapping i.e. + # 'AsyncIOBuilder': + # this dict will be filled at init stage + class_dict = None + + def _lazy_init_class_dict(self): + if self.class_dict is not None: + return + else: + self.class_dict = {} + # begin initialize for create_op_builder() + # put all valid class name <--> class type mapping into class_dict + op_builder_dir = self.op_builder_dir() + op_builder_module = importlib.import_module(op_builder_dir) + op_builder_absolute_path = os.path.dirname(op_builder_module.__file__) + for _, module_name, _ in pkgutil.iter_modules([op_builder_absolute_path]): + # avoid self references, + # skip sub_directories which contains ops for other backend(cpu, npu, etc.). + if module_name != 'all_ops' and module_name != 'builder' and not os.path.isdir( + os.path.join(op_builder_absolute_path, module_name)): + module = importlib.import_module("{}.{}".format(op_builder_dir, module_name)) + for member_name in module.__dir__(): + if member_name.endswith( + 'Builder' + ) and member_name != "OpBuilder" and member_name != "CPUOpBuilder" and member_name != "TorchCPUOpBuilder": # avoid abstract classes + if not member_name in self.class_dict: + self.class_dict[member_name] = getattr(module, member_name) + # end initialize for create_op_builder() + + # create an instance of op builder and return, name specified by class_name + def create_op_builder(self, class_name): + self._lazy_init_class_dict() + if class_name in self.class_dict: + return self.class_dict[class_name]() + else: + return None + + # return an op builder class, name specified by class_name + def get_op_builder(self, class_name): + self._lazy_init_class_dict() + if class_name in self.class_dict: + return self.class_dict[class_name] + else: + return self.class_dict['NotImplementedBuilder'] if 'NotImplementedBuilder' in self.class_dict else None + + def build_extension(self): + from torch.utils.cpp_extension import BuildExtension + return BuildExtension + + def export_envs(self): + return [] + + def visible_devices_envs(self): + # Current way deepspeed set this env var is not applicable with all HPU instances + # User has to follow instructions in: + # https://docs.habana.ai/en/latest/PyTorch/Reference/PT_Multiple_Tenants_on_HPU/Multiple_Workloads_Single_Docker.html + # keeping CUDA_VISIBLE_DEVICES + return ['CUDA_VISIBLE_DEVICES'] #['HABANA_VISIBLE_MODULES'] + + def set_visible_devices_envs(self, current_env, local_accelerator_ids): + for env in self.visible_devices_envs(): + current_env[env] = ",".join(map(str, local_accelerator_ids)) + + def get_compile_backend(self): + return self._compile_backend + + def set_compile_backend(self, backend): + supported_backends = torch._dynamo.list_backends(exclude_tags=()) + if backend in supported_backends: + self._compile_backend = backend + else: + raise ValueError( + f"{backend} not supported by {self.device_name()}. Supported Backends are {supported_backends}") diff --git a/accelerator/mlu_accelerator.py b/accelerator/mlu_accelerator.py new file mode 100644 index 000000000000..bef716f0ee4e --- /dev/null +++ b/accelerator/mlu_accelerator.py @@ -0,0 +1,300 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team +import importlib +import inspect +import functools + +from .abstract_accelerator import DeepSpeedAccelerator +import torch +# During setup stage torch may not be installed, pass on no torch will +# allow op builder related API to be executed. + + +class MLU_Accelerator(DeepSpeedAccelerator): + + def __init__(self): + self._name = 'mlu' + self._communication_backend_name = 'cncl' + self._compile_backend = "inductor" + self.class_dict = None + + def is_synchronized_device(self): + return False + + def use_host_timers(self): + return self.is_synchronized_device() + + def resolves_data_dependency(self): + return self.is_synchronized_device() + + def handles_memory_backpressure(self): + return self.is_synchronized_device() + + # Device APIs + def device_name(self, device_index=None): + if device_index == None: + return 'mlu' + return 'mlu:{}'.format(device_index) + + def device(self, device_index=None): + return torch.mlu.device(device_index) + + def set_device(self, device_index): + torch.mlu.set_device(device_index) + + def current_device(self): + return torch.mlu.current_device() + + def current_device_name(self): + return 'mlu:{}'.format(torch.mlu.current_device()) + + def device_count(self): + return torch.mlu.device_count() + + def synchronize(self, device_index=None): + return torch.mlu.synchronize(device_index) + + # RNG APIs + def random(self): + return torch.random + + def set_rng_state(self, new_state, device_index=None): + if device_index is None: + return torch.mlu.set_rng_state(new_state) + + return torch.mlu.set_rng_state(new_state, device_index) + + def get_rng_state(self, device_index=None): + if device_index is None: + return torch.mlu.get_rng_state() + + return torch.mlu.get_rng_state(device_index) + + def manual_seed(self, seed): + return torch.mlu.manual_seed(seed) + + def manual_seed_all(self, seed): + return torch.mlu.manual_seed_all(seed) + + def initial_seed(self, seed): + return torch.mlu.initial_seed(seed) + + def default_generator(self, device_index): + return torch.mlu.default_generators[device_index] + + # Streams/Events + @property + def Stream(self): + return torch.mlu.Stream + + def stream(self, stream): + return torch.mlu.stream(stream) + + def current_stream(self, device_index=None): + return torch.mlu.current_stream(device_index) + + def default_stream(self, device_index=None): + return torch.mlu.default_stream(device_index) + + @property + def Event(self): + return torch.mlu.Event + + # Memory management + def empty_cache(self): + return torch.mlu.empty_cache() + + def memory_allocated(self, device_index=None): + return torch.mlu.memory_allocated(device_index) + + def max_memory_allocated(self, device_index=None): + return torch.mlu.max_memory_allocated(device_index) + + def reset_max_memory_allocated(self, device_index=None): + return torch.mlu.reset_max_memory_allocated(device_index) + + def memory_cached(self, device_index=None): + return torch.mlu.memory_cached(device_index) + + def max_memory_cached(self, device_index=None): + return torch.mlu.max_memory_cached(device_index) + + def reset_max_memory_cached(self, device_index=None): + return torch.mlu.reset_max_memory_cached(device_index) + + def memory_stats(self, device_index=None): + if hasattr(torch.mlu, 'memory_stats'): + return torch.mlu.memory_stats(device_index) + + def reset_peak_memory_stats(self, device_index=None): + if hasattr(torch.mlu, 'reset_peak_memory_stats'): + return torch.mlu.reset_peak_memory_stats(device_index) + + def memory_reserved(self, device_index=None): + if hasattr(torch.mlu, 'memory_reserved'): + return torch.mlu.memory_reserved(device_index) + + def max_memory_reserved(self, device_index=None): + if hasattr(torch.mlu, 'max_memory_reserved'): + return torch.mlu.max_memory_reserved(device_index) + + def total_memory(self, device_index=None): + return torch.mlu.get_device_properties(device_index).total_memory + + def available_memory(self, device_index=None): + return self.total_memory(device_index) - self.memory_allocated(device_index) + + # Data types + def is_bf16_supported(self): + return torch.mlu.is_bf16_supported() + + def is_fp16_supported(self): + return True + + def supported_dtypes(self): + supported_dtypes = [torch.float] + if self.is_fp16_supported(): + supported_dtypes.append(torch.half) + if self.is_bf16_supported(): + supported_dtypes.append(torch.bfloat16) + return supported_dtypes + + # Misc + def amp(self): + if hasattr(torch.mlu, 'amp'): + return torch.mlu.amp + return None + + def is_available(self): + return torch.mlu.is_available() + + def range_push(self, msg): + if hasattr(torch.mlu.cnpx, 'range_push'): + return torch.mlu.cnpx.range_push(msg) + + def range_pop(self): + if hasattr(torch.mlu.cnpx, 'range_pop'): + return torch.mlu.cnpx.range_pop() + + def lazy_call(self, callback): + return torch.mlu._lazy_call(callback) + + def communication_backend_name(self): + return self._communication_backend_name + + def is_triton_supported(self): + return True + + # Graph operations + def create_graph(self): + torch.mlu.MLUGraph() + + def capture_to_graph(self, graph, pool=None, stream=None): + return torch.mlu.graph(graph, pool, stream) + + def replay_graph(self, graph): + graph.replay() + return + + # Tensor operations + + @property + def BFloat16Tensor(self): + return functools.partial(torch.tensor, dtype=torch.bfloat16, device='mlu') + + @property + def ByteTensor(self): + return functools.partial(torch.tensor, dtype=torch.uint8, device='mlu') + + @property + def DoubleTensor(self): + return functools.partial(torch.tensor, dtype=torch.double, device='mlu') + + @property + def FloatTensor(self): + return functools.partial(torch.tensor, dtype=torch.float, device='mlu') + + @property + def HalfTensor(self): + return functools.partial(torch.tensor, dtype=torch.half, device='mlu') + + @property + def IntTensor(self): + return functools.partial(torch.tensor, dtype=torch.int, device='mlu') + + @property + def LongTensor(self): + return functools.partial(torch.tensor, dtype=torch.long, device='mlu') + + def pin_memory(self, tensor): + return tensor.pin_memory() + + def is_pinned(self, tensor): + return tensor.is_pinned() + + def on_accelerator(self, tensor): + device_str = str(tensor.device) + if device_str.startswith('mlu:'): + return True + else: + return False + + def op_builder_dir(self): + try: + # is op_builder from deepspeed or a 3p version? this should only succeed if it's deepspeed + # if successful this also means we're doing a local install and not JIT compile path + from op_builder import __deepspeed__ # noqa: F401 # type: ignore + return "op_builder.mlu" + except ImportError: + return "deepspeed.ops.op_builder.mlu" + + def _lazy_init_class_dict(self): + if self.class_dict: + return + + op_builder_module = importlib.import_module(self.op_builder_dir()) + + # get op builder class from op_builder/mlu/__init__.py + self.class_dict = {} + for class_name, class_obj in inspect.getmembers(op_builder_module, inspect.isclass): + self.class_dict[class_name] = class_obj + + # create an instance of op builder and return, name specified by class_name + def create_op_builder(self, class_name): + builder_class = self.get_op_builder(class_name) + return builder_class() + + # return an op builder class, name specified by class_name + def get_op_builder(self, class_name): + self._lazy_init_class_dict() + if class_name in self.class_dict: + return self.class_dict[class_name] + else: + return self.class_dict['NotImplementedBuilder'] + + def build_extension(self): + from torch.utils.cpp_extension import BuildExtension + return BuildExtension + + def export_envs(self): + return ['NEUWARE_HOME', 'CNCL', 'LD_LIBRARY', 'PATH'] + + def visible_devices_envs(self): + return ['MLU_VISIBLE_DEVICES'] + + def set_visible_devices_envs(self, current_env, local_accelerator_ids): + for env in self.visible_devices_envs(): + current_env[env] = ",".join(map(str, local_accelerator_ids)) + + def get_compile_backend(self): + return self._compile_backend + + def set_compile_backend(self, backend): + supported_backends = torch._dynamo.list_backends(exclude_tags=()) + if backend in supported_backends: + self._compile_backend = backend + else: + raise ValueError( + f"{backend} not supported by {self.device_name()}. Supported Backends are {supported_backends }") diff --git a/accelerator/mps_accelerator.py b/accelerator/mps_accelerator.py index 77595f6b636c..1083ba14d27e 100644 --- a/accelerator/mps_accelerator.py +++ b/accelerator/mps_accelerator.py @@ -20,13 +20,23 @@ class MPS_Accelerator(DeepSpeedAccelerator): def __init__(self): self._name = "mps" self._communication_backend_name = None + self._compile_backend = "inductor" def is_synchronized_device(self): return False + def use_host_timers(self): + return self.is_synchronized_device() + + def resolves_data_dependency(self): + return self.is_synchronized_device() + + def handles_memory_backpressure(self): + return self.is_synchronized_device() + # Device APIs def device_name(self, device_index=None): - if device_index == None: + if device_index is None: return "mps" return "mps:{}".format(device_index) @@ -67,7 +77,7 @@ def manual_seed_all(self, seed): def seed(self): return torch.mps.seed() - def initial_seed(self, seed): + def initial_seed(self): return def default_generator(self, device_index): @@ -166,6 +176,17 @@ def communication_backend_name(self): def is_triton_supported(self): return False + # Graph operations + def create_graph(self): + return None + + def capture_to_graph(self, graph, pool=None, stream=None): + from deepspeed.runtime.utils import noop_context + return noop_context() + + def replay_graph(self, graph): + return + # Tensor operations @property def BFloat16Tensor(self): @@ -221,7 +242,7 @@ def op_builder_dir(self): # create an instance of op builder, specified by class_name def create_op_builder(self, op_name): builder_class = self.get_op_builder(op_name) - if builder_class != None: + if builder_class is not None: return builder_class() return None @@ -235,3 +256,26 @@ def build_extension(self): from torch.utils.cpp_extension import BuildExtension return BuildExtension + + def export_envs(self): + return [] + + # TODO: mpu's visible envs is confirmed, keep as CUDA_VISIBLE_DEVICES + def visible_devices_envs(self): + # TODO: could not find visible devices env for mps + return ['CUDA_VISIBLE_DEVICES'] + + def set_visible_devices_envs(self, current_env, local_accelerator_ids): + for env in self.visible_devices_envs(): + current_env[env] = ",".join(map(str, local_accelerator_ids)) + + def get_compile_backend(self): + return self._compile_backend + + def set_compile_backend(self, backend): + supported_backends = torch._dynamo.list_backends(exclude_tags=()) + if backend in supported_backends: + self._compile_backend = backend + else: + raise ValueError( + f"{backend} not supported by {self.device_name()}. Supported Backends are {supported_backends}") diff --git a/accelerator/npu_accelerator.py b/accelerator/npu_accelerator.py index 7ebbd320bb15..9252990d0a94 100644 --- a/accelerator/npu_accelerator.py +++ b/accelerator/npu_accelerator.py @@ -20,6 +20,7 @@ def __init__(self): super().__init__() self._name = 'npu' self._communication_backend_name = 'hccl' + self._compile_backend = "inductor" # dict that holds class name <--> class type mapping i.e. # 'AsyncIOBuilder': # this dict will be filled at init stage @@ -28,9 +29,18 @@ def __init__(self): def is_synchronized_device(self): return False + def use_host_timers(self): + return self.is_synchronized_device() + + def resolves_data_dependency(self): + return self.is_synchronized_device() + + def handles_memory_backpressure(self): + return self.is_synchronized_device() + # Device APIs def device_name(self, device_index=None): - if device_index == None: + if device_index is None: return 'npu' return 'npu:{}'.format(device_index) @@ -74,8 +84,8 @@ def manual_seed(self, seed): def manual_seed_all(self, seed): return torch.npu.manual_seed_all(seed) - def initial_seed(self, seed): - return torch.npu.initial_seed(seed) + def initial_seed(self): + return torch.npu.initial_seed() def default_generator(self, device_index): return torch.npu.default_generators[device_index] @@ -176,6 +186,17 @@ def communication_backend_name(self): def is_triton_supported(self): return False + # Graph operations + def create_graph(self): + return None + + def capture_to_graph(self, graph, pool=None, stream=None): + from deepspeed.runtime.utils import noop_context + return noop_context() + + def replay_graph(self, graph): + return + # Tensor operations @property @@ -255,3 +276,24 @@ def get_op_builder(self, class_name): def build_extension(self): from torch.utils.cpp_extension import BuildExtension return BuildExtension + + def export_envs(self): + return ['ASCEND', 'HCCL', 'LD_LIBRARY', 'PATH'] + + def visible_devices_envs(self): + return ['ASCEND_RT_VISIBLE_DEVICES'] + + def set_visible_devices_envs(self, current_env, local_accelerator_ids): + for env in self.visible_devices_envs(): + current_env[env] = ",".join(map(str, local_accelerator_ids)) + + def get_compile_backend(self): + return self._compile_backend + + def set_compile_backend(self, backend): + supported_backends = torch._dynamo.list_backends(exclude_tags=()) + if backend in supported_backends: + self._compile_backend = backend + else: + raise ValueError( + f"{backend} not supported by {self.device_name()}. Supported Backends are {supported_backends }") diff --git a/accelerator/real_accelerator.py b/accelerator/real_accelerator.py index 49133489b051..9c1713ca4c6c 100644 --- a/accelerator/real_accelerator.py +++ b/accelerator/real_accelerator.py @@ -20,7 +20,7 @@ except ImportError as e: dsa2 = None -SUPPORTED_ACCELERATOR_LIST = ['cuda', 'cpu', 'xpu', 'npu', 'mps'] +SUPPORTED_ACCELERATOR_LIST = ['cuda', 'cpu', 'xpu', 'xpu.external', 'npu', 'mps', 'hpu', 'mlu', 'sdaa'] ds_accelerator = None @@ -45,7 +45,7 @@ def _validate_accelerator(accel_obj): def is_current_accelerator_supported(): - return get_accelerator() in SUPPORTED_ACCELERATOR_LIST + return get_accelerator().device_name() in SUPPORTED_ACCELERATOR_LIST def get_accelerator(): @@ -60,22 +60,32 @@ def get_accelerator(): accelerator_name = os.environ["DS_ACCELERATOR"] if accelerator_name == "xpu": try: - from intel_extension_for_deepspeed import XPU_Accelerator # noqa: F401 # type: ignore + import intel_extension_for_pytorch as ipex + assert ipex._C._has_xpu(), "XPU_Accelerator requires an intel_extension_for_pytorch that supports XPU." except ImportError as e: raise ValueError( - f"XPU_Accelerator requires intel_extension_for_deepspeed, which is not installed on this system.") - elif accelerator_name == "cpu": + f"XPU_Accelerator requires intel_extension_for_pytorch, which is not installed on this system.") + elif accelerator_name == "xpu.external": try: - import intel_extension_for_pytorch # noqa: F401 # type: ignore + import intel_extension_for_deepspeed # noqa: F401 # type: ignore except ImportError as e: raise ValueError( - f"CPU_Accelerator requires intel_extension_for_pytorch, which is not installed on this system.") + f"XPU_Accelerator external requires intel_extension_for_deepspeed, which is not installed on this system." + ) + elif accelerator_name == "cpu": + pass elif accelerator_name == "npu": try: import torch_npu # noqa: F401 # type: ignore except ImportError as e: raise ValueError(f"NPU_Accelerator requires torch_npu, which is not installed on this system.") pass + elif accelerator_name == "sdaa": + try: + import torch_sdaa # noqa: F401 # type: ignore + except ImportError as e: + raise ValueError(f"SDAA_Accelerator requires torch_sdaa, which is not installed on this system.") + pass elif accelerator_name == "mps": try: import torch.mps @@ -84,7 +94,18 @@ def get_accelerator(): torch.mps.current_allocated_memory() except (RuntimeError, ImportError) as e: raise ValueError(f"MPS_Accelerator requires torch.mps, which is not installed on this system.") - elif is_current_accelerator_supported(): + elif accelerator_name == "hpu": + try: + import habana_frameworks.torch.hpu # noqa: F401 + except ImportError as e: + raise ValueError( + f"HPU_Accelerator requires habana_frameworks.torch.hpu, which is not installed on this system.") + elif accelerator_name == "mlu": + try: + import torch_mlu # noqa: F401 + except ImportError as e: + raise ValueError(f"MLU_Accelerator requires torch_mlu, which is not installed on this system.") + elif accelerator_name not in SUPPORTED_ACCELERATOR_LIST: raise ValueError(f'DS_ACCELERATOR must be one of {SUPPORTED_ACCELERATOR_LIST}. ' f'Value "{accelerator_name}" is not supported') ds_set_method = "override" @@ -104,15 +125,15 @@ def get_accelerator(): try: from intel_extension_for_deepspeed import XPU_Accelerator # noqa: F401,F811 # type: ignore - - accelerator_name = "xpu" + accelerator_name = "xpu.external" except ImportError as e: pass if accelerator_name is None: try: - import intel_extension_for_pytorch # noqa: F401,F811 # type: ignore + import intel_extension_for_pytorch as ipex - accelerator_name = "cpu" + if ipex._C._has_xpu(): + accelerator_name = "xpu" except ImportError as e: pass if accelerator_name is None: @@ -122,6 +143,13 @@ def get_accelerator(): accelerator_name = "npu" except ImportError as e: pass + if accelerator_name is None: + try: + import torch_sdaa # noqa: F401,F811 # type: ignore + + accelerator_name = "sdaa" + except ImportError as e: + pass if accelerator_name is None: try: import torch.mps @@ -132,7 +160,41 @@ def get_accelerator(): except (RuntimeError, ImportError) as e: pass if accelerator_name is None: - accelerator_name = "cuda" + try: + import habana_frameworks.torch.hpu # noqa: F401,F811 + + accelerator_name = "hpu" + except ImportError as e: + pass + if accelerator_name is None: + try: + import torch_mlu # noqa: F401,F811 + + accelerator_name = "mlu" + except ImportError as e: + pass + if accelerator_name is None: + try: + import torch + + # Determine if we are on a GPU or x86 CPU with torch. + # "torch.cuda.is_available()" provides a stronger guarantee, #ignore-cuda + # ensuring that we are free from CUDA initialization errors. + # While "torch.cuda.device_count() > 0" check ensures that #ignore-cuda + # we won't try to do any CUDA calls when no device is available + # For reference: https://github.com/deepspeedai/DeepSpeed/pull/6810 + if torch.cuda.device_count() > 0 and torch.cuda.is_available(): #ignore-cuda + accelerator_name = "cuda" + except (RuntimeError, ImportError) as e: + # TODO need a more decent way to detect which accelerator to use, consider using nvidia-smi command for detection + pass + if accelerator_name is None: + # borrow this log from PR#5084 + if accel_logger is not None: + accel_logger.warning( + "Setting accelerator to CPU. If you have GPU or other accelerator, we were unable to detect it.") + # cpu added as catch-all when accelerator detection fails + accelerator_name = "cpu" ds_set_method = "auto detect" @@ -145,17 +207,33 @@ def get_accelerator(): from .cpu_accelerator import CPU_Accelerator ds_accelerator = CPU_Accelerator() - elif accelerator_name == "xpu": + elif accelerator_name == "xpu.external": # XPU_Accelerator is already imported in detection stage + ds_accelerator = XPU_Accelerator() + elif accelerator_name == "xpu": + from .xpu_accelerator import XPU_Accelerator + ds_accelerator = XPU_Accelerator() elif accelerator_name == "npu": from .npu_accelerator import NPU_Accelerator ds_accelerator = NPU_Accelerator() + elif accelerator_name == "sdaa": + from .sdaa_accelerator import SDAA_Accelerator + + ds_accelerator = SDAA_Accelerator() elif accelerator_name == "mps": from .mps_accelerator import MPS_Accelerator ds_accelerator = MPS_Accelerator() + elif accelerator_name == 'hpu': + from .hpu_accelerator import HPU_Accelerator + + ds_accelerator = HPU_Accelerator() + elif accelerator_name == 'mlu': + from .mlu_accelerator import MLU_Accelerator + + ds_accelerator = MLU_Accelerator() _validate_accelerator(ds_accelerator) if accel_logger is not None: accel_logger.info(f"Setting ds_accelerator to {ds_accelerator._name} ({ds_set_method})") diff --git a/accelerator/sdaa_accelerator.py b/accelerator/sdaa_accelerator.py new file mode 100755 index 000000000000..26113d38dd15 --- /dev/null +++ b/accelerator/sdaa_accelerator.py @@ -0,0 +1,328 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# BSD 3- Clause License Copyright (c) 2023, Tecorigin Co., Ltd. All rights +# reserved. +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# Redistributions of source code must retain the above copyright notice, +# this list of conditions and the following disclaimer. +# Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# Neither the name of the copyright holder nor the names of its contributors +# may be used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +# STRICT LIABILITY,OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY +# WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY +# OF SUCH DAMAGE. + +# DeepSpeed Team + +import importlib +import inspect +import functools + +from .abstract_accelerator import DeepSpeedAccelerator +# During setup stage torch may not be installed, pass on no torch will +# allow op builder related API to be executed. +try: + import torch.sdaa +except ImportError: + pass + + +class SDAA_Accelerator(DeepSpeedAccelerator): + + def __init__(self): + self._name = 'sdaa' + self._communication_backend_name = 'tccl' + self._compile_backend = "inductor" + self.class_dict = None + + def is_synchronized_device(self): + return False + + def use_host_timers(self): + return self.is_synchronized_device() + + def resolves_data_dependency(self): + return self.is_synchronized_device() + + def handles_memory_backpressure(self): + return self.is_synchronized_device() + + # Device APIs + def device_name(self, device_index=None): + if device_index is None: + return 'sdaa' + return 'sdaa:{}'.format(device_index) + + def device(self, device_index=None): + return torch.sdaa.device(device_index) + + def set_device(self, device_index): + torch.sdaa.set_device(device_index) + + def current_device(self): + return torch.sdaa.current_device() + + def current_device_name(self): + return 'sdaa:{}'.format(torch.sdaa.current_device()) + + def device_count(self): + return torch.sdaa.device_count() + + def synchronize(self, device_index=None): + return torch.sdaa.synchronize(device_index) + + # RNG APIs + def random(self): + return torch.random + + def set_rng_state(self, new_state, device_index=None): + if device_index is None: + return torch.sdaa.set_rng_state(new_state) + + return torch.sdaa.set_rng_state(new_state, device_index) + + def get_rng_state(self, device_index=None): + if device_index is None: + return torch.sdaa.get_rng_state() + + return torch.sdaa.get_rng_state(device_index) + + def manual_seed(self, seed): + return torch.sdaa.manual_seed(seed) + + def manual_seed_all(self, seed): + return torch.sdaa.manual_seed_all(seed) + + def initial_seed(self): + return torch.sdaa.initial_seed() + + def default_generator(self, device_index): + return torch.sdaa.default_generators[device_index] + + # Streams/Events + @property + def Stream(self): + return torch.sdaa.Stream + + def stream(self, stream): + return torch.sdaa.stream(stream) + + def current_stream(self, device_index=None): + return torch.sdaa.current_stream(device_index) + + def default_stream(self, device_index=None): + return torch.sdaa.default_stream(device_index) + + @property + def Event(self): + return torch.sdaa.Event + + # Memory management + def empty_cache(self): + return torch.sdaa.empty_cache() + + def memory_allocated(self, device_index=None): + return torch.sdaa.memory_allocated(device_index) + + def max_memory_allocated(self, device_index=None): + return torch.sdaa.max_memory_allocated(device_index) + + def reset_max_memory_allocated(self, device_index=None): + return torch.sdaa.reset_max_memory_allocated(device_index) + + def memory_cached(self, device_index=None): + return torch.sdaa.memory_cached(device_index) + + def max_memory_cached(self, device_index=None): + return torch.sdaa.max_memory_cached(device_index) + + def reset_max_memory_cached(self, device_index=None): + return torch.sdaa.reset_max_memory_cached(device_index) + + def memory_stats(self, device_index=None): + if hasattr(torch.sdaa, 'memory_stats'): + return torch.sdaa.memory_stats(device_index) + + def reset_peak_memory_stats(self, device_index=None): + if hasattr(torch.sdaa, 'reset_peak_memory_stats'): + return torch.sdaa.reset_peak_memory_stats(device_index) + + def memory_reserved(self, device_index=None): + if hasattr(torch.sdaa, 'memory_reserved'): + return torch.sdaa.memory_reserved(device_index) + + def max_memory_reserved(self, device_index=None): + if hasattr(torch.sdaa, 'max_memory_reserved'): + return torch.sdaa.max_memory_reserved(device_index) + + def total_memory(self, device_index=None): + return torch.sdaa.get_device_properties(device_index).total_memory + + def available_memory(self, device_index=None): + return self.total_memory(device_index) - self.memory_allocated(device_index) + + # Data types + def is_bf16_supported(self): + return torch.sdaa.is_bf16_supported() + + def is_fp16_supported(self): + return True + + def supported_dtypes(self): + supported_dtypes = [torch.float] + if self.is_fp16_supported(): + supported_dtypes.append(torch.half) + if self.is_bf16_supported(): + supported_dtypes.append(torch.bfloat16) + return supported_dtypes + + # Misc + def amp(self): + if hasattr(torch.sdaa, 'amp'): + return torch.sdaa.amp + return None + + def is_available(self): + return torch.sdaa.is_available() + + def range_push(self, msg): + return + + def range_pop(self): + return + + def lazy_call(self, callback): + return torch.sdaa._lazy_call(callback) + + def communication_backend_name(self): + return self._communication_backend_name + + def is_triton_supported(self): + return False + + # Graph operations + def create_graph(self): + return None + + def capture_to_graph(self, graph, pool=None, stream=None): + from deepspeed.runtime.utils import noop_context + return noop_context() + + def replay_graph(self, graph): + return + + # Tensor operations + + @property + def BFloat16Tensor(self): + return functools.partial(torch.tensor, dtype=torch.bfloat16, device='sdaa') + + @property + def ByteTensor(self): + return functools.partial(torch.tensor, dtype=torch.uint8, device='sdaa') + + @property + def DoubleTensor(self): + return functools.partial(torch.tensor, dtype=torch.double, device='sdaa') + + @property + def FloatTensor(self): + return functools.partial(torch.tensor, dtype=torch.float, device='sdaa') + + @property + def HalfTensor(self): + return functools.partial(torch.tensor, dtype=torch.half, device='sdaa') + + @property + def IntTensor(self): + return functools.partial(torch.tensor, dtype=torch.int, device='sdaa') + + @property + def LongTensor(self): + return functools.partial(torch.tensor, dtype=torch.long, device='sdaa') + + def pin_memory(self, tensor, align_bytes=1): + return tensor.pin_memory() + + def is_pinned(self, tensor): + return tensor.is_pinned() + + def on_accelerator(self, tensor): + device_str = str(tensor.device) + if device_str.startswith('sdaa:'): + return True + else: + return False + + def op_builder_dir(self): + try: + # is op_builder from deepspeed or a 3p version? this should only succeed if it's deepspeed + # if successful this also means we're doing a local install and not JIT compile path + from op_builder import __deepspeed__ # noqa: F401 # type: ignore + return "op_builder.sdaa" + except ImportError: + return "deepspeed.ops.op_builder.sdaa" + + def _lazy_init_class_dict(self): + if self.class_dict: + return + + op_builder_module = importlib.import_module(self.op_builder_dir()) + + # get op builder class from op_builder/sdaa/__init__.py + self.class_dict = {} + for class_name, class_obj in inspect.getmembers(op_builder_module, inspect.isclass): + self.class_dict[class_name] = class_obj + + # create an instance of op builder and return, name specified by class_name + def create_op_builder(self, class_name): + builder_class = self.get_op_builder(class_name) + return builder_class() + + # return an op builder class, name specified by class_name + def get_op_builder(self, class_name): + self._lazy_init_class_dict() + if class_name in self.class_dict: + return self.class_dict[class_name] + else: + return self.class_dict['NotImplementedBuilder'] + + def build_extension(self): + from torch.utils.cpp_extension import BuildExtension + return BuildExtension + + def export_envs(self): + return ['NCCL', 'LD_LIBRARY', 'PATH'] + + def visible_devices_envs(self): + return ['SDAA_VISIBLE_DEVICES'] + + def set_visible_devices_envs(self, current_env, local_accelerator_ids): + for env in self.visible_devices_envs(): + current_env[env] = ",".join(map(str, local_accelerator_ids)) + + def get_compile_backend(self): + return self._compile_backend + + def set_compile_backend(self, backend): + supported_backends = torch._dynamo.list_backends(exclude_tags=()) + if backend in supported_backends: + self._compile_backend = backend + else: + raise ValueError( + f"{backend} not supported by {self.device_name()}. Supported Backends are {supported_backends}") diff --git a/accelerator/xpu_accelerator.py b/accelerator/xpu_accelerator.py new file mode 100644 index 000000000000..ad8a10710bf2 --- /dev/null +++ b/accelerator/xpu_accelerator.py @@ -0,0 +1,318 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import torch +from deepspeed.accelerator.abstract_accelerator import DeepSpeedAccelerator +import intel_extension_for_pytorch as ipex # noqa: F401 # type: ignore +import oneccl_bindings_for_pytorch # noqa: F401 # type: ignore +import functools + +import importlib +import inspect + + +class XPU_Accelerator(DeepSpeedAccelerator): + + def __init__(self): + self._name = 'xpu' + self._communication_backend_name = 'ccl' + self._compile_backend = "inductor" + self.aligned_tensors = [] + self.class_dict = None + + def is_synchronized_device(self): + return False + + def use_host_timers(self): + # WA XPU event will be consolidated in 2.6 + if ipex.__version__ < '2.6': + return True + else: + return self.is_synchronized_device() + + def resolves_data_dependency(self): + return self.is_synchronized_device() + + def handles_memory_backpressure(self): + return self.is_synchronized_device() + + # Device APIs + def device_name(self, device_index=None): + if device_index == None: + return 'xpu' + return 'xpu:{}'.format(device_index) + + def device(self, device_index=None): + return torch.xpu.device(device_index) + + def set_device(self, device_index): + torch.xpu.set_device(device_index) + + def current_device(self): + return torch.xpu.current_device() + + def current_device_name(self): + return 'xpu:{}'.format(torch.xpu.current_device()) + + def device_count(self): + return torch.xpu.device_count() + + def synchronize(self, device_index=None): + return torch.xpu.synchronize(device_index) + + # RNG APIs + def random(self): + return torch.xpu.random + + def set_rng_state(self, new_state, device_index=None): + if device_index == None: + return torch.xpu.set_rng_state(new_state) + return torch.xpu.set_rng_state(new_state, device_index) + + def get_rng_state(self, device_index=None): + if device_index == None: + return torch.xpu.get_rng_state() + return torch.xpu.get_rng_state(device_index) + + def manual_seed(self, seed): + return torch.xpu.manual_seed(seed) + + def manual_seed_all(self, seed): + return torch.xpu.manual_seed_all(seed) + + def initial_seed(self): + return torch.xpu.initial_seed() + + def default_generator(self, device_index): + return torch.xpu.default_generators[device_index] + + # Streams/Events + @property + def Stream(self): + return torch.xpu.Stream + + def stream(self, stream): + return torch.xpu.stream(stream) + + def current_stream(self, device_index=None): + return torch.xpu.current_stream(device_index) + + def default_stream(self, device_index=None): + # torch.xpu does not support the sync behavior of default stream as cuda + # use current_stream as workaround + # see https://pytorch.org/docs/stable/notes/cuda.html#cuda-streams + return torch.xpu.current_stream(device_index) + + @property + def Event(self): + return torch.xpu.Event + + # Memory management + def empty_cache(self): + return torch.xpu.empty_cache() + + def memory_allocated(self, device_index=None): + return torch.xpu.memory_allocated(device_index) + + def max_memory_allocated(self, device_index=None): + return torch.xpu.max_memory_allocated(device_index) + + def reset_max_memory_allocated(self, device_index=None): + return torch.xpu.reset_max_memory_allocated(device_index) + + def memory_cached(self, device_index=None): + return torch.xpu.memory_reserved(device_index) + + def max_memory_cached(self, device_index=None): + return torch.xpu.max_memory_reserved(device_index) + + def reset_max_memory_cached(self, device_index=None): + return torch.xpu.reset_max_memory_reserved(device_index) + + def memory_stats(self, device_index=None): + return torch.xpu.memory_stats(device_index) + + def reset_peak_memory_stats(self, device_index=None): + return torch.xpu.reset_peak_memory_stats(device_index) + + def memory_reserved(self, device_index=None): + return torch.xpu.memory_reserved(device_index) + + def max_memory_reserved(self, device_index=None): + return torch.xpu.max_memory_reserved(device_index) + + def total_memory(self, device_index=None): + return torch.xpu.get_device_properties(device_index).total_memory + + def available_memory(self, device_index=None): + return self.total_memory(device_index) - self.memory_allocated(device_index) + + # Misc + def amp(self): + return torch.xpu.amp + + def is_available(self): + return torch.xpu.is_available() + + def range_push(self, msg): + # TODO itt is currently not supported yet + # return torch.profiler.itt.range_push(msg) + return + + def range_pop(self): + # TODO itt is currently not supported yet + # return torch.profiler.itt.range_pop() + return + + def lazy_call(self, callback): + if hasattr(torch.xpu, "_lazy_call"): + return torch.xpu._lazy_call(callback) + else: + return torch.xpu.lazy_init._lazy_call(callback) + + def communication_backend_name(self): + return self._communication_backend_name + + def is_triton_supported(self): + return False + + # Graph operations + def create_graph(self): + return None + + def capture_to_graph(self, graph, pool=None, stream=None): + from deepspeed.runtime.utils import noop_context + return noop_context() + + def replay_graph(self, graph): + return + + # Data types + def is_bf16_supported(self): + return True + + def is_fp16_supported(self): + return True + + def supported_dtypes(self): + return [torch.float, torch.half, torch.bfloat16] + + # Tensor operations + + @property + def BFloat16Tensor(self): + return functools.partial(torch.tensor, dtype=torch.bfloat16, device=self._name) + + @property + def ByteTensor(self): + return functools.partial(torch.tensor, dtype=torch.uint8, device=self._name) + + @property + def DoubleTensor(self): + return functools.partial(torch.tensor, dtype=torch.double, device=self._name) + + @property + def FloatTensor(self): + return functools.partial(torch.tensor, dtype=torch.float, device=self._name) + + @property + def HalfTensor(self): + return functools.partial(torch.tensor, dtype=torch.half, device=self._name) + + @property + def IntTensor(self): + return functools.partial(torch.tensor, dtype=torch.int, device=self._name) + + @property + def LongTensor(self): + return functools.partial(torch.tensor, dtype=torch.long, device=self._name) + + def pin_memory(self, tensor, align_bytes=1): + if align_bytes == 1: + return tensor.pin_memory(device=self.current_device_name()) + elif align_bytes == 0: + from deepspeed.ops.op_builder.xpu import AsyncIOBuilder + self.aio_handle = AsyncIOBuilder().load().aio_handle(128 * 1024, 8, False, False, False) + aligned_t = self.aio_handle.new_cpu_locked_tensor(tensor.numel(), tensor) + aligned_t = aligned_t[:tensor.numel()].copy_(tensor) + self.aligned_tensors.append([aligned_t.data_ptr(), aligned_t[-1].data_ptr()]) + return aligned_t + + def is_pinned(self, tensor): + if tensor.is_pinned(device=self.current_device_name()): + return True + else: + for begin, end in self.aligned_tensors: + if begin <= tensor.data_ptr() and tensor.data_ptr() <= end: + return True + return False + + def op_builder_dir(self): + try: + # is op_builder from deepspeed or a 3p version? this should only succeed if it's deepspeed + # if successful this also means we're doing a local install and not JIT compile path + from op_builder import __deepspeed__ # noqa: F401 # type: ignore + return "op_builder.xpu" + except ImportError: + return "deepspeed.ops.op_builder.xpu" + + def on_accelerator(self, tensor): + device_str = str(tensor.device) + if device_str.startswith('xpu:'): + return True + else: + return False + + def _lazy_init_class_dict(self): + if self.class_dict: + return + + op_builder_module = importlib.import_module(self.op_builder_dir()) + + # get op builder class from op_builder/xpu/__init__.py + self.class_dict = {} + for class_name, class_obj in inspect.getmembers(op_builder_module, inspect.isclass): + self.class_dict[class_name] = class_obj + + # create an instance of op builder and return, name specified by class_name + def create_op_builder(self, class_name): + builder_class = self.get_op_builder(class_name) + return builder_class() + + # return an op builder class, name specified by class_name + def get_op_builder(self, class_name): + self._lazy_init_class_dict() + if class_name in self.class_dict: + return self.class_dict[class_name] + else: + return self.class_dict['NotImplementedBuilder'] + + def build_extension(self): + try: + from intel_extension_for_pytorch.xpu.cpp_extension import DpcppBuildExtension + except ImportError: + from intel_extension_for_pytorch.xpu.utils import DpcppBuildExtension + return DpcppBuildExtension + + def export_envs(self): + return [] + + def visible_devices_envs(self): + return ['ZE_AFFINITY_MASK'] + + def set_visible_devices_envs(self, current_env, local_accelerator_ids): + for env in self.visible_devices_envs(): + current_env[env] = ",".join(map(str, local_accelerator_ids)) + + def get_compile_backend(self): + return self._compile_backend + + def set_compile_backend(self, backend): + supported_backends = torch._dynamo.list_backends(exclude_tags=()) + if backend in supported_backends: + self._compile_backend = backend + else: + raise ValueError( + f"{backend} not supported by {self.device_name()}. Supported Backends are {supported_backends}") diff --git a/benchmarks/README.md b/benchmarks/README.md index 4c88b2dd091c..a2b332732042 100644 --- a/benchmarks/README.md +++ b/benchmarks/README.md @@ -2,5 +2,5 @@ If you are looking for DeepSpeed benchmarks, please see the following resources: -1. [Communication Benchmarking Suite](https://github.com/microsoft/DeepSpeedExamples/tree/master/benchmarks/communication) -2. [Inference Benchmarks](https://github.com/microsoft/DeepSpeedExamples/tree/master/benchmarks/inference) +1. [Communication Benchmarking Suite](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/benchmarks/communication) +2. [Inference Benchmarks](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/benchmarks/inference) diff --git a/bin/deepspeed.bat b/bin/deepspeed.bat new file mode 100644 index 000000000000..8e488bde380c --- /dev/null +++ b/bin/deepspeed.bat @@ -0,0 +1,2 @@ +@echo off +python "%~dp0\ds" %* diff --git a/bin/ds_bench b/bin/ds_bench index bfacbc8e25c8..80bf4029604e 100755 --- a/bin/ds_bench +++ b/bin/ds_bench @@ -10,7 +10,10 @@ import sys required_env = ["RANK", "WORLD_SIZE", "MASTER_ADDR", "MASTER_PORT", "LOCAL_RANK"] if not all(map(lambda v: v in os.environ, required_env)): import subprocess - subprocess.run("deepspeed $(which ds_bench) " + " ".join(sys.argv[1:]), shell=True) + r = subprocess.check_output(["which", "ds_bench"]) + ds_bench_bin = r.decode('utf-8').strip() + safe_cmd = ["deepspeed", ds_bench_bin] + sys.argv[1:] + subprocess.run(safe_cmd) else: args = benchmark_parser().parse_args() rank = args.local_rank diff --git a/bin/ds_io b/bin/ds_io new file mode 100644 index 000000000000..681fd634764c --- /dev/null +++ b/bin/ds_io @@ -0,0 +1,6 @@ +#!/usr/bin/env python3 + +from deepspeed.nvme import ds_io_main + +if __name__ == '__main__': + ds_io_main() diff --git a/bin/ds_nvme_tune b/bin/ds_nvme_tune new file mode 100644 index 000000000000..117adfba22c0 --- /dev/null +++ b/bin/ds_nvme_tune @@ -0,0 +1,9 @@ +#!/usr/bin/env python3 + +from deepspeed.nvme import sweep_main, generate_main, parse_sweep_arguments + +if __name__ == '__main__': + args = parse_sweep_arguments() + print(f"Running DeepNVMe performance tuning on {args.nvme_dir}") + sweep_main(args) + generate_main(args.log_dir) diff --git a/bin/ds_report.bat b/bin/ds_report.bat new file mode 100644 index 000000000000..78c7225f147c --- /dev/null +++ b/bin/ds_report.bat @@ -0,0 +1,2 @@ +@echo off +python "%~dp0\ds_report" %* diff --git a/blogs/comm-opt/README.md b/blogs/comm-opt/README.md index 4767c4342816..7049e3b9f162 100644 --- a/blogs/comm-opt/README.md +++ b/blogs/comm-opt/README.md @@ -63,7 +63,7 @@ For this part of the optimization, we add some fusion for the communication that These fusions are done at two levels: 1. Fuse the sequence AlltoAll for q,k, and v: we Scatter the heads using the mixed tensor rather than splitting them beforehand. For this part, we need to get some more information from the modeling side (such as the number of q and kv heads), to split the heads before calling AlltoAll. We have added some new changes on the Megatron-DeepSpeed repo that incorporate these changes for the sequence-parallelism. -2. Fuse the AlltoAll tensors and call the PyTorch's AlltoAll-sinlge API: we reshape the tensors for the scatter dimension and use a single tensor for AlltoAll which alleviates the overhead of using a list of tensors which requires a contiguous call for each element of the list. +2. Fuse the AlltoAll tensors and call the PyTorch's AlltoAll-single API: we reshape the tensors for the scatter dimension and use a single tensor for AlltoAll which alleviates the overhead of using a list of tensors which requires a contiguous call for each element of the list. By adding these optimizations, we see about 10 to 15% speedup compared to the previous design, and obtain good scalability across different SP-degree and context-lengths. In the following table, we show the improvement achieved by using SP, when doubling the GPU-count and increasing the SP-degree. We obtain over 80% of efficiency when increasing from 256 to 512 GPUs using SP-2. Furthermore, by increasing the sequence-length and SP, while keeping the processed tokens similar, we achieve over 75% of efficiency for 2x more resources. On the other hand, if we can double the number of tokens (shown on the last row of table 2), we can improve the performance to 1.81x. diff --git a/blogs/deepspeed-chat/README.md b/blogs/deepspeed-chat/README.md index 43501652b98e..66fa9930b299 100644 --- a/blogs/deepspeed-chat/README.md +++ b/blogs/deepspeed-chat/README.md @@ -65,7 +65,7 @@ DeepSpeed-RLHF system is capable of unparalleled efficiency at scale, making com *Table 2. Multi-Node 64x A100-80GB: Training Time and Corresponding Approximate Cost on Azure.* -> ***Very Important Details***: The numbers in both tables above are for Step 3 of the training and are based on actual measured training throughput on DeepSpeed-RLHF curated dataset and training recipe which trains for one epoch on a total of 135M tokens. We have in total 67.5M query tokens (131.9k queries with sequence length 256) and 67.5M generated tokens (131.9k answers with sequence length 256), and a maximum global batch size per step of 0.5M tokens (1024 query-answer pairs). We urge readers to pay attention to these specifications before making any cost and e2e time comparisons with DeepSpeed-RLHF. See our [benchmark settings](https://github.com/microsoft/DeepSpeedExamples/tree/master/applications/DeepSpeed-Chat/training/step3_rlhf_finetuning/BenckmarkSetting.md) page for more details. +> ***Very Important Details***: The numbers in both tables above are for Step 3 of the training and are based on actual measured training throughput on DeepSpeed-RLHF curated dataset and training recipe which trains for one epoch on a total of 135M tokens. We have in total 67.5M query tokens (131.9k queries with sequence length 256) and 67.5M generated tokens (131.9k answers with sequence length 256), and a maximum global batch size per step of 0.5M tokens (1024 query-answer pairs). We urge readers to pay attention to these specifications before making any cost and e2e time comparisons with DeepSpeed-RLHF. See our [benchmark settings](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/applications/DeepSpeed-Chat/training/step3_rlhf_finetuning/BenckmarkSetting.md) page for more details. ***Democratizing RLHF Training***: With just a single GPU, DeepSpeed-HE supports training models with over 13 billion parameters, enabling data scientists without access to multi-GPU systems to create not just toy RLHF models but large and powerful ones that can be used in real-world scenarios. @@ -95,7 +95,7 @@ We use an example of pretrained OPT-13B as the actor model and OPT-350M as the r ```python pip install deepspeed>=0.9.0 -git clone https://github.com/microsoft/DeepSpeedExamples.git +git clone https://github.com/deepspeedai/DeepSpeedExamples.git cd DeepSpeedExamples/applications/DeepSpeed-Chat/ pip install -r requirements.txt @@ -285,7 +285,7 @@ This improvement in efficiency stems from DeepSpeed-HE’s ability to accelerate ## Effective Throughput and Scalability Analysis -***(I) Effective Throughput Analysis.*** The effective throughput of DeepSpeed-HE during Stage 3 of the RLHF training depends on the throughput that it achieves during the generation and RL training phases. In our RLHF pipeline, the generation phase comprises approximately 20% of the total computation while the RL training phase comprises of remaining 80% (see [benchmark settings](https://github.com/microsoft/DeepSpeedExamples/tree/master/applications/DeepSpeed-Chat/training/step3_rlhf_finetuning/BenckmarkSetting.md) page for details). However, despite having a small proportion, the former can take a large portion of the e2e time as it requires running the actor model once for each of the 256 generated tokens with an initial prompt of 256 tokens, making it memory bandwidth bound and difficult to achieve high throughput. In contrast, the RL training phase is compute bound running the reference actor model with just a couple of forward and backward passes with full 512 tokens from both prompt and generation per sample and can achieve good throughput. +***(I) Effective Throughput Analysis.*** The effective throughput of DeepSpeed-HE during Stage 3 of the RLHF training depends on the throughput that it achieves during the generation and RL training phases. In our RLHF pipeline, the generation phase comprises approximately 20% of the total computation while the RL training phase comprises of remaining 80% (see [benchmark settings](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/applications/DeepSpeed-Chat/training/step3_rlhf_finetuning/BenckmarkSetting.md) page for details). However, despite having a small proportion, the former can take a large portion of the e2e time as it requires running the actor model once for each of the 256 generated tokens with an initial prompt of 256 tokens, making it memory bandwidth bound and difficult to achieve high throughput. In contrast, the RL training phase is compute bound running the reference actor model with just a couple of forward and backward passes with full 512 tokens from both prompt and generation per sample and can achieve good throughput.
@@ -311,7 +311,7 @@ Furthermore, we would like to point out that our effective performance is 19x hi ***(II) Scalability Analysis.*** The best effective throughput for different model sizes is achieved at different GPU count. This is in part because some of the larger model sizes require more memory to run. However, a large part of this behavior stems from DeepSpeed-HE’s scalability properties that we discuss next. -Figure 7 shows that DeepSeed-RLHF has achieved good scaling overall on up to 64 GPUs. However, if we look more closely, it shows that DeepSpeed-RLHF training achieves super-linear scaling at small scale, followed by near linear or sub-linear scaling at larger scales. This is due to the interaction between memory availability and max global batch size. +Figure 7 shows that DeepSpeed-RLHF has achieved good scaling overall on up to 64 GPUs. However, if we look more closely, it shows that DeepSpeed-RLHF training achieves super-linear scaling at small scale, followed by near linear or sub-linear scaling at larger scales. This is due to the interaction between memory availability and max global batch size. As DeepSpeed-HE is powered by ZeRO-based technology for training, it allows model states to be partitioned across the available GPUs. As a result, the memory consumption per GPU reduces with the increase in the number of GPUs, allowing DeepSpeed-HE to support a larger batch per GPU resulting in super-linear scaling. However, at large scale, while the available memory continues to increase, the maximum global batch size (1024, in our case, with a sequence length of 512) limits the batch size per GPU, resulting in near-linear or sub-linear scaling. As a result, for a given max global batch size, DeepSpeed-HE achieves the best throughput and cost efficiency at the boundary of super-linear and sub-linear scalability, and the exact point is mostly determined by the largest batch size that can be run per GPU as the function of available memory and global batch size. @@ -320,13 +320,13 @@ As a result, for a given max global batch size, DeepSpeed-HE achieves the best t We are very excited to share that DeepSpeed-Chat is now open-sourced and available to the AI community. -* To get started, please visit our github page for DeepSpeed-Chat: [GitHub Landing Page](https://github.com/microsoft/DeepSpeedExamples/tree/master/applications/DeepSpeed-Chat) +* To get started, please visit our github page for DeepSpeed-Chat: [GitHub Landing Page](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/applications/DeepSpeed-Chat) -* We will continue to improve DeepSpeed-Chat with your feedback and support. Our [roadmap](https://github.com/microsoft/DeepSpeedExamples/tree/master/applications/DeepSpeed-Chat/README.md#-deepspeed-chats-roadmap-) shows currently supported features as well as ones that are planned for the future. +* We will continue to improve DeepSpeed-Chat with your feedback and support. Our [roadmap](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/applications/DeepSpeed-Chat/README.md#-deepspeed-chats-roadmap-) shows currently supported features as well as ones that are planned for the future. DeepSpeed-Chat is part of the bigger DeepSpeed ecosystem comprising a multitude of Deep Learning systems and modeling technologies. To learn more, * Please visit our [website](https://www.deepspeed.ai/) for detailed blog posts, tutorials, and helpful documentation. -* You can also follow us on our [English Twitter](https://twitter.com/MSFTDeepSpeed), [Japanese Twitter](https://twitter.com/MSFTDeepSpeedJP), and [Chinese Zhihu](https://www.zhihu.com/people/deepspeed) for latest news on DeepSpeed. +* You can also follow us on our [English Twitter](https://twitter.com/DeepSpeedAI), [Japanese Twitter](https://twitter.com/DeepSpeedAI_JP), and [Chinese Zhihu](https://www.zhihu.com/people/deepspeed) for latest news on DeepSpeed. -DeepSpeed welcomes your contributions! We encourage you to report issues, contribute PRs, and join discussions on the [DeepSpeed GitHub](https://github.com/microsoft/DeepSpeed/) page. Please see our [contributing guide](https://github.com/microsoft/DeepSpeed/blob/master/CONTRIBUTING.md) for more details. We are open to collaborations with universities, research labs, companies, such as those working together on deep learning research, applying DeepSpeed to empower real-world AI models and applications, and so on. For such requests (and other requests unsuitable for GitHub), please directly email to deepspeed-info@microsoft.com. +DeepSpeed welcomes your contributions! We encourage you to report issues, contribute PRs, and join discussions on the [DeepSpeed GitHub](https://github.com/deepspeedai/DeepSpeed/) page. Please see our [contributing guide](https://github.com/deepspeedai/DeepSpeed/blob/master/CONTRIBUTING.md) for more details. We are open to collaborations with universities, research labs, companies, such as those working together on deep learning research, applying DeepSpeed to empower real-world AI models and applications, and so on. For such requests (and other requests unsuitable for GitHub), please directly email to deepspeed-info@microsoft.com. diff --git a/blogs/deepspeed-chat/chinese/README.md b/blogs/deepspeed-chat/chinese/README.md index 03bf9b69449f..64c7822e021d 100644 --- a/blogs/deepspeed-chat/chinese/README.md +++ b/blogs/deepspeed-chat/chinese/README.md @@ -63,7 +63,7 @@ DeepSpeed-RLHF 系统在大规模训练中具有无与伦比的效率,使复 *表 2. 多节点 64x A100-80GB:训练时长及预估的 Azure 费用。*
-> ***非常重要的细节***: 上述两个表格(即表一和表二)中的数据均针对 RLHF 训练的第 3 步,基于实际数据集和 DeepSpeed-RLHF 训练吞吐量的测试。该训练在总共 1.35 亿(135M)个字符(token)上进行一个时期(epoch)的训练。我们总共有 6750 万个查询(query)字符(131.9k 个 query,每个序列长度为 256)和 6750 万个生成/回答字符(131.9k 个答案,每个序列长度为 256),每步的最大全局字符批量大小约为 500 万个字符(1024 个查询-答案对)。在与 DeepSpeed-RLHF 进行任何成本和端到端时间比较之前,我们建议读者注意这些设定。想要了解更多详细信息,请参阅我们的页面 [benchmark setting](https://github.com/microsoft/DeepSpeedExamples-internal/blob/staging-deepspeed-chat-v2/applications/DeepSpeed-Chat/training/step3_rlhf_finetuning/BenckmarkSetting.md)。 +> ***非常重要的细节***: 上述两个表格(即表一和表二)中的数据均针对 RLHF 训练的第 3 步,基于实际数据集和 DeepSpeed-RLHF 训练吞吐量的测试。该训练在总共 1.35 亿(135M)个字符(token)上进行一个时期(epoch)的训练。我们总共有 6750 万个查询(query)字符(131.9k 个 query,每个序列长度为 256)和 6750 万个生成/回答字符(131.9k 个答案,每个序列长度为 256),每步的最大全局字符批量大小约为 500 万个字符(1024 个查询-答案对)。在与 DeepSpeed-RLHF 进行任何成本和端到端时间比较之前,我们建议读者注意这些设定。想要了解更多详细信息,请参阅我们的页面 [benchmark setting](https://github.com/deepspeedai/DeepSpeedExamples-internal/blob/staging-deepspeed-chat-v2/applications/DeepSpeed-Chat/training/step3_rlhf_finetuning/BenckmarkSetting.md)。 ***实现 RLHF 训练的普及化***:仅凭单个 GPU,DeepSpeed-HE 就能支持训练超过 130 亿参数的模型。这使得那些无法使用多 GPU 系统的数据科学家和研究者不仅能够轻松创建轻量级的 RLHF 模型,还能创建大型且功能强大的模型,以应对不同的使用场景。 @@ -91,7 +91,7 @@ DeepSpeed-RLHF 系统在大规模训练中具有无与伦比的效率,使复 ``` pip install deepspeed>=0.9.0 -git clone https://github.com/microsoft/DeepSpeedExamples.git +git clone https://github.com/deepspeedai/DeepSpeedExamples.git cd DeepSpeedExamples/applications/DeepSpeed-Chat/ pip install -r requirements.txt @@ -274,7 +274,7 @@ DeepSpeed-HE可以在训练和推理之间无缝更改模型分区,以支持 ## 有效吞吐量和可扩展性分析 -***(I) 有效吞吐量分析。*** 在 RLHF 训练的第 3 阶段,DeepSpeed-HE 的有效吞吐量取决于它在生成和 RL 训练阶段所实现的吞吐量。在我们的 RLHF (详见 [benchmarking setting](https://github.com/microsoft/DeepSpeedExamples/blob/master/applications/DeepSpeed-Chat/training/step3_rlhf_finetuning/BenckmarkSetting.md))中,生成阶段占总计算的约 20%,而 RL 训练阶段占剩余的 80%。然而,尽管比例较小,前者可能会占用大部分的端到端时间,因为它需要为每个生成的字符运行一次 actor 模型,使其受到内存带宽限制,难以实现高吞吐量。相比之下,RL 训练阶段是计算密集型的,仅需运行参考 actor 模型进行几次前向和后向传递,每个样本都有来自提示和生成的全部 512 个字符,可以实现良好的吞吐量。 +***(I) 有效吞吐量分析。*** 在 RLHF 训练的第 3 阶段,DeepSpeed-HE 的有效吞吐量取决于它在生成和 RL 训练阶段所实现的吞吐量。在我们的 RLHF (详见 [benchmarking setting](https://github.com/deepspeedai/DeepSpeedExamples/blob/master/applications/DeepSpeed-Chat/training/step3_rlhf_finetuning/BenckmarkSetting.md))中,生成阶段占总计算的约 20%,而 RL 训练阶段占剩余的 80%。然而,尽管比例较小,前者可能会占用大部分的端到端时间,因为它需要为每个生成的字符运行一次 actor 模型,使其受到内存带宽限制,难以实现高吞吐量。相比之下,RL 训练阶段是计算密集型的,仅需运行参考 actor 模型进行几次前向和后向传递,每个样本都有来自提示和生成的全部 512 个字符,可以实现良好的吞吐量。
@@ -300,7 +300,7 @@ DeepSpeed-HE可以在训练和推理之间无缝更改模型分区,以支持 ***(II) 可扩展性分析。*** 不同模型大小的最佳有效吞吐量取决于不同的 GPU 数量。部分原因是因为一些较大的模型大小需要更多的内存来运行。基于此,我们接下来讨论 DeepSpeed-HE 的可扩展性特性。 -图 7 显示 DeepSeed-RLHF 在多达 64 个 GPU的集群 上实现了良好的整体扩展。然而,如果我们仔细观察,可以发现 DeepSpeed-RLHF 训练在小规模时实现了超线性扩展,随后在较大规模时实现了接近线性或次线性扩展。这是由于内存可用性和最大全局批量大小之间的相互作用。 +图 7 显示 DeepSpeed-RLHF 在多达 64 个 GPU的集群 上实现了良好的整体扩展。然而,如果我们仔细观察,可以发现 DeepSpeed-RLHF 训练在小规模时实现了超线性扩展,随后在较大规模时实现了接近线性或次线性扩展。这是由于内存可用性和最大全局批量大小之间的相互作用。 DeepSpeed-HE 的核心技术基于 ZeRO,用于训练过程中将模型状态分割到每个GPU上。这意味着随着 GPU 数量的增加,每个 GPU 的内存消耗会减少,使得 DeepSpeed-HE 能够在每个 GPU 上支持更大的批量,从而实现超线性扩展。然而,在大规模情况下,尽管可用内存持续增加,但最大全局批量大小仍然限制了每个 GPU 的批量大小,导致接近线性或次线性扩展。因此,在给定的最大全局批量大小(例如,我们设置为 1024 个句子,每个句子长度为 512)下,DeepSpeed-HE 在超线性和次线性可扩展性之间实现了最佳的吞吐量和成本效益。具体的平衡点主要取决于每个 GPU 上可运行的最大批量大小,而这又受到可用内存和全局批量大小的函数所决定。 @@ -308,18 +308,18 @@ DeepSpeed-HE 的核心技术基于 ZeRO,用于训练过程中将模型状态 我们非常高兴地宣布,DeepSpeed-Chat现已开源并向 AI 社区开放。 -* 如果你发现我们的成果对你有用或者喜欢我们的开源成果,请在 [DeepSpeed](https://github.com/microsoft/DeepSpeed) 和 [DeepSpeedExamples](https://github.com/microsoft/DeepSpeedExamples)上点⭐。 +* 如果你发现我们的成果对你有用或者喜欢我们的开源成果,请在 [DeepSpeed](https://github.com/deepspeedai/DeepSpeed) 和 [DeepSpeedExamples](https://github.com/deepspeedai/DeepSpeedExamples)上点⭐。 -* 请访问我们的DeepSpeed-Chat GitHub页面以开始使用:[GitHub 登陆页面](https://github.com/microsoft/DeepSpeedExamples/tree/master/applications/DeepSpeed-Chat) +* 请访问我们的DeepSpeed-Chat GitHub页面以开始使用:[GitHub 登陆页面](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/applications/DeepSpeed-Chat) -* 我们将继续根据你的反馈和支持改进 DeepSpeed-Chat。我们的[计划图](https://github.com/microsoft/DeepSpeedExamples/tree/master/applications/DeepSpeed-Chat/README.md#-deepspeed-chats-roadmap-)显示了当前支持的功能以及计划在未来支持的功能。 +* 我们将继续根据你的反馈和支持改进 DeepSpeed-Chat。我们的[计划图](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/applications/DeepSpeed-Chat/README.md#-deepspeed-chats-roadmap-)显示了当前支持的功能以及计划在未来支持的功能。 DeepSpeed-Chat 是更大的DeepSpeed生态系统的一部分,包括众多深度学习系统和建模技术。要了解更多信息, * 请访问我们的[网站](https://www.deepspeed.ai/),了解详细的博客文章、教程和有用的文档。 -* 我们会在[知乎](https://www.zhihu.com/people/deepspeed)上发布最新中文博客及动态。你还可以关注我们的[英文 Twitter](https://twitter.com/MSFTDeepSpeed) 和[日文 Twitter](https://twitter.com/MSFTDeepSpeedJP)。 +* 我们会在[知乎](https://www.zhihu.com/people/deepspeed)上发布最新中文博客及动态。你还可以关注我们的[英文 Twitter](https://twitter.com/DeepSpeedAI) 和[日文 Twitter](https://twitter.com/DeepSpeedAI_JP)。 -DeepSpeed 欢迎你的贡献!我们鼓励你在 [DeepSpeed GitHub](https://github.com/microsoft/DeepSpeed/) 页面报告问题、贡献 PR 并参与讨论。请参阅我们的[贡献指南](https://github.com/microsoft/DeepSpeed/blob/master/CONTRIBUTING.md)了解更多详情。我们愿意与大学、研究实验室、公司等进行合作,共同开展深度学习研究,将 DeepSpeed 应用于赋能现实世界的 AI 模型和应用等。对于此类需求(以及其他不适合在 GitHub 上提出的需求),请直接发送电子邮件至 deepspeed-info@microsoft.com。 +DeepSpeed 欢迎你的贡献!我们鼓励你在 [DeepSpeed GitHub](https://github.com/deepspeedai/DeepSpeed/) 页面报告问题、贡献 PR 并参与讨论。请参阅我们的[贡献指南](https://github.com/deepspeedai/DeepSpeed/blob/master/CONTRIBUTING.md)了解更多详情。我们愿意与大学、研究实验室、公司等进行合作,共同开展深度学习研究,将 DeepSpeed 应用于赋能现实世界的 AI 模型和应用等。对于此类需求(以及其他不适合在 GitHub 上提出的需求),请直接发送电子邮件至 deepspeed-info@microsoft.com。 diff --git a/blogs/deepspeed-chat/ds-chat-release-8-31/README.md b/blogs/deepspeed-chat/ds-chat-release-8-31/README.md index e1d4bf952bf1..2b1ffbe73ae3 100644 --- a/blogs/deepspeed-chat/ds-chat-release-8-31/README.md +++ b/blogs/deepspeed-chat/ds-chat-release-8-31/README.md @@ -24,7 +24,7 @@ # 1. Introduction -DeepSpeed-Chat is a general system framework for RLHF training that enables easy, fast, affordable, and scalable training of ChatGPT-style models that we [publicly released on GitHub](https://github.com/microsoft/DeepSpeed/blob/master/blogs/deepspeed-chat/README.md). The detailed performance and capabilities of DeepSpeed-Chat have been published in our [blog post](https://github.com/microsoft/DeepSpeed/tree/master/blogs/deepspeed-chat) and [arXiv](https://arxiv.org/abs/2308.01320) paper. +DeepSpeed-Chat is a general system framework for RLHF training that enables easy, fast, affordable, and scalable training of ChatGPT-style models that we [publicly released on GitHub](https://github.com/deepspeedai/DeepSpeed/blob/master/blogs/deepspeed-chat/README.md). The detailed performance and capabilities of DeepSpeed-Chat have been published in our [blog post](https://github.com/deepspeedai/DeepSpeed/tree/master/blogs/deepspeed-chat) and [arXiv](https://arxiv.org/abs/2308.01320) paper. We are happy to share that today we are improving DeepSpeed-Chat along three areas: i) system support for Llama/Llama-2 family of models, ii) system features for improved efficiency and accessibility, and iii) stability and software enhancements. @@ -33,15 +33,15 @@ We are happy to share that today we are improving DeepSpeed-Chat along three are We ***introduce system support for training Llama and Llama-2 models*** in DeepSpeed-Chat enabling and leveraging various optimizations and features including the Hybrid Engine, ZeRO family of optimizations, Low-Rank Adaptation (LoRA) support, as well as full integration into the three-stage DeepSpeed-Chat RLHF pipeline. By leveraging the Hybrid-Engine, we speed up the experience generation phase for Llama-2-7B and Llama-2-13B models by **up to 7.1X**. - **New System Features for Improved Efficiency and Accessibility** - - ***Mixed Precision ZeRO++ ([MixZ++](https://github.com/microsoft/DeepSpeed/pull/3954))***. It is an extended set of optimization strategies built upon [ZeRO++](https://www.deepspeed.ai/tutorials/zeropp/) tailored to reduce memory usage and improve training/inference efficiency for RLHF training with LoRA. MixZ++ partitions model parameters across GPUs to reduce footprint and gathers them with quantized communication only when needed similar to its ZeRO and ZeRO++ siblings. Our evaluation indicates MixZ++ increases the training throughput by **up to 3.3x** for the Llama-2-70B model running on 128 V100 GPUs. + - ***Mixed Precision ZeRO++ ([MixZ++](https://github.com/deepspeedai/DeepSpeed/pull/3954))***. It is an extended set of optimization strategies built upon [ZeRO++](https://www.deepspeed.ai/tutorials/zeropp/) tailored to reduce memory usage and improve training/inference efficiency for RLHF training with LoRA. MixZ++ partitions model parameters across GPUs to reduce footprint and gathers them with quantized communication only when needed similar to its ZeRO and ZeRO++ siblings. Our evaluation indicates MixZ++ increases the training throughput by **up to 3.3x** for the Llama-2-70B model running on 128 V100 GPUs. - ***[ZeRO-Offload](https://www.microsoft.com/en-us/research/blog/zero-infinity-and-deepspeed-unlocking-unprecedented-model-scale-for-deep-learning-training/)***. It is an optimization that offloads optimizer memory and computation from the GPU to the host CPU, enabling larger models to be trained with fewer GPU resources. After training stability fixes and testing, we have enabled this feature across all three stages of the DeepSpeed-Chat RLHF training pipeline. ZeRO-Offload reduces the minimum number of GPUs required to train large models by **up to 16x**. - **Stability and Software Enhancements** - - DeepSpeed-Chat contains a rich set of features for training across many different platforms and scenarios. Composing these features in a systematic way and ensuring both system stability and decent training convergence is critical for the usability of the framework. Thus, in addition to new features in DeepSpeed-Chat, many system stability and training convergence issues have been fixed both in DeepSpeed-Chat (client code) and DeepSpeed (runtime). These improvements have been thoroughly tested using the OPT model family for end-to-end training. Furthermore, end-to-end testing, characterization scripts, and several instrumentation features like TensorBoard support are now also available. *To try out these latest features and software improvements, please use DeepSpeed release [v0.10.2](https://github.com/microsoft/DeepSpeed/tree/v0.10.2) and the latest DeepSpeed-Chat in [DeepSpeedExamples](https://github.com/microsoft/DeepSpeedExamples)*. + - DeepSpeed-Chat contains a rich set of features for training across many different platforms and scenarios. Composing these features in a systematic way and ensuring both system stability and decent training convergence is critical for the usability of the framework. Thus, in addition to new features in DeepSpeed-Chat, many system stability and training convergence issues have been fixed both in DeepSpeed-Chat (client code) and DeepSpeed (runtime). These improvements have been thoroughly tested using the OPT model family for end-to-end training. Furthermore, end-to-end testing, characterization scripts, and several instrumentation features like TensorBoard support are now also available. *To try out these latest features and software improvements, please use DeepSpeed release [v0.10.2](https://github.com/deepspeedai/DeepSpeed/tree/v0.10.2) and the latest DeepSpeed-Chat in [DeepSpeedExamples](https://github.com/deepspeedai/DeepSpeedExamples)*. - - Finally, to ensure the long-term health of the DeepSpeed-Chat training framework, [PyTests](https://github.com/microsoft/DeepSpeedExamples/blob/master/applications/DeepSpeed-Chat/training/tests/test_training.py) were added for testing Step 3 of the RLHF training pipeline and are run on a nightly basis through a newly developed [GitHub Actions workflow](https://github.com/microsoft/DeepSpeed/actions/workflows/nv-ds-chat.yml). + - Finally, to ensure the long-term health of the DeepSpeed-Chat training framework, [PyTests](https://github.com/deepspeedai/DeepSpeedExamples/blob/master/applications/DeepSpeed-Chat/training/tests/test_training.py) were added for testing Step 3 of the RLHF training pipeline and are run on a nightly basis through a newly developed [GitHub Actions workflow](https://github.com/deepspeedai/DeepSpeed/actions/workflows/nv-ds-chat.yml). We now dive into the details of our new features, training stability, and software improvements. @@ -54,19 +54,19 @@ The DeepSpeed-Chat training framework now provides system support for the Llama The following key optimizations in DeepSpeed are now fully integrated for Llama and Llama-2 models: - **DeepSpeed-Chat Integration**: Fully integrated into the complete, end-to-end three-stage DeepSpeed-Chat RLHF training framework, based on the OpenAI InstructGPT training strategy. -- **Hybrid Engine**: DeepSpeed Hybrid Engine allows for superior generation phase [acceleration](https://github.com/microsoft/DeepSpeed/blob/master/blogs/deepspeed-chat/README.md#throughput-and-model-size-scalability-comparisons-with-existing-rlhf-systems), now supported for all Llama-1 model variants, Llama-2-7B, and Llama-2-13B models. -- **ZeRO and ZeRO-Offload**: Fully supported by the [ZeRO](https://github.com/microsoft/DeepSpeed/blob/master/blogs/deepspeed-chat/README.md#throughput-and-model-size-scalability-comparisons-with-existing-rlhf-systems) family of optimizations including offload support leveraging full memory capacity of a system thus enabling training of even larger models. +- **Hybrid Engine**: DeepSpeed Hybrid Engine allows for superior generation phase [acceleration](https://github.com/deepspeedai/DeepSpeed/blob/master/blogs/deepspeed-chat/README.md#throughput-and-model-size-scalability-comparisons-with-existing-rlhf-systems), now supported for all Llama-1 model variants, Llama-2-7B, and Llama-2-13B models. +- **ZeRO and ZeRO-Offload**: Fully supported by the [ZeRO](https://github.com/deepspeedai/DeepSpeed/blob/master/blogs/deepspeed-chat/README.md#throughput-and-model-size-scalability-comparisons-with-existing-rlhf-systems) family of optimizations including offload support leveraging full memory capacity of a system thus enabling training of even larger models. - **Mixed Precision ZeRO++ (MixZ++)**: Enhanced support for larger models like Llama-2-70B through the new MixZ++ feature, improving efficiency and reducing memory usage when there are frozen or non-trainable parameters. -- **LoRA**: Fully supported by the [LoRA](https://github.com/microsoft/LoRA) feature, which vastly reduces the storage requirements for large language models by freezing original weights and learning pairs of rank-decomposition matrices. +- **LoRA**: Fully supported by the [LoRA](https://github.com/deepspeedai/LoRA) feature, which vastly reduces the storage requirements for large language models by freezing original weights and learning pairs of rank-decomposition matrices. ## Getting Started Users looking to try the new Llama and Llama-2 model support can get started by using the newly added Llama scripts. | Step Number | Scripts | | --- | --- | -| 1 | [Llama-2 Step 1 Scripts](https://github.com/microsoft/DeepSpeedExamples/tree/master/applications/DeepSpeed-Chat/training/step1_supervised_finetuning/training_scripts/llama2) | -| 2 | [Llama-2 Step 2 Scripts](https://github.com/microsoft/DeepSpeedExamples/tree/master/applications/DeepSpeed-Chat/training/step2_reward_model_finetuning/training_scripts/llama2) | -| 3 | [Llama-2 Step 3 Scripts](https://github.com/microsoft/DeepSpeedExamples/tree/master/applications/DeepSpeed-Chat/training/step3_rlhf_finetuning/training_scripts/llama2) | +| 1 | [Llama-2 Step 1 Scripts](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/applications/DeepSpeed-Chat/training/step1_supervised_finetuning/training_scripts/llama2) | +| 2 | [Llama-2 Step 2 Scripts](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/applications/DeepSpeed-Chat/training/step2_reward_model_finetuning/training_scripts/llama2) | +| 3 | [Llama-2 Step 3 Scripts](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/applications/DeepSpeed-Chat/training/step3_rlhf_finetuning/training_scripts/llama2) | *Note*: While all the system aspects of Llama and Llama-2 support have been extensively tested, there are no guarantees about training convergence and may require hyper-parameter tuning to achieve convergence. @@ -103,11 +103,11 @@ We now dive into the details of two new features we are introducing today: 1) Mi ## 3.3x Higher Throughput with MixZ++ for LoRA -Mixed Precision ZeRO++ ([MixZ++](https://github.com/microsoft/DeepSpeed/pull/3954)) is an extended set of optimization strategies built upon [ZeRO](https://www.deepspeed.ai/tutorials/zero/) and [ZeRO++](https://www.deepspeed.ai/tutorials/zeropp/) tailored to reduce memory usage and improve training/inference efficiency for RLHF training with LoRA. +Mixed Precision ZeRO++ ([MixZ++](https://github.com/deepspeedai/DeepSpeed/pull/3954)) is an extended set of optimization strategies built upon [ZeRO](https://www.deepspeed.ai/tutorials/zero/) and [ZeRO++](https://www.deepspeed.ai/tutorials/zeropp/) tailored to reduce memory usage and improve training/inference efficiency for RLHF training with LoRA. Similar to [ZeRO](https://www.deepspeed.ai/tutorials/zero/), MixZ++ partitions model parameters across GPUs to reduce footprint and gathers them only when needed. In addition, similar to ZeRO++, MixZ++ allows for hierarchical partitioning and quantized communication. The hierarchical partitioning allows all the parameters to be stored within a node when possible so that the communication happens within a node, where communication bandwidth is significantly higher than communicating across nodes. The communication overhead is further reduced by quantizing the weights before gathering them. -Finally, unlike ZeRO++ where parameters are always stored in fp16/bf16, and quantized/dequantized before and after communication, MixZ++ can persistently store the frozen weights in [Low-Rank Adaptation (LoRA)](https://github.com/microsoft/LoRA) in lower-precision, significantly reducing the communication overhead, eliminating quantization overhead, and supporting larger batch sizes that enable better efficiency. +Finally, unlike ZeRO++ where parameters are always stored in fp16/bf16, and quantized/dequantized before and after communication, MixZ++ can persistently store the frozen weights in [Low-Rank Adaptation (LoRA)](https://github.com/deepspeedai/LoRA) in lower-precision, significantly reducing the communication overhead, eliminating quantization overhead, and supporting larger batch sizes that enable better efficiency. A comprehensive exploration of technical details can be accessed through our [ZeRO++ blog](https://www.microsoft.com/en-us/research/blog/deepspeed-zero-a-leap-in-speed-for-llm-and-chat-model-training-with-4x-less-communication/), [MixZ++ tutorial](https://www.deepspeed.ai/tutorials/mixed_precision_zeropp/), and [paper](https://arxiv.org/pdf/2306.10209.pdf). @@ -147,13 +147,13 @@ To try this feature, please refer to [MixZ++ tutorial](https://www.deepspeed.ai/
-ZeRO-Offload was [disabled](https://github.com/microsoft/DeepSpeedExamples/pull/553) +ZeRO-Offload was [disabled](https://github.com/deepspeedai/DeepSpeedExamples/pull/553) with the initial release of DeepSpeed-Chat due to training instability that was observed when it was used with Hybrid Engine and LoRA. After improvements to Hybrid Engine and LoRA as well as extensive testing of all feature configurations for ZeRO Stage2 and ZeRO Stage 3, this feature can now be enabled across all three steps of the DeepSpeed-Chat training framework. Please note that configuring ZeRO-Offload with ZeRO Stage 2 and Hybrid Engine with LoRA disabled is currently unsupported due to observed training instability.
- *Figure 5: Reward scores for all supported DeepSpeed-Chat configurations with ZeRO-Offload enabled. Run with 16 V100 GPUs, [AdamG012/chat-opt-1.3b-sft-deepspeed](https://huggingface.co/AdamG012/chat-opt-1.3b-sft-deepspeed) actor model, [AdamG012/chat-opt-350m-reward-deepspeed](https://huggingface.co/AdamG012/chat-opt-350m-reward-deepspeed) critic model, DS commit: [f036f00c](https://github.com/microsoft/DeepSpeed/tree/f036f00c3763694e539a9070a98130e2667e49bd), DSE commit: [81a8521f](https://github.com/microsoft/DeepSpeedExamples/tree/81a8521f05e2761eed34fcf65f19873df9f74403).* + *Figure 5: Reward scores for all supported DeepSpeed-Chat configurations with ZeRO-Offload enabled. Run with 16 V100 GPUs, [AdamG012/chat-opt-1.3b-sft-deepspeed](https://huggingface.co/AdamG012/chat-opt-1.3b-sft-deepspeed) actor model, [AdamG012/chat-opt-350m-reward-deepspeed](https://huggingface.co/AdamG012/chat-opt-350m-reward-deepspeed) critic model, DS commit: [f036f00c](https://github.com/deepspeedai/DeepSpeed/tree/f036f00c3763694e539a9070a98130e2667e49bd), DSE commit: [81a8521f](https://github.com/deepspeedai/DeepSpeedExamples/tree/81a8521f05e2761eed34fcf65f19873df9f74403).*
@@ -164,11 +164,11 @@ A wide range of issues have been addressed in the DeepSpeed runtime and the Deep
- *Figure 6: Step 3 Reward Scores for all supported DeepSpeed-Chat configurations. Run with 16 V100 GPUs, [AdamG012/chat-opt-1.3b-sft-deepspeed](https://huggingface.co/AdamG012/chat-opt-1.3b-sft-deepspeed) actor model, [AdamG012/chat-opt-350m-reward-deepspeed](https://huggingface.co/AdamG012/chat-opt-350m-reward-deepspeed) critic model, DS commit: [f036f00c](https://github.com/microsoft/DeepSpeed/tree/f036f00c3763694e539a9070a98130e2667e49bd), DSE commit: [81a8521f](https://github.com/microsoft/DeepSpeedExamples/tree/81a8521f05e2761eed34fcf65f19873df9f74403).* + *Figure 6: Step 3 Reward Scores for all supported DeepSpeed-Chat configurations. Run with 16 V100 GPUs, [AdamG012/chat-opt-1.3b-sft-deepspeed](https://huggingface.co/AdamG012/chat-opt-1.3b-sft-deepspeed) actor model, [AdamG012/chat-opt-350m-reward-deepspeed](https://huggingface.co/AdamG012/chat-opt-350m-reward-deepspeed) critic model, DS commit: [f036f00c](https://github.com/deepspeedai/DeepSpeed/tree/f036f00c3763694e539a9070a98130e2667e49bd), DSE commit: [81a8521f](https://github.com/deepspeedai/DeepSpeedExamples/tree/81a8521f05e2761eed34fcf65f19873df9f74403).*
-*Figure 6* above shows the training convergence across all supported DeepSpeed-Chat configurations. This data was collected using 16 V100 NVIDIA GPUs, the [AdamG012/chat-opt-1.3b-sft-deepspeed](https://huggingface.co/AdamG012/chat-opt-1.3b-sft-deepspeed) OPT model as the actor, the [AdamG012/chat-opt-350m-reward-deepspeed](https://huggingface.co/AdamG012/chat-opt-350m-reward-deepspeed) OPT model as the critic, and the following DeepSpeed and DeepSpeedExamples repository commits: DS commit: [f036f00c](https://github.com/microsoft/DeepSpeed/tree/f036f00c3763694e539a9070a98130e2667e49bd), DSE commit: [81a8521f](https://github.com/microsoft/DeepSpeedExamples/tree/81a8521f05e2761eed34fcf65f19873df9f74403). +*Figure 6* above shows the training convergence across all supported DeepSpeed-Chat configurations. This data was collected using 16 V100 NVIDIA GPUs, the [AdamG012/chat-opt-1.3b-sft-deepspeed](https://huggingface.co/AdamG012/chat-opt-1.3b-sft-deepspeed) OPT model as the actor, the [AdamG012/chat-opt-350m-reward-deepspeed](https://huggingface.co/AdamG012/chat-opt-350m-reward-deepspeed) OPT model as the critic, and the following DeepSpeed and DeepSpeedExamples repository commits: DS commit: [f036f00c](https://github.com/deepspeedai/DeepSpeed/tree/f036f00c3763694e539a9070a98130e2667e49bd), DSE commit: [81a8521f](https://github.com/deepspeedai/DeepSpeedExamples/tree/81a8521f05e2761eed34fcf65f19873df9f74403). We now dive into the details of all the fixes across different areas. @@ -178,13 +178,13 @@ In this section we discuss the functionality and training stability fixes in the - **Training Stability:** - - [PR #620 - Make training more stable](https://github.com/microsoft/DeepSpeedExamples/pull/620) + - [PR #620 - Make training more stable](https://github.com/deepspeedai/DeepSpeedExamples/pull/620) - To improve the training stability in Step 3, several different areas of training were tuned and changed. To start, the Kullback-Liebler (KL) divergence used in the Proximal Policy Optimization (PPO) trainer was slightly tuned to reduce divergence between the new and reference policies and improve the reward score. Next, the sequence generation function in the PPO trainer (`_generate_sequence()`) removed the specification of a `min_length` in the Actor model's `generate()` call, which means generated sequences won't be artificially enlarged, allowing for the possibility of sequence generation to collapse i.e. when training convergence is extremely poor. A minor off-by-one error was also fixed in the PPO trainer's reward computation function (`compute_rewards()`). Finally, the PPO trainer's RLHF training function was updated to zero out the reward and value after the end of a conversation to prevent incorrect `advantages` and `returns`. - - [PR #633 - DS Chat Step 3 - Add separate Lora Adam optimizer group](https://github.com/microsoft/DeepSpeedExamples/pull/633) + - [PR #633 - DS Chat Step 3 - Add separate Lora Adam optimizer group](https://github.com/deepspeedai/DeepSpeedExamples/pull/633) - - The [LoRA](https://github.com/microsoft/LoRA) feature is supported across all three training steps of the DeepSpeed-Chat framework. Prior to this stability effort, there was no distinction between the overall learning rate and the LoRA learning rate i.e. the LoRA learning rate was set to whatever the overall learning rate was. This led to instability in training convergence and can be seen in *Figure 7* below showing the reward score across training steps for various Step 3 configurations: + - The [LoRA](https://github.com/deepspeedai/LoRA) feature is supported across all three training steps of the DeepSpeed-Chat framework. Prior to this stability effort, there was no distinction between the overall learning rate and the LoRA learning rate i.e. the LoRA learning rate was set to whatever the overall learning rate was. This led to instability in training convergence and can be seen in *Figure 7* below showing the reward score across training steps for various Step 3 configurations:
@@ -204,25 +204,25 @@ In this section we discuss the functionality and training stability fixes in the The next fix details the addition of separate LoRA learning rate arguments. - - [PR ##685 Add LoRA LR for DS Chat steps 1-3](https://github.com/microsoft/DeepSpeedExamples/pull/685) + - [PR ##685 Add LoRA LR for DS Chat steps 1-3](https://github.com/deepspeedai/DeepSpeedExamples/pull/685) - A *separate* LoRA learning rate argument can now be provided in each of the three training steps, with Step 3 having individual LoRA learning rates for the Actor and Critic models. - **Bug Fixes:** - - [PR #636 - DS Chat Step 3 - Fix Zero Stage 3](https://github.com/microsoft/DeepSpeedExamples/pull/636) + - [PR #636 - DS Chat Step 3 - Fix Zero Stage 3](https://github.com/deepspeedai/DeepSpeedExamples/pull/636) - During DeepSpeed-Chat Step 3 training, we observed hangs when ZeRO Stage 3 was enabled for the actor model and when the `world_size > 1`. When observing the state of each rank, one rank would still be in the sequence generation phase `self._generate_sequence()`, while the other rank had already progressed to the `self.actor_model()` call. This ZeRO Stage 3 desynchronization, due to misaligned token generation between the GPUs, can normally be automatically detected and accounted for in the HuggingFace Transformers library via `synced_gpus`. However, due to the nature of the DeepSpeed-Chat pipeline and the lifetime of the corresponding model configuration objects, this automatic detection code was not triggered. To resolve this, when invoking the `generate()` function, the `synced_gpus` argument is explicitly passed and set to `True` when ZeRO Stage 3 is being used. - - [PR #658 - Fix only optimize lora and ack-ckpting compatible](https://github.com/microsoft/DeepSpeedExamples/pull/658) + - [PR #658 - Fix only optimize lora and ack-ckpting compatible](https://github.com/deepspeedai/DeepSpeedExamples/pull/658) - This fix allows Step 3 training to run with the combination of gradient checkpointing and *LoRA-only* parameter optimization, a previously unsupported training case. With the addition of the [enable_input_require_grads](https://github.com/huggingface/transformers/blob/f26099e7b5cf579f99a42bab6ddd371bf2c8d548/src/transformers/modeling_utils.py#L1225) model utility function in the HuggingFace Transformers library, which enables the gradients for the input embeddings, gradient checkpointing and optimization of *only* the LoRA parameters is made possible. - - [PR #576 - Fix argparse](https://github.com/microsoft/DeepSpeedExamples/pull/576) + - [PR #576 - Fix argparse](https://github.com/deepspeedai/DeepSpeedExamples/pull/576) - An external contributor helped in resolving an argument parsing issue. - - [PR #584 - Fix unused parameter bug](https://github.com/microsoft/DeepSpeedExamples/pull/584) + - [PR #584 - Fix unused parameter bug](https://github.com/deepspeedai/DeepSpeedExamples/pull/584) - An external contributor fixed the passing of an uninitialized parameter that was hardcoded earlier. @@ -230,11 +230,11 @@ In this section we discuss the functionality and training stability fixes in the ## Hybrid Engine Fixes In this section we discuss several fixes in the Hybrid Engine. -- [PR #3563 - Fix LoRA Fuse/Unfuse in Hybrid Engine](https://github.com/microsoft/DeepSpeed/pull/3563) +- [PR #3563 - Fix LoRA Fuse/Unfuse in Hybrid Engine](https://github.com/deepspeedai/DeepSpeed/pull/3563) - During Step 3 training for OPT with LoRA and Hybrid Engine enabled, an issue arose regarding a tensor size mismatch of the LoRA weights. Specifically, the LoRA QKV weights were not fused in the OPT container policy, yet they were expected to be fused by the Hybrid Engine. This challenge was effectively resolved by introducing both fused and unfused LoRA methods in the Hybrid Engine. We thank @sxjscience for providing this fix. -- [PR #3883 - Extend HE-Lora test with Z3 support + Fix/add guard in HE for Z3](https://github.com/microsoft/DeepSpeed/pull/3883) +- [PR #3883 - Extend HE-Lora test with Z3 support + Fix/add guard in HE for Z3](https://github.com/deepspeedai/DeepSpeed/pull/3883) - The Hybrid Engine was updated to properly check whether ZeRO Stage 3 was enabled when resetting the inference container parameters, along with expanding the corresponding unit tests. @@ -242,17 +242,17 @@ In this section we discuss several fixes in the Hybrid Engine. ## ZeRO Stage 3 Fixes In this section we discuss several fixes in support of the ZeRO Stage 3 feature. -- [PR #3819 - Fix racing condition in GatheredParameters](https://github.com/microsoft/DeepSpeed/pull/3819) +- [PR #3819 - Fix racing condition in GatheredParameters](https://github.com/deepspeedai/DeepSpeed/pull/3819) - A race condition in the the ZeRO `GatheredParameters` context, which resulted in various `'status': 'INFLIGHT'` issues, was fixed by removing duplicate input parameters that were being passed from the Hybrid Engine. -- [PR #3884 - Separate ZeRO3 InflightParamRegistry for train and eval](https://github.com/microsoft/DeepSpeed/pull/3884) +- [PR #3884 - Separate ZeRO3 InflightParamRegistry for train and eval](https://github.com/deepspeedai/DeepSpeed/pull/3884) - The ZeRO Stage 3 `InflightParamRegistry` was updated to use a separate `InflightParamRegistry` for training and evaluation, fixing an issue where leftover parameters in flight were causing inflight parameter errors. These fixes, along with related fixes in the Hybrid Engine, enabled the use of the ZeRO-Offload feature in the DeepSpeed-Chat training pipeline. -- [PR #3928 - Remove the param.ds_tensor from print](https://github.com/microsoft/DeepSpeed/pull/3928) +- [PR #3928 - Remove the param.ds_tensor from print](https://github.com/deepspeedai/DeepSpeed/pull/3928) - - A minor change that was necessary to address the DeepSpeed-Chat Step 3 hang issue ([PR #636](https://github.com/microsoft/DeepSpeedExamples/pull/636)) as it allowed us to progress further into execution and observe the desynchronization point. + - A minor change that was necessary to address the DeepSpeed-Chat Step 3 hang issue ([PR #636](https://github.com/deepspeedai/DeepSpeedExamples/pull/636)) as it allowed us to progress further into execution and observe the desynchronization point. # 5. Software Improvements @@ -263,9 +263,9 @@ To improve the characterization, ease of debug, and maintainability of the DeepS The DeepSpeed-Chat training framework provides a rich set of features (Hybrid Engine, ZeRO, LoRA, etc.) that can be composed in many different combinations, depending on the scenario. The interactions between the features are often complex and composing them in a systematic way for characterization is useful for understanding their behavior. To support such use cases, characterization scripts have been added to run sweeps of Steps 1, 2, and 3 training for various combinations of features. The scripts default to OPT but can be modified to run with Llama. Please see the READMEs in the following folders for more details: -- [Step 1 Sweep Scripts](https://github.com/microsoft/DeepSpeedExamples/tree/master/applications/DeepSpeed-Chat/training/step1_supervised_finetuning/training_scripts/opt/single_node/sweep) -- [Step 2 Sweep Scripts](https://github.com/microsoft/DeepSpeedExamples/tree/master/applications/DeepSpeed-Chat/training/step2_reward_model_finetuning/training_scripts/opt/single_node/sweep) -- [Step 3 Sweep Scripts](https://github.com/microsoft/DeepSpeedExamples/tree/master/applications/DeepSpeed-Chat/training/step3_rlhf_finetuning/training_scripts/opt/single_node/sweep) +- [Step 1 Sweep Scripts](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/applications/DeepSpeed-Chat/training/step1_supervised_finetuning/training_scripts/opt/single_node/sweep) +- [Step 2 Sweep Scripts](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/applications/DeepSpeed-Chat/training/step2_reward_model_finetuning/training_scripts/opt/single_node/sweep) +- [Step 3 Sweep Scripts](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/applications/DeepSpeed-Chat/training/step3_rlhf_finetuning/training_scripts/opt/single_node/sweep) For example, the Step 3 characterization script sweeps across various training features: | Feature | Values | @@ -286,13 +286,13 @@ The training log for each combination of features will be stored in a folder wit Related PRs: -- [DS Chat Characterization Scripts (Step 1 and 3)](https://github.com/microsoft/DeepSpeedExamples/pull/638) -- [Add step 2 sweep script, clean up scripts](https://github.com/microsoft/DeepSpeedExamples/pull/664) -- [Update script location and docs for all 3 steps](https://github.com/microsoft/DeepSpeedExamples/pull/681) +- [DS Chat Characterization Scripts (Step 1 and 3)](https://github.com/deepspeedai/DeepSpeedExamples/pull/638) +- [Add step 2 sweep script, clean up scripts](https://github.com/deepspeedai/DeepSpeedExamples/pull/664) +- [Update script location and docs for all 3 steps](https://github.com/deepspeedai/DeepSpeedExamples/pull/681) ## Instrumentation -To gain better insight into DeepSpeed-Chat training, new [instrumentation features](https://github.com/microsoft/DeepSpeedExamples/pull/624) were added across all three steps of DeepSpeed-Chat and can be enabled via arguments to each step's `main.py`. +To gain better insight into DeepSpeed-Chat training, new [instrumentation features](https://github.com/deepspeedai/DeepSpeedExamples/pull/624) were added across all three steps of DeepSpeed-Chat and can be enabled via arguments to each step's `main.py`. | Argument | Description | Step(s) | | --- | --- | --- | @@ -318,11 +318,11 @@ TensorBoard logging can be enabled in each of the three training steps, with som ## Testing -As part of the DeepSpeed team's commitment to maintaining the DeepSpeed-Chat training framework, continuous integration [PyTest](https://github.com/microsoft/DeepSpeedExamples/blob/master/applications/DeepSpeed-Chat/training/tests/test_training.py) testing has been added for Step 3 RLHF training in a new [GitHub Actions workflow](https://github.com/microsoft/DeepSpeed/actions/workflows/nv-ds-chat.yml). +As part of the DeepSpeed team's commitment to maintaining the DeepSpeed-Chat training framework, continuous integration [PyTest](https://github.com/deepspeedai/DeepSpeedExamples/blob/master/applications/DeepSpeed-Chat/training/tests/test_training.py) testing has been added for Step 3 RLHF training in a new [GitHub Actions workflow](https://github.com/deepspeedai/DeepSpeed/actions/workflows/nv-ds-chat.yml). | Description | Status | | ----------- | ------ | -| Integrations | [![nv-ds-chat](https://github.com/microsoft/DeepSpeed/actions/workflows/nv-ds-chat.yml/badge.svg?branch=master)](https://github.com/microsoft/DeepSpeed/actions/workflows/nv-ds-chat.yml) | +| Integrations | [![nv-ds-chat](https://github.com/deepspeedai/DeepSpeed/actions/workflows/nv-ds-chat.yml/badge.svg?branch=master)](https://github.com/deepspeedai/DeepSpeed/actions/workflows/nv-ds-chat.yml) | The workflow is run on a **nightly** basis across a **16-case** test matrix (see table below), and uses the **facebook/opt-125m** model for both the actor and critic. @@ -338,15 +338,15 @@ Each configuration (16 total) runs through a limited number of Step 3 non-overfl # 6. Try Out DeepSpeed-Chat We are very excited to share this DeepSpeed-Chat feature and stability release. -* To get started, please visit our GitHub page for DeepSpeed-Chat: [GitHub Landing Page](https://github.com/microsoft/DeepSpeedExamples/tree/master/applications/DeepSpeed-Chat) +* To get started, please visit our GitHub page for DeepSpeed-Chat: [GitHub Landing Page](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/applications/DeepSpeed-Chat) -* We will continue to improve DeepSpeed-Chat with your feedback and support. Our [roadmap](https://github.com/microsoft/DeepSpeedExamples/tree/master/applications/DeepSpeed-Chat/README.md#-deepspeed-chats-roadmap-) shows currently supported features as well as ones that are planned for future. +* We will continue to improve DeepSpeed-Chat with your feedback and support. Our [roadmap](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/applications/DeepSpeed-Chat/README.md#-deepspeed-chats-roadmap-) shows currently supported features as well as ones that are planned for future. DeepSpeed-Chat is part of the bigger DeepSpeed ecosystem comprising of a multitude of Deep Learning systems and modeling technologies. To learn more, * Please visit our [website](https://www.deepspeed.ai/) for detailed blog posts, tutorials, and helpful documentation. -* You can also follow us on our [English Twitter](https://twitter.com/MSFTDeepSpeed), [Japanese Twitter](https://twitter.com/MSFTDeepSpeedJP), and [Chinese Zhihu](https://www.zhihu.com/people/deepspeed) for latest news on DeepSpeed. +* You can also follow us on our [English Twitter](https://twitter.com/DeepSpeedAI), [Japanese Twitter](https://twitter.com/DeepSpeedAI_JP), and [Chinese Zhihu](https://www.zhihu.com/people/deepspeed) for latest news on DeepSpeed. -DeepSpeed welcomes your contributions! We encourage you to report issues, contribute PRs, and join discussions on the [DeepSpeed GitHub](https://github.com/microsoft/DeepSpeed/) page. Please see our [contributing guide](https://github.com/microsoft/DeepSpeed/blob/master/CONTRIBUTING.md) for more details. We are open to collaborations with universities, research labs, companies, such as those working together on deep learning research, applying DeepSpeed to empower real-world AI models and applications, and so on. For such requests (and other requests unsuitable for GitHub), please directly email to deepspeed-info@microsoft.com. +DeepSpeed welcomes your contributions! We encourage you to report issues, contribute PRs, and join discussions on the [DeepSpeed GitHub](https://github.com/deepspeedai/DeepSpeed/) page. Please see our [contributing guide](https://github.com/deepspeedai/DeepSpeed/blob/master/CONTRIBUTING.md) for more details. We are open to collaborations with universities, research labs, companies, such as those working together on deep learning research, applying DeepSpeed to empower real-world AI models and applications, and so on. For such requests (and other requests unsuitable for GitHub), please directly email to deepspeed-info@microsoft.com. -* "Star" our [DeepSpeed GitHub](https://github.com/microsoft/DeepSpeed/) and [DeepSpeedExamples GitHub](https://github.com/microsoft/DeepSpeedExamples/) repositories if you like our work! +* "Star" our [DeepSpeed GitHub](https://github.com/deepspeedai/DeepSpeed/) and [DeepSpeedExamples GitHub](https://github.com/deepspeedai/DeepSpeedExamples/) repositories if you like our work! diff --git a/blogs/deepspeed-chat/japanese/README.md b/blogs/deepspeed-chat/japanese/README.md index e7aa62721417..daa9b387de28 100644 --- a/blogs/deepspeed-chat/japanese/README.md +++ b/blogs/deepspeed-chat/japanese/README.md @@ -62,7 +62,7 @@ DeepSpeed-RLHFシステムは、大規模モデルの学習において類を見 *表2. 複数ノード(64x A100-80GB)を用いた場合の訓練時間とAzureでの概算実行コスト*
-> ***注意事項***: 上記の2つの表の数値は、訓練のステージ3のものです。DeepSpeed-RLHFが用いるデータセットと訓練の設定において、合計1.35億トークンを1エポックで訓練した際のスループットの実測値に基づいています。合計6750万のクエリートークン(配列長256の13万件のクエリー)と6750万の生成トークン(配列長256の13万件の回答)があり、ステップごとの最大グローバルバッチサイズは 50万 トークン(クエリーと回答それぞれ1024件)です。DeepSpeedRLHFを用いた場合のコストおよび実行時間の比較にあたっては、これらの詳細をよくご確認ください。さらに詳細な情報は[ベンチマーク設定](https://github.com/microsoft/DeepSpeedExamples/blob/staging-deepspeed-chat-v2/applications/DeepSpeed-Chat/training/step3_rlhf_finetuning/BenckmarkSetting.md)を参照ください。 +> ***注意事項***: 上記の2つの表の数値は、訓練のステージ3のものです。DeepSpeed-RLHFが用いるデータセットと訓練の設定において、合計1.35億トークンを1エポックで訓練した際のスループットの実測値に基づいています。合計6750万のクエリートークン(配列長256の13万件のクエリー)と6750万の生成トークン(配列長256の13万件の回答)があり、ステップごとの最大グローバルバッチサイズは 50万 トークン(クエリーと回答それぞれ1024件)です。DeepSpeedRLHFを用いた場合のコストおよび実行時間の比較にあたっては、これらの詳細をよくご確認ください。さらに詳細な情報は[ベンチマーク設定](https://github.com/deepspeedai/DeepSpeedExamples/blob/staging-deepspeed-chat-v2/applications/DeepSpeed-Chat/training/step3_rlhf_finetuning/BenckmarkSetting.md)を参照ください。 ***RLHFを誰もが利用できるように***: DeepSpeed-HEは、1台のGPUのみで130億以上のパラメーターを持つモデルの訓練を実行できます。複数のGPUを備えた高価な計算設備を持たないデータサイエンティストも、小規模なトイモデルではなく、実際のシナリオで使用できる大規模で強力なRLHFモデルを作成できます。 @@ -92,7 +92,7 @@ DeepSpeed-RLHFシステムは、大規模モデルの学習において類を見 ```python pip install deepspeed>=0.9.0 -git clone https://github.com/microsoft/DeepSpeedExamples.git +git clone https://github.com/deepspeedai/DeepSpeedExamples.git cd DeepSpeedExamples/applications/DeepSpeed-Chat/ pip install -r requirements.txt @@ -279,7 +279,7 @@ DeepSpeed-RLHFは、Colossal-AIや、ネイティブのPyTorchを用いたHuggin ## 実効スループットとスケーラビリティ -***(I) 実効スループット分析*** RLHFのステージ3におけるDeepSpeed-HEの実効スループットは、生成フェーズと強化学習の訓練フェーズの両方のスループットで決まります。我々の作成したRLHFのパイプラインでは、生成フェーズが全計算量の約20%を占め、強化学習の訓練フェーズが残りの80%を占めています(詳細は[ベンチマークのページ](https://github.com/microsoft/DeepSpeedExamples/tree/master/applications/DeepSpeed-Chat/training/step3_rlhf_finetuning/BenckmarkSetting.md)を参照)。しかし、計算量で見た割合が少ないとはいえ、前者は生成された256個のトークンのそれぞれに対して、初期プロンプトの256個のトークンに対してアクターモデルによる推論をそれぞれ1回実行する必要があるため、end-to-endの時間で見ると、その大部分を占めることになり、メモリ帯域が制限されて高いスループットを得ることが難しくなります。一方、強化学習の訓練フェーズでは、1サンプルあたりプロンプトと生成の両方から512個のトークンをフルに使用して、参照アクターモデルについて、数回のフォワードパスとバックワードパスで実行できるため、高いスループットを達成できます。 +***(I) 実効スループット分析*** RLHFのステージ3におけるDeepSpeed-HEの実効スループットは、生成フェーズと強化学習の訓練フェーズの両方のスループットで決まります。我々の作成したRLHFのパイプラインでは、生成フェーズが全計算量の約20%を占め、強化学習の訓練フェーズが残りの80%を占めています(詳細は[ベンチマークのページ](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/applications/DeepSpeed-Chat/training/step3_rlhf_finetuning/BenckmarkSetting.md)を参照)。しかし、計算量で見た割合が少ないとはいえ、前者は生成された256個のトークンのそれぞれに対して、初期プロンプトの256個のトークンに対してアクターモデルによる推論をそれぞれ1回実行する必要があるため、end-to-endの時間で見ると、その大部分を占めることになり、メモリ帯域が制限されて高いスループットを得ることが難しくなります。一方、強化学習の訓練フェーズでは、1サンプルあたりプロンプトと生成の両方から512個のトークンをフルに使用して、参照アクターモデルについて、数回のフォワードパスとバックワードパスで実行できるため、高いスループットを達成できます。
@@ -305,7 +305,7 @@ DeepSpeed-RLHFは、Colossal-AIや、ネイティブのPyTorchを用いたHuggin ***(II) スケーラビリティ分析*** モデルサイズごとに、最良のスループットを得られるGPU数は異なります。これは、モデルサイズが大きくなると、実行に多くのメモリを必要とすることに加え、以下に説明する DeepSpeed-HE のスケーラビリティ特性にも起因しています。 -図7は、DeepSeed-RLHF が最大 64 GPU で全体的に良好なスケーラビリティを達成したことを示しています。しかし、より詳細に見ると、DeepSpeed-RLHFの訓練では、小規模な環境では超線形(super linear)なスケーリングを達成し、大規模では線形(linear)またはそれ以下のスケーラビリティになっていることが分かります。これは、メモリの可用性と最大グローバルバッチサイズとの間の相互作用によるものです。 +図7は、DeepSpeed-RLHF が最大 64 GPU で全体的に良好なスケーラビリティを達成したことを示しています。しかし、より詳細に見ると、DeepSpeed-RLHFの訓練では、小規模な環境では超線形(super linear)なスケーリングを達成し、大規模では線形(linear)またはそれ以下のスケーラビリティになっていることが分かります。これは、メモリの可用性と最大グローバルバッチサイズとの間の相互作用によるものです。 DeepSpeed-HEはトレーニングにZeROの技術を採用しているため、利用可能なGPU間でモデルを分割することが可能です。その結果、GPUあたりのメモリ消費量はGPU数の増加とともに減少し、DeepSpeed-HEはGPUあたりでより大きなバッチサイズをサポートできるようになり、超線形のスケーリングが実現できます。しかし、より大規模になると、利用可能なメモリが増加し続ける一方で、最大グローバルバッチサイズが制限されているため、GPUあたりのバッチサイズを小さくすることになり、線形またはそれ以下のスケーリングになります。その結果、与えられた最大グローバルバッチサイズに対して、DeepSpeed-HEは、スーパーリニアとサブリニアのスケーラビリティの境界で最高のスループットとコスト効率を達成し、正確なポイントは、利用可能なメモリとグローバルバッチサイズの関数としてGPUごとに実行できる最大バッチサイズによってほぼ決定されます。 @@ -314,8 +314,8 @@ DeepSpeed-HEはトレーニングにZeROの技術を採用しているため、 DeepSpeed-ChatをオープンソースソフトウェアとしてAIコミュニティに公開できることを嬉しく思います。 -* DeepSpeed-Chatの[GitHubページ](https://github.com/microsoft/DeepSpeedExamples/tree/master/applications/DeepSpeed-Chat)を見て、早速使い始めましょう。 -* ユーザのみなさまからのフィードバックと協力で、これからも継続的に DeepSpeed-Chat を改善していく予定です。現在サポートされている機能や、将来的にサポートされている機能については、[ロードマップ](https://github.com/microsoft/DeepSpeedExamples/tree/master/applications/DeepSpeed-Chat/README.md#-deepspeed-chats-roadmap-)をご覧ください。 +* DeepSpeed-Chatの[GitHubページ](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/applications/DeepSpeed-Chat)を見て、早速使い始めましょう。 +* ユーザのみなさまからのフィードバックと協力で、これからも継続的に DeepSpeed-Chat を改善していく予定です。現在サポートされている機能や、将来的にサポートされている機能については、[ロードマップ](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/applications/DeepSpeed-Chat/README.md#-deepspeed-chats-roadmap-)をご覧ください。 # 7. DeepSpeedについて @@ -332,14 +332,14 @@ DeepSpeedは、以下のような機能を提供します。 DeepSpeedは、Microsoftの[AI at Scale initiative](https://www.microsoft.com/en-us/research/project/ai-at-scale/)の一部で、次世代AIの機能の大規模な実現を進めています。詳細は[こちら](https://innovation.microsoft.com/en-us/exploring-ai-at-scale)をご覧ください。DeepSpeedは、[Megatron-Turing NLG (530B)](https://www.microsoft.com/en-us/research/blog/using-deepspeed-and-megatron-to-train-megatron-turing-nlg-530b-the-worlds-largest-and-most-powerful-generative-language-model/), [Jurassic-1 (178B)](https://uploads-ssl.webflow.com/60fd4503684b466578c0d307/61138924626a6981ee09caf6_jurassic_tech_paper.pdf), [BLOOM (176B)](https://huggingface.co/blog/bloom-megatron-deepspeed), [GLM (130B)](https://github.com/THUDM/GLM-130B), [YaLM (100B)](https://github.com/yandex/YaLM-100B) を含め、様々な大規模モデルを学習するのに使用されてきました。 -またDeepSpeedは、 [Hugging Face Transformers](https://huggingface.co/docs/transformers/main/main_classes/deepspeed), [Hugging Face Accelerate](https://huggingface.co/docs/accelerate/usage_guides/deepspeed), [PyTorch Lightning](https://pytorch-lightning.readthedocs.io/en/stable/api/pytorch_lightning.strategies.DeepSpeedStrategy.html), [MosaicML Composer](https://docs.mosaicml.com/en/latest/trainer/using_the_trainer.html?highlight=deepspeed#deepspeed-integration), [Determined AI](https://docs.determined.ai/latest/training/apis-howto/deepspeed/overview.html) など、多くの著名なオープンソースの深層学習フレームワークのバックエンドとして利用されています。 +またDeepSpeedは、 [Hugging Face Transformers](https://huggingface.co/docs/transformers/deepspeed), [Hugging Face Accelerate](https://huggingface.co/docs/accelerate/usage_guides/deepspeed), [PyTorch Lightning](https://pytorch-lightning.readthedocs.io/en/stable/api/pytorch_lightning.strategies.DeepSpeedStrategy.html), [MosaicML Composer](https://docs.mosaicml.com/en/latest/trainer/using_the_trainer.html?highlight=deepspeed#deepspeed-integration), [Determined AI](https://docs.determined.ai/latest/training/apis-howto/deepspeed/overview.html) など、多くの著名なオープンソースの深層学習フレームワークのバックエンドとして利用されています。 DeepSpeedについてのより詳しい情報は、以下をご覧ください。 * [DeepSpeedのWebサイト](https://www.deepspeed.ai/) には、DeepSpeedの技術に関する詳細なブログ記事、チュートリアル、ドキュメントなどが掲載されています。 -* [DeepSpeedのTwitterアカウント (英語)](https://twitter.com/MSFTDeepSpeed) では、DeepSpeedの最新情報を発信していますので、ぜひフォローください。[日本語版のTwitterアカウント](https://twitter.com/MSFTDeepSpeedJP)もあり、最新の情報を日本語で発信しています。 +* [DeepSpeedのTwitterアカウント (英語)](https://twitter.com/DeepSpeedAI) では、DeepSpeedの最新情報を発信していますので、ぜひフォローください。[日本語版のTwitterアカウント](https://twitter.com/DeepSpeedAI_JP)もあり、最新の情報を日本語で発信しています。 DeepSpeedチームは、ユーザの方々からのフィードバックやご連絡を受け付けています。 -* ユーザのみなさまからのバグ報告、Pull request、さまざまな議論への参加は、[GitHub](https://github.com/microsoft/DeepSpeed/)で受け付けています。詳細については、[ガイドライン](https://github.com/microsoft/DeepSpeed/blob/master/CONTRIBUTING.md)を確認してください。 +* ユーザのみなさまからのバグ報告、Pull request、さまざまな議論への参加は、[GitHub](https://github.com/deepspeedai/DeepSpeed/)で受け付けています。詳細については、[ガイドライン](https://github.com/deepspeedai/DeepSpeed/blob/master/CONTRIBUTING.md)を確認してください。 * DeepSpeedチームでは、DeepSpeedを用いた深層学習の研究や実世界へのAIモデルやアプリケーションに関して、大学、研究所、企業との方々とのコラボレーションを行っています(日本語でコミュニケーション可能な研究員も在籍しています)。こうしたコラボレーションについてのご要望(およびGitHubには適さないその他の話題)については、deepspeed-info@microsoft.com まで直接メールをお送りください。 diff --git a/blogs/deepspeed-domino/README.md b/blogs/deepspeed-domino/README.md new file mode 100644 index 000000000000..ce190ed1e459 --- /dev/null +++ b/blogs/deepspeed-domino/README.md @@ -0,0 +1,199 @@ +

+ domino logo +

+ +
+ +# Domino: Communication-Free LLM Training Engine + +
+ +
+ + +
+ +*Figure 1: Project Domino is Microsoft DeepSpeed's Tensor Parallel (TP) Training Engine, which provides a uniform solution for both single-node and **multi-node** cases. Domino scales up traditional single-node-only TP solution to multi-node environments via **near-complete communication hiding** behind computation.* + +
+

+ +# Table of Content +1. [Introduction](#introduction) +2. [Domino Highlights](#domino-highlights) +3. [Design Motivation](#design-motivation) +4. [Domino Design](#domino-design) +5. [Implementation and Optimization](#implementation-and-optimization) +6. [Getting Started: Try out DeepSpeed-Domino](#getting-started-try-out-deepspeed-domino) +7. [Citation](#citation) +8. [Acknowledgements](#acknowledgements) + + +# Introduction + +Generative AI (GenAI) has enabled transformative applications in a wide variety of domains, including chatbot, text summarization, and high-quality image and video generation. These capabilities are built on top of large foundation models, particularly Large Language Models (LLMs). LLMs are typically based on the [Transformer](https://arxiv.org/abs/1706.03762) network architecture, and include popular model families such as GPT and Llama. LLMs have grown beyond the memory capacity of a single accelerator (e.g., GPU), and so inferencing or training them requires distributed processing using multiple GPUs or even multiple nodes. + +Tensor parallelism (TP) is a popular distributed technique for training LLMs. TP leverages the aggregate memory of multiple GPUs to fit LLMs by partitioning each model layer across the GPUs. However, TP incurs two communication collective operations for each partitioned layer, separately for the forward and backward passes. TP is appealing due to its excellent system efficiency in single-node cases, where GPUs are directly connected via high bandwidth links like NVLink and NVSwitch. However, TP falls short in multi-node cases due to the lower bandwidth of cross-node interconnects. [Prior work](https://arxiv.org/abs/2406.06858) reports that communication can take up to 75\% of end-to-end training time. Figure 2 shows that even on the latest DGX-H100 nodes interconnected with high-end Infiniband of 400GB/s bandwidth, communication overheads remains as high as 43\% of end-to-end training iteration time. Recent advances in GeMM+NCCL kernel fusion are unable to fully hide communication overheads due to their limited scope of computation-communication overlapping. The trend of faster compute in newer GPUs (e.g., DGX-B200) indicates that the communication overheads of TP will be more pronounced in both single node and multiple node scenarios. + +
+
+ + *Figure 2: TP communication overhead in GPT-3-13B training using 1,2,4 DGX-H100 nodes (i.e., 8, 16, 32 H100 GPUs).* + +
+ +# Domino Highlights + + +* Domino is TP optimization technique that achieves **Near-Complete** communication hiding behind computation by decomposing a single batch training iteration into smaller and independent pieces, allowing efficient pipelining. + +Domino is the first work that provides a **uniform** Tensor Parallelism (TP) solution for both single-node and **multi-node** cases. Traditional TP solutions (e.g., Megatron-LM) fall short in multi-node cases due to limited cross-node communication bandwidth. + +### Performance + +We tested Domino on 1 to 4 DGX-H100 boxes (8xH100 per box). Each node has intra-node NVLink bandwidth of 900GB/s and inter-node IB bandwidth of 400GB/s. We oberved the following performance results: +1. For both GPT and Llama model series, Domino outperforms Megatron-LM by up to **1.3x** and **1.2x** respectively in end-to-end training iteration throughput for different model sizes, sequence lengths and batch sizes. These results are summarized in Figure 1. +2. For several cases, Domino achieves **near-optimal** training throughput, where optimal throughput refers to the throughput achieved assuming the communication collectives of TP are disabled. + +For more detailed performance results, please refer to our [arxiv paper](https://arxiv.org/abs/2409.15241). + +# Design Motivation + +In this section, we briefly discuss three topics. First, we motivate why the time is right is for a uniform TP solution for both single node and multi-node cases. Next, we analyze the communication overhead on latest Nvidia DGX-H100 boxes with high cross-node communication interconnects. Finally, we describe TP's sequential data dependency which causing communication stands out. + +### It is time for a uniform TP for single and multi-node scenarios + +Nvidia is pushing hard on breaking communication bandwidth gap between intra-node (i.e., GPUs within a node connected with NVLink) and inter-node (i.e., cross-node connected with Infini-Band(IB)). For example, each DGX-H100 is equipped with eight ConnectX-7 network cards and gets aggregated cross-node bandwidth of 400GB/s, which is at same level of intra-node NVLink (900GB/s). Therefore, it is time for proposing a uniform solution for both single node and multi-node TP training. + +### Communication Overhead in TP + +As described in [Megatron-LM paper](https://arxiv.org/pdf/1909.08053), for TP, every transformer block (i.e.,1 Self-Attention layer + 1 MLP layer) incurs 4 AllReduce calls, two in forward pass and two in the backward pass (shown in Figure 3). Given a LLM consisting of $N$ stacked transformer blocks, the number of AllReduce calls required for TP training is $4 * N$. Even for small models like GPT-3 2.7B or 6.7B which consists of 32 layers, the total number of AllReduce calls is 128 for every training iteration. For larger models, the number of AllReduce calls grows linearly with number of layers. + +
+
+ + *Figure 3: TP communication = 4 x AllReduce x num\_transformer\_block* + +
+ +One big issue for TP is that the *communication resides on critical path of every input batch training execution* due to sequential data dependency we described in the following [TP data dependency analysis](#tp-data-dependency-analysis) section. Therefore, the communication overhead stands out and is difficult to hide behind computation. In Figure 4, we provide our communication overhead measurement using Megatron-LM training GPT-3 and Llama-2 model series with different model sizes and batch sizes across 1 to 4 DGX-H100 nodes (i.e., 8 to 32 H100 GPUs). The communication overhead is up to **47\%** despite using latest Nvidia hardware DGX-H100 with 400GB/s cross-node bandwidth. + +
+
+ + *Figure 4: TP communication and computation ratio per training iteration time over different models and batch sizes using 1 to 4 DGX-H100 nodes.* + +
+ +As Llama-3 405B model training takes 54 days on 16,000 H100 GPUs, the projected communication time can be up to around **25 days on 16,000 H100s**. This finding shows that, despite using latest high-bandwidth interconnects like NVLink/Infini-Band(IB), the communication overheads of TP remains a huge portion of end-to-end training time. + +### TP data dependency analysis + +In traditional TP, shown in Figure 5, a transformer layer (either Attn or MLP layer) computation can be abstracted into $X\*A\*B=Y$, where $X$ is input. For attention layer, $A$ is attention computation (e.g., multihead-attention) and $B$ is linear layer. For MLP layer, both $A$ and $B$ are linear layers. An AllReduce is conducted on $Y$ after computation. Due to **sequential data dependency on $Y$ between computation (i.e., $X\*A\*B=Y$) and communication (i.e., AllReduce($Y$)), AllReduce($Y$) completely stands out**, thus making TP not efficient in limited communication bandwidth scenarios. + +
+
+
+ + *Figure 5: TP Forward pass of single Self-Attention/MLP layer. (X is input, A is attention computation for Self-Attention layer and linear for MLP layer, B is linear for both Self-Attention and MLP layer. Y is X\*A\*B output)* + +
+
+ + +# Domino Design + +Compared to Figure 5, Domino breaks data dependency of $X\*A\*B$ via [*Row-wise Split on Inputs X*](#row-wise-split-on-inputs-x), [*Column-wise Split on Weights B*](#column-wise-split-on-weights-b), as well as a [hybrid solution combining these two](#2d-split-on-both-x-and-b). After breaking computation into pieces, Domino pipelines computation and communication working on different independent pieces, thus achieving near-complete communication hiding behind computation. Domino's unique benefits are listed as follows: + +1. Comparing with GeMM+NCCL kernel fusion techniques, Domino breaks data dependency thus has a much wider range of computation kernel sequences to overlap with NCCL call. For example, Domino can overlap AllReduce not only to a single GeMM, but also extend overlapping scope to multiple GeMMs, LayerNorm, DropOut and more. +2. Domino achieves near-complete communication hiding behind computation, thus also achieves near-optimal system throughput in certain cases. (Optimal throughput refers to end-to-end throughput that disables all communication in TP training.) +3. Domino works at kernel scheduler level, any kernel optimizations or new kernels can be seamlessly integrated into Domino framework. +4. Domino tensor partition scheme is simple and generic. It is easy for user side end-to-end correctness debugging when facing issues like overflow or weights/gradients errors. + +For the ease of illustration, we describe forward propagation only (since backward pass is just in reverse order), and we describe only splitting tensor into two chunks. + +## Row-wise split on Inputs X: + +Domino breaks Input X in row dimension (i.e. batch dimension). + +
+
+ + *Figure 6: Domino row-wise (batch-dim) split on inputs X.* + +
+ +**Data Dependency**: Split inputs' batch dimension has no data dependency for both intra-layer and inter-layer cases. Therefore, we achieve both *intra-layer* (AllReduce($Y1$) and $X2\*A\*B$) and *inter-layer* (AllReduce($Y2$) and next-layer's $X1\*A\*B$) computation-communication overlapping. With this batch split on inputs, Domino can hide up to **100\%** communication behind computation. + +## Column-wise split on Weights B: + +Domino breaks weight matrix B in column dimension. + + +
+
+ + *Figure 7: Domino column-wise (last-dim) split on weights B.* + +
+ +**Data Dependency**: Split Weights B column-wise have no data dependency in intra-layer case but have data dependency in inter-layer case. Therefore, we only achieve *intra-layer* + (AllReduce($Y1$) and $X2\*A\*B$) computation-communication overlapping. This column-split on weights scheme remains essential, since row-wise input split only would lead to narrow shape tensors that hinder kernel computational efficiency. In practice, Domino achieves 50\% to 70\% communication hiding behind computation with weights B column-wise split. + +## 2D Split on both X and B: + +For extremely large LLMs, Domino splits both inputs X and weights B in row and column dimension, separately. This method is beneficial for model training requiring both low memory footprints and minimizing communication overheads. + +
+
+ + *Figure 8: Domino 2D split on both inputs X and weights B.* + +
+ +**Data Dependency**: This 2D split policy inherits synchronization at the end of each transformer layer due to column-wise split on weights B. Therefore, the 2D approach only achieves *intra-layer* computation-communication overlapping. + +# Implementation and Optimization + +For brevity, we summarize key implementation of row-wise input split. For more implementation details, please refer to our [arxiv paper](https://arxiv.org/abs/2409.15241). + +**Forward:** Figure 9 shows how we position and trigger NCCL calls in order to overlap with computation kernel sequences in forward propagation. We split batch into two chunks as $\mu$-batch0 and $\mu$-batch1. $\mu$-batch0 attention output as attn0 and MLP output as MLP0. $\mu$-batch1's attention output as attn1 and MLP output as MLP1. AllReduce(attn0) is overlapped with self-attention computation on $\mu$-batch1. For AllReduce(attn1), we group multiple $\mu$-batches' Dropout, Residual, LayerNorm computation-communication overlapping. This small kernel grouping not only enable complete hiding of AllReduce(attn1), but also provides proper overlapping space for AllReduce(MLP0) in the backward pass shown in Figure 10. For AllReduce(MLP0), we hide it behind $\mu$-batch1's MLP computation kernel sequence of GeMM + GeLU + GeMM. For AllReduce(MLP1), we hide it behind next layer's attention computation. + +
+
+ + *Figure 9: Transformer block (i.e., 1 self-attn + 1 MLP) forward pass. Upper figure is vanila TP implementation, bottom is Domino implementation.* + +
+ +**Backward:** Figure 10 shows a simple example of batch split in to two $\mu$-batches as $\mu$-batch0 and $\mu$-batch1. Besides similar overlapping strategy in the forward pass, we extend the scope of overlap communication with weights' gradient computation inside same $\mu$-batch (e.g., AllReduce(MLP1) partially overlaps with its own $\mu$-batch1 computation as the 3rd orange block from left). Each *grad matmul* includes two separate GeMM computation for inputs gradient and weights gradient. Therefore, we can extend overlapping scope by overlapping AllReduce(MLP1) with $\mu$-batch1's weights gradient computation. + +Backward is a bit more challenging because backward computation graph is automatically generated by torch.autograd(). To precisely control NCCL call triggering time, we implement a *no\_operation* module, which obtains communication handle during forward pass and retains it for use during backward pass. Our *no\_operation* module works seamlessly with torch.autograd(), and enable us precisely control NCCL start/end time without rewriting customized backward computation graph. + +
+
+ + *Figure 10: Transformer block (i.e., 1 self-attn + 1 MLP) backward pass. Upper figure is vanila TP implementation, bottom is Domino implementation.* + +
+ +**General kernel optimizations:** We adopt general kernel-level optimization techniques. For example, we use cudaGraph to squeeze idle/bubble time between adjacent compute kernels to reduce end-to-end latency. We use CUDA multi-stream to increase parallel execution. We also leverage torch.compile() to further improve our system efficiency. + +# Getting Started: Try out DeepSpeed-Domino + +To try out DeepSpeed-Domino, please refer to [Domino tutorial](https://github.com/deepspeedai/DeepSpeedExamples/blob/master/training/DeepSpeed-Domino/README.md) in our DeepSpeedExample repo. + +## Citation + +``` +@article{wang2024-deepspeed-domino, + title={{Domino: Eliminating Communication in LLM Training via Generic Tensor Slicing and Overlapping}}, + author={Guanhua Wang and Chengming Zhang and Zheyu Shen and Ang Li and Olatunji Ruwase}, + journal={arXiv preprint arXiv:2409.15241}, + year={2024} +} +``` + +## Acknowledgements + +This work is the result of a deep collaboration between Microsoft DeepSpeed and our academia partners from University of Maryland, University of Houston. The contributors include [Guanhua Wang](https://www.microsoft.com/en-us/research/people/guanhuawang/), [Hongwei Chen](https://github.com/hwchen2017) and [Olatunji Ruwase](https://www.microsoft.com/en-us/research/people/olruwase/) from Microsoft DeepSpeed Team, [Chengming Zhang](https://chengmingzh8.github.io/) from University of Houston, [Zheyu Shen](https://www.linkedin.com/in/zheyushen/) and [Ang Li](https://www.ang-li.com/) from University of Maryland. diff --git a/blogs/deepspeed-domino/images/design-base.png b/blogs/deepspeed-domino/images/design-base.png new file mode 100644 index 0000000000000000000000000000000000000000..d347e9c2ba8b1aab56ad9a51fa7aae41f11a8301 GIT binary patch literal 16423 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

sMw@pMrTT_>{y56ZEB%`wHv-p`F)q! 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 OASEU*S|Y6X>3;y&hNoWu literal 0 HcmV?d00001 diff --git a/blogs/deepspeed-domino/images/design-column.png b/blogs/deepspeed-domino/images/design-column.png new file mode 100644 index 0000000000000000000000000000000000000000..a99ad3c6b461e1a8b996a2d940898372f9ac8db2 GIT binary patch literal 20229 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 VK{ck9@%IE^aKT77SKIdfzW}Pw1w8-& literal 0 HcmV?d00001 diff --git a/blogs/deepspeed-domino/images/design-row.png b/blogs/deepspeed-domino/images/design-row.png new file mode 100644 index 0000000000000000000000000000000000000000..551a54f4e651da3f62b8929f9c65bee1d1eb941b GIT binary patch literal 21185 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≥XG|WwHV<{tSl~}Q+G~X2; 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�o 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 gr(e{{s`#!?l;HQEl4V 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%0AmHszP|KI@5LIYVfDwGsa0a^6jM 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

Jw50 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

l<;50 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

IVdZW_LNA0R`Tk79a< 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 Qg-JiXbL0 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%0Au{pJn_?~w?`&W$B(EC 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 I+Vs}{0oquYb^rhX literal 0 HcmV?d00001 diff --git a/blogs/deepspeed-domino/images/domino-logo.png b/blogs/deepspeed-domino/images/domino-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..58be0990b944854dac045383403ca14460ab4c04 GIT binary patch literal 5528 zcma)Ac|26_+nzC+6h&p5vb87)gRy0uLR83BgbZ1~h$&+KIgfifzF|W#}C3_utQgMwTxjf zIJ9@MA;8Qlly(&OfqNS3T!s~s1m?hi)#;M{B^azMntj`L9~gTW>X~XYnN09Vp-@Un zO7M96?Ch+xwDkV{`w0ZX^71k#CudMl(B|eQKRFF^vG-P9AgTvuAHa6AO)mSXHy}eybOe`lS$K2dJK0cm{iz_rVba;5!+1WWJ%=HxT zcL1+@+Y<&m+`4zc+dXpaVKD9wSG6vg608@=u9{g&+(?^(p|buVmuid3iTqtArRL{P z(U)A4tVh#R)*g*izHaS(YNdPG|KwAy%WVJmP0IzNz#3NbvW|m|izEJz2EsTV4$mYH z()?a%Sf2DoafytQzd8oF^AY-3^12{c-+cJDh2;m&hNGNuysTjg1@gvj0ilxmrDz0; zR+7pYb4SnUd-T$CV8m_$`_j#$F#ItPU`t-x2dTQPh6r!m#X`;sOwPHRBWhD>!n9U^ zNju)*;G0jxvetBv z)A~r(u(LOGC5ZGpbg(D`771DwgBE5>UssU8|C1ROtO6+or2xzZTqR*YXL#z5x!Gf( z+)e16izh)7i%bIWE_1fdapyceBM$-RmF_Q%CD1h&+pZ%UiMc$6u-BC@S}yE8m;32l zmIOHv|d-MeG`be1%)&Yst{d-rBxuQ4BW>WebNFT1qagWwj-a66- z!Hhm9gr2{!w}p+ty?1}8d-A<#i`-ri_-BVT$1a>MeFKNL@W^puk}h%{vbg{lWZ~d1 zIjEAQutz5)Lc2jsRp>LEuTUW*TNSV>>cwC8yP2a35HqhMwel05z~N4Aq`ksrv~J*)Duk0W)S1@ifc>A)4fZ3`a`q-i(RI^8BUDfc|MOA@Zy( zN5f|bT3e6e+#)gjg00Nqgbf~82h71*!nG%s#YX8?K^1Yu0(zG#?*bj@p> zhcO9AD~6ExD07nRSTd5*As9mXaSs^1`b+%dR(0YQu7aW(8C;Fx!mIOE7WgU!^rfyz zBPX1&&EE;G{5r0?;lfArVB7U5d_?rG!3n;d=2Shp&&WtH96tLa=U0q1C0GCUvM)bE zMOtK1V!WDTO0~zL>0ZeuKvm=C!XtSjg&uk0Dwtp#0LF|eR}w!-(*!413R4yNy1yQn z4HO->q{LdX60{ORWlGr*EC%D8#J}bgz9?xf^swnw|=g0--seJ5djWPbBDz~>l#$h=;yt3q5(*LS~D7RvZ={A z8PKhl5t-B?@7oag7?}9%lO&9(i~Nd6J0)()$PC_>?rqNb7i{2e6hc^1TG|#P+KvMd z4FHllh*rOJ4y|6J-gUxRpu!%!vS8u{d7Z8bY+o6Qq zv$)Ch3B{JtlMoz!tnH51NZTvFRZyj2HrQtSO3AHR-_%BxBJ^{0PCJpuaJb2vLi){b zJdkGxj1(L6f;e&H=S>^9vu|DNV=lnws7FUo{S)F^>|K84P<}AM<=+t$p&=g-PvCs& zD-r^S_rI#3-!$fhFkhgTqD+13c?;6JeUm>iBKVG=A|jn~jNAO9%$|Rc{R&p}R!Lcb zu(B>VCL-a$du$zD^dC?@Ph~`GE-OoJZ4x}{oU_!qW`eQ6nNGVXlZP0!SrmN1Kc%u^ zk*ggjLT&m<*}$z;uWN7JZ92;aa;L@7%ZN1vCxiv4b3jn2W{uIW;P%!{s117t!Sa4m z=GsCM`EOOAiWP|LkKYsJFkr;0W$87d?2?QJff*uMBc*OF)H^=Xajye)n8CruKj!*Q zJ5+`8DZ&n7!MmWiTsxS;L)GPn4Pgcnh`W-?4YmP_3u+rqQvu{$_K(1zA74}w`w*bn z0JL*$2%pYG`lQwrfa?RR`h}v*8<8MYtJsA7Q-EizdBkC6shPx2qDu?+F1z0G7BKnZ z59fI0RaGEPG8~@8)^OZ))dCkw0D-6?SgrsLL0iG~3VEPm34pWS8c|6t-EO{9ka4hi z9V0@HWuA?;^$`#Z$?#NSL9iemD(z5f)UuYzPxvH=#i0E=J*eQpl`BwsVUlG+J?kMUbp#6uy8M5PVRc1Gd?NCO1F85MOKNO56Y5e2S1KK)1w#k=RhCCUbg8LQ`LhchCCWu>yLL?|6#C3X60KM_AQQqU%C| zRR|AkCOS>AB?I`=P2Rus!JlINrUe4$O8^w$Kc6hTMu3D#@I6T);PCUGTmqsaK_Ooe zgT49!IbYxPw~n#nh7Q)L1g7vXacnF1n^L$Ye| z7SJ1)(gdD>o}qLc!IBvcXgDntM4G_bx*;WESwE3}^H#9pDe~D9`FJIOaO_@(#sWyH zCa2~sUKJo4f^BZP6#r;rKX%I7`Ls6vIEJx z1blbjn3cyKvBWtHut?uU+6VNxcVk06+FZGngy*-Lt#L}?0DZpnpfU|W$L!Ul1eiE@ zCp6E?;y2~rejn<9#p-z=()^P;tj_0ZCbe*`DKIS9)NM=xu)2!wplZ8WJPSU};W) zBoIs)BU4bgX1dnSOjAYc(^E}gSXZ!dEw?8&C}c3UR`u+RwAbNKM=bVHx2vX#`jU|2 z{jNEVPsu<*H=y9~hcn{(3k!)()n~dzWtM>JEPxRF9__4h)_HSVO2hKQE7ye*Zg}!6C-TJR(#RVQXD+eR+<= z#sppBTdk?<(6r=M^yE3zoc-#TdoxL9kvA$cE9m^?jQyEo1 zBMIy8gg#3xWwt66KMs0t^+*-cBAvaP|%s!m7+tD+(y+I)&HG;Mx z;%8mUo*mf!>VgVn-HOCa&bn+pC=DF-398vi_`1CKWAheq<@dPNE+c3nK*67w)OI5< zu=l&F-t??bR{i@MW=@+SVP2 zxeLX2niuFZ8+!H8GIJa&6NEeS0yS;d+c!2>ns9-O6Xm>*e9Rhyn~clS2uFtJZL8++ z9^((&rh8GPpD&EXO|1PQO(}SsexS06Aon?{Y|Jjry(BxE?N$!9&;D4M(|^@fLb3Ew zA*b9v{jOkmp|yLpv>|^{2}2?X=%etfS3RUw^KBBTA5uR`}pn zTU^WKH!YQ~3O8LS#y=9#-CGUA9GQ4v7=>EV^iZF?=^lKtlco-54ky=zPdsXgka#Oo zs2SeP$5)bFk!O0F;n;UkP5kZW+vNBgcFXnNwyCRP$1$)cF%OUJJXy_3D(PxZ8l#0< zHlDh-*kdsK_mH)fs-wKe^E~XW4MLa-Ju{lNenbqRKqxD97sL!6;a);TXI?~j&70?J z<)bsB-k9Pl7M%}G_I>vM#IA+%Z7X~@0z2CZNs-m8e^QfU;PJoy`c4Tw4rM5;Qf_O%QX$rZIOSU5fPCV7NHxofpZKaV+51 z_u0*jrK`dpC0VvHLfW24s+L4$3pMdp`|RB1f#)oYFR#-*Ud!pEP#LiSMnReGL)Gkc zV?W1zO>D9q($xlq6UrI}`DCT&mVPnpO4CME`}~ENxnd4c-rI8nYgUQ_i`CJZmZnH6 zB-TL-fY2TBDYwa1od9<))bxzG93& z>kNo5QN6ws&n<}RxVQ7F?k>8r(AG&cWQLKd5(Dod9IbYrRFKR3@Ci8zj@}`pk6$BcgRJ`*uJ?*`S+C^b9?M0Dmqv_ zbN(2Es$NlRFy}ekZS?JBO`Vp0rdXr;Rk#5jel|Vi0i?106Oh5}iK``RH|V`L)@lM^j5gz4>x$3@@b6 zWb-9xkpuk~Q`JSXV`sk=bU^b@xfZEKw`rPBfmC8|3WQ~{(31~1V-*JUE*fpN8XU`y z-b{@y>1a z^AcGGytsYERbzs(%3AU<^B8Q(-Ms5Z2yJ$`wTF4@cFX#s)vJkP*r+s<)bsR5lIf!p z7Z3xtJdlRjIAyOrF%8OMuL*mxFTXftoUw9PVqQjPwkf>Mx9Onyy-j;4$q&^Dxm+l& z^20#lJI48YseUvo)BbDO0N;Q0uegVr)Uv{_*VU;U>88Ic{#KAlu+G+N2h8(|ChC3W zzrQ{#NN78q-g7tSTMs(LYAB($f6Pxj+alZA*!O!q{k#K|lVlbT_agi)?!xWsgE#mr z%T<`q8?&aavQf)lUtbHoZNFlurk1a$=$?4D?^1TX!B!Ztiz-VWV6PxsuU=_Pzouev zZn3_Y&VwsnYb6m_8SboTq2<)|Ml;7ne~Igx0?Di&8wypV3tbg)+LxwxQ&Z7o!r0h9 zpK3lFj45`-T_|2o?h-vqi`2mi`+1g)PN03xu9i#G7DZx?)}=e5voW|nr;UKb(eRd6 zy-!1SX^(P}vOATJRli3YJ};}|J_%~rqM;lus^*(t>)Y_Bue;TMLRn%d@5I86oE-1+ ziJ2_Zq76y#&x{a7UXD_g_&tR@W2nN?m<-pubt)(JMf=QeM04|LGS z)B8qZJkO9%P7uwVw6(MSd|qZ`((L(|k?mMBL4o3BOJm#?_FN@?-Krba38Uz;-g%a4 z{GNexe?t!o>aLr}8}YmGX2YAaTYXwaA}+M`heNH^gKySJW7&>7iykHayx5_hU^6kR zEIF1Z``)8_qS3g5^mNF^1)SitbL2uB-G-rQ`q`G zZ!e8C(!0KD#Q7LJ&f{3YwMLXsQkEkVoE}{Z98mP1T+WbG4#@tJ;3Vb4y6}Vz!r^f;OKylQNlLVFYk$(sNbK6`(Spozqi^RG#LIdu3s3~d50M~DB zZaOU3Gcki~gw)Xb+JUl#BR#rknLgM1$ zCMG5n6&1w98+uPfoo}Pn)gS51?i;IiV(a~L9UFGHF zBqSs*E-sCYjX60vR8&;{{{9dML|9n()2B}~G&DRsJZx-ijEszYe0%}|0`&Csw{PFZ z!ongTAP5c)#>2y7XJ=<%U=R`#;^yYY#Kg?c&#$em#lXOL_3G8q(h@m2d0}DU`T66%-cuuZ|U6LJi;`{kgcfT8nQ4eCPzGNh;D$HoDCT%!c5Q9 zQuxbKzec1A?cb!GM{JZ7?#Sw(SlmxMZ|tuSdg1+MW<=X=Y~m__eG3F?Df9y{O96s| zK!PAB3djkByaieZ<)eWHP}HzM8K@aVAaM+FFz5}=oBwY$eA6&eJ~g$ui;IqN)hP8M z7DMie_QfPlVB^wt_sb{z+f zA2WN`R$W+5f+w1%(zsL?#`Twvo}(7!Ev1)I>%rge?C=y534a>fVDCUP+^!AeO`R1@ zFKN4iICj;|FT3UVjSTPik3|(h`bwAzQFA@(j@xqki7)aqvDe~MdFRjDiipCOzj0SO z2wtBFa%v-tj9__RmcC@%Id;D2aF8`mI@&9se63{FF}1(myyD2Cgn^s)&JVpKfhtWe zZM`my`!g%K4KeAbda;d63jOr|M6V;FLXEXZNfm;eqaCmVwlg zhZLGZ(F<*kh?0Wx>0Rhc-9o7D_kOvuMyNnx(a>#u_cFaFgcbUA*ws?SLt<8LQo11! z7aY&cO+39tQOhK=QCATMYQ9~GcT_l826kpmp9;-##HiYT6y^-w)$7!9{UI=KV?-5_ zy`+e3!&Ib>5Y$~1-TqdUk)PL^q+(dS-bX1i>!AI*CQgsHe!Scp znkhCHv9m?{4wXef`hCSh|CCp=XOl z>>M6?bo2f_Y;_f#0;y-GT2eTX4b;i6<*`6;)^{O7$|>QAFPzMY70R5wOJhunXv;n1 zJR4yLC)s0IFW^%Z;a{DVJo?wLw0zcrjmJG_iwaa3^XV4_T|EkVxmQbt7~FdihUfB< zc66pLgQ+hV^y5E_-iwMg7l*fB<+@%^6Xo$WswuP?*zG)OIHH9JgxQ_&Z_d2vsby}Q zoq63$5u&50ltQ0UA{7W-pzQgsCdHT@O`BvX%2^*-Go}S`o%$Rq zQlk@mca@*<6ZAi>lwF|h_=3m9n820~qaDNg+LZR{6J)5=k#uIr$mM#d({8Sb=VWQ7 z-gT{mj$zLX(_2RJ74ghO0D+G;)gkpvUXx=4r)%cdaIIwJzQ*St{l++1Cl>FutBBD& z17EAcaDzTHs8;ysU#4-U-B~qe7l44jzg|tV6*?;jptT{_{zz3o%Z8DM%G1zWiH;Yr z<7k%-imY;UdR9`F58;nAz()VT|H@3)i37e)B|N@)+y_6(q%W0+)9J4vbJy2#NGo;| zW)WBOG*6YSN+x7nU82OuPO_($yp=PrmL=HTSC^%_8C)BDtowZh2jiYJjczRwMh!&< zYlU4e#};?<*Cx5zv*|cqTR(ZYzP<0nrkztXyfmwB7@IL&{v1yCRd?olRctz>MuD2m zL_S*698CEQn@Nb3ZhQF9Cw=!!VD8O#ysN_&SA{V`(&1_2YtLn8bB*Ur={<)dl6$K5 zZE~1-pA^CUY5OQDA4>(^j@EDxc%~+F#(BWWXGUkOIO^H5i7ag*S;#34N>1<Z#n?vH5bA3M?# zrp_icENg%4vt3u=hUixAM(0@nyyodyz$ z8AUSLMP*MI2L&KoBVE_dx+6cAC)KUqfh>Jhns$bX5(aq`=Q}>BKj^(5-LSC2?n9S3 zhR<2Q-iJf(eC^KHGGV(xI7&}N^q4z2ZYS;Ph!C4}E7H7f} zTZb7ng%(yuhEN0LieeM=0f@AJ$>qa~JM})yZ~VKQbYc6I!j3HKW~$HZ8aib)S?n&9I+m+$ zZRe$=4{2Ptzpr%~WN3+%|5rT6Clpb!?Mqy#Ry|N{&SO~Dc&8M5TRFl$)sDTPT+r^| zZzs&Fh=NGcEm>v!xZ@jCvw39vKK*4x@2b&{g=D9*eSFfdPEw`q z;3t0J`*T1AO)N37EecOeIIBbIrW#hdq|#2I5J}%j6?NSQWj9CXUUGOPMVT?&UNdZ} zd|37)gebUT-f2oAARlvP+akj}YTTA&Jfd(5Crp<{TE__YFUfweo#Q(7H!=ual?gy~ zAN9Q*wqX>4cQJhpw#K8Q@H5fJD&*0P7|Skbx7yg#q$S9MRS3=YXYz;f{+Y1Om5HqK zu#d!4%~8(;#DFKcG6bll4~ha{ZJ($(-J8s$;^M^m#dzhwg!1pX^4r@1sgfWs8S-iPYmcg&2DPUiT@A6}}hl+mPbvuW+$+dU5mo_W$F2EJy? zJD|~Wyj{$!ViLWn9|Wn<=2(r~^Pw^hV5(tA;Bx=4MQjuJWhtCI8~ye5E{qM&;`x`q|;TDf;>=&UE_N$J~!To{j&XmchEpBTJN^uPSE%nxqd8aKP;uL6n>{K($_iyz}+8r)!S=I z+l;*%^Zcq#@+@Usgp9{Df|2^H)LlsvK{J+=Pt-)BFRhR$mHm#)DhP9LuDUu3^-G+- zPow~{ce&@hN9LVVjw9DFe&Ekero(INzqRqYbJDgDIVu&t(%G$Wpujf z5wVW+7wCZ;ET_OMdh?zNlefMh)&x$3heX5mu*kybj)URQ4PSi=D_oCXdHHR(v#KD5vr-8mP|`a{4FMYciWcYGLbEc}lqO6Vohc;p(E z8Z){UC*h`?3~5;98`Yl}`l5=H*CDzPWF!ObOP`lsevsN8#d?dP0v91pt{0T(Eh&tDZbsCWIrZui=yS;5rr!-d!3j?$sPE>izX{MJ}q|>z1 z**P?M7YnY+kJT4CZulI$qr6M>D^cRJxogSiHo>MOw=V50t)^=TNI<&U;#`SZ? zKbUn=&!);e`Lep2sZ~d;6LuSMtE3@i%z)d_-ZJ8a`e(<=X)g0=#g$#gP7>szF_62c z3>&chZG+t?(IU@6zD{q{Prd62i!N8T1|$~%bS?|N)6NVJQjGadKcjN5-9IXGbs4VD zQgWhNH3plfpLm=rSoT3(jtITwoQNvnS`l|fep$`&<8wgVsep73S7(sI(ACncMc&Eu z8oAM)Mq|eZuS095WBSgV5$hp82wiCed!%RV>^?a4{!Lda6j)bal3l9}ZMGQ1PHT8i zU1M9m*YrC)^g22^>Y8@a#k;;*{##biBI@qWVl2P+qw7$%`Ql^tt(YBLNObnL>r}yJ zwVHlhGKf=XnZVhxOoSl0ggz;}RQ2Ktx7E11<1*sIdpZ{MJ}< z6psI@yY?E&`&|;OVa+VC;HLK+EOaUIxYftG@2oP&tI*WTcWO6%kD`8s$}s{aC`S93 z#aE1{FN279xPRgUGnzTlY}pJFzFj4Xp(vVDgXNFD?dUJjJMv$bMN9yaeXP7jH@*j$yd0Z`wM;WEMJ|f za77{{rno3+h{f9|Y_}{S-qyNXa`;%f$(nJ1vF7yt32Q5@n=TR965vwU9j7(H2!uY( zIBsO^^q$P)3QfC6z!TD7A>tLijU|H7pv^Am>Y4=Ln7s`}j$~NAP%4l3os%=4~Eo_3-$UWdR4$`)=WneSMXq739{0 z9ll!0v(=D&K1@?N`z&&f!d{fTrt6zNN+c83M&J&5(Y<9Z`c)`w{to0wbvnu+RXCiB zzkmVOtSS^#UDYF+MnOIn9PltL^zEy6hb^PzRB3nEH^vC@KKR^rbZe=0W=UUJaeK@H z8%Y<==2_w2*uY`pO@buYf=({ywvS0ULlpRm%?TZbH_>FD`#*S**BQD)(4JruV{JNQ zxL8sz=kkLEHTL&mmU0OA)E{uG$aB=V> zstg#ZK6OVH*L40+c!WZ8+)8vU1+nuNQ1bT!0Q2~5e z2HMrUgGO*6c)q`ty%XMeSS^MK>&lCKP&>f)v7sN>8mxk$!}sK#ZHzdq`;_HgR(gNA z++NX{`DXWp`Di4*P89_OR2As~@9HeF8d>x`w-au{5q-(&E9A>)$$Eg<)qvQ!cDk3iGWGp6B;F*5RC3``umo#^6JoZbwK%i$*;gD~3qR&P+ z35|rKP-VR_Yn;kIJnGvo=< zGRkH`rI-0!MD-xSaejIBh8ooJY^i8vYw;Niw+`6)CrZ-hkUR!y3?fpNK5>E9oF5Me|`AxiW^Th#%3I`kM#Qx@^tWE_s9Yg3y>(b0CAUQ_j$r3A4J^ZZcgIVNM>)sDK zfV?c+pd@L+Q?H^S@F-HEB%ChrUDTKRebTGk5abU ztn7n{v#KcM*j)6L=?X{7&<>Yy1ufoie_8ux%b!@^xjNL#Af)({#hd327d<;oIx zDl|-U;)V-q`B7d88NV|$GFdg~`g|J+K`%F-mqM0%6B8Iwq0eeRLhoxw=f9T> zU3l;@y~7R@1gd&FQVH*|>~O9k(7M6PMXqbShtZ;19u`;BFr{Czfad9S4ZsQ_(z!|p z`B&lz!V+~47ga|dfeY2Rl=c!dzdr>FU+)IE6|H^dX?ST$@txTk`$kgr5^bHOBnDZ2 zR714-$(Pe@9pMBjr0U+&FGSmat0V+D@RWX0urju8Y!Ga>Az+Qo{!q8MB=0kim*Ve7 ziPRLIL`Jzf$u05PmCiTZAKP;3$3hpBB<6cxw0~;o6Mcq%`1Ff|$uScXp9K*%ZB;d*o4?SAnItX5#kd%C|9 zz&?7CvJQgG(dyo6-+lai>_!-9Myic7$ff{N6WmE$an58Zymh#(g|O>BE9HCb?W&1v zWv_!%;o~>py|$V1mY4n!P?HU7RX954`e%-S{g{v3#CXU2rpJVOr*-B9r4d;c(NpkFC!VW|t%VG8Y}Ga!U21uj2Q*ZuPCm8&+8l)!-O;<5 zx>|Op#}l(5c0dTTF(K+U)XwhQsJSr*`u)k%#JaXBE$~f;J}BK6Lw(5YdBW@XT%t3< zk6aD`o!dc%s@AhR_Z#jfNN4dd4-E$Psrp0k-#`}qAj`>pW=(n3YIWX{HdBhN{hjHF zSC#fshiJSr?{n@|Lr(49{c3!O5GY48}Xbnvu*%4uo_0fktsnm38 zWFE9Aq;fBxuYLw=V-fG48b70=4-c~W9#uORb7*L{xS`SJ2QfWx2)=TO@@wkbT5`Rq zw9!c!bhvx0(H|k#h7~iJ+w=t=ssMt9U_d#@U%TfnQ!~A+v@uVizJ}qsYGNfM3-nMy z6>j~!Pi<=v8fgYer9f7t+RGty`?A^0Y6>YD>M;|iTcvomydj<3xHv{Q>X$}|Qqo^3 zsyYOuW%R=2_KHW=P>YX+w?}eMsbGdPj>&BFk~j*<=&C`N1Uml*WihJM;OlHU`%oFzBsrR z^;bWr@a2eZu+?Au1{+YN zGri?YBQ(Tl^wTPzx?eaZ#hucCU$Xwn)iE_h;7bRr$XgYWAkxP#GwNTh+qd3Zz28n% zl>_}k{_&IFzcnk*eGdr4*WYG631YJP%{Lja>3`aHF2i;kJ>}+H+%I6zGBLN42w9Dv zMkNe%;&b{rPV6J_App3xy{;1|WEFai=9ULwg)6FShI)J)XIQ_TCFeIG*CLqfZhyxy zc=4yzFLBgI|C#pxib}p&kTx|$J=EVw^XXCY=_&K+UH@?x$1g-&R7RAIledcBoVGm~ zNDmgehkC___Fo(0!M)B`v9S|;uFj8tGBV0}RT$==o{Lg&htP*8%*)WNQ)f)D<2c~Q zHNdApji{n>3Q$KFcIZzPnj9nmv3>;A-Q~s=z2_L5nBP|Aq>r_F-wYcW1482CB4dR9 z@!3CF_uLxCD8u&>z@X|^ia@{X@uidSb#=P8%USBK*V4=&Y-JKfZ(gYJMvL^AK^8+bzPd=GUNkp^3ffY`2&^4w9`(} zqM)s*A{Bbp`^)nNl3=pdx%Y+VFBcK;-h4B+ZZR9k!9D}Q{{;P8V;68~y-gwM# z*5q^bp(*BY6&sG>1qB$k%-=^2_#rZ}?@C{ZG|01k^ zwVbKk2Vf&?;hTjb9pvqow~pe;2{KL|B;5}uk5~3(67n&WR0Nmg;j)T_gPKejwr%;zM6bh#^+sw)DZzPCZ%u~GmHi>3P7%zRyD&wyd0 zKo#E5gvG#79D^bMoe2a#{e#J~^zF<9M?LMo^36{}3Rad*b_+h-jOdhF}(~^fMFtO-gJ=IL?THlX{>s0HlbR`zp5(INhwJJ8hVcM~+#B9M6}w637rVKv zpS#+b^ZhYlK6gG^tu#-}0MrI>rXf(ct|eS9BY<#iHQVMvt`Cl_pcrRIy=0_ecDKYh zsR=T0F_P{#ws!klJSpBfeO$gYmLRzGlTCmL?eQ%UFHs#6R-r>Xcm!qui+=`eulhs3 z;Tzu}&2iG-H33Miie^ugI@V=ZwBJO-{y-NXm6sVeE-3#tz%(eh=~4?InXgIZGWYwH#=|^y&wo^-FIJo&=h9s+x610@FYF*YT89 z_*nT#04tsZS!n*7LjF6j|4q^ZGBLA?NWgOgA7-s8pTXo$|=t)oUDVtis?pK&UQU)%(cd*pwU?101pFlOp` z@2H>PUl9nn;-7lX0X<9V{=N%{3?2SPZ^gEwW;=ipfx-!JBMmjdDZxZ^6JO=2(b#WL z0HVtT`Bp$$_n#8|f684Tv_Nv3|L5fX6?O+3p#QCcbMP*D%TM=M^MX@y|Um6~tZj7eC*i|0Zj|7h)964{!4GK09Q<2!GEujXS*=bd&wBm(Z8? zeQ)ZC=M$!$Q=2b@jcNboXf&H0(;v`b(I?#1sp~D@+;I{bgnuh8q3XwR4mY!Ka-!O5wEPQ5p$)W1 zaj<6{#QlKKq0kDu;!$ZzqVrl^L&4t`v}JE2OJPDU^z3<%;6N!znJ=hRKIRpF%B{#zaKH@)!4nWWy4%KJ{g)+qA z;i9pSns+Nzm&>nERbNZte^~p}3;ILCwU0E{9Vj#`UX!ZVBx(}s$qQEvndozZt)6zi zQiKzDF8$5!{1fwBgmbXM^cRPV%GSEo7S^f99MQT&n(_*od9|*Zf6dI_6RHxn@q6|D}5gD+l{Zq+X$P8lygDLZi zMy{0b&XbXa+GLDB1yFJ%8RJEX-$m{_Hq#xtp(;JjNLGcJZ-oJOg=F}K82%=me!_?R zcOFq~!Y$6(R=O@Dl05Xw z+@gl)#all-MvR#BB{5|;74xFGv(+*?SMN{iAj=;}UH(<60j#eZxCHn(B&O3(Jr>ed zUn+rB$%d{i1V2qmNw-@1)FNbm(|l|rq$a7#)pSVd3;Y7Y$cxjD$3k*o>u_xw#I=nu z{)pE!#4WtBeZ1?DJiY$A^#6S1_F@CEU!owp(2OfDfbtgKOzVL|!(940n` zzVrRL)(odiW_@ow)-N}y{(wfi#731*jnn0#!-LgadSh_bnmNLz?X=#*mL>@+YKIB` z?tp~dE2dDzjZo$=IXTq|B^h2^o<65IVx(E!K`r@ll5}%oVuB`8Yj7KhBhB}^AJGF%7#OJrz@~W(P(PswY}=eY{kFL zcsSC!-7>Z&cNxP3tp^(fE6PTHaYK$Ot|Te{)>@37@RZ|w2DF<4o?((j5bO9*w~u9P z%XqW0L7^4-ik7p4T@Ranh}A9lHf2Cuj>)S66GB;IUtA}owT|wMvFE``7Fm?RJbNJh z3uzl2L?30mPOze2?nAH~`^?A$NVw0eyEZia63TZu3A`0g_Q26=QE~UvyE*J7>{1%K?%S1W=TkBKEXm z_Empw$8&exl%Bwn(t-G_6$@EB_-Y^m>!A5YmG5#9ZREiBe;Jz&82hsCEa%r?r9_kr zd1yEuVfv?{#3WdnH_XojpXJ_FLoJ)4Bp5B^z0JME@aEODTe)3F@w?`VLUzc!U!4TO zCod6cRMF-8A~7BxwwBEWjiuzO{$iJ>1{!@$<(nd^ZP%enx@T_~yxGV0(V;ITp|yeT zZ*9f44G2a*2&zcb6@g2g%n&b1f)D+E?%6C(+=t7*vmOWc^wtQ8{oGPuU|#djW-7=8FQyTps~+9G&3VuLnjK)V!+pkntQ1aYZU3zTANWEpEi8n#0=1ztQ5LgLMK<5PY=k7}BnI zozu5GE>|_CZFfn$s8JdPE>OdK)lKdA;!ir&LzV-s(ilxsd<*W_Rys4V9ZorHims9a z`%nxx6DS;7MG%J!U!C7hSuP>^j!l{lTOmrqTlQL)n)Uaz?0wWY=xoTwB8R{Z-GRxW_?xy9ty}^d9k4p3IF$JAI)@q1OTX(QL z{LPHr24Kitj%i$U)jA8$w1DV1>kid-U&N)C?T8sx=L`5w(;=3*NI547IU6YN+drEN zE`8d>^urm5^`2~|$U6LBA&5$5G+0)i^%FM52tWcT@UN)wt*vQ!`uzCaTrngqeD+|D*Z>c7gtPF{Ab`doh2>_kSAw zkDvYrDnQ!)Pa^z}3sB+G4izU)o(NN_It3tf=d9~QN+*z9>x+SZH+Q68I|)=Nsmj(3 zaS9A7pLEvc&QE;u9$3NtE0057ItWARezuh6D(Q+xe9 zcebFy75ysKbCMGo-oR3Jp`$shoMZk1RRL;HQdwQ5dlwQ4R572%1A{kAUj=&^Y zocAAbJ#-hI@K7ejab9WJp&KReDZ@~T120cJeKqsRpmp8wO88%kECclH&4WlMYjZM& z^Ce3L6<-sD80CNX=iP#()LpRI!aJydZCU$m^NmO>J2}|>kvLwmKlLXEy97lII!8akn^PxNcHCP+_U0jo{B zg}~pvD@(sAYhW=l+FQV?sfP$*-BIc(A5E-C%l5}@oK#5?*(hOoL@ccqGi%+f8n&6Ccn_cq*%T`tnh5Ye9hthNptGhy^2=l( z*8RQseDLu>2c$B$==O2VEqH;Q&fg{B>Tn6s4!g(3_PrAeu=YDZCL{Y=OA#WxSjm${ zxBqN%^#o-Pe1u6+N-##LGca5!GY^x0zl+M##Cqlvpz8Agv={TKmSk+Jt!?9uts1i| zLS01OTQVS>UT#1F3~FGt(g-_bfn_$h@1%8JN3PGPO;btp(0hmMbg@p(ZlD1N#oTlS z)fD#{ab3GohBl9pVk;H`g-jFZL>2iJVIYv+H?(LqJr+^OV=%IA186h@mbv-XCKnwgFcfJvI=;09hF4K%-UP z)r5l&!Yd}9>3@(hH56EL#j`Tousf&#_pf|;)?a*jrM0}hWgE4GUGVDT9|7}N2SLa7YExySuo#k7g$>(K| z8e@}(N0GZKwV1BL#lzCahx^E-o(FUX>fQU$e>2fiTuO&^UZfdvJ`53 zQ`VtR(os6cWNRNnb&0*3&eRb4eI@j;yJ@ygSc#prUx|=0)Uk54z;$5{uJD|g?UniT; zB?vspRe?nXJHwie*BpJ8I5_->|1BG0G@i_INX8N2g%gHBjEo@=(R-dMaww*zNXtkl zrdf@89GtbKC6xi|rk5cbqtAq;3`At^Z|%Lm34nY^v?tri3iQW-9A^VZJaM7xj%N7K zZcJ^&l061AsozNXlKfB*`;DLrb6`nM>RsU0GXyFRu{ii}VX|Kd_3j$k*9me4BqdLy zALJm**Vhv`SEYvVVq@|s;mLT<-}j_4hr~8RaBP+*pPo_noEuYmY>|bKw2c_TQK6=`9OU)D~ciYj0s0u=jqDp@ly4d!06K zg$8ik@Sxp5Q6UN8^kI3&BD}U?Ac*;^P0YggMNMuvcZ*pat!^NM6Q~?!35=abJhyMv zP;Wd#{nd5IdpF3Mhyk}wKZ)}Dn({JKxamD)%$OG$8!jahA1{+nZvyO-er3I|u&{h%fV$ko_wZLMlteR8axq)8-xg9* zw%}B7x9)ywaLK~>bsrXTg#Cq8c|4(#UmQ#VNEXh?wM36Mx*z6UpUql|zxg?Mh>3J* zG+R*8+q--~3_Ti^F>%=&a_9{O*fEghycsa2zU5(-hy6qEy|i;e9?xv%0N)RyBk|iZ z6Ib-#WuWJyxru}EwhoA;a=&=8`e7h%31`4uBHT(22@eBTZ^1#h`8f~Hcz^U* z**;p1wKH;3*|FTdl79DKnQ)`&bJyC73-Gafq`!&Fob}%Lqob1arYjx}}9xjyqs z1-HW2rc*y~{2-#j*4G6-nKT&ilp&HQgHV#llT8D9U+$4&%3<0WYh>GFHXge7H3J%1 z&Wd#q*#s~7Uhl^|-;{Qp8gpzs^Tfeal)N|7ItPmA(CG87mHqHQZ#rm6fsfJri-0_+ zL9<$g{*Oo{1vBK7XUu0!n&?tt&vuxc0Z-mR^d}e@hhndHvb}ZvDYmuER6QE>Y>$bu zH-6F`9qOJ-kpEO0^YD1Rb+t*?ZD_6h`Ws$nG?FbhpeoRss(PHp%9cke?cr0D#R7}0 z_`nB@%?<*u1WU)5mBDS^v#I&hd{ygixnL#-7Td$uQ$GL^C@TCE?yr3f^yFT@FO&~I zJJ-ES>mycBso~!q8Lbr>${U6mgt%lWW_L{H)<8PA(7au`(b*yM+-W+cXMQE%TW{kD zY+F-Nrns$~kuH}39jTsm5ajod@oDJUdph&yc3hCM2rTJeXH)BOG95g|Dquw-@k(K+ zQ$$XPrhB`|mzH^sVM3pt_QGv;N%L3Q-Vy9>V_u0_ICY7GKOs8|MgzUTG_Q-KFS(o_ zkXhz}Jwu)|@HSKKcbsjL>_ZnQu&Xr)v3AL-v*Ti>CMI$oYg-EKoy94!HX5 zobMoq7@c(22S0FH>8nL;bJq!x+(VCCGu!N4ZlL-^{S=-ugHrFRvJ}JfzXQx}NI=Ze?1M)Ylv{QzbhV;xB~yvudS&fs{4PXv4)Ds{fY z7}Y6;klG1LC~Qnxd##V1>=u*c=e*6A*&H?K!$r0Vt(UhH)GK+h-i^hQjT|C38rb3$ z#vZ%#3~as<96I%sg**h5m?Wm(d)-dkmvamy*%oN*s9r%k=oaFRuqs&H#MBA-mdmWJ zZ1V&2_)GoMvVfvT!=JZ>A1Q+?M9xwOe%jlC#Js{DU#8Xy&Fnb=MOm=H%7e)!N5KxA6%NTych4sttA+h(=p3TF9A-- zBSmqBPGmWsklxS!l%v~ZdhHmgJy1SD&CU4&c2+iX})QL1?sHLhtme#J`DRpKnj zH`@tM-+LGJY_f55EMWxnYiPuV3dB$zER1b7(7ZmQKyNO%EM{*rnu5q+&8v-#?Te01f+;`}95b$J3NDL+D6x19(J@TC z#V>wAyAoEu_f0O5n|q*vYw>|C{tCB~Wd$tG_uB!=t_rhN^V)+1tkbm z^1Am3?lr5vMonyc+#gD)#r7fQf~L_I1fd(xAyC!4K}jEjZcIudoW*rz+S0IyS6Cy3PEEsz0`#Q?1tOd*QxiJovnmdMCU=6iF#3G}Q zx27V+hMihM`E?~<%PC_yzJ zQ|?vmVHi*XnMP>bvwOzE3fe87MjJi1rPqx~vHP&!qCn^%AH8}yv6Abi^0ED{z;)r} z6{zV^b%1JGiCKh!7PwqyQ~Z*4e>+%^x#fOl)`NloJxsbfU0e3{QVVL39_6p zvSIxF#aq?;GOMa_zSh^_YsR5m%YmwE0reS~u)7fux+UWF#Q>zkwy3a0z+7cN+CnS2 zm$ZOy{3Kd1(-YkVya|7T}!>4BaOkw{>I&pxr>qTX}9ach&y)cshQ!piO0a? z?UDGE%fPYq-R@3-F}=3Nc$uq!$UQFl^tZ~ADQTBPpr>zT>d~ooMW?(@hb{&A4KWI*zAlq@BvDc7LlZ zab1sAO%Y88?4!7I09|k>8+(knAhar!>!N}y1P>R9;iMy4f4J*7HejulJ?eKXD{wRT zd4Ns4OBGS>8V|NOkylz0Pk=7W!2(MG_l^XweN0rwvcc!(e#-i4fy}od5A>A7R2&LaMnSz^TXn23PK!mesRso<0&scvB3ZD* z%aHVbn*#dvr~>-SoHyL?Q;ve>-msrD!s{2BsvIENuY8!;rlW`mUz1cGEUh5{(A&UG zjVb=Pmi;4R_R*&bY-NHn?V#k^yBPfuT}Fm6DA; zi^w)S`UioE?a7CD!je~=1u`0+(OItr*b9leL(lbB%}U$laai{c+$W@#k69=*G)?`k zvU>Ach|A+3Zj*_o^MK0^M}~;@HTn)WxzZpIyUUXBwxZb8+^XYSaIL)&8r%eu1Q|nF za34p^ZL81463(3o_JcG%US75BGQc4*l8d~4CARC%qJWF1HP)-|sfVnXKZ}id-9;3& z|HAu7uxqTk-d9AvgaK=QVNS$HyZ$7TC-pX@qm|DxV0UdlJdsyq3o=v#tCSVsT<~p1 zurIV(X}S#x0KXf;G_A(Apvik)Exi)mw#Dmxisq3Mbq2ia&5t;}5)zxG3my%OI zqM%>vyYs<|n^m4r%f|g&)2}%XSGpBV*iiviRwj@>6JI5}=RKl@hfoW`sY z8hp~%0&})1qIwa{KDvj&mQ}+;vC=aom*wW+>XLyK-O`8ka%+rCrnx5bQEs*_bgTC}suvNm{z z)s2v!buFO#&_(an6ih7SegW8!I8|+b+kbX2wwEi>zBxCTS1iwP7mn(o;{h!8JDft?x2GP0#;5A%jB0hUfDI zImaCdgf5tDZrcEQS)j}i2O#1qYZVF88~H*_+4Yn(6EAPk-tr&flbs(V=|Mn-!zC4e}MR)}EtgDbNfXA0TV^R%SxR zJz0eT#99%Eb-%NOuSaGntcr}P#oSPA%F+fHYy(NN;-UgF!#`#O6HKGkS3)icm$lE& zrdPE{AjnpMiT?eD!X9?40vYs;`WK8t#1u}S@27Nzx(9Q*=L=IOFZ7-|{j79nvn?Ovl=R=C}PA&;$y$_^;EFNy?2HY8ke3YCi}?%v;rp!)_Q zy||?x#UG7$vzrX+*r7kOA8B5vR(-mw-oq1f;9eUH;aA;!VawtgUPA zyK5&n#)AUa%GVBCeIS)2y^^FS%<7S1_biiWjnVYstE83{t9N~{ zQzC_UyNp>?!Nhqm8JaVzzLlP4;J5Wm+j^F`ehji0&esVee2Hy_AHUYoNS815G^D8D zJ_-7V+U53bTWksFD;YXEf@}4FbO{9W&TEq7}B*K|+%Kb+Dn`Iz@4)xdI zsbHnm&)96SSc9@ji#aaKZoQA-5d!^Fx8d)Pggw1Bx1Nt0UltN7=F&8C4W?WKO;veT z7UX~z;Vk*lBNg9UYEx?Y(lpi28vl>2N^1G+4J`390=jL?_AH-&=k3R(D?b;VlK7w- z8>L(QWjfp6&yV-jb)T25F`LBmtK_=%?w2piyG|Vs{;JQGvGKva`s=$Vn9s4`Pjl{x z%36_GIX6PQKfSqma^tLHy>fO_Hzc~ATfbA)+)?*ZgJ96VTFuhF_uqf_3kg4-X`Z() zcel6cqvn(=Vjq*5Kc@cw>6cbeWO)qaxH!9dv%R)PRzS--9!b~kX3Sc7VS!k!A8;i} zlJ~&`5t%68{5{Kjb<=~a^gf(-ojjxYv)s>D@jNSK-l={#dZj4zx43%Litn1$3981e zLK7GHe0CQJUm+I#TI0jwMYX$~O&=Xjxgzwj=$C4_P0lIpmb1G*Ud=b&bw8{|5Lj;c zW?h^Xv;Ew=+Os#O=vo-+uNV7&dhNrNFVfF*@ttB3TR3el=XOPrJHL-U0}e4P4PIN{6#U$9pe|v}lH6)f(?{ATGwP0r_v@vlJ?i{d zs-OO@xBUL~Lp$Py>LnpomNBfi+_2~N_K>i+-YB20o4Q%T%~F9fUPtHe{AN`4RsY(C zXt{qSf+=rZw(_u5f3E7fYoA(Ca6U9^^3{dY9%PR67-JBB_9G7!@9nhs_lBVu9n{U^f)W7npYk#zGQ~c%LbiVgzKBhe`ynAfx rz>J~)I3)g061c7QwEh3j|Jkb{A7t=!^>bP0l+XkKUcw6Z literal 0 HcmV?d00001 diff --git a/blogs/deepspeed-domino/images/implement-bwd.png b/blogs/deepspeed-domino/images/implement-bwd.png new file mode 100644 index 0000000000000000000000000000000000000000..4b115222f387199cc02aa74a6d0833c5e7806645 GIT binary patch literal 71201 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 literal 0 HcmV?d00001 diff --git a/blogs/deepspeed-domino/images/tp-ar.png b/blogs/deepspeed-domino/images/tp-ar.png new file mode 100644 index 0000000000000000000000000000000000000000..6dd01ccceed8cbd8d3a137ebcb7e227345b43577 GIT binary patch literal 6500 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 literal 0 HcmV?d00001 diff --git a/blogs/deepspeed-domino/images/tp-comm-overhead.png b/blogs/deepspeed-domino/images/tp-comm-overhead.png new file mode 100644 index 0000000000000000000000000000000000000000..947473ff5261c966414ea34d5f75ff16fb3d1dc9 GIT binary patch literal 37583 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 literal 0 HcmV?d00001 diff --git a/blogs/deepspeed-fastgen/2024-01-19/README.md b/blogs/deepspeed-fastgen/2024-01-19/README.md new file mode 100644 index 000000000000..06650d8473a1 --- /dev/null +++ b/blogs/deepspeed-fastgen/2024-01-19/README.md @@ -0,0 +1,187 @@ +

+ +
+ + +
+ +# Table of Contents +1. [Introduction](#introduction) +2. [New Model Families](#new-model-families) +3. [Performance Optimizations](#performance-optimizations) +4. [Feature Enhancements](#stability-and-software-enhancements) +5. [Community Engagement](#community-engagement) +6. [Try Out DeepSpeed-FastGen](#try-out-deepspeed-fastgen) + + +# 1. Introduction
+ +[DeepSpeed-FastGen](https://github.com/deepspeedai/DeepSpeed/tree/master/blogs/deepspeed-fastgen) is an inference system framework that enables easy, fast, and affordable inference for large language models (LLMs). From general chat models to document summarization, and from autonomous driving to copilots at every layer of the software stack, the demand to deploy and serve these models at scale has skyrocketed. DeepSpeed-FastGen utilizes the Dynamic SplitFuse technique to tackle the unique challenges of serving these applications and offer higher effective throughput than other state-of-the-art systems like vLLM. + +Today, we are happy to share that we are improving DeepSpeed-FastGen along three areas: i) three new model families, ii) performance optimizations, and iii) feature enhancements: +- **New Model Families** + + We introduce support for Mixtral (MoE), Falcon, and Phi-2 model families in DeepSpeed-FastGen. Our inference optimizations for these models provide up to 2.5X improvement in effective throughput over other state-of-the-art frameworks like vLLM. + +- **Performance Optimizations** + + We drastically reduced the scheduling overhead of Dynamic SplitFuse and increased the efficiency of token sampling. As a result, we see higher throughput and lower latency, particularly when handling concurrent requests from many clients. We demonstrate the performance optimizations with benchmarks and evaluation of DeepSpeed-FastGen against vLLM for the newly added model families. The benchmark results can be seen in [Performance Evaluation](#performance-optimizations) and the benchmark code is available at [DeepSpeedExamples](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/benchmarks/inference/mii). + +- **Feature Enhancements** + + DeepSpeed-FastGen contains a rich set of features for running inference with many different model families and over 20,000 HuggingFace hosted models. We extend this feature set for all models to include a RESTful API, more generation options, and support for models using the safetensor checkpoint format. Additionally, we improve on overall stability and address bugs in our original DeepSpeed-FastGen release. + +We now dive into the details of the new model families, performance optimizations, and software improvements. If you would like to get started right away please see [Try Out DeepSpeed-FastGen](#try-out-deepspeed-fastgen). This new release is available in [DeepSpeed versions >= 0.13.0](https://github.com/deepspeedai/DeepSpeed/tree/v0.13.0) and [DeepSpeed-MII versions >= 0.2.0](https://github.com/deepspeedai/DeepSpeed-MII/tree/v0.2.0). + +# 2. New Model Families + +Today we introduce support for three new model families: i) [Mixtral (MoE)](https://arxiv.org/pdf/2401.04088.pdf), ii) [Phi-2](https://www.microsoft.com/en-us/research/blog/phi-2-the-surprising-power-of-small-language-models/), and iii) [Falcon](https://arxiv.org/pdf/2311.16867v1.pdf) + +## Mixtral + +Mixtral model, a language model based on sparse mixture of experts (MoE), has demonstrated promising performance across multiple benchmarks. The Mixtral model operates by applying a router network at each layer for every token, selecting two distinct experts for processing the current state and combine their outputs. This process is dynamic, with the possibility of different experts being chosen at each timestep. This architecture ensures that while each token is exposed to a broad spectrum of parameters, it actively utilizes only a subset during inference. + +In this release, we are pleased to announce the support for Mixtral models. We've enhanced our FastGen codebase by the integration of the Mixtral model implementation, refinements to our high-performance kernels for efficient top-k gating, and updates to Rotary Positional Encoding (RoPE) implementation. These advancements ensure that users can fully exploit the capabilities of DeepSpeed-FastGen for executing Mixtral model inference, thereby achieving heightened performance and efficiency. + +## Phi-2 + +Microsoft Research has introduced a suite of small language models (SLMs) named "Phi," notable for their exceptional performance across a spectrum of benchmarks. The latest addition to this suite, [Phi-2](https://www.microsoft.com/en-us/research/blog/phi-2-the-surprising-power-of-small-language-models/), is a language model boasting 2.7 billion parameters. It stands out as a testament to outstanding reasoning and language understanding capabilities, exemplifying state-of-the-art performance within the realm of base language models featuring fewer than 13 billion parameters. Notably, Phi-2 achieves parity with or surpasses models up to 25 times its size on complex benchmarks, a feat attributed to pioneering innovations in model scaling and meticulous training data curation. + +Owing to its compact size, Phi-2 emerges as an ideal model for both researchers and deployment scenarios, promising a reduction in inference costs. To efficiently support the Phi-2 model family, we introduce partial RoPE support in our DeepSpeed-FastGen kernels. + +## Falcon + +Falcon is a family of large language models (LLMs) developed by the Technology Innovation Institute (TII). The Falcon models include Falcon 7B, Falcon-40B and its larger counterpart, Falcon-180B, the largest openly available language model to date. + +A closer examination of the architectural nuances within the Falcon series reveals notable distinctions. Specifically, the Falcon 7B model diverges slightly from Falcon-40B; notably, Falcon-40B incorporates an additional layer norm preceding the parallel MLP layer, a feature absent in the Falcon 7B model. In contrast, Falcon-180B adheres to the same architecture as Falcon-40B but stands out as a scaled-up version. + +# 3. Performance Optimizations and Evaluation + +SplitFuse effectively enhances utilization by simultaneously computing prompts and decoding (generating tokens). However, we observed a significant overhead for scheduling ragged batching, especially when generating a large number of tokens from numerous concurrent requests. In this release, we've minimized this scheduling overhead for querying KV cache states. As a result, there's a notable improvement in the performance for scenarios with a large number of generation steps. + +In general for long prompts and a smaller number of generated tokens, we can fully utilize the benefits of SplitFuse, which combines prompt processing and decoding (token generation) in a single forward pass. This provides a significant advantage over vLLM in these scenarios as shown in our [previous blog](https://github.com/deepspeedai/DeepSpeed/tree/master/blogs/deepspeed-fastgen). For short prompts and a larger number of generated tokens, where most forward passes run purely for decoding, our highly optimized engine and the efficient scheduler for ragged batching demonstrate impressive performance. + +We follow the benchmarking methodology we presented in our [previous blog](https://github.com/deepspeedai/DeepSpeed/tree/master/blogs/deepspeed-fastgen#a-benchmarking-methodology). + +*NOTE: All the benchmarks in this blog use the recommended DeepSpeed-FastGen persistent deployment mode.* + +### Mixtral + +We developed a new MoE module, which contains kernels optimized for our inference engine. The enhancements in the decoding phase, included in this release, significantly improve throughput and efficiency in generating a large number of tokens as shown in *Figure 1*. + +
+
+ + *Figure 1: Throughput-latency curve of Mixtral using A100. A normal distribution was applied to prompt and generation lengths with averages of (1200, 2600) and (60, 128), respectively, and a 30% variance*
+
+ +We show the throughput-latency of Mixtral-8x7B-v0.1 running on A100 with tensor parallelism degree of 4. First, we show the scenarios where the prompt lengths are longer than the number of generation steps (i.e., tokens), which is typical of popular use cases like chatbots. From *Figure 1*, DeepSpeed-FastGen provides 2.4X higher throughput for a prompt length of 1200 and 60 generation steps. In addition to the performance for the long prompt scenarios, we present new results for shorter prompts and larger number of generation steps in *Figure 2*. Our performance advantage still holds. + +
+
+ + *Figure 2: Throughput-latency curve of Mixtral using A100. A normal distribution was applied to prompt and generation lengths with averages of 500 and (150, 500, 1024), respectively, and a 30% variance*
+
+ +As we can see in *Figure 2*, DeepSpeed-FastGen is showing higher throughput and lower latency thanks to the scheduling performance improvements presented in this blog. + +### Phi-2 + +
+
+ + *Figure 3: Throughput-latency curve of Phi-2 using A100. A normal distribution was applied to prompt and generation lengths with averages of (1200, 1900) and (60, 128), respectively, and a 30% variance*
+
+ +From *Figure 3*, DeepSpeed-FastGen provides 1.5X higher throughput for a prompt length of 1900 and 60 generation steps. For other scenarios our throughput-latency evaluation of the Phi-2 model show a similar pattern, with DeepSpeed-FastGen providing equivalent latency with greater throughput or lower latency for the same throughput. + +### Falcon + +Given the substantial size of the Falcon-40B and Falcon-180B models, the majority of computations are dedicated to forward passes, while the overhead of scheduling and token sampling is relatively minor. + +
+
+ + *Figure 4: Throughput-latency curve of Falcon 40B using A100. A normal distribution was applied to prompt and generation lengths with averages of (1200, 1900) and (60, 128), respectively, and a 30% variance*
+
+ +
+
+ + *Figure 5: Throughput-latency curve of Falcon 180B using A100. A normal distribution was applied to prompt and generation lengths with averages of (1200, 1900) and (60, 128), respectively, and a 30% variance*
+
+ +As seen in *Figure 4* and *Figure 5*, DeepSpeed-FastGen is able to provide higher throughput and lower latency compared to vLLM for Falcon-40B and Falcon-180B. + +# 4. Feature Enhancements + +In this section we introduce several feature enhancements that have been released since we first introduced DeepSpeed-FastGen. + +## Performance improvements +We achieve a notable improvement in performance by minimizing the scheduling overhead for querying KV cache states as discussed in [Performance Optimizations](#performance-optimizations). + +See [PR-4965](https://github.com/deepspeedai/DeepSpeed/pull/4965), [PR-377](https://github.com/deepspeedai/DeepSpeed-MII/pull/377) for more details. + +## Support for safetensor checkpoints +Some HuggingFace-hosted model checkpoint weights are provided only in the safetensor format. We extend our HuggingFace checkpoint engine to work with the safetensor format to support even more models! + +See [PR-4659](https://github.com/deepspeedai/DeepSpeed/pull/4659), [PR-296](https://github.com/deepspeedai/DeepSpeed-MII/pull/296) for more details. + +## Added RESTful API + +We add the option to automatically stand up a RESTful API when creating DeepSpeed-FastGen persistent deployments in DeepSpeed-MII. This API provides a way for users to send prompts to their deployments and receive responses using HTTP POST methods and tools like `curl` or python's `request` package. The RESTful API provides the same high throughput and low latency performance as our python APIs. For more information, please see [MII RESTful API](https://github.com/deepspeedai/DeepSpeed-MII#restful-api). + +See [PR-348](https://github.com/deepspeedai/DeepSpeed-MII/pull/348), [PR-328](https://github.com/deepspeedai/DeepSpeed-MII/pull/328), [PR-294](https://github.com/deepspeedai/DeepSpeed-MII/pull/294) for more details. + +## Added deployment and generate options + +We extend the customizability of DeepSpeed-FastGen deployments and text-generation. Users can now specify a `device_map` when creating non-persistent pipelines and persistent deployments that controls which GPUs to use for hosting a model. Additionally, the interfaces between pipelines and deployments now match and include options for setting top-p, top-k, and temperature values. For additional information about the user-exposed options, please see [MII Pipeline](https://github.com/deepspeedai/DeepSpeed-MII#non-persistent-pipeline) and [MII Deployment](https://github.com/deepspeedai/DeepSpeed-MII#persistent-deployment). + +See [PR-331](https://github.com/deepspeedai/DeepSpeed-MII/pull/331), [PR-280](https://github.com/deepspeedai/DeepSpeed-MII/pull/280), [PR-275](https://github.com/deepspeedai/DeepSpeed-MII/pull/275), [PR-268](https://github.com/deepspeedai/DeepSpeed-MII/pull/268), [PR-295](https://github.com/deepspeedai/DeepSpeed-MII/pull/295), for more details. + +## Mitigate risk of deadlock + +In use cases where many prompts are sent to a deployment in a small time window, deadlock can occur in the DeepSpeed-FastGen inference engine, resulting in no text-generation progress is made on any prompts. To mitigate this, we ensure that there is a sufficient margin in the KV cache when scheduling requests. While not completely resolved, we continue to investigate a fix for these situations that arrive when the deployment is under heavy load. + +See [PR-274](https://github.com/deepspeedai/DeepSpeed-MII/pull/274) for more details. + +## Inference Checkpoints + +We add the capability to create inference engine snapshots to DeepSpeed-FastGen. This reduces the loading time for large models in future deployments. + +See [PR-4664](https://github.com/deepspeedai/DeepSpeed/pull/4664) for more details. + +## General stability and bug fixes + +We include many bug fixes and stability improvements to DeepSpeed-FastGen. This includes fixing issues with some OPT model size variants, bugs with MII configuration options, and improved error messages. + +See [PR-4938](https://github.com/deepspeedai/DeepSpeed/pull/4938), [PR-4920](https://github.com/deepspeedai/DeepSpeed/pull/4920), [PR-4739](https://github.com/deepspeedai/DeepSpeed/pull/4739), [PR-4694](https://github.com/deepspeedai/DeepSpeed/pull/4694), [PR-4634](https://github.com/deepspeedai/DeepSpeed/pull/4634), [PR-367](https://github.com/deepspeedai/DeepSpeed-MII/pull/367), [PR-350](https://github.com/deepspeedai/DeepSpeed-MII/pull/350), for more details. + +# 5. Community Engagement + +DeepSpeed welcomes your contributions! We encourage you to report issues, contribute PRs, and join discussions on the [DeepSpeed GitHub](https://github.com/deepspeedai/DeepSpeed/) page. Please see our [contributing guide](https://github.com/deepspeedai/DeepSpeed/blob/master/CONTRIBUTING.md) for more details. We are open to collaborations with universities, research labs, and companies, such as those working together on deep learning research, applying DeepSpeed to empower real-world AI models and applications, and so on. For such requests (and other requests unsuitable for GitHub), please directly email to deepspeed-info@microsoft.com. + +*We would like to recognize the contribution from our user community in adding support for the [Qwen](https://arxiv.org/abs/2309.16609) model family to DeepSpeed-FastGen in [PR-4913](https://github.com/deepspeedai/DeepSpeed/pull/4913).* + +# 6. Try Out DeepSpeed-FastGen + +We are very excited to share this DeepSpeed-FastGen release. + +* To get started, please visit our GitHub page for DeepSpeed-MII: [GitHub Landing Page](https://github.com/deepspeedai/DeepSpeed-MII) + +DeepSpeed-FastGen is part of the bigger DeepSpeed ecosystem comprising a multitude of Deep Learning systems and modeling technologies. To learn more, + +* Please visit our [website](https://www.deepspeed.ai/) for detailed blog posts, tutorials, and helpful documentation. +* You can also follow us on our [English Twitter](https://twitter.com/DeepSpeedAI), [Japanese Twitter](https://twitter.com/DeepSpeedAI_JP), and [Chinese Zhihu](https://www.zhihu.com/people/deepspeed) for latest news on DeepSpeed. + +The following items are on our roadmap and we plan to engage with our community on these through our GitHub issues and PRs: + +* Performance improvements +* Quantization support +* New hardware backends through collaboration with partners + +**"Star" our [DeepSpeed GitHub](https://github.com/deepspeedai/DeepSpeed/) and [DeepSpeed-MII GitHub](https://github.com/deepspeedai/DeepSpeed-MII/) repositories if you like our work!** diff --git a/blogs/deepspeed-fastgen/2024-01-19/assets/images/fastgen-hero-dark.png b/blogs/deepspeed-fastgen/2024-01-19/assets/images/fastgen-hero-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..1121fa9dafd68a4437b499591f389f404ebe1dbf GIT binary patch literal 86613 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

8iq_S4QvAsU6wyo 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

hEp;XVz|kyEu$eDNI7Z?F7zLK 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 literal 0 HcmV?d00001 diff --git a/blogs/deepspeed-fastgen/2024-01-19/assets/images/th_lat_curve_falcon-180B_tp8.png b/blogs/deepspeed-fastgen/2024-01-19/assets/images/th_lat_curve_falcon-180B_tp8.png new file mode 100644 index 0000000000000000000000000000000000000000..6ccfcb0fe17fc2d28ac431154fbb10f333cf732a GIT binary patch literal 151520 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 z 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%0Dio4*&w;X&l$DC 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

^c2S0*>r5jLqBqF`Td1a*^YrhkDOd#3 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

qQS-`b9#aBe zTq8H$)6>(prI|AkRI75bi$8J40~*Tr|hPtXJY55%y$%u}(~ z10uV0p!&5+MW}pGH(B9Yj@e#_zI4`Tx{Un-l^G6TXK|mf)ri_w4b^N z53-DfERLCR0@E2CBOO#ySXEDs45}n4Z zIBQR0JnzsRT+~?_MUzUqPicHgiW`jOOuv#r{4Olr& zsoQ|qJ|dtDoVs%~5a9Ej=wbEuIu^xa`#o)F@PiPt9zF34+=N8s`7gW;i7Hg`ww)W% zQhw0t^4<0y5#GxydCVyro^+T~JJjPZ$nc<&L+&U$;?Yuil(F~#w$Z}m0q1r`kip}R zO5x~|q>drs9L3Z1^DmBd;#RwD?3+b#V?qvfdSqmHXc-wS>!oH#V*HpM#{0|YqSt+=WJ0aXxuSZV{95? z@z0(;)AbECy@Uk}8mnm@81{IO(>r~4$Blc~J~tya-9e?!N!qWB>dW|ss66T_^nIbL z+o`-2w=*?v^rd?=qn7}gz;F9=gY=V5N+>4y6WYveqPNPw2<*9rD}hUp5O~U+{lvrk z8o53zX{SBU6zPhE6v*PaM%2ddS>JCqTx59d_^~_knFXPW+S(PTC0Y6zQd2v(J*fG! z1aeFO{shEnAfH0T+qQ1%RLK1r)=T3RQ^4MweR(hD;*I-fRhX{0!mcG$s3<}NSpbUs zu)qK!*r)Q)R-**Oh~LS6P-0HE-2}lqdD~`D_Ol2+nNjE##%E+^mW+SN<7p?=XIE^d zXtCh%FRV5&_59w1V-=9Avwa*ISgcNm(|Qbq+Ly(9?syA1kXsU?z2<{yUES&@>>q{ky4m2LG+RRBw##g~sw@rq zz;-%fYiw&4>@bEw3W~lah&0=~iPj_wE{*!3j6&2j(a+Y`8PtN>w+bHuHQFCaa(~zY zaS#B;tr-z1Uz~i)%8uiIM_fqm*yZTnh`hoR9PQPQjm$mq$_qncxc67ts4kcHzISF6 z9K030W*sVkMdizE3&kM_nlc{>wcWQ7;B#LU@ zk0VR{!yLqDu5aTnB)kcSIrR_~>9w|KW?O8BI>S+FFMV$aGeT~Ts{c_lz45$Jp(3VA z50R~ytO0Ew|I4QYMrai!a-*VjV|UP|nu!WugNWFIy3tZU=SNqbT>HwZswyamo9!RI z-ai7QSfflte5TKnRc&hYOyk`^2$E6Dol83Q6_M5j{l{k6W|Q#o$+xm|MzuabMrki{ zwqU<;h~LGdEUxHPP@texw%?{^K**`Mid|+B-V+p$^7chw#?`jq(3xh+D&Ie>teC8q zy7?vi^fX))Lxi4Yal3H$Hymq9gzfB5V^GG?A1*Klr}U2u$J%F~`0JNlAJ!Ll5hCjc zG=ux0ghlNF0@5dWQ#=;Jn`yEZaB1;}{MD}{f3}L|Q>Oj?)djy;+4=;h1u}=ItiIfp zY3}bZUD|ISl~+|~fOt#x--k+V2i2K}*4j`uB%pM59QVit=}UQX<@Y%<+YE7dB3Fsz zyG+I?)q(BH@aoP^k1Ji7rhBj8P4cV)sd-3+HL+3UJs3N$1+{aTca_#K#6zqBDQ_oI&sE>e z%}&6CcOm!S9HhLN2p1?A3v8t%L>QQT-$5hf(fzVcu*t>5Z<5vCUFeOy4GZ|s# z$(p&gXe^PP={+@-p*tes<^G={b$60);aqK*TzB4~vb%C$e*@|Js``8%U%^opMyg%L zLoMU=c*1d7@jdIZ;Lb1FM@3dibyBWJU^hC|CG2ltIOoRM21nW5$`1Nl|Sfj!kXXJq}=Gb3lap^#4 z>$TX^#Y&xkS%tqV1$>H@z8yzBjWmFVR_L=WG<}MqxyE*fC_)c;BS>Z>ZLqU!8Msv5 zE-s|f(WQwmNC9~d$4>R60Nmd7Dkoz-ZYk`?X=P|maVc6fh5y2tR08($@Sow`A1T$u zE=$fNl!rs+cUuj;ve$OPEFdb*e>}-E-6Kf=miR3eP#Bju+d#3-1T=1q>`fCj;A1h< zm)w^Zs=a{osZt||h^b2r_3$27QtHF4%;hOUO>5rXWNU4W$El5hDWB$fMH+^PXG#di z_ukaGqGRKYfx$rrZsUjnxWy;xU2{CH*1v!`^YEPBh*V0(YS;|Ie9VNc3yUY9{QS=T zF4yW>69uieTrfEtzNRo>^_k#(+9v084wYX%SJ7HlVXj?quAZrx@jG2YX`u;+4p@ApxaMSzxP?mKU7cD;s=Rb4b& zM2byced5A}3&2xtqP-?t{#|*zFy2j?LvVe_%KM=Z4kG;RvN2F0z5W!`1P`jmx)jNc z8DPF!w&t#ca_;KjPgjpiz%XLF+DQHGjg(dPMw)NAwA0y9sZ9B`zc-f3uMMP3I6QA2 z$f1fMULPdikDm5ZHC>^{Py|i=7w+GJRx~#nv(KantM*F9nhe%(U&C6;gIMxL(X)xl zedHln7)H`C7K7de^b{KX3MR1JV)2uJ?}~N`0v7@e=@!}Bh%C6`$J@M%)!$~iEa(Cp zRFBW=$uDdLoM|DuHY@6&3`n?wz{3c?fC=%#BpZwB_Wl}Wv}kqpt-`Blwqr&{#$vE1 z1c+g0m1YcZ^6%Tu9&3<&p$zm6R!wlI_o2cFC{%8O9HY#k!yX9;g=TM3D68fh4}Vwx z#W=0N0jqarao8Hf=8=wX8plu3GQ~F9-4%BhEf-f=drL-S>nbgt zJKC^uF4#s!5hH1i?6u)w&$&V@QkpH}6yNaZtw+K9LGPhFp?~hVXZ+K>{XU?1Mp;GTu{BIJI3k&rE+h2C=eR!X zIdvSEthAu@eH)qR2LjG_XD;LfAj^&o*%#nfP_EJi2mk`uE3gCt0QiNt0S8ejYptbh zH%Sc7C*fe-*=2z5;<&l9Qaenm#x2+jF*j$1zq$*WIm9#p zqNiWw>F9(_f@dnw63EGJ%Eu-Hs}ls0PlvHit!U@&!*1U4Vs0trw+_gO=KWF^Dm*f0 z*1bz&MF&4Jf{I@WRX_Z+lm75ZVCwY`&GG?tFWtkRsMsX5)hCh1xc_@?P!j+2MN?6N z)U>ipRHu=b#oWTU?pD$8ZGUy*(b;}wP=?^;pzTh>)#pqgbqwFvGcn{vJZqtg>~w>p zU0lKV-V}Ic(j3!S=GjMp6x>+6-zmK^3HDn3 zLhMa>{I)o) zmc$tvnWoQt2-w&O0pG`*+htIF#6S^tF4!GzWf+^OBU{lE4|faRtklrZ7=5@Zy;47e zrH!^e=DJ}6Dy6}*tBh%k4nGieHp-4)d*p5TG4{jjT9@^RTj^gl&-~T9>`bhHHwaUB zJUZX)! zJJ)-?!#@qRkqHdgsK<|co<``yT?HZ_VQq ztaDa_nyzc~)LV!28v4J#@Q=s01>Ce7xB&Yh<=Diz>qQ^ztq)Z&wtB_e#Wi*Jce&;y zUXcg&*x|85CaQJnYk9@J4{>N~3a;(`y%cyhUHN`~@jM8!MNL7yRrSS!L1&TO5>;Jn z&-#!%Q*atO}92&iS{8tLn|?&aEnk|RZc zo_S&?lnOqx%QhbUvPtC~rlz{5z^2G#C>>C3Y|`uzQ;qJO?m(j)0WP2s*_XNa?EGo> zBeXq5)O3J1m8larD4m_FJh`jEo*(vnA^sY;D1Es2kh2fz4gs>SR13PoNY@4_-Z^av zGErxvgX&;3U6aoxMczEIQ&unEi+}vYUnP2L8ymQ^pSBdTFrSH2O)BKRV}5AI-+;77 zmF`f_!qk5nmeS($IAkOd z)rM!?pS1-()Syb&2|qt+^c9~2{2?pRU4PKoLz7<0c`>JE@U6oRn6KL;1|21))=AJ- zNH8tGWe(!MGV#M%B6!k*8;5K49gv53aRT`qi~Fh_;BsOc0v^h3%5|wyZ-Gy&q@QP1 z*0~NeM3r4^yQ)*YJ(IJ&&RuX}Q@(t;LcV6Z(k1Qy<#7+S zmK%=}C8;ktGn{-cqUsOEzJh!#twM`*{QRi1ebsrXRR}Fqaq8V6ChtfQnMoiEj@=dU z9U`aK+I^K|&@pv+3Rk^8=8;SI@aV$~^fc72y*}pm>C(tignA)qzkaw?toq89!MlC3 zlu?^zTVki_^l_q#ij>q_*|oia-f;&ka{{pwtz$1sP69!en$t7#ydo5>QY+)o`{Av* z%^!x|;bX{<58CTEL8|bz7lwH=rz7KOHhR5%P`h4<-g^90yWU}o^@hRaIeZzGW+j51 zIqSwoR6^%01syMd<^>RBd5T)d_!e8@wb%;mskpqZ^O+rs3@Urp-V6d%`4!DF`_GRg zg14Eq_l^_f2nqcN?E$9ZSAgL@Gjs3jV9%k43T>JaeEm8r*=7;9Ms2!3m4Ja5PwP;p z4XVtvUtr~3K6rjNWn+*AbL!Tbok=XM-V}bH{vOXubdeU0w7}kHABToYh!dBAdTk4| z(d_MLO+`VD!fODH!w^60$Q#5#oIuUVA2|+$z2b&!wlOZy<@RiHVeLRtM_0O~*<-;%y_Vd2FTx+6gg@PXTvDJa z;aBhB^yk9}(PMAS#ZUABj75?9Gd?tpa}KC79na5+%nY@hK-^j5k(Sakth>nY6#h;{=g4DF1HW6qgBt^VpM`L0RNa?By8VM4jl;A4J` zSzpQlsaJ67zn$A>=4TC4U{1LwDIuI|CM3dhrxH8mP59_~M^E!AP>~inT9LjpiRXWt^GMkxX4Q{dz&f;9HgeQL-W|D67*h z%*-T}Pa|`8-3_>AUM=)qmtJ(QTL+xc0jtJ1g(eFJF+uIziKrR&(bKlbE5Pxb?Bz5# zj19Z9#bHO|QT622gZJabrUskl5W=cM%X(<|?W}034NGp>g72B4_RD5D^O-rk>_3-9 zxAw^$@;U6gBP4pi^v%#KSFSi1JG`vj>oV9#+v*}W>OLYlbB;6V;HJKwmkF<9&GOag>b|hPW$}6dxSgot92Pd0J_4kBwwIJ3)KhVf(!}VrZJGToILfMsY`2U zKdUU2aLQ;8YuD(iLWL{G#@2{u4lUcF9>v{!|?8q-t^t+8K;c^{2y0#121NVSA7{_8?W9|JqJ~cvCjo z&nnvGJU^_NcVA&v(VoY-dnB8{Ex7dD+&TuBMYC)#FKO%i)U(@j(j&-gDUs{?yTm;k z5(FfqceeHO&u@oSduLlhU*f3|MOdx{fOjBuh}vo^haQcqa5@#&aU`pAVtz1@F_VGh zlN4xeyFo^{;DhE&x}TicsnRRNQE2!~I?FC%+kvdhb49o~!Y@7u#|W1Qco3Dvd9xWE zo?px72jYCqCIDwN!_! z%@NWMd#;F2vCXojc0GRl;Bm!1dx8zs{ybath;Cm!NQ*j33{3U8 zc{kPjMvSjet2*zUqK$ruz$Il`Uhuwe zXtzsHVTL|?4+mO}G*d#5ySnB!--`s#f$bt_qJKQW$zCHr*YKKx0|}kwxUV-wi_=+11J&8kNWGblmuSJ8G>jd~!?1jo#b@OZg3%ZspK|QQl+YCSz}8;RDWmtA5l-BDnEF z+~B}~*X59~}|q9?|2@D2(ga%Dta zSSlr7t6s-S=2Mg&McOKDIa}>(3Xyg^1?*6J@%774#k0N%1^Q{|>MTTA^Kf%Nl38n4 z=7*+~`7mac_hY2qjTLs8XBg!qI3qzM(&nW>;>u$8`dX~n>5(L>jf8N+t@z-L51kw) zTrV51XjjK$f9utLNovjJGnwnL5h35mvJ{NA}xN#5}YduIRBV!Cp6YkZX2M^P~LX{66(+cgb1Fhr$y%2VkXiyRPg8(77;{ z>{L;Z=dhEndGch3Zmis!yOugRzc?oLe(td<7J9k!GbHvc5P1-SWlA;o#k)STIMT&( zy!_e&)Phaeh+Rp?wH{7KE_I+n<7VV_m!EZLxeqtmM|!}^)|BLfm%Ydsek(iO5c6_| z86z?>D7#=cEkMUC3dBcF)C9+VuX(G@$S*kM(_^TD>oKDGZXflYs)?~+FjzAOKes_* z=&%n1KbqF$_|oN-@{Q1DTb$f6fzc=XeM0q2lUrD}$VK)Dju*?bmwWVahlE*M+L8wn zdRkm;tP_2p<<)&&pIe#k^nRqgj&N>~JZ`$C;!xA^3rJ!o`^Y5eI)K1uHBLx{LV9Oe zx!*1`1<7?QlQ65>z)Lmc{LTPi;(Uiy7z}NQ+$Mg4Hl{pN&00;9kr23#cJlFW)#?!Sz&eOZ}q>jj5EN&K12@VR<_H7-=8?*r%u(~VgEpuU}O~|?YDWvC(bnrXD zK2GF0V=pMg`{WVL%CIa?ioN4%J*nR*E=3AC-`bwr&yMy~77N!HQ%SPaop519jf8H6BuNE>RL1WHBooUu*SHI1LB;EK_iMFeD z_0v6SafhY8&k?ted3C0)DVk^q4K$YeoCmJTHn<|Obt!4EMUN^)F1fLqqMH6=1e1`< z6e6b5*8V9ON}%U~cRMM+Gc$ZM2SHIE5>SEt4t5-_K+Cq~QiX`?Lu0=6TWu#{nc*d~ z0w+~=<{afzVfR5x`ab9&B;VN}JUn<}w4!F<#DR;Ac_(zff<^DS*4SK2dbhn*zoI4- zH}bN3F*HOYE6jFEx$`tc-i|$2>rAd?>BjwL()Rp{?Lee!!{gtyc~Td%0x$Sp6T!8Y zOOT6mLT0IPhpk&J#)O*qkFgw&AGCUPkJ_|(Br{AW=p;i5Foj?B!n@rsq-F-3W*$$ZL$A7uFpG3>s6r7!}EYDHF+yi@jU2H0{|qtbT8OF0?M=ENDgNlTRr^n|cN) z-x>B@*}hi2t?h^3IKKG?gJa(s6sXgI)=;nDeuE_gkxobH=JYsDQ{aGclG{jU)M84* zWevw;S~T~^iHY>!r+}v$JnlYrkvi&PkA#*YG=_vYUXsvlOlL>;GzeV;B5t{q(G__oNn!mR{F zaAj_{mwG?(-ODsJN-DaHKl9Bg_{qLbPT3p9U-8!fXPWM<(qAiv966`F&nnQ7XwvQ8 zEd*z)S`!;i4he&3Km9#~Sn)jketGsYv>kaR<~()CQCzw#7fh)23&!x*sl0K#B;{>` zYo()1N52>4%|Fw8krW2hgWu>o?7Z!(~&kT1=$(Hg}u^_Pg&S&r5V=b@*>WN0MV2|K zRP@JYmS}gN7JlOfsTV!BvkA8`YHt97%?Q{Jv%H@yA+uZ@E}b<-?azzY*V038<;L?* zE`sY$X3w!%i5p!h?7MqYk?uJ8(LLRElY3l#~}GUtn|k2)*I3n_AtEeR?n6nZqxr zpo2}bk}3O8+iydVy&U0jxLA#Qzxm(>e^4-6Od^;LuqvwE9E{57gd(9;MJqQcAO%!3 z^5te{qR;n_cW00&gHF-pkekEoR%y}R!(7RWpe<9-4bFC#ZS@Td!KhJ(8o;N2{HdGgCb1a8; zlcQ{d-~1-gOY|wBMi?X7*|=Hs(v)K7T&^-?bBF1dyB_r%-}G>8R-HwuBL9FBd_UX{T-UCm5g--K8zTXzCOt-h$f%jLthI^lwTbqY%+_Pom zLXY}Y(x#AjG1SJqdDoGE6>H&O9P07E`iBu4=g&SP{>Ger<}pVaUthgcc~6yX;JITQ zG(X~}c)sHZU$Yo$LvG3sJOIIHM`q4m09RJnaJcvTrx?EP4n{gW3JFmCE`?~KBg0Ti zXr)$)IuT(MReslVTee6SE@M`3H%}JIo?^J&1EOV!a zm}`)JGkNOr;l(ZA!b?)mD0X?MO(g$RCc9@(yzZ6WRYgooA}=+TDU%g&)OASD!hrbU zIo}gP51Y*Q)X@*sBjD0A;tKH}O9Ehj794TUv#eswM9BvQ&Tw$B63mWYV(RwBS4^*- zd~^7F^;Ps>t>{}DZO_km?=J2`eInGOt-}W}%-`Hsau2GOBRd_o$d{oW|9Ge@h=46A zN{4o$5@lPHOctqm6zTurRIuj8w6@`=c?_nRUmdp18=@1R53^5P8e7tzCk(p-S^6+R zCBk;*TxN$p`&DZ0>b%3h_))Tx-reO`!SJ$LDzesJol+En7OTpeqnxX(R_F=E)o~_a zR~+7j5xunQFi%0$20!$}y4o2I|D!T-b-llG)O*W9%{{7Nh4Z#0gg8V68nN1IR0+Nh z9lC7ycrg#*u^iHwxtAhN_Vo1l8fi(LEQiu&95c_%+zTrT!j7dpKPqVDY^&*v!FCvaxoj6u+j4ijIp4)-jhj z&LhDvlECE?Z{!KZm#KLitZ@-dKw4l#eIk~t_^A9ku6WU+7SEg!J)?S24x(y0v9#h zqqf6iXJJ<84JUSQ#qNyU;79Rn0?{6k-w&;-HnDiUurrS%&CI}VN@bP1pI-=hl+(Vf zS&^Tk@F6G2>0a9PEg#EKI3eSAY0T!Ouqy3|rTYodOFkLv-8l+t6tXsQi58zq&JtFY z^0IuZ8#Ox96v^!;D0PIQc2z^s>%z`MS05x^q_rg9g`0S^4^ma%y}jbPvEQF1^0Bi% zU_>Ampc#=1{~u*v9uM{2zCVhHP^VByw8&0H6fx+?c1Y65AX+SA-&L}wg`})SA{k4J zB{S9#g~-;}mm%4AWheaZkLr}_d7kg@k2&?c&g=D@na}6_zL)F1uIp|vWj^`=#cB2u z31V}pfcX>{n$j@ps%7m}*u?H|F1^;Nh8T6h2jjwo+2jf|-;jt1UAuR0jCit^WPlZ8 zI0|@=+qB`L^fctu)D2&psni8_w?%jnyv&p6Ig#4C)-jE#wj)NvQbpp0m1-zYBGcUx{pAw(K?W)H0EifsLZ#oG3I^DO{wA*ZAj+)lIFR9)D|f8x zN=EBSqRb{`sAbcQSn^idKV^1I4_i{{CuQ*4E*$FpN-elbr2(;47XENYKj_O`$#1JXKtvMU7&QWNW#FFjQZmWpo z)q?F;Ta3cy8>}q38=+TGlXjV@2W;21sAhMQZxqYurj|R0fN^MW4&fgz4dr1_6sQir z*jJaA^W_+Qd{OQbALZ7HHgQ=-RyK>6ww7D*RCO*LBCaSdt~c}PMVKjUv4n?aKJ`|V z+{CoBw4PAi-LR8r8CkPV%$Ak$A?P3IRl9FI8|F65YjnI{rhr#%_~VA%Ct|(It?s{3 z*ZKKPaJx{6HE67~UlCW&1E_gr8;WE&)SP|^L^~`ywK6!)TJkiU^xruj^7PcvE^5v+ zQo&oOMwZ22;atOj2CEB~d|*5;In(sLJfILMWHOn5`eMurq&7)U1pY=Ba$kU@h!?Oc zYi+&md{8(TQ|TOeS>hz0%43a9@V$4z=W*2%kbWw(&#w-8QB<{W?%Ppm3@4n6FQJc$ ze{$`)h{YI?a^1pI1g>D89?JYkV38wunB-}ncWgL&4Z68$WR-CFIf025Dhq+ZR$n5f zGEL%&OP2ulRT_HtiCat!&|W@+w)rhO>oPzp<$VFjXF%U6(*Z zq4PK(J`}}Xvy7J5UPbAlMkUw<2;IZxU5xnZ@T@{WE5{6`#P#& zgmqD&{o_jHZ`9pF(8(}v1&+D9$Q4WyriyLBtl@dDpDSdBERojLHSa( zrElTMkD=#`|FCYG8PU8w`$7xshLs@KXW^&B$<6M0jhf*TM6qYLf+K_pCNcCsy%%Y? z_dW~#Q96|O%LW#kGA~Gzhy9JU-@aHY3IBDpzx}FrdVbZ5Udy zdW0F^9)>9-ZYGRAmbCdG>n^7;X#d8oV5zd%XA2+#)3X$y%@E6Wy9^-Mf`RG{3gKJS z;uV2PfNnGLqF}9b$m^l!W7{)m?6r-RbGF7R7^pJH1if$zrH{|03R_&r?JXMR-}3F| zAh!qk=p|Rnp@?>PJybo@K?YXrp+lH2M7C;-4oSWnq#C2z*IYk%(te>QTIWxPBFtYj z?{>7?OHMIG*ZZx$xvU;U<<9CzsbS#I)gkk7?NQQ2Wuu#%5}_=z1P^n80dcGLa|mT- zB@)VoX*U*w2#>V3b7kocRE^7>kUo1EzTNpL16LR4MysKlJ_ih}*^;t~mk)s% zzS$kwl8kMv`M7RgOLOG>l#$g$hHM49NEIi)Q332$E+f&)EH|DGhrMqrx|>;PHf#SV z;;ChW7=YR2BSdIvem8V=X614KJG);?p%5<=s{PBmA*Y%k^@{t28l+X)+;Gp{98)GJ zeJ^9>7S;LQ}WmURWq{SOQ1>8z`_Dpmgc;i=0^`T})hZ%gD%B;#6V3 z(lYimb0LLN)(W)6{@2e|IbA;4hgTkko<(t^=(RS%M&;YAY;WTqe%#xHs|umlUlAMT z!Ku6BJ`0fNc)Z0EPiPSJCJb;bcU24stO>q9Dlmv+Y(r603>sK;(X#uxJ7IyYQN7QU5Xgb zeujuw+>!$VS6)uIU5^oQC#E16GDk!j%eGOUR{I)h$67hsK_HVibqAnR03B*7yyC>w zI+PM}_Hu@IneRS~7Ln>U$7KK>Dk>}Cy5B4}fL4g})jbZWg>?f6r{2A@(c-K=z=@c> znI8kxPBxcd8y^uR)(d#GJ}*SlKfvH@2GN-@gJ(`j_iC4sIu(tWDk}I9jR`-ZD)<|T za(8KDwS^womC+=Ts|R-8kO9eYiHbqO2S5;QZk^6oX7^v; zWSn%A&dau(o9HU&FwJwqYGgW%wyx?F)0Zm*Qs-<;M~Z3kZWpb4I^&XYFfpCs<47kf zt1DnGNS9^?vM@3v;1TnuNC*Jr-F3xvF;bUf3h?SrQtk+4cDa8HTIl8JbRTP4#+^Op z&+h=0_#?RYY`%Bw1QNlte5aG}ER%TrrP%q`v5DhKTU(XER=zvR#=Dyhzk?FXjn4LL z`WPs67L3kikADAr%}t6Zu|u&C`p!Rm|4ea_{jWE?=FWiFrrh?*L?oqqm7eGN1lyW}U^GOKN`C<*X$?E;+ zQn#SggzM3;nML}ZPt^hS#{Tk)@Zrc9AS;6)CA2`ofeO5MZi6QP~hDdl8QtalrWK?FYH5W~23+252sI{a=6 zs)RMGV|tPyUWK7B7;60uuQ|Lwm@IS`73ZGm4DDkIv@6{p<%8M#{XMM;cY43YLFmFy zRKSa5NK6P8wkIKQ6ShQtYCYh(?l&&O0jduAam{rXQSXNRwq|(V40VLf6c@ zYGJmZ?oG>#!D6xUG~E@?fn-|}2dnRHT>4fhT%^$RIlmO^-^Vve0^6*qM)F+dSZAuL zJ?#d^2BSJW$%otd`7VfOHppjH4qIX3$`3DPepL?p8R`YGxWf#O6HDpeVcOwjJAZlp z+9|MEI2y*IQAqe{NYbuJCFTLSc|K+Ukp;ev%9Ju)oEcr!P4(U9-FnT41@R_gL3pk) zMoYZH_fPFnNa@rYScsdH2|X;Oy!A;SnUi5%^doDf$y>@-x5kDrv=^nfZ&2iRrrs>F z=JB54Z$e+9s@)-KJjcK+_z>quZhU_B-L2yYwgH_N#&M|rlVkb9^zfqbQ;o%N*P0FO!{0_>;?b1 z)_mdCU@?Qp6u4aZY;o$+xNzZuyw8rGvpv$ZoD1SHTG^{M&Tm9yc3S?&<)84myNj)~ z|UY)ULRlO+k0>4&b-*d%A4{T9Ttx0cM5aj^-h?k&%R{=NP@E06lr zk#e3VSL6}i9NH}vh_e)%*Ng=Rkk>!d;W9q$SbmQ18EVven6VCfKZb{vhb5WeK{Qr^ zR=;*FmpRk&t&=`!oRL$eUF61MPtd6$xPy}c&UI=M^8quWf=cs{7tI0wTh7tZXjqqY z=f>J#Z(*xobv^H*Cvm_Wr_yhDNIxktZb`A?ih6j1ZpDsnrfP-HenYK$UxwU962zL1 z=|!bP4%sXRs$ehkS8mKspUyftWkxxq-Juisa!$@+q&a=3^fjXOrP90avu(Ste-ITF zJ(FQv^*M-=>211~u^5WEee_UM4frS_qzLQ?vMy2jrp0(MshH zX>L=4H|%X>gZ1s*RJA>FOOwpveJ}hPq2)bNe)sMs-~vBz;@==Z2>3;i0 z(npS~5IgsQln%BEe2uf~qMI-J`n7+!KpLj*SD|@C{<4SMqa8cdD5no?V$k{feN0ZB zQTznm2b+&TclIMIe*OEMJ$PXLWX3#qygcH?)uux}pfzep{OHZXJ@VnM;`^%IubHTI zOODKlvWlD^VQ_JZZkzqf(oy>h^gyy-PJ?*G)YkJlzfE`8#aUBd(^6@zlXU`RKH6YkOTl35iKGa8Co=SVYoS5 zW<6i$nG8ESyXzO8xy+6&n>Y+NR&kDGl9SXlZBJ`{2AA|VoZo9*6no*hIs0j{A$Kce zfx}>;{G23@cYQn+BWB_e9JOPcIMv_C>W{w>+1=j(C{w$q%Q;5P<06gEcdm=RO^ZD3 zzD-DsO)uF-U}CMWQe%*RQr8&<^(AauzJV6nB>Bud?ZepfWGG)`{`8`H*F}rlnpsyj z+Fpe|VCvO+<^g~sYY~<&LXKO%Vbg@d?JH?fMv?mj(#}I%UN+IY{;34fEz|>R5DuY= zj?NuXWe*GV@_98et-h1&rXoBgnULo8vSd4CRc3Cc6cN#It zc)$9OeW-Bo42g+Z8wg8SGu-f6M?scN5=+Vw%Lzi>{FfkdEL$vYTxC**X&*djaV zQYx7#vjriTO2&21PQ|Jaip zT&;O>5pDMTQEFbQJ6Hss=YQO{LHFICe%8OavtIHb;${LxrUMYchVGwWdJnxwf18d; zWG}-rKuN)9DF(@Me!fj@z|kIZG>2CTtu*%pMPA{ zf=+nHk>*dL`Tphs%3IrVQu9TG7E~(U+0gdx#kqden}9_o2qa1V+WIaIw&RD&uUuwb+@Hou;NbOzl2 zqGexE86N)U$sqsGus{l!?>A22oSNhO%jh_>JlA{f@;jTzB#dTh26;qAv$~nXwTd`f=#fG1c zQu3*bbrkSg+^?Y)vL-bmsS?s7VAlB?nRkjQ0V!rupi|tUSp!~Oa!URTHXj7xJE4U3 z^|hGT&FS?1fnzAVUOso5U2bz-1%{14y`q4-ha1kdE-?D>B!8~?d6KCXXq8L6y z?9&du(L=cF5g$4;eF?7aj-kYk4HP&wyuUUvr%!|P60+6I1_9$CrfAB1dDJf{m=QZ- z5c^0Pf2U>xRjq9Rw0bIMI)YhUdzngUxVvhQwVbOb5;>J$KhWM?MiIer#jT_bno1p@ zJ0z*g%wI+zc!cEzebV;XbpyAz?5j_|q)0&sXuWM47gJ>abdnOMfHU}<@5q`qDJfBZ#2gOVIh&d`D>!b&kBur_-i zI zuOS}r1==GG)Zp6l`

9$FwKXE<^QaPMw7r$@M*-q34>Rk`cITY;0WWXxHG@0V4$j zqhD2Jg0dzR(5VF{ggm>R^OrZ{+m3Q*xX5SiMeNComOYjf2E{IMZkTJAS>BCx&3k_Z zoDyKG=Z_TJShgSK`}SOdDEb5zUhexNbgpq(4@%K|YHn)bOAm-Ww23x1iNc5aw?oJB zd#c*x0r%jRBs9WW8OCY`DCz#k_SdPBtUC+b_VRVm)Y^8J4uZ)@9jHz|Fhpm5wi<0E zH6-hZqH#XIT$mCCxkGla80F#O-sXN z`HK}*C9u&$eMPpyR0J=*lUmji^jtf{tOJQ)-WdGw!l6G^5=PD_X~;2d22`_^qBUCY zLWP!^EMFXfFAvbjFvRXgNIHZ|_l}jap$T-?N?5ctP-^l&=ToX8eTiWnl+kO0Pwgi@6 z?OX%6J+&=MUXijUGr_Fx{gQ`8_2ZAC!E8v5tr5V`f6?2oC~o+60B$7>U!nAYnc50* z$92zVsMG2d*z{wOMjg0f$Ty8hAW@Yd`9Zst0w5u2X{Id+PynRe89&pqG zmfmv&=0Tu)1Yz)dfZ&P<7i}eujsfv;?oE^gYuPRz#-I5Nlyot-s8}r>iY-( zdz7G-J$)=NzElOin8_pyoc&d}7b%>emfFO}h9WWDW!VX^C5^$v@sYIGTB+xy8wk4E zNE#Kn%*ZZY$s8*1`DSEPRO-g92NEDHK}gPXfC0;Mz)jssD1bc;0UWIjc1*5R)N2Bq zK|}Bj8B3qmi?dneRHb*F|8PC{Ka_Gm4r9h|C5+Pto%dZpwyuXyvS{_u*Qu*&;6)ZQ zAa!U;1O8ROb%7(I>Vk;d$&)v)&5jWOA=H8?bFRpX#)Q)+pm`u8hZy)?NXrfg7N$J^ zK3LEHXq3<1r9lf#<+%B~*iy{1GY^^$KeAc(7tMc-3TxYTUWgJ}$dg|6?des8B1P?S z>#HWogUCS2>gA`Cqks=1b-%&W8E{oYr2B+S%eIAey$Glpk)y_|gRsqCym%2D895rk zB4{BmKI1B2dJkG3AUBbL~g7?L_l+f7kX=vtyxmG(SnQ{sC_!r38Nje0^oTRYI1l95{||7n?0} zyywyt7Sg`)Rp|e$ag#x1TME6(jtV5TRw+=y(Tr-Tx1Fc8+c&AD@RH?elDqI;*cBw z4N)!R*JwaTPa?{CgWks7sSpMV(S1Mx7-mQUDspO6Wfg*s9Z(YgIdk#9@eR#<9Zz%I zz7(mP4;zFXZq0i?_>Mf4LVmet%%$7wKCg$0+|Swf7?Ak-etEIBr-=s=@G01jtrweK z#5Pzxe&O_J@w{Dt$scP5MvtAtm3OxvDrP%Eczg8~6>Y-#{A&dX;5(&@gC1`tsR^mT z5oT4j%%a80x=z5_+#K6=t#TBa^qnJx;f@ww9NTki*GFb*0VnMHI)G*97sFW;B955H z0Ypb(lfM7*mzht}W`TcFUBCX{YpU;q?(_Ak3F54hHIGVz0Y^$S##%_&PC}SzENK7thJHj34u3E# z#{1f445AW%CS+YNo?|A^+5!0xDVv~N-M4ZPOC{QvoR9-C(F~&cj1L*%F=UncvzymQ z&uSrL(uy4X_$7f4V*o7{WSh~J0{}kEJeMpe{6^jQXE+(gCueUHuz42?hz`MGU<^8> zD>oqu%L+e=Lb=}Fgl2N0)rSh32c^4nO*BG&uJ_us|E2`imKwr#BPran25u}mT4+u% zAyqhHi(m{a)MG!+-LxozAa83vz(n~BOqA@No}M{2JCIqLwYXeqcX+T)HHqzJmQKvh_0_0 ziK*YaD`5-I_7MYo%Tg>~BwkrWWrs+1O(&gKbjv<`@s5=Bj|Et`o6@0hTg}G5cKful zsu^sRzFR1H&f0#gLf5-K1L+*`QFw|ZUN$iTB*3Or3*B5Gf4U%?Vu3E~r>QqvPt_xl zTHLbLv^H9X6q=`MgxhFomtdwU zYFmQc_p_RO3VtVyZfoDjqKLtG)i5&vhL=4?pjAYaVg{S?fko+hsLnSAFz+V@dyrZg zlw27#jWld}(a5+NxLX9ENHc*Z**7T3bfXsc&(KT~ zu(Fype!FECGv+5uVE6F}>=$pbC0AVW89Xc5G3u0ycEy4YmL!HVPe86D^7%S%TZPt; z9ljv}sDYDd-VO8-POq>gWlZ&zmH(gzFMAIGlWJaBM^`%QpRdbG=j1i$tYPjcml+H{2nsWGJy4FDw5bo?a(VPk$pT9a?MRA5Ge`XpK^Y$Mnn_D_DX`=P;0F0?K>1>z;j%u< z?{>1y7ISeqbAycW7CAL4;?U2JnJ4Gs>};*?0|8cQpK_=)l&0W1*z%2{<+=_}I^v4@ z#{!0qJ1tZHg{&3*ccAh-V1Y*kaM&wpv&`_z=fBbgON@0R_w~jBrlMSzrxJ7?oWU|D z`>i?fJI2g0ib6K7ZPVqBwstsi8Tba@QqnIKCj1KvWcvKmv!tN4O;llu63B^wPj}g3 zfebds6RSKnIXJHBR~Up57S7q~QGs}?e(%n=DG9BGur5w+%kwsoQ)Zk#u^O?R_Wmq4M~(Y>lGt#xR`^Vc z*r%3g8ysi+OTMc4x32D5X~jYwDu~C^zhCE*?2_nJFw*}S!mhgLS#2Z=kYhY>3oLl> z=sxVQAy2K2D}rWuCCYJ-j$ZAw|3mEp>ozwQ(?@TU3qo+ofBB>31ZVG_VjMZf+G}rb zk2+)}JOEm^r+N*KwD}k)K~gd~QV2t0 zYE*FnDwjB!Ack6k?_io0NGFm%nwJNEv#^4M0q4u5zlj z6vA*cw@p~!*VijH59MDR?^nX)>J9ixMzQ#-t=yiX;`~97ekissZ-ZYycCM}!&Pt-S zs;b+4Om-V&Zt9aEFB$5a&p~wi3Mv1}ae$4Re>JA-0FjGxe*lM6BlCSrc^tyAIeG}X zZg6hUfVs|GKDaz6Mzk-?j3$A{ggInUB({lM;mQeK%gN%&A<>Y@hoCmFqHaAz2YXAA zx=+pB071=HB8V0KLKeMPR0y(V?%z>W1MDkcPx`IyOIL184TkLWnMavnML=y(5D%-+ zT;8}|*9)I|DV7u;EL!U5G^sikjBIUO#mUxIe_W`c=AwrY5lJusW!!Q2??@?U3{YUE zpmT$&Z;T9t$Yl77I>MJkG?z!r8!a;0kS-HkZVa0A?ETNXPM=kKd^EjBhfC*YP$Z~5 zd>0>3&dk^#w34$iauIWP#WLcd{3AjU2)@cOuW0wLTT>1}2oZ;kZ)@hJ`^`Vcdi{ed zpCykJz}(AA!J)2AX-AFn87b9CnT@RPNol4m2!8c5AZ4-|rA6@TqrtPOfbIhAMJzVl zpf?jF$GHIGxY`aQ{$KZwexy4BWJttOY6h_fhS7Jy5sPM<3@kWmuOhiu5LY-f)qTC6 zduZk4Y$a@t5_SqNmU9N#VZ$ni5_^^}*8j}VNLRoP4ww~lGgriWFZIXSrlcnOq<@e%$E4}`e#TOk`rRSWKy?x@!1S()o# z`Hz&-NCI#M4G`1Zd!VF6N?NnpXirch695HRFcz^HnXJMg1dGg8Gl9-bAW!Hce2YmXpyE47s6bZd^ccX4lXDEZ+nSb0n_o#MtVZ-zM|PI~JL*}YGHD)Pdw!<=#N zFF)>NhHU?fN91CW*uin-AjvQ3i~TTT+(BudT^4|JkQA!*hz8jsvYA_EIFy0 zC0`M>ziP*3!H4EWHMWHIvNC*mDmBA!-`yZgWk@3{5c)K!;hjBRU8L|0j#}-gh4}e3 z<>WlwPh@U<26zbK^R-epL7xuf>1fmnlT$E7@~VR!-NiOQn6DrY2Vt7M{P(-+T&6UC7v_P;@_ zVnjHy*t>9+{9Hk^v4%{X_42V7TBY8|=SANPUoubguzJ8Db#~tu-1lJlBEN4zDKWyqC+ zYCa?==*;KJwZNS6TTH5cVXLDILo6U!FE^4uj>pnO<%#QI=kUQt=b1IBZ$xRum+6o8t50&}XNou{qGSMc|`8QR@Dkz{WyRmbw}H>X4j)! z)^`SORl;n-bA==87yqRYDOcZ;4O3mk*jO06GVRibAG0bcY@7D@`+rgoY^?MyNO`1G zg<&eg?CS7PTG=nC!sso7QZ|1A7)WD=*zN5FzCcy^sg9(-k&%9ksDRai`c@=Y^~(2Bl9(z4&A15ERKG)1{ zOL1r2;MiR^%}S>~CP}KL0Ql^`DRP>|mWD45m_6 zm1zK-B7^2He$CGmnOD46Sz7)^{eS<&Un_Lvf8W`|y*?TsJu))8fe@#PD1c!22*cib zaAhFey?ZxMcb(CiPI05|11I2-{~DcTCP>x-3%5G9c_m>fF$_CAZ-0akf!AJ1gcJf_Y$A9bbe2$ zY|EOA^Rhz=&;U` zgIWRmRFBedXuLyY@GqV9canyq;Ye{b%!^hv1jtMr#+q8lZ~!EAd(a0r6tB6rZ*t`k z@N!NUS7bsiUdgQ~3<|vmk|0_iH37R9TY2wK{9h^&gKarYZfZ|l)<^DRskWgl2L{m4 zd5{0V0IC4@)mIs8gm1cDC<)^bmtcf)4RCKffcy*VgEnG<*EC`K8+)iP)a0y(s!eZL zxN3~;hMaw=vH)8)oBdUdkz@^2{TRDBDn|CFuJ(@)Q8s-sRS8>I>Zm!XPkSkp=x{f9 z+FnCMUp()!L@f*Vk-B-u)?TP=AQ@dKW7dy=p@5eWs%y4_q$3#Dbck61eL2v@-uUo$aO5vdg|Mga_ z@{-c!FO8r^8j`}0?rGJpVXF3oBcdz~v940U`nfnGR6u6yL7~w&#LSNtiOkdav$tom} zN<(Uno`GR0_B4W{QW1ejfz+sum50ja_L?SP2-mlW2?

U$IEDupV-%ZS5iViRTqc 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 wUM@)MV=osk=kz1jZ5E))`<8bm~4 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

4|I~Y`ySg`IRNk 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%0DAR2MfW`N(hfxxfa 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 bk}Bsevn+eEG}B@c_}IV4$)2|RUormy<(BN| literal 0 HcmV?d00001 diff --git a/blogs/deepspeed-fastgen/2024-01-19/assets/images/th_lat_curve_mistralai-Mixtral-8x7B-v0.1_tp4_2.png b/blogs/deepspeed-fastgen/2024-01-19/assets/images/th_lat_curve_mistralai-Mixtral-8x7B-v0.1_tp4_2.png new file mode 100644 index 0000000000000000000000000000000000000000..f2bf11cda74bb35446bd366012851c2e949958eb GIT binary patch literal 105718 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 B+UNiP literal 0 HcmV?d00001 diff --git a/blogs/deepspeed-fastgen/2024-01-19/assets/images/th_lat_curve_phi-2_tp1.png b/blogs/deepspeed-fastgen/2024-01-19/assets/images/th_lat_curve_phi-2_tp1.png new file mode 100644 index 0000000000000000000000000000000000000000..7e92417a64fe7b36c70be4bc21a03cae75fffe7c GIT binary patch literal 1255169 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 $+konl0(A6Q?mXZ?ZShzbPM1 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 Sl*_Sh!$ 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�lvVQ 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 z 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

M`~_+2OU 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

`Ri|JbUG7Nx5LVNCeezAY}d2L4Hc1S+)dcNOL zR|)@ik$tBBxXue(nVbNy$^#%#G)MlNW{eV`5l=Ia~Yr%FDoTwz#X_g_@Wi^JVaU?)7EJ3Uchp+_YMvk_tW;1aGGd& zKflSjTmzbnn~vSYv~qwH93V}L#@Tdi;D7XC@A@b}6p1nK^N?Je@^b>)&iiM7D7a*q zZRgli`ZGQ9<-QF58HI{AAeKA*^ES{nordZ0eBnG-LD0RunTbq=RB>RxO$|7|;_CSd zW77G=1r4V60l>aU&5$n(GO^k98D>Ly{3GSQP0$gFYVSxIF3CJ_;(D2Fc<;b}26KWY z0QmD2AIKT-^kzz3FaIPp*=$5F50miO?|oXjxD-MsK(slcB+22kHMlNeE8B>qI7cxQ zy#e2K_swr1_|_h%Rs^8c3I^b!w!7n`*nD5cemaqZpOoM{8d!}|_}mw74oEo&@wJd$ zQ)72P(5jEClf{L*1`nAWdKNoc{f=Ieu=S3msv`m9?Qj9obK&Fs!U|jy&wz( zFDh{h%l!>ns2qlrF86A+jVt;%hc^95s*mZzfY|2TyqVo}45lsY)eW6bWsC|bhgezG zmTv>>8537J%1M}ML6Tm_Wzl)gn8PJBzy@->IX;&`^2xQ#!sEo8QiqOvJCbSi3bKiJ z(IkI3--EVDrdB@Su4XSp-zo~UZBDEnkocO`yz~hh1kAMn`DN6E{~uJ@e`n8HLW@U| z*JAyd(FVoq1b!Q7;3~%$=)0M}C#q82e*Gfz1T0UoJg4QoKE12| zvm-yratYU5 z{Lp%;+W9es2{8Vx=+B^{tV{*GlcY6(QdlRNo221FckG_BJbsP(Pbd~>8|Nu2M6d<42WG2tN!;J2i@6d-1A`vfkQt0H zX%qf}v3Gx4hF^SeN|tr0_>WP$`3gOA_MNjcf7ch9a6sX2)a0%a*x5S(5@?i?w8)KI zsE&^HCBx0tnV{xNl(&oyU~u5R7=Vp(n_LkUN?xu^Ft7v)@Qs?z2)|?=&w?P~+x~Kk ziSuJF8ZTFc$=`eS@-X9R09hw^iCRGs;J4=^^vQyEM)4v^K?e|uwg<7_oP*`we7 zt5`CIh}p-zWGy@O(MFHr{B+VeO$hGwb@AOWrk^AHz1d}P>P74u{l_ilpOh3SuK>>( zsD+~Ap(aARP+!d~A#^QIGPYS>@q<_XH-dL#)XnRT-Z=++C#)iJ3TT;%;a=(mS}BxZ zsb`-6DvKm=>>S-3yfuKoPj(FD&H=0H4>COydh8%^ z@>gxGQB9o!`M*Fg3W4D)z-O@$aPnCFQC?}wN5vG-SK+Mbn>S~6vjIA5P^#8QVCpNa zNfyCzwY}`pdWB7OeSd5UD~Jfeuxep2gdn@+C(182&Q$*O&4peCD~2HwAed*%t8ykd z>8o&nv?3z!r&^&YOLi1%e~uaLbY(gi76i4(LD2jqi~uo>95HM$iTFYaAf=oUrw12h zZ(kp)ErvZM#1f1O9t)O9#yQSOEPk25H&)+aSziKtX-ou>DUC_aLy=s|7gr9VgRG}glY$u2(;!Ho`ajg111;f7cs~2A-=smwS^qSy2rm__4L!|>LmK!Up%tx&zvVDj`3a|_r`Ul~w10aom0sIS+1ynvco9tBI)J4`eKWjE` zrJPZF{rWXLk2BgAsd$t@fwr>{r31Uc0bsRT`gflv^t=cJXYIiywad6DGgY1|Q_=pM zdJyhHUT$v6F6^VUrkNRp@p`II{i%EsciXY9Vy+fDsJGnv%b!GB?68%9UvKf=9R8G- zD7t2}&(twbD=r62v+pJD*_6c!I9^fTaVG9`oMVNp21K*MY<^xXPqrjqm*4+`-D+co zshtFDA^TUON_uE?SI*P!#Y{=8giQ0?{21{+7M3z20#y7iY2TBr*hL%XA%6w5n)}pw z|1mT?K~p|?T?9q2pdcCMy#*ka1~TgLEUxGt$QIH#S6;DMHc71>hg=wbiL7_4kr2N; z+Z>_d?f8}0UoB&NI_R+C|K~eLQV+0yPLj`5AV@!WKn!Pqiug9paV{w$zPs5qAkp9v zCJ9P_z87pZ3h(mxOcLbt>66wba8k?|225f+EqY@}l`(P!g(Mk7w@F>w(>ufsP|Di#nTA;#*Ut@BPpM*IeP%BV zRw1!Y7~FOo!QrQnda^=9R7?Kc$^41glzW^tB@3jS%byW~Cb6Ljifd&a!1MzKL4+9B z1n-aPIh594Ou4?>dk(Y^FM$#~WKt{_{7k!$c~EbrFg}=XCor|UJqhQyyt|l$pRrR! znIdW%T>=N7s-z~GFDZ68!6{N$qOi?&vR@`to&r{;&y~!O_%Yo9I+jTsW5@>uU(99I z*$1#07-dLxW^0e)791M-CuO8}F$xB;CT(DliBlz%`ON)2S>MSM#^a@Vy$92q<-*vsB17N&T^I8oAfa|6h$s6?0!(N`7 zy^OSJfWr5SxDW7Kv$)o>JoKERVBU*osl z^2EDGJ~eIl^heFEN#)%IB-;;sy`z76GGz`pm3=&>@;{pg1Ja;yWSOR@ZYIl;!X@#R zl{K3pY{2tHUfQcfU+5)0P6pg;pknIPRw|0)WhSh`-q)a*5`&>GY{(vA^~zl7FxNK~Q9DZc+$PUWTc3NL2@zd-mP=!wvgfO${J@5*6jGKRGwS*==wi%aw>_t#}sy zalzAspf*bU_pH-KXRm)djZ8?L3j!7WK5k9ljeW~UaWy8*-=i3xeoOG8TN}s?^5W$a zpRYzNepK?X#*lxCYpUN5*Nn9Eprruuv)xB~E(d_W?(-ZqzwF7nL&rmc*7bm)j|Jci za9wQm@r8Lhy89g+H5P58wHS^lbgt#cT_ioyn`c26sc zlh&T;iN54~q==r;-_fJ#jblRmmT_Mu?}JIUOI(SLMS325H#jjdm{-$m5Ybnh{xW2m z!gZ@^Z)yZRO@~u#);3Dn;-$mVwN45d6CR79s(!(Eoeib=9pn4np`7r5%}q+{N#&2N zt>pbl<>VO|;pLX<_;7ewnUzLlkFu`VdHin|pN6{mOy^ea{g;>gA$lq}jer;R~4-PtQBG)}lHwjcq= z|D9ZrXHhzaL%VrvMV|j_x6nD9V)sGCjJNg`+xL8gFrEs3Glnu7^n90ERA~J*<4@$# zvP~+g`Q!#oMpAP@YF3KgG%)zt+3KX@Glolyd$x|(FypgiJdWMubz|m)eoeyIrmFWD zXiOs?s!ty7a#WZuW5gUA1AMC_60LWAeBI|1T3u36sIaaCt|DM0BzzyV#?A4q#~-wF zXElQ5erd6opzUu}idoV~T)WG=7$ZmT?!Rz1PkEQPE_{0~-LRVum(RJ2<=%X# zFLilGhLscbRa1B?(ORC`mcFc~$6~99;hwBt4&EWdqRiX)Xcp#>oS}Go^RN7jb-KJD zYk@xxW$qsN5xbJ=NW7xWyChO~`FqB6{&rITZNdHzivQSFE^3=6{>Mn1waWm z*)ww|1=*X^;fWCUM(mpKIUxjZ7p9t{Hd*?dzq(+}Q2eH7ZCi{C^VZI&=Ut0-M8pnG zlt8sVb^HMaa%7jQ%>?_xb!6wq6>X2waMGgL0)`r&aZkw%ST9!4p~FmP002U3OjGA+ z-Szxc!s>U)qPJqQ8oX|1N}e+3N0dr1z+{$HC==Hb(Vi$%Z%yF>xROVOjyeA92kW zr4f)l6f>FViD4hgh`T=p|AjGCXh1GtB(WcBM1uz zP_KwTpE_L0U~01xk9tssKvJ>&n->6;OYW|j>hC^7!4`IQK3Q%&(9~l(D1N4clE`#l zi`PH_-$-;~zkYRqU$JrktTJ~IL)kAaTt4tGN=~yW0>~k$$-7-4Kbe?dmMuy9$YgR@ z(C8HBijY9}kZ^(`9oo_$;EUFrILTuVn2k93LfC6nB>e7A9&-@Q{TPP~(|+Ew>)sZo zRq}iJa#`Z6N1_+LdoFG`)Huc+tAfzsf^}-s1t+(DHB}!2pt}Ek;?h|_aZA|z? zh6A@Kse;Mf!%lU*Qp$F`(QJM!&| zbdJbBj@EzFZgZ(GKym$*%HAsxLrpTl=0E3|PjJB8N#e2GPt059(+z_dg{V$T9;E8V z29Uh|BV`!pGepr^SB$ftY5Yy^#;R3r3cF=P;GPBXB|o1VUuqt?Iqrh|W+ku*AA6B; ze*tZ20X=n^mK%`B*Ck>>Q!zV`r^d>pQ8eSV^@%^O9o9gk1opAgJ%o2CPrE06y2VZc{eH&hbbG+>wmHRzhHr zHfX{|rm=c~V(|lz3*?W5j5K3_wAq07=A*aWw+7f-2W5cg#re7MjsYXab|B{kTVe#7 zgn2)RNl7AlEB1?CAWYoz{eGp7m#7-o4*&z`>$+*sva_IH*f%xqk=jKrDLnp(Q&NC+ z(|w+G%a{o}_vy&`mNZAYec_L}+`vA{fu z`Z3T|{JW}`MA_k?BiNC9v14dR>GD$i;1&=*0))=LN}P9NO`Du5nT;}lWS>NM075ZK zD2*dD_PSkw4`5i~NsPO8^X6V$0Ee~o{l|NgAVRwgq&Gg_CZJUthzkX6+SJTdOKJn3^cU=-YSi(q zt09uIZuCf z+{vR{%AN0%+8=z#x@x`}-4J^#wSbrlq34y)|Hn8k4pVBR-1DcEydRFLYK)4CgLU_@ zruuN+o6J}Rw97f%Yzt{R%1V7W>zbPOYJ6lQA*Vpdhn7$G ziP$?urat4GKY720gm&NE2|)|L1AW*3YdnXlCsjem7-8xRV4l->P5-a0%t3tko5>hp zSK@t>>OMdcaS)f@3I_#SJHxK_LZ1=yr*YyK?lBbxs?UiMI_I`K3gx!U@E8pGC#}E2 z@hKm*_GmU*^sm-Qu9!;$rZ>Uj!VNX$TKlm(_W?^>4Xr$Iz{jtx<6ElLQmjZ3R=Zthk3$f>#}vELfn z2l7mZYX8s%`&@$l0wbpSGul@jxJ^C}yp{b7s74{@$&~lzX*Su^Zy|>t7IzylBy@+F zEBy{dMQrLgzo}R}PQ}mIieQcFR(Y97*KjZ5;hGy~-ZS%^wOZ;nW#6u3uPx`2;$lEt zVtk8?oZLS%6ZGo!>)+LDuTX%Z&p>DL?^zEkBkpZT!U|VoSMpYD^cqTeEbY8MOJ@HF zAZEt+)&)!IzH$Ew8>yX**U+7GL=`FsvffX1#1We~Zje0hC&vSS`-F{y9C zc^i;`>F>y{8)3Y1VTb}DZN6(==?BM>Iy$~I+r_^Q8JO%T_f#x?yXl1FEcjiyn;ix? z{!j>wc<;T6{)PmFBQe+YFx~G4zj!!#eU#D#eb|3lG3(WuYv*rY{@Jy{R)6YK)XD3( zjo+`|F_~ItDhv$?*(wpm8DHoOl6Rj7=MI%$drIKP{|)bd)|G%n#>PM;=!2zYMU_m{ zT#`f)&SmeWVrD^L*IZ2X``r;ByE~y@Lo(<{m&TCT+}hQ#&J_|dbz?vR z+wku?1892|q=h00Kz9HLO8)IA|6AXgO}#P}J#*Vx4J8{Tz&LJUgfE|ORWg+NV4{e? z(;&Kio|yc%gWDedWZF$irQIF=xsGk69Dsa20#|#WYny{uV*@(=z}ZaJ2cJv9-%~la z^(TLPgQGkSsW%X=v-=f?A?4OzxkEJ^D`oBm3_F#XZH}UTj%yc3r4yu;nFIKIy+VZxFpolYvhNKqVpdp_O|8 zeo?RL(aJn*7Q4FFB70Rq3V&Aan@szx-YH5PX@Ys}0=Cvs@N z16KKYwk=P)4GMtSZNIZJSt`8+5tK3=^Lp`Z!@aX1S`#(Ab}!v>6tI*fDc;T2_Ad?z|TxN~SJ*tz7l}4Sdems)rb&FzAq|4?S_N!9v_# zg7$G{w>XbZIv=V!xfQ&DPh6ff9(+U)1}uW)~H1dvgD1g`umqW1xqR9ZUSFPt)dV3R6Wpb6HtD#E$Tk1C$l^94h(*b3SJF(_P_@i?HerLS(Gocq%*I2wAk7SR7en z#>*9~Q}{=VCY8hPLWy=5{X(ra3`jYxzs*`GJad7%5xk|!e=e@&4yszYJL2lYZ=BV* zO*_iaZVs?*G;OAHn)B4!y!1H?hnGpdZSvjKFSOVQwBFQhev+fhs^C4X0nM=kS(B(6 zK1=>mi4RgBw3%KVP^bx0e2Y0;VJhAl`Zat?>s#Q^W;h!DKF;FB?G-JegCSRzC0<;+ z#x0I69_zB zt6=%3s6GcC@}1!il_r&HOOnOCs_R|%D4|pAYPk_8=L_-uR&d)L%zZhuRS@Vo9-?#Y zC7Wm97z_eXZ+`Aelvum?&GAT^uS$!rj|*~Md_TioCGraMv|Yjnu%53pd#*mH_0tk_ zpP8%Po|8?n>i)erf#o%{0A2}t7Mm;^D2)#wAAbxia`S;c@A*&VjHeEIE4K~&tZN|U zz>Qsx@S92xseXqjnV^!d^{}-zg$#ADgR7_-rDG8PnmVlGzFmO%b@+^@zTu@dJjt)l zuq4s*_IK2btKWWc!;XdO0^W_&etFbezIg|l+k(_LUKW~yf_D<|l>74w^k}P`H8%VB z65qItE_46KfhnBRsx+%(k|$p|-IHi*c!o!2Vzo1le(;{I^(#X`T63K|$Kc@d0Soen zlO`krXLE~?6s-(rGZZ3dpBW-9!x^qL@hu2j;sCjSAmN(mNkHj-2SGya?jws2`C%GLT>sMYswQKqoN>XUoT3COz-6z{w>6QY!)7M3knD z*EzIFI@5nN_Orvx_NO}TB#+b{(p@F;`HS^zrXMs1;--OM(9N`)jG8Ax zZ5oIjCz4}LF|NAQ`AA{^F|ESP&UA%wdX-@zov#Bn!~@-}1Y?)FoNha9G3480*5qF` zW*+wZes!t0Y=V(vwo{tEf4jzaL5_3GM`kWmEiw3SB;5BlLZx zhCMpw@7we&U&Cr(>oTd@^)`4YiSQcdn(}xd?8e?MK!3u7Pk+Aq#0}G8A9)kb-AMEj z6m*!Sa3|+;dXj9L4qC1tY@Vjw{Z>|BVgmZ$c#k_~nL6nwbo_dSPL2@NbnUpcmY8EU zkUb=MW@i8XhGhTfrQ2m2%WXdmVSspp%TXq?=Endr=K7bb{mEi+_IXjAh~Z5|9CA2$ zm&xPYde%<@i_EDsxhH=X2;D~pfNLwx6qL_O3VasUFd$yya8W@cQdOI=H0@K_ur$=u zgQNF=M$lGgUzK9w{Mzr=N1V132vx3m#ki%vu zUKI~C$0hcuRsTKbn&PR{diF*(TFarjl!qb#sQ1q6wv>OLZL6eU??>s`QM_Ut+?0D^}4q8Ogbw=&nz{|MKwW2-ylQ+u-X~ zMFrd+Aj>kTL4RuRjC+8p^jn${-r~P>rOg|VxK)NhXM+hGM>uK)^_sI!lsSzlzAzL? zr7#%UjC6TjWu#0RU*|4yPPriJd@mUa_NK>}`<^AshX3yw zg(U^h{mQy&>m%03+l-r>T=^bt-$yM4v!z?8>jA?&`m%rE(93Z8x zaBwk zDj7|l$O}eLC74g+54i*R@Z{PLKCGQxu$KMWM*LhRXQ=V@t?(7CzfyxM7tY_SP!1K8 zIojp4bPbGcE4{DUZ0yhP_Ga9y{$#~d@)!k*xY6bV>+EN?vqo+|w200vD$V6aa%CtG z6*dH=I{VX7_m^uJ<-8xiGwAP%^ns7}#^;2QiVx#V%0Nqf=|K`Wjc?HJ#nE4|x4A|1 zaVweu&)f`;GwaWP9@u99r6r{;{zF`7K~JNN+hi&0_=SPrf5u4*@73Fzx=)BFw$#|$jiq%2OjEt;;ruqA^68>(wBI;mWRun?l_1kTAL z?d_>*dM*cH{Cf%(Z#?vcdHtUk?S+V0UG!!^K{=Ek)}|yYlPK5zzrTv(D+)vfTgSInlsi&3J`iL$~G(Yg&yc?~Ot=t6sNkPu=5w=~Y zua2VnB?Y?raR2#q{tr@I0~FKB+TD%omrXHMS&7=dH8c+x=?$vU*nTQr*YF>k6-?Y+ zCYt=h-w_}D`etrrT*hhv=HC+V&+B^g;9(b6-piz7Z@15@#L+`#%Z%%GS$zxkVinh_ z!XxQgLAa@iW?bK z4Ma+vL!?{P3%x3K*_C8^{@D=x?F!T${MW_Z6DP(N>a_~Dr^`45u`Jh}rQBD2qiZqy z9lmIFU1^c2n4x}zGm3*DvR?y_rpiW3yfOs6@<0 zXzq9lOg@1g#xS$8f z;W^$SV`*3|seNp3`dY8dTHjSzhI)}_QfwH^WzLjdU7SkbIR1G7G4ASAR`Bt~MswhY znQ93Uml&(Wvl{{1V_&9UGif~SN@o>)#9rauBECmdklYyeY9W?!6E+#f!z=<+tMCX2 z*#B6dv#0{sDSd@1k|P?Bzj7^3I85|tjonU9HJ72vldU7kcG-fbEYXtd{L$#$;^f$4 z;IQ3z)VDh%W?xsf{-zt6>ut)L!q4c8Xy?3*O&q#=c~qU7Mi>{gClwH^12YUQk+S-)a{(vq!10cUggTY+3po z!DK(!!Ed8GITO@4qjR^%y8fQ9ABS6h+-dycxF)-8LRMEPya05GXR+IIT|ccz`p%2o znoW}eI;7W4o7Ukao8MDDZV8BqSKZt z#0s5RF`dng^E6bgAZ<&rTUPGK!2Ars;4xPeB{`oj8((p}UBq|1o_eHSxenkfw@N@= z82t?Ut4y_W?2R>9v_Z?_=*cl+)zT1%lj_pQ94~gLNdbnesZyp=ZV%EwgQ?Ly#RI0#9=jPZMrPDIF9p3M(ZS?(-2W zZKi7eS@lc7xcvbniR^?IV}QX}plse~5p-Oo8^iD+KQQ+w7-RxTU%y~k_EhkM%M z9Y5W&?F5g|UYKZtG|{w@k%N)8!XB)~=6`J7KHHmG(hp2ldl{@hpEK+0H!+%VcLLfR z{+hz)m0Mk+y{i9VD%H>Zrg~xz+rQf61)cVrZNJc=?D?}7`lQa=ezPKSP9yzul7T%? zM_$nJ@NyLq9eHCYdiz(m6dpYudO^EWe}+%1zk-_snV8BN9^gl)^&8R;zsi%#4Jenz z(wEoZJs&S-jpul(>z01}o$dlRJ+y!LI}T_#Rw?0j!!H|;Ga9fxGQY?X?|BSF$KO2u z_n{K^&roEFEvV`N4U->SdsT{l;k167v+(5PqE6}k023}q+1I?bc|*>aHiqoy z*J{p$(`mjAII14_N2qP3J{|9S%DH^g#C`rl=-_?KS*Of75E=$D{z{9lY8nbPxF8zU zcE}=20V^h-%YxBNG};Bdrjv0p@f+ta4MVz_-E{g{8v2;`=4hZu?+qG=ExHvTr5?5K z_^esidk8s_>j8->O!v=_fjsWvVi{ zYEjKCeoVPHpLyU1>p%(HfVXst-h8LuS+}-?8FYW2X_2XQ{jgaTVPb);P8aSGkbG*F zhG)ezvi_!O;KV zvdjms<%NIDyQz*Ddoj&DW>*T-lYOA!pw1kYfKa^S-;7jd%%q$=q&$)Zi!vv2{mN2` z^a^g2`1DGPgLQ~w9;e))Q@MosKi``! zJ=?Ny+dS{n&wg4G?R#wuv1Hjnn+* zg&Y`v30d2$+Ys3LQFDs1Zyt<`E2Z2;$Mfqd=sYB}b#&5o@iieG;;ARPjO)&N(HBDM z%^5+<(TO6jWyAWu6@z3=-^;+}sfsm&eZB|2tT!vRNN|3YJjK@CO-lzY5U@vsv9wpSl2x!G}%%4R3Mg*J_ zB+8@K;Fc)jcAD%nQ}tD=LG9ir1~ZmVd(5!6K#5Ny@-_(D%Zc2d|BvaTPn<<)Bk}l+ zP|%MhMPaU%-N?ZPWI{>Z87<1Qn7BRlSH+y2S!1H0Y#U$5hou#)S4MY3mx*bN-~I}Uc6aiRV6elil9xM@pi}3One8nC zy%zUfJ-lxa!%!xb=pLw$@)p^GBq=0@E@E63>&*qhpeM!eRe)Vnljl;f4T9D!7}3C` z4UtUy{!o8*)pv&E+%KZtx%vE84W>}6>GC^~`RQf**6$1nq;z~bimi$g7pVsU0tF9b z{Xi|eV%+RE7}R~o$%HrE73H&`*8Eb?+)ysr*J^IUx>=yjcF2`4mRYBULfrcapv3&! zx&aFUV4i?_T_%aZKN(vv3REJ%Apg%F9I%wI&c1W1Y=YDm%sSdnv(=Me7*u_g@zc*I zx)Fz@yn+MAEwO9$`41o9p2=Q_5zw&@Sk=<)dUpq9fM6k{NLi=(qhV%sIzCBN7I`%W;7!2=A3t5!yY1>@2XkcPE-}r`4z#l3XAk^ zBtqtcIyRjI!bWwZ)ou;?3sB>^=3bjp#9c%6Z;fp6ibQ&aTw_MC6of1>E2-cD5gq=h zx1p1~EvZ#16=9#5A>LF#Wp+$ZdEvVsAn1n1%;Sn9uPxCtEjL=cr66nY=RKeB*AIA! z5y{E49oCzQGElT1P#Mn^f;uX%t=^|OBZ{JvMB=kTTMTqd3warAsC<1oBcZ*&J2g+F zm@DV}zh-BlCF$Mu$h%H>;Ujp&A?-dsnzBTIgfZIiqX`+O`S|f%xeH+gefmbO+Q$|n zHiv(;(y#HtLv#aXfVOY8s;51&^@~*4xh;bWCLG^Tsr7lGp(<&moxc805*TEXc!&^I zs>W;qXOQIJBuUn2%;`Am57|PGjJZcZQC7)|rLh1X0Ij`on@VZ8C&}uFAqCoGg zmcI`Slgem~Z>%lLDy=Fms;Y{;TeV~3L=WI?%F zEL-Lgm25Iy!#PxI_?6bAPOl}asUIhY*dPauzeYQsy3H!C5C2hRocG8N@@E6(5L)8Cx6z*Frmf$Jxi;rBij#6Kpoh6VJ% zaN3ATDQQtbAAgfb;>U)f48W?IbB=Xh3Wh^`7tsb^VOcmh^s>S!%-u;&rmb>-HiuN6 zr<-}ecjfe# zyud(>D5goTp8ESfT2qWJ1zAq4<-GoTPoTDY`K%ZM2dDdu%Rb_Y8e-$?U-ebU2uBRa z#iSY~3Z-JiT*lcgruiYZU#K>G1nJuzy%fuoaa1=L;?yNP_hxXlnI66JKH0hIO?_2q z=BvYI4wsmwUZCZqJD@V}j}~31@5>{E11Z2|``o~jA;NT8DyKj1H6D_q+PY4IfYMqy zM-~rSGRv=ClJ@OQT8eUXzXv+N=#fJVs6e07<%L-svM}`^x>3vuA)%cD!l!%!(R2EO8SxF^o z%<9*E#~jX9ta61a)9)LEh$U)9us%^znQl-X!{;*TqQmH`8 zOiCkf)OllgXyj{j9E0gL#S8Nx%Z%x7{lzV8qt}6yYi^H$d9^^e<2gmhz zbtbhZCA;igg6cauFjtQ$yu{COW^q=x5DhJXl6{GZ^B&!IgZ4iyJwC)mv?40FKWMvF z3)Y1b+bp@^n|@++a;Qx+?)Gd?v5>sXcRm?&oEXPW{T>pA^wp?8R^6KS@<|Pl?9r3I zJM5>Qnt#gkzs4ZREnX<^Mk8~ihce~4cEObuMdxgGumYEJg_fZRZ4-r2~mx%i!@esyaMS>Y$Jui`#J<3Xw&3t+v|urihLt zs3ln>P9iZNB8m-*cXuM7Jhx1D_xWk%1%vo;$S>m7CMT@>)GDm9EO?Yjz7gFY^jDIZ z#We|2>h_krn+1Pk@bA=K6_kRyX;Ynh7d1Nrpp2Etof%dJJtf|CA!P0Xeg=J5Tt0VDvQ z{OR3^>-NpTgv%9E>B!CQY@eBww}(NYQ=ZKMU5j&P{izkYDd&gP5_`(G6fQY+Kd<|6 zD;FZex8cQ>h{{iNoJS-OI{=r)%``?H4!5QLOkvwBJ||?8&A2DNUzgQl2T^}hAW&~O z?K{lZr{I(vBI;%ncUtR1ofIz{1wF@Kc?#mjSF<1$3;0HQ^0}W`C_u^) z3i9tN_Ke&=b#YVZ@p#Ue#+wbDe&RBFn#oMzi48f8HWhT+ZuRbT-W!vnl$eF|oriLE z3y~UfgZqcsNkDM81vqsYrqLBRuy500i6U6 zAVEK;8_soKNfj{SZD?0B(33p;e7vI%6tQxE8h4otB^`4*L%M5oZ(Im;dx=9hMbp};R3O( zbM?J2Gfp`A;Lec{V3}!hKUZN$ocU&j4$e{Yc0%u|u0wFh3%`@6bk}!>eK|!XF}C$G z^+$>Y)|!wyxL*>Yid80ql;OYTKmU(;5q`PMq~|oTsVa6(thSnPhnIV$YweVxWfQ4>%}5T8_*2)$Xx& zdBsw{@EE21Y1{o6=SD2>?xA_=K2?q5F{aN8Nwh^Y=Mp^*x6+L^d5|=5#_|rD*e4tv zv{R5+fOr7o$cPW|L;$#nd8{&T)}s#+BG`Fp;Co>6%gKaR9($5liSYc0z)eQABn{f! zh%Nk7{g9hER0~ZEP3oW}|2%Z!?Dh)P#2+lbGczhyEKd~ zm3i*OPS?sTqkq7w>3SJ(T0i2%&C!VXq3s5MW-_*-#{JQn<~HmF2?Wbz@A!Piar#<$ z!HvzAg+Tp;-Ja6@#P>q3<;#@frrPBKE#yDWmWCO~1Th(DnABtdj0~zRQfVvk(W-JU zc;hSl;^xYAqE;oS%IFXN-n{H<`HWwjXXQ>!Gpz0fw}E_N_;A z)T`y2L$65pJ;aFg_Uwfe$knJdW~#=;3gV2eYjlimh;EE-YBX-NIPR237@;dauZ4IJ zn2eW%^I0aoFA@=_7U%AZmkA`&yr_$r#yV`d0FeeaNstS=zR`O%pEy_JW25s5no4nS znbA3~xV(O~ON4cVV?s^-tq}Deq@ZMTmvclgqsjmj_Tt}{oj{$Z$WW#uKFi!ktF!y@s?Ru5L zzlvpX7%tJa-jSCR&=OnkJJAlqmwq;!A$i!Y;I5i-_pQn|4d9~@LOERqXHE?68tN*yd#zwa>+@@tdaV;G%Tc^~p}+Ql|5GPtAeKTGWJCHrT7mNU77h!i8cyXl%>8a!Xs-!B$v|6+ zR1A4gJ@`|kl4+})Im7l+@Q{)th&5_@#OHpnL#FNp_HRN?pJt6xpKo{br>@_2gz!&a zNvs)@MA`)W&Kr@dC@6STup&|L66?yNWTENF;AcyiV_#mhz%TVsj7`FKH+{H+r1XXC z;hEATLF!LHM^B?J96AL-LZ#1|$5!-0X<6w)jndA>FSjkrARwV~P_ymGqC_iUj0LY_ zS9u3@mDL#zqzCWLZzS0I5sZdXu&&rPzueS||EI`H!Tugvn+;@D3{k0TXz)H2Eun_l zk;My4u>*-trqN=f9}HxCX0BQvdAJDxhVg+i3y`-}uO$G&^3{$Z|4OEro{9lXvcB*a z^M`HF?lf%_O_)uYKin?hTkcbjYcGiNd5+PYbrn&M^$F7tGYs>S#lV;sp*`XBgcr-j z%F|OaU=e@3tt$TC^L>sLj8O?O#IQRB^UT9z?~;)b#HS*qY>g9XwlDKn0ULSWklTnS zrpg992!4|D#g@yFU~`(vX&PsA)XXl4Qj}zBJx}7v)L=ZD^8abxSeWSYm#h~Lp&ROc z%mY1{JyJ?4?nOgda|$1q%*c6Z8XsAv?_2HnzR5|hYDh)qe*iIJJiHar8rx;yd>+2|O8SOdT&v`+ci`8<3qb4 z^g~Bq>@Iwxax{(K^1baj(`%WU+FIBSuy% zzHcCcraQxKcDkN>$h@;zZ^`QebbF5 z1WBB9?RCjw$6}RZ-RsfM_kAq?XqBOmp^(0lZh2#Cq%p?>cst|Sa7g}artHb`u zisHPjj8KY8hSprB*0yIBAtv-reMT$Q7`q(He-;!LO&4L9s!J>1c~eNFNJxa|MvUqd zcO-`|WFYc+dOf?Uwd{CFXM!Z+{7}|b!&YJG!FwmzM?FRPyL-EP2YW|=yCA6H^qUy2 zncAi4yN>-2C3o(Elr3~pLN+t@GyTNFmB+P6b1-wYCt;i)b&r|zxcXlQL-yeYBWOQ# z3OW^?hE5-f>iLX@9+6$i!)u(IWL1AqDU`MOdAImzVF)#0Xx8KA0(1X@`9_r<_gR*u zlA?e|3%3}s)Meh0n0Lw9(O5uRO@Qj(y)6uc#Ih_DUQ8C8x0p|1W=T@n=xpPT7gY-= zeOgb+M+G3Z5W}?vL^=h>%LvbW#JJ37MdVz!5`#E%TB=F|dVff&InwW;@1k>QSjSQ=LWUIT}K z$HBAUBk)y@kG${R^Nmj}2&pTj^KN>Ck;}2`v=hqohI1Cs3((7ScY0K@m%4L%I_ta( zI(Su;q74aA;637|)2NQ2CB~H+Yn9}joKHCt7bV`i-ycXq(|hCQDLUUVqMy1U!dMMl zuy8rQeu(Z@Ntp*`%^0y-u}yb}R6h5E5BcC}RXYOgX_Pe3sOcCxu~jY*d)3+?p9*m4 zS=(8mNF;v*e*!;@KY5Z4BrbLSRi-EHcqnzKz3%;qnJntnl$2L_B{ZTWCc!9cU1Z26 zlqH{s6?{i@-dxBc5`d%W$DHf;QEnW6h|Ql*Loh(g8U7)l-_}xAkC^)pgP17)_F(x8 z(#-K|WGG>~{u}eiUZ&U)AEg{~y%iE}xtsNBirLUq zEOdlIh%F8j2$*#{eSng>X1qEZX&*3KS39^7+lk+4H{x7Y&*N)fm*5a*g9JcWHG%&h&@&)wRV`EehB|gZP zLflvH&Vr%TYfI?m)6QYA78jfmjeoS^JblzlD~Xnx$MQq%c7A4dLrya#aE)Qk^@L#y z@Z1HhxU~0WcK^Y&!CB1`pX@G|ZUa@!@Gi*+@SGFar5?+5{TOAk^jRO%hsX5^WTn2ip9zOf&B zgJS?MDQpr@8`xmvao+v%4F~RUy45@dE^MVdzGztW41BGEdue3Ud#&eZJ08FKGf`ku zF&(Zrc%e95Gb0}9WA3fdj;rQVZH5FbT+ZmSD&ZXr394 z6!BCS8xA}Wx$#cDE4ub@;~fEF+T|2%R-`^R(OspIc#*Np$_t02QpUxvkxK_sr^(`R zS(x-5k}`q@WCnL;FUn-XfNQece>5HLfTnspa1hwV*yY$&J)=NR@F!k5)7)$#6eBGn zB8u^wOPV|Na!`I6s;-E=$(Rr99IQk`UrX)&^n+x&U9v2BXCYryktt4%K=fD`uw$z38^an|>(g zDrF9kEStBJkz1VjKL_X9#2}*5K<5Nu^<&M|)WGEP%h#K}830XLGS(p8I=K>vxTaEp zKCW1t*$;L(nJn45i!((}ti^k4$r6kAl-T{HmhyW_3{M}Sa;bh?v zPh8i+Aiq`_p^GN&^pGz#-n| zavIn4n0e-(N8Xy43;c?cl8paKL7nPV%NCT00XqS`Z6i#DTYSLZ>5(bGyOa6rFHg&b=EnK(-t>=&p)~B z&Sm$VDz$Q0BcA}GX`lQjF06&P(kSYL&R`((`npF}&1#FBO6n}4^6p(~^rWriAp5=b zh=94?ym0Fnl6JlwFw$iv)m*d2$7v4A0PO7Q0^dnHv#2X{^E^_io);RXWZz9rGo75A z`%qAc!PD=hQfL%lIRkNz4oiCWOy!AL8AYS>WQ`YB!!h^@4X_ab*dpqr^b1L?K5;qT1(-2#08)St7!pS`~S!2 zDajYaPD0xNP=^HuFQF^yW+TM&2N<17E8l`Ul6%FOtpmy#Hdf~zn>?Ic{-je(7)hTL zP${$^a7)Rt5*1ButJ+Ugpjt_0>TE7tG0|f=-AT85;a?4STs8%h8) zY_NQ0#}vo9H2va2pAstUoq-R1wi@A$zP<=}fQAJ5)?t0ES0W?v5qK!gX~wDaTIn)U zgRt@L(T4CoXb3shJ%}*fQ)-e``N8&jiMbX@MgdB4B7>*;69iJCPwS_}>+qlYm$v*+ zts|kJV$1&B$HXBtb~XmT6pq##s_(mY`w&O2TDV;LpS_GLi4(9lrCWpS5+iBffnPkW zW$tp8Rb>G%QNVzbEMWe1jVJMETJm&%a6}xH^0R?6*&udUBl+l zgCum?yr%6x)WnP>{7!VrUgeKhna4W(oFTJXA$lL(2Fj*J<~_dz%7EhDfq5tiXrL<1 zO&5f7g7X;p8)pj9CS5}9iR75E`T9}Z4Poj`Xx1Qh$IKS50cDz=K4-=JUT{!R$|4-g z53}E*%2F29$1OFD_a`KvVLHby@^9Y^L(qD_;^~_-*5OZ#MD0KIZr5RcM`4YWN<=I-}d=FhWM@chfJEXzqU? z8vt!j*H(q`6kEIC-VGuAPmbSTxE5MwBT0w!A`Xdc=-B>JS2n}3*M8Az`twuvY1Q8T z-q8z}xDGbeJ^VK^8YF?y_4k+skyzc`nA$6|!;nAkcJ~JM+V{|V7eO2tycm4=oPMD% zCH8;st&*PkpdoqiJ~k7c4lE>Qa-u4QMofK=l-IH_vExHXvQhOt*@8`W6J}}lL2Nw5 zCt9Vz#S7eG{?gO?C+k#+zm~QW8YvdYT;e=G6osYsiFO;slm=1(FN0_INx#<@->vaM znOqWy-=}fzBWkTAk2ohpDw}%suC0uE4^0|JN7gh=TKaWS|JA90kMAxS#7t7{vOQIv zyR=%vi|Xn{wcgQ|mjEaMswc*+YwxM<*yyF&ymW`ZoVB&yPJi{BR-qk%^rzFYIaR28 zGpaHrer9~zwHTs)YPib<-cEA;lUtg3cS87nee?Ib0)uj@F&+-MJg<7q4a=@o?NfM7 z2JpxpUAf&^J@-6LzXvY@SGWMe{6nz&*L51lorj#%k`Hm;pQLsq<@gTR#vwIvFp&?r zm8!Fb$SjkFu^R6$!~^pG(`XS@OQZyiffEKTzXHE2|7WmT|A(juWqDIh(@+}!{wxA? zR6pO0db1yWlr>!~sjh4ixQ)rPa^vrgycKXxkgxC)l=EzD(QPD(pb3|At0n819ExH+_l-=tz>6S_not zMa{B9v+(@n<692AF2i<57Kb$C`<`n8t}#RJ%lJ6sEBn&}WZT zSAE%~{yIGz=VsW_aR#tKD|Pp8CStr6`xnPBf>CsdzY-fMO(~1Xa$%e?DyhC{z_MPs zOI8~?XR`hW>FbwQ)VFQ%eoBoD8Ui5 zLk(!G6Yj-f$yxEgU)edj>9O+SXQ5WEY;MusrRF<~5{QHR9_aB}Lx+OuGHNb0V(=4_^^l4V%q${=G<8jYz#iPKs^W^JHM#}19 z&&`F@M(ZK5uxBjmOk0d|`=o6(Qk5l&yKreST!olWPE}!N+u*agnKC9rD41=GS-4S# z+Q5$AI9M1%J(cgYkkyQ-mo0cQ#5L-BKLja3fPe$OHG_9z9(y)#qbMc8A+%2pdcny; zGMzBh_O!;d&sG~OoVt6@P4^;#RXPM8)l_1p)o@ow;z$Fxtd;$&7(4D~8=Qf9;TpWB zfuC8JjfKWZodidOVc?ogAtEaGlv;u%`XSNxVaH;$N=G_0&R49-vT)+&v8wAk2hA5?sgAAcfXVYW%^%&H8pfUg*W!m_~ zZ79~+hMoHE#mQe8KX7ZyT;xduG8{vuESg>6&f@jE$I2syd0 zd{#UD!gIQiP$ikOSo5bx7)*(8DFU}QiV9Tt)VBEP)Gm*TP^Q<9C2m^7`1Zen#PC}M zp-;r?M{nyKOg4&V!P>!c7<|DjKFs$zd<|Y*Dl#;>E{p2|_(Gk-kG(OZARxHKSyiKb zq(4^Y(3#LZH(gj;6vGTyT3dW1;B-zfFQ_G^Pf`~$zo)t{zc0HVxG%h~L_>9x&~BUk zaIwO4fISk#-lfyWL@znx;;kXMfnm?Nllb*)P3m+Pw+DCr@FH1HIq))nUT+`1pESw3 zoeVGouO9PF-S#mLZpG!u*v2qnpr0BN00}7}iJnt4W*Ly0i##q&1Uh2Ci52@|i;a4_ zrCt%|58{#nRWFB1@j>;{%mtZ>DH}eSz)I6SnF-!78H%b2%BL+<9&A=7c;GWCSbStK z4j`1+D;MP{bfm^p28Q3Khb@D=c>WYoj7`~ZcE$-c|H92UTUj$~F)KcKlg6@Q-K4)Y zmF5nT{k%0&$b9dYEO3}+L#}a-!p_ip-E*DKP|@%(vJP~JN8cmVpUMkmnANdo*=~GS zP*2i;YZ#li198odZ*E}~>4Fm6N~?z6=fo)(SV@E}`7?RR(O=T^)B4`enp1WrY^L~M z_%0-92xJRz8@%P0?iYTYWQW^JZNq2trowQpk%a&Zw^~GwvPAKXvQ7HT`}E1=P$Q{( zU0N64-;hb?f^yS3sGB7G&g*-+tHlw3_FvK)N58TfQzFf%wtxLkA z$z1F>ax^S&8>fbpQ=eBP$2s2II;Qpcud|j&lT_z2bhW3-r0G4V19fi!zA^q-^=bzOpp~Rt@H~VodjsBR8R+D=( zdyl5;o`GBgPSPvIl`RYsYXsUxN8F3vy}uL}9|V4CunUGOpkA4&pTl(Sq{{D8DsMF} zd>8Bv>327vza$D8^tDJMpHhv}*TRuD*nLAH{pF46n<(i%^wgVO-DBvH)<#|!0+;>> zemQ&!x!B?Y4KP#oI`*#F(pokHrplN9&H8T7n~)2VB7l%~s7?u(PJz`7#S9IfX&U}C zHk?s6ocLjkA+*N|RVNX7UD#5}v)ZF^JUVu@tLMWWY$*A}p5kcKk%Pe`K?SeYV>?Z+7;ELDvnk@wN%_ln^hXu+dQU1=?cLFmK zW&cs0VEST*avS~3%(czo$aWj}!n*OjM~Ur>Gj~T)ArSpOj0Hm^3X4}}A4=>_{hor1 zT!%ae7Tu7hLtUs#an<$c8mwJ{h^UUVm%F2*`nqO=G_AQa1$$oSeyt8$(_woU1OM|V z(q4{G!0Wu-hu3?rmzv2D9IT`Y@;sn@UT;Qd{mvErTP)Q4HKC0_fdw9x3#OGtCo=LM zt*zHq@xr1tTr&T4W~#%{x^Zy7yxhy63H^97L29x`?vHey3ich@jvFw?at1ev-oOdwEZcN{xr5Z(SBXt1268j!|zj4U~{#GbFVlA|f@}@DWV}DBDtMysReLQj!vRw*OvMRD- zGO0Lwj7Ut+#3SLOLy)D66iG30rr6OTggn^0uj0WW*MQ`r-#fMVMQTaH>s7zU55Fb- zwU|%e5HK3lZ@^u*>YC&@U))Fw4z@sz>8{WZU|yaQGHIJ6xv^49T&6J zjkkH3SYzbFlw+>}0dHrbH0JX&q~L==U<{FO4B zsT<$$+<-vv$s07@@lIypcS|<=vw_c3+mwA)%CB72l9WO0Mf2d9kGR41RF1!0ckkU9 zsmF`{a&K$dFO(o84}G?Vg5Pjwdrf^=U9XM>{8TOVd%bLhtVL53Cp}TZFgcGNJRs2K zhZYCfTUaOb;{&$0Y!s^fy;0@_`Vm?LZz2q6Y18Vl3wf98-fRSG6Y?_jf0Q-V!62`t z3L;++6pD~3PTDZX!^$A7BN#pECTUAh8#P(bo%&W&=e(`<#QQ7{U@sZzI?fK_-6m@a z9tieg|FvhXrgVdcp@vldA2}guTvjxyO_Wa^G4?5RA%F)?mNf>2F&SK?s#!AQSykZQJ zC^?BB2^CTNsF&E>z8?xq7bSz=JeJzm@7*X;(KBX|I8Hh}0VXAfd&e)N_*9t(y&-;R zZ%`ID)dKACNjZ$ySTN~n+0|~&H;22=C@k$qC^ka_&#=DyA z+WDFhK!+^*ejrjMFfG+b1ml=Y`Wgk)309Gze~o{bcJcrdEX!^DingoFJ$XFa6xoTG z@DgSKPXIUsP3KJ9%bBP@Uv$vJ+FwL*CKH3XOZJpltvgjgL*w0uWP8+sWc%Z_r4#K} zTxXHlM2M!(r`_5QNx-TCsDDy2Goffhe7p_m>3d2CJAIX0`eF)Y#+{E*&i*IIu;O&XOW;eTR&UdaCa zG$@67Jgprt%2dplXAflSGHg$Lf1jnxvi*Ho+RL=T;7+gbqz+B0b*~WC$wRSM8Bf2D z&|<}?c39!ZihO?o5|Wt3%Iyw~ar@&`V${&mo`O%^{U|@yiD~YGFu;fZ{dP(c)Vs;$ zvTg^Ddsw!S78~-{!zw`C4LW!ls>2pXzfUYP5B@2LJ%zmkgqHmysIbPC(`BVoBehW}4=m7MRWrH?P?z|&_qO^`X>VkS0fcn z!zCQU0eTrPhvg{jd#6!#B8c=|MS@J_Kk_QmdQE4I1p2EKR&5zWKt9sAKNc zMv7(C5Mp-#sO`NZJT4%>df0`KMEtI%^0AKUEKnU&8)bo;zM6=86ep#usyPYdVY&mB zfEecnjyq#rECU?*XU*0di6zj>TmZ+puu=0PKCd0=TTm0DN6ZQ^O2%V3mUMb7ME>hy_A89 zh?m@3?<%`1(M==Rnkx4Wb>snWC7&l)NHE`fxL@%Ur%$SMO$@3eu6PL;p-Bt1pTH1h zP}1YgvxOG$-iqRSr0HoF0V>;Dc@55&?V)V}?2UIo>rZ|uR<9ffAiyYIJ=wc z{>PU+>1M=*foJ=7FbZhAV#iTGxlPC2#|Z5YU*CvOD0n-$Za+IHD#yVQOU`bylLAeN zK$9sJy^JV9o7kVG}AZvLUKQTR&oCUYe{RXC!E zL_`Zcv8rCQVf6HUrdC%mXk!>T1~m<(44EaYydGdwI?l(xgs$(0kEtITc+m&WWOmdM zku|edOM(;oAE=IN1Zk889Ndfw*@)(qsIHoP4Dc@r7OM;WUX@oVs%*0;AAQ|HQAL&qq>!7==Rmw`gA(;T-(-k;U^07#l2tfRdDR0R?7Octe;R z#-a58vkL!Fiwel8`1njGCGhLXgc1TcDkvA0oY`W6PRWA|sV%r8{o?X|QQw&tRDG)6 z+O+}ZEs}?_T^5ZhM2AQyT|el`fxJV9?zr7>jl};hw6~Xh#yLlu4Bj6MdK~;h=`n%y z0F&w}4c96Wb^nSa$a=b7dwYs*vt08Fn**|s0M>{JO`Q2`qqe)9(36Z^Z9S;mFw1&% zR20$HWBKUT%;r}CKLy0VfKE1+YTm)_gU}qhK{cs9z7~!rNs+f8@XP;9p}?a9nDKuv z#2%T9KEZ!$abp2mYVK=y>;b<_x32y8Js`E$`{Y_bV?S1C(VpW9jtZAjk#R{5o#&15 znb?+H5kFGG89gH^7}7w53?sIFI$sh4EHdg~&e`|=c<+aP}=@~{*YVG9_#;$4t{LSn4KA>Q>Vm1#p)T&Et?V~R_ zHF8ihBjF3lC4)_6e|usUB=k0Srrs6wu7JLKrSB{27(a;Z&!OhrqYg{V+BpMwU8X0+ zt7AegU$?WMGh#w0x9ZYI&}f@3a9}6u&S>0b$u$EX%>T@iD@3vWQ@I16j5_zVSKbm5 z3QY2ZKNi0DKXG4WcA9JbcIDQ2uZwo+Koqcc(aFr;uf!j@=W=&9Vb{khTp{hN&JsVt zSZ7ohe96rZ#Z2P4bR0tWIDopHmX2nQv7P4H08sjM9D#hPQ1qMOOci*5FGB<;-9wWH z{r{c(l5bL})w8Ic>C2`|nMFZksrGWD#;=z+kZ)P`^V6L(2-(+w^^6s3Eg71mJ zMywbDej{F;3Mt0|9i4Wh&Oy3QvGCpZos}*hWGWM9{V8~RD34lx+Br|Mt9RQ=f^H7 z5Y(ltV*(S{^nthozH571dmmGg7;{v!YkT6lUb2J;aA4DFEqpsBD`WDNyU>Wj7Lgt342yv6yAm||U~yDNksBE;>P zXsi}7;g{n#=U2op)jxQ&zZfK}MS1ZmC z&II9ewP<@xSe9o@)8Gc3<*8;CX2)S`{BfV}5^NtGyYM#hnJT!v#foIfjt{u3I(IOI z=W|$UA>wcOquU^$+Yu|^G{6Y5u^#@OYD)Ygo)H%-SDbS3KEtT(N6u_?3?zp6J#wrI zX7#j{jkkZ9K4DpE(Vm|-fI6P7(+2O=K|~z&d06$Fd8> zReBd9_9xf-#M`;qXctg1Bvut(dYeOWK9pH6i9q2x5Y>UDsjefi20stKF$Qsw z+F=kI>neJm?kQpI1|}mW1QV_@PmxyX2Oi zfcczm^+(-LStA)nC5dqZ$^K?vLxZay$bWW_1RI_ac2uqq8-NO^%j;lXI*erRC$cwH z02ublW23YTQIvDgE11ju)<(-B+gxDG1(YLbdwxtt;Dfno@gp?(DNT-~%`E+5OId;T zK8PKD=|sY(*3bQSc|stj%<&} zjMuJ7$IwZrsidwtj1_i);+d;CG})AF_G<(LCAK0?@u1=JisJywe5pX%jTye=!heN6 zc`J(j80R6&eI7dIdqB3toJ@~K^yxjav(TU%>;<+j-h|yZ`}bxSIriA?Meuc(>383@ zbowY{sxWGI`54u?7!Kk z-6vBkgaFGANTK}CTJc>N@VNgyX5Wur-6#APTE?@1gT^;&a;(*@Qh#2c);Ty#gX*q(lNid`o1Ct zD0+?a*X(N0-s}}x$XgGULdR}Sk&4&zteqp8owoV1>uM9_p!?D1$G(NV|TET&I=M&&4m)RYv)gMW99Odw<`%7 zalYksYvE<(Shb<1p$T~);tXr{8rEFy-Ecrzm0tv=pvDd{$&ycrYHKcq_+Lj&&+I#W zwNs(cXo$jQU<-aeS&=EiCFXe`ZQJ6dohdwr!2W@#u{m6o%yfdW&aE?d^8_&&c=y{4 z3W44EeWF?v3LXU&4QD6;Q}{A>z$pa8D@ii(PTKQ(@N)oPZZcR@V=1K>)J0Z1$V-;5 zjVisSQ&H7`>qTuPPp0ku1xkelHz>!a(Bp78zyM@blHKRFuCT)}@_GA0!=;iMYW2`doaa~Z2uILoh`gh!11&|_X&5}fDgq70I zb0pQA-V}Y_-xrnz^NBW1qI@slJ%eh22c?*O>a>mGff6fkj8>~ zV$TwlHcnDxHY81#fCwv)j3i0eogf+k3hK{H5KT%mX6hKv=mOHv6# ze9F@!_&spST#VE~-n1SJ^q4GF$LeS#J2&^A;w$;v6AYROApiU0T#0W%qjRJciCP6X zacuixJbNELdskZf?`zuX-u74e_C_i6DXvQxqg@iD$uAlzQ-p_8UJ)e$q+MYLhrdtQ zkBcJhHJHRDe);4EbICLf;QdtTc7fTv@;baisY(4(Bfu>gRVbFg`Q!vE@Yz)XC_U7t zc;Bq$qB9DRZ?n*mJfMy^b`y#avtZk=EpEpF&nY(S=_9kq145kIq;A$zQz)kA!K2Ky z77r!%-ahu8QN%|kn}wc;xraSl%vih>A_}qMAa3FZzcJ*8P;+erE)`jGHxjI-wXaxm52L`UlzZ;n*pcP ziW+l_e1Q}z8PwII%YvpoBqvMtf-O>+RkMFLt+ny7BOfJ03zlO($fyUw8MpeO_9_#v zR>zAIL>&1wjq3K|Idj=q1+K!MsY;FYfj(7s@EZGW+;&)a-b#5bI|u%e`!RX`#bZue z!ju^YZ$zL9qqcd^N9yHeH?)z!iBA5%>xi=TUDF4do{6iH#%im`YA5Ggu8mEImb^*TP$>cK%ll2%6Yy#5rZr}N9BJ;1OFGBa)rmBQy8Nn z5UUBKOi<*B*=y4X0%yI_bL0pQFjG=OZ7u>+OjIH<>YY4l#t?`{ySmXkdZ~F|C@{Uw zuMBQej`pi;QJVQIH(<0`DDr$@V>NgfUqe~u)9F3-QMOUmacQyU^#kLQc@|WU?d+b! zOry%{Y2dnN$?ZNySE@22s&lUxKiy5gcG}%rE_DMM33r|+Kpgq``-zNrjk!+SKF#h1 zWZHf%;->vYUYy97w~b5W>bQrA!$E5dayV6w+V9+Xl*@doPwhz!>CDu%>Z!|r$NJ^w zEOwrzz4)}l9%~F3JXK-G_Z%?=i3F3icpV$qVo>w50N(oUgrJxhTB=g#S#cl&V{rDF zLrzYBs7_^TjUfdWC3Y|C_|yK61lXIze}en^`;>FH#lb#^U$>@SzB8LgKRd}g^siQ^L*#I|iimuFA#Rhj<8HB2Jf zNPrM4pjpSyYym}Ihs-{B=kQVQwQCilulUl8dqLpUpq>^^D3Z|TLV)7dEv-fVcd*O9 z>RBMair;nJ`XDV>WgNWs#FFVqFhXAgW=x28pAS}=f=&p^VlFVQ`x@A{JF~-|jaC?g zhS5i!Ml{GL8bSw}J-s)FMSg9j+fr`s_Xz^HBNqU!pOxynnrd1L2=6__zibDiC65>| zWcLpg6ICwu?isA=R}VpI>r$C(fUH(@7$gyrkQes#v@-`%qI;LfUq*VQ-M>vQ!sYH> zgo`2)#i7$`i)W^6%FlOxpf6Qwo2~gQ$!E!L&bQ2CfFt6n$C75}m7Mp?BF5`WyYuhP z`)U#YFarJ;bASeIo}dxX(M)-++uF&>UsC=VsxV!9N7jB=(cU^EjE|}TFnlPc)2p~U zC=1ScX+0k(UJlF`SYIXdPEGq$_-L)PY8cCLhv#jFi>9WQM>o01_O)}yFe05oqV*Zt z@D>`KLp)%I>mEEjQIM)+*`9^K{Qc}NfZ(sM9WE6lO5zYhE)wZ#~> zmTdhVd;EfgM6@JGLg1T)Lt+BO;r*ca$P8*L-S{3vH-pEo3g?SN`IrL=ahfo~QtA+- zgk@ga5G|T4{=OYq)qVHG8!S;w&BQ#)Wr2E3+X}-F-?eOL+g=x^#KG4WSAR?=eK$)y z&qo5i?ie`J5Wgn_C9bd&w<0v`-GMt)g}@s9cq*(Wgu1yy_j;M#d7Zkz*aL`c>ax1@ z+^Zpayky~Mb8jhGq{>eQ*w6vpFoA*bV~bdF1)*%F67fJQ`~;G$+plYS^d2Jx5%1XW%`skF02i`)hX(MpGq*E# zFYhiL*9_6nw2$nCZ77_RvnK`=c5HZ`-$2Ami{R;egZ^vTZfjRP0ZY}Z}dq2Se#0CS{ zhcBcvj1)2sbA-wwh1y!fq)V_f#8Etwc|i%)7tvA+gH@ZXt1LE*lV-p(qqYc2u=;Whl<<&ZG{Gt#;)-^IWI~{5AoU2MK_*3F zNX~|o_H+|K zID)N}-g)GzlKzJl3%QLH?+4OqVY)N-KHMjYiH(lF>$_HwNhLG!Wj~j ziwqygt+Rgq&m5Ku<($r}>=};4h1~!us(0fvd8NrjEb@;)DtQTC;q*S(O>!f7e-=U$_AJZ* z7lfy(WTPFe9xcu3q5Xxw{6z8Rs{l*=UOtCo0ha(avQN_wF%Myz$=JP26g(x)5j6PW z_)z?}2E*IRR>d(SghPM^cE>14Em|d45lGUMr1XBeB9gL5&_F8?*D!xFW|^~p-v-H& zHqx@Y6_a+#4ka;G)_A#8VxHYpyFEE*?6v?QQt$B9l;ytD31-L`Gs@PV+ zW}JiXN}})ym{s5j22_^Mh7e+Izk@lmbft07%$d9k9DgG1En6uYOkPy`g9%3p?S3u3 z(V5ph!e8KI{i6}E#5f9@Wn}-!ECF~ufg%6Z0xl{>BS2pV5tHphexTo2}VZlxw+zYn<|NQ4G5JmAD5#Jj{_fwf&l zW?Ew|1D|;E^B1AS(CA1{ANJ7in`jvUy~~%N0oh~`dwR(SZ&^%O=@<`7G|h{00s|`O z0<$*Z=|J=$g>&gKW)IA`1oV?F5*F zKCvQY>(dZdf*tPQ7by6_pXOo8Mi_Tp9>;?h+0=PfWk_nj!{PVucf03{x5Dis^Y9@+ z&TL9`V>iduV2#dmvUPIHBdmrp%#Rk4p$2a=8)qrWQn}mADS*o;2#&uiOwWj?t{?xh zZ5AGSHJmXx3!WYafU#VSb-r`b!}`Wk&kZs&qjPvbAs;_IhNuB9;}4pydR-ozM(eA6 z6HA-IFqi(i7D%;-L&>*Dj-h5VvAhuj6T&IfSAi$jo8am*MLsC@<`H4WrW!c|mSl)3IGI?6Y1r~z+J@sPj zE_5z;32_MrTy#v`owk{s(l)2+2h?uXowbQT5_Mp*;6?C3V_4@p0oPj#u*GZ4`xb^4 z`UkwU3y*sr1|DXLC1Ed99=AV~XIy>6%4qg@lquJW+NzA@0=PJ+{rtBrJR~>gSjPPZ*`~6^m6ymB11Mf^{;Zh zdMr#VN}Y^FaAR;Fem&Ldmvfd0Vtr@TeJ}yv;6S}rhI;-HekdD|zGbSSaCqcHzX7t2+4(tIAya0$J+o#}X%L8q(3W!=m8-n}r|SF_A)S>4ym#Hs!5&uoOIE z@Dh=p47Jt(jW9TD#a#vJ;0xvF&`Xwu)FJZgK6X?-Y<6u1DxYaRuHth1*FHa{KhwhP zwT;&vh0EY^;B8*NAk){e#&}^qvBb{3|S=V2R^ObslAEKCVV+J;#LI zY+RK)8q@H_X{>g}jZi0y*wo=i@tI+bRi+XA0uux~9u%Zobw^CAaE3dP!f3D_;T-`t zY<+4)>1`7dX6Zpdt`j>-50>kl@c4P3@7>xhBLCKUaod#MirbG|Lax^q zWnGuNdGY@r%DytH3aH!m&`OAcNC~KPhjb&--O>#L(jA9X5GkcQq+7Z}Qo6fA>Fzr4 z_VK&##=GCU?|Xl63{eN3vG(3;%{kYc?p|V}Dz|)%%3h<7&nbGS^|1By9(X7p;rK)% zmtKZbRCVIM3T9k<*<*~re8eI3YObdAA{#=1Ab=495k9iYl|Oq-`&j>h$Ep>gFV!*g zT7Y}^b-Zdyhr-@?PkVt|MC)e;TQ9y%Y*PDW>M_z*x#dB^*VT2VLzrGY;Uq!zR;z?I zM0NYTNf&jG7KW$}`W)w241AZEY?{>eQ@^{ll+}JFJMVv;Ep$Iq>KTa4Kfnl+NkF(1%-4Hndso!_>$r(z^Y&J=s$4Vvm^gZ_F#G~3x& z;IfWVrFY2QHGuf`)=ws)%2ygeZeudGOOOJqUV8fo^fVRL{t(1H_Y(F?B8z$Q=I>kA z_9eFA3!Jr{u71y$2VL;-Ng*V!&5B}~nROv~d`&1+L~^UC$s3y{d?=*96G@H3b_)sK zsOnK%CM~&PM;(3P8Ix^K^__VSSkYTr(O?m=7YHfRy0|-i0cTBV_ESi_7FIJF{BFl3|mFn?hay3Z2R>{w00@ z-muF;{ToJ|_?_yVtrC)e`P-oSv-pg&of_{dfw#NS&i$R7J=LuqMr7%;yHN_#U{4=* z*$rR(OZZ6?*pN2DvvIjw?{nV}^l2vUT^vD?#HGB2G+gBSuU*Kzv29Z;<&3Awb!vtx z=up*0#YV}<#Z}mH;fn5R@k-e$$?61J^)F}?q zM)zg4m*+Lv6@$kUZ|^T94ysfHVlNQi*>+w{P~n1s1?&#}SN9BLZ1{EY?<>%&F9+5L z|J|cz&i+X&W$VUZ7<#(ALBBu8euI%Dhw6_-(HM**_hsC}DCsmuEBC|KH;y275FX;R z@E)#Katy4r{+2Z4V1f2jtEAE@Dk)C8Ms+favD?@a)hyd+tDdz)mofXHf()?TLKx;` znyq`^a{n4x7?>&o(!MgUs?xjB>V$5p+W2DhgQ1~cEYpAsS4%c7#5uRRH4pH*Q|<3M zk~=~>;*sy#eKF`Aj!6^d^gm{70~5@K^dt-$$OR(tUV5 z#xYxEDJ+i?oHR=Monbr!XFiF*I(v7PXDY0LV>(ARh8%DN@ zg241!0oB`0iN!qVxu$KGaZb>LfhO0JhG_1Re|S-(xA(^s`TB>k|JPq(_~e&$$KzyeJA# zHj#fLqj!3K|3dwhuJ3aVk9&D3)0fJ zESq>E*(Y6dEMi)-Qd+~)DLg{aY(mF)LUEOG>Zcd2lw*ny4}k zuJnj!KOwPLw&mY^c=+(aY!Axg_YZuPVYunedy=$13B*g*KHb9<|0aJL7+}UOc6Wom zVrHM;>K|A_f)X&lJd}E-_2Nx>+q)>7_D5@vgrBH|33aw^{O3-!#oxnkvc+ET7V^2cPdITRF%5a*r zuC?5X0fSw5K7dp80!Zy?J|Wox#F15LOsc0mFrd-s7I^yg106gb>0bj9$3{MDe|Qv> zk@m$F-y@&GvU3RoswynSPna%=(}F06IQflW%G$$E0Ui0veNY_XJh5|hN z^D_m!A(~T`2=+HGqK}Svk5nzF1?^rz*iXM&kT>JS#W4^IGQ{v{s>c#a;=tn?nNvD*VxyoIVxxgF%i@v`T08j?F*(lf0| z^z=BXDE+U`YV2XJe~Ok%0C%+hJ9M-li*gTVKeK_}$>EH44g+Dbnx+VQ{2`kZ8vC@0 zq&20ZMf|B(ve<{%j^7^8vp5`t(rSzw`dP4GuA|Qwv68c{JTMTI<-sH=kU>oO^p$#@ zWJZgXhV?y!IRD2?W)K%0pUbH)(b8*%R`MKDYiWwv&o9xROT}uj4Jf;xoK3;*AJW+X zLc>p%ZPdsF(acD?OEkgoYj!L{jcUgalK`u!%w>+nBa?@?Bf*Rxh>2%Y9?C&<*P zC_@+n8P@3tr4t09zE__tWF{9fM4=P%*Iz)`QZ_+TtBY__r@)*+%E+@;%}_nWC_I|z zJyaDAouLnCMSY{WZ)%e35(S|JqodaiYZotS1P1K6{7`+pRmz%YG*|~`x~KQk+}_mh zFl|k03rvG}_v_sTLml^Q;Pl?SxWq?DS9+q6$*o!i7`Iyy*@2Fp3*q# z;Ol(-eU!S#>M9kv8UW3;81x?_f5mpx4J2MsWVodpE(e_NZb9W5b<^eedoEpu$xiWM zKMx?Kr$})LkfKZZQ*7^Nt>(L&kFOKERj#h)<^}n=4k^(vHxI5Y%N-oUpOoi8Aor(I zZ$(s#5jVN;b`qfpXGyW^8EfWgG5d8A^?RIK*E`uuu)&*eWs4L`M{|2MG8aoAn>=#q z(G2yp`81PsZi_Wt@jp8^a4ZTWsl7+;7!Z*Xvrx9MirAX|o6FK%cK!iq{iWPPpknfn zA<)_Xfo6d`zTfc^I=#1VLFh&A7NvEwJOjH^a!+RU? zX0r3QL=2ETtFi1*kI`v1fIViDntN{IF2BY!7=8@dyAlQQzS&0+b%p+@B|}{@4GZO7 zNQRM+W5Y#5eB<#aH|^pFsw!JGPlws~m6eR049f0=rinu_WxH7b=j?nwu` z(QQ{4w(3gOLTiF=yl@dgc&9r=XAVKz=)))}goiGHjcJ$!PY#%A)XitmybFp?JbkIA zl<(48Uhd5*-qY5{&nnd8A0i^2hF_&;)Ol^lJ^A|Qy*sG`x0%zHVutpj&Xg-89VF7E z1OEg1Nv@kG-H)qzTrDyC)vFy1%njZfY)$D!>A80XjPEM!a+&-wO*8O;RGaak_OEk) zqqtzthNt%aOYgw2apt>w+?`#Ts$lyg6$DnPaE$4PzaGvL?qqje=ehB?CAuY1lw-l%gjUyL}d|#j9M?|{^_E=ls?qwD?dEUIOrnsQ&VNRzOq-nK$R~02A7Wwl~r`w$?!+z{bh*@O>x!VzzZ zm?sTuVQUFd$O#t@rfp{KBv)mP%p0Zr@7H!JtSev@Y0DFivaNh*IOd5|W8eN6yZYbK zh{E5g7R?8Ym5a|t=BJNt6#PU_A1ZpLye#gW^DgGHct7k@A3N{E%RP`=N~WwFI^d6DwIg!mYRJ~MhKTyan z!;iYt8Lf*H@{)>f43P<$mqLYVg7Ts7TTBA)4G+G>A`|Dwve;3NGjWV@+Q0SxKn}zV zl>44OYWBS~3wf|eeIOtqBSSP$d->PuVs}Vea=ZL{NCnfDMxfCA zgByX+cBNZxLyCafhyBhe-B*^az6eC@@4v41CuA0Lx8&F|O#1Aee-t4i)esLo3>3N% zd6)l8h3qxiS3>RtXxNd`u9NH%e6jRD5{3V}Q}MqEU^YkS7w_TWS0s1HsVI2&^OSPS zV=FZ&5A5kf)7pTe6a7QycH|PbAc)0ffLrcSgs`SymocH#u8f!h&WN%F?mgS7>XCHF ziSiMjF_HqFLiF#{%T(XQQ?fX#O4d_{H%DASde>jKGu_?@r)KDXVg3jro)v3o(H0*M zlL*p&rB)L~I5cYdZFl8&a~J{P+zJ>L;(g9Kzw%ZpI8JF}Fon1=x%cENtx667!~^qb z1JjK7w76fB6fefR{^}qNg+rfnT!^u+SvB){=Cnn;ti)f-*v-Es`hVmbQ8uyMu+nl9 zFzYpP*IKN0BIqe^WIXsOKF}BOyog8gWcec!2k~`TeO;UI%1Yn*KvDn(-|SDZ#lw~M z0DPhcvN3OeVpz43zxD9&_+g9~Yd7*McwNytG=+=Vqdc_nw(C~YWmZ^-W$z&_)%)|^ znV%T9#9TJx;Us+03m6XY)+zR#4GdUNn?`*}Y2c*K>#u`mN7uX+p#+|F@C3qDYP$`8 zanjplU0wJBPLqGg@&3InP~3p54=LiDdJAiZF{Um8!#VomIkNQib2aaoIH#{UjSO%b z-7`MYQ{>}akAm?X9oju*i$mLmjn4f8vf2ZMSY9N*`pr9`(cz`KX7`CReF=+-q(%9u znwv*V*1^F~{67k75Lm{$nAloR%6i;GZ8s5k)Jt^IXRG4!?AKT=r)++BoG1SdcP^Yi z^qjBuc_GRaNS5<_{nZkJjnTB>yy3E8`mvPD^wt7WTA3!^cXJY+Nw3+keYsW*$3r8R#OPw*xFt#A^fmRki5 zLG%|e^u@;t7sRKXzFcNlr=(*0N}XVdAjg{U?(XtK6+s3hCH{L+()SLk{)0>8$~c8< zW}~1<9B>U$()X)`b3CVqr1H4fg)V=>2uEp*|4MPeBn7PD<&;!k{mq~shrieVM+QBx zi}{OLz5y;M!|k|n6hS*a%_rd(Pmdnu%Rel7@H8+ei28vSfjXk>>GZdQ2ekt0eRew6 z6_!5|3Gi)^ABUYo*y_~?!L;g6ukQ8>clb%#NOfY8qk~8x!m)D)i)PWAP%(_RtBCPI}*5 z>}3?lhM!%N`a~Z|@`fr9sh@U`eJ^(FrFcT6#0(QoV`1w1V&3a8QhIa(UvbcKFw!?! zG9)uxd4$j%x0?v&yQhk4lKM=N6gIeE@P(tN!pkL`)VIIuvL&0#f({P?{E z@R%~Ir&N6xjC<&KgO2TG6VFggNLx(sf^mn6(T3U7hl=t2>YyDK$l1xBnfSdjRKtJE zQ}Mm@F5xOadQ4@OeQfV-7LlAXj?D&@1tYD>Qe2l16IPx2wsUw8FM{yZu6sTEJXB~; zlQuK*#%mS^)6Tze&9>RUU}CCo*z}2IKc>65As_wDTVfm7;H_EXBd&L%fZ$gFi!1Mo{{`+^m8UVkoL&Q^0tcwBe`4kVe~W-&euS)!2U+iZ z4C1z(l%a3%44szlMSGgr%2O%dhUu)M^*V%^BTaUTBq z?6RuCh825rHr29UxLOe@%T=@;9H&*9I-c%#q0}y&LNScBp`d-}oIgp3(RD0n3MUSl z*UG=%wPLi9VZoHIQG_@r$ves0xZ1E$FHP!0L(Dr2lPx-jsNs!%PcSq0Z8FfP*~c`>qeVy*dD0ggj{FZ7n|uV5=zV-io>+|z7LJe>oFvyHDu{} zvc{kLPqfOHP&VL8U7qgZz_l*?% zN_T&1MKL=F zF|xRCqf)*WfOBSGsRYCz#0dEbH9$4Cef-#0SS@<+M|o@dL$oBo(UIUQ1}J?>6cMx`~}tOFAGOySE8R(Q~HGvlgSS^Arj$a&|#n zKr+*Cdb3nIf~#OsYnTf(iJ$i0HI87lXtdl_af$WC#@wBd*%C#*e0CYhPzIQ>(6_C! zp>H9w{SvOsBm~}_O=wcuJsl5)r8%|wrGypAM{yu&Cb_1h{T1G@(xm9LIysE#*Uh}t z;*_ZLK=eZ;u3&$0{Jfrpm^I+dYn-T(c3mZ-kJ8iIa;(y)q?=S#_vFZM5&-P~M@cv`N z^ASRG$&F-kU5|XHdl=XucDN`cT}6Hof*SL`eQY&s+ zIn*97e>UTKz#229Dq;o`%lRM0wE3Z(Q#4SZ$jT@(BL#U-0M)oOdRFhB%y>!b6bF z>QRiK_^aCxZ=2}jSgE9SfM!Y2k7ZGkWP=6i&Qt z`grUOF=V!4LKb_HTulke-r<#2A=)qb7WgmNjD_w;>F6@{UAl|*`hZP8>{!-YiO4SD z+*wfVW)>>*X|E-_iKL})VPSBrq@8E(W{%856L$_{P z=Xp5a?{M4wkGq4vf{kmKn%$cC1ewRj6ow{JT$v^nyvt{xEmOK~zetj@h;86j@E+T= zX;SAYu8kRzkWa@Ce+2slXGl)!h7O5>u*01A?D!;tjEtATtY2tB1~bAhTt}Rf=nu6f zeVysZr_XuEhcKcd`|C}nv$v^Xt+%WJK)68`f*WKXxN=<(FIrD4^&g#@v`Ia@K}!S& z=>NVk9Yh^jRq}47Ntpj_W3LcwOYzQpwe^MqVP6#6od9SWAYXkW%I;pk&xw&5M0_yu zPlgn~w1IS^qOhv30>9ktK!jlA-**&};Fk9?j}W!T?qQ=EMCo=2m>QHy#SFPcM7r3~ z%W;Snd|VA?Q@~lrp;+%!_`^3lmLFwHmQI5w>8DDF_Uq|%)OJ45U-(Q~Tl&Q%My=7i z*evcsbsLpEpWcAy6mZFM|Km|`T5W9rQ9#SfeFMs1N%suihb3B-jHqeoX7laWlC#{U z0XimzUPJy*UmP}_!lv;^e8KBvzytJa;{|Gk z%LZT5(#T{l-Y(e@fiMc~^f#`rW}C!j_s@sG8sn@JZEjp;URdce&po+?jV`w5VBQNk zpFX7YTY;MJ=&Q15SY2gh2#{%1uFF`!-dcu( zN|O~%#^gGk6Y=oT-NiI3k0iRp<0JA!#S_l3Vvi3_CAMQi}WZyw72(Nm&2UaM(FncH;gWcL!el&B{0$+!pO;;F-VtY*%-<)ly z`leBgpwY$&vD0+1h>?RQ$bCh{r5)PtC*&nXns;*C$BYlz?8Mi94$0upTS35L)-y9RL(O^h z^M2-uJCC0MK`4Pp?u`tL*D}1#-qSMY%)@QMMOk_5$1kyFM#9HmI5rYEOxvsbnC%7 zK#-t$3;jUBzM$1*`t?SC?;Ws&8Ew2CZKHy3ntfr{XMO6+?(?YucaC9iW}lbLXeeb9 zaT8aRg0Px#c5}Agv#`=Wa3>^iG_OSlIuuu*!sN`W={c8{MWTNjQC)fGqcwHsQM{=l zA2N1B=h%xgkQ$q7p>qDd?XpRltWLXqw3@DXNBPX+F1vo>_ASYhm#(#*mw53VtSC_s zRxap%EXP5kEq5RU`?lRQu8Bo2rw&WBI-4YJaN0<@IgLu&9iz>C{=u@V`~G&wM%ST7 z92^xKf!jkw@Y?cRUk%mN+6zFWlRXONPeJBO45??o`6Q(yV}b=SM`U8{gjAPqr~*J0 zcu_MZkMA-3*}gd2e(CL;z85%hRA#U_NoWyF&9!k-(u&aaz8IWKHRA z7|Kn-5V#*c4zBrpnMIeQO}Pzh>eJK;+(4_v9=bgNg*fA=6<)8j8MZHb1|mJ{G`61T zrJl&9zZ0cLcz6 zQM8Hw1L2TIyY;bds4oP9ui9slDR6&#;=G<b)b9K$p7BZIzc|o$1fvbs0(ot{A-K0tp>X3;7t)UvrK_)c5hK*#t+Bl+ zA4Jlet-IHpIX~oGvTIgjAs&Lyk-xS<#Anbf9yVQ=QNlNhDh0ikUht?@;+4^_WK!*m za2U_(RfOJJVodndr*88riypxA@zfeh%juR>)DGrVB<^A6R!w))+yeS8#rsX3HB3#X zzV7aMm;0`+JI8&FXG1<_TU)ss+Xp`SyWtv1EvUXY`;Yg-2S#;Wdq~>7#I@O0joj+3 zc3;dh;h3bL-0A#iHIEP&7hrFRQseAr>RVd(O9)p7v)RApC;m6bgwzZ0$o^H_fh2di ze;c_&@a@PCH-KZ%?@F%u7hrcr|AHribACna{x-LCmB+xh(yi>`qv(;%%T)6;K@i?a z`Wtz-NK>UiMWR4M0ic2R#ERzcNKT^^ysCyl8r-Xe9J%agjQqc5bHc{!DuU#X)bi)+ zobnaIwWB3^GnH)e-Mu>2MW!=;oc=4N+kt|M%_ekrxdy?!9ZS2*0=C;+_1gu7pb4LW zcy;`k17S`q3?gbWdg%!9A4a}^+HbzGN%7pT^UJtsMZ!j&5Sclw6V5DO|MrEr64*VV zCqdGM^V59puDB9yl#CLl-Tip-H-leFQ4Xcu-)>xY3*BW<$t5ClMJA`mGq;}@d`^<; z+Le2?MViMi67KzxBGXt}?3$O;7_nW-=^>Q$DJ?KkE1y+$64{6w8M9%G)Db_QPnh zEf2rlo@DIQ*$%W*y1WpFUS0Zd&BS!TbwR1N536zJOak1`FQ=q*^Y6CggP4xzQj1aK z?u!i13iDK&NG(rB7^*DFSXr2atQf1_({fnQL1*7xAL8bFBjxK2SQo(Ls~0_;lM93v zWYkD)a=u)QPxASc=6rG07@KpQ8l!iuQcB>X+E%FfFdU;Hxp8-BfK-vk4LjAnh8;|8 z&X}7QzWLPSaXNBUzgw;YO2xC8^LgO*{aq;_l1HNyu8S&tQwbvDGZGSPoXxMKQ%%;g z(;&RqXWq=-8V{z9Er!NqyWs|B$|5>K@KQ{~Nw9&JA>7O8|4Kl-KWcOQu%zd)g0i)q zlzlRIQ{U~*uzETMD+B*f3FO#lKLGJ*G#PE$LjrU zx>dkW_TTnP!0k`j0RNKW*7_4e@BV7Y=MRZ}@)5Mg=Sslv z!Jy91ptND1cfn=Onohsj%kCTDjf0{W8KiBpKurdI>jE(2UT{;Qz!xx90^Hy1$J}25 z%;}?C&Ewm7(OJcs6a@4A+12K?pQg9he{At@V}Zqa!a6;4u!IThDQb;tX)S7N@k!6J z&ta?lke}USY9q)UPWkmDO?Rs7dxy}CLc z0XCUCr#y6_}2oBxlGHL>O!q6=Ys2AOf}j$Q8m(ANj0*(V%K{$iHSb1 z0*(Fsf)-sNl{lRra^`8|up!rMu-7-;A^X%kwXToEICf{RhPu$OT?u@Kg!Su*9Q)sm zFQx*GJ(jM*Pb<=TbVDU|>o2_@ikYhVd#(?=Wnp7GzgxbzWckk*W!~GIB)EYLobaOi zi&et4h;Zn?2Y9rCmlf_ntW{YHO=cA>(1V|a>;ve*Vbc(Ku!{V*L2l9OKg`)6m9H5J z^`Cq9?ev)&uI=f`5U`=k(re19WXE=|?@NUoBJXDNdDc7)f{H zku$XkUM>ef5>4i{ZR#lV0;MSBWFx|ex%SD94?D56_#qxMrg0A;r>h~%>JtTONXDNq z1pU!CDx+51S#j4seaYr;{P~$@9E%Lv`Y>0g&H0x>-ZvI;c4fSl^!UG9X2ueM2GXwHv|3&LY z_=NHu8{ATE=MBE5O@Q9Zy~XVy1)7>gj7hLr+dxta^D9Uz9G!Pv^Qs!!v#D>;ZNW>8 zj}w?-cUO2Q{6rMXF>FGzHK1;Rk7d!IF#k7P!Aln_oB~O6+>jp2^>iFsAVxJKP0$WD zY|mmf_R5)5vtf1JbAqWZU)zb9*Hko8g zT2`)FT(8;`2r6F)LB#LP&iGk^$>b^4+nhns6QQFBTOw!T$qguX?FcxjDt`xNh1 z7@O#6t`+{a#K!J$P5AKb?cIfI{aU~BL=lgC8kCbAB4S%>7}I>SP>Pg}78ti*-)CL{ zLk%*H%76R+gI;K`A*S#r z`yxS89#{l)O}C5#5rhy>Neq;y?T#-*ypYDN)>(KX95|rNq-_gK#kZAnJzU=w^niXbp z6M0JHm#_ubr3rxNmFCDL6=>JkB(fO#J2*J_Z$01sRCRmnb+*62mv`qrp{DT{=73%- z;5Ysr&JYa}ee;7rK<6VMC3)PW5Fw|oEjKCqE%)Bg^BMD>2h_?C4(7(gH@^`SnO-%c z`l9A&=NuoC9~)`B9Gq9T=%z#YvC(DGtOYa(&50WYB5=o7U~b?yx1RS%EBahmmFXL& zZ0ux&bDGLL`-W${Q|_F3K27hf{MTvIy7TrQ?OxuA1&z{K7;2*G*#cSU{uf+C~#wSusuw}L|4vpQWqw=V745yqCCfaH?VHgTry z+Pv(>tuXfdg9lZY6dGy;G6$;P3R>tVT!b3h!-zPe1+U&(j=r^A$+>s8$}djRN8{2j z?>*nF)P&9rsN4^YO|<-BIkUdX=JjS1IcQ4A;Jg2!E_CT_^uD4N0)gEu;TMVoIMsMr z6zDjc>};DguQ$n;f?Og#(1opf!7CDg%V4eaQx36s5-?@XgL_2M<nXv@K_Ys-ktrcYR8{#ee!OSuKOQOOHRp%LmWAyC{iDUJ(7J#=2 zOz(a;ARA0rqjw9uqwjG7u|-QqeCZU6*058pVIUrLWq<466Zi*o z27ai>zss-ks=Xh8Yj;V@-F0hd0|*&A1B4+;41KObnzy8HR1lRa`kzmb&_{H zdiS_B+Be&3RfUN(uvP>El+Iy+Mk%Rp0wleIXCpb2zNGe*F9UPStpjXZqh-|A`-FJG zX-uwuBh~X1y!CmYsDFyR#1Dp0bS|74_B!p)YhEmRmNGRSwi)OFx(3TvS@`gy(dwVZ!Z@G+k*6vjOnMcjHCD z_<@dbYuTqyd)p<;2qM2cEKs8FV(n5kBIg-WIR%q*9)a$E#B0r@wz*jrd}Kqk?0D;z z#_ICxaUEuF~M7PA0U(Atlpk-4=;SSCAfOLACUFWUxMFU+=o zkN2K)MRs&5>w$eEx7J<0c8?9QpnE4EQ_;1NXFRu8aFC-rB!~MIXF1A!40ZNR(!8_P zu(<2sRD43AG_@}5o3I{LhWyXwK)8N z{x7WJ7ewJ=MDTp`f=qAlT}omIQCk8rm&f5Z4bnU>9@i3u>JT)U@4B~gHQd{a3)GXH zNY;xw*Q*!@eyhxgnurlyOH{{h$O^94PWoXdKhd%s2c4}7Vg-o8B0c7b z!La;n*B_x6`75EX)IsEn3$HfG0;vg7yA%G^ngm1n4RShi335)6V#XVYzQH(f?yQ?8 zrqZKRMu<^@(b0?Y|60g!gG? zI&-SeoqN^$kyma!K9sbKAtQlU#Qt$>@u+AJU?+)q+78%6yI)5UHOeRuEV-Ie$nZ;1 zb|1aK<7#XB7ScUYk0}k|Z~7=qkH`2Yp|w7OpZ2p5LhGpYXRD-U%d}<__c*Kbfy{Jt z5DrAm&yE(+F%{I`t5lUI05$Mj9{#n(bMvx?D?SFHhLQFqYowS+Vdl96mIPLYhZid* zilzjiylnmTHx22DR55(4kCN)dkXMn9;m+#nas{eA#9qSTw=E8)`CoQo3re&vQ-+8* z_%W|nf|_w?SZEJe+#&2wVM7?o{Fe(kx^p$O^cBJZXm|ypX!;AUA%dQgFr9`xUi3pL zz6B;clbN5A*;hY>f)$PpimKri;kG|fpqsFTt` zgb!MTwB?e*?dIIcCJMQ_NL=IaF?>Pp$?10CVpivPXSyj#yll4EJo5jZyv3CMxvA@i zAxQd%rN1}m=nJ?EMZ*F_by~Q~ioDLVlya6S&^i9nw%RH9a=$-eu@7uEYywzjdrV?` zc0x3*SnCS8mSPrqAh5OI3N2rF#+XGaz|YWYMRrsZ49W4$&XfTDt#k{H5g=-m;+#Ih zS;r$E=p`2Kv;6a~(sIaS{?l{+Ne=|sQmLH&y;4cw2g?Qig%^RE^TV`a9LR}<2wxRx zRc&i9XFEce_5&YAAvtD>1fY6=F2H{~O?9IYz&S{elcd&&e(cPTaSS{!y^cEZMbw5` zV0*Uke!-t)2k>lIFXRlw3&M^UmhSH^AghhA^SLu13DE=OhN7pqd{EXBFVQxCqF_125_ir&qw0^+VI`ai2&M zM0ksjR8K;#XbP}$R*`dN*L5MEGel7>yt^>1msThBUoyMyogsOXBbe^nk+}PAA-Iz;9 zs78r-dZ`((IFy67jeKaiVyK#!Vwl2oa!gvk4S%7O@Vs^5R11Lp=zOk@_&IvTkKK=h z71K`;q#NKVv;vcn7r^}P_zzSyZ~3KS^M-3+;ZFU-cTW#-*CMymY&5V6z8HDzGvp*0 zcyZOLiD>`&$k$nn{z9RAUO6TDKvUd6EjGlz`>9+GS@nk_Sh?$k-kvi?rRkUr;~>*G z4cAhHj`sd_lGF7TT2f5Vm)C>S`JVflr+5&pntg%=hdy+W9JBbb9T)hYyB3{3-czl? zd_Kw&AeS>r5lJiS$Ol?BquN=ybXw`vz^_3uFCmElBfm{y;QB(PqV&p8ksko}R4S?+ zuRl)5iMjo%nO=~LzcTp}3Hj`nM*_OmkhM<|o_=l7{cRs~D$K&DWaAId9A5cRyQ5>Zl!O}wilDKacG8V(#;!Nel;%q zkyI3WDs*n^L!Mx5)N=f;o7smJP{e5O{Iv5OEFUI?9bm1Q=NE}>APe+RK=B2^=n z69rpv9aX_6J#cn-H1^9^EHp~ymi>fVR@$$dP;7{Zv;8@kChPegU)(S3ubM>M2<8!74RjE_c&}!- zqKCIXsId~xK{wB)e=`{|(HsM-vbB)d>$BV+WFeC}S&U-?%`D|WKGQ(S?ux>lP-$wk z7|QUSP3EAJ^_`YQpKbaNXZ@-}t1?&H40Lq#DpQ$^or^cFNa}e-MQ>`DpITm@Lcsu# z)*v#M`%?7WVmKYT|J^1{JajsjR^_}7+9sMR7A&1nVJ1bw=TX7Z&n{!Y3F0mDPo+AC zejJ-KT=ux_KhDaLYYGldkfKy7pLs;QE+Y9zL9E7D|3}2`V&{?MZ25#}N^7A`-0GiW zfv+I7P?I%ACSj4ub#SAR>}l}Al8-hgzNJXcPKY0=v~v(`jSwmP+HbyxAuf2@RwuF( zKAFEo^j-AWad6$Gt4G`fB$$HG9(`V9M%*7xq;b{6j@!2I0&Zmnug(h5V?aA{V zcWT+Myw1nXGuTm*1}Trpw6VIeqD{ zwfscjBBJ?UBb>7XGAGD^ub8=<0Ba2HWh^>>#Ef!&)zd~$sS}kJV-U-10a-qE2-QF$ z#~7T=27QnwoR!w|ft{s)r{?-9OxtMzDDR(rkCSUbUtY3P+9Jrp$y~eazkFbf;9Fk8 z5|Q_{OXj)G?I>D8LW0OJ+ARrcLdzDhH`3QX22Nds=9>UOYfc4TZ3Zc2^RoEUu@*r; zrD`fAK4@Q=5Wd4^IH|R7oc_b~3iZ)&f4*@gC$*?MaV(wB4lmcP`kz0x8qIShCntoq z+9PEGOKA75YwNZSW4{I*zU}42Wj4wc#?-hs9ar0&?|l~t8u4)#sdcISH8l5q&poLM zs$JspK`(=Z_?cz*ENG<#Wl?5QR9Q-cT?PvZQ&i}!Hh$k*Ze($(vD7u9=QL)LsL<8t z744}MTHKt@_NGlJUJ)|J)a0cdPxdP>K8u|y)~;!Ech^6tK>E4lHFR*-P^^7Y>F((L zIEmAGsw+$oyxUJYuFv=?%?2LT=pGDz7vr0+ZV?^J1?0%`BiFXM6{bb>c{xqLIWmm# zYHL5ODmulGXDF64<-*ppPivhkL|>b)H*EdRPdCthymAYu{`Kk}>z}r3U4I(vs|&@$ zNPwMT5S`j=1~7tF%`exTD7ebgOEIhlRB3ggda)N!WR?bEolN9CS=-nOVLl$u5KWy+ zJJD%4o-d;qvc7ju3l}e`*zLxx<_G^Twx<6 z4*&Mv=bmdxEEOn(bYd8jR<51m0Xwx5%b|O*l=dgQA?Y-e>`w#6W1-s!@95l$!CuF; z4`Wzd9~`^Q=}2rHcit!QiGOh1Ic;V8xU<;yJ?quo<-ipUH8r)Hg})jSmh5IxhD<9$32{(!Tm7j2Zt(#Awd)T)DMD!$)?)AvrE(#ciFTww)V^5 z#)8)KKiM)j2#kJaG^V4s=_5{s>p7D7Z@phe(5J&9?4Bz?o(Y?YlY#H0GDd6B3&X#mhp;C+Ig6kk^OA-!( zZquPdIvwRH^vZn6krI)A|4w=7uj`*xj?92w%Jen2BPDg=D)ILi&}j=++c1(^nvl|K zT*FZxieZ#x3U`~!hvQN>y52~~$h#C7Ov}`e_XCNfs3^->=rn1*-&-?PA5t0~E$eVP^gSFFE7y#~Bb9{JxJB{^A& zZb%(sPtA0IP!VyH6XFxZx7qCTUc)i z5F;8@A3klvIH@ondL-zc5l_q`{|NbhV+9M_+@0_Q@R}2_i>1;u*sl4{!3UwzUE7nz z+GvL~?cH?9|DZnM;<4-RaCp>?*J`o|QqLgY__%v;2xCZ<76k%adRmHsm{VVsG8-mA zeoe;hi~Fi?Dnk@)qEufWk6wK|$+nsBxf6?OFc{x93iH4}bf`O1ZWitm@@g&U0yX(2BS-+}!mnvf_mk7^^xP@t#L2>Gsgq4}|=;Zu?%ymGr8W#b%uh~!ZLNG%b|)E$8Yyyg7d^!EKiw`APuGSxT-2U6H!Kjg|`@8 z(2RcCrb+|#`e*&F);in@7!~UcLzp$C4emp^EvvJC?$-H?_UGM!?Awn@UI(DJvG2$8 zO!q0Ob=m`q?eI^{Ruh$5TF~PjEnq4rRs8y1%lVcWX}MO3NJ*Ov>f7 zUeAZ#xNpz9r&=BGbLk83x!Y*2*Clnk@4J0n38!z?Umsd(fuY^_>Zg6sNWfUH;~a3j zkq&&u*!w{6;VdEQ-lH4t(0*A#SS<$lRQlNU$t4CfhEh-FkIYiF!`(g3XD|hhB?C#J z?Bu?@X3GGg|U_LBEf_EPs+^7i;|Q(LWmk{R&2QTqUm zCz3vrU7^?2v7fC0TY{{_EBLSsq&JBiXpmu`hPGU3yRsox!1P6gBDx+o6PHpK=`$DW z?TK_!%KRQ|Crx##(Mx0%P2``^IChG{zB`Z~`Dv$J?KWINQ>;aaMMN=C%B+_6B8Hy2 z=_oLwW-)S(SpXUR^5L##X=>>M=}&;;&R!pY;tgK(ezP0b#LPJU+TDkHm%feo@kj=6Z$QSOHK)Xc!p4@u*Ew~e@eNF^g zg4!SNzHg1MOfjw9DQN(7tj10kvF*4JASjo!Kfy-}yiOxL#B>JFcL?mr!gUrP>RWir zhslPA7I8xGV&1X-YCY);5bVIk3}|NOTV=x{z!cAX$$zt35#TJ7>^R6HqR$S%eK-3U zq^Ilj%oTw@y&~!SU9g?gL^^8KchVm z?Szy+zFB76XXT>H0din0!!HzkMbY3b7wQ4+61dGFU*t7TfJ0*;ZZ{_jS2GMi{}cdOMoS zq#f7Zis+41hu!4CR~YL%5Ti5s!!STsAKC=H6>!S4n))G9avxaWdGXD1!J~05H@9}r zx?b?oAcs%9Unz`;ut3MXdC}X`@9t*llMPu9*lLZ+*3cgq?PE6I>cp=&y*<$cXP80Y zM7BEBgHGGD&ur(YJD5S>2ziOwj=E>Y=7zXb5E@v=Inw1PLi~B9WT3+rL3E;ePjaGE zNPeO~?tiiOo>5UP+uCr0C`pNKQAv_fB#C4R5(FfRNR}udQBsqGfJ6b2oRJ`sLjz4l zvLG1=P0q1Nl4+p7YR^92bMCv(J?9h2(IQD; zBT3-8l0RT8B+gfFW=z)yR&5#w4Gt3Rzm2%GaZghpbrk$baxJqZ^wQA0ZM)OZ8}2uE zINuZ7b;QsWSxf$CI5!wwZYnB1H%sCR454cRS1$NX+GkfUtx{O6h`1kWd7f5$OTaloB4 zOjpER#e$9|U3z>7QbH-@_m*Az$-nZ5Otr*Zx*{v${*+qC1rH`oi0+)Rxq*dOW2(3d zSskzN(uSnO+>=}Sj)GiSvIT)Rf_xRG${c6gvAZ?GE98-DzUAeOjJx%nr{qH5-EZ?0WMoo*E4 zsy_gE5E_MI0l+^Cx^PYADATGJYV*d=yv|Aa3{=B$Zh)4Hz=w3TaXcX_*}_QOK?X!3 z2V4tP0-({44D2twHz3(U;A)Sd1!>}!gUeZzUd;OYdjk=1)u*6&UG?47i5&Rp!B*Zy zy-=QaAJO_KEc4WHyC8L{Cf9Q1<@%4(Vj;)XV$fu-+)~5Qzr}I2Us+G+;KfnV)NsDL z#=+*W;`!;m{oZyy)?;C^isHu816q<+A1}{`CHl_S)`pZA-1vvbQY&~XI=p%FQF~ph zhyD+0&*ceg#a8D(K@N5M_f*-DC-FB9-6ROz#0p(KU;aQg*qUq4+)M1=_6%DeRggqg zI1eG`VrST$8{e)^Ie&0Fy7lE{Jt|+L_yX&W><(JgQ&;Ddda~i|CDi4C+9ODXjmYzZ zjhtF*SKqFPu59Pe|sp_JJN2eW>JzAmeuE`y4-%Uh_+ zHex!nm8!H6qBY_XB9-D1Vh!TTk0RGTbN8h%=4>oP$mF{py}kV~h``(jyJ359(B)Qf zn&k?_2`K=skO;GH2_FW%^c*ITnx3a?H+iiSw+f01S`Kp1KQ!idRAhtMxl84Gahi5se+;OFp}8>;Vj z#;hl*rGLydREhgnzhhE;20pR_#vRIw>XS)uiSx!v*f9(Yn|}yr|xWd&!z4J z9%Avdtsfh`h-Yw{XW;sm{1-G`9%xU%duLk=d&B@fBzvSVd#)w>)pw$zx?B0zC?ENp zoUAkun576ko2v0jr1e^D>W*di%@H`OrN5J4dYo z#MkHD^TI`60+k1xoW&r=qd@dPnkQ@}&0F-#nd`|?9PTWW`eTicgJu40a+f3{mmsl> z4hJByn3S&Q6QL{6P5`;i6-`0qb8jtFL*G+h$HLWa-keSo(|nbEs>X@%H1W{Rry9^JPBWfIYj1IBz?mJJb#7?fteo(*NH5U8 z7a$74B8!Pium*|O%iY(1h~oPNS*3jM?kikI{7#SM>ME`1MsK9wi3FYVX9j&>CZTOW`mmvJ20m(#as-``E->!~mc*-)mpqD^a> zQR96z=%Pq1raRQJKT;5>Z$91c)fbEd#tW_K8c~6_d~7t=(PGhNO9iS_>MApX{M$s zvi_51iL)v)&T`c9v2^`m0QKX`(j<3%>D5E-u-gBTOMvbBEbA_-bQWtpEA`uhG-oI? zjWOBB4wG1{egV9WECN5Cp<=bS&dTJT;eu4mks4)ZwJ zj<%ksXCIDF{SG#cJm=Ad&*o?On*xZa&Gfy`_2ylT$s3QjgZsqB+aqXSku!U2v>)$! zhuJM;>`plk+!Q|4IfDOe^eg0c0X-4}uAYntLC;3khf#dH!lxtn)|R8ao{tWGd}%!% zdFf*4&ue{}y@A~|2UpAKBX@5maX&;v29Jgmxt_i*iggbIaJ*1_6g5@5NC-(zke5$MB$jWQ;)>p?T^6D-%%R^!B&XbDIk~(0b zGLj5LEq&I9w!MDHnX3&erHhsiAI=NKw;+eW1)g%rGNR5X{-#&hs@Hpdj+%I;20YOX zNNWTyTOse?Oce1k9>vr9Vt$7C+qa9b*)Z|2L)$PC@Wr#I<86ADK-Y1J35+4ptE-^b!>VzuvJmH3|WPn1Y-NK8S@B};&ayX*3{-BsB z4UgUZAOt7P@xW@7WBqF|E4dvry&_Ipp9n?pEpTaS0d(_=<%*82w4Qj5a^Jag*USQH zn}LpzTEu-nXqv~aRelUNGRSeq05;c>8J^)tx3ovEv{XSFPk$=)t=jQ5qmeX26a_a^ z8X+lbpK?4SbR{Kr?9#>Ek^3R4*-sgv)WUpZQxEvFC&*78W2?|LOJRmzGwDBPq|S_x zKT7=+;h=&W+Rfc@6Z>(EzUcY>5XT*Ur}gJL4IZvVxSwadP(9Q|s|v2DP51;z2wH9+(aZXA!6dWpctdh#g*S4y zf{bOm7Hp+6c+rQKaBs-vJqjm*YgbrQ0)r@IxDM*0)>8w&T;JWukPe-+L^UPLo;0oK zRgoF+3if4AOxttz(CV{z}WqXgG_sl?rSc*ouP;2W;>!D^0mkN;_< zY1c$0^ofR!Fg&eLk85y*Bf-Ej4sDX}jYeE(3U%DzJR9~(67KU#E&U3*@J5E+s{Iz= zUC+9Eq;KMRdcPc8Os0LbMF{xkcfn3I{q66y%pI2RmoUj^l)f>17|R~ojzkbzkCjM| zd}<+cKL?k5p6z|#1Q9D-hUR37#$$)refI4ihcoD+64bVSq^6FC-fLp9x(9YWU9A;t zn@e#Tnk@lrWbR!Amctg(MtX%My(t=FfwUKq$M?M%uh!0x7dPJD)rw;r8E$SJ*P6YO z_I4%){m4Vib~*$6oP1m-PnKpGjOv;#1a(8w|O^!US zg$Z1>H6vG%#_@lHhs7$&`|)U{Cn=|1mjUW`(pA@HCi1H5x`rb#kOm85rN(;PQkyfk z?P$G-c+wI^k53Ve3EMb#6VQS^4rl?tsw=x#$dm}t({F8#Bvz!ejQuAq#9}5=EdC_) zwz7~!n)~`RPC8i&3`P=C@2>hsL@`SnN#OX?`9d546BCTumIVyLH0W@7UMLgMIRaaG zx-r7OzIrn4ZpyBcSYb};bSTvd$Ol!KzEORC%lVE% zy$P*X-%zjJ{CELvR^2OTrZHWrRw0e0;>x%U^|O1qX*Dp5-#M$wIc zVM6k_3lmC;tFSPh+Of~Hx5q#4_95Es`o`OLovd22t{ko`-l+6)Gt)WxZdPeC&0h)a zbkx~H(d)o0VhXkPatgJr4?758ZSo|BwhB}MeB;DoR^{BreB=F}C=0#OVI#Fi%&46f z#ls8K!14Z27=ETjW}&X!SNhvYe9|pw_u;(NL}gJ#{1^qFc1r*yFhBfSDMCreHVS@( zJg0S;+W}wA?$7U(NQ(EoJUJE{f)9qICjkN|- zB6HIC#*hd~GE{FsYjU=g)qaCF+ViB8ZWm!sb9T1PP&+D{GKbc`6~$s(e&rh9c!HTt zIS~BEbKT_API%B=-PqS;PV+<`y^ZFpE}gJp+g#7jVLpUE-rAW+Z&DFHn$)UnA+qEt zo^yL?i`wKLe~W8VPH8h1A5TaLFj}MNCGR7oXih-;2+h~?Aosg()mtSQQ`L|V%6BLl zlOtV>nLx5#X?sM{c7o&BFyFms=dB3s8|{}J#zM|8hDAAU`Pq2%8DA7cPC4*CoaZ{5 z?oLQFAaDERQHIx62E?|x=Q<3BEq(f}VmO9%K0&?kpuio@*PNq46Fcra4bMUfXDJT! zx=8)!aSumdc^3T*SOKh5vHeZikbR!F+q>~bnP}V`?UBK@!GbRE(?vmxpwPxJ0(5x? zCosr^0n1#I(S||^Cnz*fjE?@X#I$3C!kLy{oE%Ps^>}=RHKh~$?ARE_*%0KPPIyBq zLn8c-x+h+j-@UuMy@m@HyOP#MEK2Fu*NJAKmj!0LMo*{?;y76qIg+DnyD?tTSYgTE zHtlMb&HLKuMWYwvs>dP1ynmRSZiSFjDuQPf*(rXe1-E%f;&-~+#TF?Z-J5RPXbtp8 zk?}kmW^w`O2=)97j`*t=FFY;^&rwglbghVqq(H87v-WPhG3YHQRosXjZ+2}Q`%=2F z>Fs%{Gqa^=WwdhpP^Y$Kv*U@3RsXi_iV^0m}7M zh(aLgEECa6+ucBE%V$xJ7-i_bLd>@j=aM^JpXp<{qGY-`o={=&iepyR3BjS4k$(Si zWAdG^g1~dT(R!H&S6GkKI6W7M38|nKk}8(`LkHU;7#4T1X3S?GzMov&7=G_8T-k%~ zr{8g1-E^{`suQ9u6ycBouEXVVhwj(bokQi3{Hi1mQLaaQrBl!iP+s|2XKz`*s%0D0 z1j!?<9STi4uX)#o``l~lBjn(6U%n+z6`MI*Op;4r^oiTJ-Go3KziOR?RRWuvs`n`; zr0vDhOy^}m{~(5-1N?F(+$k4@AeB4SJc3#{EVRB}m(!$V3!YNlu(M!*FtJL$3GkO; zQV9}}EFn$1FTGO-*$1TEv$8Zif@Pj}cdrmptu71tn&F(CC~B^__2ywJnJ`C>T>`uR z%`B^rOH@&$V~he-upUd7^GukKCi6u%Kx~Oqo^S-UbNrNR4npK8UgX%|dX&W&7uh>9 zIF;Z7GOj^aGQ*{jfC>6)p))jzy=KkBb$_|ZkH<`Q3eRv?6FUoucP-{!7L8oB-o4Yh zoUT{14?mhtGU`bzbZnMsO;vtmc=(OM6cm~`?PbAOA{dUPCOe%RFEK&o<5Y}Fg3NfIQ#UfJB}s3SAHgE@WlV3@8VCFsk)o=h}07$bK>MV9x!V0-15TJjgb9W0PD3Mb=cg5&urBMJ(CvZU)@3Esh0Zf_D6KZD0TG1)7Av;CO}Sxdr_-ozl|gFQE&c(~&7nTg&C|*-bN%n_yp2CZ z-A{$wm-C)Lmq{54=8GB;;Y%;ZD<=y2WQJ97(kTlRIx8xzJ6~0*CFpOai{5drjc0ooSuPme>r!aQa7#C5dWnla78f#EtS7Ho@7iW7t+iAT>iu zmYX4LpLIfSsN(i(=u?}Tr3!X*MW5{1j&9cEBiblrywO`znFbZT9rWsR(-HL_?n6=p z>@sRWs7oMl*NoXF8Ei)TmmyV>KJ59B=nj9p%l@a}S3^0<&X4cXNxW?~@5Ju6Z8&Ma z{5pDvb^dDS3Eo^8f%w{2PAOI{0G~UtRgC`VMxXiAOJ-cNqsAA1N2244lRhVYKO&y? zvOcL7eR=KN71&-Mzwn6(%s7Hq_-scu$oU)Hz$}U(oJ)910H&tQTf0gRo3II;k7?zv zE>vNKTGH|eG(_1xsiJ9OG3wiHWbvZ;qcYq0Zkr9cj2BB?79K~6!pSY}p~WBXkU~C{ z*1~NdAC+Cd`()o;f-0#hOlX%yPu%r=Z+aM|jIT1mRs-7WdhLP;>M%_7l3mL{=3S)K z6ASFMs}3tqxZCPh)sO2>Rdq=ymEvbOpq}V+Q}sM4J@Kf8I2|GA%sJ;S3%7%REq7-d z+1(%vPX3p$nTV)00^}AWQh>?|Iw;4YRbeqa*+?p8Z~k;kA^KpawJ*(e`PL}!-Umsd zQinc~QIJ7HYws=hSRe1qRX&olZg+5HzY^+OjPtZi_`~i^{>xrlxM?hb!&yIttp)mulTD1nhv~0ye7FV zHzUy;6{#s+75EHZ(D|Ng^4<@1_<45U#v+)PE!$U6xRfuF3X=^hUHq-jHraHz-7|X9 z1ZPao%Ey`C&&*<*_%)QYQiasmL6J9u1xQ`USPOLc32c}?e<45F{o@mhU&nc$$16mu zJyc!A;d_VjeI5$gtTlG}zSf`6m{<5a^mn9)mA+Ca-oP6A`nmtbrN{Rhzkiae zD6KzIO0^XvlyFA83e$64Dp$ZVKR<0jB4I0I(22sny3fz=!a&%2?<#r0^0usj@M}tP z`s~^1a7Z*N2B4GYV8fquH7?a%w+q;l8cC;|VOwREz@BLXX=(CGlnUJ29qY?SY2bx4 zOPfzBKVDAXTj_Id5TKhUXwbz;KX$5zTvsJ{2YH8gd6@@WW!bq5@=!1~lA`J*fI(8g zDx2T5n!MQ-9YjoKOh4_imTijKG<#8r6kB*97`9m%>i-FS;mnAwNX47HLl$XZ=(7>r zv~u9baMe$Tt^+D@wUt-ynmDU$-TPz9`N|ckG(5bunqY%SiCV{HkMn~svs)}_n)7G0 z^+ka^WZ3=N4ItQ?syR@8;UP&04dr538T4UB5x*LqN)m z8Hf;V8BCBr=&u4^jGjtBQXX<|{yq4VPy?>Wn<|Z7p0#rUl*z}WO^ozU{F7-t_an&_ z=J5=pOdl9~&>@qBobsGD$A_7&AVGhS7o|qhwLsjy3CcR0af?iF3FwJFG79>ac1BPM z4mzFE@1{t>3QBetKFo=@P?K@kRsL+iigsd9hEC+!Gpv^svw%5 zJV*D>MW-|9DXt9Uap7NhlO*1`U8q-EiSkZ2UNsD)UcQ)dN$zVho3FoFC$`GYw~5)*waHC!>*hS1EnFyUp=?2JMBpN9 zjZqT;)qdTv5tY}xyGvud8JCwWUbs}6jSgQ@!fvqlOj`kH|MclL!E@=aSg{E`BF{ zX#|g_zNng7PdrJv&slqaeJg=>H-}ajX#faTQ(gJ(Z#RiVa$s3Z|`OFtfcbf>rEiD zK>N238Yrnj2(|8VLxy`g|u+$Z^CBikL zNfpEiB=@h1LA#>*pIvN+BRaO#VX0aECIabm@0-3XRJhQjy=|eAQ25wi#XXyBxRW6J zO=|Vq0njQ}09i~Q6oiZ{E?G$|zTMEx@oLJe5(6f(Z)VZKIQT_#=(jUip~s*XmlHaI z*88k9j8<$qSjJV%|K6Dx-LpC8)@=(wcsqxt`Iv^@V1Gc43Y`d!=A#xTf6_Y7M7W9S z%q-MLD{oG{NE=fl_B2En9j2ss{J1*d4$pp3CiMc#{NhQ%vyFl?Xejb4ffyneH=_J@ zj;D>X?gTUC%%4~D~}{8-stezlFbnH<+g2-DlAdEJ$^ zwj923M_lIgEAJ~5oWHMDAs@e zhd`;q=6jxuJLb^62-VNsxAR|EC-Pd~#uwN3a*a=cjwiRCzO;?GC#@cz=GH~#uJv3n zKAoE{=)#mfW{!jv>kA%$QPM%j=}F*(n1HRZ<|E`2LINV_tV`=4p(4x62npkF#UlLy zE}d_?X*u$~hW(jKxo&l%vr+d(x-r9iz2_l!zVrr3 z{EHtmaGG{g!R(-8?Y$7x1xmHxy;1IV9l29hmcdq%?UOc#;9Po@tdgxz&L{KAM#YYC zj9Ve%(WA>p^G)r#B?f?;7a0^iFL$25n3%ajoN6`W2_Fm=I-f-o)7|41*Ei=kOswfs zAf3*ZXJ}$^ebZ`S$L&wzcd)DMWp>ucP@@>`z184;xW@>8JfMs7O+%Nots@~xYaz{E z^3UV(D>9ii9>BN~nqU3|L?~4ZSYLvuaqf}u&UZ`o2dnG=6lLez>qjg)W-(Im8l+8% ziJ$N?;`2;h;Cv1d;=YtrKpz0KwR7K&9og~ot5n$TSBA{acbRmpi z8+18D7S(Q*0lBNNjQoSit0Zn1-asVBZlQhTvm)h@?Z;arL3gy7*6iEg-?Ew8O{j5P zn{SQhpYecgv})x&zsrJM__Dr+*LwU%z|~vxWScPN(;Y9y+JT-ZlQXka*Yv$sJrfK?bCHSJ5bSztXhl6ahL1*Q<+qRjYp~X{wxpM#bC@hCKAv6O(5w zVpq5Ki(!YgciA?!5+NM&Qe2N!^6j1~*P`l14i}e-CpO?eN^SZY%#DQ`tOy(2zTfa3 zZ83eHV!qH(P~NH5z04Wpt0MR~{bOFaK2f;uM|N!~y+@=TqG*rnE?Ijyv_T^0;#8-n z8>;;eN|SZPc}kz_euy$y8P%6jSHXWsrum%d#}D5|nR(>;Jv5m=Gu~5NWqo}9(rf3| zqOqKf?L}4d#YE}XD2ZV590|sOv<=fhdq?ne?`XwVX-Cc5k`(vXwg>xPs*JE^x8B!= zp7Hl@b~->>Q3BB9bW(YASmqv0VSZeZTL45{|KoP{1U+`|;!Sn0D=Cyw==v$B=}Ic4 z)A$*Zhs=_m)Z~Gy6N}*>sSc%x(E7tpv#l}i_0{0n4>#GGm1s4XdJ}m^5~pOhAYB`~ zC|N$*ddU8StqgOoQhlLv+6Ca3Opp)NnBwZF4zuwB|T#ykVXdM{S4!uE)jBCuj(N2P6d5_pa92=-_1!j!t?;$NDnrQ zy-LlG=udOs608OFubaOjZH8{Ev64A4GW=r&yho&tgE7(4ZFkI%L7i-E-&?Nhs%9YO zD3pt0RysZb(s1G36%g9biw;G~(7XnvSK%n6=jpy35w)oN$mPzr9~g0M_;6TAlQ6|7 zTj(^qi<1@MfqV1nHK7>J&4~*riDfo{OL1z3Vw1jwTlq2a@#etqZJsEgMhPg z);jYhi`=IHVd67f1S9WmG;wN^Q(yI z*Z@kYY>1fBCN6C!cgo|5S?xyh3n=;|4B5GUP&klMtQ8TLG}eD;y}3c-X(b-fdAQcW zmhxq}Z9@NGGo_WB`e^r!&U93twoNqH@>$)8^Vci} z*3!akd4Ad%`sq#wQi{RdD4P_;L@8>Ky9J>^QJND#O{Gs-{!Bau&F}xIPK;Wdk~buE zw9b{0=2f}HtC3HV*BzFeKYE<4yl>T71LnTQ-FBwo-1_Xev(kKk;3z>*qLb;6La8B>nLv7OP(bE&$@r^X`Wqw#WWniz{cG_@!%cmAdl zKh`Qp#DQ z-{r)5?fZjR#3b0$F$@TBdxRVT%i(!?RsOx;NF(~RwI+NSTRmWSO}!O=D-QVKeqgx# zWucGx!RnfWg&)Miz?DBI??`e3aME`JY!dM{Nmi&mN)U$=W|(bU`klj6hL##1 zR}NQqH6ryymFJ-rGoBQ|VsY%DQYong*!^DTrxQmr%9TssHCUPBuDJ$#|Kta{L)I&& z-xwlY;4kZCqft$`u_X@O?eBvxXhOV0nxFhmK+x4{f((R&|69y($;=$QOEShX-}b%1 zm_hy?6uBf!d85yZT2`=dsb*XKa5lQ4?;3-gWy)p)YD)>{DTRtuvemeNj9rjv$_`b{ z>epb|Xam}eXE@1@>r&|ndbs_!cucFl;)^u`rTXNGz~TqV0*QA7AeALtC53ZCtJ;3a z3M4zApU#ui4*go*uwE`h!0D2}Z{O8@8NugoWB>+N9aDZ4#c zrF19qh2f+FVbL}JcTVe48Ok&=$0s8?ssmF;GZFK}X`Y~KW&Nx}*L9e_7q?Ey9XHSL zbFBy|z?gR1lKBg$1=mILUdUlB7U?l?+rVui#jn$CWyz_QE-aRlS5rzG0toxB8Tgg} zd7p5lbPTf~a=MzyA&x1MLI6SXvXJ#4X_Qhbru~|3U~j63dyR-mu}+=InE!fuy0OOD?iqk(FNmGO9PBdggA^!* zoS!vCf36A^izE~xgUF9b@Oipj-;o0U&n%eIv4L=R8ZEvbzGFDGWw57d*tMHnJ#Ggf zLO$U%BKNts$;n&h4bAZ)sekV@#N{b~J3rB3eUZgLQaTWr{F+E)-6r#Cr|^gB)x_)B zNe?()bPGYJ5y)o3Or;1~ubW|f*7R?ebJCvZi96tJ3kT&s1po(_IlEEy=PIacrPs5jFPTeU)J8ERzHsvq2>>M}|wmb;rAr4!0CSm(NDz4#3f zCTgD*lqRE?AU(vLyUIrM*JYS#!bvFh{C8VP!x zxtJLM{l#~Dy0tGS7pQHWI1W9a!KB$z;q^FvlLXi|a&M#PS1VWBSQ+L_oBi>(+>+UF zq(Ee21fHPt#q3-2D3i-xy^2_m?*+UB{e!1asJ`Y=(CBnL5a^9XS@?;j{n}*9Zp&Gn zD7xHnX+b$i&Y#;6*s0Celg6GNNhhz9AKP8+OX4pU-`4n%1%vE|urW{2xG&y^uxlA* z#!Q&TY}TC9Png9CLT9&lkURA(Kt$F)(TVG6X-0DqqxWWCJm2fgtcZ|RqMuC}`D!>E zHQ6ipQ$FARD?jwxme^QB?S)YwQn*hkx9&%teqFOogJGD+8?>8yZtoTMqbWs@%e-D7 zRVT+YUhv&t?6Mh!Z^HLDnNg-#1*2U$aN6c=!)|9N+;`CuZKKLeIO8LhV)0WJ*OtWqwH1CNd-GuAE= zoEUBRUsT)wuq(IGgPk5^7GJw9CGot*myAvNeS+SjXw8ku>VcKd@f<0P@q6;wh}%Cf706V$3tdi!HUyX6CQhtNh-76=oI;nGul@jb#u+hrQ> zORexTksv=Z;-ziUsIz;d4&b@y6)*!8X3+in>~C8{fU5Ks`PVx;eT!{hnrFL&T$0lq z*!w!y43_kV8dJS{7FSG}#L`-by;7&ly4D<)p8Q0u98O=HAHUb#p5cj+HN#qs(NI#d z`X)#y{ykcIr8N!rMZ8VN^JD`S>f^!`udz46s31D%R;2#8pbV&-nPg}z*^9VsvclAm z>U2z!@AhrB(k5$-3)%cA2H{>94JeC=CLzVtX;v(9rsy~g*Q+?c|@QX5$GSpHYtqZ z8U1=NEX%cCa+O}zlL`iEmyY-jkNBFnn3PLeb?GQPE1f5qp@f5FS9N{@=SFeH-t zj7w_;?POXu%EQ1W_Xr@HQRP>bO2K<{H~G6Ydwx>z-FGS^+-CDH%*mMnFz*NpZB2Dp zmco8^fgULen=k9+9$jp*WQmxZ1sMD;NWAgHd=tKKPMMl%iRd|J_h^7Ruy`lkuJ9XcV zHQ4tv4l4yGpJa!>7!SF|=-!z?qW#O$zYQFp*Ri2K$iAJpz8{7da>d^7nY8 z0IFgpB=o}{AP--r+iI8GSx-h3CLvmglc>GV^ml(`P`!k>^$ME8r!5W_qfBk<3`a^c znYJud4fXs}1f3vDF!CD<=Doa&QKU+<8|%Z;6rnL7cq_p~a9jWd2fg{maRaO#$uH>u zMm2!Z3J}me3*RU88N}M(#_k9C*Vy}|1C@Ymf=(HhQkRWBubqv@f_4a6Z@vvpL|B_u zz`x(~Ua#>=bsbaT&!c(J96n>4OkLOUaKe2>KV`>Z;z2%nF^q24E$M;&Q4mA-1xg=A zEcTF+zZVIg0Y&qH`fv|oBl)JgVGg(dewe{2wgVXcpAq0+1tQpG&FUiTGjuiymYHs{8gsE_d{~?3vvAgE;++t<;y@3DlxnU9;#mVzj0z z<_jBw5C5-l8|G{5Tuwjpwkp52F*-Kb=77whl^OHFsxP!#@PZD<%uGzXv-1l%o~9cG zlTlhH4Q^nPsED`j-N5qEm^h~nwbN8p<&tAQ=spM;<#5Bxx=;}nnQTgBe$X@<_sz2; zkSa>B)^Q7qk#!Rh0~||%5;aE5?vuOklEDgA%O8Yn^wj@2`P-HOYlxYEXS{|lzHs@J zc|IXiCdp~d2-HmIXh5DCPPGc0V(_xsW=E&KAl7P97z)u?lxmLJgpEBtpV1DLN_RxQf06*+ z{V3(eSSPNx@o4IJ&z3+=n4W$`zMe}rMEE4#cJrHO1N>=iPq_#**|s)X$6_K*&+wIe zam6#Hi*A>&M(h|Sd7CoO%gLlC(YkDHNR930-DZh@2nqhj*nna+iA0;e1`xYs?u}YY zUEXb?q4swm;6Re4RK7M2hVcdSMc(;?ohe1E{+K65SK+@|4$O}nn1KkKMhqKGLcfHk z4@u-YMeCYUzUZxBYE&$vZA1^^i_cj6te$e5VijIb*SA`+j?+v)>%3w@6YnnTW3_Kq zYP|~FKF`#10e1K_E26+{NqO^qOW=5EOgrG>fVtLM`?x_iYEw>zhIc-VK9(21?S%Ep zszeVuZ4js5&{X5tzWZUf+Mg90*stH1^!Ma1;YY*k6MI;$8oS*MEWmbK=u8XTT(0D;Ww7kSU2b_31S6SlTM_-ASYGeps<#QVY!EICZN@xq*(#lzYYX0grX#lquq6?U`xqR>@c;TkYV}*s&e>23nL4 z(JO3SqNc2E$!n``&7M?TVP}j!({a+K!;r|oDVG15{Dm7xC3%@B2=a}Tuux7uHXXj& zc=Ne%Jt%kWg&QnFj8CVEYr(G-g5jVEF~h&$rST%|{W&3129<_R^NnqlJMgs4TD#1G zzLm6zK2OxN%~w`i=GRcQOYR_Svx)4Bs^K7OzZv-WOuiakHM^&}LJ!sE^?| z$cX{o0bdGT!?%8V%QNi4bN0e}ypX@JG`8o(`0V3+>%)QraGdBtDb4T0`+M@w_Wf@J zDd#E$xy(zJu1RZnqtO?pr)LM}vEhrO;{YGHZ}U<<@JFe%2L@sNCujF1#DbEX<-)1b zuxGn+7LMREMczb#w;ZX}5vCkmW1`&MG9KA{r?J_PkD3?={*GkjR-NL0-od0YMm(a$U)|&9~ z8{MekCt)MlHqK z&5}|zven>F!Rzi2bFcv$|9oCP{i5hOiMSQ@e`-~aeJNS&2<`O5XIwi9Och}*#C;qu zwRaxls?>yvo|R|?5}D3;Syq~>w&Moj{|6gVmJ-XnIVfJt`)%0Svd+d7%A2pmn>J~8 z$Xutb+B&QK}C-L_-LFh&qSx;Osr$8Hc5TbEQ;Fx z+Y{l!^)zUQ^+v&oPQLZdS9Lzm_1ikTfn@Y;BOv$i`;7gb{N-V*visI~dSV7^^6Qy) zVF=0Gs?O2MeHQ7%vn}m}zI`G1sw;l8v5{$u7gOC5cGD0z(WA2W#3bb48`9s$4F4k3 zq?783EW+-`x^y~To=a{$mB$YtaxLK9iJ#+5K#`uyl%56*tqkz_FaICjJR>Ojn9{k5g z@0ua=&oa~Ahp00LnA<_O#SbpwIe%F^?VA0WwiMS}uf8X4))pgja}uW<)fn$f8wi<& zBf4TH{T@s|V#c_|f9EQ#anf%+=D(Q9NY@cdda&fKQ$dC`@VOPuiHi$#3i0eOsnlZ? z$8K`;kJZ;|ZH$;ICdSua)F3R26L>95Ml#-Mb%dK@n0||B#Qy6ftLZw$N~^UeK-FPv zo+l+FLfQut-oZw5a^f zfxhlyW5Z~37wA1OTI4pvz^lRYFuN48|F(JmN!42kEf>-Wdj5}W?*Ft8ui@4>T%0*Dj#(iF3ru^y zgsxnmWHNd|*#UHNz$%bBqquWsyT=O}PfayOG5QNb#$d#2sK7d*a%ITkOy5Xg$r?nK_u8qdQu@?g;%r3!z= z8-L6*5heBMJn#AyC;gjXY5xzOL$!WIoWOq|$$qnCf3;af&+e}D@`8AfY{f)AneM(_ z02gXsP5!J9q-FV&1O~`fg1>~CV^UH7?i2#McX>)m0Q}|etn2T|Uqp{O_1Ec)WiLqGTa?=}DNp|9@e&zbDFmh3>x><8Lv%$ZY)A zNSCFjt!k#<G$L>9OW-Q>)+7?MEK%=IFe&nl;7+Ad-4}>=~trlAGsK? z96@h>u`*zWNv^*mxeE>vK}|4*Bl-<2e^34bVg6EK{y#n?^p5|#J^yu803b>JcYFTt z_WYB={r{u&EF<@^&%CAu2_gLioE0gkx2wXe7pUT)r~Y;iLjAx5LoOa3r&GS=1K#tC z3)UCq8{kF!WtFg1m>z`)_@$9xtp<@Y05i}ue>wdUE>Se(IbI~02@7P2rr`J;-n)Xf zAkX`5K#hD$1CMUrAA@J)UVut{Phi7>SU~n1=*?8`YX^ycQ-XlLqW4ce_y^H}UoTPt zSN-en0ojxf0S$cbL6>+jk8gT%U53P1&i$ex(k8N6j=?1drNci-_mY>O69bEsT?ujnDyQ!AzWwGjm>R>24Gm!%$5gd|p6 z!gzR$4wCNUeaI5Y>g9AG2bO4dhDaZ;3H#7P)NxgQH6ryMep8er*z|5u)_PVeoHDoi!aY z1_tQf_K?6lnQdA7-zrNyNY72MRzV5Qk|Y^@z?*;<;O)&Y3z9_ziqhIaQ^y6OcDiOP zG-wgzFi%J3U^l;}a!10iWeeP(lwus(s{7uIZl1`f51*X5>e6ibV?W)p558RV4`o}k z83;7z#)9aD*^~K{m+=rk+WjWBXA+~C_Ilzi%h^tsN5sJ%2 zS79_6^l2n?k-Rq)BU#%rz>#1~QB!%BB|0C4_tXo0e)K+#fNuV(;KRkiZ#kS&XLMT% zO;-ps@7-XR(meLPwy2^y`5_}!BFLr8?ckoO zFBn{&ahzTz0i_ntEho9%5Q3xhC{OmwdLAArw(3nvoS0m%MPZ+1cv<8BN7!2jMAd)W z!+^93Gqlp7fGDA~bOS+sEgA z?|a{W?)}GP2Iid4*|GN8YoT7!##MvWwlA*+L)lc*6?OqMiwGsClS`Bz5c{^URhb^C zGtwNV=V0jl?Ft{O5L-!k@JiegpIS9*trgZ3xi(SMj6336i7Uk~rlYZE8V<~Lr3sJj z85Ib!1P&HiWOzlRR%5q&>YPHzO!+ml$YtvuH6`OW2^GtWfXtpI*QNv0bc@)GCB%e}#;7=*W{RJp~w?SUVcj~CJ z3My;LX@SmoN%7FW#rB8&RuG;T(aZmHurw%s zC7MC&J?K1Le|O6s;m|O-@L27^7u>$}WJ>?>^N{`H6kq<)V|MxW>cM;W(eG;8Gpw09 z&A#2_%Gru@R_E4KoKg1$CP7&t*?oUjVt*D?3D(wSWiNV(^j+F;!n0yesDWEmAaKM+ zCIb1Uoy&}5rxeTZ7?LY#(KuJRdbc*1yn*NIl-wK?Q8&>RHU@0{#&tMfwG;eN< z$bAb^D3Zbfk57Au8sp~Tizg1Wn-D78EHg!PCIv%{1_t~4u^&OgU_HA{VOC+i4rCPF z$Ik3yzBg`bg8t(p@P!zb^Wb@tyFIw`yT5w77@;GtHR7g@!XBi;#% zphl8SWx93`m?}BwZGAV07DCc5sPIX@@n@I+KAZcyo(0x!Z^NJmA^r)FXKKSNOGaY|V-SGvu=Tq{8=R?IF zV4zVMy8a$CSe8~vZ$Y5q_vGd*9iM+wt{kEE2uM_P58k@f7Eod`?l&HcUvk>-VCsbX zPb5Af9`)i2*_%?R2CgBFpC*u}k#R%mZq01fIUc(8hua_bf`PeMy=xhwm6QrPUIgJD zmu1l#4QG}WDnrS6s}Hs)iZNg}hs3C*DY_pYGyPm>!f#u>8fFxX=U0|ZebTviu|SKa zGLKX-?0y$C{Az<^c4JO_?Ym3;iAdGQ=2!vp9L{p@n&)zAl|xl>&cRx5hiB#WNy)D zYNH`?kWzwvA3cFjjODxcBH_05+lD`P%&+}PQQzyrhCGo+k^+~j+PiK&{c;eUadtO8 zODc(cJ!8afbDbmh^w$0mJhpCm!5dzY%jLDk+QRtA0Q}Cmp5DR!fzoq-m_Q4tfVnZ0 zTma%8_mN+IA;0jR8>qKhw-SzOR&i4M7+Q#4Te-`)UME0S7-SV)X%{|1U#Z`;4MD*T zNmyyLf>B+$-(H&!16R(fg_@i&e(6OPuY<}(;b1z9(!#cQ?Sd@aUYWAD&ZEV$vMpRi zH$$(^z8NM8yaHQ&X{^g` z7@Yeh{2pllH3;u+XK>SNfVZ2=YwOwyUZCJ#t?{{Csp(eUD=#^Bv;`Jh-9{(Kps;h( zy(I+dlH=<&NJwhCy%m7}e#)${ZG2XdR&NbX?(2fI53PL`$aP4bsn6b34oG&{AHc4! zUl6F)G2HGYi0<~?@3)^@Y_I(|a~O-P7`?jkdiHJg-k*i? zV34Tdp<3i2qlIrhRhL13)f_r>{q5H$57NG9evuRym_C z@KF4*vvp#!_5F4QKi0A2lnhHV0W)cM$-%uh@PRjP?;NM&^)a2bX@Cd+J1jaa?VSAn zQEp1UE;nL-{r)B6?jnMLP&2HyIw7_qwdcr{=WulEnE_Vy_k3X`zx52OrQi44qM|hp zdqm%T<7Czq6&v!)=a0+4bCr;IPV1c9&=E3@mN>c(Tv z>6`qZuXEVL@dU@40(6I+>iX}(1j(`kOo{>+)h`VD;F;><^|9{z7evSFOcita-R|7( zpI<~f.PTD%;5sFC`Suzxr32mGu&s_6Cu1CNA=;U(y%z0i+k4(0%#fJwH&VLp2 zit8?Jx*Sf*O1u#|bi^5FU%OagIlFrl&Fk#`ub_|EQW{VBO6j4tJdkR;+b(HdbPcI} z92Uy$TWKw8d|vJXiFyMJ2niq!atA^~_N8acM`gQIIR;mMWZKpgN76A@fVR5Dcth|a z_$a);WTN`*2#R_fao$?!FNmyln(Hsv_dk3%sVWgTUVqLo1dojqj2-D?uV-2n-dcsidhL>3ixRJ1i;BR?NOTXB9i% z82J0=O?WTQXH^kx0`Zs?MGWr0G|`wgZfq=vAD~0z0<6<>im~mRDjj`Q$c-F{$tx#( zBlQu6M5G-3%0ri-;=TI%>M7?;vZ~qw9GVT_Vs) z^9^LiF=YFKxW75*xjVbzF-5)Qf=iq8zEFT(s#oI}1#eBiBv-@3NniPkTn0|qB0C^$kJ&C3ykKMi zRa^OYFj(kDlE^=kgD*BWC%%Zrc94H{zY+Y;2^#SAKKTdSeeYUR#_3*~DArBjSi-%$ z_Ach!PD~@`Ca^vb0`xF&`A2vEAbVDwARUPmV}9zJn=Ws>;5&1NSlR>9rN5H-0Q?yMie2Z~q&{rV5mR7_OC zk>hT-=qoa2>nWpn_|1U|(FM?;x_Eo5x*H0!(N|vhi}eZdHkS$Q-DliK6#aNpJ+pR3 zNH&&GX+a73yC+Y5{5nj8P7IWWW?;u&U6I(V`X6s$FagHJ<;9JA-;u-n;8|n zb24oF*ml5BJ!CMi9ef5bM96Q$79S>-x(8YWv0+VVgWtF@td zuUTzsI&CXtHzebW&69$(ct}?@WA`OGl85V`4$DX_Hb zX4PPfQ~bmi{L9STltz=m`hu8MQ~jZ9gWY|-OYh}mW#j!sicOgBiXp8PD&tsX3=cO_ zo?HyvlIvdCbeZaHjb-+u>Bnjdi@gMrd=i(8*54vFY3BF*Hs}$&K?FZZrJXh8-`%2l zq@%h5RjW5Z`77q!Ds$uUBV)EPYCpgb#qY4K7@-7?)etKv{bU?BN{7PcX>4AC%ivqz z5ZmH%A(NQSX+T`Gs2LTmhn62cLaoDv7CFh{^Uvq~B8&3VAxInCG_kVqn*Fm(+WF|Q z(qlSS&6HfGu zNhZ0gVHI0tA1}luu-5_G$9rYcoUOEO%YotjY&r$E&*zT!+(}Ca= zL-aIk^SZ;!L4pfevnhuj{l?B^dbGLNQIMfq{=VADzq~YvgfgT9(u&r?ZozOB$>hcq zH4svVK{vuheSZhjVG@mH_DTfh#uHK4Q(~*Pj~Vy(9@NMK3s7Perx4o<@2^h`SkFRv zK02AH^9xqW1j<=nqP(ah10clT{bHn0&6H2C0m&9U7^jal%|CGP+fQRCXDUO5solOj z>m64vr$_6-Ro^v_Zx!< zS`bYNN;r6>R^Y|vFTNW19jErPq4@Ljb@6wQ$UOZPCA8O*dv@^WU~!%}#nWjwu-+Tl z;nboR)R}BO@)Gv-?*4dS?!>4e{_LM9dBLe}6ZPGhnslIJy&tr3f$TLlg>=bN(IZE^ zZ*@HtJbuCbu#)`R{6VzIxfH&|nvi>xw_rQYl|(2#qRy_>#;#oS9!9IlAjjj^sP_Bo zr8m%Gy*-eF60+$}%9;8M=s_2W0t^^TUT-I$EE$l|Luqsy$9F6_pPR~*h3mOd&O@Z5 zcOI(?7^w1cME0#mkP9klT{E{L;cz%s;}ylI|8$Zu#dYW(0=Fh(-9A4t0Hg;U>S=Sa zehEoCWCg8$*ubvs1iav%b4lKs3Q`n50{=x9&iXC6!sGpnH7xz)8i-LT{|hr{u^UTK zJT2j%sd({FO2^8g{@#1mmH^5*5d6LcUd3e#{t`N3{ca>EGQFsrr6_ixWVtM6OfMKE zCWO`9od41ZtH|*^*JRtV;0N#+K7x?3VfN{EzR(>nQHoQR6-5hIwLZUMbYMVxtjuR< zYfB!MvG8{3Dor!7g(D}k4d;7csczjESoa*k;3T4G1{KnnY1Sl2UE$fn9(#WfA7}^; zw5)Ko=wR2vR+WV8-UBDZd?+yYKd^-%*Lnjosgo7_MCTFos*Qt%HRJW$^MLH#*xT8b zoK&%(IImX-=1DiK1a)>aDE>e}va3z;2b`Lmk$?))fJ1iGlp~gFuaz>5peK=H6VnJBlONrMI-Wvtw zEpIwgxWV)Xyq&uW3^>Bl9fk86P^;9GFP4$_MNO96`c&vjlMnH}uS$y^%?SW97?E1S zt1DP;OHe$$Zs>Ig4(ep2J0PQ}W`N5H0f_UN5WmkbDm zAruKFDpTd*;|DbYH%N#)p%%TF4gxz~GkmO~bcq6z>JVs=b-#uX^H-KYqi!2qthRF~ zenB9*OJ$1Sbqe%|!^Elra3|XUH99NVX4|8b;dIUfkaElDMN4%jUtm>0$k5HqYAVYu3s{q&pO}mChlQ`&fO`1R zED({zOxuv|D!2xb`PHBbhsYHu^uc+zLS$hfZ$V^2Hy@dYuv>mXs{ZR}puw#`FtBw6 z81gTi+XhvwU5d&YcClvR?c4khaEKRc9wOJdPS7s~iT_o$8J60~NdQK-F;Ddh>m|QK z3Q*sLG56X<9M|P`Y&2G#UIRApo%DEp@7LO1(rGlx`P=<#qrx_p$H(QC3tuSr+CKK5 zLgEwQJc#vjaVxlw+|i~(3oiGlFC(N(1#{ggsQy3v{Y;nsKrXL@W~HeY z^NQb>MEG><*+H~9Dl7zgysNMwr%>!iu&1kqYv=~+P=CV~R7|e$^xu89z6L?1;^8UF z8VFnxIA?U=9@zSN@lJCENx{u!Adx`1i-42|8y?DCu!(2dEhHocsbG61Lvk`LAf)?P zW)+ns+-=23iezIfvVos72%tsfx0jcYy)8C+4cmM3$A+Erf=5)I*BZdWmD_*KQle0W z(%`(F1ReU&Gi0rGQ8}<972x;D1zq-VyzTp24qKr=dUAYca=6z4XJcWD*mf( z7M!A61?{|Zgj1CxQ}Nxb3D3Azp}c>6?Hz2dG)K@3yt{n~(3IAZ-9LcBfns4`-$P03 zM@X2I6rfmy>?Coz_ujMZk073T2g+JJ!~?VY$b}zbkW08TCm^IVsp%lZd&08^Ggl0~ zkt&EI!@N2_OTpu@ocjnNS#gTq`D6y++tUl2@O+ojQqH9cYLfse_Zgkmf8_r^^Tgb* zZ6x(Gh~g$TJYEd~mI`swzLqJ?IzW zkwCbT)Bm2963xJNnMi^laBu+9FPt9Og_EqA6OsV1g>|J7w5E)uMRmk_9;*)91pHt> zJC`3hqS81KaS*p+fq=(a*uro~8QzkOJKmfLV}LU(!d$?d&Q#EWvHJx8Q&o$loqSgz z=94!Y_uXuRRuT428xImt1v6u^PFBm!5dI?h0%L}g_BA0avCnR`0$$pg^uhG7|?NCXRn!h`UeC4bCu2aPe)RE4qTefOb*rO9r(crKPz$AEBT4 zVqqRdbyuEBNcq7faUOeJ@Z-c;OX`S$pF*gXCwu4z*jxU=_zs@>sY9dLFXS)y`nToL zZzIn%+^=5bQCtUO)4wh5MTzyDXF2ZPG%V)DHo0)(AjB}T;`MDqwx3?mcut`WxZ4}E zf6o0pEu~|qS!bjPYSpg@1)z8dy=z`D@VDN2zCj5!AdMmnj~vQo22%e`WRd=0bvjLg z2lCxN$;uzv3z23$N7`QNZ-Uk;4N|^q4pCyXSlpOA8OvWY)dNMUCi*D?2tc?cA>w@* z#>(ACWkH=E3fh@RLrC!KQ>}%X4vEE;03AapU99{&MFfD|mtl@Nf9@_K zqn(-cx=j)iHyE<4BaPQoJS3PQ8vFaQf?5%G%0=?Oj6P&s4f-+8vXY?K8u0L~7gik9 zYLpc~9NlMty+DKR6ysrgKgUqV*bJ43e=oRT*F8Xbl|mW2Q(&-grSl-#WezV3LL-6T zk7PAP(K72kS|dJWLQS(?4HnGqA!qvLHO{ptuiHX7fQn{z7O6RmPH6b~>b2F$8puWQ zx(Csh=3b1$)WBSE&UXJ#<^@w-Q>~GU^l00zT*27mFpv4~;H|#e|8mj)5FPF%#{-wT6&)*1-*?K0j_-Jh=u@JdvJhm-@T@(mlAr)|RW_fbh2n(iD@0%~hArPvT(i2L_&c znWv83jZ=&?`UTxr?UQ!cjwZlj{ZE_96H3=S4&W>A{V2!Qm5q4XAzPAlL1! zz%L#p?Eqf>mqp{924i38JO>A6V0wTGg1V0->RT?gy0 zy>v(|*!#AkM26+x^0mFQFix8_<(Y6JV+k}JVuUceLup)_E{xwkt7s`*hN1)Ck9(^0 z@9;>I13v;m9+EFq64+BkqExN`&{T+DdRBFSDnf{tQAdBG=-g$^-=DfOM9+50#hl(` z1GPu^lnEllvd~MKIobuv!||yCl$q|@iYJGV>+>K>Vv30p!!l0)_{^4#rVpBhFvRw> z38pva>P+k`Xs*F~B5`uigyhwxeR=G`_{Fv(8y@j3$H)vXWnbg5LLymxTMVTpSwuwO zVcjM~3prA^Od(&C2ryOKHAfhR(tDksdaxD?d;>++4DIP)n5B8%eTbYQ07X#tEx`fv zpPyzcm7H5<*C?_bvbbwoV|x%yi~Pc5 z(Koo3$$*fzWn~CH6$AaV$D@$=|G)i$?FESUZz1}>eHFZizKjS3P#6C9cSHVH9Jtdk zT>4+XEAn+h?Le1-=I8(Tz9_9HTz?LAG#Ohw+nbaOg2X2sxs<0I3%s+1}N4aD}j}Xio!Sm z_Vx>d#e+ed;)gN!t3Tjw7CZHAkhlBP_etm09`6l%G*-KSiOG-05|-zmu=E(XCV^+f z&F^B}8wPjR13ne%x=T5mjF;GJcStap`ILB^HV4juW9ZJR-t1n^w`Uvc4>~yk@tobL z@m*L`H3^W~aBY+S{WlqLwfGDV*Wm^t7$hT9hz0#QxB8S+WLpv?K_V9Mvo(d z`i@R0&pxh{@;+dxvi*Md=+yh{zPbwjkUk=@h;ml3?}uDe7jw^r*~8?@%DnPFI$0he z9yc4xLotvJTn@U~-b~usbhegh3{Y?ImcMDerSvw~Y9w=@XX}q**i)T*UCbj z>G~#BOB1f0sXOlSVVPKGUe?<}oH#mkQm7b)O!Zm28P% zqQ$p&tjCy$dp#He^Sfu!Vk#vm)#hatL6U3@E=!ea?ioSGv*SCs^>>YZvqaZKk4MDS zof-1IwLhCg&yd;ae8P%yXp7H7xkI_|9nNR0%RcigbRs0|*IlCc=Tthog4 zA6*!1gv)C!N*;Vy5#7bl66WOUYUy$d!y@ESa#c~sFi&l?VSARF3<_s&;O-3o{v8N2 z`XXpmH^4Z6fWU#!t>U1g>O|_c-W-L$6&VadoX11=>jMuDJVtrZw)!LTey4uTeQF&G zS~pT4+JasbQjYvy90q53ZsH;5Uca;tp3*pJ`v@dWf?((^C|Mr%VJ`4h#(=p>; zvd59h(|X|AOgH}a46A#zK8>e_oy#FU6+(^QvODyR73I3f^u#%DYkLQ@n=M*n4lg1) zE@Sn9!w6I6aq>D`XzIYDu}TnL*O8-gG5IuGL(9g0A0}#Ja(jk762L+8yq?nZhvkA(@8rdC2y!1Yv(@D)f7l= z3yF8!f@#P*sBnkicVyOwan|0jofUA_qb17{+Y7W~p^^WBThA7_YP^M+N8m=AoM0aA zn86Sz#71lEcegO&3vrzmjtJW$XS#@i>XX(C`z-Hzy6S_lF6fYmK|EVJpl8GD$7eVO z`7ngsxWC&6o@&bx$9k$;N^+`W?HV03FdH|FRzrelH@1;s#T#a|*Cd}b{wyiNku8~L z#<@RdKZE_}6e$wAqpIo-3-s`#fIUD>YwCH2bCmQ>Q`|KUnG6n)RAbxtCGYlKF^8TU z6+Du6q1w5mGw>|SG0%v1i48n zV)67{(lyQ-opfD1A0>L6H*U|0Z8EsBEunkt)$;(4^0|}TrSOiPcB+$kvo;BbcVL+LSCPd*q(~j#x`#6) zJ%g5Mi3pv@8&)5$yxzV?B6O+bGej>3+{oZ+-uj=t$9N^2;^94C2mP&<(q8rqHlbxZ za(agD(wjlYpg;4^ml`f4bGc+Io?J*GOKsW@2ya??TVsEe*p4|9jTH(E-bD%P5T^>fz9UN@J+ZpQGJ0mj%MCKetcMcJ=l+=H~yXTdCOG0QQz z6q&VejE9CIlDCU6rmaL;Eu=ZGg&I6JO=Im4xS>YK{CU5pV>M}Klr9`Qgb2GK0_O_L z66SAR5krRyJkuIRp94eE+oA}MP=%ys8*L+K}wPKhO%g z?*AEV94ScGVcfvrbQQy+#oP%lLl~IH{=l?A!y^G~lnJ&+<(PMSUnr z8EMPzF=#{A$urHt)AM;q8hYpQOU6p=h$<<9Zk+CWiohg+ec;>KgP5o&bb38zt-FZ2 zKEocw*>fS{DYX&$disdxptau+VCnN4{V>S-#B`P0 zlp;X*YHG|A5Q-WyErxHHmQ1JllhZb6QtkC@6{JQ^(jnJ7L7~(vLyklL3^}d_Zj}qI z^W^-2vc8g){|vE2sRXljpaDE7#HJ#we|^1VQa#vqd~Jh~c#-5Elss}KYr(2D1evZ^ zRw!nCa6&7E^B)}!pOPSTi?ok`wEkVN1h1`sbVgW>S$z<%IDIH^CQYvhhfHg$Bv z$i`0cqI3e8xyYZ(Reo(tr+#Ad?px7Mxpmy3eH@Tw*&gbMX*Hjw7Da?)*YoUSS!3-~$?!~X zA;wt<{`mtnIoy&N(`XLBu>h*o))4oJ7_@Y3uK?%WNZJxIZi>^+ey!9Gv`cj?-b?b3<3rXiU;2 zIieOTqqLsBfK?6NS?#P1MDi}L5(8GYd+27bS0DbA{CPZ+uK7x_;2Qi~XUl&VqZ5vu z>$u(sJ>qC^u8PBe{Oa2slAzX;Gf4N4^LgOtX~n26?jp`tdY*RAA00HP7+FzLw6jCx z+$#`91DBv1H*i1^6C*oq-1ZfA4pl2Wgd z$tR-N$AceU;xO|~*s5&CMCz|nRTET|earCO-Ty*Aql1j>C#pn_>UbCN*9-{mtZ0Se zDIrO^-i$D?5sB@}rV_X5X|;01Z!6)OvJC}}*dO08a1WFTR3lz|#qW@iVXC!~t#wlI zrBbXzZ3&T#5f4<`q~^yya}aWgTxSmI*^xAr2MPc>gowsp;9x?At=a4M zKs_9T$;)TVWixR4ez7+Dw{Fuzr5+byf5|Ja?gy&Rs!|G`xa;uxOPZM)CnVfF!q>k) z6E#0RPGr5L(?O4{gja+avvpXWQsy|*NfF5s$sMxb!@nMI{cJh6mg_g~R-7eX-0)fA zRf)kSW5lUkYL2fR#d$pt6Z4L^aXDhnhG3|52O5Q36Yfv+1`>q!5SueZeVYPB8r~1{ zJ2*=}OOpF6Kj!GF>VveQ1P>tFIRBG6ao&LklU3bg*Vl2}*&6NYY|=TNT%5*qP&pHF zufBQE$w!h}KAfwiw|1)FA*EB`On62(u<3}*W%xysQjW@fU}zO3Mb1I8Z8gbe|?!D@iSVVT9dwkJ4hcFT5n5dE57N4@7nq$K6|0rw`~MB zyncNP=*d14!$NfQmN=Y1{EF9dd+01itKK7FIpEOQ5zZsW@p`N0cRW7`vJ`qYsU3fu zl=mnIJ#f6iWli~7C@!`%qu!$yhKrKs@#LbE=r1(VQl1|B0BKuUvGV@`O4y|LHEgIi zZD%Y#n0H)W=~P?N*2%WJbJWUSQ*AvFxmwr}LG|b$N$-znKOp`sNSY^Xi3Xe^eA%iy z|L|mXbwfbn&N**Sf4*wx>L1?dVWGYFlKWh2M)qAU`UCg2{Mjqck{K$L1612w;xHi4 z8~BCc^5$JZZ#}C1HoHsTuWK7?3a-({om3oQz}cfxuj%Vz5zBOpsWmMfg}SrdjN^UJ zxe19FN;-6u7w{tb%pI~&FR3UUqk4L7MzLMi)Z8+dIwd4rV`eH7ts}$KabAq`C2ccT zl%CI>0EjErEHq@LI5yHEwKIKPNnW|f8N&Fybd+gayn_mVIPHQaor;-NNuyAQ05**4 zKrH?G0}blw^b3++>qC9E>Y1e`bJVezNNP;F_fX~h&qTX8xd==~c?2q&VdEDlG9jZL&z_; zR}B5*t78|_r`gH&Pyj$)+{_DM1-~wR%&`%yfo2{5JImdd-z@ zs!-D4PKH7;GV66dVf)mIdqme4Oc>9AanlIeOZqH;;!2;y74yV>`f zM>d=(2H4wwlyoa`zjGTNIBu9VF~CZ$!aoJr;4=e%!m}=0O~+3v=XRJVvjGEcqYL8S zGG4iz`ZYeOXPcE=2PVPBiZM-5$>#_?ZDJ1=j_It1rDSLw^r2Y`;lfTlH9V)_tI#Fa!6752GgGJzi2ACtm)nK5wAdIjFiQ zaA|0(sbn4uHYIIGL_ z?brMl411V^39GGOEX}^WlK9pOi@}-Xm2c!vN`cen&TleOd_jF%xqxdka7u@*@5dp$ zGl$j;Qz<{bQTEjq6sv#9f@hbiTHm-Vy&-(TR*Sz~8kBE0RAP3FEVt>l?h+4)3Qeky zbmE%nK*b8tw$~32&yO`e;Iigy%`zP6r>sT@2wUp zxNrEd6vkip^32Hk!I4DtiJJcE=ozU)fjqx>s1?~v1tU(da2?{J6@l?3=d}ZuueO-! zPH;JL33J=i##IKHv~a~Jb~jl?MjGPpq@9;enLn<1T8i%M#toh`if&5!4Uo{?L!Hz` zk8qZru{EG@|MDzpcwt+?fkC;o`?f?pYXln0U2=9VO82v3ZpqwRE$Ik%9k$&3KkVxd zlPjrtJg*DIYyawQF#2|~VM^>aOs#;q*Q0d(U1&l}j8e3Ixa$3C>|vuTGhjSiZFe+6 zUZ>#l-G6G18mq8a&RxTrChc-RzwVC7@NM2R)U&e5^VOtLXuC^2UecQ*dwa@;Igpnq zu-tubq9N>`$G$rG6oD~1+jUo?*{HIl=+~hdIjGR*c~$tGT}m*JF>!WuXQOmb<8BE7 zn}7i*)*jIFaSs=?$-{_i-r)I0+9XJeJSrhx%Ffb}!9S%xUwRwmS%TMR`RCxvW!evQ z#K&PJ+Srk%P;3<)rTRJ}B^r|&plh0u{D&Y!t&47xDGsJHP0ywuE7|9~oN8dtI4jN` zg3e2~YqsePG)=^QsNJ$8tZ$!WJ7P*_nr2%fSQnPJ&VQHT%HwQekKe3f;3;RlS)O%V zKx|&BYGzww9plgJFT&>%J$0#q*aJvxJJIyG>`t8eORnWb{{g;0l|a=vraDm}rGev{ zv_nfmqAQjYdDA0ZJI#E}lFe%N#*R7C%c#{e#V@mrPah2TV!7(n_c+&u&NN7aozKEgDn=wg@$vTdF!7aSx{6 z&pbpC1!+@k$@!5?-U~T5uHaviXn^aXvl_lnw=b+F9M4~>wpy7XYn%z*DQvMKOdY%5 zJDmd(1JAVUq02lUK0AY6rEsMXgmAE&NRX3JjpAz?3(5>`<8Rx>KHZi}YJ9kJFvxPt zZ5P<{3{3tn@HU<xT-+>oKqH2Ro z`E_c8s0H1oq^z7e8gK7M3LZ-XXI;J%zpgwgvQ;~<>Fsc(tp_`q9;%UiBswe_r3Bue z4*p)V16+Tfch4$&Pdn<=u844x9FJG(UUm}`_=0e4%EcWSQF~)3U9J#C=?6?23>sTRjus+2W+`AEA#uZmN{q~UBL zmZI@Sce;B+xu~#WM@N?tMf@%7hY7;8$o&aVr{xau-oUa@495?v5BD^CWc^nrdfcn1 z-_To?FS8yJHth)3gl9duBe^NISuKhFu;6jB!d?18p%e3EnJn}L2X93)vXAWi;>8_2 z0qd5nI43?)im7tw7u zOq^4Qd`j1@Ku4Wu0+qoblQj6zS-zI=|(-LABq0Dfa-o&4GR-(Ao*(=GV&8^pqv&VoZ*4^ak^)ACOUYxC@2#6$5>u5{!Y|ORtLIXSWQ{k4k4(nY~Oz$0T5m(N3o(u~SPJZIkVqZ_{fxk2;Q3LI^W+} zS){(hiiFi9(oznz-@W|R6g$%VtV4}Y?#_LQw;D_o(PWG9A}Pkb4E1yNw6;Ny>L{jO z;BqW72n40=TC9ZE^6|WIrk%E2EYW-1$z#Hq#7tOdvt2FrvVD#{vFRIMXE)8-+TIwW zs?l@a*;CN_+<$6s?sQZ@-n%>FzwDmglmC$GRWv>Akd-4lF*=kuxi z81Zn4G5%UUZvAkvH0~|!tP4H1EDuoBg48$no%WGqYl|O|QZ4L{{*Z`B9WFHuHK>F3J;0k5>w7GX{`yl+kCz2S%dhj7{|(&W>y?0Gge zrDh(%RQyQmTiu?Xy`;XQIaHQhwGkrOVEHw0?DeN=0eHXJ69&>g?8n6LL9nxsF}icE zF5+-o-A$9(kQS>Sze_BxDQr2;-OzF1Rl_U^V-3W!nw{~dH1%LWNq>0h!4^%r^hjM&wG*Uj4oV##8}YfE3YzFQR2Ym2?p--%n75|UXO!iAS7lup?`)qiCoOKdPM z$~;rH^ht}2zl~+Z1TZWq-JWp5X)Wm*`Y8#gH)YIQxPt?VE?lDH2g)ii8g%3gXFeiV5qd8r&E~R=J4w-p{)1pOy#)3=w*9&(}{-+~gIea9+Hq zlKtC+k|Q2prZDl(@r~9R;`^#t*3N?4C>LH^#SmZoM4Ply>w2|fZ8wZLZE`jZH;U2xPHwDv zjvfX12XkY(W1k05=oWXUi83D!w4qN^{SV~zH*H^&7-^C@q@OI<-$8lc0KX%}bDo$; zTXP4wGKILU%X^U34| z;7-Ig9DsSY&;z^1j_TGr5r&BB^U-|ihXN9#I_n5JJj@$@6m!DQgC)#(#m5n8mUjO2QhdS0k25xAn?(Xxxu*O~}AWc^qP%44a z*mA#0-CF<8q1s0`Jkl*uVHZ`85bxR0(uJ;__;zyOj&rK(i!HW({N zraO7gPImpHEW$pjU)7vUtPgODlW3crP{HOl;bx1lTwgg;RvctWOjIpBGPrNl8OYsY zTKle;uXI7^vKDn)c6$BjuxJp|gv2_xo_yfh?thBn)_#1f)!?F1rMjtNiyc{MPAMW+ z<`t9P^c<_{NOMi>%EAaYe>w$%3772oXW!GWNQa`;F>1POKVL5heeX+ZxE87oyl;jDDxTbj&`l z{vL*SVd+4SG5`G=eMFhu3%bVAdW6POIz{c%&$B=Fn0w?2`#Uj@B2?7nqpQc|wIS#f z9eGuJ$%|wQ9Z0KCV5KD=wdB2$xn_G<_Nt$JZFI`h1ingNd%Kh)&bel zyqUk^45hy(t$J$K)eM4^=+&^AW;f7{bF({IO{zGuOvr_$g`fwvde|wNadzFAxXd)Y zw%x3$TgYg@a((Nwcf=Nt?ygwFd4&*%o^P+s{m4|kS|zQ~D4N(n5#5?qH_X!S1~;i4 zhty8Zf@ZVfAJjsXNrXec@sWWDt|$nfFh;Nfk0w$>1 z9*ki>_VTKMg5m%*o{`1P%UEcoQ!v{yy%?p-5bjN_`t&^}tixyd9)MWkbqS~VFqDY2IAoOb zJLVB-!|yTLn*!BJj7UKZj#A$SgA2G2I>-!@v)IxoZhL;t=;Wg_p@`|;$)lE+VBmT2 z;J_(o16Lw48as3Ru2PE|V|5zoe6z{aa$D$19Oy1YGyUjfbyx^D!IDo#u+&fstrVV> zYRH8d(I;QlHJ9|_E${SQ<&nsGTRj(Z?AM6G?`;v{x6X}m2XJnAEPQ?G2r@H0-xPFJ ziv5n9egVJ!V{y1hS-M*~zStDl8+b{JSw$G2 z-R~7$89GvN`WFQa=CRrHCqE&jGgiu;O$GW2 zmO8zpRuM|mBqlv);|Xf}vFVZtrRO;B_=D&Bjqb<$6d^)%Ug2kQx3LuOz=B9J94S;- zoL(d*3nxoH7D@l|?cv}J{?52OZfs`BkU@og>JEMZVZ#qCmJR9JYp`pR(zTgYzbYl7 zPjWt`VDr?u?buk}A<)Cm7DByzR_u)$*{fQLMJ zh0Gr7`4*zK4ZXnzSw{~_sX|&Zmn|sGes)t)r!sYAV2LdmM%R35=O^dfuw|?|1bE$$ z5KdDm(;*ZH1{H^d>VfTE{X}^Cx{ke;m%zrC2u2Nts*J4Uz7lxSBtIP<7uXCNVHw@2 zzMroOH(X|}M8iyo#pBwU>SJ>VS*yVGTIns4Zaf;JF3QoHop&u33A-F@_N^wdyvd^p zi-~=aZC4qo&AL2+3WCQ!qYzsSp!G7M&Y#HwvQ^svjqRbmz<49f?9&oXC0oRV53#U+ zYsy=CCB1#sXo}cetnHfcK9N5ohz3vCk{hCnLcOFM4Ho~Sho<$8!-7u!>M)D?$5T#v zY3u`MBV^W2t&mxsPlVuALohV8V4u#UBtYn*L5B$mzz)DB?v$}BE2Y?|POb04tn2UI z_8|XVbDMznH=#QDBuch;|AjY|Rz-TNeu9ilL~GaEZJBL1#3yXO!qxQg4p=Ep6Ghg| zHpgW7{GnL4ZqT-Ge2ywe9iZxe6Nd}ea#hu@X#W&j9;V~N#7!^vBH5Vb5T5ESTIhj5 zHp($u;4{opi8UURJ;w_&BTpDhr`N?W@&4o)y{z?*#6b+~{G{Cxn3%DP=}(Fj)Vhh2 z7fJncJ3_>2Rz~wEu7>)e*U!&1Z$Zc6?FEOv$Ew!9@xVMdHQb7Gl_-7R9MW_WKeYs%{weCN~Y4&PvKL=i5>k!-KYJ;46LF#pXh`=i4rigVtaQ$Y|5C5#P*5+ zKh+!8p)z-=P@q)jMkW*8-+rO&mK%{Oaq;|mX)#TN+m+wOGM7cizKO4AtX}SH*u?^# zPyNu=IU%D~R{#5AW-UWYb;WJ$h0O>bV_Fbfx0+(?mF;DW-MUpX(~dpQ*G= zS%RxG#VkzOI4nO?vT+vz@dW=o;zc%7{vlF8&?yp8iKeYuA=MCrjH#DqkY$hIj|Mf9 zDjx$s?r{KuzD65j$0%W{pR|;R`-qM7EC#g>AENbbdV z56cBg`DvZCVS%F1e?skixa8E8w&bp3c8eFQm|6i)Acc!pHvjGy2dBl{kj?0Sk)jI8bwE2k5|HA;oDAXQB#FIj!4F=Kflb_hDv z;#2Hl-UA{9j4~{`F@%q3jx?@rmu+`E=_7>DHw+az;H!*Vv_e5vJzjEY&J(W|gm`p@ zGCCVYJlwjJwO%JFuROT=AWAs?h#>Y^q$~zE@eKd8uw)`gpRNxoi|r$U7}!d-nq<@Y zD2nrpU=5%0uvdQ`h;}w39VW31Fg_Tn_K*b+v7u4IGS1oJ;Fj>VlCwqb1!NayWVLh- zY{F`obaAa!&oRffvm)}6^2DK;{3#7YPiIkKo>t~0DVkwqaqR5{IIAQ((oK?MTON)b zO0&YP37(JNr|S&;q-!X=@{SFL;STI%u_-vbnc5Vsh_)yf{*&QW!lc_veOvFZ)s9u_TBVS;Kk4ziK`oskVc4_F z!@UCpRlkN)u%sMe-J{&rh%=`Yb9Nk%_2P}6$*y*ZT+ z1fklG63u-^g2zb*NWpPU(PD~4>fT(H4=L^k+XK;5{`O~)O}@6;If@SrEq|U}qxN$6 z@6()q_$8a1=Y&RPe)Of{pzXB^h<-|rQ8(IwayZJ%Hj~f!k~-Y(!~?V5#C%pN#Rgb@ z9pp9L&d&RP?44&&lTjO{DFH$e5_+!zf=Wkv?}#)jARPsj-g^hB(v@Dsf(5Bck={We zSRqKSL5Z{o1PNhJ{APA`XMgNB`+H{`#~DKiFYkNKbDrnEue%8mCd3Rx%1`B#J^fmJ zWkk@r`%?OqV;&UGm7Va1z$}2}l^b(s_Ix=%+8tJUF9thD(i>9HF-Gw!(zh39!@{W4 zC}pY2?zV?)Z=L-tn`J`nWS$4rmXl0vzgpEN`vrs=7Ze@?;bB`Mg(pjGH67n5HbqOq zT*tq5y%{OBcaCfjp1e}N$TO!0|DCsLNMlK{rHp~jH@GP()iu~dp*!5f@>s8xa~k2F zb6_|7CfQ?|Ge~4R7Crd_T5VUBT~Jh^ak{M3H$lUcQ@`E~c#ToXeVt_OWm9(n@;eHw zd{QP~^p>dCwDz{YNzib z*UrD8jKXr;6HXeG!7@aU44Gtn2H7{*#(v6>^b{W4sHk$d%p{r>Yt04;IR8D?G zT^h1G8gMXpngHV7v$TSjWh2c7Isy;CUEXv3xvS>x8P$;apecLrGx9q#Uq-VSw96`RW_nRhEo5djzpr&g5BqYC)0>XJZVY0#POX|4yY`?k`f}2g&sE1-lKo$V(g@{JHS#Vl6}wjYNW8rB|uWtdz2VZI)3tZKcEcx z;+~GTq!nAR_rDSx7*EhsTdNDX12gf}7)|As@q-8&!|E`Y zgY{e&U)Dzc4U|D;`H6t|3GlcNxON+U@bq1PI9}+0V zmNfVXsy+RrjXDBylV_$>0}miM4Pbp(2ud(zkD(y4Lrh7FE9q4)#U4oZwy~-uVO%#Y z5sW;1?Ucs}^2lg?)KdgI{MJ)jg=m9GNR`!mg-4#+xetfJ&558<;o`{hM~v&yEuP$2 zSa5Es`QA<7P%C{C0F)5!<)#e=FJ7VM&4k-6Vhzxj;zWX4*ubveD6ZDct_fKd2$bk` z8)!zToLP`*MjX0>VOW3B19_1yt@r!6t!eg`a#f<4BGG}cy-i-8c7Ow@b*=n27#}D^ zx((P49NJXr(-wqiD_If>QZ#{S&{wr9hM)>H9?|HLjv=Y?E?6+D5cyC&h@2~-W%Bg| zRZ^!;tb>yzF|DmsBwBB^*WAE*s7CrvxOK|!1T9T1%R(H{OEn(v6B=sSEZAK(a~#Q$ z9_7O+Cb_sY>5^j=S)R!0K+5&7(Y6MaUJuI}0iH4!Scg&s#gQcbJv@a@h;9h15-wR^ zKhaw$8#uHssy^j(8dke*k9I`RfwU*=TLLB*L8<1VB25t$1vwfvvkF#$XGA50VHV1}^?8LJq z5BNh2$Ltw{lcS^UUGkmd)OKD4>0O~V(L)+>ujoA z82sB(hr6TrbSEfxi`dXVdkj9sPFeMsgB9>5S(@?-aBwlV($dgqHnc@G^t2LOHv(0Ar+ELhLZwE253t#977Q1eADc;)=Jz0ah<;dQD z8bQ*+90ktS?efHswgzfsB08K^pDfMGe3y;zc_5TgeMh_Hxy{7vHfF3SPu!WyOk{)) zQT-@FZQIOBe~)GK3??WMM&;^3uiX}tS1|NfG=^qZ+|MShBiqO##79UUMJh2ialAP6?DcsmipREU|r|Lp|dtD+4)B z8XE=>zjsvu#1St`^;Xv)IYrYbbNl_8JxKyP6uR;D$M^l*Wmk-|1xFvLq_+Y{f`Qa% z4kGZ?pE+<`@fKJBrw_Zm0npT6Pvi;wuofh!H80@4VvjdDwPj?TY&@jdumn(S^gp~c`z0?9``^F zR3hR}pEv%Kl6ms*?n7VG;z31Bm+(f2Y;8Ukow6!RVKH_$_XF(IwdL#g17J4@XzqCL znc7!X2?h-3s2Y*Rz0d6=XK#$0q%Pw{T3Nd=MEUIq_O4FTcY7 z0L$$}s~iPS30h1x-2W2ifXZ&kBBgkd#<{%+l9X>sXtzYFe7?FL>DblLe)vTL3)+Xi zn!J-{HU#sUlwdcOW1?lQ%*hO`0)xiAGQqGtsGAzD?@X9q$4n z1d=gZwfq|QI<3T56n5p4Xwogi++e?}BCU&- zmxj+#j84aKCbUKOQgO5{vP_8L6J5_$FXolnxp?#oJ!nha_)2rjcjOE0Yv3sH=4VOi z-A!;USPi7sjXE31{ONItd;kF)$^xoX5}zo?1laO`&{-Zu&yku-Mi)kbm!@6cK2cv8 zVN5NUL*_10<|(1Q3rb8C8Zlgfwg{h%aqBbxK)?gDhvl04B6yHX*I7A|M9DR3*TV`rilFrFWx5}sP;I@-v0)cr>XSB6E&lpX<3 zTEm^l8v|;{##jNf|FlPi+}{JI!rW2msK8?x@dhJilYom1)jMoSF*}>Gu#Coai34Dh zBV@cL>H_Cp8Y8L`&zJi0uN@^p6+g3UaoIBb*SD9bmWilh-1%sWF6JqhHv#N!OoI1K zu|GeYt9x5r9{vH`ti9AiX-r#RYy9+Y;cegr_2v?u!C(V?zq~V>B{5*8Nlla_*s(H+ zB?D0_WA`c??kGkaimHeR^47cn7%rBD6qbZYFwAEkO*%!{vmC+dP?2DELcIMlN!<-eQ2GnOI!R^z?J zl(Iw3%cwj`b9vp?!xUPRC%DYGZ6zBZB9vk@xfFVRA;Xuma(FKIr@%5X_OSy z%A(WB@ETby6TxZtBh~U5XmQ7D+`(bd3M}i zkBe}RU{%(N8x5Nv6M$K_RI3sHx2S_7c~6%MXsV})z-l}L(+lFrEr12~nR zmSAWe3utBs9zs=Pb2l#ez5_NaR9E$7_sL_>4ZNsBRT=xHZ}yhG(~}(nSh8nGB+A?q z7;0@Yr|58PoD})`wDmrgSuD; zCOX(%VyG#iC(mr_^pq#6VnZM&Xeq?ZkuKXmIW_DwQC=&00Sjbbi4xCar7wY-HH||c z0aKGQu{s~I9hCZ%0pf}t7zjl=jD(v}Ybm&Em-ioK#Z4qZ_A~j^R0XO4W^swCvea?+ zrwjmFOJjVhVa$H$*-93qpOh-(a(+RkF01Y`!}v_b#>fC|QQ`Q1QFREQ71tH7vf z6S)wHM4wXF=Ny+np1O23s>+|oT0(59*RCI)g6b)PaL25arwzK8}cy{-EC0gV6L zNX;%>!O_^P=+UDJ`C%0@5m+CYAz28hS!QI1c~=0qZ7%TPlSVF@d!-J_9dJ+NT~k&L z=)5sh{Bga0Dznt*M;9XzKjaDm0%m=_roS^onwZ#hVNq<#znd5a(KY8ey}>lF)1t*5ZF|l zg)rO^Ba4Qmnf8uo<5n24Ca>C?HkE_zi#V#ig=_APSdqR_zPeLD-f!=)Kv$IOU8aQw65s0Tp;ZMyk2e#;E_ zcW9;^ucek{BJjRhw4)&^`cT6Sx(~QeGr~RK{d@*CMgEmpbx*WR%l$TSmL})l0o|C{ z-vM?3AElQr03Yer-n)9*P@m;T_#ZPZKHG^;byMQ4@+mA)KWhT~d5|s_FJ+W+ACRFI zS38^TODIbMOAg7FK$uTlLq>nm z+1s48yv9*-!ZfbyvT?2%H?^Q=MfRTV(K4QAz=Co83^4JyL|_||kCjl8r*_iCp9ma- zROU9!@N-vREWVHVB9x+i&fG5dPJk&?{Bw>5ztG!-m7d}lEKCn20quw9EKtb|S zog|ae^b}?IM|h%B#jr~1NPHcrQhnf8vYmQ<08m*R?LpA`1)Y(aOdu^|2TSN>zOth< z$}(*p`xO{JJXT!j{w*#FznZvl6*9OM3vBVii=7YetJ;r9X57gP=1&IBmcXD7;e;w1 zb3WG7qF@*>L9aqef5MW@GN0H+bRg-#6LZ_bfK0znI4P-K&p7dxy|37_Dou<9svP2g zFRvq%Y@4*c0sy1-M;IZ9=x&;>Bni_L5tA!A-5tcvmedQ1grd_@Q;AChrO!6l>-2Ip zb=6e&F>dZo!%f2?kDiS1HZv1Bb7^0koxmj_k>Cbj8=D4x-j>rV)=)UzXboiC#7!JF zaiNAB8`|Y>ILO{>IIQ@%mA(1!ZgtsuSFY!<&BK#+8PzBBpc?iQX}4BzkKTGc>zI1Q zH~M0x0qMvhT9ill@D6bQlI8h{Fsv6{*z)Tq#*!ElPagt@`ufT?)GU&reE8@HfM_tw z+YAK$K+gU{9sjeKK2jAUT6+u$0?kqFcoi@vK(BIV2WZQw%GwfkOH3KXpQ{1U%po`H zt^rw^V;;ptEEBXX2{uTns3@zp+}kB1({GZ_uO{rqdjFSC%>w7AlxAPff5XZ{t& z3HpWQ8WHbru`&MPq*Pv%)l^1&x=o+VXGlv8hH;Qy@w3Hn-oB*_5xNGd`%MD8*?Bay zoeW*oeL|_}noff^h-HLGeFFq>{SkwNzLl<=Dmf=(Ld5TP1+UQwu)Yx6QOVDbZqYJE zV{uSJ+8&T6JE{`vy9)HRY4o|bO~|ToOeSQJx6PUF+_I>qyDc}GX;LcKbyFBu44j*N z=}+M5rbwZ*bZ`xdCe%UZ+DR8MYNL9y-stYBqJq}d;#y~!ovlRzAB#+v2E``u`ze?N z*099m+C;nQb8dij`XVe{Dh=|mup9gH>Uq({FF9c@QLQ6gBk4=6ED!&DbSVjoxu#rl}y5V4&lS(q$vAyac z4n_OSG{0#I0E@FqlkgsR-7`}+!6GtpB(1^K7h;dCQ{o#zw-!}qR;=JhyOC0Il$OQo zr?pA3>+TQJe0@eY_dL~4<6NQ7eC<@u@&^nQ9G;Qjp4Bbfyrd1R(D^ypk9gCc?~DVR zJ1MeZuxDH6(1IX}$YpU{Ro{r>#4GIh;FqHK=eOgsL{!$xFHlch=nxBTB20qOQ>m9k zm+5Z6R`)9JVnVeVjA)T4+@^CWR$fuFk~Hx@3f!@0o_Y2J0RBKrYc;U((deo3Cxy5^ zw^f=P@%)>9Y=lAlciR^4-`paWpWyrA0O~_&R`|@FDqOo9ZNd zjccJ{vG`{yju`eU;tT9*vGMm;A3E{)I$#{K9+-Ql!>XKEACl!`tQOX zTssD1s5=;tArMGGzb>!y5P&!4RlH#zZkrie-0uXj04T0kgr&D@mZRKDi-3lRl&Y65 z>{k|<4)F`mzGEu0Olo?1hA73SBKSYSw?Gm?;HE3d%=hpac;Xi+z`TzJk?t-|#-|os zL!XPu9~g=@%l-`ro4(|sSY}V|SK_XiMWHN5S)b-a;FLokAYYWFYW3 z{$+}$$<;qVC!m3?V67cF+vmREhWgsc6_JRbKk#BkDEs{FZTp(F+JubIa1n)6FrcbP zc?DTlcoQymvc?I)o;HE126o5g1_JP2Blk>hbi^YP#%Uik$OH1bl#-E+2$*GEF@g16 zA03azjHQv~Kh>rvMI5=j&K~RGiVYIe*Kzg^BS%uk?E+Wm%KCW>YSz;!M(Vbso4ut( z5kf^DInCxXN_U`{lm{7KuD~Fmq@y8eAK`%E4m3?QZE%oW;NNPM|iow?lC4d-r z1CXi5EXoWLjWv{4a!ljBE`3%+#gI_(ECq`TBa+k>y#7G1<+~d!kRZNgerbN@x1B|@ z9O38QO?s=hi#U=~(F5AUJtUqulCW&Rx(+A<_l6!$_fJ2n`etX!kRBi%rhuho<@q{& zBW2ljBwMJ~T5(y{Uv$Jr#37FC7OGT*>&9)S165f@x_8;8`c@aVCT2f^U$z70CJT7D z06M}i-V{(*i5X=1@63cmQQxL@GRi9QXmr(cbkDKcR&6kE3hZvIr>)~659rfA`}>Fw zC!Qp#`+Ek?Er3dUz@Q0O?JTN#6okh+=oH#e6%(WGm7%JKo|Bry3wta(byhn`9Xvw% zL=a;DQl@XYBk|^J2pt0ZP6 zpa)~@C{$>z8M+P=`lamCVClKp2L4B2$h%qk4bfN;x|}MtTRI^5-X>eYP>KGU0NWsy zeX?=d;IwX|6rZ+9;cclE0M-(Q>0Hq-hb|YMf{m}C1Oq*1&9gF`HPL!G4t0n6?;}Vb1+>%LBLNlrMXpAf1z3ta)ahpKuMLj1_60A>%VM>-DAv(4puPn}+shaDjuRmT z<3WP`UE83^I8}-`=Ona+X~g^ zl1N;B3{UU2uFj`%HU~IpP_P!PL|;mlM%AqHEEX*BrtgRV>EQqZznQAD#G7LRB3} zOiCr`3k(C#j z9+1X(Q@ILin1g+&4*Mc>Uu0uUy;@iZCG+a>;>PofLaD8gGGl#=w%Kjg4DUBoz~J-6 z6I5oVX+2BJY8O^Qg=~~s^lwg5k7Cs;qyAJRd zt%MYAK!z(Vrz9gjf6sOJD>E%8{RaMoazc5zftzaI@N&Fzi=X z$5ctvdch2V+^BLDi!ag?mmO}V#K(7L-=z68n^yTLhoQH+#RFQ*qKzrnZcs@>u2Y*R zL*@hkExLu@S^)2*OzGQvjk$&dj<_$cm0FFCMdTe@2Lj$knf+*6s>>PDe7P8wAih-E z#2*bOM5E_x=1N_5@EXbs&K4^LVzLhl5kx&yTq(K4@+IN(6TR!}`)h|RRd;&bv$m&jHIpf2mOD|b#*0uLsF0qp4VFlt zrDOMzQXGpaKUUN{zZ?l1DOgf%vq>25v5PzzPNgRUHqn)ylia|CRX72g<u zaa`H@MR|ICGTk&{Ggsj==!$i#c-t^V1NXAY3gq%jVSQ%M4dgWp{9biTUni;W*F(Ix zrhIlxIMT@>@2%;cB;VD-snO;2)u_TK-Z-l7SYO|4ee*-NTqv-WHO$#n)xxNf+D3Ys zhls|ErMqaLUUUJ!#{h~?0ONorg+IMNg(3PGErP$en|VL!=N-x1 zuj~=KVAQ>F>*FQui2?7EmtPp+Cr%P-ji-a^ScJt3SJ14{<>C{3bW{yDSoHgB#%*$) zU=+d>2J>wU(QgpjO9TcuGpz&kd4ms(+)u#i6IJZ5r_jZEu+5$)5Pwf(*{}$}s+UB7 z^1W+#veFl(^X1k|UmcS}0#2CrBSiOQbICqKv3lXLdh)i!2ZLQ9$T8wtcA?G<-rVP{ z?!FGUCoGz`lhC};na3wH+rzPSiM5Q-S#f2g-5X@h0qO_sq*-3L=6VX%@f zdAVbK2rQ$~S)>QbypJ-vj;{!Q6Uz_fq6e(>^hX5|<7WU&b&u65&%GBOMUTT%2}17nn(ELWn_ zDh`yBWJ%HSwyIFqR{-MM?!}OFN4( zd9VU3#18QBO9MdL(rCKlw)ww$_rs$^OP9PITiqo`(19-%W?K) z(|l;%YHTb_CCBrIyicLesG=<6EmU4ghTruo&M>(6a>T$8c5cjU9T}jpIqRzFG9{QX zWT=DajfzEBG8=D5rFkVRs!RuSxR{RIJv|7>2)kItB76x_srLJA-f?-n1S_@ft!*!_ z^8WqE303D#nT|Jo69L@(Ips*kN@> z2<^|FzOHfN_z|omf$lS2OIho0P!32{)P;>g5D=li1H@X;q+&tkTwPVm%*$THs5h%+ zEk!)0lMGfnfKLn_et93{!J``ZfFOJXb;U98J>ej91dG><yC@kN?GoC7nnDo}4e{gczJ}AW!XH66wD& zctWxaER$~*FGVF0YYOIi6b~0MZUQ~EhWdS#JVpbrpU8#!h!--^ zt%mZ4$>GD5`!DNDOxN|>4q0qd&6P%F0i?LNAebqFXqH-J9-$Dl0aA=N=2I=wlqtI$ z(+>TZ*2_)Hk&d! zjkw~JEi6GgUQ$?YePneJn~zt{N7GI<-M48URaB@mjY}qJve#^KD7Rd)q|r zO_2o5P$B(`@eMkC!fe+}8Vyzr_r-H-Wmdy75-3gXr^Lw+WdCw;iqC61?`Tld(6D4M zI`AYIrYsK$losW+onZ>#jDx49AwoV=TN+)`AxlE&mevM7 z5<%*@h@g0x2aB5QfC2qs4-8^8orO9}>W-P-5+AVzJnImx#qgjfutBN-Cios8!~aSw zxmqk5SK0#^ZCBRy4Hs1Cqcz!sDbg`sgp@-OP?;?-){-*e$dQj@h<^Y%m#;3EMuCMg z+t=sNJ{kuQ_Ec5)B^e{yN|9SVwc2DCpXoE-7I4vMxvLIt#3n`nFk%Xcaf*VW^FBGQ(yR-c-{l=2 zGdgh89~!%WrH8O$8=$#BHxPrVaa(Zf5-xX&8R}XLUoVeg^cd;}ASTF1jh^_k>M|r>wl_ z33duC5y&Sl8~5Q8f=afo?S2GV!giP!b1LkbE05I+3P%J6-J3vj`b6&uY_vY4aiTG1 zrOwU4**uqI)-#+U*vP9Kcpq;IP4d@#%-wM+=Cl7 zNRsivs?N?73(}ksEC5+cCp^;+Rxf&R|ETs9)=f0!ERA;~7A+5xnMB!jW;R;Qk`+H#MX>H}08*Qz_6{n5T zSw+^nrJiH)5X3yVU^e!kRG4mW>9Egeuz09$?PLhwj$}wFeqT2Sn?7BYSUK$6P+o**RALw;EW8jwae0o^(l#ztTpmARKErwFGSCbi8M~w zW-ceI?DfgBr|VaA7s?HhY0Ea8*Sz%mMD#`UQK8P78Uyz_FQgRDdX0` zqf9>w(U{y3F2wxa!+SrK|Khn4R?p|!DQ7s~0TTcMp;7O`$y%XY&@4=TwqYE|K9i<=HL!DC!h_Rd&ayvOjnVeTim zZ}7&a-rwKVIb_8dLn;zc9fNUMC*$t|4V6K7MJZW6g6sVwkxGyflNWKO^ho&(+^7Ej ztE(?vNJ%0A8!YuJ8u@`zdz6fh@s`l@^=e4XUb_eoyIht~6o#75&}aZ__ifeJbsc*b zTYRp(pomDkpp!e*6GtgONI-b+{QzM_jo=}ir>cT07l3j$Xwzlx)0xbm#0RLqJMLE; z#EG{cBY}`dw(w?VJb@}LXZa9LRS_icbOXvR`nJe zm&}FFCN(1a`i`=nauE>FJh-1fpZmpJx5ECh+dV{}boL;dDVfsApKyw@)J}h=Creg7 zvFOm_$|~9?(0>w-P@&ifqiu->_U);7No_+$SeC}vAi4P4LtwN?PK6jyX|3BXV| zTmjCP&;+LJr`PFvmM8~|GMyNJU4qQr49r(4yWw3N1R|J%odau77^*s9@gru$S8>QO zAtqN|Ns~X4h&TS}kZ3`BD&bL7vEsg_DcPL~KohcZTWzc}B&Mi65kkD7Uq-@);v5?u z*)-wbfujQ#)dP6QmC88YGlXV*=qUI~)@vf=!eC9nH;;}!*^q63q1pyKM)rFa#sr5` zOEs6*h}cV5Dp|2GEBxayMvnrVykGF7#-YQq;%u@?a-NaFJX-|W8R3+65yh4H%oyGZ z#RO%|qw@m?yGczq1d&e~ARYp;#W3NJ4m?Y*mOjt0~KWg~qDO_|uMPxK=Fgk4QUpE?cZbkI!pk$1vYy zBF)caHTWz#uAJ|&u_s;tCU}zSAs_N2wnX*52CV}pTQn?E#EQ3?KRG7X9{)j5C|!z` z^N5ppbyGZtN+eMaIz(^CFxsIza3;eq!!91B{K^ET7nn%N^O*|e1FT|fJ$`yF=ac2u z#ZB&CU0CrAMX6v~895Nw2q5IjKSD9n_Wj_sI)^!xbWW%d?S?P@NjNN1Y>SCBSm<-n z%l0gpeaxGT7$pm&8r*U+cTIQ76U^8NC{Y;?g5n!|jIo1lad?*MBwqHa`d%@?X@*^K zK1M$@940PX3K-arq6$$u$_pKD%#_S?dy8hqZmdfMa2+QkDwl?*m~;vX7zvFor=+8s zicZIZ=&r%CF(=mN5MxdiuI+;O)%_#h8k+ZvLidDC9O6PqsNs}knCCK5Y$NfcXSS~m z>&3MF;vhjE9y9mhA$Z@P9#Rj^Sj_vwK8{;?7fhDyBJa2SxA)`HN^ znN5UNoUpeiI*q4GcWqEShg@s;Oi!W1fek*p+jt+(z)IgUr7LJ1{GNnQrFd|)aIGWR zYfN*rWAMNUI07<{B4g87cYId z;TbyrvBGq^Da;JZ5j~_{{Z+UkD{L7ESM+bzXaQ6U(q)FRM%WV(rIfUCf>7 zS=0}4+$HgCnKF3@_JeRwcS00;6f!j3Ex|yBK16GPTonI98V8n{;;BL662q^Fr;)d# zkK4vOF#NsTPU9DR=4aWuE45=2&ywhHXSO0($9fINxYOs|O1$hS&K}yJ{vzIbOR?Jn zzhA+NE!WRzDv%nYy#-CJL66`WxJZo`19}se3iUAmp@+IDZ)i#4b-buVxREy}k$aC} zhu&{!ZERels8@qaD=RBu_n~lR%B4uZE6bf9Uc!OMk=9B*xZ2RY z>jif-ZEoLv2= ziuF0dRE^RYO-5I*}%5Ez1n*D&NCnZ_qJbIaAR7Gvfk{V z-sG=PBzi_-R%`18U`#HjoSKoLajxaMPg(HYuzSKoV*L7XbHF+FJ`}*DJW7twCK*cD z{+d$ilG}4m(Ky;q)yPD$HYmFI9HayJQ7gg8->Y$bZ6|!7J5-9Ow0AG`!D=b@{gxGA z<6_!%*c*mDSaG~!cRi*1-{euWH^(TOA=$1`CtDrbMZ$qfnTTyJx)W7Zy_^NJJxznS z9K%2~UGIBsvb4P71RpSpF9QIUj6}%+KFv|9l&i6nh-(MNR}p??Jq*c;>m*CvX6`VY zTlVbL7fv+1zOez=W$k6l4L+R|Ew&W+;F$o};~b`og294Z9LbPO#!~*P#RKH=#wm#o z>&hm-XapkbOJwRpp%e0j3`Y+e6vKv zLV~65Pex1cQN|%lyHZv+Y77p~AGm16fP;RS3Z@A}mQJ)WyDR9pmCm6BU57IKmfc<@ ziCR$7Nt<#N9VWk?1VVZI=(*X_L@G-whL>QTn#Ki3~U$Mbx z_h{E@CwcfSeRVTtIJuRB-m-Fo3hXYke)V5JP=AzWbEzqZq1JC*L2Pe!A?Zzg0wu+{ z%KFIoCz%eI22){0jT2YU@fhHu4p2R^yO>=DQNeOEgAbC2(Cd4EdP;gO;mdbR-BX%G z7xMCG4!3IDqqI6YKWM18Tfdc_7fdvcLf(%bf8euwI^E9lVzahUbMZ|I>uvUP&Chh{ z48_QcZrv&DL(0+1rLe^_3&sh;1j#8z5I83n3TE9q6cmrO3x%9nv#lx_XeG|ZU!_NW z`_g+5d~&dSG`a4(9W~K*7}dQ!FMWDy>)!cQ1A{%mV!{r>Do%;puDgGO>LTWv(Y)do zWcQZt!XPx%_clVMHg9!Mjh!~Fd-E(URS*`^Blf8oTrxMY7Mwjvy#<1knsH z>L#i0Db8N0d$*+P@N1y<;${JVVBZDPR4n?l}i0`_anF0DJ1 z_YS^qy>X>wXy9ZGB5ktE70`}3&^pCw`D|Y4Go$WBS)Mks(^pu`n(2FeZA!E8v%gS# zn`Ud0=V14eqR|b?2oPQhLi`*%uWA!eYE#90@7{)a-1~b0wp@<<{=6GFksXYpBm*L0 z1Q}tnGx1I$O9Ih#bT{&GPIXSz)*&N8$#0XaQxvpr>U-#<_iGXMJ9V{BL>2|;)EdL{ z(y7wtFTuY^q775%sbuJ5e=F9!Ffd;AvSW{&j#8lbZ_7{B!yb9MsB)j)qw= z;264JS|?w%=Atbk^{pSL7}cw=#=fsm^6oqu_wi1j(|Cd$6IvNa(59zTss8zxGxek4}EJw|FBK9t^zI@Q|?sPN;D=Yl7B z?qOYqo#NfoJF`*yHd8PqwsZS28#^#9qBL6o$_g4Yc+TN7RC2-y9!rf|JklPgcx*)> zT;lpNZbx(^+WcgRxXTK@VUWXP-cF9ex zoYOki5Zg}R`9Qg!Qno%r0=!xZpyp#HYFuN*2&@(Rf6$aPftxdy;#YA zdbMVSe|z%7#bIK5c{oUea&(`a+ot0*QC!{mpm?g|xfj&wbAkt?*Lf*FqW&GBQ_r67w@iV26=UTBWz(NZGfSh zU2mPj&qZ_RAQ5=vf*r>P?eb1d69l30^yhrNf4!a8te4{Wt#bLz$D5c1;z3JtI%B+K z0(V()iy7;t8RA#my2pE_ClsF+{E^xhtxxaPo6_whzHqUkOEsgfq56b|s{teOa z6EmcDt4F?pTftoa1RZ&n-ET|3j3{uR)!6zcrU_jWWxewBv`PBjoexE)V&EeG9;stJ;r99iemfCk^U?iHWTcjO!UVIK)^ z5Zn52nqTPCI|zMZPbR;?GLK_y89q{JrXRoJ6$-hk z;T4Ln`N1vpV!}oZ`$K@ZlRRVF2-QwlG=h`gfkAj^)4P8^#lO1I`AUN`bmZ`nq=Bj~ z{ld)}7bEfH?!#n*RDJf~7+lzCzIFb_I7M*GXw@4ho+X`0t${@5>at+lb9Zbq?!bK{ zg|mEx(F!{^4TRgKwjzSNuXhLu?kTdR-#c;r8PTox!o@Q8SR;Q7Ea})*ZEu0hFm9*Fy?lD!c;i$%8kKz1cq(yJ z-d*O~NBi47%vSxIJ7L`WdE|}9wz6%JKeq9W6W6>2h>og+if>Clek|?SEL$YqbD_s+ zLjro$N0RTc5BT{%wfm`(P`4{e9LN0PD)v#0oS0ah+0*IT8Xt??e&ZA6A!2aDJ~0v) zS>9p-+sZ~zCI0v(6`h+nw*embQ;_1Ft!+X`!v6jvTK+mgl8bk7l`;OhDeIpvVE?+Ud^;5I<3F?jc zmQQVx1)Vq-o8#iC;d5y1s-Ad{X@|u9wmi@Jb5s?4(GS{WY{le#%{)z>pUsgxr zrwOwGF2VK;7cf@_2IcYY#DQcGGO1YhFL7@)nj{aEX7QN^BXSfMm-B|Lh2`^v-? zG2}u^t3&y<_=XpR@hQBBFbyVCJ+pwIW9ctNy!iW#nsyEyy}nytSd#a0)jftix+K<#{DV4*BkRXgPO1O>7X+7$84!fh zUBT)28?A{$FtaOLcyuraY^@4$+Q-sUu%pwb^6y)OZgmBk&wxdH19{5DM27}TK zThg+og*yo8!j(;v-d3%B!@<~jc1?I9XuY>Ca_wBxzXNoevBTfVmM*r_|LsyT(y>mY zp1XYb_t%Z?AHVi~Jv%)DpJ#~gg!D7r)VOAL9;!%-|9DDVIE}zrbsZ;3M?U`U#|KE_ z4l7!_xR-0x$CQLiQiJZ%zdam1X2s@5SKqO zSMCJj&|X<+V#L6oQOZtAPMVzw71FpaO!`cW4*zqhlcg0ZluaSsRi zh%b5N3K95z0ZjmmSaFk%nEvRt9XhOL`!2Ac5YLJhT3|e zs~b}Uy5DUgbV%N9JAA6WIJPZON{CjG>B`V;o}nF|(*qw69ylQGcKTE6qc|!ty%UW2x#nu!#le7-}sc3MedCruX`O$OjHn7#d(fyXIjjw z`6^pB8-?4-tWJ-scbb7kk?A9t(A=a1(Po5RoQn7}-l@zSy%Bj$1C>+Kd1Kfbzw zsJlSi0!P!#rzRI4{WF}eRAQ>ej8CfTU!ZCBK zV??r7i?X7!9mKImIQBRVdppO9b8rafIK%y%e)spg-|zk3c|3gH@AvEVdOn}8g%QRl z(`-^z^&f+yS)Y$~)t^&j`p&+Y4Xo%556)C=Yf(7Y#bbh2M>FUgm2b|m+_3o zX}1dA0A5xCbsl!u8$s?hCO;pvo%cJaJl=2jqJ{!B$x42sDUrwrGn{Yul!SNchZj>jUq23Y4Y)7;+XMlHKXWUq5#V32uZZv4^DQYQ_5MUBwN*YWYI8bhB zIrZEhxI7s2O|Kc~$}Y0mR?%-}X1>ms)v9s8V)`S8$DKHM)MNY1REVEP^bGAG)Rfud z+-nByR<93FloM5fUb>4#xyfGg*#z2&*7X>ST)N#0p=L$wc~8IK>y74$8+f#&M#D9W zi~k3QI!>Ir^@>UN#ef|2oc9w^8-9Ng89`{{CR=;fAyF?jbes~eiQ~OnzDyViZ2Jv= zCeh2Nv3R1!2z>ObCgK1^ox*ZvG~AZP0_D5-8kLr%v&J&)fHhJ**0j8>S|(bz#tcui zZHhF7?!L*Jg@Mz9e&0c`s$>0R_@*8mM6t?chT#*zp1~$tZ*}V(4IbTYt%p%*i^{OH zH-o)6(a?kameJ}dwh^&!6@h5|sto9CDvvRzk?Ws@DeK~}_T?+`jq-sP5}-l zz>TKzeQd|{b^3cLkFNMeDv$PDc$ljg-f$8&T&U|1wx+(I7CMU&QfclI-1>q1JD$8_ zl$DD9>aztz0}ZQ|14LzxVDNH!4gcJ_eodmo-vW}~0-!RaPT9`yzMop4;uiGjniwCO z`g)%6^pv%Fl(pohHndRQp_X<{1%1u;gM3g2t1Hm-MZf|At>GRUbvJuWqsaGD!;j@J z|LmLae<;yM+wt(`sk^so7l=6vz*Mwp#1^nu(IG?taB{d!pmF;*gHS5q>)e2qah~cz zdzrnp_I$#`J_G6xw+z9pKl9U{WaCWeIYpk_pRG}Z&++5nMM3&9KFu?8aOP7ZH#f@x z*qyA)tj!a?4Va{gXldUI-E(SBpqpCeuj}RZ$h(bY68HDK3HIW{hqNi0_{}@A-fc@ZZK-4x~q~sp96lt1<9Rl8?qloPc zI~uxF_k%%A>Ufg-MTB*+V;4iPrOB^#7p4+jkk5efcw}N1^2l zsu)~qyrh(fd1z`Ivj&^&5*pvyPR>PzjMsd83g@Mi^>W0PCQfHpZ+xBq^3=b!NQ?3Z zpceehq8T(7UsI%sdq$e~u|!b8)D>`UE1_FHh3>hLcDa7q?KnAu{s5Z(=}N;6{DF~- zbI;i$`#s6F!2;z?=)1&BNMz4(|#gV6bH>*QeG#M3IR5XB> zqEhAiDtKi`5tXfpk2m#1xiY+CXruw6nUB}}f4_LCOa)|dU9LiOS4HcNYarDT*L_l$ z@O_Hr5DsJv9}Cm?L`O%={}HH@EZvG0q z`WxxUU+d5x7YK##e+XVX$9DMK8}ftKDW;u}*!~pq@Wz-)=M^L*-Dt~qqIn*HyIERg zna37oeB#79?UF1P_kke^VA3=xj^g34_p!!J19JfqIL4%{B5bIaXecw^0EplqQau2p zM*b%h1ypz_J@}b*pvAyb16bz^rCM8Ls$b1Aow z=C*Sw!wY0%5{%uG#q-y_hX$9QV%orj7;q+KFM^87I^Nx*;Q*j|iSDd2-?&W+)l9CUhlJqK{OPcU00d#)(=uks8de*B_0J`5UT~o9W}rX^)u~GOmBK|}^`%F_ z5&!(oD;#mef7#eOf7M zas`R50emdGH+k4r0OuF-nSZW$cnYdX!2wS70QhK;dR_P3`7LeiH;K*+VXb~0OP}MSP;CGm+hYn^1lSULxY{Z z_$OdR8S_^4T0dgXYJ>k4@Zrk3rkGNF`g?-f@%-&SZ(D(i97?^4QZCZISMtQVFu6nc z#sYunVb75J zd+z~cAPhKjFL3U+x~0H~!@!yBy`QP!&p*#wlWB_b0ifZ#LsLU%KM$wx{=O6|a9tfJ zA9Do;qIP1r@(8!b!T%hD&i|*d01jezP3xElnW&wfI*_tzyen-YdlMeMU#7DAz^qk* z>8NW)qc#7x8~3do#ci8_hN4i9=(?ayt`1Jg?CEL+01(WupIGmR=8T;GV-k3D>4fBq zF>zMy71Ks;4i^d6=GUVB2zv(*m4L~*k8)$u!$fy@X`7H}Y>c)eAZy`~h7T~>a3lqE zw0@xYja7}$>G|QJEd9LXV)6%|vvvb}P~T2z(^yf%(!NyeUhBJ%H*sbKV{8$GuH@T? z_tuENvUrxKXk;fZCwTP(WXZPg=YQJyV<8Y}3N@1Z_lv}^mrpeR4c}KyoL+uHe2-#7 zKAcnu{xE3g3Kp!;@=;SAJR*<5p$OqdlL&TywBBa&b0ppE6WRiNz=bEr(fwW2Vb=Bz z9<<#W)H%0LFy@WimF16V2f%PP0MAibbNH0NYTm%E65bv2ojr0HG@n8IZ9zVf5d@rlQhnU%`;R*#H zRweH7n(RFT0bgWiG}CXd1W@c{!c-n*Dy&BU)5R2<{{eb}b$LX#{=!D{|*p$a7HZJ%S`Pr|+b zwO$%exW<6LQ2q5LC2Y$-uSXHI^MWmVP;WfnGNt))+hwT+z|S_PVxAZ0b2Uw||5^)s zzvCQ~L;ZfD@z|TX>OGPRa7h$U^pzb(e+ul&1jPLrz(&}F*o{l-xg^JISbP8R92(#W zZPp! zJbx6#ex?=8Q<>SicuM|h4AiMulvw~ei1;m6U5Ju|atIGMTmD0bI|Ej2-*BT(>u>yH zFyijk;&fpEE#w5AfN!Q0End-Rmu>ECpP4^dRRgNi7pxSHS;2%(Hc;cEMcck&35_LY z0=^^EC~7;fTLP8$*n$?fqIC|NhIIP3|jNdjO-f?~z(i zoK3^c4uZ%#sNfO*kKg~nF?x=G`#a**fHgso)+Z!EB8Zvco{V<#N}W&_e}Zq!yY1ym z91vY1-vbS8n>%$m&rx|yHfy+{6Yb{Ki6ERwu^s`;!yq1tT76_DW*JB=bW`w>=D zWAoz$8VP~u+Eyovk*kGC)xd~ybPy_Z{&()1AtRbz@He{VoCYC2_&!O4bz0-g`~w)E zNJSis7J&i|076^e+E1X7Xtog+njH5y>pz&kj=*04aR&f#KCB#P7kk-4(#kF?(E5`% zqoTL-gW{V@FS$PUeKMqvjUmk|$DHwNrKwxSZx?5SC!RMHq1>ZUoF_-&!7Pr3@i`2i zB8V9g#ApYcX01oWYvxOG;pelSrUpYUO4B9NdEe~mS)4@iz{VTSqI6bUXdpXL0q&dZ zf#r%E2%NWRDWwa$J7f8R91M&WL)iCn?7ht6t+d;;nQ-^^dmmVz{>i4-E7Z|{Vs^9I zj&J5i&*K1*oP~XO;BYRG1FnrxwQAk4$f6sqd989WXuMSAoG0h9a4?HnDTQ}z%GWM@ z{}nNGfiw>}k>h59dWB#5Pf!0TcKR3Kv=(l=cPpM#>!T8AT$8jcp*7WD#GhJXa8{-1 z%C#l{rGeCeX~F#Ue`u`@~#N-{iyTzaDvg$t?_fDP{AT>szMlcj64d#`KinLIvg(c3U z%3*b@j<D^hFVps| zZ&f#mV%Oo8JhLN^Xy`zio>0EDqEs0?EX)~61DudANU6+Ubr#y(tI5Ov7%olgn(_VR z^qv+EWV`&ah**?a2pM~^Lizyhw+)DY4Y6ijaqbNHdy)aq|wHnVDV-8`oU5uT05ZtIhuceGy6o zHcpio^BvUVdLNr*iPFufC+$a9=Sdgmqsl(p*7yQ!V2CF&Bve7@InTXkGg4LQjRL`4 z{PRB0cq2O}D1a*p@wJByy_(ZA2RlGODRI7ubeM$ADdX7weW{}&o3~xWk7%JAG(!Aq z{Bc~cyx29y{!>{@psQ;k2YUt4v?7-U;KC2RfPb)VVaaDWv$6$RRY?VTYcMp z#bG+bIr`y+ql$%(tw3xccSu+;(Qtz8&q}7V zx8I2J|OXG+wn)LfL>W74k7Jozks0J8~P+@@pn({@M2w}_TbVQO&!4b z_dQt~l6E2qHUp4B{b8B%Wwa^%}DX`Ym)3PZag>ugTT_W3+ZLLv{EGKfD2EUo^ z$A{U~zz4;*tm*_3+gj(JZ{GC$&Kp4amj1au9p%CHG>hb6wLdX&(fQDtVNH%RlJ=~; zZt+EB?D8D?R=I48h1pU@76t;X5XMu@TNV@J5fj{8Ak6fNhf8~#eZa%!5Mf)_EWO8y zhsqA{l7+33c6hUUd6fTPyWPb8e*D?@Q$NCRQt^hhT{1crfYPxQu@)F!grnc`_gwu5 z2UpK6lwq3_AUy>~`R&lG+X;3w@e+51j`9vneD~f6r%WWGBEny94@K{-bw48BA;P=1 zV|_LM)&x`6w>_0T%kqfP?P~4h!YvCtmTW;TB>xOJ0{x{nBv7)=71nRUwNPGro>tXh z1?7Dz2pr}&Og+LD*;CeD;WlRqE2b4|efKM2x0=K1wyHORB0Vty#D=b_;XGhTvu zlByF*M+(nV+XTnnw+T|W{NJ%jrEa36FpqY4otguWk1CHtY^zprANtJjUK}$fU(i1a zJuNVnIANi^BXi&CyI>ign(Dq`;Nqvc<)GEjzIx~p!m-mp>*!|~^}>JUA~$adVpFN> zsjdL$-?yQ(qySrUY9V)BPj(07hsQ~L=NaaToCow>Z*(C|$Ai47kJ=kue-(ggQ!bL5 zm{_(f3A|}w`~y)6-^jH%thkw1xshp+S}~oE;$uT=?2qJZL|fPfXy#SgeAz3D7<<1_ z*4|i2@|ciP>f10F)3LAIS__3f2~_GUnHVc7jc2R0Ra&%w&(zmf>P+nOP4!W-S=%g| z2Qpy$H477Ks~rKn%-U=K*|B`ngCf}_m+0~j7#u;zTPed0HH|1!gfTcTP(DmvxSUFA z-W*>`iUyH}s_et%NI3m_7G%pj`36+@USY7a5UWG@d5nSi_QGMwmIdY4``zJ-6YhEKY%_(%)8@)>g83exRF5V@8ea!2h?4f(RU|j&_d@|LeRi6sBG(8>a3qfN1RbhOHk6 z;-ztBC50yA@?oX_k;EJGNR4&)m8-~O3^EOX@FD)I0Mf?S~RA91p%_;_~-Xrzv zCz{3)u7JSa>LwqKPn>B=`WJ%hg#RxO&&W{5JO4^`v%JRUXN4g>;|uX>{%?NvlA~8! z_UV7nv<4h#-YWpWJ~i?5BOnsi^1gYRIhll%04aq2&YHiW4vZ7D)!DfsAAE<)yLDYp z{$neU$b)oBe2G+v6@{mnkL0l6ekA*MQk>%lq+b0q9;~*~pJwh50Kq@PV*;Sr z8+C(){@f=7!^3;k=YP&aOV=CXo}2qTe2QSrwO?j};LZmE9RhVZmiBw6xk3h^0DEWJM;6CoF+EW;UjG*2PQhF+Be`*fU2?)&u$nEdCzKp|8>kLI@tZ0ccvwB-)L zxb4AQIJlRlW`gi{FcSJq-h?-E584448i9iCWi5C@$bAN&U*scT#IXlOK4PMd%T%L! z3dMh&c)t0eMoNsTqx_ocAr0Lm+8-*o@|4{+nbzWg4{xt&)Eps8W$RSU4ofFyj z8+$cY6^virZZNXmch)*^h6wO%;rz(!23k#scd~XfQD=RPgZ5k2G%Kf)v}#fb91)?X zD2t@|1Tp|t0}n#m4?{_DW>MEDBH0;& zfqF8x_X3D|xg5G=4*YciG0cE4ax-`>XTqshGpSm6$4#M|x38>vonqEp`+4`33dcu( zLgS`MzmaCzooVdNX(EtlgWG4#xsRZYT-5zpXBt%0`}sTza?HQKI=bA0tnk>gJp>)j z`rFP%&&tTvqTIUcmCy52aX&1>pNuG_?l#{%1R8xpvOZ&9AJfVp=M3(VrYKXEGet*v z2Vz@Pz_T_HvvcsoY+{?A>lA!f9Q;}Z!h30L3X+HVU}_c9GHls%KYUpXmL-VLjgSsh zPr54Xqzh4+A4%_(UfYegnE4{8%(K&T&)YDg2v8Wxlz!f9u9>)ARiXeePpv7mb=!nV z9Yz=iju1FP2g0Sb_KX_G{PPsnvc@v5I+vftqNhg0g?G!k1>%0iYGNI6N1I8H{*wUt z>^z=pQZB}q_yV38w40vl37c-ZuVr~s7}zhi-V%&@)r10;>)Pg+pEaF(2(dUD#35n6 z@3e1-u*E&!l0vvEe~*8bwP|(MPS%3LBi}df{?q-)LjB>Mi~8E4&S>Ho%UI?ZqpySe z;oinXcxq^8>;b|e>_OmYZ|QcaUK5-8qW|QbVX*9P%~#ncWOmQO^8B+0U5`5Iu<^oA z{1G1HVQ$+dFMRq&nRieZ|FqIrv^`%$>FM%ZjdvL?fe2^km&f;utR}W`%N}EdIsW4) z?*O?){mG%mBU?MM&?a~jR`k3y^v|hJ1clxTuYfYBDP`3FTWB&|7Ze#RpxM0WGx|2{ z^l@aFT@T`%BW%AvZ0eoq(^wK=fYILkUYsVG$3&3NTElm&WpFLg=r9o46I?|a%|vg* zbjpiA)F7bod=wXcyk<8Wi#vwkRo(giT-*25iaYG)x>f0!W3PZN@DOOM`m7@qNO6Zj z8wc&Zz-@0*y?|5`Di=s%*Bx9GQ@e975yGg2QG~^{?z1sgS$$W)gYlAl!D5TRzTud0 z2lN<_Qf{jV(_JE$KDNa`X6zeE0Wgf22IWk_wj)qU0=` z+k2y$acCc{g`tx+S#iO8Qhlfo!&?Y94tqa07V3JU%l0!Ulc7?Cn_lBLFWB8YhLayc zF)HsqOZ6<@-s6=kX_zV5Q&X?v34Z|kDKXJ|@}v2HO4tbOOW5iK4b2gw8K$%N!;uN- zo}h5rpf=X_jmR-x2NEcpry@=;pO`o(!MS<+mr?mo3Mk|$qW0BlJSWzMbFG#Y_f{tr ziZuozlJm*Md0Y9F)A{XNm9pow_Kcl}#;1o;Cufxi#o-mN7b0cjT3hkvEnE>c8IGUN z1f$5UXL?%4P2<(~E@kn$dCW=&eya{TQ1RV3I`Z}$#`Nf)`;~E3qex?@mkGygjn5`b z|4Xp-YEkjc->MD&y?aJrZtDMA_+`u5eMirR!So;arDaGfg49!kvgi-*4`oTv?eEjH zbLU55*T9W(I;|2}OMg7A&&~ z?JW3q%1rwloK^!-!|WssWSr{@E~Urcs`jX1^nC@L!w4NdZ8n#B?64wb^(;0o6{wD| ze4?NB=TIX*8hs_IcWo8}aB@#+m?(rv%kK9~yMUobdoxCGdlKZ2t?pHxd79|dE{bJO zWEq?8Z0l2f*+om_d2WUuMbrHfKed*_Ql&Y`elqI+se8$GwJvuf49r2Czwwn73Y%|E$QmGM6^~ar`H#IJ;Upp z=PIU{8@pY%@(s0+1x~e~3lf-^S{_#HQaH=zQQ{dLs7MUL$W|CgzYm4uCc-P2g%EkD z%{MATSD%Q@GF<^`h*>Dk`4!mYWxbJI3n(-d$Q(eEGoRak>5=+U;F0Jb_G8t<4s#Kr zk<2RkChrVp7=4nccZS2n0nM55H0J1{Zfs5p$5((t8;Tj*XRNa@%fUAfp|{#lVOzh+ ziCPKx>L(o!MZ}P$3d^Rnbm7H21+CM|$zNdtm!c;h)eH9NemTRr@{-HsX?3URBqTkL zAh6&PNKO2!?{g__Ie;oD!CCn&1BEZT^lW)e^m*DnKS?cUyZYQ86WRB`mfYL*E2$$( zDzqG*O)h(^UtCU1w-VZW3LU4Hc33+_e&O@FcSQoi3*J4`JjFArISAcN3Eg`{xw6PZ zGG_uE>OXEQntW}=ZVG*fAl2Bh9>wf%1)@I+6I-&8?Xpqm37VYEKebj9CtLR>g5wF( zE&mvg3^r?3mlLOEKKk61cch*R6c=4=2om?`9lyTh=U zX?ML+5T*-WF?5cT8I@OnS8f$mlC5n8dLG_8ZvatRs4`yh1-WZj;U#wLM7%?s3pMn# zpSA4_Ej=jduUA=m6y>>Bi7gjKZQOQ@zwt56N>z{wKRNNdj9-jbWsOp zNqI6%suH;{WuCW_ezbLjp49)gu|2H_#4MQoncWlQSY4sT-s!|cVS2WxLl=HKS9~@f zfS(Un)RhRd4ya@;Y_N%fY@Ohi%j~4VIre71F^7D=6gyG5scl-J2j)rgBj4EFK5qPu zDEoDEUVKMVM0;)|?p3%b-y^;bRFZ^Nm-B87Ej2C+Rztbv0XY>V{MWh>F6>gFk>MYI zRc-3kwZXyhI}gEY6`R%!RLR0}Ghh4cRG=-v8}_;-lIzKKNt!89AP?yu@1{|(&&vaT z*Bd(Xs8W=7s1^CGb=^HMPL(-{G@EWp%v@*rx( z9Cp=L65d4a|H!TOT_DEx?Ka_r!FmsTLx`LEM!~2#h zsnp*2T=^CT?cAo_ca^hSF`w%ST|OL#j$aR)IJ)Xv9_Hyjlu$Fq1|BBCULR+wuUKF_ zL03nz!v4Cjpq|OyIQ~eg;BN-#%bcIg$au|(a3Kl)e>ofIzryT)a-BzhntrCi`VX$p zFFz#MB+TwHB$AB*n5~E6>Q#j*} z%8{BkIqhPD+@9%lx}>YhT)~o~(p#bdY3fWD=qruvHy#*g7gnAF4zc}`CwFzK#%`bG z`nYlovAWv$SxZ4V1Kt0c2XW%o+zuXgfHl58-GD_-{CnV6mSy;@BdxGPe z^Bn=G;`@Y}>6hI5VP7nxXP=^2;{r2yHbAhA=h zksz60gU0D?G8`(;L!$CbmSm*9<>hWzxSp zQ{H=DkWf$CWrU84A3j*t*B84g23`b92dRzT2*_s zo&fIQkfrKG_-%!P6U61C>6K}+-3#Fl$}v8&4RtvN`yEPxN005grF5p#7HqrDRqiI2|gWP}(= zp})+}TY(-l8qV`FGF`r`Av|hwo9A_+)~T5C$5(%Jt!c!+ zt;NbaUOdELG)a#rcC3VYbmMzC+{482_W+mYwbM?Ksr}AQ^8)erYeaOt-g6D*^_1=g z2_M3WZ)cDVg;Y{_ldC$cqbx`CKo`p9>+Kil&tYEpAgsH{uJ>f(etGK1^S-Nh1Ehc=i0nebT?`~Ckv)QSD}0K{QZx}KUCeLgZ0&A?(aZNI(@3G ziLZs@PE6QcX|Mi#$|0ATP(~Bf5jNhn4}Qas zzD8d|if6lfZ5Fsss=nZiENvX)*M@Kxy-H3r`|Kao#an%@TFC7EQQ=Yc$D+MaLCOg6 z&`O@9($V)u^p@OaFB48tVpV`cGX%tR?D!1B;i_+fL|-soj!!vy|{ zX%Dtr5&`!E0ue^^XAhnBrsK@dJ^wvP>s*^fOO`|SJO{lf+|D5cuz4RtuFLFu64 zpjkQPWa`5JO!eb!^yRUE&=G5U!FK&mv5aG{6n;o#%jigLAzh=~3svc<<^qE1ct(WV zzMTfQ1H*BYVs9e*b*?{)I|&)CR^-g;!}ra4_ZM)dKDl>n4YCn)RdOzPKoO5b=jki! ziYvPNcX`$@2BW?4wLYhv-TPrPZmloUAwHW3W~sc(%N=GHjWmiHx;*xj4)CY%95|iC zY~SBoJ#2VHt_Q7WWpcJRlqhHv1zCCXrIMS-k;mxk<>N?&Ey z-8Q^@N*h7kU`3P~tySH2+wQ5D7RGy(i)x*nncYM6YYI5mP@gXxuTbC!5y|c0Ys%Z} zj#uk^Mc4CyDv-EqpzIeB+}vX>ytA|WQuSh%E<&)k&-DuRtycmDyNa~<)~;T;M0w&omq6~m#I%IfU;Ls#PH@SwXtbgK5rKWZ9yoBq^sfQ!QJA{L_LA?GfQK`;3F{cm%!zoquDQ}eiCgt^8F># zo%6Sgl{4N&R6ssXr%W4Ote2Dj!zHZ1$1j08zvUs2xW*m*a(SFC$aM#M*E$`@^;o;q7JMlLke8M798UgP)|U0g-~w_oJ3N4{jZ z2*W3qfUVC2L&>6@gvlM=Ys&)P;=aEWxqa#Fk6T%3poH%Uh36KecaO3QR)PA@Z54&s z&gIOxU2TQeOnPQ@N0pI9k>zo*0v6XSwXHrG+$UtAOQ4PI^q&tz=CSUv%X;pTGFJJP z3idCAg5x4ZLaP0xqIAq2EOGw%lnU=xrUeqGYLv)v+>Pu(OC&c-A-qDhsr*_}WR-IP z`f5ia8pgrS(u&;*i9?pq-`5L5a^HgUtzT{8=kK;*_-=yK=LwF#lpZtkTMm?PSx2=B z(WwwB*(5rbq=)-kd_L(V#vJ*%kGI=pP1?t51{jX}?xkDer}ML{+Qg5c>cVO%UzF#O z_nA1Gx4%jIWfogC*P>M2E9;~WNO!L#sjj-Q>?Lfl{PeuR-G9~*mh=YyE$)-kKz>7o zWQ8WnEb>kQE{+4YR^+)PfJ58Dte5QgDGsFlm<8!HF>B~W^)`w5bUSp~V)^v)H2GHf z;K{!95+4Xue``E|W3=z&ZMsWy_q7e^4C0m*`{?rI3qHdgHEP-7=X&kCg`#f5&Px+n z?xdc7_q&Hv!TeI;1}@Q%4`YU#i11z7#ulT>YP&S!&aa&Gl~xfuM5c%D`8VFr)ywVc zaC)^+Q&exqDKe0Vj?C%Kj$!ufuk%d)D{83!Uc?*F!&mO%rG(sJ1o14c4x6AzYeB$r z8kvI!k3EJ~IMnon#0}q<^?rxFK#uag6pN^{juEMIvbU?rm|YG9Z@Ph}-fMmEpETuP zmPA(8rF`&D&S`As!&|i{CHgLYo_=a4+v%fKo%+K+;!9?ifDy2j4B(Nn_o}0>wM#mU zc0hrV*CAqjE7%+|+q3vH{t#B--`HR^QVXbQ1>FA|(Y^Py>P(I;bT_CCWj`VBcTb+> z3zm&i{va>o`h)kSM|VxPVYvMEj$_zDnZSQFd)cY_0A{oC(c)w;g8d=-qffSbO`C+w z1Gg^er-@BjO?J%JeQs}TyElbz54$nQx&PT$?#>A+pl^$NYBpSXlvD*wV*LwOiWh05j1 zA=sEhv*U+a^YJrRxXoF`$A9HH6qi_*0i6`{wJH{LcmEnJ#_$2lN?OE(O!Dxb244zq zbnSQbFPUYA~ z$MHEz(kUHut6cDg);2n}=8xJg`OtMslnV2MaW~qouyjcuwbnJs>EtD!!T<2A6l!O( znCVHJ^cf?1=7VABktt8pws#FWO zA!Am!`PooTdKq1nN8#ug5pLH{-92@C;rVu{qWAh8;y1$RXeMa+IdL z|1E_=8%};-Ah2n5=HR8nqpa4v$72@f30yM+woX4aoO7Zzx+6jt)qOOSy$;kSDylie zR?pzXOtQb}h)3LDvsPSca{2}@(+Ub|NmB)C9$XZmy<-@Uoy{IyIR(>x1@bHT#@Ow! zioCFQy(===Y%^6C=1s$ISfwnzp+%S9+CQu)=(2I955JlCnSUjx294`GOIW#Q_`Z9y z?BOh5H)M+F>25mR_QH*CaMxkZKwvQzF%h(dwCHz(OrIs!lGe74IQ8{T8s^V{Nlf-H9$tFHF%rg&e0_dyoCuxfs(^=IUivZ;EoX>aeT5pwqRJoSjIC zhTnO-dSsYbO|P#P{AD~1N&E^v`fB;yl^=4sSn|Q0OAqrOH49KzYZ4-F2eS0MbVE3Q zEvQCc`NjM5C1H#$OfvnQC<3%z|=dxzWMt)A1XUW`(e`ss@P-UK_Gog=V z6*}Uq9%gyQV)DwxTlXb{Qez6_oVrHdC+x>XNsZTJ6sU8^b_`$7=TX0EBUZ;#5&vvb z`%*gtFfTW;K)zYbk*SBkW_yXBz$n_^aLIywnq`P(gCV8wit^zFy|t^}bV^=ZmEJ7F z(*|*g>#KQJ%9pjs>9Ug-n7c9%%}fto3J8zOQIntWq#_m7nSUj*-I@(*tZ#ez#zWMz zdz7*j*gk%Gg73GXb9h+}%Yx@>Tew>`fm;hpNl#7|7L7KQkH%vn3{NaK2mLU`ac+9* zq}>%k4Dc`7Wt~Szj3A>_MP7g7U-!{@Nw4wkg=!*Yg%@CjdauP`GOCaH+B)6XEe*Ze zT#_i*i*fdCBCpb5p{JJVogSWfYM$OPU49JJduRSP(8BKpTYo?A=QuIyrNavm;qmvD z)S2|0dwI|0jh#-sNnm=d=e2AK>vqd2Yc&*K6A9{mj%bWkd!;pszCho=$uH_YDfH9e z`5h58-j!58uJ)x(y|_esind?#R%VO{ytkexueBF9hM`=qMb-ahGrx%*r?fO!g@2$uzzipAUtmP-_*RDSX zQ*`RY_6K_UuD#4UrF!(Z%}Jf1HII2A44OnYib&Grv>|7nBqp_dpQyEW7&C#4%3+*` z{_0WXb{h>tgWpmTMf4c9Yi$E$@BcErU8V8t-sG^7U=K22?l)rPE@z$J^Y%o=$Rq<=vf%1#LrXN`C zY(c;ID7%VU`(#mSj)d@l3X?PH!EQKl`FxyO_0YLh@rn0E#B=H#34;)rK`yJ>e+8TJ z=#!V|5cm(%g`{G(QhxNqvDs1QG1%D5sJ3tF2F%?TRCG{Mu>pnWpNlg!N111Ic`Rjn z2B}#-E`$W#3K-td5<*hO&dk+pM7lo*St)guf=Ss;MQtT2Xj`9@jg0T7H*zk0jyv^IO$5?3;Z4))%FV4SPWZ7;SikP~SoY^|XbDUs1CJw>q1~EXmbi-sF z_!05mONOedkO-b*Yjl-ZvrWipFK%H)S<$rZ_?3MSTz#fUd2=Yo-+6Ac!ex6%pv{{x{lxr@iXqcxwc(9<(Il^5WY!87xdUA zT?A)+P7OO*3?1Yd7X@OAfV@N?KVPFBIZ@FAx-17;Ny|b;`1UtkhPpaK-xeXiO-j6- zeP%cHLil6WELbl6H=$18DX80jKr?(C9IW4*l=pdjr$I%lMu_hCp$Ge{u25Zd4Qlsn z9hW?sSqoc({lZ4Lgq%WUPQE zmhbGex&`W1j}mQ`Gu*2*EyHrC za#J!%YFg^@gl+XCur>C?Lxm4v+&by;NVk{g5(b$r#XxVpm8uhKOtXe+S=_gjl+n43 z;8*zS6VKpd%#hS|7{2BW`po38cGbx}wQjwJB=uG<3g5OE#dbMv)HYu^iCEBG^zbz_gy<2TXI)MA?03+c6j?U`nytFi%jJ-j1Zxj7$35#oJg>5s8o!#U3>u>O_=yvU!liD$Z|btZgW{OKO2~@NbBPdZ@QQ(tj!{l$0M;50V_^)9E=NcZTuISn))1UcQuV_dA~; zzl!_z%nFs?@FR@fy$5A2ax&?S9y57fiCq-#==L=6a+;45k6E&6P38-xL{rY$fkbF( zE~l8eWA%xSF9ZXdU1^9?Pv04I^VQ2s?BtJCMiKU4yB)#9#Z+t;Sca_q&DN(AOpu7! zQ>R{0*>%p#s0o{&7%(Si3ya)AD*3sk({W#Y3VJPOk0O%!eBB)BA5D zWAc3oZx|Dvu&-l(Sy7wbx}ti^c-fjG=3Je#ZlblF6@1Z@+`1}N`#-YK3HF3ltyUX4KrfoN4MP@W) zGx!aN@!RodpNOi9L1UL4*&6%ZhRkHX(gA!)0&S@e0k0x zZYU|;x)_z9@I$%f)khzDMxe^T5n?uIg|U#f>A+B0vA%t;6z%xG{XCWX(0|NuKXIQ zxHO-z;QQAuDnv7DFEO{W>npJtuUOb{QOOo|6%>j3(K{if(g2$463t?WV ze?PI9KuA0wy33696J?q$D;!9*M(w3-CT9xkOsZV$c5DY#Zv;5PQbSsY8IrXYmW@2O zjV^ zvbQm3A<)KBI_}uVut5pW<-XMYZt;BGzLQQU)tYwYY73OvpU(>zI+zJa50^G60N@^`HgbQn1jYEh0ATW-LFnzkPfPB;T@;n86~%8OHA}5$eG9A z6xuss8t}PeO<9OrW2BU^fmeOFj}&sd?l}a8U#blXu^PCXNJRx4TQ){=C7k9)Sc%M54nd53*BCksdndMRy7sO0JRVzM zKY~|LbDAoo*WG!BGCBS=b8xombuUR;&qPW^{R zOOL^*Ypcen^WzVej*0049<#&Uxfg1EKWH7W8|7XqXLi&Im$3ZX@1K?36*#oN;_*M# zy2Ah0p;5;h*G#!ehY%}63%vf45XiE@(tR$*4EbhmJ&rSti=~dq!inD7SABofoIg0< zr*yH1$*x;F7Ai)X*(H5$cqa64+U`uT+q^-P}Y)BE~PNNK-fGJA)(13QKK%F{_@ z`Cj)2*ie1CkRKDE1f`_uuD{)`syTIPMuzU4sVq5dW<}-8`TW|=ol9YF`H(5W%<)_P zPQSy5oj#1%R8eYx45^-qP-HJ;4G)Y7iXo`jaZfeVM3U0s<#{jn+wnN!dv_9AvGe< z{(cETX{a#yq9Xx(z8<$OCkG*Kv%h1NF%eJ)Uudt2#W{ypwqid6RaZH+cV?0*eO=8l zk1nhFRyBOQl@wx9oq0Dqcq_ez`0o6*j6Pjn?kddAqtid7+KEKE6?+RN+IZxS$Jh4@7@0@ z8t&j;lm;*ucSHhzX-GDZei!mOg({JCFLjSazGU!nU)V@&J9-pmCU_3~Voy5U03ukV zTb}P~WcTS+UHR!Uh`VpY%Z>Kwnx>NJ?9DO+S5Wc9l6eT#B5PDr&^>?S-9{9=Os+%- z@>{*7xITA@K7nL5_%P8jwx^vvdp|p>sr2TTi(f)oK1%qyKxz{_%u$xYDh?xNzrmvm z#(a^bWthy#jEb@LeKW9qqIdBo|H=I$^n1Kc8(I^8iJBta0c5wFA88a-TNE9(LYqdo zfsNs%A>THOXWTP9N|Z2Rp3vgDa;lwOtU|@X(k((mb)X<)I6b)Hbh%JPcq^0c2}$Y$ z>{|f&o?rEF8Vq12?sT=z5fbs1Yd!77W2Ec=CfMjclABar)V9dJaW+PGM;+gGhyMQB zQ$;V~3D@YmwVwK=gyTYkzC%cQ`uG-D7KsY}2fZ3CV9%MXbA{pGiBM zc8l@1jS;>Ea+2 z!}RxCWE?Wt;)U(3iK)H{T5%D?6A?YGyE(J6Z3(8k>W5t}@e%$e6+bzS(J{g`)f&Tc ziPyLz2lP}o&}zfBM^C+eIP85@5=1=4w4(nCn-;QF$d;YWamYH9y&W87kBq~i->dg^eLmmoy8S+X zKqcoqAM3u(5S^!K675&|9`~(YhL-vd=p%a>wmfBno121~F?RAp)Ke->0+w@i2~zz` zBOTFInAO@Y+PY3hQUA)3MOnzVZ#YZ2d&07)Zx|fnI4$U%P)u3y`Jt#@d7Li(Q?qkFG)BW#ujh7* z&GgeYRW$E4)i`h4?HlT{GzeOoUDD~MN419C&$+P+D$KyH$IJmM|xDB>aS#6+RPPKA~*9 zC=VfKMi<+Ay4v+xf?RF|&vR^me-a`{*AsxquvlDls?&$lLvW|Q8z#SsXR0ifbbc1Qtzkn0KM1%g**SB@4^5Td(AEfA$O!J4}N4zmbEH(6w`Q^ z%613scsRNVCdp<6iHB;Khw?xvf7oi9XZ#!&M>L%){f1jzC#?ucWAEOn^sM4)>?bWU ziZD?y2h$#j$dy+fLGpnYNfx0dHn2z}PTd#@1t8ThwV(!FKLsYJpFE@NLSV&dye7`%juX z4#SiV<)jLI`Lzu-T?;7nb=#JNYA24uTG)W_4hKuN{*Z^g@-8&vNJ>g8`@CG#Z(syS z@fJJZY->^bL-MHaZHz=iX+nEiW0eqv>A*%-O!D9v^IVbpwS#3^)Q0c+Cr5%^YO5if zGclAV730}sjkdLO_PAHl+F!ZN-te%##e z3i9kP&Qb4$?ndjXg-l9qSsT7CH~p|&UW>LkFxjf^dsbQkZY`xQU;MRpUruR$LUz*X z61v(wAvdYyelY<2DL3?2m#Dd7?b5wpU3jIx%H+$)E*>AKP!?56c9zw-dU}JJ6;D*J zo(@e;qm37owG5L@g=k8`^##C1QCGw-yfU_cnEDHubt!MAs!tuw@%Xw-RC#Y%e#_91 z-$bdI#}Mi1PpLsSDf-%L-ZIu*lzo*dBv};}#_z0ms%sKpaLgKNVdRu=H^-}DUq+cBJ2>DgaNU&d}X$C7rw%EHqV!0*Q^W0S2J|lTs zZlHMo+|P+(yeTJ|KQ1yGbW#Q6r`=DoT3_nbiPl=$0M-pxJDy0U>TM>up5=p_s;KNY z(}!ai3ime>u1nQXSM?Tqtd!y`+pSnj%M4Us!{LPRaVczES(tLohceVkur^B$ytZ~j z*4Tu?=2mjX<-2`XqF`E)(n|Cg&U&Gt5*nWQYI&izO(5lWd@eR>X4Q9Y9JS%L?HB~# z|H6|0BIR&e1SJ@%qad)f_#tJfcxTus&<0l4^2B^Q@%mSjC>=`(a!eMZtgr=EKT148$o zDh6h0G=wWC2vb787>hKr*C?~{Mhmk?OIUzhG{FoBU)wYFApY zN7V`zO-6Lh-p1oyR#l>W{j2qKS0$5=P(Y1C|6CzHjj2j2sq|iZg>@3*o;HlWyGJKD zTZ%H&E%nVx9M1dM{EVSZzP0Azd&zRRuvEkfDPFw650uR%Zs#JK6SNyqpvcWP!NEMp zLYaCra9@6ASz+|Z3gI-Xo5L`8{8x%52GHD#jDIDv&f1edl zqC+KXe#TSOq(b8bR9q>1p9*o`E1Aos7cFC<E>x*?w^P&?TD6vK36k+NFnZnSLtyb$W(N1X?I+D3qsq@eP=$MPt`;O!YS#d8U`+}71s;( zil|IS=|d%)*v%aPm90?fGHw;58nb-<1E}_Vl&yQCs_t47CopgOzUt8+a$%u(diOFU^9b?5; zCslGg<>|EJgdMar3_^k|fj1%3q%lPPb>{@D<098ytQV9uKznLn=q1mG(v1ld7ULZ5 zzNVhhU(mdvq}fS%Nk?{Pnd*9WtX(D%KPWn|ZOF<~%>feMp9{we z>L0yAb40f_Zp)8j8LR{jSQ43t$K$z$+|p7v@TFzv!OYG(S$1&KH1>>1*v^62_%01P zsHrhIPRA76cM3=Wy#pHT&Eum0hhbvd;>>#0Zi5C^De&{Q7I6?7|RE=93O) zICO`^KxkoH?l=Pb-M7Gz#kYK$=%4SvzsI8PvcK)4C%O=1prteN!wfRX-S72muFAth z*$no05(|ImMx$X}aGliql-fL66<>EDe=g@G8wAWER31a2C|M}-kEGg+*f7C(Tn$o8 z5wTT$xfH$z>%IDYW8x)noNcUST*+nZcujcxwge zqkp5oEu|XC^INXiJ-QO+07&JUF=!$tuDu?M`Q|{{70%@31|no#;3ELu@-}TqKV%rF z#64kJok~!zAQ0KM1U~yd>Z8;-r*Iu0f1tgO3++>UbUKG|e{-bfo+sqUXeXtgV%2#4 ziLhXb2&lUlrEQmWP265t5z>#az~@cv{XeG1UE1dwn-GG=UT~uN@d(WTa~@B{v#$8y z&@oRd?{UK4k~6EAmN{pkXo(P0dPCRfB%bB|eGxMr(VKgsG1P>jk|F!fn{RfgngLeiXN!{dNy)*u9vWR?Unf_PQ3BOcWNu&HHRFQ0DG*TsPem+^C z-!~yDw*=RBlv3vK8sUTx0sIMq`FJwY`)@T1uL7l6N#)V84dm z5?2lh@SFySb6oegW1EB)sBC2`0HJHBV9Yedv&nI#E3 zaC%9j7HG@7R^%?R=mupYyIFjfeF-gdTyOw0u5l^*w120f>Bf-d_?qKMo=(-anp^fPDKd1K`0rvn#h*WP* zqCxH#=RTRAWXpNqdGgP8BAO@VM2)f^GJJ5!mzoT$xJ>#l;k$Wrgw-6d6hZ8#=F6C( z)m@Sh{7a+a{>s|nC)h?Z=6-FiOR5l^QA4}X&|43_d zh;Q^vmP_?NAQzP2|A`0_0R{$F;PxXDRRuy$s&Er~!I$G~>5x~tqRb>8!jm=ie{=hr zbBFWc@jk6>im?4`TZ2C4XD7V@i?KuBv84|&N;B?K{m%DuPMp3Q0EUxmR4Dl~snFm~ zr}D^$N525JPcTP3aX_r?J1v@UeiaVxbbFrM7f(5k6KckxYf39h%@Q$z>rH!o`)N>O zEPFaLFgnpz1nY5pF<6FE(3bVnP0?25+EpYG6hfB8-w~^RjOgh=jkI#-3j=AACJW(7 z!mVr{W+F_#PYWtuA{q;y%eg+Ec zHQZkWz#kaOgUGPa1>E1)b>QoUto>glp5`TQUBK0$fU@X=|4;Q)s_>%?OAxx86Ivo-@%PS>4?PU|%-K#VX= zjj8SX>uYYLQ!O!9nngF6X_s2=xu*L73XrdOe(;~$a9u1=% zU?v<#))IP=w~35WP#`u-6e?!NURfQqTCSvqu|1!M;+1Bueeg*+;Z^bH3V%Qz$XlfA z{dEfh-C#Z*I_zgzzA*Riy}gFlC!At59}6|(1c_4&@SqVFw}W7Ycb%E>N*kzrL|UgE zmXH%z7=>}FJQRxAtPQFoN_lHF(J*p_xh2P&x7ZmMJoCJ#`5RmF_?N6rB2QFa&xie+ z_1`4dxMrv42wGmroAj@H_L|T79w56Q1w#P|QD@SSMeW&jSW`jBoSR!iC*sFkNmw4q z@H1FcDtQRcKcDxm!vES^PAMq{hmk78-`RO=+!uP|k*9z%A)l8v->Ez|tvQQj0B;L5YQTQL2d<}TqhgaDLa322i%5ZkqPuh{ z8*XV3-mu}M)O#E0w|o8=SJd@Hv#3CJ!FwzOss%J>;?nb*Y;PjH;yWn`2Og+UTA8a^ zlNZjE{Y+xey`}#9thKF*15|0@26j=g)-XfJ2d4@haJ&ZJ_qQ~nsg`)k{szk)%*F#g zJH~yW51%vCv&sS77p!*RKiLzQsMhVQbKo9W<9G}cF6QU07P;ZuZo*3(APbfOD485W z=cEChjT+@B?hmi#Kwn6-KE&;u>HFvJv2`Yb$*kZ;iG<1q-$v%SLE@coM|Yp97-&QD zCx4cP))JVbqrTL$;qwH_?>bg-L@YEcbDWL`j@c}~@pT)27$NBLCsJ%GvR-2V=D81q z-{fAc@HYSyc(c1+dldhrUDRHhOnKeNmnyh6*)DGpw`fCt&*-S+c!mY+7W($G{&p># zL8Xm+zVDAv%DuB^noko6)_I;+=kSO?Ao#E|s1cHGRzfGKlYHI5dv(dD+>yQI(Je}s z?cOno6A~<3w=oTm#LXt7HseRqYsZJjQV|vAHia=AtonV7u@oBF4A!F?wxfkGi_dL)WhA6N28fVMf0X(IARNc2F)cb}?wbrO7BPMG~CbTC5 zyjdlc+X|9JPG%b>T@If%bDCpxP0F-eodN9U=r-c2x3g- zTn(y#Sq8^#8~lzMX^7uH>V4VEy)TkcyLPhIKow7RZvvq{1bW&x%PD8XkGmfSq`Z(fxC^lvz{zWuM2sl2W#l zZg5%quzDDQ!}(1!(jL{)I~R0$$`tP$lnzvZP{KH?T87mG8CGF2Ib;OO?MDy*vq=sn zDS)M#DB@GiRIr0oWmrkhUBK+*)AVN7P|hXVW~?J&!FE&)v-9-6rXbHRX`egs&7^6Z zZj;m>aI-zcO0H)XHwYb0pr-f;se!mak$AI2hRRK{Y}Ns4x2KJwRut}2EZ3u{f>mQ-iO$1!kZRY;K1Wj1j+-{E z!(kXnXn-X)>o{!#qtc=v$eOqKnu2oe*y7`k2W8L+uBSig?ImMCV*^89n^MwX><|*{ z>_&cwd)ncC*M=gId8V6b)4c#WwBWg<(41{%lm+p}zYKJ+6%ZZiKZ#FfhDH2gEd{s! z|7!yiF|e}xP0~&FcvoyC{7qNj0VL^0hk{$%Tf@=!T%xy}&P9tJ!ori${#4=UH*Mne zO?ZlZ523m`hGqt4JOjMiG0kz!%DHA&7P27;#LAtMvWLhjt0L}cqcCHg`uKwPhq})< z9XH)yfefsO&)|WxX3`U`CnQ#z=1iri3U;Tbo`xmJhEt`_hJT$UvS{oNBwS{?G$;vC#$k}UYL@Xaj;g~|3FFZA8Df62KP4TBU z%5lldK^%7O535Eb&)liQ(P6_vfpRj**iRSH>UJXA)CV>gaqNQQVXm@Al{}9552m~g zb4?L6pgectV)=Vg=9x@JknO+?A*%2%+2ZnhwZdV4XTqCn7@9VTlspRQe1{Cb%tr*KTn=yGS{>P4y%7B}KT|u0K2PoZjOxe?s1y*T*e>Zz)GD%W zd~GI^A9(t#QTVx`Q^w&Y1gT&(oNd4PvL(XYZL!be0Qt|AXeaDHPXv85^nY<-aC0;# ze7u)JzK!J7sN`DGBlHKLA}sM2Q<>65C{up0c2kGO7^|KEHXFtuuCL|S#;fM5X0^ez zwvSrVjNs#W(R$|-MymGs@rK>S7nQ`8?9#i!PfhefW<1y0|F#GIYYzLJna?J>=Bgey z3=q7l3AVzoyxy|&M@A7B`%}DN9S7ROyG-Lt;xwAkC#AoR?ZQ>;9Z!$mnQ)dv`BFIC z(nSf2h{uB1bAh{nTEc|}3t~&l!{@ac1MA%xcTyX(F?yBg-1zO0X!1372kbYQBN?DS zM3^^<2`fdV8d_~=q2&@8leP`u%qlT4)D6-t%6HW)zmceTly?RBRL0;Rk+Kgrq&pLP zBQQ{)^K-4&F(u+uH0VWn<2W`?^gYB-3< z-t^XyPsko|*NC*k^x*X@o7VaaEnu47l<=9x-14b9&e?y65o{TpF}Y{s@hU*@=RM;A zPn?}wRX)*LiO>nR=b@uMzHh!oaI$RYgVQ0E_c*$UEh&Wx21p2>G;5*ka{T9hz``;) z>49T&BeoZL0~wUtajP4Hi7}ART{N@H z=V-AjwP-?DwC)F|fp%}5++bd#&tKPoyK(#lam|DkN#9I6 z6y_(q+?BslP+b3+=&s+uZUqNONROlN6JRD$ZYf>8Bu`inK;5DS#!h6i^cM zrK0T)bOSj;db-i>ZYxg)N>S%eV7b-GmR0f>sBcYE-&d^S8C-KyWVn!SgypECANQtS z;yI0!kWY6le-qm7VX7+wy{TTMuFS2C{XoyO_GAOUh1t>h7G~CEsoTS+HfnM9+rna^ zHOY(iPcz)hvi0C<O&M^&dohH!cVkr_x0~G#V#T|kdD@4_a^gL~@w@HnSBV+jxaiB% z1+L-^%v??D5kr1;i!ZbEKeMCP%6}k`x(m|45g8wJrsre`TmTzfA%IH>Z*fbbQilZz z$s~=N1^u(gdz^t@C}2$Be0IWuwKFy%EY4kzjlqcm+bQh64a{b-VOzrMw`ySIY5**0tH%mKRGHhc!#%ll&xs)+t+h?Cq8vMsgI` zzb?agL1(E+qdPE@NKi7pcX$;p|D2EI^^bl`*vG;kbqJP~Wz6I3UH-b?aSBuG&YdI{ zRyT0-XkAyl?92?4Td0J`(mf&11g^yBg&*7mM{M7x>!PvI)z36o@5UwGKt_&?5F`>7 z%u)Y$lwXaR~W0Iwdl;K-- zuIOE0#9)MY`s$Z#K%kgjdGK0uia)ygpsu_lzDcZ7s*5_Nk-*FjV1c=T<|4?e=; z1M6HSkcMunqMONa!9deSb0aQ*>)lyv4Vi-XbC?4y9&dJH$eM1;_nDO!=Zz!C5@JCz z+)`|gB*Z%j!e6@r7-`EdKfx=-iK&7H|7-|AVuz-oN+Q4qZ7(ME<30Z2+;N61kA%zx zYE|1}dX8kxTr`#%U?J!Rsx>k5K{^|6v>F%6UN0VBY43Fc$TbN@0u<@w9PSD-y zB>jyrSa|h-{JBNQri99cPelVW(#h@GQNq&^s*}w^A^Ur5${$5E^=_d0=xvY^Oeivl zQD^^IjQc^BO2t%$WCi^_iGi#g`>Xetzof6z!xGIRZTzu-!STdVlcd?(um|$abqrKL z&WEYO-&6b>UyS;XQzKbSH31(85Y7AZf5*3F|)T;%i58~^CA9l;JDh+b=Hu$FYtom z(OXf8 z@y{5I>OMx;&2Mo|N_VRslMe+Dd$zVv`EX?S)xe_70lh6(72w&XS_CXBLScaBjO#t! z*-@bc>=aR;Oit-~RMNP$In(P069?eq$GS@_guedwCq4Y{2=9S^04+`OA*x|^D5qI? z6__b$ym_0zCW8c%YU}m+vt450*so0}?KqV5O!e|=i@e}F>wKHm^Y@`_+1L+3W4PzA zKE_MuZ0yka*Zk1SY#9w)igkTjS9W&(U%M%D-m{(hM0W}m{>#jg#pNFGuD?7=13lqr zt|Mm>Z3?#?5AWlJYEpV)w0G$?FWAG5^+QuLRSI6}*N0xVY4M%6NUFw~Ws1T=8OWg1 z!pGvv;!VMM-{qwgH4|mCc>u?j?EmI0$o$dERer*zrTu4H&=ZB6!_NKV}Gmc8yEpLmD*>#W+!^R8lht#q>M957&Xmn*$n6{Q0v5Fi!(O$jeeN^$NK7^I2Kkv_q=PN0&mEmgDmd(Jrgct7zZH z&tt4iR6&mm%Cz?%j`oL9fmWF(KJ@#Lae-*VRGtF($IhoInRUL!5`bc>mr~Nm$z?O@w_!*s92e*D2Rlb<^E7Q-5VZ_Wm^i^hQ2mAGl)%eKV!m zT-`#v?9BTJRk4WMd?9@O8CgW$qO&tF?$cI#*TZO$Od*kaO5_yT8S)#5ECcMY`@iDr zZhuTTb^s8;4MObn$<(UUtfy1!!=y?Xv1otiI`gi^C1jZhhEZ;HHhN#`_m7ZuQc+vs zW2x)-M2YG<94#pnwbNrwn-P`kj56gWr?(8UX@_28Y+8nyy2COKb8JhX)e?@B$!0pX zuLHN)e=AxIF5!Ba9NNkAG4g2I>4f8^*@jI5lD{@{@(VQA3=pCb&jq76@WAxwkP;F{Z+SFz09z)eD|WNON#S7aA#=80~E2k zhHh%Q952C&{yHk!0$#_rpU?5D8mQ!M&wu+uXicoao(aIUOSW+)huji~J{sE>O*aa5 z9Ds?z*09?uVxGKA`Mcw-^MsyuCFw$4Y>hVcm^^Y?!&j2I7c>T zI+3;_6z&gr%x0nn95Pnf=|$aF@gqq-BQw&qFAP6!Fud}(b3XJCSa7Yi!LCQ{LcDiQ z14PKB#zt2Xk7{K;?auKMQO{379?VkOSg3d~hfZCy`-3}t*n-U{S4{K7&(H3OklSc~ zm$MsgY)I=W5@y%7>-ZtA@F%T=E_vWiUd-?#)ziB#e->U6uiJzr#hpt)HS~`Q`vm-F z8~ASiv9cF^1*H|;Vx;Q;qo!mxZc0UTEiQEKiT&#%{P$kqwHo_yB7!p9DA^)cS8JX- zc58oY+)nSL9eBwNy|wtdO3{{}GLMR?O7cx1i*iu)lO44Ok;mn(<+SA-RJW_h8r&cT zr=IdZ{2Lxa)I5423X4R4YG(1=BVed#aHjOEf5S}7-%Esx+xtSy0H${z_ z$*))j^MSa09?k&#NR3-}gLi5#r=lg-$#KaraYF@5T%82D>9THiIiv9!V5}RK&0ZtO z;48|RLL%Pxh-9w*&gK_)Pte96=nBTO`C&_umClz8qCLx`)wl|h8Y7!LkipLU1S3y{ z6-NH*l_y0#FipO9tdOU2#c4s}LKYL1Q<}6B0Z&9nqR?(fcMZ?n=;oS~n0<1IvA4bF z$-N5>NnUWD)a32M%c;9HMEPb&y)SP?PZrpb6!N%(kZlcOiOO$xT7Pw3Hs?DsN#Tj? zwZxT9Tu`)(m>avsUC7;`z%H25$do&RvPXtud?H}qwDk+MkX9X{0q=uHviE+4P7yt8 zWi8%l;XD5KLyY?0be+l@_Z`E?6llTaGu5E@TXn5D>|6Z!x-l9zOk?H%-iV^HO~9Si zGFCa7@VSuGKqW;TZ$Dbw&p=PlQzew9Q6Nz;27BEuJl8Ux-JdDds4|f=1SLFBiKPx_ z&nzZZm>p}+iQ`pSVuhyJ0)sg*JP2UuG4%Y6)O3%rMa=wtn9M!z3hD=r7XeV!G<22B z%IRvXv3B=w&rJC83{ccS=j4Dfi=MKan5D?2)rI^~zUYbo?&I9lC4&-!O|%BnX%lfX z@Wn%O2ieo&m71%(;4Ur`A}R+>G|$t%2R8or)(yU*zFdu!AcZ{ENXlQT2-cu9I%I+f z(5@515L}%KU)X#4YRq325EiI1O2sV?1OU<>y1qA{H>h7vl4Al_e!zJ;I8k>5tO6b) zTtfDlf(9Z8fovx&VKvNPh|lRgBKR+Wdd`%ty<;z78UpZOoMsmbb1_bx>VywpUhcf8 zv6>xgfrqp#?o;;CtpThsls&e2Krg>8O+z^BZ^j#L66dK2r^S+@$IRnbgkDWB^$<}e zxQ+JDk}0;hiP8lUd^UgX@uu@!8j@v2iPq1HA%!uo^6#60*m)ATPy}v0a=5ph16(Q< z;u&vs>OM=>Vq^M5FwhVifx`zk-7FEMQiJS*YioCL6U{^2wsT^`Us0L=v*iDC8IFMv zJq48+mC~i?7@~{`@_`ZC%Fxj;b^AuaRxQA-aT%Tr^V9M~K0Py62PJg&f!_vJRk`cS zo(%XE{DC&;zc!Sp+AeRUnp-6+CROm(1+d=3`&)A^_00^^IqaZ@LLpIsd|l-!9$afJ z8+&&ru+>jWz_h*1T)u9T{^N9y++OiG$9{Q#LD>$XIjiodaBl}0BnJZ1_#Q!OC8h(Q zWe!tPGkYVzl}lDKH^@yZRwXgst9uO^AQ#v)KqjG;x#$)K-M~fq(IIvwwQ zEc_1VHkaP%!MDiC^P@tb_6Oc+d3V4NCwg+b0D))~0@3nRX%%P{#I^cpVeJz@6Xs5J zj%{gjQp-#ZvXq^TYAU#@9$)mYnPuaUlXgG$X2a~{L0Po(z-?f`cq_eLVwWOS>>k-6 z450Hbdy7%=4WTLDwU6IiZ=IR6PL3bv>~OJ2CK2d4w71X8G~U8cLqu0z=>Um<{^U#J zbx|#ft?M_}1W`W&+*!L)-C_mgDlZSF3_C8b&pJB~ze{gOxO2Qa#eLYV8rj5_Zr5xZ z{7h}YN6*M4+0i8)eMokg?Kk;J_Gj{Xiy|MRKF2P+t`BoQQB6wSkiteaW`3B75`kne z2BWfZkq1-0t8aqD{(%ig6#oM@to5TNEEsqdr3Xqt=r!-fD9@FSbqfEg_yfm}R-@fv zzNo56A!az84@3d)x(fJzvcIJyfy;fo@111Zjy}1MSBn1-Ox!cb!2gEBy*{1+Dcpn5 zgg<}22)u81Wgpikvn0;jf62a++)y)BP?=}KJPeQRkz^uad81ZLvtvMHX&!?gYji{K z(rB}-4^UAnss%uXZU8j=v$~O~0>I-`?|%t7nVd0o>WVF=wAzV#^DgW$XiMQ8Yt(v@ z;WwLTo=c8!j{v1tae`)|=E=lPNkS z_1%(Ji)7CS1W4mD{l+6V=$I(Ak8F;2?hg#nNtzHwJ)q$kutf=7+_z6Rp|EqPdQieB zE!UGjGpHmaeRvlLW7RU)m5R8hZnfvA;EG+{>a$mxlC<|AYiEmyy3&04_CiBWG~e-z52J1CiO@SGg+UiCt5vLBn>T z8k!|}tq^=&acB3nO*<*=87;ihWYt5+h3dyoOI7WFs|tVB5uL&4;2L&8oOzV8Ca8avj_19kMNC z9`?7$F9A+y5|*w2AvxqgD3FDT)25&SM85D{8(-J_OPk>~W&NZ4gBLLEPWXIMoTNX6 zRUB-g=tJPwyiLR`I22tvENlBnkbHX1?JH;khhXulvb9?Bs!~n~=olF}jQ7d?*GEjA zZ!h5=aDE5%O&C)Yw0-ZTQzWvGCRk+k z8rcX1SI$Cws)U@Rzw7Wii=9(w&!5rk*8Z+G>-O-4mD!P-V4vm&<{kF_ETZya8lAv8x)7Iex6;@lxrV2>HaC z*C3i&G|cX^yWPBm8mO!}xdH;T0Xh{bD}@>MWw77??fRI(0j(`B{u+Dvkbl$H$x74V zTdKZYmUIx_QjV`f5`7PQj9bkEfTlpz8*&Nrt07gGrF&%LIqC~1Q;E$~n9_-n!N}m> z^R}94BtgqbFpgg|uin2vtiXx&O_yJZUt?j}-rsWtF1wBtc^sxvE1xmgj32rBp zzZ%S%0W!!l=LXTD(2TXwtgn6yiyXa@VWCrn=16 zX&F4;V0U1Ht7c2VddaIBF8$UlV8MV+A#*lwdnGRhL+#))*ul*iQ|X)%p(E<2?QansX}z$2z z*DG1!va@XegZlo<2*H|}$qCq-3*WP`5f@?%fTjH7*E3yE*;H!^&~fu5m4y5a@p#A6 zLsz5A9QJiloMYX3l|A`%Nz5s84t`u!-SZ66GG&bCHNu}`%ctTUzc&GR5iB1_7VB}b zYyBI=<||d9s+%!w)!+xIpbB&%)5Z&H(gYZlJ;LI~;+AU#vgEdqY5k1JJ^QuhTS#5V z<2RUtQ?YEixq|=;px>M1!UX$CcFgc~aeKge3rXCfzaGRk-+?TCna_Orhq4*}#68FG z5JG+eYold(-=BZv3}d$>2{7vT91`dUtD8FmX4sIs9@j5{?+5lH^khMXP0G7rxw_{Y zqe!jFxd|-4_ngWdEoZc9oFrA1+IfdaiX>oX&gT#~?Tsqu@#67z++ay=qAnqPc|KNq z@9e;?vFDNL5c)kj08sCne~_IbUD;Y^ul<&fWeFXKEkkUht*ZQPTP6CMoupAG8y@DM zLo&@86+v732q5g0B!wBN7}^_!WorE;kxk()dXi>r5qIVP-YSuv=_selE?0*{xpKMt z*PyIhM8GuBc7u#>CK>ExAzbW%v7nhWfltB7P2Bu(gzrc;l&;Cr+R|f@CgUP)uxzBsfOsthhU$NvyJ$Q_=zDydAIaS^v#%qQS^-g0NWGPNt*tULbdAH{{HE4nOLb85Es)7m`7GY5wn z+VtEk^|$3Bd<2}lyz`y1ETy&XVT*i)0-(;vh(9bebZ0T*4{$;&7$5P2CqlOZw4}=b%Q)D-Br$v^5!WMLc~Y~~^AOZ1>d|Z$bc<*( zwDmU1_UNmO%VL@%A*>GjOdH|)PIsEg?YeLCG6|JxA;Q7ZOp*Pp$vRXZC8zr68Hxns z=l;yk?H?AWWDOkj;9peE8B^X4APHLnU$+PxBac>Z9i;=WCfg*W5rc}T*t7W%Zx5|? zR0zL}o9)sdEX*QK{)T>VsI|AGxWAO7Cn-Hh2vojhU}LN}J%3jRFwkA~b}kMzLHIznl1^!cpfk=;I(%ux0ipq8;W~OUmw&4l=O( za^6)$DrcuhC_m19{Ep$k=xNA(qf5v|<1c*O#AlRqqvD-35rKbmPd2pH+U4(YiJ%C= z#65#Jc;zz!gzz8kHLo##n@?2OkiI&hL#d*eVeN3e+TAP#99y;!m6(n&)pRu(iV~*Zm}5$Ed&EtxS!>A3-eeH88QqzcwtErh*0AC0ZAD(tNK9Qx!%1AuGx>QnTK zuK`BrmCZ}naT49%%C1r>>rSn$8eTHlAFiYTALQeY`ko2vj>uQ3zaZI{ID-`tuht8b z4l}t}$GTr@Mb}3}+dRKNz<$gT*xGw$ZG_qNsq7VA;bQYw&=)4MCcw4S%Cl0i%0zP| zk@#rFmeypgYdJ~%WceJOu;@t(Vc^J#mEb&*zBYChnVGtX2cDd7bj!d?q6J~{TIfPO zUg-&gWU#l4d28*hX7<|nKNuEhxPx*|futoj=%mh1Vv1zN>2O4x{NlMq@-Hm$Ut!dEZ{8xV@MUtj0RZY^zrc>@DJJtR8&~ue0 zXnr&Qq*1mnR5fI`VsU37su>^qdLGyX>04)M=<>&yH^6#} z2H5cj_ex)ejFdd3QrI*`_9BQvW&-kGgA zslN&hN7wlTKUO>G%?zsN{oo^FFyT5-ZA~`TYz>7oMEHpqmS6e`c4pmIXAMUbGb@nD z_GQX(sGkG?ikRD!W;+|OkA@@zLS-wy|0KICu!ZeK;;h|XsziXFE6+8QQtlp-&Y+7C0~X_X=|rr4i@ffm{gvGlL*gDZ_>FlJfr|LwsF07Xq)8Rud;>A-ZMb- z-SjE)A%6Sn%@UV2E|>dzZpE@(jhs8j!C{UWwYq;0HYzEsO}xLnz?rNB zoXh8Zb#u^6t~^A%6~S+vXBdab2ZyGJtWab3OgyZtLX2`&M7_NmoQnwh#f(6M{~uRp z8Q1jNzkNiJQebqah>{{w(ybyb9TQOLmH{$`AV`-=C^12$8wNvS0^2~+07l0KOzDBZ z==289Us~h2_QzQ{LwKW7UK*+{eK}je zK>z}z5~G{VsW}caVeePpr{5fUxup^fJFbaAA)@vG9`0GCO=dr-h^-qj3=~N*_v5)w#EbNKFog0X!9B{}he_ua4HewN zeU?PnHF`f)v`w%%N4){9iq=16vfuH;Axz&Nhh1WlJl5)1>WRpEYuNVNA2^_>Efw|k z+r2x?_RKxMQM}I`)Hd68VE$u6wGUsI{E{(S1TfsY>|p!_t%my)>R@%3 z%sIgL4(Mg;*uI)mh~@zw%>>QU<^aN1A}|NoTlx)h&7 zfIhGjh4&vV+O;&Y;GxykGBYxyG|%sEN|vE~^{iD8#Bs`*)_e!}JPvgq{gwk<3*2Qw zQ;%Ma>(7Kr`oGYd;Ur0DszzGuv0a`dYBhFj znYn8lcnWE>3ZR1cTpijnYRH1PrmJp}ZZhmCV%2(Ucsn0odu2|ymcL&!j0jWG2}2wk z^LM^(Ehfu1FT5R#4Sy%YSKTZL2g>9T9>)YXpLy}KF^6uP|H|a>9<+;yi*5ULyMN7E zA?pLw@d@GaJWpW7^y)#`HgEMrL;N^j;NeDD&DiXGYE?uaL#y5EA3eP{BY!N1sSTY zjk5y*5JP?TT#G;#6Ue-XU(Zy}(C?_;YlgLu?c7H`rUWRH@ur`iRU!^x%7rM zfDAon-PqA@na8kE@D_+K&;XTGqXQ!yJ*NB?JttzwDs}xebCp5w8{UJ+CxQB{ibiXS$5lSw6g1d_bNx^HZZQipPehQ8h z&ELvnrtn$o=t8}_y=Etl9EVBsI%C4CfShXXp!Gn%+CDB_9{d)F3LEMAxNQwH4|1Qo z=tDpiypT*5cNyXBVPEzMO4yU~;;`>0vUB||S?%LkCBuW3OoAL_0N*UAeRfeiB>7xq zdV^X?=u7QHocy3rAcBe>pO{vq^XtD3Ik3eD7o)ILv?gG#&lmdBi7HuS?>*6w*L2uU zKeE3ld}o?-!+5=8rGjj%5c(Iejt(KhBTv)(?N`!PzQ$yDR(V#)vnvVk+{0^Zb-2b_ zRVSES5w{qAz)^MC8u7I_l3WHfM+gs8cL2eff3G&~gh}xweNO=L)OgyC(bf1$PqY8L zXP+8l=nY!U18tu!+Y`C!kTwF}RB-bCxLy4!Gw0M(P|3tmoB}&z$Ngll`<fceWFKl z?{6sHf%FnXX6g+r|Bn>5a#ui zsPKhZUhg`|CkJs#lfZy*Zb4H`$6f5Sa_oL>VK5hdA}4V(Sm|>#@mv@<*FSOxsqN)C zaBw`;rXuRLe?tM?7wX&bAgG{4i`y)?cdYzKe$5fp9KwufgK_&2#Q-#S@&eyLb*1 z5>Z&aaHHVPr4G-YZ?dMmVx>ZBIu9qc5Q#X3D_uZIE?VkL6nDohq~v1tpiB&DLIQvE za@#;Zl?3q)hW7;p**+&QVs`2~m^B3cV*76WqV+h{pD$T=4NMvq1mc(zG%{!&N8;Gd z1CM$Hc<4-DF!zj4NET=-^#V$nG6 z)IP7mu>-mguX8M{Mdr`l)U}IG+18=F8~q1X$#=)76_yHm9?knu{ny-fV*H3g2hk_j z^~=?@9zU8ti?eo04`mZpg`z{4pGT{2hsE4JtKbz=7-0E3$j#k+iy9*d#N?A%RPg)< z2%7D|VtP#ksKrygo_vSDTDCNnoyMxku}SIir9YP82ia6i+cT^C z{(FvZO&?zxKh3OxKCTcWD91AzK3^5Qr~+I7V+^H;eM(bmWA?OeYDYJ*j@h}R+=|0wCKm1%}cYUMW>xyVTCxz=)g49xqqn$lxPquwa1oecCTAdaaqiFjAsy zGeyJLP3+vYUPk2gplGOVz}2%vT4l66dXW=eKn){8dBv(N+Uhrjds}lQDIQb1K93^^ zAk7tOWWRixVC}rkx(aAgSD#lk#&S+vZ1DDA*eFa(6*dWqMo^B* zI5Z&a6_A^7xAF5F36XnkLdAo3hd?6u>9+OHhxL+-2_fr{6JS{v&Tyo95$_&(I+6uziyE$t9Q}1JI>pG6a2a7i zR*#u9cY2RfcUzp6Hh1{G*7)9f=_Y7}Zn!#1)c`NV^%8xJ(nai?J7c6Pee~;s+EHno znd()AV6dLE!gqdc0jkGwFo}AJ0cM`rw;*t@dFF(H>HM{}_sl`CI(-pW3;VeOu-FqFk$K$Kg zmwJ;d@7ButGs5DgaZU#b!`t8(=I=r`hm_n2z_X<1*chDAiT;Qm30_iz#Sh#VQtx4a zwqlFDod?pVAV|s18{2`uUI2oS?L>z{#}l6LgUjHipU9)_Gj(fE9{6=L-ns2Dn+PrT zJwNxSGr*kT1P6I^b3rY#T2+{F2jIjr$UW(GSudYgUmZb0y9DSuF@vyjIc2c2>++~^5X;J$NE z^VzMpLX9{#8g9(^DE+xmx{w6Ls^DI(;Gb&tS9LL)NUpe4Iu;1ICxmW0k&IbCJ zMH5+*^yBjfeGWC2ZM%`4FKp^_?(pB3jrUae27f2Ow>G+8vV0%)T4PbQ!)-{YzUIKF zI@3M_hxMBXdcYVVIMPIM@tpUmd>Us+lKmp3w%>4;#qz+v+qM7uH-~z+1{lNxYfhhy zq}LW{SdeA@c;QBBa~Ax4^W^c6M)COl-XIts0qdbG|qJCMl>L4A2gH6g|^qi6-)pflb=<8O)tG5(a204W$B_(=ry(boCnxPb3&-~)Od_uM0HjpIal ziZ!w9Kf+!;KoOFs{i_V6<|aP(wQ#JDv!|f7tck=GrX{_k=+eL3IOh8YcXI=1jW-A# zNC#PPms*`r+>V>^EPldSq?JC^O zEo{J!-__*SiXA3suVaZjIFkA-B(jAo&6;P(dSi(vbaNrMeInYgUt>(_m!b-{Vo-A^ zmOAaN&LY3hH{TtlC{!I&5_V=26E&<K!&Z$gD2lKxs2P1w2VHJ#f1!U z)@G3YKo?pxQz1rSSf2M2UzB9>@E!@n*$<2s$9)m|6#(o-i=xgW?g4w_2YdV%AbJD^TPf0qR=D28XI@v6V?j! zP6_n(s~?*eTkOQWD0{Q%P!Z>JeEfYEWtK2_Qin(5Btr)wiXW zD>tf+`19RBQTP?32X)aXr;uQTo|BN@pE*Pp$a+A8L_72*-6G>7B8A`ko z6nbM@JUeNtqlm`g;ca;Atz)O^wUdhr7!>GtVDs=hYV>tf8QFgjI5G!w$o|;l3>kK1 zas5R#*{j1OsgJps8F1b6iUU^#fE%R56nV z>f0F#;PJ}^XIV&V0m9mq*p zPYom{3GC3^90__ky<*fqc?FktE?mT4&6-mnjG1dgxeHq9v&;rzE%ENmIus1r|QpH!ce-a_*8ewOOtL zUNpYRUqn>j!79AzJ8y?+uD7slgjlM1F8V{Lz3@=nWyIb52kj54tRtKvIMZT@U*t(V z4)+tBljTl>Dk&cDS*CFL87SFBi^LsPOnx>3jRubbyMe*1s*w+)&=aSsX`=rxB?iFj zu!jwpKfmRBc=y5Qbs&K{{@v3F$Fr^5lYJ<3bU;^j=FE6fq~!^JTsL)ql;_r(V_W(& z)u{#*@YUJQyD~4{sdsP@qrHFtwLqgh$qb=f{H2kFBzpWNRI~aUf39{pf<<`201=!2 zCm4vyOMAazl5++8zzCd6ri3p5{L<5*Q%uk^IZ>x5O<-UgB28EwqdLMrYRnci&s&iZ zV%xBbT%tRkN;k2+n5V3=<q(M)ver6E@Fr{DFAKKjb)GVd;Hl&BO_G>>C~P4-)Yx^&%?GWsBckBi-*?b~pE}yThaPnKG-f_Oxa1S| zdATS*5T=#-U3%x07qVFS=g#wvqbVC%kALk8N&h=hj-}+eDgDonbk9E$qq%OzxiQCC ztXXNA{7B@Qkc-ftD|Z5}HA-M57Ck=yB zCGO)XY?tj^z7Zww)Y4E)#JX#~{W)W==KVK8)xz;tHS;W6=VV#+}W;! zS*s`B7wvQPf?U%o=*FK*k{Ji*^=lkwpac!2zC9G77iQW%rU%LJC&$iZ`oET`FAM6S z0c_cDkwrO0-oHi$?49X^$GY#R{e9=g zq|B}_Q&@qSWTN1;%nx}o z`~4;HT0viH9q|HOo}e@$6@ZZcD&?K0qjeh30afs)-o?u!OmGheP8H<0t-jWZFuoHuJiIO5qwC-pH^cEa{ z+nlfqM|)=!F~HnU9|sLbZO^oYx$~1>xZQ-6!mBar-s{R2ZCkyCwEy}2{*ON7{=YM` z^+K$DF0A}J;mN(ql8f=J7D+vhrD}WA`3m!OBT^(a&sdB>d4mdv#wTgxOY&Biuw#=S z**%U^?jpYK!+MIzGKj}ME@HuU(5h#j>`;@<0e{-nOPkr})+&rFfP$3ve!SfXlyq%K zs?ZWaf97d%w`s%;Vc%q)rZDT-O14EfMVO*S)gj$M?Ah~nO0-13RzN#4`N@dPaDtgw zfF!4N;Nu*u9SG^kpWZbGU>FzJ0xn@h#_Z?GoIH~ktRz!r9P1zZGd~@ zil&73$g_blbEHd3m!{7%7=yRCkW|FXoRQ!^ew7rge%JK>*hlVGOvaR~9>~Eun=nDl z?D)(r1Krw~vGD6IcoXb+d!x>=wS$ME@A>`2=C}18AL|GjN^Ah0R68KGj89QOAuz1ZpAb?2!zR7s57&AjYi0?k4Z`q7yX4}sQ$M8z&1 z=9Yd-vUbb8V{WjQ^0BugRitB#4-i83IC^XH+W7PU*rC63Ke<8v^773h9d+wzUZ-m8 z_`$Nko;)=dSp6zW37ofeUiint=j-dNsL52u5yoMVtCIoFaEzK&65^nJ&`8VGDU-}){{18( z6?LupFxjP)Qud|}Plo7Wp&+0Ddr-&9^_*!j+dK9WB#k?l`Q$(?Do0om9(e7I#BB*? zuNTqH5RxBWP{DdSL{0Z1-n1~HMDcmO1m(|mhmt!2u0=MR(2vq^UL9^q*~>*X&OG0v zZL0a$K~Xe%F)5T}KwAY+HF*>jaQcMjPZum`gs5``L2PYo=!t4Q)0V7I z?LZJENVjEfJh};w%n{@N!Lk1<0ocjA6hZl~cXq_z^&x`w+<6RQVKDLPgEB8=BoRxMLx>yhG(@rgW=tf9=*pwuy z{i)YaUGnOIbbXeof92e6t)S*C)6YX7=Sa)-#T6}nlIY$R*J&UyplqxQj3j-KLKmnf zJ-=n_GKAz5sk>*>;|q9x@ORosUW=UdPSfnPUr`d)eM!f$GDnHEubMNA0!1U2?T@iG zJ7Ty}%z1X0O?>pcJ+O+HdPhBArW=BPIVkQVp0;E3u@bs6+iTtN@$yi{@I?0<897{U zW^zxcEP4Ha2%pr7SkD9AP>n_vpOw!IdM>f|_hLYm~7;&TV`yP_xjL+JT|!R`5{jlyd5E1!RRth#3UV9w8c}MTGLmf8~9)u z=w5G?XnReCJzG-^^2?({OM(dh68&Druy*o)RmiPWd9M!}>>#7PyvWPi)T;fTubnF$ z)E-?NVKnT0mBZdBRfpScO6rc2#cW=h|?pXNl*SXD(S)bpjBIkkG5O zY~S+-g#&2GFSvQ+EpXOw42S#c;WE97C<4bgmDtCjeu#P!hgper$fz_p<-F`A=>X6@ zio^;+YqewaE!EiO6d*v3EpoD2+R=g59taLRSGp4*V%dQ6YwA4jQFDrS9sh#Z{opyP z#F>{wQcT72?E{(dxyX4}vVU8rO|O)T(}@!=UVvX+ZTLjz9YU8D~zE0J$RT)I%5MPN~+-JlNvG?AsXBzn>>>f z$TmN+MFpjo>F?RiOsl0;&xr5Gw(4e9Xm$v0x%hdVA0I{5N@%3RQy9usJkAyj(zpBJ0`j950mrI3vp zpY2SA1X-Ar{-VY@w@3#I!TZSzXJVi18v04*>m|;BtHj>d+oAw?x1~H3y52dQWYYE^ z;hiIOjh{o-V4Nt0yb0HN;@6aIibzpjCyosnt4a=LiNIoo6}d=Yj!Fd=*$^8*gL$k; zH8Z1rxW|mLPED?IZ4N22Qwb)}N2J(gGuM?COwe=rbAZeNAA45+_GnvTU*5Oi#Q?|h z!+ppwK;!Ao@yb=$)`D%$;`L7<{G{u-mt9|NBAZtem9 z9s1go(1l$_k0=UrR_Vax%lD>>o>%Zq>T(u6PtMVNckR76%~T5L>-%eSEbED*z4VI> z;Zh>6ldqrSvlz9y6N5V4hZj{{c^X}W+{e(61)xIZKiz&;I7J|Qk*JsD_LfUn?C8HHc8U&;Gm+!B` zi6+N}Q;l)p%#_Bsb*4cYX?2UP{&wwySEqs>F=^1w5Wq|Q#&G?8-q0^W}yJ|y6m(~v7mO8oGL4Go;FyT2_>8>W)_leD zb<;xWxZT`{)5K)(C>mI6kA~2qw^CP7o(rRj`$6g|+d=BeO)#%YbT(O}*oE-9dhnSe z2esZWW!9293mJ-apHx(5#C+A(pBQ!Ts5I=!mh#>Y2%+?}@~YG6lK*7~$^b4NPx`v8 zH;P8vGG0vn{$t$puhCcL*uY5fxXn>Q($D#QXff7|7cWg_T;PMt)V+RTGCzrCh1*{A z=_&*Tv)m^vZJ~~}hnV6HH{AB6c{~`U=^1+k0&cC+$n?C2-c@C~4+?9z8*q#_c32QD zu4Me}tePSbPy_hQctUV8;CT+H6Ms2Urr@agb}BJ;kl6A!Vwl02Jj4j6|ZL+N6ZG3zuiK1acp>{zoCm5U5yVJ}uI|d}Z zhl!h*$X(Tv9P#REVh&V3b*<9maQ>lK8&59tFWc67NjQ&+unH+^wFb8EnOv$+O}`^M zo9Y+;nz^iAdMkSeO9A*Mz4Hux7I&& z{Bx5wb4e|%Yf53JCJwT#wG(yv$8~w0Wy9XpYUc(j5Q%Cct$T`rUyDsRNH@Pl9U-9g@1y(IR&JOnKo6blJbb_ zjGMX`*^FBKR#u z<9mT#?^v+jQ?&d-zO3a19K*WV`w-5}`ZN~>vkYzdxvL6*Pcz6)mN%iughqKW4X(a_5ZjK9{fcN?X+vRbK!rb@foqV#GC&!aosvdbv zAOxW@;E}!u5+=1sGd-r~mp+rz#RfMX^k^sF*t% zF>X8uOh1kS5KMX-azqw|q=4abE~dV(awj~L7*|S8N!JzhANEnPJB%M>GX2m#_wgFM zpjo8jfaCXCLm=qrs{yt%l#_!%aN6*g2Flgk%beu*E$GnJi)X4Qe}3BY+KtHhNsqCg zAZ`pG$QSFGXopPlRTNO~UN7EIo`{ws03io?UrhqV@HWzJh6JmQYiYktq@Ft)EPBvt zfcjk~qU(kAdQ{KcEu>z8{Ma+U_PaEKOP2>{V=7$ljQ!UFlk@y;P_VxIdO7$u4e!Vt z(3U@2DJxOm!L5+8b68Eo_P>qnQxh5Hdr@V!+!79NA(J0pjjTd7`ze@ z+`%o#aQ`Gwan|Znm1nH3&`Ql=Vz_ydTN>WRpC-bm&GVIKwP)-~t!F*J0`g-TDMt_j zM(>o2FdTip!aqDduKS?f_A>6IF-mQVce02Nd*AU*`$7D(t3%WRwmcT)epyl^p-@$5 zf!zim*6Boga-=eI=t;&%SpK|f)yd(`qp>|YJXxV%jWz7mXZ=txxVbft4h&@?DvjHN zeONzxpSOlsD)y*wOAsyRM#@G@|B}E95;WwW3DBbR;T?m6~7Jqu$a!K6e)HC2JhmWCVEb*XrrWl}bVCPRZ_uzOtuSP5wvc2^IlQ zpj%>r?9#j_m&@mUQ&C^N#x&yPAp{(`wT|)|5PuLqH@{tJ<}Xv{xGIxKtc27hkun4h zq&xI;E34)?CVTh2R7ti-J!QZU+o)ie)iam|jlWzO#ngO!C-sX|ri_OxDbHKn`XE`J zCGeBH2w5igo)@FBy|L5SRg!yEa#)|*A?$1LEJKU*BIjyMB}W$~(PV#~@lZvN!j9m{ zfClwDD#@rD2zoa>a`-TfR$qSij+$@75qRB+8lU`pc~!{a#T__`(+_&+Uky4MYYcTt zXAJncOo#KAQul*hcd88?;#S<3_GN;vJGfposedh7u`Af!lEaxZ?_i9rO5;W7`n<1%GiCA5%nqu+Y*CQ3pDpM+_X#WaMohi-*DUiE#+SY8N4%YnK}6g|$cm=N7iw=MH#o z{%`}u#&cmdALGaB9-dcWXC4+5qKRjnPPoH5$yUynh)q18`${8C&h;}aL0JK5=`Tow=saS)l~?r>BaOgt_GlBCfxZHOb|4WPL)B5-jmH0{B%L9Yay zK-7(yOg@H4omS6uQ-RbLy_49PqOmV7qZ@eRk+_mN-6`RC(3NZq4ZA(E3HkbLd?UpV z>MBAxm}Y_3G|rrol1$H)tXz4yG4F7lrj6;|E_Ylj`$H zc^oX;S4r35Hw|n|oue308B+&s2XpP?Bglh3KVTuMFDxvS(hPkvFc7f=y#q$*_oVU(lZDwwZY zf-xth2KDgIatw)@uY7Q^&#n*kTnvff@!Va3W6NrO5*Ga7D?3Wm@=o$b(LA{@PsY=@ z@$N9}`N)zqB}c^kb%aGkH)?XtoX@`M4NWysdHfEaoe^7PoT90#r3x_!Nr^Kxux_;q z5%ug&n%^IF8g=B*TDP6yFzMb?a@v2);*fq=Pg*2ec%FFTMQ5FZ2!7MMNg7D$@Pq^a z4VV&ojbapDe!XIfg#hBNkl2wwew{P+q~ihfGwi_(&;AGXjc2+Op{x;8mpgR9WJ#y5 zfQOs(6nc;6FyP7`ObTf1s|hyEXJTBQ{AQPvq2u|7FLFjeJr&;4IVD88Qr$@mFvYC5 z!V-$nAHwV4Bw;7}-N9UoC>G%u>}I_!Mnt_=zv|eXZ%fSUekHA}Iuq5RC4}@;eN{^u19NI9)OYBqRGtse z2)ZDB&$wn>zUOxd?=Y-i38QyIdeY5%tM*XptQVwoZ9RD5t-r=fsqO}*_ zfKFh(s(1&H^pq+{(fA(RVK@TK%!ADGs-$m;GpTJ4T?|J??)+uXSIONhun2^QO@)n_ z+8D;pi9USF7{-)sbC58XxmlM_zNOJnCoe@-hQ&Ah;T5E2`qQtB{K7wJ6ZU$2;QBJv zsmJtmt{;a?Z!y-V*W@U#2@t}?sU~dl5BY3}HIcIrH^xRdLjnp-Hax1n{Y^b-O87F4 zyteV?OqnsxuS3olYC2U(oo=9J5syja*dGs8rv z^U0yOAAYv#!}fiTnSal~RN8-Thd)u47YTn)qb%&QTTgwtW|z%sh8B5KC&wGD1De=P zC}ny=_Y7@xAtv#YtC^mG3R>t3YZsd`sES5VH%q%rcGY>6>^G%pcZ|R)Izn5*Yhz-~|+zgrY%7_YZHaHRO2n6qMPC4^p;0{qE>mlZg z^pFcnNm!==mUM|am{>>6y`i6>zq{y4)L$e=Kw zmjbeeDN$NYz4E=V3*>KpjV70vYK3keLDBaC2Q`jjuIj>)od zWjp~^A7$Gy3fp3H4e;sS9+26ZB-m4~Xg053Cc{a`r6vwlmt+$xg?r56dbQ(^$7oo^ zL*D>C1s4e%d&uFETZ@xQHt0hVti}iXQsV)`)4_Mt2l?T3`AUjo%PdWV$UB-lg+cMk z69RXotleMB0`RZswntz%TlcaG%z2u8OW>8o_)oPI`x*P(WQjsi4Y^t9BsuqNc_J75 zRsfyQVSDKbL;W|(sIrq~{dFh(nEi(q`#%g$dxjka5~_>>QA&0F^?PFul`@YFJA`p> z`v(=-X>1oC-ACZYO}_eg`xM9n#1KChFnEa)l4&n_m89CFvHfqP-2c4@{1=|TgLCH| z7CaLM1UhCB_t*UuXZ_<$N}DY~KNe_4aMK1UMk(JfCd>{X{v9;=7#XpEOPxwjS3a-Q z0n?n+RcV%+?zxA#lTSytN59aj(7elP=L-~*EMF?ytgkXU@MbSvC$q?ZEuX6}xc$c< z!V;d?-Cectenf;g+BFk$kMFzN?&}*bzoZIUOIf$$uwg4780L=h58Dnu2Xs4@@l@=L z$>00tsybrtXdz`U6$0v!t!Y2hmn<6Fa0+GUume1jO&b_}rEt|0Na?xrFg}#l^G_R| zJLX-SF0y-%di1_sMA+^VTi1%746q{uC=DGhX~12AcKvoeNF@qB$D?D2*C&qI?aQ=p zN01yqxWWcaA3D>^{`|bU5(vs~%#`*m=*D9WSX$&$Y0|Y;#<`+qmgR}(KK?^ctNWu$ zc!@s~N}h3hzcd)mZ+`Ln1EL0-#&J*wGk{I4tqIm{0`x_b^(Y6iS)U6I>YI~DBUP~s zuG~W&U#c`Td_Oxqp(Z};n14Yub(V)Y;j_26Pi1lHPo|Biid(>=Kjq*&YF=PT44-;N zR`DGQtrY>+u|MzacPpXO%#oloL2Uo$(x^w(l;9ia6J3JEE4F-sxn_FMJC6*7Q!*i*}RL+GLlP@hY z4N~5Ymxkr3?Z!o%q@Z$o78mXOuGSdYCQ+!@@J$LfPgQEC*6(4LxtG~m@}ypBPyEv$ zH?jPO#GI;WvXG&rG^g@msZw!m;!}qQaNOE*9Ka6tH)e*HP~FD-|gPzAI1R^tx1i#pdl#m8D}!UgYwkZamG=Ij3C z+0ElYH`d?@`rkzE{zRh1LujLc^F)r|2rGu|nzI>HoA}BD%lA*w1U?+Qrq-QCmoUTW@w4; zpI|xR*=i-17Mu=y&&VxD@gSd@3e{!#8;&QxeLOBL-G-BFVUIT4I3nJ1Gfr+e(OB(d zwCR4_SpPcP_K=iaSKboH2LA^b{{N;nVWzp}s}^$>XXgFZ=Ph&|s65cH=UB1bcp+il zZ(;EOTyaFUtup0%R!-A{$p4^F^3p2!F>bfv^PI8#T7A^JpwV*`7u9#AY+MTmEpykx z^n$e`N+C*r4D!w4Tgsl}lb^6vKK-5xuAQl#C`-SwklkVDh>?9u9!riY?wTMHXp+F~ zi9K8})d@C=*loGK4tOEtUv6Nm$>J)56;t&YO@yB5wEUUZ|dNAattha0mDghG_(pv7tv^cCa0LL)H0D2DxdG3OONx)x66+P`5!v0@ag z8+9QBeRtA3c{*v%UG5Ab09jop?w@YtCFWm8?CU+`+4WJcxa^9}U?lPE1^af&H`WaW zTn41Hd)!I&sPWAR7-;x+cqCyMdErz(w#J?se=nDYJ%DBw_R9yufg)qvLXh2j?|vmQ zdJLBzd{OG}#2Td9E{l0@Yu#GsiAQg)^Xb&uhxr0pjY-8p`InPA<7-lw5o* zMNn<6wtI3TZuVx`HI$DjjrAfwo#tv)I^@}dr`B5q){Tr!)HF=6WEVV`DjK zYP6xzUL^gS@=p-BshJIk&yKyHq=nn;)zUZ_fDeEIP?tvt#d+Xmk1%q=cV2UA6nP&i z#D6Z%KO@QE5rn`qhire0n-UB$BrCGvGd1wev}&~JNyE0*6x@|@0|C?w=wfufUs%7r zU9w$d;6XpQgLH;#o!y<>j1QrWx1P{__*&Dn0zS*IDuuCb>9c&2-7@g_9n*BKLHm;Y zD$m~!e12a0excZUZLmDwkl6WrXoX9P`{^fqDpt!|N9 z)R8w-j<>p}q$7H{F_QpCxuBs$ZQa9&*K@y1XwS1PWc4#3(mC|yz@69AU5`D%KCHp| zg7yxbT)G&FAb4HKU%O(1m*cA4`sMc!?G9Y~#whkEe-lbP$K!{liJX3N?$_yFuH_9x zO2r?K%pe6m>T(T8soL&{#nhAYitWFRrtD=0web74!_TayoN-X(F!L-`^oEXqrwF%ZvUlJT)S92CR+l7Ij&*aUq<9imbAP7^mX|;g>!wo9+E_S z8sQfwaxd)1>w=Nlckvuu?eh=4*$?xGswF-{2G8Zt^$OK5W{}H(SVZyW;dE4&)41QI ztdyDJ)ZaJbsrx1i&`+huMiW~}5ICe=!{>CnBh*{33vYq>VV#X}5I7XKpGJvfo6F2-? zJ?wsGDA_+-@2H_H4i9#GsGvV}^C#q?DZ@E=g`hA^#Qyw{(3+_k*=O=_tt@X2sYL;%_iy_#hNc`7dK zRfQUJVJ3C7sLsf=^A(n;tP8MNI4+C)7lLGzV}fJ6x2F!>!KN~bCn6@OhA2*8+pjuIu7t{_<2)KzXiLWij35zO^q^ZIHKUsiZ3SG zLMa=?l-j_4BSe30`04X(5!{Lhig$u*dsPX7OGk1aJg;?qeSax%TVL-(x5`$LFh2a_ zW!~1&weYB{5Jr3bX!~W*^`n*ojU^L5OG2GB*u5HK+q=W_8Zwjw*bbTN4(;2!lab71 z3;C;0Dj)&fp+0eeqmw>J_8^k|-Pc0Hx!TGX{~Ux<3no+{1FWkWiy=YFp~>3C8S2RQ zu;>3V8<(aGM9;oeNLS8F%~SpiFWm^QTX6U8Qkt8qhXwpe^vUEhGci+%{lOX2#u;`6 zz&4dMHR1zbW&)I%F#RI7HY(6u>aGfKSk$-XZ!^;k`ORltcMpW}JrW}nCOs!utQ@s) zFUWz<*ayu#aI1DM)Bvdrf;2^0OWU50whdWOUrDK2(R;+%J?(_lRvf*O~m!6l!u zpq>#-cM<>Xt^Touv@VMGY#i{*FA62%R`1}xFQHZ_CCt z8gk7D=}nKqFrwP6gqwa**aXTLVjlR165v7ajr`wFA4=6eZ%(frtWOF(Up!CC$O;t2 zoT}i<@|DiG&fI0Oyi0#O)qpT%;KN(M;sb$?1D2nq!D`fip9%Y|yzRt_f)!5H@+bcb zjrl}%2V+4BGlNnSh@l5!?0RF}GSOXWkDXsE+ghZ#3EW&;Su>}sB{gPduog$E=5vV5 zbYe{s#P}Z%3J+JjNc{q?R%5oo2<$&l_8$+wnGrN;Bq?>O3b|PY1+ET zr`oUHZ`^kiGpT~MVJ2aH1M+;If|2TUPYpWxc*fu3KD-rA$)J^j{Xv7ih(R*%4Jp%zO6-fuFjG)TEC%OnW98)7DQf%^cu_Mn}xJ1}PG+&W8H zqgz2jLL&AHUluTpz@uvWE)7_t_Z1o_XdINJ9nG7I`oIc>z=|_HU$f@tGvoZQl1U-s zfTa&Yp)g|NtF@vGapqg`8j)qMD_x0uGD-Lh7bT&BD+@2CoG|N7P~yXx<(S5cgYUsF z2{q?@xZ@DcIQb%mdQs3g2nb%8cIoG$H-6M(SnU}2unIH|up}1doQU$ac|B6(tAV_O zJLEa6woF!AWzf~)U*}Y86BFEeIiooCXzudnx*K;L6}MR(XCj8xG-9rk<+ZoWa4T%2 zzvPoevRaUJBB}10G+FgY*`&s3-X6X_lw~lbbTd4T5k58x@0wjgFSVncl^)7^-<5+A z=L)(e4@KhY8ieZ_$W7);O+GkQ2d=J<3%`h0qxj>-*gy$0eJT`8G#%Wq0BKT8J90zY zd5&4px2`t&IL5Gu#w(+ehv|0692bzLB*)?zvCECs>~;xMq4rTTJ&~|Jz5`;6>GIQL z0nR6W8Dg>A{Tjx62gBF5qw3np>44D*j&yPu$c=nCaUd4b{v#Gr`?7_IFBsJ=YOeIZ z;+(&ztsIi!yvYlx?SDI~0#Q{a`?SDn7v2TL5yh$TVM{=61(D3@-WI<8SBW%r3XM$m zsX|?DI<9k{8H6O-5fO@YW=+IAjxmiSR9}k`YGQ{ZH<)Y@;l;xd_`rizadDt-%(@< zPNXAOcwlzZJySa~3fivM6yyG`Z1LoO()}x~iP#_K^0n9sppghU*8M>IXcQ z4P91`XRaJi27bkX2MhWIk2#@doTM`!X+M&xEB4y9+SO#f4b&2}SQX?%2UeaWqTDvV zxD6xL?UC!ed;*`6Oa?s^IEDH;VbXorMoQ1j-0O&HBa84ym)=ksc`r7ejkI%~X~Dh+P4H({tCnqK1N+1E?q3@q@rg5jjtRmW z1TT?1UsUpCxhLK~psKI6Tu9LnXf_XgKnENNM+#zuA^pyW2Yjt}Q>`b%I5Gb-gNhfy zF9R&UxCsO<*@&YyvmhH;(|^A^o^ecvt{j1uZKc^UGvBdF6mVV;4VXbBX82qEFge#^ zBRAQNxymWy9r#=E!DAK3hN(P25^Rnl+0Tp4(6ZA?U-8*;P4bix}8!p77&D{&UpJ}%M7X^Z#goG;}xJd8I1%}_kY%;tp`I64D*PXmN$UO4nzL$~G`(C0+)S8UN znxq|b73zx>(oNmoTC39*oM~S=ipWmNn+Y1QM+_ubj z-*+GFeZOHyq0IkjcB9fhJ9p30y8>raw-54XWU{8Dpfu+(#yYGVfq#7rq*;V7+4x#A ztj1`71O;Ssc$p%paWErE36!9+?Sw*l#j%?ulEW^EyVD!R@TW@C=n#=`b0 z3&v}U>ONz@vV-jCc|fU^%sJUT65&pbHw2NlVkDgxaP{kr%=Ea#jUr+IUB_Zo2PM9d zE&kNeQgmCraSBpyC*=Dh*gcbbvk&c;x7pJWA1e9jG=mD5-!Fb2UiR?eRZL0syQg|! z+;v~j!}<~+`EZjLpU&E9ld|1~#?(QZm*yno!(uwg!0n7W0||U9H@OSPpM1Q$(rJYO zA_saa_K&py0UinqK-3Qg0y`)Jl^e-?O2^#xeE5Yogh?^_kXo;-TCYcI2Mp<{*vIdM z(9aL)2ty2oU4}(Gx&agjtVUtOckatL{vga>VYHQhNNL&q@CPRmQB{6Xn3b3)1m9d| zQz{-^ykpl>*gSiqgu5{Yg8u|vf)$*NlfQDV54j?UTp@#i<}mq}9;i{m^_cGbsgnP3 zpKz53rF);AO$cMrE5aCeIv^5xi{iz%rwd6?+Er*pV76dD_83qPctSzyygrkXv2r}q z9VpOAuD&MVH2gZI1R|wt@r>k$F+Z7pMs|Dn)MB?5#1HoD$YV0%g3le`!95 zNmw+eKV7&D{*9)oU})rv=!uI-Zl+%2#i5D{$u4GpFH8l3PjB8F1}d+T(fSco{YbBP z-O?-yvx$Ntxhvw_m1%_NwwP*Tkr1&+;4a#8|4(Jm_E1Na=$yYitBF@Y^eT|lH!Cy( z>4(Kv4x{Kn6uNoFj?Ec2&J2pzViD?r;r#orP6XKa7)LEi&Is9*ccaOp=zekZA;er* z&>YovjJN8#-OvYd5pQsz)h}cj_`aJog4TDRxMLyh*cz8#{V%@{&(vxIf!_4HNWhxQ z+rxqpZri<{kDP*qsU2Nx%h4XnT-D3`E;7Sm0`;=+3JJAkF8_Wq=~L?0%m7X&mnNQ_ z(ZmlT#s*31q+WFwI*@Trp+Fjp22>Sdq-soUIT&Kbyo^A!#9b z;jC`Ik~l4;Wr^2JUgnlGQ*$&na!|YwZnp3ljO6gT#9p!oTjnnMe1A5IcjF`M4xqsD z81GGi&jRU|>XHW-BL*eH>7$@yE=wmAsSaB#n-SN{qEt8Li5xPw9_r7F+u_v&uWi@1 zMr=Y}R_6iCd#xx7{Q5#lS9@?pjyWxr@#@pIZQND88(I&!1d6A5v3oB#T~tn8c6U&w zy3wo1cFT)#6*uiKpN;zudvTY_I#ynsmY?WnaM087oNoOLw;l;tghCP87bAI_Ka-vRh{i}fGF{vU7uYXSdtf&a#Ue;4Ba?;!NwAo$-b@ZU7}Z=m&` z%=^Dz|62$Aw-EaOr4lsV!`(!3DS2!kAJ^%Mut@bWY|xl(*HsHaxvI9#zul%cOx>Ph z{-?efj52APAH%{emAcY8bvjEH&#HuJc^-DJcVP4SiY3?zE?wJG)V*e_43&Om;=bVe zN!D**rMlSWh2acYmF9gIp#f8wu&&Nmimg77FgEbw1{N(6Qhdjv#bMOzxWmCMM__S3 z4l1nIq|F&+R$2^tA8`FWnr@Gl{zRE|&^0|EDA#g0xglK|RS{&;c=&Lh=P@(?`vGzY zQTMeel`*AjgNKv#c{!M@sc6DoM6yf9xU5XBC!Gk~E0JBrT_^f**D#zx%nH?)OF;nJ zjx(3^=qpv+6%9@cHAAIgZ=WtZz3d5{_(c4IY+Os_=2=`iXMQn&P}jO@*M%?4IgZ3Q z_1eW?0{v<-e{`gD3}*~RKXBhvq(a)>rPxA2 z>&p+eaJ^?LdF2GcQ>7=vTO}67WwAdEFr(XzM`T>8`+YjtbkY4>j9Ao&960RP{Ym#f zDTNla43f~;UH=G0h*OO@##KiikrZ7rjVuyOU@o?Gr2CI9{H#QqU#(?Tm%=K2CD65rzJi}5%c2JvNxmU*xp5mRHf3b)sm+02SDN2Ll-t7Sd@{#? zXiunPk;-T8s6?;1dw3q7q=?CikyUK2PF^iJp6TC7talrkX@5>9-Ar4vx(L}sKT{pB zu~wCK5}TZnS@al~sdEjviW%tRE?{dbrz7D(l_N} z|M;6bsVR7>Q9UmfPXDQ&<>ZY8npc_NTt_P0Ok90cq)(7OqFpw<-j*EymecGo?A14W zH?UJx#G9?1870?Cs5}rW(gpVyRoJc0e>fSoWmi`e&A9U#?7T4^>QDL?gS*vbQ&?S; zQMHYpI0Ax4B2oiJC&j8ZdCc4x0JynPwg^x6p{~V3_AFqNz8HW;tK8%P0%McnT*jCJ zlBPfr0~+s38W_?D+J#;Zbk?X$MnvWla;}*|IskSSpa3G-VieKh3vVHp0X!=?5Iq~{ zqXE#y6&+0gzmj>$2Jt*)lSjmivU%3;3xLr?%=b+mypiO?O+(V${>8s`(7gAVuj^>i z#5s+~CmWm+PCsTC!2|foCg^FCWB4@+4^#*O=$vEQ`vJ(T1nNQKv4QO;0)Fvlly36C z;V}#w@Tlv9T|50la2aJ?*=31BDz1 z1z8@KwPA)K8DZ^Dt7ElJeqiuWa~!MX4M!u}f-;EkWO#hItVrFyssgt?a8bHdypvo*CE%7a4y8Kz? zB=67G47t-k@y!r|2E{o25biRB0st&Qu4TzvVZ#pX8diTzy7`7mbkluORw!>~y?c5z z)@?L?Z1VVRox85O!gCh`+Mg^tG5k05TMUHfZn#*=w(Nf1h}rbzx;iu(grsMzbn9Mq zB)8>pXz4@SCV$;6Y-y>BNoVm8J-fR|09djA@NE(OW-_1=GfOYK49D=G7Zcl2V(Sb# z0J~XN$iKk?C=+`@(KZc&P&n{Y~>JM1YpX_|<}^q@slJvy~hg6@@8-S>G<( zS>J-0!IeVnBMvjJTR)Ot84Mx~9^ssvIQYo3*zH!)4Dh9hJ88{<)~{7N)wGx5%Kka+)n4WYxcxDS$X% zh!_BLEt{Ig4h_mk#{y9*UTRkIH!a_+)nVD20iWcqw6oJ;?QY4iiCJJv=KSFu;$GG< z1#%k-Tz&QCdh#pyJ}y%aVB&jQu5;NYclFd)yB!b0pI^-x0}jjj;1fl}s(3&=@)YEt zC#57ZC7vCF%wa~uhi;kQFm*rPx)$Eh8spcw@zz9Mil-iWk?mwZajsm?H#}_VV7y6^ z!ZF$jL6_d*2&;JkCo|_WoQM3S15FR9dDdTP3-7nT5NY zUWs`^l&N3l-=yufcyHRxwY73dZaV9Pa*l10-#8y6fMXOce(VRAHFzR7-fG+>e)TO2 zU4KRG#Q%!Wtz(hhIJm$mC9IG2Id4^Tb5WLo;o@gZzf9ic#i8e8N%*MG(soFpOj5k( zse#;;ncj}!qeN$$j5Ugri9H98ib!L*AP#B_LXn30YgF@~jw!J(1U<26r5aCz!Aalh zL3cTvLn1wzWcQ6JwJ5aq*lwb{^bJFN>dA<`L91cBr;_5L>q2@nvY8+>hf;kQpfEw5 z2V^T)(cNMCT93E=l-ZmD(BCl?^rQ-zr_x$7C-s}V&`*@CoIvqF^f5%AE~4+qtvyEs z_IEAj?@ifh2T;1==uKVjoH&WV1BmHw+!$}R1T3g3cze}o{VWi;$^05C{DQjoQLf56 z!jS7Y4xUURkV#4Ien1GNZ?W2!_NwSegV(aJ>=lSbV@pm_PeJ@!$pFJZ+~SvgGdF88 zQ9Ex%-VRx;*gY_~9U(Zh=czhCEO^ra0fadU;QSR#YzHw%`=ERc*(Vp$3G?Ym-j3`i zhC3bwV?xaZU;9^bcKu8cJYv6NXp2uk0OFhta-;fEW0E)Phuh{46i9V^dz5Lfl)3G6 zFd)kylZYIWFHbOp+I$D_-DeKHtA0C__z-{9!#Dp{$}Lv6$v|06iaODI&ZP*s*XKr(5%}bPga2DZ3?KlZkJK*$36AVSm~ly}T-)uo zyc@*}Waa}RW^CikHDmo93?D7Q^2s9wK+>|PW!$E$h*8P{c?8iIkN6#11agct)G1wk z$^rp6`7$|^(~GP<-L$GLGx<0XA^-c<_#d5KFlQ&?o2b`YAECIFN*1eCqT;}N3_CWPncbJ{MJAOeqG>+yGfDIag(Qmxlbtk`>B9Ixx?X1>aeAu?hz z)uoq$2LVY4#STsYcwjgk45%8S(plAj973m=IX)BV1~*G+bf=ZxJ$l_)=-%_3mS;J8 zMZZ&mb5}@=djoBPh#tYq9ynczO+Y|nQ91-wo{qQ9R!q%dJ&5n@qyA8Nn{%%+O)^PC4xR7JPmVxzniB;pgnUg}O4TMZO}` zCJnFap$n~uus&XPNqiwc=55$GvX^Upb}`h25f5R;=UP}t8^N25M(clntNUFZ8ym3l zI=W`%nNwZ#_K``-B-BNN{uSUs+x73*uozFcQ<<#9Gh#D*4I5SG={!QiSA11V{5v*) zs#+ZQ@X}OeOc*v6&PTJ87ASYQbS-mm`v%OU?IQQ?W|KEhXi~KrVR72m+L>YB%-xds zaH4kA>-J<63EEgB2l1HG!ZPE*Q~QM7`eUcAG5q0o%Bi@N#_*^`b6gB28HOT0DmZ#t8GQy0Y2nV zRlPDsAdMv{y)$7?07|wq8Q+bm)hF7#buZs>ahZ5rR-pP7AlA$m) z9WC&V@`6WWWQoDp&dLcyz)SKWh*AgbC?M?8Cp?jUulhW#+TG0Q^yF#;d~=JItTB=^ z6s|N|%x`p%^bL!2&nnqEXeEZtpQx>L0lltJR>{aD&i_o+wK3#`LiPyG?!()?6PhULgh!rH!|+tTXV%9{%nphz2w zqN0&q>1Sr86y}GAvj%F4R+wYNvteI5J=SLQ?k+qQKX;aXE39_rdt?33?pojB26JIh zjdY;!(%L=AlY+Bri$A5ScVn8KEQ5x2$nnvxY}~sW6ASMS75g5@Q|gV`!<+3dg!Te^*5TsORQigF!9{%fuL{H zBkp2_o@+Zd0XMPcf)=;&o^^AgujgF^02^Oo`}#q zRfj{tfR{g(?b!Zpe9`+9e1La*9X{IFfvQd^P$kwwto zrUq^*AS|3d8Fuo)y%)XlS4wy9bd+~QceK}aY|*P*GMZ%M{<}azN_zEvypN#)WC2Pq zBwJaPv{wg6NJqojYus1Wut(oE~QL}24 z8dj!d3i^JBz@-Z}F1VUj<-NJ^arpUlw|NSYse+uH4`sg9bAI`&!$5CG`F?qa^G}aMCOgz`9}o^y&Lk^H&&=?&D96$?Z{qJzwPVjz zyV$1g_)&8eCu=mdd? z8g@Pse^C;-gsHxpJ*e827eVhxPI*GKzZ5N)c`G9ts*_2j@Cb@x;Y9HSNAOJ6%2k7M>s@JsipqxkBp7bx~MSi0zn+# z5A49gb+zZ`x_0>Auc*pU4ez(obn4JL;Ivjd@<>iZJt{PI{YOXR;+##bF8ek(T0F%IyQ-t+_0&4F=t%yL=Hz$6UfoT> zJLD70-|2cG13jnC&#QW018D&w1C0Qs@CBN}nUa|+-(=Qa>@3fA{iUw_@)yp~>AjJh zw4u{#FQ%;^;EIw*)*ELYj4)nK#95J*c3z-#i5WRXw};f>`E-isPgLHdl75P2zE&Ug z&HRfM@XAz!d&wfsh<$D$X?yPJGLKH%xc4FLXUD0U(zuqYJ>~7_=uomp{@o6oG|d

7A=%m_1pNTL|>n{}tNR0hH7Feb|Wl;Ew z`wYS)ioLkdRY7E`2D*KZ;Lu-y)^2m^7_FgR7W41T9cnT+%bT1ll8I~s6}&;Wb~ zxhcci65zu=M2?`GEy=!RJtEk(MgLA4(Ie|EM0V}2`V|$2lHU87Dhs)tOVFA_RmJqi z-`*)8<;WlucvEBE!P}$U2A3^og-HzKw$CaZQVGmxCDan;?bKSeMZb>fjN0-v1MXoB zH3Eu5pUL;q__ptORp~i%CgSw@sdrmrE&&|D!A0agAH{3ilZHXnpJqXzn z;R1zvK+5@CB(;9dWADCQsbL|So;xg?ykF}@=#YH!Z^(@O<=3j&xq^=Pu=r}*n1bke z55KPo*!k9C?Hnlkglfz@a#EhF|5IP_mZDQs z$hXtc26YKsd9zI=%>LbHr0Oihop0Q;J*Jv)c`z@nIP`$tZN<8&pZ)Uq8_5@5-YOn> zaXoGWVIFxl1Q}e``LkI^qG85?*zBw-kagNmbuaU5aY1$cty^XDkv2zUXglFeP?*}o zbG2Ph_M>$)wFav8_+725l!~y8F*fq7zLDTkFIFG@`o?_Ggl57-%2cL%<#}BylLv}b ze{Xo|8{XtJfSRg^xx>L}Y3kYR(%T4i!im z#ed$WO=!5d^m6+GO}?tO_M1a_TB2C2HtTobc}xJ0O^?4;qyo+s{lt z_|WUot#_Fdy?@l4m(a>H<=MThTx_d+S{a^Z`8fi)26KLHGq91Z<)Otgc6tL-fPLj* zLDjCyZB6drH$%>?B_pmoX%mud9~eI_*W3=G8~;VNNv=fn3slj^-B#SEZJkw7t)ORO z`xbss@5%0l!??#(gucVhp>)1)W$-YI5jxFfx*jouuxW=qiv?9-w+|G$#Y04+%r|@>qa-ULqfEL&=L2+ts8(jyLpMQXS>5y z--!q#tYeG~2NFZYM%LzX!CxNxUwjfa{5Lz(Lr;v_>8esKqx8Mas(5gt@5H=@%lh#! zK~o#n1*IE5d@SJ4z!UBL6^)BNjDpLHf@yy%gNDA3Wqn{q2>WgHBJsQ)65gF186W;3T?uS$2jhh{k&!YV*63fiQErwtG=#1;w!Kw*`u90_hfCkcj{>x zz6&2VW%+qA-#b!p-m6?~W6X){7Tvu2dEO6P0}^y=cKI)MM_35_Wk6p2b+JzxY#|gy zO2c+zhOV@2v2^+=xNZse(CH(NQ4>^?@uV#=LBvjDLF4bE7EJ!(BHW zdMNo1Mr}&v9~kP5_G1x+y{Gr8-Ax0Q2P-|7U+w(zy+YuQQgOngj6)OZJKm9Iv|%^y z|BNqv_-^f;6sdOpmi)Od{ud(M4}HIV)sy35uGZ(aZB0O{+>$@X=i=|%S1#_`SGY@e zhW+K#AwxfJMV!_r{|jZ7ILt2R%bh6pX(YmIW zS1WFO;!BW^i`Q=xbm~a;il0!n5gjVD6jjnZzw*s3u{AN=kdZL=?qOPtHjVmnR~W-> z*IsBqQoZ5MN6v}kHjudrC2Z#pBoCLPmJd`K1siNcJusasty0)>oS5 zf&v~*82#$>j(P3#TwJa2$wF?vJztN2Ms)i6(0ER%L|MI?MAzEe_da?dlskj>v^^xrf>~lew0rJbH8=R~om+hKN@=7?dQs9u(c}3?m&aFi;SN5* zcb?=pe=b|0qTJuzkn^4D4?aY5EM(aV3pAcKa0!uw9!}m~Z)+Ik{q>1e49&B(V26PC zJ7g_{-*DLpdtl#1+f-M2kw42JO^sy{mQ@UiOacFlvJpM>Q3@Ma23Zwn>u}3JEUVhM zblXf;<|k>klxwN6uIf_uy}YBdP3kl+bI7xMLsKTb4RAi@E_DU=0%7&C3dx+%4n9BJ zQ@QWE*z+sIc*HGXKJ1`p>%B`~gj`9$QSrwOF(�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%0D+|Yg!Br!D4w8-~jd22j#J8&5goawZ=WrJQ01L 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%0A0`9r%HeR%gk>+h#KT^X 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

o5 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

$c0!!HN=bR=$u{^Jp0�|8+IT8b;@-MeXC*6+3 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 literal 0 HcmV?d00001 diff --git a/blogs/deepspeed-fastgen/README.md b/blogs/deepspeed-fastgen/README.md index c309a9def53f..4217e5d4a996 100644 --- a/blogs/deepspeed-fastgen/README.md +++ b/blogs/deepspeed-fastgen/README.md @@ -23,11 +23,11 @@ Large language models (LLMs) like GPT-4 and LLaMA have emerged as a dominant workload in serving a wide range of applications infused with AI at every level. From general chat models to document summarization, and from autonomous driving to copilots at every layer of the software stack, the demand to deploy and serve these models at scale has skyrocketed. While frameworks like DeepSpeed, PyTorch, and several others can regularly achieve good hardware utilization during LLM training, the interactive nature of these applications and the poor arithmetic intensity of tasks like open-ended text generation have become the bottleneck for inference throughput in existing systems. -To this end, frameworks like [vLLM](https://arxiv.org/pdf/2309.06180.pdf) powered by PagedAttention and research systems like [Orca](https://www.usenix.org/system/files/osdi22-yu.pdf) have significantly improved the performance of inference for LLMs. However, these systems still struggle to provide consistent quality of service, particularly for workloads with longer prompts. These long prompt workloads are becoming increasingly important as more and more models, like [MPT-StoryWriter](https://www.mosaicml.com/blog/mpt-7b), and systems, such as [DeepSpeed Ulysses](https://github.com/microsoft/DeepSpeed/tree/master/blogs/deepspeed-ulysses), support context windows stretching to tens of thousands of tokens. To better understand the problem space, we provide detailed examples of how text generation works for LLMs in two distinct phases called prompt processing and generation. When systems treat them as distinct phases, generation will be preempted by prompt processing that risks breaking the service level agreements (SLAs). +To this end, frameworks like [vLLM](https://arxiv.org/pdf/2309.06180.pdf) powered by PagedAttention and research systems like [Orca](https://www.usenix.org/system/files/osdi22-yu.pdf) have significantly improved the performance of inference for LLMs. However, these systems still struggle to provide consistent quality of service, particularly for workloads with longer prompts. These long prompt workloads are becoming increasingly important as more and more models, like [MPT-StoryWriter](https://www.mosaicml.com/blog/mpt-7b), and systems, such as [DeepSpeed Ulysses](https://github.com/deepspeedai/DeepSpeed/tree/master/blogs/deepspeed-ulysses), support context windows stretching to tens of thousands of tokens. To better understand the problem space, we provide detailed examples of how text generation works for LLMs in two distinct phases called prompt processing and generation. When systems treat them as distinct phases, generation will be preempted by prompt processing that risks breaking the service level agreements (SLAs). Today, we are glad to present DeepSpeed-FastGen, a system that overcomes these limitations by leveraging the proposed Dynamic SplitFuse technique and offers up to 2.3x higher effective throughput compared to state-of-the-art systems like vLLM. DeepSpeed-FastGen leverages the combination of DeepSpeed-MII and DeepSpeed-Inference to provide an easy-to-use serving system. -**Quick Start:** Trying DeepSpeed-FastGen is as simple as installing the latest [DeepSpeed-MII](https://github.com/microsoft/DeepSpeed-MII) release: +**Quick Start:** Trying DeepSpeed-FastGen is as simple as installing the latest [DeepSpeed-MII](https://github.com/deepspeedai/DeepSpeed-MII) release: ```bash pip install deepspeed-mii @@ -209,7 +209,7 @@ In addition to the deep analysis on A100, we provide additional benchmarking res ## 5. DeepSpeed-FastGen: Implementation and Usage -DeepSpeed-FastGen is the synergistic composition of [DeepSpeed-MII](https://github.com/microsoft/DeepSpeed-MII) and [DeepSpeed-Inference](https://github.com/microsoft/DeepSpeed) as illustrated in the figure below. Together, both of these software packages provide various components of the system including the frontend APIs, the host and device infrastructure to schedule batches using Dynamic SplitFuse, optimized kernel implementations, and the tools to construct new model implementations. +DeepSpeed-FastGen is the synergistic composition of [DeepSpeed-MII](https://github.com/deepspeedai/DeepSpeed-MII) and [DeepSpeed-Inference](https://github.com/deepspeedai/DeepSpeed) as illustrated in the figure below. Together, both of these software packages provide various components of the system including the frontend APIs, the host and device infrastructure to schedule batches using Dynamic SplitFuse, optimized kernel implementations, and the tools to construct new model implementations.

@@ -219,7 +219,7 @@ DeepSpeed-FastGen is the synergistic composition of [DeepSpeed-MII](https://gith The fastest way to get started with our alpha release of DeepSpeed-FastGen is: `pip install deepspeed-mii`. -Please follow our [Getting Started](https://github.com/microsoft/deepspeed-mii#getting-started-with-mii) guide for more details. For usage and reporting issues, please use the [DeepSpeed-MII Github repository](https://github.com/microsoft/DeepSpeed-MII). +Please follow our [Getting Started](https://github.com/deepspeedai/deepspeed-mii#getting-started-with-mii) guide for more details. For usage and reporting issues, please use the [DeepSpeed-MII Github repository](https://github.com/deepspeedai/DeepSpeed-MII). ### A. Supported Models @@ -228,13 +228,20 @@ We currently support the following model architectures in this alpha release of * [LLaMA](https://huggingface.co/models?other=llama) and [LLaMA-2](https://huggingface.co/models?other=llama-2) * [Mistral](https://huggingface.co/models?other=mistral) * [OPT](https://huggingface.co/models?other=opt) +* [Falcon](https://huggingface.co/models?other=falcon) +* [Mixtral](https://huggingface.co/models?other=mixtral) +* [Phi-2](https://huggingface.co/models?other=phi-msft) +* [Phi-3](https://huggingface.co/models?other=phi3) +* [Qwen](https://huggingface.co/models?other=qwen) +* [Qwen2](https://huggingface.co/models?other=qwen2) +* [Qwen2-MoE](https://huggingface.co/models?other=qwen2_moe) All current models leverage [HuggingFace](https://github.com/huggingface) APIs in our backend to provide both the model weights and the model's corresponding tokenizer. -We plan to add additional models in the coming weeks and months after the initial release. If there are specific model architectures you would like supported, please [file an issue](https://github.com/microsoft/DeepSpeed-MII/issues) and let us know. +We plan to add additional models in the coming weeks and months after the initial release. If there are specific model architectures you would like supported, please [file an issue](https://github.com/deepspeedai/DeepSpeed-MII/issues) and let us know. ### B. Deployment options -All of the examples below are runnable in [DeepSpeedExamples](https://github.com/microsoft/DeepSpeedExamples/tree/master/inference/mii). Once installed you have two options for deployment: an interactive non-persistent pipeline or a persistent serving deployment: +All of the examples below are runnable in [DeepSpeedExamples](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/inference/mii). Once installed you have two options for deployment: an interactive non-persistent pipeline or a persistent serving deployment: #### Non-persistent pipeline @@ -273,20 +280,20 @@ client.terminate_server() ### C. Advanced Installation Information -For ease of use and a significant reduction in lengthy compile times that many projects require in this space, we distribute a pre-compiled Python wheel covering the majority of our custom kernels through a new library called [DeepSpeed-Kernels](https://github.com/microsoft/DeepSpeed-Kernels). We have found this library to be very portable across environments with NVIDIA GPUs with compute capabilities 8.0+ (Ampere+), CUDA 11.6+, and Ubuntu 20+. In most cases, you shouldn't even need to know this library exists as it is a dependency of DeepSpeed-MII and will be installed with it. However, if for whatever reason you need to compile our kernels manually please see our [advanced installation docs](https://github.com/microsoft/DeepSpeed-Kernels#source). +For ease of use and a significant reduction in lengthy compile times that many projects require in this space, we distribute a pre-compiled Python wheel covering the majority of our custom kernels through a new library called [DeepSpeed-Kernels](https://github.com/deepspeedai/DeepSpeed-Kernels). We have found this library to be very portable across environments with NVIDIA GPUs with compute capabilities 8.0+ (Ampere+), CUDA 11.6+, and Ubuntu 20+. In most cases, you shouldn't even need to know this library exists as it is a dependency of DeepSpeed-MII and will be installed with it. However, if for whatever reason you need to compile our kernels manually please see our [advanced installation docs](https://github.com/deepspeedai/DeepSpeed-Kernels#source). # 6. Try Out DeepSpeed-FastGen We are very excited to share this DeepSpeed-FastGen alpha release. -* To get started, please visit our GitHub page for DeepSpeed-MII: [GitHub Landing Page](https://github.com/microsoft/DeepSpeed-MII) +* To get started, please visit our GitHub page for DeepSpeed-MII: [GitHub Landing Page](https://github.com/deepspeedai/DeepSpeed-MII) DeepSpeed-FastGen is part of the bigger DeepSpeed ecosystem comprising a multitude of Deep Learning systems and modeling technologies. To learn more, * Please visit our [website](https://www.deepspeed.ai/) for detailed blog posts, tutorials, and helpful documentation. -* You can also follow us on our [English Twitter](https://twitter.com/MSFTDeepSpeed), [Japanese Twitter](https://twitter.com/MSFTDeepSpeedJP), and [Chinese Zhihu](https://www.zhihu.com/people/deepspeed) for latest news on DeepSpeed. +* You can also follow us on our [English Twitter](https://twitter.com/DeepSpeedAI), [Japanese Twitter](https://twitter.com/DeepSpeedAI_JP), and [Chinese Zhihu](https://www.zhihu.com/people/deepspeed) for latest news on DeepSpeed. -DeepSpeed welcomes your contributions! We encourage you to report issues, contribute PRs, and join discussions on the [DeepSpeed GitHub](https://github.com/microsoft/DeepSpeed/) page. Please see our [contributing guide](https://github.com/microsoft/DeepSpeed/blob/master/CONTRIBUTING.md) for more details. We are open to collaborations with universities, research labs, and companies, such as those working together on deep learning research, applying DeepSpeed to empower real-world AI models and applications, and so on. For such requests (and other requests unsuitable for GitHub), please directly email to deepspeed-info@microsoft.com. +DeepSpeed welcomes your contributions! We encourage you to report issues, contribute PRs, and join discussions on the [DeepSpeed GitHub](https://github.com/deepspeedai/DeepSpeed/) page. Please see our [contributing guide](https://github.com/deepspeedai/DeepSpeed/blob/master/CONTRIBUTING.md) for more details. We are open to collaborations with universities, research labs, and companies, such as those working together on deep learning research, applying DeepSpeed to empower real-world AI models and applications, and so on. For such requests (and other requests unsuitable for GitHub), please directly email to deepspeed-info@microsoft.com. The following items are on our roadmap and we plan to engage with our community on these through our GitHub issues and PRs: @@ -295,7 +302,7 @@ The following items are on our roadmap and we plan to engage with our community - New hardware backends through collaboration with partners - Release performance benchmarks (used to generate plots in this blog) -**"Star" our [DeepSpeed GitHub](https://github.com/microsoft/DeepSpeed/) and [DeepSpeedMII GitHub](https://github.com/microsoft/DeepSpeed-MII/) repositories if you like our work!** +**"Star" our [DeepSpeed GitHub](https://github.com/deepspeedai/DeepSpeed/) and [DeepSpeedMII GitHub](https://github.com/deepspeedai/DeepSpeed-MII/) repositories if you like our work!** # 7. Acknowledgements diff --git a/blogs/deepspeed-fastgen/chinese/README.md b/blogs/deepspeed-fastgen/chinese/README.md index fb9cc7319ab6..2885799912ae 100644 --- a/blogs/deepspeed-fastgen/chinese/README.md +++ b/blogs/deepspeed-fastgen/chinese/README.md @@ -23,11 +23,11 @@ GPT-4 和 LLaMA 这样的大型语言模型(LLMs)已在各个层次上成为了集成 AI 的主流服务应用。从常规聊天模型到文档摘要,从自动驾驶到各个软件中的Copilot功能,这些模型的部署和服务需求正在迅速增加。像 DeepSpeed、PyTorch 和其他几个框架可以在 LLM 训练期间实现良好的硬件利用率。但它们在与用户互动及处理开放式文本生成等任务时,受限于这些操作的计算密集度相对较低,现有系统往往在推理吞吐量上遇到瓶颈。 -为了解决这一问题, [vLLM](https://arxiv.org/pdf/2309.06180.pdf) 这样由 PagedAttention 驱动的框架和 [Orca](https://www.usenix.org/system/files/osdi22-yu.pdf) 这样的系统显著提高了 LLM 推理的性能。然而,这些系统在面对长提示的工作负载时,依旧难以提供良好的服务质量。随着越来越多的模型(例如 [MPT-StoryWriter](https://www.mosaicml.com/blog/mpt-7b))和系统(例如[DeepSpeed Ulysses](https://github.com/microsoft/DeepSpeed/tree/master/blogs/deepspeed-ulysses))支持延伸到数万个令牌的上下文窗口,这些长提示工作负载变得越来越重要。为了更好地理解问题,我们在下文中提供了详细的示例来说明 LLM 的文本生成是如何在“提示处理”和“生成”的这两个阶段中工作的。当系统将它们视为不同的阶段时,生成阶段将被提示处理所抢占,这可能会破坏服务级别协议(SLAs)。 +为了解决这一问题, [vLLM](https://arxiv.org/pdf/2309.06180.pdf) 这样由 PagedAttention 驱动的框架和 [Orca](https://www.usenix.org/system/files/osdi22-yu.pdf) 这样的系统显著提高了 LLM 推理的性能。然而,这些系统在面对长提示的工作负载时,依旧难以提供良好的服务质量。随着越来越多的模型(例如 [MPT-StoryWriter](https://www.mosaicml.com/blog/mpt-7b))和系统(例如[DeepSpeed Ulysses](https://github.com/deepspeedai/DeepSpeed/tree/master/blogs/deepspeed-ulysses))支持延伸到数万个令牌的上下文窗口,这些长提示工作负载变得越来越重要。为了更好地理解问题,我们在下文中提供了详细的示例来说明 LLM 的文本生成是如何在“提示处理”和“生成”的这两个阶段中工作的。当系统将它们视为不同的阶段时,生成阶段将被提示处理所抢占,这可能会破坏服务级别协议(SLAs)。 今天,我们很高兴地介绍 DeepSpeed-FastGen 框架,它通过采用我们提出的动态 SplitFuse 技术,能够提供比vLLM 等先进系统高出多达 2.3 倍的有效吞吐量。DeepSpeed-FastGen 是 DeepSpeed-MII 和 DeepSpeed-Inference 的结合,提供了一个易于使用的服务系统。 -**快速开始:** 要使用 DeepSpeed-FastGen 只需安装最新的 [DeepSpeed-MII](https://github.com/microsoft/DeepSpeed-MII) 发行版: +**快速开始:** 要使用 DeepSpeed-FastGen 只需安装最新的 [DeepSpeed-MII](https://github.com/deepspeedai/DeepSpeed-MII) 发行版: ```bash pip install deepspeed-mii @@ -207,7 +207,7 @@ DeepSpeed-FastGen 提供了副本级负载均衡,可以将请求均匀分布 ## 5. DeepSpeed-FastGen:软件实现与使用指南 -DeepSpeed-FastGen 是 [DeepSpeed-MII](https://github.com/microsoft/DeepSpeed-MII) 和 [DeepSpeed-Inference](https://github.com/microsoft/DeepSpeed) 的协同组合,如下图所示。这两个软件包共同提供了系统的各个组成部分,包括前端 API、用于使用动态 SplitFuse 调度批次的主机和设备基础设施、优化的内核实现,以及构建新模型实现的工具。 +DeepSpeed-FastGen 是 [DeepSpeed-MII](https://github.com/deepspeedai/DeepSpeed-MII) 和 [DeepSpeed-Inference](https://github.com/deepspeedai/DeepSpeed) 的协同组合,如下图所示。这两个软件包共同提供了系统的各个组成部分,包括前端 API、用于使用动态 SplitFuse 调度批次的主机和设备基础设施、优化的内核实现,以及构建新模型实现的工具。
@@ -217,7 +217,7 @@ DeepSpeed-FastGen 是 [DeepSpeed-MII](https://github.com/microsoft/DeepSpeed-MII 使用我们的 alpha 版 DeepSpeed-FastGen 最快的入门方式是:`pip install deepspeed-mii`。 -请按照我们的 [入门指南](https://github.com/microsoft/deepspeed-mii#getting-started-with-mii) 获取更多细节。如需使用和报告问题,请使用 [DeepSpeed-MII Github 仓库](https://github.com/microsoft/DeepSpeed-MII)。 +请按照我们的 [入门指南](https://github.com/deepspeedai/deepspeed-mii#getting-started-with-mii) 获取更多细节。如需使用和报告问题,请使用 [DeepSpeed-MII Github 仓库](https://github.com/deepspeedai/DeepSpeed-MII)。 ### A. 支持的模型 @@ -226,13 +226,17 @@ DeepSpeed-FastGen 是 [DeepSpeed-MII](https://github.com/microsoft/DeepSpeed-MII * [LLaMA](https://huggingface.co/models?other=llama) 和 [LLaMA-2](https://huggingface.co/models?other=llama-2) * [Mistral](https://huggingface.co/models?other=mistral) * [OPT](https://huggingface.co/models?other=opt) +* [Falcon](https://huggingface.co/models?other=falcon) +* [Mixtral](https://huggingface.co/models?other=mixtral) +* [Phi-2](https://huggingface.co/models?other=phi-msft) +* [Qwen](https://huggingface.co/models?other=qwen) 所有当前模型都利用了后端的 [HuggingFace](https://github.com/huggingface) API 来提供模型权重和模型对应的分词器。 -> 我们计划在最初发布后的几周和几个月内添加更多模型。如果您希望支持特定的模型架构,请[提交问题](https://github.com/microsoft/DeepSpeed-MII/issues)来让我们知道。 +> 我们计划在最初发布后的几周和几个月内添加更多模型。如果您希望支持特定的模型架构,请[提交问题](https://github.com/deepspeedai/DeepSpeed-MII/issues)来让我们知道。 ### B. 部署选项 -以下所有示例均可在 [DeepSpeedExamples](https://github.com/microsoft/DeepSpeedExamples/tree/master/inference/mii) 中运行。安装后,您有两种部署方式:交互式非持久管道或持久化服务部署: +以下所有示例均可在 [DeepSpeedExamples](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/inference/mii) 中运行。安装后,您有两种部署方式:交互式非持久管道或持久化服务部署: #### 非持久管道 @@ -270,20 +274,20 @@ client.terminate_server() ### C. 高级安装方式 -为了使用方便并显著减少许多其他框架所需的冗长编译时间,我们通过名为 [DeepSpeed-Kernels](https://github.com/microsoft/DeepSpeed-Kernels) 的新库分发了覆盖我们大部分自定义内核的预编译 Python wheel。我们发现这个库在环境中非常便携,只要这些环境具有 NVIDIA GPU 计算能力 8.0+(Ampere+)、CUDA 11.6+ 和 Ubuntu 20+。在大多数情况下,您甚至不需要知道这个库的存在,因为它是 DeepSpeed-MII 的依赖项,并将自动与之一起安装。然而,如果您因任何原因需要手动编译我们的内核,请参阅我们的[高级安装文档](https://github.com/microsoft/DeepSpeed-Kernels#source)。 +为了使用方便并显著减少许多其他框架所需的冗长编译时间,我们通过名为 [DeepSpeed-Kernels](https://github.com/deepspeedai/DeepSpeed-Kernels) 的新库分发了覆盖我们大部分自定义内核的预编译 Python wheel。我们发现这个库在环境中非常便携,只要这些环境具有 NVIDIA GPU 计算能力 8.0+(Ampere+)、CUDA 11.6+ 和 Ubuntu 20+。在大多数情况下,您甚至不需要知道这个库的存在,因为它是 DeepSpeed-MII 的依赖项,并将自动与之一起安装。然而,如果您因任何原因需要手动编译我们的内核,请参阅我们的[高级安装文档](https://github.com/deepspeedai/DeepSpeed-Kernels#source)。 # 6. 尝试 DeepSpeed-FastGen 我们非常高兴分享 DeepSpeed-FastGen 的首个 alpha 版本。 -* 要开始,请访问我们的 DeepSpeed-MII GitHub 页面: [GitHub 登陆页面](https://github.com/microsoft/DeepSpeed-MII) +* 要开始,请访问我们的 DeepSpeed-MII GitHub 页面: [GitHub 登陆页面](https://github.com/deepspeedai/DeepSpeed-MII) DeepSpeed-FastGen 是更大的 DeepSpeed 生态系统的一部分,该生态系统包含了多种深度学习系统和建模技术。要了解更多, * 请访问我们的[网站](https://www.deepspeed.ai/),详细查看博客文章、教程和有用的文档。 -* 您也可以通过我们的[英文 Twitter](https://twitter.com/MSFTDeepSpeed)、[日本 Twitter](https://twitter.com/MSFTDeepSpeedJP) 和[中文知乎](https://www.zhihu.com/people/deepspeed) 关注我们,以获取 DeepSpeed 的最新消息。 +* 您也可以通过我们的[英文 Twitter](https://twitter.com/DeepSpeedAI)、[日本 Twitter](https://twitter.com/DeepSpeedAI_JP) 和[中文知乎](https://www.zhihu.com/people/deepspeed) 关注我们,以获取 DeepSpeed 的最新消息。 -DeepSpeed 欢迎您的贡献!我们鼓励您在 [DeepSpeed GitHub](https://github.com/microsoft/DeepSpeed/) 页面上报告问题、贡献 PR,并参与讨论。有关更多详细信息,请参见我们的[贡献指南](https://github.com/microsoft/DeepSpeed/blob/master/CONTRIBUTING.md)。我们愿意与大学、研究实验室和公司合作,比如那些在深度学习研究上共同工作,应用 DeepSpeed 来赋能真实世界的 AI 模型和应用等。对于那些不适合在 GitHub 上提出的请求(以及其他请求),请直接发送电子邮件至 deepspeed-info@microsoft.com。 +DeepSpeed 欢迎您的贡献!我们鼓励您在 [DeepSpeed GitHub](https://github.com/deepspeedai/DeepSpeed/) 页面上报告问题、贡献 PR,并参与讨论。有关更多详细信息,请参见我们的[贡献指南](https://github.com/deepspeedai/DeepSpeed/blob/master/CONTRIBUTING.md)。我们愿意与大学、研究实验室和公司合作,比如那些在深度学习研究上共同工作,应用 DeepSpeed 来赋能真实世界的 AI 模型和应用等。对于那些不适合在 GitHub 上提出的请求(以及其他请求),请直接发送电子邮件至 deepspeed-info@microsoft.com。 以下项目在我们的路线图上,我们计划通过我们的 GitHub 问题和 PR 与我们的社区在这些项目上进行交流: @@ -292,7 +296,7 @@ DeepSpeed 欢迎您的贡献!我们鼓励您在 [DeepSpeed GitHub](https://git - 通过与合作伙伴的合作支持新硬件后端 - 发布性能测试套件(例如此博客中生成的图表) -如果您喜欢我们的工作,请为我们的 [DeepSpeed GitHub](https://github.com/microsoft/DeepSpeed/) 和 [DeepSpeedMII GitHub](https://github.com/microsoft/DeepSpeed-MII/) 仓库打上“星标”! +如果您喜欢我们的工作,请为我们的 [DeepSpeed GitHub](https://github.com/deepspeedai/DeepSpeed/) 和 [DeepSpeedMII GitHub](https://github.com/deepspeedai/DeepSpeed-MII/) 仓库打上“星标”! # 7. 致谢 diff --git a/blogs/deepspeed-fastgen/japanese/README.md b/blogs/deepspeed-fastgen/japanese/README.md index 9729854afcf0..2ce25e62c551 100644 --- a/blogs/deepspeed-fastgen/japanese/README.md +++ b/blogs/deepspeed-fastgen/japanese/README.md @@ -24,14 +24,14 @@ AIを様々な目的に利用する幅広いアプリケーションで、GPT-4やLLaMAのような大規模言語モデル(LLM)が、主要なワークロードになってきています。一般的なチャットモデルから、文書の要約、自動運転、ソフトウェアスタックの各層におけるプログラミングの補助まで、これらのモデルを大規模に展開・提供する需要が急増しています。DeepSpeedやPyTorchをはじめとするフレームワークは、一般に、LLMの訓練では良好なハードウェアの利用効率を達成できるものの、オープンエンドのテキスト生成などの課題では、GPUなどのハードウェア上で一度に実行される計算量が少ないことが、既存システムにおいて推論スループットのボトルネックとなっています。 PagedAttentionを搭載した [vLLM](https://arxiv.org/pdf/2309.06180.pdf) や [Orca](https://www.usenix.org/system/files/osdi22-yu.pdf) のような既存システムは、こうした課題を解決するために設計され、LLMの推論性能を大幅に向上させました。しかしこれらのシステムは依然として、特に長いプロンプトを含むワークロードにおいて、一貫したサービス品質の提供という点で課題を残しています。 -数千トークンに及ぶコンテキストウィンドウをサポートするモデルやシステム、例えば [MPT-StoryWriter](https://www.mosaicml.com/blog/mpt-7b) や [DeepSpeed Ulysses](https://github.com/microsoft/DeepSpeed/tree/master/blogs/deepspeed-ulysses) などが増えるにつれて、これらの長いプロンプトのワークロードはますます重要になってきています。 +数千トークンに及ぶコンテキストウィンドウをサポートするモデルやシステム、例えば [MPT-StoryWriter](https://www.mosaicml.com/blog/mpt-7b) や [DeepSpeed Ulysses](https://github.com/deepspeedai/DeepSpeed/tree/master/blogs/deepspeed-ulysses) などが増えるにつれて、これらの長いプロンプトのワークロードはますます重要になってきています。 これらの問題をより深く理解するために、LLMによるテキスト生成がどのように機能するか説明します。LLMによるテキスト生成は、プロンプト処理と生成と呼ばれる2つの異なるフェーズから構成されます。システムがこれらを全く独立に扱うと、生成のフェーズは、プロンプト処理によって中断されることになります。その結果、システムのレイテンシなどを定めた SLA (Service Level Agreement) に違反する可能性が高くなります。 このブログで紹介するDeepSpeed-FastGenは、新たに提案するDynamic SplitFuse技術などを活用することでこうした課題を解決し、vLLMなどの最新の既存システムと比較して最大2.3倍の実効スループットを実現するシステムです。 DeepSpeed-FastGenは、DeepSpeed-MIIとDeepSpeed-Inferenceの組み合わせにより、使いやすいテキスト生成機能を実現します。 -**クイックスタート:** 最新の[DeepSpeed-MII](https://github.com/microsoft/DeepSpeed-MII)をインストールするだけで、 DeepSpeed-FastGenを試すことができます。 +**クイックスタート:** 最新の[DeepSpeed-MII](https://github.com/deepspeedai/DeepSpeed-MII)をインストールするだけで、 DeepSpeed-FastGenを試すことができます。 ```bash @@ -218,7 +218,7 @@ A100 GPUを用いた分析に加えて、H100とA6000を使用したベンチマ ## 5. DeepSpeed-FastGen: 実装と使い方 -DeepSpeed-FastGenは、以下の図に示されているように、[DeepSpeed-MII](https://github.com/microsoft/DeepSpeed-MII)と[DeepSpeed-Inference](https://github.com/microsoft/DeepSpeed)を融合的に組み合わせたものです。これらのソフトウェアパッケージは、フロントエンドAPI、Dynamic SplitFuseを使用してバッチをスケジュールするホストおよびデバイスインフラストラクチャ、最適化されたカーネル実装、新しいモデル実装を構築するためのツールなど、システムの様々なコンポーネントを提供します。 +DeepSpeed-FastGenは、以下の図に示されているように、[DeepSpeed-MII](https://github.com/deepspeedai/DeepSpeed-MII)と[DeepSpeed-Inference](https://github.com/deepspeedai/DeepSpeed)を融合的に組み合わせたものです。これらのソフトウェアパッケージは、フロントエンドAPI、Dynamic SplitFuseを使用してバッチをスケジュールするホストおよびデバイスインフラストラクチャ、最適化されたカーネル実装、新しいモデル実装を構築するためのツールなど、システムの様々なコンポーネントを提供します。
@@ -228,7 +228,7 @@ DeepSpeed-FastGenは、以下の図に示されているように、[DeepSpeed-M DeepSpeed-FastGenのアルファリリースを使い始める最も簡単な方法は、 ``pip install deepspeed-mii`` を実行することです。 -詳細については、[Getting Started](https://github.com/microsoft/deepspeed-mii#getting-started-with-mii)ガイドを参照してください。使用法や問題の報告には、[DeepSpeed-MII Github リポジトリ](https://github.com/microsoft/DeepSpeed-MII)を使用してください。 +詳細については、[Getting Started](https://github.com/deepspeedai/deepspeed-mii#getting-started-with-mii)ガイドを参照してください。使用法や問題の報告には、[DeepSpeed-MII Github リポジトリ](https://github.com/deepspeedai/DeepSpeed-MII)を使用してください。 ### A. 対応モデル @@ -240,11 +240,11 @@ DeepSpeed-FastGenのアルファリリースを使い始める最も簡単な方 現在のすべてのモデルは、モデルの重みとモデルに対応するトークナイザーの両方を提供するために、バックエンドで [HuggingFace](https://github.com/huggingface) を利用しています。 -初期リリース後の数週間と数ヶ月に追加のモデルを追加する予定です。サポートを希望する特定のモデルアーキテクチャがある場合は、[issue](https://github.com/microsoft/DeepSpeed-MII/issues) を登録してください。。 +初期リリース後の数週間と数ヶ月に追加のモデルを追加する予定です。サポートを希望する特定のモデルアーキテクチャがある場合は、[issue](https://github.com/deepspeedai/DeepSpeed-MII/issues) を登録してください。。 ### B. デプロイメントのオプション -以下の例はすべて [DeepSpeedExamples](https://github.com/microsoft/DeepSpeedExamples/tree/master/inference/mii) で実行可能です。インストール後、デプロイメントのオプションとして、対話型の非永続パイプラインまたは永続的なサービス提供デプロイメントの2つのオプションがあります。 +以下の例はすべて [DeepSpeedExamples](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/inference/mii) で実行可能です。インストール後、デプロイメントのオプションとして、対話型の非永続パイプラインまたは永続的なサービス提供デプロイメントの2つのオプションがあります。 #### 非永続パイプライン @@ -284,21 +284,21 @@ client.terminate_server() ### C. インストールの詳細情報 類似の他のプロジェクトでは、カスタムカーネルのコンパイルに非常に時間がかかることがよくあります。 -DeepSpeed-FastGenでは、このコンパイル時間を大幅に短縮し、利便性を向上するため、主要なカスタムカーネルの大部分を事前コンパイルしたPython wheelを、[DeepSpeed-Kernels](https://github.com/microsoft/DeepSpeed-Kernels)という新しいライブラリを通じて配布しています。 +DeepSpeed-FastGenでは、このコンパイル時間を大幅に短縮し、利便性を向上するため、主要なカスタムカーネルの大部分を事前コンパイルしたPython wheelを、[DeepSpeed-Kernels](https://github.com/deepspeedai/DeepSpeed-Kernels)という新しいライブラリを通じて配布しています。 このライブラリは、NVIDIA GPUのコンピュート能力が8.0以上(Ampere+)、CUDA 11.6以上、Ubuntu 20以上の環境で非常に移植性が高いことがわかっています。 -このライブラリは、DeepSpeed-MIIの依存関係としてインストールされるため、ほとんどの場合では、このライブラリの存在を知る必要はありません。しかし、何らかの理由でカーネルを手動でコンパイルする必要がある場合は、インストールに関する[詳細ドキュメント](https://github.com/microsoft/DeepSpeed-Kernels#source)をご覧ください。 +このライブラリは、DeepSpeed-MIIの依存関係としてインストールされるため、ほとんどの場合では、このライブラリの存在を知る必要はありません。しかし、何らかの理由でカーネルを手動でコンパイルする必要がある場合は、インストールに関する[詳細ドキュメント](https://github.com/deepspeedai/DeepSpeed-Kernels#source)をご覧ください。 # 6. DeepSpeed-FastGen を使ってみる このDeepSpeed-FastGenアルファリリースをユーザの皆さんと共有できることを非常に嬉しく思います。 -* 使用を始めるにあたっては、DeepSpeed-MIIのGitHubページをご覧ください: [GitHubランディングページ](https://github.com/microsoft/DeepSpeed-MII) +* 使用を始めるにあたっては、DeepSpeed-MIIのGitHubページをご覧ください: [GitHubランディングページ](https://github.com/deepspeedai/DeepSpeed-MII) DeepSpeed-FastGenは、Deep Learningシステムやモデリングテクノロジーを数多く含む、より大きなDeepSpeedエコシステムの一部です。さらに詳しい情報が必要な方は、 [詳細なブログ記事]、チュートリアル、役立つドキュメントがある私たちの [ウェブサイト](https://www.deepspeed.ai/) をご覧ください。 -DeepSpeedの最新情報については、[英語のTwitter](https://twitter.com/MSFTDeepSpeed)、[日本語のTwitter](https://twitter.com/MSFTDeepSpeedJP)、[中国語の知乎](https://www.zhihu.com/people/deepspeed)をフォローしてください。 +DeepSpeedの最新情報については、[英語のTwitter](https://twitter.com/DeepSpeedAI)、[日本語のTwitter](https://twitter.com/DeepSpeedAI_JP)、[中国語の知乎](https://www.zhihu.com/people/deepspeed)をフォローしてください。 -DeepSpeedは、皆様の開発への参加を歓迎しています。DeepSpeedのGitHubページで、バグ報告、Pull Request、ディスカッションへの参加が可能です。詳細は[ガイドライン](https://github.com/microsoft/DeepSpeed/blob/master/CONTRIBUTING.md)をご覧ください。[contributing guide](https://github.com/microsoft/DeepSpeed/blob/master/CONTRIBUTING.md) にはより詳細な情報があります。 +DeepSpeedは、皆様の開発への参加を歓迎しています。DeepSpeedのGitHubページで、バグ報告、Pull Request、ディスカッションへの参加が可能です。詳細は[ガイドライン](https://github.com/deepspeedai/DeepSpeed/blob/master/CONTRIBUTING.md)をご覧ください。[contributing guide](https://github.com/deepspeedai/DeepSpeed/blob/master/CONTRIBUTING.md) にはより詳細な情報があります。 また、深層学習の研究や、実世界のAIモデルやアプリケーションへのDeepSpeedの適用に取り組む大学、研究所、企業とのコラボレーションも行っています。こうしたコラボレーションについてのご要望(およびGitHubには適さないその他の話題)については まで直接メールをお送りください。 以下の項目は、今後のロードマップです。GitHubの問題やPRを通じてコミュニティと協力して取り組む予定です: @@ -308,7 +308,7 @@ DeepSpeedは、皆様の開発への参加を歓迎しています。DeepSpeed - パートナーとのコラボレーションによる新しいハードウェアバックエンド - ブログに掲載したプロットを生成するパフォーマンスベンチマークのリリース -このプロジェクトが気に入ったら、ぜひ [DeepSpeed GitHub](https://github.com/microsoft/DeepSpeed/) と [DeepSpeedMII GitHub](https://github.com/microsoft/DeepSpeed-MII/) のリポジトリに "スター" をつけてください。 +このプロジェクトが気に入ったら、ぜひ [DeepSpeed GitHub](https://github.com/deepspeedai/DeepSpeed/) と [DeepSpeedMII GitHub](https://github.com/deepspeedai/DeepSpeed-MII/) のリポジトリに "スター" をつけてください。 # 7. 謝辞 diff --git a/blogs/deepspeed-fp6/03-05-2024/README-Chinese.md b/blogs/deepspeed-fp6/03-05-2024/README-Chinese.md new file mode 100644 index 000000000000..a880836ea2e2 --- /dev/null +++ b/blogs/deepspeed-fp6/03-05-2024/README-Chinese.md @@ -0,0 +1,143 @@ +
+ +# DeepSpeed-FP6:大型语言模型中以FP6为核心的强大推理服务 + +
+ +
+ +DeepSpeed-VisualChat! + +
+ + +要引用DeepSpeed-FP6,请引用以下两篇arxiv报告 - ZeroQuant(4+2) 和 FP6-LLM: + +``` +@article{wu2023zeroquant, + title={Zeroquant(4+2): Redefining llms quantization with a new fp6-centric strategy for diverse generative tasks}, + author={Wu, Xiaoxia and Xia, Haojun and Youn, Stephen and Zheng, Zhen and Chen, Shiyang and Bakhtiari, Arash and Wyatt, Michael and Aminabadi, Reza Yazdani and He, Yuxiong and Ruwase, Olatunji and Song, Leon and others}, + journal={arXiv preprint arXiv:2312.08583}, + year={2023} +} + +@article{xia2024fp6, + title={FP6-LLM: Efficiently Serving Large Language Models Through FP6-Centric Algorithm-System Co-Design}, + author={Xia, Haojun and Zheng, Zhen and Wu, Xiaoxia and Chen, Shiyang and Yao, Zhewei and Youn, Stephen and Bakhtiari, Arash and Wyatt, Michael and Zhuang, Donglin and Zhou, Zhongzhu and others}, + journal={arXiv preprint arXiv:2401.14112}, + year={2024} +} +``` + + +# Table of Contents +1. [为什么选择6位浮点(FP6)](#introduction) +2. [FP6的系统支持](#system-fp6) +3. [FP6的LLMs服务系统](#serving-llm) +4. [如何开始](#how-to-start) +5. [软件改进](#software-improvements) +6. [致谢和贡献](#ac) + +# 1. 为什么选择6位浮点 +大型语言模型(LLMs)领域正处于迅猛发展之中,模型量化是提升推理服务性能的关键技术之一。 我们的研究旨在提高计算效率和存储空间,同时保持模型质量。 + +**深入研究INT4的挑战** 在最近的研究成果 ZeroQuant(4+2)[1] 中, 我们探索了INT4量化技术(如GPTQ算法) 在大语言模型(LLMs)中的表现能力。虽然这些技术可以减小模型大小和参数存储量,但由于过拟合问题, 它们在更一般的许多任务中往往表现不佳,包括代码生成和摘要等更多生成任务。因此, 当前迫切需要新的方法来提高LLMs的效率和有效性。 + + **FP6的突破** 我们对不同量化方法的探索将我们带到了FP6精度标准。尽管FP6数据格式在当前AI硬件的高效支持中存在挑战(我们将在下一节中解决这一挑战),该格式在各种任务的性能和灵活性方面均表现出色。值得注意的是,使用FP6量化的模型,如StarCoder-15B,在代码生成方面达到了与FP16模型相当的结果,而较小的模型(如BART-406M)在摘要方面达到了标准FP16性能水平。为了提高FP6在当前主流AI硬件上的执行效率,我们提出了一种4+2新颖的FP6 GPU kernel方案。这一创新使FP6成为提高LLMs效率的有效途径。更多详细信息请参阅我们的研究论文 ZeroQuant(4+2)[1]。 + + +# 2. FP6的系统支持 + +**开创性的全栈GPU KERNEL设计** FP6量化的一个挑战是缺乏针对这种不规则位宽的高效GPU KERNEL设计。在我们最近的研究中(FP6-LLM[2]),我们设计并实现了TC-FPx,第一个具有Tensor Core支持的用于FP6和各种量化位宽(6位、5位、3位等)的浮点权重的GPU系统设计方案,缓解了LLM推理期间的“内存墙”问题。TC-FPx打破了底层GPU硬件的限制,允许GPU支持涉及任意位宽模型权重的矩阵乘法计算。在TC-FPx中,Tensor Cores用于矩阵乘法的密集计算,而SIMT cores在运行时有效地用于权重反量化,将模型权重反量化为FP16类型,Tensor Core基于此进行计算。它具有以下关键创新: +
+ fp6 design + +
+ +* 运行前比特层级的数据排布转换。用以解决权重具有不规则位宽时不友好的内存访问挑战,实现GPU内存的最优访问; + +* 运行时的高效SIMT计算。用以最小化权重反量化的运行时开销; + +* 全栈的高效流水线设计。其SIMT计算、Tensor Core计算和GPU内存访问进行高效调度,最大程度提升性能。 + + + +平均而言,我们的FP6 kernel在NVIDIA A100 GPU上进行(因decoder的矩阵形状狭长而导致参数矩阵的访存成为瓶颈的)矩阵乘法时,处理速度比FP16 cuBLAS基准提高了2.1倍。值得注意的是,通过FP6量化实现的FP6内核使LLaMA-70b模型能够在单个A100 GPU上运行。这一显著成就使得其在batch小于32的LLM推理任务中,性能比FP16基准高出1.69到2.65倍。目前,TC-FPx内核仅支持NVIDIA Ampere GPU,并且仅在A100 GPU上进行了测试和验证。 + + +# 3. 使用FP6服务LLMs + +我们已成功将FP6量化内核[3]集成到DeepSpeed-FastGen中,实现了运行时的即时量化。这一增强功能允许通过DeepSpeed-FastGen中的统一配置选项来高效量化和部署大型语言模型。通过我们的接口,用户可以输入HuggingFace模型名称或本地checkpoint目录。输入后,我们的系统将启动指定模型的加载,对每个线性层实现FP6量化,并将量化的权重进行比特层级的数据排布转换。转换后的张量随后作为更新后的权重,而原始的FP16权重被丢弃以优化内存使用。在推理阶段,FP6内核将利用这些6位的权重进行计算。 + +我们在两个A100 GPU-80G上评估了LLaMA-2-70b模型使用FP6量化的服务性能,实现了1.5倍的推理延迟减少和3.5倍的推理吞吐量增加,与FP16基线相比。FP6量化为模型推理提供了两个关键好处:它使大型语言模型(LLMs)能够在更少的GPU上部署——例如,LLaMA-70b在单个A100-80G GPU上就能以FP6形式运行,而FP16模型至少需要两个GPU。此外,它显著加快了小batch之下内存访问为瓶颈的线性层计算。此外,FP6量化减少了模型权重的GPU内存需求,允许同时服务更多查询,从而提高了服务吞吐量。 + +我们的系统在处理长序列生成时表现出很高的效率。如图1所示,对于超过提示长度的生成长度,我们的系统展现出显著的性能优势。随着生成序列长度的延伸,FP6与FP16之间的性能差异加大。这一趋势主要归因于解码长度扩展时,推理过程变得越来越受内存访问瓶颈限制,有利于我们的权重量化的GPU kernel,相对于FP16实现更大的kernel速度提升。需要强调的是,较长解码场景中内存访问瓶颈增强的两个因素如下: + +首先,KV缓存的内存使用随序列长度增加而增加,减少了可容纳的batch大小并导致线性层的矩阵计算瓶颈变为参数的访存。 + +其次,在DeepSpeed-FastGen的prefill-decoding-mixed-batch技术背景下,对于decoding较长的情况,用于和decoding进行mixed-batching的prefill切块会相对不足,这导致纯粹用于decoding的batch频率增加,进一步加剧了访存的瓶颈。 +

+ Caption1 + Caption2 + Caption3 +

+ +图1:在DeepSpeed-MII中,使用128个请求和32个客户端,对LLaMA-2-70B模型在2xA100-80g上进行端到端服务性能测试。我们尝试了128、256和512之间不同数量的请求,发现加速效果相似。 + +尽管FP6量化带来了显著的好处,但当前实现仍面临一些限制。值得注意的是,在GEMM因batch较大或有充足的GPU内存而使得瓶颈变为Tensor Core计算时,我们的仅限权重的量化kernel可能无法保持其性能优势,尤其是与厂商的优化库如cuBlas相比。然而,我们系统的低内存占用仍是一个关键优势。目前的支持限于非混合专家(Non-MoE)结构,我们正在努力将支持扩展到MoE结构。此外,当前系统仅与FP16输入模型兼容,因为当前实现的FP6 kernel仅支持处理FP16的激活。 + +
+ +# 4. 如何开始 + +DeepSpeed-FP6的量化和推理体验简单方便。这里我们以LLaMa-2-70B模型为例: +```python +import mii +pipe = mii.pipeline("NousResearch/Llama-2-70b-hf", quantization_mode='wf6af16') +response = pipe(["DeepSpeed is", "Seattle is"], max_new_tokens=128) +print(response) +``` + +您需要安装以下内容 + +``` +pip install deepspeed-mii +pip install qtorch +``` + +要使用我们的DeepSpeed-FP6进行基准测试,请访问以下脚本: +```bash +https://github.com/deepspeedai/DeepSpeedExamples/blob/master/benchmarks/inference/mii/run_fp6.sh +``` + +也请访问[FP6-LLM github](https://github.com/usyd-fsalab/fp6_llm) 获取FP6的独立kernel。不要忘了给仓库加星标以表达您的支持! + + +# 5. 软件改进 + + +我们的DeepSpeed-FP6目前仅支持线性GEMM。我们期待未来能够支持MoE GEMM。我们将继续根据您的反馈和支持改进DeepSpeed-FP6。DeepSpeed-FP6是更大DeepSpeed生态系统的一部分,包括一系列深度学习系统和建模技术。要了解更多, + +* 请访问我们的 [网站](https://www.deepspeed.ai/) 了解详细的博客文章、教程和文档。 +* 在我们的 [英文 X(Twitter)](https://twitter.com/DeepSpeedAI)、[日语 X(Twitter)](https://twitter.com/DeepSpeedAI_JP) 和 [中文知乎](https://www.zhihu.com/people/deepspeed) 上关注我们,以获取 DeepSpeed 的最新消息。 + +我们欢迎您为 DeepSpeed 做出贡献!我们鼓励您报告问题、贡献 PRs、并在 [DeepSpeed GitHub](https://github.com/deepspeedai/DeepSpeed/) 页面上参加讨论。有关更多详细信息,请查看我们的 [贡献指南](https://github.com/deepspeedai/DeepSpeed/blob/master/CONTRIBUTING.md)。我们对与大学、研究实验室、公司等进行合作持开放态度,例如共同进行深度学习研究、应用 DeepSpeed 为现实世界的 AI 模型和应用提供支持等等。对于此类请求(以及其他不适合 GitHub 的请求),请直接发送电子邮件至 deepspeed-info@microsoft.com。 + +* 如果你喜欢我们的工作,请在[DeepSpeed GitHub](https://github.com/deepspeedai/DeepSpeed/), [DeepSpeed-MII GitHub](https://github.com/deepspeedai/DeepSpeed-MII/) 和 [DeepSpeedExamples GitHub](https://github.com/deepspeedai/DeepSpeedExamples/)仓库“点赞”! + + +# 6. 致谢和贡献 +我们感谢悉尼大学和罗格斯大学的合作。我们还感谢开源库 [aspuru-guzik-group/qtorch](https://github.com/aspuru-guzik-group/qtorch). + +贡献: +Xiaoxia Wu\* $^1$, Zhen Zheng\* $^1$, Haojun Xia\* $^2$, Arash Bakhtiari $^1$, Michael Wyatt $^1$, Shiyang Chen $^3$, Stephen Youn $^1$, Reza Yazdani Aminabadi, Yuxiong He, Olatunji Ruwase $^1$, Zhewei Yao, Leon Song $^1$ $^2$(项目负责人) + +\* 平等贡献 1: 微软 2: 悉尼大学 3: 罗格斯大学 + +文献: + +[1] ZeroQuant(4+2): Redefining LLMs Quantization with a New FP6-Centric Strategy for Diverse Generative Tasks. arXiv. https://arxiv.org/abs/2312.08583 + +[2] FP6-LLM: Efficiently Serving Large Language Models Through FP6-Centric Algorithm-System Co-Design. arXiv. https://arxiv.org/abs/2401.14112 + +[3] FP6-LLM kernel release. GitHub. https://github.com/usyd-fsalab/fp6_llm diff --git a/blogs/deepspeed-fp6/03-05-2024/README.md b/blogs/deepspeed-fp6/03-05-2024/README.md new file mode 100755 index 000000000000..9455938d38fc --- /dev/null +++ b/blogs/deepspeed-fp6/03-05-2024/README.md @@ -0,0 +1,147 @@ +
+ +# DeepSpeed-FP6: The Power of FP6-Centric Serving for Large Language Models + +
+ +
+ +DeepSpeed-VisualChat! + +
+ + +To cite DeepSpeed-FP6, please cite the following two arxiv reports - ZeroQuant(4+2) and FP6-LLM: + +``` +@article{wu2023zeroquant, + title={Zeroquant(4+2): Redefining llms quantization with a new fp6-centric strategy for diverse generative tasks}, + author={Wu, Xiaoxia and Xia, Haojun and Youn, Stephen and Zheng, Zhen and Chen, Shiyang and Bakhtiari, Arash and Wyatt, Michael and Aminabadi, Reza Yazdani and He, Yuxiong and Ruwase, Olatunji and Song, Leon and others}, + journal={arXiv preprint arXiv:2312.08583}, + year={2023} +} + +@article{xia2024fp6, + title={FP6-LLM: Efficiently Serving Large Language Models Through FP6-Centric Algorithm-System Co-Design}, + author={Xia, Haojun and Zheng, Zhen and Wu, Xiaoxia and Chen, Shiyang and Yao, Zhewei and Youn, Stephen and Bakhtiari, Arash and Wyatt, Michael and Zhuang, Donglin and Zhou, Zhongzhu and others}, + journal={arXiv preprint arXiv:2401.14112}, + year={2024} +} +``` + + +# Table of Contents +1. [Why 6-bit Floating Point (FP6)](#introduction) +2. [System Support for FP6](#system-fp6) +3. [LLMs Serving with FP6](#serving-llm) +4. [How to Start](#how-to-start) +5. [Software Improvements](#software-improvements) +6. [Acknowledgments and Contributions](#ac) + +# 1. Why 6-bit Floating Point (FP6) + + +In the evolving landscape of Large Language Models (LLMs) like GPT, our research aims to boost computational efficiency and storage while preserving model quality. This focus brings us to tackle the complex challenges of 4-bit quantization, where optimizing performance, efficiency, and accuracy is crucial. + +**Exploring the Challenges of 4-bit Quantization** In our recent research findings -- ZeroQuant (4+2)[1], we explore the capabilities of INT4 quantization techniques (like the GPTQ algorithm) for serving Large Language Models (LLMs). While these techniques reduce memory and computational requirements, they often perform poorly on a broad array of tasks, including generative tasks such as code generation and summarization, due to overfitting issues. This highlights the urgent need for new quantization approaches that simultaneously improve both the efficiency and effectiveness of LLMs. + +**Breakthroughs with FP6 Precision** Our exploration of different quantization methods led us to the FP6 precision standard. Despite the challenges in integrating and accelerating FP6 with current AI hardware -- which we will address in the next section - this format excels in performance and flexibility across various tasks. Notably, we observe that for generative tasks, FP6 quantization can match the performance of the half-precision (FP16) format. For example, with FP6 quantization, StarCoder-15B achieves comparable code generation results to the FP16 variant, while a smaller model, such as BART-460M, achieves comparable summarization performance to the standard FP16 equivalent. In order to preserve these quality gains, while matching the system efficiency of INT4 quantization on AI hardware, we propose a novel 4+2 FP6 scheme. This innovation makes FP6 a promising direction for improving the efficiency of LLMs, marking a significant leap in AI technology advancement. For more details, please refer to our research paper - ZeroQuant (4+2)[1]. + + +# 2. System Support for FP6 + +**Pioneering Full-Stack GPU Kernel Design** A key challenge of FP6 quantization is the lack of efficient GPU kernel designs for this irregular, i.e., "non-power of 2", bit-width. In our recent research — FP6-LLM [2], we introduce TC-FPx, the first full-stack GPU system design scheme with unified Tensor Core support of floating point weights for FP6 and other irregular quantization bit-widths (6-bit, 5-bit, 3-bit, etc.). TC-FPx breaks the limitations of the underlying GPU hardware, allowing the GPU to support linear layer calculations on model weights of arbitrary bit width. By increasing the number of bit-width options for efficient quantization, TC-FPx significantly mitigates the "memory wall" challenges of LLM inference. In TC-FPx, Tensor Cores are utilized for intensive computation of matrix multiplications, while SIMT cores are effectively leveraged for weight dequantization, transforming the x-bit model weights to FP16 type during runtime before feeding them to Tensor Cores. It has the following key innovations: +
+ fp6 design + +
+ +* *Ahead-of-time Bit-level Pre-packing*: resolve the challenge of unfriendly memory access for weights with irregular bit-width, and enable optimal GPU memory access. + +* *SIMT-Efficient GPU Runtime*: minimize the runtime overhead of weight de-quantization. + +* *The software pipeline of TC-FPx kernel*: efficiently utilize SIMT cores, Tensor Cores, and the GPU memory hierarchy for high performance. + + + +On average, the TC-FPx kernel demonstrates a 2.1-fold improvement in processing speed over the FP16 cuBLAS benchmark during memory-intensive General Matrix Multiply (GEMM) operations on NVIDIA A100 GPUs. Notably, the implementation of the FP6 kernel through FP6 quantization facilitates the operation of LLaMA-70b on a solitary A100 GPU. This remarkable feat results in a normalized inference throughput that is 1.69 to 2.65 times superior to the FP16 benchmark when conducting inference tasks with batch-size under 32. Currently, TC-FPx kernel only supports NVIDIA Ampere GPUs and is only tested and verified on A100 GPUs + + +# 3. LLMs serving with FP6 + +We have successfully integrated the FP6 quantization kernel [3] into DeepSpeed-FastGen, facilitating on-the-fly, weight-only quantization. This enhancement permits the efficient quantization and deployment of large language models (LLMs) through a unified configuration option within DeepSpeed-FastGen. Detailed information regarding this feature will be provided in due course. Through our interface, users have the flexibility to load a model checkpoint from either HuggingFace hub or a local directory. While loading the checkpoint, our system applies FP6 round-to-nearest quantization on each linear layer, and transforms the quantized weights into 6-bit prepacked tensors. These tensors will serve as the model weights for inference, while the original FP16 weights are discarded to release memory. Throughout the inference stage, the FP6 kernels leverage the 6-bit prepacked weights, ensuring a seamless experience for users engaging with our platform. + +We assessed the LLaMA-70b model's serving performance using FP6 quantization on two A100 GPUs-80G, and observed a *1.5x* reduction in inference latency and a *3.5x* increase in inference throughput compared to the FP16 baseline. FP6 quantization offers two key benefits for model inference: it enables the deployment of large language models (LLMs) on fewer GPUs — for instance, LLaMA-70b fits on a single A100-80G GPU with FP6, versus at least two GPUs required for the FP16 baseline. Additionally, it significantly accelerates linear layers in memory-bound scenarios, which are common in LLM inference. Moreover, FP6 quantization reduces the GPU memory requirements for model weights, allowing for more queries to be served simultaneously, and thus increasing serving throughput. + +Our system demonstrates exceptional efficiency in handling long generation sequences. As illustrated in Figure 1, for generation lengths surpassing the prompt length, our system exhibits a notable performance superiority. The disparity in performance between FP6 and the FP16 baseline widens with the extension of the generation sequence length. This trend is primarily attributed to the inference process becoming increasingly memory-constrained as the decoding length expands, favoring our weight-quantized GPU kernels by facilitating faster compute compared to the FP16 baseline. It is important to highlight two factors contributing to the increased memory constraints in longer decoding scenarios. + - Firstly, the memory usage for the KV cache escalates with the sequence length, reducing the feasible batch sizes and leading to memory-bound GEMM operations. + - Secondly, within the context of DeepSpeed-FastGen's prefill-decoding-mixed-batch technique, scenarios involving extended token generation encounter a reduction in prefill-chunks available for mixing with decodings. This results in a higher frequency of batches dedicated solely to decodings, further intensifying the memory-bound conditions. + +

+ Caption1 + Caption2 + Caption3 +

+ + *Figure 1*: End-to-end serving performances in DeepSpeed-MII with 32 clients and total of 128 requests, for LLaMA-2-70B model on 2xA100-80g with two-way tensor parallelism. We experimented with different number of requests between 128, 256 and 512 and found that the speedup is simillar. + +Despite the significant benefits of FP6 quantization, the current implementation faces limitations. Notably, in scenarios where GEMM operations become compute-bound due to large batch sizes or sufficient GPU memory, our weight-only quantization kernel may not sustain its latency advantage, especially against optimized libraries like cuBlas. However, our system's memory efficiency remains a key benefit. Currently, support is limited to Non-Mixture of Experts (Non-MoE) structures, with efforts underway to extend support to MoE structures. Additionally, the system is compatible only with FP16 input models, as the FP6 kernel processes FP16 activations exclusively. + +
+ +# 4. How to begin with DeepSpeed-FP6 + +The quantization-and-inference experience of DeepSpeed-FP6 is straightforward and convenient. Here we give an example based on LLaMa-2-70B model: + +```python +import mii +pipe = mii.pipeline("NousResearch/Llama-2-70b-hf", quantization_mode='wf6af16') +response = pipe(["DeepSpeed is", "Seattle is"], max_new_tokens=128) +print(response) +``` + +You need to install the following: +``` +pip install deepspeed-mii +pip install qtorch +``` + +To benchmark with our DeepSpeed-FP6, please visit the following script: +```bash +https://github.com/deepspeedai/DeepSpeedExamples/blob/master/benchmarks/inference/mii/run_fp6.sh +``` + +Please also visit the [FP6-LLM github](https://github.com/usyd-fsalab/fp6_llm) for the standalone kernel of FP6. Don't forget to star the repo to show your support! + + +# 5. Software Improvements + + +Currently, DeepSpeed-FP6 supports only dense models with MoE models support upcoming. We will continue to improve DeepSpeed-FP6 with your feedback and support. DeepSpeed-FP6 is a component of the larger DeepSpeed ecosystem, which includes a range of Deep Learning systems and modeling technologies. To learn more, + +* Please visit our [website](https://www.deepspeed.ai/) for detailed blog posts, tutorials, and helpful documentation. +* Follow us on our [English X(Twitter)](https://twitter.com/DeepSpeedAI), [Japanese X(Twitter)](https://twitter.com/DeepSpeedAI_JP), and [Chinese Zhihu](https://www.zhihu.com/people/deepspeed) for latest news on DeepSpeed. + +We welcome your contributions to DeepSpeed! We encourage you to report issues, contribute PRs, and join discussions on the [DeepSpeed GitHub](https://github.com/deepspeedai/DeepSpeed/) page. Please see our [contributing guide](https://github.com/deepspeedai/DeepSpeed/blob/master/CONTRIBUTING.md) for more details. We are open to collaborations with universities, research labs, companies, such as those working together on deep learning research, applying DeepSpeed to empower real-world AI models and applications, and so on. For such requests (and other requests unsuitable for GitHub), please directly email to deepspeed-info@microsoft.com. + +* "Star" our [DeepSpeed GitHub](https://github.com/deepspeedai/DeepSpeed/) and [DeepSpeed-MII GitHub](https://github.com/deepspeedai/DeepSpeed-MII/) and [DeepSpeedExamples GitHub](https://github.com/deepspeedai/DeepSpeedExamples/) repositories if you like our work! + + +# 6. Acknowledgments and Contributions +We thank the collaboration of the University of Sydney and Rutgers University. We also thank the open-source library [aspuru-guzik-group/qtorch](https://github.com/aspuru-guzik-group/qtorch). + +Contributions: +Xiaoxia Wu\* $^1$, Zhen Zheng\* $^1$, Haojun Xia\* $^2$, Arash Bakhtiari $^1$, Michael Wyatt $^1$, Shiyang Chen $^3$, Stephen Youn $^1$, Reza Yazdani Aminabadi, Yuxiong He, Olatunji Ruwase $^1$, Zhewei Yao, Leon Song $^1$ $^2$ (project lead) + +\* Equal Contribution +1: Microsoft +2: University of Sydney +3: Rutgers University + +Reference: + +[1] ZeroQuant(4+2): Redefining LLMs Quantization with a New FP6-Centric Strategy for Diverse Generative Tasks. arXiv. https://arxiv.org/abs/2312.08583 + +[2] FP6-LLM: Efficiently Serving Large Language Models Through FP6-Centric Algorithm-System Co-Design. arXiv. https://arxiv.org/abs/2401.14112 + +[3] FP6-LLM kernel release. GitHub. https://github.com/usyd-fsalab/fp6_llm diff --git a/blogs/deepspeed-fp6/03-05-2024/assets/fp6-design.png b/blogs/deepspeed-fp6/03-05-2024/assets/fp6-design.png new file mode 100644 index 0000000000000000000000000000000000000000..5024332a8f3324c677e181bd90b14ee2599cbb84 GIT binary patch literal 445557 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

B}ZG5%lGLQyM1!dA&clcQy%$ z>8RvQlBY~ktt?a5%flXj%2T^or#m0{MZxpfI`~b9paG`vLyc(O|GA&m8Uo-V4-P*o*a=$M^eb)oEbp()b=4UJ)NH8ISXp9K8Es99q;(3q$s)LL)_oAYDr z4osp6?P-Ih+3^%6lasl^T-gPMZX3{~WTZPh#2X6bQ2U>W=5>6MTw_F|FTgLrOM6i( z_xU}Yb74r+zk}CW7qaR3KL-Q4z3PJA#xla&?>QaHYRohcxw=NYTm?ip=U68)TXd26 zP-7o-Dg@7w!>R5rW0FY|kB+_khBiw7v}9}4u9lSU1YB%ZXf;5t6(3R%B900#gwvT)97k3NTQ9;Pa>1u()xt6k5MP0@~)pk|CE5 zYuc+0ccxA!L_<|8HX2eFX}ZzKYfmSDp$IHOqai*@#($Hifru-sn}Zk5N@0(5i}5ND z{9OGeZYKxSsAQYYiQsSa@pW&^c1caUN3W~J5yPHm}0%EzJF+xV;j02A8d|gM-5YXpR_t@KlTLn-!r1Il$A?(;b}9Mx$rB`?7ybKvA5h zrI_8EmRIK`k*CSWz!!g8sz=Pxc+#43TmiR$KW%?hHeZO171hVT&s+>UPkoF-<5-Du zZ~YU6;`D_t=EjbaMeXyrd0AO})Sc!!>ix;vHjeFgq)=^V%t?fWWIG+y%F;GCO(Q=t z3u|E2B=Dwg%{8KO#2W zuFS3Xrw@)BU1B(t|BJ4(S?P>&J8Vi+aWUBzhLwjY&tmp%zDKsmQ1uWDr1jvc-Yrn* zKJp)>%an6T^G_Xj^117+dD}Rp9e}8ScfNXqxJu6?Kl|YeU7JMSX2}xE?8QHTxu~-D zYtB%!!)#oQlbV2D-w?&nTm!dT)18Q@0eORdq0my?9!;88$??1ZtCily)#mVa?ox=0 zMHtuV2M-M%b;mulv`u@|K24!Rxx)b`cE!}?p<7tBzbpqm$+ny*SATA--gH``Dy^Bi z*|r5A@$w=|;Qka$F~MCc$_bJE`VHf#h0D>M?=V#}_-LhMLDkYnf9?0b$k6(DW6{(N z;e|K#-d=4^6(;$OOysTWazw_^x6r-S&rc1CuMD(WR=+-&BEGZ}{?e>{)@;;w7h9kA z3X-=e^F~#LM|d5nDE!SNs5e&KfJ;Ypu&cN1q`0_bF9|B@toUfJCtX#}YMgE8Rm<#r zkgbq8G#OT|**e{O42lio4SQPDgrNw<{lK6U**mx^JqP96{P|K!n^nmkuQRFX#IQ#pA@jTkhBh{Gsg9zAW%y$>Sn<`tDv$=}-E8 zKEcSZdYjF*%+s+dM*{g)e(`M`aT%EdvvgGYZLsaS!2OK)+gbO=+1VDi{JiO8`ZqAiIRhqV7eT6WUOC{n zJ3c05frsD(TXfnQRqWadQUkMl-|=EL7m2VGK>AG`E!jGUL7cUUlN9c;pwLuYtw^OX zAaD8Jv{HssUHaKV8~u-(z1SGL14AY<3RZS`4cL(C5-0N`;7hzDE9!zy8NJ*_xa!JS zhy`Rq>8a+vHkT$qwFUWSZ~KgTWP#WzTUuFms$54*0mMT}fZA@?_bqms8-C2vQvj)J zF#H@1#}Ab?2IDUgp5Yq346<}8eKccq8Y@>?7Kc>i)Dt74_fwqAZWTQuf!&$1 ze1=9+N)oGpxO{gOI4z1$&{kJr=+{>Dk^- z17CO%VAPj-3Hf-|DTghFT&6hK!0e$J1)@I-)WH-XJPYVV zp8m#u*}*Rtkm$&JK9X-?;6NMUenW(-KUH{k!d$ie^aam%D*D{@XXbCl$v=gM+AYuK z&OBiDu$=6%WaQAPLccSeV_G0lB9E_XEq^zL|8nPkUdeoKAcAW1%7d8y@$%Q)9VU<8 zu*--8tMqf|I7IDFMgDs%*J{s@C?R*Y`C=s!j+>TLmuGMSfLVKk1M(Ew66CxbhY-#1 zVE1#1bKG z8FV<%V-KRvgzz!Pen1bT$4aAK`SuR4;2QjGiqNX7JU0}Pjriq-Rd|wb{2!CC5xsD< z89uAO%~TKP-i$!0C$x+n<^{kaJpG5tsbsQjALqZ?ujw>DrB`i+EupEUD(UGQ1@~Z; zw~-YR%YYCV)h2uYdjF}QL>Ud@U|LvU;+OA17>g|1Y0H<6%ORlC%?G*5y_hb-$I&7f ziY-*6!^uF2%m>rcO<*BEigsjk5o(vQx*{j}Ia!7tjsB=JZYE19m@PY6aSYFp@zMzT z!X{s0Uo@NWSQP^&V|dP~R0io$LYh&e9}zA0LzE5qFDiO92zW;iAdSGX1;oD4PXar6 zH5d`osS$J4Z@le9JpF%RQmb2{)+OcXPXiaz!_MJV`1=M*WQ*v*t?#G_!w1d0HO$^q zYUh9T4*dP$=uQViNmPT0GPiYPVZP<#pGXlhA-ZaXt{;j4S{p)8-c}a`TPAyg;s4H# zt*-he9^-up2pA`D_94vb+pfuUO8{63_&o@-tB zZ|bN>vni+8RWTi5lkR8z)HOJoF(Ve&;AXX|GCudvRX%vK`d#Cxz;6SQ_`x+b{=oQa zW0Eex$lYwl{YsRf;C-G0CtjlAUSu1&x>d%ivxM=(Ak+%fm*yYN9{_iS!?Uc2-oR;{3!tAz0od-eKN z#+dzR_iUiYO4A?9bocDxogLCpBlHM~$gv9#;+TCbAMRzBQB!vD={Y~N$H#hBwy+#L z+}peR_YKTdxmn9OXPzFLUkRHML!$|Dg)-Dp!+-~YSY2l6HaC$yLzu(f{w79@2P`Ve$HTU>5ePz7O*!TMx(F52!Yfpl0d(bK1R_FJ!>CTIVItt*%M)(d; zv7+_u03J~`MGWUN6U#ae@BjI!&S{rJqrt%d`6Oj zHcnLe_4IE=S~)wQEJL#P(u!VE z7f>=xuJ+x?iy^Y!rU-(qwyBz9Qu#2Sy9Jkh{SMbyP5F^lioPmPM#7Y_E(glqJ?=0U z(;UD{p+YX>Wxg3FXx@Z2r*n&2fkm&cJ8Fu*7AeTvhS9w6_){p+Qd%~B*JRk)Ic^J9 zv8R=d7xPCjks4wxUd)ihkg=TZG!kzo?pY$&ii)vRZSDT9nWv$H&WCEjS8Q8k7PN5M z8Z0qNvq&cF*O{#%gjpUH11av{>)SbgvUYwyQ9AX_%slpVIfP#P?=pHgg#01S%C)Vk z5cpBF>~?+d=+pSY0UDv0$v1Q*Do&1n|0X0-tH2E+M~zurwUPT^^qlDk3v_4~pkUh~ zGAWkzk?`Nl4#jYL53{95heFg+I({1?N;)ClqWM#@PzdnNZa|it=mF{CnGw@Bc8Us! z$S3lRlkSI10JD)gt?zJ?0!Jv-Dc=~m7HBGEPR^QfDv!OHO=yh7vMhs{8}&WmOhE@M zltsA{4ubxwI|NU}J}#=h$Lg(U`#KQ3H(%nP1qwQ|M31-sb{lewHxwRwOmTUm#nnFI zg}Cspz1Xgb-?d`rHD7NKA=?mexvIYtMOGSxs!}2c*T_5#N6zG`jlEo8lBQ6ZcxQr5 zhw5;MJYUE}ni7SR-VJyLKA8ZST~;NiSa}1naTu-x z@CN8q;`5gy`k0vTdcmFzoGeGV4Mapdq88IxXwD z)jA!@F^-cj=Nyhc>lleKveqfotrEow+``A~JIu+_7-=0cscGnYP*t6wQkA$8nTN+c z_2G8)+)WElU-^Rgk^4zACY|~aXp)l91(DH&-&ox?U2tnPNy9CdJyd9;PUtAoV%Hj_TCtG$&6ZCSO{a{NE8{O*k@_5<}t7Wu4eg&^= z!!-`}`jnQJn}F*=n~j$Ep&=jCnACQ2 z11Sf(_p{1SVu)`ER{?jiiG#O@O2C(8VP;X@{JB9NbO=N+y0Do66(a94Vo$=PTfv3k zmVRC%>5gy?t_a)DP+~1QJvN4Vy+B;ZSTbl|whhS4;+=Zms%}K8*jd zDm#6+I+vs<=3TYf$Y|~J@;a60^l07D2FH^U%=-+N7asF^ziAq5R;AbaNy{5uBHVdGEAJ2U& zn_-Wc(I5BwTrgtej@Mv(_cf2vY1?oxSML8($eN6sSAA>fz)%Z%_tM8NC-pg7G~~u` zh2}_JqC4?K7DbJ*U~OsGBtIK{=Vxcm@hOz?V(9LC=fkTdHEpYj^+EeJ%o#t=Ia=u( zxZ#W@8a^j~I%Cgi76_>O^-3+joo+gB_nIq-^)`OQIE~`D%S9FN=!&>awjS1Kh`%H% z9RZ9{Z4ulwz3hOEj3X6yi8yI?3&`xUf8s7${r$ww=l*8Y++XP>wx&}G9!MDdl{+ln zYCzwSj9!Jipo8G8ztVlPS_~e6ozpdm%*=}nd%uT29r-7xj`(Cd6Y!=L1wSVlPb>E6 zFdZxAE7}I*<8HCZ6rar6I_rq-mdxdD#y@xjV^l)^U3TU_49q7rW@BHP%mjp*nc!kH zexuG^2tuA@trUC1*B1&3D<+e_-%X1EFiahx3ZS`o66+r4 zZa$2JPT&%yJNe!N&s^%pG<#PyhRG8eaCgdJO7g@D-a_J@wt7uQ(U}ZidjfMNW8&`M zM28-pUjM9KKW~goi~c$$TKMBKu&T*%B$K1QW5!`h+=5yC+BoybnVcOOIU)Y>^Z^{j z;Yei9(LuCZ%igc5d3-!nFX`C;FiykpOP%N0qfzKM5$aQdp6tnjp+{3W#$K`>c#0>F zDyW?;N;)>KZj&{fC6|ckh6~`O6ShPT8e)w(8)e$ls8_oM{Odoe4Z*qKLpO9c_M)b7 zmV|LT!zTV3u0r+t0|oyCiDJnfCX~D3C^~K)f8ehxYdnPz-C470OS@Z~&%v@gFLzQ6 zUfHh|^_R`qy~x6pazCXrMb@#{o&zI=DRCeF!cD@Gnl zber#4+r8LP7g6T6m6Kc|-RrlVL(xR5`~Xje$0@_-$m0$f)ys^=K-^lXW>J7HvFbV%z;EBQxjt> z$3a>~2PiN)%bwmlJvakn*jui2jJ#Ch_RID)l_}p;ZqCQVmT_Deo09NH{aIvjO`&6}qhnyv|3gj(gyyO(v%c zr5j)y)+dgjjz+CxvE8h!LLTXyDP&FPrsW%T;`l^GBKQPut7$=rH?p<24I5`s$# z_GzuIMp&i`yq?#CU8fx$cMf`~FE5@qTlho+b&Oz=ae9(_Ti12l9jaGE0I#oVcogX3 zSx<)ehI!2!%A$=B{N)+C26B|}8_xa5X2E^jzndOV;IuID)0b;~N}5Fr=#fA05fBa# z4&VA^{rlfO8&8&j{>^Yg%|2-^Lt{Q*bz$pAw|JpBUXTx3u_xEH(2hj`F+G*Yknn8k zNnd7XToIZ^2bra0dY=>){#GS7~T}q!RyQ zH;vPpC=@j3Z{`@TN4>Qqq`O^)zO1(4&X>S zRP$uC(?Y>+O7y&ryl*qzc(M*svY-cLLI~t61?(XUnQ}RSB{m5>j=R6*148KF9m+0WPlV4>By07QA zr2$ldWl4P4G>zt(yY8+)zJEzgsATPogYQWBM6>wGx{yMOXU>1$7rtzJGf521X3sQc zKS|paeB9TE_KlRt1YeYE>E>vn@Ez?}72aEM0a-$r(==$wxhqa5#cYU^f^zY*A!aVHIa%1dl^pr~=`NPd z{rxOxw*lYM;t@ww#vWn0j7fa)75qLO1%^{+n^wH$r;q*Kq|{BGyoIcCwPNjw(GTA_ z$mJ`>W3Q?*hg;j78M~@ujj~+i-CNG|(wW%oT}*#WLd~%g^5LIevnFDq8`LP zpih=f&>P+&my{Q7+VqtsmdR`qd{%^a$b-2cb+y9X%>zEW)}yTuxP1Gp0s(G@W9n?% zI*@&)H)G0>*zguyjRublaD`TlZ$F?+7_AyZBiOqq_aakapZ70oTIU$(i@0mzM|M-k z^l3AapS?Gu&OP>;-35LAMdBS`)1mn{43C*4OjvMP#vX?7=5L!ljt6hFEj85%mB0d z+~+=VU7xdi@kRZntt;Iyi0eD7Hr>px%V6A}Su9{3E>e-lVet^xx%MikQEo)!)6%RW#SDcv_jb3cyh&Dw`#f~}rB)enK+pwlA`}$KrHzegAPz@~c^hSW58M_4gUgb#laPpp z<%KW6zY7l!FYSruvgz36`b*yiL-a$Y5>9e9BnVK)^6*ZZHC9(g1Gf+`_LRO1Jj&GV z{@Xem^>02O|F;Ia%C!S@&0ku~pSy(OI%jb`$|s-z=kZx-w-6nxml&ye>av{1)|gVH zDFE%-HY9-QhxsG3OZeN9OjMTzar~C%6{KS5@+bv)*j+g@OzaZxqohdouPcU!b@UOk zb=iRH;Sed=iXPF0^aAoD))m3zO{~P*tc@icgRXxu`)n)aA}g2IP@?5=Y1Kp~?(o2^ z*qmB?z0^`S9lE$|HVf(VVcA56V*RuVdZC-mSqAx@bz5Ys zGTP-p(KXnW5%*aI6XDaA>s3D?GI`8M#e0S~U!SmZKCevUOmC*pnXK~n z>uyxsQF5ki^cs`WS9DkYOYODEY z{ezDt@y3&cc|m(5vP%A5*P$}L_L|Nfl5(>EvJ2M4vzMH5Zhp`W==dadW+j9(-}+L#mW z(85p5d3eqFctXrdXpdynA3k%3`ZJa@;l6Bs=0mF z|KW9Qx^~VV!qU~>MmcDNe{k3H-Z2NabAR;qpl|WWZLVHcBv@+qzTy4#bTM|WC{Yxg z^Zq604EA#PibY(opinHqzEi75+MEs&>x+BvRCfH(Tq!QMt-zafNkV{;T-mPR5nB>T za&@wDtIPh>^>!Y|V>F_xSU){7z^E$r4i&Y5Wzkv``win`vNyyp%qrH$#3>aKQR)K; zbtNa-dD=JawgCyq{x^^sXd`8(o>dorlgE_h?X#mEE~e9j*eg&`j!#$(N~E=7-2rlq z5{F~Uhbu3ekOJ%O)c*F%cD3dY?k&bj{LO)R`Gb#YFgr-?6bQeJW4r=!Kj4nKQ@EW4 zApX7>C>Mk(dp zgKO+uk&r`t?Q!C_-WJr`X(h zZsl0aRn3ctdW~qv_*tSdhvPL2$-93f?-iIA_F^6cRZIjDjgp%%pw_-j=**dO)*FBl zzh1Zb_+is|@>XQ$1?-LWUSUSo%pVp|<1Z~P4*k?MNj&j2^gF9u*NL$rePB)OuwQHa z`jZ97Gt=UVZ;?W*_eYxY6LjGQ+yXvcJ;5t{{D2{f4%!x&drLT z%w_1*4^vGJ=g!Z7G>q~74F%eVlN0inZGQ+EzSv0L#TgEj@m*T_L1xO$j!u}$?TgI? ztg*GgUe!mt9h$L7CtqT?{Y!v6@%Y?!7FgcBuX?xh7}%hXoF;J120h7y z$HKJhikeE+eKKNrYl&u8>+CUiE$FV*TeZBd<%^H^SJD-$vqav|2`=*=eYaZp1R;*C zaEO>uO!zZ2NRDsS+6-(t^$qxU9rU_>d9%*xxhjj#Dc#~KE4mT{`t<##MNskIaPO2@ zf7<#|wW)gjkiu9v-X{k6h4~K_lz#N1E$ZmsZmtmIALF)@sR~Sw<|$vRyLe=i<5b4< zZ+S%DZsC7)#?q8bD5~q*Bkjxs}_P6CV zjX?B|!s!4Q^bPBa(sPVO0M2a2Qm6r;O!QRpPQ&Dy?!EiHTJ%~{W4WlEDT{!Ubp)9% zM#e`Ad*L(CcEs&rV1<~6?~d@mR!jQz<8-X=ECktP&TVTZD5!&JLZ7>w7|ptKlht|N zCD=PQPLw;TD^OH)EjWJ)XA)1;rG?!hSIW=j=c;^})ZW2*~lOXcLh?AZ*>;nK!m*w7X~^`vmhKPLv<4q^v*{IkDV=j-{qzgB;8 z^Is839*zdnKCMM71YWfb93DXwaVM~$skggEAD(5oYgqF+=BtkMn3Aj<7Kt27&ju_j@#5HBI(u_u8P*Y@n4{zWEHo$ z=7%iS@;Ftxu79q6PNySzyvdJC1L>|k?i%w4($SN^yCiCteGGzJz2x#yi6}Hti47mW z&BeRTyN6dcf|Lrfp1|FxR{FpLfh4KWEN)XA_>dF31|i5*i2`hzfPhor zAc0%2%^E}e-%|49a`u2WE>wfX`1cdqq`0rpSQ3_4VHbDwN_l)OKOXCx+JO+|A&oOd zl%qMZoW9~<^loS^y2|-I@0b^PbW{`)VBh*rM3^l4Kn!}?fpi1GS&>do(dP>TpTqi4 zKV)Zinz2|#sPOm+^d?62yo($yB4~`YT_@ga?$Cvl7?hChXL73f`j|AogrPo2b2#3!%@Vmo9 zHt%qrq84Zbt&Neyl2a5fCI8&x>_*dEX54^|L`+Hd3vXq2Aw$*`b4>^yeKB5i1^T2u z-U_~z=35Y70_V~OOSLhtPS&sbNb(iJZLRQ@?iUW>s8;^pYb_Wwi) z@Tld-@ZJC1_!nBdtzv18r$Qk6{rrPfb%CiXN$LLoVEw>vf~nG3h$tysdm~Rmx0r6? z0e&$5$Om?gT)z58l?N`HnRpAa@Mae^2Sy!cicjNF6Hq@s&uwGsHfKMcU;1}vgNj*7 z>(q)IM$_T<5F==QD;y8x6Z@D7*T##}D;CtpEQrv2{^k5O3zNUeDx}4Lhlj*itpdJe z(KNHp@#*h9d%dex*!B=!g2vB?2lz@Dnn4fcF?}qR36YGN42$>f6!~VqSZQ~(=lo^S zp=rVwKzb2>;yPZ2e2#=sL>w7!JahGRamQqR>;lTaS2L~wJkKh(=qe-WjI^rn1wbPmHaD z{kdb=K?T4&lW~35y<(Hv0!c3@f5oqQMkihr;}KYDTSKtNgW z+mvHmcm9&ZMew9qs&hW*8`fn*)Xhv{)s)EHhvmU7x#vFhW7PkiC4CC$!)x^9zv0Ma zvFyFEX`JK71B0_{mRL_BuJ#j7-j>xWQgiabYp;*e^#(zHloPDlcl(c zF+-1jM)iYTcFq0;`j!`cUC>8Q=RwmPA{)V&`n_LYFAX=a6vGdwz}0UQe69wZXl##K9^yU!lh^dMlqmL*qmvw+oi{U<#o(4M&fE@SBPyY9T=G+!@dvSM z`EGT-P$vC(rGW_=NrsKFh7Ci?9u=M<&Z6^3^F9I%9Bm1~C<|iZV{m;Eh^n{_{HLg> zzBh_Qb&xVS>g<8wTZF71+Lfo zl7TWg83k5LOADCp6%75z)mrlf1wvW?pL~+gA0|*U;xczdO%0Q8Kb%mSS_WQ^g~WdpZeL9 zg{xun??%Ya-V-f?^DPUo^3)jIE=~STw-D|Ml$6M!xuH}_l20izi))#vN&RjK9u zgjg9jmH6y}gCZrX5#=^bBz5(}IK0NLoH=apg1dqs!3^(#_#=8RZ-fMXVmQeK6w*ig zc&k(O^Gv!)Jg8L=9o&@qBU#QgSW>Z;BOL<0FaM)t216fN?iW0f5*=1U&fSWPWyxbS9Fcnfi zZY~C&Ey3oIRI=Nt9@4YK{g0J2yY#!RwHLfO#1{%;Osw*-&jIdXPh#Am*OjoWvsFAb zxY~$SR^=#A>{WO^SlRCw_AIA$QWBn1n9)a{3kbH81NTh7$-*S!#@x@yIO|g_y-9q- z1DF+|W^HdnukC&4LHj^1b8x?A0%SY$u>ZBrfTr4E#-Sg_>e|{TO-)HU+|rsFKwHVF zxZ+f!W2NzfNm@VO{@((@YdA>ITbDd#YoDD))1juSSK%&W=l)O$x2}{*)m_u&iGwkKfFFHnl0v71{3j{JkMj*rgCiIOTbX4)!^Tst!3`&=u(w_}FMjvQ00vCGbe z6zsaDw5DN%({K|p9(SjAqbNX1(t?29)pOHmTbDHdW}{Q9;*MKJ7R9#dR$~?r&~$L? znorPd)gVb2gO;hJ{x%{1DZF~*q~C(e*N~${M)6}}e|fDfq06~sx&fATyVaKU{mrUh z&|1=Zsb<+-bjWVlJ&CakVSsy{S|OgfgLm^dJA|}cR~_-yLKn`R<2|N)6f#bqYxLf?IE>RW;h;U=#_%X?FTsSgLms>h|@?Ut> z=y{Djc8!-~!wD*k|03QXJ|QlfxX&Xe$)^!^sP$l0SXC&~6~I5!m#e*@KWA6}V7u!u zekRj$-J5_deiuMkE8;3z@F3`UKj9XficeEUok_<#g-s5p81Xz+d;5`2f90Y*)PIns zqLof1Zrv56G_uY|x3A{~=iOxkpBgbYXCrqOdodEH?DpPPa>xa4<{hJ6moiaog)7m> zL8?E~FDHY1gpvG$nJ_*4RgRr46DsTVPE{V#@pf*fwZGQ$eS$Ln@42kcM6(eYaJ z{#CWMw4@?a1*H7<32?g#ik}Y|1J0C9Zs^&g&4}#;Y)nez#`z#jga2cTCE`hY;^nTtoG+^5M(nxk7=Pmowj$?e60;IcpPSBdBk*|E{Tx}aq0dWo# z`l;|XV&!B1l$VDnVVt5b;u3Sj|7!tandY5ww(fDK)mkEjBiiKd(~_DPU{hYwJXYD5>ah;D^#?h=rT+P%?IsmiW9BYkW8M zQo!CD+fxd0d>O5g0#4b_>d)77b=`1R|0&Rxm$g1O8J@*^F9LL@*3PFmf)7mW5Sj#eSSp?^tb%=L5YF;C z?4kRe$nHVK$svo^jIV2m$K?Wl>caK=5WA#=N#vU7wfNE+kQVb_*)%#6*MVR%=$6;{ z&EP!f<88zH;xpspL3qXaZiw^y%Zsmv{n06O;prDyEG3P_|1xM5iFLuEMWElQJyJm; zQ=%`nDIlZnCz8mFH5D;pY3I&z7&3-zrsv!JjMl%IqNsd~6UG9O>_5=Cek$IO@;ZQj zrxF{?v_{M&a(m1d=H^+8`@QGt#1|oKVAXsCYmR3iRsQl)HV6ye5su2}hH=f0CM0le zXH0r7>qzCS_IY*+pRlQ(N#X3znw!fn6Ir%TWQ)voyj?+*Rq+_%>+b{YwyL(Y$j<1y zfWokk<^zJ7M-Q`|lQ}E<5sMo&^^ciGRmonT)iRK=@+|Brxb{xuBhvEY?w>FQUcDR~ z8l}+!?9^gN86lIQ#_{qHVvD9hBHh{ovG*NCZ$}rWr@kdt;fQOi2#>$^U6xb#Gq+KL zmh2K6@3+1|N0-ep-4#gRb-R4>aA-WKn)7C`3vf02%I*O=K0WnYwj7B{jzR$Cn#g2w z7Z>lO@6K-GTG$6+!2;K!x}nE5z04+;6mkwp|jU+6z2+6tCmD+ z=&R*Ad^M(uDcuJ06zs=}X*U%mS>*TC0zFTh=X%!23U34^ z-xr-DrEs>d30Wa9@6$>sos|i#xy=$MB_J?o_U~m}3w;vkq@EVzDsVSUCg!*NoUlrr z3}09g{fq0<8zhmZ8fB49uDkY$5jz4a=3|`m`8Q?tC5M87MCThl#bQN z)o@ca6Ix^^BKG&q0pl!+(54U_?7rj{pKVR?P$~wzKSwv}S~M5c$$a7FiJqq?@6Vq<|FgL& zyojy(irZ;{A_n5hzS%C7(crl_6=OsJ_UDF4WVHJ#CNwD=3wu1n5GtPtkDCL8L&}NB zu)CW+k=dSHgqYOpev(|27nBO3V;ppq5OgBKGynWqQBMUJ|AN70Nie5`pIvu)1qn$~ z8$xb1{Nbme-s+jLmZ5Oz8iUT*H2NkPDodwdY!kmeJV)aJH-p+w;!7rZ&?QID{yoZE zIms6mysUunf2()e4ma$5%d?G*7E@o=BkCCtx)%>*Z~t}@i*ImG#31hGL23RJR-C$y z9)H)RWp=M?ff+q6lS@=rQM`vxff6LTc)k8@hArsU8ul`&EY_|xd8IpFl3D;3rn&EU z$~lI)TKs{>KX;bieaOUc&CjIz$eCCf;*Y0LuH zz*IPkO*G2|&RjwB5JNYCsyyec}82_|4)EIf1-|0diIhHT% z&(8YBFgC#lT^XPI<|oH}D;jPcDhLYK{G2~78nCq-N^N$Q9|d-^aobnMnBY z*eZ+zL(q5`_MrH7y46A;UdOT<9eKm}kdXxIQ$rZJQ+%2FO3U+7*q`#;ov;<*{n5EQ-~np{M0K`0T}HL& z6&P*JD>{*yh!PEuPQE+ke|L$+?NV9oA?ixV=N~&SO{30C*p8RD5!uXllUIY64QZ-# zQxY)qLr4&9MpI7poQcEQfu|$OfN|J-#uT>T+taAQLN(vy%d%S9UK;NN7v3NceMKeP z@r!?XdcZ?RLe^%n&zl$sd|Llz1|KUEY_@$HjUA@PI?-g*3nZn5=roxmXfrkdbnJG5 z%=w!$Xh4i6-C+j+4vb-W%trqUS;P18Yl#i zY#v4nq(#&H*0iZ5)!T`BClV4ols2Fp!aQbrV1`DI9)a!Q>AAGIsSJE*9VaWq2S4@#&WS5Wxq(!c<5~4w&V&4hy&R6=Cl@=^a3yu!;tQljtNFQk}3{ zl03q(*FN!@=r)&H{(N>32@zM|aCj9GAJbnss+VuJbH6=ia`q64J8l6?w!4qC!=I`v zL|{y|oL$bJT(LTabV`tylLA>KrFR{bvb zcAB0>Y7}|-b`~KkvkvsSudJfzdf>uUtXHt;IdCVkF0-)kjV@ z3(o_;Q`9v-7t5=XhofAS0hZP0w1zgxJ4SjXDu3<%CcQ99J0&TyV>#m8EP>Oj9t#NY z%N}gCtfcfta4v)J2z=uWIXCLe()ATZ_8D;QqFM@u1Pr^JM(hPW`RGtCleD!^>+ug*|uxK{8mJ*JyF z&1vKuf;#UCITDOQN4=+GZVtu1i4;xJZl4TQ1_Hv?5erfSqfxH$!PND4)EtH7iBZ0m znfLPaqREj@KAeiK>rMPo2I5@_Pc7UtDYAr=`bt?`pXEp(&Jg21y3nWmDJBaW=5*#s zgOBO4?s(ZISx3LEC!k|Qf{_=S(<~5T0(!)kv7N%r z(>Mu%8XKK~{3^wY`s{wIr&1Nw`|h$f&)LsHzke@z1`Z9Z@+7`ILE7wAs&MEfU;qP{ zKLmUP@LcK1F_Q&gm$$Zl9M9zgr|R6D&20F4q4Q1o_sNo~CF$?^1;oWO38J1JtDfe6 zdF>n>DFDlCD9jV&@?^uN*lMfW6`ti%b%pLXPN-rL6Q2|?FA`=Khu}W3c$b`Q+`_)2 ziIJiG@2K*=Yj&C+XQ zf^Pg%PA$<@s1$a0Ev>A8L@~|jv`tp zq*&(oMM&u2(USz^pAto5++870#&xKRcT@W6ULlzf|E{n#SpJyz3`lYf~l&@>ThF zb@7$I+g}pJh(M(M!*H{_Ftpn27D6xkqdu$oj!+BavxZ(6!Xkj((Y@b4cG_8KcDo%* z3c6y-!(woF)gqF}$CmhnAij=!(zApfXg%8UeYdkbt_I_SQ-|H+Zj-)H9?SZw(+zw1 zg--gn9(yyKX#WP6wJwq^cS{sml<%zh3j=sm+pm0kf4*eSRwJcv_cV^0%JxrG|AEgL z8udpH63%mIn>^e>q~Vdhio9_3x=V5s5F-QUnnZv#nFhZz&Kuo^ zpT?OwW>0%R5SKsEwd@wKWR{bC+DwPAj&6-p9BJ2Cj9rxlmT>XI{sDoA1 z&8lJZun19-N7iNK$(1rD$tgIS#pS7tHjhP%<#!Wh`ob^!0H?Iw{*USBdGf&+-_7FY zt8JJn@`^6+&v|x+~3SK`uc%0h~`_hMzC9Bb&^M!8Y?SeV>0+GZ;Oq0OR zNgK}~P1)&1FPJzh_eq(=5|&e5N3j<$Q}apG+@R`mxB1t)Br>eLEnaDP*)MEwX7XXk z?=9Fp?1F(FbKo9J&>&&};{m@eO>q9nx`?0fY>T7M1*h#MqhhQr`%pCRtVvrkiq)^MZl)Ud4>huIC>gj~UJWr7m)ig~@)qOE)EE z-mmxy_q@5CR2@T~`~guEvD_b=9+fspC0Ou6)eA z#Zm!Vbp<6-Dn3lo?wTxl65z)JoF>-Uo2*=NbR@mTA`;=N7r9u$f82+^42>G`}p}ik_{$W8^k#Gx8017$_yqthz9}Ma1Su1 zw{vh%*-_>jx8p;s?AlWJa7Q3p+SZmXPZgNqdH##Sqkgv$GjLSeQknslTcc;sR3qt? z>QguepV61d?ae4 zCiJxnAJDo290T`P=t=bvgqT?b08*>!VD+?Btwp66f^d3OHlNvafM{VwRiVO71x+k zf%cQsC;r8kvQvFF>=*6`7cdM6^kF33YI$P~ky4#h{K5q}b} zWRn*aIaRUNT%AFSES!&Xo>zKp=53zHLq1p|l9&`UjSJfOeKlDjZF%%;D*e0~iWtlwYH#nUmQo~Y`wkcD^H*ZtE=;M#ly zokY~TrOWKS;dbcol3A5@Hyp7%I3+bDK#at{LNkqbXMxjz+9*H={v zcNCtJq#I>nI3MKG8v(ITx>t?tR4Sj9@MA zDKroXOXlWNOnl!j>c<~+i3bc-n>{}$t2sBX+t=IKhdnpl^}?yy;8f>3c=n1(dBnUe z|K0X}Au14OKY$iG52T6wDw&3T{5QhUL0P7UnB{w%B$Ywcd5q1sXyK8+Mr!%{`P`#W zT}9Pofow)w>}Z~1^mv6#-c__~_rn3)^KI%L53ZM)YDgq+?fvslcm}M8B(7W@bbOSQ z0T*fV!k9ZQ0YWHktpLbBl|4vuXvix-ETP+UlA-(MsU*tum*(>3!TS@59%e=bRy3+N zbaHP(J+%-6UYI?um`O`DtoN|#SkZ63sOXG;LhBU6-s5Bk8!)W$3?;HFs^jUZwY-;q zH^OZ!Mux_hFL~N`va~qgdwb6= zF2-9~wRPx;(X~E*mebVK)Y=2BtfbR@jKBusngDqfFx$%B0xox%@+Gt?@xLj$*q%NWlVo}`tt*y z9$K8XzlVjo!upQ#s3b&$*5=yLd^2oa;y^E3B1Yv-ZSmCr+&=)iXLV?|hZ$hdZ92cC z#>2{MUKSNAS_Aclf@z-h@B1zP>!OqSiyyp5r=R9|=IB!M^ap>~ZvgK5ob{^l!G0)m zP){FR~>R32LRN>G)UFQaIOI&At)eOqPaM_xMp?U&rao_p`uE1q;p*eWaB_=%Xw zeS8dwkZw!&;I*4h#bej5K_DOlAoa?u*A*wCD{FAo0G&B{mYKNA_jP)5AF>; zkaW})9!-4NPW=&L&E#B7DfTP>L$TF+y1>-Z)C(%@Eub-xGyoNmh}zu}M(>fdENYEU zZKiU{VI_OK!=8s=4!udGQA;k58d^zL`RjBFiK_|0-XOU2o;K8-V&h8-KSN1HETEQPS=&j<=NS?fliS zUs~C+6W5R$EPhO-mT>l4EK8u%Gnr%wy}Es$uN#f~ci~J!omWq!8q3X)2_vORzS2g{ z;4^aUU7ewYqxH{G8D6-nr+lWxmJEp&dn(Y7l+Qkku*EXvwX@OipMfGN<3<&;d-o9> zSyPP$bi&-uC8M#Z4(|HZBpj*9nxg}WMh1NDJ7PUMUAY?B2I&%JaQ{7mrXb9@_S(6} zpC~lBim?UiQE|q`_WJh)rCPP{KydXoDpD3j_{pz^1$&lPJd4{~;-S|ucl6Skj0v|u zSf^Tn!bfxgRZ7)lo%MsiQpm9BXkDz(J9{|zUz|=y*zn3ze!s!ORc2FuSY7H4C3<`A z++oX<{l)hpX)AuJ=}i(%W{roVa^o) z9!ql+s3RywtcS#fg*ht1?PtvHKEBh#kGWaeN3aztHH|R^)->yI;<=ia3S1WT=MpzhOa;#v`YhLb2kka&lB=YpjqG1|$NU|S#)8D}+xj~!Qsjgp5T zg@ZqbFgu|_$6-PES!#+{HIBMOzr7A=@Kj5pglW_LJkjcMz4XcewL~oU)C;t5*m{!9d`V<&-3-9K41xf=>>ttg_VU% z#d2;e7waGA<^cG85blc2kN-e03%=mz$4POuCi%w3MqoB?k;ky-lJlQ;5%9F+G8PA< zeg7^L7auPOs33u+BZ=X+aAZoK5Pnbqo~)*=y?uFWD=rNJz@Gol;65{>q_T1dWFMBV z&rtH9$32+4yE~Vsi!Qw6Nnki}_}|~lyW5NhNUPDk&V%uD4{ER9Z0n<+VK|_jUZn1m zR1?1-UCVvFxd4ez@Z$NuVFv)IzWv!8;Ajm5>DpS9ctgy6IJ`E`gk$Vg0!jH6!|L9GDe9a_q>dv2lOw* zu`)X0AWF}P3CrRV=|str_QpbFvXgpL)Au&m$LOZdITP|eF;Ge22s0O}Pe_3REE&b% znd%sNMxU9D{_nwgwf1QtwX}YuLd5(_3f%@o|oW|v%CNbmQUkN0r#YT5F@rQLSZVF+?;`~U&7E+ABQp(=B9T?249jC{P{tn z*@~i0{V=4yaql_Z6I)ANb)q4U*aUKPc`3Yr&t8$iRFV$0&5@kl<4xmYg+GeXVydHR zBK}Op!Te@FIaID-_Nb^78CR&_a+R07@_|gM& zA4Lrrp_jQKjS^N2{rQZ?sTW+2E{xhzlcRWvLA2t&H-6*)K4zmQak{>XzT5AX+7o}O zlf3EC!lu>Vuw~T`W@d6CT#QG3pXW5}H?k12$%b2waG5oO5lA3?zGEKJL(Oowm<2m5 zZxTN=n;JTM#5H)&^<#}nElCmP2v2ZTb7-!RkRQaW5d2|^Q*et}%%9;YxiF%C6gnW2 z^wUflPbIj{e|I-`r1rq&sn>&{pWj$*!RBK&=p@8;$`Kskq+GDjPeImgsCF(GBgnl$ zfu_J_M$aU_8g49f>Klk1vfCfta3a_s2~+08P`JigJ&M}Rl7ztNl;g-8k~6o=D;kch zJa+^&(pEm)11&zWi)Vn6b+G9LeSUqoI=FBR>a$9Dou^;R!5#XOwB+aT{s9wvMN*|G zuV}%830q>U>TIbg^hr4T-tcFOuvc4eso{VQ?2MwI$RJ`LaaZou?o`7`d2CB#rs$oE zsv?ip_WDJ@{#51MoFdH%_C`zvVw{FV%@6iAfo49WI7Lkye1g~tdK;cRYC`xGEo>Ax zSV@i?YT|^Fy5({jO8!_z?MX$MqIx?*Nzt&fv2?=K*oZJIdoH_(vJxZ*xUcB4sh8PR zc4m2Sn^}Uxk=O{@@v1nVaH&V4LNH5VWXD;otRzS1trV@g>#?yA;F#i;CzVGG81fN2 zp0=L`m18VFoMdiSTW~ehwiWVcaV!hMp)u`-BN?p$KyZ?HBK9i4+-4Bu%bl(yJ>*|2 zB}epOUVpkz(7opg+`BOlC=58IXV3hyjs2LVPyk|KH{kp3xtaL@XoVuAXnt>Q`U2qc z?!z?Y906C_VCbxg&qc=?ASr~V9I*rLXp3agECBIA>32$_CVau8q^!K;Sr`|G25imH z>-XdRZ&?|@$yX}svYsPVQd0VF$(KQw(@~az(_Xar^IphWo=9!%xDES3S8ot}RdxlZ zfOPJ}oe!Hqm&0CZG!?M^r%BdXe%RZ>9Zz==U9D!aRx&p4_O)ARD%0TvWg~HiD zKr_!{P#1sU`H#Td(t;zaSyNL(O`3QE8GI`gzU)iassCIl3gUC#`EeQi<`2A%ZGL|P z6ijIn6@^ltnE4YNn%$pA{~+EtPd$;_hGU!W1`vHLlJpalNtGG9Of7AzOMO}wRxmJx zJ=^A_RHXH3zJ6y)@Dbb2H0#DWZZ@cAOq`*o15Y!7n|H)q%j8;f-i%tQs9WWcaOq9PsY zzOq5mVb1EThFB`RZwBgc%tKd>C?4k~vg9beUNo#G_)~DQi@DQL1lG{jwS_2Af=Xo=ya|T9t!*ZW&Xc$YcbJvOv%GNO$Uz5eMEeXA#utG z?2PPeAiYuZ?&9HG`H6niK~U+sOb191a)mtW@Z6aByP@2`S=7LftgFj78TruMH?kK^ zH4ot2VFds*0kCXJ9;l-52?(q*vtxnu0%l~7Bd<;WRi$mU;P=X2iJ z<;EZpHf)+!(ZU+v+S+Q_lmcwixSsjYOy}{0xmf)e

yqRvP9CW#kW4g4a##Su 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

+ +# Introduction + +Deep Learning (DL) continues to drive unprecedented advancements across important +Artificial Intelligence domains including language, speech, video, and multimodal applications. +A key factor to these advancements is dramatic scalability on multiple dimensions including model size, +sequence length, and hardware parallelism. From a system perspective, DL scalability puts significant +pressure on essential subsystems including computation, memory, communication, and storage. However, +existing DL optimization efforts have mostly neglected the storage subsystem, making I/O operations such +as data loading, model checkpointing, and offloading the main bottlenecks of large-scale DL. To address +this problem, DeepSpeed has created a suite of I/O optimizations collectively called DeepNVMe. + +DeepNVMe improves the performance and efficiency of I/O-bound DL applications by accelerating I/O operations +and reducing hardware requirements. It achieves this by leveraging storage innovations such as Non-Volatile +Memory Express (NVMe) Solid State Drives (SSDs) and NVIDIA Magnum IOTM GPUDirect® Storage (GDS). In this +blog we show the benefits of DeepNVMe using microbenchmarks and an inference application. In experiments +conducted on an Azure NC96ads\_A100\_v4 VM, we observed that DeepNVMe saturates available NVMe bandwidth for +data transfers with GPU or CPU memory, achieving up to 10GB/sec reads and 5 GB/secs writes. + +# Background +High-performance access to persistent storage is a common challenge in many computing domains, including DL. Thus, a significant number of hardware and software solutions have been proposed. DeepNVMe builds on three such solutions: (1) NVMe SSDs, (2) NVIDIA GDS, and (3) Linux Asynchronous I/O (libaio). We will briefly describe each of these technologies. + +NVMe SSDs are Flash-based storage devices that are replacing much slower hard disk drives (HDD) as primary persistent storage in modern servers. For example, an Azure NC96ads\_A100\_v4 VM is equipped with four NVMe SSDs which are individually capable of 3.25 GB/sec reads and can be combined in a RAID-0 configuration for a theoretical aggregate read bandwidth of 13 GB/sec. NVIDIA GDS enables direct transfers between NVMe and GPU memory thus avoiding the inefficiencies of the traditional approach of using intermediate CPU memory (bounce buffer). NVIDIA GDS is generally available in CUDA versions 11.4 and above. Finally, libaio is an asynchronous I/O stack introduced in Linux to better extract raw performance of fast storage devices like NVMe SSDs compared to the traditional I/O stack. + +# DeepNVMe: an Optimization Module for Deep Learning I/O + +DeepNVMe is a Python module that we developed with two key design principles. First, it leverages the above discussed storage technologies to implement powerful optimizations such as non-blocking I/O operations, bulk submission of I/O operations, parallelization of an individual I/O operation, and a lightweight runtime. Second, it exposes these I/O optimizations through a simple POSIX-like interface to foster easy integration into DL applications while avoiding the complexities of the underlying technologies. + +# Evaluation + +Our experiments are conducted on an Azure NC96ads\_A100\_v4 VM with setup details summarized in Table 1. For multi-device experiments, the SSDs are combined in a RAID-0 configuration. + + + +
+Table 1: Experimental setup details +
+ +## Microbenchmark Performance + +We used three benchmarking tools for our evaluations. The first is fio, the popular I/O benchmarking tool written in C. The second is gdsio from NVIDIA for benchmarking GDS performance. The third is ds\_io, a Python tool that we created for easy integration with DeepNVMe and to be more representative of DL applications which are commonly Python-based. + +## High-Performance I/O with CPU Buffers via NVMe Scaling + +Our first set of microbenchmark evaluations used fio and ds\_io to measure the performance of transferring 1GB data between NVMe and CPU memory. We configure fio to use the libaio backend for these experiments1. The results are summarized in Figure 1, from which we make two observations. First, DeepNVMe demonstrates high performance as it roughly matches fio, despite being more representative of DL applications. Second, DeepNVMe scales I/O performance almost linearly with available NVMe bandwidth, achieving rates of 10GB/sec reads and 5GB/sec writes. + + + +
+Figure 1: Using DeepNVMe to scale data transfers between NVMe and CPU buffer +
+ +## High-Performance I/O with GPU Buffers via NVMe Scaling + +Our second set of microbenchmark evaluations used gdsio and ds\_io to measure the performance of 1GB data transfer between NVMe and GPU memory. For this experiment, we configure ds\_io to use both the traditional bounce buffer approach and the more efficient GDS approach. The results are summarized in Figure 2, from which we make three observations. First, we see that GDS improves performance in DeepNVMe compared to the traditional bounce buffer approach, with up to 37% speedup. Second, DeepNVMe demonstrates high performance by matching (and sometimes surpassing) gdsio despite being more representative of DL applications. Third, we see that DeepNVMe, with and without GDS, scales I/O performance with available NVMe bandwidth. With GDS, DeepNVMe achieves a maximum of 9.6GB/sec reads and 5GB/sec writes, and without GDS achieves 7GB/sec reads and 4GB/sec writes. + + + +
+Figure 2: Using DeepNVMe to scale data transfers between NVMe and GPU memory +
+ +## ZeRO-Inference: Generative AI Performance + +ZeRO-Inference is an AI democratization technology that reduces the hardware cost of inferencing massive models by using DeepNVMe to offload model weights to CPU or NVMe memory. ZeRO-Inference is well suited for throughput-oriented applications, such as offline inferencing, and for scenarios with limited hardware budget. We use token generation workload to evaluate DeepNVMe performance for NVMe offloading. + +## High-Performance Offloading via NVMe Scaling + +We measure the generation throughput of inferencing a LLAMA3-70B model on a single NVIDIA A100-80GB with a prompt length of 512, generation length of 32, and batch size of 96. We scale the number of NVMe SSDs from 1 to 4 and present the results for ZeRO-Inference with and without GDS in Figure 3. We make two observations from these results. First, GDS consistently provides better performance compared to the bounce buffer approach, achieving 10-18% faster token generation. Second, DeepNVMe, with and without GDS, scales generation performance with available NVMe bandwidth. With four NVMe SSDs, DeepNVMe achieves generation throughput rates of 7 tokens per second with GDS and 6 tokens per second without GDS. Our profiling results suggest that DeepNVMe will continue to scale with more NVMe bandwidth, making it an economic option for boosting generative application performance. + + + +
+Figure 3: Using DeepNVMe to scale LLAMA3-70B token generation performance with NVMe offloading. +
+ +# Summary + +In this blog post, we introduced DeepNVMe, an I/O optimization technology created to tackle the emergence of I/O operations as key bottlenecks of Deep Learning scalability. DeepNVMe enables fast and efficient data transfers between persistent storage and DL application memory through optimizations built on popular storage technologies such as NVMe SSDs and NVIDIA GDS. We showed benefits of using DeepNVMe for LLAMA3-70B token generation on single A100-80GB GPU with NVMe offloading, for which it achieves up to 7 tokens per second in generation throughput on an Azure NC96ads\_A100\_v4 VM. DeepNVMe will be open-sourced and generally available in DeepSpeed versions >= [0.15.0](https://github.com/deepspeedai/DeepSpeed/releases/tag/v0.15.0). In future blogs, we will report DeepNVMe improvements for other I/O bound DL applications such as model checkpointing and data loading. + + +# Acknowlegements +This work is the result of a deep collaboration between Microsoft and NVIDIA. The contributors include Joe Mayer, Martin Cai, and Olatunji Ruwase from Microsoft; Kiran Modukuri, Vahid Noormofidi, Sourab Gupta, and Sandeep Joshi from Nivida. diff --git a/blogs/deepspeed-gds/chinese/README.md b/blogs/deepspeed-gds/chinese/README.md new file mode 100644 index 000000000000..9fa9d7150c42 --- /dev/null +++ b/blogs/deepspeed-gds/chinese/README.md @@ -0,0 +1,77 @@ +
+ +# DeepNVMe: 通过I/O优化提高深度学习应用性能 + +
+ +# 引言 + +深度学习(DL)在语言、语音、视频和多模态应用等重要人工智能领域不断推动着前所未有的进展。这些进展的关键因素是模型大小、序列长度和硬件并行性等多个维度上的显著可扩展性。从系统角度来看,深度学习的可扩展性给计算、内存、通信和存储等关键子系统带来了巨大的压力。然而,现有的深度学习优化工作大多忽略了存储子系统,使得数据加载、模型检查点和卸载等I/O操作成为大规模深度学习中的主要瓶颈。为了解决这个问题,DeepSpeed开发了一整套I/O优化技术,统称为DeepNVMe。 + +DeepNVMe通过加速I/O操作和减少硬件需求,提高了I/O受限的深度学习应用的性能和效率。它通过利用存储创新,如非易失性内存快速通道(NVMe)固态硬盘(SSD)和NVIDIA Magnum IOTM GPUDirect®存储(GDS)实现这一目标。在本文中,我们通过微基准测试和推理应用来展示DeepNVMe的优势。在对Azure NC96ads\_A100\_v4虚拟机进行的实验中,我们观察到DeepNVMe能充分利用可用的NVMe带宽进行GPU或CPU内存的数据传输,读取速度达到10GB/秒,写入速度达到5GB/秒。 + +# 背景 + +高性能访问持久存储是许多计算领域(包括深度学习)中的一个常见挑战。因此,已经提出了大量的硬件和软件解决方案。DeepNVMe基于三种解决方案: (1) NVMe SSDs,(2) NVIDIA GDS,(3) Linux异步I/O(libaio)。我们将简要介绍每项技术。 + +NVMe SSDs是基于闪存的存储设备,正在取代传统的硬盘驱动器(HDD),成为现代服务器的主要持久存储。例如,Azure NC96ads\_A100\_v4虚拟机配备了四个NVMe SSD,每个SSD可提供3.25GB/秒的读取速度,并且可以组合成RAID-0配置,理论上的总读取带宽为13GB/秒。NVIDIA GDS可以实现NVMe和GPU内存之间的直接数据传输,从而避免了传统使用中间CPU内存(缓冲区)方法的低效。NVIDIA GDS在CUDA 11.4及以上版本中可用。最后,libaio是Linux引入的异步I/O栈,它比传统的I/O栈更有效地提取NVMe SSD等高速存储设备的原始性能。 + +# DeepNVMe: 深度学习I/O优化模块 + +DeepNVMe是一个Python模块,我们开发时遵循了两个关键设计原则。首先,它利用上述存储技术,实现了强大的优化,如非阻塞I/O操作、批处理I/O操作提交、单个I/O操作的并行化以及轻量级运行时。其次,它通过一个简单的POSIX-like接口让用户使用I/O优化,便于深度学习应用集成,同时避免了底层技术的复杂性。 + +# 评估 + +我们的实验在Azure NC96ads\_A100\_v4虚拟机上进行,实验设置的详细信息见表1。对于多设备实验,SSD是以RAID-0配置组合使用的。 + + + +
+表1: 实验设置详细信息 +
+ +## 微基准性能测试 + +我们使用了三种基准测试工具进行评估。第一个是fio,这是一个用C语言编写的流行I/O基准测试工具。第二个是来自NVIDIA的gdsio,用于基准测试GDS性能。第三个是ds\_io,这是我们创建的Python工具,便于与DeepNVMe集成,并且更能代表常见的基于Python的深度学习应用。 + +## 通过NVMe扩展CPU缓冲区,从而提高I/O性能 + +我们的第一组微基准评估使用fio和ds\_io,测量1GB数据在NVMe和CPU内存之间的传输性能。我们配置fio使用libaio后端进行这些实验。结果总结在图1中,我们可以得出两个结论。首先,DeepNVMe表现出高性能,尽管它更能代表深度学习应用,但其性能与fio大致相当。其次,DeepNVMe的I/O性能几乎与可用的NVMe带宽成线性扩展,达到了10GB/秒的读取速度和5GB/秒的写入速度。 + + + +
+图1: 使用DeepNVMe扩展NVMe与CPU缓冲区之间的数据传输 +
+ +## 通过NVMe扩展GPU缓冲区,从而提高I/O性能 + +我们的第二组微基准评估使用gdsio和ds\_io,测量1GB数据在NVMe和GPU内存之间的传输性能。在此实验中,我们配置ds\_io同时使用传统的缓冲区方法和更高效的GDS方法。结果总结在图2中,我们可以得出三个结论。首先,我们看到GDS提高了DeepNVMe的性能,相比传统缓冲区方法,速度提高了最多37%。其次,DeepNVMe表现出高性能,尽管它更能代表深度学习应用,但其性能与gdsio相匹配(有时甚至超过)。第三,我们看到DeepNVMe,无论是否使用GDS,都能根据可用的NVMe带宽扩展I/O性能。使用GDS时,DeepNVMe的读取速度最高达到9.6GB/秒,写入速度为5GB/秒;不使用GDS时,读取速度为7GB/秒,写入速度为4GB/秒。 + + + +
+图2: 使用DeepNVMe扩展NVMe与GPU内存之间的数据传输 +
+ +## ZeRO-Inference: 生成式AI性能 + +ZeRO-Inference是一项AI普及技术,通过使用DeepNVMe将模型权重卸载(Offload)到CPU或NVMe内存,降低了推理大规模模型的硬件成本。ZeRO-Inference非常适合于面向吞吐量的应用,如离线推理,和硬件预算有限的场景。我们使用token生成工作负载来评估DeepNVMe在NVMe卸载下的性能。 + +## 通过NVMe扩展的高性能卸载(Offload) + +我们测量了在单个NVIDIA A100-80GB上推理LLAMA3-70B模型的生成吞吐量,使用512的提示长度、32的生成长度和96的批量大小。我们将NVMe SSD的数量从1扩展到4,并呈现了ZeRO-Inference在有GDS和没有GDS的情况下的结果,如图3所示。我们从这些结果中得出两个结论。首先,GDS始终提供比传统缓冲区方法更好的性能,token生成速度提高了10-18%。其次,DeepNVMe,无论是否使用GDS,都能根据可用的NVMe带宽扩展生成性能。在四个NVMe SSD的情况下,DeepNVMe的生成吞吐量分别为每秒7个token(使用GDS)和每秒6个token(不使用GDS)。我们的分析结果表明,DeepNVMe将在更多的NVMe带宽下继续扩展,是提升生成应用性能的经济选择。 + + + +
+图3: 使用DeepNVMe通过NVMe卸载(offload)扩展LLAMA3-70B的token生成性能 +
+ +# 总结 + +在本文中,我们介绍了DeepNVMe,一项为了解决I/O操作成为深度学习可扩展性关键瓶颈而创建的I/O优化技术。DeepNVMe通过基于流行存储技术(如NVMe SSD和NVIDIA GDS)的优化,实现了持久存储与深度学习应用内存之间的快速高效数据传输。我们展示了在Azure NC96ads\_A100\_v4虚拟机上,DeepNVMe通过NVMe卸载支持LLAMA3-70B的token生成,最高达到每秒7个token的生成吞吐量。DeepNVMe将在DeepSpeed版本>= 0.15.0中开源,并广泛发布。在未来的博客中,我们将报告DeepNVMe在其他I/O受限的深度学习应用中的改进,如模型检查点和数据加载。 + +# 致谢 + +这项工作是微软和NVIDIA之间深入合作的结果。贡献者包括微软的Joe Mayer、Martin Cai和Olatunji Ruwase;NVIDIA的Kiran Modukuri、Vahid Noormofidi、Sourab Gupta和Sandeep Joshi。 diff --git a/blogs/deepspeed-gds/japanese/README.md b/blogs/deepspeed-gds/japanese/README.md new file mode 100644 index 000000000000..26320d00ab94 --- /dev/null +++ b/blogs/deepspeed-gds/japanese/README.md @@ -0,0 +1,77 @@ +
+ +# DeepNVMe: I/O最適化による深層学習アプリケーションの高速化 + +
+ +# はじめに + +深層学習(Deep Learning)は、言語、音声、ビデオ、マルチモーダルアプリケーションなどの重要なAIの応用領域において、かつてない進歩を続けています。この進歩の鍵となる要因は、モデルサイズ、シーケンス長、ハードウェア並列性などの複数の次元での劇的なスケーラビリティです。システムの観点から見ると、深層学習のスケーラビリティは計算、メモリ、通信、ストレージなどの重要なサブシステムに大きな負荷をかけます。しかし、既存の取り組みは、ストレージサブシステムの最適化はほとんど扱われておらず、データロード、モデルチェックポイント、オフロードなどのI/O操作が大規模な深層学習の主要なボトルネックとなっています。この問題に対処するために、DeepSpeedは一連のI/O最適化機能を「DeepNVMe」と呼ばれる形で提供します。 + +DeepNVMeは、I/O操作の高速化とハードウェア要件の緩和によって、I/Oがボトルネックとなる深層学習アプリケーションのパフォーマンスと効率を向上させます。これを実現するために、Non-Volatile Memory Express(NVMe)やSSD、NVIDIA Magnum IO ``TM `` GPUDirect® Storage(GDS)などのストレージ技術を活用しています。このブログでは、マイクロベンチマークと推論アプリケーションの性能評価結果に基づいて、DeepNVMeの利点を示します。Azure NC96ads_A100_v4 VMで実施された実験では、DeepNVMeがGPUまたはCPUメモリへのデータ転送で利用可能なNVMe帯域幅を最大限に活用し、最大10GB/秒の読み取りと5GB/秒の書き込みを達成しました。 + +# 背景 + +永続ストレージへの高性能アクセスは、深層学習を含む多くのコンピューティングドメインで共通の課題です。これに対して、多くのハードウェアおよびソフトウェアソリューションが提案されています。DeepNVMeは、以下の3つのソリューションを基に構築されています。(1) NVMe SSD、(2) NVIDIA GDS、(3) Linux非同期I/O(libaio)。これらの技術について簡単に説明します。 + +NVMe SSDは、現代のサーバーで主要な永続ストレージとして、従来の遅いハードディスクドライブ(HDD)に取って代わるフラッシュベースのストレージデバイスです。たとえば、Azure NC96ads_A100_v4 VMには4つのNVMe SSDが装備されており、それぞれが3.25 GB/秒の読み取り速度を持ち、RAID-0構成で組み合わせると理論上の合計読み取り帯域幅は13 GB/秒となります。NVIDIA GDSは、NVMeとGPUメモリ間の直接転送を可能にすることで、中間のCPUメモリ(バウンスバッファ)を使用する従来のアプローチの非効率を回避します。NVIDIA GDSは、CUDAバージョン11.4以上で利用可能です。最後に、libaioは、従来のI/Oスタックと比較して、NVMe SSDのような高速ストレージデバイスの性能をより引き出すためにLinuxに導入された非同期I/Oスタックです。 + +# DeepNVMe: 深層学習のためのI/O最適化モジュール + +DeepNVMeは、以下の2つの主要な設計原則に基づいて開発されたPythonモジュールです。第一に、上記のストレージ技術を活用して、ノンブロッキングI/O操作、I/O操作の一括送信、個々のI/O操作の並列化、軽量なランタイムなどの最適化を実装しています。第二に、これらのI/O最適化をシンプルなPOSIXライクなインターフェースを通じて提供し、深層学習アプリケーションへの容易な統合を促進し、基盤となっている複雑な技術を直接扱うことなく、その性能を活用することを可能にします。 + +# 評価 + +実験は、Azure NC96ads_A100_v4 VMで実施されました。設定の詳細は表1の通りです。 + + + +
+表1: 実験設定の詳細 +
+ +## マイクロベンチマーク + +評価には3つのベンチマークツールを使用しました。一つ目は、C言語で書かれた一般的なI/Oベンチマークツールであるfioです。次に、GDSパフォーマンスのベンチマークを行うためのNVIDIAのgdsioです。最後に、DeepNVMeとの容易な統合のために我々た作成したds_ioです。ds_ioは、深層学習アプリケーションで代表的に使用されるPythonで作成されています。 + +## CPUバッファを使用したNVMeスケーリングによる高性能I/O + +最初のマイクロベンチマーク評価では、fioとds_ioを使用して、NVMeとCPUメモリ間で1GBのデータを転送するパフォーマンスを測定しました。これらの実験ではfioをlibaioバックエンドに設定しました。結果は図1の通りです。ここから、2つの点が読み取れます。第一に、DeepNVMeは、深層学習アプリケーションにおける性能改善を目指したものであるにも関わらず、このマイクロベンチマークでもfioに匹敵する高性能を示しています。第二に、DeepNVMeは、利用可能なNVMe帯域幅にほぼ線形にスケールし、10GB/秒の読み取りおよび5GB/秒の書き込み速度を達成しています。 + + + +
+図1: DeepNVMeを使用したNVMeとCPUバッファ間のデータ転送のスケーリング +
+ +## GPUバッファを使用したNVMeスケーリングによる高性能I/O + +二つ目のマイクロベンチマーク評価では、gdsioとds_ioを使用して、NVMeとGPUメモリ間で1GBのデータ転送のパフォーマンスを測定しました。この実験では、ds_ioを従来のバウンスバッファアプローチとより効率的なGDSアプローチの両方で設定します。結果は図2の通りです。ここから、次の3点が観察できます。第一にGDSを用いるケースで、従来のバウンスバッファアプローチと比較して、DeepNVMeは最大で37%のスピードアップを実現しています。第二に、DeepNVMeは、深層学習アプリケーションのために作成されたものであるにも関わらず、gdsioに匹敵する(時にはそれを上回る)高性能を示します。第三に、DeepNVMeは、GDSの有無にかかわらず、NVMe帯域幅を最大限に活用できます。GDSを使用した場合、DeepNVMeは最大9.6GB/秒の読み取りおよび5GB/秒の書き込み速度を達成し、GDSを使用しない場合は7GB/秒の読み取りおよび4GB/秒の書き込み速度を達成します。 + + + +
+図2: DeepNVMeを使用したNVMeとGPUメモリ間のデータ転送のスケーリング +
+ +## ZeRO-Inference: 生成AIパフォーマンス + +ZeRO-Inferenceは、モデルの重み(パラメータ)をCPUまたはNVMeメモリにオフロードすることで、大規模モデルの推論に必要なハードウェアコストを削減し、限られたハードウェア資源しかないユーザでも大規模モデルを活用できるようにするための技術です。ZeRO-Inferenceは、オフライン推論などのスループット指向のアプリケーションや、ハードウェア予算が限られているシナリオに適しています。DeepNVMeのNVMeオフロードのパフォーマンスを評価するために、トークン生成ワークロードを使用します。 + +## NVMeスケーリングによる高性能オフロード + +LLAMA3-70Bモデルの推論を単一のNVIDIA A100-80GBで、プロンプト長512、生成長32、バッチサイズ96で実行し、生成スループットを測定します。NVMe SSDの数を1から4までスケーリングし、GDSの有無でZeRO-Inferenceの結果を図3に示します。この結果から、2つの観察ができます。第一に、GDSはバウンスバッファアプローチと比較して一貫して優れたパフォーマンスを提供し、トークン生成を10-18%高速化します。第二に、DeepNVMeは、GDSの有無にかかわらず、利用可能なNVMe帯域幅にスケールします。4つのNVMe SSDを使用する場合、DeepNVMeはGDSを使用して1秒あたり7トークン、GDSを使用しない場合は1秒あたり6トークンの生成スループットを達成します。プロファイリング結果は、DeepNVMeがより多くのNVMe帯域幅で引き続きスケールし、生成アプリケーションのパフォーマンスを低コストで向上できることを示しています。 + + + +
+図3: DeepNVMeを使用したLLAMA3-70Bトークン生成パフォーマンスのNVMeオフロードによるスケーリング +
+ +# まとめ + +このブログ記事では、深層学習のスケーラビリティにおいて主要なボトルネックとなるI/O操作を最適化する、DeepNVMeを紹介しました。DeepNVMeは、NVMe SSDやNVIDIA GDSなどのストレージ技術に基づいた最適化を通じて、永続ストレージと深層学習アプリケーションのデータ転送を高速かつ効率的に実現します。Azure NC96ads_A100_v4 VMでの単一A100-80GB GPUを使用したLLAMA3-70Bトークン生成において、DeepNVMeを使用することで、NVMeオフロードで最大7トークン/秒の生成スループットを達成しました。DeepNVMeはオープンソース化され、DeepSpeedバージョン[0.15.0](https://github.com/deepspeedai/DeepSpeed/releases/tag/v0.15.0).以上で利用可能です。今後のブログでは、モデルチェックポイントやデータロードなどの他のI/Oがボトルネックとなる深層学習アプリケーションに対するDeepNVMeの改善について報告します。 + +# 謝辞 + +この成果は、MicrosoftとNVIDIAの協力によるものです。MicrosoftからはJoe Mayer、Martin Cai、Olatunji Ruwase、NVIDIAからはKiran Modukuri、Vahid Noormofidi、Sourab Gupta、Sandeep Joshiが貢献しました。 diff --git a/blogs/deepspeed-gds/media/figure1.png b/blogs/deepspeed-gds/media/figure1.png new file mode 100755 index 0000000000000000000000000000000000000000..08db7d2f8afaf4008b6b74f22f8372ac8998f9f6 GIT binary patch literal 32011 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 Q2blkXQ&5-Bku&lB545vo=l}o! literal 0 HcmV?d00001 diff --git a/blogs/deepspeed-gds/media/figure2.png b/blogs/deepspeed-gds/media/figure2.png new file mode 100755 index 0000000000000000000000000000000000000000..35be5d4c401588b89d6d2b4a3a7bf480c525d6c9 GIT binary patch literal 40188 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

mV|2G@vl+;r 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

11|`vy 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

u^x%?-ru_~M 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 literal 0 HcmV?d00001 diff --git a/blogs/deepspeed-offloadpp/README.md b/blogs/deepspeed-offloadpp/README.md index 1441da5a35c0..f58173b7bc8b 100644 --- a/blogs/deepspeed-offloadpp/README.md +++ b/blogs/deepspeed-offloadpp/README.md @@ -4,7 +4,7 @@ Deep learning has been successfully adopted in a wide range of applications such ZeRO offers memory efficient data parallel training scheme. For training large models like LLMs using ZeRO, GPU memory size is still often insufficient to hold all the model parameters. Thus, ZeRO-Offload is introduced to solve this insufficient GPU memory issue. ZeRO-Offload releases GPU memory pressure by offloading data and compute to the CPU side while minimizing CPU-GPU data copy overhead. Given CPU memory is often orders-of-magnitude larger than GPU memory, ZeRO-Offload was the first piece of work that enables billion-level parameter training even with very limited GPU memory resources (e.g., to an extreme: single GPU). ZeRO-Offload provides excellent performance when model size is multiple times larger than total GPU memory size. -However, system efficiency is still far from optimal when adopting ZeRO-Offload in some scenarios. Especially in the cases like small batch training, model that could not fit into GPU memory but not orders-of-magnitude bigger than GPU memory capacity, CPU offload not only introduce long end-to-end latency, but also underutilize GPU computation resources. To reduce memory copy latency as well as inefficient utilization of GPU introduced in these offload cases, we propose ZeRO-Offload++, which leverages both CPU and GPU coherently. ZeRO-Offload++ mainly includes 3 new features as _Twin-Flow_, MemCpy reduction, CPUAdam optimization. Now we release our __Twin-Flow__ feature. +However, system efficiency is still far from optimal when adopting ZeRO-Offload in some scenarios. Especially in the cases like small batch training, model that could not fit into GPU memory but not orders-of-magnitude bigger than GPU memory capacity, CPU offload not only introduce long end-to-end latency, but also underutilized GPU computation resources. To reduce memory copy latency as well as inefficient utilization of GPU introduced in these offload cases, we propose ZeRO-Offload++, which leverages both CPU and GPU coherently. ZeRO-Offload++ mainly includes 3 new features as _Twin-Flow_, MemCpy reduction, CPUAdam optimization. Now we release our __Twin-Flow__ feature. The key benefits are: * With _Twin-Flow_, ZeRO-Offload++ achieves up to **6x** training speedup compared with ZeRO-Offload. @@ -43,7 +43,7 @@ We conduct our performance evaluations over both A100 and H100 DGX machine and t ## Tutorials -Examples and Tutorials are [here](https://github.com/microsoft/Megatron-DeepSpeed/blob/main/examples_deepspeed/offload_pp/README.md) +Examples and Tutorials are [here](https://github.com/deepspeedai/Megatron-DeepSpeed/blob/main/examples_deepspeed/offload_pp/README.md) ## Contributors: diff --git a/blogs/deepspeed-triton/README.md b/blogs/deepspeed-triton/README.md index 071b5d4bc6d0..57922c5e1a23 100644 --- a/blogs/deepspeed-triton/README.md +++ b/blogs/deepspeed-triton/README.md @@ -19,7 +19,7 @@ Table 1. The average speedup (see NOTE below for more detail) For those transformer operators in float16, we have implemented kernels written in Triton language that replace ordinary CUDA kernels or torch operators. The Triton kernels we implemented include softmax, layer-normalization, residual-addition and all the matrix multiplications except MLP layers (see NOTE below for details). -In our experiments, Triton kernels help to reduce the average latecy (over difference sequence lengths) by 6\~24% (depending on model and hardware) when compared to the latency with CUDA-only kernels. +In our experiments, Triton kernels help to reduce the average latency (over difference sequence lengths) by 6\~24% (depending on model and hardware) when compared to the latency with CUDA-only kernels. Figures below show the latency reduction in more detail. @@ -65,7 +65,7 @@ We use an example of Bert-base here. ```python pip install deepspeed[triton] -git clone https://github.com/microsoft/DeepSpeedExamples.git +git clone https://github.com/deepspeedai/DeepSpeedExamples.git cd DeepSpeedExamples/inference/huggingface/fill-mask deepspeed --num_gpus 1 test-bert.py --triton @@ -76,7 +76,7 @@ To run a performance benchmark, you can use the following command: ```python pip install deepspeed[triton] -git clone https://github.com/microsoft/DeepSpeedExamples.git +git clone https://github.com/deepspeedai/DeepSpeedExamples.git cd DeepSpeedExamples/benchmarks/inference deepspeed --num_gpus 1 triton-bert-benchmark.py --model bert-base-cased --dtype fp16 --kernel-inject --deepspeed --graphs --triton @@ -84,7 +84,7 @@ deepspeed --num_gpus 1 triton-bert-benchmark.py --model bert-base-cased --dtype # NOTE -* For more information on how to use DeepSpeed, please visit our [GitHub Page](https://github.com/microsoft/DeepSpeedExamples) and our [website](https://www.deepspeed.ai/), where you can find blog posts, tutorials, and documentation. +* For more information on how to use DeepSpeed, please visit our [GitHub Page](https://github.com/deepspeedai/DeepSpeedExamples) and our [website](https://www.deepspeed.ai/), where you can find blog posts, tutorials, and documentation. * This feature is currently only supported for BERT, Roberta and other BERT-like models, and not for text-generation models yet. diff --git a/blogs/deepspeed-ucp/README.md b/blogs/deepspeed-ucp/README.md new file mode 100644 index 000000000000..3420e72c238e --- /dev/null +++ b/blogs/deepspeed-ucp/README.md @@ -0,0 +1,273 @@ +

+ +# DeepSpeed Universal Checkpointing: Efficient and Flexible Checkpointing for Large Scale Distributed Training + +
+ + + +To cite DeepSpeed Universal Checkpoint, please cite our [arxiv report](https://arxiv.org/abs/2406.18820): + +``` +@article{lian2024-ucp, +title={Universal Checkpointing: Efficient and Flexible Checkpointing for +Large Scale Distributed Training}, +author={Xinyu Lian and Sam Ade Jacobs and Lev Kurilenko and Masahiro Tanaka +and Stas Bekman and Olatunji Ruwase and Minjia Zhang}, +journal={arxiv preprint arxiv:406.18820}, +year={2024}, + +} +``` + +# Introduction + +Checkpointing is a crucial technique for reducing the cost of training +machine learning models, as it enables saving the model state during the process. +This way, if the system fails, the training can resume from the most recent checkpoint +instead of from the beginning. Additionally, checkpointing allows for +evaluating the model performance at various stages of training, which +facilitates hyperparameter tuning and finetuning for different and +varied downstream tasks. + +However, there are challenges in the design, implementation and usage of +checkpointing especially in distributed training and finetuning +scenarios. Parallel training methods such as ZeRO data parallelism (ZeRO-DP), +pipeline parallelism (PP), tensor parallelism (TP) and sequence +parallelism (SP) are popular technologies for accelerating LLMs training. +However, elastic and flexible composition of these different parallelism +topologies with checkpointing is not currently available, in part, because +these techniques shard model and/or optimizer states making it difficult to +resume training with a checkpoint that was created on a different number of GPUs or +accelerators. + +In this release, we are excited to introduce DeepSpeed Universal +Checkpointing (*UCP*), a most comprehensive solution to the problem of +distributed checkpointing. *UCP* enables efficient checkpoint creation +while providing the flexibility of resuming on arbitrary parallelism +strategies and hardware configurations. *UCP* also unlocks unprecedented +capabilities for large-scale training such as improved resilience to +hardware failures through continued training on remaining healthy +hardware, and reduced training time through opportunistic exploitation +of elastic capacity. + +In summary, this release of *UCP* unlocks the following capabilities: + +- Flexible checkpoints reshape along any of the training parallelism + techniques (i.e., PP, TP, DP, ZeRO-DP, SP, MoE) + +- Elastic resource management, scale up or scale down of training and + finetuning accelerator resources + +- Real world examples with support for multiple commercial-scale models + (i.e., BLOOM, Megatron GPT, LLAMA, Microsoft Phi) + +# Core Design + +The key insight of DeepSpeed *UCP* is the selection of the optimal +representation in each phase of the checkpointing life cycle: +distributed representation for saving, and consolidated representation +for loading. This is achieved using two key mechanisms. First, the +universal checkpoint format, which consists of a consolidated +representation of each model parameter, and metadata for mapping +parameter fragments to the ranks of an arbitrary parallel training +configuration. Second, the universal checkpoint language, a simple but +powerful and robust specification language for converting distributed +checkpoints into the universal checkpoint format. + +## Universal Checkpoint Format + + + +Figure 1: UCP overview: top row and bottom row are Source and Target +parallelism configurations respectively. The middle row shows UCP as +an intermediate format of translating from Source to Target. + +Figure 1 shows high level schematic description of *UCP* conversion +process and format. Conversion starts with top block of checkpointing in +any parallel format e.g, DP, TP, PP, SP. Saving in the native format of parallel training avoids any overhead of +consolidating into a single global checkpoint. To ensure that +a checkpoint saved in one parallel configuration (herein called *Source*) can be +easily converted and loaded for continuous training in another parallel configuration (herein called *Target*), +we introduce the idea of atomic checkpoint as an intermediate format. + +The concept of atomic checkpoint is central to *UCP*. These are +fine-grained files containing the consolidated representation of each +model parameter, along with optimizer states. The atomic checkpoint +format is useful for three reasons. First, the atomic representation of +checkpoints decouples the dependencies of distributed checkpoints and +specific parallelism techniques and hardware configurations. As such, +one does not need to implement individual converters for each *Source* +and *Target* pair. Instead, *UCP* can act as a common interchange format +between different distributed training techniques, which then can be +easily transformed into other distributed training strategies, as shown +in Fig 2. By keeping the consolidated representation of each model +parameter, *UCP* enables easy splitting and flexible mapping of model states +or fragmented states to different GPUs on a parameter-by-parameter +basis, effectively reducing the working memory needed to load large +model checkpoints. Second, the *UCP* conversion happens lazily and +on-demand, e.g., when a training process detects a change of parallelism +technique and hardware configuration. In other words, the existing +distributed checkpoint saving logic does not need any change. Third, the +structure of the *UCP* also makes it easy to handle advanced techniques +in distributed training, such as mixed-precision training. In practice, +researchers and practitioners may switch between fp16 and bfloat16 mixed +precision training. By keeping the fp32 weight/optimizer values, the +training can resume either with fp16 or bfloat16. + +## Universal Checkpoint Language + + + +Figure 2: UCP language helps transform distributed checkpoints into the +UCP format and load UCP checkpoints based on the Target parallel +technique and new hardware configuration. + + +While *UCP* provides a common interface for different parallelism +strategies, the development of transformation from arbitrary distributed +checkpoints to *UCP* can still incur a high engineering and +implementation cost. This is because the number of distributed checkpoint files +and their contents can vary across the different parallel training techniques. + +To tackle this challenge, *UCP* provides *UCP* language, which is a +simple but powerful specification language for converting a distributed checkpoint +into the atomic checkpoint format, described in previous +section. *UCP* does this in two ways. First, it provides a declarative +system with pre-defined *parameter patterns*, which cover a wide range +of parallelism strategies for model states. Parameter patterns contain +runtime information about how a parameter is partitioned across GPUs. +For instance, *nopattern* means that a parameter is uniquely associated +with a GPU rank, which is the most common pattern seen in techniques +such as ZeRO-1/2 and PP (see our technical report for a completed list +of currently supported parameter patterns). Second, *UCP* language +provides a set of common operators that facilitate the transformation of +distributed checkpoints into consolidated atomic checkpoints. At a +high-level, as illustrated in Figure 3, *UCP* language is invoked when +support for a new *Target* is needed or the hardware +configuration changes. It first transforms distributed checkpoints into +the *UCP* format. It then loads the *UCP* checkpoints based on the +*Target* parallel technique and new hardware configuration. + +# Key Results + +We evaluate *UCP* through a series of experiments on training LLMs. We +focus on the decoder-only Transformers: an architecture chosen due to +its state-of-the-art performance. Some of the largest models are also +decoder-based, making flexible and efficient checkpointing especially +important. In this blog, we present results of correctness verification +across different models and parallel strategies. For more results on +parallel efficiency analysis, detailed system and model architectures +and training hyperparameters, please see our technical report referenced +above. + +*UCP* provides flexible checkpointing from a *Source* parallelism +strategy to a different *Target* with different hardware configurations. +To verify this capability, we conduct correctness tests of *UCP* with +two groups of experiments. + +## Single Source to Multiple Target + + + +Figure 3: Training curves of loading UCP checkpoints into different +Target at iteration 101 with various GPU counts and parallelism +strategies + +To test if UCP allows resuming training with different parallelism +strategies and hardware configuration, we first train the GPT-3 model +using a configuration of TP=2, PP=2, DP=2 (ZeRO-1), and SP=1. Due to +constraints in time and resources, we limited the experiment to the +first 200 iterations. We convert the checkpoints saved at the 100th +iteration to *UCP* checkpoints and resume training with these *UCP* +checkpoints using different GPU counts and parallelism strategies. We +record the LM loss (average losses across the data parallel group) for +each iteration. Figure 3 illustrates that the training can be seamlessly +resumed with *UCP* checkpoints using different *Target* parallelism +strategies, achieving consistent convergence if the training were to +continue with the *Source* strategy. + +## Multiple Source to Single Target + + + +Figure 4: Training curves of transforming different Source parallelism +strategies at iteration 100 to UCP and loading UCP with a different +Target. + +Figure 4 shows the training curves from multiple *Source* configurations +to a single *Target*. Given a fixed random seed, we first train the +GPT-3 model using different *Source* configurations. We then convert +their distributed checkpoints saved at the 100th iteration to *UCP* +checkpoints and resume training with a configuration of TP=2, PP=2, +DP=1, and SP=1. The results show that regardless of the different +*Source* configurations, their checkpoints can all be converted into +*UCP* and resume training with a different configuration. Most +importantly, the resumed training curves match the curves from the +*Source* at iterations 101--200. These results validate the +effectiveness of *UCP* of converting an arbitrary configuration to a +different configuration for resumed training. + +## Varying Model Architectures + +*UCP* is model architecture agnostic. As such, it is not only compatible +with GPT models but also flexible enough to support various other model +architectures and sizes. Figures 5, 6 and 7 show the training +convergence for LLaMA 7B, BLOOM 176B, and a variant of Mixtral-7x8B MoE, +when resuming from *UCP* at the middle of training with new parallelism +strategies. These figures show that training is seamlessly resumed with +*UCP*, achieving consistent convergence that aligns with the initial +training phase across these diverse models. These results suggest that +*UCP* is quite flexible for various model architectures and sizes. + + + +Figure 5: Training curve with LLaMA model architecture. Source is +TP=PP=DP=2. Training is resumed at iteration 101 with new Targets +TP=DP=2, PP=1 and TP=PP=2, DP=1 + + + +Figure 6: Training curve of BLOOM model architecture. Source is TP=2, +PP=24, DP=8. Training is resumed at iteration 94767 with a new Targets +TP=2, DP=4, PP=24. + + + +Figure 7: Training curve with a variant of the Mixtral-MoE model +architecture. Source is TP=1, PP=2, DP=4. Training is resumed at +iteration 501 with a new Target TP=PP=DP=2. + +# General Availability of DeepSpeed Universal Checkpoint + +We are excited to release DeepSpeed Universal Checkpoint. DeepSpeed +Universal Checkpoint is available in DeepSpeed versions >= +[0.14.4](https://github.com/deepspeedai/DeepSpeed/releases/tag/v0.14.4), +has been fully integrated with [Megatron-DeepSpeed](https://github.com/deepspeedai/Megatron-DeepSpeed) ([commit c3a13be](https://github.com/deepspeedai/Megatron-DeepSpeed/commit/c3a13be721da0d0de16c338d0d665b0f7d13d14f)). +Detailed tutorial on usage is available on +[DeepSpeed tutorial page](https://www.deepspeed.ai/tutorials/universal-checkpointing/). + +We welcome contributions and collaboration from the broader open-source +community. DeepSpeed Universal Checkpoint is part of the bigger +DeepSpeed ecosystem of large-scale AI training and inference. For more +details on all DeepSpeed technologies and innovations, please visit our +[website]((https://www.deepspeed.ai/)) and follow us +on X, formerly Twitter, ([English](https://twitter.com/DeepSpeedAI), +[Japanese](https://twitter.com/DeepSpeedAI_JP)) +and [Chinese Zhihu](https://www.zhihu.com/people/deepspeed). + +# Acknowledgements and Contributions +We thank the collaboration of University of Illinois at Urbana-Champaign, +Statosphere, and Intel Habana. + +Contributions: +Xinyu Lian $^1$, Sam Ade Jacobs $^2$, Lev Kurilenko $^2$, Masahiro Tanaka $^2$, +Stas Bekman $^3$, Olatunji Ruwase $^2$, Minjia Zhang $^1$, Moshe Island $^4$ + +1: University of Illinois at Urbana-Champaign +2: Microsoft +3: StasoSphere +4: Intel Habana diff --git a/blogs/deepspeed-ucp/chinese/README.md b/blogs/deepspeed-ucp/chinese/README.md new file mode 100644 index 000000000000..4260595671dc --- /dev/null +++ b/blogs/deepspeed-ucp/chinese/README.md @@ -0,0 +1,124 @@ + +
+ +# DeepSpeed通用检查点:用于大规模分布式训练的高效灵活检查点系统 + +
+ + + +要引用DeepSpeed通用检查点,请引用我们的[arxiv报告](https://arxiv.org/abs/2406.18820): + +``` +@article{lian2024-ucp, +title={Universal Checkpointing: Efficient and Flexible Checkpointing for +Large Scale Distributed Training}, +author={Xinyu Lian and Sam Ade Jacobs and Lev Kurilenko and Masahiro Tanaka +and Stas Bekman and Olatunji Ruwase and Minjia Zhang}, +journal={arxiv preprint arxiv:406.18820}, +year={2024}, + +} +``` + +# 引言 + +检查点是降低训练大型语言模型成本的关键技术,它使我们在训练过程中可以保存模型状态。这样,如果训练失败,训练可以从最后保存的点继续,而不是从头开始。此外,检查点还允许在训练的不同阶段评估模型性能,从而便于进行超参数调整以及针对不同和多样化下游任务的微调。 + +然而,在分布式训练和微调场景中设计、实施和使用检查点存在困难。ZeRO数据并行(ZeRO-DP)、流水线并行(PP)、张量并行(TP)和序列并行(SP)等方法是加速大型语言模型训练的出色技术,但与传统的默认(Torch)保存和加载检查点机制不兼容。此外,目前尚无技术支持将这些不同的并行拓扑与检查点灵活组合,部分原因是这些技术将模型和/或优化器状态分片,使得在不同GPU或加速器数量上创建的检查点难以用于恢复训练。 + +在此,我们很高兴地发布DeepSpeed通用检查点(*UCP*),这是解决分布式检查点问题的最全面的解决方案。*UCP*在高效创建检查点的同时,提供了在任意并行策略和硬件配置上恢复的灵活性。*UCP*还解锁了大规模训练的前所未有的能力,例如通过在剩余健康硬件上继续训练来提高对硬件故障的抵抗力,以及通过机会性利用弹性容量来减少训练时间。 + +简单来说,当前版本的*UCP*解锁了以下功能: + +- 灵活的检查点可沿任何训练并行技术(即PP、TP、DP、ZeRO-DP、SP、MoE)重塑训练 + +- 弹性资源管理,在训练和微调中随意增加或减少硬件资源 + +- 支持多种商业规模模型的真实世界用例(例如BLOOM、Megatron GPT、LLAMA、Microsoft Phi) + +# 核心设计 + +DeepSpeed *UCP*的关键洞察是在检查点生命周期的每个阶段选择最佳表示:分布式表示用于保存,合并表示用于加载。这通过两个关键机制实现。首先,通用检查点格式,它包括每个模型参数的合并表示和用于将参数片段映射到任意模型并行配置的训练级别的元数据。其次,通用检查点语言,这是一个简单但强大且健壮的规范语言,用于将分布式检查点转换为通用检查点格式。 + +## 通用检查点格式 + + + +图1:UCP概述:顶部行和底部行分别为源并行配置和目标并行配置。中间行显示UCP作为从源到目标的转换中介块。 + +图1显示了*UCP*转换过程和格式的整体概念性描述。转换从任何并行策略格式的检查点顶部块开始。允许以训练的本地格式保存消除了可能因同步全局检查点保存而产生的任何开销。为确保保存的检查点(称为*源*)可以轻松转换并加载到任何并行策略以进行连续训练(称为*目标*),我们引入了作为中介块的原子检查点格式的概念。 + +原子检查点是*UCP*的核心概念。这些是包含每个模型参数的合并表示及其优化器状态的细粒度文件。原子检查点格式有三个用途。首先,原子检查点的表示解除了分布式检查点与特定并行技术和硬件配置的依赖。因此,无需为每个*源*到*目标*实现单独的转换器。相反,*UCP*可以充当不同分布式训练技术之间的通用交换格式,然后可以轻松地转换为其他分布式训练策略,如图2所示。通过保持每个模型参数的合并表示,*UCP*可以轻松地将模型状态或片段状态拆分并灵活地映射到不同GPU上,有效减少加载大型模型检查点所需的工作内存。其次,*UCP*转换是懒惰和按需进行的,例如,当训练过程检测到并行技术和硬件配置的变化时。换句话说,现有的分布式检查点保存逻辑不需要任何改变。第三,*UCP*的结构还易于处理分布式训练中的高级技术,例如混合精度训练。在实践中,研究人员和从业者可能在fp16和bfloat16混合精度训练之间切换。通过保持fp32的权重/优化器值,训练可以继续使用fp16或bfloat16恢复。 + +## 通用检查点语言 + + + +图2:UCP语言帮助将分布式检查点转换为UCP格式,并根据目标并行技术和新硬件配置加载UCP检查点。 + + +虽然*UCP*为不同的并行策略提供了一个公共接口,但从任意分布式检查点到*UCP*的转换仍然可能具有不菲的工程和实施成本。这是因为分布式训练中的每个GPU都调用一个持久方法(例如,在PyTorch中使用torch.save())将其拥有的GPU模型状态保存到磁盘上的检查点文件中,而每个检查点的具体内容在不同技术之间会有所不同。 + +为了应对这一挑战,*UCP*提供了*UCP*语言,这是一个简单但强大的规范语言,用于将几种类型的分布式检查点转换为前一节中描述的通用格式。*UCP*以两种方式实现这一点。首先,它提供了一个具有预定义*参数模式*的声明式系统,这些模式涵盖了模型状态的广泛并行 + +策略。参数模式包含有关参数如何在GPU之间分区的运行时信息。例如,*nopattern*表示一个参数与某个GPU唯一相关,这是ZeRO-1/2和PP等技术中最常见的模式(参见我们的技术报告,以获得当前支持的参数模式完整列表)。其次,*UCP*语言提供了一组常见操作符,以便将分布式检查点转换为合并的原子检查点。从高层次来看,如图3所示,当需要新的*目标*并行技术或硬件配置发生变化时,将调用*UCP*语言。它首先将分布式检查点转换为*UCP*格式。然后根据*目标*并行技术和新硬件配置加载*UCP*检查点。 + +# 关键结果 + +我们通过一系列实验评估*UCP*,专注于仅解码器的Transformers架构,这是由于其最先进的性能。一些最大的模型也是基于解码器的,这使得灵活高效的检查点尤为重要。在本博客中,我们展示了在不同模型和并行策略下正确性验证的结果。有关并行效率分析、详细的系统和模型架构以及训练超参数的更多结果,请参阅上面引用的技术报告。 + +*UCP*提供了从一个*源*并行策略到不同的*目标*和不同硬件配置的灵活检查点。为验证这一能力,我们进行了正确性测试的两组实验。 + +## 单源到多目标 + + + +图3:在第101次迭代时使用不同目标加载UCP检查点的训练曲线,具有不同GPU数量和并行策略 + +为测试UCP是否允许使用不同并行策略和硬件配置恢复训练,我们首先使用TP=2、PP=2、DP=2(ZeRO-1)和SP=1的配置训练GPT-3模型。由于时间和资源的限制,我们将实验限制在前200次迭代。我们将在第100次迭代保存的检查点转换为*UCP*检查点,并使用不同GPU数量和并行策略恢复训练。我们记录了每次迭代的LM损失(数据并行组的平均损失)。图3显示,训练可以使用不同的*目标*并行策略无缝地使用*UCP*检查点恢复,如果训练继续使用*源*策略,将实现一致的收敛。 + +## 多源到单目标 + + + +图4:在第100次迭代将不同源并行策略转换为UCP并加载UCP的训练曲线,具有不同的目标。 + +图4显示了从多个*源*配置到单一*目标*的训练曲线。在固定随机种子的情况下,我们首先使用不同的*源*配置训练GPT-3模型。然后我们将它们在第100次迭代保存的分布式检查点转换为*UCP*检查点,并使用TP=2、PP=2、DP=1和SP=1的配置恢复训练。结果显示,无论不同的*源*配置如何,它们的检查点都可以转换为*UCP*并使用不同的配置恢复训练。最重要的是,恢复的训练曲线与第101--200次迭代的*源*曲线匹配。这些结果验证了*UCP*将任意配置转换为不同配置以恢复训练的有效性。 + +## 不同模型架构的变化 + +*UCP*与模型架构无关。因此,它不仅与GPT模型兼容,而且足够灵活,可以支持各种其他模型架构和大小。图5、6和7显示了使用新并行策略从*UCP*中恢复训练时的训练收敛情况。这些图表显示,训练可以使用*UCP*无缝恢复,实现与初始训练阶段一致的收敛,这与这些不同模型相符。这些结果表明,*UCP*对于各种模型架构和大小都非常灵活。 + + + +图5:使用LLaMA模型架构的训练曲线。源是TP=PP=DP=2。训练在第101次迭代时使用新目标TP=DP=2, PP=1和TP=PP=2, DP=1恢复 + + + +图6:使用BLOOM模型架构的训练曲线。源是TP=2, PP=24, DP=8。训练在第94767次迭代时使用新目标TP=2, DP=4, PP=24恢复。 + + + +图7:使用Mixtral-MoE模型架构变种的训练曲线。源是TP=1, PP=2, DP=4。训练在第501次迭代时使用新目标TP=PP=DP=2恢复。 + +# DeepSpeed通用检查点的普遍可用性 + +我们很高兴发布DeepSpeed通用检查点。DeepSpeed通用检查点已与Megatron-DeepSpeed的重构版本完全集成,并可通过DeepSpeed和Megatron-DeepSpeed的GitHub仓库访问。详细的使用教程可在[DeepSpeed教程页面](https://www.deepspeed.ai/tutorials/universal-checkpointing/)上找到。 + +我们欢迎来自更广泛开源社区的贡献和合作。DeepSpeed通用检查点是大规模AI训练和推理DeepSpeed生态系统的一部分。有关所有DeepSpeed技术和创新的更多详细信息,请访问我们的[网站](https://www.deepspeed.ai/)并在X(前Twitter)([英文](https://twitter.com/DeepSpeedAI),[日文](https://twitter.com/DeepSpeedAI_JP))和[中文知乎](https://www.zhihu.com/people/deepspeed)上关注我们。 + +# 致谢和贡献 +我们感谢伊利诺伊大学厄巴纳-香槟分校、Statosphere和英特尔Habana的合作。 + +贡献者: +Xinyu Lian $^1$, Sam Ade Jacobs $^2$, Lev Kurilenko $^2$, Masahiro Tanaka $^2$, +Stas Bekman $^3$, Olatunji Ruwase $^2$, Minjia Zhang $^1$, Moshe Island $^4$ + +1: 伊利诺伊大学厄巴纳-香槟分校 +2: 微软 +3: Statosphere +4: 英特尔Habana diff --git a/blogs/deepspeed-ucp/japanese/README.md b/blogs/deepspeed-ucp/japanese/README.md new file mode 100644 index 000000000000..24da72298dd8 --- /dev/null +++ b/blogs/deepspeed-ucp/japanese/README.md @@ -0,0 +1,115 @@ +
+ +# DeepSpeed Universal Checkpointing: 大規模分散学習のための効率的かつ柔軟なチェックポイント + +
+ + + +DeepSpeed Universal Checkpointを引用する際は、こちらの[arxiv report](https://arxiv.org/abs/2406.18820)を参照してください。 + +``` +@article{lian2024-ucp, +title={Universal Checkpointing: Efficient and Flexible Checkpointing for +Large Scale Distributed Training}, +author={Xinyu Lian and Sam Ade Jacobs and Masahiro Tanaka and Lev +Kurilenko and Stas Bekman and Olatunji Ruwase and Minjia Zhang}, +journal={arxiv preprint arxiv:406.18820}, +year={2024}, + +} +``` + +# はじめに + +モデルの状態を保存するをチェックポイントは、システム障害が発生した場合に途中から学習を再開するために、LLMのトレーニングコストを削減するための重要な技術です。さらに、学習のさまざまな段階でモデルのパフォーマンスを評価することができるため、ハイパーパラメータの調整や異なる下流タスクのためのファインチューニングが容易になります。 + +しかし、特に分散学習やファインチューニングのシナリオにおいて、チェックポイントの設計、実装、および使用には多くの課題があります。DeepSpeedが備えるZeROを用いたデータ並列化(ZeRO-DP)、パイプライン並列化(PP)、テンソル並列化(TP)、およびシーケンス並列化(SP)などのいくつかの方法は、LLM学習を加速するための優れた技術ですが、一般的なチェックポイント保存と読み込みのメカニズムと互換性がありません。さらに、これらの異なる並列化を用いたエラスティックで柔軟な組み合わせは、現在サポートされていません。主な理由の一つは、こうした並列化技術がモデルおよび/またはオプティマイザの状態を分割するため、異なるGPUまたはアクセラレータの数に基づいて作成されたチェックポイントから学習を再開することが困難であるためです。 + +このリリースでは、分散チェックポイントの問題に対する包括的なソリューションであるDeepSpeed Universal Checkpointing (*UCP*) を紹介します。*UCP*は、任意の並列化戦略とハードウェア構成で再開する柔軟性を提供しながら、効率的なチェックポイント作成を可能にします。また、*UCP*は、ハードウェア障害の際にも、残りの正常なハードウェアでのトレーニングの継続を可能にするため、キャパシティがエラスティックに変化するハードウェアを活用でき、トレーニング時間を短縮するなど、大規模学習を最大限に効率化できます。 + +現在のリリースには、*UCP*の次の機能が含まれます。 + +- 任意のトレーニング並列技術(例:PP、TP、DP、ZeRO-DP、SP、MoE)に沿った柔軟なチェックポイントの再構成 +- ファインチューニングを含む学習およびアクセラレータリソースのエラスティックなリソース管理、スケールアップまたはスケールダウン +- BLOOM、Megatron GPT、LLAMA、Microsoft Phiなどの複数の商用規模モデルのサポートを伴う実利用例 + +# UCPの設計 + +DeepSpeed *UCP*における中心的な考え方は、チェックポイントライフサイクルの各段階で最適な表現を選択することです。保存のための分散表現と、読み込みのための統合表現です。これは、2つの重要なメカニズムを使用して実現されます。一つ目は、各モデルパラメータの統合表現と、パラメータのフラグメントを任意のモデル並列化構成におけるランク(プロセスのインデックス)にマッピングするためのメタデータからなるユニバーサルチェックポイントフォーマットです。二つ目は、分散チェックポイントをユニバーサルチェックポイント形式に変換するためのシンプルで強力かつ堅牢な仕様言語であるユニバーサルチェックポイント言語です。 + +## ユニバーサルチェックポイントフォーマット + + + +図1:*UCP*の概要:上段と下段はそれぞれソースとターゲットの並列化構成です。中央の段は、ソースからターゲットへの翻訳の仲介ブロックとしての*UCP*を示しています。 + +図1は、*UCP*の変換プロセスとフォーマットの抽象レベルの概略図を示しています。変換は、DP、TP、PP、SPなどの任意の並列戦略形式のチェックポイントから始まります。訓練結果のモデルやオプティマイザ状態をネイティブ形式で保存することで、同期されたグローバルチェックポイントの保存に伴うオーバーヘッドを回避します。保存されたチェックポイント(以下、*ソース*と呼びます)を任意の並列戦略に簡単に変換してロードできるようにするために、中間ブロックとして原子チェックポイント (atomic checkpoint) 形式のアイデアを導入します。 + +原子チェックポイントの概念は、*UCP*の中心となるものです。これらは、各モデルパラメータの統合表現とオプティマイザ状態を含む細粒度のファイルです。原子チェックポイント形式は、次の3つの理由で有用です。まず、チェックポイントの原子表現は、分散チェックポイントと特定の並列技術およびハードウェア構成の依存関係を切り離します。そのため、*ソース*から*ターゲット*への個別のコンバータを実装する必要はありません。代わりに、*UCP*は異なる分散トレーニング技術間の共通交換形式として機能し、他の分散トレーニング戦略に簡単に変換できます(図2参照)。各モデルパラメータの統合表現を保持することで、*UCP*はモデル状態またはフラグメント状態をパラメータごとに異なるGPUに柔軟にマッピングし、大規模モデルチェックポイントを読み込むために必要な作業メモリを効果的に削減します。第二に、*UCP*の変換は遅延してオンデマンドで行われます。たとえば、トレーニングプロセスが並列技術とハードウェア構成の変更を検出したときです。つまり、既存の分散チェックポイント保存ロジックには変更が必要ありません。第三に、*UCP*の構造により、混合精度トレーニングなどの高度な技術を分散トレーニングで簡単に処理できます。実際には、研究者や実務者はfp16とbfloat16の混合精度トレーニングを切り替えることがあります。fp32の重み/オプティマイザの値を保持することで、トレーニングはfp16またはbfloat16のいずれかで再開できます。 + +## ユニバーサルチェックポイント言語 + + + +図2:*UCP*言語は、分散チェックポイントを*UCP*形式に変換し、新しいハードウェア構成とターゲットの並列技術に基づいて*UCP*チェックポイントを読み込みます。 + +*UCP*は異なる並列戦略に対する共通インターフェースを提供しますが、任意の分散チェックポイントから*UCP*への変換の開発には依然として高いエンジニアリングおよび実装コストがかかる場合があります。これは、分散トレーニングの各GPUが保存のためのメソッド(例:PyTorchのtorch.save())を呼び出して、所有するGPUモデル状態のチェックポイントファイルをディスクに保存し、各チェックポイントの正確な内容が異なる技術によって異なるためです。 + +この課題に取り組むために、*UCP*は*UCP*言語を提供します。これは、前述の共通形式にいくつかの種類の分散チェックポイントを変換するためのシンプルで強力な仕様言語です。*UCP*はこれを2つの方法で行います。まず、モデル状態の並列戦略の広範な範囲をカバーする事前定義された*パラメータパターン*を持つ宣言型システムを提供します。パラメータパターンには、パラメータがGPU間でどのように分割されているかについてのランタイム情報が含まれています。たとえば、*nopattern*は、パラメータがGPUランクに一意に関連付けられていることを意味し、これはZeRO-1/2やPPなどの技術で最も一般的に見られるパターンです(現在サポートされているパラメータパターンの完全なリストについては、技術レポートを参照してください)。第二に、*UCP*言語は、分散チェックポイントを統合された原子チェックポイントに変換するための一般的な演算子のセットを提供します。抽象的なレベルで見ると、図2に示すように、ターゲットへの移行後に新しい並列技術が必要な場合やハードウェア構成が変更された場合に、*UCP*言語が使用されます。最初に、分散チェックポイントを*UCP*形式に変換し、次にターゲットの並列技術と新しいハードウェア構成に基づいて*UCP*チェックポイントを読み込みます。 + +# 主要な結果 + +我々は、LLMの訓練に関する一連の実験を通じて*UCP*を評価します。デコーダーのみのトランスフォーマーに焦点を当てました。これは最先端のパフォーマンスを持つアーキテクチャです。いくつかの最大のモデルもデコーダーベースであるため、柔軟で効率的なチェックポイントは特に重要です。このブログでは、さまざまなモデルと並列戦略にわたる正確性の検証結果を紹介します。並列効率分析、詳細なシステムおよびモデルアーキテクチャ、および訓練のハイパーパラメータに関する詳細な結果については、上記の技術レポートを参照してください。 + +*UCP*は、異なるハードウェア構成を持つ異なる*ターゲットの*並列戦略に対する*ソース*並列戦略からの柔軟なチェックポイントを提供します。この能力を検証するために、2つの実験グループで*UCP*の正確さを確認しました。 + +## シングルソースから複数のターゲットへ + + + +図3:さまざまなGPU数と並列戦略で*ターゲット*に*UCP*チェックポイントをロードする訓練lossの曲線(イテレーション100で保存・ロード) + +*UCP*が異なる並列戦略とハードウェア構成での訓練再開を可能にするかどうかをテストするために、まずTP=2、PP=2、DP=2(ZeRO-1)、SP=1の構成でGPT-3モデルを訓練します。時間とリソースの制約のため、この実験は最初の200イテレーションに限定しました。100イテレーション目で保存されたチェックポイントを*UCP*チェックポイントに変換し、異なるGPU数と並列戦略を使用してこれらの*UCP*チェックポイントで訓練を再開します。各イテレーションのLM損失(データ並列グループ全体の平均損失)を記録しました。図3は、異なる*ターゲット*並列戦略を使用して*UCP*チェックポイントで訓練をシームレスに再開し、*ソース*戦略を継続して訓練する場合と一致する収束を達成することを示しています。 + +## 複数ソースからシングルターゲットへ + + + +図4:100イテレーション目で異なるソース並列戦略を*UCP*に変換し、異なるターゲットで*UCP*をロードする訓練lossの曲線 + +図4は、複数の*ソース*構成から単一の*ターゲット*へのlossの曲線を示しています。固定されたランダムシードを使用して、まずGPT-3モデルを異なる*ソース*構成で訓練します。次に、100イテレーション目で保存された分散チェックポイントを*UCP*チェックポイントに変換し、TP=2、PP=2、DP=1、SP=1の構成でトレーニングを再開します。結果は、異なる*ソース*構成にもかかわらず、そのチェックポイントはすべて*UCP*に変換され、異なる構成で訓練を再開できることを示しています。最も重要なのは、再開されたlossの曲線が、イテレーション101~200での*ソース*の曲線と一致することです。これらの結果は、訓練再開時に任意の構成を異なる構成に変換する*UCP*の効果を検証しています。 + +## 異なるモデルアーキテクチャへの対応 + +*UCP*はモデルアーキテクチャに依存しません。したがって、GPTモデルとの互換性だけでなく、さまざまなモデルアーキテクチャとサイズをサポートする柔軟性も備えています。図5、6、7は、新しい並列戦略で*UCP*から訓練を再開したときのLLaMA 7B、BLOOM 176B、およびMixtral-7x8B MoEを元にしたモデルのトレーニング収束を示しています。これらの図は、トレーニングが*UCP*でシームレスに再開され、これらの多様なモデル全体で訓練の初期フェーズと一致する収束を達成することを示しています。これらの結果は、さまざまなモデルアーキテクチャとサイズに対する*UCP*の柔軟性を示しています。 + +A graph of training step Description automatically generated + +図5:LLaMAモデルアーキテクチャの訓練lossの曲線。ソースはTP=PP=DP=2。訓練はイテレーション101で新しいターゲットTP=DP=2、PP=1およびTP=PP=2、DP=1で再開しました。 + +A graph with numbers and lines Description automatically generated + +図6:BLOOMモデルアーキテクチャの訓練lossの曲線。ソースはTP=2、PP=24、DP=8。訓練はイテレーション94767で新しいターゲットTP=2、DP=4、PP=24で再開しました。 + +A graph of training step Description automatically generated + +図7:Mixtral-MoEモデルアーキテクチャに基づくモデルの訓練lossの曲線。ソースはTP=1、PP=2、DP=4。訓練はイテレーション501で新しいターゲットTP=PP=DP=2で再開しました。 + +# DeepSpeed Universal Checkpointの一般公開 + +DeepSpeed Universal Checkpointは、リベースされたMegatron-DeepSpeedバージョンに完全に統合されており、DeepSpeedおよびMegatron-DeepSpeedのGitHubリポジトリを通じてアクセスできます。使用に関する詳細なチュートリアルは、[DeepSpeedチュートリアルページ](https://www.deepspeed.ai/tutorials/universal-checkpointing/)にあります。 + +DeepSpeedでは、広範なオープンソースコミュニティからの貢献とコラボレーションを受け入れています。DeepSpeed Universal Checkpointは、大規模AIトレーニングおよび推論のためのDeepSpeedエコシステムの一部です。すべてのDeepSpeed技術とイノベーションについての詳細は、[ウェブサイト](https://www.deepspeed.ai/)をご覧いただき、X(旧Twitter)での[英語](https://twitter.com/DeepSpeedAI)、[日本語](https://twitter.com/DeepSpeedAI_JP)、および[中国のZhihu](https://www.zhihu.com/people/deepspeed)をフォローしてください。 + +# 謝辞と貢献 + +University of Illinois at Urbana-Champaign、Statosphere、およびIntel Habanaとの協力に感謝します。 + +コントリビュータ: +Xinyu Lian $^1$, Sam Ade Jacobs $^2$, Lev Kurilenko $^2$, Masahiro Tanaka $^2$, Stas Bekman $^3$, Olatunji Ruwase $^2$, Minjia Zhang $^1$, Moshe Island $^4$ + +1: University of Illinois at Urbana-Champaign +2: Microsoft +3: StasoSphere +4: Intel Habana diff --git a/blogs/deepspeed-ucp/media/flowchart.png b/blogs/deepspeed-ucp/media/flowchart.png new file mode 100644 index 0000000000000000000000000000000000000000..d5198ca00e03bd5447c6af3d6493e78b2dc50c2d GIT binary patch literal 58071 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 vLPI^`y?5zl&9CWQUdQorNR+%ZccD6A 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μ`y!i|J-( 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 Y&rnwnEmq=(@NkE^vW`-zf=$H#0gqK>*Z=?k literal 0 HcmV?d00001 diff --git a/blogs/deepspeed-ucp/media/image1.png b/blogs/deepspeed-ucp/media/image1.png new file mode 100755 index 0000000000000000000000000000000000000000..c9663de91cc297f47b2304760528c70bd09843be GIT binary patch literal 142850 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 literal 0 HcmV?d00001 diff --git a/blogs/deepspeed-ucp/media/image2.png b/blogs/deepspeed-ucp/media/image2.png new file mode 100644 index 0000000000000000000000000000000000000000..4262aa26600f5b3f86a8c12f15b7465078ba5416 GIT binary patch literal 179248 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 z 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 AwEzGB literal 0 HcmV?d00001 diff --git a/blogs/deepspeed-ucp/media/image5.png b/blogs/deepspeed-ucp/media/image5.png new file mode 100755 index 0000000000000000000000000000000000000000..f0195ebc8d11c6191f7eda22e4c09927672e5a96 GIT binary patch literal 132667 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 Un8$j&2?76<6&}e~$eITJKZ3B1MF0Q* literal 0 HcmV?d00001 diff --git a/blogs/deepspeed-ucp/media/image6.png b/blogs/deepspeed-ucp/media/image6.png new file mode 100644 index 0000000000000000000000000000000000000000..19405123e79ac23c98565fbfaee20c19d12bee7f GIT binary patch literal 82311 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

+GJ=i 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 Pey^UEk!F>;b=3a>$#}DR literal 0 HcmV?d00001 diff --git a/blogs/deepspeed-ulysses/README.md b/blogs/deepspeed-ulysses/README.md index 7ea7a4535e90..ed377fec1039 100644 --- a/blogs/deepspeed-ulysses/README.md +++ b/blogs/deepspeed-ulysses/README.md @@ -32,7 +32,7 @@ that process speech, images and waveforms concurrently require long context reasoning over high dimensional inputs with extremely large sequences. Similarly, chapter and book level summarization (estimated at tens and hundreds of thousands of words) are of great importance in -conversational AI and abstractive summarization tasks. +conversational AI and abstract summarization tasks. Long sequence length is equally critical for AI for science opening doors for better understanding of structure biology, health care, @@ -233,7 +233,7 @@ at different sequence length and GPU count.* Next, we evaluate Ulysses on 7 billion (7B) and 30 billion (30B) parameter GPT dense attention models and compare against Megatron-LM's sequence -parallelism (Megatron LM) and Colosal AI sequence parallelism (ColAI-SP) on +parallelism (Megatron LM) and Colossal AI sequence parallelism (ColAI-SP) on 32 and 64 A100 GPUs respectively. The results of these evaluations are shown in Figures 3 and 4. @@ -362,9 +362,9 @@ on what is possible when long context window is no longer a limitation. DeepSpeed-Ulysses is part of the bigger DeepSpeed ecosystem of large-scale AI training and inference. For more details on all DeepSpeed technologies and innovations, please visit our [website]((https://www.deepspeed.ai/)) and follow us -on X, formerly Twitter, ([English](https://twitter.com/MSFTDeepSpeed), [Japanese](https://twitter.com/MSFTDeepSpeedJP)) and [Chinese Zhihu](https://www.zhihu.com/people/deepspeed). +on X, formerly Twitter, ([English](https://twitter.com/DeepSpeedAI), [Japanese](https://twitter.com/DeepSpeedAI_JP)) and [Chinese Zhihu](https://www.zhihu.com/people/deepspeed). We are open to collaborations with universities, research labs, and companies. For such requests (and other requests unsuitable for GitHub), please directly email to . If you like -our work, please "Star" our [repo](https://github.com/microsoft/DeepSpeed). +our work, please "Star" our [repo](https://github.com/deepspeedai/DeepSpeed). diff --git a/blogs/deepspeed-ulysses/chinese/README.md b/blogs/deepspeed-ulysses/chinese/README.md index 20af8b91fbea..7ba941214cf4 100644 --- a/blogs/deepspeed-ulysses/chinese/README.md +++ b/blogs/deepspeed-ulysses/chinese/README.md @@ -150,6 +150,6 @@ DeepSpeed-Ulysses已经完全与Megatron-DeepSpeed代码库集成并经过测试 我们很高兴宣布推出DeepSpeed-Ulysses,您可以通过DeepSpeed GitHub获取代码。详细的使用教程在[DeepSpeed教程页面](https://www.deepspeed.ai/tutorials/ds-sequence/)上提供。 -我们欢迎各种形式的贡献和合作,以共同推动当长上下文窗口不再是限制时的各种创新。DeepSpeed-Ulysses是大规模AI训练和推理的更大DeepSpeed生态系统的一部分。有关所有DeepSpeed技术和创新的更多细节,请访问我们的[网站]((https://www.deepspeed.ai/)),并关注我们在X(Twitter)上的帐号([英文](https://twitter.com/MSFTDeepSpeed),[日文](https://twitter.com/MSFTDeepSpeedJP))和[中文知乎](https://www.zhihu.com/people/deepspeed)。 +我们欢迎各种形式的贡献和合作,以共同推动当长上下文窗口不再是限制时的各种创新。DeepSpeed-Ulysses是大规模AI训练和推理的更大DeepSpeed生态系统的一部分。有关所有DeepSpeed技术和创新的更多细节,请访问我们的[网站]((https://www.deepspeed.ai/)),并关注我们在X(Twitter)上的帐号([英文](https://twitter.com/DeepSpeedAI),[日文](https://twitter.com/DeepSpeedAI_JP))和[中文知乎](https://www.zhihu.com/people/deepspeed)。 我们愿意与大学、研究实验室和公司合作。有关此类请求(以及不适合在GitHub上提出的其他请求),请直接发送电子邮件至。 diff --git a/blogs/deepspeed-ulysses/japanese/README.md b/blogs/deepspeed-ulysses/japanese/README.md index 88a0e375ce70..ca847cd07ada 100644 --- a/blogs/deepspeed-ulysses/japanese/README.md +++ b/blogs/deepspeed-ulysses/japanese/README.md @@ -153,6 +153,6 @@ dist_attn = DistributedAttention(attn, get_sequence_parallel_group()) DeepSpeed-Ulyssesは、DeepSpeedのGitHubを通じてアクセス可能です。使用方法に関する詳しいチュートリアルは、[DeepSpeedのチュートリアルページ ](https://www.deepspeed.ai/tutorials/ds-sequence/)にあります。 -長いコンテキストを扱う際の制約を取り除くことによって何が可能になるのか、ユーザの皆様と共に様々な可能性を探求するため、幅広い協力やコラボレーションを歓迎します。DeepSpeed-Ulyssesは、大規模なAIの訓練と推論のためのより大きなDeepSpeedエコシステムの一部です。DeepSpeedの多くの技術や革新的な機能の詳細については、[ウェブサイト](https://www.deepspeed.ai/)をご覧いただくか、X(以前のTwitter。[英語版](https://twitter.com/MSFTDeepSpeed)、[日本語版](https://twitter.com/MSFTDeepSpeedJP))や、中国の[Zhihu](https://www.zhihu.com/people/deepspeed)でフォローしてください。 +長いコンテキストを扱う際の制約を取り除くことによって何が可能になるのか、ユーザの皆様と共に様々な可能性を探求するため、幅広い協力やコラボレーションを歓迎します。DeepSpeed-Ulyssesは、大規模なAIの訓練と推論のためのより大きなDeepSpeedエコシステムの一部です。DeepSpeedの多くの技術や革新的な機能の詳細については、[ウェブサイト](https://www.deepspeed.ai/)をご覧いただくか、X(以前のTwitter。[英語版](https://twitter.com/DeepSpeedAI)、[日本語版](https://twitter.com/DeepSpeedAI_JP))や、中国の[Zhihu](https://www.zhihu.com/people/deepspeed)でフォローしてください。 -DeepSpeedは、皆様の開発への参加を歓迎しています。DeepSpeedのGitHubページで、バグ報告、Pull Request、ディスカッションへの参加が可能です。詳細は[ガイドライン](https://github.com/microsoft/DeepSpeed/blob/master/CONTRIBUTING.md)をご覧ください。また、大学、研究所、企業とのコラボレーションも行っています。こうしたコラボレーションについてのご要望(およびGitHubには適さないその他の話題)については まで直接メールをお送りください。 +DeepSpeedは、皆様の開発への参加を歓迎しています。DeepSpeedのGitHubページで、バグ報告、Pull Request、ディスカッションへの参加が可能です。詳細は[ガイドライン](https://github.com/deepspeedai/DeepSpeed/blob/master/CONTRIBUTING.md)をご覧ください。また、大学、研究所、企業とのコラボレーションも行っています。こうしたコラボレーションについてのご要望(およびGitHubには適さないその他の話題)については まで直接メールをお送りください。 diff --git a/blogs/deepspeed-visualchat/10-03-2023/README-Chinese.md b/blogs/deepspeed-visualchat/10-03-2023/README-Chinese.md index e91ff1ecd51e..d4cc268fbe89 100644 --- a/blogs/deepspeed-visualchat/10-03-2023/README-Chinese.md +++ b/blogs/deepspeed-visualchat/10-03-2023/README-Chinese.md @@ -146,7 +146,7 @@ DeepSpeed-VisualChat 是一个易于使用的训练框架,具有很好的可 使用 DeepSpeed-VisualChat 训练模型是简单和方便的。这里我们给出了基于 CLIP 视觉编码器和 LLaMa-7B 模型的一个例子: ``` -git clone https://github.com/microsoft/DeepSpeedExamples.git +git clone https://github.com/deepspeedai/DeepSpeedExamples.git cd DeepSpeedExamples/applications/DeepSpeed-VisualChat/ pip install -r requirements.txt cd training @@ -161,21 +161,21 @@ bash chat_scripts/run.sh # You need to change necessary variables, e.g, ckpt pat 为了支持更大的模型推理,我们已经将 Hugging Face 大模型推理集成到我们的 DeepSpeed-VisualChat API 中。因此,用户可以根据 GPU 内存容量和模型大小选择不同数量的 GPU。 -请参考我们的 [GitHub 主页](https://github.com/microsoft/DeepSpeedExamples/tree/master/applications/DeepSpeed-VisualChat) 了解更多细节。 +请参考我们的 [GitHub 主页](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/applications/DeepSpeed-VisualChat) 了解更多细节。 # 7. 发布:今天尝试 DeepSpeed-VisualChat! 我们非常兴奋地分享 DeepSpeed-VisualChat 现已开源并供 AI 社区使用。 -* 要开始使用,请访问我们的 DeepSpeed-VisualChat GitHub 页面:[GitHub 主页](https://github.com/microsoft/DeepSpeedExamples/tree/master/applications/DeepSpeed-VisualChat) +* 要开始使用,请访问我们的 DeepSpeed-VisualChat GitHub 页面:[GitHub 主页](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/applications/DeepSpeed-VisualChat) -* 我们将继续在您的反馈和支持下改进 DeepSpeed-VisualChat。我们的 [路线图](https://github.com/microsoft/DeepSpeedExamples/tree/master/applications/DeepSpeed-VisualChat/README.md#-deepspeed-visualchats-roadmap-) 显示了目前支持的功能以及未来计划支持的功能。 +* 我们将继续在您的反馈和支持下改进 DeepSpeed-VisualChat。我们的 [路线图](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/applications/DeepSpeed-VisualChat/README.md#-deepspeed-visualchats-roadmap-) 显示了目前支持的功能以及未来计划支持的功能。 DeepSpeed-VisualChat 是更大的 DeepSpeed 生态系统的一部分,其中包括一系列深度学习系统和建模技术。要了解更多信息, * 请访问我们的 [网站](https://www.deepspeed.ai/) 了解详细的博客文章、教程和文档。 -* 在我们的 [英文 X(Twitter)](https://twitter.com/MSFTDeepSpeed)、[日语 X(Twitter)](https://twitter.com/MSFTDeepSpeedJP) 和 [中文知乎](https://www.zhihu.com/people/deepspeed) 上关注我们,以获取 DeepSpeed 的最新消息。 +* 在我们的 [英文 X(Twitter)](https://twitter.com/DeepSpeedAI)、[日语 X(Twitter)](https://twitter.com/DeepSpeedAI_JP) 和 [中文知乎](https://www.zhihu.com/people/deepspeed) 上关注我们,以获取 DeepSpeed 的最新消息。 -我们欢迎您为 DeepSpeed 做出贡献!我们鼓励您报告问题、贡献 PRs、并在 [DeepSpeed GitHub](https://github.com/microsoft/DeepSpeed/) 页面上参加讨论。有关更多详细信息,请查看我们的 [贡献指南](https://github.com/microsoft/DeepSpeed/blob/master/CONTRIBUTING.md)。我们对与大学、研究实验室、公司等进行合作持开放态度,例如共同进行深度学习研究、应用 DeepSpeed 为现实世界的 AI 模型和应用提供支持等等。对于此类请求(以及其他不适合 GitHub 的请求),请直接发送电子邮件至 deepspeed-info@microsoft.com。 +我们欢迎您为 DeepSpeed 做出贡献!我们鼓励您报告问题、贡献 PRs、并在 [DeepSpeed GitHub](https://github.com/deepspeedai/DeepSpeed/) 页面上参加讨论。有关更多详细信息,请查看我们的 [贡献指南](https://github.com/deepspeedai/DeepSpeed/blob/master/CONTRIBUTING.md)。我们对与大学、研究实验室、公司等进行合作持开放态度,例如共同进行深度学习研究、应用 DeepSpeed 为现实世界的 AI 模型和应用提供支持等等。对于此类请求(以及其他不适合 GitHub 的请求),请直接发送电子邮件至 deepspeed-info@microsoft.com。 -* 如果你喜欢我们的工作,请在 [DeepSpeed GitHub](https://github.com/microsoft/DeepSpeed/) 和 [DeepSpeedExamples GitHub](https://github.com/microsoft/DeepSpeedExamples/) 上为我们的仓库点“星”。 +* 如果你喜欢我们的工作,请在 [DeepSpeed GitHub](https://github.com/deepspeedai/DeepSpeed/) 和 [DeepSpeedExamples GitHub](https://github.com/deepspeedai/DeepSpeedExamples/) 上为我们的仓库点“星”。 diff --git a/blogs/deepspeed-visualchat/10-03-2023/README-Japanese.md b/blogs/deepspeed-visualchat/10-03-2023/README-Japanese.md index ec23e005bff6..4697c15f2bb3 100755 --- a/blogs/deepspeed-visualchat/10-03-2023/README-Japanese.md +++ b/blogs/deepspeed-visualchat/10-03-2023/README-Japanese.md @@ -54,7 +54,7 @@ GPTやLLaMaのような大規模言語モデル(LLM)は、テキスト生成

- Different attention mehanisms + Different attention mechanisms *図2: 異なるアテンションの機構: 「ユーザー:画像を説明してください」という入力文と3つの画像トークン(I-token1、I-token2、I-token3)と組み合わせて与えた場合の、それぞれのattention機構の構成を示しています。左側では、標準的なcausal attentionによって、画像トークンをテキストとして扱う様子を示しています。中央は、テキストトークンに対する標準的なcausal attentionを維持しながら、画像に適用されるcross attentionを使用する様子を示しています。右側では、画像トークンはself attentionのみを行い、テキストトークンはテキスト/画像トークンへのアテンションを独立に計算するという、新しいマルチモーダルのためのアテンションの提案を、オレンジ色のマスクで強調して示しています。この仕組みは、Q, Kをクエリとキーとしたとき、 softmax($`QK^T \odot M_1`$)+ softmax($`QK^T \odot M_2`$)として定義されます。M $`\in`$ R10x10としたとき、$`M_1`$=[M==1], and $`M_2`$=[M==2] です。*
@@ -152,7 +152,7 @@ DeepSpeed-VisualChatは使いやすく、かつ優れたスケーラビリティ DeepSpeed-VisualChatの訓練は簡単かつ便利に実行できます。ここではCLIPビジュアルエンコーダーとLLaMa-7Bモデルを使用する例を示します: ``` -git clone https://github.com/microsoft/DeepSpeedExamples.git +git clone https://github.com/deepspeedai/DeepSpeedExamples.git cd DeepSpeedExamples/applications/DeepSpeed-VisualChat/ pip install -r requirements.txt cd training @@ -168,21 +168,21 @@ bash chat_scripts/run.sh # You need to change necessary variables, e.g, ckpt pat より大規模なモデル推論をサポートするために、我々はHugging Faceの大規模モデル推論をDeepSpeed-VisualChat APIに組み込みました。そのため、ユーザーはGPUメモリ容量とモデルサイズに基づいて、異なるGPU数を選択することができます。 -詳細は[ランディングページ](https://github.com/microsoft/DeepSpeedExamples/tree/master/applications/DeepSpeed-VisualChat)をご参照ください。 +詳細は[ランディングページ](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/applications/DeepSpeed-VisualChat)をご参照ください。 # 7. 早速使ってみましょう! DeepSpeed-VisualChatがオープンソース化され、AIコミュニティで利用できるようになったことを大変嬉しく思います。 -* まずは、DeepSpeed-VisualChatのGitHubページをご覧ください: [GitHubランディングページ](https://github.com/microsoft/DeepSpeedExamples/tree/master/applications/DeepSpeed-VisualChat) +* まずは、DeepSpeed-VisualChatのGitHubページをご覧ください: [GitHubランディングページ](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/applications/DeepSpeed-VisualChat) -* DeepSpeed-VisualChatは、皆様からのフィードバックとサポートにより改良を続けていきます。私たちの[ロードマップ](https://github.com/microsoft/DeepSpeedExamples/tree/master/applications/DeepSpeed-VisualChat/README.md#-deepspeed-visualchats-roadmap-)は、現在サポートされている機能と将来的に計画している機能を示しています。 +* DeepSpeed-VisualChatは、皆様からのフィードバックとサポートにより改良を続けていきます。私たちの[ロードマップ](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/applications/DeepSpeed-VisualChat/README.md#-deepspeed-visualchats-roadmap-)は、現在サポートされている機能と将来的に計画している機能を示しています。 DeepSpeed-VisualChatは、さまざまなDeep Learningシステムやモデリング技術を含む、より大きなDeepSpeedエコシステムの一部です。詳細については、以下をご覧ください。 * 私たちの[ウェブサイト](https://www.deepspeed.ai/)で、詳細なブログ記事、チュートリアル、役立つドキュメントを提供しています。 -* DeepSpeedの最新ニュースは、[English X(Twitter)](https://twitter.com/MSFTDeepSpeed)、[Japanese X(Twitter)](https://twitter.com/MSFTDeepSpeedJP)、[Chinese Zhihu](https://www.zhihu.com/people/deepspeed)をフォローしてください。 +* DeepSpeedの最新ニュースは、[English X(Twitter)](https://twitter.com/DeepSpeedAI)、[Japanese X(Twitter)](https://twitter.com/DeepSpeedAI_JP)、[Chinese Zhihu](https://www.zhihu.com/people/deepspeed)をフォローしてください。 -DeepSpeedは、皆様の開発への参加を歓迎しています。DeepSpeedのGitHubページで、バグ報告、Pull Request、ディスカッションへの参加が可能です。詳細は[ガイドライン](https://github.com/microsoft/DeepSpeed/blob/master/CONTRIBUTING.md)をご覧ください。また、大学、研究所、企業とのコラボレーションも行っています。こうしたコラボレーションについてのご要望(およびGitHubには適さないその他の話題)については まで直接メールをお送りください。 +DeepSpeedは、皆様の開発への参加を歓迎しています。DeepSpeedのGitHubページで、バグ報告、Pull Request、ディスカッションへの参加が可能です。詳細は[ガイドライン](https://github.com/deepspeedai/DeepSpeed/blob/master/CONTRIBUTING.md)をご覧ください。また、大学、研究所、企業とのコラボレーションも行っています。こうしたコラボレーションについてのご要望(およびGitHubには適さないその他の話題)については まで直接メールをお送りください。 -* 私たちの[DeepSpeed GitHub](https://github.com/microsoft/DeepSpeed/)および[DeepSpeedExamples GitHub](https://github.com/microsoft/DeepSpeedExamples/)リポジトリが気に入ったら、ぜひスターをつけてください! +* 私たちの[DeepSpeed GitHub](https://github.com/deepspeedai/DeepSpeed/)および[DeepSpeedExamples GitHub](https://github.com/deepspeedai/DeepSpeedExamples/)リポジトリが気に入ったら、ぜひスターをつけてください! diff --git a/blogs/deepspeed-visualchat/10-03-2023/README.md b/blogs/deepspeed-visualchat/10-03-2023/README.md index eac9d06c3cea..ce354fd10812 100755 --- a/blogs/deepspeed-visualchat/10-03-2023/README.md +++ b/blogs/deepspeed-visualchat/10-03-2023/README.md @@ -55,7 +55,7 @@ The model architecture of DeepSpeed-VisualChat, as depicted in *Figure 1*, is co There are two common attention mechanisms used to connect the visual and textual components in a multi-modal model: causal attention, as used in MiniGPT and QWen-VL, and cross attention, as used in Otter and Flamingo.
- Different attention mehanisms + Different attention mechanisms *Figure 2: Different Attention Mechanisms: Examine the differing attention mechanisms using an input sentence "User: Please describe the image." coupled with three Image tokens (I-token1, I-token2, I-token3). On the left, we demonstrate standard causal attention, treating image tokens as text. In the middle, we present cross attention applied to images, while maintaining standard causal attention for text tokens. On the right, we illustrate our innovative multi-modal attention proposal where image tokens only perform self-attention, and text tokens attend to text/image tokens independently, highlighted with an orange mask. This mechanism is defined by: softmax($`QK^T \odot M_1`$)+ softmax($`QK^T \odot M_2`$) with Q and K as query and key, $`M_1`$=[M==1], and $`M_2`$=[M==2], with M $`\in`$ R10x10 in this case.*
@@ -153,7 +153,7 @@ DeepSpeed-VisualChat is an easy-to-use training framework with great scalability The training experience of DeepSpeed-VisualChat is straightforward and convenient. Here we give an example based on the CLIP visual encoder and the LLaMa-7B model: ``` -git clone https://github.com/microsoft/DeepSpeedExamples.git +git clone https://github.com/deepspeedai/DeepSpeedExamples.git cd DeepSpeedExamples/applications/DeepSpeed-VisualChat/ pip install -r requirements.txt cd training @@ -167,22 +167,22 @@ bash chat_scripts/run.sh # You need to change necessary variables, e.g, ckpt pat ``` To support larger model inference, we have incorporated Hugging Face large model inference into our DeepSpeed-VisualChat API. Therefore, users can choose a different number of GPUs based on the GPU memory capacity and the model size. -Please refer to our [GitHub Landing Page](https://github.com/microsoft/DeepSpeedExamples/tree/master/applications/DeepSpeed-VisualChat) for more details. +Please refer to our [GitHub Landing Page](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/applications/DeepSpeed-VisualChat) for more details. # 7. Release: Try DeepSpeed-VisualChat today! We are very excited to share that DeepSpeed-VisualChat is now open-sourced and available to the AI community. -* To get started, please visit our GitHub page for DeepSpeed-VisualChat: [GitHub Landing Page](https://github.com/microsoft/DeepSpeedExamples/tree/master/applications/DeepSpeed-VisualChat) +* To get started, please visit our GitHub page for DeepSpeed-VisualChat: [GitHub Landing Page](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/applications/DeepSpeed-VisualChat) -* We will continue to improve DeepSpeed-VisualChat with your feedback and support. Our [roadmap](https://github.com/microsoft/DeepSpeedExamples/tree/master/applications/DeepSpeed-VisualChat/README.md#-deepspeed-visualchats-roadmap-) shows currently supported features as well as ones that are planned for the future. +* We will continue to improve DeepSpeed-VisualChat with your feedback and support. Our [roadmap](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/applications/DeepSpeed-VisualChat/README.md#-deepspeed-visualchats-roadmap-) shows currently supported features as well as ones that are planned for the future. DeepSpeed-VisualChat is a component of the larger DeepSpeed ecosystem, which includes a range of Deep Learning systems and modeling technologies. To learn more, * Please visit our [website](https://www.deepspeed.ai/) for detailed blog posts, tutorials, and helpful documentation. -* Follow us on our [English X(Twitter)](https://twitter.com/MSFTDeepSpeed), [Japanese X(Twitter)](https://twitter.com/MSFTDeepSpeedJP), and [Chinese Zhihu](https://www.zhihu.com/people/deepspeed) for latest news on DeepSpeed. +* Follow us on our [English X(Twitter)](https://twitter.com/DeepSpeedAI), [Japanese X(Twitter)](https://twitter.com/DeepSpeedAI_JP), and [Chinese Zhihu](https://www.zhihu.com/people/deepspeed) for latest news on DeepSpeed. -We welcome your contributions to DeepSpeed! We encourage you to report issues, contribute PRs, and join discussions on the [DeepSpeed GitHub](https://github.com/microsoft/DeepSpeed/) page. Please see our [contributing guide](https://github.com/microsoft/DeepSpeed/blob/master/CONTRIBUTING.md) for more details. We are open to collaborations with universities, research labs, companies, such as those working together on deep learning research, applying DeepSpeed to empower real-world AI models and applications, and so on. For such requests (and other requests unsuitable for GitHub), please directly email to deepspeed-info@microsoft.com. +We welcome your contributions to DeepSpeed! We encourage you to report issues, contribute PRs, and join discussions on the [DeepSpeed GitHub](https://github.com/deepspeedai/DeepSpeed/) page. Please see our [contributing guide](https://github.com/deepspeedai/DeepSpeed/blob/master/CONTRIBUTING.md) for more details. We are open to collaborations with universities, research labs, companies, such as those working together on deep learning research, applying DeepSpeed to empower real-world AI models and applications, and so on. For such requests (and other requests unsuitable for GitHub), please directly email to deepspeed-info@microsoft.com. -* "Star" our [DeepSpeed GitHub](https://github.com/microsoft/DeepSpeed/) and [DeepSpeedExamples GitHub](https://github.com/microsoft/DeepSpeedExamples/) repositories if you like our work! +* "Star" our [DeepSpeed GitHub](https://github.com/deepspeedai/DeepSpeed/) and [DeepSpeedExamples GitHub](https://github.com/deepspeedai/DeepSpeedExamples/) repositories if you like our work! diff --git a/blogs/deepspeed4science/chinese/README.md b/blogs/deepspeed4science/chinese/README.md index dabc4ab077f2..d3bebfec598f 100644 --- a/blogs/deepspeed4science/chinese/README.md +++ b/blogs/deepspeed4science/chinese/README.md @@ -123,11 +123,11 @@ DeepSpeed4Science的旅程始于两个开创性的基于LLM的结构生物学研 *图9:由不同框架在不同规模下支持的两个GenSLMs模型的最大序列长度。使用NVIDIA DGX,每个节点有八个40G A100 GPU。*

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%0D6EA5>s<;Y1JrJcP|3 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

tL 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

-具体在系统层面,我们发布了包括[长序列支持和其他新优化](https://github.com/microsoft/Megatron-DeepSpeed/tree/main/examples_deepspeed/deepspeed4science/megatron_long_seq_support)的最新的[Megatron-DeepSpeed框架](https://github.com/microsoft/Megatron-DeepSpeed)。科学家现在可以通过我们新添加的内存优化技术(如注意力掩码异步处理和位置码分割)、张量并行、流水线并行、序列并行、基于ZeRO的数据并行和模型状态异步处理等技术的协同组合,用更长的序列训练他们的GenSLMs等大型科学模型。图9展示了我们的新版本使GenSLMs的25B和33B模型的最长序列长度分别比之前的Megatron-DeepSpeed版本增加了12倍和14倍。在支持的序列长度方面,这个新Megatron-DeepSpeed框架也显著地超过了NVIDIA的Megatron-LM(对于25B和33B模型分别高达9.8倍和9.1倍)。例如,阿贡实验室团队的GenSLMs 25B模型在64个GPU上的原始序列长度为42K,而现在可以用512K的核苷酸序列进行训练。这在不损失准确性的条件下大大提高了模型质量和科学发现的范围。对于那些更喜欢相对位置编码技术这样的算法策略的领域科学家,这个[新版本](https://deepspeed4science.ai/2023/09/18/model-showcase-genslms/)也进行了集成。 +具体在系统层面,我们发布了包括[长序列支持和其他新优化](https://github.com/deepspeedai/Megatron-DeepSpeed/tree/main/examples_deepspeed/deepspeed4science/megatron_long_seq_support)的最新的[Megatron-DeepSpeed框架](https://github.com/deepspeedai/Megatron-DeepSpeed)。科学家现在可以通过我们新添加的内存优化技术(如注意力掩码异步处理和位置码分割)、张量并行、流水线并行、序列并行、基于ZeRO的数据并行和模型状态异步处理等技术的协同组合,用更长的序列训练他们的GenSLMs等大型科学模型。图9展示了我们的新版本使GenSLMs的25B和33B模型的最长序列长度分别比之前的Megatron-DeepSpeed版本增加了12倍和14倍。在支持的序列长度方面,这个新Megatron-DeepSpeed框架也显著地超过了NVIDIA的Megatron-LM(对于25B和33B模型分别高达9.8倍和9.1倍)。例如,阿贡实验室团队的GenSLMs 25B模型在64个GPU上的原始序列长度为42K,而现在可以用512K的核苷酸序列进行训练。这在不损失准确性的条件下大大提高了模型质量和科学发现的范围。对于那些更喜欢相对位置编码技术这样的算法策略的领域科学家,这个[新版本](https://deepspeed4science.ai/2023/09/18/model-showcase-genslms/)也进行了集成。 ## 总结和路线图 -我们非常自豪和兴奋地宣布DeepSpeed4Science计划以及几个研发亮点和成果。从今天开始,我们将在[deepspeed4science.ai](https://deepspeed4science.ai/)上介绍我们的新计划,包括关于我们的外部合作者的信息,以及当前和未来的DeepSpeed4Science技术发布。我们的一个高层次目标是推广广泛解决大规模科学发现的主要系统痛点的AI系统技术。我们希望全球的科学家们能够从DeepSpeed4Science通过开源软件解锁的新功能中受益。我们期待更好地了解阻碍您的科学发现的AI系统设计挑战。我们真诚地欢迎您的参与,帮助构建一个更有前途的AI4Science未来。请给我们发送电子邮件至。我们鼓励您在我们的[DeepSpeed GitHub](https://github.com/microsoft/DeepSpeed/)上报告问题、贡献PR、参与讨论。 +我们非常自豪和兴奋地宣布DeepSpeed4Science计划以及几个研发亮点和成果。从今天开始,我们将在[deepspeed4science.ai](https://deepspeed4science.ai/)上介绍我们的新计划,包括关于我们的外部合作者的信息,以及当前和未来的DeepSpeed4Science技术发布。我们的一个高层次目标是推广广泛解决大规模科学发现的主要系统痛点的AI系统技术。我们希望全球的科学家们能够从DeepSpeed4Science通过开源软件解锁的新功能中受益。我们期待更好地了解阻碍您的科学发现的AI系统设计挑战。我们真诚地欢迎您的参与,帮助构建一个更有前途的AI4Science未来。请给我们发送电子邮件至。我们鼓励您在我们的[DeepSpeed GitHub](https://github.com/deepspeedai/DeepSpeed/)上报告问题、贡献PR、参与讨论。 ## 致谢 diff --git a/blogs/deepspeed4science/japanese/README.md b/blogs/deepspeed4science/japanese/README.md index 276528650ab5..21b56d2dd944 100644 --- a/blogs/deepspeed4science/japanese/README.md +++ b/blogs/deepspeed4science/japanese/README.md @@ -123,11 +123,11 @@ DeepSpeed4Scienceは、構造生物学研究(タンパク質構造予測や平 *図9: 異なるスケールで異なるフレームワークがサポートする2つのGenSLMsモデルの最大シーケンス長。1ノードあたり8個の40G A100 GPUを搭載したNVIDIA DGXノードを使用。* -システムレベルでは、非常に長いシーケンスをサポートするための最新の[Megatron-DeepSpeedフレームワーク](https://github.com/microsoft/Megatron-DeepSpeed)を、[他の新しい最適化とともにリリースします](https://github.com/microsoft/Megatron-DeepSpeed/tree/main/examples_deepspeed/deepspeed4science/megatron_long_seq_support)。科学者は、(アテンションマスクと位置の埋め込みに関する)新しく追加されたメモリ最適化手法、テンソル並列処理、パイプライン並列処理、シーケンス並列処理、ZeROスタイルのデータ並列処理、モデル状態のオフロードなどの技術を相乗的な組み合わせにより、GenSLMsのような大規模な科学モデルをはるかに長いシーケンスで訓練できるようになりました。図9は、新しいリリースにより、GenSLMsの25Bおよび33Bモデルで、以前のMegatron-DeepSpeedよりもそれぞれ最大12倍および14倍の最長シーケンス長を処理できることを示しています。サポートされているシーケンス長に関しては、この新しいMegatron-DeepSpeedは、25Bモデルと33Bモデルでそれぞれ最大9.8倍と9.1倍でNVIDIAのMegatron-LMを大幅に上回っています。たとえば、GenSLMsの25Bモデルは、64個のGPUでのアルゴンヌチームの元の42Kシーケンス長と比較して、512Kのヌクレオチド配列で訓練できるようになりました。これにより、精度を損なうことなく、モデルの品質と科学的発見の範囲が大幅に向上します。Relative position embeddingなどのアルゴリズム戦略を必要とする科学者向けの追加サポートも、[このリリース](https://deepspeed4science.ai/2023/09/18/model-showcase-genslms/)に統合されています。 +システムレベルでは、非常に長いシーケンスをサポートするための最新の[Megatron-DeepSpeedフレームワーク](https://github.com/deepspeedai/Megatron-DeepSpeed)を、[他の新しい最適化とともにリリースします](https://github.com/deepspeedai/Megatron-DeepSpeed/tree/main/examples_deepspeed/deepspeed4science/megatron_long_seq_support)。科学者は、(アテンションマスクと位置の埋め込みに関する)新しく追加されたメモリ最適化手法、テンソル並列処理、パイプライン並列処理、シーケンス並列処理、ZeROスタイルのデータ並列処理、モデル状態のオフロードなどの技術を相乗的な組み合わせにより、GenSLMsのような大規模な科学モデルをはるかに長いシーケンスで訓練できるようになりました。図9は、新しいリリースにより、GenSLMsの25Bおよび33Bモデルで、以前のMegatron-DeepSpeedよりもそれぞれ最大12倍および14倍の最長シーケンス長を処理できることを示しています。サポートされているシーケンス長に関しては、この新しいMegatron-DeepSpeedは、25Bモデルと33Bモデルでそれぞれ最大9.8倍と9.1倍でNVIDIAのMegatron-LMを大幅に上回っています。たとえば、GenSLMsの25Bモデルは、64個のGPUでのアルゴンヌチームの元の42Kシーケンス長と比較して、512Kのヌクレオチド配列で訓練できるようになりました。これにより、精度を損なうことなく、モデルの品質と科学的発見の範囲が大幅に向上します。Relative position embeddingなどのアルゴリズム戦略を必要とする科学者向けの追加サポートも、[このリリース](https://deepspeed4science.ai/2023/09/18/model-showcase-genslms/)に統合されています。 ## まとめとロードマップ -DeepSpeed4Scienceイニシアティブを、いくつかのR&Dのハイライトや成果と共に発表できることを嬉しく思います。本日から、外部の協力者に関する情報や、現在および将来のDeepSpeed4Scienceテクノロジーリリースなど、新しいイニシアティブでの活動を[deepspeed4science.ai](https://deepspeed4science.ai/)上で進めていきます。私たちの高レベルな目標の1つは、大規模な科学的発見のための主要なシステムの問題点に広く対処するAIシステムテクノロジーを一般化することです。世界中の科学者によって、オープンソースのソフトウェアを通じてDeepSpeed4Scienceによって利用可能になる新機能が活用されることを願っています。科学的発見の障害となるAIシステム設計の課題を解決していくことを楽しみにしています。AI4Scienceの有望な未来を築くために、皆様の参加を歓迎します。お問い合わせはまでお願いします。問題の報告や、PRを通じての貢献、ディスカッションへの参加は、[DeepSpeed GitHub](https://github.com/microsoft/DeepSpeed/)でお願いします。 +DeepSpeed4Scienceイニシアティブを、いくつかのR&Dのハイライトや成果と共に発表できることを嬉しく思います。本日から、外部の協力者に関する情報や、現在および将来のDeepSpeed4Scienceテクノロジーリリースなど、新しいイニシアティブでの活動を[deepspeed4science.ai](https://deepspeed4science.ai/)上で進めていきます。私たちの高レベルな目標の1つは、大規模な科学的発見のための主要なシステムの問題点に広く対処するAIシステムテクノロジーを一般化することです。世界中の科学者によって、オープンソースのソフトウェアを通じてDeepSpeed4Scienceによって利用可能になる新機能が活用されることを願っています。科学的発見の障害となるAIシステム設計の課題を解決していくことを楽しみにしています。AI4Scienceの有望な未来を築くために、皆様の参加を歓迎します。お問い合わせはまでお願いします。問題の報告や、PRを通じての貢献、ディスカッションへの参加は、[DeepSpeed GitHub](https://github.com/deepspeedai/DeepSpeed/)でお願いします。 ## 謝辞 diff --git a/blogs/intel-inference/README.md b/blogs/intel-inference/README.md new file mode 100644 index 000000000000..917117523abc --- /dev/null +++ b/blogs/intel-inference/README.md @@ -0,0 +1,143 @@ + +# Llama 2 Inference on 4th Gen Intel® Xeon® Scalable Processor with DeepSpeed + +> This blog is co-published with Intel and can also be viewed on [Intel's website](https://www.intel.com/content/www/us/en/developer/articles/technical/xllama-2-on-xeon-scalable-processor-with-deepspeed.html). + +## Introduction + +Transformer models have revolutionized natural language processing with their ability to capture complex semantic and syntactic relationships. However, these models also pose significant challenges for efficient inference, especially for large language models (LLMs) that have billions of parameters. For example, running half-precision inference of Megatron-Turing 530B would require 40 A100-40GB GPUs [1]. To address challenges associated with the inference of large-scale transformer models, the DeepSpeed team at Microsoft* developed DeepSpeed Inference [2]. It provides high-performance multi-GPU inferencing capabilities and introduces several features to efficiently serve transformer-based PyTorch models using GPU. Today, we are very excited to share that DeepSpeed Inference has been implemented for the 4th Gen Intel® Xeon® scalable processor. + +## 4th Gen Intel Xeon Processor + +Intel launched the 4th gen Intel Xeon processor in January 2023. This CPU has built-in accelerators for AI, data analytics, networking, storage and HPC. Tile Matrix Multiplication (TMUL) is the built-in AI accelerator. It executes the Intel® Advanced Matrix Extensions (Intel®AMX). Intel AMX can significantly speed up deep learning (DL) applications, both in inference and training. Other notable new features in 4th gen Intel Xeon processors that can speed up DL applications include PCI Express Gen5 (PCIe 5.0) and DDR5. PCIe 5.0 doubles the I/O bandwidth from PCIe 4.0, increasing the bandwidth between CPU and connected devices. DDR5 offers up to 1.5x bandwidth increase over DDR4 [3]. + +4th gen Intel Xeon with Intel AMX sped up training of BERT-large by 4x compared to 3rd gen Intel Xeon [4]. TMUL executes Intel AMX instructions on data loaded in 2D registers, hence the name tiles. These instructions operate on 8-bit integer (INT8) or 16-bit bfloat (BF16) datatype. 4th gen Intel Xeon with Intel AMX can attain 2048 INT8 operations per cycle compared to 256 INT8 operations per cycle in 3rd gen Intel Xeon with Intel Advanced Vector Extensions 512 Neural Network Instructions (Intel AVX-512 VNNI). Its BF16 performance is 1024 operations per cycle compared to its FP32 performance of 64 operations per cycle. Therefore, Intel AMX can significantly speed up DL applications when INT8 or BF16 datatype is used for matrix multiplication or convolution computations, the common operations in transformer or convolution-based models. + +## DeepSpeed enabled for 4th Gen Intel Xeon + +DeepSpeed is a DL optimization software for scaling and speeding up DL training and inference. DeepSpeed Inference refers to the feature set in DeepSpeed implemented to speed up inference of transformer models [2]. It initially supported only CUDA GPU. We recently added support for CPU, specifically 4th gen Intel Xeon. Features currently implemented for 4th gen Intel Xeon include automatic tensor parallelism (AutoTP), BF16 and INT8 datatype support, and binding cores to rank. + +DeepSpeed builds on top of PyTorch, which has been highly optimized for CPU inference and training. Intel® Extension for PyTorch* adds state-of-the-art optimizations for popular LLMs architectures, including highly efficient matrix multiplication kernels to speed-up linear layers and customized operators to reduce the memory footprint [5]. The runtime software components for DeepSpeed Inference on CPU are shown below in Figure 1. Intel® oneAPI Deep Neural Network Library (oneDNN) uses Intel AVX-512 VNNI and Intel AMX optimizations [6]. Intel® oneAPI Collective Communications Library (oneCCL) is a library that implements the communication patterns in DL [7]. Intel® Neural Compressor (INC) was used to convert the LLMs from FP32 datatype to BF16 or INT8 datatype [8]. + + +
+
+Figure 1. Software components for DeepSpeed Inference on CPU +
+ +## Technologies Introduced + +To accelerate running LLMs with DeepSpeed on 4th-generation Intel Xeon, we introduced technologies into both DeepSpeed and Intel Extension for PyTorch. + +1. Extend DeepSpeed Accelerator Abstraction Interface to provide CPU support [9]. We implemented CPU as a DeepSpeed Accelerator which allows CPU support to be plugged into DeepSpeed in a device-agnostic manner. Device-agnostic DeepSpeed model scripts which use DeepSpeed Accelerator Abstraction Interface can run on CPU devices without modification. +2. Fine-grain core binding. We introduced two new DeepSpeed command line arguments: `--bind_cores_to_rank` and `--bind_core_list` to allow core binding with DeepSpeed AutoTP [10] on a node with multiple sockets or on a single socket with multiple sub-NUMA nodes (SNC). Using `numactl`` for each tensor parallel worker, we can bind workers to cores and NUMA memory. This reduces interference between workers and uses memory bandwidth and core more effectively. +3. Optimized shared memory (SHM) based on AllReduce communication primitives for a single CPU node. We implemented a low latency SHM based AllReduce primitive which utilizes the shared memory of a single-node CPU system. +4. Optimizations in Intel Extension for PyTorch + + a. oneDNN, Tensor Processing Primitives (TPP) and customized linear kernels for weight only quantization. + + b. Indirect Access KV Cache reduces memory reorder overhead when using KV cache. + + c. Subgraph fusion to reduce memory footprint. + + d. Fusion of AllReduce between multi-head attention and multilayer perceptron in transformer layer when there is no dependency between them. + +## How to run DeepSpeed on CPU + +Software required for DeepSpeed Inference on CPU (Specific details can be found in the configuration.) +* PyTorch +* Intel Extension for PyTorch [6] +* oneCCL binding for PyTorch [11] +* oneCCL [7] +* DeepSpeed [12] + +After installing the required software, we can run inference for a model on CPU. Device agnostic interfaces are used to load and run the model. These device agnostic interfaces are accessed through deepspeed.accelerator.get_accelerator() as shown below in Listing 1. Refer to the DeepSpeed tutorial on DeepSpeed accelerator interfaces [13] for further details. + +```python +# Listing 1. An example of using device agnostic interface to get the accelerator device and load and run a model. +import deepspeed +from deepspeed.accelerator import get_accelerator +... +# load model checkpoint into model +model = model.eval().to(get_accelerator().device_name()) + +ds_world_size = int(os.getenv('WORLD_SIZE', '0')) + +engine = deepspeed.init_inference(model=model, mp_size=ds_world_size, \ + dtype=torch.bfloat16, replace_method="auto", \ + replace_with_kernel_inject=False) + +model = engine.module +... +# evaluate model +``` + +Execute the inference code with DeepSpeed using the following command: + +```bash +deepspeed --bind_cores_to_rank +``` + +This command detects the number of sockets on host and launches as many inference workers as the number of sockets. The LLM workload runs in parallel on the inference workers with DeepSpeed AutoTP [10]. AutoTP distributes inference computation among workers and reduces inference latency. For example, if the host has two sockets, this command will launch two inference workers to inference the input sample in parallel. The argument --bind_cores_to_rank instructs DeepSpeed to split the CPU cores and distribute them to each rank evenly. This ensures that each inference worker uses an exclusive set of CPU cores to avoid interfering with one another. If this argument is not specified, it will defer to the operating system to schedule the workers to the CPU cores, which may not be optimal. + +Intel Extension for PyTorch is compatible with DeepSpeed AutoTP and can therefore be used to further optimize AutoTP models generated by DeepSpeed. + +```python +# Use Intel Extension for PyTorch to optimize model +... +model = engine.module +import intel_extension_for_pytorch as ipex +model = ipex.optimize_transformers(model.eval(), dtype=torch.bfloat16, inplace=True) +... +``` +Examples of LLM optimizations for DeepSpeed AutoTP models with Intel Extension for PyTorch are available at [14]. + +## Results + +DeepSpeed enables optimal distribution of LLM inference on two 4th gen Intel Xeon sockets. Intel AMX on 4th gen Intel Xeon can be used to accelerate BF16 matrix multiplication operations. Support for Intel AMX is available through Intel Extension for PyTorch. Performance speedups in GPT-J-6B and LLaMA2-13B from DeepSpeed AutoTP on 2 sockets are shown in Figure 2 below. GPT-J-6B has 6 billion parameters, requiring 12 GB of memory for its weights. Llama-2-13B has 13 billion parameters, requiring 26 GB of memory for the weights. Latency improvement is the metric used. Prompt latency and per token latency improved as shown by the speedups in the plot. + +
+
+Figure 2. Performance speedups from 1-socket to 2-socket 4th gen Intel Xeon with DeepSpeed AutoTP. Higher speedup represents higher performance. Per token latency is per token latency for 2nd and subsequent tokens. in/out refers to the input token size and output token size. Beam search size was 4. See backup for configurations, results may vary. +
+ +## Summary +DeepSpeed Inference has been enabled for 4th gen Intel Xeon with Intel AMX to accelerate matrix multiplications common in DL workloads. DeepSpeed Inference leverages 4th Gen Intel Xeon to speed up the inferences of GPT-J-6B and Llama-2-13B. We will continue to improve it for new devices and new LLMs. Intel Data Center GPU Max is a new GPU designed for AI for which DeepSpeed will also be enabled [15]. + +## Contributors +This work was made possible through deep collaboration between software engineers and researchers at Intel and Microsoft. The contributors of this work include Guokai Ma, Kiefer Kuah, Yejing Lai, Liangang Zhang, Xiaofei Feng, Xu Deng, Mengfei Li, Jianan Gu, Haihao Shen, and Fan Zhao from Intel; Olatunji Ruwase, Martin Cai, and Yuxiong He from Microsoft. + +## Configuration +1-node, 2x Intel® Xeon® Platinum 8480+, 56 cores, HT On, Turbo On, 1024 GB (16x64GB DDR5 4800 MT/s [4800 MT/s]) , BIOS version Intel Corporation SE5C7411.86B.9525.D13.2302071333, 02/07/2023, ucode version 0x2b000190, Red Hat Enterprise Linux 8.6, kernel version 4.18.0-372.9.1.el8.x86_64, gcc 11.2.1, PyTorch 2.1.0.dev20230618+cpu, DeepSpeed 0.9.5+3f5e4931, ipex 2.1.0+git31b7cd6, GPT-J-6B, LLaMA-2-13B. + +## References + +[1] Microsoft, "ZeRO-Inference: Democratizing massive model inference," 9 September 2022. [Online]. Available: https://www.deepspeed.ai/2022/09/09/zero-inference.html. [Accessed 12 April 2023]. + +[2] R. Y. Aminabadi, S. Rajbhandari, M. Zhang, A. A. Awan, C. Li, D. Li, E. Zheng, J. Rasley, S. Smith, O. Ruwase, Y. H. Y. Aminabadi, S. Rajbhandari, M. Zhang, A. A. Awan, C. Li, D. Li and El, "DeepSpeed Inference: Enabling Efficient Inference of Transformer Models at Unprecedented Scale," 30 6 2022. [Online]. Available: https://arxiv.org/abs/2207.00032. + +[3] Intel, "4th Gen Intel(r) Xeon(r) Scalable Processors," [Online]. Available: https://www.intel.com/content/www/us/en/products/docs/processors/xeon-accelerated/4th-gen-xeon-scalable-processors-product-brief.html. [Accessed 12 4 2023]. + +[4] Intel, "Accelerate AI Workloads with Intel® AMX," [Online]. Available: https://www.intel.com/content/www/us/en/products/docs/accelerator-engines/advanced-matrix-extensions/ai-solution-brief.html. [Accessed 12 4 2023]. + +[5] Intel, "Large Language Models (LLM) Optimizations Overview," [Online]. Available: https://intel.github.io/intel-extension-for-pytorch/cpu/2.1.0+cpu/tutorials/llm.html. + +[6] Intel, "Intel® Extension for PyTorch," [Online]. Available: https://github.com/intel/intel-extension-for-pytorch. + +[7] Intel, "oneAPI Collective Communications Library (oneCCL)," [Online]. Available: https://github.com/oneapi-src/oneCCL. + +[8] Intel, "Intel® Neural Compressor," [Online]. Available: https://github.com/intel/neural-compressor. + +[9] Microsoft, "DeepSpeed Accelerator Abstraction Interface," [Online]. Available: https://github.com/deepspeedai/DeepSpeed/blob/master/docs/_tutorials/accelerator-abstraction-interface.md. + +[10] Microsoft, "Automatic Tensor Parallelism for HuggingFace Models," [Online]. Available: https://www.deepspeed.ai/tutorials/automatic-tensor-parallelism. + +[11] Intel, "Intel® oneCCL Bindings for PyTorch," [Online]. Available: https://github.com/intel/torch-ccl. + +[12] Microsoft, "deepspeed," [Online]. Available: https://github.com/deepspeedai/deepspeed. + +[13] Intel, "DeepSpeed Accelerator Abstraction Interface," [Online]. Available: https://github.com/deepspeedai/DeepSpeed/pull/3184. + +[14] Intel, "Intel® Extension for PyTorch large language model example," [Online]. Available: https://github.com/intel/intel-extension-for-pytorch/tree/llm_feature_branch/examples/cpu/inference/python/llm. + +[15] Intel, "Intel® Data Center GPU Max Series," [Online]. Available: https://www.intel.com/content/www/us/en/products/details/discrete-gpus/data-center-gpu/max-series.html. diff --git a/blogs/intel-inference/assets/intel-results.png b/blogs/intel-inference/assets/intel-results.png new file mode 100755 index 0000000000000000000000000000000000000000..e65aae3d4a8cf9a1b689e2310c75f3b5a7c8eae2 GIT binary patch literal 65371 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%0D1`qq{nKhOHlX&Kb^sxA`U48n`AGlf0aa#kR; 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 EFYm`~e*gdg literal 0 HcmV?d00001 diff --git a/blogs/intel-inference/assets/software-arch.png b/blogs/intel-inference/assets/software-arch.png new file mode 100755 index 0000000000000000000000000000000000000000..da147f4b9672eadec7fc63e93ae9648cab054a13 GIT binary patch literal 13952 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 literal 0 HcmV?d00001 diff --git a/blogs/ulysses-offload/README.md b/blogs/ulysses-offload/README.md new file mode 100644 index 000000000000..5dfd63ccdc32 --- /dev/null +++ b/blogs/ulysses-offload/README.md @@ -0,0 +1,263 @@ +# Ulysses-Offload: Democratizing Long Context LLM Training + + + +Figure 1: Ulysses-Offload supports 16x longer sequence lengths at 55% +Model FLOPs Utilization (MFU) than NVIDIA Megatron-SP and DeepSpeed Ulysses. + + +To cite and for more technical in depth of this release, please see +our [arxiv report](https://arxiv.org/abs/2408.16978): + +@article{yao2024ulysses, + +title={ Training Ultra Long Context Language Model with Fully Pipelined +Distributed Transformer}, + +author={Jinghan Yao and Sam Ade Jacobs and Masahiro Tanaka and Olatunji +Ruwase and Aamir Shafi and Hari Subramoni and Dhabaleswar K. (DK) Panda +}, + +journal={https://arxiv.org/abs/2408.16978}, + +year={2024} + +} + +## Introduction + +In the rapidly evolving field of generative AI and scientific ML, the +ability to train large (language) models with ultra-long context +capabilities is becoming increasingly important. These models are +essential for a variety of complex tasks, such as understanding +lengthy documents, generating images and videos, and processing extensive +sequences in computational biology. However, training such models +efficiently poses significant challenges due to the enormous GPU +memory required. + +Building DeepSpeed Ulysses, our previous project, which developed +system optimizations for training extremely long sequence transformer +models, we are excited to present Ulysses-Offload, in this release. Ulysses-Offload +is an innovative, resource-efficient technique that offers comparable +benefits to DeepSpeed Ulysses and other previous long-context +optimization methods, but with a lower hardware budget. Ulysses-Offload makes +ultra long-context large language models (LLM) training and finetuning +accessible to everyone, including those with limited GPU resources. Ulysses-Offload enables +training with context lengths of up to 2 million tokens using just 4 +NVIDIA A100-40GB GPUs. Ulysses-Offload supports 16x longer sequence lengths at 55% +Model FLOPs Utilization (MFU) than NVIDIA Megatron-SP and DeepSpeed Ulysses +(see Figure 1). The next section highlights the key innovations of Ulysses-Offload, +and subsequent sections provide additional details on the design and +usability of Ulysses-Offload, followed by experimental results. + +## Key Innovations + +### 1. Fully Pipelined Distributed Transformer (FPDT) + +The core innovation of our work is the Fully Pipelined Distributed +Transformer (FPDT). This approach leverages a pipelined sequence +chunking, which allows for the training of LLMs with sequence lengths up +to 2 million tokens on just 4 A100-40GB GPUs. By breaking down the +sequence into manageable chunks and processing them in a pipelined +manner, Ulysses-Offload significantly reduces the memory footprint while +maintaining high computational efficiency. This method ensures that the +GPUs are utilized effectively, even when dealing with extremely long +sequences. + +### 2. Memory Optimization + +One of the critical aspects of our approach is the comprehensive +analysis and optimization of the memory footprint during LLM training. +We target the reduction of redundant intermediate buffers in both the +forward and backward passes of the training process. By optimizing the +use of GPU and host CPU memory, we can train larger models with longer +sequences without running into GPU memory limitations. This optimization +is crucial for enabling the training of ultra-long context models on a +limited number of GPUs. It is worth noting that Ulysses-Offload memory optimization +is orthogonal and complementary to model- parameter-focused memory +optimization techniques used by DeepSpeed ZeRO and PyTorch FSDP. Ulysses-Offload optimizes memory footprint of activations associated with long sequences while ZeRO and FSDP optimize memory footprint of model parameters. + +### 3. Compatibility and Flexibility + +Ulysses-Offload is designed to be agnostic to existing training techniques and +works efficiently across different LLM models, including popular +architecture like GPT and Llama. This flexibility ensures that our +approach can be easily integrated into various training workflows. +Additionally, Ulysses-Offload is compatible with advanced memory optimization +techniques such as DeepSpeed ZeRO and PyTorch FSDP, further enhancing +its usability and performance. + +## Core Design of Ulysses-Offload + +Figure 2 illustrates the core structure of Ulysses-Offload. Ulysses-Offload leverages multiple +memory hierarchies in modern GPU clusters, thus boosting hardware +efficiency and cost-effectiveness while achieving very high model FLOP +utilization (MFU). The design of Ulysses-Offload centers around pipelining, +scheduling, and memory management. These well-known optimization +techniques are essential for scaling LLM context length to a million +scale with a few GPUs and will be discussed in the subsequent +subsections. + + + +Figure 2: Core design + +### + +### Pipelining and Scheduling + +Ulysses-Offload employs sequence chunking and pipelined computation design to manage the memory +and computational load efficiently. In traditional Transformer model, +input (hidden state) tensor is projected to q, k, v tensors. Each of these tensors can be denoted *\[B, S, H, D\]*, where *B* is batch +size, *S* is sequence length, *H* is number of heads and *D* is hidden +dimension per head. With sequence parallelism such as DeepSpeed Ulysses, +input tensor is partitioned along sequence dimension across sequence +parallel group P, that is *\[B, S/P, H, D\]* prior to alltoall collective +communication. The alltoall collective communication gathers partitioned tensors +along sequence dimension and scatter them along head dimension essentially +transforming tensor from *\[B, S/P, H, D\]* to *\[B, S, H/P, D\]*. Post attention computation, a second alltoall communication transforms *\[B, S, H/P, D\]* back to *\[B, S/P, H, D\]* + +In our Ulysses-Offload design, input sequence are partitioned at a much finer granularity than DeepSpeed Ulysses. In other words, we made changes to sequence partitioning such that we further subdivide per GPU *S/P* sequence into smaller *u* +chunks. Thus, the input tensors are now represented as \[*B, S/uP, H, +D*\]. We denote these chunks as *Ti*, +where$\ i\ \in \ 0,1,\ldots,\ u - 1.$ As shown in Figure 1, +*Ti* is projected to query *qi*, key +*ki*, and value *vi*. Then, similar to DeepSpeed Ulysses, an alltoall collective communication gathers partitioned tensor +along sequence dimension and scatter them along head dimension. In our chunk +design, the sequence length for each chunk is reduced by a factor of *u* +compared to Ulysses. Please note that our Ulysses-Offload chunking procedure is generally applicable to other sequence parallelism techniques. + + + +Figure 3: Core design with offload description + +Figure 3 gives an example of how to perform the computation of chunk +*Tm*. After the alltoall collective communication, +*GPUj* receives +$\widehat{q}m,\ \widehat{k}m,\ and\ \widehat{v}m$*.* We then fetch the +previous sequence chunk by chunk from the host memory to +GPUj, and perform online attention with the current +$\widehat{q}m$ and update the output chunk accordingly. Note that, in a +strict manner, at any given time, only one set of chunks +$\widehat{k}i,\ and\ \widehat{v}i$ is placed on GPU's HBM, reducing the +memory footprint to $\frac{1}{u}$ compared to the non-offloading version +without double buffering. With double buffering, memory footprint is +reduced by *2/u*. + +### Memory Management + +Ulysses-Offload optimizes memory usage by carefully managing the allocation and +deallocation of buffers during training. This involves: + +1. Double Buffering: + + - Two sets of buffers are maintained to overlap computation with + data transfer. + + - While one set of buffers is used for computation, the other set is + preloaded with the next chunk of data. + +2. Hierarchical Memory Utilization: + + - GPU High Bandwidth Memory (HBM) is used for active computation. + + - Host memory is used to store intermediate results that are not + immediately needed, reducing the pressure on GPU memory. + +## Integration with Existing Frameworks + +Ulysses-Offload is designed to integrate seamlessly with popular deep learning +frameworks such as PyTorch. Ulysses-Offload provides user-friendly APIs that +abstract the complexities of pipelined training and memory management. +Users can adopt Ulysses-Offload with minimal changes to existing codebases. + +## Experimental Results + + + +Figure 4: Supported sequence lengths and corresponding Model FLOPs +Utilization (MFU) using Megatron-SP, Ulysses, and our proposed Ulysses-Offload (FPDT). OOM +denotes the point where increasing sequence length will cause memory +issues. We show Ulysses-Offload's performance when the sequence length is larger +than 128K, as shorter sequences can be properly handled by existing +strategies. + +### Extended Sequence Lengths + +In our experimental setup, we compare Ulysses-Offload with two existing methods: +Microsoft DeepSpeed Ulysses and NVIDIA Megatron-SP. Both DeepSpeed +Ulysses and Megatron-SP employ similar approaches to sequence +parallelism but differ in the collective communication used for +gathering sequences before the attention block. The former utilizes +alltoall communication, whereas the latter employs allgather. Ulysses-Offload +builds upon the DeepSpeed Ulysses approach. The primary advantage of +Ulysses-Offload is its capability to support the training of large language models +(LLMs) with ultra-long sequence lengths using fewer GPUs. As shown in +Figure 4, our method enables the training of 8B parameter models with +sequence lengths of 2 million tokens using only 4 GPUs. For even larger +models, such as GPT-30B and Llama-70B parameter models, Ulysses-Offload supports +sequence lengths up to 3 million and 4 million tokens using 16 GPUs and +32 GPUs respectively. This represents a 16x increase in sequence length +compared to current state-of-the-art solutions (see Figure 5), making +Ulysses-Offload a game-changer for tasks that require processing long sequences. + +### High Hardware Efficiency + +As shown in Figure 4 with different model sizes ranging from GPT-2.7B to +Llama-80B parameters, Ulysses-Offload achieves over 55% Model FLOPs Utilization +(MFU), ensuring that the hardware resources are utilized effectively. +This high level of efficiency is maintained even when dealing with +extremely long sequences (up to 4 million context length), making Ulysses-Offload +an ideal solution for training large-scale LLMs. By maximizing the use +of available hardware, Ulysses-Offload reduces the overall cost and complexity of +training long-context models. Our [technical report](https://arxiv.org/abs/2408.16978) offers +further insights into optimizing sequence chunks to balance the +trade-off between memory usage and MFU. + + + +Figure 5: A comprehensive analysis on long-context LLM training with +different training techniques: tensor parallelism (TP), activation +checkpoint (AC), activation checkpoint with CPU offloading (OC), Ulysses +(UL), and our approach Ulysses-Offload (FPDT). + +## Implementation and Usability + +Ulysses-Offload is designed to be easily integrated with popular deep learning +frameworks such as DeepSpeed, Megatron-DeepSpeed and PyTorch. Users can +adopt our approach with minimal changes to their existing training +pipeline, making it accessible to a broad audience. The integration +process involves setting up the sequence chunk pipeline and configuring +the memory optimization techniques, both of which are straightforward +and well-documented (see tutorial). + +Our pipeline design and memory optimization techniques are +straightforward to implement, making Ulysses-Offload accessible to researchers and +practitioners aiming to train long-context LLMs efficiently. We provide +detailed [technical report](https://arxiv.org/abs/2408.16978), +documentation and examples to guide users through the setup process, +ensuring a smooth transition to using Ulysses-Offload. Additionally, Ulysses-Offload, in the +tradition of DeepSpeed provides user-friendly API which abstracts the +complexities of mixed precision training and memory optimization, +allowing users to focus on their research and development tasks. + +## General Availability of DeepSpeed Ulysses-Offload + +We are excited to release Ulysses-Offload. Ulysses-Offload has been +fully integrated with Megatron-DeepSpeed and accessible through both +DeepSpeed and Megatron-DeepSpeed GitHub repos. Click here for detailed +[tutorial](https://www.deepspeed.ai/tutorials/ulysses-offload/) on usage. + +We invite the community to explore our implementation, contribute to +further advancements, and join us in pushing the boundaries of what is +possible in LLM and AI. This release is part of the bigger DeepSpeed +ecosystem of large-scale AI training, finetuning and inference. For more +details on all DeepSpeed technologies and innovations, please visit our +[website]((https://www.deepspeed.ai/)) and follow us +on X, formerly Twitter, ([English](https://twitter.com/DeepSpeedAI), +[Japanese](https://twitter.com/DeepSpeedAI_JP)) and +[Chinese Zhihu](https://www.zhihu.com/people/deepspeed). diff --git a/blogs/ulysses-offload/media/image1.png b/blogs/ulysses-offload/media/image1.png new file mode 100644 index 0000000000000000000000000000000000000000..df63ef8197633bc1b1055af3b905793538a7be7a GIT binary patch literal 1314185 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

_Hwc`D<*OJ=McGq(FEvrpQs- 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

|Ndd%~twizH@4r^H(8{Gu+@UdLNN>n- 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�_RJ{fbo&DuG{o%32E=WC!KBk!wMNTvpw% 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

  • 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�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 4^%82_ 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 z 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ⅇdI_w^R~LO>h{tIR5{&t!3%P2A?~R@*K0_E@)EGyp;{^G90$a{ zx7_z^Ns~*;^mvL<3eQujA-eoE+gaB){=+x^^G}l}zwNf+;j`E7owadq;J0$0>$jG_ zjV1YwlhXeKbZh?&-P$w7kay^pVKS4Ixi(QK^#l8Ovz8wpaS=InKg;2S2OrfRQj5wQ33OJ@><0ghS@xEGI0cP`Hb@n>hDod5FN={?UGQU;5VF9o6adRBzPU@4R}} zcZ#@y!9)1VbL{7ngw5!=h?BuZs8{wX^ITS#0bKq_ta4cRB(_Op!H>t#AOl(G6-V1>jszk55eQ}r*bIV(kF-fgV8 z@=iY;_RBHygt!`VuPh|I_$pjI0WHHo<@slAp(UB>_X#2Kòak(YEvYas?Q0 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 I7i_}+57Y!R7XSbN literal 0 HcmV?d00001 diff --git a/blogs/ulysses-offload/media/image2.png b/blogs/ulysses-offload/media/image2.png new file mode 100644 index 0000000000000000000000000000000000000000..fee5ad05d3133138f133f1110171de351952d108 GIT binary patch literal 134983 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 AzV9Y>+(|CJ;IHvrz3+f|=c60+g-hs2rfu)k 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

    E9GrS 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 hxxzsqz|H!T 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%0A&8}tsG9AEqT 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 literal 0 HcmV?d00001 diff --git a/blogs/windows/08-2024/README.md b/blogs/windows/08-2024/README.md new file mode 100644 index 000000000000..5148fa80d122 --- /dev/null +++ b/blogs/windows/08-2024/README.md @@ -0,0 +1,101 @@ +

    + +# Introduction + +DeepSpeed is a popular open-source deep learning optimization library that makes distributed training and inference easy, efficient, and effective. DeepSpeed has been widely used to train a variety of state-of-the-art models, including Phi-3, Megatron-Turing-530B, BLOOM-176B, and Arctic because of its rich suite of sophisticated optimizations (e.g., ZeRO, 3D parallelism, MoE, etc.). However, the lack of native support for Microsoft Windows, the most popular operating system, means that DeepSpeed innovations are inaccessible to many AI developers and users. To address this problem, we started an effort to make DeepSpeed run natively with full features on Windows, while ensuring the same ease-of-use enjoyed on Linux. + +In this blog, we are pleased to announce some early achievements on this journey: DeepSpeed can now be installed in Windows and run natively for single-GPU training, finetuning, and inferencing. Importantly, both the installation and usage experiences are identical to those on Linux. Furthermore, the finetuning and inferencing workloads demonstrate the functioning of three critical DeepSpeed features, HuggingFace Transformers integration, LoRA support, and CPU Offloading. DeepSpeed on Windows is available in DeepSpeed versions 0.14.5 and above. In the rest of this blog, we present examples to demonstrate these achievements. + +# Evaluation Environment +We conducted the experiments on a Surface Laptop Studio 2 running Windows 11 Version 23H2 and Build 22631.3880. The laptop is equipped with a single NVIDIA RTX A2000 GPU with 4GB VRAM. We used Pytorch version 2.3.0 and HuggingFace Transformers version 4.41.2. The example scripts used are from the [DeepSpeedExamples repo](https://github.com/deepspeedai/DeepSpeedExamples), therefore you need to clone the repo before running any of the following examples. + +# Installation +DeepSpeed can be installed on Windows in one of two ways. The easier way is to use the pip package manager, while the other is to build from source. The prerequisites for in both cases are Python 3.x and Pytorch with CUDA support. + +## Installing via pip +To install DeepSpeed, simply run: `pip install deepspeed`. This will install the latest version of DeepSpeed (0.14.5 at this time). Unlike the Linux counterpart, the Windows version comes with all the operators already prebuilt, so there is no need to have a CUDA SDK or C++ compiler installed. + +
    + +
    + +
    + pip installation of DeepSpeed on Windows. +
    + + +## Building from Source +To build DeepSpeed from source, you need to clone the DeepSpeed repository and run the `build_win.bat` compilation script. + + +## Validating Installation +Regardless of the installation choice, you can check that the installation was successful by running ds_report. The output should look like this: + + +
    + +
    + +
    + ds_report output confirming Windows installation of DeepSpeed. +
    + +# Pretraining Examples +We use an image classification model, CIFAR10, and a language model, BERT, to demonstrate pretraining on Windows with DeepSpeed. + +## Pretraining CIFAR10 +The scripts and codes required for CIFAR10 pretraining example are available in the following path: DeepSpeedExamples\training\cifar. You can launch the CIFAR10 pretraining experiment using the following command: `deepspeed cifar10_deepspeed.py --deepspeed`. The final output should look something like this: +
    + +
    + +
    + Pretraining CIFAR10 model on Windows using DeepSpeed. +
    + +## Pretraining BERT +The scripts and codes for the BERT pretraining example are available in the following path: DeepSpeedExamples\training\HelloDeepSpeed. You can launch the BERT pretraining experiment using the following command: `deepspeed train_bert_ds.py --checkpoint_dir experiment_deepspeed`. The final output should look like this: + +
    + +
    + +
    + Pretraining BERT model on Windows using DeepSpeed. +
    + +# Fine Tuning Example +We demonstrate fine tuning capability by using the supervised fine tuning (SFT) step of DeepSpeed-Chat application. We conduct SFT of the HuggingFace facebook/opt-125m model while enabling LoRA and CPU offloading memory optimizations. The command line for running this example is as follows:\ +`deepspeed training\step1_supervised_finetuning\main.py --model_name_or_path facebook/opt-125m --gradient_accumulation_steps 8 --lora_dim 128 --only_optimize_lora --print_loss --zero_stage 2 --deepspeed --dtype bf16 --offload --output_dir output`.\ +The output should look like this: + +
    + +
    + +
    + Supervised Finetuning of facebook/opt-125m model on Windows using DeepSpeed. +
    + +# Inference Example +We demonstrate inference capability by using ZeRO-Inference for token generation. ZeRO-Inference reduces hardware cost of inferencing by offloading to CPU or NVMe memories. We use the example scripts here to run token generation using Llama-2-7B model from HuggingFace. We offload the model weights to CPU memory since the 4GB VRAM is insufficient to host both the model and the generation working set. We use the following command line to generate 32 tokens from a prompt of 8 tokens:\ +`deepspeed run_model.py --model meta-llama/Llama-2-7b-hf --batch-size 64 --prompt-len 8 --gen-len 32 --cpu-offload`.\ +The output will look something like this: + +
    + +
    + +
    + LLAMA2-7B token generation on Windows using ZeRO-Inference. +
    + +# Summary +Enabling DeepSpeed, a popular deep learning framework, to run natively on Windows, the most popular operating system, is a crucial step towards empowering every person and every organization to benefit from the ongoing AI revolution. In this blog, we have shared early results of our work towards this goal. Although Windows support of DeepSpeed is a work-in-progress, we hope that the above updates are encouraging and already useful to users. The next items on our roadmap include running on multiple GPUs, weight quantization, and performance studies. + +# Acknowledgements +This work is a result of significant contributions from current and former DeepSpeed members including Costin Eseanu, Logan Adams, Elton Zheng, Reza Yazdani Aminabadi, Martin Cai, and Olatunji Ruwase. We also acknowledge the valuable contributions of DeepSpeed users who righteously demanded this feature, provided critical workarounds, partial solutions, and constructive feedback, and most importantly, stuck with us. diff --git a/blogs/windows/08-2024/chinese/README.md b/blogs/windows/08-2024/chinese/README.md new file mode 100644 index 000000000000..5d62705df3ae --- /dev/null +++ b/blogs/windows/08-2024/chinese/README.md @@ -0,0 +1,103 @@ +
    + +# 在Windows系统上使用DeepSpeed + +
    + +# 简介 + +DeepSpeed是一个广受欢迎的开源深度学习优化库,它使得分布式训练和推理变得简单、高效且有效。凭借其众多复杂的优化技术(如ZeRO、3D并行、MoE等),DeepSpeed已被成功应用于包括Phi-3、Megatron-Turing-530B、BLOOM-176B和Arctic在内的多种前沿模型的训练。然而,由于缺乏对主流操作系统微软 Windows的原生支持,许多AI开发者与用户无法充分利用DeepSpeed的创新。为此,我们致力于让DeepSpeed在Windows上实现原生全功能运行,并保持与Linux相同的易用性。 + +在这篇博客中,我们很高兴地宣布我们开发工作中的一些早期成果:DeepSpeed 现在可以在 Windows 上安装并原生支持单 GPU 的训练、微调和推理。重要的是,安装和使用体验与 Linux 上完全相同。此外,微调和推理工作展示了 DeepSpeed 的三个关键特性:HuggingFace Transformers 的集成、LoRA 的支持和 CPU offload。DeepSpeed 在 Windows 上的支持从 DeepSpeed 0.14.5 开始。接下来,我们将通过一些例子展示这些成就。 + +# 测试环境 + +我们在一台运行 Windows 11 23H2 版本号 22631.3880 的 Surface Laptop Studio 2 上进行了测试。该笔记本配备了一块 4GB 显存的 NVIDIA RTX A2000 GPU。我们使用了 Pytorch 2.3.0 和 HuggingFace Transformers 4.41.2。测试所用的脚本来自 [DeepSpeedExamples](https://github.com/deepspeedai/DeepSpeedExamples) 代码仓库,因此在运行以下任何示例前,你需要克隆该仓库。 + +# 安装指南 +DeepSpeed可以通过两种方式在Windows系统上安装。较为简单的方式是使用pip包管理器安装,另一种方法是从源代码安装。两种安装方式的前提条件都是系统已经安装了Python 3.x 和支持CUDA的Pytorch. + +## 通过pip安装 +要安装 DeepSpeed,只需运行:`pip install deepspeed`。它将安装最新版本的 DeepSpeed(目前为 0.14.5)。与 Linux 版本不同的是,Windows 版本已经预先编译了内部的自定义算子,因此不需要安装 CUDA 或 C++ 编译器。 + +
    + +
    + +
    + 通过pip在Windows上安装Deepspeed. +
    + + +## 通过源代码安装 +克隆DeepSpeed代码仓库后,运行build_win.bat脚本进行编译安装。 + + +## 验证安装 +无论选择哪种安装方式,你都可以通过运行 ds_report 来检查安装是否成功。输出应该如下所示: + + +
    + +
    + +
    + ds_report的输出结果,用于验证安装是否成功. +
    + +# 预训练(Pretraining) +我们使用图像分类模型 CIFAR10 和语言模型 BERT 来演示在 Windows 上使用 DeepSpeed 进行预训练。 + +## CIFAR10模型预训练 +用于 CIFAR10 预训练的脚本和代码可以在以下路径找到:`DeepSpeedExamples\training\cifar`。你可以运行以下命令启动 CIFAR10 预训练实验:`deepspeed cifar10_deepspeed.py --deepspeed`。最终输出应类似于: +
    + +
    + +
    + 在 Windows 上使用 Deepspeed 进行 CIFAR10 模型预训练 +
    + +## BERT模型预训练 +用于 BERT 预训练的脚本和代码可以在以下路径找到:`DeepSpeedExamples\training\HelloDeepSpeed`。你可以使用以下命令启动 BERT 预训练实验:`deepspeed train_bert_ds.py --checkpoint_dir experiment_deepspeed`。最终输出应如下所示: + +
    + +
    + +
    + 在 Windows 上使用 Deepspeed 进行 BERT 模型预训练 +
    + +# 微调(Fine Tuning) +我们使用 DeepSpeed-Chat 应用的监督微调(SFT)步骤来演示微调能力。我们对 HuggingFace 的 facebook/opt-125m 模型进行监督微调,同时启用 LoRA 和 CPU offload进行内存优化。运行命令行如下:\ +`deepspeed training\step1_supervised_finetuning\main.py --model_name_or_path facebook/opt-125m --gradient_accumulation_steps 8 --lora_dim 128 --only_optimize_lora --print_loss --zero_stage 2 --deepspeed --dtype bf16 --offload --output_dir output`\ +输出应如下所示: + +
    + +
    + +
    + 在 Windows 上使用 DeepSpeed 对 facebook/opt-125m 监督微调 +
    + +# 推理 +我们使用 ZeRO-Inference 的token生成来演示推理能力。ZeRO-Inference 通过转移存储到 CPU 内存或 NVMe 硬盘内存来减少推理的硬件成本。我们使用以下脚本运行 HuggingFace 的 Llama-2-7B 模型来进行 token 生成。由于 4GB 显存无法容纳模型和生成所需的内存,我们将模型权重转移到 CPU 内存。我们使用以下命令行从 8个token的提示词中生成 32 个token:\ +`deepspeed run_model.py --model meta-llama/Llama-2-7b-hf --batch-size 64 --prompt-len 8 --gen-len 32 --cpu-offload`\ +输出应类似于: + +
    + +
    + +
    + 在 Windows 上使用 ZeRO-Inference 进行 LLAMA2-7B 模型的token生成 +
    + +# 总结 + +使得DeepSpeed,一个流行的深度学习框架,能够原生运行在最流行的操作系统 Windows 上,是让每个人和组织从当前的人工智能革命中受益的重要一步。在这篇博客中,我们分享了我们为实现这一目标所取得的早期成果。尽管 DeepSpeed 对 Windows 的支持仍在继续开发中,我们希望上述结果已经能够对我们的用户有实用价值,并且鼓舞他们。我们接下来的工作计划涵盖多GPU支持、权重量化以及性能优化。 + +# 致谢 +这给项目的完成得益于现任和前任 DeepSpeed 成员的大力合作,包括 Costin Eseanu、Logan Adams、Elton Zheng、Reza Yazdani Aminabadi、Martin Cai 和 Olatunji Ruwase。我们还要感谢那些及时提出此项需求、提供关键的临时解决方法、部分解决方案和建设性反馈的 DeepSpeed 用户,最重要的是,他们始终与我们同行. diff --git a/blogs/windows/08-2024/japanese/README.md b/blogs/windows/08-2024/japanese/README.md new file mode 100644 index 000000000000..c2f5b9ee2143 --- /dev/null +++ b/blogs/windows/08-2024/japanese/README.md @@ -0,0 +1,123 @@ +
    + +# DeepSpeedのWindowsサポート + +
    + +# はじめに + +DeepSpeedは、分散学習と推論を簡単かつ効率的に行うための人気のあるオープンソースの深層学習最適化ライブラリです。DeepSpeedは、その豊富かつ高度な最適化機能(例:ZeRO、3D parallelism, MoEなど)のおかげで、Phi-3、Megatron-Turing-530B、BLOOM-176B、Arcticなどの最先端モデルの学習に広く利用されています。しかし、最も普及しているオペレーティングシステムであるMicrosoft Windowsをネイティブにサポートしていなかったため、多くのAI開発者やユーザーが、DeepSpeedの革新的な機能を利用できない状態でした。この問題を解決するため、DeepSpeedの完全な機能をWindows上でネイティブに実行し、Linux上と同じ使いやすさを実現するための取り組みを開始しました。 + +このブログでは、この取り組みの最初の成果をお知らせします。現在、DeepSpeedはWindowsにインストールし、単一GPUでの学習、ファインチューニング、および推論をネイティブに実行できるようになりました。ここで重要なこととして、インストールと利用は、Linuxとまったく同じように行えます。ファインチューニングと推論のワークロードを通じて、HuggingFace Transformers との統合、LoRAのサポート、CPUオフロードの3つの重要なDeepSpeedの機能が、正しく動作していることが確認できました。このWindowsサポートは、バージョン0.14.5以降で利用可能です。このブログの残りの部分では、これらの成果を示す例を紹介します。 + +# テスト環境 + +Windows 11 Version 23H2 および Build 22631.3880 を実行している Surface Laptop Studio 2 でテストを行いました。このハードウェアには、4GBのVRAMを搭載した NVIDIA RTX A2000 GPU が1つ搭載されています。また、PyTorchバージョン 2.3.0 および HuggingFace Transformersバージョン 4.41.2 を使用しました。使用したサンプルスクリプトは[DeepSpeedExamplesリポジトリ](https://github.com/deepspeedai/DeepSpeedExamples)から取得できます。以下の例を実行する前にリポジトリをクローンしてください。 + +# インストール + +DeepSpeedは、2つの方法でWindowsにインストールできます。より簡単な方法は、pipパッケージマネージャーを使用することで、もう一方はソースからビルドする方法です。どちらの場合も、Python 3.xとCUDAサポート付きのPyTorchが必要です。 + +## pipを使用したインストール + +DeepSpeedをインストールするには、単に次のコマンドを実行します: `pip install deepspeed`。 +これにより、最新バージョンのDeepSpeed(現時点では0.14.5)がインストールされます。Linux版とは異なり、Windows版ではすべてのオペレーターがすでにビルド済みであるため、CUDA SDKやC++コンパイラをインストールする必要はありません。 + +
    + +
    + +
    + pipによるWindowsへのDeepSpeedのインストール +
    + + +## ソースからのビルド + +ソースからDeepSpeedをビルドするには、DeepSpeedリポジトリをクローンし、コンパイルスクリプトである `build_win.bat` を実行する必要があります。 + +## インストールの検証 + +インストール方法にかかわらず、`ds_report`を実行してインストールが成功したかどうかを確認できます。出力は次のようになります: + +
    + +
    + +
    + DeepSpeedのWindowsインストールを確認するds_reportの出力 +
    + +# 事前学習の例 + +Windows上でDeepSpeedを使用した事前学習の例として、画像分類モデルCIFAR10と言語モデルBERTの実行例を示します。 + +## CIFAR10の事前学習 + +CIFAR10の事前学習に必要なスクリプトとコードは、次のパスにあります: `DeepSpeedExamples\training\cifar` + +以下のコマンドを使用してCIFAR10の事前学習を開始できます: `deepspeed cifar10_deepspeed.py –deepspeed` + +出力は次のようになります。 + +
    + +
    + +
    + DeepSpeedによるWindowsでのCIFAR10モデルの事前学習 +
    + +## BERTの事前学習 + +BERTの事前学習に必要なスクリプトとコードは、次のパスにあります: `DeepSpeedExamples\training\HelloDeepSpeed` + +以下のコマンドを使用してBERTの事前学習を開始できます: `deepspeed train_bert_ds.py --checkpoint_dir experiment_deepspeed` + +出力は次のようになります。 + +
    + +
    + +
    + DeepSpeedによるWindowsでのBERTモデルの事前学習 +
    + +# ファインチューニングの例 + +DeepSpeed-Chatアプリケーションの教師ありファインチューニング(supervised fine tuning; SFT)を使用して、ファインチューニングの機能を示します。LoRAおよびCPUオフロードメモリ最適化を有効にして、 HuggingFace の `facebook/opt-125m` モデルのSFTを実施します。この例を実行するためのコマンドラインは次のとおりです: `deepspeed training\step1_supervised_finetuning\main.py --model_name_or_path facebook/opt-125m --gradient_accumulation_steps 8 --lora_dim 128 --only_optimize_lora --print_loss --zero_stage 2 --deepspeed --dtype bf16 --offload --output_dir output` + +出力は次のようになります。 + +
    + +
    + +
    + DeepSpeedを使用したWindowsでの facebook/opt-125m モデルのファインチューニング +
    + +# 推論の例 + +推論の機能を示すために、トークン生成のためのZeRO-Inferenceを使用します。ZeRO-Inferenceは、CPUまたはNVMeメモリにオフロードすることで推論のハードウェアコストを削減します。ここでは、サンプルスクリプトを使用して、HuggingFaceのLlama-2-7Bモデルを使用したトークン生成を実行します。4GBのVRAMではモデルと生成処理の両方を実効するのに十分ではないため、モデルパラメータをCPUメモリにオフロードします。 + +次のコマンドラインを使用して、8トークンのプロンプトから32トークンを生成します: `deepspeed run_model.py --model meta-llama/Llama-2-7b-hf --batch-size 64 --prompt-len 8 --gen-len 32 --cpu-offload` + +出力は次のようになります。 + +
    + +
    + +
    + DeepSpeedのZeRO-InferenceによるWindowsでのLLAMA2-7Bのトークン生成 +
    + +# まとめ + +最も広く使われているオペレーティングシステムであるWindowsで、深層学習フレームワークであるDeepSpeedをネイティブに実行できるようにすることは、多くの人と組織が、今まさに進行中のAI革命の恩恵を受けるための重要な一歩です。このブログでは、この目標に向けたプロジェクトの、最初の成果を共有しました。Windowsのサポートは現在進行中のプロジェクトですが、今回の成果が多くのユーザにとって活用され、またさらに発展していけることを願っています。次のロードマップには、複数のGPUでの実行、モデルパラメータの量子化、パフォーマンスの詳細な分析が含まれます。 + +# 謝辞 + +このプロジェクトは、Costin Eseanu、Logan Adams、Elton Zheng、Reza Yazdani Aminabadi、Martin Cai、Olatunji Ruwaseを含むDeepSpeedメンバーによる大きな貢献の結果です。また、この機能を必要とし、様々な問題の解決策や、建設的なフィードバックを提供し、私たちと共に歩んでくれたDeepSpeedユーザーの重要な貢献に感謝します。 diff --git a/blogs/windows/08-2024/media/bert_training.png b/blogs/windows/08-2024/media/bert_training.png new file mode 100644 index 0000000000000000000000000000000000000000..c5935e47747e895093c655014250a9103d1603d5 GIT binary patch literal 266174 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 w5~@+& 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
    {+CZ}*0^3KKvHg=a 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 literal 0 HcmV?d00001 diff --git a/blogs/windows/08-2024/media/cifar10_training.png b/blogs/windows/08-2024/media/cifar10_training.png new file mode 100644 index 0000000000000000000000000000000000000000..99f3fa25bc70898a820bd59061569be00648bd44 GIT binary patch literal 43754 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 literal 0 HcmV?d00001 diff --git a/blogs/windows/08-2024/media/ds_report.png b/blogs/windows/08-2024/media/ds_report.png new file mode 100644 index 0000000000000000000000000000000000000000..43d82d724ed2416e15d768fcd9f04c64bb50daa1 GIT binary patch literal 211867 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 z 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�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

    %QJ%T};{CV9N9bSTN@{2`fbFoi#`a+VY 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%0D+) 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 literal 0 HcmV?d00001 diff --git a/blogs/windows/08-2024/media/win_pip_install_deepspeed.png b/blogs/windows/08-2024/media/win_pip_install_deepspeed.png new file mode 100644 index 0000000000000000000000000000000000000000..3b87c95ef144733501125be5a7f088fb727ac1fb GIT binary patch literal 175851 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%0D(s{5V$Pw9v9s?2M3e)x zQ{x&!X=pKAR?wl|A?zNEZ$}Naf0-QFQEV7~*$ZQ36Q7Z= zz9-Y6LkzL$_!EMn(M|jES6&@DV!tL5Hn40IN=?e4-456O!^w}Uk$v0C%4lmc;jhxz z$JGIg+}QJ+3>;PFc};*Rqw^`zXaegvj@%7wTFERS4TMRUEEFE7J-W#@44lFCuD|M8 zZd7>R5@kZvFL5a@(vGf#n8@+q!pXG{Kqr?rP~S6o9#ApRNiDwXK4@izDtdJT>W#nG z)a`X&{C4(|QsalH=yRv!48O?O(d!%JVh8J*5j4`Vx)IdNo!Z&qYaftlZK$_pf$m69 z#LHW2%`Iix>y3_G{_D6^tE^0_z1buOaZH`494@4lC`Tx!&yHL@Ynml*pQ1;m4a5gO z%m}O}s`M=&Q3LAcJ|WjrBD#MKafM&0^%zYHiA@i=^1K7NdSjqLx~JNW8tkWd={hQ}x%E*UP680S9(m%R7Vm@dwN=AW?~yY6 zx@(OfcedA!O(}7?$*`rHxlZB}uPNLdzH^?gmJ!-Al(AuWtLy%)dgE;O9{&c9zoY-W zg>K%I+HI{>dj;_}+qXt|Ohf_4Mahp3Be8@Bh5M_Th0s!7`unYF+p^t=h~ zdnp3Z)1DLt$338Y3S2BdLtVghK-p}ZMotioGF-~N&7h)$qZg{4DAp|*zNopdlj8kV zV@s*!@a#JQYjN*W>5Pf2N18Ut+WdaKx;GH@zhLD;3d*BZZxf0fjzo|kD4+iLy-S;z$ck&2gp>e+hC9qUw(a{y^25KBJ3YR+Qn|XGoQCW@M0~jM02suT zW0Pp$l{+sei~D%S!7@-~ZSu~P>~rCzbhlQc-xiH>(S$_lA4w)^kDYGOK1#fKiCmi|T#SHL2yrdUui|;AbC|59eOG?q=(dQm?+P z<$Ev2-tdeJvL)^--r98qYsZXx47`asjhn+_uK;q5fsP7_D%S>`7W-gaUsQcdb)ScC z;a_MdUR{12uW<>2ic>;puN%iajJC5tu{bL!et4z;nyk|TX(cX}h^{v$t z9IEOQTAR58k_}(J9ixJCNlCb$;CBe_VrB3>wPLNf7FLx=8^5fXr{beh+_^NNh(rmd zfYHgE(}kH^=LwGnEp3-Hom>a5+cJV?Ir=L{E($jq@jmcsAp<{_;6mb8kmyy(#JEWJO!6Ey>}Q!i2v3pn9gVQb3D%kKRPEn|=?K%EK6LeQA0R z5ffqoPqrHl9*J)poG*2Dt6DCp2rj7R1hBNB-8A^pll-qMpZRSkC*iD|j-lQMrDAJ4 z6g2?%=B4YJPDku3nQ=YivHX|o!0;fsWXBq3x2*n3hoFd!JQnTNxu}=n*IPHO)HDf^ z*CV~Z%Jf7Vv_&|7ju`EIb*48!Nw|a+ckFtbkI<2v2vA>HIFR5)m zab-*zK?XxF$MnxwmV=MpGPoP97$rIpx2yg{(Z6LRNpH_&L4J8HIqiL*4efczKS>SS zX!7#_cp#FJtTOV#Rtrr?B*=_>A9NvnWaC;@AnlFNJ3k zQakp1f58=$mEML-`8~wz@6@00{rgDNDJif@g_g3i6jr3^59zC89KUycqBWFI25?Mn zsNMath2>;DdfVNfkuPPBO@AvgoNSh@byr{E6axH_thy$?HRLB;BShG^l|KHPC{MA1 z@}+9*?7+ZPQ;CJiakFAY6L`+F`eEL=n6u07K6hLwWs@x;_A3=G`9(lPJ-(M=MK}IM zj5<^8gZ+{m-)kl!V1GGEp)e5N8JC1CHxV#TaZ6D9p7%_)3>K(sJAGS9!=MQeT~q&+ zv<;3z-VEUlUtHT9`BM)J+evrg`;5dsNpobsM}J^s;+u27YhOWY_9s6wHK z@V8P`9=bGa<9kxBbIWkU!gWY`r9-al$u5 zGJjHf?dJ*dRa7_i-q2R*M-@w=hHtdzc2bu>LK;D!2ZpsI@ARjW@PY%aB(MdY8$xCLvQsh?JnY%x{6`-%NpMU{_W?S zfL|ouePUXelhEl19wQ3)71@MJHA=hK6%^^0N8j#Yo z@OBB`qAY~RxJSN2UC(QKX^6tMj1@JKT72ha2AEEN(RDk$Mq$_zc;Dj$2{4VSf#})M z607`($D^TPCAi>P>;}C6zS2a=bS+?`vWV>x5Z<0x=!m@ zjcLua-v*>!n-}+Xa%z4Ki>4j@a^Qwq#3Gg&t%K$#y_Ve-%kR4us1(9wsD{Ye&nnr(P4?s;|VcjBGP~ z1v$kgzeG|-a=lg3?}MFg1TuQQ_8J!@O8n7%=xx01@2z}ih>S@$n9l6*($4fSF>zib zdO}8g#7;|F`;BI7MsC7(-14>c#W@)~^d$5ys?7(V@YMA){&!%WT}EOuy>U;G895(Z zQG_*C)fg=0RBa6^1s#1<8F1}vSKY1q1&yT~i+P>bcN}WTaTwLBV|as3`DdgzD&O45 z9ohKlgP~Q;!5ZnXHs^`Ur5SbW3!)ZQc2M6mW*;~pL_DMOSWLx^q^6@%^SzApkc~XU z4^dZt>X819RmIRg7U50Dp1Jfbg=y9bUP$tDttmuz^yJ8fh#i}c#IZp5(tI*=|TuOu35AwKW{C zY)rSI+riH{g6!Yg1y$H;fsurgD&3@7P$n!Xi;KiHqt&J9MQc6>_)Ga;g`DH?GBq9@ zgx#^jF`M`+jn8HmlF9z~veW8zimRMPx8kzWdbRwobxZ9 zxPBNA=yOlTjo)!x(bMD9WN3 zYgD2^x&N`5{RgQ53DX#uA}n}vgfWHB8` zf7nFr67BPuLJQeW0&EkYTW^B7jEFoy&In}(=IrS?Mc&jo=hr3Jyc^>`ASdS(3TIjn zeP&IrCf6;P;|OoE2Iclx5hvF2UMO8|8(NJn=^0%hP1lr&W*Y5J(_V@tmA7od7pBDc zfcvZFw9iqRTVw?N>qb;$BsC(t?Jrr~`jP%E?&hrJ%=xOQEmiz{PmniRuay+L^|DK93y9uVhJdvvbm>CVZqvK4XdfVXu3tGS2=C<9G>P>PUl(BV1BpyzTSUst2 zG3@~kfUShF)B1%hi6XGOvg}7P-JFw6z+eODYz%r34JCFQG>p-f2~<^LhR!TvR)?XD zyZ6^J-ER9{OfK|V7S7!AYMq(4X5%*6IO)iqT*YwEzRkw8EQ$F++lIDybCVszawP*(_JH6-(Iy?(>{{Um_H*O&&p?PK@97D!5!;WYX9U_` zKf9)c#vynR{N@q1OLEu)lKpG}DH65TA^QZtd1M{Wm`MsX03LK}Z;2=eWP9#s1Ztes z0^>em&I4V5q*%|x3RFcXTLSq@Bu`k)p z*eanC%DzkXY%#_Z7lbPuIu_<*LV9}zx#3D{_7vj$MKotINq=K z^YwZ=IIGVuNKO!!1mmJw{cz^CbNe3K>$fN%mYt#rW7l2$w=>+eJj+^4BX^ILt$xE@ zU#@Xbb@(~F>>KuLZ@zNouxDR=#Z$~M_VOKpyCrA{51+AG`S~>Hl14*Rw zt)CGC5L8oM_CXujwHQ6AbZpRe7`phQ0<^eSzDuoYHGQC~tVJ(qRnHP5quH z+>uvP!h77OnoiS`p(C+(dz_A1vu{(miYf!Es!MTa?VT#C&Oi&@JI__+N^Qu(#A^V< zb+v^m_lK&5H2_dwShZPs0lK%B%e}MRVS74gC1n~kG2EPTKqCIBc_(OtyOnYfx5wXP zi<<)dO zzYU)lkP$mIT#J}ch2MhivrI6No{8z({*GH$oAEh1Z%AW##7Y$t`d>jhS(4E)lFz72 z)@hl;Q+0TG7l?`5!MkST{c#>}=y+yut3`xJO|d6@xoYl;`x&D4E;d>+@P2LEy6)VS zxj9yH43R1Z`MmL?ka;z*Z23tUv2ssqh#doN&C>}o?oVf+cS61f9W?sfqrneWHhP%H zQ&x|;zS;E}wUEo-^C9F z4<7rlIr94Sr@)O2f-ToBk!QT@8uw0RkSK9~C+G%_@;GvLgHD`QrbzwT!JnYbYCQ$~ zjY~+-I+KBEfIbnc_v~D2RJ9zN{c6?9M3T#J4oFjhi&_ACIeb59CAf3V;{5i5EzU`) zxaBjpvs@=s@ezI_sR8-Q`MYtkx5#p!ulvBBKZcmwxLm>tEo>%?D{nf1t}2pQc=KJ5aidjKb%yr`wH>p{eYZ&d^yUqBx%{GIKSqOF-FEybc1C4bVE<+% z8}KrIjx(NKVjP8A_S|GB^vf<(S>9R3&~p7Bc+M?6ky%&uoiksxK(BP)BpPESG6572 zR+8=yT|FlMnV2-5IId$>HoQ|#d^`qhYu^KnPXx?tF&so|-I4V0xfGDLXxRsrtl|gnQYt_b9P&U8Y3Lj8` z4b7rwS$^*m$V@j^P0AX=5FbM{Uy}B#^|k&;<=G^bpv^H=l;(Dc8-Tt`bkqvCmP93qVKzv7zY9$pfHivzB(aUgv+?~k_6yM4@ zmqDWor5vQ8Clc|2^gVm{vi#{^5+NJ-@XGNU>)U`OH@P45_<$7$Es@0H-QA1}vYm=r z0aG&zc-`PZqQaWoPhpDXUniV{$))BeRI=EcYo8()oL~vg8sAFO0-=F7GhUd%8*^K( zAVW;s0$)l!^AlZfSyO$FqwjjGCg64yd4*jc7}$#AR^Ix%E`6E3;<^fNDKmC@IM@et zTEy~4MwWfOkysgz{;-}Ni&)u)xZklWKXCJGTBwr!lklp2dJ-NQTo6cC#{KO?o((y? z+=@P@9GLn+rneRdst$p99J9jxE67rW69AfTka24-(W7W6LfY?Hp;cwqAlmzG$u`7x zy=l{)0d^1zAl75SaZn5ekTa8nSeM z|Ld`V9dqD!$9Nm9DlRfj>E8FNailL!KZE}awEu`qTh0{@*mKpzT|eOQ&%jTp6+bad zGBr&YEGYP)rh(eNu_n7WHRiu_hb!aHWg(jbB!NRh^{f6s20icKp=Zfv-NEjGE_RNE z`?QJ_aN#_-kEIb0@H3+Z+ij|Q_-|q2ajv_!l6Jc?5~B7x&$QC@R|&v2%lY?h_VFo> z-<~tJ*}|uboT*n<#>Gl!lhOr-QSn~PL6Mr~*cxJY2js4@ONj}6Pm7}e11yZW0>;^l zeOHOJf>2Wp+HxCk~2v0U43W_Bcqo6I*iCp$O;IL85Q=nB2@vf(U zeH@x+)?_OZmGkTC zg{zzCLGp_R4E0%34U|Qjxd0lo)?JiVRaq;6 zav}iqj{~I`y2W;Pr@kHD!I)7^RvvHpj90;juk|jyt2@LCI0;|XvySNi%)x73fH}za zP}bn|VWsU@Jx1g#$DQnX*WRb;3^ph1z@^?D;lW}Eg%j~vk)OBJF#*)2m4u^lcW%0VFUW_*=WtYKJ1j~52Z zs~2;j`Nq~0YWTWmrOC<671A;=OWKv)iWH(e&wKp0`Ik;Z8|Bakig5s09*Ku*wTm(o zYR(2SULJ{9?!oS?ACF5r;_B|k48J2g7&-`L1@O)PXP4qPGy;O0*Gf(2BE;t&L~uwb zWBBRbQcSk3$iqkDO_<5C*>{$afw>`u;y=uy5S`n~y;C|s^Q`=%J?hI1d>-YRa)&k7 z!s*|v9&GRG%OiJ05g2~O08O`0yfrAl#@ynA3D0kR4%$ZZ8XyqP`=M=~sL-2RX-|gJ zN|G$b;BKLFos(=QNQa9jP|FpiRVR50{_ewhrc1;m832a*g)pRE`vVRd8!D(P2EXPpi&8GCBg{*v#jS5oRV; zYV%1t$o4NJrx6>b-{t&_c`Ix`UG?)}Cbs|J@0@rx%q(hHI{H+gSK>W(Kl${anVFVy zLZNv^*}(}ef~5TeYn*bvB&M33IUeW(d;6PCDN!1$8zT@e&RslxNmgdL`BoF0oAR11 z^p^wEff37&FDO#vj#6$LiQjp!Qq74GxHdHY(F9paLq9=+X4GT6H#i)G3W6tKIfv-= z^De_95$7r%kKeGe(pawTdqE!1*FhLBcI%kWd_JUA`@}tNB|NBA=B_J5*^A!!I|ys~ zg^G%-^G>nx!w4cSEE#8r`#cqmO+G@zYNBSh)d98GkJV4nY~sXcpp#p*7I!6L$sCdZsykQ;sLO`LGG8VE z*2w{^{baSzW;*Bh?m|_MTZ(C;H8FR4oDW%C3rRQo9FHEe?@KMCTxmC3D!A@K@Ax;Q z81WvnR7r0eP?EV(UbtA8&(w>ERb)lrw}<>~eL3iUK{ku$~U*BYwVM1lV2 ztR&IM0Yi9#6|0V8h>OFU!!M(Pd6`mpnc(x<*T>RFYl95>NmjJ#GS}5&5Plz?kRGT4 zpC~VOteYb6MG;P^WgA90`GM?YIBamd0R|fjCR~#fIw`O?n%_m$rcwD+Vd-}Nd3B?~ zpAn`N5xU!6+mZKde6ze24{e@xOUcZ8ULiwB$M2-fygYp_mVq&MN-EwwN4a7gr@F$G*S3&vn zHm;Ha!y`<;^95X^ZWQ~#*CtH+r%Zwto+;^M1>q_@%+p`lbER45&@#4Wt1^u0#;>)h z=N-ZPLI0tCD~N`S24l9KnF$tPoGHhj^zEjiuM3l2jhLxAjFLITEYlav=7;%Q+@0Ia zUa8Z2*i{zF$A)lAb;>=%j<_cBc3KIwuumQWF}>W%6nEsc9GRSucKh6Kl#NYa6J3a( zT&w3pV_Ki4j=jJ*FaJ^6ib@&vc~Z6XXnbwq;p}L$XsjWJZ)!VTaLP7y*qV)Ej62CCg2VK7zkCG3Ml9Hoyyg<_qt^3{w zIrftBGa+X(Jo$ydMdv4HM999D%xvZQx)7_1uLwPv(()w%AX`UMGGi@Y2_JqBCderz zLDRO~YhfF&f|UyO3bpjsVGwFc;;=B$c99rL@(1^1am|9L_`45f%&t>{w^yVY)|kuGw+r9zCpr1#vMpyv3c+;~eTz1d(* z*K6|ap5Aa2d96dDJdqYHiw0Yq3bl42FkskXd@7~g zBFrP=HS?D{!BW3~l;!&wEpbvF%Ck3JvM=luq4_02t*zm&HRadz?kT(MnQxxYQYSHz zR^rY318VY;=ZM4`KZM4V zLMsnc`kJu!m`O}niXztebGQ-IZr_&E8nY^*0dg;3g|`Ox1Zp1QPr35&Pqsn|GV@7g z0{*Q#SMXC4H9Q-Sinp~s(K)ylJ-4n3EG<_K4BhKqtY|>bM9wZ1m4IBLU3QJ z4>9$X#$2k8ZlzpJH@Ql33nK~zEK$2jzziT{1iCDx4EHpUl%S~+^3@Q*phzE ztJ5AjsM7j4EL}EC%A=T71!mi==o08`ksY)nxVg83TG*~n$tm)PNMC$co>uZL?7I0< zH*<%SOb%(abr3$$0S2|Ugje%S#fLL{HZGJEq-=iLiSORJ2m!ZFn)aiZ?vk#8N})n& za=A%OB(jp=^3U76M>tEWjNSC*6EzZ+`Zt`yC&z=nT&^^yeoNE)toBX&PJ6nL>$Ivy zuN2j%U2M*+?Jd(lZtjZw=6Z|l!Boh^Bd~icL)c#Y#i|$d3-uR`x`*^FATSIVKlKw* zBZ2Id|2V?r5;>|{X>kAek-h7A*G$EQN{pfz_=+{_(6`1%fRFf14xvpmVFihkX1!R< z4D-JrO~)5j4|-&Abd61S+l&Gm6y}&LpP@mP zhdwH8NsiFWTGqNl5xa9ts+QBkY2|)Kh@-6p-sSdXl)|IPeG(HNJQ9-b>~Lw^Ll-!$ z4Z_Uk)zephl#feH8a3AhTuVF(1z$*%Dpzm@UoYTx>DxXrz1}^^50I{jb!+V>xb(#^lv ziCwu|^v=&oQjIYEP9XSO(PKr&N^f(U&`x%WF?hFCXRLa=^2T1bYzGVnAEHeTW4q+| zI&EX-pBsMpUNHPT&JkMuQ#VW^O0BV}_&0V*yYM1bGP^tEOpmZb7P=$LoeRu0UUyN+ zLjiqNcDqW&(hk+qp1V)F#JuGRHc-9n#V>b>>1P?c$P&J&;$*vev(M68jO+2<%sZIZ z9QjJwOH~8a7u{XBMZ_(>YWv$7_Y=BwEHG|4dt2%8DzLnqufJ;B+CX|$kfNV}6Q;R3 z4`X=OIk2Gb{&|tB@>MpXa(TInwwODtP!C5cj+7*>sIkLY{wg+S{K!LKz?ybXib=(7 zO|L&NMk-^HFmw8|z33J0FpStmmZd@RGj{CN<`^5%37TL`<`4N$1)cKinnQkFjy1{} zhXF(PATCSOVgYcgI6m-O!87oB(~9n)G`5I5^H1(RaH$g)^s8so{eB2PKyFn2vRsP~ zu!Yd-3715IA%I_v)}bH{ixlS|ASZOwR%63Hrg{@^%a5MmKwi@cJ%cwZEOR zGr&ScFArL#elmt$zZl01BdcE~0kG8M1C0@#LW?^Au89c7?jj#3{nah`gs@aNXCGMl85boV?}nLw zYdkpDlPd_)GI?DI5<_ErVsj_)~ zU`+{w@pn?YWwoRBY)}jEjbXa$?y%&zM}(hoKRq_hTP1(d-DaOB$4nitYGpTjHk*2z zHN5XdrjqkhFg32jVD3lfXh50r;nUhcm~JvGSFPM-eOM*kMlWS(QOgHosg{72d0`i@ z#1h(8ExiGArKfYgnh-%UZ`*NO?~qFGon0Cmu53j$NUQk`uLQrEP3${m%|@!IWpOnK zXw6x!$zLwM2+^Rwcgi|~s+zWAZ?KBOFhR*V38f|Osrr0=d1|H-s%9I7lN8MT zy-2lxt=1f^ta$vI+_M8177&j8{og)|#`VpbeG+M$n|m<=8MzSPWRN{5#R{6SayW93 zcf7|A*A%}ZU`K}-Nw$~&AXRS*I^rHA+(x6SUAs#X(-!uZ=JoABa7)nKC`(7M{jjZ<&; zQ;mWW0rn&Yk95LLbtCl?N|92tbXQW&>!v5*RYL{b=}c~+%-ca#QLUL%MX(EnMF{Z@ zT5*xYeaM;j%)qt%s~uYlJD_Ni02t9mEf>BBR zTJb~vnMAzW$NcpibM6ti=)%+`*`c(xTMYK=AC^CCtvOL^z8&#bk4*OkS>bl_XkwFV5y|u92(h-2CUM z3eQx`Ua=GQ-XYMYLzLr>H=KElvji0HXy}xUNn&_EaSI^%`M2btfkp>xys)~ z+7ADJcFKL_{(sG2k!sil=JrPQ>&5i-G@YXs&)zG>rPZ_uJ=LuM@#W>WQPBE6dR8$Xr z@3vTJ#9)UMmyt3TO-WP{WK%-A;{)zCoIhJwiQiN_~IFM}2fh)K7l+-~e%Pg{_mtgg!^u{LxI1(a$f z+BlU!9sK4@`t>3$rw=WT&vk$?4tg4fyPw9e-ahS(dv+Q586)F>qKCGZneN()`O&~= z^T77%QaUb@ZF{ zlD)|${dqPC!G>4X*-U@@mQM`SxXPqrwrT3kb+`<(GcwjSCUHZpcH_qp2>&aEjIz^B z^`D(U8KD_aF~D72q`-3M(94+%nhMp@1-D{BsQRQ;;WMzl%$6K@K~fOlZG)tySHi9% zin%-k&(P!^dMf}3M(fL&Z}st<8O*Y2L_qewiAmH~!9D6I!iGb^tvciSsS`gRGdQ@A zjI-nax`{FYKu|r6yh2d#U;*KQ)kD4k?>xtu1RrRsr9y>V=r?H>IML^A3I1Bo(!1MS z*4cjsH+tl1+c(doHLUb_s!(3vgdWBb+DnPdv?4NPr=G@nVcZB~{%b#8^cv5+G`w=^ z2Xb8Ruiz*&T|_AA5Q53pASpW5PuudXV`47Mz;h@^(taU~JQvIYe2G zS=ElQ5@S;tA=BU9-uQC+r(U&1K-0*Fnnb%LFp!o*QTaq+m6pk)nlDnHg>d8_B@B}K z-8*)#o zr6X9}it(*{AoRv?m6j(Z+!f@mXEd^E*GQ}+y|6)AZa8*dh2cubSGkrdAVv_J@lWfK zw1yV_p0+&b(?0lkwfgW@#SPK%b1h7+y)Jp*4QUP}^PWuHl0rgXI$4=?&!JJsEixhZ zVnVDla`jV@=W8J$FmNsHbr>%1@G+T?l9(?`KNvew*eC5R>yx|hZoeYsU~58s*x-vi zTnA5w6XI=(H^zT%&A6jy`=AxW?ArAk(h;s~wQC|J$kRgQ%;Y{HWrUlG#(J$yvmN&- z2Lt*~#ipHU(~U|j?Y2DXOwHfIH8||6Trq@{GYRD-!@^Xv1U}25JCxh@dz>o2-XZbk z!0--h;O%}g@;89y&6|_>oG*S~_;y-uylp$4E}F9U#9C(eO6OSR+8W4Nzri$H`}LZ5 znf*5_{WC__<@Jh2(9fpMLqV^5$b@zH;~j|<4rz$IfYJtRLZknO@;JA?==nG+=SIDfnMu}79f}*Y!R%4560sWAr z)EH@_Cq*8dS}EouNv##I4$X}hc94AP_hw$F=nmV$a$K7ai%_rS6@^uMqJM{Uw4i}O zc|}REnfBoL5>CpQ7mr?ew8_N_&mBe^v$wt+~{3x+xt2Uw3>Gcv83t31S(D!RR)f3 zkPcoG7n&Z(F?@(hEBAg`YlB#$e)0D_ zYlry6O;?~>i;DBMoz@#Q%MN4pD}$xKgqY2I5;e=^cL&aLAPy#Fyu$X6_K|d?PmrvP zYl~4)u)5-xP+dhtF3=2{5v(&Zw{z*g6T(=v;(!o&1ybHQrGU@^z43ZHNUAp?D(?ER->vI8g*$11 z_1D%jQWmwu*;;hmK8_ceRg!i+PdCKdj9;cmsgNh8$I=Dn1c*7PAv}YSlWMlY)yp7I zXGK74yR8i&m9x7I1+8FsT(>Y>c0cALHc8o{P9SE?ZOxI+v)5x>vrH;AC$f$S!_pkr zpW4P!Jx{A#pL5UiewJG%fQdKm=wS2-oO`GP{eF?X%FOel5Hw1A6wTUK728zWjL^F@ zUS0wdt7V?^rJ2lq7jKusisGx#c*Z2N=(K^4?nBy~C6@1nSa=QVEBW{L7z!HMSbDOq#7i_lw!>&z-mb30qi)DW)+1J9YId zS=}V13gy7GG#NdO<}AC*xV-#pxm`>N2+4_&Q6PwGu%I`x$9;__#nqP}RzlT*(5m0< zrF+STU*M7ryTQnigJf_v(5oBs+ioM2o}j5SoK8M%aGQldQx1q$^aoO83t5f78&wTF zxB=2x3O9Ea>kxN=4@VcR(?&}j>!3!%#{D&Sr=Osd?^)Y=P#3f`_OP)x;?xvA<`G#@ z#~geR%Oe07uzEktk~8e>J5#R1fS(1oYQdX@k&PGrNr&bhU*!aUCOvI$%DK8{bmAGa znv~opf;isgM3?QvP*Pi2%KN*;%yC%<(hc|1t>bM|k{dTidicgy|Mo?zUaUF{NOAql zpDKrIJ~}}8yBXp+QmB#5p*4vdt4L|_%brb52svwW@Vth3!Nh4>^#Nw=gT_FTv-#WN zGD<~}9azD`8VCtm8wNsxmbDXhObayk>@;L-hCvEh(X1sCjlP$w6ja|bS9y7B4@IN! zR>l-Y+oU=DhC}D*&3qdTi(nl$>KBkI-x;SUh33REOEAe3wqahcs#YIJ#h_&#evnBM?@;eyywGx^| zMYf=iMQVmo`Mp@N4EcVosl7^ME&=Oy)Tm}1--u|Ef1#4{h@t4^4V}>wMP_UD5kU&E za85xPm*dTew@ja6_=)cch(sGb4zia&0gm?dUp884n_CGTnI7MHmD$HDo3dkJinPoS z8OCVs+4W}rcr2ERr+K=o+K^3c`AxBhTBXoO<{R_sBR9!cy>NhN{oaFa_h$PKmr2FC z@<{Bdw!?SnHw;WPq?pxhv!bdsza5NHxc}+KbxMERaY}FOUQxnqy`xL<-ll@24dq^j zTKxO+b<@K*9-sM7EN?=;@wuq94!K6p82AsOZ%JpUe85|RwHjafdCQxHy8gAAouugt zkOcg`k(rS(!Y$Do&~+0RqTa9k&lE)<|FZ-f`#)&O9bX~++ue5vPmCx}oiRuqtt9KV zrd6jcgFGejRsOtD)=x2NAjC7g?hCl{v>X=Qvv@MVd7 z&bc_&`|3Gr03gyN?Glnw-F;5hRF$gGvd4|ldx~kE(jp)-q%_C)Cp{0>=ONydF@PZ< zPLu8Bty!S-T527w3#a~G8PXSNOZaTrca`;9+0AKp_vzB7SbS0WR;nLxg)UK;eh7At z`_=nHQ#L-dJQ1PZ?mz*FkUNjxKB?I?hiu5XTr4OOiv?Bv{b2o%0t_rl4e=SMVUw*p zr*u$QCO=xMsj?%SHU{TZvesJWf$Cy@I6i1F)9h~p4-MH z;739S^%=t>lc~LaK_8Y@HjG@L17cgRNLgANjju<6UiI=gJZI{wxS-V#zd>Y~(ZP{8_hVU3qi8fVBf|_7t;X z#~tnbNWg7PYg{g)e7ZiTXp`C1RARKY)$Kvr`rtDEtE>9`f!EY2hefrR3ox1a0#=Ch z{rjDbcjS93yD}c%E}5QRcw(5)>fkBb6+d~Hm?P}+R;5y)+bNkP&|{)%Pk8srQ`>vv z)Danz4QfC1neB>LbyK@Bgl<@SVY0X}AjZ3K(QMPlIN|m}Go#0Z%j)eZG2sq!+ck6n ztUObb#XF&;I-e_1XrljJDf-h2@0#X9X#D0@h<7@gzfh_ARh8B;lp-_SA23wE$G7jj zSo0m37O3b(&B6WKrYpEZDw_i5x=L+lO`BYQ-kVRo{b;2apcm#x8LKH{h z+XJ+N*Q;~9KH)E#gUuq$AhJ>}DdB1MmvYqbn3%!C;kOnZ;t=BZ;P-}0 z1+M{04z)N5IPs7*IP>P`))1Jo10k4ShS6^^I;y<>A!6jzQ3?AS#;fhI3L|{^FNTiW zo>hURia9UbI%~6VcwsfB66q-(n9PY2#!q*Emeq_>0?jRaSl!X5!(%kU=Gpx7SqG~* zNBZlJ(lNxoE_9$noEjcN;5UNMtWp0MQ5Uks`*m zJ{a-SmNNHobz1+K22LrU{-gVS6G@1}n(c-^dadZc2*vmQE)7S8U(C2 z8QyF18h@_JJvM)@Jq+#Fw9hjm?DQ_We>wGv%bJnxv6r$p9_2FmSA(SmU@dfI=;?~; zwa$Q14io>LPq?L&nE@j(U=_=v$^hfk7sBCgZE08;sSC_`O*95O8l}BCjKA$($GNHH z=CQ&o6tB5eDiPEmUUu&GP=^^{B8LHx>gLS;23p9FHm;_uasYtO+$v6q2c)Ng1*wn# zRtz*Y4Vxp^FjdCfJ5o}5PvqQl2NbUmEi1CaOfes6kPrtD-e0IXq&Dy}TCTy<&W$P9 zabz`p`GR?rM(!wkh*HzNlPAI{S}EP{+ZDqOotGWwUZ9zmoszrlOxogTw_TfB1Q!&x z99^;Sm7DWGfSlmj<15PELTQEp7e>G9JxdwY33Gyxe?9So|3L~KWjd6C`SE$4=O;N8 zMk<3f`y6E;*Ox@=6m3Zi$^ivOoIu9V9aQJ9)i_K*B14?d< z+*nMVvcijKd*yfN*IS{o#abuo{gsl+;7$*o8V?%lvFFqHeMHxFHc;CgD>56KPw7xw zU-QWsQ!W$uxv0RqW@Zf>UAF1Py@-Tw{+7>#fV7IJx>YF$25mMOZMN0kl-G{RMkUVU zX$>E>YAY4@>Yp%VEG7GQRbCe)V7g(?%a>yCD)#Xjg1pux{a%KkYTmu-Bs5$5LUV(x9CM7e?d|l3xi+xqQFa_eRIh?uyCia%UrG zY#g&2fJYdOM4LF9_HXM5rQW@(+;9E0m@W$o5Wy5juAMB^4DdL;EVeqJuC%`w>H5Kl zzU&)0`%en7+o&wl==LSjVCY3i*y?;77e+4Q8p2%iX~mi2sDiyMkafVSh@a^=A~SU; z%dr*MqqDDSo3>Hu-*FO{gNvN)fE_kioi87?~ zII5l)Ypx&$nYi6So><8o*k)Z*uHSr2iBI&!Bugu10fTtLT$O7M*Sk~a0P2OsvMkAJ zjQ9_!{0)FM=*KiHH0LR=6|cF)6$n7eCEq5O<3@w*hqNN$6AgR-)yi1-sv0i2?f*zO zSG}%y>ERO$e~K|=GuF#Ld@J=3m%FnrpZo2jyMd?o6aU{@_?YIXuC*Tu)FesH^g(}5 z)qsy8oARHArGfE%LJ~JqhN6h#{e0v83-1q6oiims`wAEq!;u#yUVU&cY7b@Au`JnI z+r1W19MV_v`)1~;21wI(oiiWmyzC}<2{T5V)D=`ZBHWqG|5Y?@a6Ca}d)#w|#!PP9 zaDPzCWY7TRYpY6M?in&tl#*r9lyr!CtW%TjVJqrSS>MU)f+{$OGu^33{ir(<%N)6o z_AR{Un`H2zXnY^Ru=L-H#=2*WOz99NmYd7hqf{87GcRQ}L$d!}(HJ2f_)9dt(UQw5 z&7=*#HHVN}RcGp|~p&A!|YlTiI!g+MtRr`SKYYpw5|H?LJrd17D45UHnw*r7zp5%BC zv6^hJDbYh(87$R>_>7ji(ii;vf%ib+>-p2&oP7%tJ`fyV0IzX(n^(Kb_4Zr^&z8DzMvn03ACh*NFcb>S*h|o!6ZI~Rdl4ja1M3W zdwo`Dc2?Z$dcP&ig3)v=?QDY`(36v$AS9Fu09%0zRVUm#y{X|z_e8q3B+FZ|v*b7$ z=P4cJ$F*Mc{Y7I?N`T|&gDC?pU{X?&*<4_y`NuR}qr_a^pXymzAkSOlfdktxaN?&QD>95E@z{D!pXqkNbN{D_*wt# zGpl@S@L^El@YjG-6Q_jifo5}2xr!4ea`cv5ySSCQYkb$Hv-j~6VQVj?Vl=;f4<7N# z{fY)I7Qc!4>u6dI*EP`oknry6ti4yj7cVLaHm@h{_nYxoD8#lm`lTniG&0&~HO@8W zr)8e=wyJI_&iVOe?Iqxr8WwP)jg@w}!iz0CcYAJhPZIj)2+(TgqAm2ZldkC!a67+U z1x4pik?%FSqylyIG_P}wa z#gDotfGJIeOjDdw@l_%%4=l#_YU63;L)h{TX&xZ5|JG&26h{kNh55}K;R4R?Nc#Y6 zKImaxj~_(`Hu^zVfoV$a(bJLDXU>J!)JfqI)A9$jiDa7&V4)&e`y9({rn=t;3LTRR zyL#EPi=1d33@AfpiZSxuEZzBineOX28@U#bwpAwsB=Ic41JDk8=;3Oxs_%R)uetZy;u+H#dkGsz!P;6m zwXB4dmQ~Wb5{l$;Vz9`u!Yx!{K8|^q7*(*Q)s)qKBy3X&*pkg$&Ar3$?TTw0NGfxh zUJLO3vU(Tys2}|HKd5KJgL;5^HnaTisOQQXm~Pogltomz%93+NJnnF|lVjdyj%v?C zhN4I#2mQWC`!JXY&=41HXbwldHHC)sho3uZ;ZQf#Cmr5rK1b1O*C=Q0FO3_PEC_a2 zvFubrO2&8vmHl2d%ia*I1oj#kmb|cVJ1(rnxG_>YVEaYAB6Kvsmt zGV;pyyHQQ}_+Op-{#l!+O(HKgQe&5w^% z8G!1U;fg7ZuN>bOoEFD3n3khzpCmB!MuO4|jZE!{f*fh+zn+FvnKd~2+`U!cY#}Ek zq@r25SRQEeY0%=0?ffN?%S^9N2u*Pf(|A!@9f=ZbZEsOX8%Gk%<}Z*_AdSa_3yDXX zW|2!8%41|*u+H~!>k&W%W_mf)f0*L!FO+hmRIfMPP5|(RWLB5mp3JtXhd|Kb%_gQH zo&|Mys98S?Ubb{CKNTN-6j+$b?AoloU#!b!;_QwrI6z5rYz&rEJ7KtrX9X~zkBhM(O`*(@Owx3iPIx0CRW(zDO(*SMO8JNb!qiU`dkl;pB%k- zY}mG(FEpN|^bI3+)OL;$-~EbL(<8|>KT?4)0<`nyoo&Ua1L$(esC+l&{f%tlJtM#j zO-ri{h$M<_eQ(!*(6zh$--1(Q^K)wk{5d!3A8A$FCN#jdLa*p1*SsPXYK6X}u+7W0 zL<`$5tCx~DIOim+I0OjoX`H#jB-Yj#R`s|rr3n!ed#cX6rXEqfnmVPC-$TlWv2TPx z+crJ76|*WN!Q$_YJR#gCyCf2UrmpF75sLwDnrysnLxuub;LI&~YWhWlmEWC03AeS{ z-cM4>{&w9%PJTTuJi0NC0hf-Nh2~j1m%xgL5snY+UoGhE{GGHMEY*bklYD(keQi+G z+}?^)tmlT8+xa9mVAUg#aeHr@c1d%RMnC6kY^x8}(ayPDRGtuzU|BgT> z!ORmXnF0J+J7B+zSVjltdBsQ$T`x`vK=l}xipP7u^wcb5-K+mdHN$@m+DeA@a-4tn zj8?}XYowTv5+xw<>oREZp8#p-$M63hAU(sw7jPx#AB428=Um?ZLP+Q2zx*$R^jMnH zdH!_P&v8K$L}wQ_op}uIo{z7ekSy4V&A)y@k9TU)@_sI^v~8tnK2vvuN0j_cXk4kD zgEbqnjNUjI>@IpneogMPg~Jb}jePuJZKsCwri{hWuyZMwWDM;fn*z36_A`a9>`Quq zYq4P!N@W>%oa#mZwIVWZJo<=`?(S#{sgMyAa*-d7er>RmJ68te@&Rxy=Aa3uyrxW= z{eNhC>#(Tyz5iQ9K{f~~Dj*DqNJ)n@7>Ec+cMCZ5&@)4$f*>MY(hbrwbW6z4%@9NP zFmyN10^R#|pMB2#J5S9&dI{IKW>$UIJ6<2XdGvk)qBU~gmkQ#!7)Ba&zn8{p$mW`u zVyA6*vgOWPHKfKxUc8SWe(lAl4nu0-88VWnxxCxz&>>13VphOC3hk2k|1Tj8cR&YY zP%8dPi*I0Bqh;fJfb#epovK|In5GiPRm?7UzLzim-_yJa@c*WHtJZXL2WMaF`5r8TSd-a2DOo%@t>so z%p;S<7Axj=Q;<1oS|BDM%yG92VQDfFj4WXU3099Ebzy}cevBAjzrXStN~1nDJR{-C z@I?o68`l-rWh-ciKGLFpI3~N#PCFz_hpLU!sG_rAq;&?`_R!}%;Z9aaw4Fuj0UU(K znOtX8hOwwJ2%c2*A^HR1n{XA>uaNY#fc8+>tze9~TbEPN&e8!_U0347uN4`HJG}GR zm{8rjg6pF+ag`O6WGarWEMQlTW^x5a)gTOTscJh9E|>VCR$}JMDcUFc-o^Jf^bG89 zlAF`VXC*rx_dWFXF9=u2MlAl|A1FbzJOGbUo1P_!LX98%E`V<)Si32p@CKrq6{F=` zMX7L=ln)e9c<}QewjXTXrRyE3>x}b*6Jaf#XRwWP!Talf5WKn01#d1U>;34A2>u|Koe>**dU z-Ab3un4uZeprIWpJqd|9W3;8;4j1AKuJDylU_o&LE2c|A@ew}`p1Un>d`haP$B12N z>G=7-ZoX&pxOPu#jWAzJ`|9*aa`tpmLN*SWxHtTcQhXUiGiNOl(MwxHnLjp@fMW?H z4C>|HPC6g4kTtOsRLi4Aflk-i))Pw1PE((jF3X5y0pHl!zx;e1t^cl?e{XvI-_M+f z0tsklVDd=*;S;JQ%cc!wx}#ffvlPCH^%=T@Q^_4U0gu8xg`DFAPRv;>b zZ=YNy9RJpG59}%&C z_dN`my1$^#6zSKUq6%|1Wr@S*8#5_-)Z7AQn?XZ*#-IUH7XtXE=r=zY>>wj^E zPy|G{-tHQhvm;7&sgsADe@X}2zqE8k;r~ucM_K=`TKbNfYLuUtu68IeMjqu`?|p6a zG^&j~j5}*Jse}%kZpGBGM)^W0$m(yoYKhGMC0C7JOv0`=6$&K>BFUI)U$4iQDxHn$ zOqg45I{Ew-&OZ2pHuh~TvIuPFUN@_j3seFQ;&rB?% zr>Ccks9ULx`y$Aee5S!0q@888$3p*YR$I0U(BMb&|FZ^f;rlNb6442r?{qUCLe;OY3QRuD_^U_OnAXi`h zN>EY!bPB+b)&>uz3zyE=^vtxI)4%Y_Fb0M6;RdP%pl4Z*+15}9?|_y0hsKUQwSXAe zlPtrkq*)!=1Y`x&adVe;YSqY*1Zburk~zD*NJJ}k`wRY*wl@*=r`SV|aaxxEDAgyQ zfh-Mf+Ng~sn>|#BdDMO%4KO94Ul#Q<$lbYK*CI6@*b1!k&x70oxP(37%4unDOkIC8 zWC3I6jw90AXTFe%y7VMwSALWF7|j>bDY5-Vvk<*VbOq&$a14XWX&_5JcG`$`uHR4U zq%Xp`msX8oDc^hREl1Xa9=E4e@;1ud6+yPT>n_7$XMq5BsJ+|Ve`b>Wkt_E{8GQ>Q zR;rV)_>O7??udjcS$ejeD=4(eQKq+s#(7sTzBbR}1iM*mfc4R*LG~2deR*0h?{I$0 zP;aGFN0D?zZWm3+9?j8~QO9`zRal)D605~J7VNvpt;CO(_UBx%WxN2Iq=C11#$P8% z!Wj;rN!obrZW!l!%X~vi(_?xb@2E}oIGm@ubKx*HS-j4;AkFp|OKfaRul^C6?+)m2 zMQz9xSzLl1*3%|gMvI83Lzay>UtOqT7Cc~ai1aNO@wn@>TjZm~Re6vVy5_`0!>(PA zRiXz9j$B$r^|yTVVno`y=d(f914VpKrtfHRnL8=ecZC{H!XQIud?Hb3)8k6Z%DM>! zDwhp@wic^cn@|S5-Z%Y*vx*%_vTwCb=K_gNAZ7x~9_G=S#knr#sgj4dZxO@Z!brXd z+d1Qy^u_B@(+`ostAIU_(g@igi=$^*6kSIL@)&udt;-;jyw}!cD z$AdRhkilH@98q%I{u5CG9);FaBU$1N-)=yp?cdVfO%cc(0Iwk2BQ5>pj`1)iWiZ0)6ss)U8;hG54cLj=5;ag6>OD+bGAp8;I|!G5|2y ze-mF%Nac0^{G!sRb@1JG>A}ImS4%ejc8xUM(uVL|e4_`E1fdN#Wz&&(w(~31`!dd| zt!>K!&J1>jy)lE0f&_)!Mtg<52AX$Ni8XBm@Z-zwtovwvPiY6{({#@tc^*nSTLzxG zU8~4ebaoy^!9GSp>Q5FFLD_6gi{X-4&mE`*wLcm$i~c%jfP{nGspt^CfTL0&dsSJ@ zXxM;d-G*Y-+2~LqQ4!JN^+73?ZgorDQfq>|w1H=Xripn8y>)#->hr#?tQOl<1w!o{ z!?CJ+GJ6}d=6`rQ#i(?otaGS2v{<;iwxqD--2tfy>Sk~cj1DX7x#@EhZt}!g(YLP* z*%~33+DbQuy(#|?)x8{>J||;PvpBe*Yswgf~K-%OA37C$e;9IM1SMIME~L9!CLZOqb*Hc0U`F0 z{Zugl#~W&IMr>_NvZg;}lY-Y-v0%#aP=IQ}AHVBB6C#Zup-`5s@Tq@9XbY}Oks7@7 zqvrJWBa4b*54vP!@AuIkqeRrkOh8KY5r>XNX{I&UY{>va)s($W0HmZG@3Q$=mrQp1 zzJ#OoATZCIVo&g%wmw}B>o!2T^PR92?nr-Feo!|er2{kMuJhoJoNoR!rk=ctUNXDJ zG=E*qC|nTFF8Z3#LQT9yFK+)lB|V(%4;EtJE<|Q^W&;StZW}Pdx(5Y)av8!Wx!865 zJ5EqB*2RJn?H?8r`26nBemN#dCslE1Fivt9y1zO{Kl2~GP+E>TEio)U%;QGLofYi0cc}w zYHY)enNWz{#6m92U|M+2nH^C5fm>!8n1|9WI-{_+UZ>w&_Y|}AG}@&ITNTmyxkvLn zgC0d9z4liIU99_6;Lal3c?A9G&j|YX&j`8(JJvw~wXgBd2>P&3&OajP6}~_OJr@E^ zS#VPD5*`3rl)Y{H{PFV+3RU#xylj3A+2yhw`X6zH?FHrrpL`M}80dK8KkCV22K`ET zoL3;bL0RyJ=;KWhx$Wi>VQ5pT?hF$#+aW8hB_Lcq{9~TXT7=5D+pxjxD9vvz=5==* z$(KTz$YrWFD!J$zmK#iNBq5@fbevzDfi%vFsWn7*cHV`E`z2Z9*R#LS_911wpC$?MHu*rq|@yoeUcK0@1tRF9kGONCm`aS+tYng*=xmf^}ovjGIbcHAY-qc7V2jW0Et~XUuRd z1=^8+CD}*LlI%TR|2D~fvhy>^-f~b%&Hh`G-SPdeBs61&z1aHrL!s~ zRb&@|Gezq0F3&vgf6B1OY!mjmHCBm;<+CX}esO_zt#>4@iBKK(*u6Kjlf7QZ*&OyZ zX=pl@yN-C(Q@T;lt;jAlYVftC^Bu=su6~b~kG+}h5gICfrH%L}sRJ>LtP=B=}H~2zOxVIU- zHM{XDZK^ai(%fM)RPs0)m_v5FR@c_i#xeQOw--t;kHx8v!wV29TKa2TjKSZlb`Dsc-8ma~V3p^@az z=ELZOo1fy`$P4qz8pVTI|1JbMt&~8 z0^p(CGsJ}iZ6^tfv0;6tqX%q6=hvs!tF&sl)9a(Zgt%i#yi}t{EEe4%lNY3R5v9or z-tP@-t*LDKnvcJzpsM`#JCs~Ea^4Dt+K!Qu{{>kAUH=JLIWysr(@Fe4n&)gnNu6}y z>4qA%S#ko*QWe64*S#+NxYM~LD{j1WGpERwbEcBylm@R(Q4cyKqYdh5D|4P{0qo} z99xN*SY$za_sD2t7_q#gh0{_(n>TSx#Y>23X*6+xG0W!I*yW~B0X8d^l6X$ih;*VW z&656>bJ==0V7)l2HazWo)N|HOuM3_zB@fqg4Hv0U8r?j3|7 zUDN_0%XAZGtHQFc?E~dQYC`OVr)H)MFQ>l}U10_<6blwqRY7WY)Mo#%3b6Z9ssHho z#c?|oYoE4 zPTHXg?MF#f%b^1Ja@5Z)d7~9`RJHWGLM(JPzLo&(W4ul;%hi%&jmK;@6>u(+2Ig0J zDELcf{Iu7PmkX_B3pgy>kHs|x7ncb0;j>YfKh1wIo7LO1i`I$>aav{X0ga8dv=dO^ z#;-YrHkUf62V+*5xhwOX7D!4yN;|H#@CB?jUNJ=p!c=7)|)hlb+=vRL(4cBb}Eg5Ct)v)YtP(?@xQwhX$4fsnhLE!UWd5&Z7b>F z|Cb(x$5V>Uf&Bk-6u-mlR}|l+v(u#|wUbkIzmH&Em<^%pP)OX&n;BZ_m}V6tr(rv( zh;sHWVU;Rb+9?t8t7vhNI$n-O%8ziY2KCs;J;^uD;)7N%nyjKJ<6kad8 zXU_`xKYquAmsu;tnKIg$|{^n71`#Iump{rqUK@Ki-!SVd7&bLwD8@ zKZAK~jdnn`FY88dR1}fsj&fhl1?F|2+``zfaC4jS6dg{Xf#cDBaFyUjowjFGWfwo8 zubsf=RV%Ydiv=#{Q7{)p{8fV0rm3m={O__U&J>{d-dy z;oC3!R`8l9-C|Rb8|8_TN0ROp$o(>^YMf4=syv8Is}2T1TAd`=z3Bc6HZ*so@$cv}bc ziQwUdLSk^&?7roQ`s*tp!80;?z&*IbPJ_Cnw0q_AV^H>|xcl;F?ZAbmVzq;_>0D@- zd0~V#@B|(vUe)|G;*#FuWa#^gv<_osDAL$tJr~!+?0^Ww&u@?fr}b^}grj;%X~Lzh z4?7o0uYf_{83ii~z5rN>Ub7FKp|Mo^vmdwV@j%w*qRy0Vmk7tFjce~2L~egTh>ChC zoL_t0I*xuPrC)FtHUy?@{Q2VGBKvK2*M%*>x%u-)z)F+-Yh*%nKp zfp}-^LKXbSS0>DEEneT=JE9FhlI+g~@ZdC#m-ZVDgKp^q1Jz*>>2>jMCn;3Ph2_Ap zPJm7GR$q`0r!|CcK2`ORRpz5Im>t*Nbup!kSIr368Ur>|QzdRdDf3Ju08zt1Cft_gC96q4^z<&pSvH4iU zl&3w~NQ`RqF}`T!>og<2H}Ksfoi19Sohq*i>glN1KKRtupPA$udn_N&S+n^CDfpT* zdO>>>sM-!u#RdXEx7yE$_W}9fWwqE67onf7#`iy64QJkSAbPxn%+OF;#j>Dlhynpkk*%5nj#BFREz8T@Nh>9A?H8h zV&4dDlV~OmxE8H#jCplq(L|+j*6aoRz%{Be{qZ*(pHQTmW zv9PQ$gwguMEgaBOJOgw6(Kp#~;WDIIL4qOQs$x2p)c6Y#tG~XrpVruB-+#6-%0&KQ zV~p;SQJAj6tp&e9tS&gMB^(}A2OxURh6TJlZv*&r|44*YTXtC@U`)!*uF&j@Ggs` z#aNKX=S^tGGAChrI-adW`otXb z^zK-VV#}K#5a!y|_Q;y-4-DA3fVL}d@$EJaxu%R(r9?D?TIsXlv&Gr%nE%4F0FZmJ zqmqIDLQ0=lIwPgy|DQ
    j88DZQZJKaU?E(>M#wsRVQND?3_SDiSx5ppc*|37lz4rpOgpa zYakQPss$f`YJouCGPg!D)+fo6#F`dg*x!YXB-tUL|+>ZS7fwg{Bj#ZVs?6O$y@g0hik8%euhL^Qg zH|FX~vXMo@U82ar1@%Bw`kYvO**QRczjsypamE4qP~uOj8B(EdTO)`x4{;0RN!4TCGdbb-e3iW`?U3NZrMR*>)LY$91M zB;Jb5pICJkHI>E_^)yn_xxr(lAUPXW1#@Qe81RK{0N9gv7ENPS9rLPq%fRfAyG)a1qWFzh=$P-P@0WdjOgcyM5rkbp@jy9Az=sI;26nz_hw6L1A zc6K0KP<%tgVxGR;cA#lZ>T(8D?+n|%)XP?t0WW7Oj?YPHz5Hm&amgiXx~eD#_W4IR zrcnCGv{MSG7epAbCA1ZN#fLeY((17FojlYI?_jW$!b5I%^#8z2MDi+TMfN&WiP;N& z9tU^3X^kI0tXLh~foUE3nkOA+o=vAeX7R#LfIpCkzrt>(5PVoCx$44eBkiT;9(Gfg z9dNnK9b8*xnvW%nvS45CuV0My7C3O;zQ0wj>tjArw}&^`&%raRQL3W_1DI1Da-a?3 zJc>LHhfutDVSnEZEg`&(8S|)Ir;$&_wvk-B2SyQE1>M+JzT%_Raz=yxO0NFtX{}Q^ zq2yOqpp0Y%uUu**M;MRqqv}~gne1^woH;Vh} zZq74%@uilacH^6Vj~BnMHs-?88U<%FNsOea!OMK(oG7|+msuuk?sn-T^&w^#2DzDx z{dB<_DRISzt@M!T*!kMv1i4usfyWO42ejCD*fHxkdK6PcT^MqPxq%_MEgk(YMqmdXJ%ds?T>%b_DEzr^PTD~sQ~j}=%t>%SBhwA=@(C{2H>EWkuN{aXH|kAVFz zZH@Cj!jF4kk!7;1d1`5)Vb~Y@wU~=KY4>~2Z@M9(-?X(%;bx%z_8+UO| zeLWgBB#Y}$az)kBM3Udk?Zj01mgbwXr5KVf4&UH%8P?}uCCI|dDUI>$6!P6`V13;) z*O3^ru<1~DoFYrj57#bV6ghMW5~B#Qn4{Cqpq77F?;aJ8JUhm@=|H}%-#SlEToo`{acz>g$TE9 z+mn3}youfWmiK{m)pu3DP$*|DdTq9K;MVZPJ9$WY!d(jo8QaE(2y-etkkp(^lB+z@ z$az#Evzczl2O5)hO_@KUfSH8X6|x`Tep+j$u6KmTB~)7IisM;3SDTZ7)6v2Isr{pX zx?fmtUj)-ClPPKU?3x8bM)PhVST?VX1xj=jHJt@3TxRGURMI%yR$Sv`w$j+mK%Oz% z3Hq^-j?2^Kw~G%IhI)v^(GuhogS&HqM!CxxXSPPH@R_XE*f@msh3{*d00%JG1yzx*`FIQwAM;Go-x?zz5xvO_W*;P0g>Y` zX?J7L3e~lCncHe=E2(h|L#<0#@w1WeEa}fig2D`!j3WTQQPf(W?c4&hXXE|`zmbR~ zJ?*}-eGb1_crU6MtX5wJv~61plrlipvvcCS<7?si+UVH10_5m6e+(;`UecgIz$VMI z>Y3>8celrCC)$oIiHJbQmVP*;l-e{l-XcaUHgZh*Cj1L<8j?sx+mTmfl&xv__ zi@ZcwJ76;?2`f&%pPweL)y~5NPP`95BKgm0D9Hy+#9fuVsw89&<%IykEG(mG! zH8*L&0^!^KD>`>9^>(1696DTu}byuYnMI&~c^C>N{OHqY%<^ex)>B%~{dcoJD1B#d5%D4Mh<6^Qv#nbZ*LY9sJ z7k~8~rq@fU3x2v3qd)`MS=HbamaYXfI>BU)HmWwQSzS(?m!_m4@X9mF&h*Gv$o~`> zyd4AHc)KA7C(?Lni-+T@liqFb%v03YOkxPn4`))baq`yTM5qIU%Za}L=SuZU)8W}1 zMWGv8z`UrHP#MRuAlm}Cdr!V8qrUy-G~^E%vZYLQ$^vkm&A`9Gb+qQ{{dI(x z>wxZp){LP)aq$~-Xe}FeI_R>XP)2c2Tr7{Ed=MAw(vJ+>lSD!2t-gkj3(P7IJY{Twmemx`v6k?f$MWO?^KKr4T7=yh0Zh+T^tkR{5cnEv z;E4TYJ`|jp4`EiWUoG}?$z9IehrW4j%Y==<@^ORdaCTRcB)U0*QlHNB?0JDk|Ifd! zCLv|FiggJ`dUc7DdB@#w!G*UbfmVZcXf*7Q z0DS&~_Vm3Ca}Tp9-*)6=zspYmPY2{T01s8%P6>N+uA*e<_ymt_37i(D%N(admT~GYs{qDJ`Q06_@2AK4O-nl9GM-B6WZZ|k}cE) z$<;3L$T-Ey^sv<&w|Mk$;I&$%b%u6SjOPayWY1?HpC0yzFmE;Nd{hNb%|SE7mro|^ zUpFsA!$=&Xw6O)R&+ZjnkIWbhF^?)NTHH8%({AKSU`R@yo}VwBZaV%*56_Zu8$0!R zTPZYYyKzOIkp;OzJd8mmukz)?hi7A6cyeu+wd1E*=ytOYQ zF9o$W2h{}cQx&vK*|krESd}dXid8kKP*Lt^0T55!5OI2sqCx_J0b5`hgj9#{3FZ;M zAJ{Um)}_k1ex>kAl^;Az-4< zwb3!F!vZ($DcI^8`j2W~baPe%cN8US-G)skV~q4imMqE}zI#_WqyE3*_Qc#MaX8*- zpRPtDTV+Fu+B@h*3hSRoK>Nt~yXQsqn?7q9>g^P-HovPc2FVOG`Jtxnp)BHA^4%Vd_11Ki!04u>H@ z&Q(p(M&f|SwEUo7QjIs2k!p*1q z#X^!*8}}982+pty31s@2}G_~xIw|td3~>?i`EePC=DF3g3olc=M&1Q| z47_JeBpbx>&W?nLq^;@nJwAP@QQv-Ark>cIY=^_C|=Z6%I%NVxjCa_AFvGU{vy4|u~>S!;IX7=pBlcE zm7&cLhM@dJf0zZw5SX>`9N2?UR4y?9~HF?QU*H3;(6S<&xe znzW8*4_@?<*BhD|Lj`2sxcd(%rQe<0>4yfV5%Gi*C>!k>S7@H*irm-FchZ%RRU!PI zhS-;cRMRAvvxU1v(hq`MkVhm*{h~KVpQ3axzl+3EDdEw06~aOnq9&6dD}H;MFFz5{ zOaprKz)d7m*s)Cp9%kJQB^8pTEqocx&n-t>eZp+NS}*+Qc07vatvEy6;)R99AATp+!W4 zO?s&_R7s0YthV@QvYF+>rWJd-4IwRNiOrS%YC)Z2b*smVU!G#~`nYTVo~gTP^zExF zU)~v#`VMyqSExUyZt0B1G+KHeS{kJB>)?Qm+lRc!55>=%Rxhk)_GIP+qe=oqIaQI>dBmYcb&U zX`+Gag58&@`cHL;*p89et53+OCzU&dpG7#61Ic9*+(P7qY&>AI;bq&P)1KP7CLUt@gdM&*9*O8nf|3lknB zt-t>I+aKY$EdSv`)yYU{>?kgA$SQ|DTKVIV0&UmWMiLvWBq2BE_@FM zf1?>(-?-qaE_09jf@-`RvHwoRA$nb`i;RLoXzD%vZFjQx$q$1=>Q(rS^;#{bYxOezUWGJK_SL1JPl*}S z8+OiLB5agkM+(?4VmdlJ`kUCf0X`U8=rzw6<-;c4K2Mi-AgnfN45I9yS@YD{A*%<` zQh#?pR>jzGT7E=x@w2YdKZXT^n z(>b{VAORDWeE^H>zai@DH|7t;*_oxfQ0eA=GvwvTb(w~|)x7n3;>M2295SK-E88oj zwf)}myw6E8_&jp?%}Oq}3w7eaDE-0RctqGVVyj-Eb)H1YB5oTp6NO1yv^>eiwOZ$r zQK7{`49CDK1(DSc{pR<$tf5qQ?m%0{pc%g4h5Er6{r)9~$c+j@C}BA9U3cB?XXq4m zS*Ph43`@+(g9~h*of(qyj%M$Dj7OlLRqvi1v=&0DMP9jKfz1-9)OeOYZ|de9VrjB} z2DSlSQS~bgwpnz;qqAc=2fQHPv1Y#YO4E8JS}rN=h34Pn z4W5&Ho^aJ)6l0_q7JYmNvOjLpLmFEpl1h8fOEF)A2cx{+dC=wAo|h~td>YeqYUMk< z$&r2_T7KYqGc1TXO_J6Wt1W>+QtGJ zE6Y=}aP3yyQK}%_sK_T;X_GfoJT(PP?~A0%6KBrbNx-=ozVQJp@Ol6T8g&)Rz^$JJ z`{U|`wG#_Sk461+VI5Il3ty6u-zMfJh~jn9&d90AXe72ChvIr$uZwt z$sY54PI9oXpmVGnLVftAgz;QOFf`X!g_&aM5(|@4zC%yVt?4My`v)Nj_+w*@Q^EfI zPGg@9ld+~>mR=SY9m~4m{D>jx*nBA`sdUKN+lPU^Ay?T1?uoHfFd4p3mtS^YdwzaC z4KFZ9F6jktFGl&=bt+Q^R#p}Y57Iwe9ZvYKOXR%#ESO%_d-c}I!qVVih7?X>x_LK+ zTnHZddPPN92xpK>ynpqPR8Ok&v~D@%hM(Zn3|qVxm4(cKvzf6|c;3vF`*(dhFvo44 zVh6b&-PwsO8^Vs__T)^Hl;_I!TpxjzgaY)+rwZDzMf@Qi%u?*(-Nz_D2W3oW8ibac z74IR|gTJ$ix|vH&_I=(YcW~lTa5cNUhC<-w+ zrzW=h1&Rjdg@@w_x!zk`bV!peq7HRjXcaCU^fQVBW&MaTX9}s?MK=wg06Gt zov|6hRvj?>ws-Y#YA&-HGC4EQIA*blehxyv4j)ewkv*;fyZ5A3ecd39jHkI_v@FO+ zT(E5vysIw?X$pJjsH{I4|HhBq?8t*5UXWOqqBW!B0A2=rs=kkxZhssuQy-K^ziHKf z&{+Fopls*0?}}2GAGzYGMK_96ih)&$dkk(LTO(3xi!LqHKF7d$ai$BPkfA;UP&Y)$-s@ zWB~VSiKax7GjyyeBg7;6-Gbs!+ffTw(Xb9@DN~HB!E_B9|9(!7B+0PKae}{LQNzl~ zQtqPt?tTdR@`X{Aj268ntHZC%pS)}8P#-|N`>8)3ZJx;Nm#46nv$GE!Yi*J1@?$t8 zs4W&tn|4leS%RJqYpi@5yA(QSiE$<**=N^uV>pzklt%5y#6jS3wJ$MYrZa99g-9DEtKDPL_%L_;IdAvtSSyM zOkqUbPeoV((}6iTNtQedq{XAN`sWViX^EyR=woB){XRJ{_fRzG`ti;2kbInLJ1Tp$ z!_blDIvxe}2A{hOl;W@&D^hwO4Kwl?1fwEM$IIuL|$^(UN&ob;5kobXv$;()YM|K$~zgWZvdw*W)R@ zA$sp%a-^5ZhN{d#XOsCYv=R2Dc2F)i&?_S?+6c4mnJv6njIo7;pzjRtNb?kaPa-wd z#l^ANimXmQdY~5Mk+*(%Bjq^;yLdl^@>&0f#uuIZ4*Antt43m<4~hxUM_wo>+YVR3 z>S=i)si&rLnovhGQp!161Y$a#?l)lb$2hy6&TT*0Co4a8DC@kmhfd}T4pymccSQ5a z^wdi<@U`R3#575jPai>8vc@Pani|=(w`w1bJ^@cRm3$s>&nS6jp4|3{6*#A-;V=F1 zreOSSkT|llTYh54(%{WZ>D$M*ov81#9*woQsae`o7cq^`d~+xlo&D=BcDkW=BK@Pz zwjx@FqndE$yOuwZ$pvFi@FzK==69Mjq5Wuk7PdTz4Za~voJRp|QL=N-40=mexO<$G!LVfaN)FTWWberGV%qKql=1rZJ?TA& zpvr71vu7ru7Af!GY{U#S_|;e!LtJGLufeNl8J*1_X9+hFH-`3_ws@_o@FyWbX`oi& zk*uSh7+>BuaiSM+I^DS9gu@=+>Y+>Hf*|U-_{%q)P9NkX&FE^1qrw?)>LoKQm^|f< zb8n;H8dPs;LwO;tpfu1iQjrbCOiE*;r069?+0YM{{hK?Ojp4T(Fv?6lMIS+h9sYtn zdCxkX%pc^K>C8Ijfq@Sq!UCQd1SIibyShwB^O`AX;>4mLCZX&?h+Ae-l6uSM7W3YD zTL^o@PMHJGov>D3o58uK77(e72h~kSCpPTsIzv+(Tto7eK8%^4D<{X|A4GOg=viP(xd+KcwFAIF1E%A_e&7Ul_WAAe7h zi9@1l9o;7RqP||)Rp^fAu#p`|{%b|>49=qUp-xq(+Em_zFs`?@GvT`bD>p`#_=6lu z#*~l-+b1j7t#N~f^n_O?Z!=_d9*~d}gQX*n+T>WC)2_=as=~^H%V-MjzFiEci;GNL zSV*Q1CT(=r8JrmqXNd1-(RI83LeBE22e}uy&>SWi>S-0Sp8~>=dJCn7BG92`2M{6j*b1z(MDHNjQZR~R7A?yy~rrBb#`JuVV-Nh6|p>5JR_+{}*V%|yI= z?53I;Z`?IZ2(yNA2xZ>*hffYB1{%C-z;&9PPY2C=FBIgx7-7;_WfAlucJ6Msq{KmW za9|65VS>c2Z|0Sv*2RV#`_Y^Jlu>ILqOEi9WzYswXtrk)J!*5WnYpoNm+J1}+iICC zB%JJAZ=qCMm#%#<KOz@`li9vbv4wBWtvwLk5v7QyR_QNm8_C<$!O8HgnwWbk6V z7^5R>-gX%Gb{U<>4&j??SPsa%vhSDFpWH=D%8i6rgvL;6JQ&>#KJTRi3|sw^)zjme z+XSs4ZkG3YXF$2H9TSwu_?ms7ciGv5o^D3R*vp5&C@2;yIv6X5XPO@>o7}d)n+$(O zbMV68Ip+wYiyr(QE_=Y#4o7r~M)=tk)f#8xSY7yW7bXf3SfrGA|1y1g8)KjK7WOIY z)uR4Ib73Y~lHx2RbA?4NOo2}C8ney|if@asR|kC6SRZp}W!}+=nC3SpOtH9hY)^I# zF(Q}kS@(0DO0^;Fbu&`wx8!C*yO9Dv%;eTY)wZOC>2~@>gcx-~r)S zyE=cas@H1WkMmBUCqAV0iVyvpOrU{xKR0t;C-z;jfx#EG@ zlO5TXRc?A5m7N%3uxtrav~XO!pT<_BZ`!eXnNDC<8MfG`Qr&*o{75|hJXB;OZZ#_dDYF2!#LdnBHjx3-7Q58(BsDf4myP*RJn`MJI7a5Bls433T zVe{<5OG`HQr^A#wZW#|!6d_uoB%H3%;95*Wa@gNhK6W@}-N6dRGAwH8) zX25Ew@-vS8M@Qo5Jq!EM7AmPl1FA?$6OU#v+k;XASx{%abUD>;SNxsv6D?Opi@W?I zy@a7Dt}b!1E(_lRCDd%MmlY((sU+e_NvI8t_nJl^Nz1jepGfkT_{ECZZ1P{X=l_b& z51zjMaP+>ioDpNCxX(<&8l0;DL9^-V5afw6zd#x}G!u~;g17i#F z9fc6-RPh7P5v-l$)#}R;+h^I4MZ^*_;# zUpY##I{g;D!0{!A)&?39G2kD%x%@+aBTtyEoCLeIl+mU3$Z+6h^r4=()?w6qd=FkT ze7B!@N{$niZfpVhc!0m2lvOMvrt3{Q#fdK`AUUOA+fw{>JR>+yx||pC{r-NeakR`f z_0{2oXWK5RF_L#)gvKeUkG*q|RZHob5i!1Bp2_xUFIenrIb(gX#aLu-aa%=NeY#HR zT5h>zH`b?9@%X0d7%8?_JE^CI zBQOtiq;Gh)QiqS#Qc7eb*khC(!&ijIB|N3nrj@FHuGilh?T?=xy8HUE>s5c%sKwZ4 z;(j*chgCKTu{Z@|7B1q<=5h zkccv}za`OxVsnfSoaSm48X*K3Ob8s{BEi_nQkk{#lKZ54J9ElzPymYN8%UeWVNb(; zt{Y#!x$nC8j^#$eTg!qTVS0eA2I@_>-3ms_%?^Hmf({D_yxbWNzTN{HwhVYCOY;sc zmJbEQBu?;sBp1p3*6fH0FCtCs>E8?gbz8VM*PAZaET_NU>3*W*ZlDpeEL9~bXW-|2 z>%=UWxI(oKjaJu&9lXyq=y@JQ`Ld~Yq<(zn>3cyM*I0KoZ(AW(DFe1gZy`gao>CDB zYhLNGL7}nn4NO($e^`ZQ5eSe)K%at5{xBCYoGDReV7O&zt;!%%2x__kbNbYJ`OlsaS(`y^imd(6-v?zjM!0fQqZVnL?^kWOI7D$P(>HnFvG(}O($YR z`&U8~^z3(97)Eq5`nE5R+g{Zm6<=(bi=D^orVb)(X;pm`nYaFzzO1rrvvN55IP*Z; zrp#gaLvtzorgusBHmAd9IW@$_6Zm(m#71n=pyo1dH;Di9_%p1Bg(214$Sl>(Ga=gY zao9hEXvzdYi1y7q6QYySb8@p7aepA1-2-LA0d2_D@yJQp@mZ#|K zH79B(4I9oA<*gKNcb}|&k1rvhxNvRj%AmaPjVnh}O4Z*mKh)0!Vpl**>L|{Vv+kKv z%DaA`sS{#Dhb=3LG0agWW|d>bsqsYksuY*V3*zepyrcYinqQSrVh9J$^V8KGhVYAf z3vb{rWEy%!Ry;0U*rO3??h$3HLK3lfvF|5cQ;#{61@zjscPk_mCwnw*O`QqoJFHJ9 zn>eoHUfBCkhwpX>d*1|lXC1~qeBm^^AU98QXacTEt(o0Za<#Amhtt7P;pCGjJNw3X zixn%pX{f|T&fX*h=fkBMQ+|5h3%Kj9^KaPg55{Y%T&M@< zfo=NNU%l{}P5t-G{jZ;MM4XAyg95io>ZzxYYpU8y77yeuUMObqxK`^w5D(2YTwtee z0+JQR{YzwSczdts4H&&hg_>(Fn8c;ouO%-ETKwGgZ_Q9f`i{=0>V;Yx-l|$lD^^J2 zr-l|5OCJfMQV#W9yhsg<4Y%o+h^&}S>xub>$a=g?ZthO05_QNN2gal8D?djgrUNvQ zt>3v8G#F7ipy9zXc?6+A#!e8V8h`(i5UPxgA8fbW+CQ}3IGH2W`jFUs2Cf?G=O<=k zo`FMsP1E`=r6k?(h*VtY=Gbv?+LIbV7L|?B;ZVyZlk0tYK-^KV$Me^7g}RC@L8}uN zl5#Jz)0z?Q`~OATc|TJ5|BqW!C?iFgkv$6?n<7~`_U@1n%AVN?Ss_^&$L7f1WSx+4 zaLC?{y^eXzV}5Uq*Lc5rkIxU^KfsCZbMA9Lujlo+o^4~v9!JLvOksy~vHtof{b@hi zchCmiyHt57qYKvF*+j|a{!C0(7a=yimUywvP~7ELN7@%f2^uRG*G?CO3Z^P6kEt%| zsO`0YP(E&w>*Mah)DFY;AJH&Ezw)U9qX*t(azq3{LdI*Ay^TCupUp7^FC42MW2N8} z5f7$k*>z0gwi;!v;zgjwH}@Hz*4*3$Kh(#zJs=iWhoQ5AYy6LlhM80uE)i`$680mv zF$&;=h;J&#+e^0n0QIlcoBrV1x!C`WYdii&u3df1;ho_7jCy+)JOA+5Q{fbVeAf>%j)q5|EY|cvW=+UqFI=#+R{+0&H%pSWob2H>sT;s}wtWnMd zoInG$qnw&M7^VGI=%Tz-wU!%$d+Wn3?!<7|EQcige2#c$wEL&vZbL__YRjfiJq|i* zVldE7CUiHvC|GoftBg1sEbA0H)pC^r%g9H&J-u_s`Aak7n9@&n^t6vvUn}a|Q_=PG zfOHR@;*uAz7dSX;o&8L~;{bHRXg@~X3A!ZndHL@EK1lnZu6Ikx^j@V@OB46C<#flC1$6yr8AB^=u=}leOud`;{&E z`=r%1!Hta6+1u4OVc>!C&iwP#&&j%E$`C_M0boxCUAYo|@RQL4f<#cqt;#J1Kwf;EXZzrfZ4 z_jacy9z8*<1)M}M(HJKLp)^%NrQy5j>|$-zdO^H`TFG0_ZjM=v`AbJ0n-7C{dTfDY zwEyPlK^Vt$&vwlXN=$6$!>!#V=KHO;K2ygh224Zj_-z?d5aAVhA6ZyiD+4OOS#RoQ zgx{4Ft)SQ80HHYj+xA&8|d|W`LiFS>Zt$F6ACW@*u<-$91d_xN(p5 zOg7?Bx3tzKvuC?!^(Lch5G>yayYZ);H%qpAhs=jW6(&`bh0 z2qt}soHo7Fq7I#G2Cqda6nbvbZ>Hd`{tbGo0ni(N?%zUh))4Qw55$^9k8>S0FI(cn z+z0pa3BVrN_T4^?tm2u|3Y>*i;#Km3W5^>l@jA7OV@H{PAn#AVkT=_=nEWr~?XK}# z&dE$m5_tfZp z^ymBU8swro#eIdcZJva|QTAMFQRu|VaH_Dq17U1fKyJGL$SR$P(0F>!K?>?d3an^1 z7?%%q>Noo0J=DU2q0}}Wl0i?xZiu!MDd+|nL#!uS=+q!AXCs1xbLOKTD3e{c2>L4n zPXQSC(4Z_?d|FM{ZyC7!!L!vP{i+S(Y@)v+aPyTn*+gZFZ`mlNYnkkW>vr{fcgm06 zL0;I`gbb{~IS#Tz*~W7g zLwz5m5z7GlyG8UT|IP#WHzCa_|HfT0{lUL00^mZiUpAIs}Ox!Y|o6o6yu zRNz78=|ZralMWdxGH*QW&X>cq(cgy*&PAt&yI4QDj4&ls@f2z|?)f^d8Ec$Wbkiw+ z#esz=Y%i`lT3H{ICuVK#pQtaa<@|Kv94th^-n~bbDcXh8un9Qg@wq{t#Nthx`$1fC z*PK5)$XGI7Hwo7#|f9_ou5JqrwlvfS;jJ4e-G%~h|yZG=COWIyqIMv=Y3CS9T z<|$0ZW`* zYgMR!V%|gFq}FkmQ{TflH~yG;!qy5WdKV`Z4d27#k{c8K!2Xx{W?L7cd=dI81)oP=8iJGj8%e&IT@ z#Bkvqu05thaI9yHc)1Iw7t`)z;V9<{O>Da0yTSLLT^<>Xlq7bz<1-sf1>D0*)WPa%v{5YHOV58a%fqcy@x z-2)$*Y@es*G|du}Gn5Do_H8$}5Yv5{JK$&GIP}T`!mD5F<6bGEKNW=%lGsjVQ)X_Z zF(IQ3e2-EK;_Yr$_nptlCvbgbdr6g?3E-~hi!C<3v++uc5$H2kUbcJ%+OE2mU`>{Zs^aD(h6BP}Me9~kNbLp@xed8D000Z&-yy=>S#=j_XF>jJy- zz9`cavQcR%&-$-|kkDTbJk$mFzPXM{J-6C!ylXla5+y)!t=<(upt) z?G8QGeYd9;hIeJKm-Vetl9g^*1fuisz9>b2--n{2p2&)~Ntg?Lw7w*~l2u*O3hi9) zPAUr!`9WZ@Z0*9suWu7L_R>Q)c)P-{hqK`MF>MM`0me%Mv>VY_;Gj&z52w>ohm#&1 ziN0(`$jb08>s%7G!!t37L%rYIcHd8vAal6gjCM+*`-^&G%c9Hv1bOU$Q>>Cm%O8 zbdN$_upIe;$IIux<8k0F{u?|F^8N;?SYjwH#4{T*XSuxDESb+`LDmE7uUpZyTS7Lz zHD9imqBZZnq734mCWCgqO$xpSTbe2T zKlv7i@a!oc2Wc}mUr-pI#E-%i>az}y*Me;f6p`}55r{MQ@X894YtirOBNY;IB&;+Z zcw@%#e5)w~NE#oeTE80ex=}3>IMQI=ZK%Ce4}yOod7BV3DP)%z6MhF+JBvY8$cjLC z0UzUeQk5FI@^MRV^=f42Z=?w*4Cc|~0~2#%Q{1Svl2`rs>lPyKu)6A2JrJTtV5UVe%#uUzZwpIsgo!`i=5LDL_*GetIwJ9qhMUmmN1l2bBAE152})LtR1&pG88Xz zQp|m3fE)9zWm|lkBxYY->YWTG7f?RP+sm4!*n0L_FNY7Cd;al`_+OEQyJ$FwElpxd`#C6QcO!P@HgnnQDQPBi1Wrl~KIg2Gh z?B_t1Q1`e-NK1xSok7^Yd zb{Teh(U>WV3J93p3uO4!hMqKY#;yoNl||P^1?9bT9l+*R_Qd6-`!~!IHA)5O2dApN zk4sjajcK35iUE|4BJq!#`yf!D3tHMxgsI-cQT6UII@>X`4ywKVvKuAu^Z{)$+tT4| zOGLi%q=uFHn$$D;W?c(x(DE3yjb7m$5~(oLQXMlIQ=A9MSF&ULkM%?{5#7iHWJ8Ae zZa%Kf=c~@?D7qr0ARD0=jvV8t2u=!zuLy|82PtT6*jXO*8yPe=*6A%ICP)nii$Pl5 zGeAqsdWGx11;>7LW^GNBxA3?kJQJZ{m`ar6VmLFv5T)$^vBTWgLVFuh11F&aesFA2 zUE~NB<%gs8 zY9B{aj}W|VciX;qNtIU1*lsJFf*l*B9A*jSwvjF0x7w?X9SN;ORmP+WYl{+ZyD*)k z)Z>z>J0x$g;%bf+A|=D*MC}TYFP2eIO(Gwns)-rR>8cPxYav%A zqZkzNcV7ON#T#0Y<7E*ffqxN^VG~*}tAH_RmwV+(8Po>W|JL^?mgNJrouGirUYv-G z5_4Mq=2~l45q_}ae#F;1FK|YRZ15tv9!#E96u!+WEFPfhGH{KHLzCRLfCc@g_1m?6 zm!=l0Phc>M8!87JYbyNywua-Ye0m{x<39a}l9Tw&bI+nHFQpTKuvZWg9?dBsfZ7s> z7NFpK(yadVIN#-L11y20kZY^&$TnjzLS$~aV<2MIN!zWIlMN1|?&5B_KN8lKg5jA| zY38cTo4L`Pe%)klv2MWAH_u_SSItewZ|}AQEoNd+M4tABv2L%T24djen2`R|2g{t7 z+ZOUI$Kd~gp7)Wxa2xUEl!u|OvW+};jc=jbJ;KncyML{Cvg-cEW{rW+iW6^+4#1uvB5`uyl&B^$n}H{kTI-BJH2sL>Y2G?8KuU_nNuLN|T)(3;o3+(&c?v z;?NaRHr5$r>Zx7c(Nc=!5ayG-;b$?ZA}M2u15Aa#@+_Xgb?Ri6;W$a3j9{z3nM#~QgGUw_qxf{3VRPOd*B)+(CQ_HbC zoMUCW+jaTNGeF{YLrnd`*!|~p(vsOx_vYNou30*|qOhn;A6y!dI?_k0lY5*ks9bp$_ zRUc6QM%Lb&2>Hutv%hG#{JH;w?)}F1H?Lr)9p^iHy3Z_pNau0cs9(# zVgL$zCFC-_zloFGnKg9xkZ`@OqfzNHx8n!TGv7oM7AK_p90mn`{3^&|z$G6!XigdX zAYL;3%*j*O;}V6Tp`rAXZ!;*OY2IpLVajZNl2@$(;e+9jK_&!i1Ymmz^og=MYz%83YMX{WkLGo@cS8)vpi zP8dqt0R$p!%uOeB<1?)@vu21iwPSZy39%4&=)-0j#%E-HSnJQQHTwtWMFq+2((k~9AUayK<9ZwsAbxoAuT8Lzjen5x z3;&}5?)9HZ`5TUa1RE`BQP*R^uoDzn^Sl9g+ueTTGAHU*wPE6GvKJi}AzfTXNqsMZ zRwo$wH?qkbXmC?>wR!_k?(u@y#=Ib>2+2TW8uPZf;dzWjv;4GERB}k23JEtEt!yF> z$x++@FGnq!Lg=?;z5g`#lYd)Keoo= zPu=f={&O#43znF9HL@LbaDTYpC0~BI-wQaG>VHSYkB$CsR9taO^}%1MxZXev@XO(v zydjir^O1suTeK)yh+bFCSaJ0A()Ex;{2VY)>S&7Q*6+P!Bm~X6BNtjS9Z41yd`Hej zdP$l6YHEksYVVhhNnZhBvB0(ax9J6mUjg5-8+^|1N#Ip+!gW^>yJo^m`3#Us)JpmY zSy$$5@G8b^p~{=-NVL>jq)iiZmIP6U1cdLe_x~<@uhVZnIjoH>`b1sI4cXA1+t!H> zU>`1I@1g&nSh&V-SorJz!oumO{u2x5|IaKO@{@(%-EJ>4FLNYmU90G|i8YzkG^A%O zhCO`#1W>;tz1c^LhL+M|){0a$9N^6Djyo7<;mme{GVOV%3gezN>%$nNlj)01wE3o^ z?Z?g>@x0AXLgJ&x;INV>z8=qSnrX|8=Vk{f+1|lZCwDMr|FBuIoTo8m|9K{C?W^FASW?tg2}u=)E^Pe%#UN#t?CMO&qNoa3*9> zLt%k=;87fT47n)X{T310SxI-hRwl>%ueYG<$-t2aQ%nkp-5p?;;_gT{F^_m>c%RVK zvFy!9U_Yu+HQ$P*z`EdR!ue|_4s{5tNO0`8)p^`fsYH zLMu}$=!DH7g9hRHI_G)Uz5?dXaLNJZgP1BX%M(s$w^f%B5@f!%)_PSo4LVEM$9X@7 zx-F1&>;Y9CQmPXWm6keO52)`c?|hsQbbge1=T#mvJJlsR+~^{0^vtGWa>olQ&6zcR z=$WwDeb_34G{f;R*u&@ZSF6WNnobU%~)aNa_3^8h8|(=JBD83odw{OMz*Jz<|UI)Jg&qo|{Qh z4M7=~6|c)d8Ayd9Xkq5(IYW9@hdT7!%0o@dXRY5lwyrYH9&niE#r+L?2mJ$k52lYz z{R4XgQ;&%9A`!C|(2f&paKPT;9qSCdhI~HP2gdTPwDZvz;s7|p_2xEk3C}gZ-NTl8 zN8-K}vtAl}IKZ#qU(x&WCNFU6Brm~0Qx~tt&@0E~ku_`g?K7NWpQdKfpCz%@YJAZ< zDPTgbiU_0zbI-ph;IidhZ?T9?0fq(IjeK*oB;s8voX=T)GrSl>(Fj5bUDY&_Y%lt} zSFD4T6Id)VALoJOS=hR0TmZ`m*EqB>GF=(cBM?A65^W=T;Za`y2 zBd|`I*jJeJo#dUAuTRkkfz!k~q*be7|=8 zSgjR;&r++3m8!1(8mAEf=2cW0Fo@ItwG_rt19X(p)#s#MeD}Y3iyFQrPE7i6E=!{2 zQ~9FS6TQ$Gt0GkaTodUR^V?~jY^(1OS18`|5h)b?lD&(jH5yoT-$fv2i(jP+dwsBP zT@{>yu`4I%7VR!V?s+kz6y`d;c~+tR?L!w2UO zMmvq5Dsz#O>=VU)cgMkCs@NQ?Rie!# zwnBgH351!t*D!e$#x@+7-kwtdwCu^bm&8dUhP*gMj$A=RBWp~$l0cn1B{2B z9BD({J}(ZJaV8&HWgdq-A8jKu>ovI4T{+bcyK&A4@{rsN`x>F1;_7Ib*)B_&(8H$5k=B+!H!fk1Se zaaVi|jw@#S(vi>hdxa|8AA)N>555nER4jNaRMNFJMOv{6C9e5cQ0n3$-mLO!7;J}! zk1yg`wJ8{Z3N{Zqe$uFkRHfPikwug6*Q6Ab5vT^deo7%un^UlTX8ROuFN&&cKuoqE zCf6=nV2rMJ7vl@v>k>{@a=Cq7?y>I>n(*tytnw($bMFn~Pr&Eutn}H1Az*E!6+e$F z1W_d`a%5BU`7#r6)A#y257EpE$z?k3!OV?j^^V)GjH8i#iRuW=2Dxa1&FocA*^?$G zQJdV5-AI(D41oqWBsMKWHFn#8514AXrqJ8y8i~A~?^t;LV{#cl%~f-D&Rd11>QAv2 z=C2MtSWKZ}CQ>t5GU7=$;iy;?ev1^I_?+{H{2i+FvS$qk@Q0gsKG(7ZcLyrEWRs4= zgcx4EoXn&IW8I~HE;rZ1KDs`OVLFq@9WER+Jodp0k|yyc5?uWa#^1qIB){sPg1B;h z4taL?I;9`^%fS7j&m?S+6Z1q`0(DW_J0|1&QnYcxX@>^Pyd%I{k>LpGieUo?DS1tP{^GGRe zIVlGck>U9Pr_*9Vo+mE{n%=%$WlF!0E%5cz*!dz0$Y5QxWJ}pMt0563yEpwXh)=2k zgu7%jXJ_zFjE(_H@Z1d^Qq~DN_k4*(7lM=<%^^rl&iaBRIX0elg%HxMEu-4NQxa+8srnGfW^?u z9_)!wQ!T6q1M+u4`49P9^t=2`*bB(t=K%S8u=I!g?eEkG!hxAnNu=xgEFmsym$QUX zC7pnu-v=4h5^;YZesyJno;U8W$exF;R`Pv6OGl$1l1k0Dve?LQUSc%L$Hmp13okNy zLWR6`tBw&~i#O+VIWwM3WM;h{^>BAi1N@wgmQPzET+8AGH_$!2 zW&3fQl`rD>XB=M9(S)x@gfq}E!pwvAi`f91;-%pxfUy%SKz-bFrrx*uHY1nXjSU_y z3i{4cx6Ipb<138YF;!VUn1{oQU zgZH1Fj_-U9;pQ8$;jrL#=cI%L$m5W3`vnG(aGf_;=7Z)F4G5$+j7@Z3d!@kf{5aZ#^5wxXXR!h zJ^Whg?=>zO6%|BjtCX4ck}x}A5tOCgn)od_1oXM^8PrWjV=fhF!gCP3&nK545*O@o zQ^@SuTsn&Q1DcZ$e*Pw*#)=;FJo89Ln)BwAXI)Ab73K-co}$%O*S~U+m0-@DOHW zkD@&D%_XnQF5Vw7I~OUOrhCNime{(oHflB2-UZE}@dtW|p30N#0a=yb_9DEqR|n^k zWzrJ_2cO^DS?kEgt@ndiW3o3O%~S$B*^!c6pt%~W*2f3EEZj~y@yY*ceqTQueaTFc zstEMF*4=E%O%oosRN7d<=*sV`biZ8Nj3&G&YA9q;RnP@tW{4L8(HbaJta`fVmlBGv z0?Kex5U4cr4$d1m=+*v=T(AjH$O=C3<`Fb~?l8ax@jHCs_J?pd{X_pA8Xe6MFU;wp z3vRboo2K#o6g$(98o9m$B8!IBCb5U}DKiKk+7@iA^Ebv+4H7NORT9iNe&b=L0HMP2}pRB9$7l8eAkvmdyY#=&1 zy5FECGv{f9g|epxqyB*XON(*3F|C0m3tl5Q!;jL4kn1ezYM$DX%Nr{}pPV3i2jk6- zP49(JnTxZ=*)NLuYFFx`(t8~6B69~jUJB0C>K~_OiH5Yzj+2GBGTXd*sZHzMyl2nI zPGpZ;?ZJRz4a_~Qrg$|}+$j-j0nHh7KvwAtO0~Tvc02_g3p1}Ei-V-Lk~tvs4}o1K z@<4Ci(oBkAnraT0x7`jaZPWCR(g*A^4ePA=3$4|B|xLkDm!vn|u!vlX~dg_5gHL5>skLq;XeUjxD1&i|1ml$ef z8_{Kf0#^2Y!XJ2(V==%OM@(qw2tvAHAL<%+|3;F@7xG2fs2!U{QOBou-4Ns;xBxl_ z4ak*y(Cyb`W(%!O!On@CzHwvY`)p#_)@75aPb%)ayc&W{_gi!+fM1?lPoNt8mcne& zyI!>bDCc;LzdUR~Kx}?WXumeF-b}P1>2Yza%oGpb*zXMcI>FXupJy&k^tJB74<5e1 zU(reqT1)(;oi9lSsqd3{IiAj@akuJs&Cg05>tb_f2?Y;8s{w=-wn<78{8yU4Ui@;a zb}fF{7kqM19vzy8{*xr0RzkF{qEHTjXV@>{Z(V*Jdcm9qr{JB4zN6gQXp|oNXH`e5 z#RifdCR`osAYj#=fb&fRe$o__K({h`8|^~+^C1go#(7uxHyM)ky5EuQ|IZx>}>vvC4_{x!CmnDK$$D*(b zPAz^u7)UtW<}y8t@!Pnm=MN3;i+d+hoqk9pKKk&53}p)5QqV~9jo5uU@p3=soBYPj zw51{FL4j)Z?W?wLOvl`|n>u{E(GKs2c!s5b{~gC1JBW4b+%W1>v0=ywgc)AEWNuCs zs4GvsXZr0;&x8zH*PI3>jcP<}D$BdpL@R5is+4tXuD0ZvrtXnj#a zCJ*lR5-(M2-H|O3nI2p`K$gMNpJ{4fcVKT4*KmGaG8$7e*E0iqWO%a+U-$08&z&x_E5CJUo(rbe0@qh(( zPr*x5uqFGkvS5hMC{@Rb0j3uUZ3q&0<_os#c%t-c=L9E;w2HJXH_Fs0+Ld_;7JcReK zuC$fHX);fm4#_;F7?@Jcl}++{6v^aurxx1XG>bYM3SSs|LtZmVag!^i?;Um{NjwHg-#h@DL475Ov z$H<`epoEB9MhT&qrATA%MYVlpU-JVed=2ctV5<$fuZfw|3 zd_C4D^;>?ua}P(MKm*~lt_7SY21;Xs(~us?CXldQ(;qU!TkO%hcmducmenG8Lt;;? zjEbRufBjH3vzVg!I`%-pM8oLw@h4#fNdO!kP8&0LdQ~-q7L`CDYpT5n{yHWIIlQAI zpOMP5Y4PQ?p}`@N`6V?~hDSu3l0E&;w8^OiY%i&k2jUnTs!n;PpCcQ4AnUIj>PSKn zmB-7v>2Az3y_Nc8m;l)XE}CFi2?ig<5b*tzUvoRI-5%a{(mKk#;IMnWWtzFVer zCxFGx?yw^_LitC@gyUW*LE8(HBc!^U3*A0rE%Wr{*c(d8A58shnX5>H>V*}0KTZkM z@Uyr_Gw}r%$g%O=1|rN;_MK3wJ({i?<{y01Qr5wM#x3yRhsHft1+CfhpaV2+y6Y?b zKQwMP;lE`}XpetoOu)83GA8#P3-|x~jLEt6M8eH2KDzbD=SrF8ve@ZE6&m^terN8~ zTJtCF6NAL!aK{47mv6XW>bQmdi~x#gmp*Is8>UuMk4&vHu*tRPTnC1{z{yz-bAKfR zOax1ynf&KSwfG%j9m`J%j2?bLLHT)`?p)Th_Xn3G|5fD1h6WjUU_=P<_N5QmM}|&C zZr@Tc4bi zstS-+rjYq(+`I>3x$>?LGNp_wr{mpnO3H_NqIQmYUs1!>kGcodyA~p5^vpZy%v&N? zJjJq4j_FL+NP~_E%V`_8KY`L59&GFPG!-o&>wajVIo(&(fWS@LtD|Ta_7YHQ&frzD zu5D+FoGZPWf}RZGw~d=bI3dU=B}nN){oq5}!<6H&ob3s4~`SD<^W!Xv| zH8N(-gE78^yNGz&d86VhtYRi9k9cRvLWnGSz`j}0@#@0FvdqeH!j@tq^lqI5sTNX_ zRMd4UjUU{Gi5*piO-67&YMsMqS9gob$qE@eac=ZPX0GcD9c<;rK8#pnvfF!bIzYAt zZq0g+N+k2%bvYaW@V=lB7F0v3xV76DFtXzQ08P}jV33iwBD0mgt?ee-a@8XatS-2U zZ@}5m?|a1&%jgVjs)%j{FuSA$-yqdkva@YYxMWtpmWGYS+GT5s4L$2O2i8*JHbXKO zHiMpmK-Uy0T50iXeLl*44g(|KS7*;Y!dP^#v4|XqF$>BF?5_hglY2Ew9o0GRN({%6 zir>NrGyl-ESKg$C1O1W>x5VeQZg>aw&K_f&a0j2Imue~C2+v1`fJ(JySCcay76 zMxxR6GznDoy}kjRMS>3qAQ{y1Bh>>t8dHaE!%{32m0+RFX1dRc>S?6%G0M&s`^tGM zzJp@qp-m~aLrjDtBL2AwtdU>IV^HF&jJ52#quNZAf&3&=kzxF!2mTB_&PPy-M{()e z-(XQ+7F}(Zf>C-hIm`7AXgRvCsF(T9U;A*0-MBVF9-60V(9_gk=uTs`udk+`Jt!p5 z$;~3Y@w`X5OY!;!%g+VM7hA*Y__`~Eurq0QtpjjXIc@k@e7M4C@h4#(?6}t#eTt~6 zxo!75X*U8`Nh#iCky0QS-dYT)Fo|z^SDG@=$hEeDH8FaVrF?3h*XWU#b){+V-O{^p z;s9(ol0)4zcs;PPl%gaUdD>}{6y|44%2$^Z=IjKjub);-NMXM!CY2sALU*}aLHJ?Q z+f_7td~*H)Y^tvQ?CGNJ=ec3#TgVkV}4iJ3qI7SaHI?JoPBU+-@#)pD!p zOY*KV67XSC!FIt5X}8_=Wo2g1$F64_NcFuLHg=fOsIl!8aLZ1PiZS8UUZptgGYfJgU#NN@;Hm)BP7C7XA*%;AoDLM8(6V+`IJkU zA}cE|Ns&5i=o#BJWNBV<|P~5qHdU@ zUVox7mUss4#^OGB40E*LyEY0c3w(7h{;U5T6RvubPOF%>)S~c%xi_|sJWs5~Kay(C zQ~$annMQqPjxwXiV0k|C%Mz+Q$Bhodm)8)&N+ymA#69Nz3=3q^Qp*%1FpajQn#y5a zYMXnMX@6Ag?!lq9-EyYDdH%Y)`D!7?587_NiB1XM;z#u<`x!~-L7#_Vb!JSx>+Ic_ zS6!IdL~bc8fBRJA$S`ba}-2oDT*R}x{janG2s4c znaD9gMcxbD_#4iynpjMGIaE<=^dn)ifj)Le*>2%2SgPn0qy+nxk&c%+7~tv?(v8r; zjW_Qj@pKX$NkZN_h=#@NDCc-Y7`kp89P`!M2@Sp1J=6u$s3cNJZNc9e)tT(1P1z1A zjgs-bvUn8e9;fb@G=yvEt_ZGiE=Ya@`N)w*l)kvn85dn!LwI-1fRt8x05Uw7ftZn} z)GR_)vGVgf`M6=* z6H|bYtiD7Yfaoc$s9iN8F#k;Ib5~*L{S_PCTVLm=TJ@j4*-5=&y?=U3D54{%vhMyq zRD&$F${z|bG;>{iIkZsul2V?oc-k5(X`{TJJ!5Daw2CmvmyA2ZAUpHf3gyDP%iSp- z?Vqau{vf4iNgL9>`HAT--`79pbg52zlw5sZgm3PB1d1iQo~OkUE@z-vGVDx+y8Ecg z-%1YGE$m}Up^@$}y{nUSye0>|v@(NEu0|{_1(mYQrx#2qaB|cYXnLGzoS(wbsy@+_ zEh9z_E@?!UH)YSGt<}cCs>`?JA6|8M{=@J##|5MQ3t|2Gn6=AQJmjCiio9{C7r?Y- z>p5olWhmd>O_d1o=;1>O#}?MOrbo0|+f6O`vK+-rm2)#*1^u|qLj5~Z96HSu*_9us z4=%;N7wX#oQj&b?WXE`;3cb=zyfF6%TkF0`(Y6ks{aG!6I&OVBt(Jra#Di^HLHRWP zftBC15asUz?a_yo@|As_4Z9|zwM|F;NUAXeK(z;WvE+;{>7TL)f)xcTmO?CO0@Z-m zx6m*=S*>=t*xgw3jFbV{BoK4EWBRykTPVGs$J<;bE^_ zD#)i9;B*%LlKoBX<=hJKYfDb5HDwEHMr%w&_zNI*q@hYb&&XYOHfiq9?u!3~TNkD) zWH@MV)LK+NhnKfhJGPYn3W~Xjx$j3DUW-B^k^7`=vF5mF1(z2uM^lxw!`=MLuAatA zi+afIEy9@sXObid4{45>h_3eHEus&r=-T9fi z%1L@$a(5+%n}3SemW}PIsvBn1Q=ymKTf7a)IiN-Wt=3mLrPbfBTVWou+?n1e@z(!< zt7F>-fKf=@DDVKITA2qkH!r8(=x&>*+IH%c?dS5i>2X=Aah?9=iMwJDMC-Y+Gx@X# zr@&_~OG6(zP26E3$R#QYcK&D=?JA>Xp>eC?^h$BOklb8;M&iyQAALy~G*DYJHSw4; z>rpB$cThsIJ>*ol?iwYnr!wzRS0)d12wP|vb!;jAb-~&cei+xcsZNb+k;HOCN}xy0 zobp=Vt(Dxv{cgYZfM%{aEpjcVcx8z+zU0<0yHBl#=6MLh#gcP=kM&PEza^gZx3o7L9PhjoKLkc2c>^S= z+YNSB@8ZLpmh9o|z?qc0xE|E6wxp2?{4Bh;d4-a|) zKh8n7LH$h24fsiiGal4`VCIbAI~&jgo$>#NqL;$jB8q-t=EzgoAd?)`EICG6{DwVY2)g#;~_C$ zQ&Uq&MG~Tww#nobog+xYY6`O+g%Llr4$lK_Axy>GmVVDn|0YVqrHA^FCzi`kSRhvf zm3Mv!Pt2!?E;gy=rhTJw6{D$`D-HTZ zGuko^tzq?}l^sy@vz1-0t|)t2(#@bbGaX)r%{Igxr}(u$a+?Z;97r}W!9(t zh&0Mdt{)!}oVI|mfLRUslB%{E(rsXUS`%(Hb^2JXfcgNVedj5rs$N52Wud(YgcTf*hPC+HW6XGxi-j&8JT;>-KH9+ZZE1brFdfFML7L>*3Ny2 zoNue`eYAMDieHa^+S*>!b%54hWnapwJyZ7MrlpKT-_MfpQ)i$alCaf-hZFl02xOaQ zJ68S-WIt~HB}rea3tT@;B8%3kI=JLZakeE|k&omE3@h>MKXyqvrrgv$ydL)PU6B;D z1}v`4VG)qZy9q%E4K!v&UU57Vb*)BAWKloRMnRwONbKAB(<2;YrHw_cnkElFAs zocKQEu1=**mfs$FyDN+hzUdp@6Yn&1!|uUnMIgYo^fO&vP;Ksp#YhEz%;@=qKf5JU zWodTD;4)CboWf4urz)ktyA(eM7F?#%^DmxG-Rl6oxyY|Lkiwt9M8q@Y_LrJ~O)A_TbiHhHW z=6C-EG`IXG(7c=apFp!QmUCY=IQQ7rJ>p8dOYyczURqglD>2dbQhYwkvN6 zFhtxZc-5Rj+UrcPu>$20xr|5z;mkvF=#u8R>1Ezeu;~7D2R)WQ`lF zx$15ICJ=mX%s-CLT~1hd5h%Gi~PQ- zispxZh0S;Kf5GM#p0<>|J=7n6xzevPIljBns8NU^=C*!xiPY{aqo?A)dc7=gaN<+d zW~s7WC*uHy?hac&9Lgj%xUt6vbTeA!E$8BBFFq$4r_Y+knN^1qq`Y+1pS=D9=I zF}raczOA-Ls!l?;uL8qD;yi_sH>GJ!yWy=NxS_I@r-2aOUxARm?|~5IpuxG*Mz$s_ z{kt5USNuCUnuX6ggF=>%vZ(?v&fzRk&wmvcAMjvE*$5Bo&*&^6?;s>qq3JM;7AlI~0%s7JZ38 zn&7Y7N6&WAFb0&xy^NXa5#n+5ug`w(cRzX$@S|n@06#k69n|#dWFSqqZS*B7&2oXp_5x*2u4}lu@a4 zS&r4Dxg}meBJFw@)rOl6mLS_fkOy}2R?~X1U}h4W6`_I7DMc$UNJB{#Br5l#{=T}b zhxYl*ABrr{g2ZY>F<%*KI_65hOCnA^w`Ha>#f~gf8hW>G>`L7#$#BfHX51ScoJ~YU zIW<2(s6lgM|H~&sQV5DqdqyRn!V)lB+BoBKL#HODJkf_S1ZM}=2PL%v@3y=xSOY!vTp)vT9|p3b)DaVVR9g@ymO9O>S6GMN1wkl5z2yMj;V;RvD~yhD7w=22xz(G( zGiC!8(-Z|gc%bR&)GWZ0w-8^x-4JPHuARXtAf`wE;K`jz zjxWCR*=GUj|dd$HiqABS+=4TV_7VxV!{14=_@5;CJ@kJk$sak@ZX{+cFh=pDVurVZpNtR`{*QJvN*b`E2?qf? zn&RY$8k`vPy@~zIn4IvZR<|>t`UgoS9hu*F>xw#B*sDrMt#x0#u`ehorG97FrK2jS zN5zcB0r#1fZJ?N6^Pd-9Be|dtY)fHI;SICD&&%Q?2q5L%A4qwom}=n%QeI>urKrg2 zp+flh{Xoj++I}Hr74ks#Q=|+=UbX>{@`IW?$LM+{IF}GM=Q-{ssfbJWOte^2=R?Ke z$0-aP@$Im254a*qFeHri>f0gJ`6V!TMpOo>pVPE zG(T5jN~~anyjG8Mj2#g4+@8E4xL?2+fp@b@`nwPv_(O=6`~j4gl#V&nP9E^C8VB($ z@eTNcg}Qemebm577ep)d)i^UD8qAjI=qT%%Zx2TRft~B2C-69FbM^YI(!1wSjwENJ z#W-^_toiFL`|UKB@c#Nt)p29y@^q1)xL|=bo%W)6Zygo&qPK5jfq;U7g0wUuf`mhZG>DY6lt{P4Fw}sG2#ADqBRQ0G#~|I^ zAdGZ(5A}Wr%yafR&-1MHTd)7^z1P}%1H;7UzVGYm4^-UdCeHkk?0h|Z2G3!_ke>aX z)Xb|{z4;i%YZ-{Y#Bm{K`Et9J&0Ap^bW8KpH6BHLY&jK5$&Am6IKPe9DSKtI~#M@u`~?x{Gx-SbWOj|FMMQWkLkG0}RfXOHKK+q>scmaiQW zBWVa3c{G?hV-Y--FMD7Wz=sH+3Ej0?>MI!y8H?wD(+w1Sp2KQ6_VvM) zkxy$v5eLI(jJET*#Mgu{9tq>zV=0tUtPb9 zb`fvhSV<*A6?R9mpWav$|7~Qtp{T}7+tUnVvpAp-fW$gjg*%BI-D^N@fBYh#?~^t1 z{+c71wpZhHT|14p1nRVW5`TVLUPPUi{i00gFh^cV>}1y1wBRj0OyFT!dn^FUcxt>E z%U-IfOep5k3}nHhYFaxkY zHjq}lzmCf#7Ag!}P-fXm?%@CrEv^N36c4+|IL@BeFL@<78(?!zW83&lq0Y%ZyMZ)| zqs3O0E|T_`KX};hgMdD&bg~fkDdGDzWAf=E)=;q#LA?sIXJMXf!Gb~14{Btyo}qi{ zKgO`HXAGxW!&prF*kfe-A1ht&3G$WbC+3_Dtnt( zl)#2fmOjX%uq`l8EYXjvv{eq2rYQOBv7y!tlVjS`j-30ppBA?{@(;eynQNu;0q@Vc zr105U#13rJ+Ou^%qw`G6x8EpReLRY+W6Q`glO?}u27Q&OXQ5M<0M5)!#}17va2~9e z7_R9d!*DZf)vV0yk_zKt4vKNIbgkNeM#K{H5J?)sN7UXDP|39%$!ZOg9=kU@fg30# znIXONc+b)d9DPZ3@KIXZeRB(O|NGprR07Q%}*mKoZCBC@TV6yz@`Q%@& z&HGuL+$HQaMgSvQ#Vina?l&Xbp+}U1>yvw(XH~QNWw0=k=al)nK7;7D1;q-V5=`^f z23n=E%N{a(D<6}Vk7#5Uv=oO5G_{(9;F;KrB8qBD0B0qchdch^`+Odggq6pB4ZXd( zS@TB(OFriA+he55<$YodP@vx3sDa(A^(e=jh&F0S)=34|Im@Lja#7**f5pgfSGU97@_@;7nz9A@7cc zdvZfcJ>T^kUU>@u*@o&9KpdUS1l^u_cHTD(G*ac90mR1>6yn39O};D(>Zn3_Rw3zqu;KZ(Vz{v}%nueyK9QYBl&Kn!uYl zO`M;XXSmb9U7jU-QJ3ez6HV0R*+?U9k#dWMeqH1j;sY!IkRi_gv{pZhRYU)t7&OKS z0&tKeyjZXO#hn6^q2^FdvYf^+mx&C*U#Jc8t{QBugDlpy{Nx*XqZ&H(Mz`HSF2UG@ zlDI5~cHhb#lr@`Jpp6H)lRR%q@+Ed9WQ$*N`Qy4(T?42aKbNPx7j*Ta*kqpvlo|3| z53faD*iV(8ueL(SzOv!Fk+tcOz1zvNgaj^Du0}iY^^8!T$K|N3n{Xz3eruEJ^vltJ zjprvQ$)2buh+CdvJ?g#Q%S$hAARw~4!m!ihQEa=h*sh=V2Q^s~6`OVgst3En0Z_5= zF6mtVU$8wq+5&bjY85AX|N1ciC+o(4$6liel<58YA^U63>wg4xpuPeB`sa1&KcBZz z3~SWOC61dH1@OTuH~$mg6||weYoN=#=xCYP>qajBsCcBfxsUf z1MlJ1$8#e2*{|9;-|{%nHwJsARz$YLWg7JP4;uF9;D5SYm)!YD!`9;^zc|C>jBxFT zVm8R?rlBAoN)d@dUG^OV5?_9}9`{qH2|{ZjZ5keA*8CyO8djDlQUs9d> z;QAS@{X4ZDr<7nI9d$qXzQLTRK1yrlMwAE&TnQIo*`P>aDb9nh{Os38+EXc+UHN0@pX)H8c z9_rk64M1rxi0MlY0)!CnmIetAa@>Ok+NyIMq>CL;KAU+hfoo?>6(83|lR0t^3+?M+ zexX$5iMIpr6#_0uSu_VL-~czXe<*oPd;0r`VoA9jXN8wOVM5R@CC{<93zZ3kaGcil zRj+bTUQjoKtnG!!rnTprKhERf71u6Ix6(&?xzgwB+J5W#c^{{BruZNIk*qikB6n#h zk-ML{e@P@omFE(LKYF&wnAFP^Nm)?2b|8EdKbZXhi0sdwoy2z@0w;0PR08I9f%$rRjcPO`2Y=}zub_01IA^-Z;y-kea1wnKNZa`gq}?rPC%a~Z zZhqFh<|?_Vy6HSAnCwj#F*mu_A1t$i=CbgilP!C2@~OQIL#3KH@SbH-Az3i0$hWP4 zG&K`(BYaf07yDl>P z%YSKJ?_vI@gSfBv7uk^!zG_ERMO7@;nok^dqrZBguE_Q7u1+BWkJeo1Q4oBtQ8}Uw<={XY%>`FS3TnY75Wh5lapJ zs4#@stV)j)d%k)iK4^FLZ4ZVP>=D#i;{cD(Im0b%sq^Z6-~}J}9A?6`*{@%wv_j7{ zw4d5FRZPXxp0}2-`|0SM$eokz>4^ab_{2p+39z~yJbos_NrePiSSP(H$T_5^|irzpfJb7oM7+L zi;KFh$B<48kTlL(Ad;Ii)1658$_@kNd5FsVpc9J}EsHW(GIkgT>zbt8uUs%$$@c0@ zU@UYB(b~hxgh`y-Q85SCl=sz$Q`gpd2<7T}p(nE3k!q#fDzc9WjwtB06!EF2B@;fC zFej}E&mY-fc6Z#5;HTS-0C3+!2sV!ZHQ;_4_spgzgW?Qrf=#>8A9K~K4uNR)e`;>f zuz{=M+7oZCIhq-A=Cu^~5Thf_b@H({n>jBxpSnZY&Ry~&IjLW5xZ1!K&j8mLvDbOI zpLUMe7+PKyJy3Ee@af92i}AKNebXywYr?`o!rNTqQNYQ=Zz#KMyD7iw)~ZfS!n2=# zWVF5Hyl|%r%BRmMV7RkFxSj^?TS$`TturYX@yi#^@v7|C?JcI~+MF388QdF2vS*Qv z{zRNeA=avzR7SLC@0voDYNsd*b256Oj|E5w+Or{NP5;lXx)H?d?ok;IgofMFE^;HU zh?&wJ(i9wK2aVy2>dw%mR{}im`zW3_Ikmnwma0VlWq{{>Ov@XRN5KN{ylWD>?xB2^ zkIswWG1fp4d=&>Mg0Et&yc<3DSUAh``cDnEBJ3HNzITny8{ioBt?{Fy? zYla#lRL8_l*noX?WMoPHzZJp7n8KW5Jd8xZAgh;K%-1dZ^;LunV>%c@)d3-8j1?~u z@04d)l&sS|N{8_Dp`umVxY0zZn$4>MV0^f`$#JquAfq-;9*R@9G>pesqqnU(4;Ci= zj=(YL=?#Bp0syZaQ>DBlA`3zd^0{v6OOzayZA$}$cONX0td{V>IGkjy_!~uVmKd6> z7Q|B3r2mne8G9&s|Aa^I7w%tV@D?Bz*vHTi1jZsh76a!&K%#l?^@Tx9Q{Pg| zS%Zf+B;ppFTjVa^=H4fk6O}!ylfNypdh?5mBBhavGWZ-^|FWdHY+#7kvom42TA2D2 z5*_3pvI}xH?R0%gkd1K*u0veTNE}l%>a)WA?s{q7ai`G^LU4K+`jS<>W7*EE!}M@M%cC}Uy4XOkq3@Y?w-p?KE$BtM6(uI~`J=MSFit zK`n1At)NP|wRG>>2bOHvM8Vc;qT8!UnOFzMCf%%AjetB6g@i|S6hz&0qT5Es2{{Pt z*GTD+JxC@vxjtr<3@n`#GUXDfyHtZ-eiT?C8z^)OIw=%fa8vJLssKG?SuEif3cS5G zi_@=tup&xksIA4Ev6ZOxqY|%Rx1RLXm}}~dx2U9xElT~T794Au1-qtW)veg7_R5$8 zp8(L*SQb_V1e92=Bej>T;a-?^XU<@c|I^VXl3ehsSc>nh@Jlk8A4$Q&a>7I3bmrf# z9q~+*#`x1uO#et0%!{u1tvLhiaP7)7!zSS~nxfD2PE9OnrObLSy-@7%W5DiZncq5V z7_~JcJp^mrQdouSlOLUAYgLuuf!P+U4e`pa7Gj!OizBDg*IRbLx^jxHV+1IzX2JuG zb96XQxz0H`{IspGGQcJPQcS_;#mT9HskMgShcnO zK7t}x_6vz2VySifDmO+Qy+Z_TbM#O=@pkYDC9U^I#Q}7iv@Hd?_(qYWLnG7bv6TXw zo4?=+OtMV)rj1PCj*rz6-xNN%9|}=M2OY_)vF~UMzkmgq=i#%iU4Cj?2a|l7nh3Lx zq`SmBnwR|4br!?WCTIQJs+r#PNJeN!V#2dcUVB>s-x?dmiQfboz@4UckrX!;gc?|& zALG2qr{`ZO2X{^YY9Z3qU>t(l0Wtn>NAF+UKE^2?=K|@RW{nR=iA6PSAhlAxrwog3o3yaIZGh=;^&RKAGbiLY(ud5_vUowj`~A<=TJT{pv7*HFAM)>X8~18 zwT~S;EnHSLYm<4nsMPg4b-;86QU{rJo%7UzV`0!@T^&SdJ|c{d3LA>D*mFZ7z^84= zmBuR{?kk6ShZ7Qg<-v7Ih^t{Gi4vNZRsPe%Id$&g(c zXCi6z;nhrQE+-+vD3O=he%U$N;4sVQq~r6}FwOOko_0;ndzXmNeWv&L&soOy+TdURQMNF*N#6|Q{J-v8r7!NfmZ1pW1OsbAYL|rEq(0Cu_o33=JnVLG{j5lAKxqaO7K@aY zjZjFPm>+b1e#11Qe^3q1u~B^1gg1>+-t5omG1yO4wwn6^b&>rXf=HAApe{fYK21?? zhjRB{pf2y`!!EDIiB;7pzSJ4ZckihulO<2>=rd7y(y3O`4Y?KtS+h|GyA`Qip1+SV zxC3eE7i?P^&8DJg@hd(xd1YnBJ{8|LP@ez`;h!#6ID2(o>O`^0xwil|xm3?;sNFZJ z+v#ZqwbH2G`-@;1hYd#TMg7!Qj|t>4xN#2qekwe>d9h7Y^Bv=^0kwCpjX!JeyKDM^ z&j94}!DhjjGm1-IiGQ2T7hT4#Ck5cRj4=J?xQIEPI`vM}V#UvK@O;duZLZES(1_uo ztJwFPz9j-@UUrGYYy|Zmd-=Oh!!u-=m#I86nT=i7*$9y`3eSu7^!hhj#p6zFu3208 z0GUQm9bHw(6y+#iK+&Bz@n^7*ku&ZK58vt6t)MJ}siLT@X|tC>Sw8-oh>ope^{Z!1 z`41unBQiy!fU;con1>Kml%I6VkljA`VfzI6^b6Xa+dlU?>7qLSvVD@ai8HC6;a=7! zf{cJ5gFwAT-7C;FScbRGtX#xj>|)pBQ*%98MC^UU9luJ)btr9FqI#2`^iKqg>LrIE z7xlTsyrcJIxF)<>97pi5pX3)NVO_;bu5#24QiojSablkAJY|6~r7>hXnOI|K++{5% zv9j2F@UF3^SDw`9MvzU@eGm2(NwxEl=Z}c5BcKh8$wxFd*_~s{Wd{DhmX9U5RK@z( z5)&zT+|7SiQ!yU;&c+Fvg(J88FR+*Bk@cF<%hS%oHxAYu@FZH9?gKXs4~M6+uCk1i z;Nf{cs~GbHztW+mH!~E|R}lr2Ax5|JS)yJ{HC5Mxl<%mOQRLoke&Z?;{p~jT99{=m z>&87c^%Le8@}^A<6%c-l1SwoT&b1>PppLoBapn$sS4m5#9_)VMWLIEi(W-e=b^i^H z`!K+F<8&Mw`*fUk29$BsbkWI#ok7ssqP zUHYgFc4h_%JwOT1_%j|N^XkeR6X$L*gYU-mVlqcwo_!ju(l2&X2Q{iR7z%CYwH>L+ zGo#@USgG-V^n-m)+#Ax}W{0$I^oe(BobzLNn&7~G8CAw#fv(a#f2s)57x_kTb)&T8 z?X7UJ!`*S+`Sa&ET>g$pWZx5l98MB*%LP$mbx$A{7ieyl`B~()XQy-s_ANN& z3VfN7S0%hM+GeL2nn>L`!4OB4vU2NQZ$Hsk<~pTV&!$R+RTML46)4ArvDUA&tsfKH zamdw5y-MN-G96|F)p=yew$;B!^Hi{zk)#*ob6(dsg9eM7)%BOYx$gW`*SB4U1L7Nj zneXYmMUD*5(u{D5)P0Z3!6$?NnKCnyBSZ-?pzE27=IaZ!V8fHc-80dlO}cK~G!lNW zo9w-%b!?eFNH8_EJT@(KVazbu@oCF*L*5j*nfc@lvZx)^5gh9gOAP+}1wrHV-p)m@ zC28{&U+DqQAOt7Os`C>|^@hna{z+XP-6)xTP^^A@@6(tQ8j7Oycg4lICCl4a zw7e6%sTQ|mKm5*CvPj9&p`Xq}TcM_>ro)N}xSJPEdsyD5v z^=&Ne=~$CVP+Ni9(l`+eaZXS6W+c2<>1YlZm>KawW%$qNMFw*p6dm-JAU#X?qsguU z9|gWxFp|MAUl1#WJvA>$kY%~O6*V1i9*}LfB?Zqux!pdd+ffbDvUFATR)ZWaGMBk* zBtey$YU}q*)O#1A*tfR7FI5Te4WVWLX}G8vfZFRR3N_b21yGg+0bmj~D+3F((4wd{ z$NEhtR_6eAWbvlAhAJbNzq*)IctGq^S)SwEfzY-Djr(R^|AEf0bVg-a(D(uFdca*^aqy$18*ElaOYotGXFX7ox&&rqV$@~uv z!~!iI*h!vYP#&UDg0blWP%8S$4YZkaoK4OKfU}{vjekbH_$q;MW-=AtzvgyyLvY&Y zE=CPtGA-<)yn^;s5bbk(jvWFXb9eLUUCkM6ikUxIHst@vve82R#j?@9(1mm1VcdSK z)28jM!s;q57dr}|dJTM~UnNiuRe)yGY5M`^9@-1^eGIg(Y?mmm{FU3tlofC5TA-Nh z-+=xNz1(9WV^6g3nLQm7k~g&wH+_o!GsPw_iY)&}mnrV*|NmQqL5eRfM$PAX0O%*s5U|e z^E)HtPz_515wTz_}To0jmQXztD0@pmp#M zF4LEHv0s*;5)I>?MZ>P!5;jV*Q=5)o{Z#!8y4hdgK42mxpcC>0Qm>NlN%)*&0DETt zmX|9+Pp9_j=$vTHFV$(y%-^ch<7P6juzC0adfpV4&dVi;=Hg2tWdF}K0<#F2`;7an z=wHdr9SkOnJH@Z*?w~ZMg|_Z@SEOV7Yt&e%?X-Ze2#td17vd&t@PCE4x&HO*U#o*p zr2D@SH{?SbSa~!~=*#j!pZza&KY04K=($BV86Qua@%NMr`(Z#Ws(3dtDSP8gEb30j z+xHHzA>^Al|7|}7f}0=q(_^VkT2yd@a6x~mvl$q5YZ^&ruT_yq`s@b zzLBxUX@j3a)CjAGjZ`byDgG~!`QR)c<@+Sd7n$xk{o&eCY z-NT|h7?@ zzIbBrC|(8987Fj<=F~5Xa9I5p7l)b+#l`vh z2N%b^{A{j3`pqjNNil(kkNRggGvfR!oQeHkhBMXHe}yxFWTo`hTC85o|6Oxh&ivod z?)-iKO>;`uk$tW?{ZDB3tXDmS-8%*57mn0}lEBZ6PYIKmw8lci3IRBz`||YBM#es8 zTB{?X_Dy0{5oj7~klFk=;uiy6U}R>?UOvM5$SH=*7L~;mcz_V`K$XYVS(hHrpcc)5 zPoBmdAN79Ib3nmSp2JS;&4&-;K+{h`_|kL8r*e>9k4~zCFFUGT+KAk%??{HAJ{*C0wNA*{FGp(& zOfD`kt|qUv)PxAD{9=EA#(U1@@peevbAY3hrGCcIkuK|fAU=D*K(QF52+DP)<>lbv zANc~Iw(Qxyx3ZkXd0(q}ZmKb2&t%SYZ?WPN*$D>crS9ash=ULV)57wXucpdI6@bGQ z*TI(_Dg2SK{m=HoMRltu%c~7`jq~`~dfD;3rb-9c2No1yF>7{{p|YG>x~hTz-SP6D z(}r>#PXWL9O0KhML*MEvq|k`^>Wea8!Yv=UPgLl!sjju z6yki;aCk>te52P|F4`XX60d$&9{h+*0#52Yg%r?mYbewk1#X(Y)H?WOu9Jr>c_Bq{ zjvmAmh1Zyt)HHh8UclKEJlkyBaq%ER_gN+NK z_5eBlDp9<=k}+?j!mGN4*oVUxLZGe@D@^aOJ@gf-p48-8w}^L5a;=msE!RUJUiKRH zs>bx+w4cE{-_G7IUBF|sn1b$PA?vd~TYrlpHJ?9|rb@s7X{!EQYw45}uf%`G?ZnIi zxSeQ@tH)2Mi5NAWop4nJdrBV3jJKw;kf>5{f$BQ5$ujvKZog4%q$`7)7?nv^hO+84 znsDd8dP>Sa73OQy2tURdRHf*;_?A%{9?Khyt11>Wlp-C3VVd`9wo)O}2r#EAUrW4Q z7x$>Kde9+2a3gseGk?Jn^ENjd^8PlGT88Z#4mQM~5Hu6j`bJtOvE#kwt6Xdiw@_I; z)tR*&oehZ-SRv6M)kBPrgt|Gw%jK0uwHI?P-NR|ka^<*2~%WXm#lYXH!^ z&K!~*NK>E&zNNZzgRs;#BFiGPeK()bUp zRVwV|fAHl;EdPx!FGlfcbZ;7|gahL7ww4x8wf1?x>Imoa-Re$gzY359BiN@~^EeyI ziAlz+bM-RpE&&f21e^A0vNqk9L>}U#YAOLNJ^re*deZB3j~RQ;s5VEUCL!6L1-6HrJzUq%j~TB3CP zWZ^Pvb@<0n>q#?bovspYV*a+iLNaf7fq+johI)-vZyICc7+0Jj@FY^rTt$-|r2iEt zKYyjQsJp|J-q}p%470#@rEjlli_@qKeT*-dLe|RnE#s&soDuXVQ(oWw7gPRW{Hy0> zl`T*#n3#EQJ6)aOjydBJ!vK4F%8_WK6CzQNWbc~By<^EJ>7MTu8tBdPGKNq13o+wN zrM1dX_E9PH;m*&PQ3`qj5AMcVc$pCr`w5~Fli0Gw)xu1-M9HJT*jrTP3btAeGlY`i+%BzQP(G5M2B?dQG`30MiQW?$g;({C#4^q2MPe*d8S{~ ztGw)gUS9LTZ+$nSB~8Yy_Zbgjdd8qXrV+e#QRW!Xz%RUuCOvW(C!LdYnXG%q<6)|5 z%67Hjfkw-;k?Re53<6wQ0|VH7$F+x?z^o#@>Dr+fMgJSk-=rSu;iKt7EeyTg4w+w`njuEgivuKqjIOFgQJPiTf{pxTN?UfAUnMA!Y=Bt42ZhX zO`h}l#K5%+BcbS@F)x()%gK0YA=yJm?Cy!`>IP1rCc3>DPpVX-_Ih<7fOyqLXeGOU zg1xXRLF|&c6@Em9CReH8DbHMXmN_3{?nPs$fvpAh(sZlLV37`9`U+0J>OeS&VPD$k zUtIbZOP!f^V|ad~k@FGxXEuUc5J>R^5 zLdE!mMp{@K!?M=)lF);zh5d_WnpQuVYAG4+aeY#G?N zNtJ8#H2Wy2!FoDap@3|aEpIxOf|x6{ONc<;hzI9p|IavMSU`{<-AUiGyTbXs0BEmy z{}0uwX@&z^e40IdtBd0ZvA_>9eYW@|CZ3SqRYRD~U!qmA)mcnI68@=Bi(xw$0kp+{ zu5bIT8Z4tW|F-a)V~6`PHq)H=iFJ8uvAOD9yESzSpxNchT`)H73ZL>ajZx zZI^*x+3rUp2kF?j+-h*5{jtzcdsma|)%uGmzoS%PUe`Igpm(OU2F+b0E z=sYsByDz-Qb-OFZHd0ekRxKiC;g1kQw-FU$z!A+1_U9pn-X9@`^YE~rSgV?9jf1$%P-Vjl8GF;ws`NG zI%#0e(Kb8%*uGt4Uj%c^lcwp1oy=Zke3_5@>?bBWU-HMCZ9cr8pKm^@wt>yZ{XaJ! zYf~ev0O`KSLwOS{HJDPVMpLx~KxR(cZf~*x!dBC}0Un8VJ4TUzV}oSf8n1P0*TJ+( z*0ahw=Bc0W%n-~=$gIiEGBe|Y9K8rJs97D$2nGjZG6e&93kiD9>Gr}d%vpD@(CH(3 zF+XZ711}F!@)PeDR<}Y6U}rH6!2->n3B}Ksh;xCfK%Ot^Q!R1a`76Y*y&EvY-$4gD zhl|r`Z=`z^9>&W@^@AYUkAl13^@&mqgiaXxvx^X_fd*L{$mWDdN<=%U5jV?MbM0TxQy z2|MDg&1w@%@9k}yEso3q$8UaZW)Y#6X{)$3)0qsadQWE4l9Jnvp;F1ZX@=LDS(e4^ zcsFyWI@hlddJ}ulT4uOqIV!c6JydRHNbGJ^?U$)i$E+@P67$}eL7bZ$09)XqD1#fp z2V_}ze=Ct=aNh+^t=^6g!3%N953o55Fi(Z%@JM@+!z5BW56*s54 zL85rWqHw3D4`=gCb7W=v=BtP2Ys z7W3lEBxXkaz87RJY_~@^I;{g7eP`X-w6y&`j17r*0%%`1p`^Tq!7_(RgGD)KI}y}F zp`lD=ZIEQkXcL<*5k9{hBKNKAS=tgNeC9?T^M}5WcHU0h1VJjI;IJ?0Rf(t;7E?@? zbgFs1Ktia<>fwxFI?~3v^xL5V3P)tGc7`KLZUk^dl^K8Hh+sFKQ|Oay1$=unwr%33 z64n3EfXC#mb?ZwYd|0gQp2c~7IjVQpy0L=PttfRZYOa$YcZxCQ8jzZ}*pf!4dGr`> ze>b3H5BBe|c%@nQh-}F*>ul`lb>uy>cX#|=_{!DGFCw~mA7$7JUwko{&eFw>_SHEs z_NvSGo+_5C$2fs?`3bT zv0u>!<7DPpdTi2C3`>+=i~y)I`;r{smj`Y~{-?TbFNt3J%i7bop`@_d1Slyi+V@H+ zIne@t!Exxo_3zSfV-|uxRwI`Mv$n)ZO{7KQ9D;|AW8&4(cx+5;8HJNO8e%QQ{A{iFy}|`nUZv2w~20-LLm2 zRqRt`jsxOGYb!oR<>~dY9!)d8ak@mel!8mbOPFqPm3w0I(`e}LSOVN8|G$YPxUhrs zm#1o!_h>1=-^Ok!Z;p)wGum=o9qAZGrv5}CRbZ5Q81OfNFlbQF{Wr}voNu!cadk9- zf};2vONVAh>+ZR>4)@=ST%!`Yrb;0^d_(5W*tN1rNk1=>r+oh4!YPAXnf>Pe?V!}+ zkD7urfZeg|&ceIQ(yj^06;wR&&iiTSSu#;Ox-H8mWBfar=zHfPvOW%Xl8CuMVkq!t z*#U*+r)x0z1IsTGWf0`4oIhpIvc|Y8{n#P3%2o^;6a)u8=Lf;^Up1(|;Ql_s*Kpyh z2de+5%*%PT2R?*kpsL$%H;gtI6`ZP(;XIEk);xYel4?;9-~Snsgf95EQC1R%=U*X7 zDVRq|`cjK;Yt#FpA~~))Oftms@o(~2KjB@`*?yPl`OYLkNaoJTJ|#LZI(g@9G|=rA z=O#OST3o;37#_q$F}CLsYIS40TQw+~JIFQuH@^Rw{6TW#n|T5P@Fax7NcKkV(o3Qd zrdB?n{sC_LKI#|Nu$K9v>he3f4&vA^RuY_JsX|FP(ptD1ezneM8W2y8q zUnm2}N($C4!JQival@05mgi3&<3Xt0;$inCJmU4epqr=ZG4^O@;QqduSTB0+ z`Ea=I+e^SB+SyGNC*8m9yBJP5;Wtd}hH4pAnOIqI>IuEIXTqVEV)p%{G5wyKz!Z7NP2KqAPkj#_oILU8Ao?HYCb{?x>UU}44|ne} z{X#M&OztyePjL=#`3wu@H#``VKYPnpL4Oux@V^0q40{@Z9!s|8Y9Kmg6QiL&W+qRb zT}91IitosD326C@J4Es|c_GHyW6->&5Bu2nQP?HD%BBwCGsL3{u@jyHYGv~3&y|VF z*~(;j0+nM>ol4qY(~tE*s49XAHCB@E3$#{f`>gG-b)`Ym@5p(^m)9GLa@brlv>=_ zdEB4d*F-c%Uw~6^f4c*H1ndZo?p)K~rXgS5Iw-scTqk?V9{T7g5{w?1&X31gmOsZB z+k64T71bi^>`U8qXTya?U=Ws5a)CFP9GrF;EmB$pQ=8Y#?k&+=_j9p0_G``*2oDZx zM33U}152OC4;yx8@75)I%{+=zCo61rr-*1Dk!Kja7NXu@_JR5*b+!*oWme*F&NJ8?le%j`hdyinv-AOZqx5}#b zAICmC^bYGBeFKeyjy^LI`Iff;;VLrOB8wb3GCjNpK%ES9ifqDh5vof^uMU^QdTiA9 zV+)vQ*9Q8<7`Vd$i&k0QZ7Hb6SU6=nEUCc{%!|S~Q6V^cUi}lzX@;xyH_gd{;a`;j z{2ecS%l~nLqLY96weX-|yv=-I{+(}S>E~^sK@%CoxC;Do=lCLG2FYI2lFggERBTS{ z=kh3mS@{qXhm<1OV9xfaXrAkSVf~d&h4(UL@H0RV!_@gZ&Vx?36PN+RGM18v_BA0Y zUTzfb2_n903CHgPa8LF=HD|b|o)}A3woZuyc|>%c_t^d6`0j;n=0XzdpcFY1Bl=49 zg(m_Of*lod<>KY4bH2-2f+a*=%pvV<*-VNVW4GN&2DMy?e_3%mYA_0qb7<}Nj35Ll z<&WYPF-{D+#+ZK6o=S#U&&{~E*;-4i#No^)KC7+L$fr=!T2t#YF>Y$i@V0wF{cFH>`^H1ARhF0gYf>>eod-K55_2jPzzyxRVl z6Q*8yy;NSC(7MdMad?+X$rUyg%eAsyPxHY*+1>+v=FuFsp+K$X9o9#0g#2g#guk;K zq?OD?s|lhiROABb(J;Q)Nl1yrO=l(#Dq;ZayX#iBvCLN#N9`C$M#FwYCZPMlYkCK!;%=2q=R_&XGosXP?mrQw7?I-S zD^wicTroY_5UOMni{9(X0IFVQ9_hVS z)%SY1^P9M@f6u!+RS$Z(TCc2~Kc%swBn5L*GHg;5$9RY!feY77v*syRdY1GjsPA2C z5-kjAT&Q~mq$Ukb)w)P#kC4Rf3Tj!1U2{j=vQ?|OQM@#uJhfxsIA5k*`3NX?t==0K z8>qgqk6$@g?gsp++$9#NZ1#i8!h){8wpUy<+K{k^N7Hwh45lz?uvTqn1RmvGl?TQa zGxO6xfok&$lN@oL@3GbsJt|k8Hr8iGhxdJ{{uiPGp#bSh(-QDRf)V=(Wrz;J%jSBy zfdjI))6P#5pB#|nGdI02JOXrGys)|IG(E=AW0Po3sE)$!-sT~T-W%(sw?P=bA#Ha+ zb!nWD#-FX7S*w6?ONSLOZn-UNdC-xKId%o&NIX|6h96q&*%4&A(P0^>8S0qBRjStt z=x}FF6^U@_R$hfieI&!N3S<7J!@xV6P&3@DZv>V}L2XwA9{sspv6Vg!vYUDt9>?b| z^7iEBX$#y`5@9r2q&7+i5N?Xp@9SXFYsp3#L|Gc^d_h@#vsgK+E3TnW&a*@PwaV?+ zl^+GXeD+U9-wFCNqi@uF*sGkdh~tv3zxh=_Eu?s>Rh+Ux6KA|q2}mxeCXCE!oM5bxIt+#F8^Ng`NL`S4P=jPj^n3Uo=5TVq1$=I8+n|94l4hn=b0~%mK^?}A` zG;oDO;ye$Bs;@c+DbxgP`4$>nMWyY`QBf8hVJy0F%-QWWd$e2M4^7KYoM=PgZ$@|l zQ}F0~dMXhxWWklg(Os;mGa8P5vFm$oRj?eLdy*SW6f$VYG&!Q(B(8Io&qQ&VZ+%^W zF$Z0*KMqP|+kAh><)hDI^{ukqIG+O>+2^P>PXi;H^uzwL^K`1Tv;K{lmHBDF=f%$n zsOD!Q;0vy(Yl-6?%0;nNW_hwd1&TJ@GrLsUcfdf^w{M|fjx=J<>Df_3HG;o7pP3ZQ zlVyXu?@7`dV0h$6Z;DJb_E{O|MaaHye&abOqw7}(Y;zJ?BrU%GWzuwt`AT3~HXtTQfnjEn2A6%3{rr)e897 zk4%%_XWGlML68OzZ_T+yFV(lK%?sW1C}pP`UdUnu3)fj&H`dGb)b%`)87~+yEj~$b zACiaje7tUf8KOmPd2VBs2;??yf8{n6MfKI72d%TFQQ*y)6thu7j}0ged?fGeIf4Q4Fd@iq z8+wofIA%&E_k7YZPiRcViOz)#@n=6+&F{buc2w-DCX$xa+`y2Z!1{+%*kfd7Q_P@- z2lu1v;#q9tU;ZPud65wWS_x<^>3ZIYC%o%xYVz4Fg)-(|O$hLF)O3mST`d{PMcIXC z6ROzfT|keir#Lap4~;a37C>h|zsJVF0NsH8YxIjRWzy)GoCQE5jyqSDY}A0>*fof3 z%+y90hj_lcL&@`?nUUt@?Si`lL6?xSZZzVzw!CVBo2%Qu&#*#_mVcx;Z?>5(FWkEz zL|>A3As1f$#R2k#=pri7QOM)h#{AM)*`;hwhbRRk3HC=xQTeZy(6pR~)0f#Mf`Q9yNH53g*|}8$&;Pzjw7A zSgvebHnV|vEu*#B=TO~#mR6wm1T|c_%2cZ7$+N;}?ti84lW#5iBQfakx2qvpZUDw$ zMqZPO_sMJ}%XV&QYdwWMTYh`Ck8BUZMRl|ws9Cg-U2V3tw`h4`U-sLMtdcQ1@wYDT zJ5VF0+&^>;fV+^ke1MR<&`5-_ks;yKKolRm*ZYz;*wHo69t$@xrW-o^qI*ooNABwS z=GXeT>kIOh9uHp=lRbk7LBCI{j`{C%$y0VED9{tyTdVJrVOzL5)O-aM*v$9p)aNY5 zcKcj#3LK)z;@n)q=sB%}ed;qw-c_~k`YL)o+hSrkF+;?!Z7{4W;vlTW19S#16edijiBZ%m#X4`_(#8A5cBPs>!I}KlLju( z$_YaGTbq;tArl?qBGMEMH;M((DN#DnBbZ;! zt#zIsS8x`_=cEBa9JK{%z9J#!NrsxQWS!4f4!BVB6?+Ijyo>A!FkexLARGQ8`Jt== zk{_}eMDtaf^W=x}kK~7U=sfvZtXB2F0_H21$3ov}IzgFnwWR+Q%H<3Kpj-;ZiiAx3 zLDW3?%t{BwuSMLIbaLkzz38>5&I1y4h6yYB%5P(Gn!tnp!L{WI0-m z8d8LqN>4u)a2<%kgvuUx)e<(q;(RJxPm_B-dnaNi`lVG_pWHe0VvFccE+3eG7=D&N z6~~d?EB?7~F*SETU${I!U%0H0#JN3L3R_#vP_2u5nJL#fRP;b|bovM09$2`HWQuJb zlEcfcjeLIspuu=s@XYoeciz)vw6ILT*W|!#izvuU_o0GM-$-X}$$1b3ncenn$-3RW zUw}qlArlUdqED*@wVrBZ3*NwF$=p=dn=*=h+S6%XdH$NXGQYSdv&0A4^N>I0c3F zn#hO?q2^UZu>MT-11h*2$_9D48`Jq)-JleH(3tK zx63!$%DFdsyd8LlhU$Hb?IT-nxJymg{%1>{;1iWaFMzETDDO=f&$h<|bw99)9 z03)dK$s&sV+M-0pMgwLuYUbLS5-0h42aLQ7MIwijG*%#NE&4hb(iC^VZ3bDgYE8qt z&aFtr#nJ=73vIB=V;0rVg%l7Ut;v&-9S$#2uRDWf2x#O8)q{X zg{Ks8vdZ+LJgGvQW?w}04^?T*IYa+hNb#VcoWok~_r&E(m)yTo!b*7mof5WS+Guzj zQX~>xG%D0-j>L^z+|K8jMB-^UPX+EwOz*V=Pao6LuZ|)LEs)zrK&5t3KOm2F#;j)J z0_YVqm@dT8L!e_nE^se>CLn$(as0jEQU@b0&H|8op{m{T4d)HV&A8K}PL!@_>>Ch7Y8od&*N@JuWQ^h*4E1RC=G1Gr%tHDh;*~p2#u;_lS;OxSmBY zmh)vxBadILbP%Cn=BJFE{p16ec%cqI#E&V<3_~#<$`HSK8HV*>vt}zBp(X zaiClzg8!96o;hO37?n4vLl$)uW)`48+@#j%-PW=ikuL*@@m_&tuO_s5`?{EU@M*fF zhdzpdbF<6g!cXqo$#wBPx*dnSd*aoFfyQNl-3lTy(C7Z0J zjC_!A#}o6LyjeZXHw>m)I2)@Yo-_E0<7yMIi5xJDp*M=T#96DX^EsTwPTwn=W7J%6 zC$*f0E&0$wi7G|@KhEAVE~!}9Bd@g)5vP7}?Faen!hO9NMIN5;P>RK!OE31xh9Y;&35 z&)y&25GaDCA1#Y;6$V<~X8=kZea}SfZ);A0JvTKc@n?^{X_OS!?_?uq%}BiF^dsFV=4WQj zLCgHee(wV-GIMc|FrM)Rjc$YB-b1b?@Y28cU$g%s1<$15dVj&km3uVe)iWg(Xa0{Y5pJTN}V^eD4X~{ zCg(BsbnGZ;zA%NPAt0!P*L!KU(g*P>zSOu0mCNeQ9H+lP->vUymPDof65@IXLEbHO z6YDDBcBBOXA+&%ArE~JUHE}wGyLdv|)|K7m!3!N79YNK;rP+TKkDl1w4z&n(1u^k~ z8?nnQB@O>=(Wq4*I1k}{qv{`EU#(2-$DvK{nw{1xZ*JJ$+c8B@}UEd0PnjpQ&U4_>maik@xQWP9>YS2U5wB zzKHZ)>~f5Z2M~KNYfUem-*^u(qYqgzz1^^$a}|m+5zjuZwvE>mgfJ1ToPitXb6BXN zV$(ba8XFSD$E#>;3Q(O%V>kc>Hm!_H|Mh)PU-{7wEPpa*ivc`x3H|xQUipV(_Z2}m zeVz&?T`#|*kDeln6Sa8W7@J9uQ&b8yV@z=}&!z~;%xDBmukuK`|Agbo|J&ajvGD(C zxJB&V-~G*`tmZqLTNDKSz=HppbHlimYx!}<4A&2Wyrj6lYc=rjZnPS$TzAC2$NkOW ztS$XFhw~2~HSC=?-p_tjfrb^%OBYl2*gGX#H8cLh;(TqK@>Q+LSC6H=wva>PDCK^q ze5&K34WbOhb?#7$rH_oQWPY&~gMN*$`3dVxuqZm*Bl9*NIlmGBK%H(Sgpz|Ea@}84@{s+l8qM-$8BU>WObmFg0r+k?GJJz4h!CQIA zuv+@sW{oF4?Qc|u#y1YZ%>&^qY>cyEfF(Rzd0Z1)Q@G!^8GMz3GkRFj$E~6P4;3Ms4t%;Aq5t@Cz zw*!(;R((z2cq&-POMRev0gW!qP>Z8g+f!PBE64g|k^bKm&uwn~>X%KQ{yxj%o^UhE zaz`fA2Gb^Cex*#5TqnfAiBr;s>b<4F@xvU%tw%LQZeM6L2v!f+aXEdw&z)RMfaX*0 zVw$dn(a>h5+834VS(CXVAImt#))A!?S{ZFJFMoFNYOK^Zn|3@PMkcwedgM50t}8H> zW|W5!nmVAhOsSLjndCAmR9G5Ajwy^Qf;*xF!^V8cXv09q7tg8KYbXcSWo@L4>LOI3bUd6@m7uR#`X;>Cz zC|)KEOPVRQ!f~A!;_q;UA=!D2_UVNN_D8FeYcMKiHnD!~1L{RBThd z{iBYNSZ5gPxqzaSw{mf&Shh#R_B4P7EBW>0hg&_) zl2tw`z)j(ct!d@rX}igQ`*x`8GVM~C^U(8VUS%N02R-IuW!o@>=ue(ljUdA|7BHv53UL;vAl1s(%0|0VEfWy(41N-)O1&PoUWiUBi0VXqC(zd%f?mH9QB zk~K&ljKkT5A*SLBQZt`x0|KDm+zs{j&t8rAD24UxZt<&ose)Ax#L`QH-rU-umw8HJ z{#yvmY`YUb?yth)oW$>xNvn7&H`eZ!Q~TN_Z5R+)yL0}TPHE@(q?TPd;X6n>zs5GY zGj{eg7j67c8rU$#tgDo3MonKiRZ0uD?0gaiuXAk`c&3ZTW$?{pXeDn z_xp-CaO3oVv;aw39`ZZ)x1sGge(k5^BKwoa9!29UC$diIS%Sk$6GCrLOiFFh{Iyz)fOWPEBL|@E9T*`~VxT(D4Hfw0n!PZt8p@&+zv{Y+U8{pA_P9TmkA51^MW;;y zX%+(M@1C2A$q51>(1ENSNo1|-ag3R*J?m3ovIFyAGYC*qh z*XCa;B&A%TT|hxMN58AE;-pCV^b^avO*L{%=Ec)9im6qAgI$%$neUhj!~*jE1Kt{)5~r zL%e~@Z?fc^Cp?vTm;3KZ+p(y>&JwOns^!$`GQPij8lKC3LV%~Spw0W2fG)hJ?|&pQBMLLUYo*|U_jB?hxiAS%rw7tK`(y%)Wf+FxNZD0f9wF}4?)fz(PZp|$Nq)|I{)O57Wi+6bfnk{UVP>o(p&S#GEZqt zsr_S>80oh@v<$VbQzA|Zn;Jf#!UQ`^DOp_m#u`@v!1rM~4){Kz?>ocpnx9+Z+E|(o z%`T};)4rUh*sv-vVf;A0WKg}EDZYwFp1`Vu6p(u`spu0%YmrZU6W(PqU-9$RTQQ~c z#*`lJuI54v%z*HpnAd{V`_QH0Dl|Y5;`T(Jd$Hg)U%bxnS2aW^)$M!#sUQ3DFRwHj zAOX=yaiL_7UDwUUXJNKK%ZolK4ta=XIJEv<_b!kmO975Q4XD7!iQpH~PNSUnGT28O zCi0wM;BDy_6g#2uyROV{2e>d-)_Cc~oCZd^>+Q6Py0>1E6HKiQgh~2uqx9;f`5rsm z_+eP~lV+0E4ci2g6a&?Uo)W<4+%cPcI(X;d%w?X=2`9R>gJeb4(I{*;D*oEXBpeGZ z(I?cLIC(nW6>^}Uz!Yb~0QbwMipk>60@E_9O_sh6y+#|J?e}vWC-G;CdiSfC@tQac z^K<{#ZEQJT)QDjpmG#Qk_^j{xvCe>Tl>XV-qA#(0_k~Ql>dMqSUW%$jYEd$7KvnC$ z3<9xSciezjE))vuysW<{r7b#dmC`O2ZFz|<7eLX1_*~#chyIi8NVlX78kg3Vi1M+Z zU-b--XzIZ@9gQ=NhGf-*2z0WGS8(}bN9j_rBf)z6o-jPMMtLUV_g>kT0z4q>F$TyE zJOrcT>}7Rlyj9(1H!2Vo)i2*xn8$tc$VQhwgg`e$(YoTWly?(lFo9_m;u{kPUic;t z;jIZIzx>t&f<<=rI&Mff?1Too9A~Uf6Gya`ETq&nks+oWj8k2&n{A&#~N;QGWLfBQrp_$Vt=BSTa#B}eUj4iMcocP6mWNbweds@Xu z$z&hh+v!v)25ys*kPL8pXk39^^3KTnov*9F??SC60@A^NQ51fpb(d;`88z1kHw+N( z@5d@)4-00goY0laS=v)7;W6azx=0ObwuZQSj|g{emm{<y1h7@{hL81K;HEa|cZuW`EToh;>!g%8Uuq zS>4tKX&UDZ; z#A2VMYil@KrR{~qPaXupByk$QvdNnxlkh^kJ|dDzm-kjiO&^8cxudnXcz){rzFy~7 z!z;qq;Z&w)OlU~k2B|^=Ts_+)1M_%*e7X+wOFnHo7kDF|mZ1RT)5wZ$A^Aotn)we| zK#PyxPLs$==(Sby`z&c5*fJm%5+69*1$)#PAz(+1FGZw)AMO!+D;BVz=`nbw`kbxj z=_5fKm8Yef@QSyGu_|gO1IQ5sd~)RzD7G z?>Y7fuup5GxD|yE*(STz)}%wpjU8+Yxo$pu^Zxeo8GQ-a>df()@Uf}uw-XcIoY#K5 z0z1Eo0DdC9V-sWwy(|FPi20D*SY8RgsQ3C$O+&#zT)`)SFwY z1kV=iz7}WF4K__LtO#g-H)%m-LVGEra4k9PO;4=mn}>sgRN<|3YB;X(BP)l)_^O&i zaxzHeM1sqaU?S+Ha3Yq=`AAl^>$v`(efrA|k~zu(*g;aWc78OtJQ)Y<^9|u^lMNwsg!hvk-Od8a$!x@AWFNW_t02-!G9 zk6*}RmeR-)vYdj}l6|5g5-%!-Rz~xA#mC<9{pAx472{>ig+wrD zEBLoDB!C5m$g2lEyXTRipIyj$#^@jB)R`_cTHOD~7INh_Ia@JX8I{DY#QFIDk1hl^ zX?p2@H&Nr1{g;Vaf%YL@Rem>ZeK4X{POVRz=b9Dhl00fPpv%e=pY`(Tw?&cct%fvO zieR(n{1wO)crs8j)taov7VfSHr3$g0u@EWbXhT-rwX;Z-*5IylcsAGMQi9)MmEp{> z+N~0%jys;q`IF0|PS>jg?hOelqlKzL-PYL$Iq$Zm+ERqMIFujW^sbJtqf}lAVoG@{ ze(50kx3PN2J~hZFO=1syknB&)mDldSW3GrxfS4=fum2Hqb+_kN%vJPH#lt$c9B1HE-6n*#_SqD|Zn@>@h0^Jqz8Q4}2OUBy>2SDodvA zyqV=V*L5rh>3Vpcbpy)jAUUM;c3t8(^CG|*E-c4wp{i`57f0xHsjwD4#NqiYo`V>` z_TGhdfb7f%;-^^G&vVBQxKnFbs z?rVWUNXsBfnzLvBo)@_kR|mYL6+02v>9Ee`<^4(1!u=1nbsK{Fki;?NEz*7h7C#i; z4R>Q5!Uf0J7u;LDhDCREbg+pJs?x8{KEUHY>)faQ)@@*04lLDZm4E@IDG10#`b(*L{+K>EfAZg}+*i{Pc$i?Gemf>&`u<;IA~$jo zO8n(}Ujw`9(WrF?Rq9@xJ(e zj{zl{)SXV~1s|$$pDsQk($u49gwdX-FSXud-MJgHIrbf~;nnqLp&o6Wry=gBt^Hl4 z7VZcIIo#1qNJm|B^(~a+1^DBYX0`Jp84fV}jn$OQvkX1v)62C|msoF%EC~pk4eat+ zq=mUQt3Q-KB^-z&Qtebd29CeIH?71FygkO;8Xtu_`8vR%a@@@wA36 z(>ob!+vwP4l8-*Lov%Be+(V$lsJ>ouU3_%mjyw3~_Q9Ucb?Oud4g0U{=;pWo=k_(~ z4v@R`U)!gDw3bN!Q$gWpsAEz7l%i@<(gE|~%Ek9D*m(26mk}+IgiVvu(}_=bpWx@D*l^@HTu64> zVU?RfD+|ggwF_Aix!NCknPWBj9`2!c)h0M zprs@s`x+U(Z{-_T4EE0Y5+T<2bIk2_KnG{pxQN=rG=WoBOLYFudbIcH|>qxwP zvj4RWvqpbbHw{6cX=56OpT0yz`nJd9pLGgq1RKb3{VI5XVl$ffWXp*?O7Uz_`~>jr@i7XrjlyzXPClFt&1mM)EAeT#o!&(cRVaNV#gO)1 znDRH&d|?8bxHj>s+f zy~qdVdx=2qCh;PRS+{2zLZruqCy2g$)ZHQO-G*n8-oY2`2MFfJ9Ig$#tHf%XYW-_R z^VC1wkn4ssR8Ah40NY zGY>JcCWm&4ml`O|So)nKd!OL^7u1-R$BWPj(ut zPji8Yt91+{lL-#-w1k}n+@tVinj^*B-TP!Xl8zg?#+D=w5kor$@Svl{de0Nm{(5W% z{n|VdGt1F+8}GPBK)PVe(I_itN)mY0+nQ{UNMe#tUl}8IRAxfBhUhzoI(}>)h(}}j zyIa2{d`X-zyKER@GNJg?-sceid%?(kf@h+4K{lNJg?(ckG5X*i`S@n?AY2q*{32(8 z$q!j|+oE&RgXee#_TKI&Y@EWKMj^~9j^8^-qAq__M|Nb*pI5QvXyaLf>$?aeGZ_de zWwww#Q8|g-MQYlmQ;OOGe&~K0A4i@j-DL+s`NX5~zguc)Xuo!ch3 z`|)9Io@9s@OU6;C17h2e2|E@o^q;I!-pyo;agZ{o4YwcM89R9j-su}snbmfVfhELR zXeciC7ITz3`%_6l8Jw#*604W0RphXshe5y|l3k`2S(?l|V-Jq~_QRp;ayDm_(z-l; zCks5*W+Xi;x(pG(jS1>QAnDvyWX6ul2k|=Y2ejA8FBC~j0wLC_rxXJ@94AjaZGC3_=aVZo0p`&zlcNF+d?SX!Q#uIRnPt1VWpaw z)6J*Hc$2DfeV}27&K}B#gJE;_Hapr(rL5U|2aL(1uf_Q&o}S^JT0O-b9mjG9k$tLq z0XL_eQ@?L*qeYouq&v(F=fsIP74ot*&Bgmi< zy04cs`^pL4xM4e`VK~e{mbs6CdfXqtT&07u4Q4Q?EICTTPp|oN0SxN!1XWC)nrlGR zAI$V`n9I47BORR*@06Of+G<;{#3yVXnDQMr@$Fa&R!2OfXkyd`)F4*mNEX_D)J*}r zk4t!otyw_Xh;Xet7&J$Y86T1FlwJ8 zeu0Ry%OdRj80j4nL`{sv{$_Vv(xxJ>ekB)BEpPV*MaJI5cz*@Xz9&xw_S$Iac$!9^ zT!y|V5_f3dUUVn6jPClAdN}b(Z0PY+3*A8%#TLdJ(s;=XUT;nrnCkust0M-AdlS{Z<_m}KeNyBhHB zcWNrvMw8I-5qtIgKHqnvms~mA%RBAdVWA*+it1K^RzSZ(n5V?ef#L518J85{?AaTR zuH5jzp2F zj9dFoPNryg*XV4Qub08(3vE*Ml*jRqf$@IoL_8=nxhVP0%*%7@`wX(O7hJWJ zfc02J0|@4 z)T1TVmkncgw?4l*u!wzVv|dIfN(YXBm*9#k?+S`3e`gDcbPA5|UTm0#@ryR@@a?0V zP65Y*J?`XWRMf1`oN!w*?Gp!R z6Z)y2z`%l4mOY7I{ zdgkO5p}{PKU^36vn>!e-U~7L@5oV<8|McNrW*$0)i03#AI?H=U`quy9+>n&B^u+E2Yuy z$4ca7Lk(FRka(7dCW9Jf1vckQ@|sH`_^_alz-5DJk3$qEj4bc6AfVC`p*RJMPt)Jtmr%t1mDQ{K_%iSWVj9tf#@4w?DPql7x6CSExl$VMOL zfh@o8A;99J6<~R{yb!ne@rwPg#u(kj05;j*WFBs0K~MLcp=U3mJ58&FNF~V7PLfGoHN=IMAIHrt zo%1h~G^$%H2$Y(B_a{v4M<0%2#ujxhN!@msM~t}2LrZ02+!m}T#_oPS5n+!T9`~6s z{3Gp4bC#7R5~SIUw-OBGOvK&F1pBYg3_KB&J?PY)S#vfCllD3wI)J_d_J-K6bcwO*taxGej`O%={xg zh!1{pp4BN{u~x7Z%amT);S zhJ&TW3kw|xvx0_nvW9=&8Pg6laBFA3Tm*Ulp7PbDQ?;hew1E_uoCWiV;g9sUC>p>6 z?e<%<+#zLJy|21L^F#WZ&$3u&&ZX+vD<5nq=sUi*b!!(uqG7aWh#C~3B3!Ss0o&G1 zGVENTP7&nVfU#Llf1s8+muO8-yXd5DPc66M--&Ge~PNk$0ZJtOnogn6RF70qiC(QOGP0*q#iorR-Zz$ckz@N=l4D-+sDu7rBN z^gLTP8H-qF1F9qEiLp1VTLsMnTDc~x1%WpZ$&|uH&-I1_Esbes;*B$^Y#Pxj#%oK0 ziTB$-)?NEP9O5irB$m-nLeD7GWE+Ji)0-9Tqd$-!s$v@XK>-A(8tm3A>N_tutJMF5 zJX+iu0j>q`7Z>8<8cK{(1RY{!Gu0LA%|O-j%|7(NCf|lp+yTX@l%&`` z17-#O`JJhbL>fo);4;(dQ^>to3EaeeC)Aw z?24={qUeJ^Qu83ct7iG>?*64(v3Oi;8r&h8g&y^D;%;KvxEvKQVxTmbn67RYW_$NM z2M-q(u|r@6Tz^Xp4(vGaOT}(37m$kpH(HBKUZnN2j+hNQp`xGK2BQPq@O7fGk)h{^ zt0gmT*%UCr*BK#N16&G_-)sH4RX zW$G3)B_UknrIP&iSHen#XJskUGkl!I?J+G)gxMY4JTtF8={JK+ND+06F# z!-R|+6fNX|I9b)KBPjmCE(dRf$~s2W2B@#_99{J$N8jWfSg_I!e<8a{tP`Z;2PI_4 zVC0tSyyXq&VYf<;X^yN_kw+ILfHw%Ji%o-!-Tiys!h>?~Ks)3%sm_K$BkZ(<=3^Sf ze1}s4ULDnF$krAPJP`@iTpK}X7I-r1weLP{FW8b+G2t*a?Ra4@tTA<#5`l~&{Df=h z!XgU#fq$#`g9k{d(TM*c#Xvf3crqb}0+@0r^+f zilK5norlm=;U5`9qW6b4Zf(8ZDsgO5cx>?PD{_>I^%;fJV-g7=qU71p#2DMJj8ZJ2QEAp2atdPd=6cS$L%SZ@O@V|}dsm5HSwUd(_=-KT08 zb|Jb0yco(e#`YG|nvN3a0%{!%5uA~28(^P{fRDJd)h=lrEI6Vie&8Vkef~E@vE26c zqP$)PNiaT%8SedpI-jx4X13Mf5G38l*jox=IUGpmPt zhAH4k+3pwB&rc1-rr`~tQAIX)R;eeU2As)Ijfq%u*b@1`j1vTjLVhTM=Lg%a<+l7|^lgfQSbpT>G}-JG3PoQhXSB`azd( zb{K|KZ*OY|qMrbeu12>WV2+R~Jl^Ai0812Sw-Q4s<-+Z6{~n8pqG<^mqBVAA*e=TH zRhc1-o~`J$QHU2wI)%8IE~BA6gN_R~Gh@ZDvRm2tt-%+_6uqYpPp zM!+O%XcR{QY8@{*6vIdeo4kDT!HE{uCTb}cYk!8{h*w0_3?ZA%IyUh0@%YFpwb?HF zF`_!(9Odl$_9`V-d|1Ol#G$O03Y=)U;eKgj4IxpPsT4U!4jMuvtvrT3F_^h*s4D2; zwPs*m;jh1kp!xKM)jw_7>0j8jRuQ-Lza!}(!OqA@eMbcuM!m+!zxpsx0Qm?Ib zD-DV5S6pQB@WD0q1?LX5Yt5E-9k--%is-z|i$f`qSKXKw~|yeN|eXp`xPAHkQny zaQR&N*#PvB^PWsnzhbgl+=V0fBz9*&Tjz@G?r4DG)d4cI&w3I1-qP-NFb)p+7Ozvl z$N*cMJf}-K$VuVd3nS}yyj=6p5^VowHKj5qaSqO;SXyNugbN@GjiCB1TTfp|uO z4Ai8!+rhI@wt6}Kkk@unskJnIYwZWS!d$7BvXb0PE~_+kk@d9vXU*eBXK6<4k z701LW0VnV64g5^4ZyAUEX_Ud2&3>mcw3+He7!!9Thp;!K`ZLN$LXO<&RsJNcK&GmQ z`9TZgvy6j#u=|nvH;-7%o4w()F{E-#J^kkq|{wri|gJEl5aNk_gNc zny3(?#zr{pB|(JK8)qps{jjWzluhrl)`7pX)8xf2-^+3ps+)g8d2IY=_=(v|r0uO` zkOAr0V2!9N2CU$Wrx)cI$91vBr3>$1-}t-TpgZ*^wpjZqZaH6ptNy{g#+d4aEb zMf{K}8$(N38dxkm1FSS8wG-zL(JrL%RoVr6F+{H1>>gXrINVzI(#N`zzRepAX{Z@x zw$Hh`TT|oN6n?6wiyg4EbC;=Z!THdzazt12N66~ zj5n@P4ZD`BPLp`nXa1NLMpfoGuWbMxDFg330*;|Bl^IFeI=@70U+)^u%Ir1A#CQi+ zB}Jt~JuArBs5fT(yZeKyM@Jz?C*`Kyc#(b=?iNHXPra?3*Kbe2ufm_J?e=(%QU#NO zr-mI{s+jGySf4!o&iiaT7H&|3+xN33jO{&8-4L0?+km0JBYW`K&f>##r_{+yftsq& zi4@%L$EV*rs_4|9`s-HX;QfZlg4Go|g9fy<9HG{4;`DHCrYLrSz2zKoN{ zFwk%cJd=s*d-fZBmu>t%q3=6gmhh%ee@EZ+{Ws{lPWOLD-;y@}3;M1q`k&Buf8@yG zD>?fjibYDPvcqF+NM-w(+-cWOKNFaR6sJ#|Z+uCw!VwAKvr^uRtc8nbS~~hP%X)~N zBpZdsjL$yOJzM|576Q)A5F=ae8I%~_iAv_&RHL>VjuM;BE)<@u9v`c0Sz><|wl7d> zHd-2a!^2%w*KK+1jnCPY5}iOWTS6&y%b6VDxz9mpA&V+=Km7HEZ|mkr{c!>Jj6)5N z_qnjz10^e`Q2%N&c(?3~L1@9l_6tBA7S}^^Z8j$H-hlSU1^=eLqUTyP40WBqG-+4I=X*=1M>3LVDM&{wG`^4esIh7+#l z?^W5nhDUh%SMxJPdDuRP?@((JQ&z^ECC1;fgPO-2&auA+T`}&Ljlxovpl`D0!6V@ zV0GTtVPHXhEj4t2mZPed4tV2CE)A=Mtl}~~TC&PVR@pS+%?p#M z$N)R`eAcYKNiC~O+PE@pP+po5-HuPbG5KRTj9VaaN z&W_I7j^NQp7{3W!nkAxOdNM87C$`)|5-P;c#~&Lb!C8D`cURb3%8e&fGGx$SgA>ybdZCaYWzw{)_NfZ$EeEXzp2=3Pg1v>%dU=e*Lo53+M>VuVq-nVed zo4TtBJ&@^+mcN(bXW%N>h=S!1yiz%v22Z=-JWUHJ%!V#~!`6t6K`Q)f~GuGC5`a*fQbyf@LZNB-`-R|ZvM)M z|L#@8{R~W5ZS$aq@vo3gkrDS|PM-C^jw+`zI5vIIt@Q3_o$bEr{DZ}9oBo2u$>{(r z-a~kU#YJU)Ve#Fjs`-nGzhUvmivNkl3kvdifbgAv#Nw=Bf5GB702ar&!Qv-D@!dLE zkcF;y7visKgL-pRt?1HQ#jg@V#>jK!?00t3Du;vP;m;>z*A=>={o$^&Qj2D@0Xdrhk8~@&3shm$u|iKfVdo z+JpRp_82fqLPo5k!E2_YxnJB|uewgz1dK9bUvy9#4dC*X^@$Q{(|!5*tXdf%@E>B{ z2eB;BQN&O9SxMDZFz6m%C?u^v6FYZ5NtYAL=74Xs41ZPOU*x<%5+LU$&A-SwG}g#b zYoH~%<3n%!gB%a&o72mP={{SE>y9pI0_m9V-x}KRwl8Hz43u13tBIbkI`G7^-C;7x zHmU7xcWJb>sr_m~p4SUfW9HR`Oi82U?OVGnyejUFtZy0FnpAWPrnN}_g-=OjaF94Mn+@f*@1=QFLwo7JQ zSh4g|!lAaoC-e8d8O)G)nGIqhXluq|x3{sWxtTG@$ z`HANsF73gm`{NmNp0I!>UQ#8Y;Jb*=8Y>{h3dVSH7YsX|g7FY?_0;$M(aB$~H*j2f zk<>#Ywlm>{EKaFzoaG$~Va!#P>zZIMdn=$l?yN*?wAf^C+0_|t`z~VI+)cn~sXh5l zy!Fyf=fe#A245tn+H_UjH$IY@x*J|&Yg#W%v>^6Y#3zR?)r8(scM{pcf8K!fJd^A? zS^buqTR=m;|9gO-Yu^y`Z^(Zm==QFy8APCUnT=+h+TMB>=Oh1jRQgzx^zQySRVM_P z8Vl0iq66^YGUXOse-@hRI8kg!6! zFzhZQj=fh&sh(*+Sc;8zw`FM%ikA#yqGgxbQ!^e{C!yG%CBNPoEsFXeFve_^D}I_R zq~11xTjZ@=QP2Yn8Bh-7wY*jHEd|Y7(oW7UTPT>|JUJ7gKJniDHf)o|FJ^C?n^McQO>oVEuS& zf62gE%jgU{#@GR6bBr`*ww1Bnr;rc^5V@h@Hy-a{%JNQe0Qk?nqdd6M6`4NAHdTD9 zthyrO>s(Pck`!kbzta?R?!(}GW<-^(TeH@TP@@>tG(~u!sldEtJn-JE^eS7lR#+r=ye*CVKuR3mU8AC^g(N(f0Us>E+yY z^F0{h)E*tYNXlDQg$_dLJ`h=^WRL8T7TD@C8+yi``tD?AuZXLi(hYe_7RRjY=13f! zvt@w3YUi_g!#wS9Am14&>b;x?^u|x0dcR1Q`m^Hr1bSmkh#I>q8vL{5$t-_zBXjPK zuUqFrqLaMGc3s|1t7~tXbWiRndOj+v)@X=(y@4i}8P6#t#jOtt`+16V-QsOW}+f# zx@1?wK-E}!eDI_lS;leK$6&g+L^!5e4A%SOa3dsFc#`3Ut7|>2)j=_Pykt2O0jXel zMaI3FUtJySArZXCSKLh^Af=?6Ap)!mNH7Kgeg|I7sBS-_aJD>!6WNTQU~dnNh**bD zztJ9w094_TnM~pT8(oifNCq1mB^kfT#8zL1)VXX3sOQxk2QYh5A5Rq9a}c6W>UC-A zY>2zG)0yNLwY?{(9 zXw|EOifnJVy7baZhS)KY!Y|3&GcS(9lL%mEN?g_Ma??A_RZ<1+eXxJc3xjSF+3QPNd_3$s(u$17_P~E3_R;Il0AjcM8)8pV#~#M|?8JXT>_N%^Vn_V&cf{U!_cvnyragd&{C`F4sx75sXUItm(9;hSR%8;8bTCqv z-~iri%JuX@72LhAhnMecKUA9mzF0R zEfL-0I)6>kgpG>KX-JDL5nCzwd4t$yqh234mpfFpR3Xx4b!=_DD&vU^GQbKSv|_AQ zXTJf&F$_8gIoF;DN@<8McjndzG0e0uZR*ak&%sIe#N|!8N7!thZWZ*h=^~cVr#We> z9FnCvPt0a^?*sLeU5cILBNgPr>n1!(JL25r=>h`Av6B$tOYtb$sATlzl+Kg3n2ku$ z!b)mvBj9>U?VHha^-;Gl8zX6wJFL0xqB8r3HL2krR!> zR}nvUx_JYr6Ick_$QbiYmbgW6J8J=IeA@_&=;Bmq{kBc#p^k(XjenT!HU?lNs6$QM zPHbr62B7oVhsnDLk^H$w6BV|m2Ld=Y+_3#FT5G=m<_ylq`z{VdTz3$<5O=swXUiEd zuC!kKeiwC~?EjQlQ%49Srbh82$IYh-PGhuVK4ul2k<4te%FCk@fZM2_CX%=uHbl#}v^HM@^nf~9XJ5i?VR}CPh2iX3X z{`8DCU%4~JMPGUT?Az{i%ORjUU3m3By3?H^K-Fi3{IUFoG*VJnw|{>QdJ1n@$jwIN zBL7avL-1Dn#o2wmsnx>#_86nt^i0Bom6zh3LSBwbwkr?;9sdASlevU?U-C;EEk21j zZ;5^SEs1Yu1$*qa^}GbNV!kAoT&^Ul*ABB;YLRE&=WXu}Z)XB-3H)g&e)=y0pZ`w; zo+O@!qjl+#ol2bjd;Lr~_R6w$Z6@>Y4maGZOslY$4F(TnYxB|xV@B*F3L`za z{CrRkwf={irnf8R0&$#VG7 z6vhA8!fyWnesWYO5)*sft@C1fWwpPIP*gXaM|?L9An{RiCO5t7@xzwdOI#C(v@me` zliywLrF~^CHRj$X%%h82F5b$xcVs!C;$qqpBldr7Yllkx&u#4zzuMZ}(8y0$!?SAQ z((4n$*6~Lw-7-43f$>)3IWcR?#?~0-p`Glk@A&UAS94xyoZU7EX+8xSgqpvqVGP-m zWMlVubWc*eM5voSxOj*W<^6wnJL|Bh)_(7cY%oAjX(>?zl?LgQP>`1H22n}`h9L$O z0g-NylJ0I8y1N?&X_z60?spC1-tPVQJm;MEI`8|B*Cl^2!>l#;y6nvuuU4!`$MaWL<{|n06lpWkwblJt)A1d97YGw_N(fx18fM zXa3SQ+;As10m(s}`taq0{XVAiZ`7rr9{bH1x0NKnXZOoA_Ps$e$U5tL12@;lCb$v( z4s73^I?~zR`B0B;Zb@xtjfr-H2`AN&`#NPqDk$t_#S8RJfxWRQw`Jss^lk z7bPPymBY5e&>p>=@$h-K1@`uTY8s7Ll z&ORj06(Splz|di8%i`UeA!4jY1YnjBm3ol1t$HKJ5{+vFKeLh%pK|gT?sXCeVazax zghxz%g)(N_x^PNjQWD~Ep5OhaCi8L)s-Ub? zZ4$UT4IBKZ0;E^t9-rw(a-R75OtBo`NGCzZniuCn9=%4F+L7zBKgmQoXP*QDiFR!G z+u*P$PzGSvQv~im_DY8uc{*t*O+5@$kdyZ-%Yp7VxZ&&tmEX)?*ndb0mWD^BLHi#X z-~}FZA6D^2i=9s8GCcW9!{2ZI7Y*N~@3oWs|CWXiFzkjzwYB>^N^Cvzd5@>TkUi(A9fyTk6tmezsqt7h_sJ7>Z1hxV3eTWGIK8IldlRZ zU5yy-kE=3AK9fAs&yDM!Rp9loAx`QxZKkcv>LcKr zK#FmO$Vt6~EcK8MAqSFh)bKWp%IPua5vQrCk&}m2VbEcnIjh@xdhkJa%eeZw-0nu$ zR6cXPC~Ux4e&+rUF`t}2h_cxq#IdXUvPo?&?b_+n0k&bEwf;H}mv9W;f<_ODxx@jr zRId$^`}GKds3wl$=!_ETZgMmHmc5v6w=Yio89X63ds6nM{X)ax9mzPGi7o*yOR;Xt zJae5*vMB}sJ|a;P|}x|4MRlk!T%d6Cr8LjOUaNBfG$h!W^Y=`?^B+nZnR zNM^7xWqRV%XoV&^P@>0F`AYA;NYz=Vi7~tfF1ak|3d(tR)U$RXQLyPIADI+UlQQHM z0=><~uR3n&J7rotgk{KVVl$eQW#{Mq!C!tvzn4Ih1Jz$B+2KvDYAD8uNJh{B%Bysp ziXarye3GQhKbvy>Oiq;CnRxAp+|sU@5Qz{P;?%>1-a>qzqj6G~Uj4c12|p$ZoyS?I zcecGpW&b><{*(!K7bW0-0|b0cU_ikS0e=+`@UK*dT~lf(&;$g0Em}-t{Rw(Nz~@E@ z_@9N&1$-G+{(s8%A|-#5@851|rSU}DrCx$9XU3-a5fgK-zn&)_yl1HfK2YICs!zw! zOU)Mn^5^h+gGQdzoorG%$*3lO7>~CGSoa|C`Tl<+#f}aMvz88|_nX^WobPRnRXVuR z^bE7n&=#_j6m^gkmwGsEoIHhRh3QCy&OnVO;W2UKtt_1A(3%jR}=mD7?bRpB?;BiI~0rDn~QzX_ELEfSR7I)oI>218oJCDdd$%Gg9@yxZ=6{H}mDMv?#J!|*t zN;|Iuqf?YdhOjii4=^2c%~n;0sV12|o8@EbwCokFo2T)N&S7jM6xmc{tcD?^#Ht(G zhR83%vd@+s+9G`*Tcrmz{Cx7HW{*YCI8OBf1v;KgLuR{3j-04s=O39R%bfg(jxawu zz-rHunc%Ko^ZH=MMJ!?Sez29EWvS(pQ6PF9dKDdwz+^#rB_l`(*D>BTHvGx7MA~wF z5NCVgXr(vO8V|;w0$f+&CFAuk7W=2Q%+b(__bdGbEgQ0%N5|Pw#Q5v(TS#pnJoIu; zb?Nc_bq&{ABX+>(OM`N7fO&b6u}+UxKDE|e-~1}f%tcQ3hE3SfR3IrV<856@LO@6J zTN=eAV0oyO(jFQ%=DJl&$$pCpF0L;u2I26_x-!te!5eTaEKp({eGk~AQ`Jai8sMKa5J-e z{9Y2#IgD8ER<^&V&<74gaMIe>K2-A)o8;@=VQ4-WRAX||dxJ1@b?68@#1|7|86a64 zPGqn#XL_aQ(RJIa4UBa+nYCw&R+ui1=>_D>h;v)3t(vt!(PMxn{u?vW-O(k`R-L0t zH5Wkk;~frM%QZFV=g>*I^8Dz=)ZoeG;%KNqnC&EXfUUJ81GKIGz%!_a!`Ts7JuD3{ zo>eu(;gBQ(%LiWf=qGto0q-ReSlqrvZk zmM&#ZkMOEX7hdzfu#TBPC?d23>hDfGE2pazKoWmHL@ z3SI7vGeu5K2w5E+$roQi>w92*I1?5gSj!CgqH89JmS9`xBwC=!(lh2^57m@v*Vfkk zF)fXbXsb;P!oiU?gzLc$FJxnyQghXt_U1wMQ|{?fPOYTj>?_S1jvO1yPnVU|nY`*v z1e}xMgiLq-5Yg+5*Z@%qaZ?++pV#>PCY^Nu7S z#M=ivi;=psA@TgQD$2i&D%lp+GIS%axBkgkCQv>Q-dH}d=f_F7ENV;t6iC5cVRSYk zm9jOSAT0kY$DWSLv2&nQc;V}RQ{fNxXMWAGN6r70W1oWkJ;xrI1$ozNEkhC}&{60q zDlW?Ux_a8RRPzNpIZ0HV9Om; z6wiO((2r-wY~yPKVrjSCxh~aUn zz9UNQ{QObWux4%sa(tX>&*Fsn^Q3kz%69;wyrZ+I3CL+9LD*~_=gxVmz2)6n%nXoc zf&i&@!*pidzopu(q;6ur1hH;5&&4DiGWSQMK^Zw(UAELIu3Wv6YVA?&pOHL!J)zxz zXU(F`--U0prXo`#+CFS&CD<+gg?6=6_d4Gb%@yzUliAic1m){7^p6q!ItF?V5MoT2 zOO0*R>qaZ0#ZyXpIdH{HKK5}3i428s)%*+*o&kf}lP^3Iw)WRY0r?%0av{H?!}o#; zdR?s2wvvtX+$$-Ziq&=&vM?XZ+#OP5I%YA_zy(sY!AcrSBic~G(U%~EdnBm9<;{JO zxggi~XGD0Zj#kaG&7IH4Uz*q2WbaBCz>Md~Z^j7NnP(Cxz}Lh3zB@K|AF^s%F~3Tw zv#;1$H8-ootPa|IAVHHZQnox430OfgJoGL%NGaC=niVrU{0GzGy+j(eTc@ixUd)Hv zg&Z@yzBZ~YJI*Y3)ir~=zx1HH?wste9~8EavQIIDQqe|fSo?F|Fhd%<=GYWiaX%25 zmVR*;GjF{RxE4Njy3MimJ9$gFG_$X;z)jhrvt zAS5qlRYTg3l{?#jw)5kcBrVCafk8q19lgNZtTZ~zt~Zq)W%OFRduffw8wC>!(wLXm zR9a0Y>yE+@13yoYedj00GT&$Sx%UHH`>pDjTgL**``?Uc_}Wz=Ob#}>RBbJZ*RABnzcU~spA?j33^k8!qs~t7!F@(3TzX-*^3(?tMCobSKc_bst#%Rd`X%}wOy`SSI zO(W43I9SaPf~0}RNyDDd?CL665F%;hdFUA50EajOM=N>*t?F=zb}qkrM8%;!;71OTR<(*#)vA4defC2>uhZsqMfE^)|LBf@$ z5r_!yR`24MBU#~vV*fHBzhdBdt)s8W1mAwZeaLVx1H=R_7_hvpQIP@2i@^x`Y8l_b zBvF!AUv_Q=G2jN-Y<)IMoH;4KcyRw&Qx4OCs5$GaC9E0Zp??u=Np5HKu)dRApFMBo z=qTa1O0iia{Pphl53_{Pkn5D6TJZX=EQ1AOf0JepN2S?Om+qfwc3xDPJ^nQ+&EDHTD)?C{bVtwTC?%hGz%DB!2c@O|{Dxj= z>FwuQx(4MXym<0OjFjEvTKbkt`uVi+LX`t)I)!LKZ)44!VaVN{<1Xjyio+-On3(O@ z;&SF~g^%K+A`7^OzO3ZVDc-wO@QF!>wOgP~h2PypPUwfF`d6BL_Vtf6yJ9_vie_DD z7Gu(lyl6H`021EzaSeFEHcuI&LXOv!h#L>#eN1ETTg$qO1uVg?Q)QGJAJKIVvL#@h zkH?P|nU>SAJK=(DZdhg>j{E`^lkqb4>ZF&LbuuZC@wAo}X`o)b)2GvtKO~1sQkMY$ zyIkG=q$-)UMf>t8^Tx)*s(v#E-Y%1;n3om^3ehf2;8N6i&a)cxPxYdhG-$?TQK~Wt z>!0@??TG-cY0r<3t5om;0W*6Y>v~O8hJvk$mefs{5=SM*q?$k4`=d)^KzN_tx@fqo z@*S_mIuLY!s{gy7yH^bEsGyX{#rrF@TKrw4eZ&>-H|!T<%-_uzeu(iu;KZzT)>#|8 z_3`bR>WM_{f6YG0qFqYv5GEJq$CS`LZy|ID0vhl%NQj(%EvElqO@E*1QVkz-mIKzA z6-a3BT*E&|}sjJDWf6z@i zF_+rS(-72E@myc-Ya#9?x4I<4UVUdjyKO`fSLp53v4g=|mC(xW)`%l*kG61k$On?W zGJ2qIKE|1zj&cSfLIbe(TGl&weVXo&lZ@4fxDqiQBI-WJ@ZrYJxk3ge^=3h9A3b;= zk%WKGx!2$VYS{T3W_C#=4BeSiu>Qs!Iup4k|{b7|=^0<`5UivjI z5Z_jUZ@EQRbbv$oOWY%JbxU^7#pw3Z?wyfmsQ0=uZD%7zBoY%fn#?Zibse{i;YZNj zd@r8Q+#v?O7adF4tKK!o#}u4xL}-hI**@}8TdEIlVYb|{51kVeB$%t6?RM6Fa%cBd zfg_0k`C`>>0+7SzdpA0n7-ME|sBKo-CK$de`2?k^*SSNgbz|B&w4`4PpoDcEl3w?( zi4*LJ(F0}%wjeQhOgK=)rH(q<5Vb)U=g@q;gECB(N6aKw2it#11hieJ^ znw8{V&Zgph$OTglDI7GG&N(r~k^khx-24xmn13&*mzA769Kb3f_6RzD*FLB%JD}U! zW`px)vPN;9((LE~a_*gpme@$o=eFi8%~m({aU1qL=uR!G4&nwoJ9P)vf;C%vB5UGyzkHssa5+Mo&ElH!rCu7 zJ5uyvIKPD@lc}Fy;Slsg+L&PYo@9Jb_c4TNZL8320=c71n-|fQUyTQ(j^&X!n2$TJ zc?!S3@?v4Y{cGS7PEw|YLUn(j*A!IZ`QBdohEmh{eX9#GJx|&90V(?xtJqCONo`db z8)dM`EI{TNibT5sWI_9{k_nqQ-p?Bk;H~T+n5BhwEYa z6A={c1XVSEpue_^_Lk-nT@O60Tsr87jHD5|P-9*aURc>vnv-68QMuNmK!rdv_o}^~ zl44_nJofK0Je)O+T#`b3*m8Kmo3@7@(Cp=kS1z@b5e1YFGic3_x|LaLX8lcpEs}|g zLfE2=OW$<$X)_R}K=MEt#uushY2Lozal5MOT=**67^XUgoyq0(JFqG7c3v{go@EJj z?I7srn1~`_>xv3spK9NjY8^Bs82=WDZM<8f7_zAv@mlbq;nFn{O}I3Ll0(nP((v3Q ztIj>5V4P2UB;+GYocWT=XZRn)_wLbZ;hC+}4#<}4M{+8ROZ+N~Ee#(yfZIWFTKp0jMSHdYoObM1R zT9uV;1~-JD>1= zBgPLX{vyW5i)8oDYGwZS#rWgN@&y1aaG}OWJ3a;>IZ$dm$l_d$uW1Hx0?mUt^DNNA z3X(BPwQ#+AIoKvC>n^t`H_N|?MI#XV+7C~;+@S?|SAtl(?#W7T;Ks)!;ULsz;;)c8 z=7Pgow;t5lr}oQwJSphSiQ4AET4i-=YLR=3QE}k>yjR7-;2Cu)#xW|0)oQy`6f9xfsv%0#met(OLs8$Kaf8v0{|W7}mkrdS7S zQbnm`H)F*mWmd*p{MTK!A|iMS4__X3f1gB52oyTH^qD#74H%oEQuKNcavG#?hjt@p zL0_|WE|YYSXxW)&OeW~vHN-DgwZRCJMs+EG@!4rid08R?hX{-H15uDayYTwjSn>of_o|${bk3B86U4LU)v-BO@us$EhlQmga=t{(P^tG*Zo@Ti} z_TKmbAeu;gsnkmEbJw;;Q=u%E9>h$!mVtMzme+xNHw2u^RDW#~XUvW))T9278%8eg z?w7mJIE2wY!i)1TEES8H2LSYIJS@z3v&K|*WMiL2?zZZONbtzK-ImR)5QvjmvxE$5jbW zOZRsk3od_@gh`pxs%O#%uA{>FXQn_n|E#sjc#n@CoGttjl875Gy_qV`m=g;!Zu$5C~*d7P%=0&mx7^Or*oh; zv>Ed9ey@7@&TaLkz0I|#(a zglZN+f3f$P0wTU8Jez;a0>B!>`dab$f=n4>&!^96=!3{^QfySRZZ5|RuG*HNJB*CS z&o(4plYJpg83R>I?p!kp4vXAa;|9Pp_`;k(tg(J?^V9O&B!*#ZwvfBvm#Ib2e8V?; z&Zw}xHUO$u-Yl#_0-m~q&6tr^{lo4-G5j{BOlYMDl|K*Tf2>_rRg1heCb{*fQqu>o zirmLgz?UuVF+j7rW{k|Q;;8q$dYbBaRsQ*HyvN7_uo?e;jQf=591*fCB%@9n7jOej zcyGt3N*&&g^T11E3y@lpGTY9eX>Y(Kp=|VSI5NvnNH7*${>n)@UdCN^b4bocR%0Sm zTv#W87HWT6vXiqB&v58ZmA{znHjjMq{g>M6aTo|F_el9S&1!FOxt;m@b6!o@U%Z+g zKNPPf>|c2`IT z?bTv51(A^hQRLWK>BZAw#lJe2o~OCh7x84>3ZnphUH?3;zyIbuu3xVsGvVnP|+ErW|I}@qU0O`zbo3gck(*3ujm!}LZwCii53NDStv%R zz52NyQD!zT!)qjU#?z(d^!$y+Cv7v?$b}bKJNlU7?)Wm!O)`03XDho2pb1{N5Zhvv zcSPZ4hTmC(XoI*b8)gEkG(ds8Jc|I2v7)}n0(qHMC!n@ChofZJv3aEsjIsyRMh`Pp z+KwK)P5dzT(c0-T&|xI@`$I7_drbGCxag52<4AM29~o!ta?rwZ|E!9m-u^+<4MSL2 z{lyurKy2C5Xz=Zg^_^SfvzxVkODi;MaFQb%rrB%AsEQQ(K2i56Rsj0&7<;5JwJVae zsxK=RIGhDG-p72|${VqtVAm#t#TFgW2DD9%IdkUUzPAe0TH7G99<|Z``Mh^BoU&ecB5J$9*rqC9tjosrF zA^~eBVg9FkFp&3)d+^F68(_Nau%6JcNDL?4NS%_sGbG);p%n|&ZH&ArO?#2u2X=QX zf43333*D5R8Jl-!PFh3DH8>}rktZ6YB==&;{y44Irk*q#pc*8UT6`V*WWih+ zhBm!yFx;fhV&GhcImHVZ3X5}deacJFG@b>ptP$+{(G!p&{dk@y5-wUVPb?S=XvssX z-F^HxPUF&bZZG<9jy32_+`rz|nN+Pn^y~nXwiWc!;OF5mnH8S{)F5k*`J!j+^Ey|b z9@Q|=5_|PlUVu&*i`J(LPk^A`jjF!Ry7^#iH_k^Nhzp^( zCdzk&*NP^Y3t{+Hy%C;JWe$?~HJZ61Kk~8ZUR!x_9uY35A$b|D!pMwxe>)2!`7r*{ z77b3=vCQSJ6l`8_74M+fWzrL#kVYUe4@zRR&;LXlS=Y#tahNQ^#4&7o#%yljRcAuE zn(cP>RfKG7L7(@<;%thr7-J3z?6y}h2@qOxSb(PY#aJ``u)t28dt*9DXT z_{vzY4d}+^%wJY3BlxreA&4!Aw$SG^XUzIfBd zo6|h;YP%TE^HbEG4iXQy+`4|h3= z*XBUjPM!+n>1EXxTiJ*ai3>yy`z9`sJ0Zw&on(l`_uKK;uy9|_$CYL1@ra!-K4c`v z*ci-M8#!q=TZeyj-I}NfwA8M~n&-!__M4vv=S8zAQGji$9#2Z76LW?`^9-14!py@dZ)UpUM6}V~^|< z$6Vuj_bOiBeLzDQB+|Ux)ZND1I^Nou-lme8v&8!lCnT}Y(^fCDfZ5Wz#Lifk0n~jR z<3amJ&o-uGkhfY)0e(sfNmvPSwGow3ZoqIIO%SzFD|{;S1sHFqhsN>_o@4G~PAqWH z!)SuAA|Gt;JbtdwylkD0M5Cz0m$C&td+X^@DQ+}Bs)uG2+gPZezjC6~^1 zHrgS_ZXEC(oOrH#wbSY$Vr-OE#yd9}$YS~QGm*x62r%(7r{71Lpq=|U-ap7XQzqj~ z++c{RK5xXKwyDVsll96A1x3QIJUicC^Cq(zJ}PAMC|C17r~qmL1M*B}bAtm~O&lXj znJ;li%jI_=FHOc$Fik7BE@OI}5D1HQoBzkezw4&hvBmyfSBrvsB=yjR!RSQUq9Vzr zMD6gl_K~FzEX7kjT~6C&Gp9lRWekRlJqhN3PaQ@)?8W0O;S2F^zvo2ZJe#D&W!dsQrc8P>EwD+eGH7V;qlNxtslzCHwc9w zgzR)KjH&uK|F9vS1~v~Sj&3Mlv3{7M$Fri2Q&JLEIJ|aChc5BjWeP5f-sO~yr=R(# zoc$px-l0YhOR~I}-FxwwJ0lsY`i!`s)5?x_ZB%4uqF`tq@E0L&#HwHNzw=398SobP za}LvZkXcww&;%_x)ZkGDQ5g0hjoZBt?$D!0EH`Z)Vd?DZ-pi4t0h~3XOwi}8_s(BE zlr&fL0`uhr?44$6nw~!*MYQtH2Iffeo5(;qNg2WK@}eI;7JnCA9F%g!Qo!G0Gm!T7 zKr7zD{R07dT?G$Af#R`&_9d?y5;1%)#uCL~G^l4ID(R0|nwVi`er%b)zap4;Q-_&s zJGBx3`mDT&%kmh=x)KW*i;pdf-r2sWL_^#av=j@PM1e0Kv6&z)cWD$e3|vJ0Vs8VoHn^P;b?L#K5 zrsputW|_c2^RjOw*fMX_thT2q4TC>tQq<+AzUD-TmejuR)}>c>r_s??THIQD%qcw_ z@wJ`!T&n2cOv7sj)h1Rz(ZXqrDt6Gq#dHe_WOqgJQ^R<6ybhm`{6OO1cCJq>mS@P` zN9v29j8|>iLZ-Gd?nr~I792?clFux;k9@GTlHfFGu zc`FtIR10S|6o}=}F2UXECo3I_JX^?PtOfxej(zQu_tB&1(P+$P9UA=ZQ)srirH(R-6<*VT!2)V5gwKd%ZEe{85L3URFh6b~ zH(s+h;&u`;WYMR3=)Qh($E&bC$i?z@?3R|gS;v&<_pw{RRE_U6EY3qzF=R0Q+pd#| z&Y!z`)zzE()0?-noA%PGCNcK1DqqpBwUy7mV_l{i?lfH@3V$2hUPoh@Z7!t5Z;?sf zTIg+9`W#{cGkr3&)Y5}VaR=Jdr$h8?dk(x$P1z55++qSd9K^NF)i-6Cj^_Rul_6t z#QZ1+G;GxyeWP$SwVGO4`C(Z|ja^t47BV8$0;LFn+8>sMY|Oc3Au8}U%YroGr)6)Wcw9>;uner#2y6sq3+Lj+zlUUt$t)UI@()9838igx45W_*`*1rcK?hp98~ zLH2inuts1#+PU2E&>_!$WIUn$OBF4EPHL=cyUh-?$EpQ7eBPrON1ik74T{(;U!N^Jy{SZ~1a1%988@&)d_OA1t@^J^0?urIl?47X z=!YhQXx_j^8dmW|?$l~U5d;eqKY`mg%R#icdeVAcJIpm=~vy4}?80 zmMI&=5k3H(ywVYA@CEMkbSm*`w7Z4i*1~{U?v8;3{34GKPWjh{t&bVs4lUo+f>`Du zgp+^i)fX2N4=M;)n9gHZn2^Hz^`{QRvfLC0I3dZIMXq;w^LLb=io)Mge)Jab15n}L z3(C()Oq+qiIpt@Ebk(;imvqB)Uq&M0%p01ugJXnidcc6iCN&pA1>ZiA{j(Y{h1E#e z%xrhj4Uo7BbOQ)5wYqh4~U#g4|fe zUHco=9J}9Gid#{Afrr2L1!{lk3s~G4%@Ki_9p@yzsHUP>E-z#lLf+AzRRGvgp-nUQ zR$Kb{&~C`Ii}Wk&s}cg6^jZ})alX0EJMvw_Cz*^~Prx#-I`1IdEHlj}1No-HQrIGQ zJCiDVHlm}f<%I`01(riK#q$EFrp^}F*lb_zByGpmRt%RpzuSYPt4+0}ce8(x&GL%h z<+AkF-nL+**y1Q(=~J$FUN4k*eD#qdJ&xdWLL0u?9?nJ-!R=PUP`YArkNN2hH<3}l$aeo*#Pz@1%>?~?dBEzci5i~ML)1VOh2$c zDUa6!|1I{1`bwH5`9cf$=3(IT)u-~ocr!mKPQfkUN*0o+a?JS3YM3x3@M&nrW*hpWeHTO>W zcnoD$04FoV_>eiva0K{hp--FHT0UZ(%Y>2+KE4moBC7J$En5L@$O`Klr$7s}K@&>b zmJl}+*?AYi{DK@j*Qx;X*!H0m}`p5Y821&#ru) zrw=f1N61N9`-5us+8R=`|LPKy)ljmR-37V?fuiSKf~h~d z1U~XXqB9;+{Kn6OjTvQWw8igqkBhe?Ae(5ywcn@L@lV3bTSrC{BVrBLU_&CWcdL_k z{TrKTEM*u!B_9~d!EU*!?gjREEPFmFCSvy^kcFxld}He`H#MmKJ?G~$pM)(3$8wCD z$cwhd2t8oPG@VMA8@HXqh614kydx41N*tWo9B&b`bQn5&49_I0$}O@juALKwY(M%^ zte?u(l_PPqFs9w}A1nvvUn~c~5L@*jPW7L)g1lwA@x6@BEn}@IVMG3L6y>MEc}BF< z2g2XGmOr`*JCZktbs&PeisR)Ow- zmZegRXvNs{jc3R2yuH=s2gB0kf8HH>C}4ia!c)ok0y0~>qljERpkuHFbPS$zeC;4` zZRe3WllJAw3jTCO2x%kA^+ERsE??*#agV8tc2++DzMIWgLcm}Mr6XYlItF#1UpfZG zNwn9uzaO1<3@DBf%ocwd45B|P24!2k1aYJK+cJk-k43*k4pZO%sy6%8!gkUy)2y#Y zmK9`<_&RoylgD3LpK>Ls;&mlG4ojNI$!0u211zG(d%Qk-#pECzX{^FYzB0^gnSGl1 zqPlqbYcWIBaZb*u??OH)W6x(lzQ!ltgM5#jxv4@#>_2>1{~nC>+Og4-bhMm`!y){c zhN=ln^Qu54Wlpo6;(MrEob50cW$AXUIrCt|ThurI2YX1|C;-jds0Ry=ET1dyeJ!Y_ zEvUm&TD(Bn<5&*HS^n0vfZq9a^hjZ|ojIr_7};dx->9rjdStu#fabI|NgJTg0l|Y^ zf3bFM>HXKC9Uqav;HqdV3PZ@sXBl%`FV0$N>~n+RD$%@R@xcn?Ma-T8A7}%`zl&Na zl{wOuWCk9{p7k3IJbu;2*()x$n_J^YTgWAN}0wxJ64T={bT#9>1w4qAP?9hzoHr~xwp2QbKmb#d% zpm6*7@7CmJT5pgnbY7z1O5f1`wU{7IC=1Yn3IJMAMbNLbAaKXsDC{s=iBFpB=9QFM z6#Z{O3hoQDt$zsg4#FE~%Z*d$@s*H=Mh*}Y{cY3Owwpsd$6B@IAv~EmI}$H-mJbVB z)e3ghS&BVcdoG~+rZ+X2l*RbvQuOE3Mu#NTqwA=HwI&M-bcUg$hXohbf_d81S=Y1b zPwO=E7<2?<{bp}#3h6s?hh4jib79ayp~h=tJP0?zWHUruSD|12>nXBvuRU4~xW%NE zg4M32x#4Fg>zf;A`gLv*n|KcYpaXqP@sW1qV>^NWaidD|IFqUV<`q}F$D(DCz!Ib3 z%GA2=L5(-)HDLqrhZuIhiL4IiM&zY;H6xMk;gyO@77`L_69ms7nNqNyl_enx0J>jx zA5zCAhJx-}2H;GU0?>W#bLf7#0Tcz@kA1;ivA|mcK=-vIamap!?zfZ!(EV@o&Rpny z=g@tsjbEVq9(Qx(QPBNxFX2g&y6FO6YvHI#O#%;oyGLH-E45;<^34U%Z7TsI`2AWg{0^XQ#AH{PP1 z+tEgxUxO}Kg0{<58kacki;YFX?beNl^2Hc6DrUBgaN=$urJ9dpYj4_1AYQ)gRY#n&hPvL z|9347|K3lSPW{tQxMF9VOE0@~^?%1t=m>^0s5L#P@|(sW67Z=l9W2>UA$hs1J|L|S zS-2BKTWDa8piy0>cN%Uw`>OvMS3=W_Rkj-mMjqi!5e;XEk|Prf$`AjL0uH1|Wus~g zVC#6^aG*I+*Cwe*)Hvqc6&Nh15EP`(i?$)pE@s;#;i4;=;5*j5!>3t`}TOpmLC|E0MQR3*RtTXSKg zsM&bE+}qFm^O5L1O7j4}kJTluqz1E;-sY7uXa1R6p;co)e1&A0h@0&%W3=-HqaWlr zlV)_gS3P>%{&7#bpCO2IdAMNULbYNR8`Xlt37hPUsVuXlak%NfmrB$0?!2dEqv5yuHs2XaG<*ZR zr=b6S`6Xf1O0B4NtQ6p(wW+S(Ttssu_jsYmy*;O8DiM%G?-{+>w`aatxx2h)!;NTU z(|{%+bc1O2Ux1XEi#(_qIUcoZH6|tfB>4BuNnEjg;f5mkbB+v1(;XGHj3=TVfZ0HE zg@JMTu||dky3?-Y%g;>2I1U5aU9qq1l6rS$C@7MN zuBtEXDdGRju~0b22#UQR_uCoRlt64JTLf+~rEh*zlhDwo%kgmu9|#LR@Q{FuX#--MG#osl`_-Zf+7=cJ6VxvFsb<}` z)jwbiHw2{W{%7kqb9jmX5ga6K^Ra&86Gm==%t^d?g!hpdVk@-7V*#}GZgP;82z)Cc z@|rV4&Z9A+`H84b7EMDB0$SpyEW`=2zD#G#-H>LLNzrJPi_!ybdujmhxVc~;-aZX4S;`YZaOa#W4;Df zNBHGm#^Evm6XU`F0+Gk`yfhB92jA%&Kr}(HE|?}J8w;7G8a@ET@*itzXY^Fw4@cz3 z|9|{jLoxB2pXwUd)cwX?`2FNt{NENOP;`Dy!r`T*;~SOSg7K4$&-U>z>9)}iPz@Md zGR7N_{_Q~A;rhfpU{{P!30q^?#!R)^y|5K=L zeOGZ=u(=7fYe2>dmR{qI1oGQ({pR9 zhp2{xKiBw;<9~V$Vz5CcUorfj1&MW>^Mb_SocOi9EQ*W|X~3{wH(C6&Yik|rYjja2 zMnQ|7yYo?9Vy8rJ!in?p3MxMBWS20B>!|DEz}b31(CNp`y<=dfUpAVkY*GyJoAhN&t2p?gZEm-0Z$m2Jtjp)v zCT2@J0rOo7-#LR5Fff&v-hE#CT_&#(sEoYQGjUa)ss2Dr{cD?|n4&~GnKpn(`PFh& zSHpY_`ZOS$@9;9{1+{u}q9$*;xR}h~iE!8%f1G%wv?W2qeT#0pr&X$fBa#8W-A%&- zz6&Y^4Gp%ENRQYJ=YgjMhNNS12||K6?2gIM9hOdRPaW>mk?$sq2%7Ej#^a=5$em8} zu(ui`Bs1G*aCUC$J#;k%CM>7@JA)%-O<dxo0O>-E80nzz;y)=zu=71w84{jl*$ zs}Bhhi1BOp^X`sKcbV>u1wh6tHxeZ?T%)JJn$a&NIm48hYZuX%hAEcs&+lsn&#cHg zW!$9jM&b39u0LQ8%BurHL0qNZ`hyCgG(arOBb7dIG^fQY4SEOX%H+SPY23h@M30wRapWq{yfgC)qeH5ad8!MbhHM`ZkG>SHo zJqD#J(RPFJ=N-4_+rQyF2e*PtfW!VWm1jkdnq@LlCc#@;e4#r1tVR?7FUjimY2zPwjdbT;pXC_*7x2;)>~*HfId};iJnUm5 zAdMhZFh-2p!2ky65KV#T)Z)nAK#O&MdG|71*rH_6B8c7z2n32b&~4$yb$}uK#5kWI z83=I_B_2ur;q`*e2ZQUOqn0r_#@=n6j{wANa$au^%`V!k9pYownKY{@|H3+q+fjm2 zI6BPdk@;ujlivLTit}3+*XN%N5PM>GnD>-4XpD>gbusDU1&ygg;nxBPdUF3Px$AEV zAZ2#1uadv1gX_ieM3p2$@5!<{t;QYUn1}%*MDJS$NYhMf1*KRo8V7|cH-V&|RY)>T zV1_%%`d-H+6Y$T);R&9!hhNNA*ncq*cY$MyuF_~`!4CJ~4-bAzSQZrJa&w2?R>(xnC zx;T4Xy`o1Cr+&^TfJgI1Kihjn1nHu^&ZdfiTcu*CX)?{I&S3VzdjTI6)B6CmW43#Q(aXv9 zVpy?x=uaD`8D-$ej1^3)(Z#56K8D6d9XMGOegRg3f;DzNN5H#$(W*DU?WzR&ns4b zpc&G1TaU-+vtW$c+lJ+;C%tL}2G@XQ$TRnPw>BL&y=60GQwy(%k;Ba1@i(9sau=po za^4GpX8o-fq8+lX-M3sQg0ZnCdm;s3H+sv0+A5^PVEIU7j`dtoorqd^+Z%%*pzZBh zq95_36(hO?XRDI0)VVc*qDv#(Xbo9rb4^VSvXzm>qo(5Obo()Kavg*84A{5vG`btk| z?2JVicDPa)1_rbM0Pl`DqBtDU0hRp@m_CEf_qR6P#=1ieAo8O|L;Ip*`RUyPaDO_i z?wGbSh@puNE#`^hEC*e~P|8>TOwvOI#W1I$Ee_U)GzdD`p*<;uA(i4C-s0W6EM&N& zhgY;L%BMn9EV31SnC_j`2&BbNnaoR)9hZCN*lo)H35vRQWpgl+EhD1gY)H+ovIkDh zK^fi7{eH3t-bo9fT~X(PQ($i)V{<7x=P3RirCrbMIJE)OyS=yCKcxpm&$)ismv)Lb zv~|>4yH38_AjHEWxACa`Nr=^i>HrE`$(?i{*vs9|83cZ26X$2;EV`S00l$#TtN0ekOXU*GHc z=)7<)C)^V1ADNe@w<~m%;&VHcjZ~Pzu^g;iGn9$NxI@(xUidiHm+R$eIq+q=ve|`w z;}ibKPyZhoQTJcR3okGT{;z~6;iP|59saq%d$B%(!4!sV-HSi=b0Yaw_VG~;@%sAG={EC9vL_U5s9`~;c+qG(%DmLK^Le}Jfr(*TIdR%;IuNsZPR7EOUpW(c2b*`-I0v~Umo{wk@Kez;FpEQM$6;{2eXcCEH&gKXVGv%Y`uOgH9%(2u{- z5UimPmxNRT&aJ&C&{uoYvhdn>0{a|YRbm;af{Z3r9lDM@6rp8CF~=4WYj7*lFKbOv z@`KMoYJj()3%1kqx!>nzw>M6=xv8MeK$*WbeayrS(dm96R^hh}=vFvDSU@pm4_C|( z{(&S_RM6UxH_4!W{iHDA#H{cYb8L1tQGenAulco^nZ2e!7A<#LK-cJfzN{vF{|g3F ztAYGpHG0J3{#hh|E94Bnyli`hUmm;iW@VUHyZ>NBEoLDrFhkZ#RTkT}Uv(B)g={#F ztn$b^=YMGBn-WC<<)b7_mV8-f>Jj2+YBkq76=iz@bG-odhj%gq>nX@o;y>@3Pm0Rs2|QR zGh&5|RmwIN;%p7BlmLN9e6s-3>e{er%Mi>=#}Qar^l*%#cn3sm&gTn-GvDWznLfDqG~RGOG)EIVX)Xe;7OZs+In#!hxd_MFW0Ye8PooD~ ziKsiR9Kt8%ZqTw)=RWprx&J$F0mIvRnqQ;sVrabjViVqsGZq7}w-xkcU01Y{js{J( zJH6&zLO!6q(;6gs#kyJ3>qRu#p!0`%wTk`1{6et;C&~0@&fps`xy|@YlHdF)WGmM1 z)HYqnYzK>^;=#7G0KYj>fYz@yBsLCX*Y{7-m7L`J=XW+HXtL&BHkpR*9EY&m*JzY! zwAk5A}~K2BO=4SC=Xn=M`0O!kY|cE;<;TeGl7rBUD7%WR!R9w z$W`1Q{9|yL8+Iz|8_kgT&TdW8z8>Hl6Xy7FKXJBCEw^whDpg5ScQlv8pfMC1k`}ts zVM%R1_sVR0?ctoSkJ}roiv7h-`5MZ-VuEKDYydx1bZtjYDf#>ab2_k1ab#krj})Kd z&##q9ECr}efGNRpgP@rVzqlC6sJFb?1+UTrD4VsJFIK z{wZb5gnm0}_@#m*aB1Ap1TIZ2rC)K~lx?$5N#RQdU}WLa{ZAvyV@Kqgd!K4+WRs&i z6%B+8oKS($eR549jo!ZFk`C<%LZ?+~Wit7L;JeD!kr{?`n)e(+*4dgQ97suT$~jl^ zm`@ZnrDxP+t+-B__G}_z%@Ojp`4B?ka(!<4pSBr_@S}9ZU?v~OYtdUbm)JGQKKKy3 zwxo}d^dtQ?;9JXG^{KRvsVG5rT^<-CqW26J9u^m&B5qx6_zN6etIm^l$_9X=OX7Qm z$8z(H?_N_x?OFj+)>)^jNHOoD1p~pLl`FHawDb|R3ssyn*3<>PgApcQ|J?~QR#)&? z8K`#Pn8?gg+oKDn*e9eOCrT@V+<6B?ZEcgfd;4AzLH({!s%lE%Dq>QuV3^TRjXibDdq&#M}i2%i$M zhC8t1V5Imp^Xn^LUsd!;`v_++aMaW#{L0DvNq2t2K-&tOFwlsP>XQgPmgS#dcD(3a zyiEs!8rhT2_Y>Y1Qnvo2xkr3Sxg*G> zebs82e-fiX$>c0luAy>tZU3%2L8HFu8^IqOe)eRG@|${{*Lmj^q!JShHMo?Hyzl`} z+CPNP?meADlg*W~rCjGlza23QPGQr)jlX^bNunK_mp6DvqPhTx7`IakXA4Tc0TvH} zX6~VV->4M7Vq`RQxJ$~oxb1ld;isRCR#o960vKi~DB){;@_<=H*PRb@=J1aE_- zoHMSErQ8?gzdn|M_>Q_kXV_z@%4iTdTvZXWms#QvmC8cGaavmpdBY;%&)fRuD3f6p z86MP~kf+7wC~oY1@bk_}`c(rwmwtJeK9EZQr8Ahz^2aHJfeLp9|0|*kUokNEqau{$ zlKco!h4AO|y9pf!YlCMsb=y5oCm0({h%RzJ2k~9>N45`GlIBG^43nZ-$tMTL zwtbTLxp{`1&M~>TsraR9>>n3Qgb*FIs0F~oSd94_IXy7`4{~~23gBVHS^ftP!^i&@ za+-^OWzm@(Qc_iB)#Cb^l*aCVrgMda*-+GF-n)x!OZ8)(DX7e>TX;5{2}^S@AD)4Q zK>`U9SUY+5ugn>xSuzV`t|^o7o~n)g0cP9%SfV#AbR*@I!?OdeD>l<=;5^0}Q>s|g z+WOI1@~9xbDvv!*LUrAj+ z(AV0x_@FTLdCNZDgkS1c^Dp&_&;4NGm-N#14DSt1=+yTU2w>d*i&;Gi z(<`EVjp9628empDDlq2^oj{jX#%OhRkfdB&Ej z33N$xSlj(=0CRU`RL?Nl?3=q%SLZ18;R^?KTeD62TXE5kzpQiJcrSKk+j?gqYpMJ! z({u)Qw+E2UE^rC(I0NWsxPseOcMykyH42Dyo#0DSzLewtc8lTC*NQ#g11H;GNbG6H zO#)&1E;Xciup=COapo5}qhRM3ty;u+toRI_aUk(&i%DVX#^ZK#>A2|RK)SSo1R)|o zb7|8MnU?}j3BTD&T9P=Zk^R@P^H0FJ^OB;5&RYUwAuySF`KSBE^gsW&(0_U3$?y1T zg7r&ZCzQ0T`h}kH0Y5J2@;S&F^Pb#X?N`L*GU!C!?124OQsIOkU zSz6-x+Zbq%L;Mf2h8_tJPzL;-f4?Fr^Yi~(7)$uyvey63|0?GrYWHt^CMXD#fOG|# zIR3aL3IMCQiR`cLQ(REIeBvR}LwRAhy9zKt(I^u5Rxa5gD=AKacelyhkG3ZnOiyAz zivu~a0k|FHs=OJ4cR)`yi;4;oXg_E6ny~e8fElV~-MSo2e>{PazBHF+!ykFXT;J7z zI|bVu%Gj-j9MFqOo14;rvuHsB+_@o5W8c^$t`GbyDuZme0f}E&Nre3}{qewW&KdWG z?=BYov?%5po~<(iwxP)-k{dc#m-C1oxS)mIf&*7D7e8v~4K*uJ&>g4B)N~`hEZUyy zSnjL;(y?e+&xqEeLDZ40XGH6SP6r9MUF>J?PZ)ZNzRF>~)tO5MO4n7px}QW|xu)s5 ztpazNUC&1)?yH74#s9cIFgL2F>ef0tmMgf=IF?vJ;E{Q-c^17DgX!}Kv{H=34_S-|iM=YzMioo4yL4Px^o5-i3mvk@wB~w*S05VmYXz`{^qCBjREM^C=wVdT;lTa3tws$fW z3l>(luQ}MsPIjv80h_(%j9N&dz4jd$#v+-(qCeG#Zm*N#KI{K!HV7^Nb z2~iE)#@}erORKJ8vy_BYM67IyiNxPZn}6k$;A$5tnpsbD*Y>l__1njB_V%lp?*|O$ zT`Wnz*?y~7B$Y<)O)J;f^11PL=HnHcXL0U(B>%?A-c&y4WRFA`pvoqKt+2FX2qyU#gi*?BWdyR=iT88UJfVmRb18%wq^8odEZ4@1MZ15H`)zw+s zrlP!aL|nS+hgmbPs{EvW?v;(L5#}+!T|9H$AiukPuh~g+1|CYpPTDW|g(ND^eZw5+ z2=6|o5xf`P=_N82UECNTxG=rxeCp|nlc>1q5!K7ig*7t95rP^bcP?q~pl0-*+ovG&3mBUU0S674$KX8&{a0=)waOK}R!)h%`gt__ z^kdbDeKuJh+OvSj)Yh1~*msTTlKTbR80q!Q;ea)3Tk0N{a#nnn6Btp3B$@rcg^3wl z@#Ea&)WHrOQZHK|%d4wXL_}3JchmA-B33_4SWY0GHrrRNoJSh|lvr#H!IM7IsdA!s zr2x2QyaU3$sClmi$;dlXttB6Z()Zs#_c%~BI~0J^k50*~QxHi$fZ6;8-YzHma#+s1 z%OMv*PL(UQ#6(eKy2~HujifRh(F_;*W>8*79;x?yBPZm?AMelT9Q~{G8}K-m(I=Ew zqY6=K-}uTeZC6Nuy|M|4*aZb*u(f`?nQ}xR3|KP$wDE|MsaQt#$ELpp@dJgyZ zn(e1*x14^&ZMz=~YUZgeTZ3kjy)S*Ul08~+jlX@=XMO6>1pq6y%b|RE^49c^9d%-s zK4+7^J*;-qEUJy5bxYL@S1{Bhb}88*F|ubFwW_#1_&{Un&ZqntU%wmXa_+MKf_oI5 z9>rB>{h23NxRa@};bl3sC&arE)aq!$x^M%RXNfqE6e~?uu}lnaE;Y>N=12|x$$ zS^;6!eG<2Ijg-Pl*}g%tRv$~-USnPTVKp4QVWT6|4nX5xqvRIiUQosab-*+buSkzz z^*dg&u1fQq??Cmee&cU6DVy5aWyj!y8gQ*gebTp@=7_R(-h06^TGPYzSv@p__CA%c z&p*o{ci?^#VMP0yk8 z(t&cwn5Gvs(Jh7yY!~>=`)cF^l+m|>%ArNdz-KQTanofh*D|xB5Z8vAJ z?mp!|Hj0XBd*m@#FKW*Zk#&}ekIo_9Cz*7(*Yr<>*rXGyBfvO&WS{-|*2cwZYpSd0 zNl$J(rL*Q5O&je2P;mV|vZdYkQR^{T(`_3hB>Hnn(6MTi z##M*FmaF~BBjoXP%GB|D=?LvHvqKXK7R`=I!OzTM%JzEeA85S-_frYzR?yGgjeKtC z$&gc4qZ`_0UhwZ6?v1_~W2f6lD~c=3r}gTlpzLE`%a-tSZynT36qtF)cWvIadr4fw zT}5d95_V7Yr1!RR+$iQv$zjp~1Db@`xzLpFp$hiKSsDlU93NttXekt$a)uA#Zj<<5 z_z67pp#Y#r-af()i znv*Hx6DYHGzbW)3#;o_{pd6mQ)ybJ-ne34^Ekm{t(r}Q5kMCUeczl8rG8T@!D~R5k zbjzEc3TMq@0t?dQ$UhZ(3KITXKqA0MFA0B&i1ai)bHvQ_b*UA{aI|c%a0l8{oS1$X z`?ITiAVQL~ND4jamJm1#>STWDYSCUPUfSCF;qL9d2ktlBpX#0sP{Nr*-wHJ}+;4>D zS>^VN9`m$Ul^02bVegKlnD;ZE5l8T22f+T7=-E*&xoPgP`&(EWDg;)?)V})a*$=*s z|8fxhi6c0x|N9#{GDjbA@cEl>n;Y}PV|67|6Sy`i&}QJoW${?bC_-b--@X02=y8Tb zE}O6`EB^RfoO>LFAD{nt_DxNM+2=fmFF(SDQ*s~Jznh7EWPB?jW(0y020zPUL+0c}r?SrtLO&&z zs8B3#)vfGjiGSMb+SSzuym`m16W4HyCQVL;ax_Y0+V$}qO?KA!n(g6YKC|F0A2DvQ zxEvjAHfR6)L+-YAd8gq>z-MzUF{b))#mwp4wJ@O0 z$Ue|3mm7_IwoIXRMu|QXDbF};(>2}12S65Cb7$?eU3PZo)s57nP@UW+LR7#DZo1~E z9#3d{-DMtU4c(ZT`(Ht3Hy;A_ATGeq);#3v`nNr(^W7pHgAXD{6^R30BOY^jLFih< z6Yy{@c=}v0%Jgap5j8dlsng)Uo)}w3zM-zXJrrnk&xWo zY6aP;Ab&|nW*m#yVsm&Twwa-XTYb1Qr~q30h!+=ZH>OfDr@mD0*xsbzM-n#*6b_$w zxYtPP&BFkgjaUT|&AU@&Owr1m*IAOsSf+dWi2~<8c(nb74({-kt%pGyQDU%>%q?nlPqMOEO7p$#;X(=p zn0A7X-_G{^NBo&UWD!vyssJAwm-kS#4XH~fFyiTV(V!MphC9qjT}nhH2C?34+xW|J zw4}W6^O?U*{@k_H`|wFejJeR8RNZkq`QyvTF?n6w8+lt&KVc)Df2>CrW4G2qNf&>! z9?_+BRh26a!deyqM$ycrh#w(0(gb-nrOW>zoXm3r;byTPoaP$lMNmq=iAP6HyT8OE zrjgZQGmE#o>XPkq25zwgYwx+K+tgo+sLi}yaz9{x<}6r9LpP2gAlJ2gXI!%X8JH-g zr!4kke8YF+r~44uhQT|FBK>E_W7ZLFhn1+u>gu!yvrW2wfsW){X_SDYxSEPIE2G744t&5=u;MOy2eAcYpx=@ze(T(uM>ekK={3xs9>wd7>GY zP{-$u7TG__Kj;)QyOFE(8h#`hV2t=!BV^2d9}0cC^X>we)tW_jsB|netjhe^>E;R8 ztr_ih3-M8wczZ4mJD1r0lV2^}4XF1u-1uTRU$Pxa3BN}?71#D>Vz`#O3Uiz-&J-FJ(|o9eF>CZ)ID|!u&s-a*G+fuI^*F~S0yOMK6`J?)WXb5 zUUONUuN~N-&@9XCB%E~B6`F1~#<4QtT5ZiJAX5hCThsnU0uV;*$j8X)1fZk{$pYx| zfS79}q2n_PXXx^qofDJw+tU)>#M~c+T39`Me@{B=T_C;eG2qU9@}&GhnrMgJd)7Q( zc{HjjTr;X(A%7x{Z9dx0)um+_9T`v=!`(nd679rnoJG1dANx<#Srq-mjqdaVi$i?( z*A45a?OY>gl6w$U+p9)=Yc0pO04B*iFZ@KoyQ{LhVc&o0_FND27U6N+EB9r9r$T@G zoToxK#<;a0ckQ@PWu|68_P+D$jQwEMbS~L)m&bg%N{lXGwRtfb12rCbwU#Ia@ zB4eAHKm*fRAJ*k~zM)#>OQ)*JSNJ@TZ3*6;Nsdd(xSMN^pLgE-pI7(N3gTCFaSrw@ z7FIvOPEBG!1{(QAyXEA4_ueSYbG%Ai^f_L|t{%XvJPe~}c2g_x5dIynf&lO;g2r3* z-|Qq>s!OQ6U&mbJ5ajtb+{Pp^plv5!!+EA1U6Gn8x<0dAB`uH`YnA)8&Zay}O8a1% z0W#^dD@4eT;O>|{+6-lqQSdtcEAB~aUs zYQ3aWrP{y1EoAQB{!)|t23k3OQHfM=xBSLkqCcSU8);|?1Gf!OoT z_dLO$glMT<@*;uQ@4?9)n~I%6ZaK7rZQ*zH-POlf;;#~ae7Ae2O|iz-5i?;LO?juK zpI%(7wLmWkO@ya02w!4rTrq80U~htG$WU6$7w5M!%4!r~OH*G@Ns1J;#xyn1X18^U zPcgnUZZxudaLK@eB)}+pjhsi8QW^zWrUQaN!dJzPFRs~{HfL>&U@{m_4uvnwyN(2- zbhWIWjBfe4zr-Z`BrB9WVsi$Wl1QyIZC%9`c|o~(7d~@}Uj0B6^b_ZhBEQB1~1+u9V7mTGNh*>47ec+%s{}WI zc3_#ydb}ZbA|+eR`MilnN%8r!dddY<^MGV(oj2_FznIi6`>~~S|@_Xjo zWN@*1AYnA+eW`+9#0SeNx)yZ9hDuqd=IP7LS;q&JycCe8EpHO;W!}fZPddzXCS|d2 zs4DFSAq6J|8$mf$X$IfejJV76#`8Faw6zY>j5mqN z1HqkP*5#{&*0}_oAJj)5c&~723Y_6)btWZx*MXzFu1K)YUx1|$Cxk|r;`jL%R?XNe4)cipY_2ZtR69ez*WPjwHBuR0f! z&c+GAMzv3<)%R?_M)Wx37k7OIg=QAlepIv{RIxu@$X4)XA;%$CA(Ky!W_~HB4L<~w z<3$N*l3Py|xN`t`ZHKih-J42ohW2WYnacJ@P4-3c!V@mMbrL~`Lj7#Q# z5kn|5k7Ktc1QW+_y#I}F_=uo&wM6U9jVtNJY%W-IW<_^GfytApJ8h5Gz|m=I!c*BA zHD@A4!k*7U<@1eGQW}EZ(eEGXu3exD-FSLM@3x+1;j5xo)p|=$FW3i*=wDtm6kpPb_KQCyKCV?GYkCfGE*H3Z2|b2h@{R1EhEL|?nr0jm0v0J&vy7JG{fKm7_C9-c*2fO+Z@pC5e>r%<~+Zk;{I}aUGIG@0_xXkv7JLdBI6QYfqW8xQ>=5WkP zfx_@DXp5-*Upg1-|Jw{VK)OQR`Y%1|0$1M8JP$$j36b>O$;NG6z1InVW908^)gYHV zoXTHnY(e&f&!_u{gPr%ifjDgAi;-Zrww}8BXo9NpNsmQuU)yIFe(BJK8*;>ZL_bfS zY(Xczoez}&cFd?TmxguhdtDE5vE#pxF&|}}PbJ^9?u(K|{Gybf|GJD%Ci()7vu~hX zD<>uqL-{{d9`ogKnoxY9`%GW$>Yhw{QSkx5WLe!y$!%X+vMW;UZgAnYO!kUu)D|4J zJu^OSoCUqfq=y_v-M7?bYg5i%dL#f)*k8JT_lH`x&*nN^b@`~Pw%xih`JmVFYP$sV zul17d~`1v;9{8q9)hKMosvR$j`jTs1NLIF4}iq zq?LV$BEWO`BVT00>GuzE>(ZZ~4~^Yd^L6Tt{k}^Wmoqn80(X`R5n`)%c^neI$-LOE zFSqtE=OMW_;F4;6V@0oMUM+zujGJg&06^j9akX=fDSb2};{FaHx-8|QZFN{DwaJtNVO|aTnaaj`YhRw1 zz5b8laUUqdu#ryjU0Z(mM>=AutwJeTwfy`7N%Nh%p|Sa5A(dii}P^T4wB*wLwUIK#x|SHMTP#o_!s0NeoO2}HZ?^3 zjF9N;Y@?Y7`6>4P`k2o*6PS$F!>y{F`!gIn_sl=X`jO*rTp<{!rp|k z2ylEZ%f3t2g%{+{(67-);n${Ce1k3K^iYXO(8nh* zIK6K{eDUL$re@!vpDnqJ0Y+#IO;WND?#VZo(l*=Djcb)+w09JQs%s=E$U|NqVz~Pr zBZ5HX6j@>lM*0%lE6@CIGoy{Pp;_}l$t%ZY;qi^a^pk$gSw_3@hHka+=sQ)euMqPg zwl9(mjt*0`;;zAJV;Dx2BP!E^? zuJGmZ-lHF^fPNvD5=U$~W|6CG3<7l|623rtXVa2-x!&2LU5vdRT#%-d`=_$V{F0@u z1)8jeN>r}_wcw>&0?+xPY^%x5E28NFA| zpHr{j&NVU-5T(LBrN|Uh3Rp0;Azeh%d8i*@Dc~2smpODi(NPcAr*IbK01~jBX_dVA z{3RILtUXV3KExdeOiTmB>=wKmIu!aGd-$rC-w8nW7mT7%Yj8BDF_K zYSpK{aLpUePRe)>y|BabQ93vUT@|8+d;2Ld2h5^kBrTuyUTRMmBI0rGPYgU7=tGC^ z$02x~eWyB?)!N#{=T|zWwL2qe8E}pI?9Pd^5A%q(T?J+)b`?Y@Q`a5=;PYoo0L9GB z-B2g@p(bhe7K8M4W3^@lzQ8z#!x=iJb@SzuL1i)rmdR1Xfsv|iTNA2GNSR5;KwR6foqG=NQyJIjBDTD#Ym-@0x|Gfam~f6pN9gqD&Y!;Ht!_Ks+)7`< zxF^{etbNWbpPPl-FRawpW*>Z}$~z#mKqDLOvnjZkffS^3k{{+iSY zpVr81tL`&`dz_xKhF6>Ufj8mAYP=qEr;CcJ9tB7M@gEnrQQW{w(FSm)W;TE)BOZP4 zpk$f5ryDMCaBnKuGiFuJ^5spC;VKo+ZKGzS-t`ADY|rDDMX1J~&k!w( z>8BAi^R|268|U*kjY*|=4FN#nx1Bq)vUo*bvXAjfiOl;G0$EbR8}Tg0pi}(QkUtyruD#^X@5fQnl8)qQ-wtw1i=0(~NY$><^WjiFdeEf5Zse1oYs(b4(VQ;HYq zuNg$4GI89Q?2IW5IyzmPa218ACv9{BK2*2Y3}sr6x&@!~dBn3UY^VCP&hkG^!Cm}f zIhEwIero?x_hg1E8C^OfncG;aW<+|OVk}EOI1%{!f4FteNNAv&oP0wD^`nl75IE@r*!sL z=@`Qo7L(c1{@`R?+wR|}{(SK}3z6nXlY?EPThxIqwSRJ&JOeBBfnW|_`$oXl!qCxd zpkK!Q`RSf5qeBa6B;jvOciK~m#lrnNBh8C~Xe#?Y0b$EJeJT&f^qI^%@gr|m(6bHM z_qU+)+W|RgT32K3fy$j#L++ghtEz-YTldJo<~7DP-ul`ArQ$l~x%b+9tCeW$SdHjo zghl)%E6&PHpS|Tm=U5h0LuU1T9mN1J)v7!hX>3XM^SCjxlsc7WqP3mfuZ8M6XxbL#Z~f(Kq%Mk)%bym+V-~&!3LUqhZ{WiPyN@G@%&{g}ZZQF)Du1DOc(XyAEntuT6Skm~H z&Op6;)O=xxqrS1k!ZQj)SbhIOJr^@L|9L<2?Le_kepl$LJ7Mp#Nw}=w3d>m%o3&SdpHMbG zw|OlzHa;5@5hSTMz4Da5IymG@p3(X;Q_dFM`#R38J`E?d3@Xs^fpL1wdC9mPznL>@ zsuZW%{NugeO^TwsC1|sY@s~*&&46ih%!=Zz;HUVX+9;F{lk(Bi-ckFqo1i}jlEk0a zpPkalc*5o4-V`@8L2S{YeOpN`>K}n&3jj4UWu;R0v4qKUQ@`71Vcy&CR8cT-@IM=} z7TX>6F2l0w(~Ar!(dckbiLCEj6-%UEJTx?rG_sOC<8m4f;p?t5g_|QjPsu3_CkI4X zTZmT7KN7=HXWZ$yqQIM?+a`SOj)e_B9njO(1t+=J3D~L1caQJl}1egQ)*FNp}s@VnH9cwXIWLj!uE?a z5(L@huV!HduYTdAJ_t{x#!j9kBTa>b^mm~bgM&(I>1B4wE_xv`385G%UPvS3e2x-H zt@U&AbY^ag)Em6c2D9jn2SbzwSSzEc+t^IDQqPUily;}qm{h1`4{xw^yuANlpl9w= z;6!UaHOHronc1>Q#=C%fQ3zzTtmf+eB-K=COyQ`~wDL#qR*I3*mA#-|F@|mm53EFk z1Op{9Ll{@>mR~xIJB3VyYtc=ftZx@pnVxpYD5QUGI~&nY_MrV&}DC{3?_H)fuN6 z!$NvVDtuOkN_c{);X*JD$fFdB_9*ast~9gk}K)zZ+_8F&!64T zZ_5p6lQ%!EUU*ODe$SWL@4SxLvlj|~D}Nj!S@?W3vp{w`jH3+y)8P(KwY;xyYerdi z>HIkJ*TesK+#wgIex>jRI2*C?GsgGN)LYS?VA^%tG{mU?CZzY zTAKf63Uk4y1C0Lprhom9=Mq`??@Nh)4O?u0=ZuodY+zcKfor+@0=d7yW{bsHLi5%@aE(=={@^z>DgK*+PWvsJ2P8^ zuylJK@1FXl8pl_zF0Q=3Jj*R!f&7Xpl9%n0q)B67vLG{uP8f*Z?Ktx*b;V>&Yl7Sok4}A^ID(YunLZ zy2b-qz9X^f#ps{6JdS|HbXnC%^W8n_H!W)syg@b`U;;~)qT>wDbam!K(g0j!T2 zEEu}iTu)H5^X;@TMg-f8Iz67b#Anf0-ThmOjNJZbOu2c^n*ONaLC#Qfuta71jeAsa z_u}#}Oy^{C6hk;Ijh}gdrQZ=MSC3I=v6tfXhT;MP(hp_aq`y($J37Q8F`vl&;H#7$ z=+LUITjo6vc4%&asRp>hG^-Am1FwyGx@A74o+d5DlT>HKUcy7yeCcG_S$R6g>5@Rl z%Xk@rK&E3TL>Nnt9SyZYiosY;GH-tyMp&I(#YO0z(3vDk*4X}d>qhbnDPde#nwIT! z5E|XNy(BaZ$9v!dkSB9Kjc*p45q*KDJ3QD{{Bocd$@&l3L($*bHJ9(N<`^mF#J;wR zw|<4f_m}QX;^%qXx5%wlvUJsIj^C-^)ar@ys$^KfmFSh}ZODA{jwEOCy%|Eyq%GgA zp%r&<3eJ7U&-5e|3*neS!A>UM%pQ*}PWk9aV`mp;a~yWk30Cg% zL0z+gz@Ebv2v~F0;r*u%!;^PJT$a@B?2bjSB|+woz9CTK7{O;!qR7r}T6gwhJ?e=j z=ecgg(Fx5yt$W<*7q{e(O(gB4J*d-@JXSC-Nb(-O36Y$Rr=?n!#*){RNx`<3@E=c3 z>UB?4f{k18oi)#EmeNVR48O=%9BTa2K|gBzG7vrkb(NX)@OWfAa#diG8G{sMyJygSR!(TcXXrQzs{Z!dUT?BM~ekBJ{(D zW6lMX+73@FwDlt9bI+FU+;K$BRgms+oZa>^Rcd;Iyt>wSYVt1M-l9B40F<6w+_+sT zo>H8=?1;0s*D4<@4?smA9=v_ka%O87+q@OW-0%KDVM*G&Xqjb;55EBtciY`_#5dcO zEul^i5NWV&-x^lfX)kOI&x()nB!5Q^o!ROGpPnF+VeCtlmVI%?zYU0scYkG(?aF1* zQ|(rT)RI1Vlm5j>eGwRKmNg{UgHPds%jRx;`50}7UiE&b0~zm}#r`tV)~6oMJYpOQ zYt|$B6c$LHQBP@@`ieq)&uK>dD1(F^Tt627&Ivnmhw@@HSg>Dh?^P*^2%(@r{TA!` zG(YrFdtOk`<7@Cv{rt}U`9EjuM~`u$ILjkLYGgz->e1T^_)+Pakkj@il2i#lIDJX! z#E|Jjzy&g}m96}ka;gGIz)A;00*2}c4zg(vG7G2LJUgvk7Y-(#>N81x{KLO#D;;&j zE}D9rwTG{i+xk3R>5ZtyIu3%Mhaa#r9d$W6UsCDtA$tb+0Jl5(5u0wm_tCt+`Y7q% zqv>w!o1BE5yevHW-taKK?g6$*Hvn`3(RphB3A_c}N5In|^{#N(GH0f%&&sgX0^w{@ z<5bi4RlSMR?o||1$Eztnimx@~_!;XF?&~EoA^pcE;DNl5?O6v_-KzXf{W=<>Afhri z2sga!w2jSgw_Efpck#mn zusBh7`>yWhBo--(C&NYEo;;D8iy27CTi%*yQ{7F%^(AvQkWh=CAX4kxK3ug4QSNts zO6F*a0N*D7=p7L&gIQ|m!imjZuA7`iynqQutTbYB*>U3!ym+K0CsfzH!Y-;!^Lf2k z;Ml0$k(z#m!wF)A$_=p%IWfQnxZEdy4eRd4Pwr{ggHBzSV`c)Qw@x^LM5HgL{xu3U zN1#?|LW{mQ$nVW9>}HPK;-ah;%Ba3ep=KBNyJaw3THXfULlQkmBN z^Y1T>Y*j*p{-BdD&@bdPunk`O((UufP;};Pom!3cE0Bz*8?P65hxat{nsnTl&%v4` z3JPC5_nF|5BYCgx$0-3r#d!z=UhaQ%`p@78E0YH+HK}Bbd=|Y*M zV`4`c&X)cn-JVhio^k`G3hQRJ#;^7Ef z*uNFqbPVq`IeFr8K#sqNTZWw2WB0t5n{^(NDZ%E{R)$e0YLfUNO57%FS8b&qc7W)^ zzgM4fSUDxxGdTQxJ*xQ^%L3xQMl#!QHXC!TZP#TH_nzR8F1%Opo4{05iElMNI+{Wt zQ@7x~8a4TW4zH>dv5g3|bSFA5QyADy)EBYhn5B%=Z5Mdb;afaWj#+()tNiNR7ITA@ zx+EyDUN6FPaM5~3Q1?V%Lp?yc2HbK8-!Pp1a~|&p?w>+`PCsH8;)JQDTg`=(qLM!% z6A;I<(skDTAv>;AAUP0wL*_z}?U(EDNemMX@cH+Ov|L9$$=Pi}fOd~c=W)HAO@TeN z$vaiD8n5a;?$Qjv_OrHnO1+>^LE#&?VdR0(G6=d??6au`J@uS>!)IEJsOCJnp?x^q z2x)*Igd?`b7`D_!1=DxsD&kZzpC5xxnOA&7quPlw&u1p`)2FyRw`=Mn)jYf_Q@@Xy z?}N?~G|yIhf1=7C*FV_3Xrka`=zfiNYu?K4YsoaEefrqj$Yi+#)fR%>@D`Mf70|ah zcHa#xWi1ls_S;95`7gXm32}TEMIL^HV|0_=ABO5wK^}RC=4cVZZF2bqVja<=UV;jb zc?9DYmryC7{UZXK3ZIZhXXbEc{U{XpwcTf-@O`1w#DZr;fwcW}iFy5WE_+@Tkn-B} zNLatD?&_X3CXm5f#AUGhI$j@$4D3};u3sa*%e-Ox?&z?;W=bF#l|%j-XfbK7gPjE2~s?p5i#t_uWOkVhg!WmQ6AB zm!2b37xQ~V;#5zgg^RPwt8p9~_-VwVXV&TG*uim3qM~YHWhO)v{|fsUffv9%qHji& z;{t>iaQ%Ty0t=nKRinqjq=<&3f=7UR%uGpuB4yKR5u7*A=uTN$3PT`w*H)KcJBuKB z_OzF$aiEu=Hau?sP}MinVP#79w{ht`<*#Xw=L*6hEL{`N(pu@@Y*S#evv&YfB}xqB zrOMpyys^UrcMT`1rVbal1W!1{>Ov(^HxU#0-7`s>$)NjvGHH(u&9l8}zBD9pfbg>@ za?pv3^YW5&ho+?`O7lwlZZTe_H7KH#+e#F_`)0%#cQo3KO8i*pe5|=TN^%P5b2>-~ zr)$$BLFLh2gJRP0w{cUT)2*)v z(Y`$VA)a%eOKc8>`B1b?1dD*8m+;g$bAb|rkWJx#n@8{8IrFG;8En_Fz-2ieP>Ks& z+lXz>3xt0S_x%aeaofWo1n482cMi-!d1Me@8SjiC?j{pZxGU_+sgL5{m&6js2@}TwAi@%L%IGM zWpsrYDZKx^9WBdsuQ>R16#KQXh0`p3mUV`U^oNMHUMZdBb;fTTz6Hujfvj!y`hoCl zDF24@d-VwTYtT+-)cS>?9ghiv;L3F2+cpG1<)Ax&)^X?z<;b+P5 zmcYh_7OxXyx1{phf>ltA#o}y$pa43BTiO=F7w@gF@o;vjdkI+W*K9kl&$Gi#Pgfy6 zC^-IfmGy+ab_1@7t>v8PJA|=A!4Jqqc!=`+K?$eFgRrbqO>%(Z_#k>U^ar6)VzmH5 z*QaW*IK$!wiq!2`bI;h8EG%k#oUTU~cOqhcF`66!nNzNjb^600?(XYh(}kx0uf6w- zYI5zOMO743KB3P-R3WSzWLMJpu!9tNP5Q-uoy$3>zsB}Vy0D+)j z5+FdNh7dwd+~0O@zjN-r#$&-4C(WaMp6pKGo)*ONcrF(cGqH z1cfP_kf(IBNbEpnr5+b({K<=sqO;O|qW8TuucsWB+B|kSUvWM_ZX)-=!JpE@7b-`+ z4(@CWUs7BeDE&<^ym|6Js$%;;ZkrH~TrYhCi~hIn4%wTvGX&F&qn~}x_EFn8uE^j8 z7w)PQ{ptFg`kQAseaFOr;9;`yylyM!MO}f$1}Z?NCo8zMtabE$v=+?*3+te$}C$q2m7@ccqJ;;atCc_~CoQcw|FQgY+>R60R$;&Qs;j%DXzQxGe5U)8)bObMdf=Xt}0E$FE)+7 zbMVSAaf^W~O^nk%JrTS#)X{#z257PhnfykJGn;?vs{OhBSayze&z65Cj*&>Tg;UbI z7FMc;sjE&gQDWo}ZO^%-WMqm>dbq4Z*9=}xf8k}zZ_QqxA47H@hH|5*KDd7AAR z+n)_-xHLw9nEOR^z=OTBpGJPnM>eIqH9MDV;2*if#<4BW3a@**_y2?R;&V7K^wrRIJWg>v4ZhGb5@T#7Makm z`_mD|t#59)#Obwu;2o;sWDviKKZ|B;*|?kiELFIG<({ZrQ`YULaT<+Nmb;N+LFqE} ze1PnX|HKOX#w9ZvJyPwQw1iTyZ0?<+deg=gTtGtf2B%To2HlHv;JDB@pi9!KeShO# zl7~XTqbq=WuFemiI@U#kk51lP@(|NL`#i#0^w{wmPV+lq!>@z^LdHk%Pd=F@=^uKb zbOV$1D*6vkAIvq83-*si)&$O5F{M5CC}lnW{4w+!T!>rcb&5h}UDK;ns;fN1PcDgUXVpspg3mPlh)Hn0Qe*gy-DI0}==i=3DTnWtyr4*+ULY!Cs1J-2?fOV*pA+(j{`5?bQqwLpgA!KHDk6t)2&g!S@EHKm2L7BT&~I+Xq3dalgLOCEhL_7;Je_)W9jAdRw+& zZ@*_s&+^nU3xBpsf8V>82UOG==YYm(Cta@KoYFZ(aWH;B05au{*Ad&V-Rd8>qpTDc zhJ1_bV%Mubhkq^L^<0Wa zUI$eIe1K#9#9Mi$T9HF%Ix-e#WN0}jD)eyCufpu=LI+O8^@LviU`=8=RZT)2_0{O9 zcij%_QrLvvU`n}C3r=r0krhbd1=MVQeWeg+rR*ZJXH1;DkDU8^0y?B^iFu40DPZ+S zi?OpFVed$?>-BRpym+zDIn=dkHSayMcD*0*$hX_Tn_Ol@cb>H^u z+EB-UfoT;z&R*uST?x;__M#n?uTsHvq$F#L^_?4K)~}6JKc?{2MRoW7nCa-=9$$S| z5ml-1d-#U`JU2t&R~S{`upVBS+uL%zA$)q;LwxcBj8*rXx6m-(9jhe=6+(C&B5D^!oPb)fjOsB~t$VhU5$M)5OhVr&HV8IO^LptEzwdwjBq5w$&ey12u zi%+UoUjQu0D)U1!)u}a=wo^|J1sa|-MJv@9@8L2X1pwlT{82!t?fQs3PJ3KM+-^{Q z*Rrd<{-&Q@UC@A3F4y)%(SULH%tNrZO3$UF!RVKa=G}bvwWsy| z1Is&@DaU3nGS9D9=lEcJLP9NSLDr@Sw%kjJ>k}iG#On1fOgv}`(UYR$GPB!txVXti zi=Ga)_7y@MzD2mLrBLBKSy?ViBl+sQr~UyJCdPV$t6#sqzMa4^)x}-MNZ6Y4?ZE?6 z;g?;`SZPDRZ3OdbaI>J-^=KV0mn$*}A{&_}xQ0ha$Q+g0D3upP@R6L?DtsJ5jr^FXKVs+_@{-gm^8a`KX#qLBO7 zzB@Z9a_@8T+Py}6D?9HJKMm4lH#_>cyXmEz!jykp?m6zy`ZRa@&vs0V_c&`8d`()*#L9R3 zh$I=IY+`j~hdx7NDe%x+y5ws($du9LohrICIkI7D-zcy1>{5HH3;dA35J;8j%2aJv zL`sEdZfJ`xW$%Runw7oyql$l=dLZ_rY0aeZ>h1!ee`$yZhYoo;~8T{0CLdRzX%HBgQU2g)vFTEcjgRb}A_IthqQ?GiOhS zC)Lfe#l&a7ww_S$#()1&t&1IyEW=cG4Ar#_{Mi+?>$c6xLHOsUAYp~a&g`-5rx-yX zpZ*lS4zCkr9o3b+dFZ`Z7gtg-;sn=#v))1pM@cFx;k|_{$1OdCpF;-*@uG#2rT&Hk zq!6XMVCx^b5p(Hce~Z9Y#B>fLCDj5Cd5JCFT=TBuL91(OTY?D-Z45KL_|N=QCw10h zB5z}IAJ%XDT_}q^M!z-*#hB@etEp+nnlJEjt6f&vtbYhg+#k;0nDHGdonZDbP<2`E6K9Wj6Lks=08SeAP*K!P4=RXV9;N8p9EL( z@02hd?f)`p++WWdDj8Ab>Q)RViL`KxvuOS!8ATy~N}99zmu+2qQj z`U=_%h;wtj1bu3oZ>CbT@+!e3C*7H>dGz67_0#fdyD4O#WJg9QrBzkyfjl&J=7t9s zwae~@riBy#GK&-NQMl~UE}JzKWvfb`iU%E7p6owY5$mp_Hueh`fTkVz7JY^ zFA*(ktib9U>|-V(>e6@kfs5;OnsB-KAEt6kTQ1{|*-_Cv+~k^XPihKTSx03b7JUgw zf*ba>Gdm~sfzxke*55W|Od3viGS*e%`&%!j_J~bs5!g?eA46InRqC$fvS>^!dovpOfFqNj;K{2fx2BayW&_YmZQvwhhYP&A}m=0KL;!_QnWIecO()WG7reV~=7M3!c@h%Le2AK&r z{=V;V|A&@^ye#5sI&BuU7(C%9c3}gu@dSD9*VqNAC4StXp!Xxce0eyVXQT!y9;2va zT-vGmc4P`BNsU&B|hO zdhF`%L%4TAT%We(ek9ct+*i1G-xR2po0~YVP-!gaiGiq0E|1Jk5Ab)sfB-9)wc}lj zrWNZB)`vr}{JufQ8690goKtG*e*M(vu6I+}Z|%oD2(4j;bv5uRn=UoK)fN9*EoBLv z8MU?gAq3C91PK}BQ#gXfh&aofy)JE7eccgn+GrQS_7;(xc4JfN;a=nEYhh)C={tA9 zhDqT7Zm(GQ<4nrk90L^<8NBgxvo(|jtu8UI~yDCZV#AE^xqzt5N81-eOf9RnJt{{8Eu+yQI;duSdZr23DAz` zt#l$b_4Vz%apC-|lNbb^#aVK#GwC%2KYr)>vCs2L>e+d6Ry+k3FL%DB{uJN2IPvt8 zE~QT@#Y&nwLuQ}EF4J(&Es}_7v6^;-QONkr`Z@B0bf*LU2#3kgqV|n@zWu2qUED)n z21((`u}V{|OX34J2vJ<0xiAyf2OCda9W=izDwR7Lh0J~up1lHyDq&$sNYG>IEqKRn z&#CBeip67t)1^Q7CQajt2VH|Z=S^+F@~>&-Bfj*6gm`n##`9cL^Q+U^FVZryvl7y- z#;@+40X#zZEq&@dJaH7cVww%p%A#? zkIL`C@>QHi`=o3pTOe?s3ZG2$r;2Lz*3)7x6R~>F%J|KXk(&ASpbh<`oviQS zMk9)Mn*tC4nq}6BrF-Mj#F^gE=c8WSU1<~k;-fX|riXC^eGy!2TUyxcR*GEpD>>Pz z&KR}jVaQDKHxB$8W4dH7CgN4U1G*=G>Io2JvAiShjS(1W;lLOZWu*r!8xh5pje{+e&fUkaFG+d)5XBzfe{yqEZhnZ690q z&HVc7Qgip3cuXdTKXrAbx*%e9t5#6-iZHxfgzyhjm1m0kSi`K;RmACJWz=hy%Eiaa zn^b(x_WX^$UMrnL7PYptop^XwZY|MMzs&kHPuEy1p|~0XEeIp-p`1@lGYepyWD9OvH6a z+^RCjX5&6ZmqQX2bBR{y4|20<*mO~NUGbtlv%rQ+x7Cq#Q~}mHLShA{Cfnxl74zKH z$|QFd2-mcRB`Xl68)TWGUYQZOExO`2(<7LFt%s4|p5UD+msLBOx!H|Q#gpD?CzAv; z9BaSIpPu~?R{Sstq$u8zk&oL}QV^6ENHHug)Omha(LM>TJBph4GG6xS9srAQ%e^+{ zl>~RdTD+9?-EuO%t|zSG!X1j3-2E8aOB8bBxu_ZV&13wfStsBxGa(bKqTD9vi$9t= zsLP6ex9B5Zo_E>X+J2ql@R*k(2aIcc2P1%zVN{Cg62BI6C)^bPj2X5a&e|6O= zzSVyqeN$3(8P0SNHqdwb?bU*keq<6d-sSW|Gg~Uxu&_zren389U$y*llhm?ncxS~6 z?yy@rz><-{q&geem~3OcV?|+DPL9}{b$uS@u8XHUh1{}kjQFO(1&Q~fvMc@FnC->U zpR%;-2T!o>#mUReoj1-^%~dp7p%A5d4SnxCCB(N1Y~(|BGLiYm45@KywyE#I8X<8m z8^eM?(KXaxNL{j=SSat&2xL15{=m6gPtqdXhEi>o+EUuQ{Mq)}d7xhLXa8}?ehn9M zk&u=~4{Cqj8JFkmC|sc`g1x17}EL-oKzb5^v%78<2(zPW+Ct{n(HE z=E;dHJpOwY(9A!6&;IH9^5egEJ(MT*e=hvDeGdJ9ubdK3`zbEo^k)UamM6Vf7i1Te z!(Xi}Y-ve1cVh%<*d_0!3g%9D`}!=90%XH}gmf5Yo4VAhpNLygv=1)9`1S>ce39H_Do=cQ-Gm zEWJgk#QaZok?{n(<03Opc1+!x5(9DX)L++JB)P>x`Tu@GVMMEc3#;57uH1?*&& zW`m|1?#+bFB?9iWNHvfz9Y zRrUB&iP!AUE50i0$|@*b{){MdRbLOcKzN(H6lQ>-6eCWvmh7yu{}gV?8)i%K1Lp3V zlCErUXkd5DTRD1)l#WNM4dnFt%I>`=-Qn$BNgRDEv#(3iRLNf2j%e~%!K(v1Wos6i zxt2B?_~!a=;y*GI$l8l4j;pk+ndM7=m*;EvA~qIh!{Q{_KKFSRAl*|Tpd|^7*cV=E ztq(r@qt5LR>88nof}WV+&f|fXD?(_Sw5c;B-E#&B_<}qgnJ)pZD^K6Jx#4lK-xK)D zLl1R;l3!){(h+^HWQ)<>PWOT7q(P0jzw6YqaSlGMK~fIeD9?$(^_e6%=@!Wo*HWaj zXmo^*_Y@Rc(d|3!bG7!)L36E1x?zv?Q5_1JfT-nMrrKHrNnIF@8 zS|tk<>BU3+1bWhv42K^tX-Z~sM~_^AZU`apacd1WmQW1Ua?pq5p&&|{w1Z99$z(N@N|wj|S^?J5)0p}O+DP4T2|)!V zvtf3Lm^&?=Nc8H&IlIK|gK4b;W?XqxfKpDVp{LeCOJjJR{NjTKvH({V)vQ*lq^@C* z5?{u$nqB0iFq7+vua7!d9wwA&d3LTl;Zz!Ou7^$Vd2Ka%sylQxlf>vnSqqJY;(exw znwmd2Te@rNlIwWO3`>Y#Po0YE^K(VrLme+A8&H=6j96LmlvD-d&tZzP%57B+Ss}f| zcY9OrQTY069($QSW0nB_{B`&>PoygTt&iM*H$ZOU+0xr4fs<8T561&STJB-$;w29* zsg_T{tgYU}_xA`9zl$(Z_n1vA8!zm4X1G|b+fT14bpc4c$Fw-&wAS{)IQ1_KrpY05 ze7e|!_htxks^1DT(2@=h=C=+sJ?L6)hPcz>%XS5@-m_{O>BPX*g%DW3?uPSbjWAh* z62hWMTF)9dl|`|(LOOI-FOx1YfI>qW?3J_q7%sJAsDo6a4?`)C;Ly|%AFpt2oRvXZOP?J9lxvB zU*C2QkwJq9eQehJ(d0&6cMbM%(KZvHG_^!rpH`HN-)xyt-PJ%)o^u&2;wJVqrIfUG zbN5N=YYWojyy;sR>p-Na5_1kY@V)reD9H}A)3CoY?o&a0>Sums8EM~hpOaW6Uzc(@ zoGa@5<1r8Waq|W_c3~wMQKL~^EIGY0!zV+N10-LOWZk@?bsL1_&1!P(Okyox^5~RN z7iE3>6;iei7c@k672%y8O~%U2OvEZ=WxYleyPljLs@nlz6qVF3OFwijE$|05MF-}~ z^rN7gZ+Wk8Dvi!`_k8Jim71632|jv}h%)pYVN_U2xuA^|tuysIx9Ay{9K_l?SiM57 zFXU0#&VfX_JkswiEI7yMpip@I(y82}SH9V;o#iuLinV3}Z^$E8vV2Q=K_^!FO*R=` zdHPx=vcbQpZIkX;n@YO%wnWRucd9L|cdPfUabrRnr>L{M)|HN=K=w~0YF2w%Ill}C zRuL(;KZN;Zd2nPhJUJd=On(I0rp|h4UV+jnZo!KvFT=`C(SU>avek`g*Vj9EUA)eR zY)>c_mX1{eM$CPf317J~-$pIy9mFEsb1?wM*ufw}4P|wJ3DoGV<)&UBU6;ObY^oqk zp&Cvn+U7L^d4c_Jg{~LT#UWIt;f0#Yx2szUI|n&s6FuH*$^d4-LNB3}WG)qitBSF6 zRTE4be{NiSRW8^oY$kt?1xk&&rC-Ns*`6!gdxT$LxCN>BTJt&+Ty5f%=q_XIsF5(?$Di z-y)KFwXC?09z^A|ZrrOS4Wd2Mvx?#C_rIcoB)03WO6xL;FWlMd#wGeS-pDn+k$ z@}#t50n&zZ(iJaJ`fH&yUme7H5|J z?K1T_8(Vl-zm!={ZfCXWkyrIJDe1vITIM%CO_3P0f$rx5)}yFbO9oK|0X!MtFqAWG zNIS?RlM*g+N%y)KAkhq2{RP=+*pcm0fk-3x+4*zPzG`lZ|8aDFaBfS8UpJ=Gr<9zP z;{nZmLlq1)Q4_xEFIkaRSg}RV8nC6`b|Jt;AJ^T$0)|M^(+FS9Cw+?S9v9#f)P z*6N;D?6mB(hg$9rKv8}ZTYzBq^S*j6%TwuX;4gi$1HC`2O%aZ@Zc~=h0lX)t*?4~( ze2nl$IvMGSnX!DVv~|;1v=GHuGO;N-j&J})_`Pl$QpY39)3i>d$4{Wd1#He7MLrp+ zmGAx&!$QBJPXPA9v;096tiizR@2%C?QYDt>o6v=M8-sRAuy+S zQ}GWT_UN>zBA5K)dc!?qqY)XuJ?^4y+mTc3*XVbUW80jw-tY~6inLWt)3wPNnKda2 z#8jK|pcIXh-lpzoWlo%JtyDE;YSJktLVdBCINt7?gQERW#>cl5x&NuSSJW*R2T-?k zlqBLslMZ_i-&D%B!@`i(hTXcm1BT5RRVQVm>QT$udZ>}}@v&mqbJ zvla8W;*+mfO*9K0E3YmUMvCH{*5+GobNF{{>p@2vI}HgLyHhk=&AJXeWIX2NS#s7B z&r7-uDk;G?53o~i16^RsBhzByoL|7r3Fa_zuhy3Oee8i|t#}iXe3|0+E<$eNTEVpL zVH~}>ZJAUinVS8yS(&Rm;53Nmp~euR)JSr1zsl%JY>wNsW_*8_Y>n@i(D6u5(_#+- z7oD@9h<=B@Oh%pcYU$}9l7}WwkeCh^{OJTXo81?FOSH0urB3yn0qC1Ey|!{!Qj#&< z{`S~J0C2YuQE~$!cr|s#tS~t135SJW2%FnB=0=ML@12q0LV<%S=dCD@RXfZ)!u4*& zI0a+K#}gG1xA4&AgLFAL$?25yPESN&zgE&(TxK35lYvMoDxeAVUjl^lR^%LOEc=0U zU|bIugR!BgRQK6&ZX_0*u}YP5~vJ*y0?(W*6FgrT?0gzpE_)e>{;+PJwZ zr2-lez0OtseBYN9K&XJRgo--ADd-g)$_&FpD=V+OxC*lGFtSXeb;aM5>VBe5&on

    &HxY6=XtCFW!%Pu^CqQh|l-ee(cTg#fNY8 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 literal 0 HcmV?d00001 diff --git a/blogs/zeropp/chinese/README.md b/blogs/zeropp/chinese/README.md index e4a6b5279de5..09aac2cef948 100644 --- a/blogs/zeropp/chinese/README.md +++ b/blogs/zeropp/chinese/README.md @@ -174,7 +174,7 @@ ZeRO++ 已集成到 DeepSpeed-Chat 中,以支持 ChatGPT 类模型的 RLHF 训 DeepSpeed-ZeRO++ 是 DeepSpeed 生态系统的一部分。 要了解更多信息,请访问我们的网站,在那里您可以找到详细的博客文章、教程和有用的文档。 -您还可以在我们的[英文 Twitter](https://twitter.com/MSFTDeepSpeed)、[日文 Twitter](https://twitter.com/MSFTDeepSpeedJP) 和[中文知乎](https://www.zhihu.com/people/deepspeed) 上获取最新的 DeepSpeed 新闻。 +您还可以在我们的[英文 Twitter](https://twitter.com/DeepSpeedAI)、[日文 Twitter](https://twitter.com/DeepSpeedAI_JP) 和[中文知乎](https://www.zhihu.com/people/deepspeed) 上获取最新的 DeepSpeed 新闻。 DeepSpeed 欢迎您的贡献! 我们鼓励您在 DeepSpeed GitHub 页面上报告问题、贡献 PR 并加入讨论。 有关更多详细信息,请参阅我们的贡献指南。 我们对与大学、研究实验室和公司的合作持开放态度。 对于此类请求(以及其他不适合 GitHub 的请求),请直接发送电子邮件至 。 diff --git a/blogs/zeropp/japanese/README.md b/blogs/zeropp/japanese/README.md index a4d4e68f6b02..5a76930e3f96 100644 --- a/blogs/zeropp/japanese/README.md +++ b/blogs/zeropp/japanese/README.md @@ -174,9 +174,9 @@ ZeRO++の技術的な詳細については、arXivにアップロードされた DeepSpeed-ZeRO++は、DeepSpeedエコシステムの一部です。詳細については、我々の[Webサイト](https://www.deepspeed.ai/)をご覧ください。詳細なブログ記事、チュートリアル、ドキュメントが掲載されています。 -また、[英語版Twitter](https://twitter.com/MSFTDeepSpeed)、[日本語版Twitter](https://twitter.com/MSFTDeepSpeedJP)、[中国語版Zhihuアカウント](https://www.zhihu.com/people/deepspeed)でも最新のDeepSpeedニュースを発信しています。 +また、[英語版Twitter](https://twitter.com/DeepSpeedAI)、[日本語版Twitter](https://twitter.com/DeepSpeedAI_JP)、[中国語版Zhihuアカウント](https://www.zhihu.com/people/deepspeed)でも最新のDeepSpeedニュースを発信しています。 -DeepSpeedは、皆様の開発への参加を歓迎しています。DeepSpeedのGitHubページで、バグ報告、Pull Request、ディスカッションへの参加が可能です。詳細は[ガイドライン](https://github.com/microsoft/DeepSpeed/blob/master/CONTRIBUTING.md)をご覧ください。また、大学、研究所、企業とのコラボレーションも行っています。こうしたコラボレーションについてのご要望(およびGitHubには適さないその他の話題)については まで直接メールをお送りください。 +DeepSpeedは、皆様の開発への参加を歓迎しています。DeepSpeedのGitHubページで、バグ報告、Pull Request、ディスカッションへの参加が可能です。詳細は[ガイドライン](https://github.com/deepspeedai/DeepSpeed/blob/master/CONTRIBUTING.md)をご覧ください。また、大学、研究所、企業とのコラボレーションも行っています。こうしたコラボレーションについてのご要望(およびGitHubには適さないその他の話題)については まで直接メールをお送りください。 **Contributors:** diff --git a/build_win.bat b/build_win.bat index ec8c8a362a78..627694dbe8a0 100644 --- a/build_win.bat +++ b/build_win.bat @@ -1,19 +1,16 @@ @echo off +set CUDA_HOME=%CUDA_PATH% +set DISTUTILS_USE_SDK=1 + set DS_BUILD_AIO=0 +set DS_BUILD_CUTLASS_OPS=0 +set DS_BUILD_EVOFORMER_ATTN=0 +set DS_BUILD_FP_QUANTIZER=0 +set DS_BUILD_GDS=0 +set DS_BUILD_RAGGED_DEVICE_OPS=0 set DS_BUILD_SPARSE_ATTN=0 -echo Administrative permissions required. Detecting permissions... - -net session >nul 2>&1 -if %errorLevel% == 0 ( - echo Success: Administrative permissions confirmed. -) else ( - echo Failure: Current permissions inadequate. - goto end -) - - -python setup.py bdist_wheel +python -m build --wheel --no-isolation :end diff --git a/csrc/adagrad/cpu_adagrad.cpp b/csrc/adagrad/cpu_adagrad.cpp index 563255176500..e276ad0856dd 100644 --- a/csrc/adagrad/cpu_adagrad.cpp +++ b/csrc/adagrad/cpu_adagrad.cpp @@ -5,55 +5,38 @@ #include "cpu_adagrad.h" #include +#include #include +#include #include #include #include -#if defined(__ENABLE_CUDA__) -#include -#include "cublas_v2.h" -#include "cuda.h" -#include "curand.h" -#include "custom_cuda_layers.h" -#endif +using namespace std::string_literals; static std::unordered_map> s_optimizers; // C++ interface -void Adagrad_Optimizer::Step_1(float* _params, - float* grads, - float* _exp_avg_sq, - size_t _param_size, - ds_half_precision_t* dev_params, - bool half_precision) +template +void Adagrad_Optimizer::Step_1(ds_params_precision_t* _params, + ds_params_precision_t* grads, + ds_state_precision_t* _exp_avg_sq, + size_t _param_size) { size_t rounded_size = 0; #if defined(__AVX512__) or defined(__AVX256__) - Step_AVX<1>( - &rounded_size, _params, grads, _exp_avg_sq, _param_size, dev_params, half_precision); + Step_AVX<1>(&rounded_size, _params, grads, _exp_avg_sq, _param_size); #endif if (_param_size > rounded_size) { float step_size = -1 * _alpha; - ds_half_precision_t* grads_cast_h; - ds_half_precision_t* params_cast_h; - if (half_precision) { - grads_cast_h = reinterpret_cast(grads); - params_cast_h = reinterpret_cast(_params); - } for (size_t t = rounded_size; t < _param_size; t += TILE) { size_t copy_size = TILE; if ((t + TILE) > _param_size) copy_size = _param_size - t; size_t offset = copy_size + t; -#if defined(__ENABLE_CUDA__) - if ((t / TILE) >= 2) { cudaStreamSynchronize(_streams[_buf_index]); } -#elif defined(__ENABLE_CANN__) - if ((t / TILE) >= 2) { aclrtSynchronizeStream(_streams[_buf_index].stream()); } -#endif #pragma omp parallel for for (size_t k = t; k < offset; k++) { - float grad = half_precision ? (float)grads_cast_h[k] : grads[k]; - float param = half_precision ? (float)params_cast_h[k] : _params[k]; + float grad = (float)grads[k]; + float param = (float)_params[k]; float momentum = grads[k]; float variance = _exp_avg_sq[k]; if (_weight_decay > 0) { grad = param * _weight_decay + grad; } @@ -64,58 +47,30 @@ void Adagrad_Optimizer::Step_1(float* _params, grad += _eps; grad = momentum / grad; param = grad * step_size + param; -#if defined(__ENABLE_CUDA__) or defined(__ENABLE_CANN__) - if (dev_params) _doubled_buffer[_buf_index][k - t] = param; -#endif - if (half_precision) - params_cast_h[k] = (ds_half_precision_t)param; - else - _params[k] = param; + _params[k] = param; // STORE UPDATE TERM TO GRAD'S MEMORY grads[k] = grad * step_size; _exp_avg_sq[k] = variance; } -#if defined(__ENABLE_CUDA__) - if (dev_params) { - launch_param_update( - _doubled_buffer[_buf_index], dev_params + t, (copy_size), _streams[_buf_index]); - _buf_index = !_buf_index; - } -#elif defined(__ENABLE_CANN__) - if (dev_params) { - size_t memcpy_size = copy_size * sizeof(_doubled_buffer[_buf_index][0]); - aclrtMemcpy(dev_params + t, - memcpy_size, - _doubled_buffer[_buf_index], - memcpy_size, - aclrtMemcpyKind::ACL_MEMCPY_HOST_TO_DEVICE); - - _buf_index = !_buf_index; - } -#endif } } } -void Adagrad_Optimizer::Step_4(float* _params, - float* grads, - float* _exp_avg_sq, - size_t _param_size, - ds_half_precision_t* dev_params, - bool half_precision) +template +void Adagrad_Optimizer::Step_4(ds_params_precision_t* _params, + ds_params_precision_t* grads, + ds_state_precision_t* _exp_avg_sq, + size_t _param_size) { size_t rounded_size = 0; #if defined(__AVX512__) or defined(__AVX256__) - Step_AVX<4>( - &rounded_size, _params, grads, _exp_avg_sq, _param_size, dev_params, half_precision); + Step_AVX<4>(&rounded_size, _params, grads, _exp_avg_sq, _param_size); #endif if (_param_size > rounded_size) Step_1((_params + rounded_size), (grads + rounded_size), (_exp_avg_sq + rounded_size), - (_param_size - rounded_size), - (dev_params != nullptr ? (dev_params + rounded_size) : dev_params), - half_precision); + (_param_size - rounded_size)); } int create_adagrad_optimizer(int optimizer_id, @@ -149,25 +104,77 @@ int create_adagrad_optimizer(int optimizer_id, return 0; } -void Adagrad_Optimizer::Step_8(float* _params, - float* grads, - float* _exp_avg_sq, - size_t _param_size, - ds_half_precision_t* dev_params, - bool half_precision) +template +void Adagrad_Optimizer::Step_8(ds_params_precision_t* _params, + ds_params_precision_t* grads, + ds_state_precision_t* _exp_avg_sq, + size_t _param_size) { size_t rounded_size = 0; #if defined(__AVX512__) or defined(__AVX256__) - Step_AVX<8>( - &rounded_size, _params, grads, _exp_avg_sq, _param_size, dev_params, half_precision); + Step_AVX<8>(&rounded_size, _params, grads, _exp_avg_sq, _param_size); #endif if (_param_size > rounded_size) Step_4((_params + rounded_size), (grads + rounded_size), (_exp_avg_sq + rounded_size), - (_param_size - rounded_size), - (dev_params != nullptr ? (dev_params + rounded_size) : dev_params), - half_precision); + (_param_size - rounded_size)); +} + +template +void step_invoker(std::shared_ptr opt, + void* _params, + void* grads, + void* _exp_avg_sq, + size_t _param_size) +{ + opt->Step_8((ds_params_precision_t*)(_params), + (ds_params_precision_t*)(grads), + (ds_state_precision_t*)(_exp_avg_sq), + _param_size); +} + +std::map, + std::function, void*, void*, void*, size_t)>> + invokers; + +// Fill map with template functions for each type +template +void create_invoker() +{ + invokers[std::tuple(c10::CppTypeToScalarType(), + c10::CppTypeToScalarType())] = + step_invoker; +} +struct InvokerInitializer { + InvokerInitializer() + { + create_invoker(); + create_invoker(); + create_invoker(); + create_invoker(); + create_invoker(); + } +} _invoker_initializer; + +void invoke(std::shared_ptr opt, + torch::Tensor& params, + torch::Tensor& grads, + torch::Tensor& exp_avg_sq, + size_t param_size) +{ + c10::ScalarType params_type = at::typeMetaToScalarType(params.options().dtype()); + c10::ScalarType state_type = at::typeMetaToScalarType(exp_avg_sq.options().dtype()); + + auto it = invokers.find(std::tuple(params_type, state_type)); + if (it == invokers.end()) { + throw std::runtime_error("Adagrad optimizer with param type "s + + c10::toString(params_type) + " and state type "s + + c10::toString(state_type) + + " is not supported on current hardware"s); + } + + it->second(opt, params.data_ptr(), grads.data_ptr(), exp_avg_sq.data_ptr(), param_size); } int ds_adagrad_step(int optimizer_id, @@ -183,58 +190,13 @@ int ds_adagrad_step(int optimizer_id, auto grads_c = grads.contiguous(); auto exp_avg_sq_c = exp_avg_sq.contiguous(); - float* params_ptr = (float*)params_c.data_ptr(); - float* grads_ptr = (float*)grads_c.data_ptr(); - float* exp_avg_sq_ptr = (float*)exp_avg_sq_c.data_ptr(); - std::shared_ptr opt = std::static_pointer_cast(s_optimizers[optimizer_id]); opt->IncrementStep(step); opt->update_state(lr, epsilon, weight_decay); - opt->Step_8(params_ptr, grads_ptr, exp_avg_sq_ptr, params_c.numel()); -#if defined(__ENABLE_CUDA__) or defined(__ENABLE_CANN__) - opt->SynchronizeStreams(); -#endif - return 0; -} + invoke(opt, params_c, grads_c, exp_avg_sq_c, params_c.numel()); -int ds_adagrad_step_plus_copy(int optimizer_id, - size_t step, - float lr, - float epsilon, - float weight_decay, - torch::Tensor& params, - torch::Tensor& grads, - torch::Tensor& exp_avg_sq, - torch::Tensor& gpu_params) -{ -#if defined(__ENABLE_CUDA__) or defined(__ENABLE_CANN__) - auto params_c = params.contiguous(); - auto gpu_params_c = gpu_params.contiguous(); - auto exp_avg_sq_c = exp_avg_sq.contiguous(); - auto grads_c = grads.contiguous(); - - float* params_ptr = (float*)params_c.data_ptr(); - float* grads_ptr = (float*)grads_c.data_ptr(); - ds_half_precision_t* gpu_params_ptr = (ds_half_precision_t*)gpu_params_c.data_ptr(); - float* exp_avg_sq_ptr = (float*)exp_avg_sq_c.data_ptr(); - - std::shared_ptr opt = - std::static_pointer_cast(s_optimizers[optimizer_id]); - opt->IncrementStep(step); - opt->update_state(lr, epsilon, weight_decay); - opt->Step_8(params_ptr, - grads_ptr, - exp_avg_sq_ptr, - params_c.numel(), - gpu_params_ptr, - (params.options().dtype() == at::kHalf)); - - opt->SynchronizeStreams(); -#else - assert(false); -#endif return 0; } @@ -248,9 +210,6 @@ int destroy_adagrad_optimizer(int optimizer_id) PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) { m.def("adagrad_update", &ds_adagrad_step, "DeepSpeed CPU Adagrad update (C++)"); - m.def("adagrad_update_copy", - &ds_adagrad_step_plus_copy, - "DeepSpeed CPU Adagrad update and param copy (C++)"); m.def("create_adagrad", &create_adagrad_optimizer, "DeepSpeed CPU Adagrad (C++)"); m.def("destroy_adagrad", &destroy_adagrad_optimizer, "DeepSpeed CPU Adagrad destroy (C++)"); } diff --git a/csrc/adam/cpu_adam.cpp b/csrc/adam/cpu_adam.cpp index 96809827f3e1..263c443cb4d4 100644 --- a/csrc/adam/cpu_adam.cpp +++ b/csrc/adam/cpu_adam.cpp @@ -8,9 +8,6 @@ PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) { m.def("adam_update", &ds_adam_step, "DeepSpeed CPU Adam update (C++)"); - m.def("adam_update_copy", - &ds_adam_step_plus_copy, - "DeepSpeed CPU Adam update and param copy (C++)"); m.def("create_adam", &create_adam_optimizer, "DeepSpeed CPU Adam (C++)"); m.def("destroy_adam", &destroy_adam_optimizer, "DeepSpeed CPU Adam destroy (C++)"); } diff --git a/csrc/adam/cpu_adam_impl.cpp b/csrc/adam/cpu_adam_impl.cpp index 9a4a8d956519..465aae7b9a34 100644 --- a/csrc/adam/cpu_adam_impl.cpp +++ b/csrc/adam/cpu_adam_impl.cpp @@ -5,42 +5,29 @@ #include #include +#include #include +#include #include #include #include #include "cpu_adam.h" -#if defined(__ENABLE_CUDA__) -#include -#include "cublas_v2.h" -#include "cuda.h" -#include "curand.h" -#include "custom_cuda_layers.h" -#endif - +using namespace std::string_literals; static std::unordered_map> s_optimizers; // C++ interface -void Adam_Optimizer::Step_1(float* _params, - float* grads, - float* _exp_avg, - float* _exp_avg_sq, - size_t _param_size, - ds_half_precision_t* dev_params, - bool half_precision) +template +void Adam_Optimizer::Step_1(ds_params_precision_t* _params, + ds_params_precision_t* grads, + ds_state_precision_t* _exp_avg, + ds_state_precision_t* _exp_avg_sq, + size_t _param_size) { size_t rounded_size = 0; #if defined(__AVX512__) or defined(__AVX256__) - Step_AVX<1>(&rounded_size, - _params, - grads, - _exp_avg, - _exp_avg_sq, - _param_size, - dev_params, - half_precision); + Step_AVX<1>(&rounded_size, _params, grads, _exp_avg, _exp_avg_sq, _param_size); #endif if (_param_size > rounded_size) { float betta1_minus1 = 1 - _betta1; @@ -48,26 +35,15 @@ void Adam_Optimizer::Step_1(float* _params, float step_size = -1 * _alpha / _bias_correction1; float w_decay = -1 * _alpha * _weight_decay; - ds_half_precision_t* grads_cast_h; - ds_half_precision_t* params_cast_h; - if (half_precision) { - grads_cast_h = reinterpret_cast(grads); - params_cast_h = reinterpret_cast(_params); - } for (size_t t = rounded_size; t < _param_size; t += TILE) { size_t copy_size = TILE; if ((t + TILE) > _param_size) copy_size = _param_size - t; size_t offset = copy_size + t; -#if defined(__ENABLE_CUDA__) - if ((t / TILE) >= 2) { cudaStreamSynchronize(_streams[_buf_index]); } -#elif defined(__ENABLE_CANN__) - if ((t / TILE) >= 2) { aclrtSynchronizeStream(_streams[_buf_index].stream()); } -#endif #pragma omp parallel for for (size_t k = t; k < offset; k++) { - float grad = half_precision ? (float)grads_cast_h[k] : grads[k]; - float param = half_precision ? (float)params_cast_h[k] : _params[k]; + float grad = (float)grads[k]; + float param = (float)_params[k]; float momentum = _exp_avg[k]; float variance = _exp_avg_sq[k]; if (_weight_decay > 0 && !_adamw_mode) { grad = param * _weight_decay + grad; } @@ -83,66 +59,31 @@ void Adam_Optimizer::Step_1(float* _params, grad = momentum / grad; if (_weight_decay > 0 && _adamw_mode) { param += w_decay * param; } param = grad * step_size + param; -#if defined(__ENABLE_CUDA__) or defined(__ENABLE_CANN__) - if (dev_params) _doubled_buffer[_buf_index][k - t] = param; -#endif - if (half_precision) - params_cast_h[k] = (ds_half_precision_t)param; - else - _params[k] = param; + _params[k] = param; _exp_avg[k] = momentum; _exp_avg_sq[k] = variance; } -#if defined(__ENABLE_CUDA__) - if (dev_params) { - launch_param_update( - _doubled_buffer[_buf_index], dev_params + t, (copy_size), _streams[_buf_index]); - - _buf_index = !_buf_index; - } -#elif defined(__ENABLE_CANN__) - if (dev_params) { - size_t memcpy_size = copy_size * sizeof(_doubled_buffer[_buf_index][0]); - aclrtMemcpy(dev_params + t, - memcpy_size, - _doubled_buffer[_buf_index], - memcpy_size, - aclrtMemcpyKind::ACL_MEMCPY_HOST_TO_DEVICE); - - _buf_index = !_buf_index; - } -#endif } } } -void Adam_Optimizer::Step_4(float* _params, - float* grads, - float* _exp_avg, - float* _exp_avg_sq, - size_t _param_size, - ds_half_precision_t* dev_params, - bool half_precision) +template +void Adam_Optimizer::Step_4(ds_params_precision_t* _params, + ds_params_precision_t* grads, + ds_state_precision_t* _exp_avg, + ds_state_precision_t* _exp_avg_sq, + size_t _param_size) { size_t rounded_size = 0; #if defined(__AVX512__) or defined(__AVX256__) - Step_AVX<4>(&rounded_size, - _params, - grads, - _exp_avg, - _exp_avg_sq, - _param_size, - dev_params, - half_precision); + Step_AVX<4>(&rounded_size, _params, grads, _exp_avg, _exp_avg_sq, _param_size); #endif if (_param_size > rounded_size) Step_1((_params + rounded_size), (grads + rounded_size), (_exp_avg + rounded_size), (_exp_avg_sq + rounded_size), - (_param_size - rounded_size), - (dev_params != nullptr ? (dev_params + rounded_size) : dev_params), - half_precision); + (_param_size - rounded_size)); } int create_adam_optimizer(int optimizer_id, @@ -185,33 +126,86 @@ int create_adam_optimizer(int optimizer_id, return 0; } -void Adam_Optimizer::Step_8(float* _params, - float* grads, - float* _exp_avg, - float* _exp_avg_sq, - size_t _param_size, - ds_half_precision_t* dev_params, - bool half_precision) +template +void Adam_Optimizer::Step_8(ds_params_precision_t* _params, + ds_params_precision_t* grads, + ds_state_precision_t* _exp_avg, + ds_state_precision_t* _exp_avg_sq, + size_t _param_size) { size_t rounded_size = 0; #if defined(__AVX512__) or defined(__AVX256__) - Step_AVX<8>(&rounded_size, - _params, - grads, - _exp_avg, - _exp_avg_sq, - _param_size, - dev_params, - half_precision); + Step_AVX<8>(&rounded_size, _params, grads, _exp_avg, _exp_avg_sq, _param_size); #endif if (_param_size > rounded_size) Step_4((_params + rounded_size), (grads + rounded_size), (_exp_avg + rounded_size), (_exp_avg_sq + rounded_size), - (_param_size - rounded_size), - (dev_params != nullptr ? (dev_params + rounded_size) : dev_params), - half_precision); + (_param_size - rounded_size)); +} + +template +void step_invoker(std::shared_ptr opt, + void* _params, + void* grads, + void* _exp_avg, + void* _exp_avg_sq, + size_t _param_size) +{ + opt->Step_8((ds_params_precision_t*)(_params), + (ds_params_precision_t*)(grads), + (ds_state_precision_t*)(_exp_avg), + (ds_state_precision_t*)(_exp_avg_sq), + _param_size); +} + +std::map, + std::function, void*, void*, void*, void*, size_t)>> + invokers; + +// Fill map with template functions for each type +template +void create_invoker() +{ + invokers[std::tuple(c10::CppTypeToScalarType(), + c10::CppTypeToScalarType())] = + step_invoker; +} +struct InvokerInitializer { + InvokerInitializer() + { + create_invoker(); + create_invoker(); + create_invoker(); + create_invoker(); + create_invoker(); + } +} _invoker_initializer; + +void invoke(std::shared_ptr opt, + torch::Tensor& params, + torch::Tensor& grads, + torch::Tensor& exp_avg, + torch::Tensor& exp_avg_sq, + size_t param_size) +{ + c10::ScalarType params_type = at::typeMetaToScalarType(params.options().dtype()); + c10::ScalarType state_type = at::typeMetaToScalarType(exp_avg.options().dtype()); + + auto it = invokers.find(std::tuple(params_type, state_type)); + if (it == invokers.end()) { + throw std::runtime_error("Adam optimizer with param type "s + c10::toString(params_type) + + " and state type "s + c10::toString(state_type) + + " is not supported on current hardware"s); + } + + it->second(opt, + params.data_ptr(), + grads.data_ptr(), + exp_avg.data_ptr(), + exp_avg_sq.data_ptr(), + param_size); } int ds_adam_step(int optimizer_id, @@ -232,75 +226,13 @@ int ds_adam_step(int optimizer_id, auto exp_avg_c = exp_avg.contiguous(); auto exp_avg_sq_c = exp_avg_sq.contiguous(); - // assert(params.options().dtype() == grads.options().dtype()); - - float* params_ptr = (float*)params_c.data_ptr(); - float* grads_ptr = (float*)grads_c.data_ptr(); - float* exp_avg_ptr = (float*)exp_avg_c.data_ptr(); - float* exp_avg_sq_ptr = (float*)exp_avg_sq_c.data_ptr(); - std::shared_ptr opt = std::static_pointer_cast(s_optimizers[optimizer_id]); opt->IncrementStep(step, beta1, beta2); opt->update_state(lr, epsilon, weight_decay, bias_correction); - opt->Step_8(params_ptr, - grads_ptr, - exp_avg_ptr, - exp_avg_sq_ptr, - params_c.numel(), - nullptr, - (params.options().dtype() == at::kHalf)); + invoke(opt, params_c, grads_c, exp_avg_c, exp_avg_sq_c, params_c.numel()); -#if defined(__ENABLE_CUDA__) or defined(__ENABLE_CANN__) - opt->SynchronizeStreams(); -#endif - return 0; -} - -int ds_adam_step_plus_copy(int optimizer_id, - size_t step, - float lr, - float beta1, - float beta2, - float epsilon, - float weight_decay, - bool bias_correction, - torch::Tensor& params, - torch::Tensor& grads, - torch::Tensor& exp_avg, - torch::Tensor& exp_avg_sq, - torch::Tensor& device_params) -{ -#if defined(__ENABLE_CUDA__) or defined(__ENABLE_CANN__) - auto params_c = params.contiguous(); - auto device_params_c = device_params.contiguous(); - auto exp_avg_c = exp_avg.contiguous(); - auto exp_avg_sq_c = exp_avg_sq.contiguous(); - auto grads_c = grads.contiguous(); - - float* params_ptr = (float*)params_c.data_ptr(); - float* grads_ptr = (float*)grads_c.data_ptr(); - ds_half_precision_t* device_params_ptr = (ds_half_precision_t*)device_params_c.data_ptr(); - float* exp_avg_ptr = (float*)exp_avg_c.data_ptr(); - float* exp_avg_sq_ptr = (float*)exp_avg_sq_c.data_ptr(); - - std::shared_ptr opt = - std::static_pointer_cast(s_optimizers[optimizer_id]); - opt->IncrementStep(step, beta1, beta2); - opt->update_state(lr, epsilon, weight_decay, bias_correction); - opt->Step_8(params_ptr, - grads_ptr, - exp_avg_ptr, - exp_avg_sq_ptr, - params_c.numel(), - device_params_ptr, - (params.options().dtype() == at::kHalf)); - - opt->SynchronizeStreams(); -#else - assert(false); -#endif return 0; } diff --git a/csrc/adam/multi_tensor_adam.cu b/csrc/adam/multi_tensor_adam.cu index 1b697d989b1a..a1fc7d15aec9 100644 --- a/csrc/adam/multi_tensor_adam.cu +++ b/csrc/adam/multi_tensor_adam.cu @@ -23,14 +23,14 @@ This file is adapted from fused adam in NVIDIA/apex, commit a109f85 #define BLOCK_SIZE 512 #define ILP 4 -typedef enum { +typedef enum : int { ADAM_MODE_0 = 0, // L2 regularization mode ADAM_MODE_1 = 1 // Decoupled weight decay mode(AdamW) } adamMode_t; using MATH_T = float; -template +template struct AdamFunctor { __device__ __forceinline__ void operator()(int chunk_size, volatile int* noop_gmem, @@ -48,13 +48,13 @@ struct AdamFunctor { // if(*noop_gmem == 1) // return; - int tensor_loc = tl.block_to_tensor[blockIdx.x]; + index_t tensor_loc = tl.block_to_tensor[blockIdx.x]; // potentially use to pass in list of scalar // int tensor_num = tl.start_tensor_this_launch + tensor_loc; - int chunk_idx = tl.block_to_chunk[blockIdx.x]; - int n = tl.sizes[tensor_loc]; + index_t chunk_idx = tl.block_to_chunk[blockIdx.x]; + index_t n = tl.sizes[tensor_loc]; T* g = (T*)tl.addresses[0][tensor_loc]; g += chunk_idx * chunk_size; @@ -71,7 +71,8 @@ struct AdamFunctor { n -= chunk_idx * chunk_size; // see note in multi_tensor_scale_kernel.cu - for (int i_start = 0; i_start < n && i_start < chunk_size; i_start += blockDim.x * ILP) { + for (index_t i_start = 0; i_start < n && i_start < chunk_size; + i_start += blockDim.x * ILP) { MATH_T r_g[ILP]; MATH_T r_p[ILP]; MATH_T r_m[ILP]; @@ -146,23 +147,57 @@ void multi_tensor_adam_cuda(int chunk_size, bias_correction2 = 1 - std::pow(beta2, step); } + size_t max_size = 0; + bool requires_64bit_indexing = false; + for (auto it = tensor_lists.begin(); it != tensor_lists.end(); it++) { + for (auto it2 = it->begin(); it2 != it->end(); it2++) { + if (it2->numel() > max_size) { + max_size = it2->numel(); + if (max_size >= INT_MAX) { + requires_64bit_indexing = true; + break; + } + } + } + if (requires_64bit_indexing) { break; } + } + // Assume single type across p,g,m1,m2 now - DISPATCH_DOUBLE_FLOAT_AND_HALF(tensor_lists[0][0].scalar_type(), - 0, - "adam", - multi_tensor_apply<4>(BLOCK_SIZE, - chunk_size, - noop_flag, - tensor_lists, - AdamFunctor(), - beta1, - beta2, - bias_correction1, - bias_correction2, - epsilon, - lr, - (adamMode_t)mode, - weight_decay);) + if (requires_64bit_indexing) { + DISPATCH_DOUBLE_FLOAT_AND_HALF(tensor_lists[0][0].scalar_type(), + 0, + "adam", + multi_tensor_apply<4>((int64_t)BLOCK_SIZE, + (int64_t)chunk_size, + noop_flag, + tensor_lists, + AdamFunctor(), + beta1, + beta2, + bias_correction1, + bias_correction2, + epsilon, + lr, + (adamMode_t)mode, + weight_decay);) + } else { + DISPATCH_DOUBLE_FLOAT_AND_HALF(tensor_lists[0][0].scalar_type(), + 0, + "adam", + multi_tensor_apply<4>(BLOCK_SIZE, + chunk_size, + noop_flag, + tensor_lists, + AdamFunctor(), + beta1, + beta2, + bias_correction1, + bias_correction2, + epsilon, + lr, + (adamMode_t)mode, + weight_decay);) + } AT_CUDA_CHECK(cudaGetLastError()); } diff --git a/csrc/adam/multi_tensor_apply.cuh b/csrc/adam/multi_tensor_apply.cuh index 12f41cb49c6b..342376c141be 100644 --- a/csrc/adam/multi_tensor_apply.cuh +++ b/csrc/adam/multi_tensor_apply.cuh @@ -35,7 +35,7 @@ struct TensorListMetadata { }; template -__global__ void multi_tensor_apply_kernel(int chunk_size, +__global__ void multi_tensor_apply_kernel(int64_t chunk_size, volatile int* noop_flag, T tl, U callable, @@ -46,8 +46,8 @@ __global__ void multi_tensor_apply_kernel(int chunk_size, } template -void multi_tensor_apply(int block_size, - int chunk_size, +void multi_tensor_apply(int64_t block_size, + int64_t chunk_size, const at::Tensor& noop_flag, const std::vector>& tensor_lists, T callable, @@ -91,9 +91,9 @@ void multi_tensor_apply(int block_size, tl.addresses[d][loc_tensor_info] = tensor_lists[d][t].data_ptr(); loc_tensor_info++; - int chunks_this_tensor = (tensor_lists[0][t].numel() + chunk_size - 1) / chunk_size; + auto chunks_this_tensor = (tensor_lists[0][t].numel() + chunk_size - 1) / chunk_size; - for (int chunk = 0; chunk < chunks_this_tensor; chunk++) { + for (auto chunk = 0; chunk < chunks_this_tensor; chunk++) { // std::cout << chunks_this_tensor << std::endl; tl.block_to_tensor[loc_block_info] = loc_tensor_info - 1; tl.block_to_chunk[loc_block_info] = chunk; diff --git a/csrc/aio/common/deepspeed_aio_common.cpp b/csrc/aio/common/deepspeed_aio_common.cpp index 32b0e8a32394..9d7ff5093017 100644 --- a/csrc/aio/common/deepspeed_aio_common.cpp +++ b/csrc/aio/common/deepspeed_aio_common.cpp @@ -68,8 +68,8 @@ static void _get_aio_latencies(std::vector>& raw_l std::accumulate(lat_usec.begin(), lat_usec.end(), 0) / lat_usec.size(); } -static void _do_io_submit_singles(const long long int n_iocbs, - const long long int iocb_index, +static void _do_io_submit_singles(const int64_t n_iocbs, + const int64_t iocb_index, std::unique_ptr& aio_ctxt, std::vector>& submit_times) { @@ -89,8 +89,8 @@ static void _do_io_submit_singles(const long long int n_iocbs, } } -static void _do_io_submit_block(const long long int n_iocbs, - const long long int iocb_index, +static void _do_io_submit_block(const int64_t n_iocbs, + const int64_t iocb_index, std::unique_ptr& aio_ctxt, std::vector>& submit_times) { @@ -109,18 +109,18 @@ static void _do_io_submit_block(const long long int n_iocbs, assert(submit_ret > 0); } -static int _do_io_complete(const long long int min_completes, - const long long int max_completes, +static int _do_io_complete(const int64_t min_completes, + const int64_t max_completes, std::unique_ptr& aio_ctxt, std::vector>& reap_times) { const auto start_time = std::chrono::high_resolution_clock::now(); - long long int n_completes = io_pgetevents(aio_ctxt->_io_ctxt, - min_completes, - max_completes, - aio_ctxt->_io_events.data(), - nullptr, - nullptr); + int64_t n_completes = io_pgetevents(aio_ctxt->_io_ctxt, + min_completes, + max_completes, + aio_ctxt->_io_events.data(), + nullptr, + nullptr); reap_times.push_back(std::chrono::high_resolution_clock::now() - start_time); assert(n_completes >= min_completes); return n_completes; @@ -134,7 +134,7 @@ void do_aio_operation_sequential(const bool read_op, { struct io_prep_context prep_ctxt(read_op, xfer_ctxt, aio_ctxt->_block_size, &aio_ctxt->_iocbs); - const auto num_io_blocks = static_cast( + const auto num_io_blocks = static_cast( ceil(static_cast(xfer_ctxt->_num_bytes) / aio_ctxt->_block_size)); #if DEBUG_DS_AIO_PERF const auto io_op_name = std::string(read_op ? "read" : "write"); @@ -145,15 +145,14 @@ void do_aio_operation_sequential(const bool read_op, std::vector> submit_times; std::vector> reap_times; const auto max_queue_bytes = - static_cast(aio_ctxt->_queue_depth * aio_ctxt->_block_size); + static_cast(aio_ctxt->_queue_depth * aio_ctxt->_block_size); auto start = std::chrono::high_resolution_clock::now(); - for (long long iocb_index = 0; iocb_index < num_io_blocks; - iocb_index += aio_ctxt->_queue_depth) { + for (int64_t iocb_index = 0; iocb_index < num_io_blocks; iocb_index += aio_ctxt->_queue_depth) { const auto start_offset = iocb_index * aio_ctxt->_block_size; const auto start_buffer = (char*)xfer_ctxt->_mem_buffer + start_offset; const auto n_iocbs = - min(static_cast(aio_ctxt->_queue_depth), (num_io_blocks - iocb_index)); + min(static_cast(aio_ctxt->_queue_depth), (num_io_blocks - iocb_index)); const auto num_bytes = min(max_queue_bytes, (xfer_ctxt->_num_bytes - start_offset)); prep_ctxt.prep_iocbs(n_iocbs, num_bytes, start_buffer, start_offset); @@ -268,6 +267,10 @@ void report_file_error(const char* filename, const std::string file_op, const in int open_file(const char* filename, const bool read_op) { const int flags = read_op ? (O_RDONLY | O_DIRECT) : (O_WRONLY | O_CREAT | O_DIRECT); +#if defined(__ENABLE_CANN__) + int* flags_ptr = (int*)&flags; + *flags_ptr = read_op ? (O_RDONLY) : (O_WRONLY | O_CREAT); +#endif const int mode = 0600; const auto fd = open(filename, flags, mode); if (fd == -1) { @@ -281,13 +284,14 @@ int open_file(const char* filename, const bool read_op) int regular_read(const char* filename, std::vector& buffer) { - long long int num_bytes; - const auto f_size = get_file_size(filename, num_bytes); - assert(f_size != -1); - buffer.resize(num_bytes); const auto fd = open(filename, O_RDONLY, 0600); assert(fd != -1); - long long int read_bytes = 0; + struct stat fs; + const auto result = fstat(fd, &fs); + assert(result != -1); + int64_t num_bytes = fs.st_size; + buffer.resize(num_bytes); + int64_t read_bytes = 0; auto r = 0; do { const auto buffer_ptr = buffer.data() + read_bytes; @@ -297,16 +301,15 @@ int regular_read(const char* filename, std::vector& buffer) } while (r > 0); if (read_bytes != num_bytes) { - std::cerr << "read error " - << " read_bytes (read) = " << read_bytes << " num_bytes (fstat) = " << num_bytes - << std::endl; + std::cerr << "read error " << " read_bytes (read) = " << read_bytes + << " num_bytes (fstat) = " << num_bytes << std::endl; } assert(read_bytes == num_bytes); close(fd); return 0; } -static bool _validate_buffer(const char* filename, void* aio_buffer, const long long int num_bytes) +static bool _validate_buffer(const char* filename, void* aio_buffer, const int64_t num_bytes) { std::vector regular_buffer; const auto reg_ret = regular_read(filename, regular_buffer); @@ -314,7 +317,7 @@ static bool _validate_buffer(const char* filename, void* aio_buffer, const long std::cout << "regular read of " << filename << " returned " << regular_buffer.size() << " bytes" << std::endl; - if (static_cast(regular_buffer.size()) != num_bytes) { return false; } + if (static_cast(regular_buffer.size()) != num_bytes) { return false; } return (0 == memcmp(aio_buffer, regular_buffer.data(), regular_buffer.size())); } @@ -322,7 +325,7 @@ static bool _validate_buffer(const char* filename, void* aio_buffer, const long bool validate_aio_operation(const bool read_op, const char* filename, void* aio_buffer, - const long long int num_bytes) + const int64_t num_bytes) { const auto msg_suffix = std::string("deepspeed_aio_") + std::string(read_op ? "read()" : "write()") + diff --git a/csrc/aio/common/deepspeed_aio_common.h b/csrc/aio/common/deepspeed_aio_common.h index 2940de945ee8..aa4e49f4f4ed 100644 --- a/csrc/aio/common/deepspeed_aio_common.h +++ b/csrc/aio/common/deepspeed_aio_common.h @@ -35,4 +35,4 @@ int regular_read(const char* filename, std::vector& buffer); bool validate_aio_operation(const bool read_op, const char* filename, void* aio_buffer, - const long long int num_bytes); + const int64_t num_bytes); diff --git a/csrc/aio/common/deepspeed_aio_utils.cpp b/csrc/aio/common/deepspeed_aio_utils.cpp index 763b2c253a34..fb269b58315f 100644 --- a/csrc/aio/common/deepspeed_aio_utils.cpp +++ b/csrc/aio/common/deepspeed_aio_utils.cpp @@ -18,10 +18,15 @@ const int c_block_size = 128 * 1024; const int c_io_queue_depth = 8; io_xfer_ctxt::io_xfer_ctxt(const int fd, - const long long int file_offset, - const long long int num_bytes, + const int64_t file_offset, + const int64_t buffer_offset, + const int64_t num_bytes, const void* buffer) - : _fd(fd), _base_offset(file_offset), _mem_buffer(buffer), _num_bytes(num_bytes) + : _fd(fd), + _file_base_offset(file_offset), + _buffer_base_offset(buffer_offset), + _mem_buffer(buffer), + _num_bytes(num_bytes) { } @@ -36,14 +41,15 @@ io_prep_context::io_prep_context(const bool read_op, void io_prep_context::prep_iocbs(const int n_iocbs, const size_t num_bytes, const void* start_buffer, - const long long int start_offset) + const int64_t start_offset) { assert(static_cast(n_iocbs) <= _iocbs->size()); for (auto i = 0; i < n_iocbs; ++i) { const auto shift = i * _block_size; - const auto xfer_buffer = (char*)start_buffer + _xfer_ctxt->_base_offset + shift; - const auto xfer_offset = _xfer_ctxt->_base_offset + start_offset + shift; + const auto xfer_buffer = (char*)start_buffer + _xfer_ctxt->_buffer_base_offset + shift; + const auto xfer_offset = _xfer_ctxt->_file_base_offset + start_offset + shift; auto byte_count = _block_size; + if ((shift + _block_size) > num_bytes) { byte_count = num_bytes - shift; } if (_read_op) { @@ -64,25 +70,25 @@ io_prep_generator::io_prep_generator(const bool read_op, _next_iocb_index(0) { _num_io_blocks = - static_cast(ceil(static_cast(xfer_ctxt->_num_bytes) / block_size)); + static_cast(ceil(static_cast(xfer_ctxt->_num_bytes) / block_size)); _remaining_io_blocks = _num_io_blocks; } int io_prep_generator::prep_iocbs(const int n_iocbs, std::vector* iocbs) { if ((_remaining_bytes) == 0 || (_remaining_io_blocks == 0)) { - assert(static_cast(_remaining_bytes) == _remaining_io_blocks); + assert(static_cast(_remaining_bytes) == _remaining_io_blocks); return 0; } assert(static_cast(n_iocbs) <= iocbs->size()); - auto actual_n_iocbs = min(static_cast(n_iocbs), _remaining_io_blocks); + auto actual_n_iocbs = min(static_cast(n_iocbs), _remaining_io_blocks); for (auto i = 0; i < actual_n_iocbs; ++i, ++_next_iocb_index) { - const auto xfer_offset = _xfer_ctxt->_base_offset + (_next_iocb_index * _block_size); - const auto xfer_buffer = (char*)_xfer_ctxt->_mem_buffer + xfer_offset; - const auto num_bytes = min(static_cast(_block_size), _remaining_bytes); - + const auto xfer_buffer = (char*)_xfer_ctxt->_mem_buffer + _xfer_ctxt->_buffer_base_offset + + (_next_iocb_index * _block_size); + const auto xfer_offset = _xfer_ctxt->_file_base_offset + (_next_iocb_index * _block_size); + const auto num_bytes = min(static_cast(_block_size), _remaining_bytes); if (_read_op) { io_prep_pread(iocbs->at(i), _xfer_ctxt->_fd, xfer_buffer, num_bytes, xfer_offset); } else { @@ -95,7 +101,7 @@ int io_prep_generator::prep_iocbs(const int n_iocbs, std::vector* return actual_n_iocbs; } -int get_file_size(const char* filename, long long int& size) +int get_file_size(const char* filename, int64_t& size) { struct stat st; if (stat(filename, &st) == -1) { return -1; } @@ -103,7 +109,7 @@ int get_file_size(const char* filename, long long int& size) return 0; } -void* ds_page_aligned_alloc(const size_t size, const bool lock) +void* ds_page_aligned_alloc(const int64_t size, const bool lock) { void* ptr; int retval; diff --git a/csrc/aio/common/deepspeed_aio_utils.h b/csrc/aio/common/deepspeed_aio_utils.h index 9c58c2286610..6b7599acecb4 100644 --- a/csrc/aio/common/deepspeed_aio_utils.h +++ b/csrc/aio/common/deepspeed_aio_utils.h @@ -30,13 +30,15 @@ Functionality for swapping optimizer tensors to/from (NVMe) storage devices. struct io_xfer_ctxt { const int _fd; - const long long int _base_offset; + const int64_t _file_base_offset; + const int64_t _buffer_base_offset; const void* _mem_buffer; - const long long int _num_bytes; + const int64_t _num_bytes; io_xfer_ctxt(const int fd, - const long long int file_offset, - const long long int num_bytes, + const int64_t file_offset, + const int64_t buffer_offset, + const int64_t num_bytes, const void* buffer); }; @@ -54,7 +56,7 @@ struct io_prep_context { void prep_iocbs(const int n_iocbs, const size_t num_bytes, const void* start_buffer, - const long long int start_offset); + const int64_t start_offset); }; struct io_prep_generator { @@ -62,10 +64,10 @@ struct io_prep_generator { const std::unique_ptr& _xfer_ctxt; const size_t _block_size; - long long int _remaining_bytes; - long long int _num_io_blocks; - long long int _remaining_io_blocks; - long long int _next_iocb_index; + int64_t _remaining_bytes; + int64_t _num_io_blocks; + int64_t _remaining_io_blocks; + int64_t _next_iocb_index; io_prep_generator(const bool read_op, const std::unique_ptr& xfer_ctxt, @@ -74,6 +76,6 @@ struct io_prep_generator { int prep_iocbs(const int n_iocbs, std::vector* iocbs); }; -void* ds_page_aligned_alloc(const size_t size, const bool lock = false); +void* ds_page_aligned_alloc(const int64_t size, const bool lock = false); -int get_file_size(const char* filename, long long int& size); +int get_file_size(const char* filename, int64_t& size); diff --git a/csrc/aio/py_lib/deepspeed_aio_op_desc.cpp b/csrc/aio/py_lib/deepspeed_aio_op_desc.cpp new file mode 100644 index 000000000000..945251397225 --- /dev/null +++ b/csrc/aio/py_lib/deepspeed_aio_op_desc.cpp @@ -0,0 +1,40 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 + +// DeepSpeed Team + +#include "deepspeed_aio_op_desc.h" + +using namespace std; + +io_op_desc_t::io_op_desc_t(const bool read_op, + const torch::Tensor& buffer, + const int fd, + const char* filename, + const int64_t file_num_bytes, + const int intra_op_parallelism, + const bool validate, + const int64_t file_offset) + : _read_op(read_op), + _buffer(buffer), + _fd(fd), + _filename(filename), + _file_num_bytes(file_num_bytes), + _file_offset(file_offset), + _intra_op_parallelism(intra_op_parallelism), + _num_bytes_per_thread(static_cast(buffer.nbytes()) / intra_op_parallelism), + _validate(validate) +{ +} + +char* io_op_desc_t::data_ptr() const { return (char*)_contiguous_buffer.data_ptr(); } + +void io_op_desc_t::finish() {} + +void io_op_desc_t::validate() {} + +void io_op_desc_t::run(const int tid, + std::unique_ptr& aio_ctxt, + deepspeed_aio_config_t* aio_config) +{ +} diff --git a/csrc/aio/py_lib/deepspeed_aio_op_desc.h b/csrc/aio/py_lib/deepspeed_aio_op_desc.h new file mode 100644 index 000000000000..ac1cdf90f78b --- /dev/null +++ b/csrc/aio/py_lib/deepspeed_aio_op_desc.h @@ -0,0 +1,43 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 + +// DeepSpeed Team + +#ifndef _IO_OP_DESC_T_ +#define _IO_OP_DESC_T_ +#include +#include +#include "deepspeed_py_aio.h" + +struct io_op_desc_t { + const bool _read_op; + torch::Tensor _buffer; + int _fd; + const std::string _filename; + const int64_t _file_num_bytes; + const int _intra_op_parallelism; + const int64_t _num_bytes_per_thread; + torch::Tensor _contiguous_buffer; + const bool _validate; + const int64_t _file_offset; + + io_op_desc_t(const bool read_op, + const torch::Tensor& buffer, + const int fd, + const char* filename, + const int64_t file_num_bytes, + const int intra_op_parallelism, + const bool validate, + const int64_t file_offset); + + virtual void run(const int tid, + std::unique_ptr& aio_ctxt, + deepspeed_aio_config_t* aio_config); + + virtual char* data_ptr() const; + + virtual void validate(); + + virtual void finish(); +}; +#endif // _IO_OP_DESC_T_ diff --git a/csrc/aio/py_lib/deepspeed_aio_thread.cpp b/csrc/aio/py_lib/deepspeed_aio_thread.cpp index e9c6a8505858..30c3b4914397 100644 --- a/csrc/aio/py_lib/deepspeed_aio_thread.cpp +++ b/csrc/aio/py_lib/deepspeed_aio_thread.cpp @@ -11,32 +11,6 @@ Functionality for swapping optimizer tensors to/from (NVMe) storage devices. using namespace std; -io_op_desc_t::io_op_desc_t(const bool read_op, - const torch::Tensor& buffer, - const int fd, - const char* filename, - const long long int num_bytes, - const bool validate) - : _read_op(read_op), - _buffer(buffer), - _fd(fd), - _filename(filename), - _num_bytes(num_bytes), - _validate(validate) -{ - _cpu_buffer = (_buffer.is_cuda() || _buffer.is_xpu()) ? _buffer.to(torch::kCPU).pin_memory() - : _buffer; - _contiguous_buffer = _cpu_buffer.contiguous(); -} - -char* io_op_desc_t::data_ptr() const { return (char*)_contiguous_buffer.data_ptr(); } - -void io_op_desc_t::fini() -{ - if (_read_op && _buffer.is_cuda()) { _buffer.copy_(_cpu_buffer.to(torch::kCUDA)); } - if (_read_op && _buffer.is_xpu()) { _buffer.copy_(_cpu_buffer.to(torch::kXPU)); } -} - deepspeed_aio_thread_t::deepspeed_aio_thread_t(const int tid, deepspeed_aio_config_t& aio_config) : _tid(tid), _aio_config(aio_config), @@ -63,18 +37,7 @@ void deepspeed_aio_thread_t::run() } if (next_io_op) { - const auto base_offset = next_io_op->_num_bytes * _tid; - - std::unique_ptr xfer_ctxt(new io_xfer_ctxt( - next_io_op->_fd, base_offset, next_io_op->_num_bytes, next_io_op->data_ptr())); - - if (_aio_config._overlap_events) { - do_aio_operation_overlap( - next_io_op->_read_op, _aio_ctxt, xfer_ctxt, &_aio_config, nullptr); - } else { - do_aio_operation_sequential( - next_io_op->_read_op, _aio_ctxt, xfer_ctxt, &_aio_config, nullptr); - } + next_io_op->run(_tid, _aio_ctxt, &_aio_config); { std::lock_guard lock(_complete_sync._mutex); diff --git a/csrc/aio/py_lib/deepspeed_aio_thread.h b/csrc/aio/py_lib/deepspeed_aio_thread.h index 20799ecbb018..a192804db13d 100644 --- a/csrc/aio/py_lib/deepspeed_aio_thread.h +++ b/csrc/aio/py_lib/deepspeed_aio_thread.h @@ -10,28 +10,7 @@ Functionality for swapping optimizer tensors to/from (NVMe) storage devices. #include #include #include -#include "deepspeed_py_aio.h" - -struct io_op_desc_t { - const bool _read_op; - torch::Tensor _buffer; - int _fd; - const std::string _filename; - const long long int _num_bytes; - torch::Tensor _cpu_buffer; - torch::Tensor _contiguous_buffer; - const bool _validate; - - io_op_desc_t(const bool read_op, - const torch::Tensor& buffer, - const int fd, - const char* filename, - const long long int num_bytes, - const bool validate); - - char* data_ptr() const; - void fini(); -}; +#include "deepspeed_cpu_op.h" struct thread_sync_t { std::mutex _mutex; diff --git a/csrc/aio/py_lib/deepspeed_cpu_op.cpp b/csrc/aio/py_lib/deepspeed_cpu_op.cpp new file mode 100644 index 000000000000..56fb33fb1886 --- /dev/null +++ b/csrc/aio/py_lib/deepspeed_cpu_op.cpp @@ -0,0 +1,109 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 + +// DeepSpeed Team + +#include "deepspeed_cpu_op.h" +#include "deepspeed_pin_tensor.h" + +using namespace std; + +cpu_op_desc_t::cpu_op_desc_t( + const bool read_op, + const torch::Tensor& buffer, + const std::unique_ptr& pinned_tensor_mgr, + const int fd, + const char* filename, + const int64_t file_num_bytes, + const int intra_op_parallelism, + const bool validate, + const int64_t file_offset) + : io_op_desc_t(read_op, + buffer, + fd, + filename, + file_num_bytes, + intra_op_parallelism, + validate, + file_offset), + _cpu_buffer(buffer), + _pinned_tensor_mgr(pinned_tensor_mgr), + _is_managed_bounce_buffer(false) +{ + // Need to use CPU bounce buffer if buffer is not a page-locked DRAM memory. + _use_bounce_buffer = + !(_buffer.is_cpu() && (_buffer.is_pinned() || _pinned_tensor_mgr->is_managed(_buffer))); + if (_use_bounce_buffer) { + _alloc_bounce_buffer(); + if (!_read_op) { _cpu_buffer.copy_(_buffer); } + } + _contiguous_buffer = _cpu_buffer.contiguous(); +} + +char* cpu_op_desc_t::data_ptr() const { return (char*)_contiguous_buffer.data_ptr(); } + +void cpu_op_desc_t::finish() +{ + if (_use_bounce_buffer) { + if (_read_op) { + if (_buffer.is_cuda()) { + _buffer.copy_(_cpu_buffer.to(torch::Device(torch::kCUDA, _buffer.get_device()), + /*non_blocking=*/true)); + } + if (_buffer.is_xpu()) { _buffer.copy_(_cpu_buffer.to(torch::kXPU)); } + if (_buffer.is_cpu()) { _buffer.copy_(_cpu_buffer); } +#if defined(__ENABLE_CANN__) + if (torch_npu::utils::is_npu(_buffer)) { + auto device = at::Device("npu:0"); + _buffer.copy_(_cpu_buffer.to(device)); + } +#endif + } + + _free_bounce_buffer(); + } +} + +void cpu_op_desc_t::validate() +{ + validate_aio_operation(_read_op, _filename.c_str(), data_ptr(), _file_num_bytes); +} + +void cpu_op_desc_t::run(const int tid, + std::unique_ptr& aio_ctxt, + deepspeed_aio_config_t* aio_config) +{ + assert(tid < _intra_op_parallelism); + const auto buffer_base_offset = _num_bytes_per_thread * tid; + const auto file_base_offset = _file_offset + (_num_bytes_per_thread * tid); + + std::unique_ptr xfer_ctxt(new io_xfer_ctxt( + _fd, file_base_offset, buffer_base_offset, _num_bytes_per_thread, data_ptr())); + + if (aio_config->_overlap_events) { + do_aio_operation_overlap(_read_op, aio_ctxt, xfer_ctxt, aio_config, nullptr); + } else { + do_aio_operation_sequential(_read_op, aio_ctxt, xfer_ctxt, aio_config, nullptr); + } +} + +void cpu_op_desc_t::_alloc_bounce_buffer() +{ + auto options = torch::TensorOptions() + .dtype(_buffer.dtype()) + .layout(_buffer.layout()) + .device(torch::kCPU) + .requires_grad(false); + +#if defined(__CUDA_ARCH__) + _cpu_buffer = torch::empty(_buffer.numel(), options).pin_memory(); +#else + _is_managed_bounce_buffer = true; + _cpu_buffer = _pinned_tensor_mgr->alloc(_buffer.numel(), options); +#endif +} + +void cpu_op_desc_t::_free_bounce_buffer() +{ + if (_is_managed_bounce_buffer) { _pinned_tensor_mgr->free(_cpu_buffer); } +} diff --git a/csrc/aio/py_lib/deepspeed_cpu_op.h b/csrc/aio/py_lib/deepspeed_cpu_op.h new file mode 100644 index 000000000000..debaf4a90731 --- /dev/null +++ b/csrc/aio/py_lib/deepspeed_cpu_op.h @@ -0,0 +1,38 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 + +// DeepSpeed Team + +#include +#include +#include "deepspeed_aio_op_desc.h" + +struct cpu_op_desc_t : io_op_desc_t { + torch::Tensor _cpu_buffer; + bool _use_bounce_buffer; + bool _is_managed_bounce_buffer; + const std::unique_ptr& _pinned_tensor_mgr; + + cpu_op_desc_t(const bool read_op, + const torch::Tensor& buffer, + const std::unique_ptr& pinned_tensor_mgr, + const int fd, + const char* filename, + const int64_t file_num_bytes, + const int intra_op_parallelism, + const bool validate, + const int64_t file_offset); + + void run(const int tid, + std::unique_ptr& aio_ctxt, + deepspeed_aio_config_t* aio_config); + + char* data_ptr() const; + + void validate(); + + void finish(); + + void _alloc_bounce_buffer(); + void _free_bounce_buffer(); +}; diff --git a/csrc/aio/py_lib/deepspeed_pin_tensor.cpp b/csrc/aio/py_lib/deepspeed_pin_tensor.cpp index 752823dc7dd2..a97a4ac18ba8 100644 --- a/csrc/aio/py_lib/deepspeed_pin_tensor.cpp +++ b/csrc/aio/py_lib/deepspeed_pin_tensor.cpp @@ -15,21 +15,28 @@ deepspeed_pin_tensor_t::~deepspeed_pin_tensor_t() { for (auto iter = _locked_tensors.begin(); iter != _locked_tensors.end(); ++iter) { munlock(iter->first, iter->second); + std::free((void*)iter->first); } _locked_tensors.clear(); } -torch::Tensor deepspeed_pin_tensor_t::alloc(const size_t num_elem, const at::ScalarType& elem_type) +torch::Tensor deepspeed_pin_tensor_t::alloc(const int64_t num_elem, + const torch::TensorOptions& options) { - const auto num_bytes = num_elem * elementSize(elem_type); + const auto scalar_dtype = torch::typeMetaToScalarType(options.dtype()); + const auto num_bytes = num_elem * torch::elementSize(scalar_dtype); auto pinned_buffer = ds_page_aligned_alloc(num_bytes, true); assert(nullptr != pinned_buffer); _locked_tensors[pinned_buffer] = num_bytes; - auto options = torch::TensorOptions().dtype(elem_type).device(torch::kCPU); + return at::from_blob(pinned_buffer, static_cast(num_elem), options); +} - return at::from_blob(pinned_buffer, static_cast(num_bytes), options); +torch::Tensor deepspeed_pin_tensor_t::alloc(const int64_t num_elem, const at::ScalarType& elem_type) +{ + auto options = torch::TensorOptions().dtype(elem_type).device(torch::kCPU).requires_grad(false); + return alloc(num_elem, options); } bool deepspeed_pin_tensor_t::free(torch::Tensor& locked_tensor) @@ -37,9 +44,18 @@ bool deepspeed_pin_tensor_t::free(torch::Tensor& locked_tensor) auto addr = locked_tensor.data_ptr(); if (_locked_tensors.find(addr) != _locked_tensors.end()) { munlock(addr, _locked_tensors[addr]); + std::free(addr); _locked_tensors.erase(addr); return true; } return false; } + +bool deepspeed_pin_tensor_t::is_managed(const torch::Tensor& buffer) +{ + if (!buffer.is_cpu()) { return false; } + auto addr = buffer.data_ptr(); + if (_locked_tensors.find(addr) != _locked_tensors.end()) { return true; } + return false; +}; diff --git a/csrc/aio/py_lib/deepspeed_pin_tensor.h b/csrc/aio/py_lib/deepspeed_pin_tensor.h index 4350a4ac7df6..4b8ad7e76085 100644 --- a/csrc/aio/py_lib/deepspeed_pin_tensor.h +++ b/csrc/aio/py_lib/deepspeed_pin_tensor.h @@ -15,13 +15,16 @@ Functionality for managing CPU tensors occupying page-locked memory. #include "deepspeed_py_aio.h" struct deepspeed_pin_tensor_t { - std::map _locked_tensors; + std::map _locked_tensors; deepspeed_pin_tensor_t() = default; ~deepspeed_pin_tensor_t(); - torch::Tensor alloc(const size_t num_elem, const at::ScalarType& elem_type); + torch::Tensor alloc(const int64_t num_elem, const at::ScalarType& elem_type); + torch::Tensor alloc(const int64_t num_elem, const torch::TensorOptions& options); bool free(torch::Tensor& locked_tensor); + + bool is_managed(const torch::Tensor& buffer); }; diff --git a/csrc/aio/py_lib/deepspeed_py_aio.cpp b/csrc/aio/py_lib/deepspeed_py_aio.cpp index 387b713f2bfc..1ff0397043fa 100644 --- a/csrc/aio/py_lib/deepspeed_py_aio.cpp +++ b/csrc/aio/py_lib/deepspeed_py_aio.cpp @@ -4,9 +4,6 @@ // DeepSpeed Team /* -Copyright 2020 The Microsoft DeepSpeed Team -Licensed under the MIT license. - Functionality for swapping optimizer tensors to/from (NVMe) storage devices. */ @@ -54,8 +51,10 @@ int deepspeed_py_aio_write(const torch::Tensor& buffer, if (fd == -1) { return -1; } auto write_buffer = (char*)buffer.data_ptr(); - const auto num_write_bytes = static_cast(buffer.nbytes()); - std::unique_ptr xfer_ctxt(new io_xfer_ctxt(fd, 0, num_write_bytes, write_buffer)); + const auto num_write_bytes = static_cast(buffer.nbytes()); + + std::unique_ptr xfer_ctxt( + new io_xfer_ctxt(fd, 0, 0, num_write_bytes, write_buffer)); std::unique_ptr aio_ctxt(new aio_context(config._block_size, config._queue_depth)); if (config._overlap_events) { @@ -72,9 +71,8 @@ int deepspeed_py_aio_write(const torch::Tensor& buffer, const std::chrono::duration fn_time = std::chrono::high_resolution_clock::now() - start_time; - std::cout << "Elapsed time(usec): " - << "aio = " << aio_time.count() * 1e6 << " call = " << fn_time.count() * 1e6 - << std::endl; + std::cout << "Elapsed time(usec): " << "aio = " << aio_time.count() * 1e6 + << " call = " << fn_time.count() * 1e6 << std::endl; return 0; } @@ -87,7 +85,7 @@ int deepspeed_py_aio_read(torch::Tensor& buffer, const bool validate) { const auto start_time = std::chrono::high_resolution_clock::now(); - long long num_file_bytes; + int64_t num_file_bytes; if (-1 == get_file_size(filename, num_file_bytes)) { const auto error_code = errno; report_file_error(filename, " fstat for read", error_code); @@ -99,9 +97,10 @@ int deepspeed_py_aio_read(torch::Tensor& buffer, if (fd == -1) { return -1; } auto read_buffer = (char*)buffer.data_ptr(); - assert(static_cast(buffer.nbytes()) == num_file_bytes); + assert(static_cast(buffer.nbytes()) == num_file_bytes); - std::unique_ptr xfer_ctxt(new io_xfer_ctxt(fd, 0, num_file_bytes, read_buffer)); + std::unique_ptr xfer_ctxt( + new io_xfer_ctxt(fd, 0, 0, num_file_bytes, read_buffer)); std::unique_ptr aio_ctxt(new aio_context(config._block_size, config._queue_depth)); if (config._overlap_events) { @@ -118,8 +117,7 @@ int deepspeed_py_aio_read(torch::Tensor& buffer, const std::chrono::duration fn_time = std::chrono::high_resolution_clock::now() - start_time; - std::cout << "Elapsed time(usec): " - << "aio = " << aio_time.count() * 1e6 << " call = " << fn_time.count() * 1e6 - << std::endl; + std::cout << "Elapsed time(usec): " << "aio = " << aio_time.count() * 1e6 + << " call = " << fn_time.count() * 1e6 << std::endl; return 0; } diff --git a/csrc/aio/py_lib/deepspeed_py_aio.h b/csrc/aio/py_lib/deepspeed_py_aio.h index 11d5225de9f1..ba794db5440d 100644 --- a/csrc/aio/py_lib/deepspeed_py_aio.h +++ b/csrc/aio/py_lib/deepspeed_py_aio.h @@ -4,10 +4,7 @@ // DeepSpeed Team /* -Copyright 2020 The Microsoft DeepSpeed Team -Licensed under the MIT license. - -Functionality for swapping optimizer tensors to/from (NVMe) storage devices. +Functionality for swapping tensors to/from (NVMe) storage devices. */ #include diff --git a/csrc/aio/py_lib/deepspeed_py_aio_handle.cpp b/csrc/aio/py_lib/deepspeed_py_aio_handle.cpp index c21e92de9449..2b1093e99286 100644 --- a/csrc/aio/py_lib/deepspeed_py_aio_handle.cpp +++ b/csrc/aio/py_lib/deepspeed_py_aio_handle.cpp @@ -4,295 +4,25 @@ // DeepSpeed Team /* -Copyright 2020 The Microsoft DeepSpeed Team -Licensed under the MIT license. - Functionality for swapping optimizer tensors to/from (NVMe) storage devices. */ #include "deepspeed_py_aio_handle.h" +#include using namespace std; -static void _start_aio_thread(std::shared_ptr ctxt) { ctxt->run(); } - deepspeed_aio_handle_t::deepspeed_aio_handle_t(const int block_size, const int queue_depth, const bool single_submit, const bool overlap_events, - const int num_threads) - : _aio_ctxt(new aio_context(block_size, queue_depth)), - _single_submit(single_submit), - _overlap_events(overlap_events), - _num_threads(num_threads), - _aio_config(block_size, queue_depth, single_submit, overlap_events, false), - _num_pending_ops(0), - _pinned_tensor_mgr(new deepspeed_pin_tensor_t()) -{ - for (auto i = 0; i < num_threads; ++i) { - _thread_contexts.push_back(std::make_shared(i, _aio_config)); - } - - for (auto& ctxt : _thread_contexts) { - _threads.push_back(std::thread(_start_aio_thread, ctxt)); - } -} - -deepspeed_aio_handle_t::~deepspeed_aio_handle_t() -{ - _stop_threads(); - for (auto& thr : _threads) { thr.join(); } -} - -const int deepspeed_aio_handle_t::get_block_size() const -{ - return _aio_ctxt ? _aio_ctxt->_block_size : -1; -} - -const int deepspeed_aio_handle_t::get_queue_depth() const -{ - return _aio_ctxt ? _aio_ctxt->_queue_depth : -1; -} - -const bool deepspeed_aio_handle_t::get_single_submit() const { return _single_submit; } - -const bool deepspeed_aio_handle_t::get_overlap_events() const { return _overlap_events; } - -const int deepspeed_aio_handle_t::get_thread_count() const { return _num_threads; } - -int deepspeed_aio_handle_t::read(torch::Tensor& buffer, const char* filename, const bool validate) -{ - const auto start_time = std::chrono::high_resolution_clock::now(); - - assert(_aio_ctxt); - - long long num_file_bytes; - if (-1 == get_file_size(filename, num_file_bytes)) { - const auto error_code = errno; - report_file_error(filename, " fstat for read", error_code); - return -1; - } - assert(static_cast(buffer.nbytes()) == num_file_bytes); - - const auto fd = open_file(filename, true); - if (fd == -1) { return -1; } - - auto read_buffer = (char*)buffer.data_ptr(); - std::unique_ptr xfer_ctxt(new io_xfer_ctxt(fd, 0, num_file_bytes, read_buffer)); - - if (_aio_config._overlap_events) { - do_aio_operation_overlap(true, _aio_ctxt, xfer_ctxt, &_aio_config, nullptr); - } else { - do_aio_operation_sequential(true, _aio_ctxt, xfer_ctxt, &_aio_config, nullptr); - } - - close(fd); - const std::chrono::duration aio_time = - std::chrono::high_resolution_clock::now() - start_time; - - if (validate) { validate_aio_operation(true, filename, read_buffer, num_file_bytes); } - const std::chrono::duration fn_time = - std::chrono::high_resolution_clock::now() - start_time; - std::cout << "Elapsed time(usec): " - << "aio = " << aio_time.count() * 1e6 << " call = " << fn_time.count() * 1e6 - << std::endl; - return 0; -} - -int deepspeed_aio_handle_t::write(const torch::Tensor& buffer, - const char* filename, - const bool validate) + const int intra_op_parallelism) + : deepspeed_io_handle_t(block_size, + queue_depth, + single_submit, + overlap_events, + intra_op_parallelism) { - assert(_aio_ctxt); - - const auto start_time = std::chrono::high_resolution_clock::now(); - - const auto fd = open_file(filename, false); - if (fd == -1) { return -1; } - - auto write_buffer = (char*)buffer.data_ptr(); - const auto num_write_bytes = static_cast(buffer.nbytes()); - std::unique_ptr xfer_ctxt(new io_xfer_ctxt(fd, 0, num_write_bytes, write_buffer)); - - if (_aio_config._overlap_events) { - do_aio_operation_overlap(false, _aio_ctxt, xfer_ctxt, &_aio_config, nullptr); - } else { - do_aio_operation_sequential(false, _aio_ctxt, xfer_ctxt, &_aio_config, nullptr); - } - const std::chrono::duration aio_time = - std::chrono::high_resolution_clock::now() - start_time; - - close(fd); - - if (validate) { validate_aio_operation(false, filename, write_buffer, num_write_bytes); } - - const std::chrono::duration fn_time = - std::chrono::high_resolution_clock::now() - start_time; - std::cout << "Elapsed time(usec): " - << "aio = " << aio_time.count() * 1e6 << " call = " << fn_time.count() * 1e6 - << std::endl; - return 0; } -void deepspeed_aio_handle_t::_schedule_aio_work(std::shared_ptr scheduled_op) -{ - for (auto& ctxt : _thread_contexts) { - { - std::lock_guard lock(ctxt->_work_sync._mutex); - ctxt->_work_queue.push(scheduled_op); - } - ctxt->_work_sync._cond_var.notify_one(); - } - _num_pending_ops++; -} - -std::shared_ptr deepspeed_aio_handle_t::_wait_for_aio_work() -{ - std::shared_ptr completed_op = nullptr; - for (auto& ctxt : _thread_contexts) { - std::unique_lock lock(ctxt->_complete_sync._mutex); - ctxt->_complete_sync._cond_var.wait(lock, - [ctxt] { return !ctxt->_complete_queue.empty(); }); - completed_op = ctxt->_complete_queue.front(); - ctxt->_complete_queue.pop(); - } - return completed_op; -} - -void deepspeed_aio_handle_t::_stop_threads() -{ - assert(0 == _num_pending_ops); - for (auto& ctxt : _thread_contexts) { - { - std::lock_guard lock(ctxt->_work_sync._mutex); - ctxt->_time_to_exit = true; - } - ctxt->_work_sync._cond_var.notify_one(); - } -} - -int deepspeed_aio_handle_t::wait() -{ - assert(_num_pending_ops > 0); - auto num_completed_ops = 0; - - while (_num_pending_ops > 0) { - auto completed_op = _wait_for_aio_work(); - - completed_op->fini(); - - close(completed_op->_fd); - - if (completed_op->_validate) { - validate_aio_operation(completed_op->_read_op, - completed_op->_filename.c_str(), - completed_op->data_ptr(), - _num_threads * completed_op->_num_bytes); - } - --_num_pending_ops; - ++num_completed_ops; - } - - return num_completed_ops; -} - -bool deepspeed_aio_handle_t::_is_valid_parallel_aio_op(const bool read_op, - const long long int num_bytes) -{ - const auto op_string = read_op ? "Read" : "Write"; - if (num_bytes % get_thread_count()) { - std::cout << "deepspeed_aio failure: parallel " << op_string << " num_bytes = " << num_bytes - << " not divisible by thread count = " << get_thread_count() << std::endl; - return false; - } - - return true; -} - -int deepspeed_aio_handle_t::pread(const torch::Tensor& buffer, - const char* filename, - const bool validate, - const bool async) -{ - long long num_file_bytes; - if (-1 == get_file_size(filename, num_file_bytes)) { - const auto error_code = errno; - report_file_error(filename, " fstat for read", error_code); - return -1; - } - const auto buffer_bytes = static_cast(buffer.nbytes()); - if (buffer_bytes != num_file_bytes) { - std::cout << filename << ": buffer nbytes != file bytes " << buffer_bytes - << " != " << num_file_bytes << std::endl; - } - assert(static_cast(buffer.nbytes()) == num_file_bytes); - assert((num_file_bytes % _num_threads) == 0); - - if (!_is_valid_parallel_aio_op(true, num_file_bytes)) { return -1; } - - const auto fd = open_file(filename, true); - if (fd == -1) { return -1; } - - auto scheduled_op = std::make_shared( - true, buffer, fd, filename, (num_file_bytes / _num_threads), validate); - - _schedule_aio_work(scheduled_op); - - if (async) { return 0; } - - return wait(); -} - -int deepspeed_aio_handle_t::pwrite(const torch::Tensor& buffer, - const char* filename, - const bool validate, - const bool async) -{ - const auto num_write_bytes = static_cast(buffer.nbytes()); - assert((num_write_bytes % _num_threads) == 0); - - if (!_is_valid_parallel_aio_op(false, num_write_bytes)) { return -1; } - - const auto fd = open_file(filename, false); - if (fd == -1) { return -1; } - - auto scheduled_op = std::make_shared( - false, buffer, fd, filename, (num_write_bytes / _num_threads), validate); - - _schedule_aio_work(scheduled_op); - - if (async) { return 0; } - - return wait(); -} - -int deepspeed_aio_handle_t::sync_pread(torch::Tensor& buffer, const char* filename) -{ - return pread(buffer, filename, false, false); -} - -int deepspeed_aio_handle_t::sync_pwrite(const torch::Tensor& buffer, const char* filename) -{ - return pwrite(buffer, filename, false, false); -} - -int deepspeed_aio_handle_t::async_pread(torch::Tensor& buffer, const char* filename) -{ - return pread(buffer, filename, false, true); -} - -int deepspeed_aio_handle_t::async_pwrite(const torch::Tensor& buffer, const char* filename) -{ - return pwrite(buffer, filename, false, true); -} - -at::Tensor deepspeed_aio_handle_t::new_cpu_locked_tensor(const size_t num_elem, - const torch::Tensor& example_tensor) -{ - return _pinned_tensor_mgr->alloc(num_elem, example_tensor.scalar_type()); -} - -bool deepspeed_aio_handle_t::free_cpu_locked_tensor(torch::Tensor& locked_tensor) -{ - return _pinned_tensor_mgr->free(locked_tensor); -} +deepspeed_aio_handle_t::~deepspeed_aio_handle_t() {} diff --git a/csrc/aio/py_lib/deepspeed_py_aio_handle.h b/csrc/aio/py_lib/deepspeed_py_aio_handle.h index 3a254c3814a2..1398df9a56c9 100644 --- a/csrc/aio/py_lib/deepspeed_py_aio_handle.h +++ b/csrc/aio/py_lib/deepspeed_py_aio_handle.h @@ -9,69 +9,14 @@ Functionality for swapping optimizer tensors to/from (NVMe) storage devices. #include #include -#include "deepspeed_aio_thread.h" -#include "deepspeed_pin_tensor.h" - -struct deepspeed_aio_handle_t { - std::unique_ptr _aio_ctxt; - const bool _single_submit; - const bool _overlap_events; - const int _num_threads; - deepspeed_aio_config_t _aio_config; - - std::vector> _thread_contexts; - std::vector _threads; - int _num_pending_ops; - std::unique_ptr _pinned_tensor_mgr; +#include "deepspeed_py_io_handle.h" +struct deepspeed_aio_handle_t : deepspeed_io_handle_t { deepspeed_aio_handle_t(const int block_size, const int queue_depth, const bool single_submit, const bool overlap_events, - const int num_threads); + const int intra_op_parallelism); ~deepspeed_aio_handle_t(); - - const int get_block_size() const; - const int get_queue_depth() const; - const bool get_single_submit() const; - const bool get_overlap_events() const; - const int get_thread_count() const; - - int read(torch::Tensor& buffer, const char* filename, const bool validate); - - int write(const torch::Tensor& buffer, const char* filename, const bool validate); - - int pread(const torch::Tensor& buffer, - const char* filename, - const bool validate, - const bool async); - - int pwrite(const torch::Tensor& buffer, - const char* filename, - const bool validate, - const bool async); - - int sync_pread(torch::Tensor& buffer, const char* filename); - - int sync_pwrite(const torch::Tensor& buffer, const char* filename); - - int async_pread(torch::Tensor& buffer, const char* filename); - - int async_pwrite(const torch::Tensor& buffer, const char* filename); - - // TODO: Make API's args to be shape and dtype. - torch::Tensor new_cpu_locked_tensor(const size_t num_elem, const torch::Tensor& example_tensor); - - bool free_cpu_locked_tensor(torch::Tensor&); - - int wait(); - - void _stop_threads(); - - void _schedule_aio_work(std::shared_ptr scheduled_op); - - std::shared_ptr _wait_for_aio_work(); - - bool _is_valid_parallel_aio_op(const bool read_op, const long long int num_bytes); }; diff --git a/csrc/aio/py_lib/deepspeed_py_copy.cpp b/csrc/aio/py_lib/deepspeed_py_copy.cpp index 8a59107dd347..f5480e9d9d83 100644 --- a/csrc/aio/py_lib/deepspeed_py_copy.cpp +++ b/csrc/aio/py_lib/deepspeed_py_copy.cpp @@ -4,13 +4,13 @@ // DeepSpeed Team /* -Functionality for swapping optimizer tensors to/from (NVMe) storage devices. +Functionality for swapping tensors to/from (NVMe) storage devices. */ #include "deepspeed_py_copy.h" #include -#define ROUND_DOWN(size, step) ((size) & ~((step)-1)) +#define ROUND_DOWN(size, step) ((size) & ~((step) - 1)) #if defined(__AVX512__) or defined(__AVX256__) union AVX_Data { diff --git a/csrc/aio/py_lib/deepspeed_py_copy.h b/csrc/aio/py_lib/deepspeed_py_copy.h index 19ba28317d00..f443571a3e7b 100644 --- a/csrc/aio/py_lib/deepspeed_py_copy.h +++ b/csrc/aio/py_lib/deepspeed_py_copy.h @@ -4,9 +4,6 @@ // DeepSpeed Team /* -Copyright 2020 The Microsoft DeepSpeed Team -Licensed under the MIT license. - Functionality for swapping optimizer tensors to/from (NVMe) storage devices. */ diff --git a/csrc/aio/py_lib/deepspeed_py_io_handle.cpp b/csrc/aio/py_lib/deepspeed_py_io_handle.cpp new file mode 100644 index 000000000000..64d7c2e0541e --- /dev/null +++ b/csrc/aio/py_lib/deepspeed_py_io_handle.cpp @@ -0,0 +1,322 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 + +// DeepSpeed Team + +/* +Functionality for swapping optimizer tensors to/from (NVMe) storage devices. +*/ + +#include "deepspeed_py_io_handle.h" +#include + +using namespace std; + +static void _start_aio_thread(std::shared_ptr ctxt) { ctxt->run(); } + +deepspeed_io_handle_t::deepspeed_io_handle_t(const int block_size, + const int queue_depth, + const bool single_submit, + const bool overlap_events, + const int intra_op_parallelism) + : _aio_ctxt(new aio_context(block_size, queue_depth)), + _single_submit(single_submit), + _overlap_events(overlap_events), + _intra_op_parallelism(intra_op_parallelism), + _aio_config(block_size, queue_depth, single_submit, overlap_events, false), + _num_pending_ops(0), + _pinned_tensor_mgr(new deepspeed_pin_tensor_t()) +{ + for (auto i = 0; i < intra_op_parallelism; ++i) { + _thread_contexts.push_back(std::make_shared(i, _aio_config)); + } + + for (auto& ctxt : _thread_contexts) { + _threads.push_back(std::thread(_start_aio_thread, ctxt)); + } +} + +deepspeed_io_handle_t::~deepspeed_io_handle_t() +{ + _stop_threads(); + for (auto& thr : _threads) { thr.join(); } +} + +const int deepspeed_io_handle_t::get_block_size() const +{ + return _aio_ctxt ? _aio_ctxt->_block_size : -1; +} + +const int deepspeed_io_handle_t::get_queue_depth() const +{ + return _aio_ctxt ? _aio_ctxt->_queue_depth : -1; +} + +const bool deepspeed_io_handle_t::get_single_submit() const { return _single_submit; } + +const bool deepspeed_io_handle_t::get_overlap_events() const { return _overlap_events; } + +const int deepspeed_io_handle_t::get_intra_op_parallelism() const { return _intra_op_parallelism; } + +int deepspeed_io_handle_t::read(torch::Tensor& buffer, + const char* filename, + const bool validate, + const int64_t file_offset) +{ + const auto start_time = std::chrono::high_resolution_clock::now(); + + assert(_aio_ctxt); + + int64_t num_file_bytes; + if (-1 == get_file_size(filename, num_file_bytes)) { + const auto error_code = errno; + report_file_error(filename, " fstat for read", error_code); + return -1; + } + assert(static_cast(buffer.nbytes()) == num_file_bytes); + + const auto fd = open_file(filename, true); + if (fd == -1) { return -1; } + + auto read_buffer = (char*)buffer.data_ptr(); + std::unique_ptr xfer_ctxt( + new io_xfer_ctxt(fd, file_offset, 0, num_file_bytes, read_buffer)); + + if (_aio_config._overlap_events) { + do_aio_operation_overlap(true, _aio_ctxt, xfer_ctxt, &_aio_config, nullptr); + } else { + do_aio_operation_sequential(true, _aio_ctxt, xfer_ctxt, &_aio_config, nullptr); + } + + close(fd); + const std::chrono::duration aio_time = + std::chrono::high_resolution_clock::now() - start_time; + + if (validate) { validate_aio_operation(true, filename, read_buffer, num_file_bytes); } + const std::chrono::duration fn_time = + std::chrono::high_resolution_clock::now() - start_time; + std::cout << "Elapsed time(usec): " << "aio = " << aio_time.count() * 1e6 + << " call = " << fn_time.count() * 1e6 << std::endl; + return 0; +} + +int deepspeed_io_handle_t::write(const torch::Tensor& buffer, + const char* filename, + const bool validate, + const int64_t file_offset) +{ + assert(_aio_ctxt); + + const auto start_time = std::chrono::high_resolution_clock::now(); + + const auto fd = open_file(filename, false); + if (fd == -1) { return -1; } + + auto write_buffer = (char*)buffer.data_ptr(); + const auto num_write_bytes = static_cast(buffer.nbytes()); + std::unique_ptr xfer_ctxt( + new io_xfer_ctxt(fd, file_offset, 0, num_write_bytes, write_buffer)); + + if (_aio_config._overlap_events) { + do_aio_operation_overlap(false, _aio_ctxt, xfer_ctxt, &_aio_config, nullptr); + } else { + do_aio_operation_sequential(false, _aio_ctxt, xfer_ctxt, &_aio_config, nullptr); + } + const std::chrono::duration aio_time = + std::chrono::high_resolution_clock::now() - start_time; + + close(fd); + + if (validate) { validate_aio_operation(false, filename, write_buffer, num_write_bytes); } + + const std::chrono::duration fn_time = + std::chrono::high_resolution_clock::now() - start_time; + std::cout << "Elapsed time(usec): " << "aio = " << aio_time.count() * 1e6 + << " call = " << fn_time.count() * 1e6 << std::endl; + return 0; +} + +void deepspeed_io_handle_t::_schedule_aio_work(std::shared_ptr scheduled_op) +{ + for (auto& ctxt : _thread_contexts) { + { + std::lock_guard lock(ctxt->_work_sync._mutex); + ctxt->_work_queue.push(scheduled_op); + } + ctxt->_work_sync._cond_var.notify_one(); + } + _num_pending_ops++; +} + +std::shared_ptr deepspeed_io_handle_t::_wait_for_aio_work() +{ + std::shared_ptr completed_op = nullptr; + for (auto& ctxt : _thread_contexts) { + std::unique_lock lock(ctxt->_complete_sync._mutex); + ctxt->_complete_sync._cond_var.wait(lock, + [ctxt] { return !ctxt->_complete_queue.empty(); }); + completed_op = ctxt->_complete_queue.front(); + ctxt->_complete_queue.pop(); + } + return completed_op; +} + +void deepspeed_io_handle_t::_stop_threads() +{ + assert(0 == _num_pending_ops); + for (auto& ctxt : _thread_contexts) { + { + std::lock_guard lock(ctxt->_work_sync._mutex); + ctxt->_time_to_exit = true; + } + ctxt->_work_sync._cond_var.notify_one(); + } +} + +int deepspeed_io_handle_t::wait() +{ + assert(_num_pending_ops > 0); + auto num_completed_ops = 0; + + while (_num_pending_ops > 0) { + auto completed_op = _wait_for_aio_work(); + + if (completed_op->_validate) { completed_op->validate(); } + + completed_op->finish(); + + close(completed_op->_fd); + + --_num_pending_ops; + ++num_completed_ops; + } + + return num_completed_ops; +} + +bool deepspeed_io_handle_t::_is_valid_parallel_aio_op(const bool read_op, const int64_t num_bytes) +{ + const auto op_string = read_op ? "Read" : "Write"; + if (num_bytes % get_intra_op_parallelism()) { + std::cout << "deepspeed_aio failure: parallel " << op_string << " num_bytes = " << num_bytes + << " not divisible by thread count = " << get_intra_op_parallelism() << std::endl; + return false; + } + + return true; +} + +std::shared_ptr deepspeed_io_handle_t::_create_io_op_desc( + const bool read_op, + const torch::Tensor& buffer, + const int fd, + const char* filename, + const int64_t file_num_bytes, + const bool validate, + const int64_t file_offset) +{ + return std::make_shared(read_op, + buffer, + _pinned_tensor_mgr, + fd, + filename, + file_num_bytes, + _intra_op_parallelism, + validate, + file_offset); +} + +int deepspeed_io_handle_t::pread(const torch::Tensor& buffer, + const char* filename, + const bool validate, + const bool async, + const int64_t file_offset) +{ + int64_t num_file_bytes; + if (-1 == get_file_size(filename, num_file_bytes)) { + const auto error_code = errno; + report_file_error(filename, " fstat for read", error_code); + return -1; + } + + // buffer can exceed file size to enable 4k alignment + const auto buffer_bytes = static_cast(buffer.nbytes()); + assert((num_file_bytes % _intra_op_parallelism) == 0); + + if (!_is_valid_parallel_aio_op(true, buffer_bytes)) { return -1; } + + const auto fd = open_file(filename, true); + if (fd == -1) { return -1; } + + auto scheduled_op = + _create_io_op_desc(true, buffer, fd, filename, num_file_bytes, validate, file_offset); + + _schedule_aio_work(scheduled_op); + + if (async) { return 0; } + + return wait(); +} + +int deepspeed_io_handle_t::pwrite(const torch::Tensor& buffer, + const char* filename, + const bool validate, + const bool async, + const int64_t file_offset) +{ + const auto num_write_bytes = static_cast(buffer.nbytes()); + assert((num_write_bytes % _intra_op_parallelism) == 0); + + if (!_is_valid_parallel_aio_op(false, num_write_bytes)) { return -1; } + + const auto fd = open_file(filename, false); + if (fd == -1) { return -1; } + + auto scheduled_op = + _create_io_op_desc(false, buffer, fd, filename, num_write_bytes, validate, file_offset); + + _schedule_aio_work(scheduled_op); + + if (async) { return 0; } + + return wait(); +} + +int deepspeed_io_handle_t::sync_pread(torch::Tensor& buffer, + const char* filename, + const int64_t file_offset) +{ + return pread(buffer, filename, false, false, file_offset); +} + +int deepspeed_io_handle_t::sync_pwrite(const torch::Tensor& buffer, + const char* filename, + const int64_t file_offset) +{ + return pwrite(buffer, filename, false, false, file_offset); +} + +int deepspeed_io_handle_t::async_pread(torch::Tensor& buffer, + const char* filename, + const int64_t file_offset) +{ + return pread(buffer, filename, false, true, file_offset); +} + +int deepspeed_io_handle_t::async_pwrite(const torch::Tensor& buffer, + const char* filename, + const int64_t file_offset) +{ + return pwrite(buffer, filename, false, true, file_offset); +} + +at::Tensor deepspeed_io_handle_t::new_cpu_locked_tensor(const int64_t num_elem, + const torch::Tensor& example_tensor) +{ + return _pinned_tensor_mgr->alloc(num_elem, example_tensor.scalar_type()); +} + +bool deepspeed_io_handle_t::free_cpu_locked_tensor(torch::Tensor& locked_tensor) +{ + return _pinned_tensor_mgr->free(locked_tensor); +} diff --git a/csrc/aio/py_lib/deepspeed_py_io_handle.h b/csrc/aio/py_lib/deepspeed_py_io_handle.h new file mode 100644 index 000000000000..dfcb4125ab9a --- /dev/null +++ b/csrc/aio/py_lib/deepspeed_py_io_handle.h @@ -0,0 +1,94 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 + +// DeepSpeed Team + +/* +Functionality for swapping optimizer tensors to/from (NVMe) storage devices. +*/ + +#include +#include +#include "deepspeed_aio_thread.h" +#include "deepspeed_pin_tensor.h" + +struct deepspeed_io_handle_t { + std::unique_ptr _aio_ctxt; + const bool _single_submit; + const bool _overlap_events; + const int _intra_op_parallelism; + deepspeed_aio_config_t _aio_config; + + std::vector> _thread_contexts; + std::vector _threads; + int _num_pending_ops; + std::unique_ptr _pinned_tensor_mgr; + + deepspeed_io_handle_t(const int block_size, + const int queue_depth, + const bool single_submit, + const bool overlap_events, + const int intra_op_parallelism); + + virtual ~deepspeed_io_handle_t() = 0; + + const int get_block_size() const; + const int get_queue_depth() const; + const bool get_single_submit() const; + const bool get_overlap_events() const; + const int get_intra_op_parallelism() const; + + int read(torch::Tensor& buffer, + const char* filename, + const bool validate, + const int64_t file_offset); + + int write(const torch::Tensor& buffer, + const char* filename, + const bool validate, + const int64_t file_offset); + + int pread(const torch::Tensor& buffer, + const char* filename, + const bool validate, + const bool async, + const int64_t file_offset); + + int pwrite(const torch::Tensor& buffer, + const char* filename, + const bool validate, + const bool async, + const int64_t file_offset); + + int sync_pread(torch::Tensor& buffer, const char* filename, const int64_t file_offset); + + int sync_pwrite(const torch::Tensor& buffer, const char* filename, const int64_t file_offset); + + int async_pread(torch::Tensor& buffer, const char* filename, const int64_t file_offset); + + int async_pwrite(const torch::Tensor& buffer, const char* filename, const int64_t file_offset); + + // TODO: Make API's args to be shape and dtype. + torch::Tensor new_cpu_locked_tensor(const int64_t num_elem, + const torch::Tensor& example_tensor); + + bool free_cpu_locked_tensor(torch::Tensor&); + + int wait(); + + void _stop_threads(); + + void _schedule_aio_work(std::shared_ptr scheduled_op); + + std::shared_ptr _wait_for_aio_work(); + + bool _is_valid_parallel_aio_op(const bool read_op, const int64_t num_bytes); + + virtual std::shared_ptr _create_io_op_desc(const bool read_op, + const torch::Tensor& buffer, + const int fd, + const char* filename, + const int64_t file_num_bytes, + const bool validate, + const int64_t file_offset); +}; diff --git a/csrc/aio/py_lib/py_ds_aio.cpp b/csrc/aio/py_lib/py_ds_aio.cpp old mode 100755 new mode 100644 index 9033549bc0d2..bf298b691b81 --- a/csrc/aio/py_lib/py_ds_aio.cpp +++ b/csrc/aio/py_lib/py_ds_aio.cpp @@ -10,6 +10,7 @@ Functionality for swapping optimizer tensors to/from (NVMe) storage devices. #include #include "deepspeed_py_aio_handle.h" #include "deepspeed_py_copy.h" +using namespace pybind11::literals; PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) { @@ -20,27 +21,96 @@ PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) m.def("deepspeed_memcpy", &deepspeed_py_memcpy, "DeepSpeed Memory Copy"); py::class_(m, "aio_handle") - .def(py::init()) + .def(py::init(), + "AIO handle constructor", + "block_size"_a = 1024 * 1024, + "queue_depth"_a = 128, + "single_submit"_a = false, + "overlap_events"_a = false, + "intra_op_parallelism"_a = 1) .def("get_block_size", &deepspeed_aio_handle_t::get_block_size) .def("get_queue_depth", &deepspeed_aio_handle_t::get_queue_depth) .def("get_single_submit", &deepspeed_aio_handle_t::get_single_submit) .def("get_overlap_events", &deepspeed_aio_handle_t::get_overlap_events) - .def("get_thread_count", &deepspeed_aio_handle_t::get_thread_count) + .def("get_intra_op_parallelism", &deepspeed_aio_handle_t::get_intra_op_parallelism) - .def("read", &deepspeed_aio_handle_t::read) - .def("write", &deepspeed_aio_handle_t::write) + .def("read", + &deepspeed_aio_handle_t::read, + "Synchronous and non-parallel file read. Returns count of completed read ops", + "buffer"_a, + "filename"_a, + "validate"_a, + "file_offset"_a = 0) - .def("pread", &deepspeed_aio_handle_t::pread) - .def("pwrite", &deepspeed_aio_handle_t::pwrite) + .def("write", + &deepspeed_aio_handle_t::write, + "Synchronous and non-parallel file write. Returns count of completed write ops", + "buffer"_a, + "filename"_a, + "validate"_a, + "file_offset"_a = 0) - .def("sync_pread", &deepspeed_aio_handle_t::sync_pread) - .def("sync_pwrite", &deepspeed_aio_handle_t::sync_pwrite) - .def("async_pread", &deepspeed_aio_handle_t::async_pread) - .def("async_pwrite", &deepspeed_aio_handle_t::async_pwrite) + .def("pread", + &deepspeed_aio_handle_t::pread, + "Parallel file read with option of parallelism. Returns count of completed read ops", + "buffer"_a, + "filename"_a, + "validate"_a, + "async"_a, + "file_offset"_a = 0) - .def("new_cpu_locked_tensor", &deepspeed_aio_handle_t::new_cpu_locked_tensor) - .def("free_cpu_locked_tensor", &deepspeed_aio_handle_t::free_cpu_locked_tensor) + .def("pwrite", + &deepspeed_aio_handle_t::pwrite, + "Parallel file write with option of parallelism. Returns count of completed write ops", + "buffer"_a, + "filename"_a, + "validate"_a, + "async"_a, + "file_offset"_a = 0) - .def("wait", &deepspeed_aio_handle_t::wait); + .def("sync_pread", + &deepspeed_aio_handle_t::sync_pread, + "Synchrononous parallel file read. Returns count of completed read ops", + "buffer"_a, + "filename"_a, + "file_offset"_a = 0) + + .def("sync_pwrite", + &deepspeed_aio_handle_t::sync_pwrite, + "Synchronous parallel file write. Returns count of completed write ops", + "buffer"_a, + "filename"_a, + "file_offset"_a = 0) + + .def("async_pread", + &deepspeed_aio_handle_t::async_pread, + "Asynchronous parallel file read. Returns 0 on success. Returns 0 on success, and " + "following wait() returns count of completed ops.", + "buffer"_a, + "filename"_a, + "file_offset"_a = 0) + + .def("async_pwrite", + &deepspeed_aio_handle_t::async_pwrite, + "Asynchronous parallel file write. Returns 0 on success, and following wait() returns " + "count of completed ops.", + "buffer"_a, + "filename"_a, + "file_offset"_a = 0) + + .def("new_cpu_locked_tensor", + &deepspeed_aio_handle_t::new_cpu_locked_tensor, + "Allocate pinned CPU tensor.", + "num_elem"_a, + "example_tenosr"_a) + + .def("free_cpu_locked_tensor", + &deepspeed_aio_handle_t::free_cpu_locked_tensor, + "Free pinned CPU tensor.", + "tensor"_a) + + .def("wait", + &deepspeed_aio_handle_t::wait, + "Wait for (ongoing) asynchronous operations to complete"); } diff --git a/csrc/aio/py_test/aio_bench_generate_param.py b/csrc/aio/py_test/aio_bench_generate_param.py index 09d0e03c7ef6..7a0ab59ed73d 100644 --- a/csrc/aio/py_test/aio_bench_generate_param.py +++ b/csrc/aio/py_test/aio_bench_generate_param.py @@ -41,9 +41,9 @@ def convert_to_param(key): return { "single_submit": "true" if key[0] == "single" else "false", "overlap_events": "true" if key[1] == "overlap" else "false", - "thread_count": int(key[3]), - "queue_depth": int(key[4]), - "block_size": int(key[5]) + "thread_count": int(key[5]), + "queue_depth": int(key[3]), + "block_size": int(key[4]) } diff --git a/csrc/aio/py_test/aio_bench_perf_sweep.py b/csrc/aio/py_test/aio_bench_perf_sweep.py index 7d55f7ded65c..ba95150b11e1 100644 --- a/csrc/aio/py_test/aio_bench_perf_sweep.py +++ b/csrc/aio/py_test/aio_bench_perf_sweep.py @@ -10,75 +10,47 @@ import argparse import json import itertools -import subprocess import shutil -from test_ds_aio_utils import refine_integer_value +from ds_aio_job import Job, run_job from perf_sweep_utils import READ_OP_DESC, WRITE_OP_DESC, BENCH_LOG_DIR, \ - READ_IO_DIR, WRITE_IO_DIR, READ_LOG_DIR, WRITE_LOG_DIR + READ_LOG_DIR, WRITE_LOG_DIR from deepspeed.ops.op_builder import AsyncIOBuilder OTHER_OPTIONS = '--handle' PERF_SCRIPT = 'test_ds_aio.py' DEFAULT_SWEEP_CONFIG = { - "block_size": ["128K", "256K"], - "queue_depth": [4, 16, 32], - "overlap_events": [True, False], - "io_parallel": [2, 8], - "single_submit": [False] + "block_size": ["128K", "1M"], + "queue_depth": [32, 64, 128], + "sequential_requests": [True, False], + "single_submit": [False], + "io_parallel": [1, 2, 8], } -class Job(object): - - def __init__(self, cmd_line, output_file=None, work_dir=None): - self.cmd_line = cmd_line - self.output_file = output_file - self.work_dir = work_dir - self.output_fd = None - - def cmd(self): - return self.cmd_line - - def get_stdout(self): - return self.output_fd - - def get_stderr(self): - return self.output_fd - - def get_cwd(self): - return self.work_dir - - def open_output_file(self): - if self.output_file is not None: - self.output_fd = open(self.output_file, 'w') - - def close_output_file(self): - if self.output_fd is not None: - self.output_fd.close() - self.output_fd = None - - class SweepConfig(object): def __init__(self, args): - self.nvme_dir = args.nvme_dir - self.io_size = args.io_size + self.folder_to_device_mapping = get_ftd_map(args.nvme_dir) self.search_space = get_sweep_config_dict(args.sweep_config) + self.search_space.update(self.folder_to_device_mapping) self.read = not args.no_read self.write = not args.no_write self.flush_cache = not args.no_sudo self.log_dir = args.log_dir - self.loops = args.loops - self.other_options = f'{OTHER_OPTIONS} --loops {args.loops}' + self.other_options = f'{OTHER_OPTIONS} --loops {args.loops} --io_size {args.io_size}' + if args.gpu: + self.other_options += ' --gpu' + if args.gds: + self.other_options += ' --use_gds' def parse_arguments(): parser = argparse.ArgumentParser() parser.add_argument('--nvme_dir', + nargs='+', required=True, - type=str, help='Directory in which to perform I/O tests. A writeable directory on a NVMe device.') parser.add_argument('--sweep_config', type=str, default=None, help='Performance sweep configuration json file.') @@ -92,6 +64,10 @@ def parse_arguments(): default="400M", help='Number of I/O bytes to read/write for performance measurements.') + parser.add_argument('--gpu', action='store_true', help='Test tensor transfers between GPU device and NVME device.') + + parser.add_argument('--gds', action='store_true', help='Run the sweep over NVIDIA GPUDirectStorage operator') + parser.add_argument( '--no_sudo', action='store_true', @@ -118,6 +94,12 @@ def dump_cmd_lines(cmd_lines): print(f'{i}: {cmd}') +def get_ftd_map(nvme_dir_list): + ftd_list = [f'{dir}:{dev}' for dev, dir in enumerate(nvme_dir_list)] + ftd_arg = [' '.join(ftd for ftd in ftd_list)] + return {'folder_to_device_mapping': ftd_arg} + + def get_sweep_config_dict(sweep_config_json): if sweep_config_json is None: return DEFAULT_SWEEP_CONFIG @@ -148,16 +130,6 @@ def flatten_options(key, value_list): return cmd_list -def run_job(job): - args = ' '.join(job.cmd()) - print(f'args = {args}') - job.open_output_file() - proc = subprocess.run(args=args, shell=True, stdout=job.get_stdout(), stderr=job.get_stderr(), cwd=job.get_cwd()) - job.close_output_file() - assert proc.returncode == 0, \ - f"This command failed: {job.cmd()}" - - def launch_sweep(sweep_jobs, sync_job, flush_cache_job): for perf_job in sweep_jobs: if flush_cache_job is not None: @@ -176,7 +148,12 @@ def create_cmd_tags(cmd_line): if len(fields) == 1: tags[fields[0]] = None elif len(fields) == 2: - tags[fields[0]] = fields[1] + if fields[0] == '--folder_to_device_mapping': + tags[fields[0]] = len(fields[1:]) + else: + tags[fields[0]] = fields[1] + elif len(fields) > 2: + tags[fields[0]] = len(fields[1:]) return tags @@ -184,16 +161,16 @@ def get_log_file(io_op_desc, cmd_line): QUEUE_DEPTH = "--queue_depth" BLOCK_SIZE = "--block_size" SINGLE_SUBMIT = "--single_submit" - OVERLAP_EVENTS = "--overlap_events" - THREAD_COUNT = "--threads" + SEQUENTIAL_REQUESTS = "--sequential_requests" + FTD_MAP = "--folder_to_device_mapping" IO_PARALLEL = "--io_parallel" tag_map = { QUEUE_DEPTH: "d", BLOCK_SIZE: "bs", SINGLE_SUBMIT: "single", - OVERLAP_EVENTS: "overlap", - THREAD_COUNT: "t", + SEQUENTIAL_REQUESTS: "sequential", + FTD_MAP: "ftd", IO_PARALLEL: "p" } @@ -201,14 +178,14 @@ def get_log_file(io_op_desc, cmd_line): QUEUE_DEPTH: 1, BLOCK_SIZE: "1M", SINGLE_SUBMIT: "block", - OVERLAP_EVENTS: "sequential", - THREAD_COUNT: 1, + SEQUENTIAL_REQUESTS: "overlap", + FTD_MAP: 1, IO_PARALLEL: 1 } def get_default_value(tag): value = tag_default[tag] - if tag in [SINGLE_SUBMIT, OVERLAP_EVENTS]: + if tag in [SINGLE_SUBMIT, SEQUENTIAL_REQUESTS]: return value return f'{tag_map[tag]}{value}' @@ -218,7 +195,7 @@ def get_config_value(tag, value): return tag_key return f'{tag_key}{value}' - tag_list = [SINGLE_SUBMIT, OVERLAP_EVENTS, THREAD_COUNT, IO_PARALLEL, QUEUE_DEPTH, BLOCK_SIZE] + tag_list = [SINGLE_SUBMIT, SEQUENTIAL_REQUESTS, FTD_MAP, QUEUE_DEPTH, BLOCK_SIZE, IO_PARALLEL] log_tags = [io_op_desc] cmd_tags = create_cmd_tags(cmd_line) for tag in tag_list: @@ -252,40 +229,14 @@ def async_io_setup(): return AsyncIOBuilder().is_compatible() -def get_block_size_and_count(io_bytes): - block_size = 1 - block_count = io_bytes - bytes_in_KB = 1024 - - while block_count % bytes_in_KB == 0: - block_size *= bytes_in_KB - block_count /= bytes_in_KB - - return int(block_size), int(block_count) - - -def create_read_file(sweep_config): - read_folder = os.path.join(sweep_config.nvme_dir, f'{READ_IO_DIR}') - os.makedirs(read_folder, exist_ok=True) - read_file_name = os.path.join(read_folder, f'random_{sweep_config.io_size}B.pt') - block_size, block_count = get_block_size_and_count(refine_integer_value(sweep_config.io_size)) - dd_job = Job(cmd_line=[f'dd if=/dev/urandom of={read_file_name} bs={block_size} count={block_count}']) - print(f'[Start] Create read file of {sweep_config.io_size} bytes by running {dd_job.cmd()} ....') - run_job(dd_job) - print(f'[Done] Create read file of {sweep_config.io_size} bytes by running {dd_job.cmd()} ....') - return read_folder, read_file_name - - def remove_folder(folder): assert os.path.isdir(folder), f"Error: cannot remove {folder} - folder not found" shutil.rmtree(folder) def run_read_sweep(sweep_config, flush_cache_job, sync_job, cmd_lines): - read_folder, read_file_name = create_read_file(sweep_config) - read_option = f'--read_file {read_file_name}' - read_cmd_lines = [[f'{read_option} {sweep_config.other_options}'] + cmd for cmd in cmd_lines] - #dump_cmd_lines(read_cmd_lines) + read_cmd_lines = [[f'--read {sweep_config.other_options}'] + cmd for cmd in cmd_lines] + #dump_cmd_lines(cmd_lines) log_folder = os.path.join(sweep_config.log_dir, f'{READ_LOG_DIR}') os.makedirs(log_folder, exist_ok=True) @@ -294,15 +245,9 @@ def run_read_sweep(sweep_config, flush_cache_job, sync_job, cmd_lines): launch_sweep(sweep_jobs=perf_jobs, sync_job=sync_job, flush_cache_job=flush_cache_job) - remove_folder(read_folder) - def run_write_sweep(sweep_config, flush_cache_job, sync_job, cmd_lines): - write_folder = os.path.join(sweep_config.nvme_dir, f'{WRITE_IO_DIR}') - os.makedirs(write_folder, exist_ok=True) - write_file_name = os.path.join(write_folder, f'random_{sweep_config.io_size}B.pt') - write_option = f'--write_size {sweep_config.io_size} --write_file {write_file_name}' - write_cmd_lines = [[f'{write_option} {sweep_config.other_options}'] + cmd for cmd in cmd_lines] + write_cmd_lines = [[f'{sweep_config.other_options}'] + cmd for cmd in cmd_lines] #dump_cmd_lines(write_cmd_lines) log_folder = os.path.join(sweep_config.log_dir, f'{WRITE_LOG_DIR}') @@ -312,8 +257,6 @@ def run_write_sweep(sweep_config, flush_cache_job, sync_job, cmd_lines): launch_sweep(sweep_jobs=perf_jobs, sync_job=sync_job, flush_cache_job=flush_cache_job) - remove_folder(write_folder) - def main(): print("Running performance sweep of deepspeed nvme library") diff --git a/csrc/aio/py_test/ds_aio_args.py b/csrc/aio/py_test/ds_aio_args.py new file mode 100644 index 000000000000..346feabe4810 --- /dev/null +++ b/csrc/aio/py_test/ds_aio_args.py @@ -0,0 +1,175 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team +""" +Functionality of swapping optimizer tensors to/from (NVMe) storage devices. +""" + +import argparse +import os +from test_ds_aio_utils import refine_integer_value +from deepspeed.accelerator import get_accelerator + +MAPPING_DELIMITER = ':' + + +def refine_args(args): + if args.io_size and type(args.io_size) == str: + args.io_size = refine_integer_value(args.io_size) + + if args.block_size and type(args.block_size) == str: + args.block_size = refine_integer_value(args.block_size) + + return args + + +def _get_mapping_dict(args): + if args.folder is not None: + d = {i: args.folder for i in range(args.multi_process)} + else: + d = {} + for m in args.folder_to_device_mapping: + fields = m.split(MAPPING_DELIMITER) + d[fields[1]] = fields[0] + + return d + + +def _validate_folder_mapping(args): + no_error = True + error_messages = [] + invalid_mappings = [m for m in args.folder_to_device_mapping if MAPPING_DELIMITER not in m] + if len(invalid_mappings) > 0: + error_messages.append( + f'Missing delimiter ({MAPPING_DELIMITER}) in folder_to_device_mapping {invalid_mappings}') + no_error = False + + folder_list = [m.split(MAPPING_DELIMITER)[0] for m in args.folder_to_device_mapping] + invalid_folders = [d for d in folder_list if not os.path.exists(d)] + if len(invalid_folders) > 0: + error_messages.append(f'Invalid folders in folder_to_device_mapping: {invalid_folders}') + no_error = False + + if args.gpu: + device_list = [int(m.split(MAPPING_DELIMITER)[1]) for m in args.folder_to_device_mapping] + invalid_device_list = [dev_id for dev_id in device_list if not dev_id < get_accelerator().device_count()] + if len(invalid_device_list) > 0: + error_messages.append(f'Invalid device ids in folder_to_device_mapping: {invalid_device_list}') + no_error = False + + return no_error, error_messages + + +def validate_args(args): + no_error = True + error_messages = [] + + if args.folder is not None and len(args.folder_to_device_mapping) > 0: + error_messages.append(f'--folder and --folder_to_device_mapping cannot be specified together.') + no_error = False + elif args.folder is None and len(args.folder_to_device_mapping) == 0: + error_messages.append(f'At least one of --folder or --folder_to_device_mapping must be specified.') + no_error = False + + # Validate --folder + if args.folder is not None and not os.path.exists(args.folder): + no_error = False + error_messages.append(f'Invalid folder in --folder: {args.folder} ') + + # Validate --folder_mapping_to_device + if len(args.folder_to_device_mapping) > 0: + no_mapping_error, mapping_error_messages = _validate_folder_mapping(args) + no_error = no_error and no_mapping_error + error_messages += mapping_error_messages + + # Validate --gpu, --use_gds + if args.use_gds and not args.gpu: + error_messages.append(f'--gpu must be set to transfer with --use_gds') + no_error = False + + if not no_error: + print(f'Found {len(error_messages)} validation errors') + for i, msg in enumerate(error_messages): + print(f'{i+1}: {msg}') + + return no_error + + +def parse_arguments(): + parser = argparse.ArgumentParser() + + parser.add_argument('--folder', default=None, type=str, help='Folder to use for I/O.') + + parser.add_argument('--folder_to_device_mapping', + default=[], + nargs='+', + help='Specification of mapping of folder to (gpu) device id, (ignored for cpu accesses).' + 'Can be specified multiple times for multi-process runs,' + 'e.g. --folder_to_device_mapping /mnt/nvme0:0 --folder_to_device_mapping /mnt/nvme1:15 --gpu' + 'means access /mnt/nvme0 with gpu 0 and /mnt/nvme1 with gpu 15') + + parser.add_argument('--io_size', type=str, default=None, required=True, help='Number of bytes to read or write.') + + parser.add_argument('--read', action='store_true', help='Perform read I/O (default is write)') + + parser.add_argument('--multi_process', + type=int, + default=1, + help='Number of parallel processes doing I/O (default 1).') + + parser.add_argument('--block_size', + type=str, + default='1M', + help='I/O block size. Can use K, M, or G suffix (default 1M for 1 megabytes).') + + parser.add_argument('--queue_depth', type=int, default=32, help='I/O queue depth (default 32).') + + parser.add_argument('--single_submit', + action='store_true', + help='Submit I/O requests in singles (default is submit queue_depth amount at once.).') + + parser.add_argument( + '--sequential_requests', + action='store_true', + help= + 'Delay I/O request submission until completion of prior requests (default is overlap I/O submission and completion requests.).' + ) + + parser.add_argument('--validate', action='store_true', help='Perform validation of I/O transfer in library.') + + parser.add_argument('--handle', action='store_true', help='Use AIO handle.') + + parser.add_argument('--loops', type=int, default=3, help='Count of operation repetitions') + + parser.add_argument('--io_parallel', type=int, default=None, help='Per iop parallelism') + + parser.add_argument('--gpu', action='store_true', help='Use GPU memory') + + parser.add_argument('--use_gds', action='store_true', help='Enable GDS AIO') + + parser.add_argument('--slow_bounce_buffer', + action='store_true', + help='For GPU memory transfers, measure impact of bounce buffer pinning on critical path.') + + args = parser.parse_args() + print(f'args = {args}') + return args + + +def get_validated_args(): + args = parse_arguments() + args = refine_args(args) + if not validate_args(args): + quit() + print(f'Successful validation of command line arguments') + + peer_tag = 'gpu' if args.gpu else 'process' + args.mapping_dict = _get_mapping_dict(args) + args.mapping_list = [(device_id, folder) for device_id, folder in args.mapping_dict.items()] + assert len(args.mapping_dict) == len(args.mapping_list) + print(f'Configuring {len(args.mapping_list)} {peer_tag} to folder mapping') + for i, (device_id, folder) in enumerate(args.mapping_list): + print(f'[{i}]: {peer_tag} {device_id} <----> {folder}') + + return args diff --git a/csrc/aio/py_test/ds_aio_basic.py b/csrc/aio/py_test/ds_aio_basic.py index ad2a4349cd0c..9b3c7cbfc49f 100755 --- a/csrc/aio/py_test/ds_aio_basic.py +++ b/csrc/aio/py_test/ds_aio_basic.py @@ -9,10 +9,9 @@ import torch import os import time +from deepspeed.ops.aio import AsyncIOBuilder from multiprocessing import Pool, Barrier from test_ds_aio_utils import report_results, task_log, task_barrier -from deepspeed.accelerator import get_accelerator -from deepspeed.ops.op_builder import AsyncIOBuilder def pre_basic(args, tid, read_op): @@ -21,7 +20,7 @@ def pre_basic(args, tid, read_op): file = args.read_file if read_op else f'{args.write_file}.{tid}' task_log(tid, f'Allocate tensor of size {num_bytes} bytes') - buffer = get_accelerator().pin_memory(torch.empty(num_bytes, dtype=torch.uint8, device='cpu')) + buffer = torch.empty(num_bytes, dtype=torch.uint8, device='cpu').pin_memory() task_log(tid, f'{io_string} file {file} of size {num_bytes} bytes from buffer on device {buffer.device}') ctxt = {} @@ -56,7 +55,7 @@ def main_basic_read(pool_params): args, tid, ctxt = pool_params start_time = time.time() AsyncIOBuilder().load().aio_read(ctxt['buffer'], ctxt['file'], args.block_size, args.queue_depth, - args.single_submit, args.overlap_events, args.validate) + args.single_submit, not args.sequential_requests, args.validate) end_time = time.time() ctxt['elapsed_sec'] += end_time - start_time @@ -67,7 +66,7 @@ def main_basic_write(pool_params): args, tid, ctxt = pool_params start_time = time.time() AsyncIOBuilder().load().aio_write(ctxt['buffer'], ctxt['file'], args.block_size, args.queue_depth, - args.single_submit, args.overlap_events, args.validate) + args.single_submit, not args.sequential_requests, args.validate) end_time = time.time() ctxt['elapsed_sec'] += end_time - start_time @@ -90,16 +89,17 @@ def get_schedule(args, read_op): def _aio_handle_tasklet(pool_params): args, tid, read_op = pool_params + num_processes = len(args.mapping_dict) # Create schedule schedule = get_schedule(args, read_op) task_log(tid, f'schedule = {schedule}') - task_barrier(aio_barrier, args.threads) + task_barrier(aio_barrier, num_processes) # Run pre task task_log(tid, f'running pre-task') ctxt = schedule["pre"]((args, tid)) - task_barrier(aio_barrier, args.threads) + task_barrier(aio_barrier, num_processes) # Run main tasks in a loop ctxt["main_task_sec"] = 0 @@ -107,14 +107,14 @@ def _aio_handle_tasklet(pool_params): task_log(tid, f'running main task {i}') start_time = time.time() ctxt = schedule["main"]((args, tid, ctxt)) - task_barrier(aio_barrier, args.threads) + task_barrier(aio_barrier, num_processes) stop_time = time.time() ctxt["main_task_sec"] += stop_time - start_time # Run post task task_log(tid, f'running post-task') ctxt = schedule["post"]((args, tid, ctxt)) - task_barrier(aio_barrier, args.threads) + task_barrier(aio_barrier, num_processes) return ctxt["main_task_sec"], ctxt["elapsed_sec"], ctxt["num_bytes"] * args.loops @@ -125,9 +125,10 @@ def _init_tasklet(b): def aio_basic_multiprocessing(args, read_op): - b = Barrier(args.threads) - pool_params = [(args, p, read_op) for p in range(args.threads)] - with Pool(processes=args.threads, initializer=_init_tasklet, initargs=(b, )) as p: + num_processes = len(args.mapping_dict) + b = Barrier(num_processes) + pool_params = [(args, p, read_op) for p in range(num_processes)] + with Pool(processes=num_processes, initializer=_init_tasklet, initargs=(b, )) as p: pool_results = p.map(_aio_handle_tasklet, pool_params) report_results(args, read_op, pool_results) diff --git a/csrc/aio/py_test/ds_aio_handle.py b/csrc/aio/py_test/ds_aio_handle.py index d35b2713edae..6913e9090bf5 100755 --- a/csrc/aio/py_test/ds_aio_handle.py +++ b/csrc/aio/py_test/ds_aio_handle.py @@ -10,40 +10,56 @@ import os import time from multiprocessing import Pool, Barrier -from test_ds_aio_utils import report_results, task_log, task_barrier +from deepspeed.ops.aio import AsyncIOBuilder +from deepspeed.ops.op_builder import GDSBuilder +from test_ds_aio_utils import report_results, task_log, task_barrier, create_filename, create_file from deepspeed.accelerator import get_accelerator -from deepspeed.ops.op_builder import AsyncIOBuilder + +BUFFER = 'buffer' +BOUNCE_BUFFER = 'bounce_buffer' def pre_handle(args, tid, read_op): io_string = "Read" if read_op else "Write" - num_bytes = os.path.getsize(args.read_file) if read_op else args.write_size - file = args.read_file if read_op else f'{args.write_file}.{tid}' - - io_parallel = args.io_parallel if args.io_parallel else 1 - handle = AsyncIOBuilder().load().aio_handle(args.block_size, args.queue_depth, args.single_submit, - args.overlap_events, io_parallel) - task_log(tid, f'Created deepspeed aio handle') - + gds = True if args.use_gds else False + device_id, folder = args.mapping_list[tid] + filename = create_filename(folder, args.read, args.io_size, tid) + if args.read and not (os.path.isfile(filename) and os.path.getsize(filename) == args.io_size): + create_file(filename, args.io_size) + + task_log(tid, f'Allocate tensor of size {args.io_size} bytes') + bounce_buffer = None if args.gpu: - buffer = torch.empty(num_bytes, dtype=torch.uint8, device=get_accelerator().device_name()) + device_name = get_accelerator().device_name(device_id) + buffer = torch.randint(high=128, size=(args.io_size, ), dtype=torch.uint8, device=device_name) + if not (args.slow_bounce_buffer or gds): + bounce_buffer = torch.randint(high=128, size=(args.io_size, ), dtype=torch.uint8, + device='cpu').pin_memory() else: - if args.use_accelerator_pin_memory: - buffer = get_accelerator().pin_memory(torch.empty(num_bytes, dtype=torch.uint8, device='cpu')) - else: - buffer = handle.new_cpu_locked_tensor(num_bytes, torch.empty(0, dtype=torch.uint8)) + buffer = torch.randint(high=128, size=(args.io_size, ), dtype=torch.uint8, device='cpu').pin_memory() + task_log(tid, + f'{io_string} file {filename} of size {args.io_size} bytes from buffer on device {buffer.device}', + force=True) - task_log(tid, f'Allocate tensor of size {num_bytes} bytes') + io_parallel = args.io_parallel if args.io_parallel else 1 + if gds: + handle = GDSBuilder().load().gds_handle(args.block_size, args.queue_depth, args.single_submit, + not args.sequential_requests, io_parallel) + handle.pin_device_tensor(buffer) + else: + handle = AsyncIOBuilder().load().aio_handle(args.block_size, args.queue_depth, args.single_submit, + not args.sequential_requests, io_parallel) + task_log(tid, f'created deepspeed aio handle') ctxt = {} - ctxt['file'] = file - ctxt['num_bytes'] = num_bytes + ctxt['file'] = filename + ctxt['num_bytes'] = args.io_size ctxt['handle'] = handle - ctxt['buffer'] = buffer + ctxt['gds'] = gds + ctxt[BUFFER] = buffer + ctxt[BOUNCE_BUFFER] = bounce_buffer ctxt['elapsed_sec'] = 0 - task_log(tid, f'{io_string} file {file} of size {num_bytes} bytes from buffer on device {buffer.device}') - return ctxt @@ -61,8 +77,12 @@ def pre_handle_write(pool_params): def post_handle(pool_params): _, _, ctxt = pool_params - ctxt["buffer"].detach() - ctxt["buffer"] = None + for buf in [BUFFER, BOUNCE_BUFFER]: + if ctxt[buf] is not None: + if ctxt['gds']: + ctxt['handle'].unpin_device_tensor(ctxt[buf]) + ctxt[buf].detach() + ctxt[buf] = None return ctxt @@ -71,20 +91,31 @@ def main_parallel_read(pool_params): handle = ctxt['handle'] start_time = time.time() - ret = handle.pread(ctxt['buffer'], ctxt['file'], args.validate, True) + dest_buffer = BOUNCE_BUFFER if ctxt[BOUNCE_BUFFER] is not None else BUFFER + ret = handle.pread(ctxt[dest_buffer], ctxt['file'], args.validate, 0, True) assert ret != -1 handle.wait() + if dest_buffer == BOUNCE_BUFFER: + ctxt[BUFFER].data.copy_(ctxt[BOUNCE_BUFFER].data) end_time = time.time() ctxt['elapsed_sec'] += end_time - start_time - return ctxt def main_parallel_write(pool_params): args, tid, ctxt = pool_params + # Avoid overwriting existing files as it could be artificially faster + if os.path.isfile(ctxt['file']): + os.remove(ctxt['file']) + handle = ctxt['handle'] start_time = time.time() - ret = handle.pwrite(ctxt['buffer'], ctxt['file'], args.validate, True) + if ctxt[BOUNCE_BUFFER] is not None: + source_buffer = BOUNCE_BUFFER + ctxt[BOUNCE_BUFFER].data.copy_(ctxt[BUFFER].data) + else: + source_buffer = BUFFER + ret = handle.pwrite(ctxt[source_buffer], ctxt['file'], args.validate, True) assert ret != -1 handle.wait() end_time = time.time() @@ -98,8 +129,11 @@ def main_handle_read(pool_parms): handle = ctxt['handle'] start_time = time.time() - ret = handle.read(ctxt['buffer'], ctxt['file'], args.validate) + dest_buffer = BOUNCE_BUFFER if ctxt[BOUNCE_BUFFER] is not None else BUFFER + ret = handle.read(ctxt[dest_buffer], ctxt['file'], args.validate) assert ret != -1 + if dest_buffer == BOUNCE_BUFFER: + ctxt[BUFFER].data.copy_(ctxt[BOUNCE_BUFFER].data) end_time = time.time() ctxt['elapsed_sec'] += end_time - start_time @@ -108,9 +142,18 @@ def main_handle_read(pool_parms): def main_handle_write(pool_parms): args, tid, ctxt = pool_parms + # Avoid overwriting existing files as it could be artificially faster + if os.path.isfile(ctxt['file']): + os.remove(ctxt['file']) + handle = ctxt['handle'] start_time = time.time() - ret = handle.write(ctxt['buffer'], ctxt['file'], args.validate) + if ctxt[BOUNCE_BUFFER] is not None: + source_buffer = BOUNCE_BUFFER + ctxt[BOUNCE_BUFFER].data.copy_(ctxt[BUFFER].data) + else: + source_buffer = BUFFER + ret = handle.write(ctxt[source_buffer], ctxt['file'], args.validate) assert ret != -1 end_time = time.time() ctxt['elapsed_sec'] += end_time - start_time @@ -123,27 +166,28 @@ def get_schedule(args, read_op): if read_op: schedule['pre'] = pre_handle_read schedule['post'] = post_handle - schedule['main'] = main_parallel_read if args.io_parallel else main_handle_read + schedule['main'] = main_parallel_read else: schedule['pre'] = pre_handle_write schedule['post'] = post_handle - schedule['main'] = main_parallel_write if args.io_parallel else main_handle_write + schedule['main'] = main_parallel_write return schedule def _aio_handle_tasklet(pool_params): args, tid, read_op = pool_params + num_processes = len(args.mapping_dict) # Create schedule schedule = get_schedule(args, read_op) task_log(tid, f'schedule = {schedule}') - task_barrier(aio_barrier, args.threads) + task_barrier(aio_barrier, num_processes) # Run pre task task_log(tid, f'running pre-task') ctxt = schedule["pre"]((args, tid)) - task_barrier(aio_barrier, args.threads) + task_barrier(aio_barrier, num_processes) # Run main tasks in a loop ctxt["main_task_sec"] = 0 @@ -151,14 +195,14 @@ def _aio_handle_tasklet(pool_params): task_log(tid, f'running main task {i}') start_time = time.time() ctxt = schedule["main"]((args, tid, ctxt)) - task_barrier(aio_barrier, args.threads) + task_barrier(aio_barrier, num_processes) stop_time = time.time() ctxt["main_task_sec"] += stop_time - start_time # Run post task task_log(tid, f'running post-task') ctxt = schedule["post"]((args, tid, ctxt)) - task_barrier(aio_barrier, args.threads) + task_barrier(aio_barrier, num_processes) return ctxt["main_task_sec"], ctxt["elapsed_sec"], ctxt["num_bytes"] * args.loops @@ -169,9 +213,10 @@ def _init_tasklet(b): def aio_handle_multiprocessing(args, read_op): - b = Barrier(args.threads) - pool_params = [(args, p, read_op) for p in range(args.threads)] - with Pool(processes=args.threads, initializer=_init_tasklet, initargs=(b, )) as p: + num_processes = len(args.mapping_dict) + b = Barrier(num_processes) + pool_params = [(args, p, read_op) for p in range(num_processes)] + with Pool(processes=num_processes, initializer=_init_tasklet, initargs=(b, )) as p: pool_results = p.map(_aio_handle_tasklet, pool_params) report_results(args, read_op, pool_results) diff --git a/csrc/aio/py_test/ds_aio_job.py b/csrc/aio/py_test/ds_aio_job.py new file mode 100644 index 000000000000..e9579a48fe4d --- /dev/null +++ b/csrc/aio/py_test/ds_aio_job.py @@ -0,0 +1,49 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team +""" +Functionality of swapping tensors to/from (NVMe) storage devices. +""" +import subprocess +import shlex + + +class Job(object): + + def __init__(self, cmd_line, output_file=None, work_dir=None): + self.cmd_line = cmd_line + self.output_file = output_file + self.work_dir = work_dir + self.output_fd = None + + def cmd(self): + return self.cmd_line + + def get_stdout(self): + return self.output_fd + + def get_stderr(self): + return self.output_fd + + def get_cwd(self): + return self.work_dir + + def open_output_file(self): + if self.output_file is not None: + self.output_fd = open(self.output_file, 'w') + + def close_output_file(self): + if self.output_fd is not None: + self.output_fd.close() + self.output_fd = None + + +def run_job(job): + args = shlex.split(' '.join(job.cmd())) + print(f'args = {args}') + job.open_output_file() + proc = subprocess.run(args=args, stdout=job.get_stdout(), stderr=job.get_stderr(), cwd=job.get_cwd()) + job.close_output_file() + assert proc.returncode == 0, \ + f"This command failed: {job.cmd()}" diff --git a/csrc/aio/py_test/run_read_sweep.sh b/csrc/aio/py_test/run_read_sweep.sh index b9d7e050454a..59d82996a0e2 100755 --- a/csrc/aio/py_test/run_read_sweep.sh +++ b/csrc/aio/py_test/run_read_sweep.sh @@ -1,13 +1,22 @@ #!/bin/bash -if [[ $# -ne 2 ]]; then - echo "Usage: $0 " +if [[ $# -lt 2 ]]; then + echo "Usage: $0 " exit 1 fi +function prep_folder() +{ + folder=$1 + if [[ -d ${folder} ]]; then + rm -f ${folder}/* + else + mkdir -p ${folder} + fi +} function validate_environment() { - validate_cmd="python ./validate_async_io.py" + validate_cmd="TORCH_EXTENSIONS_DIR=./torch_extentions python3 ./validate_async_io.py" eval ${validate_cmd} res=$? if [[ $res != 0 ]]; then @@ -17,18 +26,27 @@ function validate_environment() fi } +function fileExists() { + local file="$1" + if [[ -f "$file" ]]; then + return 0 + else + return 1 + fi +} validate_environment -INPUT_FILE=$1 -if [[ ! -f ${INPUT_FILE} ]]; then - echo "Input file not found: ${INPUT_FILE}" - exit 1 -fi - -LOG_DIR=$2/aio_perf_sweep +IO_SIZE=$1 +LOG_DIR=./aio_perf_sweep +MAP_DIR=$2/aio +GPU_MEM=$3 +USE_GDS=$4 RUN_SCRIPT=./test_ds_aio.py -READ_OPT="--read_file ${INPUT_FILE}" +READ_OPT="--read" + +prep_folder ${MAP_DIR} +prep_folder ${LOG_DIR} if [[ -d ${LOG_DIR} ]]; then rm -f ${LOG_DIR}/* @@ -36,37 +54,60 @@ else mkdir -p ${LOG_DIR} fi -DISABLE_CACHE="sync; sudo bash -c 'echo 1 > /proc/sys/vm/drop_caches' " -SYNC="sync" +if [[ ${GPU_MEM} == "gpu" ]]; then + gpu_opt="--gpu" +else + gpu_opt="" +fi +if [[ ${USE_GDS} == "gds" ]]; then + gds_opt="--use_gds" +else + gds_opt="" +fi + +DISABLE_CACHE="sudo sync; sudo bash -c 'echo 1 > /proc/sys/vm/drop_caches' " +SYNC="sudo sync" -for sub in single block; do - if [[ $sub == "single" ]]; then - sub_opt="--single_submit" +for xtype in cpu gpu gds; do + if [[ $xtype == "cpu" ]]; then + gpu_opt="" + gds_opt="" + elif [[ $xtype == "gpu" ]]; then + gpu_opt="--gpu" + gds_opt="" else - sub_opt="" + gpu_opt="--gpu" + gds_opt="--use_gds" fi - for ov in overlap sequential; do - if [[ $ov == "overlap" ]]; then - ov_opt="--overlap_events" + for sub in single block; do + if [[ $sub == "single" ]]; then + sub_opt="--single_submit" else - ov_opt="" + sub_opt="" fi - for t in 1 2 4 8; do - for p in 1 ; do - for d in 1 2 4 8 16 32; do - for bs in 128K 256K 512K 1M; do - SCHED_OPTS="${sub_opt} ${ov_opt} --handle --threads ${t}" - OPTS="--io_parallel ${p} --queue_depth ${d} --block_size ${bs}" - LOG="${LOG_DIR}/read_${sub}_${ov}_t${t}_p${p}_d${d}_bs${bs}.txt" - cmd="python ${RUN_SCRIPT} ${READ_OPT} ${OPTS} ${SCHED_OPTS} &> ${LOG}" - echo ${DISABLE_CACHE} - echo ${cmd} - echo ${SYNC} + for ov in overlap sequential; do + if [[ $ov == "sequential" ]]; then + ov_opt="--sequential_requests" + else + ov_opt="" + fi + for p in 1 2 4 8; do + for t in 1 2 4 8; do + for d in 8 16 32 64 128; do + for bs in 128K 256K 512K 1M 2M 4M 8M 16M; do + SCHED_OPTS="${sub_opt} ${ov_opt} --handle ${gpu_opt} ${gds_opt} --folder_to_device_mapping /mnt/nvme01:0" + OPTS="--queue_depth ${d} --block_size ${bs} --io_size ${IO_SIZE} --io_parallel ${t}" + LOG="${LOG_DIR}/read_${xtype}_${sub}_${ov}_t${t}_p${p}_d${d}_bs${bs}.txt" + cmd="/usr/bin/time python ${RUN_SCRIPT} ${READ_OPT} ${OPTS} ${SCHED_OPTS} &> ${LOG}" - eval ${DISABLE_CACHE} - eval ${cmd} - eval ${SYNC} - sleep 2 + echo ${DISABLE_CACHE} + echo ${cmd} + echo ${SYNC} + eval ${DISABLE_CACHE} + eval ${cmd} + eval ${SYNC} + sleep 2 + done done done done diff --git a/csrc/aio/py_test/run_write_sweep.sh b/csrc/aio/py_test/run_write_sweep.sh index 99f2113dda6f..a54d1c8d7bed 100755 --- a/csrc/aio/py_test/run_write_sweep.sh +++ b/csrc/aio/py_test/run_write_sweep.sh @@ -25,25 +25,33 @@ function validate_environment() validate_environment -if [[ $# -ne 3 ]]; then - echo "Usage: $0 " - exit 1 -fi - -SIZE="$1M" -WRITE_DIR=$2 -LOG_DIR=$3/aio_perf_sweep +IO_SIZE=$1 +LOG_DIR=$2/aio_perf_sweep +MAP_DIR=$2/aio +GPU_MEM=$3 +USE_GDS=$4 +RUN_SCRIPT=./test_ds_aio.py -OUTPUT_FILE=${WRITE_DIR}/ds_aio_write_${SIZE}B.pt -WRITE_OPT="--write_file ${OUTPUT_FILE} --write_size ${SIZE}" +OUTPUT_FILE=${MAP_DIR}/ds_aio_write_${SIZE}B.pt +WRITE_OPT="" -prep_folder ${WRITE_DIR} +prep_folder ${MAP_DIR} prep_folder ${LOG_DIR} -RUN_SCRIPT=./test_ds_aio.py -DISABLE_CACHE="sync; sudo bash -c 'echo 1 > /proc/sys/vm/drop_caches' " +if [[ ${GPU_MEM} == "gpu" ]]; then + gpu_opt="--gpu" +else + gpu_opt="" +fi +if [[ ${USE_GDS} == "gds" ]]; then + gds_opt="--use_gds" +else + gds_opt="" +fi + +DISABLE_CACHE="sync; bash -c 'echo 1 > /proc/sys/vm/drop_caches' " SYNC="sync" for sub in single block; do @@ -53,19 +61,19 @@ for sub in single block; do sub_opt="" fi for ov in overlap sequential; do - if [[ $ov == "overlap" ]]; then - ov_opt="--overlap_events" + if [[ $ov == "sequential" ]]; then + ov_opt="--sequential_requests" else ov_opt="" fi - for t in 1 2 4 8; do - for p in 1; do - for d in 1 2 4 8 16 32; do - for bs in 128K 256K 512K 1M; do - SCHED_OPTS="${sub_opt} ${ov_opt} --handle --threads ${t}" - OPTS="--io_parallel ${p} --queue_depth ${d} --block_size ${bs}" + for p in 1 2 4 8; do + for t in 1 2 4 8; do + for d in 32 64 128; do + for bs in 256K 512K 1M; do + SCHED_OPTS="${sub_opt} ${ov_opt} --handle ${gpu_opt} ${gds_opt} --folder ${MAP_DIR}" + OPTS="--queue_depth ${d} --block_size ${bs} --io_size ${IO_SIZE} --multi_process ${p} --io_parallel ${t}" LOG="${LOG_DIR}/write_${sub}_${ov}_t${t}_p${p}_d${d}_bs${bs}.txt" - cmd="python ${RUN_SCRIPT} ${WRITE_OPT} ${OPTS} ${SCHED_OPTS} &> ${LOG}" + cmd="python ${RUN_SCRIPT} ${OPTS} ${SCHED_OPTS} &> ${LOG}" echo ${DISABLE_CACHE} echo ${cmd} echo ${SYNC} diff --git a/csrc/aio/py_test/test_ds_aio.py b/csrc/aio/py_test/test_ds_aio.py index e6242cb35789..6de72755e9e5 100755 --- a/csrc/aio/py_test/test_ds_aio.py +++ b/csrc/aio/py_test/test_ds_aio.py @@ -6,79 +6,19 @@ Functionality of swapping optimizer tensors to/from (NVMe) storage devices. """ -import os -import argparse import multiprocessing as mp from ds_aio_basic import aio_basic_multiprocessing from ds_aio_handle import aio_handle_multiprocessing -from test_ds_aio_utils import refine_args - - -def parse_arguments(): - parser = argparse.ArgumentParser() - - parser.add_argument('--read_file', type=str, default=None, help='Read file.') - - parser.add_argument('--write_file', type=str, default=None, help='Write file.') - - parser.add_argument('--write_size', type=str, default=None, help='Number of bytes to write.') - - parser.add_argument('--block_size', type=str, default='1M', help='I/O block size.') - - parser.add_argument('--queue_depth', type=int, default=32, help='I/O queue depth.') - - parser.add_argument('--threads', type=int, default=1, help='Thread parallelism count.') - - parser.add_argument('--single_submit', - action='store_true', - help='Submit I/O requests in singles (default is submit queue_depth amount at once.).') - - parser.add_argument('--overlap_events', - action='store_true', - help='Overlap I/O submission and completion requests.') - - parser.add_argument('--validate', action='store_true', help='Perform validation in library.') - - parser.add_argument('--handle', action='store_true', help='Use AIO handle.') - - parser.add_argument('--loops', type=int, default=1, help='Count of operation repetitions') - - parser.add_argument('--io_parallel', type=int, default=None, help='Per iop parallelism') - - parser.add_argument('--gpu', action='store_true', help='Use GPU memory') - - parser.add_argument('--use_accelerator_pin_memory', - action='store_true', - help='Obtain pinned (CPU page-locked) tensors from accelerator') - - args = parser.parse_args() - print(f'args = {args}') - return args - - -def validate_args(args): - if args.read_file and not os.path.isfile(args.read_file): - print(f'args validation error: {args.read_file} not found') - return False - - return True +from ds_aio_args import get_validated_args def main(): print(f'Testing deepspeed_aio python frontend') - args = parse_arguments() - refine_args(args) - if not validate_args(args): - quit() - + args = get_validated_args() mp.set_start_method('spawn') multiprocess_function = aio_handle_multiprocessing if args.handle else aio_basic_multiprocessing - if args.read_file: - multiprocess_function(args, True) - - if args.write_file: - multiprocess_function(args, False) + multiprocess_function(args, args.read) if __name__ == "__main__": diff --git a/csrc/aio/py_test/test_ds_aio_utils.py b/csrc/aio/py_test/test_ds_aio_utils.py index 6aad114c0bdc..968ff4a60ef9 100755 --- a/csrc/aio/py_test/test_ds_aio_utils.py +++ b/csrc/aio/py_test/test_ds_aio_utils.py @@ -6,12 +6,17 @@ Functionality of swapping optimizer tensors to/from (NVMe) storage devices. """ +import os +from ds_aio_job import Job, run_job + BYTES_PER_GB = 1024**3 +BYTES_PER_MB = 1024**2 +BYTES_PER_KB = 1024 LOG_TIDS = [0] -def task_log(tid, msg): - if tid in LOG_TIDS: +def task_log(tid, msg, force=False): + if force or tid in LOG_TIDS: print(f'tid {tid}: {msg}') @@ -31,16 +36,29 @@ def report_results(args, read_op, pool_results): total_bytes = sum([num_bytes for _, _, num_bytes in pool_results]) task_latency_sec = max([sec for _, sec, _ in pool_results]) - task_speed_GB = total_bytes / task_latency_sec / BYTES_PER_GB + task_speed_GB = 0 if task_latency_sec == 0 else total_bytes / task_latency_sec / BYTES_PER_GB print(f'Task {io_string} Latency = {task_latency_sec} sec') print(f'Task {io_string} Speed = {task_speed_GB} GB/sec') e2e_latency_sec = max([sec for sec, _, _ in pool_results]) - e2e_speed_GB = total_bytes / e2e_latency_sec / BYTES_PER_GB + e2e_speed_GB = 0 if e2e_latency_sec == 0 else total_bytes / e2e_latency_sec / BYTES_PER_GB print(f'E2E {io_string} Latency = {e2e_latency_sec} sec') print(f'E2E {io_string} Speed = {e2e_speed_GB} GB/sec') +def get_block_size_and_count(io_bytes): + if io_bytes > BYTES_PER_MB and io_bytes % BYTES_PER_MB == 0: + block_size = BYTES_PER_MB + block_size_string = '1M' + else: + assert io_bytes % BYTES_PER_KB == 0 + block_size = BYTES_PER_KB + block_size_string = '1K' + block_count = io_bytes / block_size + + return block_size_string, int(block_count) + + def refine_integer_value(value): unit_dict = {'K': 1024, 'M': 1024**2, 'G': 1024**3} @@ -50,9 +68,14 @@ def refine_integer_value(value): return int(value) -def refine_args(args): - if args.write_size and type(args.write_size) == str: - args.write_size = refine_integer_value(args.write_size) +def create_filename(folder, read_op, size, tid): + io_string = "read" if read_op else "write" + return os.path.join(folder, f'_aio_{io_string}_{size}.pt.{tid}') + - if args.block_size and type(args.block_size) == str: - args.block_size = refine_integer_value(args.block_size) +def create_file(filename, num_bytes): + block_size, block_count = get_block_size_and_count(num_bytes) + dd_job = Job(cmd_line=[f'dd if=/dev/urandom of={filename} bs={block_size} count={block_count}']) + print(f'[Start] Create {filename} of {num_bytes} bytes by running {dd_job.cmd()} ....') + run_job(dd_job) + print(f'[Done] Create read file of {num_bytes} bytes by running {dd_job.cmd()} ....') diff --git a/csrc/aio/py_test/validate_async_io.py b/csrc/aio/py_test/validate_async_io.py index 019ec05d49d3..10fb638347bc 100644 --- a/csrc/aio/py_test/validate_async_io.py +++ b/csrc/aio/py_test/validate_async_io.py @@ -7,3 +7,4 @@ """ from deepspeed.ops.op_builder import AsyncIOBuilder assert AsyncIOBuilder().is_compatible() +assert AsyncIOBuilder().load() diff --git a/csrc/common/custom_cuda_kernel.cu b/csrc/common/custom_cuda_kernel.cu deleted file mode 100644 index f46bf303125c..000000000000 --- a/csrc/common/custom_cuda_kernel.cu +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// SPDX-License-Identifier: Apache-2.0 - -// DeepSpeed Team - -#include "custom_cuda_layers.h" - -__global__ void param_update_kernel(const float* input, __half* output, int size) -{ - int id = blockIdx.x * blockDim.x + threadIdx.x; - - if (id < size) { output[id] = (__half)input[id]; } -} - -void launch_param_update(const float* input, __half* output, int size, cudaStream_t stream) -{ - int threads = 1024; - - dim3 grid_dim((size - 1) / threads + 1); - dim3 block_dim(threads); - - param_update_kernel<<>>(input, output, size); -} - -__global__ void param_update_kernel_half(const float* input, __half* output, int size) -{ - int id = blockIdx.x * blockDim.x + threadIdx.x; - __half2* output_cast = reinterpret_cast<__half2*>(output); - if (id < size) { - float input_f = input[id]; - __half2* input_h = reinterpret_cast<__half2*>(&input_f); - output_cast[id] = *input_h; - } -} - -void launch_param_update_half(const float* input, __half* output, int size, cudaStream_t stream) -{ - int threads = 1024; - size /= 2; - dim3 grid_dim((size - 1) / threads + 1); - dim3 block_dim(threads); - - param_update_kernel_half<<>>(input, output, size); -} diff --git a/csrc/cpu/comm/ccl.cpp b/csrc/cpu/comm/ccl.cpp index 9a04b6f873f2..d28509e59266 100644 --- a/csrc/cpu/comm/ccl.cpp +++ b/csrc/cpu/comm/ccl.cpp @@ -5,281 +5,24 @@ #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include #include +#include "shm.h" -// states for collectives -enum coll_state { - coll_begin = 0, - // coll states for naive allreduce - coll_allreduce_naive__copy_in_done, // this state is for rank != 0 - coll_allreduce_naive__reduce_done, // this state is for rank == 0 - coll_allreduce_naive__copy_out_done, // this state is for rank != 0 -}; - -// SHM building blocks -struct SharedData { - const char* name; - int descriptor; - void* bytes; - size_t nbytes; -}; - -void shared_open(SharedData* data, const char* name, size_t nbytes) -{ - int d = shm_open(name, O_RDWR, S_IRUSR | S_IWUSR); - if (d != -1) { - void* bytes = mmap(NULL, nbytes, PROT_READ | PROT_WRITE, MAP_SHARED, d, 0); - data->name = name; - data->descriptor = d; - data->bytes = bytes; - data->nbytes = nbytes; - } else { - printf("shared_open %s failed\n", name); - data->descriptor = -1; - } -} - -void shared_create(SharedData* data, const char* name, void* bytes, size_t nbytes) -{ - int d = shm_open(name, O_CREAT | O_RDWR, S_IRUSR | S_IWUSR); - if (d != -1) { - if (nbytes = write(d, bytes, nbytes)) { shared_open(data, name, nbytes); } - } else { - printf("shared_create %s failed\n", name); - } -} - -void shared_close(SharedData* data) -{ - if (data->descriptor != -1) { - munmap(data->bytes, data->nbytes); - shm_unlink(data->name); - } -} - -// SHM based allreduce helper functions -// buffer that holds shm name -#define NAME_BUF_SIZE 1000 -#define MAX_BUF_SIZE 1048576 -#define SHM_BUFFER_NAME "deepspeed_allreduce_buffer" -SharedData allreduce_buffer; -struct allreduce_workspace { - enum coll_state state; - char buffer[MAX_BUF_SIZE]; -}; -struct allreduce_workspace* workspace; - -void wait_buffer_state_until(int index, enum coll_state state) -{ - volatile enum coll_state* state_ptr = &(workspace[index].state); - - while (*state_ptr != state) - ; -} - -void wait_buffer_state_until_not(int index, enum coll_state state) -{ - volatile enum coll_state* state_ptr = &(workspace[index].state); - - while (*state_ptr == state) - ; -} - -__m512 cvt_bf16_to_fp32(const __m256i src) __attribute__((target("avx512bw"))); -inline __m512 cvt_bf16_to_fp32(const __m256i src) -{ - auto y = _mm512_cvtepu16_epi32(src); - return _mm512_castsi512_ps(_mm512_bslli_epi128(y, 2)); -} - -inline __m256i cvt_fp32_to_bf16(const __m512 src) __attribute__((target("avx512bw"))); -inline __m256i cvt_fp32_to_bf16(const __m512 src) -{ - __m512i value = _mm512_castps_si512(src); - __m512i nan = _mm512_set1_epi32(0xffff); - auto mask_value = _mm512_cmp_ps_mask(src, src, _CMP_ORD_Q); - __m512i ones = _mm512_set1_epi32(0x1); - __m512i vec_bias = _mm512_set1_epi32(0x7fff); - // uint32_t lsb = (input >> 16) & 1; - auto t_value = _mm512_and_si512(_mm512_srli_epi32(value, 16), ones); - // uint32_t rounding_bias = 0x7fff + lsb; - t_value = _mm512_add_epi32(t_value, vec_bias); - // input += rounding_bias; - t_value = _mm512_add_epi32(t_value, value); - // input = input >> 16; - t_value = _mm512_srli_epi32(t_value, 16); - // Check NaN before converting back to bf16 - t_value = _mm512_mask_blend_epi32(mask_value, nan, t_value); - return _mm512_cvtusepi32_epi16(t_value); -} - -void reduce_2_bf16_buffers(int num_elements, void* in_out, void* in) - __attribute__((target("avx512bw"))); - -void reduce_bf16_buffers(int num_elements, int num_buffers, struct allreduce_workspace* workspace) - __attribute__((target("avx512bw"))); - -void reduce_2_fp32_buffers(int num_elements, void* in_out, void* in) - __attribute__((target("avx512bw"))); - -void reduce_fp32_buffers(int num_elements, int num_buffers, struct allreduce_workspace* workspace) - __attribute__((target("avx512bw"))); - -// N_REDUCE_LIMIT is the number of buffers that can be reduced together in one shot. -// Compared with do N-1 2-reduces which needs 2*(N-1) read and N-1 write, -// N-reduce only needs N read and 1 write, this saves 2/3 memory bandwidth. -// When increase N_REDUCE_LIMIT to a bigger number, do the following steps -// 1. Extend REPEAT_ macros list down below -// 2. Extend switch cases which call "REPEAT(X, ...)" down below -#define N_REDUCE_LIMIT 8 - -void reduce_all_buffers(struct allreduce_workspace* workspace, - int num_elements, - c10::ScalarType scalar_type, - int num_buffers) -{ - switch (scalar_type) { - case c10::ScalarType::BFloat16: - if (num_buffers > 2 && num_buffers <= N_REDUCE_LIMIT) { - reduce_bf16_buffers(num_elements, num_buffers, workspace); - } else { - for (int i = 1; i < num_buffers; i++) { - reduce_2_bf16_buffers(num_elements, workspace[0].buffer, workspace[i].buffer); - } - } - break; - case c10::ScalarType::Float: - if (num_buffers > 2 && num_buffers <= N_REDUCE_LIMIT) { - reduce_fp32_buffers(num_elements, num_buffers, workspace); - } else { - for (int i = 1; i < num_buffers; i++) { - reduce_2_fp32_buffers(num_elements, workspace[0].buffer, workspace[i].buffer); - } - } - break; - default: assert(!"Should not get here"); - } -} - -#define REPEAT(N, x) REPEAT_##N(x) -#define REPEAT_1(x) x(1) -#define REPEAT_2(x) \ - REPEAT_1(x); \ - x(2) -#define REPEAT_3(x) \ - REPEAT_2(x); \ - x(3) -#define REPEAT_4(x) \ - REPEAT_3(x); \ - x(4) -#define REPEAT_5(x) \ - REPEAT_4(x); \ - x(5) -#define REPEAT_6(x) \ - REPEAT_5(x); \ - x(6) -#define REPEAT_7(x) \ - REPEAT_6(x); \ - x(7) - -#define CVT_ADD_BF16(x) \ - do { \ - auto in##x##_val = \ - cvt_bf16_to_fp32(_mm256_loadu_si256((__m256i*)(workspace[x].buffer + i))); \ - inout_val = _mm512_add_ps(inout_val, in##x##_val); \ - } while (0) - -// Reduce functions down below use vectorized algorithm, the number of bytes processed each -// iteration depends on vector length. 256bit vector ==> 32 bytes, 512bit vector ==> 64 bytes -// If you change implementation of reduce_2_bf16_buffers or reduce_2_fp32_buffers, check -// whether this number needs to be changed -#define VECTOR_LENGTH_IN_BYTES 32 - -// num_elements must be divisible by 16 (caller check) -void reduce_bf16_buffers(int num_elements, int num_buffers, struct allreduce_workspace* workspace) -{ -#pragma omp parallel for - for (int i = 0; i < num_elements * 2; i += VECTOR_LENGTH_IN_BYTES) { - auto inout_val = cvt_bf16_to_fp32(_mm256_loadu_si256((__m256i*)(workspace[0].buffer + i))); - switch (num_buffers) { - case 8: REPEAT(7, CVT_ADD_BF16); break; - case 7: REPEAT(6, CVT_ADD_BF16); break; - case 6: REPEAT(5, CVT_ADD_BF16); break; - case 5: REPEAT(4, CVT_ADD_BF16); break; - case 4: REPEAT(3, CVT_ADD_BF16); break; - case 3: REPEAT(2, CVT_ADD_BF16); break; - default: assert(!"Should not get here."); - } - _mm256_storeu_si256((__m256i*)(workspace[0].buffer + i), cvt_fp32_to_bf16(inout_val)); - } -} +// #define DO_PROFILE +#ifdef DO_PROFILE +#include +#include +#endif -void reduce_2_bf16_buffers(int num_elements, void* in_out, void* in1) -{ -#pragma omp parallel for - for (int i = 0; i < num_elements * 2; i += VECTOR_LENGTH_IN_BYTES) { - auto inout_val = cvt_bf16_to_fp32(_mm256_loadu_si256((__m256i*)((char*)in_out + i))); - auto in1_val = cvt_bf16_to_fp32(_mm256_loadu_si256((__m256i*)((char*)in1 + i))); - inout_val = _mm512_add_ps(inout_val, in1_val); - _mm256_storeu_si256((__m256i*)((char*)in_out + i), cvt_fp32_to_bf16(inout_val)); - } -} - -#define CVT_ADD_F32(x) \ - do { \ - auto in##x##_val = _mm256_loadu_ps((float*)(workspace[x].buffer + i)); \ - inout_val = _mm256_add_ps(inout_val, in##x##_val); \ - } while (0) +// Communication settings +static int world_rank = -1; +static int world_size = -1; -// num_elements must be divisible by 16 (caller check) -void reduce_fp32_buffers(int num_elements, int num_buffers, struct allreduce_workspace* workspace) -{ -#pragma omp parallel for - for (int i = 0; i < num_elements * 4; i += VECTOR_LENGTH_IN_BYTES) { - auto inout_val = _mm256_loadu_ps((float*)(workspace[0].buffer + i)); - switch (num_buffers) { - case 8: REPEAT(7, CVT_ADD_F32); break; - case 7: REPEAT(6, CVT_ADD_F32); break; - case 6: REPEAT(5, CVT_ADD_F32); break; - case 5: REPEAT(4, CVT_ADD_F32); break; - case 4: REPEAT(3, CVT_ADD_F32); break; - case 3: REPEAT(2, CVT_ADD_F32); break; - default: assert(!"Should not get here."); - } - _mm256_storeu_ps((float*)(workspace[0].buffer + i), inout_val); - } -} - -void reduce_2_fp32_buffers(int num_elements, void* in_out, void* in1) -{ -#pragma omp parallel for - for (int i = 0; i < num_elements * 4; i += VECTOR_LENGTH_IN_BYTES) { - auto inout_val = _mm256_loadu_ps((float*)((char*)in_out + i)); - auto in1_val = _mm256_loadu_ps((float*)((char*)in1 + i)); - inout_val = _mm256_add_ps(inout_val, in1_val); - _mm256_storeu_ps((float*)((char*)in_out + i), inout_val); - } -} - -// Communicatiooon settings -int world_rank = -1; -int world_size = -1; - -std::set _comm_ids; -std::set _colors; -std::vector _ccl_comms; -ccl::shared_ptr_class sub_kvs; -std::map, int> group_to_comm_id; +static std::set _comm_ids; +static std::set _colors; +static std::vector _ccl_comms; +static ccl::shared_ptr_class sub_kvs; +static std::map, int> group_to_comm_id; ccl::communicator& _get_comm_from_group() { return _ccl_comms[0]; } ccl::communicator& _get_comm_from_group(py::object group) { return _ccl_comms[0]; } @@ -300,11 +43,11 @@ ccl::communicator& _get_comm_from_group(std::vector ranks) #define KVS_CREATE_SUCCESS 0 #define KVS_CREATE_FAILURE -1 -bool is_initialized = 0; +static bool is_initialized = 0; -ccl::shared_ptr_class kvs; +static ccl::shared_ptr_class kvs; -bool all_ranks_local_p = false; +static bool all_ranks_local_p = false; void initialize(int size, int rank, torch::Tensor& kvs_data) { @@ -336,30 +79,8 @@ void initialize(int size, int rank, torch::Tensor& kvs_data) if (addr_string == NULL) { addr_string = ""; } auto port_string = std::getenv("MASTER_PORT"); if (port_string == NULL) { port_string = ""; } - char shm_name[NAME_BUF_SIZE]; - snprintf(shm_name, - NAME_BUF_SIZE, - "%s_%d_%s_%s", - SHM_BUFFER_NAME, - getuid(), - addr_string, - port_string); - // create shared workspace for SHM based allreduce - if (all_ranks_local_p) { - if (rank == 0) { - workspace = - (struct allreduce_workspace*)malloc(size * sizeof(struct allreduce_workspace)); - shared_create( - &allreduce_buffer, shm_name, workspace, size * sizeof(struct allreduce_workspace)); - workspace = (struct allreduce_workspace*)allreduce_buffer.bytes; - for (int i = 0; i < size; i++) { workspace[i].state = coll_begin; } - } - CCLCHECK(ccl::barrier(_get_comm_from_group()).wait()); - if (rank != 0) { - shared_open(&allreduce_buffer, shm_name, size * sizeof(struct allreduce_workspace)); - } - workspace = (struct allreduce_workspace*)allreduce_buffer.bytes; - } + + if (all_ranks_local_p) { shm_initialize(size, rank, addr_string, port_string); } } /* @@ -526,19 +247,22 @@ void all_reduce_caching(torch::Tensor& data, .wait()); } -static void parallel_memcpy(void* to, void* from, size_t n_bytes) - __attribute__((target("avx512bw"))); -static void parallel_memcpy(void* to, void* from, size_t n_bytes) +void inference_all_reduce(torch::Tensor& data, py::object op) { -#pragma omp parallel for - for (int i = 0; i < n_bytes; i += VECTOR_LENGTH_IN_BYTES) { - auto val = _mm256_loadu_si256((__m256i*)((char*)from + i)); - _mm256_storeu_si256((__m256i*)((char*)to + i), val); - } -} +#ifdef DO_PROFILE + static double total_time = 0.0; + static double total_time_sq = 0.0; + static int count = -16; // warmup + static double max_time = 0.0; + static double min_time = DBL_MAX; + // make sure all rank reach this point before measuring time + // turn on this if you suspect each rank didn't reach here at the same time (stragger) + // if (all_ranks_local_p) { + // barrier_wait(0, world_size); + //} + auto start = std::chrono::system_clock::now(); +#endif -void inference_all_reduce(torch::Tensor& data, py::object op, std::vector group, bool async_op) -{ static py::object ReduceOp = py::module_::import("deepspeed.comm").attr("ReduceOp"); static auto ReduceOpSum = (int)py::int_(ReduceOp.attr("SUM").attr("value")); @@ -555,59 +279,40 @@ void inference_all_reduce(torch::Tensor& data, py::object op, std::vector g default: data_type_fallback = true; } - if (data_type_fallback || (data_size % VECTOR_LENGTH_IN_BYTES) != 0 || !all_ranks_local_p) { + if (data_type_fallback || !all_ranks_local_p) { // fallback to oneccl allreduce CCLCHECK(ccl::allreduce(data.data_ptr(), data.data_ptr(), data.numel(), get_ccl_datatype(data.scalar_type()), get_ccl_reduce_op(op, data), - _get_comm_from_group(group)) + _get_comm_from_group()) .wait()); - return; + } else { + all_reduce_outer_loop(data, numel, data_size); } - for (int offset = 0; offset < data_size; offset += MAX_BUF_SIZE) { - auto data_ptr = ((char*)(data.data_ptr()) + offset); - size_t chunk_size = data_size - offset > MAX_BUF_SIZE ? MAX_BUF_SIZE : data_size - offset; - size_t chunk_el = chunk_size / (data_size / numel); - - parallel_memcpy(workspace[world_rank].buffer, data_ptr, chunk_size); - std::atomic_thread_fence(std::memory_order_release); - workspace[world_rank].state = coll_allreduce_naive__copy_in_done; - - if (world_rank == 0) { - // compute allreduce result on rank 0 - for (int i = 1; i < world_size; i++) { - // wait until the other rank copy the buffer - wait_buffer_state_until(i, coll_allreduce_naive__copy_in_done); - } - reduce_all_buffers(workspace, chunk_el, data.scalar_type(), world_size); - std::atomic_thread_fence(std::memory_order_release); - workspace[world_rank].state = coll_allreduce_naive__reduce_done; - parallel_memcpy(data_ptr, workspace[0].buffer, chunk_size); - } - if (world_rank != 0) { - wait_buffer_state_until(0, coll_allreduce_naive__reduce_done); - parallel_memcpy(data_ptr, workspace[0].buffer, chunk_size); - std::atomic_thread_fence(std::memory_order_release); - workspace[world_rank].state = coll_allreduce_naive__copy_out_done; - } - if (world_rank == 0) { - for (int i = 1; i < world_size; i++) { - wait_buffer_state_until(i, coll_allreduce_naive__copy_out_done); - } - std::atomic_thread_fence(std::memory_order_release); - workspace[world_rank].state = coll_begin; - } - if (world_rank != 0) { - // if rank 0 spin too fast it could be in state 1 of next allreduce - // in this case wait_buffer_state_until(0, 0) may cause deadlock - // what we are certain is when rank 0 finishes the state won't be 2 - wait_buffer_state_until_not(0, coll_allreduce_naive__reduce_done); - workspace[world_rank].state = coll_begin; +#ifdef DO_PROFILE + auto end = std::chrono::system_clock::now(); + count++; + if (count > 0) { + double elapsed = std::chrono::duration_cast(end - start).count(); + if (elapsed > max_time) { max_time = elapsed; } + if (elapsed < min_time) { min_time = elapsed; } + total_time += elapsed; + total_time_sq += elapsed * elapsed; + if (world_rank == 0 && count == 1000) { + auto avg = total_time / count; + auto sd = + sqrt(total_time_sq / count - total_time * total_time / (count * count)) / avg * 100; + printf(" C++ kernel\t\t %.2f\t %.2f\t%.2f\t %.2f\n", + min_time, + max_time, + total_time / count, + sd); } } +#endif } void barrier(std::vector group, bool async_op) diff --git a/csrc/cpu/comm/shm.cpp b/csrc/cpu/comm/shm.cpp new file mode 100644 index 000000000000..be44681ca062 --- /dev/null +++ b/csrc/cpu/comm/shm.cpp @@ -0,0 +1,692 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 + +// DeepSpeed Team + +#include + +#include +#include +#include +#include +#include +#include "shm.h" + +// #define DO_PROFILE +#ifdef DO_PROFILE +#include +#include +#endif + +// states for collectives +enum coll_state { + coll_begin = 0, + coll_allreduce_naive__copy_in_done, + coll_allreduce_naive__reduce_done, + // alternative state when allreduce is working on alternative buffer + // of the double buffer. + coll_alt1_allreduce_naive__copy_in_done, + coll_alt2_allreduce_naive__copy_in_done, + coll_alt1_allreduce_naive__reduce_done, +}; + +// SHM building blocks +struct SharedData { + const char* name; + int descriptor; + void* bytes; + size_t nbytes; +}; + +void shared_open(SharedData* data, const char* name, size_t nbytes) +{ + int d = shm_open(name, O_RDWR, S_IRUSR | S_IWUSR); + if (d != -1) { + void* bytes = mmap(NULL, nbytes, PROT_READ | PROT_WRITE, MAP_SHARED, d, 0); + data->name = name; + data->descriptor = d; + data->bytes = bytes; + data->nbytes = nbytes; + } else { + if (errno != ENOENT) { + // don't print if shm can not be found because we want to loop over from + // caller again until the other ranks created the shm + printf("shared_open %s failed, errno=%d\n", name, errno); + } + data->descriptor = -1; + } +} + +void shared_create(SharedData* data, const char* name, void* bytes, size_t nbytes) +{ + int d = shm_open(name, O_CREAT | O_RDWR, S_IRUSR | S_IWUSR); + if (d != -1) { + if (nbytes = write(d, bytes, nbytes)) { shared_open(data, name, nbytes); } + } else { + printf("shared_create %s failed\n", name); + } +} + +void shared_close(SharedData* data) +{ + if (data->descriptor != -1) { + munmap(data->bytes, data->nbytes); + shm_unlink(data->name); + } +} + +static int world_size; + +// SHM based allreduce helper functions +// buffer that holds shm name +#define NAME_BUF_SIZE 1000 +#define MAX_BUF_SIZE 1048576 * 32 +#define NAIVE_ALLREDUCE_THRESHOLD 1048576 +#define SHM_BUFFER_NAME "deepspeed_allreduce_buffer" +struct allreduce_workspace { + enum coll_state states[2]; // idx=0 -- state for symmetric_naive_all_reduce + // idx=1 -- state for distributed_naive_all_reduce + // double buffer to avoid syncing between rounds + // offset=0 -- 2*NAIVE_ALLREDUCE_THRESHOLD : buffer for symmetric_naive_all_reduce + // after that : buffer for distributed_naive_all_reduce + char buffer[2 * NAIVE_ALLREDUCE_THRESHOLD + 2 * MAX_BUF_SIZE]; +}; + +#define BUFFER0_OFFSET(current_buffer) current_buffer* NAIVE_ALLREDUCE_THRESHOLD +#define BUFFER1_OFFSET(current_buffer) 2 * NAIVE_ALLREDUCE_THRESHOLD + current_buffer* MAX_BUF_SIZE + +struct allreduce_workspace** workspace; + +// buffer for small messages, double buffer +char** symmetric_buffer[2]; +// buffer for large messages, double buffer +char** distributed_buffer[2]; + +void wait_buffer_state_until_2(int index, + enum coll_state state0, + enum coll_state state1, + int state_group) +{ + volatile enum coll_state* state_ptr = &(workspace[index]->states[state_group]); + + while (1) { + volatile enum coll_state cur_state = *state_ptr; + if (cur_state == state0 || cur_state == state1) break; + } +} + +__m512 cvt_bf16_to_fp32(const __m256i src) __attribute__((target("avx512bw"))); +inline __m512 cvt_bf16_to_fp32(const __m256i src) +{ + auto y = _mm512_cvtepu16_epi32(src); + return _mm512_castsi512_ps(_mm512_bslli_epi128(y, 2)); +} + +inline __m256i cvt_fp32_to_bf16(const __m512 src) __attribute__((target("avx512bw"))); +inline __m256i cvt_fp32_to_bf16(const __m512 src) +{ + __m512i value = _mm512_castps_si512(src); + __m512i nan = _mm512_set1_epi32(0xffff); + auto mask_value = _mm512_cmp_ps_mask(src, src, _CMP_ORD_Q); + __m512i ones = _mm512_set1_epi32(0x1); + __m512i vec_bias = _mm512_set1_epi32(0x7fff); + // uint32_t lsb = (input >> 16) & 1; + auto t_value = _mm512_and_si512(_mm512_srli_epi32(value, 16), ones); + // uint32_t rounding_bias = 0x7fff + lsb; + t_value = _mm512_add_epi32(t_value, vec_bias); + // input += rounding_bias; + t_value = _mm512_add_epi32(t_value, value); + // input = input >> 16; + t_value = _mm512_srli_epi32(t_value, 16); + // Check NaN before converting back to bf16 + t_value = _mm512_mask_blend_epi32(mask_value, nan, t_value); + return _mm512_cvtusepi32_epi16(t_value); +} + +__m512 cvt_fp16_to_fp32(const __m256i src) __attribute__((target("avx512bw"))); +inline __m512 cvt_fp16_to_fp32(const __m256i src) { return _mm512_cvtph_ps(src); } + +inline __m256i cvt_fp32_to_fp16(const __m512 src) __attribute__((target("avx512bw"))); +inline __m256i cvt_fp32_to_fp16(const __m512 src) +{ + return _mm512_cvtps_ph(src, (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC)); +} + +void reduce_bf16_buffers(int start_elements, int num_elements, char* to_buffer, char** buffers) + __attribute__((target("avx512bw"))); + +void reduce_fp16_buffers(int start_elements, int num_elements, char* to_buffer, char** buffers) + __attribute__((target("avx512bw"))); + +void reduce_fp32_buffers(int start_elements, int num_elements, char* to_buffer, char** buffers) + __attribute__((target("avx512bw"))); + +void reduce_all_buffers(int start_elements, + int num_elements, + c10::ScalarType scalar_type, + int to_buffer_idx, + char* to_buffer, + char** buffers) +{ + switch (scalar_type) { + case c10::ScalarType::BFloat16: + reduce_bf16_buffers(start_elements, num_elements, to_buffer, buffers); + break; + case c10::ScalarType::Half: + reduce_fp16_buffers(start_elements, num_elements, to_buffer, buffers); + break; + case c10::ScalarType::Float: + reduce_fp32_buffers(start_elements, num_elements, to_buffer, buffers); + break; + default: assert(!"Should not get here"); + } +} + +#define CVT_ADD_BF16(x) \ + do { \ + auto in##x##_val = cvt_bf16_to_fp32(_mm256_loadu_si256((__m256i*)(buffers[x] + i))); \ + inout_val = _mm512_add_ps(inout_val, in##x##_val); \ + } while (0) + +// Reduce functions down below use vectorized algorithm, the number of bytes processed each +// iteration depends on vector length. 256bit vector ==> 32 bytes, 512bit vector ==> 64 bytes +// If you change implementation of reduce_bf16_buffers, etc. , check whether this number needs +// to be changed +#define VECTOR_LENGTH_IN_BYTES 32 + +void reduce_bf16_buffers(int start_elements, int num_elements, char* to_buffer, char** buffers) +{ + const int element_size = 2; + const int vector_length = VECTOR_LENGTH_IN_BYTES / element_size; + int main_elements = num_elements - (num_elements % vector_length); + int remain_elements = num_elements % vector_length; + + // process aligned part +#pragma omp parallel for + for (int i = start_elements * element_size; i < (start_elements + main_elements) * element_size; + i += VECTOR_LENGTH_IN_BYTES) { + auto inout_val = cvt_bf16_to_fp32(_mm256_loadu_si256((__m256i*)(buffers[0] + i))); + switch (world_size) { + case 16: CVT_ADD_BF16(15); + case 15: CVT_ADD_BF16(14); + case 14: CVT_ADD_BF16(13); + case 13: CVT_ADD_BF16(12); + case 12: CVT_ADD_BF16(11); + case 11: CVT_ADD_BF16(10); + case 10: CVT_ADD_BF16(9); + case 9: CVT_ADD_BF16(8); + case 8: CVT_ADD_BF16(7); + case 7: CVT_ADD_BF16(6); + case 6: CVT_ADD_BF16(5); + case 5: CVT_ADD_BF16(4); + case 4: CVT_ADD_BF16(3); + case 3: CVT_ADD_BF16(2); + case 2: CVT_ADD_BF16(1); + case 1: break; + default: + for (int j = 1; j < world_size; j++) { + auto in_val = cvt_bf16_to_fp32(_mm256_loadu_si256((__m256i*)(buffers[j] + i))); + inout_val = _mm512_add_ps(inout_val, in_val); + } + } + _mm256_storeu_si256((__m256i*)(to_buffer + i), cvt_fp32_to_bf16(inout_val)); + } + + // process remaining part + int i = (start_elements + main_elements) * element_size; + while (remain_elements > 0) { + float val = 0.0f; + for (int j = 0; j < world_size; j++) { val += *(at::BFloat16*)(buffers[j] + i); } + *(at::BFloat16*)(to_buffer + i) = val; + remain_elements--; + i += element_size; + } +} + +#define CVT_ADD_FP16(x) \ + do { \ + auto in##x##_val = cvt_fp16_to_fp32(_mm256_loadu_si256((__m256i*)(buffers[x] + i))); \ + inout_val = _mm512_add_ps(inout_val, in##x##_val); \ + } while (0) + +void reduce_fp16_buffers(int start_elements, int num_elements, char* to_buffer, char** buffers) +{ + const int element_size = 2; + const int vector_length = VECTOR_LENGTH_IN_BYTES / element_size; + int main_elements = num_elements - (num_elements % vector_length); + int remain_elements = num_elements % vector_length; + + // process aligned part +#pragma omp parallel for + for (int i = start_elements * element_size; i < (start_elements + main_elements) * element_size; + i += VECTOR_LENGTH_IN_BYTES) { + auto inout_val = cvt_fp16_to_fp32(_mm256_loadu_si256((__m256i*)(buffers[0] + i))); + switch (world_size) { + case 16: CVT_ADD_FP16(15); + case 15: CVT_ADD_FP16(14); + case 14: CVT_ADD_FP16(13); + case 13: CVT_ADD_FP16(12); + case 12: CVT_ADD_FP16(11); + case 11: CVT_ADD_FP16(10); + case 10: CVT_ADD_FP16(9); + case 9: CVT_ADD_FP16(8); + case 8: CVT_ADD_FP16(7); + case 7: CVT_ADD_FP16(6); + case 6: CVT_ADD_FP16(5); + case 5: CVT_ADD_FP16(4); + case 4: CVT_ADD_FP16(3); + case 3: CVT_ADD_FP16(2); + case 2: CVT_ADD_FP16(1); + case 1: break; + default: + for (int j = 1; j < world_size; j++) { + auto in_val = cvt_fp16_to_fp32(_mm256_loadu_si256((__m256i*)(buffers[j] + i))); + inout_val = _mm512_add_ps(inout_val, in_val); + } + } + _mm256_storeu_si256((__m256i*)(to_buffer + i), cvt_fp32_to_fp16(inout_val)); + } + + // process remaining part + int i = (start_elements + main_elements) * element_size; + while (remain_elements > 0) { + float val = 0.0f; + for (int j = 0; j < world_size; j++) { val += *(at::Half*)(buffers[j] + i); } + *(at::Half*)(to_buffer + i) = val; + remain_elements--; + i += element_size; + } +} + +#define CVT_ADD_F32(x) \ + do { \ + auto in##x##_val = _mm256_loadu_ps((float*)(buffers[x] + i)); \ + inout_val = _mm256_add_ps(inout_val, in##x##_val); \ + } while (0) + +void reduce_fp32_buffers(int start_elements, int num_elements, char* to_buffer, char** buffers) +{ + const int element_size = 4; + const int vector_length = VECTOR_LENGTH_IN_BYTES / element_size; + int main_elements = num_elements - (num_elements % vector_length); + int remain_elements = num_elements % vector_length; + + // process aligned part +#pragma omp parallel for + for (int i = start_elements * element_size; i < (start_elements + main_elements) * element_size; + i += VECTOR_LENGTH_IN_BYTES) { + auto inout_val = _mm256_loadu_ps((float*)(buffers[0] + i)); + switch (world_size) { + case 16: CVT_ADD_F32(15); + case 15: CVT_ADD_F32(14); + case 14: CVT_ADD_F32(13); + case 13: CVT_ADD_F32(12); + case 12: CVT_ADD_F32(11); + case 11: CVT_ADD_F32(10); + case 10: CVT_ADD_F32(9); + case 9: CVT_ADD_F32(8); + case 8: CVT_ADD_F32(7); + case 7: CVT_ADD_F32(6); + case 6: CVT_ADD_F32(5); + case 5: CVT_ADD_F32(4); + case 4: CVT_ADD_F32(3); + case 3: CVT_ADD_F32(2); + case 2: CVT_ADD_F32(1); + case 1: break; + default: + for (int j = 1; j < world_size; j++) { + auto in_val = _mm256_loadu_ps((float*)(buffers[j] + i)); + inout_val = _mm256_add_ps(inout_val, in_val); + } + } + _mm256_storeu_ps((float*)(to_buffer + i), inout_val); + } + + // process remaining part + int i = (start_elements + main_elements) * element_size; + while (remain_elements > 0) { + float val = 0.0f; + for (int j = 0; j < world_size; j++) { val += *(float*)(buffers[j] + i); } + *(float*)(to_buffer + i) = val; + remain_elements--; + i += element_size; + } +} + +static bool is_initialized = 0; +static int world_rank; + +void shm_initialize(int size, int rank, char* addr_string, char* port_string) +{ + if (is_initialized) return; + is_initialized = 1; + + world_size = size; + world_rank = rank; + + char shm_name_prefix[NAME_BUF_SIZE]; + char shm_name[NAME_BUF_SIZE]; + snprintf(shm_name_prefix, + NAME_BUF_SIZE, + "%s_%d_%s_%s", + SHM_BUFFER_NAME, + getuid(), + addr_string, + port_string); + // create shared workspace for SHM based allreduce + SharedData allreduce_buffer; + // allocate workspace_buf for current rank + struct allreduce_workspace* workspace_buf; + struct allreduce_workspace* workspace_buf_other; + workspace_buf = (struct allreduce_workspace*)malloc(sizeof(struct allreduce_workspace)); + snprintf(shm_name, NAME_BUF_SIZE, "%s_%d", shm_name_prefix, rank); + shared_create(&allreduce_buffer, shm_name, workspace_buf, sizeof(struct allreduce_workspace)); + workspace_buf = (struct allreduce_workspace*)allreduce_buffer.bytes; + workspace_buf->states[0] = coll_alt2_allreduce_naive__copy_in_done; + workspace_buf->states[1] = coll_begin; + + // create the workspace pointer list + workspace = (struct allreduce_workspace**)malloc(size * sizeof(struct allreduce_workspace*)); + symmetric_buffer[0] = (char**)malloc(size * sizeof(char**)); + symmetric_buffer[1] = (char**)malloc(size * sizeof(char**)); + distributed_buffer[0] = (char**)malloc(size * sizeof(char**)); + distributed_buffer[1] = (char**)malloc(size * sizeof(char**)); + + // map shm of all ranks + for (int i = 0; i < size; i++) { + if (i != rank) { + snprintf(shm_name, NAME_BUF_SIZE, "%s_%d", shm_name_prefix, i); + // printf("open %s, %d\n", shm_name, rank); + do { + shared_open(&allreduce_buffer, shm_name, sizeof(struct allreduce_workspace)); + } while (allreduce_buffer.descriptor == -1 && errno == ENOENT); + workspace_buf_other = (struct allreduce_workspace*)allreduce_buffer.bytes; + workspace[i] = workspace_buf_other; + } else { + workspace[i] = workspace_buf; + } + symmetric_buffer[0][i] = workspace[i]->buffer + BUFFER0_OFFSET(0); + symmetric_buffer[1][i] = workspace[i]->buffer + BUFFER0_OFFSET(1); + distributed_buffer[0][i] = workspace[i]->buffer + BUFFER1_OFFSET(0); + distributed_buffer[1][i] = workspace[i]->buffer + BUFFER1_OFFSET(1); + } +} + +static void parallel_memcpy(void* to, void* from, size_t n_bytes) + __attribute__((target("avx512bw"))); +static void parallel_memcpy(void* to, void* from, size_t n_bytes) +{ + auto aligned_bytes = n_bytes - (n_bytes % VECTOR_LENGTH_IN_BYTES); + // process aligned part +#pragma omp parallel for + for (int i = 0; i < aligned_bytes; i += VECTOR_LENGTH_IN_BYTES) { + auto val = _mm256_loadu_si256((__m256i*)((char*)from + i)); + _mm256_storeu_si256((__m256i*)((char*)to + i), val); + } + + // process remaining part + for (int i = aligned_bytes; i < n_bytes; i++) { *((char*)to + i) = *((char*)from + i); } +} + +#define positive_mod(num, mod) ((((num) % (mod)) + (mod)) % (mod)) +#define rank_mod(rank) positive_mod(rank, world_size) +size_t slice_size(size_t chunk_el, int slice_idx) +{ + size_t slice_size = chunk_el / world_size; + return slice_idx == world_size - 1 ? slice_size + (chunk_el % world_size) : slice_size; +} + +char* slice_data(char* data_ptr, size_t chunk_el, int el_size, int slice_idx) +{ + size_t slice_size = chunk_el / world_size; + size_t el_offset = slice_size * slice_idx; + return data_ptr + el_offset * el_size; +} + +size_t slice_el_start(size_t chunk_el, int slice_idx) +{ + size_t slice_size = chunk_el / world_size; + return slice_size * slice_idx; +} + +/* + Symmetrical naive all_reduce + step 0: before enter the function ith times, state is copy(i-1) + step 1: each rank copy data from input (data_ptr) to SHM buffer[i] + step 2: set own state to copy(i) + step 3: wait each other rank's state equal or later than copy(i) + step 4: reduce across SHM buffer(ith) directly into output (data_ptr) +*/ +void symmetric_naive_all_reduce(char* data_ptr, + c10::ScalarType scalar_type, + size_t chunk_size, + size_t chunk_el) +{ +#ifdef DO_PROFILE + static double total_t1_t0 = 0.0; + static double total_t2_t1 = 0.0; + static double total_t3_t2 = 0.0; + static int count = -16; // warmup + auto t0 = std::chrono::system_clock::now(); +#endif + + /* + We can't have infinite number of buffers and states. 2 sets of buffer + and 3 sets of states is just enough. Consider current rank is in step 3, + with it's own state set to copy(i), the other rank will them have the + following situations: + ------------------------------------------------ + my state | can I proceed? | the other rank state + ================================================ + | N | copy(i-1) + |----------------|--------------------- + copy(i) | Y | copy(i) + |----------------|--------------------- + | Y | copy(i+1) + ------------------------------------------------ + * When I have state as copy(i), the other rank cannot have state + copy(i-2) or before. In that case I'll be in state copy(i-1) and cannot + proceed to copy(i). + * The other rank cannot have state copy(i+2) or beyond because my + state is still copy(i), copy(i+1) is as far as the other rank could go. + * From a rank's POV, all the other ranks can be divided into three sets: + - Lagging ranks: ranks that are still working on previous iteration + - Syncing ranks: ranks that are working on current iteration + - Leading ranks: ranks that are working on next iteration + * We can have 3 sets of states, one set for syncing ranks; one set for + lagging ranks; one set of leading ranks. With 3 sets of states, we can + distinguish between lagging and leading ranks. + * Note from any rank's POV, leading ranks and lagging ranks does not + appear at the same time. Either all other ranks are syncing or + lagging, or all other ranks are syncing or leading. Otherwise leading + and lagging ranks will be 2 iterations apart and this should not happen. + * So we have 2 sets of buffers, one buffer is used by current iter; + one buffer used by either lagging ranks or leading ranks. + */ + const int state_group = 0; + static int current_buffer = 0; + static int state_idx = 0; + + enum coll_state copy_current, copy_next; + + switch (state_idx) { + case 0: + copy_current = coll_allreduce_naive__copy_in_done; + copy_next = coll_alt1_allreduce_naive__copy_in_done; + break; + case 1: + copy_current = coll_alt1_allreduce_naive__copy_in_done; + copy_next = coll_alt2_allreduce_naive__copy_in_done; + break; + case 2: + copy_current = coll_alt2_allreduce_naive__copy_in_done; + copy_next = coll_allreduce_naive__copy_in_done; + break; + default: assert(!"Should not get here."); + } + state_idx = (state_idx + 1) % 3; + + parallel_memcpy(symmetric_buffer[current_buffer][world_rank], data_ptr, chunk_size); + std::atomic_thread_fence(std::memory_order_release); + workspace[world_rank]->states[state_group] = copy_current; + +#ifdef DO_PROFILE + auto t1 = std::chrono::system_clock::now(); +#endif + + for (int i = 0; i < world_size; i++) { + // wait until the other rank copy the buffer + if (i != world_rank) { wait_buffer_state_until_2(i, copy_current, copy_next, state_group); } + } +#ifdef DO_PROFILE + auto t2 = std::chrono::system_clock::now(); +#endif + + // each rank reduce the buffer independently so therre is no need for synchronization afterward + reduce_all_buffers( + 0, chunk_el, scalar_type, world_rank, data_ptr, symmetric_buffer[current_buffer]); + + // switch buffer + current_buffer = 1 - current_buffer; + +#ifdef DO_PROFILE + auto t3 = std::chrono::system_clock::now(); + + count++; + if (count > 0) { + total_t1_t0 += std::chrono::duration_cast(t1 - t0).count(); + total_t2_t1 += std::chrono::duration_cast(t2 - t1).count(); + total_t3_t2 += std::chrono::duration_cast(t3 - t2).count(); + if (world_rank == 0 && count == 1000) { + printf("symmetric_naive_all_reduce time breakdown:\n"); + printf("\tcopy input buffer: %.2f\n", total_t1_t0 / count); + printf("\twait for copy: %.2f\n", total_t2_t1 / count); + printf("\treduce: %.2f\n", total_t3_t2 / count); + } + } +#endif +} + +// naive allreduce distributed, each rank do naive reduce on its slice +void distributed_naive_reduce(char* data_ptr, + c10::ScalarType scalar_type, + size_t chunk_size, + size_t chunk_el) +{ +#ifdef DO_PROFILE + static double total_t1_t0 = 0.0; + static double total_t2_t1 = 0.0; + static double total_t3_t2 = 0.0; + static double total_t4_t3 = 0.0; + static double total_t5_t4 = 0.0; + static int count = -16; // warmup + auto t0 = std::chrono::system_clock::now(); +#endif + + const int state_group = 1; + static int current_buffer = 0; + static int state_idx = 0; + + enum coll_state copy_current, copy_next, reduce_current; + + // similar to symmetric_naive_allreduce, but here we only need two sets of + // states, because distributed naive reduce has two barriers in the algorithm + switch (state_idx) { + case 0: + copy_current = coll_allreduce_naive__copy_in_done; + reduce_current = coll_allreduce_naive__reduce_done; + copy_next = coll_alt1_allreduce_naive__copy_in_done; + break; + case 1: + copy_current = coll_alt1_allreduce_naive__copy_in_done; + reduce_current = coll_alt1_allreduce_naive__reduce_done; + copy_next = coll_allreduce_naive__copy_in_done; + break; + default: assert(!"Should not get here."); + } + state_idx = (state_idx + 1) % 2; + + int data_size = chunk_size / chunk_el; + parallel_memcpy(distributed_buffer[current_buffer][world_rank], data_ptr, chunk_size); + std::atomic_thread_fence(std::memory_order_release); + workspace[world_rank]->states[state_group] = copy_current; + +#ifdef DO_PROFILE + auto t1 = std::chrono::system_clock::now(); +#endif + + for (int i = 0; i < world_size; i++) { + // wait until all the other ranks copy the buffer + if (i != world_rank) + wait_buffer_state_until_2(i, copy_current, reduce_current, state_group); + } + +#ifdef DO_PROFILE + auto t2 = std::chrono::system_clock::now(); +#endif + + // reduce scatter + reduce_all_buffers(slice_el_start(chunk_el, world_rank), + slice_size(chunk_el, world_rank), + scalar_type, + world_rank, + distributed_buffer[current_buffer][world_rank], + distributed_buffer[current_buffer]); + std::atomic_thread_fence(std::memory_order_release); + workspace[world_rank]->states[state_group] = reduce_current; + +#ifdef DO_PROFILE + auto t3 = std::chrono::system_clock::now(); +#endif + + for (int i = 0; i < world_size; i++) { + // wait until all the other ranks reduce the buffer + if (i != world_rank) wait_buffer_state_until_2(i, reduce_current, copy_next, state_group); + } + + auto t4 = std::chrono::system_clock::now(); + + for (int i = 0; i < world_size; i++) { + int rank = (i + world_rank) % world_size; + parallel_memcpy( + slice_data(data_ptr, chunk_el, data_size, rank), + slice_data( + distributed_buffer[current_buffer][rank], chunk_el, chunk_size / chunk_el, rank), + slice_size(chunk_el, rank) * data_size); + } + + current_buffer = 1 - current_buffer; + +#ifdef DO_PROFILE + auto t5 = std::chrono::system_clock::now(); + count++; + if (count > 0) { + total_t1_t0 += std::chrono::duration_cast(t1 - t0).count(); + total_t2_t1 += std::chrono::duration_cast(t2 - t1).count(); + total_t3_t2 += std::chrono::duration_cast(t3 - t2).count(); + total_t4_t3 += std::chrono::duration_cast(t4 - t3).count(); + total_t5_t4 += std::chrono::duration_cast(t5 - t4).count(); + if (world_rank == 0 && count == 1000) { + printf("distributed_naive_reduce time breakdown:\n"); + printf("\tcopy input buffer: %.2f\n", total_t1_t0 / count); + printf("\twait for copy: %.2f\n", total_t2_t1 / count); + printf("\treduce: %.2f\n", total_t3_t2 / count); + printf("\twait for reduce finish: %.2f\n", total_t4_t3 / count); + printf("\tcopy out: %.2f\n", total_t5_t4 / count); + } + } +#endif +} + +void all_reduce_outer_loop(torch::Tensor& data, size_t numel, int data_size) +{ + for (int offset = 0; offset < data_size; offset += MAX_BUF_SIZE) { + auto data_ptr = ((char*)(data.data_ptr()) + offset); + size_t chunk_size = data_size - offset > MAX_BUF_SIZE ? MAX_BUF_SIZE : data_size - offset; + size_t chunk_el = chunk_size / (data_size / numel); + if (chunk_size < NAIVE_ALLREDUCE_THRESHOLD) + symmetric_naive_all_reduce(data_ptr, data.scalar_type(), chunk_size, chunk_el); + else + distributed_naive_reduce(data_ptr, data.scalar_type(), chunk_size, chunk_el); + } +} diff --git a/csrc/cpu/comm/shm.h b/csrc/cpu/comm/shm.h new file mode 100644 index 000000000000..7f73197a8caa --- /dev/null +++ b/csrc/cpu/comm/shm.h @@ -0,0 +1,12 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 + +// DeepSpeed Team + +#ifndef __SHM_COLLECTIVES__ +#define __SHM_COLLECTIVES__ +#define VECTOR_LENGTH_IN_BYTES 32 +void shm_initialize(int size, int rank, char* addr_string, char* port_string); +void all_reduce_outer_loop(torch::Tensor& data, size_t numel, int data_size); +void barrier_wait(int root_idx, int num_ranks); +#endif diff --git a/csrc/cpu/comm/shm_interface.cpp b/csrc/cpu/comm/shm_interface.cpp new file mode 100644 index 000000000000..5be5cb799a7b --- /dev/null +++ b/csrc/cpu/comm/shm_interface.cpp @@ -0,0 +1,186 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 + +// DeepSpeed Team + +#include + +#include "shm.h" + +// #define DO_PROFILE +#ifdef DO_PROFILE +#include +#include +#endif + +// Communication settings +static int world_rank = -1; +static int world_size = -1; + +static bool is_initialized = 0; + +static bool all_ranks_local_p = false; + +void initialize(int size, int rank) +{ + if (is_initialized) return; + + // Check whether all ranks is on the same physical machine. + // If true, we will use an SHM based low latency allreduce + + auto ls_string = std::getenv("LOCAL_SIZE"); + int ls = 0; + if (ls_string != NULL) { ls = std::stoi(std::getenv("LOCAL_SIZE")); } + + if (size >= 1 && size == ls) { all_ranks_local_p = true; } + + world_size = size; + world_rank = rank; + is_initialized = 1; + + auto addr_string = std::getenv("MASTER_ADDR"); + if (addr_string == NULL) { addr_string = ""; } + auto port_string = std::getenv("MASTER_PORT"); + if (port_string == NULL) { port_string = ""; } + + if (all_ranks_local_p) { shm_initialize(size, rank, addr_string, port_string); } +} + +void inference_all_reduce_(torch::Tensor& data, int op); + +// Success - return 0 +// Fail (cannot hornor the request and need to fall back) - return -1 +void inference_all_reduce_(torch::Tensor& data, int op) +{ + assert(op == 0); +#ifdef DO_PROFILE + static double total_time = 0.0; + static double total_time_sq = 0.0; + static int count = -16; // warmup + static double max_time = 0.0; + static double min_time = DBL_MAX; + // make sure all rank reach this point before measuring time + // turn on this if you suspect each rank didn't reach here at the same time (stragger) + // if (all_ranks_local_p) { barrier_wait(0, world_size); } + auto start = std::chrono::system_clock::now(); +#endif + + auto numel = data.numel(); + + int data_size = 0; + bool data_type_fallback = false; + + switch (data.scalar_type()) { + case c10::ScalarType::BFloat16: data_size = numel * 2; break; + case c10::ScalarType::Half: data_size = numel * 2; break; + case c10::ScalarType::Float: data_size = numel * 4; break; + default: data_type_fallback = true; + } + + if (data_type_fallback) return; + + all_reduce_outer_loop(data, numel, data_size); + +#ifdef DO_PROFILE + auto end = std::chrono::system_clock::now(); + count++; + if (count > 0) { + double elapsed = std::chrono::duration_cast(end - start).count(); + if (elapsed > max_time) { max_time = elapsed; } + if (elapsed < min_time) { min_time = elapsed; } + total_time += elapsed; + total_time_sq += elapsed * elapsed; + if (world_rank == 0 && count == 1000) { + auto avg = total_time / count; + auto sd = + sqrt(total_time_sq / count - total_time * total_time / (count * count)) / avg * 100; + printf(" C++ kernel\t\t %.2f\t %.2f\t%.2f\t %.2f\n", + min_time, + max_time, + total_time / count, + sd); + } + } +#endif + return; +} + +PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) { m.def("initialize", &initialize, "shm initialize"); } + +TORCH_LIBRARY(deepspeed, m) +{ + m.def("inference_all_reduce(Tensor self) -> Tensor"); + m.def("inference_all_reduce_(Tensor(a!) self) -> Tensor(a!)"); +} + +torch::Tensor inference_all_reduce_meta(const torch::Tensor& self_) +{ + torch::Tensor result_ = torch::empty_like(self_); + return result_; +} + +torch::Tensor& inference_all_reduce__meta(torch::Tensor& self_) { return self_; } + +torch::Tensor& inference_all_reduce__cpu(torch::Tensor& self_) +{ + TORCH_INTERNAL_ASSERT(self_.device().type() == torch::DeviceType::CPU); + torch::Tensor self_tensor = self_.contiguous(); + inference_all_reduce_(self_tensor, 0); + return self_; +} + +torch::Tensor inference_all_reduce_cpu(const torch::Tensor& self_) +{ + torch::Tensor result = self_.clone(); + inference_all_reduce__cpu(result); + return result; +} + +#include +// The boilerplate functionalization logic, that teaches functionalization +// how to map x_() calls into x() calls. +// Long term, we'd like to not require users to write this logic. +// HOWEVER, if you have a custom op that is mutable, +// You will still need to write an out-of-place version of that op! +at::Tensor& inference_all_reduce__functionalization_glue(at::Tensor& x) +{ + // We expect all tensor inputs to our op to be "functional tensors" + TORCH_INTERNAL_ASSERT(at::functionalization::impl::isFunctionalTensor(x)); + // First, sync and unwrap and functional tensors + at::functionalization::impl::sync(x); + auto x_ = at::functionalization::impl::from_functional_tensor(x); + // Grab the dispatcher entry corresponding to the out-of-place op, "x" + static auto op_handle = c10::Dispatcher::singleton() + // specify namespace::op_name, op_overload_name + .findSchemaOrThrow("deepspeed::inference_all_reduce", "") + // Specify the C++ schema of the out-of-place op. + .typed(); + // Next, redispatch to the out-of-place op, x() (user called x_, we call x) + at::Tensor tmp_output; + { + at::AutoDispatchSkipFunctionalize guard; + tmp_output = op_handle.call(x_); + } + // Finally, tell functionalization about this mutation. + at::functionalization::impl::replace_(x, tmp_output); + at::functionalization::impl::commit_update(x); + at::functionalization::impl::sync(x); + return x; +} + +TORCH_LIBRARY_IMPL(deepspeed, CPU, m) +{ + m.impl("inference_all_reduce", inference_all_reduce_cpu); + m.impl("inference_all_reduce_", inference_all_reduce__cpu); +} + +TORCH_LIBRARY_IMPL(deepspeed, Meta, m) +{ + m.impl("inference_all_reduce", inference_all_reduce_meta); + m.impl("inference_all_reduce_", inference_all_reduce__meta); +} + +TORCH_LIBRARY_IMPL(deepspeed, Functionalize, m) +{ + m.impl("inference_all_reduce_", inference_all_reduce__functionalization_glue); +} diff --git a/csrc/deepspeed4science/evoformer_attn/gemm_kernel_utils.h b/csrc/deepspeed4science/evoformer_attn/gemm_kernel_utils.h index 2a4300c5cac1..c102234a4dfb 100644 --- a/csrc/deepspeed4science/evoformer_attn/gemm_kernel_utils.h +++ b/csrc/deepspeed4science/evoformer_attn/gemm_kernel_utils.h @@ -125,11 +125,10 @@ struct CheckArch { std::cerr << #PTR " is not correctly aligned\n"; \ return false; \ } -#define EVOFORMER_CHECK(COND, ERR) \ - if (!(COND)) { \ - std::cerr << "[Evoformer Attention]" \ - << "'" #COND "' failed: " << ERR << "\n"; \ - return false; \ +#define EVOFORMER_CHECK(COND, ERR) \ + if (!(COND)) { \ + std::cerr << "[Evoformer Attention]" << "'" #COND "' failed: " << ERR << "\n"; \ + return false; \ } #endif diff --git a/csrc/fp_quantizer/fp_quantize.cpp b/csrc/fp_quantizer/fp_quantize.cpp new file mode 100644 index 000000000000..903d84270d32 --- /dev/null +++ b/csrc/fp_quantizer/fp_quantize.cpp @@ -0,0 +1,126 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 + +// DeepSpeed Team + +#include "fp_quantize.h" + +#include +#include +#include + +#define DISPATCH_QUANTIZE(T_TYPE, C_TYPE, mantisa, exponent) \ + if (val.options().dtype() == torch::T_TYPE) { \ + launch_quantization((C_TYPE*)val.data_ptr(), \ + (uint8_t*)out.data_ptr(), \ + num_groups, \ + group_size, \ + at::cuda::getCurrentCUDAStream(), \ + q_range, \ + q_bits, \ + q_mantisa_bits, \ + stochastic_rounding); \ + } + +at::Tensor quantize(torch::Tensor& out, + torch::Tensor& val, + torch::Tensor& scale, + int group_size, + int stochastic_rounding, + int q_bits, + int q_mantisa_bits) +{ + int total_elems = at::numel(val); + float q_range = q_bits == 8 ? (q_mantisa_bits == 3 ? 480.0 : 114688.0) : // fp8 ranges + (q_bits == 12 ? 510.0 : // fp12 range + (q_bits == 6 ? 28.0 : // fp6 range + 6.0)); // fp4 range (using power 2); TODO (Reza): add the power-4 + // in case accuracy is not matching! + int num_groups = total_elems / group_size; + + DISPATCH_QUANTIZE(kHalf, __half, 23, 8); +#ifdef BF16_AVAILABLE + DISPATCH_QUANTIZE(kBFloat16, __nv_bfloat16, 23, 8); +#endif + + return out; +} + +#define DISPATCH_DEQUANTIZE(T_TYPE, C_TYPE, mantisa) \ + if (val.options().dtype() == torch::T_TYPE) { \ + launch_dequantization((uint8_t*)val_q.data_ptr(), \ + (C_TYPE*)val.data_ptr(), \ + num_groups, \ + group_size, \ + q_mantisa_bits, \ + q_exponent_bits, \ + at::cuda::getCurrentCUDAStream()); \ + return; \ + } + +void dequantize(torch::Tensor& val, + torch::Tensor& val_q, + torch::Tensor& scale, + int group_size, + int q_mantisa_bits, + int q_exponent_bits) +{ + int total_elems = at::numel(val); + + int num_groups = total_elems / group_size; + + DISPATCH_DEQUANTIZE(kHalf, __half, 10); +#ifdef BF16_AVAILABLE + DISPATCH_DEQUANTIZE(kBFloat16, __nv_bfloat16, 7); +#endif +} + +#define DISPATCH_DEQUANTIZE_INDEX(T_TYPE, C_TYPE, mantisa) \ + if (val.options().dtype() == torch::T_TYPE) { \ + launch_selective_dequantization((uint8_t*)val_q.data_ptr(), \ + (C_TYPE*)val.data_ptr(), \ + (int32_t*)indexes.data_ptr(), \ + num_groups, \ + group_size, \ + num_indexes, \ + q_mantisa_bits, \ + q_exponent_bits, \ + at::cuda::getCurrentCUDAStream()); \ + return; \ + } +void selective_dequantize(torch::Tensor& val, + torch::Tensor& val_q, + torch::Tensor& indexes, + int group_size, + int q_mantisa_bits, + int q_exponent_bits) +{ + int total_elems = at::numel(val); + int num_indexes = indexes.size(0); + int num_groups = total_elems / group_size; + + DISPATCH_DEQUANTIZE_INDEX(kHalf, __half, 10); +#ifdef BF16_AVAILABLE + DISPATCH_DEQUANTIZE_INDEX(kBFloat16, __nv_bfloat16, 7); +#endif +} + +at::Tensor get_scales(torch::Tensor& out, int num_groups) +{ + auto options = at::TensorOptions() + .dtype(torch::kFloat) + .layout(at::kStrided) + .device(at::kCUDA) + .requires_grad(false); + auto scales = + torch::from_blob(out.data_ptr(), {num_groups, 1}, {out.stride(0) / 4, 1}, options); + return scales; +} + +PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) +{ + m.def("quantize", &quantize, "quantize function"); + m.def("dequantize", &dequantize, "dequantize function"); + m.def("get_scales", &get_scales, "get scales function"); + m.def("selective_dequantize", &selective_dequantize, "selective dequantize function"); +} diff --git a/csrc/fp_quantizer/fp_quantize.cu b/csrc/fp_quantizer/fp_quantize.cu new file mode 100644 index 000000000000..66ea7392e011 --- /dev/null +++ b/csrc/fp_quantizer/fp_quantize.cu @@ -0,0 +1,532 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 + +// DeepSpeed Team + +#include +#include "context.h" +#include "fp_quantize.h" +#include "memory_access_utils.h" +#include "reduction_utils.h" + +#include +#include + +#include +#include + +#ifdef BF16_AVAILABLE +#include +#endif +#include + +using ROp = reduce::ROpType; + +namespace quantization { + +constexpr int access_granularity = 16; +constexpr int quanitzed_access_granularity = 4; +constexpr int quanitzed_access_granularity_6bits = 2; +constexpr int threads = 256; +constexpr int warps = threads / 32; + +} // namespace quantization + +template +__device__ void round(uint32_t& mantisa, uint32_t& dst_exponent, curandStatePhilox4_32_10_t* state) +{ + constexpr uint32_t mantisa_mask = (1 << (_mantisa_bits - q_mantisa_bits)) - 1; + uint32_t offset = stochastic_rounding ? (curand_poisson(state, 10) & mantisa_mask) + : 1 << (_mantisa_bits - q_mantisa_bits - 1); + mantisa += offset; + dst_exponent += (((mantisa & ~mantisa_mask) == (1 << _mantisa_bits)) ? 1 : 0); +} + +template +__device__ void clip(uint32_t& exponent, uint32_t& mantisa) +{ + constexpr uint32_t max_exponent = (1 << (q_exponent_bits - 1)) + (1 << (_exponent_bits - 1)); + constexpr uint32_t min_exponent = + (1 << (_exponent_bits - 1)) - ((1 << (q_exponent_bits - 1)) - 1); + if (exponent > max_exponent) { + exponent = max_exponent; + mantisa = (((uint32_t)-1) >> (32 - q_mantisa_bits)) << 1; //.11 .. 10 + } + if (exponent < min_exponent) { + exponent = min_exponent; + mantisa = 0; + } +} + +template +__global__ void apply_quantization(T* val, + uint8_t* q_val, + int group_size, + std::pair seed, + float q_range) +{ + int tidx = threadIdx.x; + int wid = tidx >> 5; + int lane = tidx & 0x1f; + int gid = blockIdx.x * quantization::warps + wid; + + constexpr int q_exponent_bits = total_q_bits - q_mantisa_bits - 1; + constexpr uint32_t _mantisa_mask = (1 << _mantisa_bits) - 1; + constexpr uint32_t _exponent_mask = ((1 << _exponent_bits) - 1) << _mantisa_bits; + constexpr uint32_t _sign_mask = 1 << (_mantisa_bits + _exponent_bits); + // CG helpers + cg::thread_block tb = cg::this_thread_block(); + cg::thread_block_tile warp = cg::tiled_partition(tb); + + constexpr uint32_t vector_size = quantization::access_granularity / sizeof(T); + constexpr uint32_t load_stride = vector_size * hw_warp_size; + constexpr uint32_t store_stride = (total_q_bits * vector_size / 8) * hw_warp_size; + const uint32_t thread_offset = lane * vector_size; + const uint32_t store_thread_offset = lane * (total_q_bits * vector_size / 8); + const uint32_t base_load_offset = gid * group_size + thread_offset; + const uint32_t base_store_offset = + gid * ((group_size * total_q_bits / 8) + 4) + + store_thread_offset; // 4-byte for saving the scale per group + const T* load_base_ptr = val + base_load_offset; + T tmp_buf[unroll * vector_size]; + T cur_max; + reduce::init(&cur_max); + + int idx = blockIdx.x * blockDim.x + threadIdx.x; + curandStatePhilox4_32_10_t state; + curand_init(seed.first, idx, seed.second, &state); + +#pragma unroll + for (int i = 0; i < unroll; i++) { + if (i * load_stride + thread_offset < group_size) { + mem_access::load_global( + &tmp_buf[vector_size * i], load_base_ptr + i * load_stride); + for (int j = 0; j < vector_size; j++) + cur_max = reduce::element(cur_max, __habs(tmp_buf[i * vector_size + j])); + } + } + reduce::_block(tb, warp, &cur_max); + + int mantisa_mask = ((1 << q_mantisa_bits) - 1); + mantisa_mask <<= (_mantisa_bits - q_mantisa_bits); + + uint8_t* store_base_ptr = q_val + base_store_offset; + float scale = (float)q_range / conversion::to(cur_max); +#pragma unroll + for (int i = 0; i < unroll; i++) { + if (i * load_stride + thread_offset < group_size) { + uint64_t q_buf = 0; + uint64_t q_buf1 = 0; +#pragma unroll + for (int j = 0; j < vector_size; j++) { + float val_f = conversion::to(tmp_buf[i * vector_size + j]) * scale; + uint32_t* data = reinterpret_cast(&val_f); + uint32_t sign = (data[0] & _sign_mask) >> (_mantisa_bits + _exponent_bits); + uint32_t cur_exponent = (data[0] & _exponent_mask) >> _mantisa_bits; + uint32_t dst_mantisa = (data[0] & _mantisa_mask); + + uint32_t dst_exponent = cur_exponent; + + round<_mantisa_bits, q_mantisa_bits, stochastic_rounding>( + dst_mantisa, dst_exponent, &state); + if (cur_exponent != 0) + clip<_mantisa_bits, _exponent_bits, q_mantisa_bits, q_exponent_bits>( + dst_exponent, dst_mantisa); + + dst_mantisa = (dst_mantisa & mantisa_mask) >> (_mantisa_bits - q_mantisa_bits); + + if (dst_exponent != (1 << q_exponent_bits) - 1) + dst_exponent = (dst_exponent - ((1 << (_exponent_bits - 1)) - 1)) + + (1 << (q_exponent_bits - 1)) - 1; + if (total_q_bits == 8 || total_q_bits == 4 || total_q_bits == 6) + q_buf = q_buf | + ((uint64_t)((uint8_t)(sign << (q_exponent_bits + q_mantisa_bits) | + (dst_exponent << q_mantisa_bits) | dst_mantisa)) + << j * total_q_bits); + else if (total_q_bits == 12) { + if (j < 5) + q_buf = + q_buf | + ((uint64_t)((uint16_t)(sign << (q_exponent_bits + q_mantisa_bits) | + (dst_exponent << q_mantisa_bits) | dst_mantisa)) + << j * total_q_bits); + else + q_buf1 = + q_buf1 | + ((uint64_t)((uint16_t)(sign << (q_exponent_bits + q_mantisa_bits) | + (dst_exponent << q_mantisa_bits) | dst_mantisa)) + << (j - 5) * total_q_bits); + } + } + if (total_q_bits == 12) { + uint64_t last_nibble_mask = 0xf; + last_nibble_mask = q_buf1 & last_nibble_mask; + q_buf = (last_nibble_mask << 60) | q_buf; + q_buf1 >>= 4; + } + uint8_t* int8_data = reinterpret_cast(&q_buf); + uint8_t* int8_data1 = reinterpret_cast(&q_buf1); + if (total_q_bits == 6) { + mem_access::store_global( + store_base_ptr + i * store_stride, int8_data); + mem_access::store_global( + store_base_ptr + i * store_stride + + quantization::quanitzed_access_granularity_6bits, + int8_data + quantization::quanitzed_access_granularity_6bits); + mem_access::store_global( + store_base_ptr + i * store_stride + + quantization::quanitzed_access_granularity_6bits * 2, + int8_data + 2 * quantization::quanitzed_access_granularity_6bits); + } else { + mem_access::store_global( + store_base_ptr + i * store_stride, int8_data); + + if (total_q_bits > 4) { + mem_access::store_global( + store_base_ptr + i * store_stride + + quantization::quanitzed_access_granularity, + int8_data + quantization::quanitzed_access_granularity); + if (total_q_bits == 12) { + mem_access::store_global( + store_base_ptr + i * store_stride + + quantization::quanitzed_access_granularity * 2, + int8_data1); + } + } + } + } + } + if (lane == 0) { + float q_scale = conversion::to(cur_max) / (float)q_range; + uint8_t* scale_as_int8 = reinterpret_cast(&q_scale); + uint32_t scale_offset = + gid * ((group_size * total_q_bits / 8) + 4) + (group_size * total_q_bits / 8); + if (total_q_bits != 6) + mem_access::store_global( + q_val + scale_offset, scale_as_int8); + else { + mem_access::store_global( + q_val + scale_offset, scale_as_int8); + mem_access::store_global( + q_val + scale_offset + quantization::quanitzed_access_granularity_6bits, + scale_as_int8 + quantization::quanitzed_access_granularity_6bits); + } + } +} + +template +__global__ void apply_dequantization(uint8_t* val, T* q_val, int group_size, int total_num_elements) +{ + constexpr uint32_t vector_size = quantization::access_granularity / sizeof(T); + int tidx = (blockIdx.x * blockDim.x + threadIdx.x) * vector_size; + + constexpr int quantized_bits = _mantisa_bits + _exponent_bits + 1; + constexpr int q_exponent_bits = total_q_bits - q_mantisa_bits - 1; + constexpr uint16_t _mantisa_mask = (1 << _mantisa_bits) - 1; + constexpr uint16_t _exponent_mask = ((1 << _exponent_bits) - 1) << _mantisa_bits; + constexpr uint16_t _sign_mask = 1 << (_mantisa_bits + _exponent_bits); + const uint32_t g_index = (tidx / group_size); + const uint32_t group_size_bytes = (group_size * quantized_bits / 8); + const uint8_t* load_base_ptr = + val + g_index * (group_size_bytes + 4) + (tidx % group_size) * quantized_bits / 8; + + int mantisa_mask = ((1 << q_mantisa_bits) - 1); + mantisa_mask <<= (_mantisa_bits - q_mantisa_bits); + + T* store_base_ptr = q_val + tidx; + float scale; + + uint8_t* scale_as_int8 = reinterpret_cast(&scale); + if (quantized_bits == 6) { + mem_access::load_global( + scale_as_int8, val + g_index * (group_size_bytes + 4) + group_size_bytes); + mem_access::load_global( + scale_as_int8 + quantization::quanitzed_access_granularity_6bits, + val + g_index * (group_size_bytes + 4) + group_size_bytes + + quantization::quanitzed_access_granularity_6bits); + } else + mem_access::load_global( + scale_as_int8, val + g_index * (group_size_bytes + 4) + group_size_bytes); + + if (tidx < total_num_elements) { + uint64_t q_buf_in; + uint64_t q_buf_in1; + uint8_t* int8_data = reinterpret_cast(&q_buf_in); + uint8_t* int8_data1 = reinterpret_cast(&q_buf_in1); + if (quantized_bits == 6) { + mem_access::load_global( + int8_data, load_base_ptr); + mem_access::load_global( + int8_data + quantization::quanitzed_access_granularity_6bits, + load_base_ptr + quantization::quanitzed_access_granularity_6bits); + mem_access::load_global( + int8_data + quantization::quanitzed_access_granularity_6bits * 2, + load_base_ptr + quantization::quanitzed_access_granularity_6bits * 2); + + } else { + mem_access::load_global(int8_data, + load_base_ptr); + if (quantized_bits > 4) { + mem_access::load_global( + int8_data + quantization::quanitzed_access_granularity, + load_base_ptr + quantization::quanitzed_access_granularity); + if (quantized_bits == 12) { + mem_access::load_global( + int8_data1, load_base_ptr + quantization::quanitzed_access_granularity * 2); + } + } + } + T store_buf[vector_size]; + uint16_t* q_buf = reinterpret_cast(store_buf); +#pragma unroll + for (int j = 0; j < vector_size; j++) { + uint16_t new_data; + if (j < 5 || quantized_bits != 12) { + new_data = (uint16_t)(q_buf_in >> (j * quantized_bits)); + } else { + if (j == 5) { + new_data = (uint16_t)(q_buf_in1); + new_data = (uint16_t)((new_data << 4) | (q_buf_in >> 60)); + } else + new_data = (uint16_t)(q_buf_in1 >> ((j - 6) * quantized_bits + 8)); + } + + uint16_t sign = (new_data & _sign_mask) >> (_mantisa_bits + _exponent_bits); + uint16_t dst_exponent = (new_data & _exponent_mask) >> _mantisa_bits; + uint16_t dst_mantisa = (new_data & _mantisa_mask); + + if (dst_exponent != (1 << q_exponent_bits) - 1) + dst_exponent = (dst_exponent - ((1 << (_exponent_bits - 1)) - 1)) + + (1 << (q_exponent_bits - 1)) - 1; + + q_buf[j] = + ((sign << (q_exponent_bits + q_mantisa_bits)) | (dst_exponent << q_mantisa_bits) | + (dst_mantisa << (q_mantisa_bits - _mantisa_bits))); + float up_cast = conversion::to(store_buf[j]); + store_buf[j] = conversion::to(up_cast * scale); + } + mem_access::store_global(store_base_ptr, store_buf); + } +} + +#define LAUNCH_FOR_QUANTIZATION_UNROLL(COUNT) \ + case COUNT: \ + apply_quantization \ + <<>>(val, q_val, group_size, seed, q_range); \ + break; + +template +void launch_quantization(T* val, + uint8_t* q_val, + int num_groups, + int group_size, + cudaStream_t stream, + float q_range, + int q_bits, + int q_mantisa_bits, + int stochastic_rounding) +{ + const dim3 grid((num_groups + quantization::warps - 1) / quantization::warps); + const dim3 block(quantization::threads); + + std::pair seed = FPContext::Instance().IncrementOffset(16); + + constexpr int vals_per_unroll = hw_warp_size * quantization::access_granularity / sizeof(T); + + const int copy_unroll = (group_size + vals_per_unroll - 1) / vals_per_unroll; + QUANT_SWITCH((q_bits - q_mantisa_bits - 1) * q_mantisa_bits + stochastic_rounding, [&] { + switch (copy_unroll) { + LAUNCH_FOR_QUANTIZATION_UNROLL(1) + LAUNCH_FOR_QUANTIZATION_UNROLL(2) + LAUNCH_FOR_QUANTIZATION_UNROLL(3) + LAUNCH_FOR_QUANTIZATION_UNROLL(4) + LAUNCH_FOR_QUANTIZATION_UNROLL(5) + LAUNCH_FOR_QUANTIZATION_UNROLL(6) + } + }); +} +#define INSTANTIATE_LAUNCH_QUANTIZATION(T, mantisa, exponent) \ + template void launch_quantization( \ + T*, uint8_t*, int, int, cudaStream_t, float q_range, int, int, int); +// fp8(E4M3), nearest-rounding +#ifdef BF16_AVAILABLE +INSTANTIATE_LAUNCH_QUANTIZATION(__nv_bfloat16, 23, 8); +#endif +INSTANTIATE_LAUNCH_QUANTIZATION(__half, 23, 8); + +template +void launch_dequantization(uint8_t* val, + T* q_val, + int num_groups, + int group_size, + int q_mantisa_bits, + int q_exponent_bits, + cudaStream_t stream) +{ + int blocks = ((num_groups * group_size) - 1) / + (quantization::threads * (quantization::access_granularity / sizeof(T))) + + 1; + const dim3 grid(blocks); + const dim3 block(quantization::threads); + DEQUANT_SWITCH(q_mantisa_bits * q_exponent_bits, [&] { + apply_dequantization + <<>>(val, q_val, group_size, (num_groups * group_size)); + }); +} +#define INSTANTIATE_LAUNCH_DEQUANTIZATION(T, mantisa) \ + template void launch_dequantization(uint8_t*, T*, int, int, int, int, cudaStream_t); +// fp8(E4M3) +#ifdef BF16_AVAILABLE +INSTANTIATE_LAUNCH_DEQUANTIZATION(__nv_bfloat16, 7); +#endif +INSTANTIATE_LAUNCH_DEQUANTIZATION(__half, 10); + +template +__global__ void apply_selective_dequantization(uint8_t* val, + T* q_val, + int32_t* indexes, + int group_size, + int total_num_elements) +{ + int index = indexes[blockIdx.x]; + constexpr uint32_t vector_size = quantization::access_granularity / sizeof(T); + int tidx = (blockIdx.y * blockDim.x + threadIdx.x) * vector_size; + int input_index = index * total_num_elements + tidx; + constexpr int quantized_bits = _mantisa_bits + _exponent_bits + 1; + constexpr int q_exponent_bits = total_q_bits - q_mantisa_bits - 1; + constexpr uint16_t _mantisa_mask = (1 << _mantisa_bits) - 1; + constexpr uint16_t _exponent_mask = ((1 << _exponent_bits) - 1) << _mantisa_bits; + constexpr uint16_t _sign_mask = 1 << (_mantisa_bits + _exponent_bits); + const uint32_t g_index = (input_index / group_size); + const uint32_t group_size_bytes = (group_size * quantized_bits / 8); + const uint8_t* load_base_ptr = + val + g_index * (group_size_bytes + 4) + (input_index % group_size) * quantized_bits / 8; + + int mantisa_mask = ((1 << q_mantisa_bits) - 1); + mantisa_mask <<= (_mantisa_bits - q_mantisa_bits); + + T* store_base_ptr = q_val + tidx + blockIdx.x * total_num_elements; + float scale; + + uint8_t* scale_as_int8 = reinterpret_cast(&scale); + if (quantized_bits == 6) { + mem_access::load_global( + scale_as_int8, val + g_index * (group_size_bytes + 4) + group_size_bytes); + mem_access::load_global( + scale_as_int8 + quantization::quanitzed_access_granularity_6bits, + val + g_index * (group_size_bytes + 4) + group_size_bytes + + quantization::quanitzed_access_granularity_6bits); + } else + mem_access::load_global( + scale_as_int8, val + g_index * (group_size_bytes + 4) + group_size_bytes); + + if (tidx < total_num_elements) { + uint64_t q_buf_in; + uint64_t q_buf_in1; + uint8_t* int8_data = reinterpret_cast(&q_buf_in); + uint8_t* int8_data1 = reinterpret_cast(&q_buf_in1); + if (quantized_bits == 6) { + mem_access::load_global( + int8_data, load_base_ptr); + mem_access::load_global( + int8_data + quantization::quanitzed_access_granularity_6bits, + load_base_ptr + quantization::quanitzed_access_granularity_6bits); + mem_access::load_global( + int8_data + quantization::quanitzed_access_granularity_6bits * 2, + load_base_ptr + quantization::quanitzed_access_granularity_6bits * 2); + } else { + mem_access::load_global(int8_data, + load_base_ptr); + if (quantized_bits > 4) { + mem_access::load_global( + int8_data + quantization::quanitzed_access_granularity, + load_base_ptr + quantization::quanitzed_access_granularity); + if (quantized_bits == 12) { + mem_access::load_global( + int8_data1, load_base_ptr + quantization::quanitzed_access_granularity * 2); + } + } + } + T store_buf[vector_size]; + uint16_t* q_buf = reinterpret_cast(store_buf); +#pragma unroll + for (int j = 0; j < vector_size; j++) { + uint16_t new_data; + if (j < 5 || quantized_bits != 12) { + new_data = (uint16_t)(q_buf_in >> (j * quantized_bits)); + } else { + if (j == 5) { + new_data = (uint16_t)(q_buf_in1); + new_data = (uint16_t)((new_data << 4) | (q_buf_in >> 60)); + } else + new_data = (uint16_t)(q_buf_in1 >> ((j - 6) * quantized_bits + 8)); + } + + uint16_t sign = (new_data & _sign_mask) >> (_mantisa_bits + _exponent_bits); + uint16_t dst_exponent = (new_data & _exponent_mask) >> _mantisa_bits; + uint16_t dst_mantisa = (new_data & _mantisa_mask); + + if (dst_exponent != (1 << q_exponent_bits) - 1) + dst_exponent = (dst_exponent - ((1 << (_exponent_bits - 1)) - 1)) + + (1 << (q_exponent_bits - 1)) - 1; + + q_buf[j] = + ((sign << (q_exponent_bits + q_mantisa_bits)) | (dst_exponent << q_mantisa_bits) | + (dst_mantisa << (q_mantisa_bits - _mantisa_bits))); + float up_cast = conversion::to(store_buf[j]); + store_buf[j] = conversion::to(up_cast * scale); + } + mem_access::store_global(store_base_ptr, store_buf); + } +} + +template +void launch_selective_dequantization(uint8_t* val, + T* q_val, + int32_t* indexes, + int num_groups, + int group_size, + int num_indexes, + int q_mantisa_bits, + int q_exponent_bits, + cudaStream_t stream) +{ + int total_elements_per_index = (num_groups / num_indexes) * group_size; + int blocks = (total_elements_per_index - 1) / + (quantization::threads * (quantization::access_granularity / sizeof(T))) + + 1; + const dim3 grid(num_indexes, blocks); + const dim3 block(quantization::threads); + DEQUANT_SWITCH(q_mantisa_bits * q_exponent_bits, [&] { + apply_selective_dequantization + <<>>(val, q_val, indexes, group_size, total_elements_per_index); + }); +} +#define INSTANTIATE_LAUNCH_SELECTIVE_DEQUANTIZATION(T, mantisa) \ + template void launch_selective_dequantization( \ + uint8_t*, T*, int32_t*, int, int, int, int, int, cudaStream_t); +// fp8(E4M3) +#ifdef BF16_AVAILABLE +INSTANTIATE_LAUNCH_SELECTIVE_DEQUANTIZATION(__nv_bfloat16, 7); +#endif +INSTANTIATE_LAUNCH_SELECTIVE_DEQUANTIZATION(__half, 10); diff --git a/csrc/fp_quantizer/includes/context.h b/csrc/fp_quantizer/includes/context.h new file mode 100644 index 000000000000..5bd9badbcb4f --- /dev/null +++ b/csrc/fp_quantizer/includes/context.h @@ -0,0 +1,66 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 + +// DeepSpeed Team + +#pragma once + +#include +#include +#include +#include +#include +#include "cublas_v2.h" +#include "cuda.h" +#include "curand.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#define WARP_SIZE 32 + +class FPContext { +public: + FPContext() : _seed(42) + { + curandCreateGenerator(&_gen, CURAND_RNG_PSEUDO_DEFAULT); + curandSetPseudoRandomGeneratorSeed(_gen, 123); + } + + virtual ~FPContext() {} + + static FPContext& Instance() + { + static FPContext _ctx; + return _ctx; + } + + curandGenerator_t& GetRandGenerator() { return _gen; } + + cudaStream_t GetCurrentStream() + { + // get current pytorch stream. + cudaStream_t stream = at::cuda::getCurrentCUDAStream(); + return stream; + } + + std::pair IncrementOffset(uint64_t offset_inc) + { + uint64_t offset = _curr_offset; + _curr_offset += offset_inc; + return std::pair(_seed, offset); + } + + void SetSeed(uint64_t new_seed) { _seed = new_seed; } + +private: + curandGenerator_t _gen; + cublasHandle_t _cublasHandle; + uint64_t _seed; + uint64_t _curr_offset; +}; diff --git a/csrc/fp_quantizer/includes/fp_quantize.h b/csrc/fp_quantizer/includes/fp_quantize.h new file mode 100644 index 000000000000..60c75541f603 --- /dev/null +++ b/csrc/fp_quantizer/includes/fp_quantize.h @@ -0,0 +1,128 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 + +// DeepSpeed Team + +#pragma once + +#include +#include + +#include + +#ifdef BF16_AVAILABLE +#include +#endif +#include +#include + +#define QUANT_SWITCH(Q_BITS, ...) \ + [&] { \ + if (12 == Q_BITS) { \ + constexpr int CONST_STOCHASTIC_ROUNDING = 0; \ + constexpr int CONST_Q_BITS = 8; \ + constexpr int CONST_Q_MANTISA_BITS = 3; \ + __VA_ARGS__(); \ + } else if (13 == Q_BITS) { \ + constexpr int CONST_STOCHASTIC_ROUNDING = 1; \ + constexpr int CONST_Q_BITS = 8; \ + constexpr int CONST_Q_MANTISA_BITS = 3; \ + __VA_ARGS__(); \ + } else if (10 == Q_BITS) { \ + constexpr int CONST_STOCHASTIC_ROUNDING = 0; \ + constexpr int CONST_Q_BITS = 8; \ + constexpr int CONST_Q_MANTISA_BITS = 2; \ + __VA_ARGS__(); \ + } else if (11 == Q_BITS) { \ + constexpr int CONST_STOCHASTIC_ROUNDING = 1; \ + constexpr int CONST_Q_BITS = 8; \ + constexpr int CONST_Q_MANTISA_BITS = 2; \ + __VA_ARGS__(); \ + } else if (28 == Q_BITS) { \ + constexpr int CONST_STOCHASTIC_ROUNDING = 0; \ + constexpr int CONST_Q_BITS = 12; \ + constexpr int CONST_Q_MANTISA_BITS = 7; \ + __VA_ARGS__(); \ + } else if (29 == Q_BITS) { \ + constexpr int CONST_STOCHASTIC_ROUNDING = 1; \ + constexpr int CONST_Q_BITS = 12; \ + constexpr int CONST_Q_MANTISA_BITS = 7; \ + __VA_ARGS__(); \ + } else if (6 == Q_BITS) { \ + constexpr int CONST_STOCHASTIC_ROUNDING = 0; \ + constexpr int CONST_Q_BITS = 6; \ + constexpr int CONST_Q_MANTISA_BITS = 2; \ + __VA_ARGS__(); \ + } else if (7 == Q_BITS) { \ + constexpr int CONST_STOCHASTIC_ROUNDING = 1; \ + constexpr int CONST_Q_BITS = 6; \ + constexpr int CONST_Q_MANTISA_BITS = 2; \ + __VA_ARGS__(); \ + } else if (2 == Q_BITS) { \ + constexpr int CONST_STOCHASTIC_ROUNDING = 0; \ + constexpr int CONST_Q_BITS = 4; \ + constexpr int CONST_Q_MANTISA_BITS = 1; \ + __VA_ARGS__(); \ + } else { \ + constexpr int CONST_STOCHASTIC_ROUNDING = 1; \ + constexpr int CONST_Q_BITS = 4; \ + constexpr int CONST_Q_MANTISA_BITS = 1; \ + __VA_ARGS__(); \ + } \ + }() + +#define DEQUANT_SWITCH(Q_MANTISA_EXPONENT_BITS, ...) \ + [&] { \ + if (12 == Q_MANTISA_EXPONENT_BITS) { \ + constexpr int CONST_Q_MANTISA_BITS = 3; \ + constexpr int CONST_Q_EXPONENT_BITS = 4; \ + __VA_ARGS__(); \ + } else if (10 == Q_MANTISA_EXPONENT_BITS) { \ + constexpr int CONST_Q_MANTISA_BITS = 2; \ + constexpr int CONST_Q_EXPONENT_BITS = 5; \ + __VA_ARGS__(); \ + } else if (28 == Q_MANTISA_EXPONENT_BITS) { \ + constexpr int CONST_Q_MANTISA_BITS = 7; \ + constexpr int CONST_Q_EXPONENT_BITS = 4; \ + __VA_ARGS__(); \ + } else if (6 == Q_MANTISA_EXPONENT_BITS) { \ + constexpr int CONST_Q_MANTISA_BITS = 2; \ + constexpr int CONST_Q_EXPONENT_BITS = 3; \ + __VA_ARGS__(); \ + } else { \ + constexpr int CONST_Q_MANTISA_BITS = 1; \ + constexpr int CONST_Q_EXPONENT_BITS = 2; \ + __VA_ARGS__(); \ + } \ + }() + +template +void launch_quantization(T* val, + uint8_t* q_val, + int num_groups, + int group_size, + cudaStream_t stream, + float q_range, + int q_bits, + int q_mantisa_bits, + int stochastic_rounding); + +template +void launch_dequantization(uint8_t* val, + T* q_val, + int num_groups, + int group_size, + int q_mantisa_bits, + int q_exponent_bits, + cudaStream_t stream); + +template +void launch_selective_dequantization(uint8_t* val, + T* q_val, + int32_t* indexes, + int num_groups, + int group_size, + int num_indexes, + int q_mantisa_bits, + int q_exponent_bits, + cudaStream_t stream); diff --git a/csrc/gds/py_lib/deepspeed_gds_op.cpp b/csrc/gds/py_lib/deepspeed_gds_op.cpp new file mode 100644 index 000000000000..b7055c8cc72b --- /dev/null +++ b/csrc/gds/py_lib/deepspeed_gds_op.cpp @@ -0,0 +1,161 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 + +// DeepSpeed Team + +/* +Functionality for swapping optimizer tensors to/from (NVMe) storage devices. +*/ + +#include "deepspeed_gds_op.h" + +using namespace std; + +// For when there is more than 1 device +static std::map> base_ptr_registry; + +static void _safe_handle_register(const int fd, CUfileDescr_t& cf_descr, CUfileHandle_t& cf_handle) +{ + memset((void*)&cf_descr, 0, sizeof(CUfileDescr_t)); + cf_descr.handle.fd = fd; + cf_descr.type = CU_FILE_HANDLE_TYPE_OPAQUE_FD; + CUfileError_t status = cuFileHandleRegister(&cf_handle, &cf_descr); + if (status.err != CU_FILE_SUCCESS) { + std::cerr << "file register error:" << cuFileGetErrorString(status) << std::endl; + close(fd); + exit(EXIT_FAILURE); + } +} + +static void* _find_base_ptr(const int64_t device, char* buf_ptr) +{ + void* base_ptr = nullptr; + int64_t last = -1; + int64_t ptr_diff; + for (const auto& value : base_ptr_registry[device]) { + ptr_diff = buf_ptr - (char*)value; + if (last == -1 && ptr_diff >= 0) { + last = ptr_diff; + base_ptr = value; + } else if (ptr_diff < last && ptr_diff >= 0) { + last = ptr_diff; + base_ptr = value; + } + } + if (!base_ptr || buf_ptr < base_ptr) { + std::cerr << "BASE PTR ERROR :" << base_ptr << " BUF PTR " << (void*)buf_ptr << std::endl; + for (const auto& value : base_ptr_registry[device]) { + std::cerr << "BASE PTR AVAIL :" << value << std::endl; + } + exit(EXIT_FAILURE); + } + + return base_ptr; +} + +void gds_op_desc_t::add_buffer_to_registry(const torch::Tensor& buffer) +{ + const int64_t device = buffer.get_device(); + void* reg_ptr = buffer.data_ptr(); + + // TODO: add checking to make sure pointer isn't already in set + const auto it = base_ptr_registry.find(device); + if (it == base_ptr_registry.end()) { + std::set new_ptr_set; + new_ptr_set.insert(reg_ptr); + base_ptr_registry.insert(std::pair>(device, new_ptr_set)); + } else { + base_ptr_registry[device].insert(reg_ptr); + } + + check_cudaruntimecall(cudaSetDevice(device)); + CUfileError_t status = cuFileBufRegister(reg_ptr, buffer.nbytes(), 0); + if (status.err != CU_FILE_SUCCESS) { + std::cerr << "buffer register failed:" << cuFileGetErrorString(status) << std::endl; + exit(EXIT_FAILURE); + } +} + +void gds_op_desc_t::remove_buffer_from_registry(const torch::Tensor& buffer) +{ + const int64_t device = buffer.get_device(); + void* reg_ptr = buffer.data_ptr(); + + // std::cout << "DEREG PTR " << reg_ptr << std::endl; + check_cudaruntimecall(cudaSetDevice(device)); + cuFileBufDeregister(reg_ptr); + + // Remove from tracked registry + base_ptr_registry[device].erase(reg_ptr); +} + +gds_op_desc_t::gds_op_desc_t(const bool read_op, + const torch::Tensor& buffer, + const int fd, + const char* filename, + const int64_t file_num_bytes, + const int intra_op_parallelism, + const bool validate, + const int64_t file_offset) + : io_op_desc_t(read_op, + buffer, + fd, + filename, + file_num_bytes, + intra_op_parallelism, + validate, + file_offset) +{ + _contiguous_buffer = _buffer.contiguous(); + const int64_t device = _buffer.get_device(); + check_cudaruntimecall(cudaSetDevice(device)); + _base_ptr = _find_base_ptr(device, (char*)_contiguous_buffer.data_ptr()); + + _safe_handle_register(fd, _cf_descr, _cf_handle); +} + +char* gds_op_desc_t::data_ptr() const { return (char*)_contiguous_buffer.data_ptr(); } + +void gds_op_desc_t::finish() { cuFileHandleDeregister(_cf_handle); } + +void gds_op_desc_t::validate() +{ + check_cudaruntimecall(cudaSetDevice(_buffer.get_device())); + const auto cpu_buffer = _buffer.to(torch::kCPU); + validate_aio_operation( + _read_op, _filename.c_str(), (char*)(cpu_buffer.data_ptr()), _file_num_bytes); +} + +void gds_op_desc_t::run(const int tid, + std::unique_ptr& aio_ctxt, + deepspeed_aio_config_t* aio_config) +{ + assert(tid < _intra_op_parallelism); + check_cudaruntimecall(cudaSetDevice(_buffer.get_device())); + const auto buf_offset = data_ptr() + (_num_bytes_per_thread * tid) - (char*)_base_ptr; + const auto tid_file_offset = _file_offset + (_num_bytes_per_thread * tid); + + if (_read_op) { + auto ret = + cuFileRead(_cf_handle, _base_ptr, _num_bytes_per_thread, tid_file_offset, buf_offset); + if (ret < 0) { _report_error(ret, errno, tid_file_offset); } + } else { + auto ret = + cuFileWrite(_cf_handle, _base_ptr, _num_bytes_per_thread, tid_file_offset, buf_offset); + if (ret < 0) { _report_error(ret, errno, tid_file_offset); } + } +} + +void gds_op_desc_t::_report_error(const ssize_t return_code, + const int error_num, + const off_t offset) +{ + const auto op_string = _read_op ? "read failed with " : "write failed with "; + const auto error_string = IS_CUFILE_ERR(return_code) ? "cuFile error: " : "posix error: "; + const auto error_code = IS_CUFILE_ERR(return_code) ? cuFileGetErrorString(return_code) + : cuFileGetErrorString(error_num); + std::cerr << op_string << error_string << error_code << " return code = " << return_code + << " filename = " << _filename.c_str() << " num bytes = " << _num_bytes_per_thread + << " offset = " << offset << std::endl; + exit(EXIT_FAILURE); +} diff --git a/csrc/gds/py_lib/deepspeed_gds_op.h b/csrc/gds/py_lib/deepspeed_gds_op.h new file mode 100644 index 000000000000..d955527b1ba3 --- /dev/null +++ b/csrc/gds/py_lib/deepspeed_gds_op.h @@ -0,0 +1,45 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 + +// DeepSpeed Team + +#include +#include +#include +#include +#include +#include + +#include "deepspeed_aio_op_desc.h" +#include "deepspeed_gds_utils.h" + +struct gds_op_desc_t : io_op_desc_t { + CUfileDescr_t _cf_descr; + CUfileHandle_t _cf_handle; + void* _base_ptr; + + gds_op_desc_t(const bool read_op, + const torch::Tensor& buffer, + const int fd, + const char* filename, + const int64_t file_num_bytes, + const int intra_op_parallelism, + const bool validate, + const int64_t file_offset); + + void run(const int tid, + std::unique_ptr& aio_ctxt, + deepspeed_aio_config_t* aio_config); + + char* data_ptr() const; + + void validate(); + + void finish(); + + void _report_error(const ssize_t return_code, const int error_num, const off_t offset); + + static void add_buffer_to_registry(const torch::Tensor& buffer); + + static void remove_buffer_from_registry(const torch::Tensor& buffer); +}; diff --git a/csrc/gds/py_lib/deepspeed_gds_utils.h b/csrc/gds/py_lib/deepspeed_gds_utils.h new file mode 100644 index 000000000000..12b014d90988 --- /dev/null +++ b/csrc/gds/py_lib/deepspeed_gds_utils.h @@ -0,0 +1,91 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 + +// DeepSpeed Team + +#include + +// CUDA/cuFile includes +#include +#include +#include "cufile.h" + +// Macro for checking cuda errors following a cuda launch or api call +#define cudaCheckError() \ + { \ + cudaError_t e = cudaGetLastError(); \ + if (e != cudaSuccess) { \ + printf("Cuda failure %s:%d: '%s'\n", __FILE__, __LINE__, cudaGetErrorString(e)); \ + exit(EXIT_FAILURE); \ + } \ + } + +#define check_cudadrivercall(fn) \ + do { \ + CUresult res = fn; \ + if (res != CUDA_SUCCESS) { \ + const char* str = nullptr; \ + cuGetErrorName(res, &str); \ + std::cerr << "cuda driver api call failed " << #fn << " res : " << res << ", " \ + << __LINE__ << ":" << str << std::endl; \ + std::cerr << "EXITING program!!!" << std::endl; \ + exit(1); \ + } \ + } while (0) + +#define check_cudaruntimecall(fn) \ + do { \ + cudaError_t res = fn; \ + if (res != cudaSuccess) { \ + const char* str = cudaGetErrorName(res); \ + std::cerr << "cuda runtime api call failed " << #fn << __LINE__ << ":" << str \ + << std::endl; \ + std::cerr << "EXITING program!!!" << std::endl; \ + exit(1); \ + } \ + } while (0) + +#define check_cuFileCall(fn, api_msg) \ + do { \ + CUfileError_t status = fn; \ + if (status.err != CU_FILE_SUCCESS) { \ + std::cout << api_msg << " failed with error " << CUFILE_ERRSTR(status.err) \ + << std::endl; \ + exit(EXIT_FAILURE); \ + } \ + } while (0) + +// +// cuda driver error description +// +static inline const char* GetCuErrorString(CUresult curesult) +{ + const char* descp; + if (cuGetErrorName(curesult, &descp) != CUDA_SUCCESS) descp = "unknown cuda error"; + return descp; +} + +// +// cuFile APIs return both cuFile specific error codes as well as POSIX error codes +// for ease, the below template can be used for getting the error description depending +// on its type. + +// POSIX +template ::value, std::nullptr_t>::type = nullptr> +std::string cuFileGetErrorString(T status) +{ + status = std::abs(status); + return IS_CUFILE_ERR(status) ? std::string(CUFILE_ERRSTR(status)) + : std::string(std::strerror(status)); +} + +// CUfileError_t +template ::value, std::nullptr_t>::type = nullptr> +std::string cuFileGetErrorString(T status) +{ + std::string errStr = cuFileGetErrorString(static_cast(status.err)); + if (IS_CUDA_ERR(status)) errStr.append(".").append(GetCuErrorString(status.cu_err)); + return errStr; +} diff --git a/csrc/gds/py_lib/deepspeed_py_gds_handle.cpp b/csrc/gds/py_lib/deepspeed_py_gds_handle.cpp new file mode 100644 index 000000000000..f11245c75a5e --- /dev/null +++ b/csrc/gds/py_lib/deepspeed_py_gds_handle.cpp @@ -0,0 +1,125 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 + +// DeepSpeed Team + +/* + GPUDirect Storage functionality for swapping optimizer tensors to/from (NVMe) storage devices. +*/ + +#include "deepspeed_py_gds_handle.h" +#include +#include "deepspeed_gds_op.h" + +using namespace std; + +int deepspeed_gds_handle_t::s_cuFile_init = 0; + +deepspeed_gds_handle_t::deepspeed_gds_handle_t(const int block_size, + const int queue_depth, + const bool single_submit, + const bool overlap_events, + const int intra_op_parallelism) + : deepspeed_io_handle_t(block_size, queue_depth, single_submit, overlap_events, 1), + _intra_gds_op_parallelism(intra_op_parallelism) +{ + _init_cuFile(block_size, queue_depth); +} + +deepspeed_gds_handle_t::~deepspeed_gds_handle_t() { _close_cuFile(); } + +const int deepspeed_gds_handle_t::get_intra_op_parallelism() const +{ + return _intra_gds_op_parallelism; +} + +void deepspeed_gds_handle_t::_init_cuFile(const int block_size, const int queue_depth) +{ + if (deepspeed_gds_handle_t::s_cuFile_init == 0) { + std::string depthStr = std::to_string(queue_depth); + std::string threadsStr = std::to_string(_intra_gds_op_parallelism); + std::string json1 = R"({"execution": {"max_io_queue_depth": )" + depthStr + ", "; + std::string json2 = R"("max_request_parallelism": )" + threadsStr + ", "; + std::string json3 = R"("max_io_threads": )" + threadsStr + ", "; + std::string json4 = R"("parallel_io": true, "min_io_threshold_size_kb": 8192}})"; + std::ofstream outFile("local_cufile.json"); + if (outFile.is_open()) { + outFile << json1 + json2 + json3 + json4; + outFile.close(); + } else { + std::cerr << "Can't open local cufile" << std::endl; + exit(EXIT_FAILURE); + } + // TODO: Address the following issues with this code + // (1) Fix C++14 warning + // (2) Create file in a different location than PWD + // (3) Handle multi-GPU/multi-rank scenarios: should cufile be shared, is per-rank cufile + // safe? + putenv("CUFILE_ENV_PATH_JSON=$PWD/local_cufile.json"); + cuFileDriverOpen(); + cudaCheckError(); + size_t direct_io_size = (size_t)block_size / 1024; + CUfileError_t status = cuFileDriverSetMaxDirectIOSize(direct_io_size); + if (status.err != CU_FILE_SUCCESS) { + std::cerr << "file register error:" << cuFileGetErrorString(status) << std::endl; + exit(EXIT_FAILURE); + } + } + deepspeed_gds_handle_t::s_cuFile_init++; +} + +void deepspeed_gds_handle_t::_close_cuFile() +{ + deepspeed_gds_handle_t::s_cuFile_init--; + if (deepspeed_gds_handle_t::s_cuFile_init == 0) { cuFileDriverClose(); } +} + +torch::Tensor deepspeed_gds_handle_t::new_pinned_device_tensor(const size_t num_elem, + const torch::Tensor& example_tensor) +{ + auto options = torch::TensorOptions().dtype(example_tensor.scalar_type()).device(torch::kCUDA); + auto dev_tensor = torch::empty(num_elem, options); + pin_device_tensor(dev_tensor); + return dev_tensor; +} + +bool deepspeed_gds_handle_t::free_pinned_device_tensor(torch::Tensor& buffer) +{ + unpin_device_tensor(buffer); + return true; +} + +bool deepspeed_gds_handle_t::pin_device_tensor(const torch::Tensor& buffer) +{ + gds_op_desc_t::add_buffer_to_registry(buffer); + return true; +} + +bool deepspeed_gds_handle_t::unpin_device_tensor(const torch::Tensor& buffer) +{ + gds_op_desc_t::remove_buffer_from_registry(buffer); + return true; +} + +std::shared_ptr deepspeed_gds_handle_t::_create_io_op_desc( + const bool read_op, + const torch::Tensor& buffer, + const int fd, + const char* filename, + const int64_t file_num_bytes, + const bool validate, + const int64_t file_offset) +{ + if (buffer.is_cuda()) { + return std::make_shared(read_op, + buffer, + fd, + filename, + file_num_bytes, + _intra_op_parallelism, + validate, + file_offset); + } + return deepspeed_io_handle_t::_create_io_op_desc( + read_op, buffer, fd, filename, file_num_bytes, validate, file_offset); +} diff --git a/csrc/gds/py_lib/deepspeed_py_gds_handle.h b/csrc/gds/py_lib/deepspeed_py_gds_handle.h new file mode 100644 index 000000000000..25f68e177b2c --- /dev/null +++ b/csrc/gds/py_lib/deepspeed_py_gds_handle.h @@ -0,0 +1,49 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 + +// DeepSpeed Team + +/* +Functionality for swapping optimizer tensors to/from (NVMe) storage devices. +*/ + +#include +#include +#include "deepspeed_py_io_handle.h" + +struct deepspeed_gds_handle_t : deepspeed_io_handle_t { + const int _intra_gds_op_parallelism; + + deepspeed_gds_handle_t(const int block_size, + const int queue_depth, + const bool single_submit, + const bool overlap_events, + const int intra_op_parallelism); + + ~deepspeed_gds_handle_t(); + + torch::Tensor new_pinned_device_tensor(const size_t num_elem, + const torch::Tensor& example_tensor); + + bool free_pinned_device_tensor(torch::Tensor&); + + bool pin_device_tensor(const torch::Tensor& buffer); + + bool unpin_device_tensor(const torch::Tensor& buffer); + + void _init_cuFile(const int block_size, const int queue_depth); + + void _close_cuFile(); + + const int get_intra_op_parallelism() const; + + std::shared_ptr _create_io_op_desc(const bool read_op, + const torch::Tensor& buffer, + const int fd, + const char* filename, + const int64_t file_num_bytes, + const bool validate, + const int64_t file_offset); + + static int s_cuFile_init; +}; diff --git a/csrc/gds/py_lib/py_ds_gds.cpp b/csrc/gds/py_lib/py_ds_gds.cpp new file mode 100644 index 000000000000..2f165ee2c32a --- /dev/null +++ b/csrc/gds/py_lib/py_ds_gds.cpp @@ -0,0 +1,130 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 + +// DeepSpeed Team + +/* +Functionality for swapping optimizer tensors to/from (NVMe) storage devices. +*/ + +#include +#include "deepspeed_py_gds_handle.h" +using namespace pybind11::literals; + +PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) +{ + py::class_(m, "gds_handle") + .def(py::init(), + "GDS handle constructor", + "block_size"_a = 1024 * 1024, + "queue_depth"_a = 128, + "single_submit"_a = false, + "overlap_events"_a = false, + "intra_op_parallelism"_a = 1) + + .def("get_block_size", &deepspeed_gds_handle_t::get_block_size) + .def("get_queue_depth", &deepspeed_gds_handle_t::get_queue_depth) + .def("get_single_submit", &deepspeed_gds_handle_t::get_single_submit) + .def("get_overlap_events", &deepspeed_gds_handle_t::get_overlap_events) + .def("get_intra_op_parallelism", &deepspeed_gds_handle_t::get_intra_op_parallelism) + + .def("read", + &deepspeed_gds_handle_t::read, + "Synchronous and non-parallel file read. Returns count of completed read ops", + "buffer"_a, + "filename"_a, + "validate"_a, + "file_offset"_a = 0) + + .def("write", + &deepspeed_gds_handle_t::write, + "Synchronous and non-parallel file write. Returns count of completed write ops", + "buffer"_a, + "filename"_a, + "validate"_a, + "file_offset"_a = 0) + + .def("pread", + &deepspeed_gds_handle_t::pread, + "Parallel file read with option of parallelism. Returns count of completed read ops", + "buffer"_a, + "filename"_a, + "validate"_a, + "async"_a, + "file_offset"_a = 0) + + .def("pwrite", + &deepspeed_gds_handle_t::pwrite, + "Parallel file write with option of parallelism. Returns count of completed write ops", + "buffer"_a, + "filename"_a, + "validate"_a, + "async"_a, + "file_offset"_a = 0) + + .def("sync_pread", + &deepspeed_gds_handle_t::sync_pread, + "Synchrononous parallel file read. Returns count of completed read ops", + "buffer"_a, + "filename"_a, + "file_offset"_a = 0) + + .def("sync_pwrite", + &deepspeed_gds_handle_t::sync_pwrite, + "Synchronous parallel file write. Returns count of completed write ops", + "buffer"_a, + "filename"_a, + "file_offset"_a = 0) + + .def("async_pread", + &deepspeed_gds_handle_t::async_pread, + "Asynchronous parallel file read. Returns 0 on success. Returns 0 on success, and " + "following wait() returns count of completed ops.", + "buffer"_a, + "filename"_a, + "file_offset"_a = 0) + + .def("async_pwrite", + &deepspeed_gds_handle_t::async_pwrite, + "Asynchronous parallel file write. Returns 0 on success, and following wait() returns " + "count of completed ops.", + "buffer"_a, + "filename"_a, + "file_offset"_a = 0) + + .def("new_cpu_locked_tensor", + &deepspeed_gds_handle_t::new_cpu_locked_tensor, + "Allocate pinned CPU tensor.", + "num_elem"_a, + "example_tenosr"_a) + + .def("free_cpu_locked_tensor", + &deepspeed_gds_handle_t::free_cpu_locked_tensor, + "Free pinned CPU tensor.", + "tensor"_a) + + .def("new_pinned_device_tensor", + &deepspeed_gds_handle_t::new_pinned_device_tensor, + "Allocate pinned device tensor.", + "num_elem"_a, + "example_tenosr"_a) + + .def("free_pinned_device_tensor", + &deepspeed_gds_handle_t::free_pinned_device_tensor, + "Free pinned device tensor.", + "tensor"_a) + + .def("pin_device_tensor", + &deepspeed_gds_handle_t::pin_device_tensor, + "Pin device tensor.", + "tensor"_a) + + .def("unpin_device_tensor", + &deepspeed_gds_handle_t::unpin_device_tensor, + "Unpin device tensor.", + "tensor"_a) + + .def("wait", + &deepspeed_gds_handle_t::wait, + "Wait for (ongoing) asynchronous operations to complete"); +} diff --git a/csrc/gds/py_test/validate_gds.py b/csrc/gds/py_test/validate_gds.py new file mode 100644 index 000000000000..b34b1194f582 --- /dev/null +++ b/csrc/gds/py_test/validate_gds.py @@ -0,0 +1,10 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team +""" +Functionality of swapping optimizer tensors to/from (NVMe) storage devices. +""" +from deepspeed.ops.op_builder import GDSBuilder +assert GDSBuilder().is_compatible(True) +assert GDSBuilder().load(True) diff --git a/csrc/includes/cpu_adagrad.h b/csrc/includes/cpu_adagrad.h index 59888adf17c3..6f500250f033 100644 --- a/csrc/includes/cpu_adagrad.h +++ b/csrc/includes/cpu_adagrad.h @@ -9,84 +9,35 @@ // https://stackoverflow.com/questions/4913922/possible-problems-with-nominmax-on-visual-c #include +#include #include #include "simd.h" -#if defined(__ENABLE_CUDA__) -#include -#include -#include "cuda.h" -#include "custom_cuda_layers.h" -typedef __half ds_half_precision_t; -#elif defined(__ENABLE_CANN__) -#include "acl/acl.h" -#include "torch_npu/csrc/core/npu/NPUStream.h" -typedef c10::Half ds_half_precision_t; -#else -typedef unsigned short ds_half_precision_t; -#endif - -#define STEP(SPAN) \ - void Step_##SPAN(float* _params, \ - float* grads, \ - float* _exp_avg_sq, \ - size_t _param_size, \ - ds_half_precision_t* dev_param = nullptr, \ - bool half_precision = false); +#define STEP(SPAN) \ + template \ + void Step_##SPAN(ds_params_precision_t* _params, \ + ds_params_precision_t* grads, \ + ds_state_precision_t* _exp_avg_sq, \ + size_t _param_size); class Adagrad_Optimizer { public: Adagrad_Optimizer(float alpha = 1e-2, float eps = 1e-8, float weight_decay = 0) : _alpha(alpha), _eps(eps), _weight_decay(weight_decay) { -#if defined(__ENABLE_CUDA__) - cudaMallocHost((void**)_doubled_buffer, TILE * sizeof(float)); - cudaMallocHost((void**)(_doubled_buffer + 1), TILE * sizeof(float)); - - _streams[0] = TrainingContext::Instance().GetCurrentStream(); - _streams[1] = TrainingContext::Instance().GetNewStream(); - _buf_index = false; -#elif defined(__ENABLE_CANN__) - aclrtMallocHost((void**)_doubled_buffer, TILE * sizeof(float)); - aclrtMallocHost((void**)(_doubled_buffer + 1), TILE * sizeof(float)); - - _buf_index = false; -#endif - } - ~Adagrad_Optimizer() - { -#if defined(__ENABLE_CUDA__) - cudaFreeHost(_doubled_buffer[0]); - cudaFreeHost(_doubled_buffer[1]); -#elif defined(__ENABLE_CANN__) - aclrtFreeHost(_doubled_buffer[0]); - aclrtFreeHost(_doubled_buffer[1]); -#endif } + ~Adagrad_Optimizer() {} #if defined(__AVX512__) or defined(__AVX256__) - template + template void Step_AVX(size_t* rounded_size, - float* _params, - float* grads, - float* _exp_avg_sq, - size_t param_size, - ds_half_precision_t* dev_param = nullptr, - bool half_precision = false); + ds_params_precision_t* _params, + ds_params_precision_t* grads, + ds_state_precision_t* _exp_avg_sq, + size_t param_size); #endif STEP(1) STEP(4) STEP(8) -#if defined(__ENABLE_CUDA__) - inline void SynchronizeStreams() - { - for (int i = 0; i < 2; i++) cudaStreamSynchronize(_streams[i]); - } -#elif defined(__ENABLE_CANN__) - inline void SynchronizeStreams() - { - for (int i = 0; i < 2; i++) aclrtSynchronizeStream(_streams[i].stream()); - } -#endif inline void IncrementStep(size_t step) { _step++; @@ -107,29 +58,22 @@ class Adagrad_Optimizer { float _betta1_t; float _betta2_t; size_t _step; - -#if defined(__ENABLE_CUDA__) - bool _buf_index; - float* _doubled_buffer[2]; - cudaStream_t _streams[2]; -#elif defined(__ENABLE_CANN__) - float* _doubled_buffer[2]; - c10_npu::NPUStream _streams[2] = {c10_npu::getCurrentNPUStream(), - c10_npu::getNPUStreamFromPool()}; - bool _buf_index; -#endif }; #if defined(__AVX512__) or defined(__AVX256__) -template +template void Adagrad_Optimizer::Step_AVX(size_t* rounded_size, - float* _params, - float* grads, - float* _exp_avg_sq, - size_t _param_size, - ds_half_precision_t* dev_params, - bool half_precision) + ds_params_precision_t* _params, + ds_params_precision_t* grads, + ds_state_precision_t* _exp_avg_sq, + size_t _param_size) { +#if !defined(__AVX512__) + if (std::is_same_v || + std::is_same_v) { + return; + } +#endif size_t new_rounded_size = 0; AVX_Data eps_4; eps_4.data = SIMD_SET(_eps); @@ -145,24 +89,19 @@ void Adagrad_Optimizer::Step_AVX(size_t* rounded_size, size_t copy_size = TILE; if ((t + TILE) > new_rounded_size) copy_size = new_rounded_size - t; size_t offset = copy_size + t; -#if defined(__ENABLE_CUDA__) - if ((t / TILE) >= 2) { cudaStreamSynchronize(_streams[_buf_index]); } -#elif defined(__ENABLE_CANN__) - if ((t / TILE) >= 2) { aclrtSynchronizeStream(_streams[_buf_index].stream()); } -#endif #pragma omp parallel for for (size_t i = t; i < offset; i += SIMD_WIDTH * span) { AVX_Data grad_4[span]; - simd_load(grad_4, grads + i, half_precision); + simd_load(grad_4, grads + i); AVX_Data momentum_4[span]; - simd_load(momentum_4, grads + i, false); + simd_load(momentum_4, grads + i); AVX_Data variance_4[span]; - simd_load(variance_4, _exp_avg_sq + i, false); + simd_load(variance_4, _exp_avg_sq + i); AVX_Data param_4[span]; - simd_load(param_4, _params + i, half_precision); + simd_load(param_4, _params + i); if (_weight_decay > 0) { simd_fma(grad_4, param_4, weight_decay4, grad_4); } @@ -172,37 +111,9 @@ void Adagrad_Optimizer::Step_AVX(size_t* rounded_size, simd_div(grad_4, momentum_4, grad_4); simd_fma(param_4, grad_4, step_size_4, param_4); - simd_store(_params + i, param_4, half_precision); -#if defined(__ENABLE_CUDA__) or defined(__ENABLE_CANN__) - if (dev_params) { - simd_store(_doubled_buffer[_buf_index] + (i - t), param_4, half_precision); - } -#endif - simd_store(_exp_avg_sq + i, variance_4, false); + simd_store(_params + i, param_4); + simd_store(_exp_avg_sq + i, variance_4); } -#if defined(__ENABLE_CUDA__) - if (dev_params) { - if (half_precision) - launch_param_update_half( - _doubled_buffer[_buf_index], dev_params + t, copy_size, _streams[_buf_index]); - else - launch_param_update( - _doubled_buffer[_buf_index], dev_params + t, copy_size, _streams[_buf_index]); - - _buf_index = !_buf_index; - } -#elif defined(__ENABLE_CANN__) - if (dev_params) { - size_t memcpy_size = copy_size * sizeof(_doubled_buffer[_buf_index][0]); - if (half_precision) memoryCopySize /= 2; - aclrtMemcpy(dev_params + t, - memcpy_size, - _doubled_buffer[_buf_index], - memcpy_size, - aclrtMemcpyKind::ACL_MEMCPY_HOST_TO_DEVICE); - - _buf_index = !_buf_index; -#endif } *rounded_size = new_rounded_size; } diff --git a/csrc/includes/cpu_adam.h b/csrc/includes/cpu_adam.h index 44d3ed3cac61..a7db6fda3705 100644 --- a/csrc/includes/cpu_adam.h +++ b/csrc/includes/cpu_adam.h @@ -13,29 +13,13 @@ #include #include "simd.h" -#if defined(__ENABLE_CUDA__) -#include -#include -#include "cuda.h" -#include "custom_cuda_layers.h" -typedef __half ds_half_precision_t; -#elif defined(__ENABLE_CANN__) -#include "acl/acl.h" -#include "torch_npu/csrc/core/npu/NPUStream.h" -typedef c10::Half ds_half_precision_t; -#else -#include -typedef unsigned short ds_half_precision_t; -#endif - -#define STEP(SPAN) \ - void Step_##SPAN(float* _params, \ - float* grads, \ - float* _exp_avg, \ - float* _exp_avg_sq, \ - size_t _param_size, \ - ds_half_precision_t* dev_param = nullptr, \ - bool half_precision = false); +#define STEP(SPAN) \ + template \ + void Step_##SPAN(ds_params_precision_t* _params, \ + ds_params_precision_t* grads, \ + ds_state_precision_t* _exp_avg, \ + ds_state_precision_t* _exp_avg_sq, \ + size_t _param_size); class Adam_Optimizer { public: @@ -55,56 +39,21 @@ class Adam_Optimizer { _step(0), _adamw_mode(adamw_mode) { -#if defined(__ENABLE_CUDA__) - cudaMallocHost((void**)_doubled_buffer, TILE * sizeof(float)); - cudaMallocHost((void**)(_doubled_buffer + 1), TILE * sizeof(float)); - - _streams[0] = TrainingContext::Instance().GetCurrentStream(); - _streams[1] = TrainingContext::Instance().GetNewStream(); - _buf_index = false; -#elif defined(__ENABLE_CANN__) - aclrtMallocHost((void**)_doubled_buffer, TILE * sizeof(float)); - aclrtMallocHost((void**)(_doubled_buffer + 1), TILE * sizeof(float)); - - _buf_index = false; -#endif - } - ~Adam_Optimizer() - { -#if defined(__ENABLE_CUDA__) - cudaFreeHost(_doubled_buffer[0]); - cudaFreeHost(_doubled_buffer[1]); -#elif defined(__ENABLE_CANN__) - aclrtFreeHost(_doubled_buffer[0]); - aclrtFreeHost(_doubled_buffer[1]); -#endif } + ~Adam_Optimizer() {} #if defined(__AVX512__) or defined(__AVX256__) - template + template void Step_AVX(size_t* rounded_size, - float* _params, - float* grads, - float* _exp_avg, - float* _exp_avg_sq, - size_t param_size, - ds_half_precision_t* dev_param = nullptr, - bool half_precision = false); + ds_params_precision_t* _params, + ds_params_precision_t* grads, + ds_state_precision_t* _exp_avg, + ds_state_precision_t* _exp_avg_sq, + size_t param_size); #endif STEP(1) STEP(4) STEP(8) -#if defined(__ENABLE_CUDA__) - inline void SynchronizeStreams() - { - for (int i = 0; i < 2; i++) cudaStreamSynchronize(_streams[i]); - } -#elif defined(__ENABLE_CANN__) - inline void SynchronizeStreams() - { - for (int i = 0; i < 2; i++) aclrtSynchronizeStream(_streams[i].stream()); - } -#endif inline void IncrementStep(size_t step, float beta1, float beta2) { if (beta1 != _betta1 || beta2 != _betta2) { @@ -154,32 +103,24 @@ class Adam_Optimizer { float _bias_correction2; bool _adamw_mode; - -#if defined(__ENABLE_CUDA__) - float* _doubled_buffer[2]; - cudaStream_t _streams[2]; - bool _buf_index; -#elif defined(__ENABLE_CANN__) - float* _doubled_buffer[2]; - c10_npu::NPUStream _streams[2] = {c10_npu::getCurrentNPUStream(), - c10_npu::getNPUStreamFromPool()}; - bool _buf_index; -#endif }; #if defined(__AVX512__) or defined(__AVX256__) -template +template void Adam_Optimizer::Step_AVX(size_t* rounded_size, - float* _params, - float* grads, - float* _exp_avg, - float* _exp_avg_sq, - size_t _param_size, - ds_half_precision_t* dev_params, - bool half_precision) + ds_params_precision_t* _params, + ds_params_precision_t* grads, + ds_state_precision_t* _exp_avg, + ds_state_precision_t* _exp_avg_sq, + size_t _param_size) { +#if !defined(__AVX512__) + if (std::is_same_v || + std::is_same_v) { + return; + } +#endif size_t new_rounded_size = 0; - int rshft = half_precision ? 1 : 0; AVX_Data betta1_4; betta1_4.data = SIMD_SET(_betta1); @@ -212,25 +153,19 @@ void Adam_Optimizer::Step_AVX(size_t* rounded_size, size_t copy_size = TILE; if ((t + TILE) > new_rounded_size) copy_size = new_rounded_size - t; size_t offset = copy_size + t; -#if defined(__ENABLE_CUDA__) - if ((t / TILE) >= 2) { cudaStreamSynchronize(_streams[_buf_index]); } -#elif defined(__ENABLE_CANN__) - if ((t / TILE) >= 2) { aclrtSynchronizeStream((_streams[_buf_index].stream()); - } -#endif #pragma omp parallel for for (size_t i = t; i < offset; i += SIMD_WIDTH * span) { AVX_Data grad_4[span]; - simd_load(grad_4, grads + (i >> rshft), half_precision); + simd_load(grad_4, grads + i); AVX_Data momentum_4[span]; - simd_load(momentum_4, _exp_avg + i, false); + simd_load(momentum_4, _exp_avg + i); AVX_Data variance_4[span]; - simd_load(variance_4, _exp_avg_sq + i, false); + simd_load(variance_4, _exp_avg_sq + i); AVX_Data param_4[span]; - simd_load(param_4, _params + (i >> rshft), half_precision); + simd_load(param_4, _params + i); if (_weight_decay > 0 && !_adamw_mode) { simd_fma(grad_4, param_4, weight_decay4, grad_4); @@ -251,38 +186,10 @@ void Adam_Optimizer::Step_AVX(size_t* rounded_size, simd_fma(param_4, grad_4, step_size_4, param_4); - simd_store(_params + (i >> rshft), param_4, half_precision); -#if defined(__ENABLE_CUDA__) or defined(__ENABLE_CANN__) - if (dev_params) { - simd_store(_doubled_buffer[_buf_index] + (i - t), param_4, half_precision); - } -#endif - simd_store(_exp_avg + i, momentum_4, false); - simd_store(_exp_avg_sq + i, variance_4, false); - } -#if defined(__ENABLE_CUDA__) - if (dev_params) { - if (half_precision) - launch_param_update_half( - _doubled_buffer[_buf_index], dev_params + t, copy_size, _streams[_buf_index]); - else - launch_param_update( - _doubled_buffer[_buf_index], dev_params + t, copy_size, _streams[_buf_index]); - - _buf_index = !_buf_index; + simd_store(_params + i, param_4); + simd_store(_exp_avg + i, momentum_4); + simd_store(_exp_avg_sq + i, variance_4); } -#elif defined(__ENABLE_CANN__) - if (dev_params) { - size_t memcpy_size = copy_size * sizeof(_doubled_buffer[_buf_index][0]); - if (half_precision) memoryCopySize /= 2; - aclrtMemcpy(dev_params + t, - memcpy_size, - _doubled_buffer[_buf_index], - memcpy_size, - aclrtMemcpyKind::ACL_MEMCPY_HOST_TO_DEVICE); - - _buf_index = !_buf_index; -#endif } *rounded_size = new_rounded_size; } @@ -310,18 +217,4 @@ int ds_adam_step(int optimizer_id, torch::Tensor& exp_avg, torch::Tensor& exp_avg_sq); -int ds_adam_step_plus_copy(int optimizer_id, - size_t step, - float lr, - float beta1, - float beta2, - float epsilon, - float weight_decay, - bool bias_correction, - torch::Tensor& params, - torch::Tensor& grads, - torch::Tensor& exp_avg, - torch::Tensor& exp_avg_sq, - torch::Tensor& gpu_params); - int destroy_adam_optimizer(int optimizer_id); diff --git a/csrc/includes/cpu_lion.h b/csrc/includes/cpu_lion.h index d83fe9473332..beaf357a3211 100644 --- a/csrc/includes/cpu_lion.h +++ b/csrc/includes/cpu_lion.h @@ -13,28 +13,12 @@ #include #include "simd.h" -#if defined(__ENABLE_CUDA__) -#include -#include -#include "cuda.h" -#include "custom_cuda_layers.h" -typedef __half ds_half_precision_t; -#elif defined(__ENABLE_CANN__) -#include "acl/acl.h" -#include "torch_npu/csrc/core/npu/NPUStream.h" -typedef c10::Half ds_half_precision_t; -#else -#include -typedef unsigned short ds_half_precision_t; -#endif - -#define STEP(SPAN) \ - void Step_##SPAN(float* _params, \ - float* grads, \ - float* _exp_avg, \ - size_t _param_size, \ - ds_half_precision_t* dev_param = nullptr, \ - bool half_precision = false); +#define STEP(SPAN) \ + template \ + void Step_##SPAN(ds_params_precision_t* _params, \ + ds_params_precision_t* grads, \ + ds_state_precision_t* _exp_avg, \ + size_t _param_size); class Lion_Optimizer { public: @@ -44,55 +28,21 @@ class Lion_Optimizer { float weight_decay = 0) : _alpha(alpha), _betta1(betta1), _betta2(betta2), _weight_decay(weight_decay), _step(0) { -#if defined(__ENABLE_CUDA__) - cudaMallocHost((void**)_doubled_buffer, TILE * sizeof(float)); - cudaMallocHost((void**)(_doubled_buffer + 1), TILE * sizeof(float)); - - _streams[0] = TrainingContext::Instance().GetCurrentStream(); - _streams[1] = TrainingContext::Instance().GetNewStream(); - _buf_index = false; -#elif defined(__ENABLE_CANN__) - aclrtMallocHost((void**)_doubled_buffer, TILE * sizeof(float)); - aclrtMallocHost((void**)(_doubled_buffer + 1), TILE * sizeof(float)); - - _buf_index = false; -#endif - } - ~Lion_Optimizer() - { -#if defined(__ENABLE_CUDA__) - cudaFreeHost(_doubled_buffer[0]); - cudaFreeHost(_doubled_buffer[1]); -#elif defined(__ENABLE_CANN__) - aclrtFreeHost(_doubled_buffer[0]); - aclrtFreeHost(_doubled_buffer[1]); -#endif } + ~Lion_Optimizer() {} #if defined(__AVX512__) or defined(__AVX256__) - template + template void Step_AVX(size_t* rounded_size, - float* _params, - float* grads, - float* _exp_avg, - size_t param_size, - ds_half_precision_t* dev_param = nullptr, - bool half_precision = false); + ds_params_precision_t* _params, + ds_params_precision_t* grads, + ds_state_precision_t* _exp_avg, + size_t param_size); #endif STEP(1) STEP(4) STEP(8) -#if defined(__ENABLE_CUDA__) - inline void SynchronizeStreams() - { - for (int i = 0; i < 2; i++) cudaStreamSynchronize(_streams[i]); - } -#elif defined(__ENABLE_CANN__) - inline void SynchronizeStreams() - { - for (int i = 0; i < 2; i++) aclrtSynchronizeStream(_streams[i].stream()); - } -#endif + inline void IncrementStep(size_t step, float beta1, float beta2) { _step++; @@ -114,31 +64,23 @@ class Lion_Optimizer { float _betta2; float _weight_decay; size_t _step; - -#if defined(__ENABLE_CUDA__) - float* _doubled_buffer[2]; - cudaStream_t _streams[2]; - bool _buf_index; -#elif defined(__ENABLE_CANN__) - float* _doubled_buffer[2]; - c10_npu::NPUStream _streams[2] = {c10_npu::getCurrentNPUStream(), - c10_npu::getNPUStreamFromPool()}; - bool _buf_index; -#endif }; #if defined(__AVX512__) or defined(__AVX256__) -template +template void Lion_Optimizer::Step_AVX(size_t* rounded_size, - float* _params, - float* grads, - float* _exp_avg, - size_t _param_size, - ds_half_precision_t* dev_params, - bool half_precision) + ds_params_precision_t* _params, + ds_params_precision_t* grads, + ds_state_precision_t* _exp_avg, + size_t _param_size) { +#if !defined(__AVX512__) + if (std::is_same_v || + std::is_same_v) { + return; + } +#endif size_t new_rounded_size = 0; - int rshft = half_precision ? 1 : 0; constexpr float neg1 = -1.0f; AVX_Data neg1_4; @@ -169,21 +111,17 @@ void Lion_Optimizer::Step_AVX(size_t* rounded_size, size_t copy_size = TILE; if ((t + TILE) > new_rounded_size) copy_size = new_rounded_size - t; size_t offset = copy_size + t; -#if defined(__ENABLE_CUDA__) - if ((t / TILE) >= 2) { cudaStreamSynchronize(_streams[_buf_index]); } -#elif defined(__ENABLE_CANN__) - if ((t / TILE) >= 2) { aclrtSynchronizeStream(_streams[_buf_index].stream()); } -#endif + #pragma omp parallel for for (size_t i = t; i < offset; i += SIMD_WIDTH * span) { AVX_Data grad_4[span]; - simd_load(grad_4, grads + (i >> rshft), half_precision); + simd_load(grad_4, grads + i); AVX_Data momentum_4[span]; - simd_load(momentum_4, _exp_avg + i, false); + simd_load(momentum_4, _exp_avg + i); AVX_Data param_4[span]; - simd_load(param_4, _params + (i >> rshft), half_precision); + simd_load(param_4, _params + i); AVX_Data tmp_4[span]; @@ -201,37 +139,9 @@ void Lion_Optimizer::Step_AVX(size_t* rounded_size, simd_mul(momentum_4, momentum_4, betta2_4); simd_fma(momentum_4, grad_4, betta2_minus1_4, momentum_4); - simd_store(_params + (i >> rshft), param_4, half_precision); -#if defined(__ENABLE_CUDA__) or defined(__ENABLE_CANN__) - if (dev_params) { - simd_store(_doubled_buffer[_buf_index] + (i - t), param_4, half_precision); - } -#endif - simd_store(_exp_avg + i, momentum_4, false); - } -#if defined(__ENABLE_CUDA__) - if (dev_params) { - if (half_precision) - launch_param_update_half( - _doubled_buffer[_buf_index], dev_params + t, copy_size, _streams[_buf_index]); - else - launch_param_update( - _doubled_buffer[_buf_index], dev_params + t, copy_size, _streams[_buf_index]); - - _buf_index = !_buf_index; + simd_store(_params + i, param_4); + simd_store(_exp_avg + i, momentum_4); } -#elif defined(__ENABLE_CANN__) - if (dev_params) { - size_t memcpy_size = copy_size * sizeof(_doubled_buffer[_buf_index][0]); - if (half_precision) memoryCopySize /= 2; - aclrtMemcpy(dev_params + t, - memcpy_size, - _doubled_buffer[_buf_index], - memcpy_size, - aclrtMemcpyKind::ACL_MEMCPY_HOST_TO_DEVICE); - - _buf_index = !_buf_index; -#endif } *rounded_size = new_rounded_size; } @@ -254,15 +164,4 @@ int ds_lion_step(int optimizer_id, torch::Tensor& grads, torch::Tensor& exp_avg); -int ds_lion_step_plus_copy(int optimizer_id, - size_t step, - float lr, - float beta1, - float beta2, - float weight_decay, - torch::Tensor& params, - torch::Tensor& grads, - torch::Tensor& exp_avg, - torch::Tensor& gpu_params); - int destroy_lion_optimizer(int optimizer_id); diff --git a/csrc/includes/cublas_wrappers.h b/csrc/includes/cublas_wrappers.h index b57ff79923fc..2721fb990c7e 100644 --- a/csrc/includes/cublas_wrappers.h +++ b/csrc/includes/cublas_wrappers.h @@ -17,6 +17,7 @@ #include #endif #include +#include int cublas_gemm_ex(cublasHandle_t handle, cublasOperation_t transa, @@ -29,7 +30,9 @@ int cublas_gemm_ex(cublasHandle_t handle, const float* A, const float* B, float* C, -#ifdef __HIP_PLATFORM_AMD__ +// TODO HIP: Remove backward compatibility for torch<=2.0 in future +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) rocblas_gemm_algo algo = rocblas_gemm_algo_standard); #else cublasGemmAlgo_t algo = CUBLAS_GEMM_DEFAULT); @@ -46,7 +49,8 @@ int cublas_gemm_ex(cublasHandle_t handle, const __half* A, const __half* B, __half* C, -#ifdef __HIP_PLATFORM_AMD__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) rocblas_gemm_algo algo = rocblas_gemm_algo_standard); #else cublasGemmAlgo_t algo = CUBLAS_GEMM_DEFAULT_TENSOR_OP); @@ -67,7 +71,8 @@ int cublas_strided_batched_gemm(cublasHandle_t handle, int stride_B, int stride_C, int batch, -#ifdef __HIP_PLATFORM_AMD__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) rocblas_gemm_algo algo = rocblas_gemm_algo_standard); #else cublasGemmAlgo_t algo = CUBLAS_GEMM_DEFAULT); @@ -88,7 +93,8 @@ int cublas_strided_batched_gemm(cublasHandle_t handle, int stride_B, int stride_C, int batch, -#ifdef __HIP_PLATFORM_AMD__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) rocblas_gemm_algo algo = rocblas_gemm_algo_standard); #else cublasGemmAlgo_t algo = CUBLAS_GEMM_DEFAULT_TENSOR_OP); diff --git a/csrc/includes/custom_cuda_layers.h b/csrc/includes/custom_cuda_layers.h index 265eb7b12444..21f19749d4cf 100644 --- a/csrc/includes/custom_cuda_layers.h +++ b/csrc/includes/custom_cuda_layers.h @@ -272,9 +272,6 @@ void launch_fuse_transpose_bias_kernel(const T* inp, int cols, cudaStream_t stream); -void launch_param_update(const float* input, __half* output, int size, cudaStream_t stream); -void launch_param_update_half(const float* input, __half* output, int size, cudaStream_t stream); - void launch_token_sort(int32_t* indices, int layers, int batch_size, diff --git a/csrc/includes/ds_kernel_utils.h b/csrc/includes/ds_kernel_utils.h index 8e4888109fcd..f8b16ee6a315 100644 --- a/csrc/includes/ds_kernel_utils.h +++ b/csrc/includes/ds_kernel_utils.h @@ -23,7 +23,7 @@ used throughout the codebase. #ifdef __HIP_PLATFORM_AMD__ // constexpr variant of warpSize for templating -constexpr int hw_warp_size = 64; +constexpr int hw_warp_size = ROCM_WAVEFRONT_SIZE; #define HALF_PRECISION_AVAILABLE = 1 #include #include diff --git a/csrc/includes/feed_forward.h b/csrc/includes/feed_forward.h index 46e3ba748d52..d2056403d265 100644 --- a/csrc/includes/feed_forward.h +++ b/csrc/includes/feed_forward.h @@ -48,7 +48,9 @@ class FeedForward { weights, input_ptr, out, -#ifdef __HIP_PLATFORM_AMD__ +// TODO HIP: Remove backward compatibility for torch<=2.0 in future +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) rocblas_gemm_algo(config_.gemm_algos[0])); #else cublasGemmAlgo_t(config_.gemm_algos[0])); @@ -77,7 +79,8 @@ class FeedForward { input_ptr, out_grad, weights_grad, -#ifdef __HIP_PLATFORM_AMD__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) rocblas_gemm_algo(config_.gemm_algos[1])); #else cublasGemmAlgo_t(config_.gemm_algos[1])); @@ -94,7 +97,8 @@ class FeedForward { weights, out_grad, inp_grad_out, -#ifdef __HIP_PLATFORM_AMD__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) rocblas_gemm_algo(config_.gemm_algos[2])); #else cublasGemmAlgo_t(config_.gemm_algos[2])); diff --git a/csrc/includes/gemm_test.h b/csrc/includes/gemm_test.h index 278515174523..de5b55cd3df1 100644 --- a/csrc/includes/gemm_test.h +++ b/csrc/includes/gemm_test.h @@ -67,7 +67,9 @@ class GemmTest { B, A, C, -#ifdef __HIP_PLATFORM_AMD__ +// TODO HIP: Remove backward compatibility for torch<=2.0 in future +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) static_cast(algo)); #else static_cast(algo)); @@ -86,7 +88,8 @@ class GemmTest { A, C, B, -#ifdef __HIP_PLATFORM_AMD__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) static_cast(algo)); #else static_cast(algo)); @@ -105,7 +108,8 @@ class GemmTest { B, C, A, -#ifdef __HIP_PLATFORM_AMD__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) static_cast(algo)); #else static_cast(algo)); @@ -121,8 +125,11 @@ class GemmTest { float fast_latency = (std::numeric_limits::max)(); int fast_algo = 0; -#ifdef __HIP_PLATFORM_AMD__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) for (int algo = (int)rocblas_gemm_algo_standard; algo <= (int)rocblas_gemm_algo_standard; +#elif defined(__HIP_PLATFORM_AMD__) + for (int algo = (int)HIPBLAS_GEMM_DEFAULT; algo <= (int)HIPBLAS_GEMM_DEFAULT; #else for (int algo = (int)CUBLAS_GEMM_DEFAULT_TENSOR_OP; algo <= (int)CUBLAS_GEMM_ALGO15_TENSOR_OP; @@ -211,7 +218,8 @@ class StridedGemmTest { stride_b, stride_c, bsz, -#ifdef __HIP_PLATFORM_AMD__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) static_cast(algo)); #else static_cast(algo)); @@ -245,7 +253,8 @@ class StridedGemmTest { stride_b, stride_c, bsz, -#ifdef __HIP_PLATFORM_AMD__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) static_cast(algo)); #else static_cast(algo)); @@ -276,7 +285,8 @@ class StridedGemmTest { stride_b, stride_c, bsz, -#ifdef __HIP_PLATFORM_AMD__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) static_cast(algo)); #else static_cast(algo)); @@ -292,11 +302,17 @@ class StridedGemmTest { float fast_latency = (std::numeric_limits::max)(); int fast_algo = 0; -#ifdef __HIP_PLATFORM_AMD__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) for (int algo = (int)rocblas_gemm_algo_standard; algo <= (int)rocblas_gemm_algo_standard; +#else +#ifdef __HIP_PLATFORM_AMD__ + for (int algo = (int)CUBLAS_GEMM_DEFAULT_TENSOR_OP; + algo <= (int)CUBLAS_GEMM_DEFAULT_TENSOR_OP; #else for (int algo = (int)CUBLAS_GEMM_DEFAULT_TENSOR_OP; algo <= (int)CUBLAS_GEMM_ALGO15_TENSOR_OP; +#endif #endif algo++) { int warm_up = 5; diff --git a/csrc/includes/memory_access_utils.h b/csrc/includes/memory_access_utils.h index 6789714d27c7..cb990b75bbe8 100644 --- a/csrc/includes/memory_access_utils.h +++ b/csrc/includes/memory_access_utils.h @@ -868,6 +868,35 @@ __device__ __forceinline__ void store_global<4, StorePolicy::CacheStreaming>(voi #endif } +template <> +__device__ __forceinline__ void store_global<2>(void* dst, const void* src) +{ + const int16_t* data = reinterpret_cast(src); + + int16_t* dst_cast = reinterpret_cast(dst); + dst_cast[0] = data[0]; +} + +template <> +__device__ __forceinline__ void store_global<2, StorePolicy::CacheGlobal>(void* dst, + const void* src) +{ + const int16_t* data = reinterpret_cast(src); + + int16_t* dst_cast = reinterpret_cast(dst); + dst_cast[0] = data[0]; +} + +template <> +__device__ __forceinline__ void store_global<2, StorePolicy::CacheStreaming>(void* dst, + const void* src) +{ + const int16_t* data = reinterpret_cast(src); + + int16_t* dst_cast = reinterpret_cast(dst); + dst_cast[0] = data[0]; +} + /////////// Store Shared /////////// template <> diff --git a/csrc/includes/quantization.h b/csrc/includes/quantization.h index 45828832d8d2..5bdc96061a31 100644 --- a/csrc/includes/quantization.h +++ b/csrc/includes/quantization.h @@ -52,6 +52,36 @@ void launch_swizzled_quant(int8_t* q_data, int devices_per_node, cudaStream_t stream); +void launch_loco_swizzled_quant(int8_t* quantized_data, + float* quantized_scales, + const __half* uncompressed_data, + __half* error_feedback, + const float err_beta, + int num_bits, + quantize::Type quant_type, + int groups, + int elems_per_group, + int pipelining, + int nodes, + int devices_per_node, + cudaStream_t stream); + +void launch_loco_dequant_reduce(int8_t* reduced_data, + float* reduced_scales, + const int8_t* input_data, + const float* input_scales, + int num_gpus, + int num_bits, + quantize::Type quant_type, + int out_groups, + int elems_per_out_group, + int elems_per_in_tensor, + int groups_per_in_tensor, + int elems_per_in_group, + __half2* error_feedback, + const float err_beta, + cudaStream_t stream); + void launch_dequant_reduce(int8_t* reduced_data, float* reduced_scales, const int8_t* input_data, diff --git a/csrc/includes/quantization_utils.h b/csrc/includes/quantization_utils.h index 26db86ec1e0b..61630d0aae57 100644 --- a/csrc/includes/quantization_utils.h +++ b/csrc/includes/quantization_utils.h @@ -24,6 +24,7 @@ constexpr int max_threads = 1024; Class to hold the quantization parameters for a given tensor. Holds the implementation of the quantization operation. */ + template class Params { public: diff --git a/csrc/includes/reduction_utils.h b/csrc/includes/reduction_utils.h index eb8efab77ac1..eb9afb66a894 100644 --- a/csrc/includes/reduction_utils.h +++ b/csrc/includes/reduction_utils.h @@ -159,6 +159,12 @@ DS_D_INLINE float element(const float lhs, const float rhs) return lhs + rhs; } +template <> +DS_D_INLINE double element(const double lhs, const double rhs) +{ + return lhs + rhs; +} + template <> DS_D_INLINE float element(const float lhs, const float rhs) { @@ -189,6 +195,19 @@ DS_D_INLINE __half element(const __half lhs, const __half rhs) #endif } +#ifdef BF16_AVAILABLE +template <> +DS_D_INLINE __nv_bfloat16 element(const __nv_bfloat16 lhs, const __nv_bfloat16 rhs) +{ +#if __CUDA_ARCH__ >= 800 + // Intrinsic limited to Ampere + newer + return __hmax(lhs, rhs); +#else + return (lhs > rhs) ? lhs : rhs; +#endif +} +#endif + template <> DS_D_INLINE __half element(const __half lhs, const __half rhs) { @@ -220,6 +239,21 @@ DS_D_INLINE __half2 element(const __half2 lhs, const __half2 rhs) #endif } +#ifdef BF16_AVAILABLE +template <> +DS_D_INLINE __nv_bfloat162 element(const __nv_bfloat162 lhs, const __nv_bfloat162 rhs) +{ +#if __CUDA_ARCH__ >= 800 + return __hmax2(lhs, rhs); +#else + __nv_bfloat162 ret_val; + ret_val.x = (lhs.x > rhs.x) ? lhs.x : rhs.x; + ret_val.y = (lhs.y > rhs.y) ? lhs.y : rhs.y; + return ret_val; +#endif +} +#endif + template <> DS_D_INLINE __half2 element(const __half2 lhs, const __half2 rhs) { @@ -295,6 +329,11 @@ DS_D_INLINE float init() { return 0.0f; } +template <> +DS_D_INLINE double init() +{ + return (double)0.0f; +} template <> DS_D_INLINE float init() @@ -331,6 +370,15 @@ DS_D_INLINE __half init() return __half(neg_inf); } +#ifdef BF16_AVAILABLE +template <> +DS_D_INLINE __nv_bfloat16 init() +{ + constexpr __nv_bfloat16_raw neg_inf = {0xFF80}; + return __nv_bfloat16(neg_inf); +} +#endif + template <> DS_D_INLINE __half2 init() { diff --git a/csrc/includes/simd.h b/csrc/includes/simd.h index f77568be7835..a205026ec7c1 100644 --- a/csrc/includes/simd.h +++ b/csrc/includes/simd.h @@ -12,8 +12,22 @@ #define TILE (128 * 1024 * 1024) #if defined(__AVX512__) or defined(__AVX256__) +#include -#define ROUND_DOWN(size, step) ((size) & ~((step)-1)) +template +inline T readAs(const void* src) +{ + T res; + std::memcpy(&res, src, sizeof(T)); + return res; +} +template +inline void writeAs(void* dst, const T& val) +{ + std::memcpy(dst, &val, sizeof(T)); +} + +#define ROUND_DOWN(size, step) ((size) & ~((step) - 1)) #if defined(__AVX512__) #define SIMD_STORE(a, d) _mm512_storeu_ps(a, d) @@ -30,11 +44,52 @@ #define SIMD_XOR(x, y) _mm512_xor_ps(x, y) #define SIMD_WIDTH 16 -#define SIMD_LOAD2(x, h) \ - ((h) ? _mm512_cvtph_ps(_mm256_castps_si256(_mm256_loadu_ps(x))) : _mm512_loadu_ps(x)) -#define SIMD_STORE2(x, d, h) \ - ((h) ? _mm256_store_ps(x, _mm256_castsi256_ps(_mm512_cvtps_ph(d, _MM_FROUND_TO_NEAREST_INT))) \ - : _mm512_storeu_ps(x, d)) +static __m512 load_16_bf16_as_f32(const void* data) +{ + __m256i a = readAs<__m256i>(data); // use memcpy to avoid aliasing + __m512i b = _mm512_cvtepu16_epi32(a); // convert 8 u16 to 8 u32 + __m512i c = _mm512_slli_epi32(b, 16); // logical shift left of all u32 by + // 16 bits (representing bf16->f32) + return readAs<__m512>(&c); // use memcpy to avoid aliasing +} + +static void store_16_f32_as_bf16_nearest(__m512 v, void* data) +{ + __m512i u32 = readAs<__m512i>(&v); + + // flow assuming non-nan: + + // uint32_t rounding_bias = ((U32 >> 16) & 1) + UINT32_C(0x7FFF); + __m512i b = _mm512_srli_epi32(u32, 16); + __m512i lsb_mask = _mm512_set1_epi32(0x00000001); + __m512i c = _mm512_and_si512(b, lsb_mask); + __m512i bias_constant = _mm512_set1_epi32(0x00007fff); + __m512i rounding_bias = _mm512_add_epi32(c, bias_constant); + + // uint16_t res = static_cast((U32 + rounding_bias) >> 16); + __m512i d = _mm512_add_epi32(u32, rounding_bias); + __m512i e = _mm512_srli_epi32(d, 16); + __m256i non_nan_res = _mm512_cvtusepi32_epi16(e); + + // handle nan (exp is all 1s and mantissa != 0) + // if ((x & 0x7fffffffU) > 0x7f800000U) + __m512i mask_out_sign = _mm512_set1_epi32(0x7fffffff); + __m512i non_sign_bits = _mm512_and_si512(u32, mask_out_sign); + __m512i nan_threshold = _mm512_set1_epi32(0x7f800000); + __mmask16 nan_mask = _mm512_cmp_epi32_mask(non_sign_bits, nan_threshold, _MM_CMPINT_GT); + + // mix in results with nans as needed + __m256i nans = _mm256_set1_epi16(0x7fc0); + __m256i res = _mm256_mask_mov_epi16(non_nan_res, nan_mask, nans); + + writeAs(data, res); +} +#define SIMD_LOAD_BF16(x) load_16_bf16_as_f32(x) +#define SIMD_STORE_BF16(x, d) store_16_f32_as_bf16_nearest(d, x) + +#define SIMD_LOAD_FP16(x) _mm512_cvtph_ps(_mm256_castps_si256(_mm256_loadu_ps(x))) +#define SIMD_STORE_FP16(x, d) \ + _mm256_store_ps(x, _mm256_castsi256_ps(_mm512_cvtps_ph(d, _MM_FROUND_TO_NEAREST_INT))) #define INTV __m256i #elif defined(__AVX256__) @@ -52,11 +107,11 @@ #define SIMD_XOR(x, y) _mm256_xor_ps(x, y) #define SIMD_WIDTH 8 -#define SIMD_LOAD2(x, h) \ - ((h) ? _mm256_cvtph_ps(_mm_loadu_si128((const __m128i*)x)) : _mm256_loadu_ps(x)) -#define SIMD_STORE2(x, d, h) \ - ((h) ? _mm_store_ps(x, _mm_castsi128_ps(_mm256_cvtps_ph(d, _MM_FROUND_TO_NEAREST_INT))) \ - : _mm256_storeu_ps(x, d)) +#define SIMD_LOAD_BF16(x) static_assert(false && "AVX256 does not support BFloat16") +#define SIMD_STORE_BF16(x, d) static_assert(false && "AVX256 does not support BFloat16") +#define SIMD_LOAD_FP16(x) _mm256_cvtph_ps(_mm_loadu_si128((const __m128i*)x)) +#define SIMD_STORE_FP16(x, d) \ + _mm_store_ps(x, _mm_castsi128_ps(_mm256_cvtps_ph(d, _MM_FROUND_TO_NEAREST_INT))) #define INTV __m128i #endif @@ -70,20 +125,66 @@ union AVX_Data { // float data_f[16]; }; -template -inline void simd_store(float* dst, AVX_Data* src, bool half_precision) +template +inline typename std::enable_if_t, void> simd_store(T* dst, + AVX_Data* src) { - size_t width = (half_precision ? SIMD_WIDTH / 2 : SIMD_WIDTH); + size_t width = SIMD_WIDTH; #pragma unroll - for (size_t i = 0; i < span; ++i) { SIMD_STORE2(dst + width * i, src[i].data, half_precision); } + for (size_t i = 0; i < span; ++i) { SIMD_STORE_FP16((float*)(dst + width * i), src[i].data); } } -template -inline void simd_load(AVX_Data* dst, float* src, bool half_precision) + +template +inline typename std::enable_if_t, void> simd_store(T* dst, + AVX_Data* src) { - size_t width = (half_precision ? 1 : SIMD_WIDTH); +#ifdef __AVX512__ + size_t width = SIMD_WIDTH; #pragma unroll - for (size_t i = 0; i < span; ++i) { dst[i].data = SIMD_LOAD2(src + width * i, half_precision); } + for (size_t i = 0; i < span; ++i) { SIMD_STORE_BF16((float*)(dst + width * i), src[i].data); } +#else + throw std::runtime_error("AVX512 required for BFloat16"); +#endif +} + +template +inline typename std::enable_if_t, void> simd_store(T* dst, AVX_Data* src) +{ + size_t width = SIMD_WIDTH; +#pragma unroll + for (size_t i = 0; i < span; ++i) { SIMD_STORE(dst + width * i, src[i].data); } } + +template +inline typename std::enable_if_t, void> simd_load(AVX_Data* dst, + T* src) +{ + size_t width = SIMD_WIDTH; +#pragma unroll + for (size_t i = 0; i < span; ++i) { dst[i].data = SIMD_LOAD_FP16((float*)(src + width * i)); } +} + +template +inline typename std::enable_if_t, void> simd_load(AVX_Data* dst, + T* src) +{ +#ifdef __AVX512__ + size_t width = SIMD_WIDTH; +#pragma unroll + for (size_t i = 0; i < span; ++i) { dst[i].data = SIMD_LOAD_BF16((float*)(src + width * i)); } +#else + throw std::runtime_error("AVX512 required for BFloat16"); +#endif +} + +template +inline typename std::enable_if_t, void> simd_load(AVX_Data* dst, T* src) +{ + size_t width = SIMD_WIDTH; +#pragma unroll + for (size_t i = 0; i < span; ++i) { dst[i].data = SIMD_LOAD(src + width * i); } +} + template inline void simd_fma(AVX_Data* dst, AVX_Data* src_m_l, AVX_Data src_m_r, AVX_Data* src_a) { diff --git a/csrc/includes/strided_batch_gemm.h b/csrc/includes/strided_batch_gemm.h index 86d1e3dea11a..9767fcf589b8 100644 --- a/csrc/includes/strided_batch_gemm.h +++ b/csrc/includes/strided_batch_gemm.h @@ -77,7 +77,9 @@ class StridedBatchGemm { stride_b, stride_c, bsz, -#ifdef __HIP_PLATFORM_AMD__ +// TODO HIP: Remove backward compatibility for torch<=2.0 in future +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) rocblas_gemm_algo(_config.gemm_algos[0])); #else cublasGemmAlgo_t(_config.gemm_algos[0])); @@ -105,7 +107,8 @@ class StridedBatchGemm { stride_b, stride_c, _config.batch_size, -#ifdef __HIP_PLATFORM_AMD__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) rocblas_gemm_algo(_config.gemm_algos[0])); #else cublasGemmAlgo_t(_config.gemm_algos[0])); @@ -149,7 +152,8 @@ class StridedBatchGemm { stride_b, stride_c, bsz, -#ifdef __HIP_PLATFORM_AMD__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) rocblas_gemm_algo(_config.gemm_algos[1])); #else cublasGemmAlgo_t(_config.gemm_algos[1])); @@ -178,7 +182,8 @@ class StridedBatchGemm { stride_b, stride_c, bsz, -#ifdef __HIP_PLATFORM_AMD__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) rocblas_gemm_algo(_config.gemm_algos[2])); #else cublasGemmAlgo_t(_config.gemm_algos[2])); diff --git a/csrc/lion/cpu_lion.cpp b/csrc/lion/cpu_lion.cpp index a0562eac9c4a..c5cf3e9e9235 100644 --- a/csrc/lion/cpu_lion.cpp +++ b/csrc/lion/cpu_lion.cpp @@ -8,9 +8,6 @@ PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) { m.def("lion_update", &ds_lion_step, "DeepSpeed CPU Lion update (C++)"); - m.def("lion_update_copy", - &ds_lion_step_plus_copy, - "DeepSpeed CPU Lion update and param copy (C++)"); m.def("create_lion", &create_lion_optimizer, "DeepSpeed CPU Lion (C++)"); m.def("destroy_lion", &destroy_lion_optimizer, "DeepSpeed CPU Lion destroy (C++)"); } diff --git a/csrc/lion/cpu_lion_impl.cpp b/csrc/lion/cpu_lion_impl.cpp index 28314cf5b6e1..6a98162314f9 100644 --- a/csrc/lion/cpu_lion_impl.cpp +++ b/csrc/lion/cpu_lion_impl.cpp @@ -6,34 +6,28 @@ #include #include #include +#include #include +#include #include #include #include #include "cpu_lion.h" -#if defined(__ENABLE_CUDA__) -#include -#include "cublas_v2.h" -#include "cuda.h" -#include "curand.h" -#include "custom_cuda_layers.h" -#endif - +using namespace std::string_literals; static std::unordered_map> s_optimizers; // C++ interface -void Lion_Optimizer::Step_1(float* _params, - float* grads, - float* _exp_avg, - size_t _param_size, - ds_half_precision_t* dev_params, - bool half_precision) +template +void Lion_Optimizer::Step_1(ds_params_precision_t* _params, + ds_params_precision_t* grads, + ds_state_precision_t* _exp_avg, + size_t _param_size) { size_t rounded_size = 0; #if defined(__AVX512__) or defined(__AVX256__) - Step_AVX<1>(&rounded_size, _params, grads, _exp_avg, _param_size, dev_params, half_precision); + Step_AVX<1>(&rounded_size, _params, grads, _exp_avg, _param_size); #endif if (_param_size > rounded_size) { float betta1_minus1 = 1 - _betta1; @@ -41,26 +35,15 @@ void Lion_Optimizer::Step_1(float* _params, float alpha = _alpha; float after_decay = 1 - alpha * _weight_decay; - ds_half_precision_t* grads_cast_h; - ds_half_precision_t* params_cast_h; - if (half_precision) { - grads_cast_h = reinterpret_cast(grads); - params_cast_h = reinterpret_cast(_params); - } for (size_t t = rounded_size; t < _param_size; t += TILE) { size_t copy_size = TILE; if ((t + TILE) > _param_size) copy_size = _param_size - t; size_t offset = copy_size + t; -#if defined(__ENABLE_CUDA__) - if ((t / TILE) >= 2) { cudaStreamSynchronize(_streams[_buf_index]); } -#elif defined(__ENABLE_CANN__) - if ((t / TILE) >= 2) { aclrtSynchronizeStream(_streams[_buf_index].stream()); } -#endif #pragma omp parallel for for (size_t k = t; k < offset; k++) { - float grad = half_precision ? (float)grads_cast_h[k] : grads[k]; - float param = half_precision ? (float)params_cast_h[k] : _params[k]; + float grad = (float)grads[k]; + float param = (float)_params[k]; float momentum = _exp_avg[k]; float tmp = momentum * _betta1; tmp = grad * betta1_minus1 + tmp; @@ -74,56 +57,28 @@ void Lion_Optimizer::Step_1(float* _params, } momentum = momentum * _betta2; momentum = grad * betta2_minus1 + momentum; -#if defined(__ENABLE_CUDA__) or defined(__ENABLE_CANN__) - if (dev_params) _doubled_buffer[_buf_index][k - t] = param; -#endif - if (half_precision) - params_cast_h[k] = (ds_half_precision_t)param; - else - _params[k] = param; + _params[k] = param; _exp_avg[k] = momentum; } -#if defined(__ENABLE_CUDA__) - if (dev_params) { - launch_param_update( - _doubled_buffer[_buf_index], dev_params + t, (copy_size), _streams[_buf_index]); - - _buf_index = !_buf_index; - } -#elif defined(__ENABLE_CANN__) - if (dev_params) { - size_t memcpy_size = copy_size * sizeof(_doubled_buffer[_buf_index][0]); - aclrtMemcpy(dev_params + t, - memcpy_size, - _doubled_buffer[_buf_index], - memcpy_size, - aclrtMemcpyKind::ACL_MEMCPY_HOST_TO_DEVICE); - - _buf_index = !_buf_index; - } -#endif } } } -void Lion_Optimizer::Step_4(float* _params, - float* grads, - float* _exp_avg, - size_t _param_size, - ds_half_precision_t* dev_params, - bool half_precision) +template +void Lion_Optimizer::Step_4(ds_params_precision_t* _params, + ds_params_precision_t* grads, + ds_state_precision_t* _exp_avg, + size_t _param_size) { size_t rounded_size = 0; #if defined(__AVX512__) or defined(__AVX256__) - Step_AVX<4>(&rounded_size, _params, grads, _exp_avg, _param_size, dev_params, half_precision); + Step_AVX<4>(&rounded_size, _params, grads, _exp_avg, _param_size); #endif if (_param_size > rounded_size) Step_1((_params + rounded_size), (grads + rounded_size), (_exp_avg + rounded_size), - (_param_size - rounded_size), - (dev_params != nullptr ? (dev_params + rounded_size) : dev_params), - half_precision); + (_param_size - rounded_size)); } int create_lion_optimizer(int optimizer_id, @@ -162,24 +117,76 @@ int create_lion_optimizer(int optimizer_id, return 0; } -void Lion_Optimizer::Step_8(float* _params, - float* grads, - float* _exp_avg, - size_t _param_size, - ds_half_precision_t* dev_params, - bool half_precision) +template +void Lion_Optimizer::Step_8(ds_params_precision_t* _params, + ds_params_precision_t* grads, + ds_state_precision_t* _exp_avg, + size_t _param_size) { size_t rounded_size = 0; #if defined(__AVX512__) or defined(__AVX256__) - Step_AVX<8>(&rounded_size, _params, grads, _exp_avg, _param_size, dev_params, half_precision); + Step_AVX<8>(&rounded_size, _params, grads, _exp_avg, _param_size); #endif if (_param_size > rounded_size) Step_4((_params + rounded_size), (grads + rounded_size), (_exp_avg + rounded_size), - (_param_size - rounded_size), - (dev_params != nullptr ? (dev_params + rounded_size) : dev_params), - half_precision); + (_param_size - rounded_size)); +} + +template +void step_invoker(std::shared_ptr opt, + void* _params, + void* grads, + void* _exp_avg, + size_t _param_size) +{ + opt->Step_8((ds_params_precision_t*)(_params), + (ds_params_precision_t*)(grads), + (ds_state_precision_t*)(_exp_avg), + _param_size); +} + +std::map, + std::function, void*, void*, void*, size_t)>> + invokers; + +// Fill map with template functions for each type +template +void create_invoker() +{ + invokers[std::tuple(c10::CppTypeToScalarType(), + c10::CppTypeToScalarType())] = + step_invoker; +} +struct InvokerInitializer { + InvokerInitializer() + { + create_invoker(); + create_invoker(); + create_invoker(); + create_invoker(); + create_invoker(); + } +} _invoker_initializer; + +void invoke(std::shared_ptr opt, + torch::Tensor& params, + torch::Tensor& grads, + torch::Tensor& exp_avg, + size_t param_size) +{ + c10::ScalarType params_type = at::typeMetaToScalarType(params.options().dtype()); + c10::ScalarType state_type = at::typeMetaToScalarType(exp_avg.options().dtype()); + + auto it = invokers.find(std::tuple(params_type, state_type)); + if (it == invokers.end()) { + throw std::runtime_error("Lion optimizer with param type "s + c10::toString(params_type) + + " and state type "s + c10::toString(state_type) + + " is not supported on current hardware"s); + } + + it->second(opt, params.data_ptr(), grads.data_ptr(), exp_avg.data_ptr(), param_size); } int ds_lion_step(int optimizer_id, @@ -196,67 +203,13 @@ int ds_lion_step(int optimizer_id, auto grads_c = grads.contiguous(); auto exp_avg_c = exp_avg.contiguous(); - // assert(params.options().dtype() == grads.options().dtype()); - - float* params_ptr = (float*)params_c.data_ptr(); - float* grads_ptr = (float*)grads_c.data_ptr(); - float* exp_avg_ptr = (float*)exp_avg_c.data_ptr(); - std::shared_ptr opt = std::static_pointer_cast(s_optimizers[optimizer_id]); opt->IncrementStep(step, beta1, beta2); opt->update_state(lr, weight_decay); - opt->Step_8(params_ptr, - grads_ptr, - exp_avg_ptr, - params_c.numel(), - nullptr, - (params.options().dtype() == at::kHalf)); + invoke(opt, params_c, grads_c, exp_avg_c, params_c.numel()); -#if defined(__ENABLE_CUDA__) or defined(__ENABLE_CANN__) - opt->SynchronizeStreams(); -#endif - return 0; -} - -int ds_lion_step_plus_copy(int optimizer_id, - size_t step, - float lr, - float beta1, - float beta2, - float weight_decay, - torch::Tensor& params, - torch::Tensor& grads, - torch::Tensor& exp_avg, - torch::Tensor& gpu_params) -{ -#if defined(__ENABLE_CUDA__) or defined(__ENABLE_CANN__) - auto params_c = params.contiguous(); - auto gpu_params_c = gpu_params.contiguous(); - auto exp_avg_c = exp_avg.contiguous(); - auto grads_c = grads.contiguous(); - - float* params_ptr = (float*)params_c.data_ptr(); - float* grads_ptr = (float*)grads_c.data_ptr(); - ds_half_precision_t* gpu_params_ptr = (ds_half_precision_t*)gpu_params_c.data_ptr(); - float* exp_avg_ptr = (float*)exp_avg_c.data_ptr(); - - std::shared_ptr opt = - std::static_pointer_cast(s_optimizers[optimizer_id]); - opt->IncrementStep(step, beta1, beta2); - opt->update_state(lr, weight_decay); - opt->Step_8(params_ptr, - grads_ptr, - exp_avg_ptr, - params_c.numel(), - gpu_params_ptr, - (params.options().dtype() == at::kHalf)); - - opt->SynchronizeStreams(); -#else - assert(false); -#endif return 0; } diff --git a/csrc/quantization/pt_binding.cpp b/csrc/quantization/pt_binding.cpp index a4210897092d..b48eaacd0881 100644 --- a/csrc/quantization/pt_binding.cpp +++ b/csrc/quantization/pt_binding.cpp @@ -176,6 +176,53 @@ at::Tensor dequantize_int8_to_half_experimental(at::Tensor& data_in, return output; } +std::vector ds_loco_swizzle_quant(at::Tensor& input_vals, + at::Tensor& error_feedback, + float err_beta, + int groups, + int num_bits, + quantize::Type quant_type, + int pipeline_size, + int nodes, + int devices_per_node) +{ + auto scales_options = at::TensorOptions() + .dtype(at::kFloat) + .layout(at::kStrided) + .device(at::kCUDA) + .requires_grad(false); + const int scales_elems = (quantize::requires_offset(quant_type)) ? 2 : 1; + auto scales = torch::empty({groups, scales_elems}, scales_options); + + auto output_options = at::TensorOptions() + .dtype(at::kChar) + .layout(at::kStrided) + .device(at::kCUDA) + .requires_grad(false); + + const int quantization_scalar = 8 / num_bits; + const int compressed_vals = at::numel(input_vals) / quantization_scalar; + + auto output = torch::empty({compressed_vals}, output_options); + const int elems_per_group = at::numel(input_vals) / groups; + + launch_loco_swizzled_quant(reinterpret_cast(output.data_ptr()), + reinterpret_cast(scales.data_ptr()), + reinterpret_cast(input_vals.data_ptr()), + reinterpret_cast<__half*>(error_feedback.data_ptr()), + err_beta, + num_bits, + quant_type, + groups, + elems_per_group, + pipeline_size, + nodes, + devices_per_node, + at::cuda::getCurrentCUDAStream()); + + return {output, scales}; +} + std::vector ds_swizzle_quant(at::Tensor& input_vals, int groups, int num_bits, @@ -241,7 +288,7 @@ std::vector quantized_reduction(at::Tensor& input_vals, .device(at::kCUDA) .requires_grad(false); - std::vector sz(input_vals.sizes().begin(), input_vals.sizes().end()); + std::vector sz(input_vals.sizes().begin(), input_vals.sizes().end()); sz[sz.size() - 1] = sz.back() / devices_per_node; // num of GPU per nodes const int elems_per_in_tensor = at::numel(input_vals) / devices_per_node; auto output = torch::empty(sz, output_options); @@ -265,6 +312,61 @@ std::vector quantized_reduction(at::Tensor& input_vals, return {output, scales}; } +std::vector loco_quantized_reduction(at::Tensor& input_vals, + at::Tensor& input_scales, + at::Tensor& error_feedback, + float err_beta, + int in_groups, + int out_groups, + int num_bits, + quantize::Type quant_type, + int devices_per_node) +{ + auto scales_options = at::TensorOptions() + .dtype(at::kFloat) + .layout(at::kStrided) + .device(at::kCUDA) + .requires_grad(false); + + const int scales_elems = (quantize::requires_offset(quant_type)) ? 2 : 1; + + auto scales = torch::empty({out_groups, scales_elems}, scales_options); + + auto output_options = at::TensorOptions() + .dtype(at::kChar) + .layout(at::kStrided) + .device(at::kCUDA) + .requires_grad(false); + + std::vector sz(input_vals.sizes().begin(), input_vals.sizes().end()); + sz[sz.size() - 1] = sz.back() / devices_per_node; + + const int elems_per_in_tensor = at::numel(input_vals) / devices_per_node; + + auto output = torch::empty(sz, output_options); + + const int elems_per_in_group = elems_per_in_tensor / (in_groups / devices_per_node); + const int elems_per_out_group = elems_per_in_tensor / out_groups; + + launch_loco_dequant_reduce((int8_t*)output.data_ptr(), + (float*)scales.data_ptr(), + (const int8_t*)input_vals.data_ptr(), + (const float*)input_scales.data_ptr(), + devices_per_node, + num_bits, + quant_type, + out_groups, + elems_per_out_group, + elems_per_in_tensor, + in_groups / devices_per_node, + elems_per_in_group, + (__half2*)error_feedback.data_ptr(), + err_beta, + at::cuda::getCurrentCUDAStream()); + + return {output, scales}; +} + PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) { m.def("ds_quantize_fp32", &ds_quantize, "DeepSpeed Quantize with fp32 (CUDA)"); @@ -295,4 +397,8 @@ PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) "Dequantize int8 to half (experimental)"); m.def("swizzle_quant", &ds_swizzle_quant); m.def("quantized_reduction", &quantized_reduction); + m.def("loco_swizzle_quant", &ds_loco_swizzle_quant, "LoCo Swizzled Quantization Kernel"); + m.def("loco_quantized_reduction", + &loco_quantized_reduction, + "LoCo Quantization and Reduction Kernel"); } diff --git a/csrc/quantization/quant_reduce.cu b/csrc/quantization/quant_reduce.cu index 26db1118c831..4100c5174b80 100644 --- a/csrc/quantization/quant_reduce.cu +++ b/csrc/quantization/quant_reduce.cu @@ -261,3 +261,297 @@ void launch_dequant_reduce(int8_t* reduced_data, } } } + +/* +Modified loco_dequant_reduce function that performs dequantization and reduction, +and incorporates error-feedback by updating the error_feedback tensor in-place. +*/ + +template +__global__ void __launch_bounds__(1024) loco_dequant_reduce(int8_t* reduced_data, + float* reduced_scales, + const int8_t* input_data, + const float* input_scales, + int elems_per_out_group, + int elems_per_in_tensor, + int groups_per_in_tensor, + int elems_per_in_group, + int num_tensors, + __half2* error_feedback, + const float err_beta) +{ + cg::thread_block tb = cg::this_thread_block(); + cg::thread_block_tile warp = cg::tiled_partition(tb); + + constexpr int mem_granularity = (numBits == 8) ? 8 : 4; + constexpr int elems_per_load = mem_granularity / sizeof(int8_t); + constexpr int storage_values = 16 / sizeof(__half2); + + const int block_offset = tb.group_index().x * elems_per_out_group; + const int elem_offset = tb.thread_index().x * elems_per_load; + const int base_offset = block_offset + elem_offset; + const int stride = tb.group_dim().x * elems_per_load; + + constexpr int scaling_factor = elems_per_load / storage_values; + const int block_offset_err = block_offset / scaling_factor; + const int elem_offset_err = tb.thread_index().x * storage_values; + const int base_offset_err = block_offset_err + elem_offset_err; + const int stride_err = tb.group_dim().x * storage_values; + + __half2 local_buffer[totalChunks * storage_values]; + __half2 err_buffer[totalChunks * storage_values]; + + quantize::GroupStats stats; + +#pragma unroll + for (int i = 0; i < totalChunks; i++) { + __half2* iteration_buffer = local_buffer + i * storage_values; + __half2* iter_err_buffer = err_buffer + i * storage_values; + +#pragma unroll + for (int j = 0; j < storage_values; j++) { + iteration_buffer[j] = reduce::init(); + } + + const int iter_offset = i * stride + base_offset; + const int iter_offset_err = i * stride_err + base_offset_err; + const int iter_scale_idx = iter_offset / elems_per_in_group; + bool do_loads = i * stride + elem_offset < elems_per_out_group; + + if (numTensors > 0) { +#pragma unroll + for (int j = 0; j < numTensors; j++) { + if (do_loads) { + int8_t load_buffer[elems_per_load]; + + mem_access::load_global( + load_buffer, input_data + j * elems_per_in_tensor + iter_offset); + + quantize::Params params( + input_scales + j * groups_per_in_tensor, iter_scale_idx); + + __half2 dequant_buffer[storage_values]; + dequantize::chunk(dequant_buffer, load_buffer, params); + +#pragma unroll + for (int k = 0; k < storage_values; k++) { + iteration_buffer[k] = + reduce::element(iteration_buffer[k], dequant_buffer[k]); + } + } + } + } else { +#pragma unroll 4 + for (int j = 0; j < num_tensors; j++) { + if (do_loads) { + int8_t load_buffer[elems_per_load]; + + mem_access::load_global( + load_buffer, input_data + j * elems_per_in_tensor + iter_offset); + + quantize::Params params( + input_scales + j * groups_per_in_tensor, iter_scale_idx); + + __half2 dequant_buffer[storage_values]; + dequantize::chunk(dequant_buffer, load_buffer, params); + +#pragma unroll + for (int k = 0; k < storage_values; k++) { + iteration_buffer[k] = + reduce::element(iteration_buffer[k], dequant_buffer[k]); + } + } + } + } + mem_access::load_global( + iter_err_buffer, error_feedback + iter_offset_err, do_loads); +#pragma unroll + for (int k = 0; k < storage_values; k++) { + iteration_buffer[k] = __hadd2(iteration_buffer[k], iter_err_buffer[k]); + stats.update(iteration_buffer[k]); + } + } + + auto params = stats.template get_params(tb, warp); + + // Initialize dequantization parameters based on params + auto de_params = params; + de_params.scale = 1.0f / params.scale; + if constexpr (quantType == quantize::Type::Asymmetric) { de_params.offset = params.offset; } + + if (tb.thread_index().x == 0) { params.store(reduced_scales, tb.group_index().x); } + +#pragma unroll + for (int i = 0; i < totalChunks; i++) { + const int iter_offset = i * stride + base_offset; + const int iter_offset_err = i * stride_err + base_offset_err; + __half2* iteration_buffer = local_buffer + i * storage_values; + __half2* iter_err_buffer = err_buffer + i * storage_values; + + if (i * stride + elem_offset < elems_per_out_group) { + // ----------- Begin Error-Feedback Modification ----------- + int8_t local_output[elems_per_load]; + quantize::_chunk(local_output, iteration_buffer, params); + mem_access::store_global(reduced_data + iter_offset, local_output); + + // Dequantize the quantized output to compute the dequantized value + __half2 dequant_buffer[storage_values]; + dequantize::chunk(dequant_buffer, local_output, de_params); + +#pragma unroll + for (int k = 0; k < storage_values; k++) { + // __half2 to float2 + float2 iter_buf_f = __half22float2(iteration_buffer[k]); + float2 dequant_buf_f = __half22float2(dequant_buffer[k]); + + // Update within float precision + float2 new_error_f; + new_error_f.x = iter_buf_f.x - dequant_buf_f.x; + new_error_f.y = iter_buf_f.y - dequant_buf_f.y; + + float2 iter_err_buf_f = __half22float2(iter_err_buffer[k]); + + iter_err_buf_f.x = err_beta * iter_err_buf_f.x + (1.0f - err_beta) * new_error_f.x; + iter_err_buf_f.y = err_beta * iter_err_buf_f.y + (1.0f - err_beta) * new_error_f.y; + + // float2 back to __half2 + iter_err_buffer[k] = __float22half2_rn(iter_err_buf_f); + } + mem_access::store_global(error_feedback + iter_offset_err, + iter_err_buffer); + } + } +} + +#define LAUNCH_LOCO_DEQUANT_REDUCE(num_chunks) \ + loco_dequant_reduce \ + <<>>(reduced_data, \ + reduced_scales, \ + input_data, \ + input_scales, \ + elems_per_out_group, \ + elems_per_in_tensor, \ + groups_per_in_tensor, \ + elems_per_in_group, \ + num_tensors, \ + error_feedback, \ + err_beta); + +template +void launch_loco_dequant_reduce_impl(int8_t* reduced_data, + float* reduced_scales, + const int8_t* input_data, + const float* input_scales, + int out_groups, + int elems_per_out_group, + int elems_per_in_tensor, + int groups_per_in_tensor, + int elems_per_in_group, + int num_tensors, + __half2* error_feedback, + const float err_beta, + cudaStream_t stream) +{ + constexpr int elems_per_thread = numBits; + const int one_step_threads = + next_pow2((elems_per_out_group + elems_per_thread - 1) / (elems_per_thread)); + const int threads = (one_step_threads < 1024) ? one_step_threads : 1024; + + dim3 block(threads); + dim3 grid(out_groups); + + const int elems_per_step = threads * elems_per_thread; + const int unroll_raw = (elems_per_out_group + elems_per_step - 1) / elems_per_step; + + const int unroll = (unroll_raw >= 4) ? pow2_round<1>(unroll_raw) : unroll_raw; + + if (unroll == 1) { + LAUNCH_LOCO_DEQUANT_REDUCE(1); + } else if (unroll == 2) { + LAUNCH_LOCO_DEQUANT_REDUCE(2); + } else if (unroll == 3) { + LAUNCH_LOCO_DEQUANT_REDUCE(3); + } else if (unroll == 4) { + LAUNCH_LOCO_DEQUANT_REDUCE(4); + } else if (unroll == 6) { + LAUNCH_LOCO_DEQUANT_REDUCE(6); + } else if (unroll == 8) { + LAUNCH_LOCO_DEQUANT_REDUCE(8); + } else if (unroll == 10) { + LAUNCH_LOCO_DEQUANT_REDUCE(10); + } else if (unroll == 12) { + LAUNCH_LOCO_DEQUANT_REDUCE(12); + } else { + assert(false); + } +} + +#define LAUNCH_LOCO_DEQUANT_REDUCE_IMPL(NUM_BITS, NUM_GPUS, QUANT_TYPE) \ + launch_loco_dequant_reduce_impl(reduced_data, \ + reduced_scales, \ + input_data, \ + input_scales, \ + out_groups, \ + elems_per_out_group, \ + elems_per_in_tensor, \ + groups_per_in_tensor, \ + elems_per_in_group, \ + num_gpus, \ + error_feedback, \ + err_beta, \ + stream); + +void launch_loco_dequant_reduce(int8_t* reduced_data, + float* reduced_scales, + const int8_t* input_data, + const float* input_scales, + int num_gpus, + int num_bits, + quantize::Type quant_type, + int out_groups, + int elems_per_out_group, + int elems_per_in_tensor, + int groups_per_in_tensor, + int elems_per_in_group, + __half2* error_feedback, + const float err_beta, + cudaStream_t stream) +{ + if (quant_type == quantize::Type::Symmetric) { + if (num_bits == 4) { + if (num_gpus == 8) { + LAUNCH_LOCO_DEQUANT_REDUCE_IMPL(4, 8, quantize::Type::Symmetric); + } else if (num_gpus == 16) { + LAUNCH_LOCO_DEQUANT_REDUCE_IMPL(4, 16, quantize::Type::Symmetric); + } else { + LAUNCH_LOCO_DEQUANT_REDUCE_IMPL(4, -1, quantize::Type::Symmetric); + } + } else if (num_bits == 8) { + if (num_gpus == 8) { + LAUNCH_LOCO_DEQUANT_REDUCE_IMPL(8, 8, quantize::Type::Symmetric); + } else if (num_gpus == 16) { + LAUNCH_LOCO_DEQUANT_REDUCE_IMPL(8, 16, quantize::Type::Symmetric); + } else { + LAUNCH_LOCO_DEQUANT_REDUCE_IMPL(8, -1, quantize::Type::Symmetric); + } + } + } else if (quant_type == quantize::Type::Asymmetric) { + if (num_bits == 4) { + if (num_gpus == 8) { + LAUNCH_LOCO_DEQUANT_REDUCE_IMPL(4, 8, quantize::Type::Asymmetric); + } else if (num_gpus == 16) { + LAUNCH_LOCO_DEQUANT_REDUCE_IMPL(4, 16, quantize::Type::Asymmetric); + } else { + LAUNCH_LOCO_DEQUANT_REDUCE_IMPL(4, -1, quantize::Type::Asymmetric); + } + } else if (num_bits == 8) { + if (num_gpus == 8) { + LAUNCH_LOCO_DEQUANT_REDUCE_IMPL(8, 8, quantize::Type::Asymmetric); + } else if (num_gpus == 16) { + LAUNCH_LOCO_DEQUANT_REDUCE_IMPL(8, 16, quantize::Type::Asymmetric); + } else { + LAUNCH_LOCO_DEQUANT_REDUCE_IMPL(8, -1, quantize::Type::Asymmetric); + } + } + } +} diff --git a/csrc/quantization/swizzled_quantize.cu b/csrc/quantization/swizzled_quantize.cu index 5a02a0ae8120..a4b6096c81af 100644 --- a/csrc/quantization/swizzled_quantize.cu +++ b/csrc/quantization/swizzled_quantize.cu @@ -3,6 +3,7 @@ // DeepSpeed Team +#include "dequantization_utils.h" #include "memory_access_utils.h" #include "quantization_utils.h" #include "reduction_utils.h" @@ -194,3 +195,233 @@ void launch_swizzled_quant(int8_t* q_data, } } } + +template +__global__ void loco_swizzled_quant_kernel(int8_t* quantized_data, + float* quantized_scales, + const __half* uncompressed_data, + __half* error_feedback, + const float err_beta, + int groups, + int elems_per_group, + int pipelining, + int nodes, + int devices_per_node) +{ + cg::thread_block tb = cg::this_thread_block(); + cg::thread_block_tile warp = cg::tiled_partition(tb); + + // Indexing offsets, same as normal quantization for in-case + const int block_rank_data = + blockIdx.x + blockIdx.y * gridDim.x + blockIdx.z * gridDim.x * gridDim.y; + const int block_offset_data = block_rank_data * elems_per_group; + const int elem_offset = tb.thread_index().x * quantize::h_per_load; + const int base_offset_data = block_offset_data + elem_offset; + const int stride = tb.size() * quantize::h_per_load; + const __half* uncompressed_data_base = uncompressed_data + base_offset_data; + + const int partition_id = blockIdx.z; + const int partition_offset = partition_id / devices_per_node; + const int partition_base = (partition_id % devices_per_node) * nodes; + const int pipelining_offset = blockIdx.y * (devices_per_node * nodes); + const int output_partition = (pipelining_offset + partition_base + partition_offset); + const int block_rank_err = output_partition * gridDim.x + blockIdx.x; + + const int block_offset_err = block_rank_err * elems_per_group; + const int base_offset_err = block_offset_err + elem_offset; + __half* error_feedback_base = error_feedback + base_offset_err; + + __half2 local_buffer[totalChunks * quantize::h2_per_load]; + __half2 err_buffer[totalChunks * quantize::h2_per_load]; + + quantize::GroupStats stats; + +#pragma unroll + for (int i = 0; i < totalChunks; i++) { + __half2* iteration_buffer = local_buffer + i * quantize::h2_per_load; + __half2* iter_err_buffer = err_buffer + i * quantize::h2_per_load; + const int i_stride = i * stride; + bool do_loads = (elem_offset + i_stride) < elems_per_group; + + mem_access::load_global( + iteration_buffer, uncompressed_data_base + i_stride, do_loads); + + mem_access::load_global( + iter_err_buffer, error_feedback_base + i_stride, do_loads); + +#pragma unroll + for (int j = 0; j < quantize::h2_per_load; j++) { + iteration_buffer[j] = __hadd2(iteration_buffer[j], iter_err_buffer[j]); + stats.update(iteration_buffer[j]); + } + } + + auto params = stats.template get_params(tb, warp); + + // Initialize dequantization parameters based on params + auto de_params = params; + de_params.scale = 1.0f / params.scale; + if constexpr (quantType == quantize::Type::Asymmetric) { de_params.offset = params.offset; } + + if (threadIdx.x == 0) { params.store(quantized_scales, block_rank_err); } + + constexpr int out_scalar_effect = 8 / numBits; + const int out_block_offset = block_rank_err * elems_per_group / out_scalar_effect; + const int out_base_offset = out_block_offset + elem_offset / out_scalar_effect; + int8_t* out_base = quantized_data + out_base_offset; + + const int out_stride = stride / out_scalar_effect; + constexpr int num_int8_out = quantize::h_per_load / out_scalar_effect; + +#pragma unroll + for (int i = 0; i < totalChunks; i++) { + const int i_stride = i * stride; + __half2* iteration_buffer = local_buffer + i * quantize::h2_per_load; + __half2* iter_err_buffer = err_buffer + i * quantize::h2_per_load; + + if (i_stride + elem_offset < elems_per_group) { + int8_t local_output[quantize::h_per_load / out_scalar_effect]; + quantize::_chunk(local_output, iteration_buffer, params); + mem_access::store_global(out_base + i * out_stride, local_output); + + // Dequantize the quantized output to compute the dequantized value + __half2 dequant_buffer[quantize::h2_per_load]; + dequantize::chunk(dequant_buffer, local_output, de_params); + +// Compute new error: sum - dequant_buffer +#pragma unroll + for (int k = 0; k < quantize::h2_per_load; k++) { + // __half2 to float2 + float2 iter_buf_f = __half22float2(iteration_buffer[k]); + float2 dequant_buf_f = __half22float2(dequant_buffer[k]); + + // Update within float precision + float2 new_error_f; + new_error_f.x = iter_buf_f.x - dequant_buf_f.x; + new_error_f.y = iter_buf_f.y - dequant_buf_f.y; + + float2 iter_err_buf_f = __half22float2(iter_err_buffer[k]); + + iter_err_buf_f.x = err_beta * iter_err_buf_f.x + (1.0f - err_beta) * new_error_f.x; + iter_err_buf_f.y = err_beta * iter_err_buf_f.y + (1.0f - err_beta) * new_error_f.y; + + // float2 back to __half2 + iter_err_buffer[k] = __float22half2_rn(iter_err_buf_f); + } + __half2* error_feedback_base_h2 = reinterpret_cast<__half2*>(error_feedback_base); + mem_access::store_global(error_feedback_base_h2 + i_stride / 2, + iter_err_buffer); + } + } +} + +#define LAUNCH_LOCO_SWIZZLE_QUANT(total_chunks, threads) \ + loco_swizzled_quant_kernel \ + <<>>(output_data, \ + params, \ + input_data, \ + error_feedback, \ + err_beta, \ + groups, \ + elems_per_group, \ + pipelining, \ + nodes, \ + devices_per_node); + +template +void launch_loco_swizzled_quant_impl(int8_t* output_data, + float* params, + const __half* input_data, + __half* error_feedback, + const float err_beta, + int groups, + int elems_per_group, + int pipelining, + int nodes, + int devices_per_node, + cudaStream_t stream) +{ + const int one_step_threads = + next_pow2((elems_per_group + swiz_quant::h_per_step - 1) / swiz_quant::h_per_step); + const int max_threads = (one_step_threads < swiz_quant::max_threads) ? one_step_threads + : swiz_quant::max_threads; + const int threads = (max_threads < swiz_quant::min_threads) ? swiz_quant::min_threads + : max_threads; + + dim3 block(threads); + const int groups_per_partition = groups / (nodes * devices_per_node); + assert(groups_per_partition % pipelining == 0); + const int contiguous_groups = groups_per_partition / pipelining; + const int partitions = nodes * devices_per_node; + dim3 grid(contiguous_groups, pipelining, partitions); + + const int elems_per_step = threads * swiz_quant::h_per_step; + const int external_unroll = ((elems_per_group + elems_per_step - 1) / elems_per_step); + const int total_unroll = external_unroll * swiz_quant::step_granularity; + + assert(total_unroll % 2 == 0); + + if (threads == 32) { + LAUNCH_LOCO_SWIZZLE_QUANT(2, 32); + } else if (threads == 64) { + LAUNCH_LOCO_SWIZZLE_QUANT(2, 64); + } else if (threads == 128) { + LAUNCH_LOCO_SWIZZLE_QUANT(2, 128); + } else if (threads == 256) { + LAUNCH_LOCO_SWIZZLE_QUANT(2, 256); + } else if (threads == 512) { + if (total_unroll == 2) { + LAUNCH_LOCO_SWIZZLE_QUANT(2, 512); + } else if (total_unroll == 4) { + LAUNCH_LOCO_SWIZZLE_QUANT(4, 512); + } else if (total_unroll == 6) { + LAUNCH_LOCO_SWIZZLE_QUANT(6, 512); + } else if (total_unroll == 8) { + LAUNCH_LOCO_SWIZZLE_QUANT(8, 512); + } else if (total_unroll == 10) { + LAUNCH_LOCO_SWIZZLE_QUANT(10, 512); + } + } +} + +#define DISPATCH_LOCO_SWIZZLE_QUANT(num_bits, qtype) \ + launch_loco_swizzled_quant_impl(output_data, \ + params, \ + input_data, \ + error_feedback, \ + err_beta, \ + groups, \ + elems_per_group, \ + pipelining, \ + nodes, \ + devices_per_node, \ + stream); + +void launch_loco_swizzled_quant(int8_t* output_data, + float* params, + const __half* input_data, + __half* error_feedback, + const float err_beta, + int num_bits, + quantize::Type q_type, + int groups, + int elems_per_group, + int pipelining, + int nodes, + int devices_per_node, + cudaStream_t stream) +{ + if (num_bits == 4) { + if (q_type == quantize::Type::Asymmetric) { + DISPATCH_LOCO_SWIZZLE_QUANT(4, quantize::Type::Asymmetric); + } else if (q_type == quantize::Type::Symmetric) { + DISPATCH_LOCO_SWIZZLE_QUANT(4, quantize::Type::Symmetric); + } + } else if (num_bits == 8) { + if (q_type == quantize::Type::Asymmetric) { + DISPATCH_LOCO_SWIZZLE_QUANT(8, quantize::Type::Asymmetric); + } else if (q_type == quantize::Type::Symmetric) { + DISPATCH_LOCO_SWIZZLE_QUANT(8, quantize::Type::Symmetric); + } + } +} diff --git a/csrc/random_ltd/token_sort.cu b/csrc/random_ltd/token_sort.cu index 3049471cfe34..3c1dff49429f 100644 --- a/csrc/random_ltd/token_sort.cu +++ b/csrc/random_ltd/token_sort.cu @@ -16,7 +16,7 @@ constexpr int mem_vals = granularity / sizeof(int32_t); constexpr int max_buffer_size = (threads + 1) * mem_vals; #ifdef __HIP_PLATFORM_AMD__ -constexpr int warp_size = 64; +constexpr int warp_size = ROCM_WAVEFRONT_SIZE; #else constexpr int warp_size = 32; #endif diff --git a/csrc/transformer/cublas_wrappers.cu b/csrc/transformer/cublas_wrappers.cu index 7821a8759ab0..d982e65b8a81 100644 --- a/csrc/transformer/cublas_wrappers.cu +++ b/csrc/transformer/cublas_wrappers.cu @@ -5,7 +5,9 @@ #include "cublas_wrappers.h" -#ifdef __HIP_PLATFORM_AMD__ +// TODO HIP: Remove backward compatibility for torch<=2.0 in future +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) int cublas_gemm_ex(rocblas_handle handle, rocblas_operation transa, rocblas_operation transb, @@ -33,7 +35,8 @@ int cublas_gemm_ex(cublasHandle_t handle, cublasGemmAlgo_t algo) #endif { -#ifdef __HIP_PLATFORM_AMD__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) rocblas_status status = rocblas_gemm_ex(handle, transa, transb, @@ -67,20 +70,39 @@ int cublas_gemm_ex(cublasHandle_t handle, k, (const void*)alpha, (const void*)A, +#ifdef __HIP_PLATFORM_AMD__ + HIPBLAS_R_32F, +#else CUDA_R_32F, +#endif (transa == CUBLAS_OP_N) ? m : k, (const void*)B, +#ifdef __HIP_PLATFORM_AMD__ + HIPBLAS_R_32F, +#else CUDA_R_32F, +#endif (transb == CUBLAS_OP_N) ? k : n, (const void*)beta, C, +#ifdef __HIP_PLATFORM_AMD__ + HIPBLAS_R_32F, +#else CUDA_R_32F, +#endif m, +#if defined(__HIP_PLATFORM_AMD__) && defined(HIPBLAS_V2) + HIPBLAS_COMPUTE_32F, +#elif defined(__HIP_PLATFORM_AMD__) + HIPBLAS_R_32F, +#else CUDA_R_32F, +#endif algo); #endif -#ifdef __HIP_PLATFORM_AMD__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) if (status != rocblas_status_success) { #else if (status != CUBLAS_STATUS_SUCCESS) { @@ -96,7 +118,8 @@ int cublas_gemm_ex(cublasHandle_t handle, return 0; } -#ifdef __HIP_PLATFORM_AMD__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) int cublas_gemm_ex(rocblas_handle handle, rocblas_operation transa, rocblas_operation transb, @@ -124,7 +147,8 @@ int cublas_gemm_ex(cublasHandle_t handle, cublasGemmAlgo_t algo) #endif { -#ifdef __HIP_PLATFORM_AMD__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) rocblas_status status = rocblas_gemm_ex(handle, transa, transb, @@ -158,20 +182,39 @@ int cublas_gemm_ex(cublasHandle_t handle, k, (const void*)alpha, (const void*)A, +#ifdef __HIP_PLATFORM_AMD__ + HIPBLAS_R_16F, +#else CUDA_R_16F, +#endif (transa == CUBLAS_OP_N) ? m : k, (const void*)B, +#ifdef __HIP_PLATFORM_AMD__ + HIPBLAS_R_16F, +#else CUDA_R_16F, +#endif (transb == CUBLAS_OP_N) ? k : n, (const void*)beta, (void*)C, +#ifdef __HIP_PLATFORM_AMD__ + HIPBLAS_R_16F, +#else CUDA_R_16F, +#endif m, +#if defined(__HIP_PLATFORM_AMD__) && defined(HIPBLAS_V2) + HIPBLAS_COMPUTE_32F, +#elif defined(__HIP_PLATFORM_AMD__) + HIPBLAS_R_32F, +#else CUDA_R_32F, +#endif algo); #endif -#ifdef __HIP_PLATFORM_AMD__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) if (status != rocblas_status_success) { #else if (status != CUBLAS_STATUS_SUCCESS) { @@ -187,7 +230,8 @@ int cublas_gemm_ex(cublasHandle_t handle, return 0; } -#ifdef __HIP_PLATFORM_AMD__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) int cublas_strided_batched_gemm(rocblas_handle handle, int m, int n, @@ -223,7 +267,8 @@ int cublas_strided_batched_gemm(cublasHandle_t handle, cublasGemmAlgo_t algo) #endif { -#ifdef __HIP_PLATFORM_AMD__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) rocblas_status status = rocblas_gemm_strided_batched_ex(handle, op_A, @@ -263,24 +308,43 @@ int cublas_strided_batched_gemm(cublasHandle_t handle, k, alpha, A, +#ifdef __HIP_PLATFORM_AMD__ + HIPBLAS_R_32F, +#else CUDA_R_32F, +#endif (op_A == CUBLAS_OP_N) ? m : k, stride_A, B, +#ifdef __HIP_PLATFORM_AMD__ + HIPBLAS_R_32F, +#else CUDA_R_32F, +#endif (op_B == CUBLAS_OP_N) ? k : n, stride_B, beta, C, +#ifdef __HIP_PLATFORM_AMD__ + HIPBLAS_R_32F, +#else CUDA_R_32F, +#endif m, stride_C, batch, +#if defined(__HIP_PLATFORM_AMD__) && defined(HIPBLAS_V2) + HIPBLAS_COMPUTE_32F, +#elif defined(__HIP_PLATFORM_AMD__) + HIPBLAS_R_32F, +#else CUDA_R_32F, +#endif algo); #endif -#ifdef __HIP_PLATFORM_AMD__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) if (status != rocblas_status_success) { #else if (status != CUBLAS_STATUS_SUCCESS) { @@ -297,7 +361,8 @@ int cublas_strided_batched_gemm(cublasHandle_t handle, return 0; } -#ifdef __HIP_PLATFORM_AMD__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) int cublas_strided_batched_gemm(rocblas_handle handle, int m, int n, @@ -333,7 +398,8 @@ int cublas_strided_batched_gemm(cublasHandle_t handle, cublasGemmAlgo_t algo) #endif { -#ifdef __HIP_PLATFORM_AMD__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) rocblas_status status = rocblas_gemm_strided_batched_ex(handle, op_A, @@ -373,24 +439,43 @@ int cublas_strided_batched_gemm(cublasHandle_t handle, k, alpha, A, +#ifdef __HIP_PLATFORM_AMD__ + HIPBLAS_R_16F, +#else CUDA_R_16F, +#endif (op_A == CUBLAS_OP_N) ? m : k, stride_A, B, +#ifdef __HIP_PLATFORM_AMD__ + HIPBLAS_R_16F, +#else CUDA_R_16F, +#endif (op_B == CUBLAS_OP_N) ? k : n, stride_B, beta, C, +#ifdef __HIP_PLATFORM_AMD__ + HIPBLAS_R_16F, +#else CUDA_R_16F, +#endif m, stride_C, batch, +#if defined(__HIP_PLATFORM_AMD__) && defined(HIPBLAS_V2) + HIPBLAS_COMPUTE_32F, +#elif defined(__HIP_PLATFORM_AMD__) + HIPBLAS_R_32F, +#else CUDA_R_32F, +#endif algo); #endif -#ifdef __HIP_PLATFORM_AMD__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) if (status != rocblas_status_success) { #else if (status != CUBLAS_STATUS_SUCCESS) { diff --git a/csrc/transformer/inference/csrc/apply_rotary_pos_emb.cu b/csrc/transformer/inference/csrc/apply_rotary_pos_emb.cu index a06dbb48fd33..bbb8a7f00b1f 100644 --- a/csrc/transformer/inference/csrc/apply_rotary_pos_emb.cu +++ b/csrc/transformer/inference/csrc/apply_rotary_pos_emb.cu @@ -99,7 +99,7 @@ __global__ void apply_rotary_pos_half(T* mixed_query, rope_theta, \ max_out_tokens); -#ifdef __HIP_PLATFORM_AMD__ +#if defined(__HIP_PLATFORM_AMD__) and ROCM_WAVEFRONT_SIZE == 64 #define LAUNCH_FOR_ALIGNMENT(ALIGNMENT) \ if (threads_per_head == 4) { \ LAUNCH_ROT_POS_EMB_HALF(4, ALIGNMENT); \ diff --git a/csrc/transformer/inference/csrc/pt_binding.cpp b/csrc/transformer/inference/csrc/pt_binding.cpp index b7277d1e1678..19dbe73726f7 100644 --- a/csrc/transformer/inference/csrc/pt_binding.cpp +++ b/csrc/transformer/inference/csrc/pt_binding.cpp @@ -163,7 +163,9 @@ at::Tensor einsum_sec_sm_ecm(at::Tensor& Q, at::Tensor& W) (T*)W.data_ptr(), (T*)Q.data_ptr(), (T*)O.data_ptr(), -#ifdef __HIP_PLATFORM_AMD__ +// TODO HIP: Remove backward compatibility for torch<=2.0 in future +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) rocblas_gemm_algo_standard); #else CUBLAS_GEMM_DEFAULT_TENSOR_OP); @@ -216,7 +218,8 @@ void attention_unfused(at::Tensor& prev_key_cont, seq_len * k, seq_len * soft_len, bsz * heads, -#ifdef __HIP_PLATFORM_AMD__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) rocblas_gemm_algo_standard); #else CUBLAS_GEMM_DEFAULT_TENSOR_OP); @@ -253,7 +256,8 @@ void attention_unfused(at::Tensor& prev_key_cont, seq_len * soft_len, seq_len * k, bsz * heads, -#ifdef __HIP_PLATFORM_AMD__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) rocblas_gemm_algo_standard); #else CUBLAS_GEMM_DEFAULT_TENSOR_OP); @@ -388,7 +392,8 @@ void attention_unfused(T* prev_key_cont, seq_len * k, seq_len * soft_len, bsz * heads, -#ifdef __HIP_PLATFORM_AMD__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) rocblas_gemm_algo_standard); #else CUBLAS_GEMM_DEFAULT_TENSOR_OP); @@ -421,7 +426,8 @@ void attention_unfused(T* prev_key_cont, seq_len * soft_len, seq_len * k, bsz * heads, -#ifdef __HIP_PLATFORM_AMD__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) rocblas_gemm_algo_standard); #else CUBLAS_GEMM_DEFAULT_TENSOR_OP); @@ -446,14 +452,17 @@ std::vector ds_softmax_context(at::Tensor& query_key_value, unsigned layer_id, unsigned num_layers, at::Tensor& alibi, - float rope_theta) + float rope_theta, + bool is_prompt, + std::optional token_idx, + std::optional position_ids) { unsigned bsz = query_key_value.size(0); unsigned seq_len = query_key_value.size(1); int k = query_key_value.size(2) / (heads + 2 * (num_kv > 0 ? num_kv : heads)); unsigned hidden_dim = heads * k; - bool is_prompt = (seq_len > 1); + is_prompt = (seq_len > 1); if (is_prompt) InferenceContext::Instance().reset_tokens(seq_len); unsigned soft_len = InferenceContext::Instance().current_tokens(); @@ -536,22 +545,23 @@ std::vector ds_softmax_context(at::Tensor& query_key_value, 1); if (layer_id == num_layers - 1) InferenceContext::Instance().advance_tokens(); - auto prev_key = torch::from_blob(workspace + offset, - {bsz, heads, all_tokens, k}, - {hidden_dim * InferenceContext::Instance().GetMaxTokenLength(), - k * InferenceContext::Instance().GetMaxTokenLength(), - k, - 1}, - options); - - auto prev_value = - torch::from_blob(workspace + offset + value_offset, - {bsz, heads, all_tokens, k}, - {hidden_dim * InferenceContext::Instance().GetMaxTokenLength(), - k * InferenceContext::Instance().GetMaxTokenLength(), - k, - 1}, - options); + auto prev_key = torch::from_blob( + workspace + offset, + {bsz, heads, all_tokens, k}, + {hidden_dim * static_cast(InferenceContext::Instance().GetMaxTokenLength()), + k * static_cast(InferenceContext::Instance().GetMaxTokenLength()), + k, + 1}, + options); + + auto prev_value = torch::from_blob( + workspace + offset + value_offset, + {bsz, heads, all_tokens, k}, + {hidden_dim * static_cast(InferenceContext::Instance().GetMaxTokenLength()), + k * static_cast(InferenceContext::Instance().GetMaxTokenLength()), + k, + 1}, + options); return {output, prev_key, prev_value}; } @@ -886,7 +896,8 @@ void quantized_gemm(void* output, weight16, (T*)input, (T*)output, -#ifdef __HIP_PLATFORM_AMD__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) rocblas_gemm_algo_standard); #else CUBLAS_GEMM_DEFAULT_TENSOR_OP); @@ -931,7 +942,8 @@ at::Tensor qkv_unfused_cublas(at::Tensor& output, (T*)weight.data_ptr(), workspace, (T*)output.data_ptr(), -#ifdef __HIP_PLATFORM_AMD__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) rocblas_gemm_algo_standard); #else CUBLAS_GEMM_DEFAULT_TENSOR_OP); @@ -1003,7 +1015,8 @@ std::vector ds_rms_qkv(at::Tensor& input, (T*)weight.data_ptr(), (T*)rms_norm.data_ptr(), (T*)output.data_ptr(), -#ifdef __HIP_PLATFORM_AMD__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) rocblas_gemm_algo_standard); #else CUBLAS_GEMM_DEFAULT_TENSOR_OP); @@ -1089,7 +1102,8 @@ void quantized_gemm(at::Tensor& output, (T*)weight16.data_ptr(), (T*)input.data_ptr(), (T*)output.data_ptr(), -#ifdef __HIP_PLATFORM_AMD__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) rocblas_gemm_algo_standard); #else CUBLAS_GEMM_DEFAULT_TENSOR_OP); @@ -1135,7 +1149,8 @@ at::Tensor ds_linear_layer(at::Tensor& input, (T*)weight.data_ptr(), (T*)input_cont.data_ptr(), (T*)output.data_ptr(), -#ifdef __HIP_PLATFORM_AMD__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) rocblas_gemm_algo_standard); #else CUBLAS_GEMM_DEFAULT_TENSOR_OP); @@ -1353,7 +1368,8 @@ at::Tensor ds_vector_matmul(at::Tensor& input, (T*)weight.data_ptr(), (T*)input.data_ptr(), (T*)output.data_ptr(), -#ifdef __HIP_PLATFORM_AMD__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) rocblas_gemm_algo_standard); #else CUBLAS_GEMM_DEFAULT_TENSOR_OP); @@ -1439,7 +1455,8 @@ at::Tensor mlp_unfused_cublas(at::Tensor& output, (T*)weight.data_ptr(), inp_norm, intermediate, -#ifdef __HIP_PLATFORM_AMD__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) rocblas_gemm_algo_standard); #else CUBLAS_GEMM_DEFAULT_TENSOR_OP); @@ -1483,7 +1500,8 @@ at::Tensor mlp_unfused_cublas(at::Tensor& output, (T*)weight1.data_ptr(), intermediate, (T*)output.data_ptr(), -#ifdef __HIP_PLATFORM_AMD__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) rocblas_gemm_algo_standard); #else CUBLAS_GEMM_DEFAULT_TENSOR_OP); @@ -1578,7 +1596,9 @@ std::vector ds_rms_mlp_gemm(at::Tensor& input, auto output = at::from_blob(output_ptr, input.sizes(), options); auto inp_norm = at::from_blob(inp_norm_ptr, input.sizes(), options); auto intermediate_gemm = - at::from_blob(intermediate_ptr, {input.size(0), input.size(1), mlp_1_out_neurons}, options); + at::from_blob(intermediate_ptr, + {input.size(0), input.size(1), static_cast(mlp_1_out_neurons)}, + options); auto act_func_type = static_cast(activation_type); @@ -1617,7 +1637,8 @@ std::vector ds_rms_mlp_gemm(at::Tensor& input, (T*)weight_interm.data_ptr(), (T*)inp_norm.data_ptr(), intermediate_ptr, -#ifdef __HIP_PLATFORM_AMD__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) rocblas_gemm_algo_standard); #else CUBLAS_GEMM_DEFAULT_TENSOR_OP); @@ -1680,7 +1701,8 @@ std::vector ds_rms_mlp_gemm(at::Tensor& input, (T*)weight_out.data_ptr(), intermediate_ptr, (T*)output.data_ptr(), -#ifdef __HIP_PLATFORM_AMD__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) rocblas_gemm_algo_standard, #else CUBLAS_GEMM_DEFAULT_TENSOR_OP, @@ -1742,7 +1764,8 @@ at::Tensor fused_gemm_gelu(at::Tensor& input, (T*)weight.data_ptr(), (T*)input.data_ptr(), (T*)intermediate.data_ptr(), -#ifdef __HIP_PLATFORM_AMD__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) rocblas_gemm_algo_standard); #else CUBLAS_GEMM_DEFAULT_TENSOR_OP); @@ -1776,7 +1799,8 @@ at::Tensor fused_gemm_gelu(at::Tensor& input, (T*)weight_out.data_ptr(), (T*)intermediate.data_ptr(), (T*)output.data_ptr(), -#ifdef __HIP_PLATFORM_AMD__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) rocblas_gemm_algo_standard); #else CUBLAS_GEMM_DEFAULT_TENSOR_OP); @@ -2010,7 +2034,7 @@ PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) "DeepSpeed memory allocation for GPT inference with " #_name " (CUDA)"); \ m.def("dequantize_" #_name, \ &ds_dequantize<_dtype>, \ - "DeepSpeed dequantize with " #_name " (CUDA)") + "DeepSpeed dequantize with " #_name " (CUDA)"); DEF_OPS(fp32, float); DEF_OPS(fp16, __half); diff --git a/csrc/transformer/inference/includes/inference_cublas_wrappers.h b/csrc/transformer/inference/includes/inference_cublas_wrappers.h index 640751b12c8f..40c3e443941d 100644 --- a/csrc/transformer/inference/includes/inference_cublas_wrappers.h +++ b/csrc/transformer/inference/includes/inference_cublas_wrappers.h @@ -18,7 +18,9 @@ #endif #include -#ifdef __HIP_PLATFORM_AMD__ +// TODO HIP: Remove backward compatibility for torch<=2.0 in future +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) int cublas_gemm_ex(rocblas_handle handle, rocblas_operation transa, rocblas_operation transb, @@ -49,7 +51,8 @@ int cublas_gemm_ex(cublasHandle_t handle, #endif { const int ldb = (b_stride == -1) ? ((transb == CUBLAS_OP_N) ? k : n) : b_stride; -#ifdef __HIP_PLATFORM_AMD__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) rocblas_status status = rocblas_gemm_ex(handle, transa, transb, @@ -83,20 +86,39 @@ int cublas_gemm_ex(cublasHandle_t handle, k, (const void*)alpha, (const void*)A, +#ifdef __HIP_PLATFORM_AMD__ + HIPBLAS_R_32F, +#else CUDA_R_32F, +#endif (transa == CUBLAS_OP_N) ? m : k, (const void*)B, +#ifdef __HIP_PLATFORM_AMD__ + HIPBLAS_R_32F, +#else CUDA_R_32F, +#endif ldb, (const void*)beta, C, +#ifdef __HIP_PLATFORM_AMD__ + HIPBLAS_R_32F, +#else CUDA_R_32F, +#endif m, +#if defined(__HIP_PLATFORM_AMD__) && defined(HIPBLAS_V2) + HIPBLAS_COMPUTE_32F, +#elif defined(__HIP_PLATFORM_AMD__) + HIPBLAS_R_32F, +#else CUDA_R_32F, +#endif algo); #endif -#ifdef __HIP_PLATFORM_AMD__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) if (status != rocblas_status_success) { #else if (status != CUBLAS_STATUS_SUCCESS) { @@ -113,7 +135,8 @@ int cublas_gemm_ex(cublasHandle_t handle, } template -#ifdef __HIP_PLATFORM_AMD__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) int cublas_gemm_ex(rocblas_handle handle, rocblas_operation transa, rocblas_operation transb, @@ -144,7 +167,8 @@ int cublas_gemm_ex(cublasHandle_t handle, #endif { const int ldb = (b_stride == -1) ? ((transb == CUBLAS_OP_N) ? k : n) : b_stride; -#ifdef __HIP_PLATFORM_AMD__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) constexpr auto rocblas_dtype_16 = std::is_same::value ? rocblas_datatype_f16_r : rocblas_datatype_bf16_r; rocblas_status status = rocblas_gemm_ex(handle, @@ -171,8 +195,12 @@ int cublas_gemm_ex(cublasHandle_t handle, algo, 0, 0); +#else +#ifdef __HIP_PLATFORM_AMD__ + constexpr auto cublas_dtype_16 = std::is_same::value ? HIPBLAS_R_16F : HIPBLAS_R_16B; #else constexpr auto cublas_dtype_16 = std::is_same::value ? CUDA_R_16F : CUDA_R_16BF; +#endif cublasStatus_t status = cublasGemmEx(handle, transa, transb, @@ -190,11 +218,18 @@ int cublas_gemm_ex(cublasHandle_t handle, (void*)C, cublas_dtype_16, m, +#if defined(__HIP_PLATFORM_AMD__) && defined(HIPBLAS_V2) + HIPBLAS_COMPUTE_32F, +#elif defined(__HIP_PLATFORM_AMD__) + HIPBLAS_R_32F, +#else CUDA_R_32F, +#endif algo); #endif -#ifdef __HIP_PLATFORM_AMD__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) if (status != rocblas_status_success) { #else if (status != CUBLAS_STATUS_SUCCESS) { @@ -210,7 +245,8 @@ int cublas_gemm_ex(cublasHandle_t handle, return 0; } -#ifdef __HIP_PLATFORM_AMD__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) int cublas_strided_batched_gemm(rocblas_handle handle, int m, int n, @@ -246,7 +282,8 @@ int cublas_strided_batched_gemm(cublasHandle_t handle, cublasGemmAlgo_t algo) #endif { -#ifdef __HIP_PLATFORM_AMD__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) rocblas_status status = rocblas_gemm_strided_batched_ex(handle, op_A, @@ -286,24 +323,43 @@ int cublas_strided_batched_gemm(cublasHandle_t handle, k, alpha, A, +#ifdef __HIP_PLATFORM_AMD__ + HIPBLAS_R_32F, +#else CUDA_R_32F, +#endif (op_A == CUBLAS_OP_N) ? m : k, stride_A, B, +#ifdef __HIP_PLATFORM_AMD__ + HIPBLAS_R_32F, +#else CUDA_R_32F, +#endif (op_B == CUBLAS_OP_N) ? k : n, stride_B, beta, C, +#ifdef __HIP_PLATFORM_AMD__ + HIPBLAS_R_32F, +#else CUDA_R_32F, +#endif m, stride_C, batch, +#if defined(__HIP_PLATFORM_AMD__) && defined(HIPBLAS_V2) + HIPBLAS_COMPUTE_32F, +#elif defined(__HIP_PLATFORM_AMD__) + HIPBLAS_R_32F, +#else CUDA_R_32F, +#endif algo); #endif -#ifdef __HIP_PLATFORM_AMD__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) if (status != rocblas_status_success) { #else if (status != CUBLAS_STATUS_SUCCESS) { @@ -321,7 +377,8 @@ int cublas_strided_batched_gemm(cublasHandle_t handle, } template -#ifdef __HIP_PLATFORM_AMD__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) int cublas_strided_batched_gemm(rocblas_handle handle, int m, int n, @@ -357,7 +414,8 @@ int cublas_strided_batched_gemm(cublasHandle_t handle, cublasGemmAlgo_t algo) #endif { -#ifdef __HIP_PLATFORM_AMD__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) constexpr auto rocblas_dtype_16 = std::is_same::value ? rocblas_datatype_f16_r : rocblas_datatype_bf16_r; rocblas_status status = @@ -390,8 +448,12 @@ int cublas_strided_batched_gemm(cublasHandle_t handle, algo, 0, 0); +#else +#ifdef __HIP_PLATFORM_AMD__ + constexpr auto cublas_dtype_16 = std::is_same::value ? HIPBLAS_R_16F : HIPBLAS_R_16B; #else constexpr auto cublas_dtype_16 = std::is_same::value ? CUDA_R_16F : CUDA_R_16BF; +#endif cublasStatus_t status = cublasGemmStridedBatchedEx(handle, op_A, op_B, @@ -413,11 +475,18 @@ int cublas_strided_batched_gemm(cublasHandle_t handle, m, stride_C, batch, +#if defined(__HIP_PLATFORM_AMD__) && defined(HIPBLAS_V2) + HIPBLAS_COMPUTE_32F, +#elif defined(__HIP_PLATFORM_AMD__) + HIPBLAS_R_32F, +#else CUDA_R_32F, +#endif algo); #endif -#ifdef __HIP_PLATFORM_AMD__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) if (status != rocblas_status_success) { #else if (status != CUBLAS_STATUS_SUCCESS) { diff --git a/csrc/xpu/adagrad/cpu_adagrad.cpp b/csrc/xpu/adagrad/cpu_adagrad.cpp new file mode 100644 index 000000000000..dc727f8fa216 --- /dev/null +++ b/csrc/xpu/adagrad/cpu_adagrad.cpp @@ -0,0 +1,196 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 + +// DeepSpeed Team + +#include "cpu_adagrad.h" +#include +#include +#include +#include +#include +#include + +static std::unordered_map> s_optimizers; + +// C++ interface + +void Adagrad_Optimizer::Step_1(float* _params, + float* grads, + float* _exp_avg_sq, + size_t _param_size, + ds_half_precision_t* dev_params, + bool half_precision) +{ + size_t rounded_size = 0; +#if defined(__AVX512__) or defined(__AVX256__) + Step_AVX<1>( + &rounded_size, _params, grads, _exp_avg_sq, _param_size, dev_params, half_precision); +#endif + if (_param_size > rounded_size) { + float step_size = -1 * _alpha; + ds_half_precision_t* grads_cast_h; + ds_half_precision_t* params_cast_h; + if (half_precision) { + grads_cast_h = reinterpret_cast(grads); + params_cast_h = reinterpret_cast(_params); + } + for (size_t t = rounded_size; t < _param_size; t += TILE) { + size_t copy_size = TILE; + if ((t + TILE) > _param_size) copy_size = _param_size - t; + size_t offset = copy_size + t; +#pragma omp parallel for + for (size_t k = t; k < offset; k++) { + float grad = half_precision ? (float)grads_cast_h[k] : grads[k]; + float param = half_precision ? (float)params_cast_h[k] : _params[k]; + float momentum = grads[k]; + float variance = _exp_avg_sq[k]; + if (_weight_decay > 0) { grad = param * _weight_decay + grad; } + + variance += grad * grad; + + grad = sqrt(variance); + grad += _eps; + grad = momentum / grad; + param = grad * step_size + param; + if (half_precision) + params_cast_h[k] = (ds_half_precision_t)param; + else + _params[k] = param; + // STORE UPDATE TERM TO GRAD'S MEMORY + grads[k] = grad * step_size; + _exp_avg_sq[k] = variance; + } + } + } +} + +void Adagrad_Optimizer::Step_4(float* _params, + float* grads, + float* _exp_avg_sq, + size_t _param_size, + ds_half_precision_t* dev_params, + bool half_precision) +{ + size_t rounded_size = 0; +#if defined(__AVX512__) or defined(__AVX256__) + Step_AVX<4>( + &rounded_size, _params, grads, _exp_avg_sq, _param_size, dev_params, half_precision); +#endif + if (_param_size > rounded_size) + Step_1((_params + rounded_size), + (grads + rounded_size), + (_exp_avg_sq + rounded_size), + (_param_size - rounded_size), + (dev_params != nullptr ? (dev_params + rounded_size) : dev_params), + half_precision); +} + +int create_adagrad_optimizer(int optimizer_id, + float alpha = 1e-2, + float eps = 1e-8, + float weight_decay = 0, + bool should_log = false) +{ + auto opt = std::make_shared(alpha, eps, weight_decay); + + s_optimizers[optimizer_id] = opt; + + if (should_log) { + std::string avx_type = ""; +#if defined(__AVX512__) + avx_type = "AVX512"; +#else +#if defined(__AVX256__) + avx_type = "AVX2"; +#else + avx_type = "scalar"; +#endif +#endif + + printf("Adagrad Optimizer #%d is created with %s arithmetic capability.\n", + optimizer_id, + avx_type.c_str()); + printf("Config: alpha=%f, weight_decay=%f\n", alpha, weight_decay); + } + + return 0; +} + +void Adagrad_Optimizer::Step_8(float* _params, + float* grads, + float* _exp_avg_sq, + size_t _param_size, + ds_half_precision_t* dev_params, + bool half_precision) +{ + size_t rounded_size = 0; +#if defined(__AVX512__) or defined(__AVX256__) + Step_AVX<8>( + &rounded_size, _params, grads, _exp_avg_sq, _param_size, dev_params, half_precision); +#endif + if (_param_size > rounded_size) + Step_4((_params + rounded_size), + (grads + rounded_size), + (_exp_avg_sq + rounded_size), + (_param_size - rounded_size), + (dev_params != nullptr ? (dev_params + rounded_size) : dev_params), + half_precision); +} + +int ds_adagrad_step(int optimizer_id, + size_t step, + float lr, + float epsilon, + float weight_decay, + torch::Tensor& params, + torch::Tensor& grads, + torch::Tensor& exp_avg_sq) +{ + auto params_c = params.contiguous(); + auto grads_c = grads.contiguous(); + auto exp_avg_sq_c = exp_avg_sq.contiguous(); + + float* params_ptr = (float*)params_c.data_ptr(); + float* grads_ptr = (float*)grads_c.data_ptr(); + float* exp_avg_sq_ptr = (float*)exp_avg_sq_c.data_ptr(); + + std::shared_ptr opt = + std::static_pointer_cast(s_optimizers[optimizer_id]); + opt->IncrementStep(step); + opt->update_state(lr, epsilon, weight_decay); + opt->Step_8(params_ptr, grads_ptr, exp_avg_sq_ptr, params_c.numel()); + + return 0; +} + +int ds_adagrad_step_plus_copy(int optimizer_id, + size_t step, + float lr, + float epsilon, + float weight_decay, + torch::Tensor& params, + torch::Tensor& grads, + torch::Tensor& exp_avg_sq, + torch::Tensor& gpu_params) +{ + assert(false); + return 0; +} + +int destroy_adagrad_optimizer(int optimizer_id) +{ + s_optimizers.erase(optimizer_id); + + return 0; +} + +PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) +{ + m.def("adagrad_update", &ds_adagrad_step, "DeepSpeed CPU Adagrad update (C++)"); + m.def("adagrad_update_copy", + &ds_adagrad_step_plus_copy, + "DeepSpeed CPU Adagrad update and param copy (C++)"); + m.def("create_adagrad", &create_adagrad_optimizer, "DeepSpeed CPU Adagrad (C++)"); + m.def("destroy_adagrad", &destroy_adagrad_optimizer, "DeepSpeed CPU Adagrad destroy (C++)"); +} diff --git a/csrc/xpu/adam/fused_adam_frontend.cpp b/csrc/xpu/adam/fused_adam_frontend.cpp new file mode 100755 index 000000000000..13b390248608 --- /dev/null +++ b/csrc/xpu/adam/fused_adam_frontend.cpp @@ -0,0 +1,25 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 + +// DeepSpeed Team + +#include + +void multi_tensor_adam_cuda(int chunk_size, + at::Tensor noop_flag, + std::vector> tensor_lists, + const float lr, + const float beta1, + const float beta2, + const float epsilon, + const int step, + const int mode, + const int bias_correction, + const float weight_decay); + +PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) +{ + m.def("multi_tensor_adam", + &multi_tensor_adam_cuda, + "Compute and apply gradient update to parameters for Adam optimizer"); +} diff --git a/csrc/xpu/adam/multi_tensor_adam.dp.cpp b/csrc/xpu/adam/multi_tensor_adam.dp.cpp new file mode 100644 index 000000000000..0720a020247a --- /dev/null +++ b/csrc/xpu/adam/multi_tensor_adam.dp.cpp @@ -0,0 +1,159 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 + +// DeepSpeed Team + +/* +Copyright NVIDIA/apex +This file is adapted from fused adam in NVIDIA/apex, commit a109f85 +*/ + +#include +#include +#include + +#include + +#include +#include "multi_tensor_apply.dp.hpp" +#include "type_shim.h" + +#define BLOCK_SIZE 512 +#define ILP 4 + +typedef enum : int { + ADAM_MODE_0 = 0, // L2 regularization mode + ADAM_MODE_1 = 1 // Decoupled weight decay mode(AdamW) +} adamMode_t; + +using MATH_T = float; + +template +struct AdamFunctor { + __inline__ __attribute__((always_inline)) void operator()(int chunk_size, + volatile int* noop_gmem, + TensorListMetadata<4>& tl, + const float beta1, + const float beta2, + const float beta1_correction, + const float beta2_correction, + const float epsilon, + const float lr, + adamMode_t mode, + const float decay) + { + auto item_ct1 = sycl::ext::oneapi::experimental::this_nd_item<3>(); + int tensor_loc = tl.block_to_tensor[item_ct1.get_group(2)]; + + int chunk_idx = tl.block_to_chunk[item_ct1.get_group(2)]; + int n = tl.sizes[tensor_loc]; + + T* g = (T*)tl.addresses[0][tensor_loc]; + g += chunk_idx * chunk_size; + + T* p = (T*)tl.addresses[1][tensor_loc]; + p += chunk_idx * chunk_size; + + T* m = (T*)tl.addresses[2][tensor_loc]; + m += chunk_idx * chunk_size; + + T* v = (T*)tl.addresses[3][tensor_loc]; + v += chunk_idx * chunk_size; + + n -= chunk_idx * chunk_size; + + // see note in multi_tensor_scale_kernel.cu + for (int i_start = 0; i_start < n && i_start < chunk_size; + i_start += item_ct1.get_local_range(2) * ILP) { + MATH_T r_g[ILP]; + MATH_T r_p[ILP]; + MATH_T r_m[ILP]; + MATH_T r_v[ILP]; +#pragma unroll + for (int ii = 0; ii < ILP; ii++) { + int i = i_start + item_ct1.get_local_id(2) + ii * item_ct1.get_local_range(2); + if (i < n && i < chunk_size) { + r_g[ii] = g[i]; + r_p[ii] = p[i]; + r_m[ii] = m[i]; + r_v[ii] = v[i]; + } else { + r_g[ii] = MATH_T(0); + r_p[ii] = MATH_T(0); + r_m[ii] = MATH_T(0); + r_v[ii] = MATH_T(0); + } + } +#pragma unroll + for (int ii = 0; ii < ILP; ii++) { + if (mode == ADAM_MODE_0) { // L2 + r_g[ii] = r_g[ii] + (decay * r_p[ii]); + r_m[ii] = beta1 * r_m[ii] + (1 - beta1) * r_g[ii]; + r_v[ii] = beta2 * r_v[ii] + (1 - beta2) * r_g[ii] * r_g[ii]; + MATH_T next_m_unbiased = r_m[ii] / beta1_correction; + MATH_T next_v_unbiased = r_v[ii] / beta2_correction; + MATH_T denom = sycl::sqrt(next_v_unbiased) + epsilon; + MATH_T update = next_m_unbiased / denom; + r_p[ii] = r_p[ii] - (lr * update); + } else { // weight decay + r_m[ii] = beta1 * r_m[ii] + (1 - beta1) * r_g[ii]; + r_v[ii] = beta2 * r_v[ii] + (1 - beta2) * r_g[ii] * r_g[ii]; + MATH_T next_m_unbiased = r_m[ii] / beta1_correction; + MATH_T next_v_unbiased = r_v[ii] / beta2_correction; + MATH_T denom = sycl::sqrt(next_v_unbiased) + epsilon; + MATH_T update = (next_m_unbiased / denom) + (decay * r_p[ii]); + r_p[ii] = r_p[ii] - (lr * update); + } + } +#pragma unroll + for (int ii = 0; ii < ILP; ii++) { + int i = i_start + item_ct1.get_local_id(2) + ii * item_ct1.get_local_range(2); + if (i < n && i < chunk_size) { + p[i] = r_p[ii]; + m[i] = r_m[ii]; + v[i] = r_v[ii]; + } + } + } + } +}; + +void multi_tensor_adam_cuda(int chunk_size, + at::Tensor noop_flag, + std::vector> tensor_lists, + const float lr, + const float beta1, + const float beta2, + const float epsilon, + const int step, + const int mode, + const int bias_correction, + const float weight_decay) +{ + using namespace at; + + // Handle bias correction mode + float bias_correction1 = 1.0f, bias_correction2 = 1.0f; + if (bias_correction == 1) { + bias_correction1 = 1 - std::pow(beta1, step); + bias_correction2 = 1 - std::pow(beta2, step); + } + + // Assume single type across p,g,m1,m2 now + DISPATCH_DOUBLE_FLOAT_AND_HALF(tensor_lists[0][0].scalar_type(), + 0, + "adam", + multi_tensor_apply<4>(BLOCK_SIZE, + chunk_size, + noop_flag, + tensor_lists, + AdamFunctor(), + beta1, + beta2, + bias_correction1, + bias_correction2, + epsilon, + lr, + (adamMode_t)mode, + weight_decay);) +} diff --git a/csrc/xpu/adam/multi_tensor_apply.dp.hpp b/csrc/xpu/adam/multi_tensor_apply.dp.hpp new file mode 100644 index 000000000000..14a130e2a23e --- /dev/null +++ b/csrc/xpu/adam/multi_tensor_apply.dp.hpp @@ -0,0 +1,226 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 + +// DeepSpeed Team + +/* +Copyright NVIDIA/apex +This file is adapted from fused adam in NVIDIA/apex, commit a109f85 +*/ + +#include +#include +#include +#include +#include +#include "compat.h" + +#include +#include +#include + +namespace at { +namespace cuda { +sycl::queue* getCurrentCUDAStream() +{ + c10::xpu::XPUStream stream = c10::xpu::getCurrentXPUStream(); + auto& queue = stream.queue(); + return &queue; +} + +sycl::queue* getStreamFromPool(bool) +{ + // not implemented + return nullptr; +} +} // namespace cuda +} // namespace at +// #include + +// This header is the one-stop shop for all your multi-tensor apply needs. + +// TODO: Kernel arg size limit may be <4KB for some other cards (ie Jetson) +constexpr int depth_to_max_tensors[5] = {110, 64, 48, 36, 30}; +constexpr int depth_to_max_blocks[5] = {320, 320, 320, 320, 320}; + +template +struct TensorListMetadata { + void* addresses[n][depth_to_max_tensors[n - 1]]; + int sizes[depth_to_max_tensors[n - 1]]; + unsigned char block_to_tensor[depth_to_max_blocks[n - 1]]; + int block_to_chunk[depth_to_max_blocks[n - 1]]; // I fear this needs to be a full int. + int start_tensor_this_launch; +}; + +template +class multi_tensor_apply_kernel { +public: + multi_tensor_apply_kernel(int chunk_size, + volatile int* noop_flag, + T tl, + U callable, + ArgTypes... args) + : chunk_size(chunk_size), noop_flag(noop_flag), tl(tl), callable(callable), args(args...) + { + } + + // This should be identical to original __global__ function + static void inline __global__function(int chunk_size, + volatile int* noop_flag, + T tl, + U callable, + ArgTypes... args) + { + callable(chunk_size, noop_flag, tl, args...); + } + + // If global function template contains parameter pack, + // we only deal with parameter pack at the end of template parameter list + template + static void inline __tuple_expand_driver(int chunk_size, + volatile int* noop_flag, + T tl, + U callable, + Tuple args, + std::index_sequence) + { + __global__function(chunk_size, noop_flag, tl, callable, std::get(args)...); + } + + // + // Because __global__ function can't really use any reference types, we can sure that args + // are all good behaviors + // + void operator()(sycl::nd_item<3>) const + { + __tuple_expand_driver(chunk_size, + noop_flag, + tl, + callable, + args, + std::make_index_sequence()); + } + +private: + int chunk_size; + volatile int* noop_flag; + T tl; + U callable; + std::tuple args; +}; + +// to make sure multi_tensor_apply_kernel can be used in sycl::buffer +namespace sycl { +template +struct is_device_copyable> : std::true_type {}; +} // namespace sycl + +template +void multi_tensor_apply(int block_size, + int chunk_size, + const at::Tensor& noop_flag, + const std::vector>& tensor_lists, + T callable, + ArgTypes... args) +{ + TORCH_CHECK(tensor_lists.size() == depth, "tensor_lists.size() != depth"); + int len0 = tensor_lists[0].size(); + TORCH_CHECK(len0 > 0, "tensor_lists[0].size() is not > 0"); + auto ref_device = tensor_lists[0][0].device(); + TORCH_CHECK(ref_device.type() == at::kXPU, "expected input to be on cuda"); + for (int l = 0; l < tensor_lists.size(); l++) // No range-based for because I need indices + { + TORCH_CHECK(tensor_lists[l].size() == len0, "Size mismatch among tensor lists"); + for (int t = 0; t < tensor_lists[l].size(); t++) { + // TODO: Print which tensor fails. + bool contiguous_memory = tensor_lists[l][t].is_contiguous(); +#ifdef VERSION_GE_1_5 + contiguous_memory = (contiguous_memory || + tensor_lists[l][t].is_contiguous(at::MemoryFormat::ChannelsLast)); +#endif + TORCH_CHECK(contiguous_memory, "A tensor was not contiguous."); + TORCH_CHECK(tensor_lists[l][t].device() == ref_device, + "A tensor was not on the same device as the first tensor"); + TORCH_CHECK(tensor_lists[l][t].numel() == tensor_lists[0][t].numel(), "Size mismatch"); + } + } + + int ntensors = tensor_lists[0].size(); + + TensorListMetadata tl; + + /* const at::cuda::OptionalCUDAGuard device_guard(device_of(tensor_lists[0][0])); */ + auto stream = at::cuda::getCurrentCUDAStream(); + + tl.start_tensor_this_launch = 0; + int loc_block_info = 0; + int loc_tensor_info = 0; + for (int t = 0; t < ntensors; t++) { + tl.sizes[loc_tensor_info] = tensor_lists[0][t].numel(); + for (int d = 0; d < depth; d++) + tl.addresses[d][loc_tensor_info] = tensor_lists[d][t].data_ptr(); + loc_tensor_info++; + + int chunks_this_tensor = (tensor_lists[0][t].numel() + chunk_size - 1) / chunk_size; + + for (int chunk = 0; chunk < chunks_this_tensor; chunk++) { + // std::cout << chunks_this_tensor << std::endl; + tl.block_to_tensor[loc_block_info] = loc_tensor_info - 1; + tl.block_to_chunk[loc_block_info] = chunk; + loc_block_info++; + + bool tensors_full = (loc_tensor_info == depth_to_max_tensors[depth - 1] && + chunk == chunks_this_tensor - 1); + bool blocks_full = (loc_block_info == depth_to_max_blocks[depth - 1]); + bool last_chunk = (t == ntensors - 1 && chunk == chunks_this_tensor - 1); + if (tensors_full || blocks_full || last_chunk) { + // using accscalar_t = acc_type; + /* multi_tensor_apply_kernel, T, ArgTypes...> + * fn(chunk_size, noop_flag.DATA_PTR(), tl, callable, args...); */ + if constexpr (sizeof(multi_tensor_apply_kernel( + chunk_size, noop_flag.DATA_PTR(), tl, callable, args...)) < + 2048) { + ((sycl::queue*)(stream)) + ->parallel_for( + sycl::nd_range<3>(sycl::range<3>(1, 1, loc_block_info) * + sycl::range<3>(1, 1, block_size), + sycl::range<3>(1, 1, block_size)), + multi_tensor_apply_kernel( + chunk_size, noop_flag.DATA_PTR(), tl, callable, args...)); + } else { + auto capture = multi_tensor_apply_kernel( + chunk_size, noop_flag.DATA_PTR(), tl, callable, args...); + sycl::buffer params(const_cast(&capture), + sycl::range<1>(1)); + stream->submit([&](sycl::handler& cgh) { + auto device_params = + params.template get_access(cgh); + cgh.parallel_for(sycl::nd_range<3>(sycl::range<3>(1, 1, loc_block_info) * + sycl::range<3>(1, 1, block_size), + sycl::range<3>(1, 1, block_size)), + [=](sycl::nd_item<3> item) { device_params[0](item); }); + }); + } + 0; + + // Reset. The control flow possibilities here make my brain hurt. + loc_block_info = 0; + if (chunk == chunks_this_tensor - 1) { + // std::cout << "Hit case 1 " << cond1 << " " << cond2 << " " << cond3 << + // std::endl; + loc_tensor_info = 0; + tl.start_tensor_this_launch = t + 1; + } else { + // std::cout << "Hit case 2 " << cond1 << " " << cond2 << " " << cond3 << + // std::endl; + tl.sizes[0] = tl.sizes[loc_tensor_info - 1]; + for (int d = 0; d < depth; d++) + tl.addresses[d][0] = tl.addresses[d][loc_tensor_info - 1]; + loc_tensor_info = 1; + tl.start_tensor_this_launch = t; + } + } + } + } +} diff --git a/csrc/xpu/common/custom_cuda_kernel.dp.cpp b/csrc/xpu/common/custom_cuda_kernel.dp.cpp new file mode 100644 index 000000000000..cfd004ef1357 --- /dev/null +++ b/csrc/xpu/common/custom_cuda_kernel.dp.cpp @@ -0,0 +1,92 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 + +// DeepSpeed Team + +#include + +inline void has_capability_or_fail(const sycl::device& dev, + const std::initializer_list& props) +{ + for (const auto& it : props) { + if (dev.has(it)) continue; + switch (it) { + case sycl::aspect::fp64: + throw std::runtime_error("'double' is not supported in '" + + dev.get_info() + "' device"); + break; + case sycl::aspect::fp16: + throw std::runtime_error("'half' is not supported in '" + + dev.get_info() + "' device"); + break; + default: +#define __SYCL_ASPECT(ASPECT, ID) \ + case sycl::aspect::ASPECT: return #ASPECT; +#define __SYCL_ASPECT_DEPRECATED(ASPECT, ID, MESSAGE) __SYCL_ASPECT(ASPECT, ID) +#define __SYCL_ASPECT_DEPRECATED_ALIAS(ASPECT, ID, MESSAGE) + auto getAspectNameStr = [](sycl::aspect AspectNum) -> std::string { + switch (AspectNum) { +#include +#include + default: return "unknown aspect"; + } + }; +#undef __SYCL_ASPECT_DEPRECATED_ALIAS +#undef __SYCL_ASPECT_DEPRECATED +#undef __SYCL_ASPECT + throw std::runtime_error("'" + getAspectNameStr(it) + "' is not supported in '" + + dev.get_info() + "' device"); + } + break; + } +} + +void param_update_kernel(const float* input, sycl::half* output, int size) +{ + auto item_ct1 = sycl::ext::oneapi::experimental::this_nd_item<3>(); + int id = item_ct1.get_group(2) * item_ct1.get_local_range(2) + item_ct1.get_local_id(2); + + if (id < size) { output[id] = (sycl::half)input[id]; } +} + +void launch_param_update(const float* input, sycl::half* output, int size, sycl::queue* stream) +{ + int threads = 1024; + + sycl::range<3> grid_dim(1, 1, (size - 1) / threads + 1); + sycl::range<3> block_dim(1, 1, threads); + + { + has_capability_or_fail(stream->get_device(), {sycl::aspect::fp16}); + stream->parallel_for( + sycl::nd_range<3>(grid_dim * block_dim, block_dim), + [=](sycl::nd_item<3> item_ct1) { param_update_kernel(input, output, size); }); + } +} + +void param_update_kernel_half(const float* input, sycl::half* output, int size) +{ + auto item_ct1 = sycl::ext::oneapi::experimental::this_nd_item<3>(); + int id = item_ct1.get_group(2) * item_ct1.get_local_range(2) + item_ct1.get_local_id(2); + sycl::half2* output_cast = reinterpret_cast(output); + if (id < size) { + float input_f = input[id]; + sycl::half2* input_h = reinterpret_cast(&input_f); + output_cast[id] = *input_h; + } +} + +void launch_param_update_half(const float* input, sycl::half* output, int size, sycl::queue* stream) +{ + int threads = 1024; + size /= 2; + sycl::range<3> grid_dim(1, 1, (size - 1) / threads + 1); + sycl::range<3> block_dim(1, 1, threads); + + { + has_capability_or_fail(stream->get_device(), {sycl::aspect::fp16}); + stream->parallel_for( + sycl::nd_range<3>(grid_dim * block_dim, block_dim), + [=](sycl::nd_item<3> item_ct1) { param_update_kernel_half(input, output, size); }); + } +} diff --git a/csrc/xpu/includes/compat.h b/csrc/xpu/includes/compat.h new file mode 100755 index 000000000000..6d54446d472e --- /dev/null +++ b/csrc/xpu/includes/compat.h @@ -0,0 +1,19 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 + +// DeepSpeed Team + +/* +Copyright NVIDIA/apex +This file is adapted from fused adam in NVIDIA/apex, commit a109f85 +*/ + +#ifndef TORCH_CHECK +#define TORCH_CHECK AT_CHECK +#endif + +#ifdef VERSION_GE_1_3 +#define DATA_PTR data_ptr +#else +#define DATA_PTR data +#endif diff --git a/csrc/xpu/includes/cpu_adagrad.h b/csrc/xpu/includes/cpu_adagrad.h new file mode 100644 index 000000000000..660f860917f6 --- /dev/null +++ b/csrc/xpu/includes/cpu_adagrad.h @@ -0,0 +1,120 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 + +// DeepSpeed Team + +#pragma once + +#define NOMINMAX // Windows idiosyncrasy + // https://stackoverflow.com/questions/4913922/possible-problems-with-nominmax-on-visual-c + +#include +#include +#include "simd.h" + +typedef unsigned short ds_half_precision_t; + +#define STEP(SPAN) \ + void Step_##SPAN(float* _params, \ + float* grads, \ + float* _exp_avg_sq, \ + size_t _param_size, \ + ds_half_precision_t* dev_param = nullptr, \ + bool half_precision = false); + +class Adagrad_Optimizer { +public: + Adagrad_Optimizer(float alpha = 1e-2, float eps = 1e-8, float weight_decay = 0) + : _alpha(alpha), _eps(eps), _weight_decay(weight_decay) + { + } + ~Adagrad_Optimizer() {} +#if defined(__AVX512__) or defined(__AVX256__) + template + void Step_AVX(size_t* rounded_size, + float* _params, + float* grads, + float* _exp_avg_sq, + size_t param_size, + ds_half_precision_t* dev_param = nullptr, + bool half_precision = false); +#endif + STEP(1) + STEP(4) + STEP(8) + inline void IncrementStep(size_t step) + { + _step++; + if (_step != step) { _step = step; } + } + inline void update_state(float lr, float epsilon, float weight_decay) + { + _alpha = lr; + _eps = epsilon; + _weight_decay = weight_decay; + } + +private: + float _alpha; + float _eps; + float _weight_decay; + + float _betta1_t; + float _betta2_t; + size_t _step; +}; + +#if defined(__AVX512__) or defined(__AVX256__) +template +void Adagrad_Optimizer::Step_AVX(size_t* rounded_size, + float* _params, + float* grads, + float* _exp_avg_sq, + size_t _param_size, + ds_half_precision_t* dev_params, + bool half_precision) +{ + size_t new_rounded_size = 0; + AVX_Data eps_4; + eps_4.data = SIMD_SET(_eps); + + float step_size = -1 * _alpha; + AVX_Data step_size_4; + step_size_4.data = SIMD_SET(step_size); + + AVX_Data weight_decay4; + if (_weight_decay > 0) weight_decay4.data = SIMD_SET(_weight_decay); + new_rounded_size = ROUND_DOWN(_param_size, SIMD_WIDTH * span); + for (size_t t = 0; t < new_rounded_size; t += TILE) { + size_t copy_size = TILE; + if ((t + TILE) > new_rounded_size) copy_size = new_rounded_size - t; + size_t offset = copy_size + t; +#pragma omp parallel for + for (size_t i = t; i < offset; i += SIMD_WIDTH * span) { + AVX_Data grad_4[span]; + simd_load(grad_4, grads + i, half_precision); + + AVX_Data momentum_4[span]; + simd_load(momentum_4, grads + i, false); + + AVX_Data variance_4[span]; + simd_load(variance_4, _exp_avg_sq + i, false); + + AVX_Data param_4[span]; + simd_load(param_4, _params + i, half_precision); + + if (_weight_decay > 0) { simd_fma(grad_4, param_4, weight_decay4, grad_4); } + + simd_fma(variance_4, grad_4, grad_4, variance_4); + simd_sqrt(grad_4, variance_4); + simd_add(grad_4, grad_4, eps_4); + simd_div(grad_4, momentum_4, grad_4); + simd_fma(param_4, grad_4, step_size_4, param_4); + + simd_store(_params + i, param_4, half_precision); + simd_store(_exp_avg_sq + i, variance_4, false); + } + } + *rounded_size = new_rounded_size; +} +#endif diff --git a/csrc/xpu/includes/cpu_adam.h b/csrc/xpu/includes/cpu_adam.h new file mode 100644 index 000000000000..7bc0364c569d --- /dev/null +++ b/csrc/xpu/includes/cpu_adam.h @@ -0,0 +1,237 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 + +// DeepSpeed Team + +#pragma once + +#define NOMINMAX // Windows idiosyncrasy + // https://stackoverflow.com/questions/4913922/possible-problems-with-nominmax-on-visual-c + +#include +#include +#include +#include "simd.h" + +#include +typedef unsigned short ds_half_precision_t; + +#define STEP(SPAN) \ + void Step_##SPAN(float* _params, \ + float* grads, \ + float* _exp_avg, \ + float* _exp_avg_sq, \ + size_t _param_size, \ + ds_half_precision_t* dev_param = nullptr, \ + bool half_precision = false); + +class Adam_Optimizer { +public: + Adam_Optimizer(float alpha = 1e-3, + float betta1 = 0.9, + float betta2 = 0.999, + float eps = 1e-8, + float weight_decay = 0, + bool adamw_mode = true) + : _alpha(alpha), + _betta1(betta1), + _betta2(betta2), + _eps(eps), + _weight_decay(weight_decay), + _betta1_t(1.0), + _betta2_t(1.0), + _step(0), + _adamw_mode(adamw_mode) + { + } + ~Adam_Optimizer() {} + +#if defined(__AVX512__) or defined(__AVX256__) + template + void Step_AVX(size_t* rounded_size, + float* _params, + float* grads, + float* _exp_avg, + float* _exp_avg_sq, + size_t param_size, + ds_half_precision_t* dev_param = nullptr, + bool half_precision = false); +#endif + STEP(1) + STEP(4) + STEP(8) + inline void IncrementStep(size_t step, float beta1, float beta2) + { + if (beta1 != _betta1 || beta2 != _betta2) { + _step = step; + _betta1 = beta1; + _betta2 = beta2; + _betta1_t = std::pow(_betta1, step); + _betta2_t = std::pow(_betta2, step); + } else { + _step++; + if (_step != step) { + _betta1_t = std::pow(_betta1, step); + _betta2_t = std::pow(_betta2, step); + _step = step; + } else { + _betta1_t *= _betta1; + _betta2_t *= _betta2; + } + } + } + inline void update_state(float lr, float epsilon, float weight_decay, bool bias_correction) + { + _alpha = lr; + _eps = epsilon; + _weight_decay = weight_decay; + + _bias_correction1 = 1.0f; + _bias_correction2 = 1.0f; + if (bias_correction == 1) { + _bias_correction1 = 1 - _betta1_t; + _bias_correction2 = 1 / sqrt(1 - _betta2_t); + } + } + +private: + float _alpha; + float _betta1; + float _betta2; + float _eps; + float _weight_decay; + + float _betta1_t; + float _betta2_t; + size_t _step; + + float _bias_correction1; + float _bias_correction2; + + bool _adamw_mode; +}; + +#if defined(__AVX512__) or defined(__AVX256__) +template +void Adam_Optimizer::Step_AVX(size_t* rounded_size, + float* _params, + float* grads, + float* _exp_avg, + float* _exp_avg_sq, + size_t _param_size, + ds_half_precision_t* dev_params, + bool half_precision) +{ + size_t new_rounded_size = 0; + int rshft = half_precision ? 1 : 0; + + AVX_Data betta1_4; + betta1_4.data = SIMD_SET(_betta1); + AVX_Data betta2_4; + betta2_4.data = SIMD_SET(_betta2); + + float betta1_minus1 = 1 - _betta1; + float betta2_minus1 = 1 - _betta2; + AVX_Data betta1_minus1_4; + betta1_minus1_4.data = SIMD_SET(betta1_minus1); + AVX_Data betta2_minus1_4; + betta2_minus1_4.data = SIMD_SET(betta2_minus1); + + AVX_Data bias2_sqrt; + bias2_sqrt.data = SIMD_SET(_bias_correction2); + + AVX_Data eps_4; + eps_4.data = SIMD_SET(_eps); + + float step_size = -1 * _alpha / _bias_correction1; + AVX_Data step_size_4; + step_size_4.data = SIMD_SET(step_size); + + float w_decay = -1 * _alpha * _weight_decay; + AVX_Data weight_decay4; + if (_weight_decay > 0) + weight_decay4.data = (_adamw_mode ? SIMD_SET(w_decay) : SIMD_SET(_weight_decay)); + new_rounded_size = ROUND_DOWN(_param_size, SIMD_WIDTH * span); + for (size_t t = 0; t < new_rounded_size; t += TILE) { + size_t copy_size = TILE; + if ((t + TILE) > new_rounded_size) copy_size = new_rounded_size - t; + size_t offset = copy_size + t; +#pragma omp parallel for + for (size_t i = t; i < offset; i += SIMD_WIDTH * span) { + AVX_Data grad_4[span]; + simd_load(grad_4, grads + (i >> rshft), half_precision); + + AVX_Data momentum_4[span]; + simd_load(momentum_4, _exp_avg + i, false); + + AVX_Data variance_4[span]; + simd_load(variance_4, _exp_avg_sq + i, false); + + AVX_Data param_4[span]; + simd_load(param_4, _params + (i >> rshft), half_precision); + + if (_weight_decay > 0 && !_adamw_mode) { + simd_fma(grad_4, param_4, weight_decay4, grad_4); + } + + simd_mul(momentum_4, momentum_4, betta1_4); + simd_fma(momentum_4, grad_4, betta1_minus1_4, momentum_4); + simd_mul(variance_4, variance_4, betta2_4); + simd_mul(grad_4, grad_4, grad_4); + simd_fma(variance_4, grad_4, betta2_minus1_4, variance_4); + simd_sqrt(grad_4, variance_4); + simd_fma(grad_4, grad_4, bias2_sqrt, eps_4); + simd_div(grad_4, momentum_4, grad_4); + + if (_weight_decay > 0 && _adamw_mode) { + simd_fma(param_4, param_4, weight_decay4, param_4); + } + + simd_fma(param_4, grad_4, step_size_4, param_4); + + simd_store(_params + (i >> rshft), param_4, half_precision); + simd_store(_exp_avg + i, momentum_4, false); + simd_store(_exp_avg_sq + i, variance_4, false); + } + } + *rounded_size = new_rounded_size; +} +#endif + +int create_adam_optimizer(int optimizer_id, + float alpha = 1e-3, + float betta1 = 0.9, + float betta2 = 0.999, + float eps = 1e-8, + float weight_decay = 0, + bool adamw_mode = true, + bool should_log = false); + +int ds_adam_step(int optimizer_id, + size_t step, + float lr, + float beta1, + float beta2, + float epsilon, + float weight_decay, + bool bias_correction, + torch::Tensor& params, + torch::Tensor& grads, + torch::Tensor& exp_avg, + torch::Tensor& exp_avg_sq); + +int ds_adam_step_plus_copy(int optimizer_id, + size_t step, + float lr, + float beta1, + float beta2, + float epsilon, + float weight_decay, + bool bias_correction, + torch::Tensor& params, + torch::Tensor& grads, + torch::Tensor& exp_avg, + torch::Tensor& exp_avg_sq, + torch::Tensor& gpu_params); + +int destroy_adam_optimizer(int optimizer_id); diff --git a/csrc/xpu/includes/simd.h b/csrc/xpu/includes/simd.h new file mode 100644 index 000000000000..097e2d8585cc --- /dev/null +++ b/csrc/xpu/includes/simd.h @@ -0,0 +1,198 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 + +// DeepSpeed Team + +#pragma once + +#if (__x86_64__ || __i386__) +#include +#include +#endif + +#define TILE (128 * 1024 * 1024) +#if defined(__AVX512__) or defined(__AVX256__) + +#define ROUND_DOWN(size, step) ((size) & ~((step) - 1)) + +#if defined(__AVX512__) +#define SIMD_STORE(a, d) _mm512_storeu_ps(a, d) +#define SIMD_LOAD(x) _mm512_loadu_ps(x) +#define SIMD_SET(x) _mm512_set1_ps(x) +#define SIMD_ADD(x, y) _mm512_add_ps(x, y) +#define SIMD_MUL(x, y) _mm512_mul_ps(x, y) +#define SIMD_FMA(x, y, c) _mm512_fmadd_ps(x, y, c) +#define SIMD_SQRT(x) _mm512_sqrt_ps(x) +#define SIMD_DIV(x, y) _mm512_div_ps(x, y) +#define SIMD_AND(x, y) _mm512_and_ps(x, y) +#define SIMD_ANDNOT(x, y) _mm512_andnot_ps(x, y) +#define SIMD_OR(x, y) _mm512_or_ps(x, y) +#define SIMD_XOR(x, y) _mm512_xor_ps(x, y) +#define SIMD_WIDTH 16 + +#define SIMD_LOAD2(x, h) \ + ((h) ? _mm512_cvtph_ps(_mm256_castps_si256(_mm256_loadu_ps(x))) : _mm512_loadu_ps(x)) +#define SIMD_STORE2(x, d, h) \ + ((h) ? _mm256_store_ps(x, _mm256_castsi256_ps(_mm512_cvtps_ph(d, _MM_FROUND_TO_NEAREST_INT))) \ + : _mm512_storeu_ps(x, d)) + +#define INTV __m256i +#elif defined(__AVX256__) +#define SIMD_STORE(a, d) _mm256_storeu_ps(a, d) +#define SIMD_LOAD(x) _mm256_loadu_ps(x) +#define SIMD_SET(x) _mm256_set1_ps(x) +#define SIMD_ADD(x, y) _mm256_add_ps(x, y) +#define SIMD_MUL(x, y) _mm256_mul_ps(x, y) +#define SIMD_FMA(x, y, c) _mm256_fmadd_ps(x, y, c) +#define SIMD_SQRT(x) _mm256_sqrt_ps(x) +#define SIMD_DIV(x, y) _mm256_div_ps(x, y) +#define SIMD_AND(x, y) _mm256_and_ps(x, y) +#define SIMD_ANDNOT(x, y) _mm256_andnot_ps(x, y) +#define SIMD_OR(x, y) _mm256_or_ps(x, y) +#define SIMD_XOR(x, y) _mm256_xor_ps(x, y) +#define SIMD_WIDTH 8 + +#define SIMD_LOAD2(x, h) \ + ((h) ? _mm256_cvtph_ps(_mm_loadu_si128((const __m128i*)x)) : _mm256_loadu_ps(x)) +#define SIMD_STORE2(x, d, h) \ + ((h) ? _mm_store_ps(x, _mm_castsi128_ps(_mm256_cvtps_ph(d, _MM_FROUND_TO_NEAREST_INT))) \ + : _mm256_storeu_ps(x, d)) + +#define INTV __m128i +#endif + +union AVX_Data { +#if defined(__AVX512__) + __m512 data; +#elif defined(__AVX256__) + __m256 data; +#endif + // float data_f[16]; +}; + +template +inline void simd_store(float* dst, AVX_Data* src, bool half_precision) +{ + size_t width = (half_precision ? SIMD_WIDTH / 2 : SIMD_WIDTH); +#pragma unroll + for (size_t i = 0; i < span; ++i) { SIMD_STORE2(dst + width * i, src[i].data, half_precision); } +} +template +inline void simd_load(AVX_Data* dst, float* src, bool half_precision) +{ + size_t width = (half_precision ? 1 : SIMD_WIDTH); +#pragma unroll + for (size_t i = 0; i < span; ++i) { dst[i].data = SIMD_LOAD2(src + width * i, half_precision); } +} +template +inline void simd_fma(AVX_Data* dst, AVX_Data* src_m_l, AVX_Data src_m_r, AVX_Data* src_a) +{ +#pragma unroll + for (size_t i = 0; i < span; ++i) { + dst[i].data = SIMD_FMA(src_m_l[i].data, src_m_r.data, src_a[i].data); + } +} +template +inline void simd_fma(AVX_Data* dst, AVX_Data* src_m_l, AVX_Data src_m_r, AVX_Data src_a) +{ +#pragma unroll + for (size_t i = 0; i < span; ++i) { + dst[i].data = SIMD_FMA(src_m_l[i].data, src_m_r.data, src_a.data); + } +} +template +inline void simd_fma(AVX_Data* dst, AVX_Data* src_m_l, AVX_Data* src_m_r, AVX_Data* src_a) +{ +#pragma unroll + for (size_t i = 0; i < span; ++i) { + dst[i].data = SIMD_FMA(src_m_l[i].data, src_m_r[i].data, src_a[i].data); + } +} +template +inline void simd_sqrt(AVX_Data* dst, AVX_Data* src) +{ +#pragma unroll + for (size_t i = 0; i < span; ++i) { dst[i].data = SIMD_SQRT(src[i].data); } +} +template +inline void simd_add(AVX_Data* dst, AVX_Data* src_a_l, AVX_Data src_a_r) +{ +#pragma unroll + for (size_t i = 0; i < span; ++i) { dst[i].data = SIMD_ADD(src_a_l[i].data, src_a_r.data); } +} +template +inline void simd_add(AVX_Data* dst, AVX_Data* src_a_l, AVX_Data* src_a_r) +{ +#pragma unroll + for (size_t i = 0; i < span; ++i) { dst[i].data = SIMD_ADD(src_a_l[i].data, src_a_r[i].data); } +} +template +inline void simd_mul(AVX_Data* dst, AVX_Data* src_a_l, AVX_Data src_a_r) +{ +#pragma unroll + for (size_t i = 0; i < span; ++i) { dst[i].data = SIMD_MUL(src_a_l[i].data, src_a_r.data); } +} +template +inline void simd_mul(AVX_Data* dst, AVX_Data* src_a_l, AVX_Data* src_a_r) +{ +#pragma unroll + for (size_t i = 0; i < span; ++i) { dst[i].data = SIMD_MUL(src_a_l[i].data, src_a_r[i].data); } +} +template +inline void simd_div(AVX_Data* dst, AVX_Data* src_a_l, AVX_Data* src_a_r) +{ +#pragma unroll + for (size_t i = 0; i < span; ++i) { dst[i].data = SIMD_DIV(src_a_l[i].data, src_a_r[i].data); } +} +template +inline void simd_and(AVX_Data* dst, AVX_Data* src_a_l, AVX_Data src_a_r) +{ +#pragma unroll + for (size_t i = 0; i < span; ++i) { dst[i].data = SIMD_AND(src_a_l[i].data, src_a_r.data); } +} +template +inline void simd_and(AVX_Data* dst, AVX_Data* src_a_l, AVX_Data* src_a_r) +{ +#pragma unroll + for (size_t i = 0; i < span; ++i) { dst[i].data = SIMD_AND(src_a_l[i].data, src_a_r[i].data); } +} +template +inline void simd_andnot(AVX_Data* dst, AVX_Data* src_a_l, AVX_Data src_a_r) +{ +#pragma unroll + for (size_t i = 0; i < span; ++i) { dst[i].data = SIMD_ANDNOT(src_a_l[i].data, src_a_r.data); } +} +template +inline void simd_andnot(AVX_Data* dst, AVX_Data* src_a_l, AVX_Data* src_a_r) +{ +#pragma unroll + for (size_t i = 0; i < span; ++i) { + dst[i].data = SIMD_ANDNOT(src_a_l[i].data, src_a_r[i].data); + } +} +template +inline void simd_or(AVX_Data* dst, AVX_Data* src_a_l, AVX_Data src_a_r) +{ +#pragma unroll + for (size_t i = 0; i < span; ++i) { dst[i].data = SIMD_OR(src_a_l[i].data, src_a_r.data); } +} +template +inline void simd_or(AVX_Data* dst, AVX_Data* src_a_l, AVX_Data* src_a_r) +{ +#pragma unroll + for (size_t i = 0; i < span; ++i) { dst[i].data = SIMD_OR(src_a_l[i].data, src_a_r[i].data); } +} +template +inline void simd_xor(AVX_Data* dst, AVX_Data* src_a_l, AVX_Data src_a_r) +{ +#pragma unroll + for (size_t i = 0; i < span; ++i) { dst[i].data = SIMD_XOR(src_a_l[i].data, src_a_r.data); } +} +template +inline void simd_xor(AVX_Data* dst, AVX_Data* src_a_l, AVX_Data* src_a_r) +{ +#pragma unroll + for (size_t i = 0; i < span; ++i) { dst[i].data = SIMD_XOR(src_a_l[i].data, src_a_r[i].data); } +} + +#endif diff --git a/csrc/xpu/includes/type_shim.h b/csrc/xpu/includes/type_shim.h new file mode 100644 index 000000000000..1897afd1fea2 --- /dev/null +++ b/csrc/xpu/includes/type_shim.h @@ -0,0 +1,155 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 + +// DeepSpeed Team + +/* Taken from NVIDIA/apex commit 855808f3fc268e9715d613f3c2e56469d8c986d8 */ +#include +/* #include */ +#include + +// Forward/backward compatibility hack around +// https://github.com/pytorch/pytorch/commit/3aeb78079bcd68282fe9117088e138b77318e288 +// pending more future-proof guidance from upstream. +// struct TypeShim +// { +// const at::Type& payload; +// TypeShim(const at::Type& type) : payload(type) {} +// // Enable trivial conversion to a const at::Type& for pre-3aeb78 +// operator const at::Type&(){ return payload; }; +// // Enable dispatch switch statements to take *this directly for post-3aeb78 +// //operator at::ScalarType(){ return payload.; }; +// }; + +#define DISPATCH_FLOAT_AND_HALF(TYPE, LEVEL, NAME, ...) \ + switch (TYPE) { \ + case at::ScalarType::Float: { \ + using scalar_t_##LEVEL = float; \ + __VA_ARGS__; \ + break; \ + } \ + case at::ScalarType::Half: { \ + using scalar_t_##LEVEL = at::Half; \ + __VA_ARGS__; \ + break; \ + } \ + case at::ScalarType::BFloat16: { \ + using scalar_t_##LEVEL = at::BFloat16; \ + __VA_ARGS__; \ + break; \ + } \ + default: AT_ERROR(#NAME, " not implemented for '", toString(TYPE), "'"); \ + } + +#define DISPATCH_DOUBLE_FLOAT_AND_HALF(TYPE, LEVEL, NAME, ...) \ + switch (TYPE) { \ + case at::ScalarType::Double: { \ + using scalar_t_##LEVEL = double; \ + __VA_ARGS__; \ + break; \ + } \ + case at::ScalarType::Float: { \ + using scalar_t_##LEVEL = float; \ + __VA_ARGS__; \ + break; \ + } \ + case at::ScalarType::Half: { \ + using scalar_t_##LEVEL = at::Half; \ + __VA_ARGS__; \ + break; \ + } \ + case at::ScalarType::BFloat16: { \ + using scalar_t_##LEVEL = at::BFloat16; \ + __VA_ARGS__; \ + break; \ + } \ + default: AT_ERROR(#NAME, " not implemented for '", toString(TYPE), "'"); \ + } + +#define DISPATCH_DOUBLE_AND_FLOAT(TYPE, LEVEL, NAME, ...) \ + switch (TYPE) { \ + case at::ScalarType::Double: { \ + using scalar_t_##LEVEL = double; \ + __VA_ARGS__; \ + break; \ + } \ + case at::ScalarType::Float: { \ + using scalar_t_##LEVEL = float; \ + __VA_ARGS__; \ + break; \ + } \ + default: AT_ERROR(#NAME, " not implemented for '", toString(TYPE), "'"); \ + } + +template +__inline__ __attribute__((always_inline)) T +reduce_block_into_lanes(T* x, + T val, + int lanes = 1, + bool share_result = false) // lanes is intended to be <= 32. +{ + auto item_ct1 = sycl::ext::oneapi::experimental::this_nd_item<3>(); + int tid = item_ct1.get_local_id(2) + item_ct1.get_local_id(1) * item_ct1.get_local_range(2); + int blockSize = item_ct1.get_local_range(2) * + item_ct1.get_local_range(1); // blockSize is intended to be a multiple of 32. + + if (blockSize >= 64) { + x[tid] = val; + /* + DPCT1118:1: SYCL group functions and algorithms must be encountered in converged control + flow. You may need to adjust the code. + */ + /* + DPCT1065:6: Consider replacing sycl::nd_item::barrier() with + sycl::nd_item::barrier(sycl::access::fence_space::local_space) for better performance if + there is no access to global memory. + */ + item_ct1.barrier(); + } + +#pragma unroll + for (int i = (blockSize >> 1); i >= 64; i >>= 1) { + if (tid < i) x[tid] = x[tid] + x[tid + i]; + /* + DPCT1118:2: SYCL group functions and algorithms must be encountered in converged control + flow. You may need to adjust the code. + */ + /* + DPCT1065:7: Consider replacing sycl::nd_item::barrier() with + sycl::nd_item::barrier(sycl::access::fence_space::local_space) for better performance if + there is no access to global memory. + */ + item_ct1.barrier(); + } + + T final; + + if (tid < 32) { + if (blockSize >= 64) + final = x[tid] + x[tid + 32]; + else + final = val; + // __SYNCWARP(); + +#pragma unroll + for (int i = 16; i >= lanes; i >>= 1) + final = final + __shfl_down_sync(0xffffffff, final, i); + } + + if (share_result) { + if (tid < lanes) x[tid] = final; // EpilogueOp + // Make sure the smem result is visible to all warps. + /* + DPCT1118:3: SYCL group functions and algorithms must be encountered in converged control + flow. You may need to adjust the code. + */ + /* + DPCT1065:8: Consider replacing sycl::nd_item::barrier() with + sycl::nd_item::barrier(sycl::access::fence_space::local_space) for better performance if + there is no access to global memory. + */ + item_ct1.barrier(); + } + + return final; +} diff --git a/csrc/xpu/packbits/packing.cpp b/csrc/xpu/packbits/packing.cpp new file mode 100644 index 000000000000..fb09bb16efdd --- /dev/null +++ b/csrc/xpu/packbits/packing.cpp @@ -0,0 +1,100 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 + +// DeepSpeed Team + +#include +#include +#include +#include + +using namespace sycl; +using namespace xpu; + +void packbitskernel(const float* input, uint8_t* output, const int input_size, id<1> item_ct1) +{ + // get the sign bit of each float and pack them into byte + int i = item_ct1; + for (int j = 0; j < 8; ++j) { + int k = i * 8 + j; + int bit = k < input_size && (!sycl::signbit(input[k])); + output[i] |= bit << (7 - j); + } +} + +void unpackbitskernel(const uint8_t* input, float* output, id<1> item_ct1) +{ + // use the bit value to set float, bit 0 -> float -1, bit 1 -> float 1 + int i = item_ct1; + output[i] = (float((input[i / 8] >> (7 - i % 8)) & 1) - 0.5) * 2; +} + +sycl::queue get_current_queue(at::Device device) +{ + c10::impl::VirtualGuardImpl impl(device.type()); + c10::Stream _stream = impl.getStreamFromGlobalPool(device, /*isHighPriority=*/false); + sycl::queue queue = xpu::get_queue_from_stream(_stream); + return queue; +} + +/* +pack float tensor into uint8 tensor. Every eight float elements get packed into one uint8 +if float x >= 0, will be packed as a '1' bit, or will be packed as '0' +Arguments: + tensor: A bool tensor that get packed. + input_size: numel of input tensor + rank: device id in order to get corresponding stream +*/ +at::Tensor packbits(at::Tensor tensor, int input_size, int rank) +{ + at::Device device = "xpu:" + std::to_string(rank); + sycl::queue q = get_current_queue(device); + + int packed_size = (input_size + 7) / 8; + auto unit8_options = at::TensorOptions().dtype(at::kByte).device(at::kXPU); + at::Tensor packed = torch::zeros({packed_size}, unit8_options); + + float* input = (float*)tensor.data_ptr(); + uint8_t* output = (uint8_t*)packed.data_ptr(); + + auto event = q.submit([&](sycl::handler& cgh) { + cgh.parallel_for<>(range(packed_size), [=](id<1> item_ct1) { + packbitskernel(input, output, input_size, item_ct1); + }); + }); + + return packed; +} + +/* +unpack uint8 tensor into float tensor. Every uint8 element get unpacked into eight float +a '1' bit will be converted to a float(1), a '0' bit will be converted to a float(-1). +Arguments: + tensor: A uint8 tensor that get unpacked. + input_size: numel of input tensor + rank: device id in order to get corresponding stream +*/ +at::Tensor unpackbits(at::Tensor tensor, int input_size, int rank) +{ + at::Device device = "xpu:" + std::to_string(rank); + sycl::queue q = get_current_queue(device); + + auto float_options = at::TensorOptions().dtype(at::kFloat).device(at::kXPU); + at::Tensor unpacked = torch::empty({input_size * 8}, float_options); + + uint8_t* input = (uint8_t*)tensor.data_ptr(); + float* output = (float*)unpacked.data_ptr(); + + auto event = q.submit([&](sycl::handler& cgh) { + cgh.parallel_for<>(range(input_size * 8), + [=](id<1> item_ct1) { unpackbitskernel(input, output, item_ct1); }); + }); + + return unpacked; +} + +PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) +{ + m.def("packbits", &packbits, "DeepSpeed XPU packbits (C++)"); + m.def("unpackbits", &unpackbits, "DeepSpeed XPU unpackbits (C++)"); +} diff --git a/deepspeed/__init__.py b/deepspeed/__init__.py index 87b959f56be0..fd1f421b8954 100755 --- a/deepspeed/__init__.py +++ b/deepspeed/__init__.py @@ -12,16 +12,21 @@ from torch.optim.lr_scheduler import _LRScheduler from packaging import version as pkg_version -try: - import triton # noqa: F401 # type: ignore - HAS_TRITON = True -except ImportError: +# Skip Triton import for AMD due to pytorch-triton-rocm module breaking device API in DeepSpeed +if not (hasattr(torch.version, 'hip') and torch.version.hip is not None): + try: + import triton # noqa: F401 # type: ignore + HAS_TRITON = True + except ImportError: + HAS_TRITON = False +else: HAS_TRITON = False from . import ops from . import module_inject from .accelerator import get_accelerator +from .constants import TORCH_DISTRIBUTED_DEFAULT_PORT from .runtime.engine import DeepSpeedEngine, DeepSpeedOptimizerCallable, DeepSpeedSchedulerCallable from .runtime.engine import ADAM_OPTIMIZER, LAMB_OPTIMIZER from .runtime.hybrid_engine import DeepSpeedHybridEngine @@ -32,13 +37,13 @@ from .runtime.config import DeepSpeedConfig, DeepSpeedConfigError from .runtime.activation_checkpointing import checkpointing from .ops.transformer import DeepSpeedTransformerLayer, DeepSpeedTransformerConfig -from .module_inject import replace_transformer_layer, revert_transformer_layer +from .module_inject import replace_transformer_layer, revert_transformer_layer, set_autotp_mode from .utils import log_dist, OnDevice, logger from .comm.comm import init_distributed -from .runtime import zero -from .runtime import DeepSpeedOptimizer, ZeROOptimizer +from .runtime import zero, domino +from .runtime.compiler import is_compile_supported from .pipe import PipelineModule @@ -67,10 +72,12 @@ def initialize(args=None, model_parameters: Optional[torch.nn.Module] = None, training_data: Optional[torch.utils.data.Dataset] = None, lr_scheduler: Optional[Union[_LRScheduler, DeepSpeedSchedulerCallable]] = None, + distributed_port: int = TORCH_DISTRIBUTED_DEFAULT_PORT, mpu=None, dist_init_required: Optional[bool] = None, collate_fn=None, config=None, + mesh_param=None, config_params=None): """Initialize the DeepSpeed Engine. @@ -91,6 +98,8 @@ def initialize(args=None, lr_scheduler: Optional: Learning Rate Scheduler Object or a Callable that takes an Optimizer and returns a Scheduler object. The scheduler object should define a get_lr(), step(), state_dict(), and load_state_dict() methods + distributed_port: Optional: Master node (rank 0)'s free port that needs to be used for communication during distributed training + mpu: Optional: A model parallelism unit object that implements get_{model,data}_parallel_{rank,group,world_size}() @@ -132,18 +141,32 @@ def initialize(args=None, global dist from deepspeed import comm as dist dist_backend = get_accelerator().communication_backend_name() - dist.init_distributed(dist_backend=dist_backend, dist_init_required=dist_init_required) + dist.init_distributed(dist_backend=dist_backend, + distributed_port=distributed_port, + dist_init_required=dist_init_required) + ##TODO: combine reuse mpu as mesh device and vice versa # Set config using config_params for backwards compat if config is None and config_params is not None: config = config_params + mesh_device = None + if mesh_param: + logger.info(f"mesh_param to Initialize mesh device: {mesh_param}") + mesh_device = dist.initialize_mesh_device(mesh_param, ("data_parallel", "sequence_parallel")) + #if config file has sequence parallelize and data parallelize, then use them to initialize mesh device + elif config is not None: + if "sequence_parallel_size" in config and "data_parallel_size" in config: + logger.info(f"config to Initialize mesh device: {config}") + mesh_device = dist.initialize_mesh_device((config["data_parallel_size"], config["sequence_parallel_size"]), \ + ("data_parallel", "sequence_parallel")) + # Check for deepscale_config for backwards compat if hasattr(args, "deepscale_config") and args.deepscale_config is not None: logger.warning("************ --deepscale_config is deprecated, please use --deepspeed_config ************") if hasattr(args, "deepspeed_config"): - assert (args.deepspeed_config is - None), "Not sure how to proceed, we were given both a deepscale_config and deepspeed_config" + assert (args.deepspeed_config + is None), "Not sure how to proceed, we were given both a deepscale_config and deepspeed_config" args.deepspeed_config = args.deepscale_config args.deepscale_config = None @@ -152,9 +175,8 @@ def initialize(args=None, assert config is None, "Not sure how to proceed, we were given deepspeed configs in the deepspeed arguments and deepspeed.initialize() function call" config = args.deepspeed_config assert config is not None, "DeepSpeed requires --deepspeed_config to specify configuration file" - if not isinstance(model, PipelineModule): - config_class = DeepSpeedConfig(config, mpu) + config_class = DeepSpeedConfig(config, mpu, mesh_device=mesh_device) if config_class.hybrid_engine.enabled: engine = DeepSpeedHybridEngine(args=args, model=model, @@ -178,6 +200,7 @@ def initialize(args=None, dist_init_required=dist_init_required, collate_fn=collate_fn, config=config, + mesh_device=mesh_device, config_class=config_class) else: assert mpu is None, "mpu must be None with pipeline parallelism" @@ -198,7 +221,12 @@ def initialize(args=None, # Restore zero.Init context if necessary zero.partition_parameters.restore_init_context() - return_items = [engine, engine.optimizer, engine.training_dataloader, engine.lr_scheduler] + return_items = [ + engine, + engine.optimizer, + engine.training_dataloader, + engine.lr_scheduler, + ] return tuple(return_items) @@ -234,12 +262,6 @@ def _add_core_arguments(parser): type=str, help='Deprecated DeepSpeed json configuration file.') - group.add_argument('--deepspeed_mpi', - default=False, - action='store_true', - help="Run via MPI, this will attempt to discover the necessary variables to initialize torch " - "distributed from the MPI environment") - return parser @@ -292,7 +314,7 @@ def init_inference(model, config=None, **kwargs): .. code-block:: python generator.model = deepspeed.init_inference(generator.model, - mp_size=world_size, + tensor_parallel={"tp_size": world_size}, dtype=torch.half, replace_with_kernel_inject=True) string = generator("DeepSpeed is") @@ -342,3 +364,34 @@ def init_inference(model, config=None, **kwargs): engine = InferenceEngine(model, config=ds_inference_config) return engine + + +def tp_model_init(model, tp_size, dtype): + """ + Initialize the model for tensor parallelism. + + Args: + model (torch.nn.Module): The model to be initialized. + tp_size (int): The tensor parallelism size. + dtype (torch.dtype): The data type to be used for the model. + + Returns: + torch.nn.Module: The initialized model with tensor parallelism. + """ + # avoid re-entry + assert not hasattr( + model, 'ds_autotp_parsed'), "ds_autotp_parsed' attribute already exists in the model, re-entry is not allowed." + + set_autotp_mode(training=True) + + from deepspeed.runtime.tensor_parallel import TpTrainingManager + # The expected usage here is for it to be invoked by transformers package. + + #TODO: We should provide a custom TP mapping solution without using autoTP + #as modifying the autoTP logic may be more difficult for users compared to configuring it + + model = TpTrainingManager(model=model, tp_size=tp_size, dtype=dtype).module + + setattr(model, 'ds_autotp_parsed', True) + + return model diff --git a/deepspeed/autotuning/README.md b/deepspeed/autotuning/README.md index b1fa435364d2..1a9adfede948 100755 --- a/deepspeed/autotuning/README.md +++ b/deepspeed/autotuning/README.md @@ -214,7 +214,7 @@ If `"stage"` is not defined or set as `"all"`, then the overwriting applies to a Currently, the DeepSpeed Autotuner does not tune offloading behaviors but instead uses the values defined in the offload section of the DeepSpeed configuration file. See [Parameter offloading](https://www.deepspeed.ai/docs/config-json/#parameter-offloading) and [Optimizer offloading](https://www.deepspeed.ai/docs/config-json/#optimizer-offloading) for details. -If using NVME for offloading, users can run a benchmark offline to select the optimal `aio` setup in DeepSpeed. Refer to [profiling NVMe and configuring aio param section](https://github.com/microsoft/DeepSpeed/issues/998). +If using NVME for offloading, users can run a benchmark offline to select the optimal `aio` setup in DeepSpeed. Refer to [profiling NVMe and configuring aio param section](https://github.com/deepspeedai/DeepSpeed/issues/998). ## Autotuning Output @@ -336,13 +336,13 @@ The Autotuner stops exploring the space when any of the following conditions mee ## Using Autotuning with Hugging Face -Hugging Face users can set some configurations values to ["auto"](https://huggingface.co/transformers/main_classes/deepspeed.html?highlight=gradient_accumulation_steps#shared-configuration). +Hugging Face users can set some configurations values to ["auto"](https://huggingface.co/docs/transformers/deepspeed#deepspeed-and-trainer-parameters). `"auto"` means the value will be set to the default in Hugging Face or be overwritten using the supplied values from the command line arguments. In DeepSpeed Autotuning, if the user-provided DeepSpeed configuration file has "auto" keywords, they are treated as the value "auto". ## GPT2-large Example -This section shows an example of using DeepSpeed autotuning. For more examples, refer to [autotuning](https://github.com/microsoft/DeepSpeedExamples/tree/master/autotuning) in the DeepSpeedExamples repo. +This section shows an example of using DeepSpeed autotuning. For more examples, refer to [autotuning](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/autotuning) in the DeepSpeedExamples repo. Example training script: @@ -412,4 +412,4 @@ Notation: Hugging Face (HF), DeepSpeed (DS), ZeRO stage (z), gradient accumulati | ---------- | -------------------- | ------------------------ | ------------------------------ | | GPT2-large | 27.874 (mbs = 1) | 56.797 (z = 1, mbs = 2), | 69.061 (z = 1, mbs = 3) | -As we can see the DeepSpeed Autotuner can select a better than hand-tuned configuration with a reasonable number of experiments. Examples in [Autotuning Hugging Face Examples](https://github.com/microsoft/DeepSpeedExamples/tree/master/autotuning/hf#autotuning-hugging-face-examples) would demonstrate the effectiveness of autotuning across different models. +As we can see the DeepSpeed Autotuner can select a better than hand-tuned configuration with a reasonable number of experiments. Examples in [Autotuning Hugging Face Examples](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/autotuning/hf#autotuning-hugging-face-examples) would demonstrate the effectiveness of autotuning across different models. diff --git a/deepspeed/autotuning/autotuner.py b/deepspeed/autotuning/autotuner.py index 3d6d79324201..442a732b8baa 100755 --- a/deepspeed/autotuning/autotuner.py +++ b/deepspeed/autotuning/autotuner.py @@ -71,7 +71,7 @@ def __init__(self, args, active_resources): logger.info(f"Created autotuning experiments directory: {self.exps_dir}") except: logger.error( - f"Failed to create {self.exps_dir}, please check `exps_dir` in the autotuning config file is accessible by all the nodes in the job." + f"Failed to create {self.exps_dir}, please check exps_dir in the autotuning config file is accessible by all the nodes in the job." ) exit(-1) @@ -84,7 +84,7 @@ def __init__(self, args, active_resources): logger.info(f"Created autotuning results directory: {self.exps_dir}") except: logger.error( - f"Failed to create {self.results_dir}, please check `results_dir` in the autotuning config file is accessible by all the nodes in the job." + f"Failed to create {self.results_dir}, please check results_dir in the autotuning config file is accessible by all the nodes in the job." ) exit(-1) @@ -248,8 +248,8 @@ def mp_size(self): return self.autotuning_config.mp_size def max_train_micro_batch_size_per_gpu(self): - if self.max_train_batch_size( - ) and self.max_train_batch_size() > 0: # if the user specifies a max_train_batch_size + if self.max_train_batch_size() and self.max_train_batch_size( + ) > 0: # if the user specifies a max_train_batch_size max_train_micro_batch_size = self.max_train_batch_size() * self.mp_size() // ( self.exp_num_gpus * self.exp_num_nodes) # gradient accumulation steps >=1 return min(self.autotuning_config.max_train_micro_batch_size_per_gpu, max_train_micro_batch_size) @@ -686,6 +686,7 @@ def model_info_profile_run(self): exp_config[DS_CONFIG] = ds_config exp_config['num_gpus'] = self.exp_num_gpus exp_config['num_nodes'] = self.exp_num_nodes + exp_config['hostfile'] = self.args.hostfile exp_path = os.path.join(self.exps_dir, f'{exp_name}.json') with open(exp_path, 'w', buffering=BUFSIZE) as fd: @@ -766,6 +767,7 @@ def run_tuning_micro_batch_sizes(self, tuning_micro_batch_sizes, max_train_batch exp_config[DS_CONFIG] = ds_config exp_config['num_gpus'] = self.exp_num_gpus exp_config['num_nodes'] = self.exp_num_nodes + exp_config['hostfile'] = self.args.hostfile exp_path = os.path.join(self.exps_dir, f'{exp_name}.json') with open(exp_path, 'w', buffering=BUFSIZE) as fd: @@ -967,8 +969,8 @@ def get_min_max_micro_batch_size(self, stage, min_micro_batch_size, calculated_m low = mid + 1 self.update_records(tuning_space_name, exp, metric_val, 1) used_micro_batch_sizes.append(mid) - if prev_metric_val and ( - (metric_val - prev_metric_val) / prev_metric_val) < METRIC_PERCENT_DIFF_CONST: + if prev_metric_val and ((metric_val - prev_metric_val) / + prev_metric_val) < METRIC_PERCENT_DIFF_CONST: logger.info(f"performance plateaus at mbs = {low}") break prev_metric_val = metric_val @@ -1029,8 +1031,8 @@ def get_tuning_micro_batch_size_list(self, min_micro_batch_size, max_micro_batch # NUM_GPUS=$(( ${NUM_WORKERS} * ${NUM_GPUS_PER_WORKER} )) # DP_SIZE=$(( ${NUM_GPUS} / (${PP_SIZE} * ${MP_SIZE}) )) # GRAD_ACC_STEPS=$(( ${TARGET_GLOBAL_BATCH_SIZE} / (${BATCH_SIZE} * ${DP_SIZE}) )) - if self.max_train_batch_size( - ) and self.max_train_batch_size() > 0: # if the user specifies a max_train_batch_size + if self.max_train_batch_size() and self.max_train_batch_size( + ) > 0: # if the user specifies a max_train_batch_size max_train_batch_size_per_gpu = self.max_train_batch_size() * self.mp_size() // (self.exp_num_gpus * self.exp_num_nodes) else: @@ -1060,6 +1062,7 @@ def run_ds_config(self, ds_config, exp_name): exp_config[DS_CONFIG] = ds_config exp_config['num_gpus'] = self.exp_num_gpus exp_config['num_nodes'] = self.exp_num_nodes + exp_config['hostfile'] = self.args.hostfile exp_path = os.path.join(self.exps_dir, f'{exp_name}.json') logger.debug(f'run_ds_config exp_name = {exp_name}') diff --git a/deepspeed/autotuning/scheduler.py b/deepspeed/autotuning/scheduler.py index c265da788305..29610beaccbe 100755 --- a/deepspeed/autotuning/scheduler.py +++ b/deepspeed/autotuning/scheduler.py @@ -5,7 +5,6 @@ import copy -from numpy import BUFSIZE import json import subprocess import sys diff --git a/deepspeed/autotuning/utils.py b/deepspeed/autotuning/utils.py index 8c9a5fa85bf2..b851353520fb 100644 --- a/deepspeed/autotuning/utils.py +++ b/deepspeed/autotuning/utils.py @@ -42,7 +42,7 @@ def find_replace_str(value, replace_dict): if not isinstance(value, str): return str(value) - matches = re.findall(r"\$[A-Za-z0-9_]+", value) + matches = re.findall(r"\$[\w]+", value) for var in matches: var_key = var.replace("$", "").lower() if var_key == "nvme_path": diff --git a/deepspeed/checkpoint/__init__.py b/deepspeed/checkpoint/__init__.py index b9a28ed51088..551b83205772 100644 --- a/deepspeed/checkpoint/__init__.py +++ b/deepspeed/checkpoint/__init__.py @@ -15,6 +15,6 @@ from .zero_checkpoint import ZeROCheckpoint -from .universal_checkpoint import enable_universal_checkpoint +from .universal_checkpoint import enable_universal_checkpoint, SubparamShape from .constants import * diff --git a/deepspeed/checkpoint/constants.py b/deepspeed/checkpoint/constants.py index f809a0c39270..046bc242002f 100644 --- a/deepspeed/checkpoint/constants.py +++ b/deepspeed/checkpoint/constants.py @@ -16,6 +16,7 @@ BASE_OPTIMIZER_STATE = 'base_optimizer_state' BASE_OPTIMIZER_STATE_STEP = 'base_optimizer_state_step' SINGLE_PARTITION_OF_FP32_GROUPS = "single_partition_of_fp32_groups" +PARAM_GROUPS = 'param_groups' GROUP_PADDINGS = 'group_paddings' PARTITION_COUNT = 'partition_count' ZERO_STAGE = 'zero_stage' @@ -73,6 +74,8 @@ # Similarly, load_hp_checkpoint_state has to take the needed actions when loading from universal. PARAM_N_SUB_PARAMS = "param_n_sub_params" +SUB_PARAM_SHAPE = "sub_param_shape" + # Regex list of parameters that require special handling VOCABULARY_PARAMETER_PATTERNS = 'vocabulary_parameter_patterns' PIPELINE_REPLICATED_PARAMETER_PATTERNS = 'pipeline_replicated_parameter_patterns' @@ -80,3 +83,5 @@ PARAMETER_WITH_ROW_PARALLELISM_PATTERNS = 'parameter_with_row_parallelism_patterns' TP_REPLICATED_PARAMETER_PATTERNS = 'tp_replicated_parameter_patterns' PARAMETER_WITH_2_SUB_PARAMS_CAT_DIM_0 = 'parameter_with_2_sub_params_cat_dim_0' +PARAMETER_WITH_SUB_PARAMS = 'parameter_with_sub_params' +SUB_PARAMS_SHAPE = 'sub_params_shape' diff --git a/deepspeed/checkpoint/deepspeed_checkpoint.py b/deepspeed/checkpoint/deepspeed_checkpoint.py index c9d2d4e22e99..9ffc83595e32 100644 --- a/deepspeed/checkpoint/deepspeed_checkpoint.py +++ b/deepspeed/checkpoint/deepspeed_checkpoint.py @@ -4,6 +4,7 @@ # DeepSpeed Team import os +import re from typing import Dict import torch @@ -21,6 +22,7 @@ ARGS_KEY = 'args' CHECKPOINT_INFO_KEY = 'checkpoint_info' ITERATION_KEY = 'iteration' +LAYER_FILE_PREFIX_PATTERN = r'layer_(\d+)-model_.*' SEQUENTIAL_LAYERS = [ 'input_layernorm.weight', 'input_layernorm.bias', 'self_attention.dense.bias', 'post_attention_layernorm.weight', @@ -32,9 +34,18 @@ class DeepSpeedCheckpoint(object): - def __init__(self, dir, tp_degree=None, pp_degree=None, dp_degree=None): + def __init__(self, + dir, + tp_degree=None, + pp_degree=None, + dp_degree=None, + final_layer_norm_idx=FINAL_LAYER_NORM_INDEX): + self.final_layer_norm_idx = final_layer_norm_idx self.dir = dir - self._validate_folder(dir) + + pipeline_parallel = len(get_files_with_prefix(get_files(dir), LAYER_FILE_PREFIX)) > 0 + + self._validate_folder(dir, pipeline_parallel) self.zero_checkpoint = ZeROCheckpoint(dir) @@ -70,7 +81,7 @@ def __init__(self, dir, tp_degree=None, pp_degree=None, dp_degree=None): self.pp_to_transformer_map = self._build_pp_transformer_map() self.transformer_file_map = self._build_transformer_file_map() self.tp_to_embedding_map = self._build_tp_other_layer_map(EMBEDDING_LAYER_INDEX) - self.tp_to_final_norm_map = self._build_tp_other_layer_map(FINAL_LAYER_NORM_INDEX) + self.tp_to_final_norm_map = self._build_tp_other_layer_map(self.final_layer_norm_idx) self._build_global_state() @property @@ -117,7 +128,7 @@ def show_transformer_file_map(self): self._dump_mapping(self.transformer_file_map, 'rank_to_transformer_files') def _build_global_state(self): - sd = torch.load(self.mp_rank_files[0], map_location=torch.device('cpu')) + sd = torch.load(self.mp_rank_files[0], map_location=torch.device('cpu'), weights_only=False) self.global_state[ITERATION_KEY] = sd.get(ITERATION_KEY, 0) self.global_state[ARGS_KEY] = sd.get(ARGS_KEY, None) @@ -134,18 +145,21 @@ def get_embedding_layer_id(self): return self.layer_keys[EMBEDDING_LAYER_INDEX] def get_final_norm_layer_id(self): - return self.layer_keys[FINAL_LAYER_NORM_INDEX] + return self.layer_keys[self.final_layer_norm_idx] def get_iteration(self): if not ITERATION_KEY in self.global_state: - sd = torch.load(self.mp_rank_files[0], map_location=torch.device('cpu')) + sd = torch.load(self.mp_rank_files[0], map_location=torch.device('cpu'), weights_only=False) self.global_state[ITERATION_KEY] = sd.get(ITERATION_KEY, 0) return self.global_state[ITERATION_KEY] def get_embedding_state(self, tp_index: int) -> Dict: assert tp_index in self.tp_to_embedding_map.keys() - sd_list = [torch.load(fname, map_location=torch.device('cpu')) for fname in self.tp_to_embedding_map[tp_index]] + sd_list = [ + torch.load(fname, map_location=torch.device('cpu'), weights_only=False) + for fname in self.tp_to_embedding_map[tp_index] + ] sd = self._merge_state_dicts(sd_list) return sd @@ -155,7 +169,7 @@ def get_embedding_files(self, tp_index: int) -> list: def _get_checkpoint_value(self, key): if not key in self.global_state: - sd = torch.load(self.mp_rank_files[0], map_location=torch.device('cpu')) + sd = torch.load(self.mp_rank_files[0], map_location=torch.device('cpu'), weights_only=False) self.global_state[key] = sd.get(key, None) return self.global_state[key] @@ -170,7 +184,7 @@ def get_2d_parallel_state(self, tp_index: int, pp_index: int) -> dict: assert tp_index < self.tp_degree assert pp_index < self.pp_degree fname_list = self.get_2d_parallel_files(tp_index=tp_index, pp_index=pp_index) - sd_list = [torch.load(fname, map_location=torch.device('cpu')) for fname in fname_list] + sd_list = [torch.load(fname, map_location=torch.device('cpu'), weights_only=False) for fname in fname_list] merged_sd = None for sd in sd_list: @@ -186,7 +200,7 @@ def get_transformer_state(self, tp_index: int, pp_index: int) -> list: assert pp_index < self.pp_degree t_list = [] for fname_list in self.transformer_file_map[(tp_index, pp_index)]: - sd_list = [torch.load(fname, map_location=torch.device('cpu')) for fname in fname_list] + sd_list = [torch.load(fname, map_location=torch.device('cpu'), weights_only=False) for fname in fname_list] sd = self._merge_state_dicts(sd_list) t_list.append(sd) return t_list @@ -197,7 +211,7 @@ def get_pp_transformer_map(self, pp_index: int) -> list: def get_final_norm_state(self, tp_index: int) -> Dict: assert tp_index in self.tp_to_final_norm_map.keys() - sd = torch.load(self.tp_to_final_norm_map[tp_index][0], map_location=torch.device('cpu')) + sd = torch.load(self.tp_to_final_norm_map[tp_index][0], map_location=torch.device('cpu'), weights_only=False) return sd def get_final_norm_files(self, tp_index: int) -> list: @@ -205,7 +219,10 @@ def get_final_norm_files(self, tp_index: int) -> list: return self.tp_to_final_norm_map[tp_index] def _build_tp_other_layer_map(self, layer_index: int): - assert layer_index < len(self.layer_files) + data_map = {} + if len(self.layer_files) < 1: + return data_map + assert layer_index <= len(self.layer_files) layer_files = get_files_with_prefix(self.layer_files, self.layer_keys[layer_index]) layer_file_partitions = partition_data(layer_files, self.tp_degree) data_map = {i: flist for i, flist in enumerate(layer_file_partitions)} @@ -219,9 +236,13 @@ def get_2d_parallel_files(self, tp_index: int, pp_index: int) -> list: def _build_pp_transformer_map(self): data_map = {} - transformer_layers = self.layer_keys[1:-1] - layers_per_pp = len(transformer_layers) // self.pp_degree - data_map = {i: transformer_layers[i * layers_per_pp:(i + 1) * layers_per_pp] for i in range(0, self.pp_degree)} + if self.pp_degree > 0: + transformer_layers = self.layer_keys[1:self.final_layer_norm_idx] + layers_per_pp = len(transformer_layers) // self.pp_degree + data_map = { + i: transformer_layers[i * layers_per_pp:(i + 1) * layers_per_pp] + for i in range(0, self.pp_degree) + } return data_map def _dump_mapping(self, data_map, map_tag=None): @@ -231,16 +252,16 @@ def _dump_mapping(self, data_map, map_tag=None): print(f'{k} = {v}') def _build_transformer_file_map(self): - transformer_layer_keys = self.layer_keys[1:-1] + transformer_layer_keys = self.layer_keys[1:self.final_layer_norm_idx] file_map = {} # XXX: this is not guaranteed - layers_per_pp = len(transformer_layer_keys) // self.pp_degree - if layers_per_pp == 0: - layers_per_pp = 1 + layers_per_pp = 1 + if self.pp_degree > 0: + layers_per_pp = len(transformer_layer_keys) // self.pp_degree #print(f"{transformer_layer_keys} {layers_per_pp}") for key_index, layer_key in enumerate(transformer_layer_keys): pp_index = key_index // layers_per_pp - layer_files = get_files_with_prefix(self.layer_files, layer_key) + layer_files = get_files_with_prefix(self.layer_files, layer_key + '-') layer_file_partitions = partition_data(layer_files, self.tp_degree) for tp_index in range(self.tp_degree): map_key = (tp_index, pp_index) @@ -252,8 +273,8 @@ def _build_transformer_file_map(self): def _sanity_check(self): assert len(self.mp_rank_files) % self.tp_degree == 0 - assert len(self.layer_keys) > 2 assert self.zero_checkpoint.num_files % (self.pp_degree * self.tp_degree) == 0 + assert self.zero_checkpoint.num_files % (self.tp_degree) == 0 # XXX: fix me - isn't always the case # only true with --pp-partition-method 'type:transformer|embedding' \ # assert (len(self.layer_keys) - 2) % self.pp_degree == 0 @@ -265,11 +286,13 @@ def validate_files(self): def _get_layer_keys(self): key_set = set() - key_len = len(LAYER_FILE_PREFIX) + 2 for file_path in self.layer_files: _, fname = os.path.split(file_path) - key_set.add(fname[:key_len]) - return sorted(list(key_set)) + layer_id = re.search(LAYER_FILE_PREFIX_PATTERN, fname).group(1) + key_set.add(layer_id) + sorted_ids = sorted(list(key_set), key=int) + layer_keys = [LAYER_FILE_PREFIX + str(layer_id) for layer_id in sorted_ids] + return layer_keys def _merge_state_dicts(self, sd_list): merged_sd = {} @@ -282,12 +305,14 @@ def _merge_state_dicts(self, sd_list): return merged_sd - def _validate_folder(self, dir): + def _validate_folder(self, dir, pipeline_parallel): basic_folder_validation(dir) file_list = get_files(dir) - - for file_prefix in [MODEL_FILE_PREFIX, LAYER_FILE_PREFIX, f'{LAYER_FILE_PREFIX}01']: + file_prefix_list = [MODEL_FILE_PREFIX] + if pipeline_parallel: + file_prefix_list.extend([LAYER_FILE_PREFIX, f'{LAYER_FILE_PREFIX}01']) + for file_prefix in file_prefix_list: ckpt_files = get_files_with_prefix(file_list, file_prefix) assert len(ckpt_files) > 0, f'{dir} seems a bogus DeepSpeed checkpoint folder: Cannot find {file_prefix}* files in there.' diff --git a/deepspeed/checkpoint/ds_to_universal.py b/deepspeed/checkpoint/ds_to_universal.py index 8be187aa89c2..f7b75eee66d0 100755 --- a/deepspeed/checkpoint/ds_to_universal.py +++ b/deepspeed/checkpoint/ds_to_universal.py @@ -6,35 +6,44 @@ # DeepSpeed Team from functools import partial +from itertools import chain import argparse import glob import itertools -import multiprocessing +import math +from concurrent.futures import ProcessPoolExecutor import os import re import shutil import torch import tqdm -# from pprint import pprint +#from pprint import pprint from deepspeed.checkpoint import DeepSpeedCheckpoint from deepspeed.checkpoint import ( OPTIMIZER_STATE_DICT, + ZERO_STAGE, BASE_OPTIMIZER_STATE, SINGLE_PARTITION_OF_FP32_GROUPS, + PARAM_GROUPS, PARAM_SLICE_MAPPINGS, PARAM_SHAPES, PARAM, CAT_DIM, PARAM_N_SUB_PARAMS, + SUB_PARAM_SHAPE, VOCAB_TENSOR, UNIVERSAL_CHECKPOINT_INFO, + UNIVERSAL_CHECKPOINT_VERSION_KEY, + UNIVERSAL_CHECKPOINT_VERSION_VALUE, VOCABULARY_PARAMETER_PATTERNS, PIPELINE_REPLICATED_PARAMETER_PATTERNS, TP_REPLICATED_PARAMETER_PATTERNS, PARAMETER_TO_AVERAGE_PATTERNS, PARAMETER_WITH_ROW_PARALLELISM_PATTERNS, PARAMETER_WITH_2_SUB_PARAMS_CAT_DIM_0, + PARAMETER_WITH_SUB_PARAMS, + SubparamShape, ) @@ -60,11 +69,27 @@ def parse_arguments(): dest='strict', action='store_false', help='Do not perform validity checks on converted checkpoint.') + parser.add_argument('--inject_missing_state', + action='store_true', + help='Inject missing checkpoint state into the checkpoint if it is absent.') args = parser.parse_args() print(f'args = {args}') return args +def atoi(text): + return int(text) if text.isdigit() else text + + +def natural_keys(text): + ''' + alist.sort(key=natural_keys) sorts in human order + http://nedbatchelder.com/blog/200712/human_sorting.html + (See Toothy's implementation in the comments) + ''' + return [atoi(c) for c in re.split(r'(\d+)', text)] + + def _create_checkpoint_paths(base_folder, iteration, tp_degree, pp_degree): path_list = [] iter_folder = f'iter_{iteration:07d}' @@ -110,6 +135,9 @@ def extract_zero_shards(dir, ds_checkpoint, indices_3D): fp32=fp32_groups[param_group_id], ) + if "step" in state_groups[param_group_id]: + flat_state["step"] = state_groups[param_group_id]["step"] + for name, fragment_mapping in param_slice_mappings[param_group_id].items(): if pp_index > 0 and any(re.match(pattern, name) for pattern in pipeline_replicated_params): # Skip tied weights that are replicated in first and last pp stages @@ -121,9 +149,33 @@ def extract_zero_shards(dir, ds_checkpoint, indices_3D): fragment_mapping.start, fragment_mapping.numel) +def extract_zero_shards_stage3(optim_files, param_shapes, dp_degree, temp_dir, dp_index): + state_dict = torch.load(optim_files[dp_index], map_location='cpu', weights_only=False) + + flat_state = dict( + exp_avg=state_dict[OPTIMIZER_STATE_DICT]['optimizer_state_dict']['state'][0]["exp_avg"], + exp_avg_sq=state_dict[OPTIMIZER_STATE_DICT]['optimizer_state_dict']['state'][0]["exp_avg_sq"], + fp32=state_dict[OPTIMIZER_STATE_DICT]['fp32_flat_groups'][0], + ) + + offset = 0 + for name, shape in param_shapes.items(): + unpartitioned_numel = shape.numel() + partitioned_numel, _ = _zero_partitioned_param_info(unpartitioned_numel, dp_degree) + padding_free_numel = min(partitioned_numel, abs(unpartitioned_numel - dp_index * partitioned_numel)) + for state_key in flat_state.keys(): + dump_param_fragment(temp_dir, 0, dp_index, state_key, flat_state[state_key], name, offset, + padding_free_numel) + offset += partitioned_numel + + cnt = 0 +def dp_index_to_str(dp_index): + return f"{dp_index:0>2d}" + + def dump_param_fragment(dir, tp_index, dp_index, state_name, state_flat_tensor, param_name, offset, numel): global cnt # temp hack @@ -132,23 +184,47 @@ def dump_param_fragment(dir, tp_index, dp_index, state_name, state_flat_tensor, os.makedirs(param_base_path, exist_ok=True) cnt += 1 - counter = f"{dp_index:0>2d}" - path = os.path.join(param_base_path, f"{state_name}.{counter}") + path = os.path.join(param_base_path, f"{state_name}.{dp_index_to_str(dp_index)}") #print(f"{param_name}: {offset}: {numel} => {path}") - t = state_flat_tensor.narrow(0, offset, numel).clone() - _save_checkpoint(path, t) + # State might be a python int or a tensor + if state_name != "step" and torch.is_tensor(state_flat_tensor): + state_flat_tensor = state_flat_tensor.narrow(0, offset, numel).clone() + _save_checkpoint(path, state_flat_tensor) -def _merge_zero_shards(param_base_path, state, tp_degree, slice_shape): +def _merge_zero_shards(param_base_path, state, tp_degree, slice_shape=None): slices = [] for tp_index in range(tp_degree): prefix_path = os.path.join(param_base_path, str(tp_index), f"{state}") - paths = sorted(list(glob.glob(f"{prefix_path}.*"))) - shards = [torch.load(p) for p in paths] - slice = torch.cat(shards, dim=0).reshape(slice_shape) + paths = glob.glob(f"{prefix_path}.*") + + if len(paths) == 0: + continue + + pattern = re.compile(f"{prefix_path}\\.([0-9]+)") + dp_indices = set() + for p in paths: + m = pattern.match(p) + if m: + dp_indices.add(int(m.group(1))) + else: + raise ValueError(f"Cannot parse dp_rank from {p}") + + paths = [f"{prefix_path}.{dp_index_to_str(dp_index)}" for dp_index in sorted(list(dp_indices))] + shards = [torch.load(p, weights_only=False) for p in paths] + + if state == "step": + assert all(v == shards[0] for v in shards), "All shards must have the same step value" + slice = shards[0] + else: + if slice_shape is None: + slice = torch.cat(shards, dim=0) + else: + slice = torch.cat(shards, dim=0).reshape(slice_shape) + slices.append(slice) return slices @@ -165,8 +241,11 @@ def merge_tp_slices(ds_checkpoint, dir, slice_dir, tp_degree, name_and_shape): parameters_with_row_parallelism = universal_checkpoint_info.get(PARAMETER_WITH_ROW_PARALLELISM_PATTERNS, []) vocabulary_parameters = universal_checkpoint_info.get(VOCABULARY_PARAMETER_PATTERNS, []) parameters_with_2_sub_params_cat_dim_0 = universal_checkpoint_info.get(PARAMETER_WITH_2_SUB_PARAMS_CAT_DIM_0, []) + parameter_with_sub_params = universal_checkpoint_info.get(PARAMETER_WITH_SUB_PARAMS, []) + unmatched_patterns = set(replicated_parameters + parameters_to_average + parameters_with_row_parallelism + vocabulary_parameters + parameters_with_2_sub_params_cat_dim_0) + unmatched_patterns.update(chain.from_iterable(SubparamShape(**s).patterns for s in parameter_with_sub_params)) def get_matched_pattern(patterns_, name_): matched_ = [pattern_ for pattern_ in patterns_ if re.match(pattern_, name_)] @@ -177,6 +256,21 @@ def get_matched_pattern(patterns_, name_): return pattern_ return None + def get_matched_sub_params_pattern(name_): + for subparam_shape_dict in parameter_with_sub_params: + subparam_shape = SubparamShape(**subparam_shape_dict) + for pattern_ in subparam_shape.patterns: + if re.match(pattern_, name_): + unmatched_patterns.discard(pattern_) + return subparam_shape + return None + + matched_sub_params_shape = get_matched_sub_params_pattern(name) + + step_merged = _merge_zero_shards(slice_base_path, "step", tp_degree, shape) + if step_merged: + _save_checkpoint(os.path.join(param_base_path, f"step.pt"), step_merged[0]) + for state in ("fp32", "exp_avg", "exp_avg_sq"): slices = _merge_zero_shards(slice_base_path, state, tp_degree, shape) final_path = os.path.join(param_base_path, f"{state}.pt") @@ -200,6 +294,26 @@ def get_matched_pattern(patterns_, name_): param = torch.cat([merged_chunks_0, merged_chunks_1], dim=cat_dim) ckpt_dict[CAT_DIM] = cat_dim ckpt_dict[PARAM_N_SUB_PARAMS] = 2 + elif matched_sub_params_shape: + merged_chunks = [] + partition_dim = matched_sub_params_shape.partition_dim + + sub_dim_sizes = matched_sub_params_shape.shape[partition_dim] + if not isinstance(sub_dim_sizes, tuple): + sub_dim_sizes = (sub_dim_sizes, ) + + partition_shape = [sum(d) if isinstance(d, tuple) else d for d in matched_sub_params_shape.shape] + partition_shape = [d // tp_degree if i == partition_dim else d for i, d in enumerate(partition_shape)] + slices = [s.view(partition_shape) for s in slices] + + offset = 0 + for sub_dim_size in sub_dim_sizes: + part_sub_dim_size = sub_dim_size // tp_degree + merged_chunks.append( + torch.cat([s.narrow(partition_dim, offset, part_sub_dim_size) for s in slices], dim=partition_dim)) + offset += part_sub_dim_size + param = torch.cat(merged_chunks, dim=partition_dim) + ckpt_dict[SUB_PARAM_SHAPE] = matched_sub_params_shape else: cat_dim = 1 if get_matched_pattern(parameters_with_row_parallelism, name) else 0 # print(f"merge {name} with CAT DIM: {cat_dim}") @@ -221,19 +335,28 @@ def get_matched_pattern(patterns_, name_): return unmatched_patterns -def _get_chunks(l, n): - for i in range(0, len(l), n): - yield l[i:i + n] +def merge_zero3_slices(dp_degree, dir, slice_dir, name): + slice_base_path = os.path.join(slice_dir, name) + param_base_path = os.path.join(dir, name) + + for state in ("fp32", "exp_avg", "exp_avg_sq"): + slices = _merge_zero_shards(slice_base_path, state, 1) + final_path = os.path.join(param_base_path, f"{state}.pt") + _save_checkpoint(final_path, slices[0]) def _do_parallel_work(do_work, work_chunks, num_workers): - pool = multiprocessing.Pool(num_workers) results = [] - for batch in tqdm.tqdm(work_chunks): - res = pool.map(do_work, batch) - results.extend(res) - pool.close() - pool.join() + if num_workers > 1: + with ProcessPoolExecutor(max_workers=num_workers) as executor: + future_list = [executor.submit(do_work, work) for work in work_chunks] + for f in tqdm.tqdm(future_list): + results.append(f.result()) + else: + # No parallel pass for unit testing + # We can't create child processes in tests + for work in tqdm.tqdm(work_chunks): + results.append(do_work(work)) return results @@ -241,21 +364,21 @@ def _extract_zero_shard_files(args, ds_checkpoint, temp_dir): _3d_range_list = list( itertools.product(range(ds_checkpoint.pp_degree), range(ds_checkpoint.tp_degree), range(ds_checkpoint.dp_degree))) - # pprint(f'{_3d_range_list=}') - work_chunks = list(_get_chunks(_3d_range_list, args.num_extract_workers)) - # pprint(f'{work_chunks=}') + #pprint(f'{_3d_range_list=}') - # extract_zero_shards(temp_dir, ds_checkpoint, _3d_range_list[0]) do_work = partial(extract_zero_shards, temp_dir, ds_checkpoint) - _do_parallel_work(do_work, work_chunks, args.num_extract_workers) + _do_parallel_work(do_work, _3d_range_list, args.num_extract_workers) + + +def _extract_zero_shard_files_stage3(args, optim_files, param_shapes, dp_degree, temp_dir): + do_work = partial(extract_zero_shards_stage3, optim_files, param_shapes, dp_degree, temp_dir) + _do_parallel_work(do_work, list(range(dp_degree)), args.num_extract_workers) def _merge_tp_slice_files(args, ds_checkpoint, slice_shapes, temp_dir): - work_chunks = list(_get_chunks(list(slice_shapes.items()), args.num_merge_workers)) - #pprint(work_chunks) zero_output_folder = os.path.join(args.output_folder, "zero") do_work = partial(merge_tp_slices, ds_checkpoint, zero_output_folder, temp_dir, ds_checkpoint.tp_degree) - unmatched_patterns_lists = _do_parallel_work(do_work, work_chunks, args.num_merge_workers) + unmatched_patterns_lists = _do_parallel_work(do_work, list(slice_shapes.items()), args.num_merge_workers) # verify that all patterns were used # if a pattern was not used by any of the workers, then it was not used at all -> assert/alert @@ -267,60 +390,150 @@ def _merge_tp_slice_files(args, ds_checkpoint, slice_shapes, temp_dir): print(f'Warning: Unused patterns={unmatched_patterns} while merging tp slices') +def _merge_zero3_slice_files(args, param_shapes, dp_degree, temp_dir): + zero_output_folder = os.path.join(args.output_folder, "zero") + do_work = partial(merge_zero3_slices, dp_degree, zero_output_folder, temp_dir) + _do_parallel_work(do_work, param_shapes.keys(), args.num_merge_workers) + + +def _zero_partitioned_param_info(unpartitioned_numel, world_size): + remainder = unpartitioned_numel % world_size + padding_numel = (world_size - remainder) if remainder else 0 + partitioned_numel = math.ceil(unpartitioned_numel / world_size) + return partitioned_numel, padding_numel + + +def _parse_model_states_stage3(files): + return torch.load(files[0], map_location=torch.device('cpu'), weights_only=False)[PARAM_SHAPES] + + def _save_optimizer_state(args, ds_checkpoint): sharded_states = [BASE_OPTIMIZER_STATE, PARAM_SLICE_MAPPINGS, SINGLE_PARTITION_OF_FP32_GROUPS] sd = ds_checkpoint.get_zero_checkpoint_state(pp_index=0, tp_index=0, dp_index=0) optim_sd = sd[OPTIMIZER_STATE_DICT] output_sd = {k: v for k, v in optim_sd.items() if k not in sharded_states} + output_sd[PARAM_GROUPS] = optim_sd[BASE_OPTIMIZER_STATE][PARAM_GROUPS] + zero_output_folder = os.path.join(args.output_folder, "zero") + output_file_path = os.path.join(zero_output_folder, f"optimizer_state.pt") + _save_checkpoint(output_file_path, output_sd) + + +def _save_optimizer_state_stage3(args, optim_files): + sd = torch.load(optim_files[0], map_location=torch.device('cpu'), weights_only=False) + output_sd = sd[OPTIMIZER_STATE_DICT] + output_sd[PARAM_GROUPS] = output_sd[OPTIMIZER_STATE_DICT][PARAM_GROUPS] zero_output_folder = os.path.join(args.output_folder, "zero") output_file_path = os.path.join(zero_output_folder, f"optimizer_state.pt") _save_checkpoint(output_file_path, output_sd) +def _get_optim_files(checkpoint_dir): + return _get_checkpoint_files(checkpoint_dir, "*_optim_states.pt") + + +def _get_model_state_files(checkpoint_dir): + return _get_checkpoint_files(checkpoint_dir, "*_model_states.pt") + + +def _get_checkpoint_files(checkpoint_dir, glob_pattern): + ckpt_files = sorted(glob.glob(os.path.join(checkpoint_dir, glob_pattern)), key=natural_keys) + + if len(ckpt_files) == 0: + raise FileNotFoundError(f"can't find {glob_pattern} files in directory '{checkpoint_dir}'") + + return ckpt_files + + +def _get_zero_stage(optim_files): + state_dict = torch.load(optim_files[0], map_location=torch.device('cpu'), weights_only=False) + optimizer_state = state_dict[OPTIMIZER_STATE_DICT] + zero_stage = optimizer_state.get(ZERO_STAGE, 1) + return zero_stage + + +def _inject_missing_state(ds_checkpoint): + if UNIVERSAL_CHECKPOINT_INFO not in ds_checkpoint.global_state: + sd = torch.load(ds_checkpoint.mp_rank_files[0], map_location=torch.device('cpu'), weights_only=False) + if UNIVERSAL_CHECKPOINT_INFO not in sd: + ds_checkpoint.global_state[UNIVERSAL_CHECKPOINT_INFO] = {} + ds_checkpoint.global_state[UNIVERSAL_CHECKPOINT_INFO][ + UNIVERSAL_CHECKPOINT_VERSION_KEY] = UNIVERSAL_CHECKPOINT_VERSION_VALUE + + def _check_for_required_state(ds_checkpoint): universal_checkpoint_info = ds_checkpoint.get_checkpoint_info(UNIVERSAL_CHECKPOINT_INFO) assert universal_checkpoint_info is not None, f'Required {UNIVERSAL_CHECKPOINT_INFO} state is missing in checkpoint. Verify that client creates this state.' -def main(): +def main(args): print(f'Convert DeepSpeed Checkpoint to Universal Checkpoint') - args = parse_arguments() print(f'Converting DeepSpeed checkpoint in {args.input_folder} to Universal checkpoint in {args.output_folder}') - ds_checkpoint = DeepSpeedCheckpoint(args.input_folder) - _check_for_required_state(ds_checkpoint) + optim_files = _get_optim_files(args.input_folder) + zero_stage = _get_zero_stage(optim_files) + + if zero_stage <= 2: + ds_checkpoint = DeepSpeedCheckpoint(args.input_folder) + if args.inject_missing_state: + _inject_missing_state(ds_checkpoint) + else: + _check_for_required_state(ds_checkpoint) + + iteration = ds_checkpoint.get_iteration() + #_create_latest_file(args.output_folder, iteration) + checkpoint_paths = _create_checkpoint_paths(args.output_folder, iteration, ds_checkpoint.tp_degree, + ds_checkpoint.pp_degree) - iteration = ds_checkpoint.get_iteration() - #_create_latest_file(args.output_folder, iteration) - checkpoint_paths = _create_checkpoint_paths(args.output_folder, iteration, ds_checkpoint.tp_degree, - ds_checkpoint.pp_degree) + slice_shapes = [] + for mp_rank_file in ds_checkpoint.mp_rank_files: + mp_sd = torch.load(mp_rank_file, map_location=torch.device('cpu'), weights_only=False) + slice_shapes += mp_sd[PARAM_SHAPES] - slice_shapes = [] - for mp_rank_file in ds_checkpoint.mp_rank_files: - mp_sd = torch.load(mp_rank_file, map_location=torch.device('cpu')) - slice_shapes += mp_sd[PARAM_SHAPES] + # fix back to normal flat dict, merge duplicates for tp>1 + slice_shapes = dict((k, v) for d in slice_shapes for k, v in d.items()) + temp_dir = os.path.join(args.output_folder, 'tmp') - # fix back to normal flat dict, merge duplicates for tp>1 - slice_shapes = dict((k, v) for d in slice_shapes for k, v in d.items()) - temp_dir = os.path.join(args.output_folder, 'tmp') + print('*** 1. Extracting ZeRO fragments') + _extract_zero_shard_files(args, ds_checkpoint, temp_dir) - print('*** 1. Extracting ZeRO fragments') - _extract_zero_shard_files(args, ds_checkpoint, temp_dir) + print('*** 2. Merging slices .....') + _merge_tp_slice_files(args, ds_checkpoint, slice_shapes, temp_dir) - print('*** 2. Merging slices') - _merge_tp_slice_files(args, ds_checkpoint, slice_shapes, temp_dir) + print('*** 3. Saving common optimizer states') + _save_optimizer_state(args, ds_checkpoint) - print('*** 3. Saving common optimizer states') - _save_optimizer_state(args, ds_checkpoint) + if not args.keep_temp_folder: + shutil.rmtree(temp_dir, ignore_errors=True) - if not args.keep_temp_folder: - shutil.rmtree(temp_dir, ignore_errors=True) + # Copy mp* files into output folder + for f in glob.glob(os.path.join(args.input_folder, 'mp*')): + shutil.copy2(f, args.output_folder) - # Copy mp* files into output folder - for f in glob.glob(os.path.join(args.input_folder, 'mp*')): - shutil.copy2(f, args.output_folder) + else: + model_files = _get_model_state_files(args.input_folder) + param_shapes = _parse_model_states_stage3(model_files) + param_shapes = {k: v for d in param_shapes for k, v in d.items()} + dp_degree = len(model_files) + + temp_dir = os.path.join(args.output_folder, 'tmp') + + print('*** 1. Extracting ZeRO fragments') + _extract_zero_shard_files_stage3(args, optim_files, param_shapes, dp_degree, temp_dir) + + print('*** 2. Merging slices .....') + _merge_zero3_slice_files(args, param_shapes, dp_degree, temp_dir) + + print('*** 3. Saving common optimizer states') + _save_optimizer_state_stage3(args, optim_files) + + if not args.keep_temp_folder: + shutil.rmtree(temp_dir, ignore_errors=True) + + # Copy *model_states files into output folder + for f in glob.glob(os.path.join(args.input_folder, '*model_states.pt')): + shutil.copy2(f, args.output_folder) # Update latest to output folder checkpoint_root_folder, step_folder = os.path.split(args.output_folder) @@ -332,4 +545,5 @@ def main(): if __name__ == "__main__": - main() + args = parse_arguments() + main(args) diff --git a/deepspeed/checkpoint/reshape_3d_utils.py b/deepspeed/checkpoint/reshape_3d_utils.py index 7c98b6318336..76e21892c482 100644 --- a/deepspeed/checkpoint/reshape_3d_utils.py +++ b/deepspeed/checkpoint/reshape_3d_utils.py @@ -91,7 +91,7 @@ def get_model_3d_descriptor(dir): else: tp_degree = len(get_files_with_prefix(file_list, MODEL_FILE_PREFIX)) dp_degree = max(1, len(zero_file_list) // tp_degree) - pp_degree = 0 + pp_degree = 1 return model_3d_desc(pp_degree, tp_degree, dp_degree) diff --git a/deepspeed/checkpoint/reshape_utils.py b/deepspeed/checkpoint/reshape_utils.py index e6ef664a4755..85e124dbe3bc 100644 --- a/deepspeed/checkpoint/reshape_utils.py +++ b/deepspeed/checkpoint/reshape_utils.py @@ -4,9 +4,10 @@ # DeepSpeed Team import os +import re import torch from collections import OrderedDict -from .constants import (ZERO_FILE_PREFIX, FP16_ZERO_FILE_PREFIX, BF16_ZERO_FILE_PREFIX, PARTITION_COUNT) +from .constants import (ZERO_FILE_PREFIX, FP16_ZERO_FILE_PREFIX, BF16_ZERO_FILE_PREFIX, MODEL_FILE_PREFIX) def basic_folder_validation(dir): @@ -38,12 +39,28 @@ def get_files(dir): return file_list +def sort_zero_files(files, prefix): + pattern = f"{prefix}([0-9]+)_{MODEL_FILE_PREFIX}([0-9]+)" + rank_pairs = [] + for f in files: + m = re.search(pattern, f) + if m: + dp_rank = int(m.group(1)) + mp_rank = int(m.group(2)) + rank_pairs.append((dp_rank, mp_rank, f)) + else: + raise ValueError(f"Cannot parse dp_rank and mp_rank from {f}") + + sorted_files = sorted(rank_pairs, key=lambda x: (x[0], x[1])) + return [f for _, _, f in sorted_files] + + def get_zero_files(dir): file_list = get_files(dir) for prefix in [ZERO_FILE_PREFIX, FP16_ZERO_FILE_PREFIX, BF16_ZERO_FILE_PREFIX]: zero_files = get_files_with_prefix(file_list, prefix) if len(zero_files) > 0: - return zero_files + return sort_zero_files(zero_files, prefix) return [] diff --git a/deepspeed/checkpoint/universal_checkpoint.py b/deepspeed/checkpoint/universal_checkpoint.py index 5849a834cdd3..266d5a063595 100644 --- a/deepspeed/checkpoint/universal_checkpoint.py +++ b/deepspeed/checkpoint/universal_checkpoint.py @@ -4,23 +4,42 @@ # DeepSpeed Team import os +import re import torch import types -from .constants import (FP32_WEIGHT_KEY, PARAM, VOCAB_TENSOR, CAT_DIM, PARAM_N_SUB_PARAMS) +from typing import List, Tuple, Union +from dataclasses import dataclass +from .constants import (FP32_WEIGHT_KEY, PARAM, VOCAB_TENSOR, CAT_DIM, PARAM_N_SUB_PARAMS, SUB_PARAM_SHAPE) + + +@dataclass +class SubparamShape: + patterns: List[str] + shape: Tuple[Union[Tuple[int], int]] + partition_dim: int def load_hp_checkpoint_state(self, folder, tp_rank, tp_world_size): hp_mapping = self._hp_mapping - optim_state_keys = hp_mapping.get_optim_state_keys() - hp_keys = [FP32_WEIGHT_KEY] + optim_state_keys - checkpoint_files = {key: os.path.join(folder, f"{key}.pt") for key in hp_keys} + hp_mapping.optim_fragment = {} - for file in checkpoint_files.values(): - assert os.path.isfile(file), f'{file} is not a valid file' + hp_keys = [] + for file in os.listdir(folder): + # We expect files named something like "exp_avg.pt", "exp_avg_sq.pt", "fp32.pt" + pattern = r'(.+).pt' + match = re.search(pattern, file) + if match: + hp_keys.append(match.group(1)) + step = None for key in hp_keys: - ckpt_file = checkpoint_files[key] - ckpt_dict = torch.load(ckpt_file) + ckpt_file = os.path.join(folder, f"{key}.pt") + ckpt_dict = torch.load(ckpt_file, weights_only=False) + + if key == "step": + step = ckpt_dict + continue + full_hp_param = ckpt_dict[PARAM] # need to deal with slices that were averaged. @@ -62,17 +81,36 @@ def load_hp_checkpoint_state(self, folder, tp_rank, tp_world_size): assert full_param_numel == tp_world_size * tp_slice_numel, \ f'Loading {ckpt_file} full param numel {full_param_numel} != tensor slice numel {tp_slice_numel} * tp_world_size {tp_world_size}' - dst_tensor = hp_mapping.hp_fragment if key == FP32_WEIGHT_KEY else hp_mapping.get_optim_state_fragment(key) # print(f"{full_hp_param.shape=} {full_param_numel=} {folder=}") # print(f"{dst_tensor.shape=} {dst_tensor.numel()=}{folder=}") + sub_param_shape = ckpt_dict.get(SUB_PARAM_SHAPE, None) # since when we do many to 1 on tp we cat sometimes on dim=0 and other times on dim=1 we have to do exactly the same in reverse # special case is when a single parameter is effectively a container for multiple sub parameters # (more details at PARAM_N_SUB_PARAMS definition) chunk_dim = ckpt_dict.get(CAT_DIM, 0) n_sub_params = ckpt_dict.get(PARAM_N_SUB_PARAMS, 1) - if n_sub_params > 1: + if sub_param_shape: + partition_dim = sub_param_shape.partition_dim + sub_dim_sizes = sub_param_shape.shape[partition_dim] + if not isinstance(sub_dim_sizes, tuple): + sub_dim_sizes = (sub_dim_sizes, ) + + partition_shape = [sum(d) if isinstance(d, tuple) else d for d in sub_param_shape.shape] + full_hp_param = full_hp_param.view(partition_shape) + + offset = 0 + merged_chunks = [] + for sub_dim_size in sub_dim_sizes: + sub_params_tp_slice = full_hp_param.narrow(partition_dim, + offset, sub_dim_size).chunk(tp_world_size, + dim=partition_dim)[tp_rank] + merged_chunks.append(sub_params_tp_slice) + offset += sub_dim_size + tp_hp_slice = torch.cat(merged_chunks, dim=partition_dim) + + elif n_sub_params > 1: sub_params = full_hp_param.chunk(n_sub_params, dim=chunk_dim) sub_params_tp_slice = [p.chunk(tp_world_size, dim=chunk_dim)[tp_rank] for p in sub_params] tp_hp_slice = torch.cat(sub_params_tp_slice, dim=chunk_dim) @@ -84,13 +122,23 @@ def load_hp_checkpoint_state(self, folder, tp_rank, tp_world_size): lp_frag_address = hp_mapping.lp_fragment_address tp_hp_fragment = tp_hp_slice.narrow(0, lp_frag_address.start, lp_frag_address.numel) - assert dst_tensor.numel() == lp_frag_address.numel, \ - f'Load checkpoint {key} dst_tensor numel {dst_tensor.numel()} != src numel {lp_frag_address.numel}' # print(f"{key} SHAPE: {tp_hp_slice.shape=}") # print(f"{key} SHAPE: {dst_tensor.shape=}") # print(f"{key} SHAPE: {tp_hp_fragment.shape=}") - dst_tensor.data.copy_(tp_hp_fragment.data) + + if key == FP32_WEIGHT_KEY: + dst_tensor = hp_mapping.get_hp_fragment() + assert dst_tensor.numel() == lp_frag_address.numel, \ + f'Load checkpoint {key} dst numel {dst_tensor.numel()} != src numel {lp_frag_address.numel}' + dst_tensor.data.copy_(tp_hp_fragment.data) + else: + assert tp_hp_fragment.numel() == lp_frag_address.numel, \ + f'Load checkpoint {key} dst numel {tp_hp_fragment.numel()} != src numel {lp_frag_address.numel}' + + hp_mapping.optim_fragment[key] = tp_hp_fragment.clone().detach() + + return step def enable_universal_checkpoint(param_list): diff --git a/deepspeed/checkpoint/utils.py b/deepspeed/checkpoint/utils.py index c305e8884e83..5964da00728e 100644 --- a/deepspeed/checkpoint/utils.py +++ b/deepspeed/checkpoint/utils.py @@ -51,7 +51,12 @@ def clone_tensors_for_torch_save(item, device=torch.device('cpu')): - copy of ``item`` with cloned tensors on target device """ if torch.is_tensor(item): - return item.detach().clone().to(device) + if type(device) is str: + device = torch.device(device) + if device == item.device: + return item.detach().clone() + else: + return item.detach().to(device) elif isinstance(item, list): return [clone_tensors_for_torch_save(v, device) for v in item] elif isinstance(item, tuple): diff --git a/deepspeed/checkpoint/zero_checkpoint.py b/deepspeed/checkpoint/zero_checkpoint.py index 283b71b64f80..b5721555b07a 100644 --- a/deepspeed/checkpoint/zero_checkpoint.py +++ b/deepspeed/checkpoint/zero_checkpoint.py @@ -54,7 +54,7 @@ def get_state_for_rank(self, pp_index, tp_index, dp_index, keys_to_ignore=[], st state_file_list = self.get_files_for_rank(pp_index, tp_index, dp_index) merged_sd = None for state_file in state_file_list: - sd = torch.load(state_file, map_location=torch.device('cpu')) + sd = torch.load(state_file, map_location=torch.device('cpu'), weights_only=False) for key in keys_to_ignore: sd.pop(key, None) @@ -105,9 +105,11 @@ def _strip_tensor_paddings(self, sd): if group_paddings[key] == 0: continue for state_name, state_value in group_state.items(): - if torch.is_tensor(state_value): + if state_name != "step" and torch.is_tensor(state_value): raw_length = state_value.numel() - group_paddings[key] group_state[state_name] = torch.narrow(state_value, 0, 0, raw_length).clone() + else: + group_state[state_name] = state_value def _clear_group_paddings(self, sd): group_paddings = self._get_optimizer_state(sd, GROUP_PADDINGS) diff --git a/deepspeed/comm/ccl.py b/deepspeed/comm/ccl.py index 6e915d0ca430..8753cf9f70ed 100644 --- a/deepspeed/comm/ccl.py +++ b/deepspeed/comm/ccl.py @@ -8,13 +8,14 @@ import torch from deepspeed.accelerator import get_accelerator +from deepspeed.ops.op_builder import NotImplementedBuilder from .reduce_op import ReduceOp from .torch import TorchBackend def build_ccl_op(): builder = get_accelerator().create_op_builder("CCLCommBuilder") - if builder is None: + if builder is None or isinstance(builder, NotImplementedBuilder): return None ccl_cpp_module = builder.load() print(f'DeepSpeed {builder.absolute_name()} built successfully') @@ -61,7 +62,8 @@ def is_initialized(self): def run_collective(self, name, **kwargs): if name in self.available_coll: - kwargs['group'] = self.get_all_ranks_from_group(kwargs['group']) + if 'group' in kwargs: + kwargs['group'] = self.get_all_ranks_from_group(kwargs['group']) if 'dst' in kwargs: kwargs['dst'] = kwargs['group'].index(kwargs['dst']) if 'src' in kwargs: @@ -71,23 +73,38 @@ def run_collective(self, name, **kwargs): return CCLHandler(self.ccl_comm_op) else: func = "super(CCLBackend, self)." + name - return eval(func)(*(kwargs.values())) + eval(func)(*(kwargs.values())) + return CCLHandler(self.ccl_comm_op) def all_reduce(self, tensor, op=ReduceOp.SUM, group=None, async_op=False): use_caching = False if use_caching: match_id = f"{tensor.size()}-{op}" - return self.run_collective(name="all_reduce_caching", - tensor=tensor, - op=op, - match_id=match_id, - group=group, - async_op=async_op) + name = "all_reduce_caching" + if name in self.available_coll: + group = self.get_all_ranks_from_group(group) + return self.ccl_comm_op.all_reduce_caching(tensor, op, match_id, group, async_op) + else: + return self.run_collective(name=name, + tensor=tensor, + op=op, + match_id=match_id, + group=group, + async_op=async_op) else: - return self.run_collective(name="all_reduce", tensor=tensor, op=op, group=group, async_op=async_op) - - def inference_all_reduce(self, tensor, op=ReduceOp.SUM, group=None, async_op=False): - return self.run_collective(name="inference_all_reduce", tensor=tensor, op=op, group=group, async_op=async_op) + name = "all_reduce" + if name in self.available_coll: + group = self.get_all_ranks_from_group(group) + return self.ccl_comm_op.all_reduce(tensor, op, group, async_op) + else: + return self.run_collective(name=name, tensor=tensor, op=op, group=group, async_op=async_op) + + def inference_all_reduce(self, tensor, op=ReduceOp.SUM, group=None): + name = "inference_all_reduce" + if name in self.available_coll: + return self.ccl_comm_op.inference_all_reduce(tensor, op) + else: + return self.run_collective(name=name, tensor=tensor, op=op, group=None, async_op=False) def broadcast(self, tensor, src, group=None, async_op=False): return self.run_collective(name="broadcast", tensor=tensor, src=src, group=group, async_op=async_op) @@ -120,11 +137,11 @@ def all_to_all_single(self, output, input, output_split_sizes, input_split_sizes input_split_sizes=input_split_sizes, group=group) - def send(self, tensor, dst, group=None, async_op=False): - return self.run_collective(name="send", tensor=tensor, dst=dst, group=group, async_op=async_op) + def send(self, tensor, dst, group=None, tag=0): + return self.run_collective(name="send", tensor=tensor, dst=dst, group=group, tag=tag) - def recv(self, tensor, src, group=None, async_op=False): - return self.run_collective(name="recv", tensor=tensor, src=src, group=group, async_op=async_op) + def recv(self, tensor, src, group=None, tag=0): + return self.run_collective(name="recv", tensor=tensor, src=src, group=group, tag=tag) def gather(self, tensor, gather_list, dst, group=None, async_op=False): return self.run_collective(name="gather", tensor=tensor, gather_list=gather_list, dst=dst, group=group) @@ -170,7 +187,7 @@ def get_all_ranks_from_group(self, group): while True: results.append(super(CCLBackend, self).get_global_rank(group, rank)) rank += 1 - except ValueError: + except (ValueError, RuntimeError): pass if tuple(results) not in self.groups: self._new_group(results, group) diff --git a/deepspeed/comm/comm.py b/deepspeed/comm/comm.py old mode 100644 new mode 100755 index 568211645f40..800bc6078c3a --- a/deepspeed/comm/comm.py +++ b/deepspeed/comm/comm.py @@ -160,7 +160,7 @@ def init_deepspeed_backend(ds_backend, timeout, init_method): ccl_backend = CCLBackend(rank=rank, world_size=size, timeout=timeout, init_method=init_method) utils.logger.info(f"Initialize {ds_backend} backend") elif ds_backend == HCCL_BACKEND: - utils.logger.warn("HCCL backend in DeepSpeed not yet implemented") + utils.logger.debug("HCCL backend in DeepSpeed not yet implemented") else: utils.logger.debug(f"DeepSpeed does not support {ds_backend} backend") @@ -224,6 +224,12 @@ def broadcast(tensor, src, group=None, async_op=False, prof=False, log_name='bro return cdb.broadcast(tensor=tensor, src=src, group=group, async_op=async_op) +@timed_op +def broadcast_object_list(object_list, src, group=None, device=None): + global cdb + return cdb.broadcast_object_list(object_list=object_list, src=src, group=group, device=device) + + @timed_op def all_gather(tensor_list, tensor, @@ -505,7 +511,7 @@ def inference_all_reduce(tensor, log_name='all_reduce', debug=get_caller_func()): global cdb - return cdb.inference_all_reduce(tensor, op, group, async_op) + return cdb.inference_all_reduce(tensor, op, group) @timed_op @@ -595,11 +601,26 @@ def get_all_ranks_from_group(group=None): while True: group_ranks.append(cdb.get_global_rank(group, rank)) rank += 1 - except RuntimeError: + except (RuntimeError, ValueError): pass return group_ranks +def initialize_mesh_device(mesh_shape, mesh_dim_names): + global cdb + assert cdb is not None and cdb.is_initialized( + ), 'DeepSpeed backend not set, please initialize it using init_process_group()' + mesh_device = None + if hasattr(cdb, 'init_device_mesh'): + utils.logger.info(f"Initializing mesh device with backend {cdb.name} \ + with shape {mesh_shape} and dim names {mesh_dim_names}") + mesh_device = cdb.init_device_mesh(mesh_shape, mesh_dim_names) + else: + if get_rank() == 0: + utils.logger.warning_once(f"Backend {cdb.name} does not support mesh device initialization") + return mesh_device + + # Main DeepSpeed Comms. public API. def init_distributed(dist_backend=None, auto_mpi_discovery=True, @@ -614,11 +635,11 @@ def init_distributed(dist_backend=None, ''' Initialize dist backend, potentially performing MPI discovery if needed Arguments: - dist_backend: Optional (str). torch distributed backend, e.g., nccl, mpi, gloo + dist_backend: Optional (str). torch distributed backend, e.g., nccl, mpi, gloo, hccl auto_mpi_discovery Optional (bool). if distributed environment variables are not set, attempt to discover them from MPI distributed_port: Optional (int). torch distributed backend port verbose: Optional (bool). verbose logging - timeout: Optional (timedelta). Timeout for operations executed against the process group. Default value equals 30 minutes. + timeout: Optional (timedelta). Timeout for operations executed against the process group. The default value of 30 minutes can be overridden by the environment variable `DEEPSPEED_TIMEOUT`. init_method: Optional (string). Torch distributed, URL specifying how to initialize the process group. Default is “env://” if no init_method or store is specified. config: Optional (dict). DeepSpeed configuration for setting up comms options (e.g. Comms profiling) rank: Optional (int). The current manually specified rank. Some init_method like “tcp://” need the rank and world_size as well (see: https://pytorch.org/docs/stable/distributed.html#tcp-initialization) @@ -682,9 +703,14 @@ def mpi_discovery(distributed_port=TORCH_DISTRIBUTED_DEFAULT_PORT, verbose=True) master_addr = None if rank == 0: - hostname_cmd = ["hostname -I"] - result = subprocess.check_output(hostname_cmd, shell=True) - master_addr = result.decode('utf-8').split()[0] + import shlex + try: + hostname_cmd = shlex.split("hostname -I") + result = subprocess.check_output(hostname_cmd) + master_addr = result.decode('utf-8').split()[0] + except subprocess.CalledProcessError: # hostname -I not available (e.g. on macOS) + import socket + master_addr = socket.gethostbyname(socket.gethostname()) master_addr = comm.bcast(master_addr, root=0) # Determine local rank by assuming hostnames are unique diff --git a/deepspeed/comm/config.py b/deepspeed/comm/config.py index 1c441bb6bfe9..57501c9dd237 100644 --- a/deepspeed/comm/config.py +++ b/deepspeed/comm/config.py @@ -3,20 +3,12 @@ # DeepSpeed Team -from .constants import * -from ..pydantic_v1 import BaseModel - +from deepspeed.runtime.config_utils import DeepSpeedConfigModel -class CommsConfig(BaseModel): - - class Config: - validate_all = True - validate_assignment = True - use_enum_values = True - extra = 'forbid' +from .constants import * -class CommsLoggerConfig(CommsConfig): +class CommsLoggerConfig(DeepSpeedConfigModel): enabled: bool = COMMS_LOGGER_ENABLED_DEFAULT prof_all: bool = COMMS_LOGGER_PROF_ALL_DEFAULT prof_ops: list = COMMS_LOGGER_PROF_OPS_DEFAULT diff --git a/deepspeed/comm/torch.py b/deepspeed/comm/torch.py old mode 100644 new mode 100755 index 531f54d2628f..efa0640fb87b --- a/deepspeed/comm/torch.py +++ b/deepspeed/comm/torch.py @@ -3,11 +3,14 @@ # DeepSpeed Team +import deepspeed from deepspeed import utils from .utils import * from .backend import * from .comm import * +from ..runtime import compiler +from deepspeed.utils.torch import required_torch_version import os DS_COMM_ALL_GATHER_OFF = False @@ -17,25 +20,19 @@ DS_COMM_REDUCE_OFF = False -def is_torch_ver_eq_2_0(): - TORCH_MAJOR, TORCH_MINOR = map(int, torch.__version__.split('.')[:2]) - if TORCH_MAJOR == 2 and TORCH_MINOR == 0: - return True - return False +def disable_compiler_collective(func): + if required_torch_version(min_version=2.3): + return func + return compiler.disable(func) -def is_torch_ver_ge_2_1(): - TORCH_MAJOR, TORCH_MINOR = map(int, torch.__version__.split('.')[:2]) - if TORCH_MAJOR >= 2 and TORCH_MINOR >= 1: - return True - return False - - -def torch_ver_ge_1_13(): - TORCH_MAJOR, TORCH_MINOR = map(int, torch.__version__.split('.')[:2]) - if TORCH_MAJOR >= 1 and TORCH_MINOR >= 13: - return True - return False +def build_shm_op(): + builder = get_accelerator().create_op_builder("ShareMemCommBuilder") + if builder is None or not deepspeed.ops.__compatible_ops__[builder.NAME]: + return None + shm_cpp_module = builder.load() + print(f'DeepSpeed {builder.absolute_name()} built successfully') + return shm_cpp_module def has_coalescing_manager(): @@ -44,13 +41,13 @@ def has_coalescing_manager(): def has_all_reduce_coalesced(): - return hasattr(torch.distributed, "all_reduce_coalesced") and torch_ver_ge_1_13() + return hasattr(torch.distributed, "all_reduce_coalesced") and required_torch_version(min_version=1.13) def get_coalescing_manager(group, device, reqs, async_op): - if is_torch_ver_eq_2_0(): + if required_torch_version(min_version=2.0, max_version=2.0): return torch.distributed.distributed_c10d._coalescing_manager(group, device=device, reqs=reqs) - elif is_torch_ver_ge_2_1(): + elif required_torch_version(min_version=2.1): return torch.distributed.distributed_c10d._coalescing_manager(group, device=device, async_ops=async_op) else: return torch.distributed.distributed_c10d._coalescing_manager(group, reqs) @@ -107,6 +104,7 @@ class TorchBackend(Backend): def __init__(self, backend, timeout, init_method, rank=-1, world_size=-1, name='torch'): super(TorchBackend, self).__init__() + self.shm_comm_op = build_shm_op() self.has_all_reduce_coalesced = has_all_reduce_coalesced() self.has_coalescing_manager = has_coalescing_manager() self.all_gather_function = self.get_all_gather_function() @@ -118,8 +116,11 @@ def __init__(self, backend, timeout, init_method, rank=-1, world_size=-1, name=' # it is not so we can run on a single GPU without doing any init_process_group self.single_gpu_mode = True self.init_process_group(backend, timeout, init_method, rank, world_size) + if self.shm_comm_op != None: + self.shm_comm_op.initialize(self.get_world_size(), self.get_rank()) @classmethod + @disable_compiler_collective def get_all_gather_function(self): if hasattr(torch.distributed, "all_gather_into_tensor"): return torch.distributed.all_gather_into_tensor @@ -128,6 +129,7 @@ def get_all_gather_function(self): return None @classmethod + @disable_compiler_collective def get_reduce_scatter_function(self): if hasattr(torch.distributed, "reduce_scatter_tensor"): return torch.distributed.reduce_scatter_tensor @@ -150,14 +152,19 @@ def init_process_group(self, backend, timeout, init_method, rank, world_size): world_size=world_size) self.using_mpi = torch.distributed.get_backend() == 'mpi' + @disable_compiler_collective def all_reduce(self, tensor, op=torch.distributed.ReduceOp.SUM, group=None, async_op=False): op = self._reduce_op(op) return torch.distributed.all_reduce(tensor=tensor, op=op, group=group, async_op=async_op) - def inference_all_reduce(self, tensor, op=torch.distributed.ReduceOp.SUM, group=None, async_op=False): - op = self._reduce_op(op) - return torch.distributed.all_reduce(tensor=tensor, op=op, group=group, async_op=async_op) + def inference_all_reduce(self, tensor, op, group=None): + if not hasattr(torch.ops, 'deepspeed') or not hasattr(torch.ops.deepspeed, 'inference_all_reduce_'): + op = self._reduce_op(op) + return torch.distributed.all_reduce(tensor=tensor, op=op, group=group, async_op=False) + else: + return torch.ops.deepspeed.inference_all_reduce_(tensor) + @disable_compiler_collective def all_reduce_coalesced(self, tensors, op=torch.distributed.ReduceOp.SUM, group=None, async_op=False): """ proxy func to torch.distributed.all_reduce_coalesced, which is included in PyTorch 1.13 and above @@ -168,6 +175,7 @@ def all_reduce_coalesced(self, tensors, op=torch.distributed.ReduceOp.SUM, group op = self._reduce_op(op) return torch.distributed.all_reduce_coalesced(tensors=tensors, op=op, group=group, async_op=async_op) + @disable_compiler_collective def reduce(self, tensor, dst, op=ReduceOp.SUM, group=None, async_op=False): if DS_COMM_REDUCE_OFF: if int(os.getenv('RANK', '0')) == 0: @@ -175,6 +183,7 @@ def reduce(self, tensor, dst, op=ReduceOp.SUM, group=None, async_op=False): return Noop() return torch.distributed.reduce(tensor=tensor, dst=dst, op=self._reduce_op(op), group=group, async_op=async_op) + @disable_compiler_collective def reduce_scatter(self, output, input_list, op=ReduceOp.SUM, group=None, async_op=False): if DS_COMM_REDUCE_SCATTER_OFF: if int(os.getenv('RANK', '0')) == 0: @@ -187,6 +196,7 @@ def reduce_scatter(self, output, input_list, op=ReduceOp.SUM, group=None, async_ group=group, async_op=async_op) + @disable_compiler_collective def broadcast(self, tensor, src, group=None, async_op=False): if DS_COMM_BROADCAST_OFF: if int(os.getenv('RANK', '0')) == 0: @@ -195,6 +205,11 @@ def broadcast(self, tensor, src, group=None, async_op=False): else: return torch.distributed.broadcast(tensor=tensor, src=src, group=group, async_op=async_op) + @disable_compiler_collective + def broadcast_object_list(self, object_list, src, group=None, device=None): + return torch.distributed.broadcast_object_list(object_list=object_list, src=src, group=group, device=device) + + @disable_compiler_collective def all_gather(self, tensor_list, tensor, group=None, async_op=False): if DS_COMM_ALL_GATHER_OFF: if int(os.getenv('RANK', '0')) == 0: @@ -203,6 +218,7 @@ def all_gather(self, tensor_list, tensor, group=None, async_op=False): else: return torch.distributed.all_gather(tensor_list=tensor_list, tensor=tensor, group=group, async_op=async_op) + @disable_compiler_collective def all_gather_into_tensor(self, output_tensor, input_tensor, group=None, async_op=False): if self.has_all_gather_into_tensor(): return self.all_gather_function(output_tensor=output_tensor, @@ -210,6 +226,7 @@ def all_gather_into_tensor(self, output_tensor, input_tensor, group=None, async_ group=group, async_op=async_op) + @disable_compiler_collective def all_gather_base(self, output_tensor, input_tensor, group=None, async_op=False): if DS_COMM_ALL_GATHER_OFF: if int(os.getenv('RANK', '0')) == 0: @@ -227,6 +244,7 @@ def all_gather_base(self, output_tensor, input_tensor, group=None, async_op=Fals "please consider upgrading your pytorch installation.") pass + @disable_compiler_collective def all_gather_coalesced(self, output_tensors, input_tensors, group=None, async_op=False): """""" assert len(output_tensors) == len(input_tensors), "" @@ -250,6 +268,7 @@ def all_gather_coalesced(self, output_tensors, input_tensors, group=None, async_ else: reqs[-1].wait() + @disable_compiler_collective def reduce_scatter_tensor(self, output_tensor, input_tensor, op=ReduceOp.SUM, group=None, async_op=False): if self.has_reduce_scatter_tensor(): return self.reduce_scatter_function(output_tensor, @@ -263,6 +282,7 @@ def reduce_scatter_tensor(self, output_tensor, input_tensor, op=ReduceOp.SUM, gr "please consider upgrading your pytorch installation.") pass + @disable_compiler_collective def all_to_all_single(self, output, input, @@ -277,21 +297,27 @@ def all_to_all_single(self, group=group, async_op=async_op) + @disable_compiler_collective def all_to_all(self, output_tensor_list, input_tensor_list, group=None, async_op=False): return torch.distributed.all_to_all(output_tensor_list, input_tensor_list, group=group, async_op=async_op) + @disable_compiler_collective def send(self, tensor, dst, group=None, tag=0): return torch.distributed.send(tensor=tensor, dst=dst, group=group, tag=tag) + @disable_compiler_collective def recv(self, tensor, src=None, group=None, tag=0): return torch.distributed.recv(tensor=tensor, src=src, group=group, tag=tag) + @disable_compiler_collective def isend(self, tensor, dst, group=None, tag=0): return torch.distributed.isend(tensor=tensor, dst=dst, group=group, tag=tag) + @disable_compiler_collective def irecv(self, tensor, src=None, group=None, tag=0): return torch.distributed.irecv(tensor=tensor, src=src, group=group, tag=tag) + @disable_compiler_collective def gather(self, tensor, gather_list=None, dst=0, group=None, async_op=False): return torch.distributed.gather(tensor=tensor, gather_list=gather_list, @@ -299,6 +325,7 @@ def gather(self, tensor, gather_list=None, dst=0, group=None, async_op=False): group=group, async_op=async_op) + @disable_compiler_collective def scatter(self, tensor, scatter_list=None, src=0, group=None, async_op=False): return torch.distributed.scatter(tensor=tensor, scatter_list=scatter_list, @@ -306,11 +333,13 @@ def scatter(self, tensor, scatter_list=None, src=0, group=None, async_op=False): group=group, async_op=async_op) + @disable_compiler_collective def barrier(self, group=torch.distributed.GroupMember.WORLD, async_op=False, device_ids=None): if group is None: group = torch.distributed.GroupMember.WORLD return torch.distributed.barrier(group=group, async_op=async_op, device_ids=device_ids) + @disable_compiler_collective def monitored_barrier(self, group=torch.distributed.GroupMember.WORLD, timeout=None, wait_all_ranks=False): if group is None: group = torch.distributed.GroupMember.WORLD @@ -367,6 +396,19 @@ def _reduce_op(self, op): op = torch.distributed.ReduceOp.BXOR return op + def init_device_mesh(self, mesh_shape, mesh_dim_names): + if not required_torch_version(min_version=2.2): + raise RuntimeError(f"Current torch version does not have device mesh" + f"api (torch.__version__: {torch.__version__})") + if not required_torch_version(max_version=2.4): + return torch.distributed.device_mesh.init_device_mesh(get_accelerator().device_name(), + mesh_shape, + mesh_dim_names=mesh_dim_names) + else: + return torch.distributed.device_mesh.init_device_mesh(get_accelerator().current_device_name(), + mesh_shape, + mesh_dim_names=mesh_dim_names) + # This will become a light-weight wrapper around torch.distributed functions # TODO: create some example to show how this wrapper can help profile communication diff --git a/deepspeed/elasticity/elastic_agent.py b/deepspeed/elasticity/elastic_agent.py index 039b999dfeca..8fd4293d312c 100644 --- a/deepspeed/elasticity/elastic_agent.py +++ b/deepspeed/elasticity/elastic_agent.py @@ -54,7 +54,9 @@ def _set_master_addr_port(store: Store, if master_addr is None: # master_addr = _get_fq_hostname() - result = subprocess.check_output("hostname -I", shell=True) + import shlex + safe_cmd = shlex.split("hostname -I") + result = subprocess.check_output(safe_cmd) master_addr = result.decode('utf-8').split()[0] store.set("MASTER_ADDR", master_addr.encode(encoding="UTF-8")) @@ -158,8 +160,8 @@ def _invoke_run(self, role: str = "default") -> RunResult: f" Waiting {self._exit_barrier_timeout} seconds for other agents to finish.") self._exit_barrier() return run_result - elif state in {WorkerState.UNHEALTHY, WorkerState.FAILED - } or len(participants) > len(rdzv_handler._state_holder.state.participants): + elif state in {WorkerState.UNHEALTHY, WorkerState.FAILED} or len(participants) > len( + rdzv_handler._state_holder.state.participants): if self._remaining_restarts > 0: log.info(f"[{role}] Worker group {state.name}. " f"{self._remaining_restarts}/{spec.max_restarts} attempts left;" diff --git a/deepspeed/elasticity/utils.py b/deepspeed/elasticity/utils.py index 848ea8646449..78ae0352cf6e 100644 --- a/deepspeed/elasticity/utils.py +++ b/deepspeed/elasticity/utils.py @@ -3,7 +3,7 @@ # DeepSpeed Team -from deepspeed.runtime.utils import required_torch_version +from deepspeed.utils.torch import required_torch_version def is_torch_elastic_compatible(): diff --git a/deepspeed/env_report.py b/deepspeed/env_report.py index 912262453748..37e33b1e8739 100644 --- a/deepspeed/env_report.py +++ b/deepspeed/env_report.py @@ -9,7 +9,7 @@ import subprocess import argparse from .ops.op_builder.all_ops import ALL_OPS -from .git_version_info import installed_ops, torch_info +from .git_version_info import installed_ops, torch_info, accelerator_name from deepspeed.accelerator import get_accelerator GREEN = '\033[92m' @@ -51,7 +51,8 @@ def op_report(verbose=True): for op_name, builder in ALL_OPS.items(): dots = "." * (max_dots - len(op_name)) is_compatible = OKAY if builder.is_compatible(verbose) else no - is_installed = installed if installed_ops.get(op_name, False) else no + is_installed = installed if installed_ops.get(op_name, + False) and accelerator_name == get_accelerator()._name else no dots2 = '.' * ((len(h[1]) + (max_dots2 - len(h[1]))) - (len(is_installed) - color_len)) print(op_name, dots, is_installed, dots2, is_compatible) print("-" * (max_dots + max_dots2 + len(h[0]) + len(h[1]))) @@ -109,7 +110,7 @@ def installed_cann_version(): def get_shm_size(): try: shm_stats = os.statvfs('/dev/shm') - except (OSError, FileNotFoundError, ValueError): + except (OSError, FileNotFoundError, ValueError, AttributeError): return "UNKNOWN", None shm_size = shm_stats.f_frsize * shm_stats.f_blocks diff --git a/deepspeed/git_version_info.py b/deepspeed/git_version_info.py index 635842c760ea..70c536d2f78e 100644 --- a/deepspeed/git_version_info.py +++ b/deepspeed/git_version_info.py @@ -18,5 +18,14 @@ from .ops.op_builder.all_ops import ALL_OPS installed_ops = dict.fromkeys(ALL_OPS.keys(), False) - compatible_ops = dict.fromkeys(ALL_OPS.keys(), False) + accelerator_name = "" torch_info = {'version': "0.0", "cuda_version": "0.0", "hip_version": "0.0"} + +# compatible_ops list is recreated for each launch +from .ops.op_builder.all_ops import ALL_OPS + +compatible_ops = dict.fromkeys(ALL_OPS.keys(), False) +for op_name, builder in ALL_OPS.items(): + op_compatible = builder.is_compatible() + compatible_ops[op_name] = op_compatible + compatible_ops["deepspeed_not_implemented"] = False diff --git a/deepspeed/inference/config.py b/deepspeed/inference/config.py index 1d5018aaa75b..6df61f7c8841 100644 --- a/deepspeed/inference/config.py +++ b/deepspeed/inference/config.py @@ -5,38 +5,25 @@ import torch import deepspeed -from deepspeed.pydantic_v1 import Field, validator +from pydantic import Field, field_validator from deepspeed.runtime.config_utils import DeepSpeedConfigModel from deepspeed.runtime.zero.config import DeepSpeedZeroConfig -from typing import Dict, Union +from typing import Dict, Union, Optional from enum import Enum class DtypeEnum(Enum): - # The torch dtype must always be the first value (so we return torch.dtype) - fp16 = torch.float16, "torch.float16", "fp16", "float16", "half" - fp32 = torch.float32, "torch.float32", "fp32", "float32", "float" - bf16 = torch.bfloat16, "torch.bfloat16", "bf16", "bfloat16", "bfloat" - int8 = torch.int8, "torch.int8", "int8" - - # Copied from https://stackoverflow.com/a/43210118 - # Allows us to use multiple values for each Enum index and returns first - # listed value when Enum is called - def __new__(cls, *values): - obj = object.__new__(cls) - # first value is canonical value - obj._value_ = values[0] - for other_value in values[1:]: - cls._value2member_map_[other_value] = obj - obj._all_values = values - return obj - - def __repr__(self): - return "<%s.%s: %s>" % ( - self.__class__.__name__, - self._name_, - ", ".join([repr(v) for v in self._all_values]), - ) + fp16 = (torch.float16, "torch.float16", "fp16", "float16", "half") + fp32 = (torch.float32, "torch.float32", "fp32", "float32", "float") + bf16 = (torch.bfloat16, "torch.bfloat16", "bf16", "bfloat16", "bfloat") + int8 = (torch.int8, "torch.int8", "int8") + + @classmethod + def from_str(cls, value: str): + for dtype in cls: + if value in dtype.value: + return dtype + raise ValueError(f"'{value}' is not a valid DtypeEnum") class MoETypeEnum(str, Enum): @@ -53,6 +40,9 @@ class DeepSpeedTPConfig(DeepSpeedConfigModel): tp_size: int = 1 """ Number of devices to split the model across using tensor parallelism. """ + tp_grain_size: int = 64 + "Desired MLP/lm_head tp size granularity. DNN library favors tensor size in granularity of power of 2, we pick 64 as a default size." + mpu: object = None """ A model parallelism unit object that implements @@ -91,24 +81,24 @@ class QuantTypeEnum(str, Enum): class BaseQuantConfig(DeepSpeedConfigModel): - enabled = True - num_bits = 8 + enabled: bool = True + num_bits: int = 8 q_type: QuantTypeEnum = QuantTypeEnum.sym q_groups: int = 1 class WeightQuantConfig(BaseQuantConfig): - enabled = True + enabled: bool = True quantized_initialization: Dict = {} post_init_quant: Dict = {} class ActivationQuantConfig(BaseQuantConfig): - enabled = True + enabled: bool = True class QKVQuantConfig(DeepSpeedConfigModel): - enabled = True + enabled: bool = True class QuantizationConfig(DeepSpeedConfigModel): @@ -120,9 +110,9 @@ class QuantizationConfig(DeepSpeedConfigModel): # todo: brainstorm on how to do ckpt loading for DS inference class InferenceCheckpointConfig(DeepSpeedConfigModel): - checkpoint_dir: str = None - save_mp_checkpoint_path: str = None - base_dir: str = None + checkpoint_dir: Optional[str] = None + save_mp_checkpoint_path: Optional[str] = None + base_dir: Optional[str] = None class DeepSpeedInferenceConfig(DeepSpeedConfigModel): @@ -136,7 +126,7 @@ class DeepSpeedInferenceConfig(DeepSpeedConfigModel): `(attention_output projection, transformer output projection)` """ - dtype: DtypeEnum = torch.float16 + dtype: torch.dtype = torch.float16 """ Desired model data type, will convert model to this type. Supported target types: `torch.half`, `torch.int8`, `torch.float` @@ -184,6 +174,15 @@ class DeepSpeedInferenceConfig(DeepSpeedConfigModel): values for :any:`DeepSpeedMoEConfig`. """ + keep_module_on_host: bool = False + """ + When loading checkpoints to model parameters, they are moved to the device. In very large models + this might fill the device and cause OOM. Setting this flag to true, will keep checkpoints on + host and not move them directly to the device (giving an option to quantize checkpoint data before + moving it to the device for example). + Set only for models with injection policies and auto TP. + """ + quant: QuantizationConfig = {} """ NOTE: only works for int8 dtype. @@ -198,7 +197,7 @@ class DeepSpeedInferenceConfig(DeepSpeedConfigModel): """ #todo: refactor the following 3 into the new checkpoint_config - checkpoint: Union[str, Dict] = None + checkpoint: Optional[Union[str, Dict]] = None """ Path to deepspeed compatible checkpoint or path to JSON with load policy. """ @@ -214,7 +213,7 @@ class DeepSpeedInferenceConfig(DeepSpeedConfigModel): specifying whether the inference-module is created with empty or real Tensor """ - save_mp_checkpoint_path: str = None + save_mp_checkpoint_path: Optional[str] = None """ The path for which we want to save the loaded model with a checkpoint. This feature is used for adjusting the parallelism degree to help alleviate the @@ -243,19 +242,21 @@ class DeepSpeedInferenceConfig(DeepSpeedConfigModel): replace_method: str = Field( "auto", - deprecated=True, - deprecated_msg="This parameter is no longer needed, please remove from your call to DeepSpeed-inference") + json_schema_extra={ + "deprecated": True, + "deprecated_msg": "This parameter is no longer needed, please remove from your call to DeepSpeed-inference" + }) - injection_policy: Dict = Field(None, alias="injection_dict") + injection_policy: Optional[Dict] = Field(None, alias="injection_dict") """ Dictionary mapping a client nn.Module to its corresponding injection policy. e.g., `{BertLayer : deepspeed.inference.HFBertLayerPolicy}` """ - injection_policy_tuple: tuple = None + injection_policy_tuple: Optional[tuple] = None """ TODO: Add docs """ - config: Dict = Field(None, alias="args") # todo: really no need for this field if we can refactor + config: Optional[Dict] = Field(None, alias="args") # todo: really no need for this field if we can refactor max_out_tokens: int = Field(1024, alias="max_tokens") """ @@ -274,31 +275,49 @@ class DeepSpeedInferenceConfig(DeepSpeedConfigModel): transposed_mode: bool = Field(False, alias="transposed_mode") - mp_size: int = Field(1, deprecated=True, new_param="tensor_parallel.tp_size") + mp_size: int = Field(1, json_schema_extra={"deprecated": True, "new_param": "tensor_parallel.tp_size"}) """ Desired model parallel size, default is 1 meaning no model parallelism. Deprecated, please use the ``tensor_parallel` config to control model parallelism. """ - mpu: object = Field(None, deprecated=True, new_param="tensor_parallel.mpu") - ep_size: int = Field(1, deprecated=True, new_param="moe.ep_size") - ep_group: object = Field(None, alias="expert_group", deprecated=True, new_param="moe.ep_group") - ep_mp_group: object = Field(None, alias="expert_mp_group", deprecated=True, new_param="moe.ep_mp_group") - moe_experts: list = Field([1], deprecated=True, new_param="moe.moe_experts") - moe_type: MoETypeEnum = Field(MoETypeEnum.standard, deprecated=True, new_param="moe.type") - - @validator("moe") + mpu: object = Field(None, json_schema_extra={"deprecated": True, "new_param": "tensor_parallel.mpu"}) + ep_size: int = Field(1, json_schema_extra={"deprecated": True, "new_param": "moe.ep_size"}) + ep_group: object = Field(None, + alias="expert_group", + json_schema_extra={ + "deprecated": True, + "new_param": "moe.ep_group" + }) + ep_mp_group: object = Field(None, + alias="expert_mp_group", + json_schema_extra={ + "deprecated": True, + "new_param": "moe.ep_mp_group" + }) + moe_experts: list = Field([1], json_schema_extra={"deprecated": True, "new_param": "moe.moe_experts"}) + moe_type: MoETypeEnum = Field(MoETypeEnum.standard, + json_schema_extra={ + "deprecated": True, + "new_param": "moe.type" + }) + + @field_validator("dtype", mode="before") + def validate_dtype(cls, field_value, values): + if isinstance(field_value, str): + return DtypeEnum.from_str(field_value).value[0] + if isinstance(field_value, torch.dtype): + return field_value + raise TypeError(f"Invalid type for dtype: {type(field_value)}") + + @field_validator("moe") def moe_backward_compat(cls, field_value, values): if isinstance(field_value, bool): return DeepSpeedMoEConfig(moe=field_value) return field_value - @validator("use_triton") + @field_validator("use_triton") def has_triton(cls, field_value, values): if field_value and not deepspeed.HAS_TRITON: raise ValueError('Triton needs to be installed to use deepspeed with triton kernels') return field_value - - class Config: - # Get the str representation of the datatype for serialization - json_encoders = {torch.dtype: lambda x: str(x)} diff --git a/deepspeed/inference/engine.py b/deepspeed/inference/engine.py index 149d20cd9305..0a74d19e91f5 100755 --- a/deepspeed/inference/engine.py +++ b/deepspeed/inference/engine.py @@ -6,6 +6,7 @@ import torch import time import os +import deepspeed from deepspeed import comm as dist from deepspeed.utils.logging import log_dist @@ -13,7 +14,7 @@ from packaging import version as pkg_version from deepspeed.runtime.checkpoint_engine.torch_checkpoint_engine import TorchCheckpointEngine from deepspeed.utils.timer import SynchronizedWallClockTimer - +from deepspeed.runtime.compiler import is_compile_supported from ..runtime.state_dict_factory import SDLoaderFactory from ..runtime.weight_quantizer import WeightQuantization from ..module_inject import replace_transformer_layer, generic_injection @@ -26,7 +27,7 @@ from ..module_inject.auto_tp import AutoTP from ..module_inject.replace_policy import generic_policies -from ..module_inject.auto_tp_model_utils import build_bloom_alibi_tensor, build_mpt_atten_bias_tensor, build_mpt_alibi_tensor +from ..module_inject.auto_tp_model_utils import build_bloom_alibi_tensor, build_mpt_atten_bias_tensor, build_mpt_alibi_tensor, get_alibi_mask from ..ops.transformer.inference.ds_attention import DeepSpeedSelfAttention from ..model_implementations.transformers.ds_transformer import DeepSpeedTransformerInference @@ -51,12 +52,7 @@ def __init__(self, model, config): DS_INFERENCE_ENABLED = True super().__init__() - - # Have to import here because inference_module is a global, but python - # globals only work at the module level and will not be updated unless - # we import it each time we init a new inference engine. - from ..model_implementations.transformers.ds_transformer import inference_module - if inference_module is not None: + if DeepSpeedTransformerInference.workspace is not None: self.destroy() self.module = model @@ -71,6 +67,10 @@ def __init__(self, model, config): if hasattr(self.module, "config"): TransformerPolicy.hf_model_config = self.module.config + if config.dtype not in get_accelerator().supported_dtypes(): + raise ValueError( + f"Data type {config.dtype} is not supported by {get_accelerator().device_name()} accelerator") + # todo: keep this self.injection_dict because we don't use to change config.injection_policy API # todo: this will get changed when Molly's PR on auto injection dict is merged self.injection_dict = config.injection_policy @@ -79,7 +79,6 @@ def __init__(self, model, config): self.mp_group = config.tensor_parallel.tp_group self.mpu = config.tensor_parallel.mpu - #self._validate_args(self.mpu, config.replace_with_kernel_inject) self.quantize_merge_count = 1 self.quantization_scales = None @@ -109,11 +108,6 @@ def __init__(self, model, config): assert pkg_version.parse(torch.__version__) >= pkg_version.parse("1.10"), \ "If you want to use cuda graph, please upgrade torch to at least v1.10" - # Check if model passed to engine is loaded w/ meta tensors, in which case - # kernel injection must be enabled. - # NOTE: This check assumes a Hugging Face hierarchy for the device type i.e. module.device.type - self.model_meta_device = self.module.device.type == 'meta' if hasattr(self.module, "device") else False - # convert model to intended dtype if config.dtype: self._convert_to_dtype(config) @@ -170,7 +164,12 @@ def __init__(self, model, config): self._apply_injection_policy(config, client_module) device = get_accelerator().current_device_name() - self.module.to(device) + # NOTE: This check assumes a Hugging Face hierarchy for the device type i.e. module.device.type + is_meta_device = hasattr(self.module, "device") and self.module.device.type == 'meta' + if is_meta_device: + self.module.to_empty(device=device) + elif not config.keep_module_on_host: + self.module.to(device) if config.tensor_parallel.tp_size > 1: _rng_state = get_accelerator().get_rng_state().to(get_accelerator().current_device_name()) @@ -182,17 +181,14 @@ def __init__(self, model, config): # Check if local CUDA graphs can be created in replacement modules self.local_cuda_graph = self._local_cuda_graph_used(self.module) + self._is_compiled = False def destroy(self): - # Have to import here because inference_module is a global, but python - # globals only work at the module level and will not be updated unless - # we import it each time we init a new inference engine. - from ..model_implementations.transformers.ds_transformer import inference_module DeepSpeedTransformerInference.layer_id = 0 DeepSpeedSelfAttention.num_layers = 0 - if inference_module is not None: - inference_module.release_workspace() - inference_module = None + if DeepSpeedTransformerInference.workspace.is_allocated(): + DeepSpeedTransformerInference.workspace.release_workspace() + DeepSpeedTransformerInference.workspace = None def profile_model_time(self, use_cuda_events=True): if not self.model_profile_enabled and not self._config.enable_cuda_graph: @@ -220,6 +216,10 @@ def build_alibi_tensor(self): if hasattr(self.module.transformer, 'build_mpt_alibi_tensor'): self.module.transformer.build_mpt_alibi_tensor_orig = self.module.transformer.build_mpt_alibi_tensor self.module.transformer.__class__.build_mpt_alibi_tensor = build_mpt_alibi_tensor + if hasattr(self.module, 'model'): + if hasattr(self.module.model, 'get_alibi_mask'): + self.module.model.get_alibi_mask_orig = self.module.model.get_alibi_mask + self.module.model.__class__.get_alibi_mask = get_alibi_mask def build_attn_bias(self): if hasattr(self.module, 'transformer'): @@ -298,29 +298,6 @@ def _init_quantization_setting(self, quantization_setting): f"mlp_extra_grouping = {self.mlp_extra_grouping}, " f"quantize_groups = {self.quantize_groups}", [0]) - # TODO: remove this function and add this functionality to pydantic config checking - def _validate_args(self, mpu, replace_with_kernel_inject): - # TODO: to support SD pipeline we need to avoid this check for now - if replace_with_kernel_inject and not isinstance(self.module, Module): - raise ValueError(f"model must be a torch.nn.Module, got {type(self.module)}") - if not isinstance(self._config.tensor_parallel.tp_size, int) or self._config.tensor_parallel.tp_size < 1: - raise ValueError(f"mp_size must be an int >= 1, got {self._config.tensor_parallel.tp_size}") - - if mpu: - methods = ["get_model_parallel_group", "get_data_parallel_group"] - for method in methods: - if not hasattr(mpu, method): - raise ValueError(f"mpu is missing {method}") - if self._config.checkpoint is not None and not isinstance(self._config.checkpoint, (str, dict)): - raise ValueError(f"checkpoint must be None, str or dict, got {type(self._config.checkpoint)}") - - supported_dtypes = [None, torch.half, torch.int8, torch.float] - if self._config.dtype not in supported_dtypes: - raise ValueError(f"{self._config.dtype} not supported, valid dtype: {supported_dtypes}") - - if self.injection_dict is not None and not isinstance(self.injection_dict, dict): - raise ValueError(f"injection_dict must be None or a dict, got: {self.injection_dict}") - def load_model_with_checkpoint(self, r_module): self.mp_replace = ReplaceWithTensorSlicing( mp_group=self.mp_group, mp_size=self._config.tensor_parallel.tp_size) #, out_dim=0, in_dim=1) @@ -450,7 +427,7 @@ def _load_checkpoint(self, load_dir, load_module_strict=True, tag=None): checkpoint = sd_loader['checkpoints'] if type(checkpoint) is list: - self.sd = torch.load(checkpoint[0], map_location='cpu') + self.sd = torch.load(checkpoint[0], map_location='cpu', weights_only=False) self.key_list = list(self.sd.keys()) self.load_model_with_checkpoint(self.module) @@ -458,7 +435,7 @@ def _load_checkpoint(self, load_dir, load_module_strict=True, tag=None): for i in range(1, len(checkpoint)): if not dist.is_initialized() or dist.get_rank() == 0: print(f"loading checkpoint ({i})") - self.sd = torch.load(checkpoint[i], map_location=get_accelerator().device_name()) + self.sd = torch.load(checkpoint[i], map_location=get_accelerator().device_name(), weights_only=False) self.key_list = list(self.sd.keys()) self.load_model_with_checkpoint(self.module) else: @@ -524,11 +501,11 @@ def _create_cuda_graph(self, *inputs, **kwargs): get_accelerator().current_stream().wait_stream(cuda_stream) # create cuda_graph and assign static_inputs and static_outputs - self._cuda_graphs = torch.cuda.CUDAGraph() + self._cuda_graphs = get_accelerator().create_graph() self.static_inputs = inputs self.static_kwargs = kwargs - with torch.cuda.graph(self._cuda_graphs): + with get_accelerator().capture_to_graph(self._cuda_graphs): self.static_output = self.module(*self.static_inputs, **self.static_kwargs) self.cuda_graph_created = True @@ -540,7 +517,7 @@ def _graph_replay(self, *inputs, **kwargs): for k in kwargs: if torch.is_tensor(kwargs[k]): self.static_kwargs[k].copy_(kwargs[k]) - self._cuda_graphs.replay() + get_accelerator().replay_graph(self._cuda_graphs) return self.static_output def model_times(self): @@ -616,14 +593,33 @@ def _generate(self, *inputs, **kwargs): if num_beams > 1: raise NotImplementedError("DeepSpeed does not support `num_beams` > 1, if this is important to you please " - "add your request to: https://github.com/microsoft/DeepSpeed/issues/2506") + "add your request to: https://github.com/deepspeedai/DeepSpeed/issues/2506") if ("input_ids" in kwargs) and (kwargs["input_ids"].dim() == 2): for input_tensor in kwargs["input_ids"]: tensor_length = input_tensor.shape[-1] if tensor_length > self._config.max_out_tokens: raise RuntimeError( - f"Input with size {tensor_length} exceeds maximum length of {self._config.max_out_tokens}. Please increase `max_tokens` in the DeepSpeed Inference Config." + f"Input with size {tensor_length} exceeds maximum length of {self._config.max_out_tokens}. Please increase max_tokens in the DeepSpeed Inference Config." ) return self.module.generate(*inputs, **kwargs) + + def compile(self, backend=get_accelerator().get_compile_backend(), compile_kwargs={}) -> None: + """ + Compile the module using the specified backend and kwargs. + """ + if not is_compile_supported(): + raise RuntimeError("compile is not supported in your version of PyTorch.") + + if self._is_compiled: + return + + # Avoid graph breaks + deepspeed.utils.nvtx.enable_nvtx = False + self.module.compile(backend=backend, **compile_kwargs) + self._is_compiled = True + + @property + def is_compiled(self) -> bool: + return self._is_compiled diff --git a/deepspeed/inference/quantization/layers.py b/deepspeed/inference/quantization/layers.py index c90354aca90f..e9a7e5629f1b 100644 --- a/deepspeed/inference/quantization/layers.py +++ b/deepspeed/inference/quantization/layers.py @@ -86,7 +86,7 @@ def __init__(self, config: Dict, pre_quant_layer: nn.Embedding) -> None: device=pre_quant_layer.weight.device, dtype=pre_quant_layer.weight.dtype) - assert pre_quant_layer.max_norm == None, 'Not supported' + assert pre_quant_layer.max_norm is None, 'Not supported' assert pre_quant_layer.norm_type == 2, 'Not supported' assert pre_quant_layer.scale_grad_by_freq == False, 'Not supported' assert pre_quant_layer.sparse == False, 'Not supported' diff --git a/deepspeed/inference/quantization/utils.py b/deepspeed/inference/quantization/utils.py index 712abc384a44..a5e8f28bdec9 100644 --- a/deepspeed/inference/quantization/utils.py +++ b/deepspeed/inference/quantization/utils.py @@ -14,14 +14,14 @@ device = get_accelerator().device_name() if get_accelerator().is_available() else 'cpu' -quantizer_cuda_module = None +quantizer_module = None -def get_quantizer_cuda_module(): - global quantizer_cuda_module - if quantizer_cuda_module is None: - quantizer_cuda_module = deepspeed.ops.op_builder.QuantizerBuilder().load() - return quantizer_cuda_module +def get_quantizer_module(): + global quantizer_module + if quantizer_module is None: + quantizer_module = deepspeed.ops.op_builder.QuantizerBuilder().load() + return quantizer_module def tensor_clamp(tensor: Tensor, min, max) -> Tensor: @@ -107,19 +107,19 @@ def dequantize(self, tensor: Tensor, quant_scale: Tensor, quant_min: Tensor) -> if self.config['group_size'] % 8 == 0 and \ (self.config['num_bits'] == 4 or self.config['num_bits'] == 8) and \ self.config['group_dim'] == len(tensor.shape) - 1 and \ - self.dtype == torch.float16 and device == 'cuda': + self.dtype == torch.float16 and device == get_accelerator().device_name(): last_dimension_size = self.config['group_size'] if self.config['num_bits'] == 4: last_dimension_size = last_dimension_size // 2 - quantized_tensor = get_quantizer_cuda_module().dequantize_int4_to_half_experimental( + quantized_tensor = get_quantizer_module().dequantize_int4_to_half_experimental( tensor.reshape(-1, last_dimension_size), quant_scale, quant_min, tensor.numel() // last_dimension_size, self.config['group_size']) shape = list(tensor.shape) shape[-1] = shape[-1] * 2 elif self.config['num_bits'] == 8: # last_dimension_size = last_dimension_size // 2 - quantized_tensor = get_quantizer_cuda_module().dequantize_int8_to_half_experimental( + quantized_tensor = get_quantizer_module().dequantize_int8_to_half_experimental( tensor.reshape(-1, last_dimension_size), quant_scale, quant_min, tensor.numel() // last_dimension_size, self.config['group_size']) shape = list(tensor.shape) diff --git a/deepspeed/inference/v2/allocator.py b/deepspeed/inference/v2/allocator.py index bebdcf83aee3..fcc0d94c0f82 100644 --- a/deepspeed/inference/v2/allocator.py +++ b/deepspeed/inference/v2/allocator.py @@ -5,17 +5,27 @@ from functools import reduce from typing import Iterable - +from collections import defaultdict import torch from deepspeed.accelerator import get_accelerator -def empty_from(tensor: torch.Tensor, shape: Iterable[int]) -> torch.Tensor: - shape_size = reduce(lambda x, y: x * y, shape) - if shape_size == 0: - raise ValueError("Cannot create empty tensor with size 0") - return tensor.flatten()[:shape_size].view(shape) +class Allocator: + cache = defaultdict(dict) + + def empty_from(tensor: torch.Tensor, shape: Iterable[int]) -> torch.Tensor: + try: + return Allocator.cache[tensor][shape] + except KeyError: + shape_size = reduce(lambda x, y: x * y, shape) + if shape_size == 0: + raise ValueError("Cannot create empty tensor with size 0") + Allocator.cache[tensor][shape] = tensor.flatten()[:shape_size].view(shape) + return Allocator.cache[tensor][shape] + + +empty_from = Allocator.empty_from def on_device(method) -> torch.Tensor: diff --git a/deepspeed/inference/v2/checkpoint/huggingface_engine.py b/deepspeed/inference/v2/checkpoint/huggingface_engine.py index 029e3f7774c0..b17bb886838f 100644 --- a/deepspeed/inference/v2/checkpoint/huggingface_engine.py +++ b/deepspeed/inference/v2/checkpoint/huggingface_engine.py @@ -8,26 +8,28 @@ import torch from .base_engine import CheckpointEngineBase from typing import Iterable, Tuple +from functools import partial from ..logging import inference_logger class HuggingFaceCheckpointEngine(CheckpointEngineBase): - def __init__(self, model_name_or_path: str, auth_token: str = None) -> None: + def __init__(self, model_name_or_path: str, auth_token: str = None, **hf_kwargs) -> None: super().__init__() from transformers import AutoConfig, GenerationConfig self.model_name_or_path = model_name_or_path self.auth_token = auth_token - self.model_config = AutoConfig.from_pretrained(self.model_name_or_path) - self.generation_config = GenerationConfig.from_pretrained(self.model_name_or_path) + self.model_config = AutoConfig.from_pretrained(self.model_name_or_path, **hf_kwargs) # Define this property here so we can use it in the model implementation if not hasattr(self.model_config, "max_seq_length"): - self.model_config.max_seq_length = self.model_config.max_position_embeddings - else: - self.model_config.max_seq_length = self.generation_config.max_length - + if hasattr(self.model_config, "max_position_embeddings"): + self.model_config.max_seq_length = self.model_config.max_position_embeddings + else: + generation_config = GenerationConfig.from_pretrained(self.model_name_or_path) + self.model_config.max_seq_length = generation_config.max_length + self._local_checkpoint_dir = None self._all_ckpt_paths = self._fetch_checkpoint_files() def _fetch_checkpoint_files(self): @@ -38,20 +40,30 @@ def _fetch_checkpoint_files(self): # currently coming from the ckpt engine init but maybe a catch all kwargs for other # snapshot download parameters would be more flexible. - # NOTE(jeff): allow_patterns here are explicitly not using safetensors or other - # checkpoint files that may be present. Example of all files in the llama-2-7b - # repo here: https://huggingface.co/meta-llama/Llama-2-7b-hf/tree/main - from huggingface_hub import snapshot_download + from huggingface_hub import snapshot_download, list_repo_tree + + def model_has_safetensors(model_name_or_path: str) -> bool: + if os.path.isdir(model_name_or_path): + file_list = os.listdir(model_name_or_path) + else: + file_list = [rf.path for rf in list_repo_tree(model_name_or_path)] + for f in file_list: + if f.endswith(".safetensors"): + return True + return False if os.path.isdir(self.model_name_or_path): self._local_checkpoint_dir = self.model_name_or_path else: + # We need to download the checkpoint files from HF + if model_has_safetensors(self.model_name_or_path): + # Prioritize downloading safetensors if they are available + allow_patterns = ["*.safetensors", "*.json"] + else: + # Fallback to bin files when safetensors are not present + allow_patterns = ["*.bin", "*.json", "*.pt"] self._local_checkpoint_dir = snapshot_download(self.model_name_or_path, - allow_patterns=[ - "*.bin", - "*.json", - "*.pt", - ], + allow_patterns=allow_patterns, revision=None, token=self.auth_token) @@ -59,11 +71,22 @@ def _fetch_checkpoint_files(self): self._local_checkpoint_dir ), f"Checkpoint dir {self._local_checkpoint_dir} is not a directory, cannot load checkpoint." - model_param_json = os.path.join(self._local_checkpoint_dir, "pytorch_model.bin.index.json") + # Set the appropriate file names based on whether we have safetensors or not + if model_has_safetensors(self._local_checkpoint_dir): + from safetensors.torch import load_file + model_param_json_fname = "model.safetensors.index.json" + model_file_fname = "model.safetensors" + self._checkpoint_load_fn = load_file + else: + model_param_json_fname = "pytorch_model.bin.index.json" + model_file_fname = "pytorch_model.bin" + self._checkpoint_load_fn = partial(torch.load, map_location="cpu", weights_only=False) + + model_param_json = os.path.join(self._local_checkpoint_dir, model_param_json_fname) if not os.path.isfile(model_param_json): # We don't need any json as all such HF models will have pytorch_model.bin - all_checkpoint_files = [os.path.join(self._local_checkpoint_dir, 'pytorch_model.bin')] + all_checkpoint_files = [os.path.join(self._local_checkpoint_dir, model_file_fname)] else: param_map = json.load(open(model_param_json, "r")) @@ -84,7 +107,13 @@ def parameters(self) -> Iterable[Tuple[str, torch.Tensor]]: """ for checkpoint in self._all_ckpt_paths: inference_logger().info(f"Loading checkpoint: {checkpoint}") - checkpoint_sd = torch.load(checkpoint, map_location='cpu') + checkpoint_sd = self._checkpoint_load_fn(checkpoint) + + # If the model has tied embeddings, we need to make sure the lm_head weights are tied to the embeddings weights + if hasattr(self.model_config, "tie_word_embeddings") and self.model_config.tie_word_embeddings: + if self.model_config.model_type == "qwen2": + checkpoint_sd["lm_head.weight"] = checkpoint_sd["model.embed_tokens.weight"] + param_keys = list(checkpoint_sd.keys()) for param_name in param_keys: param = checkpoint_sd[param_name] diff --git a/deepspeed/inference/v2/config_v2.py b/deepspeed/inference/v2/config_v2.py index 64e7e29b1844..325b57d8f56a 100644 --- a/deepspeed/inference/v2/config_v2.py +++ b/deepspeed/inference/v2/config_v2.py @@ -3,7 +3,8 @@ # DeepSpeed Team -from deepspeed.pydantic_v1 import Field +from pydantic import Field +from typing import Optional from deepspeed.runtime.config_utils import DeepSpeedConfigModel from .ragged import DSStateManagerConfig @@ -16,6 +17,16 @@ class DeepSpeedTPConfig(DeepSpeedConfigModel): """ Number of devices to split the model across using tensor parallelism. """ +class QuantizationConfig(DeepSpeedConfigModel): + """ Configure tensor parallelism settings """ + + quantization_mode: Optional[str] = None + """ The quantization mode in string format. The supported modes are as follows: + - 'wf6af16', weight-only quantization with FP6 weight and FP16 activation. + """ + # TODO: may reuse the constants in deepspeed/compression/constants.py + + class RaggedInferenceEngineConfig(DeepSpeedConfigModel): """ Sets parameters for DeepSpeed Inference Engine. """ @@ -29,3 +40,5 @@ class RaggedInferenceEngineConfig(DeepSpeedConfigModel): """ Configuration for managing persistent state """ + + quantization: QuantizationConfig = {} diff --git a/deepspeed/inference/v2/engine_factory.py b/deepspeed/inference/v2/engine_factory.py index ecca9f3c1b34..9c3188dfebb8 100644 --- a/deepspeed/inference/v2/engine_factory.py +++ b/deepspeed/inference/v2/engine_factory.py @@ -17,6 +17,13 @@ OPTPolicy, Llama2Policy, MistralPolicy, + MixtralPolicy, + FalconPolicy, + PhiPolicy, + Phi3Policy, + QwenPolicy, + Qwen2Policy, + Qwen2MoePolicy, ) from .model_implementations.inference_policy_base import POLICIES, InferenceV2Policy from .model_implementations.flat_model_helpers import make_metadata_filename, ModelMetadata @@ -93,7 +100,7 @@ def build_hf_engine(path: str, if model_config.model_type == "opt": if not model_config.do_layer_norm_before: raise ValueError( - "Detected OPT-350m model. This model is not currently supported. If this is not the 350m model, please open an issue: https://github.com/microsoft/DeepSpeed-MII/issues" + "Detected OPT-350m model. This model is not currently supported. If this is not the 350m model, please open an issue: https://github.com/deepspeedai/DeepSpeed-MII/issues" ) policy = OPTPolicy(model_config, checkpoint_engine=checkpoint_engine) elif model_config.model_type == "llama": @@ -104,6 +111,24 @@ def build_hf_engine(path: str, assert version.parse(transformers.__version__) >= version.parse("4.34.0"), \ f"Mistral requires transformers >= 4.34.0, you have version {transformers.__version__}" policy = MistralPolicy(model_config, checkpoint_engine=checkpoint_engine) + elif model_config.model_type == "mixtral": + # Ensure we're using the correct version of transformers for mistral + import transformers + assert version.parse(transformers.__version__) >= version.parse("4.36.1"), \ + f"Mistral requires transformers >= 4.36.1, you have version {transformers.__version__}" + policy = MixtralPolicy(model_config, checkpoint_engine=checkpoint_engine) + elif model_config.model_type == "falcon": + policy = FalconPolicy(model_config, checkpoint_engine=checkpoint_engine) + elif model_config.model_type == "phi": + policy = PhiPolicy(model_config, checkpoint_engine=checkpoint_engine) + elif model_config.model_type == "phi3": + policy = Phi3Policy(model_config, checkpoint_engine=checkpoint_engine) + elif model_config.model_type == "qwen": + policy = QwenPolicy(model_config, checkpoint_engine=checkpoint_engine) + elif model_config.model_type == "qwen2": + policy = Qwen2Policy(model_config, checkpoint_engine=checkpoint_engine) + elif model_config.model_type == "qwen2_moe": + policy = Qwen2MoePolicy(model_config, checkpoint_engine=checkpoint_engine) else: raise ValueError(f"Unsupported model type {model_config.model_type}") diff --git a/deepspeed/inference/v2/engine_v2.py b/deepspeed/inference/v2/engine_v2.py index ff73f7ea9680..4a358310377f 100644 --- a/deepspeed/inference/v2/engine_v2.py +++ b/deepspeed/inference/v2/engine_v2.py @@ -104,7 +104,10 @@ def _initialize_tp_group(self): ranks = list(range(self._config.tensor_parallel.tp_size)) return dist.new_group(ranks=ranks) - def put(self, batch_uids: Iterable[int], batch_tokens: Iterable[torch.Tensor]) -> torch.Tensor: + def put(self, + batch_uids: Iterable[int], + batch_tokens: Iterable[torch.Tensor], + do_checks: bool = True) -> torch.Tensor: """ Put a ragged batch onto the inference engine. This will perform one forward and return a Tensor of the shape [len(batch_uids), *output_shape]. Logits for the non-final tokens @@ -113,12 +116,14 @@ def put(self, batch_uids: Iterable[int], batch_tokens: Iterable[torch.Tensor]) - Arguments: batch_uids: Iterable of uids for the batch on the host batch_tokens: Iterable of token tensors for the batch on the host + do_checks: Check schedulability when it is set to True. You can skip this check for better performance when it has already been completed. """ - token_lens = [len(tokens) for tokens in batch_tokens] - schedule_check = self.can_schedule(batch_uids, token_lens) - if schedule_check != SchedulingResult.Success: - raise SchedulingError(schedule_check) + if do_checks: + token_lens = [len(tokens) for tokens in batch_tokens] + schedule_check = self.can_schedule(batch_uids, token_lens) + if schedule_check != SchedulingResult.Success: + raise SchedulingError(schedule_check) self._batch.clear() for uid, tokens in zip(batch_uids, batch_tokens): @@ -128,7 +133,7 @@ def put(self, batch_uids: Iterable[int], batch_tokens: Iterable[torch.Tensor]) - host_seq_desc.pre_forward(tokens.numel()) # We can disable checks since we already validated schedulability. - self._batch.insert_sequence(host_seq_desc, tokens, do_checks=False) + self._batch.insert_sequence(host_seq_desc, tokens, do_checks=do_checks) # Send all metadata to the device self._batch.finalize() @@ -225,6 +230,15 @@ def can_schedule(self, uids: Iterable[int], lengths: Iterable[int]) -> Schedulin return SchedulingResult.Success + def get_remaining_block_capacity(self, uid: int) -> int: + """ + Get the remaining capacity of the last block already allocated. + """ + seq_desc = self._state_manager.get_sequence(uid) + if seq_desc is None: + return 0 + return self._model.get_remaining_block_capacity(seq_desc) + def flush(self, uid: int) -> None: """ Remove all state associated with a sequence from the inference engine. diff --git a/deepspeed/inference/v2/kernels/core_ops/__init__.py b/deepspeed/inference/v2/kernels/core_ops/__init__.py index bbb53e5b58a2..1d16b484a560 100644 --- a/deepspeed/inference/v2/kernels/core_ops/__init__.py +++ b/deepspeed/inference/v2/kernels/core_ops/__init__.py @@ -8,3 +8,4 @@ from .cuda_layer_norm import * from .cuda_rms_norm import * from .gated_activations import * +from .cuda_linear import * diff --git a/deepspeed/inference/v2/kernels/core_ops/bias_activations/bias_activation.cu b/deepspeed/inference/v2/kernels/core_ops/bias_activations/bias_activation_cuda.cu similarity index 100% rename from deepspeed/inference/v2/kernels/core_ops/bias_activations/bias_activation.cu rename to deepspeed/inference/v2/kernels/core_ops/bias_activations/bias_activation_cuda.cu diff --git a/deepspeed/inference/v2/kernels/core_ops/blas_kernels/blas_utils.h b/deepspeed/inference/v2/kernels/core_ops/blas_kernels/blas_utils.h index 450991b3c387..294db7528699 100644 --- a/deepspeed/inference/v2/kernels/core_ops/blas_kernels/blas_utils.h +++ b/deepspeed/inference/v2/kernels/core_ops/blas_kernels/blas_utils.h @@ -13,7 +13,7 @@ #endif #include #include -#ifndef __HIP_PLATFORM_HCC__ +#ifndef __HIP_PLATFORM_AMD__ #include #endif #include @@ -33,7 +33,7 @@ class BlasContext { std::cerr << message << std::endl; throw std::runtime_error(message); } -#ifndef __HIP_PLATFORM_HCC__ +#ifndef __HIP_PLATFORM_AMD__ cublasSetMathMode(_handle, CUBLAS_TENSOR_OP_MATH); #endif } @@ -55,7 +55,9 @@ class BlasContext { enum class BlasType { FP32, FP16, BF16 }; -#ifdef __HIP_PLATFORM_HCC__ +// TODO HIP: Remove backward compatibility for torch<=2.0 in future +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) rocblas_operation get_trans_op(bool do_trans) { return (do_trans) ? rocblas_operation_transpose : rocblas_operation_none; @@ -76,9 +78,15 @@ cublasOperation_t get_trans_op(bool do_trans) { return (do_trans) ? CUBLAS_OP_T cublasDataType_t get_datatype(BlasType type) { switch (type) { +#ifdef __HIP_PLATFORM_AMD__ + case BlasType::FP32: return HIPBLAS_R_32F; + case BlasType::FP16: return HIPBLAS_R_16F; + case BlasType::BF16: return HIPBLAS_R_16B; +#else case BlasType::FP32: return CUDA_R_32F; case BlasType::FP16: return CUDA_R_16F; case BlasType::BF16: return CUDA_R_16BF; +#endif default: throw std::runtime_error("Unsupported BlasType"); } } @@ -99,7 +107,8 @@ int blas_gemm_ex(void* C, const float* beta, BlasType type) { -#ifdef __HIP_PLATFORM_HCC__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) rocblas_operation_t transa_op = get_trans_op(transa); rocblas_operation_t transb_op = get_trans_op(transb); @@ -151,11 +160,18 @@ int blas_gemm_ex(void* C, C, abc_type, ldc, +#if defined(__HIP_PLATFORM_AMD__) && defined(HIPBLAS_V2) + HIPBLAS_COMPUTE_32F, +#elif defined(__HIP_PLATFORM_AMD__) + HIPBLAS_R_32F, +#else CUDA_R_32F, +#endif CUBLAS_GEMM_DEFAULT_TENSOR_OP); #endif -#ifdef __HIP_PLATFORM_HCC__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) if (status != rocblas_status_success) { #else if (status != CUBLAS_STATUS_SUCCESS) { @@ -190,7 +206,8 @@ int blas_strided_batched_gemm(void* C, int batch, BlasType type) { -#ifdef __HIP_PLATFORM_HCC__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) rocblas_operation_t transa_op = get_trans_op(transa); rocblas_operation_t transb_op = get_trans_op(transb); @@ -253,11 +270,18 @@ int blas_strided_batched_gemm(void* C, ldc, stride_C, batch, +#if defined(__HIP_PLATFORM_AMD__) && defined(HIPBLAS_V2) + HIPBLAS_COMPUTE_32F, +#elif defined(__HIP_PLATFORM_AMD__) + HIPBLAS_R_32F, +#else CUDA_R_32F, +#endif CUBLAS_GEMM_DEFAULT_TENSOR_OP); #endif -#ifdef __HIP_PLATFORM_HCC__ +#if defined(__HIP_PLATFORM_AMD__) && \ + ((TORCH_VERSION_MAJOR < 2) || (TORCH_VERSION_MAJOR == 2 && TORCH_VERSION_MINOR == 0)) if (status != rocblas_status_success) { #else if (status != CUBLAS_STATUS_SUCCESS) { diff --git a/deepspeed/inference/v2/kernels/core_ops/core_ops.cpp b/deepspeed/inference/v2/kernels/core_ops/core_ops.cpp index 58df88e56136..3f36a6bf01cb 100644 --- a/deepspeed/inference/v2/kernels/core_ops/core_ops.cpp +++ b/deepspeed/inference/v2/kernels/core_ops/core_ops.cpp @@ -10,6 +10,7 @@ #include "blas.h" #include "gated_activation_kernels.h" #include "layer_norm.h" +#include "linear_kernels.h" #include "rms_norm.h" PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) @@ -33,4 +34,9 @@ PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) // rms_norm.h m.def("rms_norm", &rms_norm, "DeepSpeed rms norm in CUDA"); m.def("rms_pre_norm", &rms_pre_norm, "DeepSpeed rms pre norm in CUDA"); + + // linear_kernels.h + m.def("cuda_wf6af16_linear", &cuda_wf6af16_linear, "DeepSpeed Wf6Af16 linear in CUDA"); + m.def( + "preprocess_weight", &preprocess_weight, "preprocess the FP16 weight to be 2bit and 4 bit"); } diff --git a/deepspeed/inference/v2/kernels/core_ops/cuda_layer_norm/layer_norm.cu b/deepspeed/inference/v2/kernels/core_ops/cuda_layer_norm/layer_norm_cuda.cu similarity index 99% rename from deepspeed/inference/v2/kernels/core_ops/cuda_layer_norm/layer_norm.cu rename to deepspeed/inference/v2/kernels/core_ops/cuda_layer_norm/layer_norm_cuda.cu index 15f52c46622b..fb6dd0578f1d 100644 --- a/deepspeed/inference/v2/kernels/core_ops/cuda_layer_norm/layer_norm.cu +++ b/deepspeed/inference/v2/kernels/core_ops/cuda_layer_norm/layer_norm_cuda.cu @@ -252,7 +252,6 @@ __global__ void fused_residual_ln(T* output, for (int i = 0; i < unRoll; i++) { T* iteration_buffer = local_buffer + i * T_per_load; T residual_buffer[T_per_load]; - T bias_buffer[T_per_load]; mem_access::load_global( iteration_buffer, input_base + i * stride, thread_offset + i * stride < elems_per_row); diff --git a/deepspeed/inference/v2/kernels/ragged_ops/top_1_gating/__init__.py b/deepspeed/inference/v2/kernels/core_ops/cuda_linear/__init__.py similarity index 69% rename from deepspeed/inference/v2/kernels/ragged_ops/top_1_gating/__init__.py rename to deepspeed/inference/v2/kernels/core_ops/cuda_linear/__init__.py index b50a0838d9f8..cd08409c0a7a 100644 --- a/deepspeed/inference/v2/kernels/ragged_ops/top_1_gating/__init__.py +++ b/deepspeed/inference/v2/kernels/core_ops/cuda_linear/__init__.py @@ -3,4 +3,4 @@ # DeepSpeed Team -from .top_1_gating import RaggedTop1Gating +from .cuda_linear import * diff --git a/deepspeed/inference/v2/kernels/core_ops/cuda_linear/cuda_linear.py b/deepspeed/inference/v2/kernels/core_ops/cuda_linear/cuda_linear.py new file mode 100644 index 000000000000..69aa9e8920e2 --- /dev/null +++ b/deepspeed/inference/v2/kernels/core_ops/cuda_linear/cuda_linear.py @@ -0,0 +1,207 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import torch + +from ....inference_utils import DtypeEnum +from ....logging import inference_logger +from deepspeed.ops.op_builder import InferenceCoreBuilder +from ... import DSKernelBase + + +class CUDAWf6Af16Linear(DSKernelBase): + """ + Wrapper around the CUDA kernel of Wf6Af16 quantized linear. + + Performs z = x @ y + """ + supported_dtypes = [DtypeEnum.fp16] + + def __init__(self): + self.inf_module = InferenceCoreBuilder().load() + self.inf_module.create_handle() + self.kernel = self.inf_module.cuda_wf6af16_linear + # The split_k_map is profiled on A100-80G GPU for some common shapes. + # It is an array of dictionaries, where the array index is the tokens chunk id. + # The dictionary is the mapping from the output channel to the split-K size. + self.split_k_map = [ + { # tokens: [1, 64] + 3072: 18, + 4096: 13, + 5120: 10, + 6144: 9, + 8192: 6, + 10240: 5, + 14336: 7, + 28672: 7, + 57344: 7 + }, + { # tokens: [65:128] + 3072: 9, + 4096: 6, + 5120: 5, + 6144: 9, + 8192: 3, + 10240: 5, + 14336: 7, + 28672: 7, + 57344: 6 + }, + { # tokens: [129:192] + 3072: 6, + 4096: 4, + 5120: 7, + 6144: 3, + 8192: 2, + 10240: 5, + 14336: 5, + 28672: 5, + 57344: 4 + }, + { # tokens: [193:256] + 3072: 9, + 4096: 3, + 5120: 5, + 6144: 2, + 8192: 5, + 10240: 4, + 14336: 8, + 28672: 6, + 57344: 4 + }, + { # tokens: [257:320] + 3072: 7, + 4096: 5, + 5120: 2, + 6144: 5, + 8192: 4, + 10240: 1, + 14336: 3, + 28672: 3, + 57344: 4 + }, + { # tokens: [321:384] + 3072: 3, + 4096: 2, + 5120: 5, + 6144: 3, + 8192: 1, + 10240: 8, + 14336: 3, + 28672: 4, + 57344: 3 + }, + { # tokens: [385:448] + 3072: 5, + 4096: 7, + 5120: 3, + 6144: 5, + 8192: 7, + 10240: 3, + 14336: 1, + 28672: 1, + 57344: 3 + }, + { # tokens: [449:512] + 3072: 2, + 4096: 5, + 5120: 4, + 6144: 1, + 8192: 5, + 10240: 2, + 14336: 6, + 28672: 4, + 57344: 1 + }, + { # tokens: [513:576] + 3072: 2, + 4096: 3, + 5120: 1, + 6144: 1, + 8192: 3, + 10240: 3, + 14336: 3, + 28672: 1, + 57344: 1 + }, + { # tokens: [577:640] + 3072: 5, + 4096: 4, + 5120: 1, + 6144: 4, + 8192: 2, + 10240: 1, + 14336: 1, + 28672: 1, + 57344: 1 + }, + { # tokens: [641:704] + 3072: 3, + 4096: 1, + 5120: 2, + 6144: 2, + 8192: 1, + 10240: 2, + 14336: 1, + 28672: 1, + 57344: 1 + }, + { # tokens: [705:768] + 3072: 3, + 4096: 1, + 5120: 3, + 6144: 2, + 8192: 1, + 10240: 1, + 14336: 1, + 28672: 1, + 57344: 1 + } + ] + + def __call__(self, output: torch.Tensor, hidden_states: torch.Tensor, weights_2bit: torch.Tensor, + weights_4bit: torch.Tensor, scale: torch.Tensor, out_channels, tokens, in_channels) -> torch.Tensor: + """ + Matmul kernel of FP6 weight-only quantized linear. All inputs should be contiguous. + It does not support batched-matmul. + + Parameters: + output (torch.Tensor): Output tensor. Shape is of [token_number, out_features] + hidden_states (torch.Tensor): Input tensor. Shape is of [token_number, in_features] + weights_2bit (torch.Tensor): Input tensor of the 2-bit slice. Shape is of [out_features*2/8, in_features] + weights_4bit (torch.Tensor): Input tensor of the 4-bit slice. Shape is of [out_features*4/8, in_features] + scale (torch.Tensor): Input tensor. Shape is of [out_features], since the scale is per output channel + out_channels (int): The number of output channels + tokens (int): The number of tokens + in_channels (int): The number of input channels + """ + + if out_channels % 256 != 0 or in_channels % 64 != 0: + raise ValueError("The out and in channel should be multiple of 256 and 64 respectively.") + + # TODO: add a more general heuristic to determine the split-K. + split_k = -1 # not initialized + if tokens <= 768: + # Try to find the split-K from the pre-profiled map. + tokens_chunk_id = (tokens - 1) // 64 + split_k = self.split_k_map[tokens_chunk_id].get(out_channels, -1) + if split_k == -1: + split_k = 1 + inference_logger().warning( + f"The split-K setting may be suboptimal for shape {tokens}x{in_channels}x{out_channels}...") + + workspace = self.get_workspace(out_channels, tokens, in_channels, split_k, torch.float, hidden_states.device) + self.kernel(output, hidden_states, weights_2bit, weights_4bit, scale, workspace, out_channels, tokens, + in_channels, split_k) + + def get_workspace(self, out_channels: int, tokens: int, in_channels: int, split_k: int, dtype, + device) -> torch.Tensor: + """ + Allocate workspace for the kernel. The workspace is used to store the intermediate results of the matmul before + split-K. The split-K size is determined by the size of the matmul. + """ + workspace = torch.empty((split_k, out_channels, tokens), dtype=dtype, device=device) + + return workspace diff --git a/deepspeed/inference/v2/kernels/core_ops/cuda_linear/include/configs.h b/deepspeed/inference/v2/kernels/core_ops/cuda_linear/include/configs.h new file mode 100644 index 000000000000..76e8eda2d35e --- /dev/null +++ b/deepspeed/inference/v2/kernels/core_ops/cuda_linear/include/configs.h @@ -0,0 +1,96 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 + +// DeepSpeed Team + +// This is a copy of FP6-LLM kernel code: https://arxiv.org/abs/2401.14112 + +#ifndef CONFIGS_H +#define CONFIGS_H + +// #define DEBUG_MODE +#define PIPELINE_LEVEL_GMEM 2 +#define PIPELINE_LEVEL_SMEM 2 // only support 2 + +/************************ Hardware Parameters ************************/ +#define WARP_SIZE 32 +#define REG_BIT_WIDTH 32 +// mma: M=16 K=16 N=8 +#define MMA_8 8 +#define MMA_16 16 +// for memory access +#define THREAD_OPT_ACCESS_BIT_WIDTH_128 128 // LDS.128, cp_async.128, ... +#define BIT_WIDTH_PER_HALF 16 // Half precision: FP16 + +/******************** Register Allocation For GEMM ********************/ +#define REG_PER_THREAD_C_TENSOR_16_16 8 // 8 for FP32 Accumulation +/********************** Memory Padding Parameters **********************/ +// Eliminating bank-conflict +#define PADDING_BYTES_16 16 // Padding 16 bytes each column +#define PADDING_SHARED_MEM_FOR_B_8 \ + 8 // Padding 8 half each column, during CopyFromGlobalToShared() for B +#define PADDING_SHARED_MEM_FOR_C_4 \ + 4 // Padding 4 float each column, during StoreToSharedMemoryFromRegister() for C +/************************* WARP Tiling part-1 *************************/ +#define WARP_ROW_MMA_TENSORS 4 +#define WARP_M (WARP_ROW_MMA_TENSORS * MMA_16) // 64 +#define WARP_K_MMA_TENSORS 4 +#define WARP_K (WARP_K_MMA_TENSORS * MMA_16) // 64 +template +struct TilingConfig { + // Depending on "n" dimension of the GEMM + static constexpr int BLOCK_ROW_WARPS = BLOCK_ROW_WARPS_; + static constexpr int BLOCK_COL_WARPS = BLOCK_COL_WARPS_; + static constexpr int WARP_COL_MMA_TENSORS = WARP_COL_MMA_TENSORS_; + /************************* WARP Tiling part-2 *************************/ + static constexpr int WARP_N = WARP_COL_MMA_TENSORS * MMA_8; + /*************************Thread Block Tiling *************************/ + static constexpr int TILE_M = WARP_M * BLOCK_ROW_WARPS; + static constexpr int TILE_N = MMA_8 * WARP_COL_MMA_TENSORS * BLOCK_COL_WARPS; + static constexpr int TILE_K = WARP_K; + /********************** #Thread per Thread Block **********************/ + static constexpr int BLOCK_WARPS = BLOCK_ROW_WARPS * BLOCK_COL_WARPS; + static constexpr int BLOCK_THREADS = BLOCK_WARPS * WARP_SIZE; + /******************************* Others *******************************/ + static constexpr int SMEM_SIZE_B_TILE = TILE_N * (TILE_K + PADDING_BYTES_16) * 2 * + PIPELINE_LEVEL_GMEM; // sizeof(half)=2, doubleBuffer=2 + static constexpr int SMEM_SIZE_C_TILE = + TILE_N * (TILE_M + PADDING_BYTES_16) * 4; // sizeof(float)=4 +}; + +/************************ General Config for Quant-LLM **********************/ +#define WEIGHT_FRAG1_BIT_WIDTH 2 +#define WEIGHT_FRAG2_BIT_WIDTH 4 +#define WEIGHT_BIT_WIDTH (WEIGHT_FRAG1_BIT_WIDTH + WEIGHT_FRAG2_BIT_WIDTH) // 6 +// #define QUANT_GROUP_SIZE_DIVIDED_BY_64 4 // +// QuantGroupSize: 4*64 = 256 +/*************************** 64*64 Weghts of A WARP *************************/ +#define WEIGHT_PER_UNIT (WARP_M * WARP_K) // 64*64 +#define SMEM_SIZE_IN_BYTES_PER_WARP_A1 \ + (WEIGHT_PER_UNIT * WEIGHT_FRAG1_BIT_WIDTH / \ + 8) // 1024 Bytes #doubleBuffer not takedn into consideration +#define SMEM_SIZE_IN_BYTES_PER_WARP_A2 \ + (WEIGHT_PER_UNIT * WEIGHT_FRAG2_BIT_WIDTH / \ + 8) // 2048 Bytes #doubleBuffer not takedn into consideration +#define SMEM_SIZE_A1_TILE \ + (SMEM_SIZE_IN_BYTES_PER_WARP_A1 * 4 * \ + PIPELINE_LEVEL_GMEM) // #WARP=4, #Trible-Buffer for 3-level pipeline for A = 12 KB; double + // buffer for 2-level pipeline A= 8 KB. +#define SMEM_SIZE_A2_TILE \ + (SMEM_SIZE_IN_BYTES_PER_WARP_A2 * 4 * \ + PIPELINE_LEVEL_GMEM) // #WARP=4, #Trible-Buffer for 3-level pipeline for A = 24 KB; double + // buffer for 2-level pipeline A= 16 KB. +/******************** Global Memory Layout For QUANTIZED DATA ******************/ +#define NUM_INT4_PER_UNIT_2BIT_FRAG (WEIGHT_PER_UNIT * WEIGHT_FRAG1_BIT_WIDTH / 128) // 64 +#define NUM_INT4_PER_UNIT_4BIT_FRAG (WEIGHT_PER_UNIT * WEIGHT_FRAG2_BIT_WIDTH / 128) // 128 +/******************** Register Allocation For QUANTIZED DATA ******************/ +#define WEIGHT_PER_THREAD (WEIGHT_PER_UNIT / WARP_SIZE) // 128 +#define REG_PER_THREAD_2BIT_FRAG (WEIGHT_PER_THREAD / REG_BIT_WIDTH * 2) // 8 +#define REG_PER_THREAD_4BIT_FRAG (WEIGHT_PER_THREAD / REG_BIT_WIDTH * 4) // 16 +/******************** Register Allocation For QUANT Scales ******************/ +#define WARP_REG_QUANT_SCALE 4 // 8 rows per thread -> 8 FP16 scales -> 4 registers +#define WARP_REG_QUANT_SCALE_DISTRIBUTED \ + 1 // T0-T3, T4-T7, ..., T28-T31 share the same scales, using shfl to get all the scales for + // each thread + +#endif // CONFIGS_H diff --git a/deepspeed/inference/v2/kernels/core_ops/cuda_linear/include/kernel_matmul.cuh b/deepspeed/inference/v2/kernels/core_ops/cuda_linear/include/kernel_matmul.cuh new file mode 100644 index 000000000000..860f70b226cb --- /dev/null +++ b/deepspeed/inference/v2/kernels/core_ops/cuda_linear/include/kernel_matmul.cuh @@ -0,0 +1,272 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 + +// DeepSpeed Team + +// This is a copy of FP6-LLM kernel code: https://arxiv.org/abs/2401.14112 + +#ifndef DEEPSPEED_CUDA_LINEAR_KERNEL_MATMUL_CUH +#define DEEPSPEED_CUDA_LINEAR_KERNEL_MATMUL_CUH + +#include "configs.h" +#include "utils_core.cuh" +#include "utils_gmem.cuh" + +/* + * C = A*B + * A: row major with ahead-of-time layout transformation, FP6 + * B: col major, FP16 + * C: col major, FP16 + */ +template +__global__ void QUANT_GEMM_Kernel(const uint4* Weight1, + const uint4* Weight2, + const half* Scales, + const half* B, + OutputDataType* C, + const size_t M_Global, + const size_t N_Global, + const size_t K_Global, + int Split_K) +{ +#if defined(__CUDA_ARCH__) && __CUDA_ARCH__ >= 800 && __CUDA_ARCH__ < 900 + +#ifdef DEBUG_MODE + assert(K_Global % TilingConfig::TILE_K == 0); + assert(M_Global % TilingConfig::TILE_M == 0); + assert(gridDim.y == Split_K * (M_Global / TilingConfig::TILE_M)); +#endif + extern __shared__ __align__(128) + half smem[]; // Dynamic shared memory for FP16 A tiles, 128 Bytes aligned + half(*smem_array)[WARP_K + PADDING_SHARED_MEM_FOR_B_8] = + reinterpret_cast( + smem + + (SMEM_SIZE_A1_TILE + SMEM_SIZE_A2_TILE) / 2); // Dynamic shared memory for FP16 B tiles + __shared__ half QuantScales[64 * TilingConfig::BLOCK_WARPS]; // static shared memory for + // quantization scales, 64 row per + // warp * 4 warps = 512 Bytes + // Thread Block Mapping, considering SplitK + const size_t BatchID = blockIdx.y / (M_Global / TilingConfig::TILE_M); + const size_t x = blockIdx.x; // Output Block ID: (BlockID_Row = y; BlockID_Col = x ) + const size_t y = + blockIdx.y % + (M_Global / TilingConfig::TILE_M); // Output Block ID: (BlockID_Row = y; BlockID_Col = x ) + const size_t Tile_Start_M = y * TilingConfig::TILE_M; + const size_t Tile_Start_N = x * TilingConfig::TILE_N; + const size_t NumColumnToCopy = (N_Global - Tile_Start_N) < TilingConfig::TILE_N + ? (N_Global - Tile_Start_N) + : TilingConfig::TILE_N; + const size_t NumBlock_K = K_Global / TilingConfig::TILE_K; + const size_t AverageNumBlock_K = NumBlock_K / Split_K; + const size_t ExtraNumBlock_K = NumBlock_K - AverageNumBlock_K * Split_K; + size_t NumIter = AverageNumBlock_K; + if (BatchID < ExtraNumBlock_K) NumIter++; + size_t StartBlockID_K = AverageNumBlock_K * BatchID; + if (BatchID < ExtraNumBlock_K) + StartBlockID_K += BatchID; + else + StartBlockID_K += ExtraNumBlock_K; + // Warp ID. + const int warpId = threadIdx.x / WARP_SIZE; + int WARP_i = + warpId / TilingConfig::BLOCK_COL_WARPS; // WARP_i: row number; WARP_j: column number + // int WARP_j = warpId % TilingConfig::BLOCK_COL_WARPS; + // Global Memory Address for Matrix A (Weight) + // ///////////////////////////////////////////////////////////////////////// StartPTR for each + // ThreadBlock(TB) + const uint4* TB_StartGPTR_A1 = + Weight1 + (y * TilingConfig::BLOCK_ROW_WARPS) * NumBlock_K * NUM_INT4_PER_UNIT_2BIT_FRAG; + const uint4* TB_StartGPTR_A2 = + Weight2 + (y * TilingConfig::BLOCK_ROW_WARPS) * NumBlock_K * NUM_INT4_PER_UNIT_4BIT_FRAG; + // StartPTR for each WARP. + const uint4* WARP_StartGPTR_A1 = + TB_StartGPTR_A1 + WARP_i * NumBlock_K * NUM_INT4_PER_UNIT_2BIT_FRAG; + const uint4* WARP_StartGPTR_A2 = + TB_StartGPTR_A2 + WARP_i * NumBlock_K * NUM_INT4_PER_UNIT_4BIT_FRAG; + // StartPTR for each WARP, considering SplitK + const size_t WARP_Start_UnitID_K = StartBlockID_K; + WARP_StartGPTR_A1 += WARP_Start_UnitID_K * NUM_INT4_PER_UNIT_2BIT_FRAG; + WARP_StartGPTR_A2 += WARP_Start_UnitID_K * NUM_INT4_PER_UNIT_4BIT_FRAG; + // Copying A tile from Global to Shared, using double-buffer + // ////////////////////////////////////////////////////////// StartSPTR for each ThreadBlock + uint32_t* AFrag_2BIT_SPTR = reinterpret_cast(smem); + uint32_t* AFrag_4BIT_SPTR = + AFrag_2BIT_SPTR + + SMEM_SIZE_IN_BYTES_PER_WARP_A1 / 4 * TilingConfig::BLOCK_WARPS * + PIPELINE_LEVEL_GMEM; // 8 buffers including double buffers, 12 for trible buffers + // StartSPTR for each WARP + AFrag_2BIT_SPTR += warpId * SMEM_SIZE_IN_BYTES_PER_WARP_A1 / 4; + AFrag_4BIT_SPTR += warpId * SMEM_SIZE_IN_BYTES_PER_WARP_A2 / 4; + // Pre-fetch of A tile + for (int i = 0; i < PIPELINE_LEVEL_GMEM - 1; i++) { + CopyFromGlobalToShared_A( + AFrag_2BIT_SPTR + i * SMEM_SIZE_IN_BYTES_PER_WARP_A1 / 4 * 4, WARP_StartGPTR_A1); + CopyFromGlobalToShared_A( + AFrag_4BIT_SPTR + i * SMEM_SIZE_IN_BYTES_PER_WARP_A2 / 4 * 4, WARP_StartGPTR_A2); + WARP_StartGPTR_A1 += SMEM_SIZE_IN_BYTES_PER_WARP_A1 / 16; + WARP_StartGPTR_A2 += SMEM_SIZE_IN_BYTES_PER_WARP_A2 / 16; + } + // Global Memory Address for Matrix A (QuantScale) + // ///////////////////////////////////////////////////////////////////// + const half* TB_StartGPTR_A_Scale = Scales + (y * TilingConfig::BLOCK_ROW_WARPS) * 64; + const half* WARP_StartGPTR_A_Scales = TB_StartGPTR_A_Scale + WARP_i * 64; + CopyFromGlobalToShared_Scales(QuantScales + WARP_i * 64, WARP_StartGPTR_A_Scales); + // Copying B tile from Global to Shared, considering SplitK + // ///////////////////////////////////////////////////////////// + const half* BTile_GPTR = B + Tile_Start_N * K_Global + StartBlockID_K * TilingConfig::TILE_K; + for (int i = 0; i < PIPELINE_LEVEL_GMEM - 1; i++) { + CopyFromGlobalToShared( + smem_array + i * TilingConfig::TILE_N, BTile_GPTR, K_Global, NumColumnToCopy); + BTile_GPTR += TilingConfig::TILE_K; + } + // Register Allocation for A,B, and C, Initilazed to Zeros + // ///////////////////////////////////////////////////////////////////// + constexpr int NumRegSets_a = + WARP_ROW_MMA_TENSORS; // 1 set = 4 registers, containing a 16*16 MMA block + constexpr int NumRegSets_b = (TilingConfig::WARP_COL_MMA_TENSORS == 1) + ? 1 + : TilingConfig::WARP_COL_MMA_TENSORS / + 2; // 1 set = 4 registers, containing a 16*16 MMA block +#ifdef PIPELINE_LEVEL_SMEM + uint32_t a[NumRegSets_a * PIPELINE_LEVEL_SMEM] + [4]; // double/Trible buffer is used // Registers to store decompressed FP6 + uint32_t b[NumRegSets_b * PIPELINE_LEVEL_SMEM] + [4]; // double/Triple buffer is used // Register to store FP16 B matrix (a slice) +#endif + float c[NumRegSets_a * NumRegSets_b][REG_PER_THREAD_C_TENSOR_16_16]; + for (int i = 0; i < NumRegSets_a * NumRegSets_b; i++) + for (int j = 0; j < REG_PER_THREAD_C_TENSOR_16_16; j++) c[i][j] = 0.0f; + // + cp_async_wait_all(); + __syncthreads(); + + ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + uint32_t Scales_RPTR[4]; // 4 Registers per thread for Quantization Scales + ExtractFromSharedToReg_Scales(Scales_RPTR, QuantScales + WARP_i * 64); +#ifdef PIPELINE_LEVEL_SMEM + // Initializing the Software Pipeline: writing registers. + // //////////////////////////////////////////////////////////////////////////////////////////////// + initialize_mma_slice( + a, b, AFrag_2BIT_SPTR, AFrag_4BIT_SPTR, smem_array, Scales_RPTR); +#endif +// The outer loop. +// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +#pragma unroll(1) + for (size_t tile_id_k = 0; tile_id_k < NumIter; tile_id_k++) { + // Trible-Buffer for A Tile + uint32_t* __restrict__ read_SPTR_Frag1 = + AFrag_2BIT_SPTR + ((tile_id_k + 0) % PIPELINE_LEVEL_GMEM) * + SMEM_SIZE_IN_BYTES_PER_WARP_A1 / 4 * + 4; // 1024 (1)*4: 4 WARPs; (2)/4: int*+1 = char*+16 + uint32_t* __restrict__ read_SPTR_Frag2 = + AFrag_4BIT_SPTR + ((tile_id_k + 0) % PIPELINE_LEVEL_GMEM) * + SMEM_SIZE_IN_BYTES_PER_WARP_A2 / 4 * + 4; // 2048 (1)*4: 4 WARPs; (2)/4: int*+1 = char*+16 +#ifdef PIPELINE_LEVEL_SMEM + uint32_t* __restrict__ read2_SPTR_Frag1 = + AFrag_2BIT_SPTR + + ((tile_id_k + 1) % PIPELINE_LEVEL_GMEM) * SMEM_SIZE_IN_BYTES_PER_WARP_A1 / 4 * 4; + uint32_t* __restrict__ read2_SPTR_Frag2 = + AFrag_4BIT_SPTR + + ((tile_id_k + 1) % PIPELINE_LEVEL_GMEM) * SMEM_SIZE_IN_BYTES_PER_WARP_A2 / 4 * 4; +#endif + uint32_t* __restrict__ write_SPTR_Frag1 = + AFrag_2BIT_SPTR + ((tile_id_k + (PIPELINE_LEVEL_GMEM - 1)) % PIPELINE_LEVEL_GMEM) * + SMEM_SIZE_IN_BYTES_PER_WARP_A1 / 4 * + 4; // 1024 (1)*4: 4 WARPs; (2)/4: int*+1 = char*+16 + uint32_t* __restrict__ write_SPTR_Frag2 = + AFrag_4BIT_SPTR + ((tile_id_k + (PIPELINE_LEVEL_GMEM - 1)) % PIPELINE_LEVEL_GMEM) * + SMEM_SIZE_IN_BYTES_PER_WARP_A2 / 4 * + 4; // 2048 (1)*4: 4 WARPs; (2)/4: int*+1 = char*+16 + // Trible-Buffer for B Tile + half(*__restrict__ read_SPTR)[WARP_K + PADDING_SHARED_MEM_FOR_B_8] = + smem_array + ((tile_id_k + 0) % PIPELINE_LEVEL_GMEM) * TilingConfig::TILE_N; +#ifdef PIPELINE_LEVEL_SMEM + half(*__restrict__ read2_SPTR)[WARP_K + PADDING_SHARED_MEM_FOR_B_8] = + smem_array + ((tile_id_k + 1) % PIPELINE_LEVEL_GMEM) * TilingConfig::TILE_N; +#endif + half(*__restrict__ write_SPTR)[WARP_K + PADDING_SHARED_MEM_FOR_B_8] = + smem_array + + ((tile_id_k + (PIPELINE_LEVEL_GMEM - 1)) % PIPELINE_LEVEL_GMEM) * TilingConfig::TILE_N; + // + bool GlobalCopy = (tile_id_k + PIPELINE_LEVEL_GMEM - 1) < NumIter; + // Copying A tile from Global to Register, Bypassing L1, using double-buffer + CopyFromGlobalToShared_A( + write_SPTR_Frag1, WARP_StartGPTR_A1, GlobalCopy); + CopyFromGlobalToShared_A( + write_SPTR_Frag2, WARP_StartGPTR_A2, GlobalCopy); + // copying B tile from GlobalMemory to SharedMemory + CopyFromGlobalToShared( + write_SPTR, BTile_GPTR, K_Global, NumColumnToCopy, GlobalCopy); + cp_async_group_commit(); +#ifdef PIPELINE_LEVEL_SMEM + core_mma_slice(c, + a, + b, + read_SPTR_Frag1, + read_SPTR_Frag2, + read_SPTR, + Scales_RPTR, + 1); // read_SPTR_Frag1, read_SPTR_Frag2 are different for each + // WARP; read_SPTR is shared among WARPs + core_mma_slice( + c, a, b, read_SPTR_Frag1, read_SPTR_Frag2, read_SPTR, Scales_RPTR, 2); + core_mma_slice( + c, a, b, read_SPTR_Frag1, read_SPTR_Frag2, read_SPTR, Scales_RPTR, 3); + // Barriers and Synchronizations + cp_async_wait_group(); + __syncthreads(); + core_mma_slice( + c, a, b, read2_SPTR_Frag1, read2_SPTR_Frag2, read2_SPTR, Scales_RPTR, 0); + // Updating global PTRs + WARP_StartGPTR_A1 += + SMEM_SIZE_IN_BYTES_PER_WARP_A1 / 16; // 4KB/16=256 (1)/16: int4*+1 = char*+16 + WARP_StartGPTR_A2 += + SMEM_SIZE_IN_BYTES_PER_WARP_A2 / 16; // 8KB/16=512 (1)/16: int4*+1 = char*+16 + BTile_GPTR += TilingConfig::TILE_K; +#else + PipelinedCoreLoop( + c, + read_SPTR, + read_SPTR_Frag1, + read_SPTR_Frag2, + Scales_RPTR); // read_SPTR_Frag1, read_SPTR_Frag2 are different for each WARP; + // read_SPTR is shared among WARPs + // Updating global PTRs + WARP_StartGPTR_A1 += + SMEM_SIZE_IN_BYTES_PER_WARP_A1 / 16; // 4KB/16=256 (1)/16: int4*+1 = char*+16 + WARP_StartGPTR_A2 += + SMEM_SIZE_IN_BYTES_PER_WARP_A2 / 16; // 8KB/16=512 (1)/16: int4*+1 = char*+16 + BTile_GPTR += TilingConfig::TILE_K; + // Barriers and Synchronizations + cp_async_wait_group(); + __syncthreads(); +#endif + } + ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Store the C fragments to shared memory. + float(*smem_CFrag)[TilingConfig::TILE_M + PADDING_SHARED_MEM_FOR_C_4] = + reinterpret_cast(smem); + StoreToSharedMemoryFromRegister(smem_CFrag, c); + __syncthreads(); + // Now that shared memory contains all the D tiles, stream them to global memory. + OutputDataType* BlockGlobalPTR = + C + BatchID * (M_Global * N_Global) + Tile_Start_M + Tile_Start_N * M_Global; + for (size_t i = warpId; i < NumColumnToCopy; i += TilingConfig::BLOCK_WARPS) // i-th column +#pragma unroll + for (size_t j = threadIdx.x % WARP_SIZE; j < TilingConfig::TILE_M; + j += WARP_SIZE) // j-th row + { + if constexpr (std::is_same::value) + BlockGlobalPTR[j + i * M_Global] = __float2half_rn(smem_CFrag[i][j]); + else + BlockGlobalPTR[j + i * M_Global] = smem_CFrag[i][j]; + } + +#else + assert(("The FP6 functions are only available on Ampere GPUs.", false)); +#endif +} + +#endif diff --git a/deepspeed/inference/v2/kernels/core_ops/cuda_linear/include/kernel_reduction.cuh b/deepspeed/inference/v2/kernels/core_ops/cuda_linear/include/kernel_reduction.cuh new file mode 100644 index 000000000000..c417e6a46a7c --- /dev/null +++ b/deepspeed/inference/v2/kernels/core_ops/cuda_linear/include/kernel_reduction.cuh @@ -0,0 +1,43 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 + +// DeepSpeed Team + +// This is a copy of FP6-LLM kernel code: https://arxiv.org/abs/2401.14112 + +#ifndef DEEPSPEED_CUDA_LINEAR_KERNEL_REDUCTION_CUH +#define DEEPSPEED_CUDA_LINEAR_KERNEL_REDUCTION_CUH + +#include +#include +#include + +#define REDUCTION_ELEMENT_PER_THREADBLOCK 256 +#define HALF_PER_128BIT 8 + +__global__ void SplitK_Reduction(half* C, + float* Reduction_Workspace, + size_t M_Global, + size_t N_Global, + int Split_K) +{ + half* WARP_GPTR_C = C + REDUCTION_ELEMENT_PER_THREADBLOCK * blockIdx.x; + float* WARP_GPTR_R = Reduction_Workspace + REDUCTION_ELEMENT_PER_THREADBLOCK * blockIdx.x; + half* THREAD_GPTR_C = WARP_GPTR_C + threadIdx.x * HALF_PER_128BIT; + float* THREAD_GPTR_R = WARP_GPTR_R + threadIdx.x * HALF_PER_128BIT; + // Initializing Thread-Local Results + float Results[HALF_PER_128BIT]; +#pragma unroll + for (int i = 0; i < HALF_PER_128BIT; i++) Results[i] = 0.0f; + // Reduction + for (int i = 0; i < Split_K; i++) { +#pragma unroll + for (int j = 0; j < HALF_PER_128BIT; j++) Results[j] += THREAD_GPTR_R[j]; + THREAD_GPTR_R += M_Global * N_Global; + } +// Writing to global memory +#pragma unroll + for (int i = 0; i < HALF_PER_128BIT; i++) THREAD_GPTR_C[i] = __float2half_rn(Results[i]); +} + +#endif diff --git a/deepspeed/inference/v2/kernels/core_ops/cuda_linear/include/ptx_cp.async.cuh b/deepspeed/inference/v2/kernels/core_ops/cuda_linear/include/ptx_cp.async.cuh new file mode 100644 index 000000000000..982d5a80010c --- /dev/null +++ b/deepspeed/inference/v2/kernels/core_ops/cuda_linear/include/ptx_cp.async.cuh @@ -0,0 +1,75 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 + +// DeepSpeed Team + +// This is a copy of FP6-LLM kernel code: https://arxiv.org/abs/2401.14112 + +#ifndef DEEPSPEED_CUDA_LINEAR_PTX_CP_ASYNC_CUH +#define DEEPSPEED_CUDA_LINEAR_PTX_CP_ASYNC_CUH + +#include +#include +#include + +template +__device__ __forceinline__ void cp_async(half* smem_ptr, + const half* global_ptr, + bool pred_guard = true) +{ +#if defined(__CUDA_ARCH__) && __CUDA_ARCH__ >= 800 + static_assert(SizeInBytes == 16, "Size is not supported"); + unsigned smem_int_ptr = __cvta_generic_to_shared(smem_ptr); + asm volatile( + "{ \n" + " .reg .pred p;\n" + " setp.ne.b32 p, %0, 0;\n" + " @p cp.async.cg.shared.global [%1], [%2], %3;\n" + "}\n" ::"r"((int)pred_guard), + "r"(smem_int_ptr), + "l"(global_ptr), + "n"(SizeInBytes)); +#else + assert( + ("The async copy functions are only supported on Ampere and newer architectures", false)); +#endif +} + +/// Establishes an ordering w.r.t previously issued cp.async instructions. Does not block. +__device__ __forceinline__ void cp_async_group_commit() +{ +#if defined(__CUDA_ARCH__) && __CUDA_ARCH__ >= 800 + asm volatile("cp.async.commit_group;\n" ::); +#else + assert( + ("The async copy functions are only supported on Ampere and newer architectures", false)); +#endif +} + +/// Blocks until all but previous cp.async.commit_group operations have committed. +template +__device__ __forceinline__ void cp_async_wait_group() +{ +#if defined(__CUDA_ARCH__) && __CUDA_ARCH__ >= 800 + asm volatile("cp.async.wait_group %0;\n" ::"n"(N)); +#else + assert( + ("The async copy functions are only supported on Ampere and newer architectures", false)); +#endif +} + +/// Blocks until all previous cp.async.commit_group operations have committed. +// cp.async.wait_all is equivalent to : +// cp.async.commit_group; +// cp.async.wait_group 0; +__device__ __forceinline__ void cp_async_wait_all() +{ +#if defined(__CUDA_ARCH__) && __CUDA_ARCH__ >= 800 + asm volatile("cp.async.wait_all;\n" ::); +#else + assert( + ("The async copy functions are only supported on Ampere and newer architectures", false)); +#endif +} + +#endif diff --git a/deepspeed/inference/v2/kernels/core_ops/cuda_linear/include/ptx_mma.cuh b/deepspeed/inference/v2/kernels/core_ops/cuda_linear/include/ptx_mma.cuh new file mode 100644 index 000000000000..56f86a46f6b5 --- /dev/null +++ b/deepspeed/inference/v2/kernels/core_ops/cuda_linear/include/ptx_mma.cuh @@ -0,0 +1,139 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 + +// DeepSpeed Team + +// This is a copy of FP6-LLM kernel code: https://arxiv.org/abs/2401.14112 + +#ifndef DEEPSPEED_CUDA_LINEAR_PTX_MMA_CUH +#define DEEPSPEED_CUDA_LINEAR_PTX_MMA_CUH + +#include +#include +#include + +#include +#include "configs.h" + +#ifdef PIPELINE_LEVEL_SMEM +template +__device__ __forceinline__ void B_FromSharedToReg( + uint32_t (*__restrict__ Reg)[4], + half (*__restrict__ read_SPTR)[WARP_K + PADDING_SHARED_MEM_FOR_B_8], + int slice_id) +{ +#if defined(__CUDA_ARCH__) && __CUDA_ARCH__ >= 800 +#ifdef DEBUG_MODE + static_assert((TilingConfig::WARP_COL_MMA_TENSORS == 1) || + (TilingConfig::WARP_COL_MMA_TENSORS % 2 == 0)); +#endif + + const int warpId = threadIdx.x / WARP_SIZE; + int lane_id = threadIdx.x % WARP_SIZE; + int WARP_j = warpId % TilingConfig::BLOCK_COL_WARPS; + int warp_start_col = TilingConfig::WARP_COL_MMA_TENSORS * MMA_8 * + WARP_j; // each warp may start from reading warp_start_col'th column of + // the B tile in shared memory +#ifdef DEBUG_MODE + assert(warp_start_col == 0); +#endif + + int col = (lane_id % 8) + (lane_id / 16) * 8; + int row = (lane_id % 16) / 8 * 8; + uint32_t smem_local_ptr = static_cast( + __cvta_generic_to_shared(&read_SPTR[warp_start_col + col][slice_id * MMA_16 + row])); + if (TilingConfig::WARP_COL_MMA_TENSORS == 1) { + asm volatile("ldmatrix.sync.aligned.x2.m8n8.shared.b16 {%0, %1}, [%2];\n" + : "=r"(Reg[0][0]), "=r"(Reg[0][1]) + : "r"(smem_local_ptr)); + } else { +#pragma unroll + for (int i = 0; i < TilingConfig::WARP_COL_MMA_TENSORS / 2; i++) { + asm volatile("ldmatrix.sync.aligned.x4.m8n8.shared.b16 {%0, %1, %2, %3}, [%4];\n" + : "=r"(Reg[i][0]), "=r"(Reg[i][1]), "=r"(Reg[i][2]), "=r"(Reg[i][3]) + : "r"(smem_local_ptr)); + smem_local_ptr += 16 * (WARP_K + PADDING_SHARED_MEM_FOR_B_8) * sizeof(half); + } + } +#else + assert( + ("The matrix load functions are only supported on Ampere and newer architectures", false)); +#endif +} +#else +// Debug: Whether ldmatrix.trans is required??? +// B is in column-major +template +__device__ __forceinline__ void B_FromSharedToReg( + uint32_t (*__restrict__ Reg)[4], + half (*__restrict__ read_SPTR)[WARP_K + PADDING_SHARED_MEM_FOR_B_8], + int k_offset) +{ +#if defined(__CUDA_ARCH__) && __CUDA_ARCH__ >= 800 +#ifdef DEBUG_MODE + static_assert((TilingConfig::WARP_COL_MMA_TENSORS == 1) || + (TilingConfig::WARP_COL_MMA_TENSORS % 2 == 0)); +#endif + + const int warpId = threadIdx.x / WARP_SIZE; + int lane_id = threadIdx.x % WARP_SIZE; + int WARP_j = warpId % TilingConfig::BLOCK_COL_WARPS; + int warp_start_col = TilingConfig::WARP_COL_MMA_TENSORS * MMA_8 * + WARP_j; // each warp may start from reading warp_start_col'th column of + // the B tile in shared memory +#ifdef DEBUG_MODE + assert(warp_start_col == 0); +#endif + + int col = (lane_id % 8) + (lane_id / 16) * 8; + int row = (lane_id % 16) / 8 * 8; + uint32_t smem_local_ptr = static_cast( + __cvta_generic_to_shared(&read_SPTR[warp_start_col + col][k_offset + row])); + if (TilingConfig::WARP_COL_MMA_TENSORS == 1) { + asm volatile("ldmatrix.sync.aligned.x2.m8n8.shared.b16 {%0, %1}, [%2];\n" + : "=r"(Reg[0][0]), "=r"(Reg[0][1]) + : "r"(smem_local_ptr)); + } else { +#pragma unroll + for (int i = 0; i < TilingConfig::WARP_COL_MMA_TENSORS / 2; i++) { + asm volatile("ldmatrix.sync.aligned.x4.m8n8.shared.b16 {%0, %1, %2, %3}, [%4];\n" + : "=r"(Reg[i][0]), "=r"(Reg[i][1]), "=r"(Reg[i][2]), "=r"(Reg[i][3]) + : "r"(smem_local_ptr)); + smem_local_ptr += 16 * (WARP_K + PADDING_SHARED_MEM_FOR_B_8) * sizeof(half); + } + } +#else + assert( + ("The matrix load functions are only supported on Ampere and newer architectures", false)); +#endif +} +#endif + +__device__ __forceinline__ void MMA_FP16_M16N8K16(uint32_t* __restrict__ c, + uint32_t* __restrict__ a, + uint32_t* __restrict__ b) +{ +#if defined(__CUDA_ARCH__) && __CUDA_ARCH__ >= 800 + asm volatile( + "mma.sync.aligned.m16n8k16.row.col.f32.f16.f16.f32" + "{ %0, %1, %2, %3}," + "{ %4, %5, %6, %7 }," + "{ %8, %9 }," + "{ %10, %11, %12, %13 };" + : "=r"(c[0]), "=r"(c[1]), "=r"(c[2]), "=r"(c[3]) + : "r"(a[0]), + "r"(a[1]), + "r"(a[2]), + "r"(a[3]), + "r"(b[0]), + "r"(b[1]), + "r"(c[0]), + "r"(c[1]), + "r"(c[2]), + "r"(c[3])); +#else + assert(("The mma functions are only implemented for Ampere and newer architectures", false)); +#endif +} + +#endif diff --git a/deepspeed/inference/v2/kernels/core_ops/cuda_linear/include/utils_core.cuh b/deepspeed/inference/v2/kernels/core_ops/cuda_linear/include/utils_core.cuh new file mode 100644 index 000000000000..bd8a009a02c6 --- /dev/null +++ b/deepspeed/inference/v2/kernels/core_ops/cuda_linear/include/utils_core.cuh @@ -0,0 +1,246 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 + +// DeepSpeed Team + +// This is a copy of FP6-LLM kernel code: https://arxiv.org/abs/2401.14112 + +#ifndef DEEPSPEED_CUDA_LINEAR_UTILS_CORE_CUH +#define DEEPSPEED_CUDA_LINEAR_UTILS_CORE_CUH + +#include + +#include "configs.h" +#include "ptx_mma.cuh" +#include "utils_paralleldequant.cuh" + +#ifdef PIPELINE_LEVEL_SMEM +template +__device__ __forceinline__ void CopyFromSharedToRegister_AFrag(uint32_t Reg[], + uint32_t* SPTR, + int slice_id) +{ + SPTR += slice_id * (NUM_INT_PER_THREAD * WARP_SIZE); + int lane_id = threadIdx.x % WARP_SIZE; +#pragma unroll + for (int i = 0; i < NUM_INT_PER_THREAD; i++) { Reg[i] = SPTR[lane_id + i * WARP_SIZE]; } +} + +template +__device__ __forceinline__ void initialize_mma_slice( + uint32_t (*a)[4], + uint32_t (*b)[4], + uint32_t* __restrict__ A1_SPTR_read, + uint32_t* __restrict__ A2_SPTR_read, + half (*__restrict__ B_SPTR_read)[WARP_K + PADDING_SHARED_MEM_FOR_B_8], + uint32_t* RPTR_Scales) +{ + // Writing registers + // Registers to store FP6 fragments for a slice (64*16) of A matrix => 32 FP6 per thread => 6 + // register per thread; + uint32_t a_1[2]; // NO double buffer + uint32_t a_2[4]; // NO double buffer + CopyFromSharedToRegister_AFrag<2>(a_1, A1_SPTR_read, 0); + CopyFromSharedToRegister_AFrag<4>(a_2, A2_SPTR_read, 0); + Dequant_32FP6_4Way(a, a_1, a_2, RPTR_Scales); // SIMT Dequant: dequantizing FP6 to FP16 at + // register level, dequantizing a slice each time + B_FromSharedToReg(b, B_SPTR_read, 0); // Loading B from shared to registers +} + +template +__device__ __forceinline__ void core_mma_slice( + float c[][REG_PER_THREAD_C_TENSOR_16_16], + uint32_t (*a)[4], + uint32_t (*b)[4], + uint32_t* __restrict__ A1_SPTR_read, + uint32_t* __restrict__ A2_SPTR_read, + half (*__restrict__ B_SPTR_read)[WARP_K + PADDING_SHARED_MEM_FOR_B_8], + uint32_t* RPTR_Scales, + int slice_id) // writing slice[slice_id] to registers, k=0 -> slice_id=1 for prefetching +{ +#ifdef DEBUG_MODE + assert( + (TilingConfig::WARP_COL_MMA_TENSORS == 1) || + (TilingConfig::WARP_COL_MMA_TENSORS % 2 == + 0)); // if WARP_COL_MMA_TENSORS == 1, B tile in registers is padded to a 16*16 MMA block +#endif + const int NumRegSets_a = + WARP_ROW_MMA_TENSORS; // 1 set = 4 registers, containing a 16*16 MMA block + const int NumRegSets_b = (TilingConfig::WARP_COL_MMA_TENSORS == 1) + ? 1 + : TilingConfig::WARP_COL_MMA_TENSORS / + 2; // 1 set = 4 registers, containing a 16*16 MMA block + uint32_t(*c_uint_ptr)[REG_PER_THREAD_C_TENSOR_16_16] = + reinterpret_cast( + c); // Registers for accumulated FP32 results + + // Setting RPTRs for double buffers + uint32_t(*a_read)[4] = a; + uint32_t(*a_write)[4] = a; + uint32_t(*b_read)[4] = b; + uint32_t(*b_write)[4] = b; + if (slice_id % 2 == 1) { + b_write += NumRegSets_b; + a_write += NumRegSets_a; + } else { + b_read += NumRegSets_b; + a_read += NumRegSets_a; + } + +// Reading registers and issuing core tensor core computations (a slice of A and B tile in shared +// memory) +#pragma unroll + for (int i = 0; i < WARP_ROW_MMA_TENSORS; i++) { + if (TilingConfig::WARP_COL_MMA_TENSORS == 1) { + MMA_FP16_M16N8K16(c_uint_ptr[i], a_read[i], b_read[0]); + } else { +#pragma unroll + for (int j = 0; j < TilingConfig::WARP_COL_MMA_TENSORS / 2; j++) { + MMA_FP16_M16N8K16(c_uint_ptr[i + j * WARP_ROW_MMA_TENSORS], a_read[i], b_read[j]); + MMA_FP16_M16N8K16(c_uint_ptr[i + j * WARP_ROW_MMA_TENSORS] + 4, + a_read[i], + b_read[j] + 2); // c+4; b+2 + } + } + } + + // Writing registers + // Registers to store FP6 fragments for a slice (64*16) of A matrix => 32 FP6 per thread => 6 + // register per thread; + uint32_t a_1[2]; // NO double buffer + uint32_t a_2[4]; // NO double buffer + CopyFromSharedToRegister_AFrag<2>(a_1, A1_SPTR_read, slice_id); + CopyFromSharedToRegister_AFrag<4>(a_2, A2_SPTR_read, slice_id); + Dequant_32FP6_4Way( + a_write, a_1, a_2, RPTR_Scales); // SIMT Dequant: dequantizing FP6 to FP16 at register + // level, dequantizing a slice each time + B_FromSharedToReg( + b_write, B_SPTR_read, slice_id); // Loading B from shared to registers +} + +#else +// Old version with naive pipeline design +template +__device__ __forceinline__ void CopyFromSharedToRegister_AFrag(uint32_t Reg[], uint32_t* SPTR) +{ + int lane_id = threadIdx.x % WARP_SIZE; +#pragma unroll + for (int i = 0; i < NUM_INT_PER_THREAD; i++) { Reg[i] = SPTR[lane_id + i * WARP_SIZE]; } +} +template +__device__ __forceinline__ void PipelinedCoreLoop( + float c[][REG_PER_THREAD_C_TENSOR_16_16], + half __restrict__ (*read_SPTR)[WARP_K + PADDING_SHARED_MEM_FOR_B_8], + uint32_t* __restrict__ read_SPTR_Frag1, + uint32_t* __restrict__ read_SPTR_Frag2, + uint32_t* RPTR_Scales) +{ +#ifdef DEBUG_MODE + assert( + (TilingConfig::WARP_COL_MMA_TENSORS == 1) || + (TilingConfig::WARP_COL_MMA_TENSORS % 2 == + 0)); // if WARP_COL_MMA_TENSORS == 1, B tile in registers is padded to a 16*16 MMA block +#endif + const int NumRegSets_a = + WARP_ROW_MMA_TENSORS; // 1 set = 4 registers, containing a 16*16 MMA block + const int NumRegSets_b = (TilingConfig::WARP_COL_MMA_TENSORS == 1) + ? 1 + : TilingConfig::WARP_COL_MMA_TENSORS / + 2; // 1 set = 4 registers, containing a 16*16 MMA block + + // Registers to store FP32 results + uint32_t(*c_uint_ptr)[REG_PER_THREAD_C_TENSOR_16_16] = + reinterpret_cast(c); + // Registers to store FP6 fragments for a slice (64*16) of A matrix => 32 FP6 per thread => 6 + // register per thread; + uint32_t a_1[2 * 2]; // double buffer is used + uint32_t a_2[4 * 2]; // double buffer is used + // Registers to store decompressed FP6 + uint32_t a[NumRegSets_a * 1][4]; // No double buffer + // Register to store FP16 B matrix (a slice) + uint32_t b[NumRegSets_b * 2][4]; // double buffer is used + + // Overlapped Smem and TC pipeline: pre-loading from shared to registers + CopyFromSharedToRegister_AFrag<2>(a_1, read_SPTR_Frag1); + CopyFromSharedToRegister_AFrag<4>(a_2, read_SPTR_Frag2); + B_FromSharedToReg(b, read_SPTR, 0); + +#pragma unroll + for (int k = 0; k < WARP_K_MMA_TENSORS; k++) { + uint32_t(*b_read)[4] = b; + uint32_t(*b_write)[4] = b; + uint32_t* a_1_read = a_1; + uint32_t* a_1_write = a_1; + uint32_t* a_2_read = a_2; + uint32_t* a_2_write = a_2; + if (k % 2 == 0) { + b_write += NumRegSets_b; + a_1_write += 2; + a_2_write += 4; + } else { + b_read += NumRegSets_b; + a_1_read += 2; + a_2_read += 4; + } + // data loading + if (k + 1 < WARP_K_MMA_TENSORS) { + // updating SPTR for fragment1 and fragment2 + read_SPTR_Frag1 += 2 * WARP_SIZE; + read_SPTR_Frag2 += 4 * WARP_SIZE; + CopyFromSharedToRegister_AFrag<2>(a_1_write, read_SPTR_Frag1); + CopyFromSharedToRegister_AFrag<4>(a_2_write, read_SPTR_Frag2); + B_FromSharedToReg(b_write, read_SPTR, (k + 1) * MMA_16); + } + // SIMT Dequant + Tensor Core computations + Dequant_32FP6_4Way( + a, a_1_read, a_2_read, RPTR_Scales); // Dequantizing FP6 to FP16 at register level, + // dequantizing a slice each time +#pragma unroll + for (int i = 0; i < WARP_ROW_MMA_TENSORS; i++) { + if (TilingConfig::WARP_COL_MMA_TENSORS == 1) + MMA_FP16_M16N8K16(c_uint_ptr[i], a[i], b_read[0]); + else { +#pragma unroll + for (int j = 0; j < TilingConfig::WARP_COL_MMA_TENSORS / 2; j++) { + MMA_FP16_M16N8K16(c_uint_ptr[i + j * WARP_ROW_MMA_TENSORS], a[i], b_read[j]); + MMA_FP16_M16N8K16(c_uint_ptr[i + j * WARP_ROW_MMA_TENSORS] + 4, + a[i], + b_read[j] + 2); // c+4; b+2 + } + } + } + } +} +#endif // #ifdef PIPELINE_LEVEL_SMEM + +template +__device__ __forceinline__ void StoreToSharedMemoryFromRegister( + float (*smem_CFrag)[TilingConfig::TILE_M + PADDING_SHARED_MEM_FOR_C_4], + float c[][REG_PER_THREAD_C_TENSOR_16_16]) +{ + const int lane_id = threadIdx.x % WARP_SIZE; + const int warpId = threadIdx.x / WARP_SIZE; + int warp_row_offset = warpId * (MMA_16 * WARP_ROW_MMA_TENSORS); +#pragma unroll + for (int i = 0; i < WARP_ROW_MMA_TENSORS; i++) { +#pragma unroll + for (int j = 0; j < TilingConfig::WARP_COL_MMA_TENSORS; + j++) { // Dealing with one 16*8 Tensor + int RegSetID = i + (j / 2) * WARP_ROW_MMA_TENSORS; + int RegOffset = (j % 2) * (REG_PER_THREAD_C_TENSOR_16_16 / 2); + int Tensor_row_offset = warp_row_offset + i * MMA_16; + int Tensor_col_offset = j * MMA_8; +#pragma unroll + for (int r = 0; r < REG_PER_THREAD_C_TENSOR_16_16 / 2; r++) { + int row_offset = lane_id / 4; + if (r >= 2) row_offset += 8; + int col_offset = (lane_id % 4) * 2; + if (r % 2 == 1) col_offset += 1; + smem_CFrag[Tensor_col_offset + col_offset][Tensor_row_offset + row_offset] = + c[RegSetID][r + RegOffset]; + } + } + } +} + +#endif diff --git a/deepspeed/inference/v2/kernels/core_ops/cuda_linear/include/utils_gmem.cuh b/deepspeed/inference/v2/kernels/core_ops/cuda_linear/include/utils_gmem.cuh new file mode 100644 index 000000000000..3dd7e9e0104e --- /dev/null +++ b/deepspeed/inference/v2/kernels/core_ops/cuda_linear/include/utils_gmem.cuh @@ -0,0 +1,86 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 + +// DeepSpeed Team + +// This is a copy of FP6-LLM kernel code: https://arxiv.org/abs/2401.14112 + +#ifndef DEEPSPEED_CUDA_LINEAR_UTILS_GMEM_CUH +#define DEEPSPEED_CUDA_LINEAR_UTILS_GMEM_CUH + +#include +#include "configs.h" +#include "ptx_cp.async.cuh" + +/* + * Copying A1/A2 from global memory to shared memory. + * Usually 1024 or 2048 Bytes + */ +template +__device__ __forceinline__ void CopyFromGlobalToShared_A(uint32_t* SPTR, + const uint4* GPTR, + bool pred_guard = true) +{ +#ifdef DEBUG_MODE + static_assert(SMEM_SIZE_IN_BYTES_PER_WARP / WARP_SIZE % 16 == 0); +#endif + int lane_id = threadIdx.x % WARP_SIZE; + half* SPTR_HALF = reinterpret_cast(SPTR); + const half* GPTR_HALF = reinterpret_cast(GPTR); + SPTR_HALF += lane_id * 8; + GPTR_HALF += lane_id * 8; +#pragma unroll + for (int i = 0; i < SMEM_SIZE_IN_BYTES_PER_WARP / WARP_SIZE / 16; i++) { + cp_async<16>(SPTR_HALF, GPTR_HALF, pred_guard); + SPTR_HALF += 256; // Forward 512 Bytes + GPTR_HALF += 256; // Forward 512 Bytes + } +} + +/* + * Copying 64 Quant Scales (FP16) from global memory to shared memory. + */ +__device__ __forceinline__ void CopyFromGlobalToShared_Scales(half* SPTR_QuantScales, + const half* GPTR_A_Scales) +{ + int lane_id = threadIdx.x % WARP_SIZE; + int Offset_Shared = lane_id * 2; + int Offset_Global = lane_id / 4 + (lane_id % 4) * 16; + for (int i = 0; i < 2; i++) + SPTR_QuantScales[Offset_Shared + i] = GPTR_A_Scales[Offset_Global + i * 8]; +} + +/* + * (1) Copying X rows * 64 columns of FP16 values, originally in row major + * (2) Copying 64 rows * X columns of FP16 values, originally in column major + * 16 Bytes per thread -> 512 Bytes per WARP = 4 line per WARP = 1 line per 8 Threads + */ +template +__device__ __forceinline__ void CopyFromGlobalToShared( + half (*__restrict__ SharedPTR)[WARP_K + PADDING_SHARED_MEM_FOR_B_8], + const half* GlobalPTR, + const int GlobalStride, + const int NumOfLinesLeft, // To support arbitrary N dimensions. + bool Pred = true) +{ + // static parameters: 1 Group (8 Threads) can copy 1 line (64 FP16) each time + const int NumOfThreads = BLOCK_WARPS * WARP_SIZE; + const int NumOfGroups = NumOfThreads / 8; + const int MaxIteration = (MaxNumOfLinesToCopy - 1) / NumOfGroups + 1; + // runtime variables + const int line_id = threadIdx.x / 8; + const int line_offset = (threadIdx.x % 8) * 8; + // PTR for source global memory and target shared memory + GlobalPTR += line_id * GlobalStride + line_offset; + SharedPTR += line_id; +#pragma unroll + for (int i = 0; i < MaxIteration; i++) { + bool AsyncCopyPred = (line_id + i * NumOfGroups) < NumOfLinesLeft && Pred; + cp_async<16>(&(*SharedPTR)[line_offset], GlobalPTR, AsyncCopyPred); + // + GlobalPTR += NumOfGroups * GlobalStride; + SharedPTR += NumOfGroups; + } +} + +#endif diff --git a/deepspeed/inference/v2/kernels/core_ops/cuda_linear/include/utils_paralleldequant.cuh b/deepspeed/inference/v2/kernels/core_ops/cuda_linear/include/utils_paralleldequant.cuh new file mode 100644 index 000000000000..11603fcc576c --- /dev/null +++ b/deepspeed/inference/v2/kernels/core_ops/cuda_linear/include/utils_paralleldequant.cuh @@ -0,0 +1,127 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 + +// DeepSpeed Team + +// This is a copy of FP6-LLM kernel code: https://arxiv.org/abs/2401.14112 + +#ifndef DEEPSPEED_CUDA_LINEAR_UTILS_PARALLELDEQUANT_CUH +#define DEEPSPEED_CUDA_LINEAR_UTILS_PARALLELDEQUANT_CUH + +#include +#include +#include + +/* + * Input: R1 + * Outputs: R1, R2 + * Note: Simplified Exponent calculation is applied. + */ +__device__ __forceinline__ void FP6_FP16_Cast_4Way(uint32_t* R1, uint32_t* R2) +{ + *R2 = *R1 & 0x80808080; + *R1 = *R1 >> 2; + *R1 = *R1 & 0x1f1f1f1f; + *R2 = *R2 | *R1; + *R1 = *R2 & 0x9f009f00; + *R2 = *R2 & 0x009f009f; + *R2 = *R2 << 8; +} + +/* + * Input: R1 + * Outputs: R1, R2 + * Note: Simplified Exponent calculation is NOT applied. + */ +__device__ __forceinline__ void FP6_FP16_Cast_4Way_Naive(uint32_t* R1, uint32_t* R2) +{ + //*R2 = *R1 & 0x80808080; + *R2 = *R1 & 0xc0c0c0c0; + *R1 = *R1 >> 2; + //*R1 = *R1 & 0x1f1f1f1f; + *R1 = *R1 & 0x0f0f0f0f; + *R2 = *R2 | *R1; + // + //*R1 = *R2 & 0x9f009f00; + //*R2 = *R2 & 0x009f009f; + *R1 = *R2 & 0xcf00cf00; + if (!(*R1 & 0x40000000) && (*R1 & 0x0c000000)) *R1 = *R1 | 0x30000000; + if (!(*R1 & 0x00004000) && (*R1 & 0x00000c00)) *R1 = *R1 | 0x00003000; + *R2 = *R2 & 0x00cf00cf; + if (!(*R2 & 0x00400000) && (*R2 & 0x000c0000)) *R2 = *R2 | 0x00300000; + if (!(*R2 & 0x00000040) && (*R2 & 0x0000000c)) *R2 = *R2 | 0x00000030; + // + *R2 = *R2 << 8; + //*R1 = 0x3c003c00; + //*R2 = 0x3c003c00; +} + +__device__ __forceinline__ uint32_t MultScale(uint32_t PackedFP16Pair, half Scale) +{ + half* FP16_1 = reinterpret_cast(&PackedFP16Pair); + half* FP16_2 = FP16_1 + 1; + uint32_t output; + half* output_half_ptr = reinterpret_cast(&output); + output_half_ptr[0] = __hmul(__hmul(*FP16_1, __float2half(4096.0f)), Scale); + output_half_ptr[1] = __hmul(__hmul(*FP16_2, __float2half(4096.0f)), Scale); + return output; +} + +__device__ __forceinline__ void Dequant_32FP6_4Way(uint32_t (*__restrict__ Reg)[4], + uint32_t* __restrict__ read_RPTR_Frag1, + uint32_t* __restrict__ read_RPTR_Frag2, + uint32_t* Scales) +{ + uint32_t* OutputRegs = reinterpret_cast(Reg); + uint32_t* Frag1_PTR = read_RPTR_Frag1; + uint32_t* Frag2_PTR = read_RPTR_Frag2; + half* Scale_RPTR = reinterpret_cast(Scales); + uint32_t Packed_FP6 = 0; + uint32_t tmp = 0; +// Dequantizing 32 FP6, each Loop dequantizing 4 FP6 +#pragma unroll(8) + for (int i = 0; i < 8; i++) { + // Frag1 + Packed_FP6 = (*Frag1_PTR) & 0xc0c0c0c0; + if (i % 4 == 3) + Frag1_PTR++; + else + (*Frag1_PTR) = (*Frag1_PTR) << 2; + // Frag2 + tmp = (*Frag2_PTR) & 0xf0f0f0f0; + tmp = tmp >> 2; + if (i % 2 == 1) + Frag2_PTR++; + else + (*Frag2_PTR) = (*Frag2_PTR) << 4; + // Packed_FP6 + Packed_FP6 = Packed_FP6 | tmp; + // + FP6_FP16_Cast_4Way(&Packed_FP6, &tmp); + // + *OutputRegs = MultScale(Packed_FP6, Scale_RPTR[0]); // Muliply FP16 scales + OutputRegs += 1; + *OutputRegs = MultScale(tmp, Scale_RPTR[1]); // Muliply FP16 scales + OutputRegs += 1; + // Updating offset for FP16 scales for every two iterations + if (i % 2 == 1) Scale_RPTR += 2; + } +} + +/* + * + */ +__device__ __forceinline__ void ExtractFromSharedToReg_Scales(uint32_t* Scales, + half* WARP_SPTR_Scales) +{ + int lane_id = threadIdx.x % WARP_SIZE; + uint32_t* SPTR_uint = reinterpret_cast(WARP_SPTR_Scales); + uint32_t tmpReg = SPTR_uint[lane_id]; +#pragma unroll + for (int i = 0; i < 4; i++) { + // T __shfl_sync(unsigned mask, T var, int srcLane, int width=warpSize); + Scales[i] = __shfl_sync(0xffffffff, tmpReg, i, 4); + } +} + +#endif diff --git a/deepspeed/inference/v2/kernels/core_ops/cuda_linear/include/weight_prepacking.h b/deepspeed/inference/v2/kernels/core_ops/cuda_linear/include/weight_prepacking.h new file mode 100644 index 000000000000..98805e6c111c --- /dev/null +++ b/deepspeed/inference/v2/kernels/core_ops/cuda_linear/include/weight_prepacking.h @@ -0,0 +1,209 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 + +// DeepSpeed Team + +// This is a copy of FP6-LLM kernel code: https://arxiv.org/abs/2401.14112 + +#ifndef DEEPSPEED_CUDA_LINEAR_WEIGHT_PREPACKING_H +#define DEEPSPEED_CUDA_LINEAR_WEIGHT_PREPACKING_H + +#include +#include +#include + +using namespace std; + +void Padding_8_FP6_To_8_Bytes(unsigned char Padded_FP6[], + unsigned char* FP6_Array) // padding 0 to the lowerest bit location +{ + Padded_FP6[0] = FP6_Array[0] & 0xfc; + Padded_FP6[1] = (FP6_Array[0] << 6) | ((FP6_Array[1] >> 2) & 0xfc); + Padded_FP6[2] = (FP6_Array[1] << 4) | ((FP6_Array[2] >> 4) & 0xfc); + Padded_FP6[3] = FP6_Array[2] << 2; + Padded_FP6[4] = FP6_Array[3] & 0xfc; + Padded_FP6[5] = (FP6_Array[3] << 6) | ((FP6_Array[4] >> 2) & 0xfc); + Padded_FP6[6] = (FP6_Array[4] << 4) | ((FP6_Array[5] >> 4) & 0xfc); + Padded_FP6[7] = FP6_Array[5] << 2; +} + +unsigned char Extract_2_Bits_From_4_PaddedFP6(unsigned char B1, + unsigned char B2, + unsigned char B3, + unsigned char B4) +{ + unsigned char out; + out = (B1 & 0xc0) | ((B2 & 0xc0) >> 2) | ((B3 & 0xc0) >> 4) | ((B4 & 0xc0) >> 6); + return out; +} + +unsigned char Extract_4_Bits_From_2_PaddedFP6( + unsigned char B1, + unsigned char + B2) // The highest two bits are already extracted by Extract_2_Bits_From_4_PaddedFP6(); +{ + unsigned char out; + out = ((B1 << 2) & 0xf0) | ((B2 >> 2) & 0x0f); + return out; +} + +// dealing with 4 1*8 blocks of FP6 +void Assign_32_FP6_To_4_Thread(vector Seg_2bit[], + vector Seg_4bit[], + unsigned char* PTR_1, + unsigned char* PTR_2, + unsigned char* PTR_3, + unsigned char* PTR_4) +{ + unsigned char Padded_8_FP8[4][8]; + Padding_8_FP6_To_8_Bytes(Padded_8_FP8[0], PTR_1); + Padding_8_FP6_To_8_Bytes(Padded_8_FP8[1], PTR_2); + Padding_8_FP6_To_8_Bytes(Padded_8_FP8[2], PTR_3); + Padding_8_FP6_To_8_Bytes(Padded_8_FP8[3], PTR_4); + // + unsigned char Seg1_Byte1_T[4]; + unsigned char Seg1_Byte2_T[4]; + unsigned char Seg2_Byte1_T[4]; + unsigned char Seg2_Byte2_T[4]; + unsigned char Seg2_Byte3_T[4]; + unsigned char Seg2_Byte4_T[4]; + for (int t = 0; t < 4; t++) { + Seg1_Byte1_T[t] = Extract_2_Bits_From_4_PaddedFP6(Padded_8_FP8[0][0 + t * 2], + Padded_8_FP8[0][1 + t * 2], + Padded_8_FP8[1][0 + t * 2], + Padded_8_FP8[1][1 + t * 2]); + Seg1_Byte2_T[t] = Extract_2_Bits_From_4_PaddedFP6(Padded_8_FP8[2][0 + t * 2], + Padded_8_FP8[2][1 + t * 2], + Padded_8_FP8[3][0 + t * 2], + Padded_8_FP8[3][1 + t * 2]); + Seg2_Byte1_T[t] = + Extract_4_Bits_From_2_PaddedFP6(Padded_8_FP8[0][0 + t * 2], Padded_8_FP8[0][1 + t * 2]); + Seg2_Byte2_T[t] = + Extract_4_Bits_From_2_PaddedFP6(Padded_8_FP8[1][0 + t * 2], Padded_8_FP8[1][1 + t * 2]); + Seg2_Byte3_T[t] = + Extract_4_Bits_From_2_PaddedFP6(Padded_8_FP8[2][0 + t * 2], Padded_8_FP8[2][1 + t * 2]); + Seg2_Byte4_T[t] = + Extract_4_Bits_From_2_PaddedFP6(Padded_8_FP8[3][0 + t * 2], Padded_8_FP8[3][1 + t * 2]); + } + // + for (int t = 0; t < 4; t++) { + Seg_2bit[t].push_back(Seg1_Byte1_T[t]); + Seg_2bit[t].push_back(Seg1_Byte2_T[t]); + Seg_4bit[t].push_back(Seg2_Byte1_T[t]); + Seg_4bit[t].push_back(Seg2_Byte2_T[t]); + Seg_4bit[t].push_back(Seg2_Byte3_T[t]); + Seg_4bit[t].push_back(Seg2_Byte4_T[t]); + } + return; +} + +void BitInterleaving_2bit(unsigned char* PTR_4Bytes) +{ + unsigned int* PTR_UINT = reinterpret_cast(PTR_4Bytes); + unsigned int input = *PTR_UINT; + // + // int order_2bit[16] = {1,5,9,13,3,7,11,15,2,6,10,14,4,8,12,16}; // pre-defined order for + // bit-interleaving in QuantLLM + int order_2bit[16] = { + 2, 6, 10, 14, 4, 8, 12, 16, 1, 5, 9, 13, 3, 7, 11, 15}; // pre-defined order for + // bit-interleaving in QuantLLM + unsigned int Frags_2bit[16]; // The highest 2 bits are used to store the extracted fragments. + for (int i = 0; i < 16; i++) Frags_2bit[i] = (input << 2 * (order_2bit[i] - 1)) & 0xc0000000; + // + unsigned int output = 0x00000000; + for (int i = 0; i < 16; i++) output |= (Frags_2bit[i] >> (i * 2)); + // + *PTR_UINT = output; +} + +void BitInterleaving_4bit(unsigned char* PTR_4Bytes) +{ + unsigned int* PTR_UINT = reinterpret_cast(PTR_4Bytes); + unsigned int input = *PTR_UINT; + // + // int order_4bit[8] = {1,5,3,7,2,6,4,8}; // pre-defined order for bit-interleaving in QuantLLM + int order_4bit[8] = { + 2, 6, 4, 8, 1, 5, 3, 7}; // pre-defined order for bit-interleaving in QuantLLM + unsigned int Frags_4bit[8]; // The highest4 bits are used to store the extracted fragments. + for (int i = 0; i < 8; i++) Frags_4bit[i] = (input << 4 * (order_4bit[i] - 1)) & 0xf0000000; + // + unsigned int output = 0x00000000; + for (int i = 0; i < 8; i++) output |= (Frags_4bit[i] >> (i * 4)); + // + *PTR_UINT = output; +} + +/* + * Inputs: + * (1) unsigned char Weight_6bit [M*K*6/8] + * Outputs: + * (1) unsigned char Weight_2bit [M*K*2/8] + * (2) unsigned char Weight_4bit [M*K*4/8] + * + * Assumption: Weight_6bit, Weight_2bit, Weight_4bit all stored continuously in row-major. + * 8 FP6 = 6 Bytes + * 8 FP4 = 4 Bytes + * 8 FP2 = 2 Bytes + */ +void weight_matrix_prepacking(int* FP6Weights, size_t M, size_t K) +{ + assert(M % 64 == 0); + assert(K % 64 == 0); + // + unsigned char* Weight_6bit = reinterpret_cast(FP6Weights); + unsigned char* Weight_2bit = Weight_6bit; + unsigned char* Weight_4bit = Weight_6bit + M * K * 2 / 8; + // + vector A_Segment_2bit[32]; + vector A_Segment_4bit[32]; + // + size_t BytesPerRow = K * 6 / 8; + // Pass-1: (1) 2+4 split; (2) assign weights to 32 threads. + for (size_t i = 0; i < M / 64; i++) // + { + for (size_t j = 0; j < K / 16; j++) { + for (size_t k = 0; k < 64 / 16; k++) { + size_t row = i * 64 + k * 16; + size_t col = j * 16; + unsigned char* StartPTR_1 = Weight_6bit + row * BytesPerRow + col * 6 / 8; + unsigned char* StartPTR_2 = StartPTR_1 + 8 * BytesPerRow; + unsigned char* StartPTR_3 = StartPTR_1 + 8 * 6 / 8; + unsigned char* StartPTR_4 = StartPTR_2 + 8 * 6 / 8; + // Dealing with each 16*16 blocks then... + for (int l = 0; l < 8; l++) + Assign_32_FP6_To_4_Thread(&A_Segment_2bit[l * 4], + &A_Segment_4bit[l * 4], + StartPTR_1 + l * BytesPerRow, + StartPTR_2 + l * BytesPerRow, + StartPTR_3 + l * BytesPerRow, + StartPTR_4 + l * BytesPerRow); + } + } + } + // Verifying the length of 2_bit segments and 4_bit segments + size_t BytesPerThread_2bit = M * K * 2 / 8 / 32; + size_t BytesPerThread_4bit = M * K * 4 / 8 / 32; + for (int i = 0; i < 32; i++) { + assert(A_Segment_2bit[i].size() == BytesPerThread_2bit); + assert(A_Segment_4bit[i].size() == BytesPerThread_4bit); + } + // Pass-2: Optimizing coleasced global memory access + for (size_t i = 0; i < BytesPerThread_2bit / 4; i++) + for (int t = 0; t < 32; t++) + for (int b = 0; b < 4; b++) + Weight_2bit[i * 128 + t * 4 + (3 - b)] = + A_Segment_2bit[t] + [i * 4 + b]; // why (3-b): special byte order within a register + for (size_t i = 0; i < BytesPerThread_4bit / 4; i++) + for (int t = 0; t < 32; t++) + for (int b = 0; b < 4; b++) + Weight_4bit[i * 128 + t * 4 + (3 - b)] = + A_Segment_4bit[t][i * 4 + b]; // why (3-b):special byte order within a register + // Pass-3: Bit-level interleaving + for (size_t i = 0; i < BytesPerThread_2bit * 32 / 4; i++) + BitInterleaving_2bit(Weight_2bit + 4 * i); + for (size_t i = 0; i < BytesPerThread_4bit * 32 / 4; i++) + BitInterleaving_4bit(Weight_4bit + 4 * i); +} + +#endif diff --git a/deepspeed/inference/v2/kernels/core_ops/cuda_linear/linear_kernels.cpp b/deepspeed/inference/v2/kernels/core_ops/cuda_linear/linear_kernels.cpp new file mode 100644 index 000000000000..3b4966eb822b --- /dev/null +++ b/deepspeed/inference/v2/kernels/core_ops/cuda_linear/linear_kernels.cpp @@ -0,0 +1,224 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 + +// DeepSpeed Team + +#include + +#include "linear_kernels.h" + +namespace { + +// For bit-level debugging. +template +void print_bits(T num) +{ + char bits[sizeof(T) * 8 + 1] = {'\0'}; + for (int bit = 0; bit < (sizeof(T) * 8); bit++) { + bits[sizeof(T) * 8 - 1 - bit] = '0' + (num & 0x01); + num = num >> 1; + } + printf("%s\n", bits); +} + +void print_bits(half num) +{ + char bits[sizeof(half) * 8 + 1] = {'\0'}; + auto int_num = *reinterpret_cast(&num); + for (int bit = 0; bit < (sizeof(half) * 8); bit++) { + bits[sizeof(half) * 8 - 1 - bit] = '0' + (int_num & 0x01); + int_num = int_num >> 1; + } + printf("%s\n", bits); +} + +/* + * Function to pack 4 fake quantized FP16 value into continuously stored 4 FP6 values. + */ +void cast_fp16_fp6(uint16_t* FP16x4, uint8_t* FP6x4) +{ + // Constants for FP6 + constexpr int exponent_nbits_fp6 = 3; + constexpr int mantissa_nbits_fp6 = 2; + constexpr int exp_bias_fp6 = (1 << (exponent_nbits_fp6 - 1)) - 1; + // Constants for FP16 + constexpr int exponent_nbits_fp16 = 5; + constexpr int mantissa_nbits_fp16 = 10; + constexpr int exp_bias_fp16 = (1 << (exponent_nbits_fp16 - 1)) - 1; + + int fp6_temp[4]; + + float absmin_nonzero_fp6 = 0.0625; + // Note that we regard the exponent of '111' as a regular value rather than NaN or inf. This is + // the same with that in qtorch. + float absmax_fp6 = 28; + + for (int i = 0; i < 4; ++i) { + uint16_t source = FP16x4[i]; + float fp6_value_abs = std::abs(__half2float(*((half*)(&source)))); + if ((fp6_value_abs != 0 && fp6_value_abs < absmin_nonzero_fp6) || + fp6_value_abs > absmax_fp6) { + // TODO(zhen): a better way may be rounding it to the nearest FP6 value. + throw std::invalid_argument("Input value out of range for FP6."); + } + + // It is not safe to do shift operation on uint16_t. So we promote it to int. + int source_promote = int(source); + + int sign_bit = (source_promote >> 15); + // Extracting exponent represented in FP16. The sign mask 0x7FFF is '0111 1111 1111 1111' + int exp_bit = (source_promote & 0x7FFF) >> mantissa_nbits_fp16; + // Extracting mantissa represented in FP16 + int mant_bit = source_promote & ((1 << mantissa_nbits_fp16) - 1); + + int new_exp_bit; + int new_mant_bit; + + if (exp_bit == 0) { + // Subnormal FP16 number. Too small for FP6. + new_exp_bit = 0; + new_mant_bit = 0; + } else { + new_mant_bit = mant_bit >> (mantissa_nbits_fp16 - mantissa_nbits_fp6); + new_exp_bit = exp_bit - exp_bias_fp16 + exp_bias_fp6; + + // Deal with subnormal FP6 values. + int target_exp_val = exp_bit - exp_bias_fp16; + int min_fp6_exp_val = -exp_bias_fp6 + 1; + bool subnormal_fp6 = target_exp_val < min_fp6_exp_val; + if (subnormal_fp6) { + // TODO(zhen): add the rounding logic. + new_exp_bit = 0; + // The implicit 1 in the mantissa of FP16 is not present in subnormal FP6. Thus we + // need to add it + new_mant_bit = (new_mant_bit | (1 << mantissa_nbits_fp6)) >> + (min_fp6_exp_val - target_exp_val); + } + } + + fp6_temp[i] = (sign_bit << (exponent_nbits_fp6 + mantissa_nbits_fp6)) | + (new_exp_bit << mantissa_nbits_fp6) | new_mant_bit; + } + // Pack the values + FP6x4[0] = fp6_temp[0] << 2 | (fp6_temp[1] >> 4); + FP6x4[1] = (fp6_temp[1] & 0x0F) << 4 | (fp6_temp[2] >> 2); + FP6x4[2] = (fp6_temp[2] & 0x03) << 6 | fp6_temp[3]; +} + +/* + * Function to prepack FP16 weights into continuous FP6 values. + * + * Parameters: + * weight_16bit: input weight in FP16, size M*K + * weight_6bit: output weight in packed FP6, continuously stored, size M*K*6/8 + * M, K: the shape of the weight + */ +void weight_prepacking_fp16_to_fp6(uint16_t* weight_16bit, + uint8_t* weight_6bit_packed, + size_t M, + size_t K) +{ + // Every four 16-bit elements are packed into three 6-bit values (4*6bit == 3*8bit). + if (K * 6 % 8 != 0) { throw std::invalid_argument("(K * 6 % 8) should be 0"); } + size_t K_fp6_packed = K * 6 / 8; + // #pragma omp parallel for + for (auto m = 0; m < M; m++) { + uint8_t* ptr_6bit = weight_6bit_packed + m * K_fp6_packed; + uint16_t* ptr_16bit = weight_16bit + m * K; + for (auto k = 0; k < K; k += 4) { + cast_fp16_fp6(ptr_16bit, ptr_6bit); + ptr_16bit += 4; + ptr_6bit += 3; + } + } +} + +} // namespace + +/* + * Function to execute the FP6 linear kernel. + * + * Parameters: + * output: output tensor, size M*N + * hidden_states: input activation tensor, size N*K + * weights_2bit: packed 2bit weights, size M*K*2/8 + * weights_4bit: packed 4bit weights, size M*K*4/8 + * scales: scale tensor, size M + * workspace: workspace tensor, size M*N*split_k + * M: the output channel number of the weight + * N: the token number of the activation + * K: the input channel number of the weight + * split_k: the split size of the GEMM calculation + */ +void cuda_wf6af16_linear(torch::Tensor& output, + torch::Tensor& hidden_states, + torch::Tensor& weights_2bit, + torch::Tensor& weights_4bit, + torch::Tensor& scales, + torch::Tensor& workspace, + int M, + int N, + int K, + int split_k) +{ + TORCH_CHECK(weights_2bit.device().type() == torch::kCUDA, "weight_2bit must be on CUDA"); + TORCH_CHECK(weights_4bit.device().type() == torch::kCUDA, "weight_4bit must be on CUDA"); + TORCH_CHECK(hidden_states.device().type() == torch::kCUDA, "X must be on CUDA"); + TORCH_CHECK(scales.device().type() == torch::kCUDA, "scales must be on CUDA"); + + auto status = fp6_linear_kernel(at::cuda::getCurrentCUDAStream(), + (uint4*)(weights_2bit.data_ptr()), + (uint4*)(weights_4bit.data_ptr()), + (half*)(scales.data_ptr()), + (half*)(hidden_states.data_ptr()), + (half*)(output.data_ptr()), + M, + N, + K, + workspace.data_ptr(), + split_k); + if (status != cudaSuccess) { + AT_ERROR("fp6_linear_kernel failed with error: ", cudaGetErrorString(status)); + } +} + +/* + * Function to prepack the fake 6-bit-quantized FP16 weights into 2bit and 4bit. + * + * Parameters: + * weight: input weight in FP16 (containing the quantized FP6-ranged value), size M*K + * Returns: + * weight_2bit: output weight in 2bit, size M*K*2/8 + * weight_4bit: output weight in 4bit, size M*K*4/8 + */ +std::vector preprocess_weight(torch::Tensor& weight) +{ + TORCH_CHECK(weight.dim() == 2, "weight must be 2-dimensional"); + TORCH_CHECK(weight.scalar_type() == torch::kFloat16, "weight must be FP16"); + TORCH_CHECK(weight.is_contiguous(), "weight must be contiguous"); + TORCH_CHECK(weight.device().type() == torch::kCPU, "weight must be on CPU"); + auto M = weight.size(0); + auto K = weight.size(1); + TORCH_CHECK(K % 4 == 0, "K must be multiple of 4"); + + // Pack weight from FP16 to FP6. + uint16_t* weight_16bit_ptr = reinterpret_cast(weight.data_ptr()); + std::vector weight_6bit_packed(M * K * 6 / 8); + uint8_t* weight_6bit_ptr = weight_6bit_packed.data(); + weight_prepacking_fp16_to_fp6(weight_16bit_ptr, weight_6bit_ptr, M, K); + + // Split weight into 2bit and 4bit. + weight_matrix_prepacking(reinterpret_cast(weight_6bit_ptr), M, K); + uint8_t* weight_2bit_ptr = weight_6bit_ptr; + + // Make sure that the new split tensor does not share the underlying memory with the original + // one. Otherwise it will incur some problems when the original tensor is deleted. It also + // makes the memory flattern risky. + auto weight_2bit = + torch::from_blob(weight_2bit_ptr, {M * K * 2 / 8}, torch::kUInt8).clone().detach(); + uint8_t* weight_4bit_ptr = weight_2bit_ptr + M * K * 2 / 8; + auto weight_4bit = + torch::from_blob(weight_4bit_ptr, {M * K * 4 / 8}, torch::kUInt8).clone().detach(); + + return {weight_2bit, weight_4bit}; +} diff --git a/deepspeed/inference/v2/kernels/core_ops/cuda_linear/linear_kernels.h b/deepspeed/inference/v2/kernels/core_ops/cuda_linear/linear_kernels.h new file mode 100644 index 000000000000..01a6b7c18af8 --- /dev/null +++ b/deepspeed/inference/v2/kernels/core_ops/cuda_linear/linear_kernels.h @@ -0,0 +1,28 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 + +// DeepSpeed Team + +#ifndef DEEPSPEED_CUDA_LINEAR_KERNELS_H +#define DEEPSPEED_CUDA_LINEAR_KERNELS_H + +#include +#include +#include "ds_kernel_utils.h" + +#include "linear_kernels_cuda.h" + +void cuda_wf6af16_linear(torch::Tensor& output, + torch::Tensor& hidden_states, + torch::Tensor& weights_2bit, + torch::Tensor& weights_4bit, + torch::Tensor& scale, + torch::Tensor& workspace, + int M, + int N, + int K, + int split_k); + +std::vector preprocess_weight(torch::Tensor& Weight); + +#endif diff --git a/deepspeed/inference/v2/kernels/core_ops/cuda_linear/linear_kernels_cuda.cu b/deepspeed/inference/v2/kernels/core_ops/cuda_linear/linear_kernels_cuda.cu new file mode 100644 index 000000000000..ea0203c42f84 --- /dev/null +++ b/deepspeed/inference/v2/kernels/core_ops/cuda_linear/linear_kernels_cuda.cu @@ -0,0 +1,318 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 + +// DeepSpeed Team + +// This is a copy of FP6-LLM kernel code: https://arxiv.org/abs/2401.14112 + +// clang-format off +// Put the torch headers at the front to avoid conflict with other headers on +// `at::nullopt` and `at::optional`. +#include +#include +// clang-format on + +#include "include/kernel_matmul.cuh" +#include "include/kernel_reduction.cuh" +#include "include/weight_prepacking.h" + +#include +#include + +#include "linear_kernels_cuda.h" + +template +static void Kernel_Ex(cudaStream_t stream, + const uint4* Weight1, + const uint4* Weight2, + const half* Scales, + const half* B, + OutputDataType* C, + const size_t M_Global, + const size_t N_Global, + const size_t K_Global, + int Split_K) +{ +#ifdef DEBUG_MODE + printf("\n"); + printf("Launcher.cu->Kernel_Ex():\n"); + printf("M: %d, N: %d, K: %d, SplitK: %d\n", M_Global, N_Global, K_Global, Split_K); + printf("TILE_M: %d, TILE_K: %d, TILE_N: %d\n", + TilingConfig::TILE_M, + TilingConfig::TILE_K, + TilingConfig::TILE_N); +#endif + static size_t SHMEM_SZ = + max(TilingConfig::SMEM_SIZE_B_TILE + SMEM_SIZE_A1_TILE + SMEM_SIZE_A2_TILE, + TilingConfig::SMEM_SIZE_C_TILE); + cudaFuncSetAttribute(QUANT_GEMM_Kernel, + cudaFuncAttributeMaxDynamicSharedMemorySize, + SHMEM_SZ); + size_t dimN = (N_Global - 1) / TilingConfig::TILE_N + 1; + size_t dimM = M_Global * Split_K / TilingConfig::TILE_M; + dim3 GridDim(dimN, dimM, 1); + dim3 BlockDim(WARP_SIZE * TilingConfig::BLOCK_WARPS, 1, 1); + +#ifdef DEBUG_MODE + printf( + "GridDim.x: %d, GridDim.y: %d, GridDim.z: %d, BlockDim.x: %d, BlockDim.y: %d, BlockDim.z: " + "%d SHMEM_SZ: %d\n", + GridDim.x, + GridDim.y, + GridDim.z, + BlockDim.x, + BlockDim.y, + BlockDim.z, + SHMEM_SZ); + printf("\n"); +#endif + + QUANT_GEMM_Kernel<<>>( + Weight1, Weight2, Scales, B, C, M_Global, N_Global, K_Global, Split_K); +} + +/* + * + */ +cudaError_t fp6_linear_kernel(cudaStream_t stream, + const uint4* Weight1, + const uint4* Weight2, + const half* Scales, + const half* B, + half* C, + const size_t M_Global, + const size_t N_Global, + const size_t K_Global, + float* Reduction_Workspace, // Reduction_Workspace_Size = Split_K * + // M_Global * N_Global * sizeof(fp32) + int Split_K) +{ + assert(M_Global % 256 == 0); + assert(K_Global % 64 == 0); + assert(N_Global > 0); + + // Work around to support more N shapes: + size_t N_PowerOf2; + if (N_Global > 0 && N_Global <= 8) N_PowerOf2 = 8; + if (N_Global > 8 && N_Global <= 16) N_PowerOf2 = 16; + if (N_Global > 16 && N_Global <= 32) N_PowerOf2 = 32; + if (N_Global > 32 && N_Global <= 64) N_PowerOf2 = 64; + if (N_Global > 64 && N_Global <= 128) N_PowerOf2 = 128; + if (N_Global > 128) N_PowerOf2 = ((N_Global - 1) / 128 + 1) * 128; + + if (Split_K == 1) { + switch (N_PowerOf2) { + case 8: + Kernel_Ex, half>( + stream, Weight1, Weight2, Scales, B, C, M_Global, N_Global, K_Global, Split_K); + break; + case 16: + Kernel_Ex, half>( + stream, Weight1, Weight2, Scales, B, C, M_Global, N_Global, K_Global, Split_K); + break; + case 32: + Kernel_Ex, half>( + stream, Weight1, Weight2, Scales, B, C, M_Global, N_Global, K_Global, Split_K); + break; + case 64: + Kernel_Ex, half>( + stream, Weight1, Weight2, Scales, B, C, M_Global, N_Global, K_Global, Split_K); + break; + case 128: + Kernel_Ex, half>( + stream, Weight1, Weight2, Scales, B, C, M_Global, N_Global, K_Global, Split_K); + break; + default: + if (N_PowerOf2 % 128 != 0) { + printf("QuantLLM_API Error: Unsupported N dimension %lu!\n", N_PowerOf2); + return cudaErrorUnknown; + } + Kernel_Ex, half>( + stream, Weight1, Weight2, Scales, B, C, M_Global, N_Global, K_Global, Split_K); + break; + } + } else { + switch (N_PowerOf2) { + case 8: + Kernel_Ex, float>(stream, + Weight1, + Weight2, + Scales, + B, + Reduction_Workspace, + M_Global, + N_Global, + K_Global, + Split_K); + break; + case 16: + Kernel_Ex, float>(stream, + Weight1, + Weight2, + Scales, + B, + Reduction_Workspace, + M_Global, + N_Global, + K_Global, + Split_K); + break; + case 32: + Kernel_Ex, float>(stream, + Weight1, + Weight2, + Scales, + B, + Reduction_Workspace, + M_Global, + N_Global, + K_Global, + Split_K); + break; + case 64: + Kernel_Ex, float>(stream, + Weight1, + Weight2, + Scales, + B, + Reduction_Workspace, + M_Global, + N_Global, + K_Global, + Split_K); + break; + case 128: + Kernel_Ex, float>(stream, + Weight1, + Weight2, + Scales, + B, + Reduction_Workspace, + M_Global, + N_Global, + K_Global, + Split_K); + break; + default: + if (N_PowerOf2 % 128 != 0) { + printf("QuantLLM_API Error: Unsupported N dimension %lu!\n", N_PowerOf2); + return cudaErrorUnknown; + } + Kernel_Ex, float>(stream, + Weight1, + Weight2, + Scales, + B, + Reduction_Workspace, + M_Global, + N_Global, + K_Global, + Split_K); + break; + } + // Reduction for SplitK + dim3 GridDim((M_Global * N_Global) / REDUCTION_ELEMENT_PER_THREADBLOCK, 1, 1); + dim3 BlockDim(WARP_SIZE, 1, 1); + SplitK_Reduction<<>>( + C, Reduction_Workspace, M_Global, N_Global, Split_K); + } + return cudaGetLastError(); +} + +/* +Computes FP6-FP16 GEMM (PyTorch interface). + +[Mathematical Formula] +Standard definition of linear layer: Out = In * trans(W), where In, Out, and W are stored in +row-major. After Equivalent transformation : trans(Out) = W * trans(In). Note that we do not +perform "transpose" during runtime, we instead interpret the In/Out as column-major matrices when +calling our CUDA kernel. + +[Inputs] + _in_feats: tensor of shape [B, IC]; // half + _weights: int tensor of shape [OC, IC // 16 * 3]; // 3 INT32 words contains 16 FP6 weights. + _scales: tensor of shape [OC]; // half + splitK: splitting the MatMul problem along K dimension for higher GPU utilization, default 1. +[Outputs] + _out_feats: tensor of shape [B, OC]; // half +*/ +torch::Tensor fp6_linear_forward_cuda(torch::Tensor _in_feats, + torch::Tensor _weights, + torch::Tensor _scales, + int splitK) +{ + int num_in_feats = _in_feats.size(0); + int num_in_channels = _in_feats.size(1); + int num_out_channels = _weights.size(0); + assert(num_in_channels % 64 == 0); + assert((num_in_channels / 16 * 3) == + _weights.size(1)); // Making sure the K dimension is matched. + // + int M = num_out_channels; + int K = num_in_channels; + int N = num_in_feats; + // Input Tensors + auto weight1 = reinterpret_cast( + _weights.data_ptr()); // weights is [OC, IC] but in FP6. + auto weight2 = weight1 + num_in_channels * num_out_channels * 2 / 128; + auto in_feats = reinterpret_cast(_in_feats.data_ptr()); + auto scales = reinterpret_cast(_scales.data_ptr()); + // Output Tensors + auto options = torch::TensorOptions().dtype(_in_feats.dtype()).device(_in_feats.device()); + at::Tensor _out_feats = torch::empty({num_in_feats, num_out_channels}, options); + auto out_feats = reinterpret_cast(_out_feats.data_ptr()); + + float* Reduction_Workspace = nullptr; + if (splitK != 1) { + auto options = torch::TensorOptions().dtype(torch::kFloat32).device(_in_feats.device()); + at::Tensor _workspace = torch::empty({splitK, num_in_feats, num_out_channels}, options); + auto Reduction_Workspace = reinterpret_cast( + _out_feats.data_ptr()); // Reduction_Workspace_Size = Split_K * M_Global * + // N_Global * sizeof(fp32) + } + + fp6_linear_kernel(0, // Using default stream here. + weight1, + weight2, + scales, + in_feats, + out_feats, + M, + N, + K, + Reduction_Workspace, + splitK); + + return _out_feats; +} + +/* + * Inputs: + * (1) unsigned char Weight_6bit [M*K*6/8] + * Outputs: + * (1) unsigned char Weight_2bit [M*K*2/8] + * (2) unsigned char Weight_4bit [M*K*4/8] + * + * Assumption: Weight_6bit, Weight_2bit, Weight_4bit all stored continuously in row-major. + * 8 FP6 = 6 Bytes + * 8 FP4 = 4 Bytes + * 8 FP2 = 2 Bytes + */ + +/* + * Weight prepacking (Pytorch interface). + * [Input & Output] + * fp6_tensor: int tensor of shape [OC, IC // 16 * 3]; // 3 INT32 words contains 16 FP6 weights. + * [Output] + * packed_tensor: int tensor of shape [OC, IC // 16 * 3]; + */ +torch::Tensor weight_matrix_prepacking_cpu(torch::Tensor fp6_tensor, size_t OC, size_t IC) +{ + assert((OC % 256 == 0) && (IC % 64 == 0)); + assert((fp6_tensor.size(0) == OC) && (fp6_tensor.size(1) == IC / 16 * 3)); + // auto packed_tensor = torch::empty_like(fp6_tensor); + // auto packed_tensor_ptr = reinterpret_cast(packed_tensor.data_ptr()); + auto fp6_tensor_ptr = reinterpret_cast(fp6_tensor.data_ptr()); + weight_matrix_prepacking(fp6_tensor_ptr, OC, IC); + return fp6_tensor; +} diff --git a/deepspeed/inference/v2/kernels/core_ops/cuda_linear/linear_kernels_cuda.h b/deepspeed/inference/v2/kernels/core_ops/cuda_linear/linear_kernels_cuda.h new file mode 100644 index 000000000000..6a83290f0cb5 --- /dev/null +++ b/deepspeed/inference/v2/kernels/core_ops/cuda_linear/linear_kernels_cuda.h @@ -0,0 +1,51 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 + +// DeepSpeed Team + +// This is a copy of FP6-LLM kernel code: https://arxiv.org/abs/2401.14112 + +#ifndef DEEPSPEED_CUDA_LINEAR_FP6_LINEAR_CUH +#define DEEPSPEED_CUDA_LINEAR_FP6_LINEAR_CUH + +#include +#include +#include + +#include + +/* + * Computes FP6-FP16 GEMM (C++ interface). + */ +cudaError_t fp6_linear_kernel(cudaStream_t stream, + const uint4* Weight1, + const uint4* Weight2, + const half* Scales, + const half* B, + half* C, + const size_t M_Global, + const size_t N_Global, + const size_t K_Global, + float* Reduction_Workspace, // Reduction_Workspace_Size = Split_K * + // M_Global * N_Global * sizeof(fp32) + int Split_K); + +/* + * Computes FP6-FP16 GEMM (PyTorch interface). + */ +torch::Tensor fp6_linear_forward_cuda(torch::Tensor _in_feats, + torch::Tensor _weights, + torch::Tensor _scales, + int splitK = 1); + +/* + * In-place weight prepacking (C++ interface). + */ +void weight_matrix_prepacking(int* FP6Weights, size_t M, size_t K); + +/* + * Weight prepacking (Pytorch interface). + */ +torch::Tensor weight_matrix_prepacking_cpu(torch::Tensor fp6_tensor, size_t M, size_t K); + +#endif diff --git a/deepspeed/inference/v2/kernels/core_ops/cuda_rms_norm/rms_norm.cu b/deepspeed/inference/v2/kernels/core_ops/cuda_rms_norm/rms_norm_cuda.cu similarity index 100% rename from deepspeed/inference/v2/kernels/core_ops/cuda_rms_norm/rms_norm.cu rename to deepspeed/inference/v2/kernels/core_ops/cuda_rms_norm/rms_norm_cuda.cu diff --git a/deepspeed/inference/v2/kernels/core_ops/gated_activations/gated_activation_kernels.cu b/deepspeed/inference/v2/kernels/core_ops/gated_activations/gated_activation_kernels_cuda.cu similarity index 96% rename from deepspeed/inference/v2/kernels/core_ops/gated_activations/gated_activation_kernels.cu rename to deepspeed/inference/v2/kernels/core_ops/gated_activations/gated_activation_kernels_cuda.cu index 84a9906cf037..fc14b1831361 100644 --- a/deepspeed/inference/v2/kernels/core_ops/gated_activations/gated_activation_kernels.cu +++ b/deepspeed/inference/v2/kernels/core_ops/gated_activations/gated_activation_kernels_cuda.cu @@ -17,7 +17,7 @@ constexpr int access_size = 16; constexpr int threads = 1024; template -float gated_act_fn(float x, float y); +DS_D_INLINE float gated_act_fn(float x, float y); template <> DS_D_INLINE float gated_act_fn(float x, float y) @@ -119,7 +119,10 @@ void launch_gated_activation_impl(T* output, DISPATCH_UNROLL(5); } else if (unroll == 6) { DISPATCH_UNROLL(6); + } else if (unroll == 7) { + DISPATCH_UNROLL(7); } else { + // TODO: provide a kernel with an outer loop to handle larger columns. throw std::runtime_error( "Called with more columns than supported, please report this bug and this limit will " "be increased."); diff --git a/deepspeed/inference/v2/kernels/includes/ds_kernel_utils.h b/deepspeed/inference/v2/kernels/includes/ds_kernel_utils.h index 8e4888109fcd..f8b16ee6a315 100644 --- a/deepspeed/inference/v2/kernels/includes/ds_kernel_utils.h +++ b/deepspeed/inference/v2/kernels/includes/ds_kernel_utils.h @@ -23,7 +23,7 @@ used throughout the codebase. #ifdef __HIP_PLATFORM_AMD__ // constexpr variant of warpSize for templating -constexpr int hw_warp_size = 64; +constexpr int hw_warp_size = ROCM_WAVEFRONT_SIZE; #define HALF_PRECISION_AVAILABLE = 1 #include #include diff --git a/deepspeed/inference/v2/kernels/ragged_ops/__init__.py b/deepspeed/inference/v2/kernels/ragged_ops/__init__.py index 988152b2e7c0..38a4ebd6fba3 100644 --- a/deepspeed/inference/v2/kernels/ragged_ops/__init__.py +++ b/deepspeed/inference/v2/kernels/ragged_ops/__init__.py @@ -10,4 +10,4 @@ from .logits_gather import * from .moe_gather import * from .moe_scatter import * -from .top_1_gating import * +from .top_k_gating import * diff --git a/deepspeed/inference/v2/kernels/ragged_ops/embed/embed.cu b/deepspeed/inference/v2/kernels/ragged_ops/embed/embed_cuda.cu similarity index 100% rename from deepspeed/inference/v2/kernels/ragged_ops/embed/embed.cu rename to deepspeed/inference/v2/kernels/ragged_ops/embed/embed_cuda.cu diff --git a/deepspeed/inference/v2/kernels/ragged_ops/includes/top_k_utils.h b/deepspeed/inference/v2/kernels/ragged_ops/includes/top_k_utils.h new file mode 100644 index 000000000000..f5104f899d9c --- /dev/null +++ b/deepspeed/inference/v2/kernels/ragged_ops/includes/top_k_utils.h @@ -0,0 +1,21 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 + +// DeepSpeed Team + +#define TOP_K_SWITCH(N_TOP_K, ...) \ + [&] { \ + if (1 == N_TOP_K) { \ + constexpr int CONST_TOP_K = 1; \ + __VA_ARGS__(); \ + } else if (2 == N_TOP_K) { \ + constexpr int CONST_TOP_K = 2; \ + __VA_ARGS__(); \ + } else if (4 == N_TOP_K) { \ + constexpr int CONST_TOP_K = 4; \ + __VA_ARGS__(); \ + } else if (8 == N_TOP_K) { \ + constexpr int CONST_TOP_K = 8; \ + __VA_ARGS__(); \ + } \ + }() diff --git a/deepspeed/inference/v2/kernels/ragged_ops/linear_blocked_kv_rotary/blocked_kv_rotary.cpp b/deepspeed/inference/v2/kernels/ragged_ops/linear_blocked_kv_rotary/blocked_kv_rotary.cpp index 8493bbf4b9af..634a63b81a31 100644 --- a/deepspeed/inference/v2/kernels/ragged_ops/linear_blocked_kv_rotary/blocked_kv_rotary.cpp +++ b/deepspeed/inference/v2/kernels/ragged_ops/linear_blocked_kv_rotary/blocked_kv_rotary.cpp @@ -13,6 +13,8 @@ (C_TYPE*)k.data_ptr(), \ (C_TYPE*)v.data_ptr(), \ (C_TYPE*)inv_freq_ptr, \ + rotary_dim, \ + theta_base, \ batch_wrapper, \ qkv_stride, \ kv_cache_stride, \ @@ -51,6 +53,9 @@ void kv_trained_rotary_embeddings(torch::Tensor& kv_cache, TORCH_CHECK(n_tokens == k.size(0)); TORCH_CHECK(n_tokens == v.size(0)); + const float theta_base = 0.f; + const int32_t rotary_dim = inv_freq.size(0) * 2; + // Dimensions const int32_t block_size = kv_cache.size(1); const int32_t n_kv_heads = kv_cache.size(3); @@ -91,6 +96,8 @@ void kv_rotary_embeddings(torch::Tensor& kv_cache, torch::Tensor& q, torch::Tensor& k, torch::Tensor& v, + const int32_t rotary_dim, + const float theta_base, torch::Tensor& batch_metadata, torch::Tensor& seq_metadata, torch::Tensor& tokens_to_seq, diff --git a/deepspeed/inference/v2/kernels/ragged_ops/linear_blocked_kv_rotary/blocked_kv_rotary.cuh b/deepspeed/inference/v2/kernels/ragged_ops/linear_blocked_kv_rotary/blocked_kv_rotary.cuh index be38ff30c46c..ff24b3f5bd80 100644 --- a/deepspeed/inference/v2/kernels/ragged_ops/linear_blocked_kv_rotary/blocked_kv_rotary.cuh +++ b/deepspeed/inference/v2/kernels/ragged_ops/linear_blocked_kv_rotary/blocked_kv_rotary.cuh @@ -18,6 +18,8 @@ void launch_kv_rotary_kernel(T* kv_cache, T* k, T* v, T* inv_freq, + const int32_t rotary_dim, + const float theta_base, const BatchWrapperCPP batch_desc, const int qkv_stride, const int kv_cache_stride, diff --git a/deepspeed/inference/v2/kernels/ragged_ops/linear_blocked_kv_rotary/blocked_kv_rotary.h b/deepspeed/inference/v2/kernels/ragged_ops/linear_blocked_kv_rotary/blocked_kv_rotary.h index 0615825c0a21..c0700eda7147 100644 --- a/deepspeed/inference/v2/kernels/ragged_ops/linear_blocked_kv_rotary/blocked_kv_rotary.h +++ b/deepspeed/inference/v2/kernels/ragged_ops/linear_blocked_kv_rotary/blocked_kv_rotary.h @@ -45,6 +45,8 @@ void kv_rotary_embeddings(torch::Tensor& kv_cache, torch::Tensor& q, torch::Tensor& k, torch::Tensor& v, + const int32_t rotary_dim, + const float theta_base, torch::Tensor& batch_metadata, torch::Tensor& seq_metadata, torch::Tensor& tokens_to_seq, diff --git a/deepspeed/inference/v2/kernels/ragged_ops/linear_blocked_kv_rotary/blocked_kv_rotary.py b/deepspeed/inference/v2/kernels/ragged_ops/linear_blocked_kv_rotary/blocked_kv_rotary.py index 630d58d90a23..aacbec0bd3ae 100644 --- a/deepspeed/inference/v2/kernels/ragged_ops/linear_blocked_kv_rotary/blocked_kv_rotary.py +++ b/deepspeed/inference/v2/kernels/ragged_ops/linear_blocked_kv_rotary/blocked_kv_rotary.py @@ -18,10 +18,11 @@ class BlockedRotaryEmbeddings(DSKernelBase): """ supported_dtypes = [DtypeEnum.fp16, DtypeEnum.bf16] - supported_head_sizes = [64, 128] - supported_q_ratios = [1, 2, 4, 5, 8] + supported_head_sizes = [64, 80, 96, 128] + supported_q_ratios = [1, 2, 4, 5, 6, 7, 8, 16, 29, 35, 36, 71] - def __init__(self, head_size: int, n_q_heads: int, n_kv_heads: int, dtype: torch.dtype) -> None: + def __init__(self, head_size: int, n_q_heads: int, n_kv_heads: int, dtype: torch.dtype, rotary_dim: int, + theta_base: float) -> None: """ Args: head_size: The size of the attention head. @@ -51,6 +52,8 @@ def __init__(self, head_size: int, n_q_heads: int, n_kv_heads: int, dtype: torch self.head_size = head_size self.n_q_heads = n_q_heads self.n_kv_heads = n_kv_heads + self.rotary_dim = rotary_dim + self.theta_base = theta_base def __call__(self, kv_cache: torch.Tensor, qkv: torch.Tensor, ragged_batch: RaggedBatchWrapper) -> None: """ @@ -66,5 +69,5 @@ def __call__(self, kv_cache: torch.Tensor, qkv: torch.Tensor, ragged_batch: Ragg k = qkv[:, self.head_size * self.n_q_heads:self.head_size * (self.n_q_heads + self.n_kv_heads)] v = qkv[:, self.head_size * (self.n_q_heads + self.n_kv_heads):] - self.kernel(kv_cache, q, k, v, ragged_batch.batch_metadata_buffer(), ragged_batch.inflight_seq_descriptors(), - ragged_batch.tokens_to_seq(), ragged_batch.kv_ptrs()) + self.kernel(kv_cache, q, k, v, self.rotary_dim, self.theta_base, ragged_batch.batch_metadata_buffer(), + ragged_batch.inflight_seq_descriptors(), ragged_batch.tokens_to_seq(), ragged_batch.kv_ptrs()) diff --git a/deepspeed/inference/v2/kernels/ragged_ops/linear_blocked_kv_rotary/blocked_kv_rotary.cu b/deepspeed/inference/v2/kernels/ragged_ops/linear_blocked_kv_rotary/blocked_kv_rotary_cuda.cu similarity index 54% rename from deepspeed/inference/v2/kernels/ragged_ops/linear_blocked_kv_rotary/blocked_kv_rotary.cu rename to deepspeed/inference/v2/kernels/ragged_ops/linear_blocked_kv_rotary/blocked_kv_rotary_cuda.cu index 63ea5bc88bab..f7bc693eefee 100644 --- a/deepspeed/inference/v2/kernels/ragged_ops/linear_blocked_kv_rotary/blocked_kv_rotary.cu +++ b/deepspeed/inference/v2/kernels/ragged_ops/linear_blocked_kv_rotary/blocked_kv_rotary_cuda.cu @@ -3,6 +3,7 @@ // DeepSpeed Team +#include #include "blocked_kv_rotary.cuh" #include "conversion_utils.h" #include "ds_kernel_utils.h" @@ -21,12 +22,14 @@ constexpr int threads = 256; Supports head size 32, 64, 128, 256 */ -template +template __global__ void kv_rotary_pos_kernel(T* kv_cache, T* q, T* k, T* v, const T* inv_freq, + const int32_t rotary_dim, + const float theta_base, const BatchWrapperCPP batch_desc, const int qkv_stride, const int kv_cache_stride, @@ -35,28 +38,31 @@ __global__ void kv_rotary_pos_kernel(T* kv_cache, { // Derived constexpr constexpr int vector_T = kv_rot::granularity / sizeof(T); - constexpr int threads_per_head = headSize / vector_T; - constexpr int half_head_size = headSize >> 1; + constexpr int real_threads_per_head = headSize / vector_T; + constexpr int threads_per_head = paddedHeadSize / vector_T; + constexpr int tokens_per_block = kv_rot::threads / threads_per_head; // CG helpers cg::thread_block tb = cg::this_thread_block(); cg::thread_block_tile warp = cg::tiled_partition(tb); - cg::thread_block_tile head_group = - cg::tiled_partition(warp); + cg::thread_block_tile head_group = cg::tiled_partition(tb); // Parallelize on the head dimension for X blocks const int head_idx = blockIdx.x; const int block_seq_idx = threadIdx.x / threads_per_head; - const int base_neuron_idx = (threadIdx.x * vector_T) % headSize; - const int half_idx = base_neuron_idx % half_head_size; - const int half_head_lanes = threads_per_head / 2; + const int base_neuron_idx = head_group.thread_rank() * vector_T; + const int half_rotary_size = rotary_dim / 2; + const int half_dim_lanes = half_rotary_size / vector_T; + const int half_idx = base_neuron_idx % half_rotary_size; // Multiple tokens processed by the same threadblock const int token_idx = blockIdx.y * tokens_per_block + block_seq_idx; const bool valid_token = token_idx < batch_desc.batch_metadata->n_tokens; - const bool load_inv_freq = (inv_freq != nullptr) && valid_token; + + const bool valid_thread = valid_token && (head_group.thread_rank() < real_threads_per_head); + const bool load_inv_freq = (inv_freq != nullptr) && valid_thread; // If we have GQA, then only one of the Q heads needs to do rotary + copy // for each of the heads in the group. @@ -67,9 +73,9 @@ __global__ void kv_rotary_pos_kernel(T* kv_cache, const int kv_head_idx = head_idx / qRatio; // Ensure we don't access invalid portions of the seq_metadata - const int32_t seq_id = (valid_token) ? batch_desc.tokens_to_seq[token_idx] : 0; + const int32_t seq_id = (valid_thread) ? batch_desc.tokens_to_seq[token_idx] : 0; const InflightSeqDescriptor seq_desc = batch_desc.seq_metadata[seq_id]; - // This will give an invalid index if valid_token is false, but should never affect memory. + // This will give an invalid index if valid_thread is false, but should never affect memory. const int32_t global_token_idx = seq_desc.seen_tokens + (token_idx - seq_desc.start_idx); T* q_row = q + token_idx * qkv_stride + head_idx * headSize; @@ -81,7 +87,7 @@ __global__ void kv_rotary_pos_kernel(T* kv_cache, const KVCacheDescriptor kv_desc = batch_desc.kv_desc; const int32_t seq_kv_block_idx = global_token_idx / kv_desc.block_size; const int32_t mapped_kv_block_idx = - (valid_token) ? kv_desc.block_lists[seq_id][seq_kv_block_idx] : 0; + (valid_thread) ? kv_desc.block_lists[seq_id][seq_kv_block_idx] : 0; const int32_t kv_block_offset = global_token_idx % kv_desc.block_size; const int32_t kv_offset = @@ -94,12 +100,11 @@ __global__ void kv_rotary_pos_kernel(T* kv_cache, T k_reg[vector_T], v_reg[vector_T], inv_freq_reg[vector_T]; - mem_access::load_global(q_reg, q_row + base_neuron_idx, valid_token); - mem_access::load_global(k_reg, k_row + base_neuron_idx, valid_token); - mem_access::load_global(v_reg, v_row + base_neuron_idx, valid_token); + mem_access::load_global(q_reg, q_row + base_neuron_idx, valid_thread); + mem_access::load_global(k_reg, k_row + base_neuron_idx, valid_thread); + mem_access::load_global(v_reg, v_row + base_neuron_idx, valid_thread); mem_access::load_global( inv_freq_reg, inv_freq + half_idx, load_inv_freq); - if constexpr (doRotary) { #pragma unroll for (int i = 0; i < vector_T; i++) { @@ -110,31 +115,37 @@ __global__ void kv_rotary_pos_kernel(T* kv_cache, inv_freq_flt = conversion::to(inv_freq_reg[i]) * (float)global_token_idx; } else { inv_freq_flt = - (float)((head_neuron_idx % half_head_size) * 2) / (float)headSize; + (float)((head_neuron_idx % half_rotary_size) * 2) / (float)rotary_dim; // Conversion to T and back means that both branches of this if statement // will produce the same results if using the same algo for producing the // freqs. - T trunc_freq = conversion::to(1.0 / powf(10000.0, inv_freq_flt)); + T trunc_freq = conversion::to(1.0 / powf(theta_base, inv_freq_flt)); inv_freq_flt = conversion::to(trunc_freq) * (float)global_token_idx; } - float rotary_sign = (head_neuron_idx >= half_head_size) ? -1.0f : 1.0f; + float rotary_sign = (head_neuron_idx >= half_rotary_size) ? -1.0f : 1.0f; float q_f = conversion::to(q_reg[i]); float k_f = conversion::to(k_reg[i]); float q_rot = q_f * rotary_sign; float k_rot = k_f * rotary_sign; - const float q_rot_temp = head_group.shfl_xor(q_rot, half_head_lanes); - const float k_rot_temp = head_group.shfl_xor(k_rot, half_head_lanes); + const int target_lane = (head_neuron_idx < half_rotary_size) + ? head_group.thread_rank() + half_dim_lanes + : head_group.thread_rank() - half_dim_lanes; + + const float q_rot_temp = head_group.shfl(q_rot, target_lane); + const float k_rot_temp = head_group.shfl(k_rot, target_lane); - q_reg[i] = - conversion::to(q_f * cosf(inv_freq_flt) + q_rot_temp * sinf(inv_freq_flt)); - k_reg[i] = - conversion::to(k_f * cosf(inv_freq_flt) + k_rot_temp * sinf(inv_freq_flt)); + if (base_neuron_idx < rotary_dim) { + q_reg[i] = conversion::to(q_f * cosf(inv_freq_flt) + + q_rot_temp * sinf(inv_freq_flt)); + k_reg[i] = conversion::to(k_f * cosf(inv_freq_flt) + + k_rot_temp * sinf(inv_freq_flt)); + } } } - if (valid_token) { + if (valid_thread) { mem_access::store_global(kv_cache + kv_offset + base_neuron_idx, k_reg); mem_access::store_global( @@ -143,7 +154,7 @@ __global__ void kv_rotary_pos_kernel(T* kv_cache, } else { T inv_freq_reg[vector_T]; - mem_access::load_global(q_reg, q_row + base_neuron_idx, valid_token); + mem_access::load_global(q_reg, q_row + base_neuron_idx, valid_thread); mem_access::load_global( inv_freq_reg, inv_freq + half_idx, load_inv_freq); @@ -157,47 +168,77 @@ __global__ void kv_rotary_pos_kernel(T* kv_cache, inv_freq_flt = conversion::to(inv_freq_reg[i]) * (float)global_token_idx; } else { inv_freq_flt = - (float)((head_neuron_idx % half_head_size) * 2) / (float)headSize; - inv_freq_flt = 1.0 / powf(10000.0, inv_freq_flt) * (float)global_token_idx; + (float)((head_neuron_idx % half_rotary_size) * 2) / (float)rotary_dim; + inv_freq_flt = 1.0 / powf(theta_base, inv_freq_flt) * (float)global_token_idx; } - float rotary_sign = (head_neuron_idx >= half_head_size) ? -1.0f : 1.0f; + float rotary_sign = (head_neuron_idx >= half_rotary_size) ? -1.0f : 1.0f; float q_f = conversion::to(q_reg[i]); float q_rot = q_f * rotary_sign; - const float q_rot_temp = head_group.shfl_xor(q_rot, half_head_lanes); + const int target_lane = (head_neuron_idx < half_rotary_size) + ? head_group.thread_rank() + half_dim_lanes + : head_group.thread_rank() - half_dim_lanes; - q_reg[i] = - conversion::to(q_f * cosf(inv_freq_flt) + q_rot_temp * sinf(inv_freq_flt)); + const float q_rot_temp = head_group.shfl(q_rot, target_lane); + if (base_neuron_idx < rotary_dim) + q_reg[i] = conversion::to(q_f * cosf(inv_freq_flt) + + q_rot_temp * sinf(inv_freq_flt)); } } } - if (valid_token && doRotary) { + if (valid_thread && doRotary) { mem_access::store_global(q_row + base_neuron_idx, q_reg); } } -#define DISPATCH_KV_ROTARY_IMPL(Q_RATIO, HEAD_SIZE) \ - if (q_ratio == Q_RATIO && head_size == HEAD_SIZE) \ - kv_rotary_pos_kernel \ - <<>>(kv_cache, \ - q, \ - k, \ - v, \ - inv_freq, \ - batch_desc, \ - qkv_stride, \ - kv_cache_stride, \ - v_offset, \ +#define DISPATCH_KV_ROTARY_IMPL(Q_RATIO, HEAD_SIZE, PADDED_HEAD_SIZE) \ + if (q_ratio == Q_RATIO && head_size == HEAD_SIZE) \ + kv_rotary_pos_kernel \ + <<>>(kv_cache, \ + q, \ + k, \ + v, \ + inv_freq, \ + rotary_dim, \ + theta_base, \ + batch_desc, \ + qkv_stride, \ + kv_cache_stride, \ + v_offset, \ inv_freq_stride); +#define LAUNCH_KV_ROTARY_FOR_Q_RATIO_HEAD_SIZE(Q_RATIO, HEAD_SIZE) \ + if (padded_head_size == 64) { \ + DISPATCH_KV_ROTARY_IMPL(Q_RATIO, HEAD_SIZE, 64); \ + } else if (padded_head_size == 128) { \ + DISPATCH_KV_ROTARY_IMPL(Q_RATIO, HEAD_SIZE, 128); \ + } else { \ + assert(false); \ + } + +#define LAUNCH_KV_ROTARY_FOR_Q_RATIO(Q_RATIO) \ + if (head_size == 64) { \ + LAUNCH_KV_ROTARY_FOR_Q_RATIO_HEAD_SIZE(Q_RATIO, 64); \ + } else if (head_size == 80) { \ + LAUNCH_KV_ROTARY_FOR_Q_RATIO_HEAD_SIZE(Q_RATIO, 80); \ + } else if (head_size == 96) { \ + LAUNCH_KV_ROTARY_FOR_Q_RATIO_HEAD_SIZE(Q_RATIO, 96); \ + } else if (head_size == 128) { \ + LAUNCH_KV_ROTARY_FOR_Q_RATIO_HEAD_SIZE(Q_RATIO, 128); \ + } else { \ + assert(false); \ + } + template void launch_kv_rotary_kernel(T* kv_cache, T* q, T* k, T* v, T* inv_freq, + const int32_t rotary_dim, + const float theta_base, const BatchWrapperCPP batch_desc, const int qkv_stride, const int kv_cache_stride, @@ -210,23 +251,28 @@ void launch_kv_rotary_kernel(T* kv_cache, cudaStream_t stream) { constexpr int vector_T = kv_rot::granularity / sizeof(T); - const int threads_per_head = head_size / vector_T; + + const int padded_head_size = next_pow2(head_size); + const int threads_per_head = padded_head_size / vector_T; + const int tokens_per_block = kv_rot::threads / threads_per_head; const dim3 block(kv_rot::threads); const int token_blocks = (n_tokens + tokens_per_block - 1) / tokens_per_block; const dim3 grid(n_q_heads, token_blocks); - DISPATCH_KV_ROTARY_IMPL(1, 64) - DISPATCH_KV_ROTARY_IMPL(1, 128) - DISPATCH_KV_ROTARY_IMPL(2, 64) - DISPATCH_KV_ROTARY_IMPL(2, 128) - DISPATCH_KV_ROTARY_IMPL(4, 64) - DISPATCH_KV_ROTARY_IMPL(4, 128) - DISPATCH_KV_ROTARY_IMPL(5, 64) - DISPATCH_KV_ROTARY_IMPL(5, 128) - DISPATCH_KV_ROTARY_IMPL(8, 64) - DISPATCH_KV_ROTARY_IMPL(8, 128) + LAUNCH_KV_ROTARY_FOR_Q_RATIO(1) + LAUNCH_KV_ROTARY_FOR_Q_RATIO(2) + LAUNCH_KV_ROTARY_FOR_Q_RATIO(4) + LAUNCH_KV_ROTARY_FOR_Q_RATIO(5) + LAUNCH_KV_ROTARY_FOR_Q_RATIO(6) + LAUNCH_KV_ROTARY_FOR_Q_RATIO(7) + LAUNCH_KV_ROTARY_FOR_Q_RATIO(8) + LAUNCH_KV_ROTARY_FOR_Q_RATIO(16) + LAUNCH_KV_ROTARY_FOR_Q_RATIO(29) + LAUNCH_KV_ROTARY_FOR_Q_RATIO(35) + LAUNCH_KV_ROTARY_FOR_Q_RATIO(36) + LAUNCH_KV_ROTARY_FOR_Q_RATIO(71) } #define INSTANTIATE_KV_ROTARY_KERNEL(TYPE) \ @@ -235,6 +281,8 @@ void launch_kv_rotary_kernel(T* kv_cache, TYPE * k, \ TYPE * v, \ TYPE * inv_freq, \ + const int32_t rotary_dim, \ + const float theta_base, \ const BatchWrapperCPP batch_desc, \ const int qkv_stride, \ const int kv_cache_stride, \ @@ -252,10 +300,43 @@ INSTANTIATE_KV_ROTARY_KERNEL(__half) INSTANTIATE_KV_ROTARY_KERNEL(__nv_bfloat16) #endif -#define DISPATCH_KV_COPY_IMPL(Q_RATIO, HEAD_SIZE) \ - if (q_ratio == Q_RATIO && head_size == HEAD_SIZE) \ - kv_rotary_pos_kernel<<>>( \ - kv_cache, q, k, v, nullptr, batch_desc, qkv_stride, kv_cache_stride, v_offset, 0); +#define DISPATCH_KV_COPY_IMPL(Q_RATIO, HEAD_SIZE, PADDED_HEAD_SIZE) \ + if (q_ratio == Q_RATIO && head_size == HEAD_SIZE) \ + kv_rotary_pos_kernel \ + <<>>(kv_cache, \ + q, \ + k, \ + v, \ + nullptr, \ + -1, \ + 0.f, \ + batch_desc, \ + qkv_stride, \ + kv_cache_stride, \ + v_offset, \ + 0); + +#define LAUNCH_KV_COPY_FOR_Q_RATIO_HEAD_SIZE(Q_RATIO, HEAD_SIZE) \ + if (padded_head_size == 64) { \ + DISPATCH_KV_COPY_IMPL(Q_RATIO, HEAD_SIZE, 64); \ + } else if (padded_head_size == 128) { \ + DISPATCH_KV_COPY_IMPL(Q_RATIO, HEAD_SIZE, 128); \ + } else { \ + assert(false); \ + } + +#define LAUNCH_KV_COPY_FOR_Q_RATIO(Q_RATIO) \ + if (head_size == 64) { \ + LAUNCH_KV_COPY_FOR_Q_RATIO_HEAD_SIZE(Q_RATIO, 64); \ + } else if (head_size == 80) { \ + LAUNCH_KV_COPY_FOR_Q_RATIO_HEAD_SIZE(Q_RATIO, 80); \ + } else if (head_size == 96) { \ + LAUNCH_KV_COPY_FOR_Q_RATIO_HEAD_SIZE(Q_RATIO, 96); \ + } else if (head_size == 128) { \ + LAUNCH_KV_COPY_FOR_Q_RATIO_HEAD_SIZE(Q_RATIO, 128); \ + } else { \ + assert(false); \ + } template void launch_kv_copy_kernel(T* kv_cache, @@ -273,23 +354,19 @@ void launch_kv_copy_kernel(T* kv_cache, cudaStream_t stream) { constexpr int vector_T = kv_rot::granularity / sizeof(T); - const int threads_per_head = head_size / vector_T; + const int padded_head_size = next_pow2(head_size); + const int threads_per_head = padded_head_size / vector_T; const int tokens_per_block = kv_rot::threads / threads_per_head; const dim3 block(kv_rot::threads); const int token_blocks = (n_tokens + tokens_per_block - 1) / tokens_per_block; const dim3 grid(n_q_heads, token_blocks); - DISPATCH_KV_COPY_IMPL(1, 64) - DISPATCH_KV_COPY_IMPL(1, 128) - DISPATCH_KV_COPY_IMPL(2, 64) - DISPATCH_KV_COPY_IMPL(2, 128) - DISPATCH_KV_COPY_IMPL(4, 64) - DISPATCH_KV_COPY_IMPL(4, 128) - DISPATCH_KV_COPY_IMPL(5, 64) - DISPATCH_KV_COPY_IMPL(5, 128) - DISPATCH_KV_COPY_IMPL(8, 64) - DISPATCH_KV_COPY_IMPL(8, 128) + LAUNCH_KV_COPY_FOR_Q_RATIO(1) + LAUNCH_KV_COPY_FOR_Q_RATIO(2) + LAUNCH_KV_COPY_FOR_Q_RATIO(4) + LAUNCH_KV_COPY_FOR_Q_RATIO(5) + LAUNCH_KV_COPY_FOR_Q_RATIO(8) } #define INSTANTIATE_KV_COPY_KERNEL(TYPE) \ diff --git a/deepspeed/inference/v2/kernels/ragged_ops/linear_blocked_kv_rotary/blocked_trained_kv_rotary.py b/deepspeed/inference/v2/kernels/ragged_ops/linear_blocked_kv_rotary/blocked_trained_kv_rotary.py index 59da1db0f5d6..f527be227ce1 100644 --- a/deepspeed/inference/v2/kernels/ragged_ops/linear_blocked_kv_rotary/blocked_trained_kv_rotary.py +++ b/deepspeed/inference/v2/kernels/ragged_ops/linear_blocked_kv_rotary/blocked_trained_kv_rotary.py @@ -23,7 +23,7 @@ class BlockedTrainedRotaryEmbeddings(DSKernelBase): """ supported_dtypes = [DtypeEnum.fp16, DtypeEnum.bf16] - supported_head_sizes = [64, 128] + supported_head_sizes = [64, 80, 96, 128] supported_q_ratios = [1, 2, 4, 5, 8] def __init__(self, head_size: int, n_q_heads: int, n_kv_heads: int, dtype: torch.dtype) -> None: @@ -65,7 +65,7 @@ def __call__(self, kv_cache: torch.Tensor, qkv: torch.Tensor, ragged_batch: Ragg kv_cache (torch.Tensor): Pre-allocated KV cache of [num_blocks, block_size, 2, n_kv_heads, head_size] qkv: Input tensor of shape [num_tokens, head_size * (n_q_heads + 2 * n_kv_heads)] ragged_batch: Wrapper for the ragged batch. - inverse_freqs: Inverse frequencies for the rotary embeddings. Shape [max_seq_len, head_size // 2] + inverse_freqs: Inverse frequencies for the rotary embeddings. Shape [max_seq_len, rotary_dim // 2] """ q = qkv[:, :self.head_size * self.n_q_heads] diff --git a/deepspeed/inference/v2/kernels/ragged_ops/linear_blocked_kv_rotary/linear_blocked_kv_copy.py b/deepspeed/inference/v2/kernels/ragged_ops/linear_blocked_kv_rotary/linear_blocked_kv_copy.py index c9f6ffd37b3e..4b2ad858a1bf 100644 --- a/deepspeed/inference/v2/kernels/ragged_ops/linear_blocked_kv_rotary/linear_blocked_kv_copy.py +++ b/deepspeed/inference/v2/kernels/ragged_ops/linear_blocked_kv_rotary/linear_blocked_kv_copy.py @@ -23,7 +23,7 @@ class LinearBlockedKVCopy(DSKernelBase): """ supported_dtypes = [DtypeEnum.fp16, DtypeEnum.bf16] - supported_head_sizes = [64, 128] + supported_head_sizes = [64, 80, 96, 128] supported_q_ratios = [1, 2, 4, 5, 8] def __init__(self, head_size: int, n_q_heads: int, n_kv_heads: int, dtype: torch.dtype) -> None: diff --git a/deepspeed/inference/v2/kernels/ragged_ops/logits_gather/logits_gather.cu b/deepspeed/inference/v2/kernels/ragged_ops/logits_gather/logits_gather_cuda.cu similarity index 100% rename from deepspeed/inference/v2/kernels/ragged_ops/logits_gather/logits_gather.cu rename to deepspeed/inference/v2/kernels/ragged_ops/logits_gather/logits_gather_cuda.cu diff --git a/deepspeed/inference/v2/kernels/ragged_ops/moe_gather/moe_gather.cpp b/deepspeed/inference/v2/kernels/ragged_ops/moe_gather/moe_gather.cpp index e55e1f48c125..506629406f0d 100644 --- a/deepspeed/inference/v2/kernels/ragged_ops/moe_gather/moe_gather.cpp +++ b/deepspeed/inference/v2/kernels/ragged_ops/moe_gather/moe_gather.cpp @@ -16,6 +16,8 @@ n_channels, \ n_experts, \ n_tokens, \ + n_top_k, \ + normalize_scales, \ at::cuda::getCurrentCUDAStream()); \ return; \ } @@ -27,17 +29,21 @@ void moe_gather(torch::Tensor& layer_output, const torch::Tensor& moe_output, const torch::Tensor& scores, const torch::Tensor& mapped_slots, - const torch::Tensor& expert_count) + const torch::Tensor& expert_count, + const bool normalize_scales) { const int32_t n_channels = layer_output.size(1); const int32_t n_experts = expert_count.size(0); const int32_t n_tokens = layer_output.size(0); + const int32_t n_top_k = mapped_slots.size(1); - TORCH_CHECK(moe_output.size(0) == n_tokens); + TORCH_CHECK(moe_output.size(0) == n_tokens * n_top_k); TORCH_CHECK(moe_output.size(1) == n_channels); TORCH_CHECK(scores.size(0) == n_tokens); TORCH_CHECK(mapped_slots.size(0) == n_tokens); + TORCH_CHECK(scores.size(1) == n_top_k); + TORCH_CHECK(layer_output.scalar_type() == moe_output.scalar_type()); TORCH_CHECK(scores.scalar_type() == torch::kFloat32); TORCH_CHECK(mapped_slots.scalar_type() == torch::kInt32); diff --git a/deepspeed/inference/v2/kernels/ragged_ops/moe_gather/moe_gather.cuh b/deepspeed/inference/v2/kernels/ragged_ops/moe_gather/moe_gather.cuh index f98a727ead58..b348d0cfb330 100644 --- a/deepspeed/inference/v2/kernels/ragged_ops/moe_gather/moe_gather.cuh +++ b/deepspeed/inference/v2/kernels/ragged_ops/moe_gather/moe_gather.cuh @@ -17,4 +17,6 @@ void launch_moe_gather(T* layer_output, const int32_t n_channels, const int32_t n_experts, const int32_t n_tokens, + const int32_t n_top_k, + const bool normalize_scales, cudaStream_t stream); diff --git a/deepspeed/inference/v2/kernels/ragged_ops/moe_gather/moe_gather.h b/deepspeed/inference/v2/kernels/ragged_ops/moe_gather/moe_gather.h index 7ffe9f8b4dc6..ec9e03057eb8 100644 --- a/deepspeed/inference/v2/kernels/ragged_ops/moe_gather/moe_gather.h +++ b/deepspeed/inference/v2/kernels/ragged_ops/moe_gather/moe_gather.h @@ -16,4 +16,5 @@ void moe_gather(torch::Tensor& layer_output, const torch::Tensor& moe_output, const torch::Tensor& scores, const torch::Tensor& mapped_slots, - const torch::Tensor& expert_counts); + const torch::Tensor& expert_counts, + const bool normalize_scales); diff --git a/deepspeed/inference/v2/kernels/ragged_ops/moe_gather/moe_gather.py b/deepspeed/inference/v2/kernels/ragged_ops/moe_gather/moe_gather.py index c37683d03fbe..f03938171ba4 100644 --- a/deepspeed/inference/v2/kernels/ragged_ops/moe_gather/moe_gather.py +++ b/deepspeed/inference/v2/kernels/ragged_ops/moe_gather/moe_gather.py @@ -18,7 +18,7 @@ class MoEGather(DSKernelBase): supported_dtypes = [DtypeEnum.fp16, DtypeEnum.bf16] - def __init__(self, dtype: DtypeEnum, channels: int) -> None: + def __init__(self, dtype: DtypeEnum, channels: int, normalize_scores: bool = False) -> None: if not isinstance(dtype, DtypeEnum): dtype = DtypeEnum(dtype) @@ -31,6 +31,7 @@ def __init__(self, dtype: DtypeEnum, channels: int) -> None: inf_module = RaggedOpsBuilder().load() self.kernel = inf_module.moe_gather + self.normalize_scores = normalize_scores def __call__(self, layer_output: torch.Tensor, moe_output: torch.Tensor, scores: torch.Tensor, mapped_slots: torch.Tensor, expert_counts: torch.Tensor) -> torch.Tensor: @@ -40,13 +41,13 @@ def __call__(self, layer_output: torch.Tensor, moe_output: torch.Tensor, scores: Arguments: layer_output (torch.Tensor): The output of the layer of shape [n_tokens, hidden_size]. This has been scaled appropriately. - moe_output (torch.Tensor): The output of the MoE of shape [n_tokens, hidden_size]. + moe_output (torch.Tensor): The output of the MoE of shape [n_tokens * n_top_k, hidden_size]. scores (torch.Tensor): The gating scores of shape [n_tokens]. - mapped_slots (torch.Tensor): The index of the token in the expert's input of shape [n_tokens]. The index of token ``i`` in layer_output is ``mapped_slots[i]``. + mapped_slots (torch.Tensor): The index of the token in the expert's input of shape [n_tokens, n_top_k]. The indices of token ``i`` in layer_output is ``mapped_slots[i]``. expert_counts (torch.Tensor): The number of tokens assigned to each expert of shape [n_experts]. This is passed to fuse the clearing of this data structure into the gather. Returns: layer_output """ - self.kernel(layer_output, moe_output, scores, mapped_slots, expert_counts) + self.kernel(layer_output, moe_output, scores, mapped_slots, expert_counts, self.normalize_scores) return layer_output diff --git a/deepspeed/inference/v2/kernels/ragged_ops/moe_gather/moe_gather.cu b/deepspeed/inference/v2/kernels/ragged_ops/moe_gather/moe_gather_cuda.cu similarity index 50% rename from deepspeed/inference/v2/kernels/ragged_ops/moe_gather/moe_gather.cu rename to deepspeed/inference/v2/kernels/ragged_ops/moe_gather/moe_gather_cuda.cu index c2fae24f5080..4153a2a3636f 100644 --- a/deepspeed/inference/v2/kernels/ragged_ops/moe_gather/moe_gather.cu +++ b/deepspeed/inference/v2/kernels/ragged_ops/moe_gather/moe_gather_cuda.cu @@ -7,7 +7,8 @@ #include "ds_kernel_utils.h" #include "moe_gather.cuh" #include "reduction_utils.h" -#include "top_1_gating.cuh" +#include "top_k_gating.cuh" +#include "top_k_utils.h" namespace gather { @@ -16,65 +17,105 @@ constexpr int threads = 256; } // namespace gather -template +template __global__ void moe_gather_kernel(T* layer_output, const T* moe_output, const float* scores, const int32_t* mapped_slots, int32_t* expert_counts, const int32_t n_channels, - const int32_t n_experts) + const int32_t n_experts, + const bool normalize_scales) { constexpr int32_t vector_size = gather::access_granularity / sizeof(T); constexpr int32_t stride = vector_size * gather::threads; const int32_t token_idx = blockIdx.x; - const int32_t mapped_slot = mapped_slots[token_idx]; + int32_t token_mapped_slots[N_TOP_K]; + + bool all_slots_invalid = true; + for (int i = 0; i < N_TOP_K; i++) { + token_mapped_slots[i] = mapped_slots[token_idx * N_TOP_K + i]; + all_slots_invalid &= (token_mapped_slots[i] == gating::unassigned); + } if (token_idx == 0) { // Reset expert counts for its next use. if (threadIdx.x < n_experts) { expert_counts[threadIdx.x] = 0; } } - if (mapped_slot == gating::unassigned) { - // This token was not assigned. + if (all_slots_invalid) { + // This token was not assigned to anything. // TODO(cmikeh2): It's possible we want different behavior here moving forward. return; } - const float score = scores[token_idx]; + float token_scores[N_TOP_K]; + for (int i = 0; i < N_TOP_K; i++) { token_scores[i] = scores[token_idx * N_TOP_K + i]; } + + if (normalize_scales) { + // Normalize the scores so that they sum to 1. + float sum = 0.0f; + for (int i = 0; i < N_TOP_K; i++) { sum += token_scores[i]; } + + if (sum > 0.0f) { + for (int i = 0; i < N_TOP_K; i++) { token_scores[i] /= sum; } + } + } + const int32_t channel_offset = threadIdx.x * vector_size; - const T* moe_output_base = moe_output + mapped_slot * n_channels + channel_offset; + const T* moe_output_bases[N_TOP_K]; +#pragma unroll + for (int i = 0; i < N_TOP_K; i++) { + moe_output_bases[i] = moe_output + token_mapped_slots[i] * n_channels + channel_offset; + } + T* layer_output_base = layer_output + token_idx * n_channels + channel_offset; #pragma unroll for (int i = 0; i < copyUnroll; i++) { - T reg_buffer[vector_size]; - if (i * stride + channel_offset < n_channels) { - mem_access::load_global(reg_buffer, - moe_output_base + i * stride); + float accum_buffer[vector_size]; + for (int j = 0; j < vector_size; j++) { + accum_buffer[j] = reduce::init(); + } + +#pragma unroll + for (int j = 0; j < N_TOP_K; j++) { + T reg_buffer[vector_size]; + mem_access::load_global( + reg_buffer, moe_output_bases[j] + i * stride); +#pragma unroll + for (int k = 0; k < vector_size; k++) { + float up_cast = conversion::to(reg_buffer[k]); + accum_buffer[k] += up_cast * token_scores[j]; + } + } + + T store_buffer[vector_size]; #pragma unroll for (int j = 0; j < vector_size; j++) { - // There are accuracy implications of downcasting the score to a 16-bit - // data type, so we up-convert the input to 32-bit, multiply, and then - // down-convert back to 16-bit. - float up_cast = conversion::to(reg_buffer[j]); - reg_buffer[j] = conversion::to(up_cast * score); + store_buffer[j] = conversion::to(accum_buffer[j]); } mem_access::store_global(layer_output_base + i * stride, - reg_buffer); + store_buffer); } } } -#define LAUNCH_FOR_UNROLL(COUNT) \ - case COUNT: \ - moe_gather_kernel<<>>( \ - layer_output, moe_output, scores, mapped_slots, expert_counts, n_channels, n_experts); \ +#define LAUNCH_FOR_UNROLL(COUNT) \ + case COUNT: \ + moe_gather_kernel<<>>(layer_output, \ + moe_output, \ + scores, \ + mapped_slots, \ + expert_counts, \ + n_channels, \ + n_experts, \ + normalize_scales); \ break; template @@ -86,6 +127,8 @@ void launch_moe_gather(T* layer_output, const int32_t n_channels, const int32_t n_experts, const int32_t n_tokens, + const int32_t n_top_k, + const bool normalize_scales, cudaStream_t stream) { constexpr int vals_per_unroll = gather::threads * gather::access_granularity / sizeof(T); @@ -94,14 +137,16 @@ void launch_moe_gather(T* layer_output, const dim3 block(gather::threads); const dim3 grid(n_tokens); - switch (copy_unroll) { - LAUNCH_FOR_UNROLL(1) - LAUNCH_FOR_UNROLL(2) - LAUNCH_FOR_UNROLL(3) - LAUNCH_FOR_UNROLL(4) - LAUNCH_FOR_UNROLL(5) - LAUNCH_FOR_UNROLL(6) - } + TOP_K_SWITCH(n_top_k, [&] { + switch (copy_unroll) { + LAUNCH_FOR_UNROLL(1) + LAUNCH_FOR_UNROLL(2) + LAUNCH_FOR_UNROLL(3) + LAUNCH_FOR_UNROLL(4) + LAUNCH_FOR_UNROLL(5) + LAUNCH_FOR_UNROLL(6) + } + }); } #define INSTANTIATE_GATHER_FOR_TYPE(TYPE) \ @@ -113,6 +158,8 @@ void launch_moe_gather(T* layer_output, const int32_t n_channels, \ const int32_t n_experts, \ const int32_t n_tokens, \ + const int32_t n_top_k, \ + const bool normalize_scales, \ cudaStream_t stream); INSTANTIATE_GATHER_FOR_TYPE(__half) diff --git a/deepspeed/inference/v2/kernels/ragged_ops/moe_scatter/moe_scatter.cpp b/deepspeed/inference/v2/kernels/ragged_ops/moe_scatter/moe_scatter.cpp index 902f1cc0ea15..8f7ecbd1a287 100644 --- a/deepspeed/inference/v2/kernels/ragged_ops/moe_scatter/moe_scatter.cpp +++ b/deepspeed/inference/v2/kernels/ragged_ops/moe_scatter/moe_scatter.cpp @@ -18,6 +18,7 @@ n_channels, \ n_tokens, \ n_experts, \ + n_top_k, \ at::cuda::getCurrentCUDAStream()); \ return; \ } @@ -36,13 +37,17 @@ void moe_scatter(torch::Tensor& moe_input, { const int32_t n_tokens = activations.size(0); const int32_t n_channels = activations.size(1); + const int32_t n_top_k = assignments.size(1); // Should have a lot of matching buffer sizes here. - TORCH_CHECK(n_tokens == moe_input.size(0)); TORCH_CHECK(n_tokens == assignments.size(0)); TORCH_CHECK(n_tokens == offsets.size(0)); TORCH_CHECK(n_channels == moe_input.size(1)); + TORCH_CHECK(n_top_k == offsets.size(1)); + TORCH_CHECK(n_top_k * n_tokens == moe_input.size(0)); + TORCH_CHECK(n_top_k == mapped_slots.size(1)); + const int32_t n_experts = expert_count_cumsums.size(0); TORCH_CHECK(moe_input.scalar_type() == activations.scalar_type()); diff --git a/deepspeed/inference/v2/kernels/ragged_ops/moe_scatter/moe_scatter.cu b/deepspeed/inference/v2/kernels/ragged_ops/moe_scatter/moe_scatter.cu deleted file mode 100644 index 0746cd7be645..000000000000 --- a/deepspeed/inference/v2/kernels/ragged_ops/moe_scatter/moe_scatter.cu +++ /dev/null @@ -1,208 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// SPDX-License-Identifier: Apache-2.0 - -// DeepSpeed Team - -#include "ds_kernel_utils.h" -#include "moe_scatter.cuh" -#include "reduction_utils.h" -#include "top_1_gating.cuh" - -using ROp = reduce::ROpType; - -namespace scatter { - -constexpr int access_granularity = 16; -constexpr int threads = 256; -constexpr int warps = threads / hw_warp_size; - -} // namespace scatter - -template -__global__ void moe_scatter_kernel(T* moe_input, - int64_t* expert_count_cumsums, - int32_t* mapped_slots, - const T* activations, - const int32_t* assignments, - const int32_t* expert_counts, - const int32_t* offsets, - const int32_t n_channels, - const int32_t n_experts) -{ - constexpr int32_t vector_size = scatter::access_granularity / sizeof(T); - constexpr int32_t load_stride = vector_size * scatter::threads; - - const int32_t token_idx = blockIdx.x; - const int32_t tidx = threadIdx.x; - const int32_t warp_rank = tidx / hw_warp_size; - - // Bank aligned and sufficient - __shared__ int32_t red_buffer[32]; - __shared__ int32_t token_0_row; - - // CG helpers - cg::thread_block tb = cg::this_thread_block(); - cg::thread_block_tile warp = cg::tiled_partition(tb); - - const int assigned_expert = assignments[token_idx]; - - // For the different codepaths, we'll converge on this variable for doing - // the token copy. - int32_t token_base_row; - - if (token_idx == 0) { - // Token 0 will perform a cumsum on the data - int32_t expert_vals; - if (tidx < n_experts) { - expert_vals = expert_counts[tidx]; - } else { - expert_vals = 0; - } - -#pragma unroll - for (int i = 1; i < hw_warp_size; i *= 2) { - int32_t maybe_add = warp.shfl_up(expert_vals, i); - expert_vals = (warp.thread_rank() < i) ? expert_vals : expert_vals + maybe_add; - } - - if (warp.thread_rank() == hw_warp_size - 1) { - mem_access::store_shared<4>(red_buffer + warp_rank, &expert_vals); - } - - tb.sync(); - - int32_t phase_2_val = 0; - if (warp.thread_rank() < scatter::warps) { - mem_access::load_shared<4>(&phase_2_val, red_buffer + warp.thread_rank()); - } - -#pragma unroll - for (int i = 1; i < hw_warp_size; i *= 2) { - int32_t maybe_add = warp.shfl_up(phase_2_val, i); - phase_2_val = (warp.thread_rank() < i) ? phase_2_val : phase_2_val + maybe_add; - } - - int warp_offset = 0; - if (warp_rank > 0) { warp_offset = warp.shfl(phase_2_val, warp_rank - 1); } - const int32_t expert_cumsum = warp_offset + expert_vals; - - if (tidx < n_experts) { - int64_t expert_cumsum_64 = (int64_t)expert_cumsum; - expert_count_cumsums[tidx] = expert_cumsum_64; - } - - if (assigned_expert == gating::unassigned) return; - if (assigned_expert - 1 == tidx) token_0_row = expert_cumsum; - - tb.sync(); - - if (assigned_expert != 0) { - token_base_row = token_0_row; - } else { - token_base_row = 0; - } - - } else if (assigned_expert == gating::unassigned) { - // For whatever reason, don't need to perform the copy, so we'll early return - // and signal this wasn't mapped with a negative 1. - if (tidx == 0) mapped_slots[token_idx] = gating::unassigned; - return; - } else { - // For all other valid tokens, we can just do a block-scoped sum. - if (tidx < assigned_expert) { - token_base_row = expert_counts[tidx]; - } else { - token_base_row = 0; - } - - warp.sync(); - - // TODO(cmikeh2): Shouldn't use the internal api. - reduce::_block(tb, warp, &token_base_row); - } - - // Data copy to appropriate location - const int32_t thread_offset = tidx * vector_size; - - const int32_t base_load_offset = token_idx * n_channels + thread_offset; - const T* load_base_ptr = activations + base_load_offset; - - const int32_t store_row = token_base_row + offsets[token_idx]; - const int32_t base_store_offset = store_row * n_channels + thread_offset; - T* store_base_ptr = moe_input + base_store_offset; - -#pragma unroll - for (int i = 0; i < copyUnroll; i++) { - T tmp_buf[vector_size]; - - if (i * load_stride + thread_offset < n_channels) { - mem_access::load_global(tmp_buf, - load_base_ptr + i * load_stride); - mem_access::store_global(store_base_ptr + i * load_stride, - tmp_buf); - } - } - - if (threadIdx.x == 0) { mapped_slots[token_idx] = store_row; } -} - -#define LAUNCH_FOR_UNROLL(COUNT) \ - case COUNT: \ - moe_scatter_kernel<<>>(moe_input, \ - expert_count_cumsums, \ - mapped_slots, \ - activations, \ - assignments, \ - expert_counts, \ - offsets, \ - n_channels, \ - n_experts); \ - break; - -template -void launch_moe_scatter(T* moe_input, - int64_t* expert_count_cumsums, - int32_t* mapped_slots, - const T* activations, - const int32_t* expert_counts, - const int32_t* assignments, - const int32_t* offsets, - const int32_t n_channels, - const int32_t n_tokens, - const int32_t n_experts, - cudaStream_t stream) -{ - constexpr int vals_per_unroll = scatter::threads * scatter::access_granularity / sizeof(T); - const int copy_unroll = (n_channels + vals_per_unroll - 1) / vals_per_unroll; - - const dim3 block(scatter::threads); - const dim3 grid(n_tokens); - - switch (copy_unroll) { - LAUNCH_FOR_UNROLL(1); - LAUNCH_FOR_UNROLL(2); - LAUNCH_FOR_UNROLL(3); - LAUNCH_FOR_UNROLL(4); - LAUNCH_FOR_UNROLL(5); - LAUNCH_FOR_UNROLL(6); - } -} - -#define INSTANTIATE_SCATTER_FOR_TYPE(TYPE) \ - template void launch_moe_scatter(TYPE*, \ - int64_t*, \ - int32_t*, \ - const TYPE*, \ - const int32_t*, \ - const int32_t*, \ - const int32_t*, \ - const int32_t, \ - const int32_t, \ - const int32_t, \ - cudaStream_t); - -INSTANTIATE_SCATTER_FOR_TYPE(__half); - -#ifdef BF16_AVAILABLE -INSTANTIATE_SCATTER_FOR_TYPE(__nv_bfloat16); -#endif diff --git a/deepspeed/inference/v2/kernels/ragged_ops/moe_scatter/moe_scatter.cuh b/deepspeed/inference/v2/kernels/ragged_ops/moe_scatter/moe_scatter.cuh index 5c94cb0ef734..d9756c80f05a 100644 --- a/deepspeed/inference/v2/kernels/ragged_ops/moe_scatter/moe_scatter.cuh +++ b/deepspeed/inference/v2/kernels/ragged_ops/moe_scatter/moe_scatter.cuh @@ -19,4 +19,5 @@ void launch_moe_scatter(T* moe_input, const int32_t n_channels, const int32_t n_tokens, const int32_t n_experts, + const int32_t n_top_k, cudaStream_t stream); diff --git a/deepspeed/inference/v2/kernels/ragged_ops/moe_scatter/moe_scatter.py b/deepspeed/inference/v2/kernels/ragged_ops/moe_scatter/moe_scatter.py index 5cd6ae5f0fe2..7efcedb4e880 100644 --- a/deepspeed/inference/v2/kernels/ragged_ops/moe_scatter/moe_scatter.py +++ b/deepspeed/inference/v2/kernels/ragged_ops/moe_scatter/moe_scatter.py @@ -40,13 +40,13 @@ def __call__(self, moe_input: torch.Tensor, expert_cumsum: torch.Tensor, mapped_ Scatters the hidden states such that the token stride for each expert's input is contiguous. Arguments: - moe_input (torch.Tensor): The direct input for the MoE GEMM of shape [n_tokens, hidden_size]. + moe_input (torch.Tensor): The direct input for the MoE GEMM of shape [n_tokens * n_top_k, hidden_size]. expert_cumsum (torch.Tensor): The cumulative sum of the expert counts of shape [n_experts]. - mapped_slots (torch.Tensor): The index of the token in the expert's input of shape [n_tokens]. + mapped_slots (torch.Tensor): The index of the token in the expert's input of shape [n_tokens, n_top_k]. hidden_states (torch.Tensor): The hidden states of shape [n_tokens, hidden_size]. expert_counts (torch.Tensor): The number of tokens assigned to each expert of shape [n_experts]. - assignments (torch.Tensor): The expert assignments of shape [n_tokens]. - offsets (torch.Tensor): The offsets into the expert for a given token of shape [n_tokens]. + assignments (torch.Tensor): The expert assignments of shape [n_tokens, n_top_k]. + offsets (torch.Tensor): The offsets into the expert for a given token of shape [n_tokens, n_top_K]. Returns: Tuple[torch.Tensor, torch.Tensor, torch.Tensor]: The MoE input (with scattered values), the cumsum of the offsets (for the MoE kernels themselves), and the assignments Tensor modified in place to show which row that token was mapped to in the input. diff --git a/deepspeed/inference/v2/kernels/ragged_ops/moe_scatter/moe_scatter_cuda.cu b/deepspeed/inference/v2/kernels/ragged_ops/moe_scatter/moe_scatter_cuda.cu new file mode 100644 index 000000000000..d3eb4f649e79 --- /dev/null +++ b/deepspeed/inference/v2/kernels/ragged_ops/moe_scatter/moe_scatter_cuda.cu @@ -0,0 +1,216 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 + +// DeepSpeed Team + +#include "ds_kernel_utils.h" +#include "reduction_utils.h" +#include "top_k_gating.cuh" +#include "top_k_utils.h" + +using ROp = reduce::ROpType; + +namespace scatter { + +constexpr int access_granularity = 16; +constexpr int threads = 256; +constexpr int warps = threads / hw_warp_size; +constexpr int max_experts = 1024; + +} // namespace scatter + +template +__global__ void moe_scatter_kernel(T* moe_input, + int64_t* expert_count_cumsums, + int32_t* mapped_slots, + const T* activations, + const int32_t* assignments, + const int32_t* expert_counts, + const int32_t* offsets, + const int32_t n_channels, + const int32_t n_experts) +{ + constexpr int32_t vector_size = scatter::access_granularity / sizeof(T); + constexpr int32_t load_stride = vector_size * scatter::threads; + + const int32_t token_idx = blockIdx.x; + const int32_t tidx = threadIdx.x; + const int32_t warp_rank = tidx / hw_warp_size; + + // Bank aligned and sufficient + __shared__ int32_t red_buffer[32]; + __shared__ int32_t expert_offsets[scatter::max_experts]; + + // CG helpers + cg::thread_block tb = cg::this_thread_block(); + cg::thread_block_tile warp = cg::tiled_partition(tb); + + // Fetch the assigned experts for this token. + int assigned_experts[N_TOP_K]; + for (int i = 0; i < N_TOP_K; i++) { + assigned_experts[i] = assignments[token_idx * N_TOP_K + i]; + } + + bool all_unassigned = true; + for (int i = 0; i < N_TOP_K; i++) { + if (assigned_experts[i] != gating::unassigned) { + all_unassigned = false; + } else { + mapped_slots[token_idx * N_TOP_K + i] = gating::unassigned; + } + } + if (all_unassigned && token_idx != 0) return; + + // Do a prefix scan on the expert counts to get the base offsets. Here we use the + // single up-sweep variant. + int32_t expert_vals; + if (tidx < n_experts) { + expert_vals = expert_counts[tidx]; + } else { + expert_vals = 0; + } + +#pragma unroll + for (int i = 1; i < hw_warp_size; i *= 2) { + int32_t maybe_add = warp.shfl_up(expert_vals, i); + expert_vals = (warp.thread_rank() < i) ? expert_vals : expert_vals + maybe_add; + } + + if (warp.thread_rank() == hw_warp_size - 1) { + mem_access::store_shared<4>(red_buffer + warp_rank, &expert_vals); + } + + tb.sync(); + + int32_t phase_2_val = 0; + if (warp.thread_rank() < scatter::warps) { + mem_access::load_shared<4>(&phase_2_val, red_buffer + warp.thread_rank()); + } + +#pragma unroll + for (int i = 1; i < hw_warp_size; i *= 2) { + int32_t maybe_add = warp.shfl_up(phase_2_val, i); + phase_2_val = (warp.thread_rank() < i) ? phase_2_val : phase_2_val + maybe_add; + } + + int warp_offset = 0; + if (warp_rank > 0) { warp_offset = warp.shfl(phase_2_val, warp_rank - 1); } + const int32_t expert_cumsum = warp_offset + expert_vals; + + // Token 0 will write the + if (token_idx == 0 && tidx < n_experts) { + int64_t expert_cumsum_64 = (int64_t)expert_cumsum; + expert_count_cumsums[tidx] = expert_cumsum_64; + } + + // Since token 0 has now written the expert cumsum to global memory, + // if it has no valid experts, we can early return. + if (token_idx == 0 && all_unassigned) return; + + if (tidx < n_experts) { expert_offsets[tidx] = expert_cumsum; } + + // Ensure all the expert offsets are written in shared memory. + tb.sync(); + + // Data copy to appropriate location + const int32_t thread_offset = tidx * vector_size; + + const int32_t base_load_offset = token_idx * n_channels + thread_offset; + const T* load_base_ptr = activations + base_load_offset; + + int32_t store_rows[N_TOP_K]; + T* store_base_ptrs[N_TOP_K]; +#pragma unroll + for (int i = 0; i < N_TOP_K; i++) { + const int32_t cur_expert_offset = + (assigned_experts[i] > 0) ? expert_offsets[assigned_experts[i] - 1] : 0; + store_rows[i] = cur_expert_offset + offsets[token_idx * N_TOP_K + i]; + const int32_t base_store_offset = store_rows[i] * n_channels + thread_offset; + store_base_ptrs[i] = moe_input + base_store_offset; + } + +#pragma unroll + for (int i = 0; i < copyUnroll; i++) { + T tmp_buf[vector_size]; + + if (i * load_stride + thread_offset < n_channels) { + mem_access::load_global(tmp_buf, + load_base_ptr + i * load_stride); +#pragma unroll + for (int j = 0; j < N_TOP_K; j++) { + mem_access::store_global( + store_base_ptrs[j] + i * load_stride, tmp_buf); + } + } + } + + if (threadIdx.x == 0) { + for (int i = 0; i < N_TOP_K; i++) { mapped_slots[token_idx * N_TOP_K + i] = store_rows[i]; } + } +} + +#define LAUNCH_FOR_UNROLL(COUNT) \ + case COUNT: \ + moe_scatter_kernel \ + <<>>(moe_input, \ + expert_count_cumsums, \ + mapped_slots, \ + activations, \ + assignments, \ + expert_counts, \ + offsets, \ + n_channels, \ + n_experts); \ + break; + +template +void launch_moe_scatter(T* moe_input, + int64_t* expert_count_cumsums, + int32_t* mapped_slots, + const T* activations, + const int32_t* expert_counts, + const int32_t* assignments, + const int32_t* offsets, + const int32_t n_channels, + const int32_t n_tokens, + const int32_t n_experts, + const int32_t n_top_k, + cudaStream_t stream) +{ + constexpr int vals_per_unroll = scatter::threads * scatter::access_granularity / sizeof(T); + const int copy_unroll = (n_channels + vals_per_unroll - 1) / vals_per_unroll; + + const dim3 block(scatter::threads); + const dim3 grid(n_tokens); + + TOP_K_SWITCH(n_top_k, [&] { + switch (copy_unroll) { + LAUNCH_FOR_UNROLL(1); + LAUNCH_FOR_UNROLL(2); + LAUNCH_FOR_UNROLL(3); + LAUNCH_FOR_UNROLL(4); + LAUNCH_FOR_UNROLL(5); + LAUNCH_FOR_UNROLL(6); + } + }); +} + +#define INSTANTIATE_SCATTER_FOR_TYPE(TYPE) \ + template void launch_moe_scatter(TYPE*, \ + int64_t*, \ + int32_t*, \ + const TYPE*, \ + const int32_t*, \ + const int32_t*, \ + const int32_t*, \ + const int32_t, \ + const int32_t, \ + const int32_t, \ + const int32_t, \ + cudaStream_t); + +INSTANTIATE_SCATTER_FOR_TYPE(__half); + +#ifdef BF16_AVAILABLE +INSTANTIATE_SCATTER_FOR_TYPE(__nv_bfloat16); +#endif diff --git a/deepspeed/inference/v2/kernels/ragged_ops/ragged_ops.cpp b/deepspeed/inference/v2/kernels/ragged_ops/ragged_ops.cpp index 1c09fc52bbb1..f320f46e2620 100644 --- a/deepspeed/inference/v2/kernels/ragged_ops/ragged_ops.cpp +++ b/deepspeed/inference/v2/kernels/ragged_ops/ragged_ops.cpp @@ -12,7 +12,7 @@ #include "logits_gather.h" #include "moe_gather.h" #include "moe_scatter.h" -#include "top_1_gating.h" +#include "top_k_gating.h" PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) { @@ -43,6 +43,6 @@ PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) // moe_scatter.h m.def("moe_scatter", &moe_scatter, "MoE scatter for top-1-gating."); - // top_1_gating.h - m.def("top_1_gating", &top_1_gating, "Top-1 gating for MoE with ragged batch awareness."); + // top_k_gating.h + m.def("top_k_gating", &top_k_gating, "Top-1 gating for MoE with ragged batch awareness."); } diff --git a/deepspeed/inference/v2/kernels/ragged_ops/top_k_gating/__init__.py b/deepspeed/inference/v2/kernels/ragged_ops/top_k_gating/__init__.py new file mode 100644 index 000000000000..487735b015b0 --- /dev/null +++ b/deepspeed/inference/v2/kernels/ragged_ops/top_k_gating/__init__.py @@ -0,0 +1,6 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from .top_k_gating import RaggedTopKGating diff --git a/deepspeed/inference/v2/kernels/ragged_ops/top_1_gating/top_1_gating.cpp b/deepspeed/inference/v2/kernels/ragged_ops/top_k_gating/top_k_gating.cpp similarity index 67% rename from deepspeed/inference/v2/kernels/ragged_ops/top_1_gating/top_1_gating.cpp rename to deepspeed/inference/v2/kernels/ragged_ops/top_k_gating/top_k_gating.cpp index 55c68454b228..5eec7e2b955f 100644 --- a/deepspeed/inference/v2/kernels/ragged_ops/top_1_gating/top_1_gating.cpp +++ b/deepspeed/inference/v2/kernels/ragged_ops/top_k_gating/top_k_gating.cpp @@ -3,12 +3,12 @@ // DeepSpeed Team -#include "top_1_gating.h" +#include "top_k_gating.h" #include -#define DISPATCH_TOP_1_GATING(T_TYPE, C_TYPE) \ +#define DISPATCH_TOP_K_GATING(T_TYPE, C_TYPE) \ if (logits.options().dtype() == torch::T_TYPE) { \ - launch_top_1_gating((int32_t*)expert_counts.data_ptr(), \ + launch_top_k_gating((int32_t*)expert_counts.data_ptr(), \ (float*)scores.data_ptr(), \ (int32_t*)assignments.data_ptr(), \ (int32_t*)offsets.data_ptr(), \ @@ -16,14 +16,15 @@ batch_metadata_ptr, \ n_tokens, \ n_experts, \ + n_top_k, \ at::cuda::getCurrentCUDAStream()); \ return; \ } /* -Perform softmax plus atomics in order to do first pass of top_1_gating. +Perform softmax plus atomics in order to do first pass of top_k_gating. */ -void top_1_gating(torch::Tensor& expert_counts, +void top_k_gating(torch::Tensor& expert_counts, torch::Tensor& scores, torch::Tensor& assignments, torch::Tensor& offsets, @@ -31,10 +32,15 @@ void top_1_gating(torch::Tensor& expert_counts, torch::Tensor& batch_metadata) { const int32_t n_tokens = scores.size(0); + const int32_t n_top_k = scores.size(1); - // Should have the same buffer size for scores and offsets + // Should have the same buffer size for scores, offsets, and assignments TORCH_CHECK(n_tokens == offsets.size(0)); TORCH_CHECK(n_tokens == logits.size(0)); + TORCH_CHECK(n_tokens == assignments.size(0)); + + TORCH_CHECK(n_top_k == offsets.size(1)); + TORCH_CHECK(n_top_k == assignments.size(1)); TORCH_CHECK(expert_counts.scalar_type() == torch::kInt32); TORCH_CHECK(scores.scalar_type() == torch::kFloat); @@ -45,11 +51,11 @@ void top_1_gating(torch::Tensor& expert_counts, const RaggedBatchDescriptor* batch_metadata_ptr = reinterpret_cast(batch_metadata.data_ptr()); - DISPATCH_TOP_1_GATING(kFloat, float) - DISPATCH_TOP_1_GATING(kHalf, __half) + DISPATCH_TOP_K_GATING(kFloat, float) + DISPATCH_TOP_K_GATING(kHalf, __half) #ifdef BF16_AVAILABLE - DISPATCH_TOP_1_GATING(kBFloat16, __nv_bfloat16) + DISPATCH_TOP_K_GATING(kBFloat16, __nv_bfloat16) #endif - TORCH_CHECK(false, "Unsupported dtype for logits in top_1_gating"); + TORCH_CHECK(false, "Unsupported dtype for logits in top_k_gating"); } diff --git a/deepspeed/inference/v2/kernels/ragged_ops/top_1_gating/top_1_gating.cuh b/deepspeed/inference/v2/kernels/ragged_ops/top_k_gating/top_k_gating.cuh similarity index 87% rename from deepspeed/inference/v2/kernels/ragged_ops/top_1_gating/top_1_gating.cuh rename to deepspeed/inference/v2/kernels/ragged_ops/top_k_gating/top_k_gating.cuh index c83ad56ff2f1..c525cc5f524e 100644 --- a/deepspeed/inference/v2/kernels/ragged_ops/top_1_gating/top_1_gating.cuh +++ b/deepspeed/inference/v2/kernels/ragged_ops/top_k_gating/top_k_gating.cuh @@ -13,7 +13,7 @@ constexpr int unassigned = -1; } // namespace gating template -void launch_top_1_gating(int32_t* expert_counts, +void launch_top_k_gating(int32_t* expert_counts, float* scores, int32_t* assignments, int32_t* offsets, @@ -21,4 +21,5 @@ void launch_top_1_gating(int32_t* expert_counts, const RaggedBatchDescriptor* batch_metadata, const int32_t n_tokens, const int32_t n_experts, + const int32_t n_top_k, cudaStream_t stream); diff --git a/deepspeed/inference/v2/kernels/ragged_ops/top_1_gating/top_1_gating.h b/deepspeed/inference/v2/kernels/ragged_ops/top_k_gating/top_k_gating.h similarity index 86% rename from deepspeed/inference/v2/kernels/ragged_ops/top_1_gating/top_1_gating.h rename to deepspeed/inference/v2/kernels/ragged_ops/top_k_gating/top_k_gating.h index b431f4cad30c..00840c3c93b5 100644 --- a/deepspeed/inference/v2/kernels/ragged_ops/top_1_gating/top_1_gating.h +++ b/deepspeed/inference/v2/kernels/ragged_ops/top_k_gating/top_k_gating.h @@ -8,12 +8,12 @@ #include #include #include "ragged_dtypes.h" -#include "top_1_gating.cuh" +#include "top_k_gating.cuh" /* Perform softmax plus atomics to get token mapping. */ -void top_1_gating(torch::Tensor& expert_counts, +void top_k_gating(torch::Tensor& expert_counts, torch::Tensor& scores, torch::Tensor& assignments, torch::Tensor& offsets, diff --git a/deepspeed/inference/v2/kernels/ragged_ops/top_1_gating/top_1_gating.py b/deepspeed/inference/v2/kernels/ragged_ops/top_k_gating/top_k_gating.py similarity index 87% rename from deepspeed/inference/v2/kernels/ragged_ops/top_1_gating/top_1_gating.py rename to deepspeed/inference/v2/kernels/ragged_ops/top_k_gating/top_k_gating.py index 1df97c2e9f8d..72ba2b6019bb 100644 --- a/deepspeed/inference/v2/kernels/ragged_ops/top_1_gating/top_1_gating.py +++ b/deepspeed/inference/v2/kernels/ragged_ops/top_k_gating/top_k_gating.py @@ -13,7 +13,7 @@ from deepspeed.ops.op_builder import RaggedOpsBuilder -class RaggedTop1Gating(DSKernelBase): +class RaggedTopKGating(DSKernelBase): """ CUDA implementation of top-1 gating. This will perform a softmax on the logits, and return the scale as well as its idx within that expert's allocation. @@ -26,28 +26,28 @@ def __init__(self, logit_dtype: DtypeEnum) -> None: if not isinstance(logit_dtype, DtypeEnum): logit_dtype = DtypeEnum(logit_dtype) - if logit_dtype not in RaggedTop1Gating.supported_logit_dtypes: + if logit_dtype not in RaggedTopKGating.supported_logit_dtypes: raise RuntimeError(f"Unsupported logit dtype {logit_dtype}") inf_module = RaggedOpsBuilder().load() - self.kernel = inf_module.top_1_gating + self.kernel = inf_module.top_k_gating def __call__(self, expert_counts: torch.Tensor, scores: torch.Tensor, assignments: torch.Tensor, offsets: torch.Tensor, logits: torch.Tensor, batch: RaggedBatchWrapper) -> Tuple[torch.Tensor, torch.Tensor, torch.Tensor, torch.Tensor]: """ - Perform the ragged top_1_gating. + Perform the ragged top_k_gating. Arguments: expert_counts (torch.Tensor): Tensor of 0s of shape [n_experts] to be filled with number of tokens assigned to each expert. This must be filled with 0s else the copy kernel will buffer overflow. In order to minimize the zero-fill cost, it is recommended to write to 0 during the MoE output remapping. - scores (torch.Tensor): Preallocated output of shape [n_tokens] to place expert scaling + scores (torch.Tensor): Preallocated output of shape [n_tokens, n_top_k] to place expert scaling value. - expert_assignment (torch.Tensor): Preallocated output of shape [n_tokens] to place + expert_assignment (torch.Tensor): Preallocated output of shape [n_tokens, n_top_k] to place which expert a token has been assigned to. - expert_offset (torch.Tensor): Preallocated output of shape [n_tokens] to place which + expert_offset (torch.Tensor): Preallocated output of shape [n_tokens, n_top_k] to place which offset within an experts group a token is. logits (torch.Tensor): Raw logits of gating function. batch (RaggedBatchWrapper): Batch information for ragged tensor. diff --git a/deepspeed/inference/v2/kernels/ragged_ops/top_1_gating/top_1_gating.cu b/deepspeed/inference/v2/kernels/ragged_ops/top_k_gating/top_k_gating_cuda.cu similarity index 59% rename from deepspeed/inference/v2/kernels/ragged_ops/top_1_gating/top_1_gating.cu rename to deepspeed/inference/v2/kernels/ragged_ops/top_k_gating/top_k_gating_cuda.cu index 02daee9f692e..58f95c045593 100644 --- a/deepspeed/inference/v2/kernels/ragged_ops/top_1_gating/top_1_gating.cu +++ b/deepspeed/inference/v2/kernels/ragged_ops/top_k_gating/top_k_gating_cuda.cu @@ -6,12 +6,13 @@ #include "conversion_utils.h" #include "memory_access_utils.h" #include "reduction_utils.h" -#include "top_1_gating.cuh" +#include "top_k_gating.cuh" +#include "top_k_utils.h" using ROp = reduce::ROpType; -template -__global__ void top_1_gating_kernel(int32_t* expert_counts, +template +__global__ void top_k_gating_kernel(int32_t* expert_counts, float* scores, int32_t* assignments, int32_t* offsets, @@ -30,8 +31,11 @@ __global__ void top_1_gating_kernel(int32_t* expert_counts, // Padding tokens do not require if (token_idx >= batch_metadata->n_tokens) { if (threadIdx.x == 0) { - offsets[token_idx] = gating::unassigned; - assignments[token_idx] = gating::unassigned; +#pragma unroll + for (int i = 0; i < TOP_K; i++) { + assignments[token_idx * TOP_K + i] = gating::unassigned; + offsets[token_idx * TOP_K + i] = gating::unassigned; + } } return; } @@ -44,34 +48,46 @@ __global__ void top_1_gating_kernel(int32_t* expert_counts, } else { reduce::init(&logit_val); } + float reduce_val = logit_val; + + int32_t local_assigned_experts[TOP_K]; + float local_assigned_logits[TOP_K]; // Training code tends to use ``torch.argmax`` to select the expert, which // which has ties broken by the lower index. Since our fused comparison algorithm // breaks ties by the higher index (since it's the lower 32-bits of the 64-bit // comparison), we invert the expert index to break ties by the lower index. int32_t inverted_expert = n_experts - expert_idx - 1; - // Perform softmax - const reduce::IdxReduceResult res = - reduce::idx_reduce(tb, warp, logit_val, inverted_expert); - // Recover the original expert index - const int32_t assigned_expert = n_experts - res.idx - 1; - const float max_logit = res.val; + // Find the top k logits + for (int i = 0; i < TOP_K; ++i) { + const reduce::IdxReduceResult res = + reduce::idx_reduce(tb, warp, reduce_val, inverted_expert); + local_assigned_experts[i] = n_experts - res.idx - 1; + local_assigned_logits[i] = res.val; + + // Set the max logit to -inf so that it is not selected again + if (threadIdx.x == n_experts - res.idx - 1) { reduce::init(&reduce_val); } + } + + const float max_logit = local_assigned_logits[0]; float softmax_sum = __expf(logit_val - max_logit); reduce::block(tb, warp, softmax_sum); - // Compute the score - const float score = __expf(max_logit - max_logit) / softmax_sum; + for (int i = 0; i < TOP_K; ++i) { + const float softmax = __expf(local_assigned_logits[i] - max_logit) / softmax_sum; - if (threadIdx.x == 0) { - scores[token_idx] = score; - assignments[token_idx] = assigned_expert; - offsets[token_idx] = atomicAdd(expert_counts + assigned_expert, 1); + if (threadIdx.x == 0) { + scores[token_idx * TOP_K + i] = softmax; + assignments[token_idx * TOP_K + i] = local_assigned_experts[i]; + offsets[token_idx * TOP_K + i] = + atomicAdd(expert_counts + local_assigned_experts[i], 1); + } } } template -void launch_top_1_gating(int32_t* expert_counts, +void launch_top_k_gating(int32_t* expert_counts, float* scores, int32_t* assignments, int32_t* offsets, @@ -79,17 +95,20 @@ void launch_top_1_gating(int32_t* expert_counts, const RaggedBatchDescriptor* batch_metadata, const int32_t n_tokens, const int32_t n_experts, + const int32_t n_top_k, cudaStream_t stream) { const dim3 grid(n_tokens); const dim3 block(((n_experts + hw_warp_size - 1) / hw_warp_size) * hw_warp_size); - top_1_gating_kernel<<>>( - expert_counts, scores, assignments, offsets, logits, batch_metadata, n_experts); + TOP_K_SWITCH(n_top_k, [&] { + top_k_gating_kernel<<>>( + expert_counts, scores, assignments, offsets, logits, batch_metadata, n_experts); + }); } -#define INSTANTIATE_TOP_1_KERNEL(T) \ - template void launch_top_1_gating(int32_t * expert_counts, \ +#define INSTANTIATE_top_k_KERNEL(T) \ + template void launch_top_k_gating(int32_t * expert_counts, \ float* scores, \ int32_t* assignments, \ int32_t* offsets, \ @@ -97,10 +116,10 @@ void launch_top_1_gating(int32_t* expert_counts, const RaggedBatchDescriptor* batch_metadata, \ const int32_t n_tokens, \ const int32_t n_experts, \ + const int32_t n_top_k, \ cudaStream_t stream); -INSTANTIATE_TOP_1_KERNEL(float) -INSTANTIATE_TOP_1_KERNEL(__half) +INSTANTIATE_top_k_KERNEL(float) INSTANTIATE_top_k_KERNEL(__half) #ifdef BF16_AVAILABLE -INSTANTIATE_TOP_1_KERNEL(__nv_bfloat16) + INSTANTIATE_top_k_KERNEL(__nv_bfloat16) #endif diff --git a/deepspeed/inference/v2/model_implementations/__init__.py b/deepspeed/inference/v2/model_implementations/__init__.py index dae406271245..3483d9348c55 100644 --- a/deepspeed/inference/v2/model_implementations/__init__.py +++ b/deepspeed/inference/v2/model_implementations/__init__.py @@ -12,3 +12,10 @@ from .llama_v2 import * from .opt import * from .mistral import * +from .mixtral import * +from .falcon import * +from .phi import * +from .phi3 import * +from .qwen import * +from .qwen_v2 import * +from .qwen_v2_moe import * diff --git a/deepspeed/inference/v2/model_implementations/common_parameters/mlp_parameters.py b/deepspeed/inference/v2/model_implementations/common_parameters/mlp_parameters.py index ddb8996e03a3..17def1fa021f 100644 --- a/deepspeed/inference/v2/model_implementations/common_parameters/mlp_parameters.py +++ b/deepspeed/inference/v2/model_implementations/common_parameters/mlp_parameters.py @@ -66,6 +66,24 @@ def finalize(self) -> torch.Tensor: return self.inference_model.transform_mlp_1_param(fused_param) +class FusedGatedMLPParameter(ParameterBase): + """ + Gated MLP projection container. + """ + + params: torch.Tensor + """ + Weight parameter for the fused gating and non-gating weight parameters. + """ + + def finalize(self) -> torch.Tensor: + gate_params = self.params[:self.params.shape[0] // 2] + up_params = self.params[self.params.shape[0] // 2:] + total_neurons = gate_params.shape[0] + up_params.shape[0] + fused_param = torch.cat([gate_params, up_params], dim=-1).reshape(total_neurons, -1) + return self.inference_model.transform_mlp_1_param(fused_param) + + class MLP2Parameter(ParameterBase): """ Second MLP projection weight container. This performs a straight pass-through to the diff --git a/deepspeed/inference/v2/model_implementations/common_parameters/moe_parameters.py b/deepspeed/inference/v2/model_implementations/common_parameters/moe_parameters.py index df5f1427a5cf..8ababf567ba9 100644 --- a/deepspeed/inference/v2/model_implementations/common_parameters/moe_parameters.py +++ b/deepspeed/inference/v2/model_implementations/common_parameters/moe_parameters.py @@ -33,7 +33,7 @@ class UnfusedMoEMLP1Parameter(ParameterBase): and need to be joined into a single group. """ - experts: ParamList("num_experts") # noqa: F821 + experts: ParamList("n_experts") # noqa: F821 def finalize(self) -> torch.Tensor: stacked_experts = torch.stack([p for p in self.experts], dim=0) @@ -46,7 +46,7 @@ class UnfusedMoEMLP2Parameter(ParameterBase): and need to be joined into a single group. """ - experts: ParamList("num_experts") # noqa: F821 + experts: ParamList("n_experts") # noqa: F821 def finalize(self) -> torch.Tensor: stacked_experts = torch.stack([p for p in self.experts], dim=0) @@ -57,13 +57,22 @@ class UnfusedMoEGatedMLPParameter(ParameterBase): """ MoE Parameter for a gated activation function in which the gating matrix is not fused in the same parameter as the non-gating matrix. + + This is a stacked version of the ``GatedMLPParameter``. Please see that class for more + documentation on the layout of the parameters. """ - gating_experts: ParamList("num_experts") # noqa: F821 + gating_experts: ParamList("n_experts") # noqa: F821 - up_experts: ParamList("num_experts") # noqa: F821 + up_experts: ParamList("n_experts") # noqa: F821 def finalize(self) -> torch.Tensor: - fused_params = [torch.cat([gate, weight], dim=0) for gate, weight in zip(self.gating_experts, self.up_experts)] - stacked_params = torch.stack(fused_params, dim=0) - return self.inference_model.transform_moe_mlp_2_param(stacked_params) + transposed_experts = [] + for gate, up in zip(self.gating_experts, self.up_experts): + assert gate.shape[0] == up.shape[0], "Gated MLP parameters must have the same number of neurons." + total_neurons = gate.shape[0] + up.shape[0] + fused_expert = torch.cat([gate, up], dim=-1).reshape(total_neurons, -1) + transposed_experts.append(fused_expert) + + stacked_experts = torch.stack(transposed_experts, dim=0) + return self.inference_model.transform_moe_mlp_1_param(stacked_experts) diff --git a/deepspeed/inference/v2/model_implementations/falcon/__init__.py b/deepspeed/inference/v2/model_implementations/falcon/__init__.py new file mode 100644 index 000000000000..20f37538274c --- /dev/null +++ b/deepspeed/inference/v2/model_implementations/falcon/__init__.py @@ -0,0 +1,6 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from .policy import FalconPolicy diff --git a/deepspeed/inference/v2/model_implementations/falcon/container.py b/deepspeed/inference/v2/model_implementations/falcon/container.py new file mode 100644 index 000000000000..caccfe1ecb00 --- /dev/null +++ b/deepspeed/inference/v2/model_implementations/falcon/container.py @@ -0,0 +1,129 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +# Create a container object to save model-specific tensors using the policy file above. + +from ..common_parameters import * +from ..layer_container_base import LayerContainer +''' + # HF Falcon 7b model looks like this: + +FalconForCausalLM( + (transformer): FalconModel( + (word_embeddings): Embedding(65024, 4544) + (h): ModuleList( + (0-31): 32 x FalconDecoderLayer( + (self_attention): FalconAttention( + (maybe_rotary): FalconRotaryEmbedding() + (query_key_value): FalconLinear(in_features=4544, out_features=4672, bias=False) + (dense): FalconLinear(in_features=4544, out_features=4544, bias=False) + (attention_dropout): Dropout(p=0.0, inplace=False) + ) + (mlp): FalconMLP( + (dense_h_to_4h): FalconLinear(in_features=4544, out_features=18176, bias=False) + (act): GELU(approximate='none') + (dense_4h_to_h): FalconLinear(in_features=18176, out_features=4544, bias=False) + ) + (input_layernorm): LayerNorm((4544,), eps=1e-05, elementwise_affine=True) + ) + ) + (ln_f): LayerNorm((4544,), eps=1e-05, elementwise_affine=True) + ) + (lm_head): Linear(in_features=4544, out_features=65024, bias=False) +) +''' + + +class FalconTransformerContainer(LayerContainer): + """ + Transformer layer container for the Falcon model. + """ + qkv_w: FusedQKVParameter + attn_out_w: AttentionOutputParameter + mlp_1_w: MLP1Parameter + mlp_2_w: MLP2Parameter + ln_attn_gamma: NormParameter + ln_attn_beta: NormParameter + + PARAM_MAPPING = { + "self_attention.query_key_value.weight": "qkv_w.params", + "self_attention.dense.weight": "attn_out_w.params", + "mlp.dense_h_to_4h.weight": "mlp_1_w.params", + "mlp.dense_4h_to_h.weight": "mlp_2_w.params", + "input_layernorm.weight": "ln_attn_gamma.params", + "input_layernorm.bias": "ln_attn_beta.params", + } + + +class FalconNonTransformerContainer(LayerContainer): + """ + Non-Transformer layer container for the Falcon model. + """ + word_emb: EmbeddingParameter + word_unembed: UnembedParameter + final_norm_gamma: NormParameter + final_norm_beta: NormParameter + + PARAM_MAPPING = { + "transformer.word_embeddings.weight": "word_emb.params", + "transformer.ln_f.weight": "final_norm_gamma.params", + "transformer.ln_f.bias": "final_norm_beta.params", + "lm_head.weight": "word_unembed.params", + } + + +''' + # HF Falcon 40b model looks like this: + + FalconForCausalLM( + (transformer): FalconModel( + (word_embeddings): Embedding(65024, 8192) + (h): ModuleList( + (0-59): 60 x FalconDecoderLayer( + (self_attention): FalconAttention( + (maybe_rotary): FalconRotaryEmbedding() + (query_key_value): FalconLinear(in_features=8192, out_features=9216, bias=False) + (dense): FalconLinear(in_features=8192, out_features=8192, bias=False) + (attention_dropout): Dropout(p=0.0, inplace=False) + ) + (mlp): FalconMLP( + (dense_h_to_4h): FalconLinear(in_features=8192, out_features=32768, bias=False) + (act): GELU(approximate='none') + (dense_4h_to_h): FalconLinear(in_features=32768, out_features=8192, bias=False) + ) + (ln_attn): LayerNorm((8192,), eps=1e-05, elementwise_affine=True) + (ln_mlp): LayerNorm((8192,), eps=1e-05, elementwise_affine=True) + ) + ) + (ln_f): LayerNorm((8192,), eps=1e-05, elementwise_affine=True) + ) + (lm_head): Linear(in_features=8192, out_features=65024, bias=False) +) +''' + + +class FalconNewArchTransformerContainer(LayerContainer): + """ + Transformer layer container for the Falcon model. + """ + qkv_w: GQAMegatronQKVParameter + attn_out_w: AttentionOutputParameter + mlp_1_w: MLP1Parameter + mlp_2_w: MLP2Parameter + ln_attn_gamma: NormParameter + ln_attn_beta: NormParameter + ln_mlp_gamma: NormParameter + ln_mlp_beta: NormParameter + + PARAM_MAPPING = { + "self_attention.query_key_value.weight": "qkv_w.params", + "self_attention.dense.weight": "attn_out_w.params", + "mlp.dense_h_to_4h.weight": "mlp_1_w.params", + "mlp.dense_4h_to_h.weight": "mlp_2_w.params", + "ln_attn.weight": "ln_attn_gamma.params", + "ln_attn.bias": "ln_attn_beta.params", + "ln_mlp.weight": "ln_mlp_gamma.params", + "ln_mlp.bias": "ln_mlp_beta.params", + } diff --git a/deepspeed/inference/v2/model_implementations/falcon/model.py b/deepspeed/inference/v2/model_implementations/falcon/model.py new file mode 100644 index 000000000000..b2830c80b562 --- /dev/null +++ b/deepspeed/inference/v2/model_implementations/falcon/model.py @@ -0,0 +1,213 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from typing import Iterable, Optional, Tuple + +import torch + +import deepspeed.comm as dist + +from ...allocator import empty_from +from ...inference_utils import ActivationType, DtypeEnum +from .. import * +from ...modules.configs import * +from ...modules.interfaces import * +from ...ragged import RaggedBatchWrapper + +from .container import FalconNonTransformerContainer, FalconTransformerContainer + + +class FalconInferenceModel(DSTransformerModelBase): + """ + Inference model implementation for ragged batching for Llama-2 models. + """ + + _non_transformer: Optional[FalconNonTransformerContainer] + """ + Embed + unembed container. Specializing the type annotation. + """ + + _transformer: Optional[Iterable[FalconTransformerContainer]] + """ + Per-layer transformer container. Specializing the type annotation. + """ + """ + Properties inherited from `DSInferenceModelBase` + """ + + @property + def max_sequence_length(self) -> int: + return self._config.max_seq_length + + """ + Properties inherited from `DSTransformerModelBase` + """ + + @property + def num_layers(self) -> int: + return self._config.num_hidden_layers + + @property + def model_dim(self) -> int: + return self._config.hidden_size + + @property + def vocab_size(self) -> int: + return self._config.vocab_size + + @property + def head_size(self) -> int: + return self.model_dim // self.n_heads + + @property + def n_heads(self) -> int: + return self._config.num_attention_heads + + @property + def intermediate_dim(self) -> int: + return 4 * self._config.hidden_size + + @property + def n_heads_kv(self) -> int: + return self._config.num_kv_heads if (self._config.new_decoder_architecture + or not self._config.multi_query) else 1 + + @property + def activation_dtype(self) -> DtypeEnum: + if self._config.torch_dtype == torch.float16: + return DtypeEnum.fp16 + elif self._config.torch_dtype == torch.bfloat16: + return DtypeEnum.bf16 + else: + raise NotImplementedError("Only fp16 and bf16 are supported") + + @property + def mlp_activation_fn(self) -> ActivationType: + return ActivationType.GELU + + @property + def norm_type(self) -> NormTypeEnum: + return NormTypeEnum.LayerNorm + + @property + def positional_embedding_type(self) -> PositionalEmbeddingType: + return PositionalEmbeddingType.rotate_half + + @property + def positional_embedding_config(self) -> RotateHalfConfig: + """ + The positional embedding configuration for the model. + """ + return RotateHalfConfig() + + """ + Forward implementations + """ + + def _forward_embed(self, ragged_batch: RaggedBatchWrapper) -> torch.Tensor: + """ + Performs the embedding lookup prior to running the transformer of the model. + + Arguments: + ragged_batch (RaggedBatchWrapper): The batch to embed. + + Returns: + torch.Tensor: The embedded batch. + """ + embed = self.embed(ragged_batch, self._non_transformer.word_emb) + + if embed.shape[-1] != self.model_dim: + raise ValueError(f"Embedding output shape {embed.shape} does not match model_dim {self.model_dim}") + + return embed + + def _forward_transformer_layer(self, layer_idx: int, residual: torch.Tensor, hidden_states: torch.Tensor, + ragged_batch_info: RaggedBatchWrapper) -> Tuple[torch.Tensor, torch.Tensor]: + """ + Executes one (slightly offset) layer of the transformer. This implementation does a peak-ahead + optimization to fuse the layer norm of the next layer into the current layer. + + Arguments: + layer_idx (int): The index of the layer to execute. + residual (torch.Tensor): The residual tensor from the previous layer. + hidden_states (torch.Tensor): The hidden states from the previous layer. This is the + hidden states after pre normalization. + ragged_batch_info (RaggedBatchWrapper): The batch metadata. + """ + assert self.config.parallel_attn, "Only parallel attention implementation is supported" + + cur_params = self._transformer[layer_idx] + kv_cache = self.state_manager.get_cache(layer_idx) + + attn_ln_out = hidden_states + attn_hidden_state = self.qkv(attn_ln_out, cur_params.qkv_w, b=None) + attn_hidden_state = self.attn(attn_hidden_state, kv_cache, ragged_batch_info) + attention_output = self.attn_out(attn_hidden_state, cur_params.attn_out_w, b=None) + + if self.config.new_decoder_architecture: + residual, mlp_ln_out = self.norm(residual, + None, + gamma=cur_params.ln_mlp_gamma, + beta=cur_params.ln_mlp_beta) + else: + mlp_ln_out = hidden_states + + mlp_hidden_state = self.mlp_1(mlp_ln_out, cur_params.mlp_1_w, b=None) + mlp_output = self.mlp_2(mlp_hidden_state, cur_params.mlp_2_w, b=None) + + mlp_output.add_(attention_output) + + if self.tp_size > 1: + dist.all_reduce(mlp_output, group=self._base_mp_group) + + if layer_idx != self.num_layers - 1: + next_params = self._transformer[layer_idx + 1] + residual, mlp_output = self.norm(residual, + mlp_output, + next_params.ln_attn_gamma, + beta=next_params.ln_attn_beta) + else: + # On last layer, we just need to perform the residual add. Adding into the residual + # here is safe. + residual.add_(mlp_output) + + return residual, mlp_output + + def _forward_unembed(self, hidden_states: torch.Tensor, ragged_batch_info: RaggedBatchWrapper) -> torch.Tensor: + """ + Performs unembedding of the hidden states to logits. This will only sample the final + token of each sequence. + """ + logits = self.unembed(hidden_states, + self._non_transformer.word_unembed, + ragged_batch_info, + gamma=self._non_transformer.final_norm_gamma, + beta=self._non_transformer.final_norm_beta) + + if self.tp_size > 1: + comm_buffer = empty_from(self._comm_logits, (self.tp_size, logits.shape[0], logits.shape[1])) + full_logits = empty_from(self._return_logits, (logits.shape[0], self.vocab_size)) + + dist.all_gather_into_tensor(comm_buffer, logits, group=self._base_mp_group) + + full_logits.copy_(comm_buffer.permute(1, 0, 2).reshape(logits.shape[0], self.vocab_size)) + + return full_logits + else: + return logits + + def forward(self, wrapped_batch: RaggedBatchWrapper) -> torch.Tensor: + residual = self._forward_embed(wrapped_batch) + + residual, hidden_states = self.norm(residual, + None, + gamma=self._transformer[0].ln_attn_gamma, + beta=self._transformer[0].ln_attn_beta) + + for layer_idx in range(self.num_layers): + residual, hidden_states = self._forward_transformer_layer(layer_idx, residual, hidden_states, + wrapped_batch) + + return self._forward_unembed(residual, wrapped_batch) diff --git a/deepspeed/inference/v2/model_implementations/falcon/policy.py b/deepspeed/inference/v2/model_implementations/falcon/policy.py new file mode 100644 index 000000000000..c6612090a0df --- /dev/null +++ b/deepspeed/inference/v2/model_implementations/falcon/policy.py @@ -0,0 +1,33 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from typing import Any + +from ...config_v2 import RaggedInferenceEngineConfig +from ..inference_policy_base import ContainerMap, InferenceV2Policy +from .container import FalconNonTransformerContainer, FalconTransformerContainer +from .container import FalconNewArchTransformerContainer +from .model import FalconInferenceModel + + +class FalconPolicy(InferenceV2Policy): + + def instantiate_model(self, engine_config: RaggedInferenceEngineConfig, mp_group: Any) -> FalconInferenceModel: + return FalconInferenceModel(config=self._model_config, engine_config=engine_config, base_mp_group=mp_group) + + def build_container_map(self) -> ContainerMap: + map = ContainerMap() + + trans_container_cls = FalconNewArchTransformerContainer if self._model_config.new_decoder_architecture else FalconTransformerContainer + transformer_containers = [trans_container_cls(self.model) for _ in range(self.model.num_layers)] + + map.set_transformer_params(['transformer.h'], transformer_containers) + + map.set_non_transformer_params(FalconNonTransformerContainer(self.model)) + + map.set_unmapped_params( + [f'model.layers.{i}.self_attn.rotary_emb.inv_freq' for i in range(self.model.num_layers)]) + + return map diff --git a/deepspeed/inference/v2/model_implementations/flat_model_helpers.py b/deepspeed/inference/v2/model_implementations/flat_model_helpers.py index f9da7ac5d23e..c5e02adaffc4 100644 --- a/deepspeed/inference/v2/model_implementations/flat_model_helpers.py +++ b/deepspeed/inference/v2/model_implementations/flat_model_helpers.py @@ -27,9 +27,9 @@ class TensorMetadata(DeepSpeedConfigModel): """ A class to represent a tensor specification. """ - dtype: Optional[str] - shape: Optional[Tuple[int, ...]] - strides: Optional[Tuple[int, ...]] + dtype: Optional[str] = None + shape: Optional[Tuple[int, ...]] = None + strides: Optional[Tuple[int, ...]] = None offset: int @@ -37,7 +37,7 @@ class ParameterMetadata(DeepSpeedConfigModel): """ A class to represent a parameter specification. """ - core_param: TensorMetadata = None + core_param: Optional[TensorMetadata] = None aux_params: Dict[str, TensorMetadata] = {} @@ -164,7 +164,7 @@ def process_layer(layer_container: LayerContainer, l_name: str, cur_offset: int) strides=tensor.stride(), offset=cur_offset) - cur_offset += pad_to_aligned_offset(elem_size(param.dtype) * param.numel()) + cur_offset += pad_to_aligned_offset(elem_size(tensor.dtype) * tensor.numel()) layer_metadata.params[p_name] = param_metadata diff --git a/deepspeed/inference/v2/model_implementations/inference_model_base.py b/deepspeed/inference/v2/model_implementations/inference_model_base.py index a7ff699e9058..894a4137407e 100644 --- a/deepspeed/inference/v2/model_implementations/inference_model_base.py +++ b/deepspeed/inference/v2/model_implementations/inference_model_base.py @@ -199,6 +199,10 @@ def get_kv_requirements(self, sequence: DSSequenceDescriptor, max_new_tokens: in """ raise NotImplementedError() + @abstractmethod + def get_remaining_block_capacity(self, sequence: DSSequenceDescriptor) -> int: + raise NotImplementedError() + @abstractmethod def maybe_allocate_kv(self, sequence: DSSequenceDescriptor, n_new_tokens: int) -> None: """ diff --git a/deepspeed/inference/v2/model_implementations/inference_policy_base.py b/deepspeed/inference/v2/model_implementations/inference_policy_base.py index d5a326c03599..2f4266a8cb88 100644 --- a/deepspeed/inference/v2/model_implementations/inference_policy_base.py +++ b/deepspeed/inference/v2/model_implementations/inference_policy_base.py @@ -205,7 +205,7 @@ def populate_model_parameters(self) -> None: buffer_path = make_param_filename(self._inf_checkpoint_path, self.model.tp_rank, self.model.tp_size) metadata_path = make_metadata_filename(self._inf_checkpoint_path, self.model.tp_rank, self.model.tp_size) - buffer = torch.load(buffer_path) + buffer = torch.load(buffer_path, weights_only=False) metadata = json.load(open(metadata_path, "r")) metadata = ModelMetadata.parse_raw(metadata) diff --git a/deepspeed/inference/v2/model_implementations/inference_transformer_base.py b/deepspeed/inference/v2/model_implementations/inference_transformer_base.py index 8f6a0b7fa688..fae67dc8fc2a 100644 --- a/deepspeed/inference/v2/model_implementations/inference_transformer_base.py +++ b/deepspeed/inference/v2/model_implementations/inference_transformer_base.py @@ -22,6 +22,7 @@ DSUnembedConfig, NormTypeEnum, PositionalEmbeddingType, + RotateHalfConfig, ) from ..modules import heuristics from ..ragged import ( @@ -152,6 +153,14 @@ def norm_type(self) -> NormTypeEnum: """ ... + @property + @abstractmethod + def positional_embedding_config(self) -> Optional[RotateHalfConfig]: + """ + The positional embedding configuration for the model. + """ + ... + """ Derived helpers """ @@ -319,12 +328,13 @@ def make_attn_layer(self) -> None: scale_factor=softmax_scale, input_dtype=self.activation_dtype, output_dtype=self.activation_dtype, - positional_embedding_type=self.positional_embedding_type) + positional_embedding_type=self.positional_embedding_type, + positional_embedding_config=self.positional_embedding_config) self.attn = heuristics.instantiate_attention(attn_config, self._engine_config) def get_kv_requirements(self, sequence: DSSequenceDescriptor, max_new_tokens: int, - max_new_blocks: int) -> Tuple[int, torch.Tensor]: + max_new_blocks: int) -> Tuple[int, int]: """ See ``DSInferenceModelBase.get_kv_requirements`` for documentation. @@ -341,7 +351,10 @@ def get_kv_requirements(self, sequence: DSSequenceDescriptor, max_new_tokens: in token_capacity = (max_new_blocks + sequence.cur_allocated_blocks) * self.attn.kv_block_size - sequence.seen_tokens - return token_capacity, torch.tensor([max_new_blocks]) + return token_capacity, max_new_blocks + + def get_remaining_block_capacity(self, sequence: DSSequenceDescriptor) -> int: + return sequence.seen_tokens % self.attn.kv_block_size def maybe_allocate_kv(self, sequence: DSSequenceDescriptor, n_new_tokens: int) -> None: """ @@ -350,7 +363,8 @@ def maybe_allocate_kv(self, sequence: DSSequenceDescriptor, n_new_tokens: int) - This method assumes an autoregressive dense attention pattern. Override this method if this does not match the model's attention pattern. """ - _, n_needed_blocks = self.get_kv_requirements(sequence, n_new_tokens, self.state_manager.free_blocks) + free_block = self.state_manager.free_blocks[0] + _, n_needed_blocks = self.get_kv_requirements(sequence, n_new_tokens, free_block) if n_needed_blocks > 0: new_blocks = self.state_manager.allocate_blocks(n_needed_blocks) @@ -521,12 +535,26 @@ def transform_norm_param(self, param: torch.Tensor) -> InferenceParameter: class DSMoETransformerModelBase(DSTransformerModelBase): @property - def num_experts(self) -> int: + def n_experts(self) -> int: """ Return the number of experts in the model. """ raise NotImplementedError("Attempted to access an unimplemented number of experts") + @property + def n_top_k(self) -> int: + """ + Number of experts per token. + """ + raise NotImplementedError("Attempted to access an unimplemented number of experts per token") + + @property + def normalize_expert_scores(self) -> bool: + """ + Whether to normalize expert scores. If true, sum(expert_scores) = 1. + """ + raise NotImplementedError("Attempted to access an unimplemented normalization flag") + def make_moe_layer(self) -> None: """ Instantiates the MoE layer for the model. This sets the `self.moe` attribute. @@ -538,9 +566,11 @@ def make_moe_layer(self) -> None: model_dim=self.model_dim, intermediate_features=sharded_dim, activation=self.mlp_activation_fn, - n_experts=self.num_experts, + n_experts=self.n_experts, + top_k=self.n_top_k, input_dtype=self.activation_dtype, output_dtype=self.activation_dtype, + normalize_scores=self.normalize_expert_scores, ) self.moe = heuristics.instantiate_moe(moe_config, self._engine_config) diff --git a/deepspeed/inference/v2/model_implementations/layer_container_base.py b/deepspeed/inference/v2/model_implementations/layer_container_base.py index f26c87556665..feb65b4a5f5d 100644 --- a/deepspeed/inference/v2/model_implementations/layer_container_base.py +++ b/deepspeed/inference/v2/model_implementations/layer_container_base.py @@ -14,7 +14,7 @@ # Currently have dependency loops for the type hints. InferenceModel = Type["InferenceModel"] -LayerContainer = Type["LayerContainer"] +LayerContainer = Type["LayerContainer"] # noqa: F811 MAPPING_KEY = "PARAM_MAPPING" PLIST_HELPERS = "_ds_plist_strip_vals" @@ -161,7 +161,7 @@ def __call__(cls, *args, **kwargs): return instance -class LayerContainer(metaclass=LayerMetaclass): +class LayerContainer(metaclass=LayerMetaclass): # noqa: F811 """ Abstract base class for containing model parameters. diff --git a/deepspeed/inference/v2/model_implementations/llama_v2/__init__.py b/deepspeed/inference/v2/model_implementations/llama_v2/__init__.py index 5d2b5ae562ee..79605a76a4c2 100644 --- a/deepspeed/inference/v2/model_implementations/llama_v2/__init__.py +++ b/deepspeed/inference/v2/model_implementations/llama_v2/__init__.py @@ -3,4 +3,4 @@ # DeepSpeed Team -from .llama_v2_policy import Llama2Policy +from .policy import Llama2Policy diff --git a/deepspeed/inference/v2/model_implementations/llama_v2/llama_v2_containers.py b/deepspeed/inference/v2/model_implementations/llama_v2/container.py similarity index 95% rename from deepspeed/inference/v2/model_implementations/llama_v2/llama_v2_containers.py rename to deepspeed/inference/v2/model_implementations/llama_v2/container.py index e9c473ce512b..9de9bdb34574 100644 --- a/deepspeed/inference/v2/model_implementations/llama_v2/llama_v2_containers.py +++ b/deepspeed/inference/v2/model_implementations/llama_v2/container.py @@ -5,8 +5,8 @@ # Create a container object to save model-specific tensors using the policy file above. -from ...model_implementations.common_parameters import * -from ...model_implementations.layer_container_base import LayerContainer +from ..common_parameters import * +from ..layer_container_base import LayerContainer ''' # HF Llama model looks like this: diff --git a/deepspeed/inference/v2/model_implementations/llama_v2/llama_v2_model.py b/deepspeed/inference/v2/model_implementations/llama_v2/model.py similarity index 92% rename from deepspeed/inference/v2/model_implementations/llama_v2/llama_v2_model.py rename to deepspeed/inference/v2/model_implementations/llama_v2/model.py index 9b628f77de01..a0c81f4d749e 100644 --- a/deepspeed/inference/v2/model_implementations/llama_v2/llama_v2_model.py +++ b/deepspeed/inference/v2/model_implementations/llama_v2/model.py @@ -11,12 +11,12 @@ from ...allocator import empty_from from ...inference_utils import ActivationType, DtypeEnum -from ...model_implementations import * +from .. import * from ...modules.configs import * from ...modules.interfaces import * from ...ragged import RaggedBatchWrapper -from .llama_v2_containers import Llama2NonTransformerContainer, Llama2TransformerContainer +from .container import Llama2NonTransformerContainer, Llama2TransformerContainer class Llama2InferenceModel(DSTransformerModelBase): @@ -105,6 +105,10 @@ def norm_type(self) -> NormTypeEnum: def positional_embedding_type(self) -> PositionalEmbeddingType: return PositionalEmbeddingType.rotate_half + @property + def positional_embedding_config(self) -> Optional[RotateHalfConfig]: + return RotateHalfConfig(theta_base=self._config.rope_theta) + """ Forward implementations """ @@ -145,8 +149,7 @@ def _forward_transformer_layer(self, layer_idx: int, residual: torch.Tensor, hid kv_cache = self.state_manager.get_cache(layer_idx) hidden_states = self.qkv(hidden_states, cur_params.qkv_w, b=None) - hidden_states = self.attn(hidden_states, kv_cache, - ragged_batch_info) #, inv_freqs=None) #cur_params.rotary_emb) + hidden_states = self.attn(hidden_states, kv_cache, ragged_batch_info) hidden_states = self.attn_out(hidden_states, cur_params.attn_out_w, b=None) if self.tp_size > 1: @@ -176,8 +179,10 @@ def _forward_unembed(self, hidden_states: torch.Tensor, ragged_batch_info: Ragge Performs unembedding of the hidden states to logits. This will only sample the final token of each sequence. """ - logits = self.unembed(hidden_states, self._non_transformer.word_unembed, ragged_batch_info, - self._non_transformer.final_norm) + logits = self.unembed(hidden_states, + self._non_transformer.word_unembed, + ragged_batch_info, + gamma=self._non_transformer.final_norm) if self.tp_size > 1: comm_buffer = empty_from(self._comm_logits, (self.tp_size, logits.shape[0], logits.shape[1])) diff --git a/deepspeed/inference/v2/model_implementations/llama_v2/llama_v2_policy.py b/deepspeed/inference/v2/model_implementations/llama_v2/policy.py similarity index 76% rename from deepspeed/inference/v2/model_implementations/llama_v2/llama_v2_policy.py rename to deepspeed/inference/v2/model_implementations/llama_v2/policy.py index c8253be79fad..bb13ab6d5bf4 100644 --- a/deepspeed/inference/v2/model_implementations/llama_v2/llama_v2_policy.py +++ b/deepspeed/inference/v2/model_implementations/llama_v2/policy.py @@ -6,9 +6,9 @@ from typing import Any from ...config_v2 import RaggedInferenceEngineConfig -from ...model_implementations.inference_policy_base import ContainerMap, InferenceV2Policy -from ...model_implementations.llama_v2.llama_v2_containers import Llama2NonTransformerContainer, Llama2TransformerContainer -from ...model_implementations.llama_v2.llama_v2_model import Llama2InferenceModel +from ..inference_policy_base import ContainerMap, InferenceV2Policy +from .container import Llama2NonTransformerContainer, Llama2TransformerContainer +from .model import Llama2InferenceModel class Llama2Policy(InferenceV2Policy): diff --git a/deepspeed/inference/v2/model_implementations/mistral/model.py b/deepspeed/inference/v2/model_implementations/mistral/model.py index d9b06b91e308..318d362f1a64 100644 --- a/deepspeed/inference/v2/model_implementations/mistral/model.py +++ b/deepspeed/inference/v2/model_implementations/mistral/model.py @@ -104,6 +104,10 @@ def norm_type(self) -> NormTypeEnum: def positional_embedding_type(self) -> PositionalEmbeddingType: return PositionalEmbeddingType.rotate_half + @property + def positional_embedding_config(self) -> Optional[RotateHalfConfig]: + return RotateHalfConfig(theta_base=self._config.rope_theta) + """ Forward implementations """ @@ -144,8 +148,7 @@ def _forward_transformer(self, layer_idx: int, residual: torch.Tensor, hidden_st kv_cache = self.state_manager.get_cache(layer_idx) hidden_states = self.qkv(hidden_states, cur_params.qkv_w, b=None) - hidden_states = self.attn(hidden_states, kv_cache, - ragged_batch_info) #, inv_freqs=None) #cur_params.rotary_emb) + hidden_states = self.attn(hidden_states, kv_cache, ragged_batch_info) hidden_states = self.attn_out(hidden_states, cur_params.attn_out_w, b=None) if self.tp_size > 1: @@ -175,8 +178,10 @@ def _forward_unembed(self, hidden_states: torch.Tensor, ragged_batch_info: Ragge Performs unembedding of the hidden states to logits. This will only sample the final token of each sequence. """ - logits = self.unembed(hidden_states, self._non_transformer.word_unembed, ragged_batch_info, - self._non_transformer.final_norm) + logits = self.unembed(hidden_states, + self._non_transformer.word_unembed, + ragged_batch_info, + gamma=self._non_transformer.final_norm) if self.tp_size > 1: comm_buffer = empty_from(self._comm_logits, (self.tp_size, logits.shape[0], logits.shape[1])) diff --git a/deepspeed/inference/v2/model_implementations/mistral/policy.py b/deepspeed/inference/v2/model_implementations/mistral/policy.py index f6d0a0fe5987..b67ec311c952 100644 --- a/deepspeed/inference/v2/model_implementations/mistral/policy.py +++ b/deepspeed/inference/v2/model_implementations/mistral/policy.py @@ -5,10 +5,10 @@ from typing import Any -from deepspeed.inference.v2.config_v2 import RaggedInferenceEngineConfig -from deepspeed.inference.v2.model_implementations.inference_policy_base import ContainerMap, InferenceV2Policy -from deepspeed.inference.v2.model_implementations.mistral.container import MistralNonTransformerContainer, MistralTransformerContainer -from deepspeed.inference.v2.model_implementations.mistral.model import MistralInferenceModel +from ...config_v2 import RaggedInferenceEngineConfig +from ..inference_policy_base import ContainerMap, InferenceV2Policy +from .container import MistralNonTransformerContainer, MistralTransformerContainer +from .model import MistralInferenceModel class MistralPolicy(InferenceV2Policy): diff --git a/deepspeed/inference/v2/model_implementations/mixtral/__init__.py b/deepspeed/inference/v2/model_implementations/mixtral/__init__.py new file mode 100644 index 000000000000..2cb1aa889291 --- /dev/null +++ b/deepspeed/inference/v2/model_implementations/mixtral/__init__.py @@ -0,0 +1,6 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from .policy import MixtralPolicy diff --git a/deepspeed/inference/v2/model_implementations/mixtral/container.py b/deepspeed/inference/v2/model_implementations/mixtral/container.py new file mode 100644 index 000000000000..6ec4a0552b8f --- /dev/null +++ b/deepspeed/inference/v2/model_implementations/mixtral/container.py @@ -0,0 +1,46 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +# Create a container object to save model-specific tensors using the policy file above. + +from deepspeed.inference.v2.model_implementations.common_parameters import * +from deepspeed.inference.v2.model_implementations.layer_container_base import LayerContainer + + +class MixtralTransformerContainer(LayerContainer): + + qkv_w: UnfusedQKVParameter + attn_out_w: AttentionOutputParameter + moe_gate: MoEGatingWeightParameter + moe_mlp_1: UnfusedMoEGatedMLPParameter + moe_mlp_2: UnfusedMoEMLP2Parameter + attn_norm_gamma: NormParameter + mlp_norm_gamma: NormParameter + + PARAM_MAPPING = { + "input_layernorm.weight": "attn_norm_gamma.params", + "post_attention_layernorm.weight": "mlp_norm_gamma.params", + "self_attn.q_proj.weight": "qkv_w.q_params", + "self_attn.k_proj.weight": "qkv_w.k_params", + "self_attn.v_proj.weight": "qkv_w.v_params", + "self_attn.o_proj.weight": "attn_out_w.params", + "block_sparse_moe.gate.weight": "moe_gate.params", + "block_sparse_moe.experts.*.w1.weight": "moe_mlp_1.gating_experts", + "block_sparse_moe.experts.*.w3.weight": "moe_mlp_1.up_experts", + "block_sparse_moe.experts.*.w2.weight": "moe_mlp_2.experts", + } + + +class MixtralNonTransformerContainer(LayerContainer): + + word_emb: EmbeddingParameter + word_unembed: UnembedParameter + final_norm: NormParameter + + PARAM_MAPPING = { + "model.embed_tokens.weight": "word_emb.params", + "lm_head.weight": "word_unembed.params", + "model.norm.weight": "final_norm.params", + } diff --git a/deepspeed/inference/v2/model_implementations/mixtral/model.py b/deepspeed/inference/v2/model_implementations/mixtral/model.py new file mode 100644 index 000000000000..878cd8e31cec --- /dev/null +++ b/deepspeed/inference/v2/model_implementations/mixtral/model.py @@ -0,0 +1,261 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from typing import Iterable, Optional, Tuple + +import torch + +import deepspeed.comm as dist + +from ...allocator import empty_from +from ...config_v2 import RaggedInferenceEngineConfig +from ...inference_utils import ActivationType, DtypeEnum +from ...model_implementations import * +from ...modules.configs import * +from ...modules.interfaces import * +from ...ragged import RaggedBatchWrapper +from ..inference_model_base import ( + DSModelImplementationConfig, + MPType, +) + +from .container import MixtralNonTransformerContainer, MixtralTransformerContainer + + +class MixtralInferenceModel(DSMoETransformerModelBase): + """ + Inference model implementation for Mixtral models. + """ + + _non_transformer: Optional[MixtralNonTransformerContainer] + """ + Embed + unembed container. Specializing the type annotation. + """ + + _transformer: Optional[Iterable[MixtralTransformerContainer]] + """ + Per-layer transformer container. Specializing the type annotation. + """ + """ + Properties ineherited from `DSInferenceModelBase` + """ + + @property + def max_sequence_length(self) -> int: + return self._config.max_position_embeddings + + """ + Properties ineherited from `DSTransformerModelBase` + """ + + @property + def num_layers(self) -> int: + return self._config.num_hidden_layers + + @property + def model_dim(self) -> int: + return self._config.hidden_size + + @property + def vocab_size(self) -> int: + return self._config.vocab_size + + @property + def head_size(self) -> int: + return self.model_dim // self.n_heads + + @property + def n_heads(self) -> int: + return self._config.num_attention_heads + + @property + def intermediate_dim(self) -> int: + return self._config.intermediate_size + + @property + def n_heads_kv(self) -> int: + return self._config.num_key_value_heads + + @property + def activation_dtype(self) -> DtypeEnum: + if self._config.torch_dtype == torch.float16: + return DtypeEnum.fp16 + elif self._config.torch_dtype == torch.bfloat16: + return DtypeEnum.bf16 + else: + raise NotImplementedError("Only fp16 and bf16 are supported") + + @property + def mlp_activation_fn(self) -> ActivationType: + activation = self._config.hidden_act.lower() + if activation == "gelu": + return ActivationType.GEGLU + elif activation == "relu": + return ActivationType.ReGLU + elif activation == "gegelu": + return ActivationType.GEGLU + elif activation == "silu": + return ActivationType.SiGLU + else: + raise NotImplementedError(f"Activation {activation} not supported") + + @property + def norm_type(self) -> NormTypeEnum: + return NormTypeEnum.RMSNorm + + @property + def positional_embedding_type(self) -> PositionalEmbeddingType: + return PositionalEmbeddingType.rotate_half + + @property + def positional_embedding_config(self) -> Optional[RotateHalfConfig]: + """ + The positional embedding configuration for the model. + """ + return RotateHalfConfig(theta_base=self._config.rope_theta) + + """ + Inherited from `DSMoETransformerModelBase` + """ + + @property + def n_experts(self) -> int: + return self._config.num_local_experts + + @property + def n_top_k(self) -> int: + return self._config.num_experts_per_tok + + @property + def normalize_expert_scores(self) -> bool: + return True + + """ + Model implementation + """ + + def __init__(self, config: DSModelImplementationConfig, engine_config: RaggedInferenceEngineConfig, + base_mp_group: MPType) -> None: + """ + Base implementation for initialization. By default, this will initialize + the traditional components of a transformer model: + - Embedding + - QKV projection + - Self attention + - Attention output projection + - Feed forward network + - Normalization + - Unembedding + + Arguments: + config (DSModelImplementationConfig): Model-specific configuration. No assumptions + should be made about this config that are not closely tied to the specific + model implementation. + engine_config (RaggedInferenceEngineConfig): Engine configuration. + base_mp_group (MPType): Base communication group for Tensor-parallel inference. + """ + super().__init__(config, engine_config, base_mp_group) + + self.make_norm_layer() + self.make_qkv_layer() + self.make_attn_layer() + self.make_attn_out_layer() + self.make_moe_layer() + self.make_embedding_layer() + self.make_unembedding_layer() + self._kv_cache_config = None + + def _forward_embed(self, ragged_batch: RaggedBatchWrapper) -> torch.Tensor: + """ + Performs the embedding lookup prior to running the transformer of the model. + + Arguments: + ragged_batch (RaggedBatchWrapper): The batch to embed. + + Returns: + torch.Tensor: The embedded batch. + """ + embed = self.embed(ragged_batch, self._non_transformer.word_emb) + + if embed.shape[-1] != self.model_dim: + raise ValueError(f"Embedding output shape {embed.shape} does not match model_dim {self.model_dim}") + + return embed + + def _forward_transformer(self, layer_idx: int, residual: torch.Tensor, hidden_states: torch.Tensor, + ragged_batch_info: RaggedBatchWrapper) -> Tuple[torch.Tensor, torch.Tensor]: + """ + Executes one (slightly offset) layer of the transformer. This implementation does a peak-ahead + optimization to fuse the layer norm of the next layer into the current layer. + + Arguments: + layer_idx (int): The index of the layer to execute. + residual (torch.Tensor): The residual tensor from the previous layer. + hidden_states (torch.Tensor): The hidden states from the previous layer. This is the + hidden states after pre normalization. + ragged_batch_info (RaggedBatchWrapper): The batch metadata. + """ + # TODO(cmikeh2): Distribute ragged_batch_info to all modules + + cur_params = self._transformer[layer_idx] + kv_cache = self.state_manager.get_cache(layer_idx) + + hidden_states = self.qkv(hidden_states, cur_params.qkv_w) + hidden_states = self.attn(hidden_states, kv_cache, ragged_batch_info) + hidden_states = self.attn_out(hidden_states, cur_params.attn_out_w) + + if self.tp_size > 1: + dist.all_reduce(hidden_states, group=self._base_mp_group) + + residual, hidden_states = self.norm(residual, hidden_states, cur_params.mlp_norm_gamma) + + hidden_states = self.moe(hidden_states, ragged_batch_info, cur_params.moe_gate, cur_params.moe_mlp_1, + cur_params.moe_mlp_2) + + if self.tp_size > 1: + dist.all_reduce(hidden_states, group=self._base_mp_group) + + if layer_idx != self.num_layers - 1: + next_params = self._transformer[layer_idx + 1] + residual, hidden_states = self.norm(residual, hidden_states, next_params.attn_norm_gamma) + else: + # On last layer, we just need to perform the residual add. Adding into the residual + # here is safe. + residual.add_(hidden_states) + + return residual, hidden_states + + def _forward_unembed(self, hidden_states: torch.Tensor, ragged_batch_info: RaggedBatchWrapper) -> torch.Tensor: + """ + Performs unembedding of the hidden states to logits. This will only sample the final + token of each sequence. + """ + logits = self.unembed(hidden_states, + self._non_transformer.word_unembed, + ragged_batch_info, + gamma=self._non_transformer.final_norm) + + if self.tp_size > 1: + comm_buffer = empty_from(self._comm_logits, (self.tp_size, logits.shape[0], logits.shape[1])) + full_logits = empty_from(self._return_logits, (logits.shape[0], self.vocab_size)) + + dist.all_gather_into_tensor(comm_buffer, logits, group=self._base_mp_group) + + full_logits.copy_(comm_buffer.permute(1, 0, 2).reshape(logits.shape[0], self.vocab_size)) + + return full_logits + else: + return logits + + def forward(self, wrapped_batch: RaggedBatchWrapper) -> torch.Tensor: + + residual = self._forward_embed(wrapped_batch) + + residual, hidden_states = self.norm(residual, None, self._transformer[0].attn_norm_gamma, beta=None) + + for layer_idx in range(self.num_layers): + residual, hidden_states = self._forward_transformer(layer_idx, residual, hidden_states, wrapped_batch) + + return self._forward_unembed(residual, wrapped_batch) diff --git a/deepspeed/inference/v2/model_implementations/mixtral/policy.py b/deepspeed/inference/v2/model_implementations/mixtral/policy.py new file mode 100644 index 000000000000..2f0087919720 --- /dev/null +++ b/deepspeed/inference/v2/model_implementations/mixtral/policy.py @@ -0,0 +1,31 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from typing import Any + +from ...config_v2 import RaggedInferenceEngineConfig +from ..inference_policy_base import ContainerMap, InferenceV2Policy +from .container import MixtralTransformerContainer, MixtralNonTransformerContainer +from .model import MixtralInferenceModel + + +class MixtralPolicy(InferenceV2Policy): + + def instantiate_model(self, engine_config: RaggedInferenceEngineConfig, mp_group: Any) -> MixtralInferenceModel: + return MixtralInferenceModel(config=self._model_config, engine_config=engine_config, base_mp_group=mp_group) + + def build_container_map(self) -> ContainerMap: + + map = ContainerMap() + + transformer_containers = [MixtralTransformerContainer(self.model) for _ in range(self.model.num_layers)] + + map.set_transformer_params(['model.layers'], transformer_containers) + + map.set_non_transformer_params(MixtralNonTransformerContainer(self.model)) + + map.set_unmapped_params([]) + + return map diff --git a/deepspeed/inference/v2/model_implementations/opt/container.py b/deepspeed/inference/v2/model_implementations/opt/container.py index 5ddbbde3f141..e97599ef8e50 100644 --- a/deepspeed/inference/v2/model_implementations/opt/container.py +++ b/deepspeed/inference/v2/model_implementations/opt/container.py @@ -5,8 +5,8 @@ # Create a container object to save model-specific tensors using the policy file above. -from ...model_implementations.common_parameters import * -from ...model_implementations.layer_container_base import LayerContainer +from ..common_parameters import * +from ..layer_container_base import LayerContainer ''' # HF OPT model looks like this: diff --git a/deepspeed/inference/v2/model_implementations/opt/model.py b/deepspeed/inference/v2/model_implementations/opt/model.py index fa221e15a0b7..adf011d8f1a7 100644 --- a/deepspeed/inference/v2/model_implementations/opt/model.py +++ b/deepspeed/inference/v2/model_implementations/opt/model.py @@ -12,11 +12,7 @@ from ...allocator import empty_from from ...inference_utils import ActivationType, DtypeEnum from ...model_implementations import * -from ...modules.configs import ( - DSEmbeddingsConfig, - NormTypeEnum, - PositionalEmbeddingType, -) +from ...modules.configs import * from ...ragged import RaggedBatchWrapper from .container import OPTNonTransformerContainer, OPTTransformerContainer @@ -94,6 +90,10 @@ def norm_type(self) -> NormTypeEnum: def positional_embedding_type(self) -> PositionalEmbeddingType: return PositionalEmbeddingType.none + @property + def positional_embedding_config(self) -> Optional[RotateHalfConfig]: + return None + """ Overrides of ``DSTransformerModelBase`` methods """ @@ -131,8 +131,7 @@ def _forward_transformer_layer(self, layer_idx: int, residual: torch.Tensor, hid kv_cache = self.state_manager.get_cache(layer_idx) hidden_states = self.qkv(hidden_states, cur_params.qkv_w, b=cur_params.qkv_b) - hidden_states = self.attn(hidden_states, kv_cache, - ragged_batch_info) #, inv_freqs=None) #cur_params.rotary_emb) + hidden_states = self.attn(hidden_states, kv_cache, ragged_batch_info) hidden_states = self.attn_out(hidden_states, cur_params.attn_out_w, b=cur_params.attn_out_b) if self.tp_size > 1: @@ -164,8 +163,11 @@ def _forward_transformer_layer(self, layer_idx: int, residual: torch.Tensor, hid return residual, hidden_states def _forward_unembed(self, hidden_states: torch.Tensor, ragged_batch_info: RaggedBatchWrapper) -> torch.Tensor: - logits = self.unembed(hidden_states, self._non_transformer.word_unembed, ragged_batch_info, - self._non_transformer.final_norm_w, self._non_transformer.final_norm_b) + logits = self.unembed(hidden_states, + self._non_transformer.word_unembed, + ragged_batch_info, + gamma=self._non_transformer.final_norm_w, + beta=self._non_transformer.final_norm_b) if self.tp_size > 1: comm_buffer = empty_from(self._comm_logits, (self.tp_size, logits.shape[0], logits.shape[1])) diff --git a/deepspeed/inference/v2/model_implementations/opt/policy.py b/deepspeed/inference/v2/model_implementations/opt/policy.py index af5750260ead..d57d5beb48d5 100644 --- a/deepspeed/inference/v2/model_implementations/opt/policy.py +++ b/deepspeed/inference/v2/model_implementations/opt/policy.py @@ -6,9 +6,9 @@ from typing import Any from ...config_v2 import RaggedInferenceEngineConfig -from ...model_implementations.inference_policy_base import ContainerMap, InferenceV2Policy -from ...model_implementations.opt.container import OPTNonTransformerContainer, OPTTransformerContainer -from ...model_implementations.opt.model import OPTInferenceModel +from ..inference_policy_base import ContainerMap, InferenceV2Policy +from .container import OPTNonTransformerContainer, OPTTransformerContainer +from .model import OPTInferenceModel class OPTPolicy(InferenceV2Policy): diff --git a/deepspeed/inference/v2/model_implementations/phi/__init__.py b/deepspeed/inference/v2/model_implementations/phi/__init__.py new file mode 100644 index 000000000000..3ab107e75a91 --- /dev/null +++ b/deepspeed/inference/v2/model_implementations/phi/__init__.py @@ -0,0 +1,6 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from .policy import PhiPolicy diff --git a/deepspeed/inference/v2/model_implementations/phi/containers.py b/deepspeed/inference/v2/model_implementations/phi/containers.py new file mode 100644 index 000000000000..21f07eb8c99a --- /dev/null +++ b/deepspeed/inference/v2/model_implementations/phi/containers.py @@ -0,0 +1,91 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +# Create a container object to save model-specific tensors using the policy file above. + +from ..common_parameters import * +from ..layer_container_base import LayerContainer +''' + # HF Phi-2 model looks like this: + +PhiForCausalLM( + (model): PhiModel( + (embed_tokens): Embedding(51200, 2560) + (embed_dropout): Dropout(p=0.0, inplace=False) + (layers): ModuleList( + (0-31): 32 x PhiDecoderLayer( + (self_attn): PhiAttention( + (q_proj): Linear(in_features=2560, out_features=2560, bias=True) + (k_proj): Linear(in_features=2560, out_features=2560, bias=True) + (v_proj): Linear(in_features=2560, out_features=2560, bias=True) + (dense): Linear(in_features=2560, out_features=2560, bias=True) + (rotary_emb): PhiRotaryEmbedding() + ) + (mlp): PhiMLP( + (activation_fn): NewGELUActivation() + (fc1): Linear(in_features=2560, out_features=10240, bias=True) + (fc2): Linear(in_features=10240, out_features=2560, bias=True) + ) + (input_layernorm): LayerNorm((2560,), eps=1e-05, elementwise_affine=True) + (resid_dropout): Dropout(p=0.1, inplace=False) + ) + ) + (final_layernorm): LayerNorm((2560,), eps=1e-05, elementwise_affine=True) + ) + (lm_head): Linear(in_features=2560, out_features=51200, bias=True) +) +''' + + +class PhiTransformerContainer(LayerContainer): + """ + Transformer layer container for the Phi model. + """ + qkv_w: UnfusedQKVParameter + qkv_b: UnfusedQKVParameter + attn_out_w: AttentionOutputParameter + attn_out_b: AttentionOutputParameter + mlp_1_w: MLP1Parameter + mlp_1_b: MLP1Parameter + mlp_2_w: MLP2Parameter + mlp_2_b: MLP2Parameter + ln_gamma: NormParameter + ln_beta: NormParameter + + PARAM_MAPPING = { + "self_attn.q_proj.weight": "qkv_w.q_params", + "self_attn.k_proj.weight": "qkv_w.k_params", + "self_attn.v_proj.weight": "qkv_w.v_params", + "self_attn.q_proj.bias": "qkv_b.q_params", + "self_attn.k_proj.bias": "qkv_b.k_params", + "self_attn.v_proj.bias": "qkv_b.v_params", + "self_attn.dense.weight": "attn_out_w.params", + "self_attn.dense.bias": "attn_out_b.params", + "mlp.fc1.weight": "mlp_1_w.params", + "mlp.fc1.bias": "mlp_1_b.params", + "mlp.fc2.weight": "mlp_2_w.params", + "mlp.fc2.bias": "mlp_2_b.params", + "input_layernorm.weight": "ln_gamma.params", + "input_layernorm.bias": "ln_beta.params", + } + + +class PhiNonTransformerContainer(LayerContainer): + """ + Non-Transformer layer container for the Phi model. + """ + word_emb: EmbeddingParameter + word_unembed_w: UnembedParameter + word_unembed_b: UnembedParameter + final_norm_gamma: NormParameter + final_norm_beta: NormParameter + + PARAM_MAPPING = { + "model.embed_tokens.weight": "word_emb.params", + "model.final_layernorm.weight": "final_norm_gamma.params", + "model.final_layernorm.bias": "final_norm_beta.params", + "lm_head.weight": "word_unembed_w.params", + "lm_head.bias": "word_unembed_b.params", + } diff --git a/deepspeed/inference/v2/model_implementations/phi/model.py b/deepspeed/inference/v2/model_implementations/phi/model.py new file mode 100644 index 000000000000..2d5826810cb5 --- /dev/null +++ b/deepspeed/inference/v2/model_implementations/phi/model.py @@ -0,0 +1,199 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from typing import Iterable, Optional, Tuple + +import torch + +import deepspeed.comm as dist + +from ...allocator import empty_from +from ...inference_utils import ActivationType, DtypeEnum +from .. import * +from ...modules.configs import * +from ...modules.interfaces import * +from ...ragged import RaggedBatchWrapper + +from .containers import PhiNonTransformerContainer, PhiTransformerContainer + + +class PhiInferenceModel(DSTransformerModelBase): + """ + Inference model implementation for ragged batching for Llama-2 models. + """ + + _non_transformer: Optional[PhiNonTransformerContainer] + """ + Embed + unembed container. Specializing the type annotation. + """ + + _transformer: Optional[Iterable[PhiTransformerContainer]] + """ + Per-layer transformer container. Specializing the type annotation. + """ + """ + Properties inherited from `DSInferenceModelBase` + """ + + @property + def max_sequence_length(self) -> int: + return self._config.max_seq_length + + """ + Properties inherited from `DSTransformerModelBase` + """ + + @property + def num_layers(self) -> int: + return self._config.num_hidden_layers + + @property + def model_dim(self) -> int: + return self._config.hidden_size + + @property + def vocab_size(self) -> int: + return self._config.vocab_size + + @property + def head_size(self) -> int: + return self.model_dim // self.n_heads + + @property + def n_heads(self) -> int: + return self._config.num_attention_heads + + @property + def intermediate_dim(self) -> int: + return self._config.intermediate_size + + @property + def n_heads_kv(self) -> int: + return self._config.num_key_value_heads + + @property + def activation_dtype(self) -> DtypeEnum: + if self._config.torch_dtype == torch.float16: + return DtypeEnum.fp16 + elif self._config.torch_dtype == torch.bfloat16: + return DtypeEnum.bf16 + else: + raise NotImplementedError("Only fp16 and bf16 are supported") + + @property + def mlp_activation_fn(self) -> ActivationType: + return ActivationType.GELU + + @property + def norm_type(self) -> NormTypeEnum: + return NormTypeEnum.LayerNorm + + @property + def positional_embedding_type(self) -> PositionalEmbeddingType: + return PositionalEmbeddingType.rotate_half + + @property + def positional_embedding_config(self) -> Optional[RotateHalfConfig]: + rotary_dim = int(self._config.partial_rotary_factor * self.head_size) + return RotateHalfConfig(rotate_dim=rotary_dim, theta_base=self._config.rope_theta) + + """ + Forward implementations + """ + + def _forward_embed(self, ragged_batch: RaggedBatchWrapper) -> torch.Tensor: + """ + Performs the embedding lookup prior to running the transformer of the model. + + Arguments: + ragged_batch (RaggedBatchWrapper): The batch to embed. + + Returns: + torch.Tensor: The embedded batch. + """ + embed = self.embed(ragged_batch, self._non_transformer.word_emb) + + if embed.shape[-1] != self.model_dim: + raise ValueError(f"Embedding output shape {embed.shape} does not match model_dim {self.model_dim}") + + return embed + + def _forward_transformer_layer(self, layer_idx: int, residual: torch.Tensor, hidden_states: torch.Tensor, + ragged_batch_info: RaggedBatchWrapper) -> Tuple[torch.Tensor, torch.Tensor]: + """ + Executes one (slightly offset) layer of the transformer. This implementation does a peak-ahead + optimization to fuse the layer norm of the next layer into the current layer. + + Arguments: + layer_idx (int): The index of the layer to execute. + residual (torch.Tensor): The residual tensor from the previous layer. + hidden_states (torch.Tensor): The hidden states from the previous layer. This is the + hidden states after pre normalization. + ragged_batch_info (RaggedBatchWrapper): The batch metadata. + """ + cur_params = self._transformer[layer_idx] + kv_cache = self.state_manager.get_cache(layer_idx) + + attn_ln_out = hidden_states + attn_hidden_state = self.qkv(attn_ln_out, cur_params.qkv_w, b=cur_params.qkv_b) + attn_hidden_state = self.attn(attn_hidden_state, kv_cache, ragged_batch_info) + attention_output = self.attn_out(attn_hidden_state, cur_params.attn_out_w, b=cur_params.attn_out_b) + + mlp_ln_out = hidden_states + mlp_hidden_state = self.mlp_1(mlp_ln_out, cur_params.mlp_1_w, b=cur_params.mlp_1_b) + mlp_output = self.mlp_2(mlp_hidden_state, cur_params.mlp_2_w, b=cur_params.mlp_2_b) + + mlp_output.add_(attention_output) + + if self.tp_size > 1: + dist.all_reduce(mlp_output, group=self._base_mp_group) + + if layer_idx != self.num_layers - 1: + next_params = self._transformer[layer_idx + 1] + residual, mlp_output = self.norm(residual, mlp_output, next_params.ln_gamma, beta=next_params.ln_beta) + else: + # On last layer, we just need to perform the residual add. Adding into the residual + # here is safe. + residual.add_(mlp_output) + + return residual, mlp_output + + def _forward_unembed(self, hidden_states: torch.Tensor, ragged_batch_info: RaggedBatchWrapper) -> torch.Tensor: + """ + Performs unembedding of the hidden states to logits. This will only sample the final + token of each sequence. + """ + logits = self.unembed(hidden_states, + self._non_transformer.word_unembed_w, + ragged_batch_info, + bias=self._non_transformer.word_unembed_b, + gamma=self._non_transformer.final_norm_gamma, + beta=self._non_transformer.final_norm_beta) + + if self.tp_size > 1: + comm_buffer = empty_from(self._comm_logits, (self.tp_size, logits.shape[0], logits.shape[1])) + full_logits = empty_from(self._return_logits, (logits.shape[0], self.vocab_size)) + + dist.all_gather_into_tensor(comm_buffer, logits, group=self._base_mp_group) + + full_logits.copy_(comm_buffer.permute(1, 0, 2).reshape(logits.shape[0], self.vocab_size)) + + return full_logits + else: + return logits + + def forward(self, wrapped_batch: RaggedBatchWrapper) -> torch.Tensor: + residual = self._forward_embed(wrapped_batch) + + residual, hidden_states = self.norm(residual, + None, + gamma=self._transformer[0].ln_gamma, + beta=self._transformer[0].ln_beta) + + for layer_idx in range(self.num_layers): + residual, hidden_states = self._forward_transformer_layer(layer_idx, residual, hidden_states, + wrapped_batch) + + return self._forward_unembed(residual, wrapped_batch) diff --git a/deepspeed/inference/v2/model_implementations/phi/policy.py b/deepspeed/inference/v2/model_implementations/phi/policy.py new file mode 100644 index 000000000000..4b081a8e61bd --- /dev/null +++ b/deepspeed/inference/v2/model_implementations/phi/policy.py @@ -0,0 +1,32 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from typing import Any + +from ...config_v2 import RaggedInferenceEngineConfig +from ..inference_policy_base import ContainerMap, InferenceV2Policy +from .containers import PhiNonTransformerContainer, PhiTransformerContainer +from .model import PhiInferenceModel + + +class PhiPolicy(InferenceV2Policy): + + def instantiate_model(self, engine_config: RaggedInferenceEngineConfig, mp_group: Any) -> PhiInferenceModel: + return PhiInferenceModel(config=self._model_config, engine_config=engine_config, base_mp_group=mp_group) + + def build_container_map(self) -> ContainerMap: + map = ContainerMap() + + trans_container_cls = PhiTransformerContainer + transformer_containers = [trans_container_cls(self.model) for _ in range(self.model.num_layers)] + + map.set_transformer_params(['model.layers'], transformer_containers) + + map.set_non_transformer_params(PhiNonTransformerContainer(self.model)) + + map.set_unmapped_params( + [f'model.layers.{i}.self_attn.rotary_emb.inv_freq' for i in range(self.model.num_layers)]) + + return map diff --git a/deepspeed/inference/v2/model_implementations/phi3/__init__.py b/deepspeed/inference/v2/model_implementations/phi3/__init__.py new file mode 100644 index 000000000000..1a4b756d210c --- /dev/null +++ b/deepspeed/inference/v2/model_implementations/phi3/__init__.py @@ -0,0 +1,6 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from .policy import Phi3Policy diff --git a/deepspeed/inference/v2/model_implementations/phi3/containers.py b/deepspeed/inference/v2/model_implementations/phi3/containers.py new file mode 100644 index 000000000000..1cb52a75ae0b --- /dev/null +++ b/deepspeed/inference/v2/model_implementations/phi3/containers.py @@ -0,0 +1,75 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +# Create a container object to save model-specific tensors using the policy file above. + +from ..common_parameters import * +from ..layer_container_base import LayerContainer +''' + # HF Phi-3 model looks like this: + +Phi3ForCausalLM( + (model): Phi3Model( + (embed_tokens): Embedding(32064, 3072) + (embed_dropout): Dropout(p=0.0, inplace=False) + (layers): ModuleList( + (0-31): 32 x Phi3DecoderLayer( + (self_attn): Phi3Attention( + (o_proj): Linear(in_features=3072, out_features=3072, bias=False) + (qkv_proj): Linear(in_features=3072, out_features=9216, bias=False) + (rotary_emb): Phi3RotaryEmbedding() + ) + (mlp): PhiMLP( + (gate_up_proj): Linear(in_features=3072, out_features=16384, bias=False) + (down_proj): Linear(in_features=16384, out_features=3072, bias=False) + (activation_fn): SiLU() + ) + (input_layernorm): Phi3RMSNorm((3072,), eps=1e-05) + (resid_attn_dropout): Dropout(p=0.0) + (resid_mlp_dropout): Dropout(p=0.0) + (post_attention_layernorm): Phi3RMSNorm((3072,), eps=1e-05) + ) + ) + (final_layernorm): Phi3RMSNorm((3072,), eps=1e-05) + ) + (lm_head): Linear(in_features=3072, out_features=32064, bias=False) +) +''' + + +class Phi3TransformerContainer(LayerContainer): + """ + Transformer layer container for the Phi model. + """ + qkv_w: FusedQKVParameter + attn_out_w: AttentionOutputParameter + mlp_1_w: FusedGatedMLPParameter + mlp_2_w: MLP2Parameter + attn_norm_gamma: NormParameter + mlp_norm_gamma: NormParameter + + PARAM_MAPPING = { + "self_attn.qkv_proj.weight": "qkv_w.params", + "self_attn.o_proj.weight": "attn_out_w.params", + "mlp.gate_up_proj.weight": "mlp_1_w.params", + "mlp.down_proj.weight": "mlp_2_w.params", + "input_layernorm.weight": "attn_norm_gamma.params", + "post_attention_layernorm.weight": "mlp_norm_gamma.params", + } + + +class Phi3NonTransformerContainer(LayerContainer): + """ + Non-Transformer layer container for the Phi model. + """ + word_emb: EmbeddingParameter + word_unembed_w: UnembedParameter + final_norm_gamma: NormParameter + + PARAM_MAPPING = { + "model.embed_tokens.weight": "word_emb.params", + "model.norm.weight": "final_norm_gamma.params", + "lm_head.weight": "word_unembed_w.params", + } diff --git a/deepspeed/inference/v2/model_implementations/phi3/model.py b/deepspeed/inference/v2/model_implementations/phi3/model.py new file mode 100644 index 000000000000..507bb4fc9af1 --- /dev/null +++ b/deepspeed/inference/v2/model_implementations/phi3/model.py @@ -0,0 +1,204 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from typing import Iterable, Optional, Tuple + +import torch + +import deepspeed.comm as dist + +from ...allocator import empty_from +from ...inference_utils import ActivationType, DtypeEnum +from .. import * +from ...modules.configs import * +from ...modules.interfaces import * +from ...ragged import RaggedBatchWrapper + +from .containers import Phi3NonTransformerContainer, Phi3TransformerContainer + + +class Phi3InferenceModel(DSTransformerModelBase): + """ + Inference model implementation for ragged batching for Llama-2 models. + """ + + _non_transformer: Optional[Phi3NonTransformerContainer] + """ + Embed + unembed container. Specializing the type annotation. + """ + + _transformer: Optional[Iterable[Phi3TransformerContainer]] + """ + Per-layer transformer container. Specializing the type annotation. + """ + """ + Properties inherited from `DSInferenceModelBase` + """ + + @property + def max_sequence_length(self) -> int: + return self._config.max_seq_length + + """ + Properties inherited from `DSTransformerModelBase` + """ + + @property + def num_layers(self) -> int: + return self._config.num_hidden_layers + + @property + def model_dim(self) -> int: + return self._config.hidden_size + + @property + def vocab_size(self) -> int: + return self._config.vocab_size + + @property + def head_size(self) -> int: + return self.model_dim // self.n_heads + + @property + def n_heads(self) -> int: + return self._config.num_attention_heads + + @property + def intermediate_dim(self) -> int: + return self._config.intermediate_size + + @property + def n_heads_kv(self) -> int: + return self._config.num_key_value_heads + + @property + def activation_dtype(self) -> DtypeEnum: + if self._config.torch_dtype == torch.float16: + return DtypeEnum.fp16 + elif self._config.torch_dtype == torch.bfloat16: + return DtypeEnum.bf16 + else: + raise NotImplementedError("Only fp16 and bf16 are supported") + + @property + def mlp_activation_fn(self) -> ActivationType: + activation = self._config.hidden_act.lower() + if activation == "gelu": + return ActivationType.GEGLU + elif activation == "relu": + return ActivationType.ReGLU + elif activation == "gegelu": + return ActivationType.GEGLU + elif activation == "silu": + return ActivationType.SiGLU + else: + raise NotImplementedError(f"Activation {activation} not supported") + + @property + def norm_type(self) -> NormTypeEnum: + return NormTypeEnum.RMSNorm + + @property + def positional_embedding_type(self) -> PositionalEmbeddingType: + return PositionalEmbeddingType.rotate_half + + @property + def positional_embedding_config(self) -> Optional[RotateHalfConfig]: + return RotateHalfConfig(theta_base=self._config.rope_theta) + + """ + Forward implementations + """ + + def _forward_embed(self, ragged_batch: RaggedBatchWrapper) -> torch.Tensor: + """ + Performs the embedding lookup prior to running the transformer of the model. + + Arguments: + ragged_batch (RaggedBatchWrapper): The batch to embed. + + Returns: + torch.Tensor: The embedded batch. + """ + embed = self.embed(ragged_batch, self._non_transformer.word_emb) + + if embed.shape[-1] != self.model_dim: + raise ValueError(f"Embedding output shape {embed.shape} does not match model_dim {self.model_dim}") + + return embed + + def _forward_transformer_layer(self, layer_idx: int, residual: torch.Tensor, hidden_states: torch.Tensor, + ragged_batch_info: RaggedBatchWrapper) -> Tuple[torch.Tensor, torch.Tensor]: + """ + Executes one (slightly offset) layer of the transformer. This implementation does a peak-ahead + optimization to fuse the layer norm of the next layer into the current layer. + + Arguments: + layer_idx (int): The index of the layer to execute. + residual (torch.Tensor): The residual tensor from the previous layer. + hidden_states (torch.Tensor): The hidden states from the previous layer. This is the + hidden states after pre normalization. + ragged_batch_info (RaggedBatchWrapper): The batch metadata. + """ + cur_params = self._transformer[layer_idx] + kv_cache = self.state_manager.get_cache(layer_idx) + + hidden_states = self.qkv(hidden_states, cur_params.qkv_w, b=None) + hidden_states = self.attn(hidden_states, kv_cache, ragged_batch_info) + hidden_states = self.attn_out(hidden_states, cur_params.attn_out_w, b=None) + + if self.tp_size > 1: + dist.all_reduce(hidden_states, group=self._base_mp_group) + + residual, hidden_states = self.norm(residual, hidden_states, cur_params.mlp_norm_gamma, beta=None) + + hidden_states = self.mlp_1(hidden_states, cur_params.mlp_1_w, b=None) + hidden_states = self.mlp_2(hidden_states, cur_params.mlp_2_w, b=None) + + if self.tp_size > 1: + dist.all_reduce(hidden_states, group=self._base_mp_group) + + if layer_idx != self.num_layers - 1: + next_params = self._transformer[layer_idx + 1] + residual, hidden_states = self.norm(residual, hidden_states, next_params.attn_norm_gamma, beta=None) + else: + # On last layer, we just need to perform the residual add. Adding into the residual + # here is safe. + residual.add_(hidden_states) + + return residual, hidden_states + + def _forward_unembed(self, hidden_states: torch.Tensor, ragged_batch_info: RaggedBatchWrapper) -> torch.Tensor: + """ + Performs unembedding of the hidden states to logits. This will only sample the final + token of each sequence. + """ + logits = self.unembed(hidden_states, + self._non_transformer.word_unembed_w, + ragged_batch_info, + gamma=self._non_transformer.final_norm_gamma) + + if self.tp_size > 1: + comm_buffer = empty_from(self._comm_logits, (self.tp_size, logits.shape[0], logits.shape[1])) + full_logits = empty_from(self._return_logits, (logits.shape[0], self.vocab_size)) + + dist.all_gather_into_tensor(comm_buffer, logits, group=self._base_mp_group) + + full_logits.copy_(comm_buffer.permute(1, 0, 2).reshape(logits.shape[0], self.vocab_size)) + + return full_logits + else: + return logits + + def forward(self, wrapped_batch: RaggedBatchWrapper) -> torch.Tensor: + residual = self._forward_embed(wrapped_batch) + + residual, hidden_states = self.norm(residual, None, gamma=self._transformer[0].attn_norm_gamma, beta=None) + + for layer_idx in range(self.num_layers): + residual, hidden_states = self._forward_transformer_layer(layer_idx, residual, hidden_states, + wrapped_batch) + + return self._forward_unembed(residual, wrapped_batch) diff --git a/deepspeed/inference/v2/model_implementations/phi3/policy.py b/deepspeed/inference/v2/model_implementations/phi3/policy.py new file mode 100644 index 000000000000..a1b445929053 --- /dev/null +++ b/deepspeed/inference/v2/model_implementations/phi3/policy.py @@ -0,0 +1,30 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from typing import Any + +from ...config_v2 import RaggedInferenceEngineConfig +from ..inference_policy_base import ContainerMap, InferenceV2Policy +from .containers import Phi3NonTransformerContainer, Phi3TransformerContainer +from .model import Phi3InferenceModel + + +class Phi3Policy(InferenceV2Policy): + + def instantiate_model(self, engine_config: RaggedInferenceEngineConfig, mp_group: Any) -> Phi3InferenceModel: + return Phi3InferenceModel(config=self._model_config, engine_config=engine_config, base_mp_group=mp_group) + + def build_container_map(self) -> ContainerMap: + map = ContainerMap() + + transformer_containers = [Phi3TransformerContainer(self.model) for _ in range(self.model.num_layers)] + + map.set_transformer_params(['model.layers'], transformer_containers) + + map.set_non_transformer_params(Phi3NonTransformerContainer(self.model)) + + map.set_unmapped_params([]) + + return map diff --git a/deepspeed/inference/v2/model_implementations/qwen/__init__.py b/deepspeed/inference/v2/model_implementations/qwen/__init__.py new file mode 100644 index 000000000000..18206048fa29 --- /dev/null +++ b/deepspeed/inference/v2/model_implementations/qwen/__init__.py @@ -0,0 +1,6 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from .policy import QwenPolicy diff --git a/deepspeed/inference/v2/model_implementations/qwen/container.py b/deepspeed/inference/v2/model_implementations/qwen/container.py new file mode 100644 index 000000000000..313de68555b9 --- /dev/null +++ b/deepspeed/inference/v2/model_implementations/qwen/container.py @@ -0,0 +1,77 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +# Create a container object to save model-specific tensors using the policy file above. + +from ..common_parameters import * +from ..layer_container_base import LayerContainer +''' + # HF Qwen model looks like this: + +QWenLMHeadModel( + (transformer): QWenModel( + (wte): Embedding(151936, 4096) + (drop): Dropout(p=0.0, inplace=False) + (rotary_emb): RotaryEmbedding() + (h): ModuleList( + (0-31): 32 x QWenBlock( + (ln_1): RMSNorm() + (attn): QWenAttention( + (c_attn): Linear(in_features=4096, out_features=12288, bias=True) + (c_proj): Linear(in_features=4096, out_features=4096, bias=False) + (attn_dropout): Dropout(p=0.0, inplace=False) + ) + (ln_2): RMSNorm() + (mlp): QWenMLP( + (w1): Linear(in_features=4096, out_features=11008, bias=False) + (w2): Linear(in_features=4096, out_features=11008, bias=False) + (c_proj): Linear(in_features=11008, out_features=4096, bias=False) + ) + ) + ) + (ln_f): RMSNorm() + ) + (lm_head): Linear(in_features=4096, out_features=151936, bias=False) +) +''' + + +class QwenTransformerContainer(LayerContainer): + """ + Transformer layer container for the Qwen model. + """ + qkv_w: FusedQKVParameter + qkv_b: FusedQKVParameter + attn_out_w: AttentionOutputParameter + mlp_1_w: GatedMLPParameter + mlp_2_w: MLP2Parameter + attn_norm_gamma: NormParameter + mlp_norm_gamma: NormParameter + + PARAM_MAPPING = { + "attn.c_attn.weight": "qkv_w.params", + "attn.c_attn.bias": "qkv_b.params", + "attn.c_proj.weight": "attn_out_w.params", + "mlp.w1.weight": "mlp_1_w.up_params", + "mlp.w2.weight": "mlp_1_w.gate_params", + "mlp.c_proj.weight": "mlp_2_w.params", + "ln_1.weight": "attn_norm_gamma.params", + "ln_2.weight": "mlp_norm_gamma.params", + } + + +class QwenNonTransformerContainer(LayerContainer): + """ + Non-Transformer layer container for the Qwen model. + """ + word_emb: EmbeddingParameter + word_unembed: UnembedParameter + final_norm: NormParameter + + PARAM_MAPPING = { + "transformer.wte.weight": "word_emb.params", + "transformer.ln_f.weight": "final_norm.params", + "lm_head.weight": "word_unembed.params", + } diff --git a/deepspeed/inference/v2/model_implementations/qwen/model.py b/deepspeed/inference/v2/model_implementations/qwen/model.py new file mode 100644 index 000000000000..e867e4be6713 --- /dev/null +++ b/deepspeed/inference/v2/model_implementations/qwen/model.py @@ -0,0 +1,223 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from typing import Iterable, Optional, Tuple + +import torch + +import deepspeed.comm as dist + +from ...allocator import empty_from +from ...inference_utils import ActivationType, DtypeEnum +from .. import * +from ...modules.configs import * +from ...modules.interfaces import * +from ...modules import heuristics +from ...ragged import RaggedBatchWrapper + +from .container import QwenNonTransformerContainer, QwenTransformerContainer + + +class QwenInferenceModel(DSTransformerModelBase): + """ + Inference model implementation for ragged batching for Llama-2 models. + """ + + _non_transformer: Optional[QwenNonTransformerContainer] + """ + Embed + unembed container. Specializing the type annotation. + """ + + _transformer: Optional[Iterable[QwenTransformerContainer]] + """ + Per-layer transformer container. Specializing the type annotation. + """ + """ + Properties ineherited from `DSInferenceModelBase` + """ + + @property + def max_sequence_length(self) -> int: + return self._config.max_seq_length + + """ + Properties ineherited from `DSTransformerModelBase` + """ + + @property + def num_layers(self) -> int: + return self._config.num_hidden_layers + + @property + def model_dim(self) -> int: + return self._config.hidden_size + + @property + def vocab_size(self) -> int: + return self._config.vocab_size + + @property + def head_size(self) -> int: + return self.model_dim // self.n_heads + + @property + def n_heads(self) -> int: + return self._config.num_attention_heads + + @property + def intermediate_dim(self) -> int: + return self._config.intermediate_size // 2 + + @property + def n_heads_kv(self) -> int: + return self._config.hidden_size // self._config.kv_channels + + @property + def activation_dtype(self) -> DtypeEnum: + autoset_precision = self._config.bf16 + self._config.fp16 == 0 + if autoset_precision: + return DtypeEnum.fp16 + if self._config.fp16: + return DtypeEnum.fp16 + elif self._config.bf16: + # TODO(ZonePG): bf16 inference results may be different from huggingface bf16, + # because in rms_norm, Qwen still use float() instead of bf16 + return DtypeEnum.bf16 + else: + raise NotImplementedError("Only fp16 and bf16 are supported") + + @property + def mlp_activation_fn(self) -> ActivationType: + return ActivationType.SiGLU + + @property + def norm_type(self) -> NormTypeEnum: + return NormTypeEnum.RMSNorm + + @property + def positional_embedding_type(self) -> PositionalEmbeddingType: + return PositionalEmbeddingType.rotate_half + + @property + def positional_embedding_config(self) -> Optional[RotateHalfConfig]: + return RotateHalfConfig(theta_base=self._config.rotary_emb_base) + + def make_norm_layer(self) -> None: + """ + Instantiates the normalization layer for the model. This sets the `self.norm` attribute. + + TODO(cmikeh2): In the future we'll distinguish between the different norm objects, + but for now we'll just use the same one for all of them. + """ + norm_config = DSNormConfig( + max_tokens=self._engine_config.state_manager.max_ragged_batch_size, + type=self.norm_type, + channels=self.model_dim, + residual_dtype=self.activation_dtype, + input_dtype=self.activation_dtype, + output_dtype=self.activation_dtype, + eps=self._config.layer_norm_epsilon, + ) + + self.norm = heuristics.instantiate_pre_norm(norm_config, self._engine_config) + + """ + Forward implementations + """ + + def _forward_embed(self, ragged_batch: RaggedBatchWrapper) -> torch.Tensor: + """ + Performs the embedding lookup prior to running the transformer of the model. + + Arguments: + ragged_batch (RaggedBatchWrapper): The batch to embed. + + Returns: + torch.Tensor: The embedded batch. + """ + embed = self.embed(ragged_batch, self._non_transformer.word_emb) + + if embed.shape[-1] != self.model_dim: + raise ValueError(f"Embedding output shape {embed.shape} does not match model_dim {self.model_dim}") + + return embed + + def _forward_transformer_layer(self, layer_idx: int, residual: torch.Tensor, hidden_states: torch.Tensor, + ragged_batch_info: RaggedBatchWrapper) -> Tuple[torch.Tensor, torch.Tensor]: + """ + Executes one (slightly offset) layer of the transformer. This implementation does a peak-ahead + optimization to fuse the layer norm of the next layer into the current layer. + + Arguments: + layer_idx (int): The index of the layer to execute. + residual (torch.Tensor): The residual tensor from the previous layer. + hidden_states (torch.Tensor): The hidden states from the previous layer. This is the + hidden states after pre normalization. + ragged_batch_info (RaggedBatchWrapper): The batch metadata. + """ + # TODO(cmikeh2): Distribute ragged_batch_info to all modules + + cur_params = self._transformer[layer_idx] + kv_cache = self.state_manager.get_cache(layer_idx) + + hidden_states = self.qkv(hidden_states, cur_params.qkv_w, b=cur_params.qkv_b) + hidden_states = self.attn(hidden_states, kv_cache, ragged_batch_info) + hidden_states = self.attn_out(hidden_states, cur_params.attn_out_w, b=None) + + if self.tp_size > 1: + dist.all_reduce(hidden_states, group=self._base_mp_group) + + residual, hidden_states = self.norm(residual, hidden_states, cur_params.mlp_norm_gamma, beta=None) + + # Should be configurable in the future + hidden_states = self.mlp_1(hidden_states, cur_params.mlp_1_w, b=None) + hidden_states = self.mlp_2(hidden_states, cur_params.mlp_2_w, b=None) + + if self.tp_size > 1: + dist.all_reduce(hidden_states, group=self._base_mp_group) + + if layer_idx != self.num_layers - 1: + next_params = self._transformer[layer_idx + 1] + residual, hidden_states = self.norm(residual, hidden_states, next_params.attn_norm_gamma, beta=None) + else: + # On last layer, we just need to perform the residual add. Adding into the residual + # here is safe. + residual.add_(hidden_states) + + return residual, hidden_states + + def _forward_unembed(self, hidden_states: torch.Tensor, ragged_batch_info: RaggedBatchWrapper) -> torch.Tensor: + """ + Performs unembedding of the hidden states to logits. This will only sample the final + token of each sequence. + """ + logits = self.unembed(hidden_states, + self._non_transformer.word_unembed, + ragged_batch_info, + gamma=self._non_transformer.final_norm) + + if self.tp_size > 1: + comm_buffer = empty_from(self._comm_logits, (self.tp_size, logits.shape[0], logits.shape[1])) + full_logits = empty_from(self._return_logits, (logits.shape[0], self.vocab_size)) + + dist.all_gather_into_tensor(comm_buffer, logits, group=self._base_mp_group) + + full_logits.copy_(comm_buffer.permute(1, 0, 2).reshape(logits.shape[0], self.vocab_size)) + + return full_logits + else: + return logits + + def forward(self, wrapped_batch: RaggedBatchWrapper) -> torch.Tensor: + + residual = self._forward_embed(wrapped_batch) + + residual, hidden_states = self.norm(residual, None, self._transformer[0].attn_norm_gamma, beta=None) + + for layer_idx in range(self.num_layers): + residual, hidden_states = self._forward_transformer_layer(layer_idx, residual, hidden_states, + wrapped_batch) + + return self._forward_unembed(residual, wrapped_batch) diff --git a/deepspeed/inference/v2/model_implementations/qwen/policy.py b/deepspeed/inference/v2/model_implementations/qwen/policy.py new file mode 100644 index 000000000000..a9263f553621 --- /dev/null +++ b/deepspeed/inference/v2/model_implementations/qwen/policy.py @@ -0,0 +1,30 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from typing import Any + +from ...config_v2 import RaggedInferenceEngineConfig +from ..inference_policy_base import ContainerMap, InferenceV2Policy +from .container import QwenNonTransformerContainer, QwenTransformerContainer +from .model import QwenInferenceModel + + +class QwenPolicy(InferenceV2Policy): + + def instantiate_model(self, engine_config: RaggedInferenceEngineConfig, mp_group: Any) -> QwenInferenceModel: + return QwenInferenceModel(config=self._model_config, engine_config=engine_config, base_mp_group=mp_group) + + def build_container_map(self) -> ContainerMap: + map = ContainerMap() + + transformer_containers = [QwenTransformerContainer(self.model) for _ in range(self.model.num_layers)] + + map.set_transformer_params(['transformer.h'], transformer_containers) + + map.set_non_transformer_params(QwenNonTransformerContainer(self.model)) + + map.set_unmapped_params(['transformer.rotary_emb.inv_freq']) + + return map diff --git a/deepspeed/inference/v2/model_implementations/qwen_v2/__init__.py b/deepspeed/inference/v2/model_implementations/qwen_v2/__init__.py new file mode 100644 index 000000000000..80b09757c74d --- /dev/null +++ b/deepspeed/inference/v2/model_implementations/qwen_v2/__init__.py @@ -0,0 +1,6 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from .policy import Qwen2Policy diff --git a/deepspeed/inference/v2/model_implementations/qwen_v2/container.py b/deepspeed/inference/v2/model_implementations/qwen_v2/container.py new file mode 100644 index 000000000000..6556d87d6afb --- /dev/null +++ b/deepspeed/inference/v2/model_implementations/qwen_v2/container.py @@ -0,0 +1,82 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +# Create a container object to save model-specific tensors using the policy file above. + +from ..common_parameters import * +from ..layer_container_base import LayerContainer +''' + # HF Qwen2 model looks like this: + +Qwen2ForCausalLM( + (model): Qwen2Model( + (embed_tokens): Embedding(151936, 1024) + (layers): ModuleList( + (0-23): 24 x Qwen2DecoderLayer( + (self_attn): Qwen2SdpaAttention( + (q_proj): Linear(in_features=1024, out_features=1024, bias=True) + (k_proj): Linear(in_features=1024, out_features=1024, bias=True) + (v_proj): Linear(in_features=1024, out_features=1024, bias=True) + (o_proj): Linear(in_features=1024, out_features=1024, bias=False) + (rotary_emb): Qwen2RotaryEmbedding() + ) + (mlp): Qwen2MLP( + (gate_proj): Linear(in_features=1024, out_features=2816, bias=False) + (up_proj): Linear(in_features=1024, out_features=2816, bias=False) + (down_proj): Linear(in_features=2816, out_features=1024, bias=False) + (act_fn): SiLU() + ) + (input_layernorm): Qwen2RMSNorm() + (post_attention_layernorm): Qwen2RMSNorm() + ) + ) + (norm): Qwen2RMSNorm() + ) + (lm_head): Linear(in_features=1024, out_features=151936, bias=False) +) +''' + + +class Qwen2TransformerContainer(LayerContainer): + """ + Transformer layer container for the Qwen2 model. + """ + qkv_w: UnfusedQKVParameter + qkv_b: UnfusedQKVParameter + attn_out_w: AttentionOutputParameter + mlp_1_w: GatedMLPParameter + mlp_2_w: MLP2Parameter + attn_norm_gamma: NormParameter + mlp_norm_gamma: NormParameter + + PARAM_MAPPING = { + "self_attn.q_proj.weight": "qkv_w.q_params", + "self_attn.k_proj.weight": "qkv_w.k_params", + "self_attn.v_proj.weight": "qkv_w.v_params", + "self_attn.q_proj.bias": "qkv_b.q_params", + "self_attn.k_proj.bias": "qkv_b.k_params", + "self_attn.v_proj.bias": "qkv_b.v_params", + "self_attn.o_proj.weight": "attn_out_w.params", + "mlp.gate_proj.weight": "mlp_1_w.gate_params", + "mlp.up_proj.weight": "mlp_1_w.up_params", + "mlp.down_proj.weight": "mlp_2_w.params", + "input_layernorm.weight": "attn_norm_gamma.params", + "post_attention_layernorm.weight": "mlp_norm_gamma.params", + } + + +class Qwen2NonTransformerContainer(LayerContainer): + """ + Non-Transformer layer container for the Qwen2 model. + """ + word_emb: EmbeddingParameter + word_unembed: UnembedParameter + final_norm: NormParameter + + PARAM_MAPPING = { + "model.embed_tokens.weight": "word_emb.params", + "model.norm.weight": "final_norm.params", + "lm_head.weight": "word_unembed.params", + } diff --git a/deepspeed/inference/v2/model_implementations/qwen_v2/model.py b/deepspeed/inference/v2/model_implementations/qwen_v2/model.py new file mode 100644 index 000000000000..d535462a954d --- /dev/null +++ b/deepspeed/inference/v2/model_implementations/qwen_v2/model.py @@ -0,0 +1,221 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from typing import Iterable, Optional, Tuple + +import torch + +import deepspeed.comm as dist + +from ...allocator import empty_from +from ...inference_utils import ActivationType, DtypeEnum +from .. import * +from ...modules.configs import * +from ...modules.interfaces import * +from ...modules import heuristics +from ...ragged import RaggedBatchWrapper + +from .container import Qwen2NonTransformerContainer, Qwen2TransformerContainer + + +class Qwen2InferenceModel(DSTransformerModelBase): + """ + Inference model implementation for ragged batching for Llama-2 models. + """ + + _non_transformer: Optional[Qwen2NonTransformerContainer] + """ + Embed + unembed container. Specializing the type annotation. + """ + + _transformer: Optional[Iterable[Qwen2TransformerContainer]] + """ + Per-layer transformer container. Specializing the type annotation. + """ + """ + Properties ineherited from `DSInferenceModelBase` + """ + + @property + def max_sequence_length(self) -> int: + return self._config.max_seq_length + + """ + Properties ineherited from `DSTransformerModelBase` + """ + + @property + def num_layers(self) -> int: + return self._config.num_hidden_layers + + @property + def model_dim(self) -> int: + return self._config.hidden_size + + @property + def vocab_size(self) -> int: + return self._config.vocab_size + + @property + def head_size(self) -> int: + return self.model_dim // self.n_heads + + @property + def n_heads(self) -> int: + return self._config.num_attention_heads + + @property + def intermediate_dim(self) -> int: + return self._config.intermediate_size + + @property + def n_heads_kv(self) -> int: + return self._config.num_key_value_heads + + @property + def activation_dtype(self) -> DtypeEnum: + # TODO(ZonePG): bf16 inference results may be different from huggingface bf16, + # because in rms_norm, Qwen still use float() instead of bf16 + # if self._config.torch_dtype == torch.float16: + # return DtypeEnum.fp16 + # elif self._config.torch_dtype == torch.bfloat16: + # return DtypeEnum.bf16 + # else: + # raise NotImplementedError("Only fp16 and bf16 are supported") + return DtypeEnum.fp16 + + @property + def mlp_activation_fn(self) -> ActivationType: + return ActivationType.SiGLU + + @property + def norm_type(self) -> NormTypeEnum: + return NormTypeEnum.RMSNorm + + @property + def positional_embedding_type(self) -> PositionalEmbeddingType: + return PositionalEmbeddingType.rotate_half + + @property + def positional_embedding_config(self) -> Optional[RotateHalfConfig]: + return RotateHalfConfig(theta_base=self._config.rope_theta) + + def make_norm_layer(self) -> None: + """ + Instantiates the normalization layer for the model. This sets the `self.norm` attribute. + + TODO(cmikeh2): In the future we'll distinguish between the different norm objects, + but for now we'll just use the same one for all of them. + """ + norm_config = DSNormConfig( + max_tokens=self._engine_config.state_manager.max_ragged_batch_size, + type=self.norm_type, + channels=self.model_dim, + residual_dtype=self.activation_dtype, + input_dtype=self.activation_dtype, + output_dtype=self.activation_dtype, + eps=self._config.rms_norm_eps, + ) + + self.norm = heuristics.instantiate_pre_norm(norm_config, self._engine_config) + + """ + Forward implementations + """ + + def _forward_embed(self, ragged_batch: RaggedBatchWrapper) -> torch.Tensor: + """ + Performs the embedding lookup prior to running the transformer of the model. + + Arguments: + ragged_batch (RaggedBatchWrapper): The batch to embed. + + Returns: + torch.Tensor: The embedded batch. + """ + embed = self.embed(ragged_batch, self._non_transformer.word_emb) + + if embed.shape[-1] != self.model_dim: + raise ValueError(f"Embedding output shape {embed.shape} does not match model_dim {self.model_dim}") + + return embed + + def _forward_transformer_layer(self, layer_idx: int, residual: torch.Tensor, hidden_states: torch.Tensor, + ragged_batch_info: RaggedBatchWrapper) -> Tuple[torch.Tensor, torch.Tensor]: + """ + Executes one (slightly offset) layer of the transformer. This implementation does a peak-ahead + optimization to fuse the layer norm of the next layer into the current layer. + + Arguments: + layer_idx (int): The index of the layer to execute. + residual (torch.Tensor): The residual tensor from the previous layer. + hidden_states (torch.Tensor): The hidden states from the previous layer. This is the + hidden states after pre normalization. + ragged_batch_info (RaggedBatchWrapper): The batch metadata. + """ + # TODO(cmikeh2): Distribute ragged_batch_info to all modules + + cur_params = self._transformer[layer_idx] + kv_cache = self.state_manager.get_cache(layer_idx) + + hidden_states = self.qkv(hidden_states, cur_params.qkv_w, b=cur_params.qkv_b) + hidden_states = self.attn(hidden_states, kv_cache, ragged_batch_info) + hidden_states = self.attn_out(hidden_states, cur_params.attn_out_w, b=None) + + if self.tp_size > 1: + dist.all_reduce(hidden_states, group=self._base_mp_group) + + residual, hidden_states = self.norm(residual, hidden_states, cur_params.mlp_norm_gamma, beta=None) + + # Should be configurable in the future + hidden_states = self.mlp_1(hidden_states, cur_params.mlp_1_w, b=None) + hidden_states = self.mlp_2(hidden_states, cur_params.mlp_2_w, b=None) + + if self.tp_size > 1: + dist.all_reduce(hidden_states, group=self._base_mp_group) + + if layer_idx != self.num_layers - 1: + next_params = self._transformer[layer_idx + 1] + residual, hidden_states = self.norm(residual, hidden_states, next_params.attn_norm_gamma, beta=None) + else: + # On last layer, we just need to perform the residual add. Adding into the residual + # here is safe. + residual.add_(hidden_states) + + return residual, hidden_states + + def _forward_unembed(self, hidden_states: torch.Tensor, ragged_batch_info: RaggedBatchWrapper) -> torch.Tensor: + """ + Performs unembedding of the hidden states to logits. This will only sample the final + token of each sequence. + """ + logits = self.unembed(hidden_states, + self._non_transformer.word_unembed, + ragged_batch_info, + gamma=self._non_transformer.final_norm) + + if self.tp_size > 1: + comm_buffer = empty_from(self._comm_logits, (self.tp_size, logits.shape[0], logits.shape[1])) + full_logits = empty_from(self._return_logits, (logits.shape[0], self.vocab_size)) + + dist.all_gather_into_tensor(comm_buffer, logits, group=self._base_mp_group) + + full_logits.copy_(comm_buffer.permute(1, 0, 2).reshape(logits.shape[0], self.vocab_size)) + + return full_logits + else: + return logits + + def forward(self, wrapped_batch: RaggedBatchWrapper) -> torch.Tensor: + + residual = self._forward_embed(wrapped_batch) + + residual, hidden_states = self.norm(residual, None, self._transformer[0].attn_norm_gamma, beta=None) + + for layer_idx in range(self.num_layers): + residual, hidden_states = self._forward_transformer_layer(layer_idx, residual, hidden_states, + wrapped_batch) + + return self._forward_unembed(residual, wrapped_batch) diff --git a/deepspeed/inference/v2/model_implementations/qwen_v2/policy.py b/deepspeed/inference/v2/model_implementations/qwen_v2/policy.py new file mode 100644 index 000000000000..9c5db2ba0065 --- /dev/null +++ b/deepspeed/inference/v2/model_implementations/qwen_v2/policy.py @@ -0,0 +1,31 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from typing import Any + +from ...config_v2 import RaggedInferenceEngineConfig +from ..inference_policy_base import ContainerMap, InferenceV2Policy +from .container import Qwen2NonTransformerContainer, Qwen2TransformerContainer +from .model import Qwen2InferenceModel + + +class Qwen2Policy(InferenceV2Policy): + + def instantiate_model(self, engine_config: RaggedInferenceEngineConfig, mp_group: Any) -> Qwen2InferenceModel: + return Qwen2InferenceModel(config=self._model_config, engine_config=engine_config, base_mp_group=mp_group) + + def build_container_map(self) -> ContainerMap: + map = ContainerMap() + + transformer_containers = [Qwen2TransformerContainer(self.model) for _ in range(self.model.num_layers)] + + map.set_transformer_params(['model.layers'], transformer_containers) + + map.set_non_transformer_params(Qwen2NonTransformerContainer(self.model)) + + map.set_unmapped_params( + [f'model.layers.{i}.self_attn.rotary_emb.inv_freq' for i in range(self.model.num_layers)]) + + return map diff --git a/deepspeed/inference/v2/model_implementations/qwen_v2_moe/__init__.py b/deepspeed/inference/v2/model_implementations/qwen_v2_moe/__init__.py new file mode 100644 index 000000000000..23e06a770023 --- /dev/null +++ b/deepspeed/inference/v2/model_implementations/qwen_v2_moe/__init__.py @@ -0,0 +1,6 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from .policy import Qwen2MoePolicy diff --git a/deepspeed/inference/v2/model_implementations/qwen_v2_moe/container.py b/deepspeed/inference/v2/model_implementations/qwen_v2_moe/container.py new file mode 100644 index 000000000000..e499379da7e3 --- /dev/null +++ b/deepspeed/inference/v2/model_implementations/qwen_v2_moe/container.py @@ -0,0 +1,103 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +# Create a container object to save model-specific tensors using the policy file above. + +from ..common_parameters import * +from ..layer_container_base import LayerContainer +''' + # HF Qwen2-57B-A14B model looks like this: + +Qwen2MoeForCausalLM( + (model): Qwen2MoeModel( + (embed_tokens): Embedding(151936, 3584) + (layers): ModuleList( + (0-27): 28 x Qwen2MoeDecoderLayer( + (self_attn): Qwen2MoeSdpaAttention( + (q_proj): Linear(in_features=3584, out_features=3584, bias=True) + (k_proj): Linear(in_features=3584, out_features=512, bias=True) + (v_proj): Linear(in_features=3584, out_features=512, bias=True) + (o_proj): Linear(in_features=3584, out_features=3584, bias=False) + (rotary_emb): Qwen2MoeRotaryEmbedding() + ) + (mlp): Qwen2MoeSparseMoeBlock( + (gate): Linear(in_features=3584, out_features=64, bias=False) + (experts): ModuleList( + (0-63): 64 x Qwen2MoeMLP( + (gate_proj): Linear(in_features=3584, out_features=2560, bias=False) + (up_proj): Linear(in_features=3584, out_features=2560, bias=False) + (down_proj): Linear(in_features=2560, out_features=3584, bias=False) + (act_fn): SiLU() + ) + ) + (shared_expert): Qwen2MoeMLP( + (gate_proj): Linear(in_features=3584, out_features=20480, bias=False) + (up_proj): Linear(in_features=3584, out_features=20480, bias=False) + (down_proj): Linear(in_features=20480, out_features=3584, bias=False) + (act_fn): SiLU() + ) + (shared_expert_gate): Linear(in_features=3584, out_features=1, bias=False) + ) + (input_layernorm): Qwen2MoeRMSNorm((3584,), eps=1e-06) + (post_attention_layernorm): Qwen2MoeRMSNorm((3584,), eps=1e-06) + ) + ) + (norm): Qwen2MoeRMSNorm((3584,), eps=1e-06) + ) + (lm_head): Linear(in_features=3584, out_features=151936, bias=False) +) +''' + + +class Qwen2MoeTransformerContainer(LayerContainer): + """ + Transformer layer container for the Qwen2Moe model. + """ + qkv_w: UnfusedQKVParameter + qkv_b: UnfusedQKVParameter + attn_out_w: AttentionOutputParameter + moe_gate: MoEGatingWeightParameter + moe_mlp_1: UnfusedMoEGatedMLPParameter + moe_mlp_2: UnfusedMoEMLP2Parameter + shared_moe_mlp_1: GatedMLPParameter + shared_moe_mlp_2: MLP2Parameter + shared_moe_gate: MoEGatingWeightParameter + attn_norm_gamma: NormParameter + mlp_norm_gamma: NormParameter + + PARAM_MAPPING = { + "self_attn.q_proj.weight": "qkv_w.q_params", + "self_attn.k_proj.weight": "qkv_w.k_params", + "self_attn.v_proj.weight": "qkv_w.v_params", + "self_attn.q_proj.bias": "qkv_b.q_params", + "self_attn.k_proj.bias": "qkv_b.k_params", + "self_attn.v_proj.bias": "qkv_b.v_params", + "self_attn.o_proj.weight": "attn_out_w.params", + "mlp.gate.weight": "moe_gate.params", + "mlp.experts.*.gate_proj.weight": "moe_mlp_1.gating_experts", + "mlp.experts.*.up_proj.weight": "moe_mlp_1.up_experts", + "mlp.experts.*.down_proj.weight": "moe_mlp_2.experts", + "mlp.shared_expert.gate_proj.weight": "shared_moe_mlp_1.gate_params", + "mlp.shared_expert.up_proj.weight": "shared_moe_mlp_1.up_params", + "mlp.shared_expert.down_proj.weight": "shared_moe_mlp_2.params", + "mlp.shared_expert_gate.weight": "shared_moe_gate.params", + "input_layernorm.weight": "attn_norm_gamma.params", + "post_attention_layernorm.weight": "mlp_norm_gamma.params", + } + + +class Qwen2MoeNonTransformerContainer(LayerContainer): + """ + Non-Transformer layer container for the Qwen2Moe model. + """ + word_emb: EmbeddingParameter + word_unembed: UnembedParameter + final_norm: NormParameter + + PARAM_MAPPING = { + "model.embed_tokens.weight": "word_emb.params", + "model.norm.weight": "final_norm.params", + "lm_head.weight": "word_unembed.params", + } diff --git a/deepspeed/inference/v2/model_implementations/qwen_v2_moe/model.py b/deepspeed/inference/v2/model_implementations/qwen_v2_moe/model.py new file mode 100644 index 000000000000..c7841b24e5fc --- /dev/null +++ b/deepspeed/inference/v2/model_implementations/qwen_v2_moe/model.py @@ -0,0 +1,359 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from typing import Iterable, Optional, Tuple + +import torch + +import deepspeed.comm as dist + +from ...allocator import empty_from +from ...config_v2 import RaggedInferenceEngineConfig +from ...inference_utils import ActivationType, DtypeEnum +from ...model_implementations import * +from ...modules.configs import * +from ...modules.interfaces import * +from ...modules import heuristics +from ...ragged import RaggedBatchWrapper +from ..inference_model_base import ( + DSModelImplementationConfig, + MPType, +) + +from .container import Qwen2MoeNonTransformerContainer, Qwen2MoeTransformerContainer + + +class Qwen2MoeInferenceModel(DSMoETransformerModelBase): + """ + Inference model implementation for Qwen2MoE models. + """ + + _non_transformer: Optional[Qwen2MoeNonTransformerContainer] + """ + Embed + unembed container. Specializing the type annotation. + """ + + _transformer: Optional[Iterable[Qwen2MoeTransformerContainer]] + """ + Per-layer transformer container. Specializing the type annotation. + """ + """ + Properties ineherited from `DSInferenceModelBase` + """ + + @property + def max_sequence_length(self) -> int: + return self._config.max_position_embeddings + + """ + Properties ineherited from `DSTransformerModelBase` + """ + + @property + def num_layers(self) -> int: + return self._config.num_hidden_layers + + @property + def model_dim(self) -> int: + return self._config.hidden_size + + @property + def vocab_size(self) -> int: + return self._config.vocab_size + + @property + def head_size(self) -> int: + return self.model_dim // self.n_heads + + @property + def n_heads(self) -> int: + return self._config.num_attention_heads + + @property + def intermediate_dim(self) -> int: + return self._config.shared_expert_intermediate_size + + @property + def n_heads_kv(self) -> int: + return self._config.num_key_value_heads + + @property + def activation_dtype(self) -> DtypeEnum: + # TODO(ZonePG): bf16 inference results may be different from huggingface bf16, + # because in rms_norm, Qwen still use float() instead of bf16 + # if self._config.torch_dtype == torch.float16: + # return DtypeEnum.fp16 + # elif self._config.torch_dtype == torch.bfloat16: + # return DtypeEnum.bf16 + # else: + # raise NotImplementedError("Only fp16 and bf16 are supported") + return DtypeEnum.fp16 + + @property + def mlp_activation_fn(self) -> ActivationType: + return ActivationType.SiGLU + + @property + def norm_type(self) -> NormTypeEnum: + return NormTypeEnum.RMSNorm + + @property + def positional_embedding_type(self) -> PositionalEmbeddingType: + return PositionalEmbeddingType.rotate_half + + @property + def positional_embedding_config(self) -> Optional[RotateHalfConfig]: + return RotateHalfConfig(theta_base=self._config.rope_theta) + + """ + Inherited from `DSMoETransformerModelBase` + """ + + @property + def n_experts(self) -> int: + return self._config.num_experts + + @property + def n_top_k(self) -> int: + return self._config.num_experts_per_tok + + @property + def normalize_expert_scores(self) -> bool: + return self._config.norm_topk_prob + + def make_moe_layer(self) -> None: + """ + Instantiates the MoE layer for the model. This sets the `self.moe` attribute. + """ + sharded_dim = sharded_intermediate_dim(self.intermediate_dim // self.n_top_k, self.tp_size, self.tp_rank) + + moe_config = DSMoEConfig( + max_tokens=self._engine_config.state_manager.max_ragged_batch_size, + model_dim=self.model_dim, + intermediate_features=sharded_dim, + activation=self.mlp_activation_fn, + n_experts=self.n_experts, + top_k=self.n_top_k, + input_dtype=self.activation_dtype, + output_dtype=self.activation_dtype, + normalize_scores=self.normalize_expert_scores, + ) + + self.moe = heuristics.instantiate_moe(moe_config, self._engine_config) + + ######### MLP 1 ######### + def make_shared_expert_mlp_1_layer(self) -> None: + """ + Instantiates the linear projection layer for the first MLP in the feedforward network. + This sets the `self.mlp_1` attribute. + """ + shard_size = sharded_intermediate_dim(self.intermediate_dim, self.tp_size, self.tp_rank) + + linear_config = DSLinearConfig( + max_tokens=self._engine_config.state_manager.max_ragged_batch_size, + in_channels=self.model_dim, + out_channels=shard_size, + activation=self.mlp_activation_fn, + input_dtype=self.activation_dtype, + output_dtype=self.activation_dtype, + ) + + self.shared_expert_mlp_1 = heuristics.instantiate_linear(linear_config, self._engine_config) + + ######### MLP 2 ######### + def make_shared_expert_mlp_2_layer(self) -> None: + """ + Instantiates the linear projection layer for the second MLP in the feedforward network. + This sets the `self.mlp_2` attribute. + """ + shard_size = sharded_intermediate_dim(self.intermediate_dim, self.tp_size, self.tp_rank) + + linear_config = DSLinearConfig( + max_tokens=self._engine_config.state_manager.max_ragged_batch_size, + in_channels=shard_size, + out_channels=self.model_dim, + input_dtype=self.activation_dtype, + output_dtype=self.activation_dtype, + ) + + self.shared_expert_mlp_2 = heuristics.instantiate_linear(linear_config, self._engine_config) + + ######### MLP 2 ######### + def make_shared_expert_gate_layer(self) -> None: + """ + Instantiates the linear projection layer for the second MLP in the feedforward network. + This sets the `self.mlp_2` attribute. + """ + shard_size = sharded_intermediate_dim(self.model_dim, self.tp_size, self.tp_rank) + + linear_config = DSLinearConfig( + max_tokens=self._engine_config.state_manager.max_ragged_batch_size, + in_channels=shard_size, + out_channels=8, + input_dtype=self.activation_dtype, + output_dtype=self.activation_dtype, + ) + + self.shared_expert_gate = heuristics.instantiate_linear(linear_config, self._engine_config) + + def make_norm_layer(self) -> None: + """ + Instantiates the normalization layer for the model. This sets the `self.norm` attribute. + + TODO(cmikeh2): In the future we'll distinguish between the different norm objects, + but for now we'll just use the same one for all of them. + """ + norm_config = DSNormConfig( + max_tokens=self._engine_config.state_manager.max_ragged_batch_size, + type=self.norm_type, + channels=self.model_dim, + residual_dtype=self.activation_dtype, + input_dtype=self.activation_dtype, + output_dtype=self.activation_dtype, + eps=self._config.rms_norm_eps, + ) + + self.norm = heuristics.instantiate_pre_norm(norm_config, self._engine_config) + + """ + Model implementation + """ + + def __init__(self, config: DSModelImplementationConfig, engine_config: RaggedInferenceEngineConfig, + base_mp_group: MPType) -> None: + """ + Base implementation for initialization. By default, this will initialize + the traditional components of a transformer model: + - Embedding + - QKV projection + - Self attention + - Attention output projection + - Feed forward network + - Normalization + - Unembedding + + Arguments: + config (DSModelImplementationConfig): Model-specific configuration. No assumptions + should be made about this config that are not closely tied to the specific + model implementation. + engine_config (RaggedInferenceEngineConfig): Engine configuration. + base_mp_group (MPType): Base communication group for Tensor-parallel inference. + """ + super().__init__(config, engine_config, base_mp_group) + + self.make_norm_layer() + self.make_qkv_layer() + self.make_attn_layer() + self.make_attn_out_layer() + self.make_moe_layer() + self.make_shared_expert_mlp_1_layer() + self.make_shared_expert_mlp_2_layer() + self.make_shared_expert_gate_layer() + self.make_embedding_layer() + self.make_unembedding_layer() + self._kv_cache_config = None + + """ + Forward implementations + """ + + def _forward_embed(self, ragged_batch: RaggedBatchWrapper) -> torch.Tensor: + """ + Performs the embedding lookup prior to running the transformer of the model. + + Arguments: + ragged_batch (RaggedBatchWrapper): The batch to embed. + + Returns: + torch.Tensor: The embedded batch. + """ + embed = self.embed(ragged_batch, self._non_transformer.word_emb) + + if embed.shape[-1] != self.model_dim: + raise ValueError(f"Embedding output shape {embed.shape} does not match model_dim {self.model_dim}") + + return embed + + def _forward_transformer(self, layer_idx: int, residual: torch.Tensor, hidden_states: torch.Tensor, + ragged_batch_info: RaggedBatchWrapper) -> Tuple[torch.Tensor, torch.Tensor]: + """ + Executes one (slightly offset) layer of the transformer. This implementation does a peak-ahead + optimization to fuse the layer norm of the next layer into the current layer. + + Arguments: + layer_idx (int): The index of the layer to execute. + residual (torch.Tensor): The residual tensor from the previous layer. + hidden_states (torch.Tensor): The hidden states from the previous layer. This is the + hidden states after pre normalization. + ragged_batch_info (RaggedBatchWrapper): The batch metadata. + """ + # TODO(cmikeh2): Distribute ragged_batch_info to all modules + + cur_params = self._transformer[layer_idx] + kv_cache = self.state_manager.get_cache(layer_idx) + + hidden_states = self.qkv(hidden_states, cur_params.qkv_w, b=cur_params.qkv_b) + hidden_states = self.attn(hidden_states, kv_cache, ragged_batch_info) + hidden_states = self.attn_out(hidden_states, cur_params.attn_out_w, b=None) + + if self.tp_size > 1: + dist.all_reduce(hidden_states, group=self._base_mp_group) + + residual, hidden_states = self.norm(residual, hidden_states, cur_params.mlp_norm_gamma, beta=None) + + shared_expert_output = self.shared_expert_mlp_1(hidden_states, cur_params.shared_moe_mlp_1, b=None) + shared_expert_output = self.shared_expert_mlp_2(shared_expert_output, cur_params.shared_moe_mlp_2, b=None) + shared_expert_gate_output = self.shared_expert_gate(hidden_states, cur_params.shared_moe_gate, b=None)[..., :1] + # shared_expert_gate_output shape[-1] is 1 + shared_expert_output.mul_(torch.sigmoid(shared_expert_gate_output)) + hidden_states = self.moe(hidden_states, ragged_batch_info, cur_params.moe_gate, cur_params.moe_mlp_1, + cur_params.moe_mlp_2) + hidden_states.add_(shared_expert_output) + + if self.tp_size > 1: + dist.all_reduce(hidden_states, group=self._base_mp_group) + + if layer_idx != self.num_layers - 1: + next_params = self._transformer[layer_idx + 1] + residual, hidden_states = self.norm(residual, hidden_states, next_params.attn_norm_gamma, beta=None) + else: + # On last layer, we just need to perform the residual add. Adding into the residual + # here is safe. + residual.add_(hidden_states) + + return residual, hidden_states + + def _forward_unembed(self, hidden_states: torch.Tensor, ragged_batch_info: RaggedBatchWrapper) -> torch.Tensor: + """ + Performs unembedding of the hidden states to logits. This will only sample the final + token of each sequence. + """ + logits = self.unembed(hidden_states, + self._non_transformer.word_unembed, + ragged_batch_info, + gamma=self._non_transformer.final_norm) + + if self.tp_size > 1: + comm_buffer = empty_from(self._comm_logits, (self.tp_size, logits.shape[0], logits.shape[1])) + full_logits = empty_from(self._return_logits, (logits.shape[0], self.vocab_size)) + + dist.all_gather_into_tensor(comm_buffer, logits, group=self._base_mp_group) + + full_logits.copy_(comm_buffer.permute(1, 0, 2).reshape(logits.shape[0], self.vocab_size)) + + return full_logits + else: + return logits + + def forward(self, wrapped_batch: RaggedBatchWrapper) -> torch.Tensor: + + residual = self._forward_embed(wrapped_batch) + + residual, hidden_states = self.norm(residual, None, self._transformer[0].attn_norm_gamma, beta=None) + + for layer_idx in range(self.num_layers): + residual, hidden_states = self._forward_transformer(layer_idx, residual, hidden_states, wrapped_batch) + + return self._forward_unembed(residual, wrapped_batch) diff --git a/deepspeed/inference/v2/model_implementations/qwen_v2_moe/policy.py b/deepspeed/inference/v2/model_implementations/qwen_v2_moe/policy.py new file mode 100644 index 000000000000..630bafe993a8 --- /dev/null +++ b/deepspeed/inference/v2/model_implementations/qwen_v2_moe/policy.py @@ -0,0 +1,30 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from typing import Any + +from ...config_v2 import RaggedInferenceEngineConfig +from ..inference_policy_base import ContainerMap, InferenceV2Policy +from .container import Qwen2MoeNonTransformerContainer, Qwen2MoeTransformerContainer +from .model import Qwen2MoeInferenceModel + + +class Qwen2MoePolicy(InferenceV2Policy): + + def instantiate_model(self, engine_config: RaggedInferenceEngineConfig, mp_group: Any) -> Qwen2MoeInferenceModel: + return Qwen2MoeInferenceModel(config=self._model_config, engine_config=engine_config, base_mp_group=mp_group) + + def build_container_map(self) -> ContainerMap: + map = ContainerMap() + + transformer_containers = [Qwen2MoeTransformerContainer(self.model) for _ in range(self.model.num_layers)] + + map.set_transformer_params(['model.layers'], transformer_containers) + + map.set_non_transformer_params(Qwen2MoeNonTransformerContainer(self.model)) + + map.set_unmapped_params([]) + + return map diff --git a/deepspeed/inference/v2/modules/configs/__init__.py b/deepspeed/inference/v2/modules/configs/__init__.py index 19b9fb99ddea..3429e69b47de 100644 --- a/deepspeed/inference/v2/modules/configs/__init__.py +++ b/deepspeed/inference/v2/modules/configs/__init__.py @@ -3,7 +3,12 @@ # DeepSpeed Team -from .attention_configs import (DSSelfAttentionConfig, PositionalEmbeddingType, MaskingType) +from .attention_configs import ( + DSSelfAttentionConfig, + PositionalEmbeddingType, + MaskingType, + RotateHalfConfig, +) from .embedding_config import DSEmbeddingsConfig from .linear_config import DSLinearConfig from .moe_config import DSMoEConfig diff --git a/deepspeed/inference/v2/modules/configs/attention_configs.py b/deepspeed/inference/v2/modules/configs/attention_configs.py index bcdc3d2613d5..be6a3535024c 100644 --- a/deepspeed/inference/v2/modules/configs/attention_configs.py +++ b/deepspeed/inference/v2/modules/configs/attention_configs.py @@ -4,10 +4,11 @@ # DeepSpeed Team from enum import Enum -from typing import Dict +from typing import Dict, Optional from ...inference_utils import DtypeEnum from ...modules.ds_module import DSModuleConfig +from deepspeed.runtime.config_utils import DeepSpeedConfigModel class PositionalEmbeddingType(Enum): @@ -25,6 +26,28 @@ class PositionalEmbeddingType(Enum): alibi = "alibi" +class RotateHalfConfig(DeepSpeedConfigModel): + + use_trained_freqs: bool = False + """ + Whether to use a passed `trained_freqs` tensor for the attention implementation + or to use default synthesized frequencies. + """ + + theta_base: float = 10_000.0 + """ + Base for theta. This will only be used if `use_trained_freqs` is False. + """ + + rotate_dim: Optional[int] = None + """ + How many neurons to rotate. If None, then all neurons will be rotated. Many external configs + will set this number to half the head dimension and then internally multiply by 2. To make it + more clear to understand what is happening (rotate_dim < head_dim -> then only partial rotation), + we do not do this multiplication internally. + """ + + class MaskingType(Enum): # No masking @@ -79,4 +102,9 @@ class DSSelfAttentionConfig(DSModuleConfig): positional_embedding_type: PositionalEmbeddingType = PositionalEmbeddingType.none # Positional embedding args - positional_embedding_args: Dict = {} + positional_embedding_config: Optional[RotateHalfConfig] = None + """ + To extend this for the other positional embedding types, we would need to add + new configs for each type (as necessary) and annotate this with the + Union[RotateHalfConfig, OtherConfig, ...] type. + """ diff --git a/deepspeed/inference/v2/modules/configs/moe_config.py b/deepspeed/inference/v2/modules/configs/moe_config.py index 1a88d54af19f..7bc944f55e17 100644 --- a/deepspeed/inference/v2/modules/configs/moe_config.py +++ b/deepspeed/inference/v2/modules/configs/moe_config.py @@ -48,3 +48,9 @@ class DSMoEConfig(DSModuleConfig): """ Activation function of the first MLP1 """ + + normalize_scores: bool = False + """ + Whether normalization is applied to the selected scores. If true, the module + should rescale the scores such that their sum is 1.0. + """ diff --git a/deepspeed/inference/v2/modules/heuristics.py b/deepspeed/inference/v2/modules/heuristics.py index b89e95c0d834..f719e299a4b2 100644 --- a/deepspeed/inference/v2/modules/heuristics.py +++ b/deepspeed/inference/v2/modules/heuristics.py @@ -86,8 +86,24 @@ def instantiate_linear(linear_config: DSLinearConfig, engine_config: RaggedInfer A linear module implementing the given configuration. """ - # Currently, we only have one implementation, so we just return it. - config = ConfigBundle(name="blas_fp_linear", config=linear_config) + quantization_mode = engine_config.quantization.quantization_mode + if quantization_mode is None: + config = ConfigBundle(name="blas_fp_linear", config=linear_config) + else: + # Currently, we only support ``quantized_wf6af16_linear`` on NVIDIA Ampere GPUs. + if quantization_mode == "wf6af16": + import torch + if not torch.cuda.is_available(): #ignore-cuda + raise ValueError("WF6AF16 quantization is only supported on CUDA") + else: + is_rocm_pytorch = hasattr(torch.version, 'hip') and torch.version.hip is not None + if is_rocm_pytorch: + raise ValueError("WF6AF16 quantization is only supported on NVIDIA GPUs") + elif torch.cuda.get_device_properties(0).major != 8: #ignore-cuda + raise ValueError("WF6AF16 quantization is only supported on Ampere architectures") + config = ConfigBundle(name="quantized_wf6af16_linear", config=linear_config) + else: + raise ValueError(f"Unsupported quantization mode: {quantization_mode}") return DSLinearRegistry.instantiate_config(config) diff --git a/deepspeed/inference/v2/modules/implementations/attention/dense_blocked_attention.py b/deepspeed/inference/v2/modules/implementations/attention/dense_blocked_attention.py index bb482f0c58d6..3515b3c2b690 100644 --- a/deepspeed/inference/v2/modules/implementations/attention/dense_blocked_attention.py +++ b/deepspeed/inference/v2/modules/implementations/attention/dense_blocked_attention.py @@ -68,9 +68,16 @@ def __init__(self, config: DSSelfAttentionConfig, implementation_config: Dict[st Args: config (DSSelfAttentionConfig): The self attention config for all attention DSModules. - implementation_config (Dict[str, Any]): The implementation config for this DSModule may - contain a `trained_freqs` key. If passed, the implementation will expect a `trained_freqs` - tensor in the `forward` method and will not synthesize the frequencies internally. + implementation_config (Dict[str, Any]): + There are two (dependent) potential components in the implementtion config. + + 1. `trained_freqs` - If the embedding weights for RoPE are trained, the implementation + config should contain {'trained_freqs': True}. This will mean the implementation will + expect a `trained_freqs` tensor in the `forward` method and will not synthesize the + values internally. + + 2. `theta_base` - The base value for synthesized frequencies in the rotary embeddings. + This will only be used if `trained_freqs` is False or not present in the `implementation_config`. If this is not included, the default value of 10000.0 will be used. """ super().__init__(config, implementation_config) @@ -79,14 +86,20 @@ def __init__(self, config: DSSelfAttentionConfig, implementation_config: Dict[st self._kv_copy = LinearBlockedKVCopy(self._config.head_size, self._config.n_heads_q, self._config.n_heads_kv, self._config.input_dtype) elif embed_type == PositionalEmbeddingType.rotate_half: - use_trained_freqs = "trained_freqs" in self._config.positional_embedding_args and self._config.positional_embedding_args[ - "trained_freqs"] - if use_trained_freqs: + rotary_config = config.positional_embedding_config + assert rotary_config is not None, "Rotary config must be provided if using rotate_half as Positional Embedding Type." + + if rotary_config.use_trained_freqs: + # Theta and rotary dim are effectively embedded into either the values (theta) or the shape (rotary_dim) + # of the trained_freqs tensor. self._kv_copy = BlockedTrainedRotaryEmbeddings(self._config.head_size, self._config.n_heads_q, self._config.n_heads_kv, self._config.input_dtype) else: + theta_base = rotary_config.theta_base + rotary_dim = rotary_config.rotate_dim if rotary_config.rotate_dim is not None else self._config.head_size self._kv_copy = BlockedRotaryEmbeddings(self._config.head_size, self._config.n_heads_q, - self._config.n_heads_kv, self._config.input_dtype) + self._config.n_heads_kv, self._config.input_dtype, rotary_dim, + theta_base) self._softmax_scale = self._config.scale_factor diff --git a/deepspeed/inference/v2/modules/implementations/embedding/ragged_embedding.py b/deepspeed/inference/v2/modules/implementations/embedding/ragged_embedding.py index 6782bcae81c8..90cdd39d1be7 100644 --- a/deepspeed/inference/v2/modules/implementations/embedding/ragged_embedding.py +++ b/deepspeed/inference/v2/modules/implementations/embedding/ragged_embedding.py @@ -32,7 +32,7 @@ def supports_config(config: DSEmbeddingsConfig) -> bool: if config.use_token_type: return False - if config.output_normalization != None: + if config.output_normalization is not None: return False try: diff --git a/deepspeed/inference/v2/modules/implementations/linear/__init__.py b/deepspeed/inference/v2/modules/implementations/linear/__init__.py index e76aab71c4cf..0501af54c4e6 100644 --- a/deepspeed/inference/v2/modules/implementations/linear/__init__.py +++ b/deepspeed/inference/v2/modules/implementations/linear/__init__.py @@ -4,3 +4,4 @@ # DeepSpeed Team from .blas_fp_linear import BlasFPLinear +from .quantized_linear import QuantizedWf6Af16Linear, fp_quantize diff --git a/deepspeed/inference/v2/modules/implementations/linear/quantized_linear.py b/deepspeed/inference/v2/modules/implementations/linear/quantized_linear.py new file mode 100644 index 000000000000..933cf55b2391 --- /dev/null +++ b/deepspeed/inference/v2/modules/implementations/linear/quantized_linear.py @@ -0,0 +1,205 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from typing import Any, Dict, Optional + +import torch + +from deepspeed.accelerator import get_accelerator +from deepspeed.ops.op_builder import InferenceCoreBuilder +from ....allocator import empty_from +from ....inference_utils import is_gated +from ....kernels.core_ops import ( + CUDAWf6Af16Linear, + CUDABiasActivation, + CUDAGatedActivation, +) + +from ...interfaces import DSLinearBase, DSLinearRegistry +from ...configs import DSLinearConfig +from ....inference_parameter import InferenceParameter + + +def fp_quantize(input: torch.FloatTensor, + num_bits: int = 6, + exp_bits: int = 3, + min_value: torch.FloatTensor = None, + max_value: torch.FloatTensor = None, + group_size: int = -1): + """ + Args: + inputs (`torch.FloatTensor`) + The input which needs to be quantized + num_bits (int, >=4) + Number of bits to use for quantization + exp_bits: + fp exp_bits + min_value/max_vlue (torch.FloatTensor) + Used for static activation quantization + group_size (int) N + The quantization block size, each N numbers has its own scaling + factor and off-site. -1 means use the last dim as the group_size + Returns: + quantized_fake_fp6 + The quantized weights, in fp16 format and contains fp6 value. + scales + Quantization scales + """ + + try: + from qtorch.quant import float_quantize + except ImportError: + raise ImportError("Please install qtorch to use this function") + + assert (min_value is None and max_value is None) or (min_value is not None and max_value is not None) + + assert input.dtype == torch.float16 + + orig_device = input.device + input = input.to(torch.float32).to(get_accelerator().current_device()) + if num_bits == 6 and exp_bits == 3: # this is default + q_range = 28 + else: + raise NotImplementedError + + man_bits = num_bits - exp_bits - 1 + input_shape = input.shape + + if group_size == -1: + group_size = input_shape[-1] + else: + # Only support per-channel quantization + raise NotImplementedError + num_groups = input.numel() // group_size + input = input.reshape(num_groups, -1) + + if min_value is None: + max_input = torch.amax(torch.abs(input), dim=-1).view(num_groups, -1) + else: + max_input = torch.max(min_value.abs(), max_value) # .view(-1) + scales = max_input / q_range # q_range + 1 + scales[scales == 0] = 1 # avoid zero scales + scaled_input = input / scales + + quantized_fake_fp6 = float_quantize(scaled_input, exp_bits, man_bits, rounding="nearest") + + quantized_fake_fp6 = quantized_fake_fp6.reshape(input_shape).contiguous().to(torch.float16).to(orig_device) + scales = scales.to(torch.float16).to(orig_device) + # Now the dequantized value is quantized_fake_fp6 * scales + + return quantized_fake_fp6, scales + + +@DSLinearRegistry.register_module +class QuantizedWf6Af16Linear(DSLinearBase): + """ + Linear DSModule for FP6 weight-only quantization kernel, where weight is FP6 + and activation is FP16. + """ + + @staticmethod + def name(): + return 'quantized_wf6af16_linear' + + @staticmethod + def supports_config(config: DSLinearConfig) -> bool: + if config.input_dtype != config.output_dtype: + return False + + # As for fp6 data items, they are packed and stored in a set of fp16 + # tensors. E.g., 8 fp6 data items are stored in 3 fp16 tensor. + if config.input_dtype != torch.float16: + return False + + if is_gated(config.activation): + try: + _ = CUDAGatedActivation(config.out_channels, config.output_dtype, config.activation) + except ValueError: + return False + else: + try: + _ = CUDABiasActivation(config.out_channels, config.output_dtype, config.activation) + except ValueError: + return False + + return True + + def __init__(self, config: DSLinearConfig, implementation_config: Dict[str, Any]) -> None: + super().__init__(config, implementation_config) + + self._linear_impl = CUDAWf6Af16Linear() + + if is_gated(config.activation): + # In the FP6 kernel implementation, the MatMul is W * A, where W is + # the weight and A is activation. M is the output channel size. + self.out_channels = self._config.out_channels * 2 + self.in_channels = self._config.in_channels + self._is_gated = True + self._act_fn = CUDAGatedActivation(config.out_channels, config.output_dtype, config.activation) + self._double_buffer = torch.empty((config.max_tokens, config.out_channels * 2), + dtype=config.output_dtype, + device=get_accelerator().current_device()) + else: + self.out_channels = self._config.out_channels + self.in_channels = self._config.in_channels + self._is_gated = False + self._act_fn = CUDABiasActivation(config.out_channels, config.output_dtype, config.activation) + + self._output = torch.empty((config.max_tokens, config.out_channels), + dtype=config.output_dtype, + device=get_accelerator().current_device()) + + self.inf_module = InferenceCoreBuilder().load() + self.inf_module.create_handle() + self.preprocess_weight = self.inf_module.preprocess_weight + + self.quantizer = fp_quantize + + def transform_param(self, param: torch.Tensor) -> InferenceParameter: + """ + Converts param to same data type as input and output. + + Parameters: + param (torch.Tensor): Weight or bias tensor. + """ + # It expects that the quantization scales are store in the attribute `scales`. + + if param.ndim == 1: # bias, do nothing + return InferenceParameter.initialize(param) + + quantized_fake_fp6, scales = self.quantizer(param, num_bits=6, exp_bits=3) + + # This is for debugging, will delete before release. + assert (quantized_fake_fp6.dtype == torch.float16) + assert quantized_fake_fp6.shape[0] == self.out_channels + assert scales.numel() == self.out_channels + + weights_2bit, weights_4bit = self.preprocess_weight(quantized_fake_fp6) + + return InferenceParameter.initialize(weights_2bit, weights_4bit=weights_4bit, scales=scales) + + def forward(self, hidden_states: torch.Tensor, w: torch.Tensor, b: Optional[torch.Tensor] = None) -> torch.Tensor: + weights_2bit = w + weights_4bit = w.weights_4bit + scales = w.scales + output = empty_from(self._output, (hidden_states.shape[0], self._config.out_channels)) + if self._is_gated: + staging_output = empty_from(self._double_buffer, (hidden_states.shape[0], self.out_channels)) + self._linear_impl(staging_output, hidden_states, weights_2bit, weights_4bit, scales, self.out_channels, + hidden_states.shape[0], self.in_channels) + self._act_fn(output, staging_output, b) + else: + self._linear_impl(output, hidden_states, weights_2bit, weights_4bit, scales, self.out_channels, + hidden_states.shape[0], self.in_channels) + self._act_fn(output, b) + + return output + + @property + def output(self) -> torch.Tensor: + """ + Return the padded, pre-allocated output Tensor. + """ + return self._output diff --git a/deepspeed/inference/v2/modules/implementations/moe/cutlass_multi_gemm.py b/deepspeed/inference/v2/modules/implementations/moe/cutlass_multi_gemm.py index e43a737515ed..a9b01d1233cd 100644 --- a/deepspeed/inference/v2/modules/implementations/moe/cutlass_multi_gemm.py +++ b/deepspeed/inference/v2/modules/implementations/moe/cutlass_multi_gemm.py @@ -9,12 +9,12 @@ from deepspeed.accelerator import get_accelerator from ....allocator import empty_from -from ....inference_utils import ActivationType -from ....kernels.core_ops import BlasLibLinear +from ....inference_utils import ActivationType, is_gated +from ....kernels.core_ops import BlasLibLinear, CUDAGatedActivation from ....kernels.ragged_ops import ( MoEGather, MoEScatter, - RaggedTop1Gating, + RaggedTopKGating, ) from ....ragged import RaggedBatchWrapper @@ -42,11 +42,7 @@ def supports_config(config: DSMoEConfig) -> bool: if config.input_dtype != torch.float16 and config.input_dtype != torch.bfloat16: return False - if config.top_k != 1: - return False - - if config.activation in [ActivationType.GEGLU, ActivationType.ReGLU, ActivationType.SiGLU]: - # Currently not supporting gated activations in MoE + if config.top_k != 1 and config.top_k != 2 and config.top_k != 4 and config.top_k != 8: return False return True @@ -57,15 +53,24 @@ def __init__(self, config: DSMoEConfig, implementation_config: Dict[str, Any]) - # Convenience variables for frequently accessed items. self.max_tokens = self._config.max_tokens self.n_experts = self._config.n_experts + self.n_top_k = self._config.top_k self.intermediate_dim = self._config.intermediate_features - self._mlp_1 = MoEGEMM(fp_dtype=implementation_config['weight_dtype'], act_fn=config.activation) + moe_op_act_fn = ActivationType.IDENTITY if is_gated(self._config.activation) else self._config.activation + + self._mlp_1 = MoEGEMM(fp_dtype=implementation_config['weight_dtype'], act_fn=moe_op_act_fn) self._mlp_2 = MoEGEMM(fp_dtype=implementation_config['weight_dtype'], act_fn=ActivationType.IDENTITY) + if is_gated(self._config.activation): + self._activation = CUDAGatedActivation(self._config.model_dim, self._config.input_dtype, + self._config.activation) + else: + self._activation = None + self._gate_proj = BlasLibLinear(self._config.input_dtype) - self._top_1_gate = RaggedTop1Gating(config.input_dtype) + self._top_1_gate = RaggedTopKGating(config.input_dtype) self._moe_scatter = MoEScatter(config.input_dtype, config.model_dim) - self._moe_gather = MoEGather(config.input_dtype, config.model_dim) + self._moe_gather = MoEGather(config.input_dtype, config.model_dim, config.normalize_scores) self._create_buffers() @@ -78,32 +83,38 @@ def _create_buffers(self): self._expert_counts = torch.empty((self.n_experts, ), dtype=torch.int32, device=get_accelerator().current_device()) - self._scores = torch.empty((self._config.max_tokens, ), + self._scores = torch.empty((self._config.max_tokens, self.n_top_k), dtype=torch.float32, device=get_accelerator().current_device()) - self._assignments = torch.empty((self._config.max_tokens, ), + self._assignments = torch.empty((self._config.max_tokens, self.n_top_k), dtype=torch.int32, device=get_accelerator().current_device()) - self._offsets = torch.empty((self._config.max_tokens, ), + self._offsets = torch.empty((self._config.max_tokens, self.n_top_k), dtype=torch.int32, device=get_accelerator().current_device()) # Scatter buffers - self._moe_input = torch.empty((self._config.max_tokens, self._config.model_dim), + self._moe_input = torch.empty((self._config.max_tokens * self.n_top_k, self._config.model_dim), dtype=self._config.input_dtype, device=get_accelerator().current_device()) self._expert_cumsum = torch.empty((self._config.n_experts, ), dtype=torch.int64, device=get_accelerator().current_device()) - self._mapped_slots = torch.empty((self._config.max_tokens, ), + self._mapped_slots = torch.empty((self._config.max_tokens, self.n_top_k), dtype=torch.int32, device=get_accelerator().current_device()) # GEMM Buffers - self._intermediate = torch.empty((self._config.max_tokens, self._config.intermediate_features), + self._intermediate = torch.empty((self._config.max_tokens * self.n_top_k, self._config.intermediate_features), dtype=self._config.output_dtype, device=get_accelerator().current_device()) - self._output_unordered = torch.empty((self._config.max_tokens, self._config.model_dim), + if self._activation is not None: + self._gated_intermediate = torch.empty( + (self._config.max_tokens * self.n_top_k, self._config.intermediate_features * 2), + dtype=self._config.output_dtype, + device=get_accelerator().current_device()) + + self._output_unordered = torch.empty((self._config.max_tokens * self.n_top_k, self._config.model_dim), dtype=self._config.output_dtype, device=get_accelerator().current_device()) @@ -167,11 +178,11 @@ def _gate(self, hidden_states: torch.Tensor, batch_metadata: RaggedBatchWrapper, # Get views on the buffers for gating logits = empty_from(self._logits, (hidden_states.shape[0], self._logits.shape[-1])) - scores = empty_from(self._scores, (hidden_states.shape[0], )) - assignments = empty_from(self._assignments, (hidden_states.shape[0], )) - offsets = empty_from(self._offsets, (hidden_states.shape[0], )) - mapped_slots = empty_from(self._mapped_slots, (hidden_states.shape[0], )) - moe_input = empty_from(self._moe_input, (hidden_states.shape[0], self._moe_input.shape[-1])) + scores = empty_from(self._scores, (hidden_states.shape[0], self.n_top_k)) + assignments = empty_from(self._assignments, (hidden_states.shape[0], self.n_top_k)) + offsets = empty_from(self._offsets, (hidden_states.shape[0], self.n_top_k)) + mapped_slots = empty_from(self._mapped_slots, (hidden_states.shape[0], self.n_top_k)) + moe_input = empty_from(self._moe_input, (hidden_states.shape[0] * self.n_top_k, self._moe_input.shape[-1])) self._gate_proj(logits, hidden_states, gate_w) self._expert_counts.zero_() @@ -200,18 +211,31 @@ def forward(self, moe_input, expert_cumsum, scores, mapped_slots = self._gate(hidden_states, batch_metadata, gate_w) # Get views on the buffers for GEMM - intermediate = empty_from(self._intermediate, (hidden_states.shape[0], self._intermediate.shape[-1])) + intermediate = empty_from(self._intermediate, + (hidden_states.shape[0] * self.n_top_k, self._intermediate.shape[-1])) output_unordered = empty_from(self._output_unordered, - (hidden_states.shape[0], self._output_unordered.shape[-1])) + (hidden_states.shape[0] * self.n_top_k, self._output_unordered.shape[-1])) output = empty_from(self._output, (hidden_states.shape[0], self._output.shape[-1])) - self._mlp_1( - intermediate, - moe_input, - mlp_1_w, - expert_cumsum, - mlp_1_b, - ) + if self._activation is not None: + gated_intermediate = empty_from( + self._gated_intermediate, (hidden_states.shape[0] * self.n_top_k, self._gated_intermediate.shape[-1])) + self._mlp_1( + gated_intermediate, + moe_input, + mlp_1_w, + expert_cumsum, + mlp_1_b, + ) + self._activation(intermediate, gated_intermediate) + else: + self._mlp_1( + intermediate, + moe_input, + mlp_1_w, + expert_cumsum, + mlp_1_b, + ) self._mlp_2( output_unordered, diff --git a/deepspeed/inference/v2/modules/implementations/unembed/ragged_unembed.py b/deepspeed/inference/v2/modules/implementations/unembed/ragged_unembed.py index 40d70cbd4df7..36130902c665 100644 --- a/deepspeed/inference/v2/modules/implementations/unembed/ragged_unembed.py +++ b/deepspeed/inference/v2/modules/implementations/unembed/ragged_unembed.py @@ -9,8 +9,8 @@ from deepspeed.accelerator import get_accelerator from ....allocator import empty_from -from ....inference_utils import DtypeEnum -from ....kernels.core_ops import CUDAFPLN, BlasLibLinear, CUDARMSNorm +from ....inference_utils import DtypeEnum, ActivationType +from ....kernels.core_ops import CUDAFPLN, BlasLibLinear, CUDARMSNorm, CUDABiasActivation from ....kernels.ragged_ops import RaggedLogitsGather from ....ragged import RaggedBatchWrapper from ...interfaces import DSUnembedBase, DSUnembedRegistry @@ -65,6 +65,8 @@ def __init__(self, config: DSUnembedConfig, implementation_config: Dict[str, Any self._norm = None self._linear = BlasLibLinear(self._config.dtype) + # Here the activation kernel is being used to apply bias, hence the identity activation type! + self._act_fn = CUDABiasActivation(self._config.vocab_size, self._config.dtype, ActivationType.IDENTITY) self._intermediate = torch.empty((self._config.max_sequences, self._config.model_dim), dtype=self._config.dtype, @@ -82,6 +84,7 @@ def forward(self, hidden_states: torch.Tensor, vocab_embedding: torch.Tensor, ragged_metadata: RaggedBatchWrapper, + bias: Optional[torch.Tensor] = None, gamma: Optional[torch.Tensor] = None, beta: Optional[torch.Tensor] = None) -> torch.Tensor: """ @@ -111,5 +114,7 @@ def forward(self, output = empty_from(self._output, (ragged_metadata.current_sequences, self._config.vocab_size)) self._linear(output, cut_down_hidden_states, vocab_embedding) + if bias is not None: + self._act_fn(output, bias) return output diff --git a/deepspeed/inference/v2/ragged/csrc/ragged_ops.cpp b/deepspeed/inference/v2/ragged/csrc/ragged_ops.cpp index 8a29dd2d5945..ce115f993c3c 100644 --- a/deepspeed/inference/v2/ragged/csrc/ragged_ops.cpp +++ b/deepspeed/inference/v2/ragged/csrc/ragged_ops.cpp @@ -23,7 +23,7 @@ copies. */ torch::Tensor allocate_fast_host_buffer(torch::Tensor device_mirror) { -#ifdef __HIP_PLATFORM_HCC__ +#ifdef __HIP_PLATFORM_AMD__ auto options = torch::TensorOptions().device(torch::kCPU).pinned_memory(true).dtype(device_mirror.dtype()); auto buffer = torch::empty(device_mirror.sizes(), options); diff --git a/deepspeed/inference/v2/ragged/kv_cache.py b/deepspeed/inference/v2/ragged/kv_cache.py index 50da350b6506..ceba3190b93c 100644 --- a/deepspeed/inference/v2/ragged/kv_cache.py +++ b/deepspeed/inference/v2/ragged/kv_cache.py @@ -140,9 +140,6 @@ def __init__(self, self._caches = tuple(caches) self._allocators = tuple(allocators) - self._free_blocks = torch.empty(len(self._allocators), dtype=torch.int32, device="cpu") - for i, allocator in enumerate(self._allocators): - self._free_blocks[i] = allocator.free_blocks def reserve(self, num_blocks: int, cache_group: int = 0) -> torch.Tensor: """ @@ -201,9 +198,7 @@ def free_blocks(self) -> torch.Tensor: """ Return the number of free blocks in each cache """ - for i, allocator in enumerate(self._allocators): - self._free_blocks[i] = allocator.free_blocks - return self._free_blocks + return [allocator.free_blocks for allocator in self._allocators] @property def num_caches(self) -> int: diff --git a/deepspeed/inference/v2/ragged/manager_configs.py b/deepspeed/inference/v2/ragged/manager_configs.py index a5e98e5bcef1..17283b8bc0c4 100644 --- a/deepspeed/inference/v2/ragged/manager_configs.py +++ b/deepspeed/inference/v2/ragged/manager_configs.py @@ -6,7 +6,7 @@ from enum import Enum from typing import Tuple -from deepspeed.pydantic_v1 import PositiveInt, validator +from pydantic import PositiveInt, model_validator from deepspeed.runtime.config_utils import DeepSpeedConfigModel from ..inference_utils import DtypeEnum @@ -173,11 +173,9 @@ class DSStateManagerConfig(DeepSpeedConfigModel): Enable tracking for offloading KV-cache to host memory. Currently unsupported. """ - @validator("max_ragged_sequence_count") - def max_ragged_sequence_count_validator(cls, v: int, values: dict): + @model_validator(mode="after") + def max_ragged_sequence_count_validator(self): # If the attributes below failed their validation they won't appear in the values dict. - if "max_tracked_sequences" in values and v > values["max_tracked_sequences"]: - raise ValueError("max_ragged_sequence_count must be less than max_tracked_sequences") - if "max_ragged_batch_size" in values and v > values["max_ragged_batch_size"]: - raise ValueError("max_ragged_sequence_count must be less than max_ragged_batch_size") - return v + assert self.max_ragged_sequence_count <= self.max_tracked_sequences, "max_ragged_sequence_count must be less than max_tracked_sequences" + assert self.max_ragged_sequence_count <= self.max_ragged_batch_size, "max_ragged_sequence_count must be less than max_ragged_batch_size" + return self diff --git a/deepspeed/inference/v2/ragged/ragged_manager.py b/deepspeed/inference/v2/ragged/ragged_manager.py index 8eff4560b4d0..ecc3c52a5834 100644 --- a/deepspeed/inference/v2/ragged/ragged_manager.py +++ b/deepspeed/inference/v2/ragged/ragged_manager.py @@ -127,10 +127,7 @@ def get_sequence(self, uid: int) -> Optional[DSSequenceDescriptor]: Get the sequence descriptor for the given sequence id. If the sequence does not exist, then None is returned. """ - if uid not in self._seqs: - return None - - return self._seqs[uid] + return self._seqs.get(uid, None) def get_or_create_sequence(self, uid: int) -> DSSequenceDescriptor: """ @@ -139,8 +136,9 @@ def get_or_create_sequence(self, uid: int) -> DSSequenceDescriptor: if one may be allocated and should not be used from APIs that are attempting to test the schedulability of a hypothetical batch. """ - if uid in self._seqs: - return self._seqs[uid] + seq = self.get_sequence(uid) + if seq is not None: + return seq else: return self._create_sequence(uid) diff --git a/deepspeed/inference/v2/ragged/ragged_wrapper.py b/deepspeed/inference/v2/ragged/ragged_wrapper.py index 15abd1987aa1..056ecfa2ac40 100644 --- a/deepspeed/inference/v2/ragged/ragged_wrapper.py +++ b/deepspeed/inference/v2/ragged/ragged_wrapper.py @@ -113,12 +113,23 @@ def __init__(self, config: DSStateManagerConfig) -> None: # Default behavior should be no padding self._is_padded = False + self._current_tokens = 0 + self._current_sequences = 0 + self._batch_tokens = [] + self._inflight_seq_descriptors_shadow_buf = [] + self._kv_blocks_ptr_buf = [] + self._token_to_seq_storage_shadow_buf = [] + def clear(self) -> None: """ Clear the ragged batch. This will reset the number of tokens and sequences to 0. """ - self._batch_metadata_storage_shadow[0] = 0 - self._batch_metadata_storage_shadow[1] = 0 + self._current_tokens = 0 + self._current_sequences = 0 + self._batch_tokens = [] + self._inflight_seq_descriptors_shadow_buf = [] + self._kv_blocks_ptr_buf = [] + self._token_to_seq_storage_shadow_buf = [] def insert_sequence(self, seq_descriptor: DSSequenceDescriptor, tokens: torch.Tensor, do_checks=True) -> None: """ @@ -140,18 +151,23 @@ def insert_sequence(self, seq_descriptor: DSSequenceDescriptor, tokens: torch.Te if do_checks and self.current_tokens + seq_tokens > self._config.max_ragged_batch_size: raise RuntimeError(f"Ragged batch is full due to capacity limit: {self._config.max_ragged_batch_size})") - self._input_ids_shadow[self.current_tokens:self.current_tokens + seq_tokens].copy_(tokens) - self._token_to_seq_storage_shadow[self.current_tokens:self.current_tokens + seq_tokens].fill_( - self.current_sequences) + # The values in _inflight_seq_descriptors_shadow_buf, _token_to_seq_storage_shadow_buf, _kv_blocks_ptr_buf, etc., + # are ultimately stored in PyTorch tensors: _inflight_seq_descriptors_shadow, _token_to_seq_storage_shadow, _kv_ptrs_shadow, etc. + # However, we found it inefficient to iterate over and substitute values into tensor slices or to use copy/fill calls for this purpose. + # Therefore, we initially store the values in Python lists or primitive data types and then copy them collectively in the finalize() method, + # instead of updating the tensors directly in each iteration. + self._batch_tokens.append(tokens) + self._inflight_seq_descriptors_shadow_buf.append(self.current_tokens) + self._inflight_seq_descriptors_shadow_buf.append(seq_tokens) + self._inflight_seq_descriptors_shadow_buf.append(seq_descriptor.seen_tokens) + self._inflight_seq_descriptors_shadow_buf.append(0) # alignment - self._inflight_seq_descriptors_shadow[self.current_sequences][0] = self.current_tokens - self._inflight_seq_descriptors_shadow[self.current_sequences][1] = seq_tokens - self._inflight_seq_descriptors_shadow[self.current_sequences][2] = seq_descriptor.seen_tokens + self._token_to_seq_storage_shadow_buf.extend([self.current_sequences] * seq_tokens) - self._kv_ptrs_shadow[self.current_sequences] = seq_descriptor.kv_blocks_ptr + self._kv_blocks_ptr_buf.append(seq_descriptor.kv_blocks_ptr) - self._batch_metadata_storage_shadow[0] += seq_tokens - self._batch_metadata_storage_shadow[1] += 1 + self._current_tokens += seq_tokens + self._current_sequences += 1 @property def tensor_toks(self) -> torch.Tensor: @@ -171,6 +187,15 @@ def finalize(self, padding: Optional[bool] = False) -> None: """ cur_toks = self.current_tokens + # Batch-copy the values recorded in insert_sequence() into PyTorch tensors to enhance efficiency. + self._inflight_seq_descriptors_shadow.flatten()[:len(self._inflight_seq_descriptors_shadow_buf)].copy_( + torch.tensor(self._inflight_seq_descriptors_shadow_buf)) + self._input_ids_shadow[:self.current_tokens].copy_(torch.cat(self._batch_tokens, dim=0)) + self._token_to_seq_storage_shadow[:len(self._token_to_seq_storage_shadow_buf)].copy_( + torch.tensor(self._token_to_seq_storage_shadow_buf)) + self._kv_ptrs_shadow[:len(self._kv_blocks_ptr_buf)].copy_(torch.tensor(self._kv_blocks_ptr_buf)) + self._batch_metadata_storage_shadow.copy_(torch.tensor([cur_toks, self.current_sequences])) + if padding: padded_toks = to_padded(cur_toks) self._input_ids_shadow[cur_toks:padded_toks].fill_(-1) @@ -256,7 +281,7 @@ def current_tokens(self) -> int: The number of tokens in the in-flight ragged batch. This will not trigger synchronization with the device. """ - return self._batch_metadata_storage_shadow[0].item() + return self._current_tokens @property def current_sequences(self) -> int: @@ -264,4 +289,4 @@ def current_sequences(self) -> int: The number of sequences in the in-flight ragged batch. This will not trigger synchronization with the device. """ - return self._batch_metadata_storage_shadow[1].item() + return self._current_sequences diff --git a/deepspeed/inference/v2/ragged/sequence_descriptor.py b/deepspeed/inference/v2/ragged/sequence_descriptor.py index c8a0c20764f6..6b9f65255eec 100644 --- a/deepspeed/inference/v2/ragged/sequence_descriptor.py +++ b/deepspeed/inference/v2/ragged/sequence_descriptor.py @@ -168,7 +168,11 @@ def cur_allocated_blocks(self, cache_group: int = 0) -> int: Arguments: cache_group (int): The cache group to query. """ - return self._blocks_per_allocation_group[cache_group].sum() + # Currently, there is only one allocation group. + # A shortcut is used here to bypass the overhead of sum(). + if len(self._blocks_per_allocation_group) == 1: + return self._blocks_per_allocation_group[0].item() + return self._blocks_per_allocation_group[cache_group].sum().item() def kv_cache_ids(self, cache_group: int = 0, on_device: bool = False) -> torch.Tensor: """ diff --git a/deepspeed/launcher/launch.py b/deepspeed/launcher/launch.py index b3cb9d1205a9..079182a3b45b 100755 --- a/deepspeed/launcher/launch.py +++ b/deepspeed/launcher/launch.py @@ -22,6 +22,7 @@ from collections import defaultdict from typing import Dict from argparse import ArgumentParser, REMAINDER +from deepspeed.accelerator import get_accelerator from ..constants import TORCH_DISTRIBUTED_DEFAULT_PORT from ..nebula.constants import DLTS_POD_ENV_PATH from ..utils import logger, get_numactl_cmd @@ -146,8 +147,8 @@ def main(): node_list = list(world_info.keys()) args.nnodes = len(node_list) local_node = node_list[args.node_rank] - local_gpu_ids = world_info[local_node] - num_local_procs = len(local_gpu_ids) + local_accelerator_ids = world_info[local_node] + num_local_procs = len(local_accelerator_ids) logger.info(f"nnodes={args.nnodes}, num_local_procs={num_local_procs}, node_rank={args.node_rank}") global_rank_mapping = defaultdict(list) @@ -161,8 +162,10 @@ def main(): curr_global_rank += 1 logger.info(f"global_rank_mapping={global_rank_mapping}") logger.info(f"dist_world_size={dist_world_size}") - current_env["CUDA_VISIBLE_DEVICES"] = ",".join(map(str, local_gpu_ids)) - logger.info(f"Setting CUDA_VISIBLE_DEVICES={current_env['CUDA_VISIBLE_DEVICES']}") + + get_accelerator().set_visible_devices_envs(current_env, local_accelerator_ids) + for env in get_accelerator().visible_devices_envs(): + logger.info(f"Setting {env}={current_env[env]}") # set PyTorch distributed related environmental variables current_env["MASTER_ADDR"] = args.master_addr @@ -249,7 +252,8 @@ def main(): process = subprocess.Popen(cmd, env=current_env, stdout=log_fd, stderr=log_fd) else: process = subprocess.Popen(cmd, env=current_env) - + # logs the command from processes + logger.info(f"process {process.pid} spawned with command: {cmd}") processes.append(process) else: from ..elasticity import DSElasticAgent diff --git a/deepspeed/launcher/launcher_helper.py b/deepspeed/launcher/launcher_helper.py new file mode 100644 index 000000000000..05ce14bcc52e --- /dev/null +++ b/deepspeed/launcher/launcher_helper.py @@ -0,0 +1,108 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import os +import sys +import argparse +import subprocess +from deepspeed.utils import logger +from deepspeed.launcher.constants import MPICH_LAUNCHER + + +def parse_args(args=None): + parser = argparse.ArgumentParser(description="DeepSpeed launcher helper to map environment variables for" + "multi-node/multi-gpu training jobs.", + formatter_class=argparse.ArgumentDefaultsHelpFormatter) + + parser.add_argument("--launcher", + default=MPICH_LAUNCHER, + type=str, + help="(optional) choose launcher backend for multi-node " + "training. Options currently include MPICH.") + + parser.add_argument("--module", + action="store_true", + help="Change each process to interpret the launch " + "script as a Python module, executing with the same " + "behavior as 'python -m'.") + + parser.add_argument("--no_python", + action="store_true", + help="Skip prepending the training script with " + "'python' - just execute it directly.") + + parser.add_argument("user_script", type=str, help="User script to launch, followed by any required " + "arguments.") + + parser.add_argument('user_args', nargs=argparse.REMAINDER) + + parser.add_argument("--bind_cores_to_rank", + action="store_true", + help="Bind each rank to different cores of the host") + + parser.add_argument("--bind_core_list", + type=str, + default=None, + help="List of cores to bind to with comma separated list of " + "numbers and range. i.e. 1,3-5,7 => [1,3,4,5,7]. When not " + "specified, all cores on system would be used rank binding") + + return parser.parse_args(args=args) + + +def env_mapping(env, rank_name_list=None, local_rank_name_list=None): + rank = None + for rank_name in rank_name_list: + if rank_name in env: + if rank == None: + rank = env.get(rank_name) + elif rank != env.get(rank_name): + raise EnvironmentError(f"rank number doesn't match!") + if rank == None: + raise EnvironmentError(f"rank number is not in current env!") + env['RANK'] = rank + + local_rank = None + for local_rank_name in local_rank_name_list: + if local_rank_name in env: + if local_rank == None: + local_rank = env.get(local_rank_name) + elif local_rank != env.get(local_rank_name): + raise EnvironmentError(f"local_rank number doesn't match!") + if local_rank == None: + raise EnvironmentError(f"rank number is not in current env!") + env['LOCAL_RANK'] = local_rank + + return env + + +def main(args=None): + args = parse_args(args) + + env = os.environ.copy() + + args.launcher = args.launcher.lower() + if args.launcher == MPICH_LAUNCHER: + rank_name_list = ["PMIX_RANK"] + ["PMI_RANK"] + local_rank_name_list = ["PALS_LOCAL_RANKID"] + ["MPI_LOCALRANKID"] + env = env_mapping(env, rank_name_list=rank_name_list, local_rank_name_list=local_rank_name_list) + else: + raise NotImplementedError(f"Unknown launcher {args.launcher}") + + python_exec = [] + if not args.no_python: + python_exec += [sys.executable, "-u"] + if args.module: + python_exec.append("-m") + cmd = python_exec + [args.user_script] + args.user_args + + logger.info(f"launcher_helper cmd = {' '.join(cmd)}") + + result = subprocess.Popen(cmd, env=env, close_fds=False) + result.wait() + + +if __name__ == "__main__": + main() diff --git a/deepspeed/launcher/multinode_runner.py b/deepspeed/launcher/multinode_runner.py index 40df5d001dd3..cee9efbc1622 100644 --- a/deepspeed/launcher/multinode_runner.py +++ b/deepspeed/launcher/multinode_runner.py @@ -35,7 +35,7 @@ def get_cmd(self, environment, active_resources): """Return the command to execute on node""" def add_export(self, key, var): - self.exports[key.strip()] = var.strip() + self.exports[key.strip()] = f"\"{var.strip()}\"" def parse_user_args(self): return self.args.user_args @@ -57,17 +57,26 @@ def __init__(self, args, world_info_base64): def backend_exists(self): return shutil.which('pdsh') + def parse_user_args(self): + processed_args = [] + for arg in self.args.user_args: + # With pdsh, if we are passing a string as an argument, it will get + # split on whitespace. To avoid this and support strings that + # contain '"', we do this extra processing step: + if " " in arg: + arg = '"{}"'.format(arg.replace('"', '\\"')) + processed_args.append(arg) + return processed_args + @property def name(self): return "pdsh" - def parse_user_args(self): - return list(map(lambda x: x if x.startswith("-") else f"'{x}'", self.args.user_args)) - def get_cmd(self, environment, active_resources): environment['PDSH_RCMD_TYPE'] = 'ssh' if self.args.ssh_port is not None: # only specify ssh port if it is specified - environment["PDSH_SSH_ARGS_APPEND"] += f" -p {self.args.ssh_port}" + environment["PDSH_SSH_ARGS_APPEND"] = f"{environment.get('PDSH_SSH_ARGS_APPEND', '')} \ + -p {self.args.ssh_port}" active_workers = ",".join(active_resources.keys()) logger.info("Running on the following workers: %s" % active_workers) @@ -96,6 +105,8 @@ def get_cmd(self, environment, active_resources): deepspeed_launch.append("--no_local_rank") if self.args.save_pid: deepspeed_launch += ["--save_pid", f"{os.getpid()}"] + if self.args.enable_each_rank_log: + deepspeed_launch.append(f"--enable_each_rank_log={self.args.enable_each_rank_log}") if self.args.elastic_training: deepspeed_launch.append("--enable_elastic_training") deepspeed_launch.append(f"--max_elastic_nodes={self.args.max_elastic_nodes}") @@ -124,15 +135,45 @@ def name(self): def validate_args(self): super().validate_args() + + # Validate and set MPI environment variables + self._setup_mpi_environment() + #TODO: Allow for include/exclude at node-level but not gpu-level if self.args.include != "" or self.args.exclude != "": raise ValueError(f"{self.name} backend does not support worker include/exclusion") if self.args.num_nodes != -1 or self.args.num_gpus != -1: raise ValueError(f"{self.name} backend does not support limiting num nodes/gpus") + def _setup_mpi_environment(self): + """Sets up MPI-related environment variables or raises an error if they're missing.""" + + required_vars = ['OMPI_COMM_WORLD_LOCAL_RANK', 'OMPI_COMM_WORLD_RANK', 'OMPI_COMM_WORLD_SIZE'] + + # Check if all these are present + if not all(var in os.environ for var in required_vars): + raise EnvironmentError("MPI environment variables are not set. " + "Ensure you are running the script with an MPI-compatible launcher.") + + # Now safe to read all + os.environ['LOCAL_RANK'] = os.environ['OMPI_COMM_WORLD_LOCAL_RANK'] + os.environ['RANK'] = os.environ['OMPI_COMM_WORLD_RANK'] + os.environ['WORLD_SIZE'] = os.environ['OMPI_COMM_WORLD_SIZE'] + def get_cmd(self, environment, active_resources): total_process_count = sum(self.resource_pool.values()) + launcher_args = split(self.args.launcher_args) + + # If btl_tcp_if_include option is provided through launcher_args, we use it. Otherwise, we add + # `--mca btl_tcp_if_include eth0` option as a default value for compatibility. + btl_tcp_opt = ['--mca', 'btl_tcp_if_include', 'eth0'] + if len(launcher_args) >= 2: + for i in range(len(launcher_args) - 1): + if launcher_args[i] in ['-mca', '--mca'] and launcher_args[i + 1] == 'btl_tcp_if_include': + btl_tcp_opt = [] + break + mpirun_cmd = [ 'mpirun', '-n', @@ -142,10 +183,7 @@ def get_cmd(self, environment, active_resources): '--mca', 'btl', '^openib', - '--mca', - 'btl_tcp_if_include', - 'eth0', - ] + split(self.args.launcher_args) + ] + btl_tcp_opt + launcher_args export_cmd = [] for k, v in self.exports.items(): @@ -247,6 +285,10 @@ def get_cmd(self, environment, active_resources): mpirun_cmd = [ 'mpirun', + '-n', + f'{total_process_count}', + '-ppn', + f'{process_per_node}', ] + split(self.args.launcher_args) export_cmd = [] @@ -258,32 +300,29 @@ def get_cmd(self, environment, active_resources): export_cmd += ['-genv', 'WORLD_SIZE', str(total_process_count)] export_cmd += ['-genv', 'LOCAL_SIZE', str(process_per_node)] - hosts = list(self.resource_pool.keys()) - - per_host_cmd = [] - host_id = 0 - host_count = 0 - for i in range(total_process_count): - local_rank = i % process_per_node - python_exec = [] - if not self.args.no_python: - python_exec += [sys.executable, "-u"] - if self.args.module: - python_exec.append("-m") - env_mapping = ['-env', 'RANK', str(i)] - env_mapping += ['-env', 'LOCAL_RANK', str(local_rank)] + export_cmd += ['-hosts'] + hosts = "" + for i, host in enumerate(self.resource_pool.keys()): if i == 0: - per_host_cmd = ['-n', '1', '-host', hosts[host_id] - ] + env_mapping + python_exec + [self.user_script] + self.user_arguments + hosts = f"{host}" else: - per_host_cmd = per_host_cmd + [':', '-n', '1', '-host', hosts[host_id] - ] + env_mapping + python_exec + [self.user_script] + self.user_arguments - host_count = host_count + 1 - if host_count == process_per_node: - host_id = host_id + 1 - host_count = 0 + hosts += f",{host}" + export_cmd += [hosts] - return mpirun_cmd + export_cmd + per_host_cmd + helper_args = ["--launcher"] + [self.args.launcher] + python_exec = [] + if not self.args.no_python: + python_exec += [sys.executable, "-u"] + if self.args.module: + python_exec.append("-m") + helper_args.append("--module") + else: + helper_args.append("--no_python") + + helper_cmd = str(os.path.dirname(os.path.realpath(__file__))) + '/launcher_helper.py' + helper_cmd = [helper_cmd] + helper_args + [self.user_script] + self.user_arguments + + return mpirun_cmd + export_cmd + python_exec + helper_cmd class IMPIRunner(MultiNodeRunner): @@ -482,7 +521,7 @@ def backend_exists(self): if not mpiname_exists: warnings.warn("mpiname does not exist, mvapich is not installed properly") else: - results = subprocess.check_output('mpiname', shell=True) + results = subprocess.check_output(['mpiname']) mpiname_results = results.decode('utf-8').strip() if "MVAPICH2-GDR" in mpiname_results: exists = True diff --git a/deepspeed/launcher/runner.py b/deepspeed/launcher/runner.py index 2c53e2d59ef4..b4932b2d8381 100755 --- a/deepspeed/launcher/runner.py +++ b/deepspeed/launcher/runner.py @@ -12,7 +12,6 @@ import os import re import sys -import shlex import json import base64 import argparse @@ -21,6 +20,9 @@ from copy import deepcopy import signal import time +from typing import Tuple, List, Dict +from collections import defaultdict +import shlex from .multinode_runner import PDSHRunner, OpenMPIRunner, MVAPICHRunner, SlurmRunner, MPICHRunner, JSRunner, IMPIRunner from .constants import PDSH_LAUNCHER, OPENMPI_LAUNCHER, MVAPICH_LAUNCHER, SLURM_LAUNCHER, MPICH_LAUNCHER, JSRUN_LAUNCHER, IMPI_LAUNCHER @@ -32,7 +34,7 @@ from deepspeed.accelerator import get_accelerator DLTS_HOSTFILE = "/job/hostfile" -EXPORT_ENVS = ['MLFLOW', 'NCCL', 'PYTHON', 'MV2', 'UCX'] +EXPORT_ENVS = ['MLFLOW', 'PYTHON', 'MV2', 'UCX'] EXPORT_ENVS += NEBULA_EXPORT_ENVS DEEPSPEED_ENVIRONMENT_NAME = os.getenv("DS_ENV_FILE", ".deepspeed_env") DEEPSPEED_ENVIRONMENT_PATHS = [os.path.expanduser("~"), '.'] @@ -118,6 +120,12 @@ def parse_args(args=None): help="(optional) IP address of node 0, will be " "inferred via 'hostname -I' if not specified.") + parser.add_argument("--node_rank", + default=-1, + type=int, + help="ID of each node in the range [0:N). " + "Only required when --no_ssh is set.") + parser.add_argument("--launcher", default=PDSH_LAUNCHER, type=str, @@ -146,6 +154,10 @@ def parse_args(args=None): help="Do not pass local_rank as an argument when calling " "the user's training script.") + parser.add_argument("--no_ssh", + action="store_true", + help="Launch training independently on each node without ssh setup.") + parser.add_argument("--no_ssh_check", action="store_true", help="Do not perform ssh check in multi-node launcher model") @@ -267,6 +279,31 @@ def _stable_remove_duplicates(data): return new_list +def parse_node_config(node_config: str) -> Tuple[str, List[int]]: + SLOT_LIST_START = ':' + SLOT_SEP = ',' + + if SLOT_LIST_START not in node_config: + return node_config, [] + + hostname, slots = node_config.split(SLOT_LIST_START) + slots = [int(x) for x in slots.split(SLOT_SEP)] + + return hostname, slots + + +def parse_node_config_list(node_config_list: List[str]) -> Dict[str, List[int]]: + NODE_SEP = '@' + + node_configs = defaultdict(list) + + for node_config in node_config_list.split(NODE_SEP): + hostname, slots = parse_node_config(node_config) + node_configs[hostname] += slots + + return {k: sorted(list(set(v))) for k, v in node_configs.items()} + + def parse_resource_filter(host_info, include_str="", exclude_str=""): '''Parse an inclusion or exclusion string and filter a hostfile dictionary. @@ -281,11 +318,6 @@ def parse_resource_filter(host_info, include_str="", exclude_str=""): slot 0 on worker-1. ''' - # Constants that define our syntax - NODE_SEP = '@' - SLOT_LIST_START = ':' - SLOT_SEP = ',' - # Ensure include/exclude are mutually exclusive if (include_str != "") and (exclude_str != ""): raise ValueError('include_str and exclude_str are mutually exclusive.') @@ -303,12 +335,9 @@ def parse_resource_filter(host_info, include_str="", exclude_str=""): parse_str = exclude_str # foreach node in the list - for node_config in parse_str.split(NODE_SEP): + for hostname, slots in parse_node_config_list(parse_str).items(): # Node can either be alone or node:slot,slot,slot - if SLOT_LIST_START in node_config: - hostname, slots = node_config.split(SLOT_LIST_START) - slots = [int(x) for x in slots.split(SLOT_SEP)] - + if len(slots) > 0: # sanity checks if hostname not in host_info: raise ValueError(f"Hostname '{hostname}' not found in hostfile") @@ -326,7 +355,6 @@ def parse_resource_filter(host_info, include_str="", exclude_str=""): # User just specified the whole node else: - hostname = node_config # sanity check hostname if hostname not in host_info: raise ValueError(f"Hostname '{hostname}' not found in hostfile") @@ -359,8 +387,10 @@ def parse_resource_filter(host_info, include_str="", exclude_str=""): def parse_inclusion_exclusion(resource_pool, inclusion, exclusion): active_resources = collections.OrderedDict() + node_configs = parse_node_config_list(inclusion) + for hostname, slots in resource_pool.items(): - active_resources[hostname] = list(range(slots)) + active_resources[hostname] = node_configs[hostname] if hostname in node_configs else list(range(slots)) return parse_resource_filter(active_resources, include_str=inclusion, exclude_str=exclusion) @@ -403,26 +433,24 @@ def parse_num_nodes(str_num_nodes: str, elastic_training: bool): def main(args=None): args = parse_args(args) - # For when argparse interprets remaining args as a single string - args.user_args = shlex.split(" ".join(list(map(lambda x: x if x.startswith("-") else f'"{x}"', args.user_args)))) - if args.elastic_training: assert args.master_addr != "", "Master Addr is required when elastic training is enabled" resource_pool = fetch_hostfile(args.hostfile) - # respect CUDA_VISIBLE_DEVICES for a single node and no explicit resource filters - cuda_visible_devices = os.environ.get("CUDA_VISIBLE_DEVICES", "") - if not resource_pool and len(cuda_visible_devices): - detected_str = f"Detected CUDA_VISIBLE_DEVICES={cuda_visible_devices}" + # respect VISIBLE_DEVICES for a single node and no explicit resource filters + visible_devices_env = get_accelerator().visible_devices_envs()[0] + visible_devices = os.environ.get(visible_devices_env, "") + if not resource_pool and len(visible_devices): + detected_str = f"Detected VISIBLE_DEVICES={visible_devices}" if len(args.include) or len(args.exclude) or args.num_nodes > 1 or args.num_gpus > 0: print( f"{detected_str} but ignoring it because one or several of --include/--exclude/--num_gpus/--num_nodes cl args were used. If you want to use CUDA_VISIBLE_DEVICES don't pass any of these arguments to deepspeed." ) else: - args.include = f"localhost:{cuda_visible_devices}" + args.include = f"localhost:{visible_devices}" print(f"{detected_str}: setting --include={args.include}") - del os.environ["CUDA_VISIBLE_DEVICES"] + del os.environ[visible_devices_env] if args.num_nodes >= 0 or args.num_gpus >= 0: if args.include != "" or args.exclude != "": @@ -445,14 +473,15 @@ def main(args=None): env = os.environ.copy() # validate that passwordless-ssh is workly properly with this hostfile - if multi_node_exec and not args.no_ssh_check: + if multi_node_exec and not args.no_ssh_check and not args.no_ssh: first_host = list(active_resources.keys())[0] try: ssh_check_cmd = "ssh -o PasswordAuthentication=no " if args.ssh_port is not None: ssh_check_cmd += f"-p {args.ssh_port} " ssh_check_cmd += f"{first_host} hostname" - subprocess.check_call(ssh_check_cmd, stderr=subprocess.DEVNULL, stdout=subprocess.DEVNULL, shell=True) + safe_ssh_cmd = shlex.split(ssh_check_cmd) + subprocess.check_call(safe_ssh_cmd, stderr=subprocess.DEVNULL, stdout=subprocess.DEVNULL) except subprocess.CalledProcessError: raise RuntimeError( f"Using hostfile at {args.hostfile} but host={first_host} was not reachable via ssh. If you are running with a single node please remove {args.hostfile} or setup passwordless ssh." @@ -461,9 +490,13 @@ def main(args=None): if not args.master_addr: assert multi_node_exec first_host = list(active_resources.keys())[0] - hostname_cmd = [f"ssh {first_host} hostname -I"] + ssh_check_cmd = "ssh " + if args.ssh_port is not None: + ssh_check_cmd += f" -p {args.ssh_port}" + ssh_check_cmd += f" {first_host} hostname -I" + hostname_cmd = shlex.split(ssh_check_cmd) try: - result = subprocess.check_output(hostname_cmd, shell=True) + result = subprocess.check_output(hostname_cmd) except subprocess.CalledProcessError as err: logger.error( "Unable to detect suitable master address via `hostname -I`, please manually specify one via --master_addr" @@ -472,7 +505,7 @@ def main(args=None): args.master_addr = result.decode('utf-8').split()[0] if not args.master_addr: raise RuntimeError( - f"Unable to detect suitable master address via `hostname -I`, please manually specify one via --master_addr" + "Unable to detect suitable master address via `hostname -I`, please manually specify one via --master_addr" ) logger.info(f"Using IP address of {args.master_addr} for node {first_host}") @@ -497,16 +530,22 @@ def main(args=None): if args.elastic_training: assert not args.no_local_rank, "--no_local_rank argument is not supported in Elastic training" + if args.no_ssh: + assert (0 <= args.node_rank < + len(active_resources)), "Launching training without ssh, but --node_rank is not set correctly." + # encode world info as base64 to make it easier to pass via command line world_info_base64 = encode_world_info(active_resources) - multi_node_exec = args.force_multi or len(active_resources) > 1 + multi_node_exec = (args.force_multi or len(active_resources) > 1) and not args.no_ssh if not multi_node_exec: deepspeed_launch = [ sys.executable, "-u", "-m", "deepspeed.launcher.launch", f"--world_info={world_info_base64}", f"--master_addr={args.master_addr}", f"--master_port={args.master_port}" ] + if args.no_ssh: + deepspeed_launch.append(f"--node_rank={args.node_rank}") if args.no_python: deepspeed_launch.append("--no_python") if args.module: @@ -560,17 +599,15 @@ def main(args=None): # key exists in launcher env -> var list should be used excluded_vars += var_list - exports = "" + # load envs from accelerator + exports = EXPORT_ENVS + get_accelerator().export_envs() for var in env.keys(): - if any([var.startswith(name) for name in EXPORT_ENVS]): + if any([var.startswith(name) for name in exports]): if not any([var == name for name in excluded_vars]): runner.add_export(var, env[var]) for environ_path in DEEPSPEED_ENVIRONMENT_PATHS: - environ_file = DEEPSPEED_ENVIRONMENT_NAME - # handle if users to enter path for `DS_ENV_FILE` - if not os.path.isfile(environ_file): - environ_file = os.path.join(environ_path, DEEPSPEED_ENVIRONMENT_NAME) + environ_file = os.path.join(environ_path, DEEPSPEED_ENVIRONMENT_NAME) if os.path.isfile(environ_file): logger.info(f"deepspeed_env file = {environ_file}") with open(environ_file, 'r') as fd: diff --git a/deepspeed/linear/__init__.py b/deepspeed/linear/__init__.py new file mode 100644 index 000000000000..9931a95a0a40 --- /dev/null +++ b/deepspeed/linear/__init__.py @@ -0,0 +1,8 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from .optimized_linear import OptimizedLinear +from .config import LoRAConfig, QuantizationConfig +from .context_manager import Init, init_lora diff --git a/deepspeed/linear/config.py b/deepspeed/linear/config.py new file mode 100644 index 000000000000..1459704a32c5 --- /dev/null +++ b/deepspeed/linear/config.py @@ -0,0 +1,54 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from dataclasses import dataclass, field +from typing import List + +import torch + + +@dataclass +class LoRAConfig: + """ + Configuration settings for LoRAOptimizedLinear. + + Attributes: + lora_r (int): LoRA attention dimension, also known as the rank. Defaults is 64. + lora_alpha (float): LoRA scaling factor, default is 16. + base_weight_sharding (int): The degree to which the base weights are sharded, + should typically be set to the data-parallel world size to maximize the memory + reduction benefits. Defaults to 1, which means this feature is disabled. + offload (bool): offload frozen parameters to cpu when not in use + offload_ratio (float): ratio of parameters to offload to cpu when not in use + delay_lora_init (bool): initialize lora parameters at time of model init or allow manual init later + target_mods (str): target module names to apply LoRA to, defaults to llama-3.1 arch + """ + lora_r: int = 64 + lora_alpha: float = 16. + base_weight_sharding: int = 1 + offload: bool = False + offload_ratio: float = 0.0 + delay_lora_init: bool = False + target_mods: List[str] = field( + default_factory=lambda: ['q_proj', 'k_proj', 'v_proj', 'o_proj', 'gate_proj', 'up_proj', 'down_proj']) + + +@dataclass +class QuantizationConfig: + """ + Configuration settings for quantization for LoRAOptimizedLinear, QuantizedLinear, + and QuantizedParameter + + Attributes: + q_bits (int): The number of bits used for quantization. Default is 8. + mantissa_bits (int): The number of bits reserved for the mantissa in fixed-point quantization. Default is 3. + group_size (int): The number of elements used for quantization. Default is 512. + q_dtype (torch.dtype): The data type to quantize to. Default is uint8. (in CUDA, buffers are allocated as + uint8, but inside the kernels the quantization is done to fp8) + """ + q_bits: int = 8 + mantissa_bits: int = 3 + group_size: int = 512 + q_dtype: torch.dtype = torch.uint8 diff --git a/deepspeed/linear/context_manager.py b/deepspeed/linear/context_manager.py new file mode 100644 index 000000000000..204fa0fe9c1d --- /dev/null +++ b/deepspeed/linear/context_manager.py @@ -0,0 +1,90 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from .optimized_linear import LoRAOptimizedLinear, OptimizedLinear + +import torch + +try: + import transformers +except ImportError: + transformers = None + + +def init_lora(model): + model.requires_grad_(False) + for m in model.modules(): + if isinstance(m, LoRAOptimizedLinear): + m.init_lora() + + +class Init(object): + """ + Init context wrapper similar in style to zero.Init. Allows for injecting OptimizedLinear during model + construction which will shard base weights and reduce overall memory usage during model init. Primarily + useful when initializing a model via transformers.AutoModelForCausalLM. + + Example usage: + lora_config = deepspeed.linear.LoRAConfig(..) + quant_config = deepspeed.linear.QuantizationConfig(..) + with deepspeed.linear.Init(lora_config=lora_config, quant_config=quant_config): + model = AutoModelForCausalLM.from_pretrained("meta-llama/Meta-Llama-3.1-405B") + + """ + + def __init__(self, lora_config=None, quant_config=None): + self._orig_nn_linear = torch.nn.Linear + self._orig_causallm_pretrained = None + if transformers != None: + self._orig_causallm_pretrained = transformers.AutoModelForCausalLM.from_pretrained + self._orig_causallm_config = transformers.AutoModelForCausalLM.from_config + self.lora_config = lora_config + self.quant_config = quant_config + self._post_init_complete = False + + def __enter__(self): + + class OptLinearWrapper: + _orig_nn_linear = self._orig_nn_linear + _lora_config = self.lora_config + _quant_config = self.quant_config + + def __new__(self, *args, **kwargs): + self._lora_config.delay_lora_init = True + kwargs['lora_config'] = self._lora_config + kwargs['quantization_config'] = self._quant_config + kwargs['linear_cls'] = self._orig_nn_linear + return OptimizedLinear(*args, **kwargs) + + def _model_init(model): + if self.lora_config != None: + init_lora(model) + self._post_init_complete = True + return model + + # ensures non-lora params are frozen and lora weights are initialized + def from_pretrained(*args, **kwargs): + model = self._orig_causallm_pretrained(*args, **kwargs) + return _model_init(model) + + def from_config(*args, **kwargs): + model = self._orig_causallm_config(*args, **kwargs) + return _model_init(model) + + torch.nn.Linear = OptLinearWrapper + if transformers != None: + transformers.AutoModelForCausalLM.from_pretrained = from_pretrained + transformers.AutoModelForCausalLM.from_config = from_config + + def __exit__(self, *args, **kwargs): + torch.nn.Linear = self._orig_nn_linear + if not self._post_init_complete: + print('WARNING: For some reason LoRA modules are not initialized, this is usually done automatically ' + 'if using transformers via (AutoModelForCausalLM from_pretrained/from_config). ' + 'You must call `init_lora` on each module in order to use DeepSpeed LoRA, otherwise ' + 'you will error out during runtime.') + else: + transformers.AutoModelForCausalLM.from_pretrained = self._orig_causallm_pretrained + transformers.AutoModelForCausalLM.from_config = self._orig_causallm_config diff --git a/deepspeed/linear/optimized_linear.py b/deepspeed/linear/optimized_linear.py new file mode 100644 index 000000000000..3720196aa255 --- /dev/null +++ b/deepspeed/linear/optimized_linear.py @@ -0,0 +1,222 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import torch +import math +import torch.nn as nn +import torch.nn.functional as F +from dataclasses import is_dataclass +from deepspeed.accelerator import get_accelerator +import deepspeed.comm as dist + +from .config import LoRAConfig, QuantizationConfig +from .quantization import QuantizedParameter, QuantizedLinear + + +class OptimizedLinear(nn.Module): + """ + Optimized version of nn.Linear that adds features such as: + * LoRA w. base weight sharding + * FP [6,8,12] quantization + + Arguments: + input_dim: Required: size of each input sample + output_dim: Required: size of each output sample + bias: Optional: If set to False, the layer will not learn an additive bias. Default: False + lora_config: Optional: LoRAConfig defining lora features and base-weight-sharding degree + quantization_config: Optional: QuantizationConfig defining quantization features + dtype: Optional: parameter dtype, only supports bfloat16 currently + + Returns: + Returns a new nn.Module depending on the input config. Either native + torch.nn.Linear, QuantizedLinear, or the full-featured DSOptimizedLinear. + """ + + def __new__(self, + input_dim: int, + output_dim: int, + bias: bool = False, + lora_config: LoRAConfig = None, + quantization_config: QuantizationConfig = None, + device=None, + dtype=torch.bfloat16, + linear_cls=nn.Linear): + + if quantization_config is not None and not is_dataclass(quantization_config): + raise ValueError(f"Expecting QuantizationConfig but received {type(quantization_config)}") + if lora_config is not None and not is_dataclass(lora_config): + raise ValueError(f"Expecting LoRAConfig but received {type(lora_config)}") + if lora_config is None and quantization_config is None: + # Everything disabled, fall back to normal nn.Linear + self = linear_cls(input_dim, output_dim, bias=bias, dtype=dtype, device=device) + + elif lora_config: + # lora enabled, quantization may or may not be + self = LoRAOptimizedLinear(input_dim=input_dim, + output_dim=output_dim, + bias=bias, + lora_config=lora_config, + quantization_config=quantization_config, + dtype=dtype, + device=device, + linear_cls=linear_cls) + + elif quantization_config: + # only quantization enabled, no lora + self = QuantizedLinear(input_dim=input_dim, + output_dim=output_dim, + bias=bias, + quantization_config=quantization_config, + dtype=dtype) + return self + + +class LoRAOptimizedLinear(nn.Module): + + def __init__(self, + input_dim: int, + output_dim: int, + bias: bool = False, + lora_config: LoRAConfig = None, + quantization_config: QuantizationConfig = None, + device=None, + dtype=torch.bfloat16, + linear_cls=nn.Linear): + super().__init__() + self.input_dim = input_dim + self.output_dim = output_dim + self.bias = bias + self.lora_config = lora_config + self.quantization_config = quantization_config + self.device = get_accelerator().current_device_name() if device is None else device + self.linear_cls = linear_cls + self.dtype = dtype + assert self.lora_config is not None, "DSOptimizedLinear requires a LoRA config" + assert not self.bias, "bias=True is not supported by LoRAOptimizedLinear" + self.zero_shards = self.lora_config.base_weight_sharding + self.sharded_weight_size = int(float(self.input_dim) // self.zero_shards) + if self.zero_shards > 1: + assert self.zero_shards == dist.get_world_size( + ), "base weight sharding is only supported across world size" + w = torch.nn.Parameter(torch.empty(self.output_dim * self.sharded_weight_size, dtype=dtype), + requires_grad=False) + else: + w = torch.nn.Parameter(torch.empty((self.output_dim, self.input_dim), dtype=dtype), requires_grad=False) + torch.nn.init.xavier_uniform_(w.reshape(self.sharded_weight_size, self.output_dim)) + + if self.quantization_config is not None: + assert dtype == torch.bfloat16, "only bfloat16 is supported when using quantization" + self.weight = QuantizedParameter(w, quantization_config=quantization_config) + else: + self.weight = w + + self.disabled = False + self._initialized = False + if not self.lora_config.delay_lora_init: + self.init_lora() + + def disable(self): + self.disabled = True + self.weight = torch.nn.Parameter(torch.empty((self.output_dim, self.input_dim), dtype=self.dtype), + requires_grad=False) + + def init_lora(self): + if self.disabled: + return + + if self.quantization_config is not None: + # ensure quant-param wasn't stripped, in some cases transformers will do this during model init + if not isinstance(self.weight, QuantizedParameter): + self.weight = QuantizedParameter(self.weight, quantization_config=self.quantization_config) + + self._initialized = True + self.weight.requires_grad = False + + # Mark base weight to prevent broadcast and ensure proper offload behavior + self.weight.ds_optim_param = True + + self.lora_scaling_factor = self.lora_config.lora_alpha / self.lora_config.lora_r + + # Keeping lora weights in bf16 precision for ease of training. + self.lora_weight_1 = self.linear_cls(self.input_dim, + self.lora_config.lora_r, + bias=self.bias, + device=self.device, + dtype=self.dtype) + self.lora_weight_2 = self.linear_cls(self.lora_config.lora_r, + self.output_dim, + bias=self.bias, + device=self.device, + dtype=self.dtype) + + # initialize "A" with kaiming uniform and "B" with zeros following this + # https://github.com/huggingface/peft/blob/62122b5add8d6892f70c82eaef2147a6ba33b90b/src/peft/tuners/lora/layer.py#L155 + nn.init.kaiming_uniform_(self.lora_weight_1.weight, a=math.sqrt(5)) + nn.init.zeros_(self.lora_weight_2.weight) + self.lora_weight_1.weight.requires_grad = True + self.lora_weight_2.weight.requires_grad = True + + def _load_from_state_dict(self, state_dict, prefix, local_metadata, strict, missing_keys, unexpected_keys, + error_msgs): + if not any([target in prefix for target in self.lora_config.target_mods]): + # module does not match any target_mods, we must revert to normal nn.Linear via disable + self.disable() + return super()._load_from_state_dict(state_dict, prefix, local_metadata, strict, missing_keys, + unexpected_keys, error_msgs) + + if self.zero_shards > 1: + if not dist.is_initialized(): + raise RuntimeError( + "attempting to use optimized linear base weight sharding but torch-distributed is not initialized, please init first." + ) + rank = dist.get_rank() + shape_local = self.output_dim * self.sharded_weight_size + base_weight_name = f"{prefix}weight" + incoming_param = state_dict[base_weight_name] + state_dict[base_weight_name] = incoming_param.flatten().narrow(0, rank * shape_local, shape_local) + + return super()._load_from_state_dict(state_dict, prefix, local_metadata, strict, missing_keys, unexpected_keys, + error_msgs) + + def full_weight(self): + base_weight = self.weight + if getattr(base_weight, 'ds_offload', False): + # move to gpu so we can dequant and all-gather + assert base_weight.device == torch.device('cpu'), \ + f"expected base weight on cpu but found {base_weight.device}" + base_weight.offload(revert=True) + local_weight = base_weight.dequantized() if isinstance(base_weight, QuantizedParameter) else base_weight + base_weight.offload() + else: + local_weight = base_weight.dequantized() if isinstance(base_weight, QuantizedParameter) else base_weight + + tensor_out = torch.empty(self.output_dim * self.input_dim, + dtype=local_weight.dtype, + device=local_weight.device) + dist.all_gather_into_tensor(tensor_out, local_weight) + return tensor_out.reshape(self.output_dim, self.input_dim) + + def linear_without_F_linear(self, input, weight): + output = torch.mm(input.reshape(-1, input.shape[-1]), weight) + output = output.view(*input.shape[:-1], weight.shape[1]) + return output + + def forward(self, input_tensor): + if self.disabled: + return F.linear(input_tensor, self.weight) + assert self._initialized, "init_lora was never called, please initialize before proceeding" + + # Gather the sharded base weight + if self.zero_shards > 1: + with torch.no_grad(): + base_weight = self.full_weight() + elif self.quantization_config: + base_weight = self.weight.dequantized() + else: + base_weight = self.weight + + base_weight_output = F.linear(input_tensor, base_weight) + lora_output = self.lora_weight_2(self.lora_weight_1(input_tensor)) + return base_weight_output + self.lora_scaling_factor * lora_output diff --git a/deepspeed/linear/quantization.py b/deepspeed/linear/quantization.py new file mode 100644 index 000000000000..2023601be281 --- /dev/null +++ b/deepspeed/linear/quantization.py @@ -0,0 +1,147 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import copy +import torch +import torch.nn as nn +import torch.nn.functional as F + +from typing import Optional + +from deepspeed.accelerator import get_accelerator +from deepspeed.ops.fp_quantizer import Quantizer, FP_Quantize +from .config import QuantizationConfig + + +class QuantizedParameter(nn.Parameter): + """ + Quantized parameter class that implements weight quantization. Weights + are stored in quantized form on GPUs, and can be dequantized on-the-fly when + needed by the model. The weights are actually quantized during any `.to(device)`. + + Arguments: + data (Tensor): parameter tensor. + requires_grad (bool, optional): if the parameter requires gradient. Defaults + to False and is not supported to be True. Argument provided only for interface + compatibility with torch.nn.Parameter. + quantization_config (QuantizationConfig, optional): + quantizer (Quantizer, optional): Defaults to FP_Quantize but can be any quantizer + that implements deepspeed.ops.fp_quantizer.Quantizer. This argument is also + required since the quantizer is stashed in the Parameter itself, some models + may clone the Parameter by passing an attribute __dict__. For an example, see + tests/unit/linear/test_quant_param.py::TestQuantParam::test_hf_clone + """ + + def __new__( + cls, + data: Optional[torch.Tensor] = None, + requires_grad: bool = False, # quantized weights must be frozen + quantization_config: QuantizationConfig = None, + quantizer: Quantizer = None, + ): + if requires_grad: + raise ValueError(f"requires_grad=True is not supported with QuantizedParameter") + if data is None: + data = torch.empty(0) + self = torch.Tensor._make_subclass(cls, data, requires_grad) + self.quantization_config = QuantizationConfig() if quantization_config is None else quantization_config + if quantizer is not None: + self.quantizer = quantizer + else: + # if FPQuantizerBuilder is not compatible in this env this init will fail + self.quantizer = FP_Quantize(quantization_config=self.quantization_config) + self._ensure_quantized(self) + return self + + def _ensure_quantized(self, tensor: torch.Tensor): + # If the tensor is on the accelerator and is not quantized, then quantize it in-place. + if get_accelerator().on_accelerator(tensor) and tensor.dtype != self.quantization_config.q_dtype: + with get_accelerator().stream(get_accelerator().current_stream(tensor.device)): + tensor.data = self.quantizer.quantize(tensor.data, + q_bits=self.quantization_config.q_bits, + q_mantisa_bits=self.quantization_config.mantissa_bits) + assert tensor.dtype == self.quantization_config.q_dtype + + def dequantized(self) -> torch.Tensor: + """ + Return a tensor containing the dequantized weights of this parameter. + """ + if get_accelerator().on_accelerator(self.data) and self.data.dtype == self.quantization_config.q_dtype: + with get_accelerator().stream(get_accelerator().current_stream(self.data.device)): + return self.quantizer.dequantize(self.data, + q_bits=self.quantization_config.q_bits, + q_mantisa_bits=self.quantization_config.mantissa_bits) + return self.data + + def offload(self, revert=False): + if getattr(self, 'ds_offload', False): + if revert: + self.data = self.to(get_accelerator().current_device_name()) + else: + self.data = self.to('cpu') + + def __getstate__(self): + state = self.__dict__ + state["data"] = self.data + state["quantization_config"] = self.quantization_config + state["requires_grad"] = self.requires_grad + return state + + def __setstate__(self, state): + self.quantizer = state["quantizer"] + self.quantization_config = state["quantization_config"] + self.data = state["data"] + self.requires_grad = state["requires_grad"] + + def __deepcopy__(self, memo): + new_instance = type(self).__new__(type(self)) + state = self.__getstate__() + new_instance.__setstate__(state) + new_instance.quantizer = copy.deepcopy(state["quantizer"]) + new_instance.quantization_config = copy.deepcopy(state["quantization_config"]) + new_instance.data = copy.deepcopy(state["data"]) + return new_instance + + def __copy__(self): + new_instance = type(self).__new__(type(self)) + state = self.__getstate__() + new_instance.__setstate__(state) + return new_instance + + def cuda(self, device=None, non_blocking=False): + device = "cuda" if device is None else device + self.quantizer.to(device, non_blocking=non_blocking) + return self.to(device, non_blocking=non_blocking) + + def to(self, *args, **kwargs): + """ + Move the parameter to the given device. Then, if the device is a cuda device, + quantize it. + """ + tensor = super().to(*args, **kwargs) + self.quantizer.to(*args, **kwargs) + self._ensure_quantized(tensor) + return tensor + + +class QuantizedLinear(nn.Linear): + """ + Linear layer that implements weight quantization. Parameters + are stored via `QuantizedParameter` and are dequantized on-the-fly during any + forward pass. + """ + + def __init__(self, + input_dim: int, + output_dim: int, + bias: bool = False, + quantization_config: QuantizationConfig = None, + dtype=torch.bfloat16): + super().__init__(input_dim, output_dim, bias=bias, dtype=dtype) + assert dtype == torch.bfloat16, "currently only supports bfloat16 dtype" + self.weight = QuantizedParameter(self.weight.data, quantization_config=quantization_config) + + def forward(self, input: torch.Tensor) -> torch.Tensor: + return F.linear(input, self.weight.dequantized(), self.bias) diff --git a/deepspeed/model_implementations/diffusers/unet.py b/deepspeed/model_implementations/diffusers/unet.py index 27627914cfcb..8d5ddd95437a 100644 --- a/deepspeed/model_implementations/diffusers/unet.py +++ b/deepspeed/model_implementations/diffusers/unet.py @@ -4,6 +4,7 @@ # DeepSpeed Team import torch +from deepspeed.accelerator import get_accelerator from ..features.cuda_graph import CUDAGraph @@ -29,7 +30,7 @@ def _graph_replay(self, *inputs, **kwargs): for k in kwargs: if torch.is_tensor(kwargs[k]): self.static_kwargs[k].copy_(kwargs[k]) - self._cuda_graphs.replay() + get_accelerator().replay_graph(self._cuda_graphs) return self.static_output def forward(self, *inputs, **kwargs): @@ -53,11 +54,11 @@ def _create_cuda_graph(self, *inputs, **kwargs): torch.cuda.current_stream().wait_stream(cuda_stream) # create cuda_graph and assign static_inputs and static_outputs - self._cuda_graphs = torch.cuda.CUDAGraph() + self._cuda_graphs = get_accelerator().create_graph() self.static_inputs = inputs self.static_kwargs = kwargs - with torch.cuda.graph(self._cuda_graphs): + with get_accelerator().capture_to_graph(self._cuda_graphs): self.static_output = self._forward(*self.static_inputs, **self.static_kwargs) self.cuda_graph_created = True @@ -68,7 +69,8 @@ def _forward(self, encoder_hidden_states, return_dict=True, cross_attention_kwargs=None, - timestep_cond=None): + timestep_cond=None, + added_cond_kwargs=None): if cross_attention_kwargs: return self.unet(sample, timestamp, diff --git a/deepspeed/model_implementations/diffusers/vae.py b/deepspeed/model_implementations/diffusers/vae.py index 05084f1b985a..ce50ade647a8 100644 --- a/deepspeed/model_implementations/diffusers/vae.py +++ b/deepspeed/model_implementations/diffusers/vae.py @@ -4,6 +4,7 @@ # DeepSpeed Team import torch +from deepspeed.accelerator import get_accelerator from ..features.cuda_graph import CUDAGraph @@ -27,7 +28,7 @@ def _graph_replay_decoder(self, *inputs, **kwargs): for k in kwargs: if torch.is_tensor(kwargs[k]): self.static_decoder_kwargs[k].copy_(kwargs[k]) - self._decoder_cuda_graph.replay() + get_accelerator().replay_graph(self._decoder_cuda_graph) return self.static_decoder_output def _decode(self, x, return_dict=True, generator=None): @@ -43,11 +44,11 @@ def _create_cuda_graph_decoder(self, *inputs, **kwargs): torch.cuda.current_stream().wait_stream(cuda_stream) # create cuda_graph and assign static_inputs and static_outputs - self._decoder_cuda_graph = torch.cuda.CUDAGraph() + self._decoder_cuda_graph = get_accelerator().create_graph() self.static_decoder_inputs = inputs self.static_decoder_kwargs = kwargs - with torch.cuda.graph(self._decoder_cuda_graph): + with get_accelerator().capture_to_graph(self._decoder_cuda_graph): self.static_decoder_output = self._decode(*self.static_decoder_inputs, **self.static_decoder_kwargs) self.decoder_cuda_graph_created = True @@ -70,7 +71,7 @@ def _graph_replay_encoder(self, *inputs, **kwargs): for k in kwargs: if torch.is_tensor(kwargs[k]): self.static_encoder_kwargs[k].copy_(kwargs[k]) - self._encoder_cuda_graph.replay() + get_accelerator().replay_graph(self._encoder_cuda_graph) return self.static_encoder_output def _encode(self, x, return_dict=True): @@ -86,11 +87,11 @@ def _create_cuda_graph_encoder(self, *inputs, **kwargs): torch.cuda.current_stream().wait_stream(cuda_stream) # create cuda_graph and assign static_inputs and static_outputs - self._encoder_cuda_graph = torch.cuda.CUDAGraph() + self._encoder_cuda_graph = get_accelerator().create_graph() self.static_encoder_inputs = inputs self.static_encoder_kwargs = kwargs - with torch.cuda.graph(self._encoder_cuda_graph): + with get_accelerator().capture_to_graph(self._encoder_cuda_graph): self.static_encoder_output = self._encode(*self.static_encoder_inputs, **self.static_encoder_kwargs) self.encoder_cuda_graph_created = True @@ -113,7 +114,7 @@ def _graph_replay(self, *inputs, **kwargs): for k in kwargs: if torch.is_tensor(kwargs[k]): self.static_kwargs[k].copy_(kwargs[k]) - self._all_cuda_graph.replay() + get_accelerator().replay_graph(self._all_cuda_graph) return self.static_output def forward(self, *inputs, **kwargs): @@ -137,11 +138,11 @@ def _create_cuda_graph(self, *inputs, **kwargs): torch.cuda.current_stream().wait_stream(cuda_stream) # create cuda_graph and assign static_inputs and static_outputs - self._all_cuda_graph = torch.cuda.CUDAGraph() + self._all_cuda_graph = get_accelerator().create_graph() self.static_inputs = inputs self.static_kwargs = kwargs - with torch.cuda.graph(self._all_cuda_graph): + with get_accelerator().capture_to_graph(self._all_cuda_graph): self.static_output = self._forward(*self.static_inputs, **self.static_kwargs) self.all_cuda_graph_created = True diff --git a/deepspeed/model_implementations/transformers/clip_encoder.py b/deepspeed/model_implementations/transformers/clip_encoder.py index 8d9291896986..848a5b48dcf1 100644 --- a/deepspeed/model_implementations/transformers/clip_encoder.py +++ b/deepspeed/model_implementations/transformers/clip_encoder.py @@ -38,7 +38,7 @@ def _graph_replay(self, *inputs, **kwargs): for k in kwargs: if torch.is_tensor(kwargs[k]): self.static_kwargs[self.iter][k].copy_(kwargs[k]) - self._cuda_graphs[self.iter].replay() + get_accelerator().replay_graph(self._cuda_graphs[self.iter]) return self.static_output[self.iter] def forward(self, *inputs, **kwargs): @@ -63,11 +63,11 @@ def _create_cuda_graph(self, *inputs, **kwargs): torch.cuda.current_stream().wait_stream(cuda_stream) # create cuda_graph and assign static_inputs and static_outputs - self._cuda_graphs[self.iter] = torch.cuda.CUDAGraph() + self._cuda_graphs[self.iter] = get_accelerator().create_graph() self.static_inputs[self.iter] = inputs self.static_kwargs[self.iter] = kwargs - with torch.cuda.graph(self._cuda_graphs[self.iter]): + with get_accelerator().capture_to_graph(self._cuda_graphs[self.iter]): self.static_output[self.iter] = self._forward(*self.static_inputs[self.iter], **self.static_kwargs[self.iter]) diff --git a/deepspeed/model_implementations/transformers/ds_llama2.py b/deepspeed/model_implementations/transformers/ds_llama2.py index 7d9eb4113a8a..325bfb4f7e18 100644 --- a/deepspeed/model_implementations/transformers/ds_llama2.py +++ b/deepspeed/model_implementations/transformers/ds_llama2.py @@ -4,11 +4,8 @@ # DeepSpeed Team import torch -from deepspeed import comm as dist from deepspeed.model_implementations.transformers.ds_transformer import DeepSpeedTransformerInference -inference_module = None - class DeepSpeedLlama2Inference(DeepSpeedTransformerInference): """Initialize the DeepSpeed OPT Transformer Layer. @@ -27,18 +24,10 @@ def forward(self, *args, **kwargs): input = args[0] input_mask = None - # Allocate memory only on first layer forward - if self.config.layer_id == 0 and self._alloc_workspace: - self.allocate_workspace(self.config.hidden_size, self.config.heads, - input.size()[1], - input.size()[0], DeepSpeedTransformerInference.layer_id, self.config.mp_size, - self.config.bigscience_bloom, - dist.get_rank() if dist.is_initialized() else 0, self.config.max_out_tokens, - self.config.min_out_tokens) - self._alloc_workspace = False - get_present = True + self.allocate_workspace(input.size()) + # We set the prev key/value to None when there is a prompt if input.shape[1] > 1: self.layer_past = None diff --git a/deepspeed/model_implementations/transformers/ds_transformer.py b/deepspeed/model_implementations/transformers/ds_transformer.py index a41df58ad059..7e3c81b714c0 100644 --- a/deepspeed/model_implementations/transformers/ds_transformer.py +++ b/deepspeed/model_implementations/transformers/ds_transformer.py @@ -6,19 +6,18 @@ import torch import torch.nn as nn from deepspeed import comm as dist +from deepspeed.ops.transformer.inference.op_binding.layer_norm import LayerNormOp from deepspeed.utils.logging import log_dist from deepspeed.ops.transformer.inference.ds_mlp import DeepSpeedMLP from deepspeed.ops.transformer.inference.ds_attention import DeepSpeedSelfAttention, BloomSelfAttention +from deepspeed.ops.transformer.inference.op_binding.workspace import WorkspaceOp from deepspeed.accelerator import get_accelerator -from deepspeed.ops.op_builder import InferenceBuilder import deepspeed -if deepspeed.HAS_TRITON: +if deepspeed.HAS_TRITON and get_accelerator().is_triton_supported(): from deepspeed.ops.transformer.inference.triton.mlp import TritonMLP from deepspeed.ops.transformer.inference.triton.attention import TritonSelfAttention -inference_module = None - class DeepSpeedTransformerInference(nn.Module): """Initialize the DeepSpeed Transformer Layer. @@ -37,6 +36,7 @@ class DeepSpeedTransformerInference(nn.Module): for specific downstream tasks. """ layer_id = 0 + workspace = None def __init__(self, config, @@ -52,10 +52,6 @@ def __init__(self, DeepSpeedTransformerInference.layer_id += 1 data_type = torch.half if self.config.dtype == torch.int8 else self.config.dtype - global inference_module - if inference_module is None: - builder = InferenceBuilder() - inference_module = builder.load() if DeepSpeedTransformerInference.layer_id == 1: log_dist(f"DeepSpeed-Inference config: {self.config.__dict__}", [0]) @@ -88,22 +84,25 @@ def __init__(self, self.norm_b = nn.Parameter(torch.empty(self.config.hidden_size, dtype=data_type, device=device), requires_grad=False) self.layer_past = None - try: - if config.dtype == torch.float32: - self.allocate_workspace = inference_module.allocate_workspace_fp32 - elif config.dtype == torch.bfloat16: - self.allocate_workspace = inference_module.allocate_workspace_bf16 - else: - self.allocate_workspace = inference_module.allocate_workspace_fp32 - self._alloc_workspace = True - except AttributeError: - self.allocate_workspace = None - self._alloc_workspace = False + self.layer_norm = LayerNormOp() + if DeepSpeedTransformerInference.workspace is None: + DeepSpeedTransformerInference.workspace = WorkspaceOp(self.config) + self._should_allocate_workspace = True + + def allocate_workspace(self, size): + # Allocate memory only on first layer forward + if self.config.layer_id == 0 and self._should_allocate_workspace: + DeepSpeedTransformerInference.workspace.allocate_workspace( + self.config.hidden_size, self.config.heads, size[1], size[0], DeepSpeedTransformerInference.layer_id, + self.config.mp_size, self.config.bigscience_bloom, + dist.get_rank() if dist.is_initialized() else 0, self.config.max_out_tokens, + self.config.min_out_tokens) + self._should_allocate_workspace = False @classmethod def reset_cache(cls): - if inference_module is not None: - inference_module.reset_cache() + if cls.workspace is not None: + cls.workspace.reset_cache() def forward( self, @@ -136,15 +135,7 @@ def forward( input_mask = (input_mask if attn_mask is None else attn_mask) if attention_mask is None else attention_mask - # Allocate memory only on first layer forward - if self.config.layer_id == 0 and self._alloc_workspace: - self.allocate_workspace(self.config.hidden_size, self.config.heads, - input.size()[1], - input.size()[0], DeepSpeedTransformerInference.layer_id, self.config.mp_size, - self.config.bigscience_bloom, - dist.get_rank() if dist.is_initialized() else 0, self.config.max_out_tokens, - self.config.min_out_tokens) - self._alloc_workspace = False + self.allocate_workspace(input.size()) get_present = (get_present or get_key_value or use_cache) input_mask = input_mask if attention_mask is None else attention_mask @@ -163,7 +154,7 @@ def forward( if (self.config.dtype in [torch.float16, torch.bfloat16, torch.int8]) \ and input.dtype == torch.float: - target_dtype = torch.half if self.dtype == torch.int8 else self.dtype + target_dtype = torch.half if self.config.dtype == torch.int8 else self.config.dtype input = input.to(target_dtype) with torch.no_grad(): @@ -178,14 +169,15 @@ def forward( output_attentions, self.norm_w, self.norm_b, - alibi) + alibi, + **kwargs) presents = (key, value) self.layer_past = presents if layer_past is None else None output = self.mlp(attention_output, input, inp_norm, self.attention.attn_ob) if not self.config.pre_layer_norm: - output = inference_module.layer_norm(output, self.norm_w, self.norm_b, self.config.epsilon) + output = self.layer_norm(output, self.norm_w, self.norm_b, self.config.epsilon) output = output.to(input_type) if get_present: diff --git a/deepspeed/module_inject/__init__.py b/deepspeed/module_inject/__init__.py index 4bdabf383b26..9fc2f979a04b 100755 --- a/deepspeed/module_inject/__init__.py +++ b/deepspeed/module_inject/__init__.py @@ -6,5 +6,5 @@ from .replace_module import replace_transformer_layer, revert_transformer_layer, ReplaceWithTensorSlicing, GroupQuantizer, generic_injection from .module_quantize import quantize_transformer_layer from .replace_policy import HFBertLayerPolicy -from .layers import LinearAllreduce, LinearLayer, EmbeddingLayer, Normalize +from .layers import LinearAllreduce, LinearLayer, EmbeddingLayer, Normalize, set_autotp_mode from .policy import DSPolicy diff --git a/deepspeed/module_inject/auto_tp.py b/deepspeed/module_inject/auto_tp.py old mode 100644 new mode 100755 index c235cc766209..b089ec420d47 --- a/deepspeed/module_inject/auto_tp.py +++ b/deepspeed/module_inject/auto_tp.py @@ -11,10 +11,22 @@ from typing import Optional import torch from deepspeed import comm as dist -from .layers import LinearAllreduce, LinearLayer, LmHeadLinearAllreduce +from .layers import LinearAllreduce, LinearLayer, LmHeadLinearAllreduce, Yuan_LinearAllreduce, Yuan_LinearLayer, GateUpPack_LinearLayer, Conv_LinearALlreduce, fused_LinearLayer, conv_LinearLayer from deepspeed.accelerator import get_accelerator -from .fusedqkv_utils import require_tp_fused_qkvw, prepare_tp_fused_qkvw +from .fusedqkv_utils import require_tp_fused_qkvw from deepspeed.module_inject.tp_shard import get_shard_size, get_shard_size_list +from deepspeed.utils import groups +from deepspeed.module_inject.layers import is_autotp_training_mode + + +def move(tensor, device, copy=True): + if tensor.is_meta: + return torch.empty_like(tensor, device=device) + else: + # Using new tensors help in freeing memory (after split for example) was done before by calling clone(). + # Using copy=True instead of clone() will help in case of cpu --> cpu. + # Otherwise to() will not create a new copy for the view of the full tensor, and it will not be de-referenced. + return tensor.to(device, copy=copy) class ReplaceWithTensorSlicing: @@ -121,7 +133,13 @@ class Loading(): def is_load_module(module): load_layers = [nn.Linear, nn.Embedding, nn.LayerNorm] - load_layer_names = ["LPLayerNorm", "SharedEmbedding", "OPTLearnedPositionalEmbedding", "LlamaRMSNorm"] + load_layer_names = [ + "LPLayerNorm", "SharedEmbedding", "OPTLearnedPositionalEmbedding", "LlamaRMSNorm", "FalconLinear", + "MistralRMSNorm", "T5LayerNorm", "MixtralRMSNorm", "Phi3RotaryEmbedding", "Phi3SuScaledRotaryEmbedding", + "Phi3RMSNorm", "YuanRMSNorm", "YuanRotaryEmbedding", "Phi3LongRoPEScaledRotaryEmbedding", "Qwen2RMSNorm", + "DeepseekV2RMSNorm", "DeepseekV3RMSNorm", "DeepseekV2YarnRotaryEmbedding", "DeepseekV3YarnRotaryEmbedding", + "MoEGate" + ] return module.__class__ in load_layers or module._get_name() in load_layer_names def load_buffer(module, state_dict, prefix): @@ -174,7 +192,14 @@ def load(module, state_dict, prefix, mp_group=None): class AutoTP(): - def __init__(self, module, all_reduce_linears, prefix, state_dict, linear_layer_setting, orig_layer_impl): + def __init__(self, + module, + all_reduce_linears, + prefix, + state_dict, + linear_layer_setting, + orig_layer_impl, + keep_module_on_host=False): self.module = module self.all_reduce_linears = all_reduce_linears self.prefix = prefix @@ -186,6 +211,7 @@ def __init__(self, module, all_reduce_linears, prefix, state_dict, linear_layer_ self.orig_layer_impl = orig_layer_impl self.linear_policies = None self.conv_linear_layer = False + self.keep_module_on_host = keep_module_on_host def in_module_list(module, module_list): for item in module_list: @@ -265,11 +291,13 @@ def tp_parser(model): module_list = AutoTP.get_module_list(model) assert AutoTP.supported(model), "AutoTP not supported for model. Please use kernel injection since container policy for model exists." \ if AutoTP.kernel_supported(module_list) else "AutoTP not supported for model. Please provide policy." + norm_layer_name_list = ['LayerNorm', 'layer_norm', 'ln_1', 'ln_2'] + #ln_1 , ln_2 for Qwen for module in module_list: for key, submodule in module._modules.items(): if isinstance(submodule, nn.Linear): layer_list = layer_list + ["." + key] - elif isinstance(submodule, nn.LayerNorm) or key == 'LayerNorm' or key == 'layer_norm': + elif isinstance(submodule, nn.LayerNorm) or key in norm_layer_name_list: layer_list = layer_list + ["ln"] else: layer_list = layer_list + AutoTP.get_layers(key, submodule) @@ -288,6 +316,15 @@ def tp_parser(model): elif 'self_attention.dense' in layer and 'falcon' in str( type(module)): # this is a hack to get the right linear layer for this model! gem_list = gem_list + [layer] + # Mixtral-7x8b used w2*act(w1*w3) linear. need to replace w2 to linearallreduce. + elif 'w2' in layer and 'Mixtral' in str(type(module)): + gem_list = gem_list + [layer] + elif 'self_attn.dense' in layer and 'Phi' in str(type(module)): + gem_list = gem_list + [layer] + elif 'self_attention.dense' in layer and 'ChatGLM' in str(model): + gem_list = gem_list + [layer] + elif 'dense_4h_to_h' in layer and 'ChatGLM' in str(model): + gem_list = gem_list + [layer] layer_list = [] if gem_list != []: @@ -299,69 +336,68 @@ def tp_parser(model): return policy_list def set_tensor_parallel_config(self, mp_size, mp_group): + + if is_autotp_training_mode(): + self.mp_group = groups.get_tensor_model_parallel_group() + self.mp_size = groups.get_tensor_model_parallel_world_size() + return + self.mp_size = mp_size self.mp_group = mp_group def _replace(self, child, name, conv_linear_layer): + # This function should clearly define the routing rules for specific layers + # and avoid any complex shard-related logic. if getattr(child, "replaced", False) == True: return + device_name = 'cpu' if self.keep_module_on_host else get_accelerator().current_device_name() + # keep_module_on_host is used to keep the module on the host. Checkpoints are loaded to the host first (in some + # cases it can be done from the disk even to prevent filling host's memory), thus no need to create a new copy. + return_new_copy = not self.keep_module_on_host weight_shape = child.weight.shape mp_replace = ReplaceWithTensorSlicing(mp_group=self.mp_group) - if name in self.all_reduce_linears: - # if conv_linear_layer [weight_shape[1], weight_shape[0] // mp_size] - # else [weight_shape[0], weight_shape[1] // mp_size] + # For TP layer skip, e.g., MoE gate, deepseek low rank layer skip + if "q_a_proj" in name or "kv_a_proj_with_mqa" in name or name == "block_sparse_moe.gate" or ( + ('mlp.shared_expert_gate' == name or 'mlp.gate' == name) and 'qwen2_moe' in str(type(self.module))): + return child + # For Yuan model + if 'Yuan' in str(self.module): + if 'v_proj' in name: + return Yuan_LinearLayer(child, self.mp_group) + + elif 'o_proj' in name: + return Yuan_LinearAllreduce(child, self.mp_group) + + # For MLP including chunk layer. + if 'gate_up_proj' in name or ('dense_h_to_4h' in name and 'GLM' in str(self.module)): + return GateUpPack_LinearLayer(child, self.mp_group) + # For Arctic model, bypass to all_reduce replacement for w2 weights + arctic_w2_all_reduce_linear = False + if 'Arctic' in str(self.module) and 'w2' in name: + arctic_w2_all_reduce_linear = True + # For MoE MLP model, e.g., deepseek and jamba + down_proj = False + if 'down_proj' in name: + down_proj = True + if name in self.all_reduce_linears or arctic_w2_all_reduce_linear or down_proj: + setattr(child, "replaced", True) if self.conv_linear_layer: - child.weight.data = child.weight.data.transpose(-1, -2).contiguous() - data = child.weight.data.split(get_shard_size_list( - weight_shape[0] if self.conv_linear_layer else weight_shape[1], self.mp_size), - dim=1) - data_dc = data[mp_replace.gpu_index].to(get_accelerator().current_device_name()).clone().detach() - del data + return Conv_LinearALlreduce(child, self.mp_group, name=name) + elif name == "lm_head" or name == 'embed_out': + return LmHeadLinearAllreduce(child, self.mp_group) - setattr(child, "replaced", True) - if name == "lm_head" or name == 'embed_out': - return LmHeadLinearAllreduce( - torch.nn.parameter.Parameter(data_dc, requires_grad=False), dist.get_rank(), dist.get_world_size(), - child.bias if child.bias is None else torch.nn.parameter.Parameter( - child.bias.to(get_accelerator().current_device_name())), self.mp_group) - return LinearAllreduce(torch.nn.parameter.Parameter(data_dc, requires_grad=False), child.bias if child.bias is None else \ - torch.nn.parameter.Parameter(child.bias.to(get_accelerator().current_device_name())), self.mp_group) + return LinearAllreduce(child, self.mp_group, name=name) else: - # if conv_linear_layer [weight_shape[1], weight_shape[0] // mp_size] - # else [weight_shape[0] // mp_size, weight_shape[1]] + setattr(child, "replaced", True) if self.conv_linear_layer: - child.weight.data = child.weight.data.transpose(-1, -2).contiguous() - - if require_tp_fused_qkvw(name, self.mp_size): - #for detecting fused type - module_str = str(self.module).strip() - #The copy is a regular copy, The shape of dst and src is the same - data_dc = prepare_tp_fused_qkvw(module_str, child.weight.data, self.mp_size, mp_replace.gpu_index) + conv_LinearLayer(child, self.mp_group) + elif require_tp_fused_qkvw(name, self.mp_size): + #Check and handle fused qkv for TP + return fused_LinearLayer(child, self.mp_group, fused_module=self.module) - bias_data_dc = None if child.bias is None else prepare_tp_fused_qkvw( - module_str, child.bias.data, self.mp_size, mp_replace.gpu_index).to( - get_accelerator().current_device_name()) - else: - data = child.weight.data.split(get_shard_size_list(weight_shape[0], self.mp_size), - dim=1 if self.conv_linear_layer else 0) - data_dc = data[mp_replace.gpu_index].to(get_accelerator().current_device_name()).clone().detach() - del data - - if child.bias is not None: - bias_data = child.bias.data.split(get_shard_size_list( - weight_shape[1] if self.conv_linear_layer else weight_shape[0], self.mp_size), - dim=0) - bias_data = bias_data[mp_replace.gpu_index].to(get_accelerator().current_device_name()) - bias_data_dc = torch.nn.parameter.Parameter(bias_data, requires_grad=False) - del bias_data - else: - bias_data_dc = None - - setattr(child, "replaced", True) - return LinearLayer(weight=torch.nn.parameter.Parameter(data_dc.to(get_accelerator().current_device_name()), requires_grad=False), \ - bias=bias_data_dc) + return LinearLayer(child, self.mp_group, name=name) def _slice_embedding(self, child, name, conv_linear_layer): if getattr(child, "replaced", False) == True: @@ -371,11 +407,11 @@ def _slice_embedding(self, child, name, conv_linear_layer): if hasattr(child.weight, 'ds_tensor'): data = child.weight.ds_tensor.data.split(get_shard_size_list(child.weight.shape[1], self.mp_size), dim=1) else: - data = child.weight.data.split(get_shard_size_list(child.weight.shape[1], self.mp_size), dim=1) + data = child.weight.data.split(get_shard_size_list(child.weight.shape[1], self.mp_size, name), dim=1) data = data[mp_replace.gpu_index].to(get_accelerator().current_device_name()) data = torch.nn.parameter.Parameter(data, requires_grad=False) - new_embedding = nn.Embedding(child.weight.shape[0], get_shard_size(child.weight.shape[1], self.mp_size)) + new_embedding = nn.Embedding(child.weight.shape[0], get_shard_size(child.weight.shape[1], self.mp_size, name)) new_embedding.weight.data.copy_(data) setattr(child, "replaced", True) return new_embedding @@ -383,10 +419,14 @@ def _slice_embedding(self, child, name, conv_linear_layer): def update_mp_params(self, child): if getattr(child, "replaced", False) == True: return - for param in [ - "n_heads", "inner_dim", "num_heads", "num_kv", "num_attention_heads", "num_attn_heads", - "all_head_size", "embed_dim", "hidden_size", "num_key_value_heads", "num_kv_heads" - ]: + param_list = [ + "n_heads", "inner_dim", "num_heads", "num_kv", "num_attention_heads", "num_attn_heads", "all_head_size", + "embed_dim", "hidden_size", "num_key_value_heads", "num_kv_heads", "kv_n_heads", "d_model", + "num_attention_heads_per_partition", "num_multi_query_groups_per_partition", "hidden_size_per_partition" + ] + for param in param_list: + if "Yuan" in str(child) and 'embed_dim' in param_list: + param_list.remove('embed_dim') if hasattr(child, param): param_val = getattr(child, param) setattr(child, param, get_shard_size(param_val, self.mp_size)) @@ -446,11 +486,15 @@ def _replace_module(self, r_module, prev_name='', prev_class_name=''): def get_model_num_kv_heads(self, config): num_kv_heads = None - kv_head_names = ['num_key_value_heads', 'num_attention_heads', 'n_heads'] + # multi_query_group_num is for chatglm2 & chatglm3 + kv_head_names = [ + 'multi_query_group_num', 'num_kv_heads', 'num_key_value_heads', 'num_attention_heads', 'n_heads', + 'attention_heads' + ] for name in kv_head_names: if hasattr(config, name): num_kv_heads = getattr(config, name) - if num_kv_heads != None: + if num_kv_heads is not None: break return num_kv_heads diff --git a/deepspeed/module_inject/auto_tp_model_utils.py b/deepspeed/module_inject/auto_tp_model_utils.py index 51e52e3258dd..a71b1a54d6f6 100644 --- a/deepspeed/module_inject/auto_tp_model_utils.py +++ b/deepspeed/module_inject/auto_tp_model_utils.py @@ -61,6 +61,16 @@ def build_bloom_alibi_tensor(attention_mask: torch.Tensor, num_heads: int, dtype return alibi.reshape(batch_size * num_heads, 1, seq_length).to(dtype) +def get_alibi_mask(self, tensor, seq_length_with_past): + mask = self.get_alibi_mask_orig(tensor, seq_length_with_past) + if not self.training and dist.is_initialized(): + num_heads_per_rank = get_shard_size(self.n_head, dist.get_world_size()) + offset = sum(get_shard_size_list(self.n_head, dist.get_world_size())[0:dist.get_rank()]) + mask = mask[offset:num_heads_per_rank + offset, :seq_length_with_past, :seq_length_with_past] + + return mask + + def build_mpt_atten_bias_tensor(self, device, dtype, diff --git a/deepspeed/module_inject/containers/bloom.py b/deepspeed/module_inject/containers/bloom.py index 05f30eec8d85..7a9b9ca2065b 100644 --- a/deepspeed/module_inject/containers/bloom.py +++ b/deepspeed/module_inject/containers/bloom.py @@ -19,16 +19,30 @@ class DS_BloomContainer(MetaTensorContainer, HybridEngineContainer, BaseTransformerContainer): def __init__(self, **kwargs): + # Check transformers version, error if > 4.43.4 (breaks at 4.44.0) + from importlib.metadata import version + v_transformers = version('transformers') + vers = v_transformers.split('.') + major = int(vers[0]) + minor = int(vers[1]) + if major > 4 or (major == 4 and minor > 43): + import sys + sys.exit( + f"Transformers version {v_transformers} exceeds version 4.43.4! After transformers version 4.43.4, BLOOM inference with DeepSpeed is no longer supported." + ) + super().__init__(**kwargs) # All model specific things should be defined here instead of the base class. self.bigscience_bloom = True + self.triangular_masking = False def create_module(self, config=None): _config = config if config is not None else self.ds_model_config self.module = DeepSpeedBloomInference(_config, mp_group=self.mp_group) self.module.config.scale_attention = self.scale_attention + self.module.config.invert_mask = False return self.module def attention_qkv_mp(self, mp_replace, reversed_dim=False): diff --git a/deepspeed/module_inject/containers/features/meta_tensor.py b/deepspeed/module_inject/containers/features/meta_tensor.py index 5fb55bc74339..57b136663be3 100644 --- a/deepspeed/module_inject/containers/features/meta_tensor.py +++ b/deepspeed/module_inject/containers/features/meta_tensor.py @@ -60,7 +60,7 @@ def load_params(self, module, sd, weight_quantizer, mp_replace, prefix): layer of the model for searching the parameter's name in a checkpoint file. For more information of how this is used please see - https://github.com/microsoft/DeepSpeed/blob/master/deepspeed/module_inject/load_checkpoint.py + https://github.com/deepspeedai/DeepSpeed/blob/master/deepspeed/module_inject/load_checkpoint.py 2. `split_qkv` (Default: True): we use this flag when splitting the qkv parameter into heads. If it is False, it means the heads of q, k, and v are stored together and needs to split in the diff --git a/deepspeed/module_inject/containers/llama.py b/deepspeed/module_inject/containers/llama.py index f6157e5cdfed..7af333dc1ee4 100644 --- a/deepspeed/module_inject/containers/llama.py +++ b/deepspeed/module_inject/containers/llama.py @@ -129,12 +129,10 @@ def __init__(self, client_module, inference=True): def get_hidden_heads(self): hidden_heads = ( - getattr(self.client_module.self_attn.q_proj.weight, "ds_shape", - self.client_module.self_attn.q_proj.weight.shape)[1], + self.client_module.self_attn.q_proj.in_features, self.client_module.self_attn.num_heads, self.client_module.input_layernorm.variance_epsilon, - getattr(self.client_module.mlp.gate_proj.weight, "ds_shape", - self.client_module.mlp.gate_proj.weight.shape)[0], + self.client_module.mlp.gate_proj.out_features, ) return hidden_heads diff --git a/deepspeed/module_inject/containers/unet.py b/deepspeed/module_inject/containers/unet.py index 4e15699dc5a1..481792655531 100644 --- a/deepspeed/module_inject/containers/unet.py +++ b/deepspeed/module_inject/containers/unet.py @@ -17,6 +17,8 @@ def __init__(self): try: import diffusers self._orig_layer_class = diffusers.models.unet_2d_condition.UNet2DConditionModel + except AttributeError: + self._orig_layer_class = diffusers.models.unets.unet_2d_condition.UNet2DConditionModel except ImportError: self._orig_layer_class = None diff --git a/deepspeed/module_inject/containers/vae.py b/deepspeed/module_inject/containers/vae.py index d7c9642768cc..d26d0ef77ca9 100644 --- a/deepspeed/module_inject/containers/vae.py +++ b/deepspeed/module_inject/containers/vae.py @@ -13,10 +13,16 @@ def __init__(self): super().__init__() try: import diffusers - if hasattr(diffusers.models.vae, "AutoencoderKL"): + if hasattr(diffusers.models, "autoencoders"): + # Diffusers >= 0.25.0 + # Changes location to 'autoencoders' directory + self._orig_layer_class = diffusers.models.autoencoders.autoencoder_kl.AutoencoderKL + elif hasattr(diffusers.models.vae, "AutoencoderKL"): + # Diffusers < 0.12.0 self._orig_layer_class = diffusers.models.vae.AutoencoderKL else: - # Diffusers >= 0.12.0 changes location of AutoencoderKL + # Diffusers >= 0.12.0 & < 0.25.0 + # Changes location of AutoencoderKL self._orig_layer_class = diffusers.models.autoencoder_kl.AutoencoderKL except ImportError: self._orig_layer_class = None diff --git a/deepspeed/module_inject/fusedqkv_utils.py b/deepspeed/module_inject/fusedqkv_utils.py index 2e8f6b5917ed..0609c6001dd2 100644 --- a/deepspeed/module_inject/fusedqkv_utils.py +++ b/deepspeed/module_inject/fusedqkv_utils.py @@ -4,8 +4,7 @@ # DeepSpeed Team import torch from deepspeed.utils.logging import warning_once -from deepspeed.module_inject.tp_shard import get_shard_size, get_shard_size_list, get_num_kv_heads -import re +from deepspeed.module_inject.tp_shard import get_shard_size, get_shard_size_list, get_num_kv_heads, get_n_embd, get_num_attention_heads def split_by_qkvlist_and_refuse(qkv_list, split_size, split_dim=0, cat_dim=0): @@ -17,7 +16,7 @@ def split_by_qkvlist_and_refuse(qkv_list, split_size, split_dim=0, cat_dim=0): def require_tp_fused_qkvw(name, mp_size): - fused_qkvw_name_list = ['qkv_proj', 'query_key_value', 'attn.Wqkv'] + fused_qkvw_name_list = ['qkv_proj', 'query_key_value', 'attn.Wqkv', 'self_attn.W_pack', 'c_attn'] if mp_size == 1: return False @@ -27,8 +26,10 @@ def require_tp_fused_qkvw(name, mp_size): return False -def prepare_tp_fused_qkvw(module_str, src, mp_size, gpu_index): - if src == None: +def prepare_tp_fused_qkvw(module, src, mp_size, gpu_index): + + module_str = str(module).strip() + if src is None: return fused_type_dict = { 'CodeGenBlock': 'codegentype', @@ -36,6 +37,12 @@ def prepare_tp_fused_qkvw(module_str, src, mp_size, gpu_index): 'GLMBlock': 'glmtype', "MPTBlock": 'glmtype', "MptBlock": 'glmtype', + "BaichuanLayer": 'glmtype', + "QWenBlock": 'qwentype', + "FalconDecoderLayer": 'bloomtype', + "GPTBigCodeBlock": 'bigcodetype', + "DecoderLayer": 'glmtype', + "Phi3DecoderLayer": "phi3type" } def _codegen_type_transpose(input, mp_size, codegen_mp_num=4): @@ -60,11 +67,24 @@ def _codegen_type_transpose(input, mp_size, codegen_mp_num=4): def _glm_type_transpose(input, mp_size): #input : [3*hidden_dim, hidden_dim](weight) or [3*hidden_dim](bias) - shape = input.shape - src_split = torch.split(input, shape[0] // 3, dim=0) - - split_fusedqkv = split_by_qkvlist_and_refuse(src_split, get_shard_size_list(shape[0] // 3, mp_size)) - return split_fusedqkv[gpu_index] + # For chatglm2 & chatglm3(kv_heads=2), need to special handle. + if get_num_kv_heads() == 2: + shape = input.shape + hidden_dim = get_n_embd() + kv_dim = (shape[0] - hidden_dim) // get_num_kv_heads() + q = input[:hidden_dim] + k = input[hidden_dim:hidden_dim + kv_dim] + v = input[hidden_dim + kv_dim:] + q_split = q.split(get_shard_size_list(q.shape[0], mp_size), dim=0) + k_split = k.split(get_shard_size_list(k.shape[0], mp_size), dim=0) + v_split = v.split(get_shard_size_list(v.shape[0], mp_size), dim=0) + return torch.cat((q_split[gpu_index], k_split[gpu_index], v_split[gpu_index]), dim=0) + else: + shape = input.shape + src_split = torch.split(input, shape[0] // 3, dim=0) + + split_fusedqkv = split_by_qkvlist_and_refuse(src_split, get_shard_size_list(shape[0] // 3, mp_size)) + return split_fusedqkv[gpu_index] def _bloom_type_transpose(input, mp_size): shape = input.shape @@ -72,7 +92,36 @@ def _bloom_type_transpose(input, mp_size): split_fusedqkv = input.split(get_shard_size_list(shape[0], mp_size), dim=0) return split_fusedqkv[gpu_index] - def _transpose_fused_qkvw(src, mp_size, fused_qkv_type=None): + def _qwen_type_transpose(input, mp_size, module): + if not hasattr(module, "_ds_fusedqkv_entered"): + # Adjust splitting absolute value variables + setattr(module, "_ds_fusedqkv_entered", True) + module.attn.split_size = get_shard_size(module.attn.split_size, mp_size) + return _glm_type_transpose(input, mp_size) + + def _bigcode_type_transpose(input, mp_size): + n_embd = get_n_embd() + q = input[:n_embd] + kv = input[n_embd:] + shape = q.shape + split_q = q.split(get_shard_size_list(shape[0], mp_size), dim=0) + return torch.cat((split_q[gpu_index], kv), dim=0) + + def _phi3_type_transpose(input, mp_size): + num_kv_heads = get_num_kv_heads() + num_heads = get_num_attention_heads() + hidden_size = input.shape[1] + head_dim = hidden_size // num_heads + q_pos = input.shape[0] - 2 * num_kv_heads * head_dim + q = input[:q_pos] + k = input[q_pos:q_pos + num_kv_heads * head_dim] + v = input[q_pos + num_kv_heads * head_dim:] + split_q = q.split(get_shard_size_list(q.shape[0], mp_size), dim=0) + split_k = k.split(get_shard_size_list(k.shape[0], mp_size), dim=0) + split_v = v.split(get_shard_size_list(v.shape[0], mp_size), dim=0) + return torch.cat((split_q[gpu_index], split_k[gpu_index], split_v[gpu_index]), dim=0) + + def _transpose_fused_qkvw(src, mp_size, fused_qkv_type=None, module=None): # suppose num_heads=n, q(n)_w means the n-th q head linear weight, the weight format are as following # bloomtype: [q(1)_w,k(1)_w,v(1)_w,q(2)_w,k(2)_w,v(2)_w,...,q(n)_w,k(n)_w,v(n)_w] @@ -85,12 +134,98 @@ def _transpose_fused_qkvw(src, mp_size, fused_qkv_type=None): return _codegen_type_transpose(src, mp_size) elif fused_qkv_type == 'glmtype': return _glm_type_transpose(src, mp_size) + elif fused_qkv_type == 'qwentype': + return _qwen_type_transpose(src, mp_size, module) + elif fused_qkv_type == 'bigcodetype': + return _bigcode_type_transpose(src, mp_size) + elif fused_qkv_type == 'phi3type': + return _phi3_type_transpose(src, mp_size) raise ValueError("unknown fused_qkv_type") - for module_name, fused_type in fused_type_dict.items(): - if re.search(module_name, module_str): - return _transpose_fused_qkvw(src, mp_size, fused_type) + module_name_matches = [k for k in fused_type_dict.keys() if k in module_str] + if module_name_matches: + # There can be overlap with matches (e.g., "DecoderLayer" and "FalconDecoderLayer"). + # We take the longest matching module_name + module_name = max(module_name_matches, key=len) + fused_type = fused_type_dict[module_name] + return _transpose_fused_qkvw(src, mp_size, fused_type, module) warning_once(f"Unrecognized fusedkqv weight type, default to using bloom type," f"please check in prepare_tp_fused_qkvw() to avoid potential calculation errors") return _bloom_type_transpose(src, mp_size) + + +# For share qk type: +# q = [q1,...,q_{n/4}, q_{n/2+1},...,q_{3n/4}, k1,...,k_{n/4}, k_{n/2+1},...,k_{3n/4}] +# k = [q_{n/4+1},...,q_{n/2}, q_{3n/4+1},...,qn, k_{n/4+1},...,k_{n/2}, k{3n/4+1},...,kn] +# Avoid modifying the modeling code. We adjust the value and oproj weight to fit this qk type. +def shard_value_with_share_qk( + weight, + bias, + rank, + world_size, + shard_value=True # True -> shard_value; False -> shard_oproj +): + if shard_value: + total_size = weight.shape[0] + weight_cat_dim = 0 + else: + total_size = weight.shape[1] + weight_cat_dim = 1 + num_heads = get_num_kv_heads() + head_dim = total_size // num_heads + assert (num_heads % world_size == 0) + if world_size > num_heads // 2: + RuntimeError(f"world_size {world_size} is larger than half of num_heads {num_heads}") + head_per_rank = num_heads // world_size + q_head_start = rank * head_per_rank + # mapping q_head to v_head + v_head_ids = [] + i = 0 + # mapping neighbor q_head to v_head + while i < head_per_rank: + v_head_ids.append(q_head_start // 2) + q_head_start += 2 + i = i + 2 + + # mapping neighbor k_head to v_head + v_head_ids.extend([i + num_heads // 2 for i in v_head_ids]) + sharded_weight = [] + sharded_bias = [] + for head_id in v_head_ids: + if shard_value: + sharded_weight.append(weight[head_id * head_dim:(head_id + 1) * head_dim]) + if bias is not None: + sharded_bias.append(bias.data[head_id * head_dim:(head_id + 1) * head_dim]) + else: + sharded_weight.append(weight[:, head_id * head_dim:(head_id + 1) * head_dim]) + sharded_weight = torch.cat(sharded_weight, dim=weight_cat_dim) + if bias is not None: + if shard_value: + sharded_bias = torch.cat(sharded_bias, dim=0) + else: + bias = bias / float(world_size) + return torch.nn.Parameter(sharded_weight), torch.nn.Parameter(sharded_bias) + else: + return torch.nn.Parameter(sharded_weight), None + + +# For phi3 with chunk mlp, adjust the weight order. +def shard_chunk_mlp( + weight, + bias, + rank, + world_size, +): + weight_gate, weight_states = weight.chunk(2, dim=0) + total_size = weight_gate.shape[0] + split_weight_gate = weight_gate.split(get_shard_size_list(total_size, world_size, "mlp"), dim=0) + split_weight_states = weight_states.split(get_shard_size_list(total_size, world_size, "mlp"), dim=0) + shard_weight = torch.cat((split_weight_gate[rank], split_weight_states[rank]), dim=0) + if bias is not None: + bias_gate, bias_states = bias.chunk(2, dim=0) + split_bias_gate = bias_gate.split(get_shard_size_list(total_size, world_size, "mlp"), dim=0) + split_bias_states = bias_states.split(get_shard_size_list(total_size, world_size, "mlp"), dim=0) + return shard_weight, torch.cat((split_bias_gate[rank], split_bias_states[rank]), dim=0) + + return shard_weight, None diff --git a/deepspeed/module_inject/layers.py b/deepspeed/module_inject/layers.py index 969826ad0289..0c673225a732 100644 --- a/deepspeed/module_inject/layers.py +++ b/deepspeed/module_inject/layers.py @@ -7,49 +7,573 @@ from deepspeed import comm as dist from torch import nn from torch.nn import functional as F - from torch.nn.parameter import Parameter from deepspeed.accelerator import get_accelerator from deepspeed.module_inject.tp_shard import get_shard_size, get_shard_size_list +from abc import ABC, abstractmethod +from typing import Iterable, Any, Optional, List, Tuple +from .fusedqkv_utils import shard_value_with_share_qk, shard_chunk_mlp, prepare_tp_fused_qkvw +from deepspeed.runtime.tensor_parallel import AUTOTP_MODE +from copy import deepcopy +from typing import Union + +DEEPSPEED_AUTOTP_MODE = AUTOTP_MODE.INFERENCE +DS_IS_REPLACED_MODULE = 'ds_is_replaced_module' +DS_TENSOR_MODEL_PARALLEL = 'tensor_model_parallel' + + +def get_auto_tp_mode(): + global DEEPSPEED_AUTOTP_MODE + return DEEPSPEED_AUTOTP_MODE + + +def is_autotp_training_mode(): + global DEEPSPEED_AUTOTP_MODE + return DEEPSPEED_AUTOTP_MODE == AUTOTP_MODE.TRAINING + + +def set_autotp_mode(training=False): + """ + Set the DEEPSPEED_AUTOTP_MODE based on the training flag + """ + global DEEPSPEED_AUTOTP_MODE + if training: + DEEPSPEED_AUTOTP_MODE = AUTOTP_MODE.TRAINING + else: + DEEPSPEED_AUTOTP_MODE = AUTOTP_MODE.INFERENCE + + +def move(tensor, device): + # TODO: consider the timing of deletion + # to save host resources when DP > 1。 + + if tensor.is_meta: + # Keep tensor in meta device if tensor is meta. + return tensor + else: + # Using new tensors help in freeing memory (after split for example) was done before by calling clone(). + # Using copy=True instead of clone() will help in case of cpu --> cpu. + # Otherwise to() will not create a new copy for the view of the full tensor, and it will not be de-referenced. + cloned_tensor = tensor.to(device, copy=True) + + # free the memory of the original tensor to reduce memory peak + # Equivalent to directly deleting the tensor reference outside the function. + # see https://github.com/microsoft/DeepSpeed/pull/4353 + tensor.data = torch.empty(0, device=tensor.device) + return cloned_tensor + + +class RowParallel(torch.autograd.Function): + """ + A custom autograd function for performing row-wise parallelism. + """ + + @staticmethod + def symbolic(graph, input): + """Symbolic function for tracing.""" + return input + + @staticmethod + def forward(ctx: Any, group: dist.ProcessGroup, input: torch.Tensor, is_inference_mode: bool) -> torch.Tensor: + """ + Forward pass. + """ + ctx.group = group + if group == None: + return input + if is_inference_mode: + dist.inference_all_reduce(input, group=group) + else: + dist.all_reduce(input.contiguous(), group=group) + return input + + @staticmethod + def backward(ctx: Any, grad_output: torch.Tensor) -> Tuple[None, torch.Tensor, None]: + """ + Backward pass. + """ + return None, grad_output, None + + +class ColumnParallel(torch.autograd.Function): + """ + Custom autograd function for column-wise parallelism. + """ + + @staticmethod + def symbolic(graph, input): + """Symbolic function for tracing.""" + return dist.all_reduce(input.contiguous(), dist.get_tensor_model_parallel_group()) + @staticmethod + def forward(ctx: Any, group: dist.ProcessGroup, input: torch.Tensor) -> torch.Tensor: + """ + Forward pass. + """ + ctx.group = group + return input + + @staticmethod + def backward(ctx: Any, grad_output: torch.Tensor) -> Tuple[None, torch.Tensor]: + """ + Backward pass. + """ + if ctx.group == None: + return None, grad_output + + dist.all_reduce(grad_output.contiguous(), group=ctx.group) + return None, grad_output + + +class TensorParallel_Layer(nn.Module, ABC): + """ + A base class for model layers with tensor parallelism support. + This class is designed to be extended by specific layers that require distributed + operations and parameter gather/partitioning during inference or training. + + Attributes: + mode (str): The mode of operation[INFERENCE or TRAINING], default is "INFERENCE". + mp_group (Optional[dist.ProcessGroup]): The process group used for model parallelism. + tp_world_size (int): The world size of tensor parallelism, i.e., the number of parallel workers. + tp_index (int): The rank (ID) of the current worker in tensor parallelism. + support_training (bool): Flag indicating whether the layer supports training (default: False). + name (Optional[str]): The name of the layer, if provided. + """ -class LinearAllreduce(nn.Module): + def __init__(self, mp_group: Optional[dist.ProcessGroup], **kwargs: Any): + """ + Initializes the TensorParallel_Layer with optional model parallelism group and layer name. + + Args: + mp_group (Optional[dist.ProcessGroup]): The process group for model parallelism. + If None, no model parallelism is set. + """ + super().__init__() + self.support_training: bool = False + if mp_group is not None: + self.mp_group = mp_group + self.tp_world_size: int = dist.get_world_size(self.mp_group) + self.tp_index: int = dist.get_rank(mp_group) + + # backward compatibility + self.world_size = self.tp_world_size + self.rank = self.tp_index + + self.name = getattr(self, 'name', None) + if kwargs.get('name') is not None: + self.name = kwargs.get('name') # Set the layer name if provided. + + @abstractmethod + def forward(self, input): + """ + Forward pass method. Must be implemented by subclasses to define layer-specific operations. + """ + pass + + @abstractmethod + def gather_params(self, params_list): + """ + Gathers parameters across devices for distributed training. Must be implemented by subclasses in "TRAINING" mode. + """ + pass + + @abstractmethod + def _tp_partition(self, params_list: List[torch.Tensor]): + """ + Partitions the parameters for tensor parallelism. + It is necessary to ensure that this function only involves the logic of params partitioning. + """ + pass + + def config_tp_params(self, weight): + """ + Configures the weight tensor for training with tensor parallelism. This includes enabling gradients + and associating necessary methods for parameter gathering and partitioning. + + Args: + weight (Optional[torch.Tensor]): The weight tensor to configure for tensor parallelism. + If None, no action is taken. + """ + # # The RNG states have already been synchronized in init_inference. + if self.is_training_mode(): + assert self.support_training, "No implementation of backward." + if weight is not None: + if self.is_training_mode(): + if weight.requires_grad is None: + weight.requires_grad = True + else: + weight.requires_grad = False + setattr(weight, DS_TENSOR_MODEL_PARALLEL, True) + setattr(weight, DS_IS_REPLACED_MODULE, True) + weight.gather_params = self.gather_params + weight._tp_partition = self._tp_partition + + def is_training_mode(self): + global DEEPSPEED_AUTOTP_MODE + return DEEPSPEED_AUTOTP_MODE == AUTOTP_MODE.TRAINING + + def __deepcopy__(self, memo): + # This function is designed for + # 'mp_group' (a 'ProcessGroup') cannot be pickled during deepcopy in some usage. + cls = self.__class__ + new_obj = cls.__new__(cls) + + for key, value in vars(self).items(): + if key == 'mp_group': + new_obj.mp_group = self.mp_group + else: + setattr(new_obj, key, deepcopy(value, memo)) + + memo[id(self)] = new_obj + return new_obj + + def extra_repr(self): + if self.weight is not None: + out_features, in_features = self.weight.shape[-2:] if self.weight is not None else (None, None) + dtype = self.weight.dtype if self.weight is not None else None + extra_repr_str = "in_features={}, out_features={}, bias={}, dtype={}".format( + in_features, out_features, self.bias is not None, dtype) + return extra_repr_str + + +class GatherReplacedLayerParams: + """ + A context manager for gathering parameters of a replaced layer, enabling partitioning and gathering functionality + based on the configuration of the model. + """ - def __init__(self, weight, bias=None, mp_group=None): - super(LinearAllreduce, self).__init__() - self.weight = weight - self.bias = bias - self.mp_group = mp_group + def __init__(self, + params: Union[Iterable[torch.Tensor], torch.Tensor], + module: torch.nn.Module, + enabled: bool = True): + """ + Initialize the context manager to handle parameter gathering and partitioning for a replaced layer. + + Args: + params (Iterable or torch.Tensor): A collection or single parameter to manage. + module (torch.nn.Module): The module that these parameters belong to. + enabled (bool): Flag indicating whether the parameter management is enabled (default: True). + """ + self.enabled = enabled + self.module = module + if not enabled: + return + + # Ensure params is a list, whether it's a single param or iterable (e.g., model.parameters()) + if isinstance(params, Iterable) and not isinstance(params, torch.Tensor): + self.params: List[torch.Tensor] = list(params) # Convert generators to a list for multiple iterations + else: + self.params: List[torch.Tensor] = [params] # Wrap single parameter in a list for uniform processing + + # Check if the parameters belong to a replaced layer (indicated by a specific attribute) + if not any(self._is_replaced_module_weight(p) for p in params): + self.enabled = False + return + + def _is_replaced_module_weight(self, param: torch.Tensor) -> bool: + """ + Helper function to determine if a parameter belongs to a replaced module. + + Args: + param (torch.Tensor): The parameter to check. + + Returns: + bool: True if the parameter belongs to a replaced module, False otherwise. + """ + return getattr(param, DS_IS_REPLACED_MODULE, False) + + def __enter__(self) -> None: + """ + Enter the context manager. If enabled, gather parameters for the replaced module. + """ + if self.enabled: + self.params[0].gather_params(self.params) + + def __exit__(self, exc_type, exc_value, traceback) -> None: + """ + Exit the context manager. If enabled, partition the parameters for the replaced module. + """ + #TODO : Check whether there are any missing attributes. + if self.enabled: + self.params[0]._tp_partition(self.params) + + +class LinearAllreduce(TensorParallel_Layer): + + def __init__(self, module, mp_group, **kwargs): + super(LinearAllreduce, self).__init__(mp_group, **kwargs) + self.weight = module.weight + self.bias = module.bias + + self._tp_partition([self.weight, self.bias]) + self.support_training = True + self.config_tp_params(self.weight) + if self.bias is not None: + self.config_tp_params(self.bias) def forward(self, input): output = torch.matmul(input, self.weight.transpose(-1, -2)) - if self.mp_group is not None: - dist.inference_all_reduce(output, group=self.mp_group) + output = RowParallel.apply(self.mp_group, output, not self.is_training_mode()) if self.bias is not None: output += self.bias return output + @torch.no_grad() + def gather_params(self, params_list): + + for idx, param in enumerate(params_list): + if param is None or idx > 0: + # don't gather bias + return + params_list[idx].data_partition = param.data + param = param.transpose(0, 1).contiguous() + output_param = torch.empty(self.tp_world_size * param.shape[0], + param.shape[1], + dtype=param.dtype, + device=param.device) + dist.all_gather_into_tensor(output_param, param, group=self.mp_group) + params_list[idx].data = output_param.transpose(0, 1).contiguous() + return + + @torch.no_grad() + def _tp_partition(self, params_list): + + if not self.is_training_mode(): + self.uneven_partition(params_list) + return -class LmHeadLinearAllreduce(nn.Module): - - def __init__( - self, - weight, - rank, - world_size, - bias=None, - mp_group=None, - ): - super(LmHeadLinearAllreduce, self).__init__() - self.weight = weight - self.bias = bias - self.mp_group = mp_group - self.rank = rank - self.world_size = world_size + else: + for idx, param in enumerate(params_list): + if param is None or idx > 0: + # don't slipt bias + return + _partition = torch.chunk(param, self.tp_world_size, dim=-1)[self.tp_index] + + _partition = move(_partition, get_accelerator().current_device_name()).detach() + + params_list[idx].data = _partition + + def uneven_partition(self, params_list): + for idx, param in enumerate(params_list): + if param is None or idx > 0: + # don't slipt bias + return + assert self.name is not None, "The module name must be provided in the initialization." + _partition = params_list[idx].split(get_shard_size_list(params_list[idx].shape[1], self.tp_world_size, + self.name), + dim=1)[self.tp_index] + + _partition = move(_partition, get_accelerator().current_device_name()).detach() + params_list[idx].data = _partition + + +#remove kwargs from partition. +class LinearLayer(TensorParallel_Layer): + + def __init__(self, module, mp_group=None, skip_partition=False, **kwargs): + super(LinearLayer, self).__init__(mp_group, **kwargs) + self.weight = module.weight + self.bias = module.bias + if not skip_partition: + self._tp_partition([self.weight, self.bias]) + self.support_training = True + self.config_tp_params(self.weight) + if self.bias is not None: + self.config_tp_params(self.bias) def forward(self, input): - input_shard_size = get_shard_size(input.shape[-1], self.world_size) - input_shard_offset = sum(get_shard_size_list(input.shape[-1], self.world_size)[0:self.rank]) + if getattr(self, 'mp_group', None) is not None: + input = ColumnParallel.apply(self.mp_group, input) + output = torch.matmul(input, self.weight.transpose(-1, -2)) + if self.bias is not None: + output += self.bias + return output + + @torch.no_grad() + def gather_params(self, params_list): + # Does not support uneven shard. + for idx, param in enumerate(params_list): + + params_list[idx].data_partition = param.data + output_param = torch.empty(self.tp_world_size * param.shape[0], + param.shape[1], + dtype=param.dtype, + device=param.device) + dist.all_gather_into_tensor(output_param, param, group=self.mp_group) + params_list[idx].data = output_param.contiguous() + + @torch.no_grad() + def _tp_partition(self, params_list): + + if not self.is_training_mode(): + self.uneven_partition(params_list) + return + for idx, param in enumerate(params_list): + if param is None: + return + #split bias if provide + _partition = torch.chunk(param, self.tp_world_size, dim=0)[self.tp_index] + + _partition = move(_partition, get_accelerator().current_device_name()).detach() + + params_list[idx].data = _partition + + def uneven_partition(self, params_list): + + for idx, param in enumerate(params_list): + if param is None: + #split bias if provide + return + assert self.name is not None, "The module name must be provided in the initialization." + _partition = params_list[idx].split(get_shard_size_list(params_list[idx].shape[0], self.tp_world_size, + self.name), + dim=0)[self.tp_index] + + _partition = move(_partition, get_accelerator().current_device_name()).detach() + + params_list[idx].data = _partition + + # for bwc + @classmethod + def from_weights(cls, weight_shape=None, dtype=torch.half, weight=None, bias=None): + if weight is not None: + in_features = weight.shape[1] + out_features = weight.shape[0] + linear = nn.Linear(in_features, out_features, bias=(bias is not None)) + linear.weight.data = weight + if bias is not None: + linear.bias.data = bias + else: + in_features = weight_shape[1] + out_features = weight_shape[0] + linear = nn.Linear(in_features, out_features, bias=(bias is not None)) + return cls(linear, skip_partition=True) + + +class FusedModuleWrapper: + + def __init__(self, fused_module: nn.Module): + self.fused_module = fused_module + + def __getattr__(self, module): + return self.fused_module + + +class fused_LinearLayer(LinearLayer): + + def __init__(self, module, mp_group, skip_partition=False, **kwargs): + assert kwargs.get('fused_module') is not None, "'fused_module' is required but not provided" + # Use the warp class to avoid module circular references. + self.fused_module = FusedModuleWrapper(kwargs.get('fused_module')) + super().__init__(module, mp_group, skip_partition, **kwargs) + + @torch.no_grad() + def _tp_partition(self, params_list): + for idx, param in enumerate(params_list): + if param is None: + return + + _partition = prepare_tp_fused_qkvw(self.fused_module.module, param, self.tp_world_size, self.tp_index) + + _partition = move(_partition, get_accelerator().current_device_name()).detach() + + params_list[idx].data = _partition + + +class conv_LinearLayer(LinearLayer): + + @torch.no_grad() + def _tp_partition(self, params_list): + weight = None + bias = None + if len(params_list) == 1: + weight = params_list[0] + elif len(params_list) == 2: + weight, bias = params_list[0], params_list[1] + _partition = weight.data.split(get_shard_size_list(weight.shape[0], self.tp_world_size, self.name), + dim=1)[self.tp_index] + _partition = move(_partition, get_accelerator().current_device_name()).detach() + weight.data = _partition + + if bias is not None: + _partition = bias.data.split(get_shard_size_list(weight.shape[1], self.tp_world_size, self.name), + dim=0)[self.tp_index] + _partition = move(_partition, get_accelerator().current_device_name()).detach() + + bias.data = _partition + + +#override the subclasses related to weight splitting. +class Yuan_LinearAllreduce(LinearAllreduce): + + #Yuan2 + @torch.no_grad() + def _tp_partition(self, params_list): + weight, bias = shard_value_with_share_qk(params_list[0].data, params_list[1], self.tp_index, + self.tp_world_size, False) + params_list[0].data = weight + if bias is not None: + params_list[1].data = bias + + +class Yuan_LinearLayer(LinearLayer): + #Yuan2 + @torch.no_grad() + def _tp_partition(self, params_list): + weight, bias = shard_value_with_share_qk(params_list[0].data, params_list[1], self.tp_index, + self.tp_world_size, True) + params_list[0].data = move(weight, get_accelerator().current_device_name()).detach() + if bias is not None: + params_list[1].data = move(bias, get_accelerator().current_device_name()).detach() + + +class GateUpPack_LinearLayer(LinearLayer): + # chatGLM2, chatGLM2 + @torch.no_grad() + def _tp_partition(self, params_list): + weight, bias = shard_chunk_mlp(params_list[0].data, params_list[1], self.tp_index, self.tp_world_size) + params_list[0].data = move(weight, device=get_accelerator().current_device_name()).detach() + if bias is not None: + params_list[1].data = move(bias, device=get_accelerator().current_device_name()).detach() + + +class Conv_LinearALlreduce(LinearAllreduce): + + @torch.no_grad() + def _tp_partition(self, params_list): + for idx, param in enumerate(params_list): + if param is None: + return + param.data = param.data.transpose(-1, -2).contiguous() + + _partition = param.split(get_shard_size_list(param.shape[0], self.tp_world_size, self.name), + dim=1)[self.tp_index] + + _partition = move(_partition, get_accelerator().current_device_name()).detach() + + params_list[idx].data = _partition + + +#override the subclasses related to fwd/bwd. +class LmHeadLinearAllreduce(LinearAllreduce): + + def __init__(self, module, mp_group, **kwargs): + # set the fixed name before partition + self.name = "lm_head" + + # In some tied_embedding cases, only the lm head is sharded, while the word embedding is not. + # Reinitialization is used to decouple them and prevent the word embedding from being sharded. + # This should also be effective for cases where both are sharded in tied_embedding scenarios. + + # TODO: Training scenario-related tests, is it necessary to re-implement the vocab parallel module? + module.weight = nn.Parameter(module.weight.clone().detach()) + if hasattr(module, 'bias') and module.bias is not None: + module.bias = nn.Parameter(module.bias.clone().detach()) + super().__init__(module, mp_group, **kwargs) + + def forward(self, input): + input_shard_size = get_shard_size(input.shape[-1], self.tp_world_size, "lm_head") + input_shard_offset = sum(get_shard_size_list(input.shape[-1], self.tp_world_size, "lm_head")[0:self.tp_index]) output = torch.matmul(input[:, :, input_shard_offset:input_shard_offset + input_shard_size], self.weight.transpose(-1, -2)) if self.mp_group is not None: @@ -59,28 +583,66 @@ def forward(self, input): return output -class LinearLayer(nn.Module): +class TensorParallelConv2d(nn.Module): - def __init__(self, weight_shape=None, dtype=torch.half, weight=None, bias=None): - super(LinearLayer, self).__init__() - if weight is not None: - self.weight = weight - self.bias = bias + def __init__(self, conv, rank, world_size, shard_by_oc): + super().__init__() + self.rank = rank + self.world_size = world_size + self.shard_by_oc = shard_by_oc + self.shard_weights(conv) + + # Split along the input/output channel depending on whether it is the last conv layer. + def shard_weights(self, conv): + if self.shard_by_oc: + total_size = conv.weight.shape[0] else: - self.weight = Parameter( - torch.empty(weight_shape, dtype=dtype, device=get_accelerator().current_device_name())) + total_size = conv.weight.shape[1] + bias_data = None + cols_per_rank = [0] + for i in range(self.world_size - 1, -1, -1): + cols = total_size // self.world_size + if i < total_size % self.world_size: + cols += 1 + cols_per_rank.append(cols_per_rank[-1] + cols) + weight_data = conv.weight.data + if self.shard_by_oc: + # not last conv layer, split output channel + weight_data = weight_data[cols_per_rank[self.rank]:cols_per_rank[self.rank + 1]] + if conv.bias is not None: + bias_data = conv.bias.data[cols_per_rank[self.rank]:cols_per_rank[self.rank + 1]] + else: + # last conv layer, split input channel + weight_data = weight_data[:, cols_per_rank[self.rank]:cols_per_rank[self.rank + 1]] + if conv.bias is not None: + bias_data = conv.bias.data / float(self.world_size) + self.conv = nn.Conv2d(weight_data.shape[1], weight_data.shape[0], conv.kernel_size, conv.stride, conv.padding, + conv.dilation, conv.groups, conv.bias is not None, conv.padding_mode) + self.conv.weight = torch.nn.Parameter(weight_data) + if conv.bias is not None: + self.conv.bias = torch.nn.Parameter(bias_data) + del conv - self.bias = Parameter( - torch.empty(weight_shape[0], - dtype=dtype, - device=get_accelerator().current_device_name())) \ - if bias is not None else None + def forward(self, input: torch.Tensor) -> torch.Tensor: + return self.conv(input) - def forward(self, input): - output = torch.matmul(input, self.weight.transpose(-1, -2)) - if self.bias is not None: - output += self.bias - return output + +class TensorParallelOcShardConv2d(TensorParallelConv2d): + + def __init__(self, conv, rank, world_size): + super().__init__(conv, rank, world_size, True) + + +class TensorParallelIcShardConv2d(TensorParallelConv2d): + + def __init__(self, conv, rank, world_size): + super().__init__(conv, rank, world_size, False) + + def forward(self, input: torch.Tensor) -> torch.Tensor: + out = self.conv(input) + if self.world_size > 1: + dist.inference_all_reduce(out) + return out class Normalize(nn.Module): @@ -129,7 +691,7 @@ def __init__(self, weight_shape=None, weight=None, bias=None): self.offset = 2 super().__init__(weight_shape, weight=weight) - def forward(self, attention_mask: torch.LongTensor, past_key_values_length: int = 0): + def forward(self, attention_mask: torch.LongTensor, past_key_values_length: int = 0, position_ids: int = 0): """`input_ids_shape` is expected to be [bsz x seqlen].""" attention_mask = attention_mask.long() diff --git a/deepspeed/module_inject/load_checkpoint.py b/deepspeed/module_inject/load_checkpoint.py index a24d36344cdc..862628fa7b4b 100644 --- a/deepspeed/module_inject/load_checkpoint.py +++ b/deepspeed/module_inject/load_checkpoint.py @@ -236,7 +236,7 @@ def load_module_recursive(module, prefix='', level=0): child.weight.ds_id in all_ds_ids): prefix1 = all_ds_ids[child.weight.ds_id] if child.__class__ is nn.Linear: - child = LinearLayer(weight=all_ds_ids[child.weight.ds_id]) + child = LinearLayer.from_weights(weight=all_ds_ids[child.weight.ds_id]) setattr(module, name, child) continue child_params = list(child.parameters()) @@ -249,7 +249,9 @@ def load_module_recursive(module, prefix='', level=0): child = Normalize(dim=ds_shape[-1], dtype=child.weight.dtype, eps=child.eps) setattr(module, name, child) elif child.__class__ in [nn.Linear, ColumnParallelLinear, RowParallelLinear]: - child = LinearLayer(weight_shape=child.weight.shape, bias=child.bias) + child = LinearLayer.from_weights(weight_shape=child.weight.shape, + dtype=child.weight.dtype, + bias=child.bias) setattr(module, name, child) elif child.__class__ is OPTLearnedPositionalEmbedding: child = OPTEmbedding(weight_shape=ds_shape) diff --git a/deepspeed/module_inject/replace_module.py b/deepspeed/module_inject/replace_module.py index fe32378613c9..ed94a5021fee 100644 --- a/deepspeed/module_inject/replace_module.py +++ b/deepspeed/module_inject/replace_module.py @@ -14,9 +14,10 @@ from deepspeed.accelerator import get_accelerator from .replace_policy import replace_policies, generic_policies from .auto_tp import AutoTP, ReplaceWithTensorSlicing, Loading - +from .layers import TensorParallelOcShardConv2d, TensorParallelIcShardConv2d +from deepspeed.module_inject.layers import is_autotp_training_mode from deepspeed import comm as dist -from deepspeed.module_inject.tp_shard import set_num_kv_heads +from deepspeed.module_inject.tp_shard import set_num_kv_heads, set_n_embd, set_num_attention_heads, set_tp_grain_size from .load_checkpoint import load_model_with_checkpoint import time @@ -267,17 +268,45 @@ def replace_wo_policy(module, all_reduce_linears, prefix="", state_dict=None): #mp_replace = ReplaceWithTensorSlicing(mp_group=config.tensor_parallel.tp_group) # 1. Create AutoTP object - _autotp = AutoTP(module, all_reduce_linears, prefix, state_dict, linear_layer_setting, orig_layer_impl) + _autotp = AutoTP(module, all_reduce_linears, prefix, state_dict, linear_layer_setting, orig_layer_impl, + config.keep_module_on_host) # 2. Set the tensor parallelism config _autotp.set_tensor_parallel_config(config.tensor_parallel.tp_size, config.tensor_parallel.tp_group) # 3. Try to get num_key_heads from model_config.num_key_value_heads - num_kv_heads = _autotp.get_model_num_kv_heads(model_config) + if hasattr(model_config, "vision_config"): + if "MllamaVisionEncoderLayer" in str(module): + num_kv_heads = _autotp.get_model_num_kv_heads(model_config.vision_config) + elif hasattr(model_config, "text_config"): + num_kv_heads = _autotp.get_model_num_kv_heads(model_config.text_config) + else: + num_kv_heads = _autotp.get_model_num_kv_heads(model_config) + else: + num_kv_heads = _autotp.get_model_num_kv_heads(model_config) # 4. When we have num_kv_heads defined, uneven division is possible, otherwise enforce even division set_num_kv_heads(num_kv_heads) + # 4.1 Get n_embd + n_embd = None + multi_query_n_embd_names = ['n_embd', 'hidden_size'] + for name in multi_query_n_embd_names: + if hasattr(model_config, name): + n_embd = getattr(model_config, name) + if n_embd != None: + break + + # 4.2 set n_embd + set_n_embd(n_embd) + + # 4.3 set attention_heads + if hasattr(model_config, 'num_attention_heads'): + set_num_attention_heads(getattr(model_config, 'num_attention_heads')) + + # 4.4 set tp_grain_size + set_tp_grain_size(config.tensor_parallel.tp_grain_size) + # 5. Set linear policies _autotp.update_linear_policies() @@ -294,7 +323,7 @@ def replace_fn(child, _policy, layer_id=0, prefix="", state_dict=None): else: # copy relevant state from child -> new module - if config.replace_with_kernel_inject: + if not is_autotp_training_mode() and config.replace_with_kernel_inject: new_module = replace_with_policy(child, _policy, config.triangular_masking, @@ -306,6 +335,10 @@ def replace_fn(child, _policy, layer_id=0, prefix="", state_dict=None): return new_module def set_lm_head(module): + if is_autotp_training_mode(): + # we need to handle autoTP training mode separately. + return + embedding_weight = None for n, p in module.named_parameters(): if "word_embeddings." in n or "embed_tokens." in n or "wte." in n: @@ -314,13 +347,38 @@ def set_lm_head(module): module.lm_head, "weight") and module.lm_head.weight.is_meta: module.lm_head.weight = embedding_weight # enable tensor parallel for the last linear - if hasattr(module, "lm_head") and hasattr(module.lm_head, "weight") and not module.lm_head.weight.is_meta: + if hasattr(module, "lm_head") and hasattr(module.lm_head, "weight") and isinstance( + module.lm_head, torch.nn.Linear): module = replace_wo_policy(module, ("lm_head", ), 0, "lm_head") - elif hasattr(module, "embed_out") and hasattr(module.embed_out, - "weight") and not module.embed_out.weight.is_meta: + elif hasattr(module, "embed_out") and hasattr(module.embed_out, "weight") and isinstance( + module.embed_out, torch.nn.Linear): module = replace_wo_policy(module, ("embed_out", ), 0, "embed_out") + elif hasattr(module, "language_model") and hasattr(module.language_model, "lm_head"): + module = replace_wo_policy(module.language_model, ("lm_head", ), 0, "lm_head") return module + def conv2d_parallel_shard_weights(model, rank, world_size): + # add conv policy + shard_oc_name = ["conv1"] + shard_ic_name = ["conv2"] + for name, sub_m in model.named_children(): + for l_name, l_sub_m in sub_m.named_children(): + if l_name in shard_oc_name: + TPConv2d = TensorParallelOcShardConv2d( + l_sub_m, + rank, + world_size, + ) + setattr(sub_m, l_name, TPConv2d) + if l_name in shard_ic_name: + TPConv2d = TensorParallelIcShardConv2d( + l_sub_m, + rank, + world_size, + ) + setattr(sub_m, l_name, TPConv2d) + conv2d_parallel_shard_weights(sub_m, rank, world_size) + if checkpoint_dict is not None and not config.replace_with_kernel_inject: # AutoTP shard loading checkpoint = checkpoint_dict["checkpoints"] @@ -334,12 +392,18 @@ def set_lm_head(module): checkpoint=checkpoint_file) pbar.update(1) gc.collect() - replaced_module = set_lm_head(replaced_module) + # conv2d tp module replace + # Now is for yuan model. Add model list and conv policy to decide whether to replace conv. + if 'Yuan' in str(replaced_module): + conv2d_parallel_shard_weights(replaced_module, dist.get_rank(), dist.get_world_size()) else: replaced_module = replace_module(model=model, orig_class=orig_layer_impl, replace_fn=replace_fn, _replace_policy=config.injection_policy_tuple) + # AutoTP default set lm_head tp + if not config.replace_with_kernel_inject: + replaced_module = set_lm_head(replaced_module) quantizer = GroupQuantizer(q_int8=quantize) world_size = dist.get_world_size() if dist.is_initialized() else 1 @@ -359,7 +423,7 @@ def set_lm_head(module): pbar = tqdm.tqdm(total=len(checkpoint), desc=f"Loading {len(checkpoint)} checkpoint shards") for i in range(len(checkpoint)): - sd = [torch.load(os.path.join(base_dir1, checkpoint[i]), map_location='cpu')] + sd = [torch.load(os.path.join(base_dir1, checkpoint[i]), map_location='cpu', weights_only=False)] load_model_with_checkpoint(replaced_module, sd, mp_replace, @@ -381,7 +445,7 @@ def set_lm_head(module): os.path.join(base_dir1, ckpt_list[ckpt_index + j]) if base_dir1 else ckpt_list[ckpt_index + j] for j in range(sd_count) ] - sds = [torch.load(ckpt_file, map_location='cpu') for ckpt_file in ckpt_files] + sds = [torch.load(ckpt_file, map_location='cpu', weights_only=False) for ckpt_file in ckpt_files] load_model_with_checkpoint(replaced_module, sds, mp_replace, @@ -401,7 +465,7 @@ def set_lm_head(module): pbar.update(1) ckpt_file = os.path.join(base_dir1, checkpoint["non_tp"][i]) if base_dir1 else checkpoint["non_tp"][i] - sds = [torch.load(ckpt_file, map_location='cpu')] + sds = [torch.load(ckpt_file, map_location='cpu', weights_only=False)] load_model_with_checkpoint(replaced_module, sds, mp_replace, @@ -415,7 +479,7 @@ def set_lm_head(module): set_lm_head(replaced_module) print(f"checkpoint loading time at rank {rank}: {time.time()-start_time} sec") - if config.save_mp_checkpoint_path is not None: + if not is_autotp_training_mode() and config.save_mp_checkpoint_path is not None: from collections import OrderedDict import json num_partitions = 8 @@ -440,9 +504,10 @@ def set_lm_head(module): if not dist.is_initialized() or dist.get_rank() == 0: print("Saving tp-sharded checkpoints") torch.save( - OrderedDict({k: v - for k, v in dict(replaced_module.state_dict()).items() - if transformer_name not in k}), f'{config.save_mp_checkpoint_path}/{non_tp_ckpt_name}') + OrderedDict({ + k: v + for k, v in dict(replaced_module.state_dict()).items() if transformer_name not in k + }), f'{config.save_mp_checkpoint_path}/{non_tp_ckpt_name}') dtype_reprs = { torch.float32: 'float32', @@ -563,7 +628,12 @@ def replace_module(model, orig_class, replace_fn, _replace_policy, checkpoint=No """ sd = None if checkpoint is not None: - sd = torch.load(checkpoint, map_location='cpu') + if checkpoint.endswith(".safetensors"): + from safetensors.torch import load_file + sd = load_file(checkpoint) + else: + sd = torch.load(checkpoint, map_location='cpu', weights_only=False) + policy = {} if orig_class is not None: policy.update({orig_class: (replace_fn, _replace_policy)}) @@ -578,7 +648,7 @@ def replace_module(model, orig_class, replace_fn, _replace_policy, checkpoint=No policy.update({plcy._orig_layer_class: (replace_fn, plcy)}) assert len(policy.items()) > 0,\ "No default policy found! Please specify your policy injection_policy (like {BertLayer:HFBEertLayerPolicy})." +\ - "You can find some samples here: https://github.com/microsoft/DeepSpeed/blob/master/deepspeed/module_inject/replace_policy.py" + "You can find some samples here: https://github.com/deepspeedai/DeepSpeed/blob/master/deepspeed/module_inject/replace_policy.py" replaced_module, _ = _replace_module(model, policy, state_dict=sd) return replaced_module @@ -597,7 +667,7 @@ def skip_level_0_prefix(model, state_dict): if key is None: key = re.match(r"(.*?)Model", model) # if keys start with 'model.', don't skip level 0 prefix - if state_dict != None: + if state_dict is not None: for item in state_dict.keys(): if re.match("^model[.]", item): return False diff --git a/deepspeed/module_inject/tp_shard.py b/deepspeed/module_inject/tp_shard.py index 8e2fa78d883f..ded262edcf61 100644 --- a/deepspeed/module_inject/tp_shard.py +++ b/deepspeed/module_inject/tp_shard.py @@ -12,28 +12,63 @@ def set_num_kv_heads(num): num_kv_heads = num +def set_num_attention_heads(num): + global num_attention_heads + num_attention_heads = num + + +def set_n_embd(num): + global n_embd + n_embd = num + + +def set_tp_grain_size(num): + global tp_grain_size + tp_grain_size = num + + def get_num_kv_heads(): global num_kv_heads - return num_kv_heads + if 'num_kv_heads' in globals(): + return num_kv_heads + return None + + +def get_num_attention_heads(): + global num_attention_heads + return num_attention_heads -def get_shard_size(total_size, mp_size, rank=None): +def get_shard_size(total_size, mp_size, name=None, rank=None): global num_kv_heads - # When we have num_kv_heads defined, uneven division is possible, otherwise enforce even division - if num_kv_heads != None: - if (rank == None): - rank = dist.get_rank() + last_linear = ["lm_head", "embed_out"] + # MoE MLP layer use near even division will get better perf. + moe_mlp_layer = ["gate_proj", "up_proj", "down_proj", "w1", "w2", "w3"] + not_moe_mlp_layer = True + if name != None and any(s in str(name) for s in moe_mlp_layer): + not_moe_mlp_layer = False + # When we have num_kv_heads defined, uneven division is possible, otherwise enforce near even division + if rank == None: + rank = dist.get_rank() + if num_kv_heads != None and total_size % num_kv_heads == 0 and "mlp" not in str(name) and str( + name) not in last_linear and not_moe_mlp_layer: my_slices = (num_kv_heads // mp_size) + (1 if rank < (num_kv_heads % mp_size) else 0) return total_size * my_slices // num_kv_heads else: - if total_size % mp_size == 0: - return total_size // mp_size + if total_size >= tp_grain_size: + grain_size = total_size // tp_grain_size + return (grain_size // mp_size + (1 if rank < (grain_size % mp_size) else 0)) * tp_grain_size else: - assert False, f"Number of attention heads ({total_size}) must be divisible by mp_size ({mp_size})" + return total_size // mp_size + (1 if rank < (total_size % mp_size) else 0) + + +def get_n_embd(): + global n_embd + return n_embd -def get_shard_size_list(total_size, mp_size): +def get_shard_size_list(total_size, mp_size, name=None): shard_sizes = [] for i in range(mp_size): - shard_sizes.append(get_shard_size(total_size, mp_size, i)) + shard_sizes.append(get_shard_size(total_size, mp_size, name, i)) return shard_sizes diff --git a/deepspeed/moe/experts.py b/deepspeed/moe/experts.py index 8cadb0c387fa..0863221d7edf 100644 --- a/deepspeed/moe/experts.py +++ b/deepspeed/moe/experts.py @@ -3,33 +3,36 @@ # DeepSpeed Team -import torch import copy +from typing import List, Optional + +import torch +from torch import nn -class Experts(torch.nn.Module): +class Experts(nn.Module): - def __init__(self, expert, num_local_experts=1, expert_group_name=None): + def __init__(self, expert: nn.Module, num_local_experts: int = 1, expert_group_name: Optional[str] = None) -> None: super(Experts, self).__init__() - self.deepspeed_experts = torch.nn.ModuleList([copy.deepcopy(expert) for i in range(num_local_experts)]) + self.deepspeed_experts = nn.ModuleList([copy.deepcopy(expert) for _ in range(num_local_experts)]) self.num_local_experts = num_local_experts # TODO: revisit allreduce for moe.gate... for expert in self.deepspeed_experts: # TODO: Create param groups to handle expert + data case (e.g. param.group = moe_group) - for name, param in expert.named_parameters(): + for param in expert.parameters(): param.allreduce = False param.group_name = expert_group_name - def forward(self, inputs): + def forward(self, inputs: torch.Tensor) -> torch.Tensor: chunks = inputs.chunk(self.num_local_experts, dim=1) - expert_outputs = [] + expert_outputs: List[torch.Tensor] = [] + for chunk, expert in zip(chunks, self.deepspeed_experts): out = expert(chunk) - if type(out) is tuple: + if isinstance(out, tuple): out = out[0] # Ignore the bias term for now expert_outputs += [out] - expert_output = torch.cat(expert_outputs, dim=1) - return expert_output + return torch.cat(expert_outputs, dim=1) diff --git a/deepspeed/moe/layer.py b/deepspeed/moe/layer.py index 7dd0c6bcb67d..6777788ab885 100644 --- a/deepspeed/moe/layer.py +++ b/deepspeed/moe/layer.py @@ -3,22 +3,23 @@ # DeepSpeed Team -import torch +from typing import Optional, Tuple -from deepspeed.utils import log_dist +import torch +from torch import nn +from torch.nn import functional as F -from deepspeed.utils import groups -from .sharded_moe import MOELayer, TopKGate +from deepspeed.utils import groups, log_dist from .experts import Experts -import typing +from .sharded_moe import MOELayer, TopKGate -class MoE(torch.nn.Module): +class MoE(nn.Module): """Initialize an MoE layer. Arguments: hidden_size (int): the hidden dimension of the model, importantly this is also the input and output dimension. - expert (torch.nn.Module): the torch module that defines the expert (e.g., MLP, torch.linear). + expert (nn.Module): the torch module that defines the expert (e.g., MLP, torch.linear). num_experts (int, optional): default=1, the total number of experts per layer. ep_size (int, optional): default=1, number of ranks in the expert parallel world or group. k (int, optional): default=1, top-k gating value, only supports k=1 or k=2. @@ -31,23 +32,25 @@ class MoE(torch.nn.Module): use_rts (bool, optional): default=True, whether to use Random Token Selection. use_tutel (bool, optional): default=False, whether to use Tutel optimizations (if installed). enable_expert_tensor_parallelism (bool, optional): default=False, whether to use tensor parallelism for experts + top2_2nd_expert_sampling (bool, optional): default=True, whether to perform sampling for 2nd expert """ def __init__(self, - hidden_size, - expert, - num_experts=1, - ep_size=1, - k=1, - capacity_factor=1., - eval_capacity_factor=1., - min_capacity=4, - use_residual=False, - noisy_gate_policy: typing.Optional[str] = None, + hidden_size: int, + expert: nn.Module, + num_experts: int = 1, + ep_size: int = 1, + k: int = 1, + capacity_factor: float = 1.0, + eval_capacity_factor: float = 1.0, + min_capacity: int = 4, + use_residual: bool = False, + noisy_gate_policy: Optional[str] = None, drop_tokens: bool = True, - use_rts=True, + use_rts: bool = True, use_tutel: bool = False, - enable_expert_tensor_parallelism: bool = False): + enable_expert_tensor_parallelism: bool = False, + top2_2nd_expert_sampling: bool = True) -> None: super(MoE, self).__init__() @@ -68,7 +71,8 @@ def __init__(self, experts = Experts(expert, self.num_local_experts, self.expert_group_name) self.deepspeed_moe = MOELayer(TopKGate(hidden_size, num_experts, k, capacity_factor, eval_capacity_factor, - min_capacity, noisy_gate_policy, drop_tokens, use_rts), + min_capacity, noisy_gate_policy, drop_tokens, use_rts, None, + top2_2nd_expert_sampling), experts, self.expert_group_name, self.ep_size, @@ -77,12 +81,12 @@ def __init__(self, if self.use_residual: self.mlp = expert # coefficient is used for weighted sum of the output of expert and mlp - self.coefficient = torch.nn.Linear(hidden_size, 2) + self.coefficient = nn.Linear(hidden_size, 2) - def set_deepspeed_parallelism(self, use_data_before_expert_parallel_=False): + def set_deepspeed_parallelism(self, use_data_before_expert_parallel_: bool = False) -> None: self._create_process_groups(use_data_before_expert_parallel_=use_data_before_expert_parallel_) - def _create_process_groups(self, use_data_before_expert_parallel_=False): + def _create_process_groups(self, use_data_before_expert_parallel_: bool = False) -> None: # Create process group for a layer if needed if self.expert_group_name not in groups._get_expert_parallel_group_dict(): print(f"No existing process group found, creating a new group named: {self.expert_group_name}") @@ -98,7 +102,9 @@ def _create_process_groups(self, use_data_before_expert_parallel_=False): # Set the group handle for the MOELayer (deepspeed_moe) object self.deepspeed_moe._set_ep_group(groups._get_expert_parallel_group(self.expert_group_name)) - def forward(self, hidden_states, used_token=None): + def forward(self, + hidden_states: torch.Tensor, + used_token: Optional[torch.Tensor] = None) -> Tuple[torch.Tensor, torch.Tensor, torch.Tensor]: """ MoE forward Arguments: @@ -112,15 +118,15 @@ def forward(self, hidden_states, used_token=None): * l_aux (Tensor): gate loss value - * exp_counts (int): expert count + * exp_counts (Tensor): expert count """ output = self.deepspeed_moe(hidden_states, used_token) if self.use_residual: # Residual MoE output_mlp = self.mlp(hidden_states) - if type(output_mlp) is tuple: + if isinstance(output_mlp, tuple): output_mlp = output_mlp[0] # Ignore the bias term for now coef = self.coefficient(hidden_states) - coef = torch.nn.functional.softmax(coef, dim=-1) + coef = F.softmax(coef, dim=-1) output = output * coef[..., 0:1] + output_mlp * coef[..., 1:] return output, self.deepspeed_moe.l_aux, self.deepspeed_moe.exp_counts diff --git a/deepspeed/moe/mappings.py b/deepspeed/moe/mappings.py index 6c501ea6503a..e57f66b85193 100644 --- a/deepspeed/moe/mappings.py +++ b/deepspeed/moe/mappings.py @@ -23,6 +23,8 @@ import torch import deepspeed +from deepspeed.utils.bwc import (bwc_tensor_model_parallel_world_size, bwc_tensor_model_parallel_rank, + bwc_tensor_model_parallel_group) def _gather_tokens(input_, dim=0): @@ -30,15 +32,23 @@ def _gather_tokens(input_, dim=0): mpu = deepspeed.utils.groups.mpu input_ = input_.contiguous() - # Size and dimension. - rank = mpu.get_tensor_model_parallel_rank() - - tensor_list = [torch.empty_like(input_) for _ in range(mpu.get_tensor_model_parallel_world_size())] - tensor_list[rank] = input_ - deepspeed.comm.all_gather(tensor_list, input_, group=mpu.get_tensor_model_parallel_group()) + world_size = bwc_tensor_model_parallel_world_size(mpu) + if world_size == 1: + return input_ - # Note: torch.cat already creates a contiguous tensor. - output = torch.cat(tensor_list, dim=dim).contiguous() + gather_buffer = torch.empty(world_size * input_.numel(), dtype=input_.dtype, device=input_.device) + deepspeed.comm.all_gather_into_tensor(gather_buffer, input_, group=bwc_tensor_model_parallel_group(mpu)) + if dim == 0: + shape = list(input_.size()) + shape[0] = shape[0] * world_size + output = gather_buffer.view(shape) + else: + tensor_list = [ + gather_buffer.narrow(0, + input_.numel() * i, input_.numel()).view_as(input_) for i in range(world_size) + ] + # Note: torch.cat already creates a contiguous tensor. + output = torch.cat(tensor_list, dim=dim).contiguous() return output @@ -47,8 +57,10 @@ def _drop_tokens(input_, dim=0): """Divide a tensor among the tensor parallel ranks""" mpu = deepspeed.utils.groups.mpu - total_chunks = mpu.get_tensor_model_parallel_world_size() - this_chunk = mpu.get_tensor_model_parallel_rank() + total_chunks = bwc_tensor_model_parallel_world_size(mpu) + if total_chunks == 1: + return input_ + this_chunk = bwc_tensor_model_parallel_rank(mpu) assert input_.shape[ dim] % total_chunks == 0, f"input dimension {dim} ({input_.shape[dim]}) is not divisible by tensor parallel world size ({total_chunks})" chunk_size = input_.shape[dim] // total_chunks @@ -92,7 +104,7 @@ def backward(ctx, input_): def gather_tokens(input_, dim=0): mpu = deepspeed.utils.groups.mpu - if mpu is None or mpu.get_tensor_model_parallel_world_size() == 1: + if mpu is None or bwc_tensor_model_parallel_world_size(mpu) == 1: # no tensor parallelism for non-experts return input_ return _GatherTokens.apply(input_, dim) @@ -100,7 +112,7 @@ def gather_tokens(input_, dim=0): def drop_tokens(input_, dim=0): mpu = deepspeed.utils.groups.mpu - if mpu is None or mpu.get_tensor_model_parallel_world_size() == 1: + if mpu is None or bwc_tensor_model_parallel_world_size(mpu) == 1: # no tensor parallelism for non-experts return input_ return _DropTokens.apply(input_, dim) diff --git a/deepspeed/moe/sharded_moe.py b/deepspeed/moe/sharded_moe.py index d92211b9d220..a00d694fbc14 100644 --- a/deepspeed/moe/sharded_moe.py +++ b/deepspeed/moe/sharded_moe.py @@ -17,7 +17,8 @@ from deepspeed.utils.timer import SynchronizedWallClockTimer from deepspeed.utils import logger -from typing import Callable, Dict, TYPE_CHECKING, Any, Optional, Tuple +from deepspeed.utils.bwc import bwc_tensor_model_parallel_world_size +from typing import Callable, Dict, TYPE_CHECKING, Any, Optional, Tuple, Union import torch from torch import Tensor @@ -42,7 +43,7 @@ try: # To enable Tutel MoE optimizations: - # python3 -m pip install --user --upgrade git+https://github.com/microsoft/tutel@v0.1.x + # python3 -m pip install --user --upgrade git+https://github.com/deepspeedai/tutel@v0.1.x from tutel import moe as tutel_moe TUTEL_INSTALLED = True except: @@ -95,11 +96,7 @@ def gumbel_rsample(shape: Tuple, device: torch.device) -> Tensor: class _AllToAll(torch.autograd.Function): @staticmethod - def forward( - ctx: Any, - # TODO: replace with DS process group - group: torch.distributed.ProcessGroup, - input: Tensor) -> Tensor: # type: ignore + def forward(ctx: Any, group: dist.ProcessGroup, input: Tensor) -> Tensor: # type: ignore ctx.group = group input = input.contiguous() output = torch.empty_like(input) @@ -127,6 +124,8 @@ def einsum(rule, a, b): return a.unsqueeze(2) * b.unsqueeze(1) elif rule == 'se,se->s': return torch.bmm(a.unsqueeze(1), b.unsqueeze(2)).reshape(-1) + elif rule == 'se,sec->sec': + return a.unsqueeze(2) * b elif rule == 'sec,sm->ecm': s = a.shape[0] e = a.shape[1] @@ -188,13 +187,14 @@ def top1gating(logits: Tensor, noisy_gate_policy: Optional[str] = None, drop_tokens: bool = True, use_rts: bool = True, + ep_group: Union[torch.distributed.ProcessGroup, None] = None, use_tutel: bool = False) -> Tuple[Tensor, Tensor, Tensor, Tensor]: """Implements Top1Gating on logits.""" if noisy_gate_policy == 'RSample': logits_w_noise = logits + gumbel_rsample(logits.shape, device=logits.device) # everything is in fp32 in this function - gates = F.softmax(logits, dim=1) + gates = F.softmax(logits, dim=1) capacity = _capacity(gates, torch.tensor(capacity_factor), torch.tensor(min_capacity)) # Create a mask for 1st's expert per token @@ -208,13 +208,21 @@ def top1gating(logits: Tensor, mask1 = einsum("s,se->se", used_token, mask1) # gating decisions - exp_counts = torch.sum(mask1, dim=0).detach().to('cpu') + exp_counts = torch.sum(mask1, dim=0).detach().to(logits.device) # if we don't want to drop any tokens if not drop_tokens: new_capacity = torch.max(exp_counts).to(logits.device) - dist.all_reduce(new_capacity, op=dist.ReduceOp.MAX, group=dist.get_world_group()) - capacity = new_capacity + # Communicate across expert processes to pick the maximum capacity. + if ep_group is not None: + dist.all_reduce(new_capacity, op=dist.ReduceOp.MAX, group=ep_group) + if groups._get_expert_model_parallel_world_size() == 1: + # If the non-expert is tensor-parallel, we need to pad the capacity to 'tp'. + # This is since we are going to activate drop_tokens() to drop duplicate tokens. + tp = 1 if groups.mpu is None else bwc_tensor_model_parallel_world_size(mpu=groups.mpu) + new_capacity = torch.ceil(new_capacity / tp).mul(tp).to(new_capacity.dtype) + # Make sure the capacity value does not exceed the number of tokens. + capacity = min(new_capacity, torch.tensor(mask1.size(0)).to(new_capacity.device)) # Compute l_aux me = torch.mean(gates, dim=0) @@ -279,23 +287,28 @@ def top1gating(logits: Tensor, return l_aux, combine_weights, dispatch_mask, exp_counts -def top2gating(logits: Tensor, capacity_factor: float, min_capacity: int) -> Tuple[Tensor, Tensor, Tensor, Tensor]: +def top2gating(logits: Tensor, + capacity_factor: float, + min_capacity: int, + drop_tokens: bool = True, + ep_group: Union[torch.distributed.ProcessGroup, None] = None, + top2_2nd_expert_sampling: bool = True) -> Tuple[Tensor, Tensor, Tensor, Tensor]: """Implements Top2Gating on logits.""" # everything is in fp32 in this function gates = F.softmax(logits, dim=1) - capacity = _capacity(gates, torch.tensor(capacity_factor * 2), torch.tensor(min_capacity)) - # Create a mask for 1st's expert per token indices1_s = torch.argmax(gates, dim=1) num_experts = int(gates.shape[1]) mask1 = F.one_hot(indices1_s, num_classes=num_experts) - # Create a mask for 2nd's expert per token using Gumbel-max trick - # https://timvieira.github.io/blog/post/2014/07/31/gumbel-max-trick/ - logits_w_noise = logits + gumbel_rsample(logits.shape, device=logits.device) + if top2_2nd_expert_sampling: + # Create a mask for 2nd's expert per token using Gumbel-max trick + # https://timvieira.github.io/blog/post/2014/07/31/gumbel-max-trick/ + logits += gumbel_rsample(logits.shape, device=logits.device) + # Replace top-expert with min value - logits_except1 = logits_w_noise.masked_fill(mask1.bool(), float("-inf")) + logits_except1 = logits.masked_fill(mask1.bool(), float("-inf")) indices2_s = torch.argmax(logits_except1, dim=1) mask2 = F.one_hot(indices2_s, num_classes=num_experts) @@ -305,17 +318,30 @@ def top2gating(logits: Tensor, capacity_factor: float, min_capacity: int) -> Tup # Update 2nd's location by accounting for locations of 1st locations2 += torch.sum(mask1, dim=0, keepdim=True) - # gating decisions - exp_counts = torch.sum(mask1, dim=0).detach().to('cpu') - # Compute l_aux me = torch.mean(gates, dim=0) ce = torch.mean(mask1.float(), dim=0) l_aux = torch.mean(me * ce) * num_experts * num_experts - # Remove locations outside capacity from mask - mask1 *= torch.lt(locations1, capacity) - mask2 *= torch.lt(locations2, capacity) + # gating decisions + exp_counts = torch.sum(mask1 + mask2, dim=0).detach().to(logits.device) + + if drop_tokens: + # Calculate configured capacity and remove locations outside capacity from mask + capacity = _capacity(gates, torch.tensor(capacity_factor * 2), torch.tensor(min_capacity)) + mask1 *= torch.lt(locations1, capacity) + mask2 *= torch.lt(locations2, capacity) + else: + # Do not drop tokens - set capacity according to current expert assignments + new_capacity = torch.max(exp_counts) + if ep_group is not None: + dist.all_reduce(new_capacity, op=dist.ReduceOp.MAX, group=ep_group) + if groups._get_expert_model_parallel_world_size() == 1: + # If the non-expert is tensor-parallel, we need to pad the capacity to 'tp'. + # This is since we are going to activate drop_tokens() to drop duplicate tokens. + tp = 1 if groups.mpu is None else bwc_tensor_model_parallel_world_size(mpu=groups.mpu) + new_capacity = torch.ceil(new_capacity / tp).mul(tp).to(new_capacity.dtype) + capacity = new_capacity # Store the capacity location for each token locations1_s = torch.sum(locations1 * mask1, dim=1) @@ -345,6 +371,81 @@ def top2gating(logits: Tensor, capacity_factor: float, min_capacity: int) -> Tup return l_aux, combine_weights, dispatch_mask, exp_counts +def topkgating( + logits: Tensor, + k: int, + capacity_factor: float, + min_capacity: int, + drop_tokens: bool = True, + ep_group: Union[torch.distributed.ProcessGroup, None] = None, + drop_policy: str = "probs", +) -> Tuple[Tensor, Tensor, Tensor, Tensor]: + """Implements TopKGating on logits.""" + + # everything is in fp32 in this function + # get topk gates + top_gate, top_idx = torch.topk(logits, k=k, dim=1) + # gating decisions + gates = F.softmax(logits, dim=1) + num_experts = int(gates.shape[1]) + + # get topk mask + topk_masked_gates = torch.zeros_like(logits).scatter(1, top_idx, top_gate) + + mask = torch.zeros_like(gates, dtype=torch.bool).scatter_(1, top_idx, 1) + + exp_counts = torch.sum(mask, dim=0).detach().to(logits.device) + + # Compute l_aux + me = torch.mean(gates, dim=0) + ce = torch.mean(mask.float(), dim=0) + l_aux = torch.mean(me * ce) * num_experts * num_experts / k + + if drop_tokens: + # Calculate configured capacity and remove locations outside capacity from mask + capacity = _capacity(gates, torch.tensor(capacity_factor * k), torch.tensor(min_capacity)) + # update mask and locations by capacity + + if drop_policy == 'probs': + capacity_probs, capacity_indices = torch.topk(topk_masked_gates, k=capacity, dim=0, sorted=False) + capacity_mask = torch.zeros_like(logits).scatter(0, capacity_indices, 1) + mask = torch.logical_and(mask, capacity_mask) + locations = torch.cumsum(mask, dim=0) - 1 + + elif drop_policy == "position": + locations = torch.cumsum(mask, dim=0) - 1 + mask *= torch.lt(locations, capacity) + else: + raise ValueError(f"Invalid drop_policy: {drop_policy}") + + else: + # Do not drop tokens - set capacity according to current expert assignments + new_capacity = torch.max(exp_counts) + if ep_group is not None: + dist.all_reduce(new_capacity, op=dist.ReduceOp.MAX, group=ep_group) + if groups._get_expert_model_parallel_world_size() == 1: + # If the non-expert is tensor-parallel, we need to pad the capacity to 'tp'. + # This is since we are going to activate drop_tokens() to drop duplicate tokens. + tp = 1 if groups.mpu is None else bwc_tensor_model_parallel_world_size(mpu=groups.mpu) + new_capacity = torch.ceil(new_capacity / tp).mul(tp).to(new_capacity.dtype) + capacity = new_capacity + + # normalize gates + gates_masked = gates * mask + gates_s = torch.sum(gates_masked, dim=-1, keepdim=True) + denom_s = torch.clamp(gates_s, min=torch.finfo(gates_masked.dtype).eps) + gates_masked = gates_masked / denom_s + + # dispatch_mask + locations_sc = _one_hot_to_float((locations * mask), capacity) + + combine_weights = torch.einsum("se,sec->sec", gates_masked, locations_sc) + + dispatch_mask = combine_weights.bool() + + return l_aux, combine_weights, dispatch_mask, exp_counts + + class TopKGate(Module): """Gate module which implements Top2Gating as described in Gshard_. :: @@ -357,7 +458,7 @@ class TopKGate(Module): Args: model_dim (int): size of model embedding dimension - num_experts (ints): + num_experts (int): number of experts in model """ @@ -372,13 +473,13 @@ def __init__(self, min_capacity: int = 8, noisy_gate_policy: Optional[str] = None, drop_tokens: bool = True, - use_rts: bool = True) -> None: + use_rts: bool = True, + ep_group: Union[torch.distributed.ProcessGroup, None] = None, + top2_2nd_expert_sampling: bool = True) -> None: super().__init__() - # Only top-1 and top-2 are supported at the moment. - if k != 1 and k != 2: - raise ValueError('Only top-1 and top-2 gatings are supported.') - self.wg = torch.nn.Linear(model_dim, num_experts, bias=False).float() + self.wg = torch.nn.Linear(model_dim, num_experts, bias=False) + self.ep_group = ep_group self.k = k self.capacity_factor = capacity_factor self.eval_capacity_factor = eval_capacity_factor @@ -389,6 +490,11 @@ def __init__(self, self.gate_time = 0.0 self.drop_tokens = drop_tokens self.use_rts = use_rts + self.top2_2nd_expert_sampling = top2_2nd_expert_sampling + + def _set_ep_group(self, ep_group): + assert self.ep_group is None, f'Attempting to override an existing ep_group' + self.ep_group = ep_group def forward(self, input: torch.Tensor, @@ -398,22 +504,24 @@ def forward(self, if self.wall_clock_breakdown: self.timers(TOPK_GATE_TIMER).start() - if self.wg.weight.dtype != torch.float32: - self.wg = self.wg.float() input_fp32 = input.float() # input jittering if self.noisy_gate_policy == 'Jitter' and self.training: input_fp32 = multiplicative_jitter(input_fp32, device=input.device) - logits = self.wg(input_fp32) + logits = torch.nn.functional.linear(input_fp32, weight=self.wg.weight.float(), bias=None) if self.k == 1: gate_output = top1gating(logits, self.capacity_factor if self.training else self.eval_capacity_factor, self.min_capacity, used_token, self.noisy_gate_policy if self.training else None, - self.drop_tokens, self.use_rts, use_tutel) + self.drop_tokens, self.use_rts, self.ep_group, use_tutel) - else: + elif self.k == 2: gate_output = top2gating(logits, self.capacity_factor if self.training else self.eval_capacity_factor, - self.min_capacity) + self.min_capacity, self.drop_tokens, self.ep_group, self.top2_2nd_expert_sampling) + else: + gate_output = topkgating(logits, self.k, + self.capacity_factor if self.training else self.eval_capacity_factor, + self.min_capacity, self.drop_tokens, self.ep_group) if self.wall_clock_breakdown: self.timers(TOPK_GATE_TIMER).stop() @@ -473,6 +581,7 @@ def __init__(self, def _set_ep_group(self, ep_group): self.ep_group = ep_group + self.gate._set_ep_group(ep_group) def forward(self, *input: Tensor, **kwargs: Any) -> Tensor: @@ -502,13 +611,18 @@ def forward(self, *input: Tensor, **kwargs: Any) -> Tensor: if self.wall_clock_breakdown: self.timers(FIRST_ALLTOALL_TIMER).start() - if groups._get_expert_model_parallel_world_size() == 1: - # If the non-expert is tensor-parallel, it will create + tensor_model_world_size = bwc_tensor_model_parallel_world_size(groups.mpu) + if tensor_model_world_size > 1: + # If the non-expert is tensor-parallel, + # Whether expert is tensor-parallel or not , it will create # duplicate tokens on the tensor-parallel ranks. - # Since our experts are not tensor-parallel, these duplicates - # need to be dropped to ensure correctness. - # this also doubles up as a communication optimization as we are - # reducing the all-to-all communication volume. + # drop duplicate tokens also doubles up as a communication + # optimization as we are reducing the all-to-all communication volume. + # 1: for not tensor-parallel expert,drop duplicate tokens to ensure + # both correctness and reduce all-to-all communication. + # 2: for tensor-parallel expert,drop duplicate tokens to reduce all-to-all + # communication volume,before expert execution, it is necessary to perform + # an allgather to ensure correctness, dispatched_input = drop_tokens(dispatched_input, dim=1) dispatched_input = _AllToAll.apply(self.ep_group, dispatched_input) @@ -517,10 +631,22 @@ def forward(self, *input: Tensor, **kwargs: Any) -> Tensor: self.timers(FIRST_ALLTOALL_TIMER).stop() self.time_falltoall = self.timers(FIRST_ALLTOALL_TIMER).elapsed(reset=False) + if tensor_model_world_size > 1 and groups._get_expert_model_parallel_world_size() > 1: + # if both expert and non-expert are tensor-parallel + # the dropped duplicate tokens need to be gathered on each + # tensor parallel rank again to ensure correctness + dispatched_input = gather_tokens(dispatched_input, dim=1) + # Re-shape after all-to-all: ecm -> gecm dispatched_input = dispatched_input.reshape(self.ep_size, self.num_local_experts, -1, d_model) - expert_output = self.experts(dispatched_input) + # Re-shape before drop_tokens: gecm -> ecm + expert_output = expert_output.reshape(self.ep_size * self.num_local_experts, -1, d_model) + if tensor_model_world_size > 1 and groups._get_expert_model_parallel_world_size() > 1: + # if both expert and non-expert are tensor-parallel + # drop duplicate tokens to ensure both correctness + # and reduce all-to-all communication. + expert_output = drop_tokens(expert_output, dim=1) if self.wall_clock_breakdown: self.timers(SECOND_ALLTOALL_TIMER).start() @@ -531,10 +657,7 @@ def forward(self, *input: Tensor, **kwargs: Any) -> Tensor: self.timers(SECOND_ALLTOALL_TIMER).stop() self.time_salltoall = self.timers(SECOND_ALLTOALL_TIMER).elapsed(reset=False) - # Re-shape back: gecm -> ecm - expert_output = expert_output.reshape(self.ep_size * self.num_local_experts, -1, d_model) - - if groups._get_expert_model_parallel_world_size() == 1: + if tensor_model_world_size > 1: # the dropped duplicate tokens need to be gathered on each # tensor parallel rank again for the tensor-parallel # non-expert of the next layer. diff --git a/deepspeed/moe/utils.py b/deepspeed/moe/utils.py index da31f550aabc..20866378efac 100644 --- a/deepspeed/moe/utils.py +++ b/deepspeed/moe/utils.py @@ -3,16 +3,20 @@ # DeepSpeed Team -from typing import List, Tuple, Dict +from collections import defaultdict +from typing import Any, Dict, List, Set, Tuple, Union, cast + import torch +from torch import nn + from .layer import MoE -def has_moe_layers(m): +def has_moe_layers(m: nn.Module) -> Tuple[bool, int]: has_moe = False num_experts = 0 - for _, module in m.named_modules(): + for module in m.modules(): if isinstance(module, MoE): has_moe = True num_experts = module.num_experts @@ -27,8 +31,10 @@ def is_moe_param(param: torch.Tensor) -> bool: def split_params_into_shared_and_expert_params( - params: List[torch.nn.Parameter]) -> Tuple[torch.nn.Parameter, torch.nn.Parameter]: - shared_params, expert_params = [], [] + params: List[torch.nn.Parameter]) -> Tuple[List[torch.nn.Parameter], List[torch.nn.Parameter]]: + shared_params: List[nn.Parameter] = [] + expert_params: List[nn.Parameter] = [] + for p in params: if is_moe_param(p): expert_params.append(p) @@ -38,7 +44,7 @@ def split_params_into_shared_and_expert_params( def split_params_grads_into_shared_and_expert_params( - group: List[torch.nn.Parameter]) -> Tuple[torch.nn.Parameter, torch.nn.Parameter]: + group: List[torch.nn.Parameter]) -> Tuple[List[torch.Tensor], List[torch.Tensor]]: """Split grad of parameters into grads of non-expert params and grads of expert params. This is useful while computing grad-norms for clipping and overflow detection @@ -48,11 +54,12 @@ def split_params_grads_into_shared_and_expert_params( The group of parameters to split Returns: - Tuple[List[torch.nn.Parameter], List[torch.nn.Parameter]]: + Tuple[List[torch.Tensor], List[torch.Tensor]]: list of gradients for non MoE params, list of gradients of MoE params """ - expert_grads = [] - shared_grads = [] + expert_grads: List[torch.Tensor] = [] + shared_grads: List[torch.Tensor] = [] + for p in group: if p.grad is not None: if is_moe_param(p): @@ -62,16 +69,17 @@ def split_params_grads_into_shared_and_expert_params( return shared_grads, expert_grads -def split_params_into_different_moe_groups_for_optimizer(param_groups: Tuple[Dict], - max_group_size=178956971) -> Tuple[Dict]: +def split_params_into_different_moe_groups_for_optimizer( + param_groups: Union[Dict[str, Any], Tuple[Dict[str, Any], ...], List[Dict[str, Any]]], + max_group_size: Union[int, float] = 178956971) -> List[Dict[str, Any]]: """Split parameters into different MoE groups for optimizer Args: - param_groups (Tuple[Dict]): + param_groups (Union[Dict[str, Any], Tuple[Dict[str, Any], ...], List[Dict[str, Any]]]) The list of parameter groups to split Returns: - Tuple[Dict]: + List[Dict[str, Any]]: list of MoE/non-MoE groups for optimizer """ if isinstance(param_groups, tuple): @@ -82,45 +90,43 @@ def split_params_into_different_moe_groups_for_optimizer(param_groups: Tuple[Dic raise ValueError(f"Unknown param group type of {type(param_groups)}") # gather all data parallel group names - data_parallel_group_names = set() + data_parallel_group_names: Set[str] = set() for param_group in param_groups: - for param in param_group["params"]: + for param in cast(List[nn.Parameter], param_group["params"]): if is_moe_param(param): data_parallel_group_names.add(param.group_name) - data_parallel_group_names = list(data_parallel_group_names) - group_moe = {} + # Create the param MoE groups, leave param assign to next step + group_moe: Dict[str, Dict[str, Dict[str, Any]]] = defaultdict(lambda: defaultdict(dict)) for param_group in param_groups: - group_moe[param_group['name']] = {} for key in data_parallel_group_names: - group_moe[param_group['name']][key] = {} - group_moe[param_group['name']][key]['name'] = key - group_moe[param_group['name']][key]['moe'] = True - for ori_key in param_group.keys(): - if ori_key != 'name': - if ori_key == 'params': - group_moe[param_group['name']][key][ori_key] = [] - else: - group_moe[param_group['name']][key][ori_key] = param_group[ori_key] + group_moe[param_group['name']][key] = { + **param_group, + 'name': key, + 'moe': True, + 'params': [], + } + # Assign param for param_group in param_groups: - new_params = [] - for param in param_group['params']: + new_params: List[nn.Parameter] = [] + + for param in cast(List[nn.Parameter], param_group['params']): if is_moe_param(param): group_moe[param_group['name']][param.group_name]['params'].append(param) - # param_group['params'].remove(param) else: new_params.append(param) param_group['params'] = new_params # Flatten the moe groups if max_group_size is not None: - for k, v in group_moe.items(): - for k1, v1 in v.items(): - cur_group = [] - all_groups = [] + for moe_group in group_moe.values(): + for param_group in moe_group.values(): + cur_group: List[nn.Parameter] = [] + all_groups: List[List[nn.Parameter]] = [] size_of_cur_group = 0 - for param in v1['params']: + + for param in cast(List[nn.Parameter], param_group['params']): if size_of_cur_group + param.numel() <= max_group_size: cur_group.append(param) size_of_cur_group += param.numel() @@ -128,18 +134,49 @@ def split_params_into_different_moe_groups_for_optimizer(param_groups: Tuple[Dic all_groups.append(cur_group) cur_group = [param] size_of_cur_group = param.numel() + if cur_group: all_groups.append(cur_group) + for group in all_groups: - new_dict = {} - for key, val in v1.items(): - if key != 'params': - new_dict[key] = val - new_dict['params'] = group - param_groups.append(new_dict) + param_groups.append({**param_group, 'params': group}) else: - for k, v in group_moe.items(): - for k1, v1 in v.items(): - param_groups.append(v1) + for moe_group in group_moe.values(): + for param_group in moe_group.values(): + param_groups.append(param_group) + + return param_groups + + +def is_moe_param_group(param_group): + return param_group.get('moe', False) + - return tuple(param_groups) +def configure_moe_param_groups(model_parameters: List): + assert isinstance(model_parameters, list), "model_parameters must be a list" + + for p in model_parameters: + # match torch.optim.Optimizer expectations, + # see: https://github.com/pytorch/pytorch/blob/2ffab6e663b9c6951048b8c8ba82d2cc5ca5c2fc/torch/optim/optimizer.py#L270-L272 + if not isinstance(p, (torch.Tensor, dict)): + raise TypeError("param argument that would be given to the optimizer should be " + f"an iterable of Tensors or dicts, but got {type(p)}") + + # peak at the first element to determine how to proceed + first = model_parameters[0] + + # Case 1: model_parameters is a list of torch.nn.Parameter + # -> need to create moe compatible param groups + if isinstance(first, torch.nn.Parameter): + param_group = {'params': model_parameters, 'name': 'dense-params'} + return split_params_into_different_moe_groups_for_optimizer(param_group) + + # Case 2: model_parameters is a list of param groups List[dict] + # -> moe compatible param groups might already exist, if not create them + elif isinstance(first, dict): + #there are no moe groups created + if not any(['moe' in param_group for param_group in model_parameters]): + return split_params_into_different_moe_groups_for_optimizer(model_parameters) + else: + # moe groups exist, nothing to do + return model_parameters diff --git a/deepspeed/monitor/comet.py b/deepspeed/monitor/comet.py new file mode 100644 index 000000000000..d8bc4017800f --- /dev/null +++ b/deepspeed/monitor/comet.py @@ -0,0 +1,92 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from typing import TYPE_CHECKING, Any, Tuple, List, Dict, Optional + +from .utils import check_comet_availability +from .monitor import Monitor + +import deepspeed.comm as dist + +if TYPE_CHECKING: + import comet_ml + from .config import CometConfig + +Name = str +Value = Any +GlobalSamples = int +Event = Tuple[Name, Value, GlobalSamples] + + +class CometMonitor(Monitor): + + def __init__(self, comet_config: "CometConfig"): + super().__init__(comet_config) + check_comet_availability() + import comet_ml + + self.enabled = comet_config.enabled + self._samples_log_interval = comet_config.samples_log_interval + self._experiment: Optional["comet_ml.ExperimentBase"] = None + + if self.enabled and dist.get_rank() == 0: + self._experiment = comet_ml.start( + api_key=comet_config.api_key, + project=comet_config.project, + workspace=comet_config.workspace, + experiment_key=comet_config.experiment_key, + mode=comet_config.mode, + online=comet_config.online, + ) + + if comet_config.experiment_name is not None: + self._experiment.set_name(comet_config.experiment_name) + + self._events_log_scheduler = EventsLogScheduler(comet_config.samples_log_interval) + + @property + def experiment(self) -> Optional["comet_ml.ExperimentBase"]: + return self._experiment + + @property + def samples_log_interval(self) -> int: + return self._samples_log_interval + + def write_events(self, event_list: List[Event]) -> None: + if not self.enabled or dist.get_rank() != 0: + return None + + for event in event_list: + name = event[0] + value = event[1] + engine_global_samples = event[2] + + if self._events_log_scheduler.needs_logging(name, engine_global_samples): + self._experiment.__internal_api__log_metric__( + name=name, + value=value, + step=engine_global_samples, + ) + + +class EventsLogScheduler: + + def __init__(self, samples_log_interval: int): + self._samples_log_interval = samples_log_interval + self._last_logged_events_samples: Dict[str, int] = {} + + def needs_logging(self, name: str, current_sample: int) -> bool: + if name not in self._last_logged_events_samples: + self._last_logged_events_samples[name] = current_sample + return True + + last_logged_sample = self._last_logged_events_samples[name] + samples_delta = current_sample - last_logged_sample + + if samples_delta >= self._samples_log_interval: + self._last_logged_events_samples[name] = current_sample + return True + + return False diff --git a/deepspeed/monitor/config.py b/deepspeed/monitor/config.py index 5a8ca6ecf5cd..960ce1ba997a 100644 --- a/deepspeed/monitor/config.py +++ b/deepspeed/monitor/config.py @@ -3,12 +3,14 @@ # DeepSpeed Team -from deepspeed.pydantic_v1 import root_validator +from typing import Optional + +from pydantic import model_validator from deepspeed.runtime.config_utils import DeepSpeedConfigModel def get_monitor_config(param_dict): - monitor_dict = {key: param_dict.get(key, {}) for key in ("tensorboard", "wandb", "csv_monitor")} + monitor_dict = {key: param_dict.get(key, {}) for key in ("tensorboard", "wandb", "csv_monitor", "comet")} return DeepSpeedMonitorConfig(**monitor_dict) @@ -34,10 +36,10 @@ class WandbConfig(DeepSpeedConfigModel): enabled: bool = False """ Whether logging to WandB is enabled. Requires `wandb` package is installed. """ - group: str = None + group: Optional[str] = None """ Name for the WandB group. This can be used to group together runs. """ - team: str = None + team: Optional[str] = None """ Name for the WandB team. """ project: str = "deepspeed" @@ -60,20 +62,83 @@ class CSVConfig(DeepSpeedConfigModel): """ Name for the current job. This will become a new directory inside `output_path`. """ +class CometConfig(DeepSpeedConfigModel): + """ + Sets parameters for Comet monitor. For logging data Comet uses + experiment object. + https://www.comet.com/docs/v2/api-and-sdk/python-sdk/reference/Experiment/ + """ + + enabled: bool = False + """ Whether logging to Comet is enabled. Requires `comet_ml` package is installed. """ + + samples_log_interval: int = 100 + """ Metrics will be submitted to Comet after processing every `samples_log_intervas` samples""" + + project: Optional[str] = None + """ + Comet project name. Can be set through .comet.config file or environment variable COMET_PROJECT_NAME + https://www.comet.com/docs/v2/guides/experiment-management/configure-sdk/#explore-comet-configuration-options + """ + + workspace: Optional[str] = None + """ + Comet workspace name. Can be set through .comet.config file or environment variable COMET_WORKSPACE + https://www.comet.com/docs/v2/guides/experiment-management/configure-sdk/#explore-comet-configuration-options + """ + + api_key: Optional[str] = None + """ + Comet API key. Can be set through .comet.config file or environment variable COMET_API_KEY + https://www.comet.com/docs/v2/guides/experiment-management/configure-sdk/#explore-comet-configuration-options + """ + + experiment_name: Optional[str] = None + """ + The name for comet experiment to be used for logging. + Can be set through .comet.config file or environment variable COMET_EXPERIMENT_NAME + https://www.comet.com/docs/v2/guides/experiment-management/configure-sdk/#explore-comet-configuration-options + """ + + experiment_key: Optional[str] = None + """ + The key for comet experiment to be used for logging. Must be an alphanumeric string whose length is between 32 and 50 characters. + Can be set through .comet.config or environment variable COMET_EXPERIMENT_KEY + https://www.comet.com/docs/v2/guides/experiment-management/configure-sdk/#explore-comet-configuration-options + """ + + online: Optional[bool] = None + """ + If True, the data will be logged to Comet server, otherwise it will be stored locally in offline experiment + Defaults to True. + """ + + mode: Optional[str] = None + """ + Control how the Comet experiment is started, 3 options are possible.: + - "get": Continue logging to an existing experiment identified by the `experiment_key` value. + - "create": Always creates of a new experiment, useful for HPO sweeps. + - "get_or_create" (default): Starts a fresh experiment if required, or persists logging to an existing one. + """ + + class DeepSpeedMonitorConfig(DeepSpeedConfigModel): """Sets parameters for various monitoring methods.""" tensorboard: TensorBoardConfig = {} """ TensorBoard monitor, requires `tensorboard` package is installed. """ + comet: CometConfig = {} + """ Comet monitor, requires `comet_ml` package is installed """ + wandb: WandbConfig = {} """ WandB monitor, requires `wandb` package is installed. """ csv_monitor: CSVConfig = {} """ Local CSV output of monitoring data. """ - @root_validator - def check_enabled(cls, values): - values["enabled"] = values.get("tensorboard").enabled or values.get("wandb").enabled or values.get( - "csv_monitor").enabled - return values + @model_validator(mode="after") + def check_enabled(self): + enabled = self.tensorboard.enabled or self.wandb.enabled or self.csv_monitor.enabled or self.comet.enabled + self.__dict__["enabled"] = enabled + return self diff --git a/deepspeed/monitor/monitor.py b/deepspeed/monitor/monitor.py index 5a32b8bbcadd..e7e26dc483d9 100644 --- a/deepspeed/monitor/monitor.py +++ b/deepspeed/monitor/monitor.py @@ -24,6 +24,7 @@ def write_events(self, event_list): from .wandb import WandbMonitor from .tensorboard import TensorBoardMonitor from .csv_monitor import csvMonitor +from .comet import CometMonitor class MonitorMaster(Monitor): @@ -33,6 +34,7 @@ def __init__(self, monitor_config): self.tb_monitor = None self.wandb_monitor = None self.csv_monitor = None + self.comet_monitor = None self.enabled = monitor_config.enabled if dist.get_rank() == 0: @@ -42,6 +44,8 @@ def __init__(self, monitor_config): self.wandb_monitor = WandbMonitor(monitor_config.wandb) if monitor_config.csv_monitor.enabled: self.csv_monitor = csvMonitor(monitor_config.csv_monitor) + if monitor_config.comet.enabled: + self.comet_monitor = CometMonitor(monitor_config.comet) def write_events(self, event_list): if dist.get_rank() == 0: @@ -51,3 +55,5 @@ def write_events(self, event_list): self.wandb_monitor.write_events(event_list) if self.csv_monitor is not None: self.csv_monitor.write_events(event_list) + if self.comet_monitor is not None: + self.comet_monitor.write_events(event_list) diff --git a/deepspeed/monitor/utils.py b/deepspeed/monitor/utils.py index 265fc9811553..f5530e8532e1 100644 --- a/deepspeed/monitor/utils.py +++ b/deepspeed/monitor/utils.py @@ -3,6 +3,8 @@ # DeepSpeed Team +from packaging import version as pkg_version + def check_tb_availability(): try: @@ -22,3 +24,14 @@ def check_wandb_availability(): 'If you want to use wandb logging, please `pip install wandb` and follow the instructions at https://docs.wandb.ai/quickstart' ) raise + + +def check_comet_availability(): + try: + import comet_ml + comet_version = pkg_version.parse(comet_ml.__version__) + if comet_version < pkg_version.Version("3.41.0"): + raise ImportError("`comet_ml` must have at least version 3.41.0") + except ImportError: + print('If you want to use comet logging, please `pip install "comet_ml>=3.41.0"`') + raise diff --git a/deepspeed/nvme/__init__.py b/deepspeed/nvme/__init__.py new file mode 100644 index 000000000000..6d0de857cbd3 --- /dev/null +++ b/deepspeed/nvme/__init__.py @@ -0,0 +1,8 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from .perf_run_sweep import sweep_main, parse_sweep_arguments +from .perf_generate_param import generate_main +from .test_ds_aio import ds_io_main diff --git a/deepspeed/nvme/ds_aio_args.py b/deepspeed/nvme/ds_aio_args.py new file mode 100644 index 000000000000..9ed71c34a74d --- /dev/null +++ b/deepspeed/nvme/ds_aio_args.py @@ -0,0 +1,175 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team +""" +Functionality of swapping optimizer tensors to/from (NVMe) storage devices. +""" + +import argparse +import os +from .test_ds_aio_utils import refine_integer_value +from deepspeed.accelerator import get_accelerator + +MAPPING_DELIMITER = ':' + + +def refine_args(args): + if args.io_size and type(args.io_size) == str: + args.io_size = refine_integer_value(args.io_size) + + if args.block_size and type(args.block_size) == str: + args.block_size = refine_integer_value(args.block_size) + + return args + + +def _get_mapping_dict(args): + if args.folder is not None: + d = {i: args.folder for i in range(args.multi_process)} + else: + d = {} + for m in args.folder_to_device_mapping: + fields = m.split(MAPPING_DELIMITER) + d[fields[1]] = fields[0] + + return d + + +def _validate_folder_mapping(args): + no_error = True + error_messages = [] + invalid_mappings = [m for m in args.folder_to_device_mapping if MAPPING_DELIMITER not in m] + if len(invalid_mappings) > 0: + error_messages.append( + f'Missing delimiter ({MAPPING_DELIMITER}) in folder_to_device_mapping {invalid_mappings}') + no_error = False + + folder_list = [m.split(MAPPING_DELIMITER)[0] for m in args.folder_to_device_mapping] + invalid_folders = [d for d in folder_list if not os.path.exists(d)] + if len(invalid_folders) > 0: + error_messages.append(f'Invalid folders in folder_to_device_mapping: {invalid_folders}') + no_error = False + + if args.gpu: + device_list = [int(m.split(MAPPING_DELIMITER)[1]) for m in args.folder_to_device_mapping] + invalid_device_list = [dev_id for dev_id in device_list if not dev_id < get_accelerator().device_count()] + if len(invalid_device_list) > 0: + error_messages.append(f'Invalid device ids in folder_to_device_mapping: {invalid_device_list}') + no_error = False + + return no_error, error_messages + + +def validate_args(args): + no_error = True + error_messages = [] + + if args.folder is not None and len(args.folder_to_device_mapping) > 0: + error_messages.append(f'--folder and --folder_to_device_mapping cannot be specified together.') + no_error = False + elif args.folder is None and len(args.folder_to_device_mapping) == 0: + error_messages.append(f'At least one of --folder or --folder_to_device_mapping must be specified.') + no_error = False + + # Validate --folder + if args.folder is not None and not os.path.exists(args.folder): + no_error = False + error_messages.append(f'Invalid folder in --folder: {args.folder} ') + + # Validate --folder_mapping_to_device + if len(args.folder_to_device_mapping) > 0: + no_mapping_error, mapping_error_messages = _validate_folder_mapping(args) + no_error = no_error and no_mapping_error + error_messages += mapping_error_messages + + # Validate --gpu, --use_gds + if args.use_gds and not args.gpu: + error_messages.append(f'--gpu must be set to transfer with --use_gds') + no_error = False + + if not no_error: + print(f'Found {len(error_messages)} validation errors') + for i, msg in enumerate(error_messages): + print(f'{i+1}: {msg}') + + return no_error + + +def parse_arguments(): + parser = argparse.ArgumentParser() + + parser.add_argument('--folder', default=None, type=str, help='Folder to use for I/O.') + + parser.add_argument('--folder_to_device_mapping', + default=[], + nargs='+', + help='Specification of mapping of folder to (gpu) device id, (ignored for cpu accesses).' + 'Can be specified multiple times for multi-process runs,' + 'e.g. --folder_to_device_mapping /mnt/nvme0:0 --folder_to_device_mapping /mnt/nvme1:15 --gpu' + 'means access /mnt/nvme0 with gpu 0 and /mnt/nvme1 with gpu 15') + + parser.add_argument('--io_size', type=str, default=None, required=True, help='Number of bytes to read or write.') + + parser.add_argument('--read', action='store_true', help='Perform read I/O (default is write)') + + parser.add_argument('--multi_process', + type=int, + default=1, + help='Number of parallel processes doing I/O (default 1).') + + parser.add_argument('--block_size', + type=str, + default='1M', + help='I/O block size. Can use K, M, or G suffix (default 1M for 1 megabytes).') + + parser.add_argument('--queue_depth', type=int, default=32, help='I/O queue depth (default 32).') + + parser.add_argument('--single_submit', + action='store_true', + help='Submit I/O requests in singles (default is submit queue_depth amount at once.).') + + parser.add_argument( + '--sequential_requests', + action='store_true', + help= + 'Delay I/O request submission until completion of prior requests (default is overlap I/O submission and completion requests.).' + ) + + parser.add_argument('--validate', action='store_true', help='Perform validation of I/O transfer in library.') + + parser.add_argument('--handle', action='store_true', help='Use AIO handle.') + + parser.add_argument('--loops', type=int, default=3, help='Count of operation repetitions') + + parser.add_argument('--io_parallel', type=int, default=None, help='Per iop parallelism') + + parser.add_argument('--gpu', action='store_true', help='Use GPU memory') + + parser.add_argument('--use_gds', action='store_true', help='Enable GDS AIO') + + parser.add_argument('--slow_bounce_buffer', + action='store_true', + help='For GPU memory transfers, measure impact of bounce buffer pinning on critical path.') + + args = parser.parse_args() + print(f'args = {args}') + return args + + +def get_validated_args(): + args = parse_arguments() + args = refine_args(args) + if not validate_args(args): + quit() + print(f'Successful validation of command line arguments') + + peer_tag = 'gpu' if args.gpu else 'process' + args.mapping_dict = _get_mapping_dict(args) + args.mapping_list = [(device_id, folder) for device_id, folder in args.mapping_dict.items()] + assert len(args.mapping_dict) == len(args.mapping_list) + print(f'Configuring {len(args.mapping_list)} {peer_tag} to folder mapping') + for i, (device_id, folder) in enumerate(args.mapping_list): + print(f'[{i}]: {peer_tag} {device_id} <----> {folder}') + + return args diff --git a/deepspeed/nvme/ds_aio_basic.py b/deepspeed/nvme/ds_aio_basic.py new file mode 100755 index 000000000000..b346fe9bbfeb --- /dev/null +++ b/deepspeed/nvme/ds_aio_basic.py @@ -0,0 +1,134 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team +""" +Functionality of swapping optimizer tensors to/from (NVMe) storage devices. +""" + +import torch +import os +import time +from deepspeed.ops.aio import AsyncIOBuilder +from multiprocessing import Pool, Barrier +from .test_ds_aio_utils import report_results, task_log, task_barrier + + +def pre_basic(args, tid, read_op): + io_string = "Read" if read_op else "Write" + num_bytes = os.path.getsize(args.read_file) if read_op else args.write_size + file = args.read_file if read_op else f'{args.write_file}.{tid}' + + task_log(tid, f'Allocate tensor of size {num_bytes} bytes') + buffer = torch.empty(num_bytes, dtype=torch.uint8, device='cpu').pin_memory() + task_log(tid, f'{io_string} file {file} of size {num_bytes} bytes from buffer on device {buffer.device}') + + ctxt = {} + ctxt['file'] = file + ctxt['num_bytes'] = num_bytes + ctxt['buffer'] = buffer + ctxt['elapsed_sec'] = 0 + + return ctxt + + +def pre_basic_read(pool_params): + args, tid = pool_params + ctxt = pre_basic(args, tid, True) + return ctxt + + +def pre_basic_write(pool_params): + args, tid = pool_params + ctxt = pre_basic(args, tid, False) + return ctxt + + +def post_basic(pool_params): + _, _, ctxt = pool_params + ctxt["buffer"].detach() + ctxt["buffer"] = None + return ctxt + + +def main_basic_read(pool_params): + args, tid, ctxt = pool_params + start_time = time.time() + AsyncIOBuilder().load().aio_read(ctxt['buffer'], ctxt['file'], args.block_size, args.queue_depth, + args.single_submit, not args.sequential_requests, args.validate) + end_time = time.time() + ctxt['elapsed_sec'] += end_time - start_time + + return ctxt + + +def main_basic_write(pool_params): + args, tid, ctxt = pool_params + start_time = time.time() + AsyncIOBuilder().load().aio_write(ctxt['buffer'], ctxt['file'], args.block_size, args.queue_depth, + args.single_submit, not args.sequential_requests, args.validate) + end_time = time.time() + ctxt['elapsed_sec'] += end_time - start_time + + return ctxt + + +def get_schedule(args, read_op): + schedule = {} + if read_op: + schedule['pre'] = pre_basic_read + schedule['post'] = post_basic + schedule['main'] = main_basic_read + else: + schedule['pre'] = pre_basic_write + schedule['post'] = post_basic + schedule['main'] = main_basic_write + + return schedule + + +def _aio_handle_tasklet(pool_params): + args, tid, read_op = pool_params + num_processes = len(args.mapping_dict) + + # Create schedule + schedule = get_schedule(args, read_op) + task_log(tid, f'schedule = {schedule}') + task_barrier(aio_barrier, num_processes) + + # Run pre task + task_log(tid, f'running pre-task') + ctxt = schedule["pre"]((args, tid)) + task_barrier(aio_barrier, num_processes) + + # Run main tasks in a loop + ctxt["main_task_sec"] = 0 + for i in range(args.loops): + task_log(tid, f'running main task {i}') + start_time = time.time() + ctxt = schedule["main"]((args, tid, ctxt)) + task_barrier(aio_barrier, num_processes) + stop_time = time.time() + ctxt["main_task_sec"] += stop_time - start_time + + # Run post task + task_log(tid, f'running post-task') + ctxt = schedule["post"]((args, tid, ctxt)) + task_barrier(aio_barrier, num_processes) + + return ctxt["main_task_sec"], ctxt["elapsed_sec"], ctxt["num_bytes"] * args.loops + + +def _init_tasklet(b): + global aio_barrier + aio_barrier = b + + +def aio_basic_multiprocessing(args, read_op): + num_processes = len(args.mapping_dict) + b = Barrier(num_processes) + pool_params = [(args, p, read_op) for p in range(num_processes)] + with Pool(processes=num_processes, initializer=_init_tasklet, initargs=(b, )) as p: + pool_results = p.map(_aio_handle_tasklet, pool_params) + + report_results(args, read_op, pool_results) diff --git a/deepspeed/nvme/ds_aio_handle.py b/deepspeed/nvme/ds_aio_handle.py new file mode 100755 index 000000000000..47c0cd709ec5 --- /dev/null +++ b/deepspeed/nvme/ds_aio_handle.py @@ -0,0 +1,222 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team +""" +Functionality of swapping optimizer tensors to/from (NVMe) storage devices. +""" + +import torch +import os +import time +from multiprocessing import Pool, Barrier +from deepspeed.ops.aio import AsyncIOBuilder +from deepspeed.ops.op_builder import GDSBuilder +from deepspeed.accelerator import get_accelerator +from .test_ds_aio_utils import report_results, task_log, task_barrier, create_filename, create_file + +BUFFER = 'buffer' +BOUNCE_BUFFER = 'bounce_buffer' + + +def pre_handle(args, tid, read_op): + io_string = "Read" if read_op else "Write" + gds = True if args.use_gds else False + device_id, folder = args.mapping_list[tid] + filename = create_filename(folder, args.read, args.io_size, tid) + if args.read and not (os.path.isfile(filename) and os.path.getsize(filename) == args.io_size): + create_file(filename, args.io_size) + + task_log(tid, f'Allocate tensor of size {args.io_size} bytes') + bounce_buffer = None + if args.gpu: + device_name = get_accelerator().device_name(device_id) + buffer = torch.randint(high=128, size=(args.io_size, ), dtype=torch.uint8, device=device_name) + if not (args.slow_bounce_buffer or gds): + bounce_buffer = torch.randint(high=128, size=(args.io_size, ), dtype=torch.uint8, + device='cpu').pin_memory() + else: + buffer = torch.randint(high=128, size=(args.io_size, ), dtype=torch.uint8, device='cpu').pin_memory() + task_log(tid, + f'{io_string} file {filename} of size {args.io_size} bytes from buffer on device {buffer.device}', + force=True) + + io_parallel = args.io_parallel if args.io_parallel else 1 + if gds: + handle = GDSBuilder().load().gds_handle(args.block_size, args.queue_depth, args.single_submit, + not args.sequential_requests, io_parallel) + handle.pin_device_tensor(buffer) + else: + handle = AsyncIOBuilder().load().aio_handle(args.block_size, args.queue_depth, args.single_submit, + not args.sequential_requests, io_parallel) + task_log(tid, f'created deepspeed aio handle') + + ctxt = {} + ctxt['file'] = filename + ctxt['num_bytes'] = args.io_size + ctxt['handle'] = handle + ctxt['gds'] = gds + ctxt[BUFFER] = buffer + ctxt[BOUNCE_BUFFER] = bounce_buffer + ctxt['elapsed_sec'] = 0 + + return ctxt + + +def pre_handle_read(pool_params): + args, tid = pool_params + ctxt = pre_handle(args, tid, True) + return ctxt + + +def pre_handle_write(pool_params): + args, tid = pool_params + ctxt = pre_handle(args, tid, False) + return ctxt + + +def post_handle(pool_params): + _, _, ctxt = pool_params + for buf in [BUFFER, BOUNCE_BUFFER]: + if ctxt[buf] is not None: + if ctxt['gds']: + ctxt['handle'].unpin_device_tensor(ctxt[buf]) + ctxt[buf].detach() + ctxt[buf] = None + return ctxt + + +def main_parallel_read(pool_params): + args, tid, ctxt = pool_params + handle = ctxt['handle'] + + start_time = time.time() + dest_buffer = BOUNCE_BUFFER if ctxt[BOUNCE_BUFFER] is not None else BUFFER + ret = handle.pread(ctxt[dest_buffer], ctxt['file'], args.validate, True) + assert ret != -1 + handle.wait() + if dest_buffer == BOUNCE_BUFFER: + ctxt[BUFFER].data.copy_(ctxt[BOUNCE_BUFFER].data) + end_time = time.time() + ctxt['elapsed_sec'] += end_time - start_time + return ctxt + + +def main_parallel_write(pool_params): + args, tid, ctxt = pool_params + # Avoid overwriting existing files as it could be artificially faster + if os.path.isfile(ctxt['file']): + os.remove(ctxt['file']) + + handle = ctxt['handle'] + start_time = time.time() + if ctxt[BOUNCE_BUFFER] is not None: + source_buffer = BOUNCE_BUFFER + ctxt[BOUNCE_BUFFER].data.copy_(ctxt[BUFFER].data) + else: + source_buffer = BUFFER + ret = handle.pwrite(ctxt[source_buffer], ctxt['file'], args.validate, True) + assert ret != -1 + handle.wait() + end_time = time.time() + ctxt['elapsed_sec'] += end_time - start_time + + return ctxt + + +def main_handle_read(pool_parms): + args, tid, ctxt = pool_parms + handle = ctxt['handle'] + + start_time = time.time() + dest_buffer = BOUNCE_BUFFER if ctxt[BOUNCE_BUFFER] is not None else BUFFER + ret = handle.read(ctxt[dest_buffer], ctxt['file'], args.validate) + assert ret != -1 + if dest_buffer == BOUNCE_BUFFER: + ctxt[BUFFER].data.copy_(ctxt[BOUNCE_BUFFER].data) + end_time = time.time() + ctxt['elapsed_sec'] += end_time - start_time + + return ctxt + + +def main_handle_write(pool_parms): + args, tid, ctxt = pool_parms + # Avoid overwriting existing files as it could be artificially faster + if os.path.isfile(ctxt['file']): + os.remove(ctxt['file']) + + handle = ctxt['handle'] + start_time = time.time() + if ctxt[BOUNCE_BUFFER] is not None: + source_buffer = BOUNCE_BUFFER + ctxt[BOUNCE_BUFFER].data.copy_(ctxt[BUFFER].data) + else: + source_buffer = BUFFER + ret = handle.write(ctxt[source_buffer], ctxt['file'], args.validate) + assert ret != -1 + end_time = time.time() + ctxt['elapsed_sec'] += end_time - start_time + + return ctxt + + +def get_schedule(args, read_op): + schedule = {} + if read_op: + schedule['pre'] = pre_handle_read + schedule['post'] = post_handle + schedule['main'] = main_parallel_read + else: + schedule['pre'] = pre_handle_write + schedule['post'] = post_handle + schedule['main'] = main_parallel_write + + return schedule + + +def _aio_handle_tasklet(pool_params): + args, tid, read_op = pool_params + num_processes = len(args.mapping_dict) + + # Create schedule + schedule = get_schedule(args, read_op) + task_log(tid, f'schedule = {schedule}') + task_barrier(aio_barrier, num_processes) + + # Run pre task + task_log(tid, f'running pre-task') + ctxt = schedule["pre"]((args, tid)) + task_barrier(aio_barrier, num_processes) + + # Run main tasks in a loop + ctxt["main_task_sec"] = 0 + for i in range(args.loops): + task_log(tid, f'running main task {i}') + start_time = time.time() + ctxt = schedule["main"]((args, tid, ctxt)) + task_barrier(aio_barrier, num_processes) + stop_time = time.time() + ctxt["main_task_sec"] += stop_time - start_time + + # Run post task + task_log(tid, f'running post-task') + ctxt = schedule["post"]((args, tid, ctxt)) + task_barrier(aio_barrier, num_processes) + + return ctxt["main_task_sec"], ctxt["elapsed_sec"], ctxt["num_bytes"] * args.loops + + +def _init_tasklet(b): + global aio_barrier + aio_barrier = b + + +def aio_handle_multiprocessing(args, read_op): + num_processes = len(args.mapping_dict) + b = Barrier(num_processes) + pool_params = [(args, p, read_op) for p in range(num_processes)] + with Pool(processes=num_processes, initializer=_init_tasklet, initargs=(b, )) as p: + pool_results = p.map(_aio_handle_tasklet, pool_params) + + report_results(args, read_op, pool_results) diff --git a/deepspeed/nvme/ds_aio_job.py b/deepspeed/nvme/ds_aio_job.py new file mode 100644 index 000000000000..0f9c8b5f1bcc --- /dev/null +++ b/deepspeed/nvme/ds_aio_job.py @@ -0,0 +1,50 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team +""" +Functionality of swapping tensors to/from (NVMe) storage devices. +""" +import subprocess +import shlex + + +class Job(object): + + def __init__(self, cmd_line, output_file=None, work_dir=None): + self.cmd_line = cmd_line + self.output_file = output_file + self.work_dir = work_dir + self.output_fd = None + + def cmd(self): + return self.cmd_line + + def get_stdout(self): + return self.output_fd + + def get_stderr(self): + return self.output_fd + + def get_cwd(self): + return self.work_dir + + def open_output_file(self): + if self.output_file is not None: + self.output_fd = open(self.output_file, 'w') + + def close_output_file(self): + if self.output_fd is not None: + self.output_fd.close() + self.output_fd = None + + +def run_job(job, verbose=False): + args = shlex.split(' '.join(job.cmd())) + if verbose: + print(f'args = {args}') + job.open_output_file() + proc = subprocess.run(args=args, stdout=job.get_stdout(), stderr=job.get_stderr(), cwd=job.get_cwd()) + job.close_output_file() + assert proc.returncode == 0, \ + f"This command failed: {job.cmd()}" diff --git a/deepspeed/nvme/parse_nvme_stats.py b/deepspeed/nvme/parse_nvme_stats.py new file mode 100755 index 000000000000..09c79ada5b36 --- /dev/null +++ b/deepspeed/nvme/parse_nvme_stats.py @@ -0,0 +1,148 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team +""" +Functionality of swapping optimizer tensors to/from (NVMe) storage devices. +""" + +import os +import argparse + +READ_SPEED = 'read_speed' +WRITE_SPEED = 'write_speed' + +PERF_METRICS = [READ_SPEED, WRITE_SPEED] + +METRIC_SEARCH = {READ_SPEED: 'E2E Read Speed', WRITE_SPEED: 'E2E Write Speed'} + + +def parse_arguments(): + parser = argparse.ArgumentParser() + + parser.add_argument('--log_dir', type=str, required=True, help='Folder of statistics logs') + + parser.add_argument('--metric', + type=str, + required=True, + help='Performance metric to report: [read_speed|write_speed]') + + args = parser.parse_args() + print(f'args = {args}') + + return args + + +def extract_value(key, file): + INVALID_PREFIXES = ["ds"] + for p in INVALID_PREFIXES: + if key.startswith(p): + return key + try: + if key[0] in ['t', 'd', 'p']: + return int(key[1:]) + if key.startswith("bs"): + if key.endswith('K'): + v = key[2:].split('K') + return int(v[0]) * 1024 + elif key.endswith('M'): + v = key[2:].split('M') + return int(v[0]) * 1024 * 1024 + else: + return int(key[2:]) + except: + print(f"{file}: extract_value fails on {key}") + return None + + return key + + +def get_file_key(file): + f, _ = os.path.splitext(os.path.basename(file)) + fields = f.split('_') + values = [extract_value(k, file) for k in fields] + return tuple(values) + + +def get_thread_count(file): + f, _ = os.path.splitext(os.path.basename(file)) + fields = f.split('_') + for key in fields: + if key[0] == 't': + return int(key[1:]) + return 1 + + +""" +Extract performance metric from log file. +Sample file lines are: +Task Read Latency = 0.031647682189941406 sec +Task Read Speed = 12.342926020792527 GB/sec +E2E Read Latency = 0.031697988510131836 sec +E2E Read Speed = 12.323337169333062 GB/sec + +For the above sample, -metric = "read_speed" corresponds to "E2E Read Speed", and 12.32 will be returned +""" + + +def get_metric(file, metric): + thread_count = get_thread_count(file) + with open(file) as f: + for line in f.readlines(): + if line.startswith(METRIC_SEARCH[metric]): + if metric in [READ_SPEED, WRITE_SPEED]: + fields = line.split() + return float(fields[-2]) + else: + fields = line.split('=') + return float(fields[-1]) + + return None + + +def validate_args(args): + if not args.metric in PERF_METRICS: + print(f'{args.metric} is not a valid performance metrics') + return False + + if not os.path.isdir(args.log_dir): + print(f'{args.log_dir} folder is not existent') + return False + + return True + + +def get_results(log_files, metric): + results = {} + for f in log_files: + file_key = get_file_key(f) + value = get_metric(f, metric) + results[file_key] = value + + return results + + +def get_sorted_results(log_dir, metric): + log_files = [f for f in os.listdir(log_dir) if os.path.isfile(os.path.join(log_dir, f))] + + log_files_path = [os.path.join(log_dir, f) for f in log_files] + results = get_results(log_files_path, metric) + result_keys = list(results.keys()) + sorted_keys = sorted(result_keys) + return sorted_keys, results + + +def main(): + print("Parsing aio statistics") + args = parse_arguments() + + if not validate_args(args): + quit() + + sorted_keys, results = get_sorted_results(args.log_dir, args.metric) + for k in sorted_keys: + print(f'{k} = {results[k]}') + + +if __name__ == "__main__": + main() diff --git a/deepspeed/nvme/perf_generate_param.py b/deepspeed/nvme/perf_generate_param.py new file mode 100644 index 000000000000..d0313d728ad5 --- /dev/null +++ b/deepspeed/nvme/perf_generate_param.py @@ -0,0 +1,97 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team +""" +Functionality of swapping optimizer tensors to/from (NVMe) storage devices. +""" +import os +import argparse +import json +from .parse_nvme_stats import READ_SPEED, WRITE_SPEED, get_sorted_results +from .perf_sweep_utils import BENCH_LOG_DIR, READ_LOG_DIR, WRITE_LOG_DIR + + +def parse_arguments(): + parser = argparse.ArgumentParser() + + parser.add_argument('--log_dir', + type=str, + default=BENCH_LOG_DIR, + help=f'Folder of performance sweep logs. Default is {os.path.join(".", BENCH_LOG_DIR)}') + parser.add_argument('--verbose', action='store_true', help='Print debugging information.') + + args = parser.parse_args() + if args.verbose: + print(f'args = {args}') + + return args + + +def validate_args(args): + for d in [READ_LOG_DIR, WRITE_LOG_DIR]: + log_dir = os.path.join(args.log_dir, d) + if not os.path.isdir(log_dir): + print(f'{log_dir} folder is not existent') + return False + + return True + + +def convert_to_param(key): + assert len(key) == 6 + return { + "single_submit": "true" if key[0] == "single" else "false", + "overlap_events": "true" if key[1] == "overlap" else "false", + "num_threads": int(key[5]), + "queue_depth": int(key[3]), + "block_size": int(key[4]) + } + + +def generate_aio_param(read_log_dir, write_log_dir): + _, read_results = get_sorted_results(read_log_dir, READ_SPEED) + _, write_results = get_sorted_results(write_log_dir, WRITE_SPEED) + combined_perf = {key[1:]: value for key, value in read_results.items()} + + for key, value in write_results.items(): + new_key = key[1:] + if new_key in combined_perf: + combined_perf[new_key] += value + else: + combined_perf[new_key] = 0 + + optimal_key = None + optimal_perf = 0.0 + for key, value in combined_perf.items(): + if value > optimal_perf: + optimal_perf = value + optimal_key = key + + aio_param = {"aio": convert_to_param(optimal_key)} + + read_perf_keys = {key[1:]: key for key in read_results.keys()} + write_perf_keys = {key[1:]: key for key in write_results.keys()} + optimal_config_read = read_results.get(read_perf_keys[optimal_key], None) + optimal_config_write = write_results.get(write_perf_keys[optimal_key], None) + + print(f'Best performance (GB/sec): read = {optimal_config_read:5.2f}, write = {optimal_config_write:5.2f}') + print(json.dumps(aio_param, indent=3)) + + +def generate_main(log_dir): + read_log_dir = os.path.join(log_dir, READ_LOG_DIR) + write_log_dir = os.path.join(log_dir, WRITE_LOG_DIR) + generate_aio_param(read_log_dir, write_log_dir) + + +def main(): + args = parse_arguments() + if not validate_args(args): + quit() + print(f'Generate DeepNVMe configuration from {args.log_dir} logs') + generate_main(args.log_dir) + + +if __name__ == "__main__": + generate_main() diff --git a/deepspeed/nvme/perf_run_sweep.py b/deepspeed/nvme/perf_run_sweep.py new file mode 100644 index 000000000000..0155a4d46cae --- /dev/null +++ b/deepspeed/nvme/perf_run_sweep.py @@ -0,0 +1,320 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team +""" +Functionality of swapping optimizer tensors to/from (NVMe) storage devices. +""" +import os +import sys +import argparse +import json +import itertools +import shutil + +from deepspeed.ops.op_builder import AsyncIOBuilder +from deepspeed.ops.op_builder import GDSBuilder +from .ds_aio_job import Job, run_job +from .perf_sweep_utils import READ_OP_DESC, WRITE_OP_DESC, BENCH_LOG_DIR, \ + READ_LOG_DIR, WRITE_LOG_DIR + +OTHER_OPTIONS = '--handle' +PERF_SCRIPT = 'ds_io' +DEFAULT_SWEEP_CONFIG = { + "block_size": ["1M", "8M"], + "queue_depth": [32, 128], + "sequential_requests": [False], + "single_submit": [False], + "io_parallel": [1, 8], +} + + +class SweepConfig(object): + + def __init__(self, args): + self.folder_to_device_mapping = get_ftd_map(args.nvme_dir) + self.search_space = get_sweep_config_dict(args.sweep_config) + self.search_space.update(self.folder_to_device_mapping) + self.read = not args.no_read + self.write = not args.no_write + self.flush_cache = args.flush_page_cache + self.log_dir = args.log_dir + self.verbose = args.verbose + self.other_options = f'{OTHER_OPTIONS} --loops {args.loops} --io_size {args.io_size}' + if args.gpu: + self.other_options += ' --gpu' + if args.gds: + self.other_options += ' --use_gds' + + +def validate_arguments(args): + if not async_io_setup(): + error_msg = """ + Failing because environment is not properly configured for deepspeed async i/o module. + Possible fix: apt install libaio-dev. + """ + print(error_msg) + quit() + + if args.gds and not gds_io_setup(): + error_msg = """ + Failing because environment is not properly configured for deepspeed GDS I/O operator. + """ + print(error_msg) + quit() + + +def parse_sweep_arguments(): + parser = argparse.ArgumentParser() + + parser.add_argument('--nvme_dir', + nargs='+', + required=True, + help='Directory in which to perform I/O tests. A writeable directory on a NVMe device.') + + parser.add_argument('--sweep_config', type=str, default=None, help='Performance sweep configuration json file.') + + parser.add_argument('--no_read', action='store_true', help='Disable read performance measurements.') + + parser.add_argument('--no_write', action='store_true', help='Disable write performance measurements.') + + parser.add_argument('--io_size', + type=str, + default="400M", + help='Number of I/O bytes to read/write for performance measurements.') + + parser.add_argument('--gpu', action='store_true', help='Test tensor transfers between GPU device and NVME device.') + + parser.add_argument('--gds', action='store_true', help='Run the sweep over NVIDIA GPUDirectStorage operator') + + parser.add_argument( + '--flush_page_cache', + action='store_true', + help= + 'Page cache will not be flushed and reported read speeds may be higher than actual ***Requires sudo access***.' + ) + + parser.add_argument( + '--log_dir', + type=str, + default=BENCH_LOG_DIR, + help=f'Output directory for performance log files. Default is {os.path.join(".", BENCH_LOG_DIR)}') + + parser.add_argument('--loops', type=int, default=1, help='Count of operation repetitions') + + parser.add_argument('--verbose', action='store_true', help='Print debugging information.') + + args = parser.parse_args() + if args.verbose: + print(f'args = {args}') + validate_arguments(args) + + return args + + +def dump_cmd_lines(cmd_lines): + print(f'cmd line count = {len(cmd_lines)}') + for i, cmd in enumerate(cmd_lines): + print(f'{i}: {cmd}') + + +def get_ftd_map(nvme_dir_list): + ftd_list = [f'{dir}:{dev}' for dev, dir in enumerate(nvme_dir_list)] + ftd_arg = [' '.join(ftd for ftd in ftd_list)] + return {'folder_to_device_mapping': ftd_arg} + + +def get_sweep_config_dict(sweep_config_json): + if sweep_config_json is None: + return DEFAULT_SWEEP_CONFIG + + with open(sweep_config_json) as fp: + sweep_config = json.load(fp) + return sweep_config + + +def get_sweep_cmd_lines(sweep_config_dict): + + def flatten_options(key, value_list): + flat_list = [] + for v in value_list: + if not type(v) is bool: + flat_list.append(f'--{key} {v}') + elif v: + flat_list.append(f'--{key}') + else: + flat_list.append(' ') + + return flat_list + + flat_list = [flatten_options(key, value) for key, value in sweep_config_dict.items()] + cmd_list = list(itertools.product(*flat_list)) + cmd_list = [list(cmd) for cmd in cmd_list] + #dump_cmd_lines(cmd_list) + return cmd_list + + +def launch_sweep(sweep_jobs, sync_job, flush_cache_job, verbose): + for perf_job in sweep_jobs: + if flush_cache_job is not None: + run_job(sync_job, verbose) + run_job(flush_cache_job, verbose) + + run_job(perf_job, verbose) + + run_job(sync_job, verbose) + + +def create_cmd_tags(cmd_line): + tags = {} + for param_value in cmd_line: + fields = param_value.split() + if len(fields) == 1: + tags[fields[0]] = None + elif len(fields) == 2: + if fields[0] == '--folder_to_device_mapping': + tags[fields[0]] = len(fields[1:]) + else: + tags[fields[0]] = fields[1] + elif len(fields) > 2: + tags[fields[0]] = len(fields[1:]) + return tags + + +def get_log_file(io_op_desc, cmd_line): + QUEUE_DEPTH = "--queue_depth" + BLOCK_SIZE = "--block_size" + SINGLE_SUBMIT = "--single_submit" + SEQUENTIAL_REQUESTS = "--sequential_requests" + FTD_MAP = "--folder_to_device_mapping" + IO_PARALLEL = "--io_parallel" + + tag_map = { + QUEUE_DEPTH: "d", + BLOCK_SIZE: "bs", + SINGLE_SUBMIT: "single", + SEQUENTIAL_REQUESTS: "sequential", + FTD_MAP: "ftd", + IO_PARALLEL: "p" + } + + tag_default = { + QUEUE_DEPTH: 1, + BLOCK_SIZE: "1M", + SINGLE_SUBMIT: "block", + SEQUENTIAL_REQUESTS: "overlap", + FTD_MAP: 1, + IO_PARALLEL: 1 + } + + def get_default_value(tag): + value = tag_default[tag] + if tag in [SINGLE_SUBMIT, SEQUENTIAL_REQUESTS]: + return value + return f'{tag_map[tag]}{value}' + + def get_config_value(tag, value): + tag_key = tag_map[tag] + if value is None: + return tag_key + return f'{tag_key}{value}' + + tag_list = [SINGLE_SUBMIT, SEQUENTIAL_REQUESTS, FTD_MAP, QUEUE_DEPTH, BLOCK_SIZE, IO_PARALLEL] + log_tags = [io_op_desc] + cmd_tags = create_cmd_tags(cmd_line) + for tag in tag_list: + if tag in cmd_tags: + log_tags.append(get_config_value(tag, cmd_tags[tag])) + else: + log_tags.append(get_default_value(tag)) + + log_file = '_'.join(log_tags) + log_file += '.txt' + return log_file + + +def create_perf_jobs(io_op_desc, log_dir, cmd_lines): + py_cmd = [os.path.join(script_path(), PERF_SCRIPT)] + + perf_jobs = [] + for cmd in cmd_lines: + log_file = os.path.join(log_dir, get_log_file(io_op_desc, cmd)) + job = Job(cmd_line=py_cmd + cmd, output_file=log_file) + perf_jobs.append(job) + + return perf_jobs + + +def script_path(): + return os.path.dirname(os.path.realpath(sys.argv[0])) + + +def async_io_setup(): + return AsyncIOBuilder().is_compatible() + + +def gds_io_setup(): + return GDSBuilder().is_compatible() + + +def remove_folder(folder): + assert os.path.isdir(folder), f"Error: cannot remove {folder} - folder not found" + shutil.rmtree(folder) + + +def run_read_sweep(sweep_config, flush_cache_job, sync_job, cmd_lines): + read_cmd_lines = [[f'--read {sweep_config.other_options}'] + cmd for cmd in cmd_lines] + # dump_cmd_lines(cmd_lines) + + log_folder = os.path.join(sweep_config.log_dir, f'{READ_LOG_DIR}') + os.makedirs(log_folder, exist_ok=True) + + perf_jobs = create_perf_jobs(io_op_desc=READ_OP_DESC, log_dir=log_folder, cmd_lines=read_cmd_lines) + + launch_sweep(sweep_jobs=perf_jobs, + sync_job=sync_job, + flush_cache_job=flush_cache_job, + verbose=sweep_config.verbose) + + +def run_write_sweep(sweep_config, flush_cache_job, sync_job, cmd_lines): + write_cmd_lines = [[f'{sweep_config.other_options}'] + cmd for cmd in cmd_lines] + # dump_cmd_lines(write_cmd_lines) + + log_folder = os.path.join(sweep_config.log_dir, f'{WRITE_LOG_DIR}') + os.makedirs(log_folder, exist_ok=True) + + perf_jobs = create_perf_jobs(io_op_desc=WRITE_OP_DESC, log_dir=log_folder, cmd_lines=write_cmd_lines) + + launch_sweep(sweep_jobs=perf_jobs, + sync_job=sync_job, + flush_cache_job=flush_cache_job, + verbose=sweep_config.verbose) + + +def sweep_main(args): + sweep_config = SweepConfig(args) + cmd_lines = get_sweep_cmd_lines(sweep_config.search_space) + + if sweep_config.flush_cache: + flush_cache_job = Job(cmd_line=['sudo', 'bash -c', "'echo 1 > /proc/sys/vm/drop_caches'"]) + else: + flush_cache_job = None + + sync_job = Job(cmd_line=['sync']) + + if sweep_config.read: + run_read_sweep(sweep_config, flush_cache_job, sync_job, cmd_lines) + + if sweep_config.write: + run_write_sweep(sweep_config, flush_cache_job, sync_job, cmd_lines) + + +def main(): + args = parse_sweep_arguments() + print(f"Running DeepNVMe performance sweep on {args.nvme_dir}") + sweep_main(args) + + +if __name__ == "__main__": + sweep_main() diff --git a/deepspeed/nvme/perf_sweep_utils.py b/deepspeed/nvme/perf_sweep_utils.py new file mode 100644 index 000000000000..e6832c1baa49 --- /dev/null +++ b/deepspeed/nvme/perf_sweep_utils.py @@ -0,0 +1,13 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +SCRIPT_PREFIX = '_aio_bench' +WRITE_OP_DESC = 'write' +READ_OP_DESC = 'read' +READ_IO_DIR = f'{SCRIPT_PREFIX}_{READ_OP_DESC}_io' +WRITE_IO_DIR = f'{SCRIPT_PREFIX}_{WRITE_OP_DESC}_io' +BENCH_LOG_DIR = f'{SCRIPT_PREFIX}_logs' +READ_LOG_DIR = f'{SCRIPT_PREFIX}_{READ_OP_DESC}_logs' +WRITE_LOG_DIR = f'{SCRIPT_PREFIX}_{WRITE_OP_DESC}_logs' diff --git a/deepspeed/nvme/test_ds_aio.py b/deepspeed/nvme/test_ds_aio.py new file mode 100755 index 000000000000..a17350414739 --- /dev/null +++ b/deepspeed/nvme/test_ds_aio.py @@ -0,0 +1,25 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team +""" +Functionality of swapping optimizer tensors to/from (NVMe) storage devices. +""" + +import multiprocessing as mp +from .ds_aio_basic import aio_basic_multiprocessing +from .ds_aio_handle import aio_handle_multiprocessing +from .ds_aio_args import get_validated_args + + +def ds_io_main(): + print(f'Testing deepspeed_aio python frontend') + + args = get_validated_args() + mp.set_start_method('spawn') + multiprocess_function = aio_handle_multiprocessing if args.handle else aio_basic_multiprocessing + multiprocess_function(args, args.read) + + +if __name__ == "__main__": + ds_io_main() diff --git a/deepspeed/nvme/test_ds_aio_utils.py b/deepspeed/nvme/test_ds_aio_utils.py new file mode 100755 index 000000000000..cf167f647460 --- /dev/null +++ b/deepspeed/nvme/test_ds_aio_utils.py @@ -0,0 +1,81 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team +""" +Functionality of swapping optimizer tensors to/from (NVMe) storage devices. +""" + +import os +from .ds_aio_job import Job, run_job + +BYTES_PER_GB = 1024**3 +BYTES_PER_MB = 1024**2 +BYTES_PER_KB = 1024 +LOG_TIDS = [0] + + +def task_log(tid, msg, force=False): + if force or tid in LOG_TIDS: + print(f'tid {tid}: {msg}') + + +def task_barrier(barrier, num_parties): + assert barrier.parties == num_parties + barrier.wait() + assert barrier.broken == False + + +def report_results(args, read_op, pool_results): + #print(f'pool_results = {pool_results}') + io_string = 'Read' if read_op else 'Write' + if None in pool_results: + print(f'Failure in one of {args.threads} {io_string} processes') + return + + total_bytes = sum([num_bytes for _, _, num_bytes in pool_results]) + + task_latency_sec = max([sec for _, sec, _ in pool_results]) + task_speed_GB = 0 if task_latency_sec == 0 else total_bytes / task_latency_sec / BYTES_PER_GB + print(f'Task {io_string} Latency = {task_latency_sec} sec') + print(f'Task {io_string} Speed = {task_speed_GB} GB/sec') + + e2e_latency_sec = max([sec for sec, _, _ in pool_results]) + e2e_speed_GB = 0 if e2e_latency_sec == 0 else total_bytes / e2e_latency_sec / BYTES_PER_GB + print(f'E2E {io_string} Latency = {e2e_latency_sec} sec') + print(f'E2E {io_string} Speed = {e2e_speed_GB} GB/sec') + + +def get_block_size_and_count(io_bytes): + if io_bytes > BYTES_PER_MB and io_bytes % BYTES_PER_MB == 0: + block_size = BYTES_PER_MB + block_size_string = '1M' + else: + assert io_bytes % BYTES_PER_KB == 0 + block_size = BYTES_PER_KB + block_size_string = '1K' + block_count = io_bytes / block_size + + return block_size_string, int(block_count) + + +def refine_integer_value(value): + unit_dict = {'K': 1024, 'M': 1024**2, 'G': 1024**3} + + if value[-1] in list(unit_dict.keys()): + int_value = int(value[:-1]) * unit_dict[value[-1]] + return int_value + return int(value) + + +def create_filename(folder, read_op, size, tid): + io_string = "read" if read_op else "write" + return os.path.join(folder, f'_aio_{io_string}_{size}.pt.{tid}') + + +def create_file(filename, num_bytes): + block_size, block_count = get_block_size_and_count(num_bytes) + dd_job = Job(cmd_line=[f'dd if=/dev/urandom of={filename} bs={block_size} count={block_count}']) + print(f'[Start] Create {filename} of {num_bytes} bytes by running {dd_job.cmd()} ....') + run_job(dd_job) + print(f'[Done] Create read file of {num_bytes} bytes by running {dd_job.cmd()} ....') diff --git a/deepspeed/nvme/validate_async_io.py b/deepspeed/nvme/validate_async_io.py new file mode 100644 index 000000000000..10fb638347bc --- /dev/null +++ b/deepspeed/nvme/validate_async_io.py @@ -0,0 +1,10 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team +""" +Functionality of swapping optimizer tensors to/from (NVMe) storage devices. +""" +from deepspeed.ops.op_builder import AsyncIOBuilder +assert AsyncIOBuilder().is_compatible() +assert AsyncIOBuilder().load() diff --git a/deepspeed/ops/__init__.py b/deepspeed/ops/__init__.py index ba1c9c1fd9f0..15179984173c 100755 --- a/deepspeed/ops/__init__.py +++ b/deepspeed/ops/__init__.py @@ -7,11 +7,9 @@ from . import adagrad from . import lamb from . import lion -#from ..git_version_info_installed import installed_ops as __installed_ops__ -#if __installed_ops__['sparse_attn']: from . import sparse_attention from . import transformer - +from . import fp_quantizer from .transformer import DeepSpeedTransformerLayer, DeepSpeedTransformerConfig from ..git_version_info import compatible_ops as __compatible_ops__ diff --git a/deepspeed/ops/adagrad/cpu_adagrad.py b/deepspeed/ops/adagrad/cpu_adagrad.py index c356a52777f2..dbde6d95f652 100755 --- a/deepspeed/ops/adagrad/cpu_adagrad.py +++ b/deepspeed/ops/adagrad/cpu_adagrad.py @@ -34,7 +34,7 @@ def __setstate__(self, state): group.setdefault('amsgrad', False) @torch.no_grad() - def step(self, closure=None, fp16_param_groups=None): + def step(self, closure=None): """Update the model parameters. .. note:: @@ -46,8 +46,6 @@ def step(self, closure=None, fp16_param_groups=None): Args: closure (callable, optional): closure to compute the loss. Defaults to ``None``. - fp16_param_groups: FP16 GPU parameters to update. Performing the - copy here reduces communication time. Defaults to ``None``. Returns: loss: if ``closure`` is provided. Otherwise ``None``. @@ -94,16 +92,7 @@ def step(self, closure=None, fp16_param_groups=None): sparse_exp_avg_sq.values()) p[sparse_param.indices()] = sparse_param.values() state['exp_avg_sq'][sparse_exp_avg_sq.indices()] = sparse_exp_avg_sq.values() - if fp16_param_groups is not None: - fp16_param_groups[group_id][param_id][sparse_param.indices()] = sparse_param.values() else: - if fp16_param_groups is not None: - self.ds_opt_adagrad.adagrad_update_copy(self.opt_id, state['step'], group['lr'], group['eps'], - group['weight_decay'], p.data, p.grad.data, - state['exp_avg_sq'], - fp16_param_groups[group_id][param_id].data) - else: - self.ds_opt_adagrad.adagrad_update(self.opt_id, state['step'], group['lr'], group['eps'], - group['weight_decay'], p.data, p.grad.data, - state['exp_avg_sq']) + self.ds_opt_adagrad.adagrad_update(self.opt_id, state['step'], group['lr'], group['eps'], + group['weight_decay'], p.data, p.grad.data, state['exp_avg_sq']) return loss diff --git a/deepspeed/ops/adam/cpu_adam.py b/deepspeed/ops/adam/cpu_adam.py index 1ffaf873f4e9..e0a72a494257 100755 --- a/deepspeed/ops/adam/cpu_adam.py +++ b/deepspeed/ops/adam/cpu_adam.py @@ -63,7 +63,7 @@ def __init__(self, algorithm from the paper `On the Convergence of Adam and Beyond`_ (default: False) NOT SUPPORTED in DeepSpeed CPUAdam! adamw_mode: select between Adam and AdamW implementations (default: AdamW) - full_precision_optimizer_states: creates momentum and variance in full precision regardless of + fp32_optimizer_states: creates momentum and variance in full precision regardless of the precision of the parameters (default: True) """ @@ -107,7 +107,7 @@ def __setstate__(self, state): group.setdefault('amsgrad', False) @torch.no_grad() - def step(self, closure=None, fp16_param_groups=None): + def step(self, closure=None): """Update the model parameters. .. note:: @@ -119,8 +119,6 @@ def step(self, closure=None, fp16_param_groups=None): Args: closure (callable, optional): closure to compute the loss. Defaults to ``None``. - fp16_param_groups: FP16 GPU parameters to update. Performing the - copy here reduces communication time. Defaults to ``None``. Returns: loss: if ``closure`` is provided. Otherwise ``None``. @@ -134,13 +132,6 @@ def step(self, closure=None, fp16_param_groups=None): # intended device for step device = torch.device('cpu') - # converting the fp16 params to a group of parameter - if type(fp16_param_groups) is list: - if type(fp16_param_groups[0]) is not list: - fp16_param_groups = [fp16_param_groups] - elif fp16_param_groups is not None: - fp16_param_groups = [[fp16_param_groups]] - for group_id, group in enumerate(self.param_groups): for param_id, p in enumerate(group['params']): @@ -169,13 +160,7 @@ def step(self, closure=None, fp16_param_groups=None): state['step'] += 1 beta1, beta2 = group['betas'] - if fp16_param_groups is not None: - self.ds_opt_adam.adam_update_copy(self.opt_id, state['step'], group['lr'], beta1, beta2, - group['eps'], group['weight_decay'], group['bias_correction'], - p.data, p.grad.data, state['exp_avg'], state['exp_avg_sq'], - fp16_param_groups[group_id][param_id].data) - else: - self.ds_opt_adam.adam_update(self.opt_id, state['step'], group['lr'], beta1, beta2, group['eps'], - group['weight_decay'], group['bias_correction'], p.data, p.grad.data, - state['exp_avg'], state['exp_avg_sq']) + self.ds_opt_adam.adam_update(self.opt_id, state['step'], group['lr'], beta1, beta2, group['eps'], + group['weight_decay'], group['bias_correction'], p.data, p.grad.data, + state['exp_avg'], state['exp_avg_sq']) return loss diff --git a/deepspeed/ops/fp_quantizer/__init__.py b/deepspeed/ops/fp_quantizer/__init__.py new file mode 100644 index 000000000000..f9cf23373c26 --- /dev/null +++ b/deepspeed/ops/fp_quantizer/__init__.py @@ -0,0 +1,7 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from .quantize import FP_Quantize, Quantizer +from .fp8_gemm import matmul_fp8 diff --git a/deepspeed/ops/fp_quantizer/fp8_gemm.py b/deepspeed/ops/fp_quantizer/fp8_gemm.py new file mode 100644 index 000000000000..db4fa5ae2c92 --- /dev/null +++ b/deepspeed/ops/fp_quantizer/fp8_gemm.py @@ -0,0 +1,28 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +######## Fused MoE kernel ######### +# These kernels are implemented for +# fusing GeMM with dequantization of +# fp8 weight data when using bit-16 +# activation. +################################### + +import torch + + +def matmul_fp8(inp, weight, scale, quantization_group_size, quantizer): + from deepspeed import get_accelerator + + if not get_accelerator().is_triton_supported(): + return matmul_fp8_fallback(inp, weight, scale, quantization_group_size, quantizer) + else: + # Import dynamically to prevent failures on systems without triton. + from .fp8_gemm_triton import matmul_fp8_triton + return matmul_fp8_triton(inp, weight, scale, quantization_group_size) + + +def matmul_fp8_fallback(inp, weight, scale, quantization_group_size, quantizer): + return torch.matmul(inp, quantizer.dequantize(weight, scale=scale)) diff --git a/deepspeed/ops/fp_quantizer/fp8_gemm_triton.py b/deepspeed/ops/fp_quantizer/fp8_gemm_triton.py new file mode 100644 index 000000000000..746e217d4194 --- /dev/null +++ b/deepspeed/ops/fp_quantizer/fp8_gemm_triton.py @@ -0,0 +1,171 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +######## Fused MoE kernel ######### +# These kernels are implemented for +# fusing GeMM with dequantization of +# fp8 weight data when using bit-16 +# activation. +################################### + +import torch +import triton +import triton.language as tl + + +@triton.jit +def matmul_kernel_fp8_bf16(inp_ptr, weight_ptr, out_ptr, scale_ptr, M, N, K, stride_am, stride_ak, stride_bk, + stride_bn, stride_cm, stride_cn, BLOCK_SIZE_M: tl.constexpr, BLOCK_SIZE_N: tl.constexpr, + BLOCK_SIZE_K: tl.constexpr, GROUP_SIZE_M: tl.constexpr, + quantization_group_size: tl.constexpr): + pid = tl.program_id(axis=0) + num_pid_m = tl.cdiv(M, BLOCK_SIZE_M) + num_pid_n = tl.cdiv(N, BLOCK_SIZE_N) + num_pid_in_group = GROUP_SIZE_M * num_pid_n + group_id = pid // num_pid_in_group + first_pid_m = group_id * GROUP_SIZE_M + group_size_m = min(num_pid_m - first_pid_m, GROUP_SIZE_M) + pid_m = first_pid_m + ((pid % num_pid_in_group) % group_size_m) + pid_n = (pid % num_pid_in_group) // group_size_m + + offs_am = (pid_m * BLOCK_SIZE_M + tl.arange(0, BLOCK_SIZE_M)) % M + offs_bn = (pid_n * BLOCK_SIZE_N + tl.arange(0, BLOCK_SIZE_N)) % N + offs_k = tl.arange(0, BLOCK_SIZE_K) + + inp_data = inp_ptr + (offs_am[:, None] * stride_am + offs_k[None, :] * stride_ak) + weight_data = weight_ptr + (offs_k[:, None] * stride_bk + offs_bn[None, :] * stride_bn) + weight_ptrs_offset = offs_k[:, None] * (stride_bk // quantization_group_size) + ( + (pid_n * BLOCK_SIZE_N) // quantization_group_size) + + weight = tl.load(weight_data, mask=offs_k[:, None] < K, other=0.0) + scale = tl.load(scale_ptr + weight_ptrs_offset) + + accumulator = tl.zeros((BLOCK_SIZE_M, BLOCK_SIZE_N), dtype=tl.float32) + for k in range(0, tl.cdiv(K, BLOCK_SIZE_K)): + inp = tl.load(inp_data, mask=offs_k[None, :] < K - k * BLOCK_SIZE_K, other=0.0) + # Dequantize weight (fp8 -> bf16) + w = (((weight & 0x80) << 8) | ((weight & 0x7f) << 4)).to(tl.uint16) + w = (w + 0x3C00).to(tl.uint16) + w = (w.to(tl.bfloat16, bitcast=True) * scale).to(tl.bfloat16) + + inp_data += BLOCK_SIZE_K * stride_ak + weight_data += BLOCK_SIZE_K * stride_bk + weight_mask = offs_k[:, None] < K - (k + 1) * BLOCK_SIZE_K + weight = tl.load(weight_data, mask=weight_mask, other=0.0) + scale = tl.load(scale_ptr + (weight_ptrs_offset + + (((k + 1) * BLOCK_SIZE_K * stride_bk) // quantization_group_size)), + mask=weight_mask, + other=0.0) + + accumulator += tl.dot(inp, w) + + out = accumulator.to(tl.bfloat16) + + offs_cm = pid_m * BLOCK_SIZE_M + tl.arange(0, BLOCK_SIZE_M) + offs_cn = pid_n * BLOCK_SIZE_N + tl.arange(0, BLOCK_SIZE_N) + out_data = out_ptr + stride_cm * offs_cm[:, None] + stride_cn * offs_cn[None, :] + tl.store(out_data, out, mask=(offs_cm[:, None] < M) & (offs_cn[None, :] < N)) + + +@triton.jit +def matmul_kernel_fp8_fp16(inp_ptr, weight_ptr, out_ptr, scale_ptr, M, N, K, stride_am, stride_ak, stride_bk, + stride_bn, stride_cm, stride_cn, BLOCK_SIZE_M: tl.constexpr, BLOCK_SIZE_N: tl.constexpr, + BLOCK_SIZE_K: tl.constexpr, GROUP_SIZE_M: tl.constexpr, + quantization_group_size: tl.constexpr): + pid = tl.program_id(axis=0) + num_pid_m = tl.cdiv(M, BLOCK_SIZE_M) + num_pid_n = tl.cdiv(N, BLOCK_SIZE_N) + num_pid_in_group = GROUP_SIZE_M * num_pid_n + group_id = pid // num_pid_in_group + first_pid_m = group_id * GROUP_SIZE_M + group_size_m = min(num_pid_m - first_pid_m, GROUP_SIZE_M) + pid_m = first_pid_m + ((pid % num_pid_in_group) % group_size_m) + pid_n = (pid % num_pid_in_group) // group_size_m + + offs_am = (pid_m * BLOCK_SIZE_M + tl.arange(0, BLOCK_SIZE_M)) % M + offs_bn = (pid_n * BLOCK_SIZE_N + tl.arange(0, BLOCK_SIZE_N)) % N + offs_k = tl.arange(0, BLOCK_SIZE_K) + + inp_data = inp_ptr + (offs_am[:, None] * stride_am + offs_k[None, :] * stride_ak) + weight_data = weight_ptr + (offs_k[:, None] * stride_bk + offs_bn[None, :] * stride_bn) + weight_ptrs_offset = offs_k[:, None] * (stride_bk // quantization_group_size) + ( + (pid_n * BLOCK_SIZE_N) // quantization_group_size) + + weight = tl.load(weight_data, mask=offs_k[:, None] < K, other=0.0) + scale = tl.load(scale_ptr + weight_ptrs_offset) + + accumulator = tl.zeros((BLOCK_SIZE_M, BLOCK_SIZE_N), dtype=tl.float32) + for k in range(0, tl.cdiv(K, BLOCK_SIZE_K)): + inp = tl.load(inp_data, mask=offs_k[None, :] < K - k * BLOCK_SIZE_K, other=0.0) + # Dequantize weight (fp8 -> fp16) + w = (((weight & 0x80) << 8) | ((weight & 0x7f) << 7)).to(tl.uint16) + w = (w + 0x2000).to(tl.uint16) + w = (w.to(tl.float16, bitcast=True) * scale).to(tl.float16) + + inp_data += BLOCK_SIZE_K * stride_ak + weight_data += BLOCK_SIZE_K * stride_bk + + weight = tl.load(weight_data, mask=offs_k[:, None] < K - (k + 1) * BLOCK_SIZE_K, other=0.0) + scale = tl.load(scale_ptr + (weight_ptrs_offset + + (((k + 1) * BLOCK_SIZE_K * stride_bk) // quantization_group_size))) + + accumulator += tl.dot(inp, w) + + out = accumulator.to(tl.float16) + + offs_cm = pid_m * BLOCK_SIZE_M + tl.arange(0, BLOCK_SIZE_M) + offs_cn = pid_n * BLOCK_SIZE_N + tl.arange(0, BLOCK_SIZE_N) + out_data = out_ptr + stride_cm * offs_cm[:, None] + stride_cn * offs_cn[None, :] + tl.store(out_data, out, mask=(offs_cm[:, None] < M) & (offs_cn[None, :] < N)) + + +def matmul_fp8_triton(inp, weight, scale, quantization_group_size): + + assert inp.shape[1] == weight.shape[0], \ + f"Incompatible dimensions (input: {inp.shape}, weight: {weight.shape})" + + M, K = inp.shape + K, N = weight.shape + + out = torch.empty((M, N), device=inp.device, dtype=inp.dtype) + + # GEMM tuning parameters! + # TODO: Add a more configurable tuning for selecting the best GeMM + BLOCK_SIZE_M = 16 if M <= 16 else 32 if M <= 32 else 64 if M <= 64 else 128 + BLOCK_SIZE_N = 64 + BLOCK_SIZE_K = max(64, quantization_group_size) + GROUP_SIZE_M = 8 + num_stages = 4 + num_warps = 4 + if M >= 256: + BLOCK_SIZE_M = 256 + BLOCK_SIZE_N = 128 + BLOCK_SIZE_K = max(128, quantization_group_size) + num_stages = 3 + num_warps = 8 + + grid = lambda META: (triton.cdiv(M, META['BLOCK_SIZE_M']) * triton.cdiv(N, META['BLOCK_SIZE_N']), ) + kernel = matmul_kernel_fp8_bf16 if inp.dtype == torch.bfloat16 else matmul_kernel_fp8_fp16 + kernel[grid](inp, + weight, + out, + scale, + M, + N, + K, + inp.stride(0), + inp.stride(1), + weight.stride(0), + weight.stride(1), + out.stride(0), + out.stride(1), + quantization_group_size=quantization_group_size, + BLOCK_SIZE_M=BLOCK_SIZE_M, + BLOCK_SIZE_N=BLOCK_SIZE_N, + BLOCK_SIZE_K=BLOCK_SIZE_K, + GROUP_SIZE_M=GROUP_SIZE_M, + num_stages=num_stages, + num_warps=num_warps) + return out diff --git a/deepspeed/ops/fp_quantizer/quantize.py b/deepspeed/ops/fp_quantizer/quantize.py new file mode 100644 index 000000000000..69c21eaf693b --- /dev/null +++ b/deepspeed/ops/fp_quantizer/quantize.py @@ -0,0 +1,184 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import torch +import abc +from abc import ABC + +import gc +from deepspeed.ops.op_builder import FPQuantizerBuilder +from deepspeed.accelerator import get_accelerator + +fp_quant_module = None + + +class Quantizer(ABC): + """ + Abstract Quantizer class that implements quantize/dequantize methods. + + Arguments: + group_size (int, optional): number of values or elements that are grouped + together for the quantization process. + """ + + def __init__(self, group_size=512) -> None: + self.group_size = group_size + + @abc.abstractmethod + def quantize(self, + input, + q_bits=8, + q_mantisa_bits=3, + stochastic_mode=False, + return_meta_tensor=False) -> torch.Tensor: + ... + + @abc.abstractmethod + def dequantize(self, input_q, fp_out=None, q_bits=8, q_mantisa_bits=3, scale=None) -> torch.Tensor: + ... + + +class FP_Quantize(Quantizer): + + def __init__(self, quantization_config) -> None: + global fp_quant_module + super().__init__(group_size=quantization_config.group_size) + if fp_quant_module is None: + fp_quant_module = FPQuantizerBuilder().load() + self.cuda_impl = getattr(fp_quant_module, "CUDA_IMPL", True) + self.q_config = quantization_config + + self.orig_dtype = None + self.num_groups = None + self.input_q = None + self.scale = None + + def quantize(self, + input, + q_bits=8, + q_mantisa_bits=3, + stochastic_mode=False, + return_meta_tensor=False) -> torch.Tensor: + assert input.dtype == torch.bfloat16, "only support bf16 for now" + if return_meta_tensor: + assert q_bits == 8, "meta tensor is only supported with q_bit=8" + + self.orig_dtype = input.dtype + self.orig_shape = input.shape + + if q_bits == 8: + pass + elif q_bits == 12: + q_mantisa_bits = 4 + elif q_bits == 6: + q_mantisa_bits = 2 + elif q_bits == 4: + q_mantisa_bits = 1 + else: + assert (0), \ + f"Missing {q_bits}-quantization, please add the template arguments for the kernel to support this precision!" + + # Adding (group_size - 1) is for padding + self.num_groups = (input.numel() + self.q_config.group_size - 1) // self.q_config.group_size + # group_size should be the minimal number between the defined group size and number of elements in tensor. + group_size = int(min(self.q_config.group_size, input.numel()) * q_bits) // 8 + # CUDA quantization kernel saves the scale as (fp32) inside the quantized tensor for each group + if self.cuda_impl: + group_size += 4 + # CUDA quantization kernel allocates tensors as uint8, but handles them as fp8 inside the kernel. + self.input_q = torch.ones(self.num_groups, group_size, dtype=self.q_config.q_dtype, device=input.device) + # CUDA quantization kernel attaches scales to quantized result, in python implementation it can't be done + # because they are of different types. + self.scale = torch.ones(self.num_groups, 1, device=input.device) + out = fp_quant_module.quantize(self.input_q, input, self.scale, group_size, stochastic_mode, q_bits, + q_mantisa_bits) + if return_meta_tensor: + if self.cuda_impl: + data, self.scale = out.split(group_size, dim=-1) + data = data.contiguous().reshape(input.shape) + else: + data = out.contiguous().reshape(input.shape) + self.scale = self.scale.contiguous() + del self.input_q + del out + gc.collect() + get_accelerator().empty_cache() + return data, self.scale + + return out + + def to(self, *args, **kwargs): + # Intermediate tensors may need to be moved to different devices + if hasattr(self, 'input_q') and self.input_q is not None: + self.input_q = self.input_q.to(*args, **kwargs) + if hasattr(self, 'scale') and self.scale is not None: + self.scale = self.scale.to(*args, **kwargs) + + def get_scales(self): + return fp_quant_module.get_scales(self.scale, self.num_groups) + + def dequantize(self, input_q, fp_out=None, q_bits=8, q_mantisa_bits=3, scale=None) -> torch.Tensor: + assert (self.orig_dtype is not None), \ + "[De-quantization Error]: you need to call quantize before dequantizing!" + fp_out = torch.empty(self.orig_shape, dtype=self.orig_dtype, + device=input_q.device) if fp_out is None else fp_out + if q_bits == 8: + pass + elif q_bits == 12: + q_mantisa_bits = 4 + elif q_bits == 6: + q_mantisa_bits = 2 + elif q_bits == 4: + q_mantisa_bits = 1 + else: + assert (0), \ + f"Missing {q_bits}-dequantization, please add the template arguments for the kernel to support this precision!" + + if scale is not None and self.cuda_impl: + assert input_q.numel() == fp_out.numel(), \ + f'[De-quantization Error]: quantized data should have the same size as original tensor when scale is not None!' + input_q = torch.cat([input_q.reshape(-1, self.q_config.group_size), scale], dim=-1).contiguous() + elif scale is not None and not self.cuda_impl: + group_size = int(min(self.q_config.group_size, input_q.numel()) * q_bits) // 8 + input_q = input_q.reshape(-1, group_size) + + fp_quant_module.dequantize(fp_out, input_q, self.scale, self.q_config.group_size, q_mantisa_bits, + q_bits - q_mantisa_bits - 1) + return fp_out + + def selective_dequantize(self, + input_q, + indexes, + fp_out=None, + q_bits=8, + q_mantisa_bits=3, + scale=None) -> torch.Tensor: + assert (not hasattr(self, 'orig_shape') or len(self.orig_shape) == 3), \ + "Selective-Dequantization works on 3d tensor only! Please reshape the tensor before calling dequantize function." + assert (self.orig_dtype is not None), \ + "[De-quantization Error]: you need to call quantize before dequantizing!" + fp_out = torch.empty( + (indexes.shape[0], + *self.orig_shape[1:]), dtype=self.orig_dtype, device=input_q.device) if fp_out is None else fp_out + if q_bits == 8: + pass + elif q_bits == 12: + q_mantisa_bits = 4 + elif q_bits == 6: + q_mantisa_bits = 2 + elif q_bits == 4: + q_mantisa_bits = 1 + else: + assert (0), \ + f"Missing {q_bits}-dequantization, please add the template arguments for the kernel to support this precision!" + + if scale is not None and self.cuda_impl: + assert input_q.numel() == fp_out.numel(), \ + f'[De-quantization Error]: quantized data should have the same size as original tensor when scale is not None!' + input_q = torch.cat([input_q.reshape(-1, self.q_config.group_size), scale], dim=-1).contiguous() + + fp_quant_module.selective_dequantize(fp_out, input_q, indexes, self.q_config.group_size, q_mantisa_bits, + q_bits - q_mantisa_bits - 1) + return fp_out diff --git a/deepspeed/ops/gds/__init__.py b/deepspeed/ops/gds/__init__.py new file mode 100755 index 000000000000..3c0762c81076 --- /dev/null +++ b/deepspeed/ops/gds/__init__.py @@ -0,0 +1,6 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from ..op_builder import GDSBuilder diff --git a/deepspeed/ops/lion/cpu_lion.py b/deepspeed/ops/lion/cpu_lion.py index a91a00643873..03342a3fcd34 100755 --- a/deepspeed/ops/lion/cpu_lion.py +++ b/deepspeed/ops/lion/cpu_lion.py @@ -69,7 +69,7 @@ def __setstate__(self, state): group.setdefault('amsgrad', False) @torch.no_grad() - def step(self, closure=None, fp16_param_groups=None): + def step(self, closure=None): """Update the model parameters. .. note:: @@ -81,8 +81,6 @@ def step(self, closure=None, fp16_param_groups=None): Args: closure (callable, optional): closure to compute the loss. Defaults to ``None``. - fp16_param_groups: FP16 GPU parameters to update. Performing the - copy here reduces communication time. Defaults to ``None``. Returns: loss: if ``closure`` is provided. Otherwise ``None``. @@ -96,13 +94,6 @@ def step(self, closure=None, fp16_param_groups=None): # intended device for step device = torch.device('cpu') - # converting the fp16 params to a group of parameter - if type(fp16_param_groups) is list: - if type(fp16_param_groups[0]) is not list: - fp16_param_groups = [fp16_param_groups] - elif fp16_param_groups is not None: - fp16_param_groups = [[fp16_param_groups]] - for group_id, group in enumerate(self.param_groups): for param_id, p in enumerate(group['params']): @@ -131,11 +122,6 @@ def step(self, closure=None, fp16_param_groups=None): state['step'] += 1 beta1, beta2 = group['betas'] - if fp16_param_groups is not None: - self.ds_opt_lion.lion_update_copy(self.opt_id, state['step'], group['lr'], beta1, beta2, - group['weight_decay'], p.data, p.grad.data, state['exp_avg'], - fp16_param_groups[group_id][param_id].data) - else: - self.ds_opt_lion.lion_update(self.opt_id, state['step'], group['lr'], beta1, beta2, - group['weight_decay'], p.data, p.grad.data, state['exp_avg']) + self.ds_opt_lion.lion_update(self.opt_id, state['step'], group['lr'], beta1, beta2, + group['weight_decay'], p.data, p.grad.data, state['exp_avg']) return loss diff --git a/deepspeed/ops/sparse_attention/bert_sparse_self_attention.py b/deepspeed/ops/sparse_attention/bert_sparse_self_attention.py index e25621bd0977..37f065e48631 100755 --- a/deepspeed/ops/sparse_attention/bert_sparse_self_attention.py +++ b/deepspeed/ops/sparse_attention/bert_sparse_self_attention.py @@ -8,7 +8,7 @@ class BertSparseSelfAttention(nn.Module): - """Implements Sparse Self Attention layer of Bert model based on https://github.com/microsoft/DeepSpeedExamples/blob/master/bing_bert/nvidia/modelingpreln.py#L373 + """Implements Sparse Self Attention layer of Bert model based on https://github.com/deepspeedai/DeepSpeedExamples/blob/master/bing_bert/nvidia/modelingpreln.py#L373 For more information please see, TODO DeepSpeed Sparse Transformer. diff --git a/deepspeed/ops/transformer/inference/config.py b/deepspeed/ops/transformer/inference/config.py index d5aff4f541f7..c0dd29f4f962 100644 --- a/deepspeed/ops/transformer/inference/config.py +++ b/deepspeed/ops/transformer/inference/config.py @@ -43,6 +43,7 @@ class DeepSpeedInferenceConfig(TransformerConfig): return_tuple: if True, returns the transformer output as a tuple, otherwise returns as a tensor bigscience_bloom: This flag is added temporarily for supporting the BLOOM-176B model architecture. use_triton: This flag is to enable triton kernels in inference or not. + invert_mask: If True, the attention mask is inverted when passed to attention block. """ def __init__(self, @@ -80,7 +81,8 @@ def __init__(self, use_triton=False, triton_autotune=False, num_kv=-1, - rope_theta=10000): + rope_theta=10000, + invert_mask=True): super(DeepSpeedInferenceConfig, self).__init__(hidden_size, (intermediate_size if intermediate_size > 0 else 4 * hidden_size), heads, num_hidden_layers) @@ -101,7 +103,6 @@ def __init__(self, self.return_tuple = return_tuple self.mlp_after_attn = mlp_after_attn self.mlp_act_func_type = mlp_act_func_type - self.specialized_mode = False self.training_mp_size = training_mp_size self.bigscience_bloom = bigscience_bloom self.max_out_tokens = max_out_tokens @@ -116,6 +117,7 @@ def __init__(self, self.triton_autotune = triton_autotune self.num_kv = num_kv self.rope_theta = rope_theta + self.invert_mask = invert_mask @classmethod def from_dict(cls, json_object): diff --git a/deepspeed/ops/transformer/inference/diffusers_attention.py b/deepspeed/ops/transformer/inference/diffusers_attention.py index 5efc560db75e..3c2340ccfc6f 100644 --- a/deepspeed/ops/transformer/inference/diffusers_attention.py +++ b/deepspeed/ops/transformer/inference/diffusers_attention.py @@ -10,10 +10,11 @@ from packaging import version as pkg_version from deepspeed.utils.logging import log_dist from deepspeed.accelerator import get_accelerator -from deepspeed.ops.op_builder import InferenceBuilder +from deepspeed.ops.transformer.inference.op_binding.workspace import WorkspaceOp +from deepspeed.ops.transformer.inference.op_binding.softmax_context import SoftmaxContextOp +from deepspeed.ops.transformer.inference.op_binding import LinearOp +from deepspeed.ops.transformer.inference.op_binding.pad_transform import PadTransformOp -# Cuda modules will be imported if needed -inference_module = None minus_inf = -10000.0 triton_flash_attn = None @@ -36,7 +37,8 @@ class DeepSpeedDiffusersAttentionFunction(Function): @staticmethod def forward(ctx, input, context, input_mask, config, attn_qkvw, attn_qw, attn_kw, attn_vw, attn_qkvb, num_attention_heads_per_partition, norm_factor, hidden_size_per_partition, attn_ow, attn_ob, - do_out_bias, score_context_func, linear_func, triton_flash_attn_kernel, rope_theta): + do_out_bias, score_context_func, linear_func, pad_transform_func, triton_flash_attn_kernel, + rope_theta): def _transpose_for_context(x): x = x.permute(0, 2, 1, 3) @@ -77,7 +79,7 @@ def selfAttention_fp(input, context, input_mask): query = query.contiguous() key = key.contiguous() value = value.contiguous() - query, key, value = inference_module.pad_transform_fp16(query, key, value, config.heads, do_flash_attn) + query, key, value = pad_transform_func(query, key, value, config.heads, do_flash_attn) attention_scores = (torch.matmul(query, key.transpose(-1, -2)) * scale).softmax(dim=-1) context_layer = _transpose_for_context(torch.matmul(attention_scores, value)) @@ -117,10 +119,6 @@ def __init__( data_type = self.config.dtype data_type_fp = torch.half if self.config.dtype == torch.int8 else self.config.dtype - global inference_module - if inference_module is None: - builder = InferenceBuilder() - inference_module = builder.load() if DeepSpeedDiffusersAttention.layer_id == 1: log_dist(f"DeepSpeed-Attention config: {self.config.__dict__}", [0]) @@ -171,26 +169,24 @@ def __init__( self.norm_factor *= math.sqrt(self.config.layer_id + 1) # https://github.com/huggingface/transformers/blob/v4.24.0/src/transformers/models/gpt2/modeling_gpt2.py#L191 - if self.config.dtype in [torch.float16, torch.int8]: - self.score_context_func = inference_module.softmax_context_fp16 - self.linear_func = inference_module.linear_layer_fp16 - self.allocate_workspace = inference_module.allocate_workspace_fp16 - else: - self.score_context_func = inference_module.softmax_context_fp32 - self.linear_func = inference_module.linear_layer_fp32 - self.allocate_workspace = inference_module.allocate_workspace_fp32 + self.workspace = WorkspaceOp(self.config) + self.score_context_func = SoftmaxContextOp(self.config) + self.linear_func = LinearOp(self.config) + self.pad_transform_func = PadTransformOp(self.config) - def forward(self, input, context=None, input_mask=None): + def allocate_workspace(self, size): + # Allocate memory only on first layer forward if self.config.layer_id == 0: - self.allocate_workspace(self.config.hidden_size, self.config.heads, - input.size()[1], - input.size()[0], DeepSpeedDiffusersAttention.layer_id, self.config.mp_size, False, - 0, self.config.max_out_tokens, self.config.min_out_tokens) - output = DeepSpeedDiffusersAttentionFunction.apply(input, context, input_mask, self.config, self.attn_qkvw, - self.attn_qw, self.attn_kw, self.attn_vw, self.attn_qkvb, - self.num_attention_heads_per_partition, self.norm_factor, - self.hidden_size_per_partition, self.attn_ow, self.attn_ob, - self.do_out_bias, self.score_context_func, self.linear_func, - self.triton_flash_attn_kernel, self.config.rope_theta) + self.workspace.allocate_workspace(self.config.hidden_size, self.config.heads, size[1], size[0], + DeepSpeedDiffusersAttention.layer_id, self.config.mp_size, False, 0, + self.config.max_out_tokens, self.config.min_out_tokens) + + def forward(self, input, context=None, input_mask=None): + self.allocate_workspace(input.size()) + output = DeepSpeedDiffusersAttentionFunction.apply( + input, context, input_mask, self.config, self.attn_qkvw, self.attn_qw, self.attn_kw, self.attn_vw, + self.attn_qkvb, self.num_attention_heads_per_partition, self.norm_factor, self.hidden_size_per_partition, + self.attn_ow, self.attn_ob, self.do_out_bias, self.score_context_func, self.linear_func, + self.pad_transform_func, self.triton_flash_attn_kernel, self.config.rope_theta) return output diff --git a/deepspeed/ops/transformer/inference/diffusers_transformer_block.py b/deepspeed/ops/transformer/inference/diffusers_transformer_block.py index b0156f905a06..d01638f36e40 100644 --- a/deepspeed/ops/transformer/inference/diffusers_transformer_block.py +++ b/deepspeed/ops/transformer/inference/diffusers_transformer_block.py @@ -10,26 +10,9 @@ from .diffusers_attention import DeepSpeedDiffusersAttention from .bias_add import nhwc_bias_add from .diffusers_2d_transformer import Diffusers2DTransformerConfig -from deepspeed.ops.op_builder import InferenceBuilder, SpatialInferenceBuilder from deepspeed.utils.types import ActivationFuncType - -# Ops will be loaded on demand -transformer_cuda_module = None -spatial_cuda_module = None - - -def load_transformer_module(): - global transformer_cuda_module - if transformer_cuda_module is None: - transformer_cuda_module = InferenceBuilder().load() - return transformer_cuda_module - - -def load_spatial_module(): - global spatial_cuda_module - if spatial_cuda_module is None: - spatial_cuda_module = SpatialInferenceBuilder().load() - return spatial_cuda_module +from .op_binding.gated_activation import GatedActivationOp +from .op_binding.layer_norm import LayerNormOp class DeepSpeedDiffusersTransformerBlock(nn.Module): @@ -76,8 +59,8 @@ def __init__(self, equivalent_module: nn.Module, config: Diffusers2DTransformerC else: self.attn_2_bias = nn.Paramaeter(torch.zeros_like(self.norm3_g), requires_grad=False) - self.transformer_cuda_module = load_transformer_module() - load_spatial_module() + self.gated_activation = GatedActivationOp() + self.layer_norm = LayerNormOp() def forward(self, hidden_states, context=None, timestep=None, **kwargs): # In v0.12.0 of diffuser, several new kwargs were added. Capturing @@ -88,17 +71,17 @@ def forward(self, hidden_states, context=None, timestep=None, **kwargs): if "encoder_hidden_states" in kwargs and kwargs["encoder_hidden_states"] is not None: context = kwargs["encoder_hidden_states"] - out_norm_1 = self.transformer_cuda_module.layer_norm(hidden_states, self.norm1_g, self.norm1_b, self.norm1_eps) + out_norm_1 = self.layer_norm(hidden_states, self.norm1_g, self.norm1_b, self.norm1_eps) out_attn_1 = self.attn_1(out_norm_1) - out_norm_2, out_attn_1 = self.transformer_cuda_module.layer_norm_residual_store_pre_ln_res( + out_norm_2, out_attn_1 = self.layer_norm.layer_norm_residual_store_pre_ln_res( out_attn_1, self.attn_1_bias, hidden_states, self.norm2_g, self.norm2_b, self.norm2_eps) out_attn_2 = self.attn_2(out_norm_2, context=context) - out_norm_3, out_attn_2 = self.transformer_cuda_module.layer_norm_residual_store_pre_ln_res( + out_norm_3, out_attn_2 = self.layer_norm.layer_norm_residual_store_pre_ln_res( out_attn_2, self.attn_2_bias, out_attn_1, self.norm3_g, self.norm3_b, self.norm3_eps) out_ff1 = nn.functional.linear(out_norm_3, self.ff1_w) - out_geglu = self.transformer_cuda_module.gated_activation(out_ff1, self.ff1_b, ActivationFuncType.GATED_GELU) + out_geglu = self.gated_activation(out_ff1, self.ff1_b, ActivationFuncType.GATED_GELU) out_ff2 = nn.functional.linear(out_geglu, self.ff2_w) return nhwc_bias_add(out_ff2, self.ff2_b, other=out_attn_2) diff --git a/deepspeed/ops/transformer/inference/ds_attention.py b/deepspeed/ops/transformer/inference/ds_attention.py index eb6ce2f75c69..24f710d22494 100644 --- a/deepspeed/ops/transformer/inference/ds_attention.py +++ b/deepspeed/ops/transformer/inference/ds_attention.py @@ -89,11 +89,11 @@ def __init__(self, config, mp_group=None, q_scales=None, q_groups=1, merge_count torch.empty(self.hidden_size_per_partition * 3, dtype=data_type_fp, device=device) ] - def compute_attention(self, qkv_out, input_mask, layer_past, alibi): + def compute_attention(self, qkv_out, input_mask, layer_past, alibi, is_prompt, token_idx, position_ids): if isinstance(qkv_out, list) or isinstance(qkv_out, tuple): qkv_out = qkv_out[0] - no_masking = input_mask is None + no_masking = input_mask is None or input_mask is False if no_masking: input_mask = torch.empty(1) @@ -108,7 +108,10 @@ def compute_attention(self, qkv_out, input_mask, layer_past, alibi): no_masking=no_masking, layer_id=self.config.layer_id, num_layers=DeepSpeedSelfAttention.num_layers, - alibi=alibi) + alibi=alibi, + is_prompt=is_prompt, + token_idx=token_idx, + position_ids=position_ids) context_layer, key_layer, value_layer = attn_key_value return context_layer, key_layer, value_layer @@ -136,7 +139,8 @@ def forward(self, output_attentions=False, norm_w=None, norm_b=None, - alibi=None): + alibi=None, + **kwargs): if self.attn_qkvw is None: self._attn_qkvw, self._attn_qkvb = self._merge_qkv() else: @@ -157,10 +161,17 @@ def forward(self, gamma=norm_w, beta=norm_b) + is_prompt = kwargs.get("first_token", qkv_out[0].shape[1] > 1) + token_idx = kwargs.get("token_idx", None) + position_ids = kwargs.get("position_ids", None) + context_layer, key_layer, value_layer = self.compute_attention(qkv_out=qkv_out, input_mask=input_mask, layer_past=layer_past, - alibi=alibi) + alibi=alibi, + is_prompt=is_prompt, + token_idx=token_idx, + position_ids=position_ids) output = self.vector_matmul_func(input=context_layer, weight=self.attn_ow) inp_norm = qkv_out[-1] @@ -210,7 +221,7 @@ def _split_tensor_along_last_dim(self, tensor, num_partitions, contiguous_split_ return tensor_list - def compute_attention(self, qkv_out, input_mask, layer_past, alibi): + def compute_attention(self, qkv_out, input_mask, layer_past, alibi, is_prompt, token_idx, position_ids): if isinstance(qkv_out, list) or isinstance(qkv_out, tuple): qkv_out = qkv_out[0] @@ -254,8 +265,12 @@ def compute_attention(self, qkv_out, input_mask, layer_past, alibi): if input_mask.dtype == torch.bool: input_mask = input_mask.long() + # Invert input_mask per transformer implementation (eg, in BLOOM, it's already inverted) + if self.config.invert_mask: + input_mask = 1 - input_mask + attention_probs = self.softmax_func(attn_scores=attention_scores, - attn_mask=((1 - input_mask).to(target_dtype) * minus_inf), + attn_mask=input_mask.to(target_dtype) * minus_inf, alibi=alibi, triangular=(self.config.triangular_masking and (attention_scores.shape[-2] > 1)), diff --git a/deepspeed/ops/transformer/inference/moe_inference.py b/deepspeed/ops/transformer/inference/moe_inference.py index f985a9a4ab6b..3a9785985d19 100644 --- a/deepspeed/ops/transformer/inference/moe_inference.py +++ b/deepspeed/ops/transformer/inference/moe_inference.py @@ -7,16 +7,16 @@ import math import torch from torch.autograd import Function -# accelerator modules will be imported if needed -inference_module = None -specialized_mode = None import torch.nn as nn from .ds_attention import DeepSpeedSelfAttention from .config import DeepSpeedInferenceConfig +from .op_binding import SoftmaxOp, VectorMatMulOp, GELUGemmOp +from .op_binding.bias_residual import BiasResidualOp +from .op_binding.einsum_sec_sm_ecm import EinsumSecSmEcmOp +from .op_binding.layer_norm import LayerNormOp from ....moe.sharded_moe import TopKGate from deepspeed import comm as dist -from deepspeed.accelerator import get_accelerator -from deepspeed.ops.op_builder import InferenceBuilder +from .op_binding.moe_res_matmul import MoEResMatmulOp class DeepSpeedMoEInferenceConfig(DeepSpeedInferenceConfig): @@ -110,16 +110,13 @@ class DeepSpeedMLPFunction(Function): @staticmethod def forward(ctx, input, inter_w, inter_b, config, output_b, output_w, q_scales, q_groups, merge_count, mp_group, - async_op): + async_op, gelu_gemm_func, vector_matmul_func): if config.q_int8: - intermediate = inference_module.fused_gemm_gelu_int8(input, inter_w, inter_b, config.epsilon, q_scales[2], - (q_groups * (2**merge_count)), config.pre_layer_norm) - output = inference_module.vector_matmul_int8(intermediate, output_w, q_scales[3], q_groups, (merge_count)) + intermediate = gelu_gemm_func(input, inter_w, inter_b, config.epsilon, q_scales[2], + (q_groups * (2**merge_count)), config.pre_layer_norm) + output = vector_matmul_func(intermediate, output_w, q_scales[3], q_groups, (merge_count)) else: - mlp_gemm_func = inference_module.fused_gemm_gelu_fp16 if config.fp16 else \ - inference_module.fused_gemm_gelu_fp32 - - output = mlp_gemm_func(input, inter_w, inter_b, output_w, config.epsilon, config.pre_layer_norm, async_op) + output = gelu_gemm_func(input, inter_w, inter_b, output_w, config.epsilon, config.pre_layer_norm, async_op) if mp_group is not None and dist.get_world_size(group=mp_group) > 1: dist.all_reduce(output, group=mp_group, async_op=async_op) @@ -150,10 +147,13 @@ def __init__(self, config, q_scales=None, q_groups=1, merge_count=1, mlp_extra_g self.q_groups = q_groups * 2 if mlp_extra_grouping else q_groups self.merge_count = int(math.log2(merge_count)) self.mp_group = mp_group + self.gelu_gemm_func = GELUGemmOp(self.config) + self.vector_matmul_func = VectorMatMulOp(self.config) def forward(self, input, async_op=False): return DeepSpeedMLPFunction.apply(input, self.inter_w, self.inter_b, self.config, self.output_b, self.output_w, - self.q_scales, self.q_groups, self.merge_count, self.mp_group, async_op) + self.q_scales, self.q_groups, self.merge_count, self.mp_group, async_op, + self.gelu_gemm_func, self.vector_matmul_func) class DeepSpeedMoEInference(nn.Module): @@ -187,18 +187,7 @@ def __init__(self, self.config = config self.config.layer_id = DeepSpeedMoEInference.layer_id - global inference_module - global specialized_mode - if inference_module is None: - specialized_mode = False - # InferenceSpecializedBuilder is not among DeepSpeed provided builder yet, so we infer by builder name string - builder = get_accelerator().create_op_builder("InferenceSpecializedBuilder") - if builder is not None and builder.is_compatible(): - inference_module = builder.load() - specialized_mode = True - else: - inference_module = InferenceBuilder().load() - self.config.specialized_mode = specialized_mode + assert self.config.dtype != torch.bfloat16, "DeepSpeed MoE Transformer Inference not yet tested for bfloat support" DeepSpeedMoEInference.layer_id += 1 @@ -213,10 +202,8 @@ def __init__(self, self.res_mlp = DeepSpeedMoEMLP(config, quantize_scales, quantize_groups, merge_count, mlp_extra_grouping, mp_group) self.res_coef = nn.Parameter(torch.Tensor(self.config.hidden_size, 2)) - self.coef_func = inference_module.softmax_fp16 if self.config.dtype in [torch.float16, torch.int8] else \ - inference_module.softmax_fp32 - self.vector_matmul_func = inference_module.vector_matmul_fp16 if self.config.dtype == torch.float16 else \ - inference_module.vector_matmul_fp32 + self.coef_func = SoftmaxOp(self.config) + self.vector_matmul_func = VectorMatMulOp(self.config) config.mp_size = 1 self.mlp = nn.ModuleList( @@ -226,7 +213,7 @@ def __init__(self, self.moe_gate = TopKGate(self.config.hidden_size, self.config.global_experts, self.config.k, self.config.capacity_factor, self.config.eval_capacity_factor, self.config.min_capacity, self.config.noisy_gate_policy, self.config.drop_tokens, - self.config.use_rts) + self.config.use_rts, self.ep_group) self.ep_group = ep_group self.mp_group = mp_group @@ -234,12 +221,10 @@ def __init__(self, print("DeepSpeed MoE Transformer Inference config is ", self.config.__dict__) - self.bias_residual_func = inference_module.bias_residual_fp16 if self.config.dtype in [torch.float16, torch.int8] else \ - inference_module.bias_residual_fp32 - self.ds_layernorm = inference_module.layer_norm_fp16 if self.config.dtype in [torch.float16, torch.int8] else \ - inference_module.layer_norm_fp32 - self.einsum_sec_sm_ecm = inference_module.einsum_sec_sm_ecm_fp16 if self.config.dtype in [torch.float16, torch.int8] else \ - inference_module.einsum_sec_sm_ecm_fp32 + self.bias_residual_func = BiasResidualOp(self.config) + self.ds_layernorm = LayerNormOp(self.config) + self.einsum_sec_sm_ecm = EinsumSecSmEcmOp(self.config) + self.moe_res_matmul = MoEResMatmulOp(self.config) def res_coef_func(self, inp, async_op): inp = self.vector_matmul_func(inp, self.res_coef, async_op) @@ -326,12 +311,12 @@ def forward(self, res_coef_out = self.res_coef_func(attention_output, async_op=True) if self.expert_mp_group is not None: - tensor_list = [ - torch.empty_like(attention_output) for _ in range(dist.get_world_size(group=self.expert_mp_group)) - ] - tensor_list[dist.get_rank(group=self.expert_mp_group)] = attention_output - dist.all_gather(tensor_list, attention_output, group=self.expert_mp_group) - attention_output = torch.cat(tensor_list).contiguous() + world_size = dist.get_world_size(group=self.expert_mp_group) + gather_buffer = torch.empty(world_size * attention_output.numel(), + dtype=attention_output.dtype, + device=attention_output.device) + dist.all_gather_into_tensor(gather_buffer, attention_output, group=self.expert_mp_group) + attention_output = gather_buffer.view(-1, *attention_output.size()[1:]) ############## MoE Gating + Experts ############### dispatched_attention, combined_weights = self.moe_gate_einsum(attention_output) @@ -346,7 +331,7 @@ def forward(self, dim=0)[dist.get_rank(group=self.expert_mp_group)] if self.config.mlp_type == 'residual': - inference_module.moe_res_matmul(res_mlp_out, res_coef_out, output) + self.moe_res_matmul(res_mlp_out, res_coef_out, output) output = self.bias_residual_func(output, residual_add, torch.empty(1)) diff --git a/deepspeed/ops/transformer/inference/op_binding/bias_add.py b/deepspeed/ops/transformer/inference/op_binding/bias_add.py new file mode 100644 index 000000000000..d2ae38f546eb --- /dev/null +++ b/deepspeed/ops/transformer/inference/op_binding/bias_add.py @@ -0,0 +1,31 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import torch +from ..config import DeepSpeedInferenceConfig +from .base import BaseOp + + +class BiasAddOp(BaseOp): + + def __init__(self, config: DeepSpeedInferenceConfig): + super(BiasAddOp, self).__init__(config) + + try: + if self.config.dtype == torch.float16: + self.bias_add_func = self.inference_module.bias_add_fp16 + elif self.config.dtype == torch.bfloat16: + self.bias_add_func = self.inference_module.bias_add_bf16 + else: + self.bias_add_func = self.inference_module.bias_add_fp32 + except AttributeError: + self.bias_add_func = self.bias_add_fallback + + @classmethod + def bias_add_fallback(cls, input, bias): + return torch.add(input, bias) + + def forward(self, activation: torch.Tensor, bias: torch.Tensor): + return self.bias_add_func(activation, bias) diff --git a/deepspeed/ops/transformer/inference/op_binding/bias_gelu.py b/deepspeed/ops/transformer/inference/op_binding/bias_gelu.py new file mode 100644 index 000000000000..f0fee0b0d06e --- /dev/null +++ b/deepspeed/ops/transformer/inference/op_binding/bias_gelu.py @@ -0,0 +1,33 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import torch +import torch.nn.functional as F +from ..config import DeepSpeedInferenceConfig +from .base import BaseOp + + +class BiasGeluOp(BaseOp): + + def __init__(self, config: DeepSpeedInferenceConfig): + super(BiasGeluOp, self).__init__(config) + + try: + if self.config.dtype == torch.float16: + self.bias_gelu_func = self.inference_module.bias_gelu_fp16 + elif self.config.dtype == torch.bfloat16: + self.bias_gelu_func = self.inference_module.bias_gelu_bf16 + else: + self.bias_gelu_func = self.inference_module.bias_gelu_fp32 + except AttributeError: + self.bias_gelu_func = self.bias_gelu_fallback + + @classmethod + def bias_gelu_fallback(cls, activations, bias): + # Expected behavior is that of casting to float32 internally and using the tanh approximation + return F.gelu(activations.to(torch.float32) + bias.to(torch.float32), approximate='tanh').to(activations.dtype) + + def forward(self, activation: torch.Tensor, bias: torch.Tensor): + return self.bias_gelu_func(activation, bias) diff --git a/deepspeed/ops/transformer/inference/op_binding/bias_relu.py b/deepspeed/ops/transformer/inference/op_binding/bias_relu.py new file mode 100644 index 000000000000..ccfade1d9524 --- /dev/null +++ b/deepspeed/ops/transformer/inference/op_binding/bias_relu.py @@ -0,0 +1,33 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import torch +import torch.nn.functional as F +from ..config import DeepSpeedInferenceConfig +from .base import BaseOp + + +class BiasReluOp(BaseOp): + + def __init__(self, config: DeepSpeedInferenceConfig): + super(BiasReluOp, self).__init__(config) + + try: + if self.config.dtype == torch.float16: + self.bias_relu_func = self.inference_module.bias_relu_fp16 + elif self.config.dtype == torch.bfloat16: + self.bias_relu_func = self.inference_module.bias_relu_bf16 + else: + self.bias_relu_func = self.inference_module.bias_relu_fp32 + except AttributeError: + self.bias_relu_func = self.bias_relu_fallback + + @classmethod + def bias_relu_fallback(cls, activations, bias): + # Expected behavior is that of casting to float32 internally + return F.relu(activations.to(torch.float32) + bias.to(torch.float32)).to(activations.dtype) + + def forward(self, activation: torch.Tensor, bias: torch.Tensor): + return self.bias_relu_func(activation, bias) diff --git a/deepspeed/ops/transformer/inference/op_binding/bias_residual.py b/deepspeed/ops/transformer/inference/op_binding/bias_residual.py new file mode 100644 index 000000000000..ecad50e10ffe --- /dev/null +++ b/deepspeed/ops/transformer/inference/op_binding/bias_residual.py @@ -0,0 +1,29 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import torch +from ..config import DeepSpeedInferenceConfig +from .base import BaseOp + + +class BiasResidualOp(BaseOp): + + def __init__(self, config: DeepSpeedInferenceConfig): + super(BiasResidualOp, self).__init__(config) + + try: + if self.config.dtype in [torch.float16, torch.int8]: + self.bias_residual_func = self.inference_module.bias_residual_fp16 + else: + self.bias_residual_func = self.inference_module.bias_residual_fp32 + except AttributeError: + self.bias_residual_func = self.bias_residual_fallback + + @classmethod + def bias_residual_fallback(cls, output, residual, bias): + raise NotImplementedError("bias residual fallback isn't implemented") + + def forward(self, output, residual, bias): + return self.bias_residual_func(output, residual, bias) diff --git a/deepspeed/ops/transformer/inference/op_binding/einsum_sec_sm_ecm.py b/deepspeed/ops/transformer/inference/op_binding/einsum_sec_sm_ecm.py new file mode 100644 index 000000000000..f34b10f786d1 --- /dev/null +++ b/deepspeed/ops/transformer/inference/op_binding/einsum_sec_sm_ecm.py @@ -0,0 +1,29 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import torch +from ..config import DeepSpeedInferenceConfig +from .base import BaseOp + + +class EinsumSecSmEcmOp(BaseOp): + + def __init__(self, config: DeepSpeedInferenceConfig): + super(EinsumSecSmEcmOp, self).__init__(config) + + try: + if self.config.dtype in [torch.float16, torch.int8]: + self.einsum_sec_sm_ecm_func = self.inference_module.einsum_sec_sm_ecm_fp16 + else: + self.einsum_sec_sm_ecm_func = self.inference_module.einsum_sec_sm_ecm_fp32 + except AttributeError: + self.einsum_sec_sm_ecm_func = self.einsum_sec_sm_ecm_fallback + + @classmethod + def einsum_sec_sm_ecm_fallback(cls, Q, W): + raise NotImplementedError("einsum sec sm ecm fallback isn't implemented") + + def forward(self, Q, W): + return self.einsum_sec_sm_ecm_func(Q, W) diff --git a/deepspeed/ops/transformer/inference/op_binding/gated_activation.py b/deepspeed/ops/transformer/inference/op_binding/gated_activation.py new file mode 100644 index 000000000000..d28d818ce4b3 --- /dev/null +++ b/deepspeed/ops/transformer/inference/op_binding/gated_activation.py @@ -0,0 +1,40 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import torch +import torch.nn.functional as F +from deepspeed.utils.types import ActivationFuncType +from ..config import DeepSpeedInferenceConfig +from .base import BaseOp + + +class GatedActivationOp(BaseOp): + + def __init__(self, config: DeepSpeedInferenceConfig = None): + if config is None: + config = DeepSpeedInferenceConfig() + super(GatedActivationOp, self).__init__(config) + try: + self.gated_activation_func = self.inference_module.gated_activation + except AttributeError: + self.gated_activation_func = self.gated_activation_fallback + + @classmethod + def gated_activation_fallback(cls, activation, bias, activation_func_type): + # Expected behavior is that of casting to float32 internally + # Explicitly using the default GeLU + activation_func = None + activations = activation + bias.reshape(1, 1, -1) + hidden_states, gate = activations.chunk(2, dim=-1) + + if activation_func_type == ActivationFuncType.GATED_SILU: + activation_func = F.silu + elif activation_func_type == ActivationFuncType.GATED_GELU: + activation_func = F.gelu + + return hidden_states * activation_func(gate.to(torch.float32)).to(activations.dtype) + + def forward(self, activation: torch.Tensor, bias: torch.Tensor, activation_func_type: ActivationFuncType): + return self.gated_activation_func(activation, bias, activation_func_type) diff --git a/deepspeed/ops/transformer/inference/op_binding/gelu_gemm.py b/deepspeed/ops/transformer/inference/op_binding/gelu_gemm.py index 63323c150752..60bbb4b48bdb 100644 --- a/deepspeed/ops/transformer/inference/op_binding/gelu_gemm.py +++ b/deepspeed/ops/transformer/inference/op_binding/gelu_gemm.py @@ -4,6 +4,7 @@ # DeepSpeed Team import torch +import torch.nn.functional as F from ..config import DeepSpeedInferenceConfig from .base import BaseOp import deepspeed @@ -14,7 +15,9 @@ class GELUGemmOp(BaseOp): def __init__(self, config: DeepSpeedInferenceConfig): super(GELUGemmOp, self).__init__(config) try: - if self.config.dtype in [torch.float16, torch.int8]: + if self.config.dtype == torch.int8: + self.fused_gemm_gelu = self.inference_module.fused_gemm_gelu_int8 + elif self.config.dtype == torch.float16: if deepspeed.HAS_TRITON and self.config.use_triton and self.config.dtype == torch.float16: from deepspeed.ops.transformer.inference.triton.ops import fused_gemm_gelu as _triton_fused_gemm_gelu self.fused_gemm_gelu = _triton_fused_gemm_gelu # type: ignore @@ -28,7 +31,11 @@ def __init__(self, config: DeepSpeedInferenceConfig): self.fused_gemm_gelu = self.gelu_gemm_fallback def gelu_gemm_fallback(self, input, weight, scale, bias, out, out_scale, dtype, transpose): - raise NotImplementedError + tmp = torch.matmul(input, weight) + tmp = F.gelu(tmp.to(torch.float32) + bias.to(torch.float32), approximate="tanh").to(tmp.dtype) + output = torch.matmul(tmp, out) + + return output def forward(self, input: torch.Tensor, weight: torch.Tensor, bias: torch.Tensor, weight_out: torch.Tensor): diff --git a/deepspeed/ops/transformer/inference/op_binding/layer_norm.py b/deepspeed/ops/transformer/inference/op_binding/layer_norm.py new file mode 100644 index 000000000000..31219a58ac3c --- /dev/null +++ b/deepspeed/ops/transformer/inference/op_binding/layer_norm.py @@ -0,0 +1,60 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import torch +import torch.nn.functional as F +from ..config import DeepSpeedInferenceConfig +from .base import BaseOp + + +class LayerNormOp(BaseOp): + + def __init__(self, config: DeepSpeedInferenceConfig = None): + super(LayerNormOp, self).__init__(config) + try: + if config is None: + self.layer_norm_func = self.inference_module.layer_norm + elif self.config.dtype in [torch.float16, torch.int8]: + self.layer_norm_func = self.inference_module.layer_norm_fp16 + else: + self.layer_norm_func = self.inference_module.layer_norm_fp32 + except AttributeError: + self.layer_norm_func = self.layer_norm_fallback + + @classmethod + def layer_norm_residual(cls, vals, bias, res, gamma, beta, epsilon): + channels = gamma.shape[0] + dtype = gamma.dtype + vals_f = vals.to(torch.float32) + bias_f = bias.to(torch.float32).reshape(1, 1, -1) + res_f = res.to(torch.float32) + gamma_f = gamma.to(torch.float32) + beta_f = beta.to(torch.float32) + return F.layer_norm(vals_f + bias_f + res_f, (channels, ), weight=gamma_f, bias=beta_f, eps=epsilon).to(dtype) + + @classmethod + def layer_norm_residual_store_pre_ln_res(cls, vals, bias, res, gamma, beta, epsilon): + channels = gamma.shape[0] + dtype = gamma.dtype + vals_f = vals.to(torch.float32) + bias_f = bias.to(torch.float32).reshape(1, 1, -1) + res_f = res.to(torch.float32) + gamma_f = gamma.to(torch.float32) + beta_f = beta.to(torch.float32) + res_output = vals_f + bias_f + res_f + norm_output = F.layer_norm(res_output, (channels, ), weight=gamma_f, bias=beta_f, eps=epsilon).to(dtype) + return norm_output, res_output.to(dtype) + + @classmethod + def layer_norm_fallback(cls, vals, gamma, beta, epsilon): + channels = gamma.shape[0] + dtype = gamma.dtype + vals_f = vals.to(torch.float32) + gamma_f = gamma.to(torch.float32) + beta_f = beta.to(torch.float32) + return F.layer_norm(vals_f, (channels, ), weight=gamma_f, bias=beta_f, eps=epsilon).to(dtype) + + def forward(self, vals, gamma, beta, epsilon): + return self.layer_norm_func(vals, gamma, beta, epsilon) diff --git a/deepspeed/ops/transformer/inference/op_binding/mlp_gemm.py b/deepspeed/ops/transformer/inference/op_binding/mlp_gemm.py index 3064c00d1755..5f1f915ec021 100644 --- a/deepspeed/ops/transformer/inference/op_binding/mlp_gemm.py +++ b/deepspeed/ops/transformer/inference/op_binding/mlp_gemm.py @@ -5,12 +5,12 @@ from typing import Optional -import os import torch import torch.nn.functional as F from ..config import DeepSpeedInferenceConfig from .base import BaseOp from deepspeed.utils.types import NormType +from .pre_rms_norm import PreRMSNormOp class MLPGemmOp(BaseOp): @@ -39,23 +39,45 @@ def __init__(self, config: DeepSpeedInferenceConfig): self.mlp_gemm_func = self.mlp_gemm_fallback elif self.config.norm_type == NormType.RMSNorm: self.mlp_gemm_func = self.rms_mlp_gemm_fallback + self.pre_rms_norm = PreRMSNormOp() def mlp_gemm_fallback(self, input, residual, input_bias, weight_interm, weight_out, bias, gamma, beta, eps, pre_layer_norm, mlp_after_attn, interm_scale, out_scale, dtype, mlp_act_func_type, transpose): - if os.environ.get('DS_KI_FALLBACK') == 'True' and mlp_after_attn and not transpose: - residual_add = F.layer_norm(input + residual + input_bias, (input.shape[2], ), gamma, beta, - self.config.epsilon) - tmp = torch.matmul(residual_add, weight_interm) + if mlp_after_attn: + residual_add = F.layer_norm(input + residual + input_bias, (input.shape[2], ), gamma, beta, eps) + tmp = torch.matmul(residual_add, weight_interm.t() if transpose else weight_interm) tmp = F.gelu(tmp + bias) - output = torch.matmul(tmp, weight_out) - return (output, residual_add) + output = torch.matmul(tmp, weight_out.t() if transpose else weight_out) + + return output, residual_add else: raise NotImplementedError def rms_mlp_gemm_fallback(self, input, residual, weight_interm, weight_out, gamma, eps, interm_scale, out_scale, dtype, mlp_act_func_type, transpose): - raise NotImplementedError + inp_norm, residual = self.pre_rms_norm(input, residual, gamma, eps) + tmp = torch.matmul(inp_norm.view([-1, inp_norm.size(2)]), weight_interm.t() if transpose else weight_interm) + up_proj, gate_proj = tmp.chunk(2, dim=1) + + from deepspeed.utils.types import ActivationFuncType + if mlp_act_func_type == ActivationFuncType.GELU: + intermediate = F.gelu(gate_proj) + elif mlp_act_func_type == ActivationFuncType.ReLU: + intermediate = F.relu(gate_proj) + elif mlp_act_func_type == ActivationFuncType.GATED_GELU: + intermediate = F.gelu(gate_proj) + elif mlp_act_func_type == ActivationFuncType.GATED_SILU: + intermediate = F.silu(gate_proj) + else: + raise f"rms_mlp_gemm_fallback not implemented for activation type {mlp_act_func_type}" + + intermediate = intermediate * up_proj + + output = torch.matmul(intermediate, weight_out.t() if transpose else weight_out) + output = output.view([input.size(0), input.size(1), -1]) + + return [output, residual] def forward(self, input: torch.Tensor, diff --git a/deepspeed/ops/transformer/inference/op_binding/moe_res_matmul.py b/deepspeed/ops/transformer/inference/op_binding/moe_res_matmul.py new file mode 100644 index 000000000000..ef3558c8bc88 --- /dev/null +++ b/deepspeed/ops/transformer/inference/op_binding/moe_res_matmul.py @@ -0,0 +1,29 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import torch +from ..config import DeepSpeedInferenceConfig +from .base import BaseOp + + +class MoEResMatmulOp(BaseOp): + + def __init__(self, config: DeepSpeedInferenceConfig = None): + if config is None: + config = DeepSpeedInferenceConfig() + super(MoEResMatmulOp, self).__init__(config) + try: + self.moe_res_matmul_func = self.inference_module.moe_res_matmul + except AttributeError: + self.moe_res_matmul_func = self.moe_res_matmul_fallback + + @classmethod + def moe_res_matmul_fallback(cls, residual, coef, output): + coef_t = coef.transpose(1, 2).contiguous() + coef1, coef2 = torch.split(coef_t, split_size_or_sections=coef_t.shape[len(coef_t.shape) - 1] // 2, dim=-1) + return residual * coef1 + output * coef2 + + def forward(self, residual, coef, output): + return self.moe_res_matmul_func(residual, coef, output) diff --git a/deepspeed/ops/transformer/inference/op_binding/pad_transform.py b/deepspeed/ops/transformer/inference/op_binding/pad_transform.py new file mode 100644 index 000000000000..876fefc3bcfb --- /dev/null +++ b/deepspeed/ops/transformer/inference/op_binding/pad_transform.py @@ -0,0 +1,26 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from ..config import DeepSpeedInferenceConfig +from .base import BaseOp + + +class PadTransformOp(BaseOp): + + def __init__(self, config: DeepSpeedInferenceConfig = None): + if config is None: + config = DeepSpeedInferenceConfig() + super(PadTransformOp, self).__init__(config) + try: + self.pad_transform_func = self.inference_module.pad_transform_fp16 + except AttributeError: + self.pad_transform_func = self.pad_transform_fallback + + @staticmethod + def pad_transform_fallback(query, key, value, heads, do_flash_attn): + raise NotImplementedError("pad_transform fallback is not implemented.") + + def forward(self, query, key, value, heads, do_flash_attn): + return self.pad_transform_func(query, key, value, heads, do_flash_attn) diff --git a/deepspeed/ops/transformer/inference/op_binding/pre_rms_norm.py b/deepspeed/ops/transformer/inference/op_binding/pre_rms_norm.py new file mode 100644 index 000000000000..7969d20f0527 --- /dev/null +++ b/deepspeed/ops/transformer/inference/op_binding/pre_rms_norm.py @@ -0,0 +1,31 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import torch +from ..config import DeepSpeedInferenceConfig +from .base import BaseOp +from .rms_norm import RMSNormOp + + +class PreRMSNormOp(BaseOp): + + def __init__(self, config: DeepSpeedInferenceConfig = None): + if config is None: + config = DeepSpeedInferenceConfig() + super(PreRMSNormOp, self).__init__(config) + try: + self.pre_rms_norm_func = self.inference_module.pre_rms_norm + except AttributeError: + self.pre_rms_norm_func = self.pre_rms_norm_fallback + + @staticmethod + def pre_rms_norm_fallback(vals, residual, gamma, epsilon): + residual = vals.to(torch.float32) + residual.to(torch.float32) + vals = residual + + return RMSNormOp.rms_norm_fallback(vals, gamma, epsilon), residual.to(gamma.dtype) + + def forward(self, vals, residual, gamma, epsilon): + return self.pre_rms_norm_func(vals, residual, gamma, epsilon) diff --git a/deepspeed/ops/transformer/inference/op_binding/qkv_gemm.py b/deepspeed/ops/transformer/inference/op_binding/qkv_gemm.py index 250bf9864e1e..9ff5366fae5d 100644 --- a/deepspeed/ops/transformer/inference/op_binding/qkv_gemm.py +++ b/deepspeed/ops/transformer/inference/op_binding/qkv_gemm.py @@ -3,11 +3,11 @@ # DeepSpeed Team -import os import torch import torch.nn.functional as F from ..config import DeepSpeedInferenceConfig from .base import BaseOp +from .rms_norm import RMSNormOp import deepspeed from deepspeed.utils.types import NormType @@ -56,19 +56,23 @@ def _triton_autotune(min_seqlen, max_seqlen, hidden_size, dtype=torch.float16): matmul(A, B) Fp16Matmul._update_autotune_table() - def qkv_gemm_fallback(self, input, weight, q_scale, bias, gamma, beta, eps, add_bias, q_int8, transpose): - if os.environ.get('DS_KI_FALLBACK') == 'True' and not transpose: - inp_norm = F.layer_norm(input, (input.shape[2], ), gamma, beta, eps) - tmp = torch.matmul(inp_norm, weight) - if add_bias: - tmp += bias - output = [tmp, inp_norm] - return output - else: - raise NotImplementedError + @staticmethod + def qkv_gemm_fallback(input, weight, q_scale, bias, gamma, beta, eps, add_bias, q_int8, transpose): + inp_norm = F.layer_norm(input, (input.shape[2], ), gamma, beta, eps) + tmp = torch.matmul(inp_norm, weight.t() if transpose else weight) + if add_bias: + tmp += bias + output = [tmp, inp_norm] + + return output + + @staticmethod + def rms_qkv_gemm_fallback(input, weight, q_scale, gamma, eps, q_int8, transpose): + inp_norm = RMSNormOp.rms_norm_fallback(input, gamma, eps) + tmp = torch.matmul(inp_norm, weight.t() if transpose else weight) + output = [tmp, inp_norm] - def rms_qkv_gemm_fallback(self, input, weight, q_scale, gamma, eps, q_int8, transpose): - raise NotImplementedError + return output def forward(self, input: torch.Tensor, weight: torch.Tensor, bias: torch.Tensor, gamma: torch.Tensor, beta: torch.Tensor): diff --git a/deepspeed/ops/transformer/inference/op_binding/residual_add.py b/deepspeed/ops/transformer/inference/op_binding/residual_add.py index 6f9b35cbc05d..93b229c5d1ac 100644 --- a/deepspeed/ops/transformer/inference/op_binding/residual_add.py +++ b/deepspeed/ops/transformer/inference/op_binding/residual_add.py @@ -3,9 +3,10 @@ # DeepSpeed Team -import os import torch from typing import Optional + +from .vector_add import VectorAddOp from ..config import DeepSpeedInferenceConfig from .base import BaseOp @@ -22,11 +23,32 @@ def __init__(self, config: DeepSpeedInferenceConfig): else: self.residual_add_func = self.inference_module.residual_add_bias_fp32 except AttributeError: - self.residual_add_func = None - try: - self._vector_add = self.inference_module._vector_add - except AttributeError: - self._vector_add = None + self.residual_add_func = self.residual_add_fallback + self.vector_add = VectorAddOp() + + @staticmethod + def res_add_bias(hidden_state, residual, attn_output, attn_bias, final_bias, add_attn_bias, mp_size): + hidden_state += attn_output + (residual + final_bias) / mp_size + if add_attn_bias: + hidden_state += attn_bias / mp_size + + return hidden_state + + @staticmethod + def residual_add_fallback(hidden_state, residual, attention_output, attention_bias, final_bias, mp_size, + mlp_after_attn, add_bias, pre_layer_norm): + if mlp_after_attn: + if pre_layer_norm: + tmp = (residual.float() + attention_output.float() + attention_bias.float() + + final_bias.float()) / mp_size + hidden_state.float() + else: + tmp = residual.float() + hidden_state.float() + final_bias.float() + else: + tmp = ResidualAddOp.res_add_bias(hidden_state, residual, attention_output, attention_bias, final_bias, + add_bias, mp_size) + residual.copy_(tmp.to(hidden_state.dtype)) + + return residual def forward(self, hidden_state: torch.Tensor, @@ -37,28 +59,15 @@ def forward(self, attention_bias: Optional[torch.Tensor] = None, final_bias: Optional[torch.Tensor] = None): - if self.residual_add_func is not None: - if final_bias is None: - residual = self._vector_add(residual, hidden_state, 1.0 / self.config.mp_size) - else: - if not self.config.pre_layer_norm and residual_add is not None: - # only use residual add if its set and we are not pre layer norm - residual = residual_add - - self.residual_add_func(hidden_state, residual, attention_output, attention_bias, final_bias, - self.config.mp_size, self.config.mlp_after_attn, add_bias, - self.config.pre_layer_norm) + if final_bias is None and attention_bias is None: + residual = self.vector_add(residual + attention_output, hidden_state, 1.0 / self.config.mp_size) else: - # fallback - if os.environ.get('DS_KI_FALLBACK') == 'True' and self.config.mlp_after_attn: - if self.config.pre_layer_norm: - tmp = (residual.float() + attention_output.float() + attention_bias.float() + - final_bias.float()) / self.config.mp_size + hidden_state.float() - else: - tmp = residual.float() + hidden_state.float() + final_bias.float() + if not self.config.pre_layer_norm and residual_add is not None: + # only use residual add if its set and we are not pre layer norm + residual = residual_add + + self.residual_add_func(hidden_state, residual, attention_output, attention_bias, final_bias, + self.config.mp_size, self.config.mlp_after_attn, add_bias, + self.config.pre_layer_norm) - input_dtype = hidden_state.dtype - residual = tmp.to(input_dtype) - else: - raise NotImplementedError return residual diff --git a/deepspeed/ops/transformer/inference/op_binding/rms_norm.py b/deepspeed/ops/transformer/inference/op_binding/rms_norm.py new file mode 100644 index 000000000000..128883ce5d43 --- /dev/null +++ b/deepspeed/ops/transformer/inference/op_binding/rms_norm.py @@ -0,0 +1,33 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import torch +from ..config import DeepSpeedInferenceConfig +from .base import BaseOp + + +class RMSNormOp(BaseOp): + + def __init__(self, config: DeepSpeedInferenceConfig = None): + if config is None: + config = DeepSpeedInferenceConfig() + super(RMSNormOp, self).__init__(config) + try: + self.rms_norm_func = self.inference_module.rms_norm + except AttributeError: + self.rms_norm_func = self.rms_norm_fallback + + @staticmethod + def rms_norm_fallback(vals, gamma, epsilon): + variance = vals.to(torch.float32).pow(2).mean(-1, keepdim=True) + vals = vals * torch.rsqrt(variance + epsilon) + + if gamma.dtype in [torch.float16, torch.bfloat16]: + vals = vals.to(gamma.dtype) + + return gamma * vals + + def forward(self, vals, gamma, epsilon): + return self.rms_norm_func(vals, gamma, epsilon) diff --git a/deepspeed/ops/transformer/inference/op_binding/softmax.py b/deepspeed/ops/transformer/inference/op_binding/softmax.py index bc309d94df14..2e08541596fa 100644 --- a/deepspeed/ops/transformer/inference/op_binding/softmax.py +++ b/deepspeed/ops/transformer/inference/op_binding/softmax.py @@ -3,11 +3,11 @@ # DeepSpeed Team -import os import torch import torch.nn.functional as F from ..config import DeepSpeedInferenceConfig from .base import BaseOp +from deepspeed.ops.transformer.inference.op_binding.workspace import InferenceContext class SoftmaxOp(BaseOp): @@ -25,24 +25,42 @@ def __init__(self, config: DeepSpeedInferenceConfig): except AttributeError: self.softmax_func = self.softmax_fallback - def softmax_fallback(self, attn_scores, attn_mask, alibi, triangular, recompute, local_attention, window_size, - async_op, layer_scale, head_offset, mp_size): - if os.environ.get('DS_KI_FALLBACK') == 'True': - alibi = alibi[head_offset:head_offset + self.num_attention_heads_per_partition] - input_dtype = attn_scores.dtype - if (triangular): - tri = ~torch.tril(torch.ones(attn_scores.size(), device=attn_scores.device)).to(bool) - attn_scores = torch.masked_fill(attn_scores * layer_scale, tri, torch.finfo(input_dtype).min) - if alibi is not None: - attn_scores += alibi - if attn_mask is not None: - # expand atten_mask from two dim into 4 dim, insert two dims in the middle + @staticmethod + def softmax_fallback(attn_scores, attn_mask, alibi, triangular, recompute, local_attention, window_size, async_op, + layer_scale, head_offset, mp_size): + scores_len = len(attn_scores.size()) + heads = 1 + if scores_len > 1: + heads = attn_scores.size()[1] + num_attention_heads_per_partition = heads // mp_size + + if alibi is not None: + if len(alibi.shape) == 1: + alibi = None + else: + alibi = alibi[head_offset:head_offset + num_attention_heads_per_partition] + if attn_mask is not None and len(attn_mask.shape) == 1: + attn_mask = None + input_dtype = attn_scores.dtype + attn_scores *= layer_scale + + if alibi is not None: + attn_scores += alibi + if attn_mask is not None: + # expand atten_mask from two dim into 4 dim, insert two dims in the middle + if len(attn_mask.shape) == 2: attn_mask = attn_mask[:, None, None, :] - attn_scores += attn_mask - output = F.softmax(attn_scores, dim=-1, dtype=torch.float32).to(input_dtype) - return output - else: - raise NotImplementedError + attn_scores += attn_mask + if triangular: + if attn_scores.shape[2] == 1: # query using kv cache + token_idx = InferenceContext.Instance().current_tokens() + tri = torch.arange(attn_scores.shape[2], device=attn_scores.device).ge(token_idx) + else: + tri = ~torch.tril(torch.ones(attn_scores.size(), device=attn_scores.device)).to(bool) + attn_scores = torch.masked_fill(attn_scores, tri, float('-inf')) + output = F.softmax(attn_scores, dim=-1, dtype=torch.float32).to(input_dtype) + + return output def forward(self, attn_scores: torch.Tensor, attn_mask: torch.Tensor, alibi: torch.Tensor, triangular: bool, recompute: bool, local_attention: bool, window_size: int, async_op: bool, layer_scale: float, diff --git a/deepspeed/ops/transformer/inference/op_binding/softmax_context.py b/deepspeed/ops/transformer/inference/op_binding/softmax_context.py index 0dc4e08a3633..d745df678e93 100644 --- a/deepspeed/ops/transformer/inference/op_binding/softmax_context.py +++ b/deepspeed/ops/transformer/inference/op_binding/softmax_context.py @@ -7,6 +7,8 @@ from deepspeed import comm as dist from ..config import DeepSpeedInferenceConfig from .base import BaseOp +from .softmax import SoftmaxOp +from deepspeed.ops.transformer.inference.op_binding.workspace import InferenceContext class SoftmaxContextOp(BaseOp): @@ -23,13 +25,108 @@ def __init__(self, config: DeepSpeedInferenceConfig): except AttributeError: self.softmax_context_func = self.softmax_context_fallback + @staticmethod + def transform4d_0213(x, seq_length): + assert x.dim() == 3, F"Dim {x.dim()} is not supported" + batch_size, num_heads, seq_length_head_dim = x.shape + head_dim = seq_length_head_dim // seq_length + x = x.view(batch_size, num_heads, seq_length, head_dim) + x = x.permute(0, 2, 1, 3) + + return x + + @staticmethod + def repeat_kv(hidden_states: torch.Tensor, n_rep: int) -> torch.Tensor: + batch, num_key_value_heads, slen, head_dim = hidden_states.shape + if n_rep <= 1 or num_key_value_heads == 1: + return hidden_states + + hidden_states = hidden_states[:, :, None, :, :].expand(batch, num_key_value_heads, n_rep, slen, head_dim) + + return hidden_states.reshape(batch, num_key_value_heads * n_rep, slen, head_dim) + + @staticmethod + def bias_add_transform_0213(input, bias, num_heads, trans_count, perform_bias=False): + assert trans_count == 1 or trans_count == 3, F"Trans count {trans_count} is not supported" + assert input.dim() == 3, F"Dim {input.dim()} is not supported" + input_biased = torch.add(input, bias) if perform_bias else input + batch_size, seq_length, value_size = input_biased.shape + hid_dim = value_size // trans_count + head_dim = hid_dim // num_heads + + if trans_count == 1: + query_layer = input.view(batch_size, seq_length, num_heads, head_dim) + query_layer = query_layer.permute(0, 2, 1, 3) + key_layer = torch.zeros_like(query_layer) + value_layer = torch.zeros_like(query_layer) + return query_layer, key_layer, value_layer + + qkv_layers = input.view(batch_size, seq_length, 3, num_heads, head_dim) + query_layer, key_layer, value_layer = qkv_layers[..., 0, :, :], qkv_layers[..., 1, :, :], qkv_layers[..., + 2, :, :] + query_layer = query_layer.transpose(1, 2) + key_layer = key_layer.transpose(1, 2) + value_layer = value_layer.transpose(1, 2) + + return query_layer, key_layer, value_layer + def softmax_context_fallback(self, query_key_value, attn_mask, rotary_dim, rotate_half, rotate_every_two, heads, num_kv, norm_factor, triangular_masking, local_attention, window_size, no_masking, - layer_id, num_layers, alibi, rope_theta): - raise NotImplementedError + layer_id, num_layers, alibi, rope_theta, is_prompt, token_idx, position_ids): + bat_0213_query, bat_0213_key, bat_0213_value = self.bias_add_transform_0213( + query_key_value, None, heads, 3, False) + + if rotary_dim > 0 and rotate_half: + from transformers.models.llama.modeling_llama import apply_rotary_pos_emb + + rotary = InferenceContext.Instance().get_rotary(rotary_dim, rope_theta, bat_0213_value.device) + cos, sin = rotary(bat_0213_value, InferenceContext.Instance().get_max_tokens_num()) + bat_0213_query, bat_0213_key = apply_rotary_pos_emb(bat_0213_query, bat_0213_key, cos, sin, position_ids) + + bat_0213_key, bat_0213_value = InferenceContext.Instance().update_cache(layer_id, token_idx, is_prompt, + bat_0213_key, bat_0213_value) + + bat_0213_key = self.repeat_kv(bat_0213_key, num_kv) + bat_0213_value = self.repeat_kv(bat_0213_value, num_kv) + + bsz = query_key_value.shape[0] + head_dim = query_key_value.shape[2] // (heads * 3) + + bmm_output = torch.bmm(bat_0213_query.reshape(bsz * heads, bat_0213_query.shape[2], head_dim), + bat_0213_key.reshape(bsz * heads, bat_0213_key.shape[2], head_dim).transpose(1, 2)) + + layer_scale = 1.0 + if alibi is not None and len(alibi.shape) > 1: + layer_scale = max(1, layer_id).to(float) + + alpha = norm_factor * norm_factor / layer_scale + bmm_output *= alpha + bmm_output_reshape = bmm_output.reshape(bsz, heads, bmm_output.shape[1], bmm_output.shape[2]) + + recompute = is_prompt + if attn_mask is not None and len(attn_mask.shape) > 1 and attn_mask.shape[-1] < bmm_output_reshape.shape[3]: + attn_mask = torch.nn.functional.pad(attn_mask, (0, bmm_output_reshape.shape[3] - attn_mask.shape[-1]), + value=torch.finfo(attn_mask.dtype).min) + softmax_output = SoftmaxOp.softmax_fallback(bmm_output_reshape, attn_mask, alibi, triangular_masking, + recompute, local_attention, window_size, None, layer_scale, 0, 1) + + output = torch.bmm(softmax_output.reshape(bsz * heads, softmax_output.shape[2], softmax_output.shape[3]), + bat_0213_value.reshape(bsz * heads, bat_0213_value.shape[2], head_dim)) + + output = output.reshape(bsz, heads, output.shape[1], head_dim) + output = output.reshape(bsz, heads, output.shape[2] * head_dim) + input_seq_len = query_key_value.shape[1] + t4d_0123_output = self.transform4d_0213(output, input_seq_len) + t4d_0123_output = t4d_0123_output.reshape(bsz, t4d_0123_output.shape[1], heads * head_dim) + + if layer_id == num_layers - 1: + InferenceContext.Instance().advance_tokens() + + return t4d_0123_output, bat_0213_key, bat_0213_value def forward(self, query_key_value: torch.Tensor, attn_mask: torch.Tensor, heads: int, num_kv: int, - norm_factor: float, no_masking: bool, layer_id: int, num_layers: int, alibi: torch.Tensor): + norm_factor: float, no_masking: bool, layer_id: int, num_layers: int, alibi: torch.Tensor, + is_prompt: bool, token_idx: torch.Tensor, position_ids: torch.Tensor): if alibi is not None: batch_heads = query_key_value.shape[0] * heads @@ -42,6 +139,6 @@ def forward(self, query_key_value: torch.Tensor, attn_mask: torch.Tensor, heads: self.config.rotate_every_two, heads, num_kv, norm_factor, self.config.triangular_masking, self.config.local_attention, self.config.window_size, no_masking, layer_id, num_layers, alibi, - self.config.rope_theta) + self.config.rope_theta, is_prompt, token_idx, position_ids) return output diff --git a/deepspeed/ops/transformer/inference/op_binding/vector_add.py b/deepspeed/ops/transformer/inference/op_binding/vector_add.py new file mode 100644 index 000000000000..015340a1084b --- /dev/null +++ b/deepspeed/ops/transformer/inference/op_binding/vector_add.py @@ -0,0 +1,28 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from ..config import DeepSpeedInferenceConfig +from .base import BaseOp + + +class VectorAddOp(BaseOp): + + def __init__(self, config: DeepSpeedInferenceConfig = None): + if config is None: + config = DeepSpeedInferenceConfig() + super(VectorAddOp, self).__init__(config) + try: + self.vector_add_func = self.inference_module._vector_add + except AttributeError: + self.vector_add_func = self.vector_add_fallback + + @classmethod + def vector_add_fallback(cls, a, b, gamma): + """Based on csrc/transformer/inference/csrc/pt_binding.cpp code of _vector_add""" + dtype = a.dtype + return (gamma * a.float() + b.float()).to(dtype) + + def forward(self, a, b, gamma): + return self.vector_add_func(a, b, gamma) diff --git a/deepspeed/ops/transformer/inference/op_binding/vector_matmul.py b/deepspeed/ops/transformer/inference/op_binding/vector_matmul.py index 011be859634d..cabab8d8c4ab 100644 --- a/deepspeed/ops/transformer/inference/op_binding/vector_matmul.py +++ b/deepspeed/ops/transformer/inference/op_binding/vector_matmul.py @@ -3,7 +3,6 @@ # DeepSpeed Team -import os import torch from ..config import DeepSpeedInferenceConfig from .base import BaseOp @@ -25,7 +24,7 @@ def __init__(self, config: DeepSpeedInferenceConfig): else: self.vector_matmul_func = self.inference_module.vector_matmul_fp16 elif self.config.dtype == torch.int8: - self.vector_matmul_func = self.inference_module.vector_matmul_fp16 + self.vector_matmul_func = self.inference_module.vector_matmul_int8 elif self.config.dtype == torch.bfloat16: self.vector_matmul_func = self.inference_module.vector_matmul_bf16 else: @@ -34,10 +33,7 @@ def __init__(self, config: DeepSpeedInferenceConfig): self.vector_matmul_func = self.vector_matmul_fallback def vector_matmul_fallback(self, input, weight, async_op, q_scale, q_int8, transpose): - if os.environ.get('DS_KI_FALLBACK') == 'True' and not transpose: - return torch.matmul(input, weight) - else: - raise NotImplementedError + return torch.matmul(input, weight.t() if transpose else weight) def forward(self, input: torch.Tensor, weight: torch.Tensor, async_op: bool = False): q_scale = weight.scale if hasattr(weight, 'scale') else torch.empty(1) diff --git a/deepspeed/ops/transformer/inference/op_binding/workspace.py b/deepspeed/ops/transformer/inference/op_binding/workspace.py new file mode 100644 index 000000000000..19de7d9576af --- /dev/null +++ b/deepspeed/ops/transformer/inference/op_binding/workspace.py @@ -0,0 +1,222 @@ +# Copyright (c) 2023 Habana Labs, Ltd. an Intel Company +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import torch +from ..config import DeepSpeedInferenceConfig +from .base import BaseOp + +minus_inf = -10000.0 +key_idx = 0 +value_idx = 1 + + +class InferenceContext: + + __instance = None + + def __init__(self): + self.kv_cache = None + self.kv_cache_elem_dtype = None + self.num_tokens = 1 + self.kv_cache_num_layers = None + self.kv_cache_size = None + self.max_out_tokens = None + self.rotary = None + self.allocate_called = False + self.static_shapes = True + + @classmethod + def Instance(cls): + if InferenceContext.__instance is None: + InferenceContext.__instance = InferenceContext() + return InferenceContext.__instance + + def gen_workspace(self, num_layers, num_heads, batch_size, prompt_len, hidden_dim, mp_size, external_cache, + elem_dtype, rank, max_out_tokens, min_out_tokens): + self.allocate_called = True + self.kv_cache = None + if not external_cache: + self.kv_cache_num_layers = num_layers + self.max_out_tokens = max_out_tokens + head_size = hidden_dim // num_heads + self.kv_cache_size = torch.Size([batch_size, (num_heads // mp_size), max_out_tokens, head_size]) + self.kv_cache_elem_dtype = elem_dtype + self.num_tokens = 0 + self.static_shapes = True + return True + + def retake_workspace(self): + return True + + def _retake_workspace(self): + assert self.allocate_called, "retake workspace called before allocate workspace" + + import deepspeed.accelerator as accelerator + if self.kv_cache is None: + self.kv_cache = [] + for layer in range(self.kv_cache_num_layers): + self.kv_cache.append((torch.zeros(self.kv_cache_size, + dtype=self.kv_cache_elem_dtype, + device=accelerator.get_accelerator().device_name()), + torch.zeros(self.kv_cache_size, + dtype=self.kv_cache_elem_dtype, + device=accelerator.get_accelerator().device_name()))) + + return True + + def update_cache(self, layer_id, token_idx, is_prompt, bat_0213_key, bat_0213_value): + has_workspace = self._retake_workspace() + assert has_workspace, "Could not allocate workspace" + + # Update current token + if is_prompt: + self.static_shapes = True + if token_idx is None: + self.static_shapes = False + InferenceContext.Instance().reset_tokens(bat_0213_key.shape[2]) + else: + InferenceContext.Instance().reset_tokens(token_idx) + + if token_idx is None: + token_idx = InferenceContext.Instance().current_tokens() + + bsz = bat_0213_key.shape[0] + + # Update cache content + if is_prompt: + cache_max_seq = self.kv_cache_size[2] + cache_max_head_dim = self.kv_cache_size[3] + seq = bat_0213_key.shape[2] + + mask = torch.arange(cache_max_seq, device=bat_0213_key.device) + mask = mask.ge(token_idx) + mask = mask.unsqueeze(-1) + mask = mask.expand([cache_max_seq, cache_max_head_dim]) + + self.kv_cache[layer_id][key_idx][:bsz, :, :seq, :].copy_(bat_0213_key) + self.kv_cache[layer_id][key_idx][:bsz, :].masked_fill_(mask, 0) + self.kv_cache[layer_id][value_idx][:bsz, :, :seq, :].copy_(bat_0213_value) + self.kv_cache[layer_id][value_idx][:bsz, :].masked_fill_(mask, 0) + else: + if self.static_shapes: + assert type(token_idx) == torch.Tensor, "token_idx is expected to be torch.Tensor" + self.kv_cache[layer_id][key_idx][:bsz].index_copy_(2, token_idx - 1, bat_0213_key) + self.kv_cache[layer_id][value_idx][:bsz].index_copy_(2, token_idx - 1, bat_0213_value) + else: + assert type(token_idx) == int, "token_idx is expected to be int" + self.kv_cache[layer_id][key_idx][:bsz, :, token_idx - 1:token_idx, :] = bat_0213_key + self.kv_cache[layer_id][value_idx][:bsz, :, token_idx - 1:token_idx, :] = bat_0213_value + + bat_0213_key = self.kv_cache[layer_id][key_idx][:bsz] + bat_0213_value = self.kv_cache[layer_id][value_idx][:bsz] + + if not self.static_shapes: + bat_0213_key = bat_0213_key[:, :, :token_idx, :] + bat_0213_value = bat_0213_value[:, :, :token_idx, :] + + return bat_0213_key, bat_0213_value + + def release_workspace(self): + self.kv_cache = None + self.rotary = None + + def reset_tokens(self, initial_tokens=1): + self.num_tokens = initial_tokens + + def current_tokens(self): + return self.num_tokens + + def advance_tokens(self): + self.num_tokens = self.num_tokens + 1 + + def get_kv_cache(self): + return self.kv_cache + + def get_rotary(self, rotary_dim, rope_theta, device=None): + if self.rotary is None: + from transformers.models.llama.modeling_llama import LlamaRotaryEmbedding + + self.rotary = LlamaRotaryEmbedding(rotary_dim, base=rope_theta, device=device) + + return self.rotary + + def get_max_tokens_num(self): + return self.max_out_tokens + + +class WorkspaceOp(BaseOp): + + def __init__(self, config: DeepSpeedInferenceConfig = None): + if config is None: + config = DeepSpeedInferenceConfig() + self.inference_context = InferenceContext.Instance() + self._is_allocated = False + try: + super(WorkspaceOp, self).__init__(config) + if config.dtype == torch.float32: + self.allocate_workspace_func = self.inference_module.allocate_workspace_fp32 + elif config.dtype == torch.bfloat16: + self.allocate_workspace_func = self.inference_module.allocate_workspace_bf16 + else: + self.allocate_workspace_func = self.inference_module.allocate_workspace_fp16 + self.release_workspace_func = self.inference_module.release_workspace + self.retake_workspace_func = self.inference_module.retake_workspace + self.reset_cache_func = self.inference_module.reset_cache + except (ValueError, AttributeError) as e: + print(f"Using fallback functions in workspace because of {e}") + if config.dtype == torch.float32: + self.allocate_workspace_func = self.allocate_workspace_fp32_fallback + elif config.dtype == torch.bfloat16: + self.allocate_workspace_func = self.allocate_workspace_bf16_fallback + else: + self.allocate_workspace_func = self.allocate_workspace_fp16_fallback + self.release_workspace_func = self.release_workspace_fallback + self.retake_workspace_func = self.retake_workspace_fallback + self.reset_cache_func = self.reset_cache_fallback + + def allocate_workspace(self, *args, **kwargs): + self._is_allocated = True + return self.allocate_workspace_func(*args, **kwargs) + + def release_workspace(self): + self._is_allocated = False + return self.release_workspace_func() + + def reset_cache(self): + return self.reset_cache_func() if self.reset_cache_func else None + + def retake_workspace(self): + return self.retake_workspace_func() if self.retake_workspace_func else None + + def allocate_workspace_fp32_fallback(self, hidden_dim, num_heads, prompt_length, batch_size, num_layers, mp_size, + external_cache, rank, max_out_tokens, min_out_tokens): + return self.inference_context.gen_workspace(num_layers, num_heads, batch_size, prompt_length, hidden_dim, + mp_size, external_cache, torch.float, rank, max_out_tokens, + min_out_tokens) + + def allocate_workspace_bf16_fallback(self, hidden_dim, num_heads, prompt_length, batch_size, num_layers, mp_size, + external_cache, rank, max_out_tokens, min_out_tokens): + return self.inference_context.gen_workspace(num_layers, num_heads, batch_size, prompt_length, hidden_dim, + mp_size, external_cache, torch.bfloat16, rank, max_out_tokens, + min_out_tokens) + + def allocate_workspace_fp16_fallback(self, hidden_dim, num_heads, prompt_length, batch_size, num_layers, mp_size, + external_cache, rank, max_out_tokens, min_out_tokens): + return self.inference_context.gen_workspace(num_layers, num_heads, batch_size, prompt_length, hidden_dim, + mp_size, external_cache, torch.half, rank, max_out_tokens, + min_out_tokens) + + def reset_cache_fallback(self): + return self.inference_context.reset_tokens() + + def release_workspace_fallback(self): + return self.inference_context.release_workspace() + + def retake_workspace_fallback(self): + return self.inference_context.retake_workspace() + + def is_allocated(self): + return self._is_allocated diff --git a/deepspeed/ops/transformer/inference/triton/attention.py b/deepspeed/ops/transformer/inference/triton/attention.py index c05370ec74e5..6845d91b06be 100644 --- a/deepspeed/ops/transformer/inference/triton/attention.py +++ b/deepspeed/ops/transformer/inference/triton/attention.py @@ -125,7 +125,7 @@ def _triton_autotune(min_seqlen, context_4d_matmul(output, qkv, head_size) Fp16Matmul._update_autotune_table() - def ds_compute_attention(self, qkv_out, input_mask, layer_past, alibi): + def ds_compute_attention(self, qkv_out, input_mask, layer_past, alibi, is_prompt, token_idx, position_ids): if isinstance(qkv_out, list): qkv_out = qkv_out[0] @@ -143,7 +143,10 @@ def ds_compute_attention(self, qkv_out, input_mask, layer_past, alibi): no_masking=no_masking, layer_id=self.config.layer_id, num_layers=TritonSelfAttention.num_layers, - alibi=alibi) + alibi=alibi, + is_prompt=is_prompt, + token_idx=token_idx, + position_ids=position_ids) context_layer, key_layer, value_layer = attn_key_value return context_layer, key_layer, value_layer @@ -161,7 +164,8 @@ def forward( norm_w=None, norm_b=None, alibi=None, - use_triton_attention=True): + use_triton_attention=True, + **kwargs): if not self.config.pre_layer_norm: qkv_out = self.linear_func(input=input, @@ -192,10 +196,16 @@ def forward( triangular=self.triangular_masking) key_layer, value_layer = qkv[:, :, self.hidden_size:2 * self.hidden_size], qkv[:, :, 2 * self.hidden_size:] else: + is_prompt = kwargs.get("first_token", qkv_out[0].shape[1] > 1) + token_idx = kwargs.get("token_idx", None) + position_ids = kwargs.get("position_ids", None) context_layer, key_layer, value_layer = self.ds_compute_attention(qkv_out=qkv_out, input_mask=input_mask, layer_past=layer_past, - alibi=alibi) + alibi=alibi, + is_prompt=is_prompt, + toke_idx=token_idx, + position_ids=position_ids) output = self.vector_matmul_func(input=context_layer, weight=self.attn_ow) inp_norm = qkv_out[-1] diff --git a/deepspeed/ops/transformer/inference/triton/matmul_ext.py b/deepspeed/ops/transformer/inference/triton/matmul_ext.py index d6f72b4efb0b..9be4b0098c37 100644 --- a/deepspeed/ops/transformer/inference/triton/matmul_ext.py +++ b/deepspeed/ops/transformer/inference/triton/matmul_ext.py @@ -13,12 +13,48 @@ import deepspeed from pathlib import Path import atexit +import subprocess # ----------------------------------------------------------------------------- # util class/functions for triton -def _default_cache_dir(): - return os.path.join(Path.home(), ".triton", "autotune") +def is_nfs_path(path): + if os.name == 'nt': + return False + + # Normalize the path to get the absolute path + path = os.path.abspath(path) + + # Use the 'df' command to find the file system type for the given path + try: + output = subprocess.check_output(['df', '-T', path], encoding='utf-8') + except subprocess.CalledProcessError: + return False # Command failed + + # Process the output of 'df -T' to check for 'nfs' in the filesystem type column + lines = output.strip().split('\n') + if len(lines) > 1: # The first line is headers + fs_type = lines[1].split()[1].lower() # File system type is the second column + return 'nfs' in fs_type + return False + + +class TritonCacheDir: + _warning_printed = False + + @staticmethod + def warn_if_nfs(cache_dir): + if is_nfs_path(cache_dir) and not TritonCacheDir._warning_printed: + print( + f"Warning: The cache directory for DeepSpeed Triton autotune, {cache_dir}, appears to be on an NFS system. While this is generally acceptable, if you experience slowdowns or hanging when DeepSpeed exits, it is recommended to set the TRITON_CACHE_DIR environment variable to a non-NFS path." + ) + TritonCacheDir._warning_printed = True + return + + @staticmethod + def default_cache_dir(): + tmp_path = os.path.join(Path.home(), ".triton", "autotune") + return tmp_path def bias_add_activation(C, bias=None, activation=""): @@ -50,10 +86,10 @@ def __init__(self, key): self.file_path = None self.lock_path = None # if caching is enabled, get the lock and bin path - self.cache_dir = os.environ.get('TRITON_CACHE_DIR', _default_cache_dir()) + self.cache_dir = os.environ.get('TRITON_CACHE_DIR', TritonCacheDir.default_cache_dir()) + TritonCacheDir.warn_if_nfs(self.cache_dir) if self.cache_dir: os.makedirs(self.cache_dir, exist_ok=True) - if self.cache_dir: self.file_path = os.path.join(self.cache_dir, self.key + ".pickle") self.lock_path = self.file_path + ".lock" @@ -66,7 +102,7 @@ def put(self, table): with FileLock(self.lock_path): with open(self.file_path + ".tmp", 'wb') as handle: pickle.dump(table, handle) - os.rename(self.file_path + ".tmp", self.file_path) + os.replace(self.file_path + ".tmp", self.file_path) def load(self): if os.path.exists(self.file_path): diff --git a/deepspeed/ops/transformer/inference/triton/ops.py b/deepspeed/ops/transformer/inference/triton/ops.py index dd87d08d4d2c..dbed45313780 100644 --- a/deepspeed/ops/transformer/inference/triton/ops.py +++ b/deepspeed/ops/transformer/inference/triton/ops.py @@ -3,12 +3,10 @@ # DeepSpeed Team -import deepspeed -from deepspeed.ops.op_builder import InferenceBuilder import deepspeed.ops.transformer.inference.triton.matmul_ext as matmul_ext +from deepspeed.ops.transformer.inference.op_binding.layer_norm import LayerNormOp from deepspeed.ops.transformer.inference.triton.layer_norm import layer_norm, layer_norm_residual - -inference_module = None +from deepspeed.utils.types import ActivationFuncType def vector_matmul_func(input, weight, async_op, q_scale, q_int8, transposed_mode): @@ -76,15 +74,12 @@ def mlp_gemm_func(input, if use_triton_ln: mlp_input = layer_norm_residual(input, input_bias, residual, gamma, beta, epsilon) else: - global inference_module - if inference_module is None: - inference_module = InferenceBuilder().load() - mlp_input = inference_module._layer_norm_residual(input, input_bias, residual, gamma, beta, epsilon) + mlp_input = LayerNormOp.layer_norm_residual(input, input_bias, residual, gamma, beta, epsilon) # activation - if deepspeed.utils.types.ActivationFuncType(mlp_act_func_type) == deepspeed.utils.types.ActivationFuncType.GELU: + if ActivationFuncType(mlp_act_func_type) == ActivationFuncType.GELU: activation = "gelu" - elif deepspeed.utils.types.ActivationFuncType(mlp_act_func_type) == deepspeed.utils.types.ActivationFuncType.ReLU: + elif ActivationFuncType(mlp_act_func_type) == ActivationFuncType.ReLU: activation = "relu" else: activation = "" @@ -121,10 +116,7 @@ def qkv_gemm_func( if use_triton_ln: qkv_input = layer_norm(input, gamma, beta, epsilon) else: - global inference_module - if inference_module is None: - inference_module = InferenceBuilder().load() - qkv_input = inference_module.layer_norm(input, gamma, beta, epsilon) + qkv_input = LayerNormOp()(input, gamma, beta, epsilon) qkv_out = matmul_ext.matmul(qkv_input, weight, bias=(bias if add_bias else None), activation="", use_triton=True) diff --git a/deepspeed/profiling/flops_profiler/README.md b/deepspeed/profiling/flops_profiler/README.md index 82011eb68568..68ac3dc285c7 100644 --- a/deepspeed/profiling/flops_profiler/README.md +++ b/deepspeed/profiling/flops_profiler/README.md @@ -178,7 +178,7 @@ When using DeepSpeed for model training, the profiler can be configured in the d #### Example: Megatron-LM -For information on running Megatron-LM with DeepSpeed, please refer to our tutorial [Megatron-LM](https://github.com/microsoft/DeepSpeedExamples/tree/master/Megatron-LM). +For information on running Megatron-LM with DeepSpeed, please refer to our tutorial [Megatron-LM](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/Megatron-LM). An example output of 12-layer Megatron-LM model (`hidden_size = 8192, num_attention_heads = 32, batch_size = 1024, seq_length = 1024`) is shown below. diff --git a/deepspeed/profiling/flops_profiler/profiler.py b/deepspeed/profiling/flops_profiler/profiler.py index 79e682a73b90..c6b607aad813 100644 --- a/deepspeed/profiling/flops_profiler/profiler.py +++ b/deepspeed/profiling/flops_profiler/profiler.py @@ -15,6 +15,8 @@ from deepspeed.utils import logger from deepspeed.moe.layer import MoE from deepspeed.utils.timer import FORWARD_GLOBAL_TIMER, BACKWARD_GLOBAL_TIMER, STEP_GLOBAL_TIMER +from deepspeed.utils.torch import required_torch_version +import einops Tensor = torch.Tensor @@ -81,6 +83,7 @@ def start_profile(self, ignore_list=None): self.reset_profile() _patch_functionals() _patch_tensor_methods() + _patch_miscellaneous_operations() def register_module_hooks(module, ignore_list): if ignore_list and type(module) in ignore_list: @@ -114,7 +117,7 @@ def start_time_hook(module, input): get_accelerator().synchronize() module.__start_time__ = time.time() - if not hasattr(module, "__start_time_hook_handle"): + if not hasattr(module, "__start_time_hook_handle__"): module.__start_time_hook_handle__ = module.register_forward_pre_hook(start_time_hook) def end_time_hook(module, input, output): @@ -136,6 +139,7 @@ def stop_profile(self): if self.started and self.func_patched: _reload_functionals() _reload_tensor_methods() + _reload_miscellaneous_operations() self.func_patched = False def remove_profile_attrs(module): @@ -786,6 +790,29 @@ def _einsum_flops_compute(equation, *operands): raise NotImplementedError("Unsupported einsum operation.") +def _einops_einsum_flops_compute(*args): + """ + Count flops for the einops.einsum operation. + """ + *operands, equation = args + input_shapes = [o.shape for o in operands] + + # Re-map equation so that same equation with different alphabet + # representations will look the same. + letter_order = OrderedDict((k, 0) for k in equation if k.isalpha()).keys() + mapping = {ord(x): 97 + i for i, x in enumerate(letter_order)} + equation = equation.translate(mapping) + + np_arrs = [np.zeros(s) for s in input_shapes] + optim = np.einsum_path(equation, *np_arrs, optimize="optimal")[1] + for line in optim.split("\n"): + if "optimized flop" in line.lower(): + flop = int(float(line.split(":")[-1])) + return flop, 0 + + raise NotImplementedError("Unsupported einops.einsum operation.") + + def _tensor_addmm_flops_compute(self, mat1, mat2, *, beta=1, alpha=1, out=None): """ Count flops for the tensor addmm operation. @@ -827,6 +854,15 @@ def _elementwise_flops_compute(input, other): return flops, 0 +def _attn_flops_compute(q, k, v, *args, **kwargs): + """ + Count flops for the scaled_dot_product_attention operation. + """ + macs = _prod(q.shape) * k.shape[-2] + macs += _prod(q.shape[:-1]) * k.shape[-2] * v.shape[-1] + return 2 * macs, macs + + def wrapFunc(func, funcFlopCompute): oldFunc = func name = func.__str__ @@ -899,10 +935,15 @@ def _patch_functionals(): # embedding F.embedding = wrapFunc(F.embedding, _embedding_flops_compute) + # attn - scaled_dot_product_attention added in torch 2.0+ + if required_torch_version(min_version=2.0): + F.scaled_dot_product_attention = wrapFunc(F.scaled_dot_product_attention, _attn_flops_compute) + def _patch_tensor_methods(): torch.matmul = wrapFunc(torch.matmul, _matmul_flops_compute) torch.Tensor.matmul = wrapFunc(torch.Tensor.matmul, _matmul_flops_compute) + torch.Tensor.__matmul__ = wrapFunc(torch.Tensor.__matmul__, _matmul_flops_compute) torch.mm = wrapFunc(torch.mm, _matmul_flops_compute) torch.Tensor.mm = wrapFunc(torch.Tensor.mm, _matmul_flops_compute) torch.bmm = wrapFunc(torch.bmm, _matmul_flops_compute) @@ -922,6 +963,10 @@ def _patch_tensor_methods(): torch.baddbmm = wrapFunc(torch.baddbmm, _tensor_addmm_flops_compute) +def _patch_miscellaneous_operations(): + einops.einsum = wrapFunc(einops.einsum, _einops_einsum_flops_compute) + + def _reload_functionals(): # torch.nn.functional does not support importlib.reload() F.linear = old_functions[F.linear.__str__] @@ -980,6 +1025,10 @@ def _reload_tensor_methods(): torch.baddbmm = old_functions[torch.baddbmm.__str__] +def _reload_miscellaneous_operations(): + einops.einsum = old_functions[einops.einsum.__str__] + + def _rnn_flops(flops, rnn_module, w_ih, w_hh, input_size): gates_size = w_ih.shape[0] # matrix matrix mult ih state and internal state diff --git a/deepspeed/pydantic_v1.py b/deepspeed/pydantic_v1.py deleted file mode 100644 index 6aba072ad929..000000000000 --- a/deepspeed/pydantic_v1.py +++ /dev/null @@ -1,16 +0,0 @@ -# Copyright (c) Microsoft Corporation. -# SPDX-License-Identifier: Apache-2.0 - -# DeepSpeed Team -"""Pydantic v1 compatibility module. - -Pydantic v2 introduced breaking changes that hinder its adoption: -https://docs.pydantic.dev/latest/migration/. To provide deepspeed users the option to -migrate to pydantic v2 on their own timeline, deepspeed uses this compatibility module -as a pydantic-version-agnostic alias for pydantic's v1 API. -""" - -try: - from pydantic.v1 import * # noqa: F401 -except ImportError: - from pydantic import * # noqa: F401 diff --git a/deepspeed/runtime/__init__.py b/deepspeed/runtime/__init__.py index 347ff7993d82..208299fb8c50 100644 --- a/deepspeed/runtime/__init__.py +++ b/deepspeed/runtime/__init__.py @@ -2,11 +2,3 @@ # SPDX-License-Identifier: Apache-2.0 # DeepSpeed Team - - -class DeepSpeedOptimizer(object): - pass - - -class ZeROOptimizer(DeepSpeedOptimizer): - pass diff --git a/deepspeed/runtime/activation_checkpointing/checkpointing.py b/deepspeed/runtime/activation_checkpointing/checkpointing.py index 72a7bc0516ba..08c4b81937f9 100644 --- a/deepspeed/runtime/activation_checkpointing/checkpointing.py +++ b/deepspeed/runtime/activation_checkpointing/checkpointing.py @@ -25,17 +25,21 @@ from deepspeed.runtime.config import DeepSpeedConfig from deepspeed.utils import logger -from deepspeed.runtime.utils import copy_to_device, move_to_device, see_memory_usage, bwc_tensor_model_parallel_rank +from deepspeed.runtime.utils import copy_to_device, move_to_device, see_memory_usage from deepspeed.utils.timer import SynchronizedWallClockTimer as Timers, FORWARD_GLOBAL_TIMER +from deepspeed.utils.bwc import bwc_tensor_model_parallel_rank from deepspeed.accelerator import get_accelerator +from deepspeed.runtime import compiler # DeepSpeed Checkpointing Enabled or Disabled deepspeed_checkpointing_enabled = False # MP parameters mpu = None -mp_rank = None -mp_size = None + +#set default values +mp_rank = 0 +mp_size = 1 mp_group = None # Model Parameters @@ -59,8 +63,6 @@ # Default name for the model parallel rng tracker. _MODEL_PARALLEL_RNG_TRACKER_NAME = 'model-parallel-rng' -transport_stream = None -cuda_device = None def detach_variable(inputs, device=None): @@ -289,13 +291,9 @@ def gather_partitioned_activations(tensors, device=None): flat_tensor = torch.zeros([tensor_size], dtype=item.dtype, device=device) else: flat_tensor = torch.zeros([tensor_size], dtype=item.dtype, device=item.device) - partitions = [] - for i in range(mp_size): - part_i = flat_tensor.narrow(0, partition_size * i, partition_size) - if i == mp_rank: - part_i.copy_(item) - partitions.append(part_i) - dist.all_gather(partitions, partitions[mp_rank], group=mp_group) + part = flat_tensor.narrow(0, partition_size * mp_rank, partition_size) + part.copy_(item) + dist.all_gather_into_tensor(flat_tensor, part, group=mp_group) input_tensor = flat_tensor.view(list(size.numpy())) item.data = input_tensor.data @@ -371,7 +369,9 @@ def is_activation_to_checkpoint(item): Is an activation to be checkpointed """ global mp_size - return torch.is_tensor(item) and item.is_floating_point() and item.numel() >= mp_size + extra_flag = (not hasattr(item, 'no_checkpointing')) or (hasattr(item, 'no_checkpointing') + and item.no_checkpointing == False) + return torch.is_tensor(item) and item.is_floating_point() and item.numel() >= mp_size and extra_flag def partition_activations(args, cpu_checkpoint, contiguous_checkpoint): @@ -443,7 +443,9 @@ def get_partitioned_activations_for_backward(args, inputs, contiguous_checkpoint num_non_fp_tensors += 1 continue - arg.data = inp.data + arg.data = torch.empty([], device=arg.device).data + arg.saved_data = inp.data + new_args.append(arg) i = arg_index - num_non_fp_tensors @@ -476,7 +478,8 @@ def get_cpu_activations_for_backward(args, inputs): new_args.append(arg) continue - arg.data = inp.data + arg.data = torch.empty([], device=arg.device).data + arg.saved_data = inp.data new_args.append(arg) return new_args @@ -517,35 +520,10 @@ def save_args_for_backward(*all_args): global mp_rank, mp_size, mp_group global contiguous_data_buffers, contiguous_size_buffers global data_offsets, size_offsets - if mp_rank is None: - if mpu is not None: - if hasattr(mpu, 'get_tensor_model_parallel_rank'): - mp_rank = mpu.get_tensor_model_parallel_rank() - mp_size = mpu.get_tensor_model_parallel_world_size() - mp_group = mpu.get_tensor_model_parallel_group() - else: - mp_rank = mpu.get_model_parallel_rank() - mp_size = mpu.get_model_parallel_world_size() - mp_group = mpu.get_model_parallel_group() - else: - mp_rank = 0 - mp_size = 1 - mp_group = None - - global cuda_device, transport_stream, PARTITION_ACTIVATIONS, buffer_0, buffer_1, buffer_0_offset, buffer_1_offset - - if cuda_device is None: - see_memory_usage("First Forward Beginning", force=False) - if dist.get_rank() == 0: - logger.info(f"Activation Checkpointing Information") - logger.info(f"----Partition Activations {PARTITION_ACTIVATIONS}, CPU CHECKPOINTING {CPU_CHECKPOINT}") - logger.info( - f"----contiguous Memory Checkpointing {CONTIGUOUS_CHECKPOINTING} with {num_layers} total layers") - logger.info(f"----Synchronization {SYNCHRONIZE}") - logger.info(f"----Profiling time in checkpointing {PROFILE_TIME}") + global PARTITION_ACTIVATIONS, buffer_0, buffer_1, buffer_0_offset, buffer_1_offset - cuda_device = get_accelerator().current_device_name() - transport_stream = get_accelerator().Stream(device=cuda_device) + cuda_device = get_accelerator().current_device_name() + transport_stream = get_accelerator().Stream(device=cuda_device) if PARTITION_ACTIVATIONS: inputs = partition_activations(args, CPU_CHECKPOINT, CONTIGUOUS_CHECKPOINTING) @@ -630,7 +608,14 @@ def backward(ctx, *grads): raise RuntimeError("Checkpointing is not compatible with .grad(), " "please use .backward() if possible") - global cuda_device, transport_stream, PARTITION_ACTIVATIONS + global PARTITION_ACTIVATIONS + cuda_device = get_accelerator().current_device_name() + transport_stream = get_accelerator().Stream(device=cuda_device) + # Rebuild deepspeed_saved_tensors + for t in ctx.deepspeed_saved_tensors: + if t is not None and hasattr(t, 'saved_data') and t.saved_data is not None: + t.data = t.saved_data.to(t.device) + t.saved_data = None if PARTITION_ACTIVATIONS: # with get_accelerator().stream(transport_stream): @@ -757,35 +742,10 @@ def save_args_for_backward(*all_args): global mp_rank, mp_size, mp_group global contiguous_data_buffers, contiguous_size_buffers global data_offsets, size_offsets - if mp_rank is None: - if mpu is not None: - if hasattr(mpu, 'get_tensor_model_parallel_rank'): - mp_rank = mpu.get_tensor_model_parallel_rank() - mp_size = mpu.get_tensor_model_parallel_world_size() - mp_group = mpu.get_tensor_model_parallel_group() - else: - mp_rank = mpu.get_model_parallel_rank() - mp_size = mpu.get_model_parallel_world_size() - mp_group = mpu.get_model_parallel_group() - else: - mp_rank = 0 - mp_size = 1 - mp_group = None - - global cuda_device, transport_stream, PARTITION_ACTIVATIONS, buffer_0, buffer_1, buffer_0_offset, buffer_1_offset - - if cuda_device is None: - see_memory_usage("First Forward Beginning", force=False) - if dist.get_rank() == 0: - logger.info(f"Activation Checkpointing Information") - logger.info(f"----Partition Activations {PARTITION_ACTIVATIONS}, CPU CHECKPOINTING {CPU_CHECKPOINT}") - logger.info( - f"----contiguous Memory Checkpointing {CONTIGUOUS_CHECKPOINTING} with {num_layers} total layers") - logger.info(f"----Synchronization {SYNCHRONIZE}") - logger.info(f"----Profiling time in checkpointing {PROFILE_TIME}") + global PARTITION_ACTIVATIONS, buffer_0, buffer_1, buffer_0_offset, buffer_1_offset - cuda_device = get_accelerator().current_device_name() - transport_stream = get_accelerator().Stream(device=cuda_device) + cuda_device = get_accelerator().current_device_name() + transport_stream = get_accelerator().Stream(device=cuda_device) if PARTITION_ACTIVATIONS: inputs = partition_activations(args, CPU_CHECKPOINT, CONTIGUOUS_CHECKPOINTING) @@ -892,7 +852,9 @@ def replay_unpack(none_value): raise RuntimeError("Checkpointing is not compatible with .grad(), " "please use .backward() if possible") - global cuda_device, transport_stream, PARTITION_ACTIVATIONS + global PARTITION_ACTIVATIONS + cuda_device = get_accelerator().current_device_name() + transport_stream = get_accelerator().Stream(device=cuda_device) # gather inputs which is partitioned or checkpointed before first forward if PARTITION_ACTIVATIONS: @@ -958,8 +920,9 @@ def after_backward_hook(_nonuse_grads): with torch.autograd.graph.saved_tensors_hooks(checkpoint_pack, checkpoint_unpack): outputs = function(*inputs_cuda) - for leaf_tensor in leaf_tensors: - leaf_tensor.register_hook(after_backward_hook) + if PROFILE_TIME or SYNCHRONIZE: + for leaf_tensor in leaf_tensors: + leaf_tensor.register_hook(after_backward_hook) see_memory_usage("After running forward on the layer", force=False) @@ -981,6 +944,7 @@ def after_backward_hook(_nonuse_grads): return tuple(all_outputs) +@compiler.disable # WA from Pytorch repo for compile + zero 3 accuracy issue def checkpoint(function, *args): """Checkpoint a model or part of the model. This has been directly copied from torch.utils.checkpoint. """ @@ -1143,6 +1107,27 @@ def configure( if CONTIGUOUS_CHECKPOINTING: assert num_layers is not None, "Must specify the number of layers with contiguous memory checkpointing" + global mp_rank, mp_size, mp_group + + if mpu is not None: + if hasattr(mpu, 'get_tensor_model_parallel_rank'): + mp_rank = mpu.get_tensor_model_parallel_rank() + mp_size = mpu.get_tensor_model_parallel_world_size() + mp_group = mpu.get_tensor_model_parallel_group() + else: + mp_rank = mpu.get_model_parallel_rank() + mp_size = mpu.get_model_parallel_world_size() + mp_group = mpu.get_model_parallel_group() + + #print configuration only once + see_memory_usage("After configuration", force=False) + if dist.get_rank() == 0: + logger.info(f"Activation Checkpointing Information") + logger.info(f"----Partition Activations {PARTITION_ACTIVATIONS}, CPU CHECKPOINTING {CPU_CHECKPOINT}") + logger.info(f"----contiguous Memory Checkpointing {CONTIGUOUS_CHECKPOINTING} with {num_layers} total layers") + logger.info(f"----Synchronization {SYNCHRONIZE}") + logger.info(f"----Profiling time in checkpointing {PROFILE_TIME}") + def is_configured(): """True if deepspeed activation checkpointing has been configured diff --git a/deepspeed/runtime/base_optimizer.py b/deepspeed/runtime/base_optimizer.py new file mode 100644 index 000000000000..d2c54155da89 --- /dev/null +++ b/deepspeed/runtime/base_optimizer.py @@ -0,0 +1,63 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import os +import torch + +from deepspeed.utils import logger +from deepspeed.utils.tensor_fragment import map_to_flat_opt_states +from deepspeed.runtime.utils import bwc_tensor_model_parallel_rank + + +class DeepSpeedOptimizer(object): + pass + + +class ZeROOptimizer(DeepSpeedOptimizer): + + def load_hp_checkpoint_state_from_checkpoint_dir(self, lp_groups_name: str, checkpoint_dir: str) -> None: + checkpoint_dir = os.path.join(checkpoint_dir, "zero") + optim_state_path = os.path.join(checkpoint_dir, "optimizer_state.pt") + assert os.path.isfile( + optim_state_path), f'{optim_state_path} containing optimizer global state is missing! Cannot proceed.' + optim_sd = torch.load(optim_state_path, weights_only=False) + + self._load_global_state(optim_sd) + + tp_rank = bwc_tensor_model_parallel_rank(mpu=self.mpu) + if self.mpu is None: + logger.warning("MPU is not provided, setting tp size to 1 in checkpoint loading.") + tp_world_size = 1 + else: + tp_world_size = self.mpu.get_slice_parallel_world_size() if hasattr(self.mpu, "get_slice_parallel_world_size") \ + else self.mpu.get_tensor_model_parallel_world_size() + + for i, (param_group, + loaded_param_group) in enumerate(zip(self.optimizer.param_groups, optim_sd['param_groups'])): + # We have an assumption that all params in the same param_group have the same keys + opt_keys = set() + steps = [] + + lp_groups = getattr(self, lp_groups_name) + for lp in lp_groups[i]: + if lp._hp_mapping is not None: + #print(f"Loading {self.param_names[lp]} {tp_rank=} {tp_world_size=}") + step = lp.load_hp_checkpoint_state(os.path.join(checkpoint_dir, self.param_names[lp]), tp_rank, + tp_world_size) + for key in lp._hp_mapping.get_optim_state_keys(): + opt_keys.add(key) + steps.append(step) + + hp_param = param_group['params'][0] + assert all(step == steps[0] for step in steps), f"Steps {steps} are not equal" + if steps[0] is not None: + self.optimizer.state[hp_param]['step'] = steps[0] + + map_to_flat_opt_states(hp_param, lp_groups[i], self.optimizer.state, opt_keys) + + for key, value in loaded_param_group.items(): + if key == 'params': + continue + param_group[key] = value diff --git a/deepspeed/runtime/bf16_optimizer.py b/deepspeed/runtime/bf16_optimizer.py index 494816e6a846..78895e70df03 100644 --- a/deepspeed/runtime/bf16_optimizer.py +++ b/deepspeed/runtime/bf16_optimizer.py @@ -6,19 +6,18 @@ from collections import OrderedDict import torch import sys -import os from torch._utils import _flatten_dense_tensors, _unflatten_dense_tensors from deepspeed import comm as dist from deepspeed.runtime.constants import PIPE_REPLICATED -from deepspeed.runtime import ZeROOptimizer +from deepspeed.runtime.base_optimizer import ZeROOptimizer from packaging import version as pkg_version - from deepspeed.git_version_info import version from deepspeed.runtime.utils import (get_global_norm_of_tensors, clip_tensors_by_global_norm, DummyOptim, - align_dense_tensors, all_gather_dp_groups, bwc_tensor_model_parallel_rank, - is_model_parallel_parameter, see_memory_usage) - -from deepspeed.utils import link_hp_params, fragment_address + align_dense_tensors, all_gather_dp_groups, is_model_parallel_parameter, + see_memory_usage, graph_process, get_norm_with_moe_layers) +from deepspeed.utils import link_hp_params, lazy_init_hp_params_optimizer_state, fragment_address, groups +from deepspeed.moe.utils import is_moe_param, is_moe_param_group +from deepspeed.utils.bwc import bwc_tensor_model_parallel_rank from deepspeed.checkpoint import enable_universal_checkpoint from deepspeed.checkpoint.constants import (DS_VERSION, PARTITION_COUNT, BASE_OPTIMIZER_STATE, SINGLE_PARTITION_OF_FP32_GROUPS, CLIP_GRAD, GROUP_PADDINGS, @@ -27,6 +26,11 @@ setattr(sys.modules[__name__], 'fragment_address', fragment_address) +def print_rank_0(message, debug=False, force=False): + if dist.get_rank() == 0 and (debug or force): + print(message) + + class BF16_Optimizer(ZeROOptimizer): def __init__(self, @@ -37,7 +41,11 @@ def __init__(self, norm_type=2, allgather_bucket_size=5000000000, dp_process_group=None, - timers=None): + timers=None, + grad_acc_dtype=None, + graph_harvesting=False, + immediate_grad_update=False, + has_moe_layers=False): super().__init__() see_memory_usage('begin bf16_optimizer', force=True) self.timers = timers @@ -45,13 +53,22 @@ def __init__(self, self.param_names = param_names self.using_real_optimizer = not isinstance(self.optimizer, DummyOptim) + assert grad_acc_dtype in [torch.float32, torch.bfloat16 + ], f"BF16Optimizer: Unsupported gradient accumulation data type: {grad_acc_dtype}" + self.grad_acc_dtype = grad_acc_dtype + self.immediate_grad_update = immediate_grad_update + self.clip_grad = clip_grad self.norm_type = norm_type self.mpu = mpu self.allgather_bucket_size = int(allgather_bucket_size) self.dp_process_group = dp_process_group self.dp_rank = dist.get_rank(group=self.dp_process_group) + self.has_moe_layers = has_moe_layers + self.non_expert_gradients = [] self.real_dp_process_group = [dp_process_group for i in range(len(self.optimizer.param_groups))] + if self.has_moe_layers: + self._configure_moe_settings() # Use torch (un)flatten ops self.flatten = _flatten_dense_tensors @@ -76,17 +93,41 @@ def __init__(self, self.fp32_groups_has_gradients = [] self.group_paddings = [] - + self.graph_harvesting = graph_harvesting if self.using_real_optimizer: self._setup_for_real_optimizer() - see_memory_usage('end bf16_optimizer', force=True) + see_memory_usage('end bf16_ optimizer', force=True) + + def destroy(self): + for i, _ in enumerate(self.optimizer.param_groups): + for p in self.bf16_groups[i]: + if getattr(p, '_hp_mapping', None): + p._hp_mapping = None + for hook in self._grad_acc_hooks: + hook.remove() + print_rank_0("Removed grad acc hooks") + + def _configure_moe_settings(self): + assert any( + [is_moe_param_group(group) for group in self.optimizer.param_groups] + ), "The model has moe layers, but None of the param groups are marked as MoE. Create a param group with 'moe' key set to True before creating optimizer" + + for i, group in enumerate(self.optimizer.param_groups): + if is_moe_param_group(group): + assert all([is_moe_param(param) + for param in group['params']]), "All params in MoE group must be MoE params" + self.real_dp_process_group[i] = groups._get_expert_data_parallel_group(group['name']) + self.expert_gradients = {} + if self.has_moe_layers: + for key in groups._get_expert_data_parallel_group_dict().keys(): + self.expert_gradients[key] = [] def _setup_for_real_optimizer(self): - dp_world_size = dist.get_world_size(group=self.dp_process_group) - self.partition_count = [dp_world_size for i in range(len(self.optimizer.param_groups))] + self.partition_count = [dist.get_world_size(group=pg) for pg in self.real_dp_process_group] for i, param_group in enumerate(self.optimizer.param_groups): + real_dp_world_size = dist.get_world_size(group=self.real_dp_process_group[i]) see_memory_usage(f'before initializing group {i}', force=True) partition_id = dist.get_rank(group=self.real_dp_process_group[i]) @@ -98,17 +139,16 @@ def _setup_for_real_optimizer(self): # create flat bf16 params self.bf16_groups_flat.append( self._flatten_dense_tensors_aligned(self.bf16_groups[i], - self.nccl_start_alignment_factor * dp_world_size)) - + self.nccl_start_alignment_factor * real_dp_world_size)) # Make bf16 params point to flat tensor storage self._update_storage_to_flattened_tensor(tensor_list=self.bf16_groups[i], flat_tensor=self.bf16_groups_flat[i]) # divide flat weights into equal sized partitions - partition_size = self.bf16_groups_flat[i].numel() // dp_world_size + partition_size = self.bf16_groups_flat[i].numel() // real_dp_world_size bf16_dp_partitions = [ self.bf16_groups_flat[i].narrow(0, dp_index * partition_size, partition_size) - for dp_index in range(dp_world_size) + for dp_index in range(real_dp_world_size) ] self.bf16_partitioned_groups.append(bf16_dp_partitions) @@ -119,7 +159,12 @@ def _setup_for_real_optimizer(self): num_elem_list = [t.numel() for t in self.bf16_groups[i]] # create fp32 gradients - self.fp32_groups_gradients_flat.append(torch.zeros_like(self.bf16_groups_flat[i], dtype=torch.float32)) + fp32_flat_buffer = torch.zeros_like(self.bf16_groups_flat[i], dtype=self.grad_acc_dtype) + self.fp32_groups_gradients_flat.append(fp32_flat_buffer) + if self.has_moe_layers and is_moe_param_group(param_group): + self.expert_gradients[param_group['name']].append(fp32_flat_buffer) + else: + self.non_expert_gradients.append(fp32_flat_buffer) # track individual fp32 gradients for entire model fp32_gradients = self._split_flat_tensor(flat_tensor=self.fp32_groups_gradients_flat[i], @@ -152,12 +197,13 @@ def _setup_for_real_optimizer(self): see_memory_usage(f'after initializing group {i}', force=True) - see_memory_usage('before initialize_optimizer', force=True) - self.initialize_optimizer_states() - see_memory_usage('end initialize_optimizer', force=True) + self._grad_acc_hooks = [] + if self.immediate_grad_update: + self.create_grad_acc_hooks() # Need optimizer states initialized before linking lp to optimizer state self._link_all_hp_params() + self._hp_optimizer_states_linked = False self._enable_universal_checkpoint() self._param_slice_mappings = self._create_param_mapping() @@ -178,11 +224,12 @@ def _create_param_mapping(self): return param_mapping def _link_all_hp_params(self): - dp_world_size = dist.get_world_size(group=self.dp_process_group) for i, _ in enumerate(self.optimizer.param_groups): + real_dp_world_size = dist.get_world_size(group=self.real_dp_process_group[i]) + # Link bf16 and fp32 params in partition partition_id = dist.get_rank(group=self.real_dp_process_group[i]) - partition_size = self.bf16_groups_flat[i].numel() // dp_world_size + partition_size = self.bf16_groups_flat[i].numel() // real_dp_world_size flat_hp_partition = self.fp32_groups_flat_partition[i] link_hp_params(lp_param_list=self.bf16_groups[i], flat_hp_partition=flat_hp_partition, @@ -192,23 +239,14 @@ def _link_all_hp_params(self): param_group_index=i, partition_start=partition_id * partition_size, partition_size=partition_size, - partition_optimizer_state=self.optimizer.state[flat_hp_partition], dp_group=self.real_dp_process_group[i]) - def initialize_optimizer_states(self): - """Take an optimizer step with zero-valued gradients to allocate internal - optimizer state. - - This helps prevent memory fragmentation by allocating optimizer state at the - beginning of training instead of after activations have been allocated. - """ - for param_partition, grad_partition in zip(self.fp32_groups_flat_partition, - self.fp32_groups_gradient_flat_partition): - param_partition.grad = grad_partition - - self.optimizer.step() - - self.clear_hp_grads() + def _lazy_init_hp_params_optimizer_state(self): + if not self._hp_optimizer_states_linked: + for i, _ in enumerate(self.optimizer.param_groups): + lazy_init_hp_params_optimizer_state(self.bf16_groups[i], self.fp32_groups_flat_partition[i], + self.optimizer.state) + self._hp_optimizer_states_linked = True def _split_flat_tensor(self, flat_tensor, num_elem_list): assert sum(num_elem_list) <= flat_tensor.numel() @@ -234,9 +272,18 @@ def step(self, closure=None): if closure is not None: raise NotImplementedError(f'{self.__class__} does not support closure.') - all_groups_norm = get_global_norm_of_tensors(input_tensors=self.get_grads_for_norm(), - mpu=self.mpu, - norm_type=self.norm_type) + non_expert_grads_for_norm, expert_grads_for_norm = self.get_grads_for_norm() + non_expert_groups_norm = get_global_norm_of_tensors(input_tensors=non_expert_grads_for_norm, + mpu=self.mpu, + norm_type=self.norm_type, + use_graph=self.graph_harvesting) + all_groups_norm = non_expert_groups_norm + if self.has_moe_layers: + all_groups_norm = get_norm_with_moe_layers(non_expert_groups_norm, + mpu=self.mpu, + expert_tensors=expert_grads_for_norm, + norm_type=self.norm_type) + self._global_grad_norm = all_groups_norm assert all_groups_norm > 0. @@ -244,10 +291,24 @@ def step(self, closure=None): clip_tensors_by_global_norm(input_tensors=self.get_grads_for_norm(for_clipping=True), max_norm=self.clip_grad, global_norm=all_groups_norm, - mpu=self.mpu) + mpu=self.mpu, + use_graph=self.graph_harvesting) + + for param_partition, grad_partition in zip(self.fp32_groups_flat_partition, + self.fp32_groups_gradient_flat_partition): + # In case of grad acc dtype different than FP32, need to cast to high precision. + param_partition.grad = grad_partition.to( + param_partition.dtype) if grad_partition.dtype != param_partition.dtype else grad_partition self.optimizer.step() + if self.grad_acc_dtype is not torch.float32: + for param_partition in self.fp32_groups_flat_partition: + param_partition.grad = None + + # We need to link optimizer state after the first step() call + self._lazy_init_hp_params_optimizer_state() + self.update_lp_params() self.clear_hp_grads() @@ -267,48 +328,96 @@ def backward(self, loss, update_hp_grads=True, clear_lp_grads=False, **bwd_kwarg if update_hp_grads: self.update_hp_grads(clear_lp_grads=clear_lp_grads) + @torch.no_grad() + def _update_hp_grad(self, lp, group_idx, param_idx, clear_lp_grads): + if lp.grad is None: + return + + hp_grad = self.fp32_groups_gradients[group_idx][param_idx] + assert hp_grad is not None, \ + f'high precision param has no gradient, lp param_id = {id(lp)} group_info = [{group_idx}][{param_idx}]' + + hp_grad.data.add_(lp.grad.data.to(hp_grad.dtype).view(hp_grad.shape)) + lp._hp_grad = hp_grad + self.fp32_groups_has_gradients[group_idx][param_idx] = True + + # clear gradients + if clear_lp_grads: + lp.grad.zero_() + + @torch.no_grad() + def _update_hp_grads_func(self, clear_lp_grads=False): + for i, group in enumerate(self.bf16_groups): + for j, lp in enumerate(group): + self._update_hp_grad(lp, i, j, clear_lp_grads) + @torch.no_grad() def update_hp_grads(self, clear_lp_grads=False): + if self.immediate_grad_update: + return + + if self.graph_harvesting: + graph_process(False, self._update_hp_grads_func, clear_lp_grads) + else: + self._update_hp_grads_func(clear_lp_grads) + #cpu op for i, group in enumerate(self.bf16_groups): for j, lp in enumerate(group): if lp.grad is None: continue - - hp_grad = self.fp32_groups_gradients[i][j] - assert hp_grad is not None, \ - f'high precision param has no gradient, lp param_id = {id(lp)} group_info = [{i}][{j}]' - - hp_grad.data.add_(lp.grad.data.to(hp_grad.dtype).view(hp_grad.shape)) - lp._hp_grad = hp_grad self.fp32_groups_has_gradients[i][j] = True - # clear gradients - if clear_lp_grads: - lp.grad = None - @torch.no_grad() def get_grads_for_reduction(self): - return self.fp32_groups_gradients_flat + if self.has_moe_layers: + return self.non_expert_gradients, self.expert_gradients + return self.non_expert_gradients, {} @torch.no_grad() def get_grads_for_norm(self, for_clipping=False): - grads = [] + """ + Returns: + tuple[list[Tensor], dict[ep_name, List[Tensor]] | list: + If for_clipping, return all gradients. + Otherwise, separate and return dict of expert_grad and list of non_expert_grad + """ + # (grads, expert_group_name) + expert_grads_for_norm = {} + + # grads + non_expert_grads_for_norm = [] + all_grads_for_clip = [] + tensor_mp_rank = bwc_tensor_model_parallel_rank(mpu=self.mpu) + assert len(self.bf16_groups) == len(self.optimizer.param_groups) for i, group in enumerate(self.bf16_groups): for j, lp in enumerate(group): if not for_clipping: if hasattr(lp, PIPE_REPLICATED) and lp.ds_pipe_replicated: continue - if not (tensor_mp_rank == 0 or is_model_parallel_parameter(lp)): + # skip duplicated parameters. perform norm only on cards with tp_rank=0. + # non-duplicated parameters include: + # - Parameters with tp: Use allreducesum of mp_group. + # - Moe Parameters with ep: Use allreducesum of ep_group. + if not (tensor_mp_rank == 0 or is_model_parallel_parameter(lp) or is_moe_param(lp)): continue if not self.fp32_groups_has_gradients[i][j]: continue - - grads.append(self.fp32_groups_gradients[i][j]) - - return grads + if not for_clipping: + param_group = self.optimizer.param_groups[i] + if self.has_moe_layers and is_moe_param_group(param_group): + if param_group['name'] not in expert_grads_for_norm: + expert_grads_for_norm[param_group['name']] = [] + expert_grads_for_norm[param_group['name']].append(self.fp32_groups_gradients[i][j]) + else: + non_expert_grads_for_norm.append(self.fp32_groups_gradients[i][j]) + else: + all_grads_for_clip.append(self.fp32_groups_gradients[i][j]) + if not for_clipping: + return non_expert_grads_for_norm, expert_grads_for_norm + return all_grads_for_clip @torch.no_grad() def update_lp_params(self): @@ -320,7 +429,8 @@ def update_lp_params(self): # if i == 0: # print_rank_0(f'{fp32_partition[:10]=}', force=True) - all_gather_dp_groups(partitioned_param_groups=self.bf16_partitioned_groups, + all_gather_dp_groups(groups_flat=self.bf16_groups_flat, + partitioned_param_groups=self.bf16_partitioned_groups, dp_process_group=self.real_dp_process_group, start_alignment_factor=self.nccl_start_alignment_factor, allgather_bucket_size=self.allgather_bucket_size) @@ -333,9 +443,20 @@ def clear_hp_grads(self): self.fp32_groups_has_gradients[i] = [False] * len(group) def clear_lp_grads(self): + + # using zero_() fixed memory address for graph replay + set_to_none = False if self.graph_harvesting else True + zero_grads_list = [] for group in self.bf16_groups: for param in group: - param.grad = None + if set_to_none: + param.grad = None + elif param.grad is not None: + if param.grad.grad_fn is not None: + param.grad.detach_() + zero_grads_list.append(param.grad) + if not set_to_none and len(zero_grads_list) > 0: + torch._foreach_zero_(zero_grads_list) def state_dict(self): state_dict = {} @@ -351,20 +472,21 @@ def state_dict(self): # Restore base optimizer fp32 weights bfloat16 weights def _restore_from_bit16_weights(self): - for i, group in enumerate(self.bf16_groups): + for i, (bf16_partitions, + fp32_partition) in enumerate(zip(self.bf16_partitioned_groups, self.fp32_groups_flat_partition)): partition_id = dist.get_rank(group=self.real_dp_process_group[i]) - for bf16_partitions, fp32_partition in zip(self.bf16_partitioned_groups, self.fp32_groups_flat_partition): - fp32_partition.data.copy_(bf16_partitions[partition_id].data) + fp32_partition.data.copy_(bf16_partitions[partition_id].data) def refresh_fp32_params(self): self._restore_from_bit16_weights() def load_state_dict(self, state_dict_list, - checkpoint_folder, + checkpoint_folder=None, load_optimizer_states=True, load_from_fp32_weights=False, - load_serial=None): + load_serial=None, + param_shapes=None): if checkpoint_folder: self._load_universal_checkpoint(checkpoint_folder, load_optimizer_states, load_from_fp32_weights) else: @@ -382,6 +504,7 @@ def _load_legacy_checkpoint(self, state_dict_list, load_optimizer_states=True, l self.clip_grad = current_rank_sd.get(CLIP_GRAD, self.clip_grad) if load_optimizer_states: + print(f"_load_legacy_checkpoint current_rank_sd[BASE_OPTIMIZER_STATE]") self.optimizer.load_state_dict(current_rank_sd[BASE_OPTIMIZER_STATE]) if load_from_fp32_weights: @@ -394,24 +517,42 @@ def _load_legacy_checkpoint(self, state_dict_list, load_optimizer_states=True, l self._link_all_hp_params() def _load_universal_checkpoint(self, checkpoint_folder, load_optimizer_states, load_from_fp32_weights): - self._load_hp_checkpoint_state(checkpoint_folder) + self.load_hp_checkpoint_state_from_checkpoint_dir("bf16_groups", checkpoint_folder) + + def _load_global_state(self, sd): + pass @property def param_groups(self): """Forward the wrapped optimizer's parameters.""" return self.optimizer.param_groups - def _load_hp_checkpoint_state(self, checkpoint_dir): - checkpoint_dir = os.path.join(checkpoint_dir, "zero") - tp_rank = bwc_tensor_model_parallel_rank(mpu=self.mpu) - tp_world_size = self.mpu.get_slice_parallel_world_size() + @property + def state(self): + """Forward the wrapped optimizer's states.""" + return self.optimizer.state - for i, _ in enumerate(self.optimizer.param_groups): - for lp in self.bf16_groups[i]: - if lp._hp_mapping is not None: - #print(f"Loading {self.param_names[lp]} {tp_rank=} {tp_world_size=}") - lp.load_hp_checkpoint_state(os.path.join(checkpoint_dir, self.param_names[lp]), tp_rank, - tp_world_size) + def accumulate_hp_grads_and_remove_lp(self, lp_param, group_idx, param_idx): + assert self.immediate_grad_update + self._update_hp_grad(lp_param, group_idx, param_idx, clear_lp_grads=False) + + def create_grad_acc_hooks(self): + self.grad_accs = [] + for i, param_group in enumerate(self.bf16_groups): + for j, param in enumerate(param_group): + if param.requires_grad: + + def wrapper(param, i, j): + param_tmp = param.expand_as(param) + grad_acc = param_tmp.grad_fn.next_functions[0][0] + + def accumulate_hp_grads_and_remove_lp(*notneeded): + self.accumulate_hp_grads_and_remove_lp(param, i, j) + + self._grad_acc_hooks.append(grad_acc.register_hook(accumulate_hp_grads_and_remove_lp)) + self.grad_accs.append(grad_acc) + + wrapper(param, i, j) def _get_padded_tensor(src_tensor, size): diff --git a/deepspeed/runtime/checkpoint_engine/nebula_checkpoint_engine.py b/deepspeed/runtime/checkpoint_engine/nebula_checkpoint_engine.py index e26e3243c4b5..e834bf0d22d7 100644 --- a/deepspeed/runtime/checkpoint_engine/nebula_checkpoint_engine.py +++ b/deepspeed/runtime/checkpoint_engine/nebula_checkpoint_engine.py @@ -58,7 +58,7 @@ def load(self, path: str, map_location=None): if not self.enable_nebula_load and first_load_flag: self.tag_flag = tag logger.info(f"[Nebula] Disable nebula load. Loading checkpoint from {path} ...") - partition = torch.load(path, map_location=map_location) + partition = torch.load(path, map_location=map_location, weights_only=False) logger.info(f"[Nebula] Disable nebula load. Loaded checkpoint from {path} .") return partition diff --git a/deepspeed/runtime/checkpoint_engine/torch_checkpoint_engine.py b/deepspeed/runtime/checkpoint_engine/torch_checkpoint_engine.py index 5cd44864bb2e..076c638532ad 100644 --- a/deepspeed/runtime/checkpoint_engine/torch_checkpoint_engine.py +++ b/deepspeed/runtime/checkpoint_engine/torch_checkpoint_engine.py @@ -25,7 +25,7 @@ def save(self, state_dict, path: str): def load(self, path: str, map_location=None): logger.info(f"[Torch] Loading checkpoint from {path}...") - partition = torch.load(path, map_location=map_location) + partition = torch.load(path, map_location=map_location, weights_only=False) logger.info(f"[Torch] Loaded checkpoint from {path}.") return partition diff --git a/deepspeed/runtime/comm/coalesced_collectives.py b/deepspeed/runtime/comm/coalesced_collectives.py index b8134b453e39..2fadce52222c 100644 --- a/deepspeed/runtime/comm/coalesced_collectives.py +++ b/deepspeed/runtime/comm/coalesced_collectives.py @@ -8,15 +8,15 @@ """ import math -from typing import List +from typing import List, Any import torch from torch import Tensor from deepspeed import comm as dist -# NOTE: Use torch.distributed's ProcessGroup class until we have our own. -from torch.distributed import ProcessGroup, all_to_all_single +from deepspeed.comm import ProcessGroup, all_to_all_single from deepspeed.accelerator import get_accelerator from deepspeed.utils import instrument_w_nvtx from deepspeed.ops import op_builder +from deepspeed.utils import logger def _torch_reduce_scatter_fn(input_tensor: Tensor, output_tensor: Tensor, group=None, async_op=False, prof=False): @@ -41,9 +41,15 @@ def all_to_all_quant_reduce(tensors: List[Tensor], groups: {}) -> List[Tensor]: output_lst: List[Tensor] = [None] * len(tensors) for idx, tensor in enumerate(tensors): if tensor.dim() == 1: - intra_quant_group = global_world_size output_lst[idx] = reduce_scatter_coalesced([tensor])[0] - continue + elif tensor.numel() % (2 * global_world_size) != 0: + # Due to the constraint of 2-stage all-to-all, the input tensor must be divisible by 2 * global_world_size + # Otherwise, all-to-all cannot be performed because of shape mismatch. + # See more at https://github.com/deepspeedai/DeepSpeed/pull/5056 + logger.warning( + f"qgZ falls back to reduce_scatter because tensor size = {tensor.numel()} is not divisible by (2 * global_world_size) = {2 * global_world_size}. Please consider allocating a new world to enable qgZ" + ) + output_lst[idx] = reduce_scatter_coalesced([tensor])[0] else: intra_quant_group = max(tensor.shape[0], tensor.shape[1], global_world_size) @@ -64,7 +70,86 @@ def all_to_all_quant_reduce(tensors: List[Tensor], groups: {}) -> List[Tensor]: all_to_all_single(global_scale_output, global_scales, group=groups[f'global_{inter_idx}']) final_output = quantizer_module.dequantize(global_output, global_scale_output, global_scale_output.numel(), 4, quantizer_module.Symmetric) + assert final_output.numel( + ) % num_nodes == 0, f"final_output.numel()={final_output.numel()} is not divisible by num_nodes={num_nodes}" + output_lst[idx] = (sum(list(final_output.chunk(num_nodes))) / num_nodes).view(-1) + return output_lst + + +@instrument_w_nvtx +@torch.no_grad() +def all_to_all_loco_quant_reduce( + params: List[Tensor], + groups: {}, + loco_param: Any = None, +) -> List[Tensor]: + global quantizer_module + global loco_idx + if quantizer_module is None: + quantizer_module = op_builder.QuantizerBuilder().load() + local_world_size = get_accelerator().device_count() + global_world_size = dist.get_world_size() + num_nodes = global_world_size // local_world_size + this_rank = dist.get_rank() + intra_idx = int(this_rank / local_world_size) + inter_idx = this_rank % local_world_size + output_lst: List[Tensor] = [None] * len(params) + for idx, p in enumerate(params): + tensor = p.grad + if tensor.dim() == 1: + output_lst[idx] = reduce_scatter_coalesced([tensor])[0] + elif tensor.numel() % (2 * global_world_size) != 0: + # Due to the constraint of 2-stage all-to-all, the input tensor must be divisible by 2 * global_world_size + # Otherwise, all-to-all cannot be performed because of shape mismatch. + # See more at https://github.com/deepspeedai/DeepSpeed/pull/5056 + logger.warning( + f"qgZ falls back to reduce_scatter because tensor size = {tensor.numel()} is not divisible by (2 * global_world_size) = {2 * global_world_size}. Please consider allocating a new world to enable qgZ" + ) + output_lst[idx] = reduce_scatter_coalesced([tensor])[0] + else: + err_beta = loco_param['err_beta'] + reset_T = loco_param['reset_T'] + if not hasattr(p, 'intra_ef_buf') or loco_idx > reset_T: + loco_idx = 0 + intra_err = torch.zeros_like(p.grad) + inter_err = torch.zeros(tensor.numel() // local_world_size, device=tensor.device, dtype=tensor.dtype) + else: + intra_err = quantizer_module.dequantize(p.intra_ef_buf[0], p.intra_ef_buf[1], + p.intra_ef_buf[1].numel(), 8, quantizer_module.Symmetric) + inter_err = quantizer_module.dequantize(p.inter_ef_buf[0], p.inter_ef_buf[1], + p.inter_ef_buf[1].numel(), 8, quantizer_module.Symmetric) + + intra_quant_group = max(tensor.shape[0], tensor.shape[1], global_world_size) + inter_quant_group = intra_quant_group // local_world_size + intra_quant_int4, intra_q_scales = quantizer_module.loco_swizzle_quant(tensor, intra_err, err_beta, + intra_quant_group, 4, + quantizer_module.Symmetric, 1, + num_nodes, local_world_size) + local_output = torch.empty_like(intra_quant_int4) + scale_output = torch.empty_like(intra_q_scales) + all_to_all_single(local_output, intra_quant_int4, group=groups[f'local_{intra_idx}']) + all_to_all_single(scale_output, intra_q_scales, group=groups[f'local_{intra_idx}']) + + p.intra_ef_buf = quantizer_module.quantize(intra_err, intra_quant_group, 8, quantizer_module.Symmetric) + + global_input_tensor, global_scales = quantizer_module.loco_quantized_reduction( + local_output, scale_output, inter_err, err_beta, intra_quant_group, inter_quant_group, 4, + quantizer_module.Symmetric, local_world_size) + + global_output = torch.empty_like(global_input_tensor) + global_scale_output = torch.empty_like(global_scales) + all_to_all_single(global_output, global_input_tensor, group=groups[f'global_{inter_idx}']) + all_to_all_single(global_scale_output, global_scales, group=groups[f'global_{inter_idx}']) + + p.inter_ef_buf = quantizer_module.quantize(inter_err, inter_quant_group, 8, quantizer_module.Symmetric) + + final_output = quantizer_module.dequantize(global_output, global_scale_output, global_scale_output.numel(), + 4, quantizer_module.Symmetric) + assert final_output.numel( + ) % num_nodes == 0, f"final_output.numel()={final_output.numel()} is not divisible by num_nodes={num_nodes}" output_lst[idx] = (sum(list(final_output.chunk(num_nodes))) / num_nodes).view(-1) + loco_idx += 1 + return output_lst diff --git a/deepspeed/runtime/comm/compressed.py b/deepspeed/runtime/comm/compressed.py new file mode 100644 index 000000000000..2c5482eb1ad7 --- /dev/null +++ b/deepspeed/runtime/comm/compressed.py @@ -0,0 +1,137 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import numpy as np +import torch +import deepspeed.comm as dist +from deepspeed.accelerator import get_accelerator +from deepspeed.ops.op_builder import PackbitsBuilder + + +class CompressedBackend(object): + + def __init__(self, mpu=None): + if mpu is None: + self.world_group = dist.new_group(ranks=range(dist.get_world_size())) + else: + self.mpu = mpu + self.world_group = self.mpu.get_data_parallel_group() + self.size = dist.get_world_size(group=self.world_group) + self.rank = dist.get_rank(group=self.world_group) + self.packer = PackbitsBuilder().load() + + def my_igather(self, rank, size, group, sendbuf, recvbuf, root): + req = [] + if rank == root: + for idx in range(size): + if idx != rank: + req.append(dist.irecv(recvbuf[idx], src=idx, group=group)) + else: + recvbuf[rank] = sendbuf + else: + req.append(dist.isend(sendbuf, group=group, dst=root)) + return req + + def my_gather(self, rank, size, group, sendbuf, recvbuf, root): + if rank == root: + for idx in range(size): + if idx != rank: + dist.recv(recvbuf[idx], src=idx, group=group) + else: + recvbuf[rank] = sendbuf + else: + dist.send(sendbuf, group=group, dst=root) + + def pack(self, buffer, size): + # pack float tensor into uint8 tensor + packed = self.packer.packbits(buffer.float(), buffer.numel(), self.rank) + return packed.reshape(size, -1) + + def unpack(self, buffer, size, dtype): + # unpack uint8 to float tensor + unpacked = self.packer.unpackbits(buffer, buffer.numel(), self.rank) + return unpacked.reshape(size, -1).to(dtype) + + def compressed_allreduce(self, buffer_m: torch.tensor, worker_error, server_error, local_rank): + original_shape = buffer_m.size() + if len(original_shape) > 1: + buffer_m = torch.flatten(buffer_m) + + # align size of original_buffer and error + original_size = buffer_m.numel() + worker_error_size = worker_error.numel() + if original_size != worker_error_size: + empty_tensor = torch.zeros(worker_error_size - original_size, device=buffer_m.device) + buffer_m = torch.cat([buffer_m, empty_tensor]) + + buffer_m.add_(worker_error) + worker_scale = torch.linalg.norm(buffer_m) / np.sqrt(torch.numel(buffer_m)) + + worker_error.set_(buffer_m - worker_scale * buffer_m.sign().add_(1).bool().float().add_(-0.5).mul_(2.0)) + + sign_list_packed_tmp = self.pack(buffer_m, self.size).type(torch.int8) + + recvbuf_sign = torch.zeros([self.size, len(sign_list_packed_tmp[self.rank])], + dtype=sign_list_packed_tmp[0].dtype, + device=sign_list_packed_tmp.device) + + sign_list_packed = [sign_list_packed_tmp[idx] for idx in range(self.size)] + + recvbuf_scale = [ + torch.zeros(1, dtype=worker_scale.dtype, device=get_accelerator().current_device_name()) + for _ in range(self.size) + ] + + # communication phase 1 + # all to all for sign + dist.all_to_all_single(recvbuf_sign, torch.stack(sign_list_packed), group=self.world_group) + # all gather for scale + dist.all_gather(recvbuf_scale, worker_scale, group=self.world_group) + + flattened_recvbuf_sign = recvbuf_sign.type(torch.uint8).flatten() + compensated_server_m = self.unpack(flattened_recvbuf_sign, self.size, torch.float32) \ + .mul_(torch.stack(recvbuf_scale).mul_(1 / self.size)).sum(0) + + compensated_server_m.add_(server_error) + + server_scale = torch.linalg.norm(compensated_server_m) / np.sqrt(compensated_server_m.numel()) + + server_error.set_(compensated_server_m - + server_scale * compensated_server_m.sign().add_(1).bool().float().add_(-0.5).mul_(2.0)) + + server_sign_packed = self.pack(compensated_server_m, 1).type(torch.int8) + + # recvbuf_sign_server + recvbuf_sign_server_tmp = torch.zeros([self.size, len(server_sign_packed[0])], + dtype=recvbuf_sign.dtype, + device=server_sign_packed.device) + + recvbuf_sign_server = [recvbuf_sign_server_tmp[idx] for idx in range(self.size)] + + # recvbuf_scale_server + recvbuf_scale_server_tmp = torch.zeros([self.size, 1], + dtype=worker_scale.dtype, + device=server_sign_packed.device) + + recvbuf_scale_server = [recvbuf_scale_server_tmp[idx] for idx in range(self.size)] + + # communication Phase 2 + dist.all_gather(recvbuf_sign_server, server_sign_packed[0], group=self.world_group) + dist.all_gather(recvbuf_scale_server, server_scale, group=self.world_group) + + recvbuf_sign_server = torch.stack(recvbuf_sign_server) + + flattened_recvbuf_sign_server = recvbuf_sign_server.type(torch.uint8).flatten() + + buffer_m.data.copy_( + self.unpack(flattened_recvbuf_sign_server, self.size, + torch.float32).mul_(recvbuf_scale_server_tmp).flatten().data) + + if original_size != worker_error_size: + buffer_m = buffer_m[0:original_size] + if len(original_shape) > 1: + buffer_m = buffer_m.reshape(original_shape) + + return buffer_m diff --git a/deepspeed/runtime/comm/hccl.py b/deepspeed/runtime/comm/hccl.py new file mode 100644 index 000000000000..b8639c7da4c9 --- /dev/null +++ b/deepspeed/runtime/comm/hccl.py @@ -0,0 +1,124 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import numpy as np +import torch +import torch_npu +import deepspeed.comm as dist + + +class HcclBackend(object): + + def __init__(self, mpu=None): + if mpu is None: + self.world_group = dist.new_group(ranks=range(dist.get_world_size())) + else: + self.mpu = mpu + self.world_group = self.mpu.get_data_parallel_group() + self.size = dist.get_world_size(group=self.world_group) + self.rank = dist.get_rank(group=self.world_group) + + def my_igather(self, rank, size, group, sendbuf, recvbuf, root): + req = [] + if rank == root: + for idx in range(size): + if idx != rank: + req.append(dist.irecv(recvbuf[idx], src=idx, group=group)) + else: + recvbuf[rank] = sendbuf + else: + req.append(dist.isend(sendbuf, group=group, dst=root)) + return req + + def my_gather(self, rank, size, group, sendbuf, recvbuf, root): + if rank == root: + for idx in range(size): + if idx != rank: + dist.recv(recvbuf[idx], src=idx, group=group) + else: + recvbuf[rank] = sendbuf + else: + dist.send(sendbuf, group=group, dst=root) + + def compressed_allreduce(self, buffer_m: torch.tensor, worker_error, server_error, local_rank): + original_shape = buffer_m.size() + if len(original_shape) > 1: + buffer_m = torch.flatten(buffer_m) + + # align size of original_buffer and error + original_size = buffer_m.numel() + worker_error_size = worker_error.numel() + if original_size != worker_error_size: + empty_tensor = torch.zeros(worker_error_size - original_size, device=buffer_m.device) + buffer_m = torch.cat([buffer_m, empty_tensor]) + + buffer_m.add_(worker_error) + worker_scale = torch.linalg.norm(buffer_m) / np.sqrt(torch.numel(buffer_m)) + + worker_error.set_(buffer_m - worker_scale * buffer_m.sign().add_(1).bool().float().add_(-0.5).mul_(2.0)) + + sign_list_packed_tmp = torch_npu.npu_sign_bits_pack(buffer_m, self.size).type(torch.int8) + + recvbuf_sign = torch.zeros([self.size, len(sign_list_packed_tmp[self.rank])], + dtype=sign_list_packed_tmp[0].dtype, + device=sign_list_packed_tmp.device) + + sign_list_packed = [sign_list_packed_tmp[idx] for idx in range(self.size)] + + recvbuf_scale = [ + torch.zeros(1, dtype=worker_scale.dtype, device=torch.device(local_rank)) for _ in range(self.size) + ] + + # communication phase 1 + # all to all for sign + dist.all_to_all_single(recvbuf_sign, torch.stack(sign_list_packed), group=self.world_group) + # all gather for scale + dist.all_gather(recvbuf_scale, worker_scale, group=self.world_group) + + flattened_recvbuf_sign = recvbuf_sign.type(torch.uint8).flatten() + compensated_server_m = torch_npu.npu_sign_bits_unpack(flattened_recvbuf_sign, self.size, torch.float32) \ + .mul_(torch.stack(recvbuf_scale).mul_(1 / self.size)).sum(0) + + compensated_server_m.add_(server_error) + + server_scale = torch.linalg.norm(compensated_server_m) / np.sqrt(compensated_server_m.numel()) + + server_error.set_(compensated_server_m - + server_scale * compensated_server_m.sign().add_(1).bool().float().add_(-0.5).mul_(2.0)) + + server_sign_packed = torch_npu.npu_sign_bits_pack(compensated_server_m, 1).type(torch.int8) + + # recvbuf_sign_server + recvbuf_sign_server_tmp = torch.zeros([self.size, len(server_sign_packed[0])], + dtype=recvbuf_sign.dtype, + device=server_sign_packed.device) + + recvbuf_sign_server = [recvbuf_sign_server_tmp[idx] for idx in range(self.size)] + + # recvbuf_scale_server + recvbuf_scale_server_tmp = torch.zeros([self.size, 1], + dtype=worker_scale.dtype, + device=server_sign_packed.device) + + recvbuf_scale_server = [recvbuf_scale_server_tmp[idx] for idx in range(self.size)] + + # communication Phase 2 + dist.all_gather(recvbuf_sign_server, server_sign_packed[0], group=self.world_group) + dist.all_gather(recvbuf_scale_server, server_scale, group=self.world_group) + + recvbuf_sign_server = torch.stack(recvbuf_sign_server) + + flattened_recvbuf_sign_server = recvbuf_sign_server.type(torch.uint8).flatten() + + buffer_m.data.copy_( + torch_npu.npu_sign_bits_unpack(flattened_recvbuf_sign_server, self.size, + torch.float32).mul_(recvbuf_scale_server_tmp).flatten().data) + + if original_size != worker_error_size: + buffer_m = buffer_m[0:original_size] + if len(original_shape) > 1: + buffer_m = buffer_m.reshape(original_shape) + + return buffer_m diff --git a/deepspeed/runtime/comm/nccl.py b/deepspeed/runtime/comm/nccl.py index 231f841ae8b7..a57b7519a295 100644 --- a/deepspeed/runtime/comm/nccl.py +++ b/deepspeed/runtime/comm/nccl.py @@ -9,7 +9,7 @@ import numpy as np from deepspeed.runtime.compression.cupy import CupyBackend -from deepspeed.runtime.utils import required_torch_version +from deepspeed.utils.torch import required_torch_version from deepspeed.accelerator import get_accelerator diff --git a/deepspeed/runtime/compiler.py b/deepspeed/runtime/compiler.py new file mode 100644 index 000000000000..be778b83f8bb --- /dev/null +++ b/deepspeed/runtime/compiler.py @@ -0,0 +1,30 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import torch +from deepspeed.utils.torch import required_torch_version + +try: + from torch.compiler import is_compiling as torch_is_compiling +except ImportError: + try: + from torch._dynamo.external_utils import is_compiling as torch_is_compiling + except ImportError: + # Torch does not have compiler support + torch_is_compiling = lambda: False + + +def is_compile_supported(): + return required_torch_version(min_version=2.1) + + +def disable(func): + if is_compile_supported(): + return torch.compiler.disable(func) + return func + + +def is_compiling(): + return torch_is_compiling() diff --git a/deepspeed/runtime/compression/cupy.py b/deepspeed/runtime/compression/cupy.py index b959a9c20372..7133ac04ed2b 100644 --- a/deepspeed/runtime/compression/cupy.py +++ b/deepspeed/runtime/compression/cupy.py @@ -14,10 +14,10 @@ def __init__(self): pass def torch2cupy(self, tensor): - return cupy.fromDlpack(to_dlpack(tensor)) + return cupy.from_dlpack(to_dlpack(tensor)) def cupy2torch(self, cupy_tensor): - return from_dlpack(cupy_tensor.toDlpack()) + return from_dlpack(cupy_tensor) def compress_by_chunk(self, cupy_bool_tensor, num_chunks): packed_sign = cupy.packbits(cupy_bool_tensor) diff --git a/deepspeed/runtime/config.py b/deepspeed/runtime/config.py index b49469b94f11..b6dabc161e8c 100755 --- a/deepspeed/runtime/config.py +++ b/deepspeed/runtime/config.py @@ -62,9 +62,12 @@ from ..compression.constants import * from .swap_tensor.aio_config import get_aio_config +from .tensor_parallel import get_tensor_parallel_config from .data_pipeline.config import get_data_efficiency_enabled, get_data_efficiency_config, get_curriculum_enabled_legacy, get_curriculum_params_legacy from .data_pipeline.constants import * +from ..utils.config import get_timers_config + TENSOR_CORE_ALIGN_SIZE = 8 ADAGRAD_OPTIMIZER = 'adagrad' @@ -168,6 +171,14 @@ def get_bfloat16_enabled(param_dict): return False +def get_bfloat16_immediate_grad_update(param_dict): + for key in [BFLOAT16, BFLOAT16_OLD]: + if key in param_dict.keys(): + return get_scalar_param(param_dict[key], BFLOAT16_IMMEDIATE_GRAD_UPDATE, + BFLOAT16_IMMEDIATE_GRAD_UPDATE_DEFAULT) + return False + + def get_fp16_master_weights_and_grads_enabled(param_dict): if get_fp16_enabled(param_dict): return get_scalar_param(param_dict[FP16], FP16_MASTER_WEIGHTS_AND_GRADS, FP16_MASTER_WEIGHTS_AND_GRADS_DEFAULT) @@ -249,10 +260,10 @@ def get_communication_data_type(param_dict, return torch.float32 elif val == "fp16": return torch.float16 - elif val == "bfp16": + elif val == "bf16": return torch.bfloat16 - raise ValueError(f"Invalid communication_data_type. Supported data types: ['fp16', 'bfp16', 'fp32']. Got: {val}") + raise ValueError(f"Invalid communication_data_type. Supported data types: ['fp16', 'bf16', 'fp32']. Got: {val}") def get_prescale_gradients(param_dict): @@ -279,6 +290,10 @@ def get_gradient_clipping(param_dict): return get_scalar_param(param_dict, GRADIENT_CLIPPING, GRADIENT_CLIPPING_DEFAULT) +def get_graph_harvesting(param_dict): + return get_scalar_param(param_dict, GRAPH_HARVESTING, GRAPH_HARVESTING_DEFAULT) + + def get_sparse_attention(param_dict): if SPARSE_ATTENTION in param_dict.keys(): sparsity = param_dict[SPARSE_ATTENTION] @@ -691,7 +706,7 @@ def write_config(self, filename): class DeepSpeedConfig(object): - def __init__(self, config: Union[str, dict], mpu=None): + def __init__(self, config: Union[str, dict], mpu=None, mesh_device=None): super(DeepSpeedConfig, self).__init__() if isinstance(config, dict): self._param_dict = config @@ -707,14 +722,16 @@ def __init__(self, config: Union[str, dict], mpu=None): ) try: self.global_rank = dist.get_rank() - if mpu is None: - self.world_size = dist.get_world_size() - else: + if mpu is not None: self.world_size = mpu.get_data_parallel_world_size() + elif mesh_device is not None: + self.world_size = dist.get_world_size(mesh_device.get_group(mesh_dim="data_parallel")) + else: + self.world_size = dist.get_world_size() except: self.global_rank = 0 self.world_size = 1 - + logger.info(f"Config mesh_device {mesh_device} world_size = {self.world_size}") # If elastic-mode enabled, update compute + update _param_dict self.elasticity_enabled = elasticity_enabled(self._param_dict) if self.elasticity_enabled: @@ -813,6 +830,7 @@ def _initialize_params(self, param_dict): self.fp16_enabled = get_fp16_enabled(param_dict) self.fp16_auto_cast = get_fp16_auto_cast(param_dict) self.bfloat16_enabled = get_bfloat16_enabled(param_dict) + self.bfloat16_immediate_grad_update = get_bfloat16_immediate_grad_update(param_dict) assert not (self.fp16_enabled and self.bfloat16_enabled), 'bfloat16 and fp16 modes cannot be simultaneously enabled' self.fp16_master_weights_and_gradients = get_fp16_master_weights_and_grads_enabled(param_dict) @@ -823,6 +841,7 @@ def _initialize_params(self, param_dict): self.dynamic_loss_scale_args = get_dynamic_loss_scale_args(param_dict) self.compression_config = get_compression_config(param_dict) + self.graph_harvesting = get_graph_harvesting(param_dict) self.optimizer_name = get_optimizer_name(param_dict) if (self.optimizer_name is not None and self.optimizer_name.lower() in DEEPSPEED_OPTIMIZERS): @@ -894,6 +913,9 @@ def _initialize_params(self, param_dict): self.weight_quantization_config = WeightQuantConfig( **param_dict['weight_quantization']) if 'weight_quantization' in param_dict else None + self.timers_config = get_timers_config(param_dict) + self.tensor_parallel_config = get_tensor_parallel_config(param_dict) + def _batch_assertion(self): train_batch = self.train_batch_size @@ -992,8 +1014,8 @@ def _do_error_check(self): self.gradient_accumulation_steps), "DeepSpeedConfig: {} is not defined".format(GRADIENT_ACCUMULATION_STEPS) if self.zero_enabled: - assert (self.zero_optimization_stage <= - ZeroStageEnum.max_stage), "DeepSpeedConfig: Maximum supported ZeRO stage is {}".format( + assert (self.zero_optimization_stage + <= ZeroStageEnum.max_stage), "DeepSpeedConfig: Maximum supported ZeRO stage is {}".format( ZeroStageEnum.max_stage) if self.fp16_master_weights_and_gradients: diff --git a/deepspeed/runtime/config_utils.py b/deepspeed/runtime/config_utils.py index 5522a8e79d69..d5c3a1548360 100755 --- a/deepspeed/runtime/config_utils.py +++ b/deepspeed/runtime/config_utils.py @@ -5,11 +5,12 @@ """ Collection of DeepSpeed configuration utilities """ -import json import collections -import collections.abc +import json +import torch from functools import reduce -from deepspeed.pydantic_v1 import BaseModel +from pydantic import BaseModel, ConfigDict, field_serializer + from deepspeed.utils import logger @@ -54,67 +55,73 @@ def __init__(self, strict=False, **data): if (not strict): # This is temporary until we refactor all DS configs, allows HF to load models data = {k: v for k, v in data.items() if (v != "auto" or k == "replace_method")} super().__init__(**data) - self._deprecated_fields_check(self) + self._deprecated_fields_check() - def _process_deprecated_field(self, pydantic_config, field): + def _process_deprecated_field(self, dep_field): # Get information about the deprecated field - fields_set = pydantic_config.__fields_set__ - dep_param = field.name - kwargs = field.field_info.extra + pydantic_config = self + fields_set = pydantic_config.model_fields_set + kwargs = pydantic_config.model_fields[dep_field].json_schema_extra new_param_fn = kwargs.get("new_param_fn", lambda x: x) - param_value = new_param_fn(getattr(pydantic_config, dep_param)) - new_param = kwargs.get("new_param", "") + param_value = new_param_fn(getattr(pydantic_config, dep_field)) + new_field = kwargs.get("new_param", "") dep_msg = kwargs.get("deprecated_msg", "") - if dep_param in fields_set: - logger.warning(f"Config parameter {dep_param} is deprecated" + - (f" use {new_param} instead" if new_param else "") + (f". {dep_msg}" if dep_msg else "")) + if dep_field in fields_set: + logger.warning(f"Config parameter {dep_field} is deprecated" + + (f" use {new_field} instead" if new_field else "") + (f". {dep_msg}" if dep_msg else "")) # Check if there is a new param and if it should be set with a value - if new_param and kwargs.get("set_new_param", True): + if new_field and kwargs.get("set_new_param", True): # Remove the deprecate field if there is a replacing field try: - delattr(pydantic_config, dep_param) + delattr(pydantic_config, dep_field) except Exception as e: - logger.error(f"Tried removing deprecated '{dep_param}' from config") + logger.error(f"Tried removing deprecated '{dep_field}' from config") raise e # Set new param value - new_param_nested = new_param.split(".") + new_param_nested = new_field.split(".") if len(new_param_nested) > 1: # If the new param exists in a subconfig, we need to get # the fields set for that subconfig pydantic_config = reduce(getattr, new_param_nested[:-1], pydantic_config) - fields_set = pydantic_config.__fields_set__ + fields_set = pydantic_config.model_fields_set new_param_name = new_param_nested[-1] assert ( new_param_name not in fields_set - ), f"Cannot provide deprecated parameter '{dep_param}' and replacing parameter '{new_param}' together" + ), f"Cannot provide deprecated parameter '{dep_field}' and replacing parameter '{new_field}' together" # A custom function for converting the old param value to new param value can be provided try: setattr(pydantic_config, new_param_name, param_value) except Exception as e: - logger.error(f"Tried setting value for '{new_param}' with value from deprecated '{dep_param}'") + logger.error(f"Tried setting value for '{new_field}' with value from deprecated '{dep_field}'") raise e - def _deprecated_fields_check(self, pydantic_config): - fields = pydantic_config.__fields__ - for field in fields.values(): - if field.field_info.extra.get("deprecated", False): - self._process_deprecated_field(pydantic_config, field) + def _deprecated_fields_check(self): + fields = self.model_fields + for field_name, field_info in fields.items(): + if field_info.json_schema_extra and field_info.json_schema_extra.get("deprecated", False): + self._process_deprecated_field(field_name) + + model_config = ConfigDict( + validate_default=True, + validate_assignment=True, + use_enum_values=True, + populate_by_name=True, + extra="forbid", + arbitrary_types_allowed=True, + protected_namespaces=(), + ) - class Config: - validate_all = True - validate_assignment = True - use_enum_values = True - allow_population_by_field_name = True - extra = "forbid" - arbitrary_types_allowed = True + @field_serializer("dtype", check_fields=False) + def serialize_torch_dtype(dtype: torch.dtype) -> str: + return str(dtype) def get_config_default(config, field_name): - assert field_name in config.__fields__, f"'{field_name}' is not a field in {config}" - assert not config.__fields__.get( - field_name).required, f"'{field_name}' is a required field and does not have a default value" - return config.__fields__.get(field_name).default + assert field_name in config.model_fields, f"'{field_name}' is not a field in {config}" + assert not config.model_fields.get( + field_name).is_required(), f"'{field_name}' is a required field and does not have a default value" + return config.model_fields.get(field_name).get_default() class pp_int(int): diff --git a/deepspeed/runtime/constants.py b/deepspeed/runtime/constants.py index 96f2a38bd05c..679230ca7d4c 100755 --- a/deepspeed/runtime/constants.py +++ b/deepspeed/runtime/constants.py @@ -126,6 +126,10 @@ BFLOAT16_ENABLED = "enabled" BFLOAT16_ENABLED_DEFAULT = False +# BFLOAT16 optimizer immediate gradient update +BFLOAT16_IMMEDIATE_GRAD_UPDATE = "immediate_grad_update" +BFLOAT16_IMMEDIATE_GRAD_UPDATE_DEFAULT = False + ######################################### # FP16 support ######################################### @@ -210,6 +214,18 @@ GRADIENT_CLIPPING = 'gradient_clipping' GRADIENT_CLIPPING_DEFAULT = 0. +######################################### +# Capture graph for short kernels sequences +######################################### +# Graph harvesting. By default, this feature is not enabled. +# Users can configure in ds_config.json as below example: +GRAPH_HARVESTING_FORMAT = ''' +Graph harvesting should be enabled as: +"graph_harvesting": true +''' +GRAPH_HARVESTING = 'graph_harvesting' +GRAPH_HARVESTING_DEFAULT = False + ######################################### # Communication data type ######################################### diff --git a/deepspeed/runtime/data_pipeline/data_sampling/data_analyzer.py b/deepspeed/runtime/data_pipeline/data_sampling/data_analyzer.py index cb0d366ce798..93d351169834 100644 --- a/deepspeed/runtime/data_pipeline/data_sampling/data_analyzer.py +++ b/deepspeed/runtime/data_pipeline/data_sampling/data_analyzer.py @@ -4,6 +4,7 @@ # DeepSpeed Team import os +import sys from collections import defaultdict import csv import time @@ -12,9 +13,10 @@ import torch from torch.utils.data import BatchSampler, SequentialSampler, DataLoader, Subset +import deepspeed.comm as dist from deepspeed.utils import logger -from .indexed_dataset import MMapIndexedDataset -from .utils import split_dataset, split_index, create_mmap_dataset_builder, close_mmap_dataset_builder, find_fit_int_dtype +from deepspeed.runtime.data_pipeline.data_sampling.indexed_dataset import MMapIndexedDataset, valid_dtypes +from deepspeed.runtime.data_pipeline.data_sampling.utils import split_dataset, split_index, create_mmap_dataset_builder, close_mmap_dataset_builder, find_fit_int_dtype class DataAnalyzer(object): @@ -36,7 +38,8 @@ def __init__(self, custom_map_init=None, custom_map_update=None, custom_map_finalize=None, - custom_reduce=None): + custom_reduce=None, + sample_indices=None): super().__init__() self.dataset = dataset self.num_workers = num_workers @@ -55,15 +58,14 @@ def __init__(self, self.custom_map_update = custom_map_update self.custom_map_finalize = custom_map_finalize self.custom_reduce = custom_reduce + self.sample_indices = sample_indices def init_metric_results(self, thread_id, metric_names, metric_types, metric_dtypes, save_path, worker_id): metric_results = [] for m_idx in range(len(metric_names)): metric_name, metric_type, metric_dtype = metric_names[m_idx], \ metric_types[m_idx], metric_dtypes[m_idx] - assert metric_dtype not in [ - np.float64, np.double - ], "Currently floating point metric values are not supported. Please change your metric into integer values (and potentially multiply a larger coefficient to keep the precision)." + assert metric_dtype in valid_dtypes, f"metric_dtype {metric_dtype} not supported. Supported dtypes {valid_dtypes}" metric_save_path = f"{save_path}/{metric_name}/worker{worker_id}_thread{thread_id}/" os.makedirs(metric_save_path, exist_ok=True) if metric_type == 'single_value_per_sample': @@ -84,16 +86,34 @@ def init_metric_results(self, thread_id, metric_names, metric_types, metric_dtyp metric_results.append({"metric_value": metric_value, "metric_value_fname": metric_value_fname}) return metric_results - def update_metric_results(self, data, metric_types, metric_functions, metric_results): + def update_metric_results(self, + data, + metric_types, + metric_dtypes, + metric_functions, + metric_results, + batch_start_idx=0): for m_idx in range(len(metric_types)): - metric_type, metric_function, metric_result = metric_types[m_idx], \ - metric_functions[m_idx], metric_results[m_idx] + metric_type, metric_dtype, metric_function, metric_result = metric_types[m_idx], \ + metric_dtypes[m_idx], metric_functions[m_idx], metric_results[m_idx] + metric_values = metric_function(data) + + assert torch.is_tensor(metric_values) or isinstance(metric_values, np.ndarray), \ + "metric_function must return a tensor or array" + assert metric_values.dtype == metric_dtype, \ + f"metric_function result dtype {metric_values.dtype} does not match metric_dtype {metric_dtype}" + if isinstance(metric_values, np.ndarray): + metric_values = torch.from_numpy(metric_values) + if metric_type == 'single_value_per_sample': - metric_values = metric_function(data) for row in range(metric_values.size()[0]): + sample_idx = batch_start_idx + row # sample idx following dataset iteration order + if isinstance(data, dict) and 'index' in data: # Megatron use case, idx provided in 'index' field + sample_idx = data['index'][row][0].item() + elif self.sample_indices is not None: # user defined shuffling of indices + sample_idx = self.sample_indices[sample_idx] metric_result["sample_to_metric_builder"].add_item(metric_values[row].reshape(-1)) - metric_result["metric_to_sample_dict"][metric_values[row].item()].append( - data['index'][row][0].item()) + metric_result["metric_to_sample_dict"][metric_values[row].item()].append(sample_idx) for m_value in metric_result["metric_to_sample_dict"]: if len(metric_result["metric_to_sample_dict"][m_value]) > 100: metric_fname = metric_result["metric_to_sample_fname"] @@ -102,7 +122,6 @@ def update_metric_results(self, data, metric_types, metric_functions, metric_res writer.writerows([metric_result["metric_to_sample_dict"][m_value]]) metric_result["metric_to_sample_dict"][m_value] = [] elif metric_type == 'accumulate_value_over_samples': - metric_values = metric_function(data) if metric_result["metric_value"] is None: metric_result["metric_value"] = metric_values else: @@ -136,15 +155,12 @@ def run_map_helper(self, thread_id): f"on data subset {start_idx} to {end_idx}") thread_dataset = Subset(self.dataset, list(range(start_idx, end_idx))) sampler = BatchSampler(SequentialSampler(thread_dataset), batch_size=self.batch_size, drop_last=False) - if self.collate_fn is None: - iterator = iter(DataLoader(thread_dataset, batch_sampler=sampler, num_workers=0, pin_memory=False)) - else: - iterator = iter( - DataLoader(thread_dataset, - batch_sampler=sampler, - num_workers=0, - collate_fn=self.collate_fn, - pin_memory=False)) + iterator = iter( + DataLoader(thread_dataset, + batch_sampler=sampler, + num_workers=0, + collate_fn=self.collate_fn, + pin_memory=False)) if self.custom_map_init is None: metric_results = self.init_metric_results(thread_id, self.metric_names, self.metric_types, self.metric_dtypes, self.save_path, self.worker_id) @@ -157,11 +173,14 @@ def run_map_helper(self, thread_id): while True: try: data = next(iterator) + batch_start_idx = start_idx + processed_sample if self.custom_map_update is None: - self.update_metric_results(data, self.metric_types, self.metric_functions, metric_results) + self.update_metric_results(data, self.metric_types, self.metric_dtypes, self.metric_functions, + metric_results, batch_start_idx) else: - self.custom_map_update(data, self.metric_types, self.metric_functions, metric_results) - processed_sample += self.batch_size + self.custom_map_update(data, self.metric_types, self.metric_dtypes, self.metric_functions, + metric_results, batch_start_idx) + processed_sample += len(data) duration = (time.time() - start) / 3600.0 remain_duration = duration * total_sample / processed_sample - duration logger.info( @@ -367,26 +386,10 @@ def merge_map_results(self, dataset, metric_names, metric_types, save_path, num_ index_to_metric_builder.merge_file_(chunk_im_fname) close_mmap_dataset_builder(index_to_sample_builder, index_to_sample_fname) close_mmap_dataset_builder(index_to_metric_builder, index_to_metric_fname) - num_sample_per_value = {} - index_to_sample = MMapIndexedDataset(index_to_sample_fname, skip_warmup=True) - index_to_metric = MMapIndexedDataset(index_to_metric_fname, skip_warmup=True) - index_to_sample_merged_fname = f"{metric_save_path}/{metric_name}_index_to_sample_percentile_merged" - index_to_sample_merged_builder = create_mmap_dataset_builder(index_to_sample_merged_fname, - sample_idx_dtype) - for v_idx in range(len(index_to_sample)): - if v_idx > 0: - assert index_to_metric[v_idx] > index_to_metric[v_idx - 1] - num_sample_per_value[index_to_metric[v_idx][0]] = len(index_to_sample[v_idx]) - assert sum(num_sample_per_value.values()) == total_num_samples - merge_step = max(1, len(index_to_sample) // 100) - for v_idx in range(0, len(index_to_sample), merge_step): - merged_samples = np.copy( - np.concatenate(index_to_sample[v_idx:min(len(index_to_sample), (v_idx + merge_step))], - axis=None)) - index_to_sample_merged_builder.add_item( - torch.tensor(merged_samples.astype(np.int64), dtype=torch.long)) - logger.info(f"Finished merging index_to_sample {v_idx} to {v_idx+merge_step}.") - close_mmap_dataset_builder(index_to_sample_merged_builder, index_to_sample_merged_fname) + + num_sample_per_value = DataAnalyzer.output_index_to_sample_percentile( + index_to_sample_fname, index_to_metric_fname, metric_name, metric_save_path, total_num_samples, + sample_idx_dtype) self.get_metric_value_percentiles(metric_name, num_sample_per_value, total_num_samples) elif metric_type == 'accumulate_value_over_samples': metric_save_path = f"{save_path}/{metric_name}/" @@ -408,6 +411,29 @@ def merge_map_results(self, dataset, metric_names, metric_types, save_path, num_ metric_value_builder.add_item(torch.tensor(metric_value.astype(np.int64), dtype=torch.long)) close_mmap_dataset_builder(metric_value_builder, metric_value_fname) + @staticmethod + def output_index_to_sample_percentile(index_to_sample_fname, index_to_metric_fname, metric_name, metric_save_path, + total_num_samples, sample_idx_dtype): + """ read index_to_metric and index_to_sample files and write distribution to index_to_sample_percentage_merged """ + num_sample_per_value = {} + index_to_sample = MMapIndexedDataset(index_to_sample_fname, skip_warmup=True) + index_to_metric = MMapIndexedDataset(index_to_metric_fname, skip_warmup=True) + index_to_sample_merged_fname = f"{metric_save_path}/{metric_name}_index_to_sample_percentile_merged" + index_to_sample_merged_builder = create_mmap_dataset_builder(index_to_sample_merged_fname, sample_idx_dtype) + for v_idx in range(len(index_to_sample)): + if v_idx > 0: + assert index_to_metric[v_idx] > index_to_metric[v_idx - 1] + num_sample_per_value[index_to_metric[v_idx][0]] = len(index_to_sample[v_idx]) + assert sum(list(num_sample_per_value.values())) == total_num_samples + merge_step = max(1, len(index_to_sample) // 100) + for v_idx in range(0, len(index_to_sample), merge_step): + merged_samples = np.copy( + np.concatenate(index_to_sample[v_idx:min(len(index_to_sample), (v_idx + merge_step))], axis=None)) + index_to_sample_merged_builder.add_item(torch.tensor(merged_samples.astype(np.int64), dtype=torch.long)) + logger.info(f"Finished merging index_to_sample {v_idx} to {v_idx+merge_step}.") + close_mmap_dataset_builder(index_to_sample_merged_builder, index_to_sample_merged_fname) + return num_sample_per_value + def run_reduce(self): if self.custom_reduce is None: self.merge_map_results(self.dataset, self.metric_names, self.metric_types, self.save_path, @@ -415,3 +441,440 @@ def run_reduce(self): else: self.custom_reduce(self.dataset, self.metric_names, self.metric_types, self.save_path, self.num_workers, self.num_threads, self.num_threads_reduce) + + def run_map_reduce(self, comm_group=None): + self.run_map() + # wait for the mapping operation, where all nodes outputs their own (partial) result files + dist.barrier(group=comm_group) + if self.worker_id == 0: + self.run_reduce() + # wait for the reduce, where rank 0 merges all (partial) files. Dataset can then be used by all nodes. + dist.barrier(group=comm_group) + + +class DistributedDataAnalyzer(object): + + def __init__( + self, + dataset, + num_workers=1, + num_threads=1, + worker_id=0, + batch_size=1, + metric_names=[], + metric_functions=[], + metric_types=[], + save_path="./", + collate_fn=None, + device='cuda', + comm_group=None, + sample_indices=None, + ) -> None: + self.dataset = dataset + self.batch_size = batch_size + self.metric_names = metric_names + self.metric_functions = metric_functions + self.metric_types = metric_types + self.save_path = save_path + self.collate_fn = collate_fn + self.device = device + self.sample_indices = sample_indices + self.num_threads = num_threads + self.worker_id = worker_id + + if not dist.is_initialized(): + dist.init_distributed() + + # comm_group and worker_id+num_workers are mutually exclusive + self.comm_group = comm_group + if self.comm_group is None: + # self.comm_group = deepspeed.utils.groups._clone_world_group() + self.num_workers = num_workers + self.worker_id = worker_id + else: + self.num_workers = self.comm_group.size() + self.worker_id = self.comm_group.rank() + + if self.worker_id == 0: + logger.info(f"Distributed data analyzer initialized with {self.num_workers} workers.") + + def run_map_helper(self, thread_id=0, metric_queues=None): + thread_start_idx, thread_end_idx = self.thread_splits[thread_id][0], self.thread_splits[thread_id][1] + worker_dataset = Subset(self.dataset, list(range(thread_start_idx, thread_end_idx))) + sampler = BatchSampler(SequentialSampler(worker_dataset), batch_size=self.batch_size, drop_last=False) + dataloader = DataLoader(dataset=worker_dataset, + batch_sampler=sampler, + num_workers=0, + collate_fn=self.collate_fn, + pin_memory=False) + + # set initial results list + metric_results = [] + for metric_type in self.metric_types: + assert metric_type in ['single_value_per_sample', 'accumulate_value_over_samples'], \ + f"metric_type {metric_type} not implemented." + metric_results.append([] if metric_type == 'single_value_per_sample' else None) + + # iterate dataloader and store metric results + batch_start_idx = thread_start_idx + for data in dataloader: + for m_idx in range(len(self.metric_names)): + metric_type, metric_function = self.metric_types[m_idx], self.metric_functions[m_idx] + metric_values = metric_function(data) + assert torch.is_tensor(metric_values) or isinstance(metric_values, np.ndarray), \ + "metric_function must return a tensor or array" + if isinstance(metric_values, np.ndarray): + metric_values = torch.from_numpy(metric_values) + assert metric_values.dtype in valid_dtypes, \ + f"metric_function result dtype {metric_values.dtype} not supported. Supported dtypes {valid_dtypes}" + + if metric_type == 'single_value_per_sample': + for row in range(metric_values.size()[0]): + value = metric_values[row].item() + sample_idx = batch_start_idx + row # sample idx following dataset iteration order + if isinstance(data, dict) and 'index' in data: # Megatron use case + sample_idx = data['index'][row][0].item() + elif self.sample_indices is not None: # user defined shuffling of indices + sample_idx = self.sample_indices[sample_idx] + metric_results[m_idx].append((value, sample_idx)) + elif metric_type == 'accumulate_value_over_samples': + if metric_results[m_idx] is None: + metric_results[m_idx] = metric_values + else: + metric_results[m_idx].add_(metric_values) + batch_start_idx += len(data) + + if self.num_threads == 1: + return metric_results + + # copy metric_results to the shared queue + assert metric_queues + for m_idx in range(len(self.metric_names)): + results = metric_results[m_idx] + if torch.is_tensor(results): + results = results.item() if results.dim() == 0 else results.tolist() + try: + metric_queues[m_idx].put((thread_id, results)) + except Exception as e: + logger.error(f"Error putting metric results to queue: {e}") + sys.exit(1) + + def run_map_reduce(self): + + # setup individual dataloaders + self.worker_splits, self.thread_splits = split_dataset(self.dataset, + self.num_workers, + self.worker_id, + num_threads=self.num_threads) + node_start_idx, node_end_idx = self.worker_splits[self.worker_id] + logger.info(f"worker {self.worker_id} working on data subset {node_start_idx} to {node_end_idx}.") + + if self.num_threads in [0, 1, None]: + metric_results = self.run_map_helper() + metric_results = [torch.tensor(m).to(self.device) for m in metric_results] + else: + + # create a shared queue of results per metric to be populated by individual threads + with Manager() as manager: + metric_queues = [manager.Queue() for _ in self.metric_names] + threads = [ + Process(target=self.run_map_helper, args=(t, metric_queues)) for t in range(self.num_threads) + ] + for thread in threads: + thread.start() + for thread in threads: + thread.join() + + # gather results from shared queues into metric_results + metric_results = [None for _ in self.metric_names] + for m_idx, (queue, metric_type) in enumerate(zip(metric_queues, self.metric_types)): + while not queue.empty(): + t_idx, t_results = queue.get() + t_start_idx, t_end_idx = self.thread_splits[t_idx] + if t_start_idx >= t_end_idx: # no results from this thread + continue #corner case for small datasets and high thread count + t_results = torch.tensor(t_results) + if metric_type == 'single_value_per_sample': + # add thread results to the metric_results list, ordered by thread idx + if metric_results[m_idx] is None: # initialize if needed + metric_results[m_idx] = torch.zeros(node_end_idx - node_start_idx, + t_results.size(1)).to(self.device) + metric_results[m_idx][t_start_idx - node_start_idx:t_end_idx - node_start_idx] = t_results + else: + if metric_results[m_idx] is None: # initialize if needed + metric_results[m_idx] = torch.zeros(t_results.size()).to(self.device) + metric_results[m_idx].add_(t_results) + + # compute dtype for sample ids + total_num_samples = len(self.dataset) + sample_idx_dtype = find_fit_int_dtype(0, total_num_samples - 1) + logger.info(f"Total number of data samples: {total_num_samples}.") + logger.info(f"Will use {sample_idx_dtype} to store the sample indexes.") + + for m_idx in range(len(self.metric_names)): + metric_values, metric_name, metric_type = \ + metric_results[m_idx], self.metric_names[m_idx], self.metric_types[m_idx] + metric_save_path = f"{self.save_path}/{metric_name}/" + os.makedirs(metric_save_path, exist_ok=True) + + if metric_type == 'single_value_per_sample': + + # Compute sample and metric value dtypes based on range + values, samples = metric_values[:, 0], metric_values[:, 1] + value_min, value_max = Dist.min_max(values, self.comm_group) + sample_min, sample_max = Dist.min_max(samples, self.comm_group) + metric_value_dtype = find_fit_int_dtype(value_min, value_max) + sample_value_dtype = find_fit_int_dtype(sample_min, sample_max) + + # sample_to_metric maps sample ids to metric values, as a list of metric values + sample_to_metric_fname = f"{metric_save_path}/{metric_name}_sample_to_metric" + values = [torch.tensor([x]) for x in metric_values[:, 0]] + self.file_write_ordered(values, sample_to_metric_fname, metric_value_dtype) + + # distributed sorting by values, gives an ordered disjoint subset of keys on nodes + metric_values = Dist.sample_sort(metric_values, self.comm_group, self.num_workers) + metric_to_samples_dict = {} + if len(metric_values) > 0: + for value, sample in metric_values: + if value.item() not in metric_to_samples_dict: + metric_to_samples_dict[value.item()] = [] + metric_to_samples_dict[value.item()].append(sample.item()) + + # index_to_metric and index_to_sample serialize a dicitonary from metric to samples + # index_to_metric stores a key per row, index_to_sample stores the values per row + values = [torch.tensor([x]) for x in metric_to_samples_dict.keys()] + samples = [torch.tensor(metric_to_samples_dict[x]) for x in metric_to_samples_dict.keys()] + index_to_metric_fname = f"{metric_save_path}/{metric_name}_index_to_metric" #dict keys + index_to_sample_fname = f"{metric_save_path}/{metric_name}_index_to_sample" #dict values + self.file_write_ordered(values, index_to_metric_fname, metric_value_dtype) + self.file_write_ordered(samples, index_to_sample_fname, sample_value_dtype) + + if self.worker_id == 0: + DataAnalyzer.output_index_to_sample_percentile(index_to_sample_fname, index_to_metric_fname, + metric_name, metric_save_path, total_num_samples, + sample_idx_dtype) + dist.barrier(self.comm_group) + + elif metric_type == 'accumulate_value_over_samples': + metric_value_fname = f"{metric_save_path}/{metric_name}_metric_value" + dist.reduce(metric_values, dst=0, op=dist.ReduceOp.SUM, group=self.comm_group) + metric_value_dtype = find_fit_int_dtype(metric_values.min(), metric_values.max()) + + if self.worker_id == 0: + builder = create_mmap_dataset_builder(metric_value_fname, metric_value_dtype) + builder.add_item(metric_values.cpu()) + close_mmap_dataset_builder(builder, metric_value_fname) + dist.barrier(self.comm_group) + + def file_write_ordered(self, tensor_list, fname, numpy_dtype): + """ MPI_file_write_ordered extended to write a list of tensors, by one rank, iteratively """ + + # each node has a list of rows (tensors) to be written to the file. + # we will serialize it in order to communicate it in one comm step. + + tkwargs = dict(dtype=torch.int64, device=self.device) + + # 1. gather on rank 0 the number of rows to be sent/recv + row_count = torch.tensor([len(tensor_list)], **tkwargs) + row_counts = torch.zeros(self.num_workers, **tkwargs) + dist.all_gather_into_tensor(row_counts, row_count, group=self.comm_group) + assert row_counts[self.worker_id] == row_count == len(tensor_list), "all_gather failed" + + # 2. gather on rank 0 the sizes of the rows to be sent/recv + row_len = torch.tensor([len(l) for l in tensor_list], **tkwargs) + row_lens = Dist.gather_v(row_len, 0, self.comm_group, self.num_workers, self.worker_id) + + # 4. gather on rank 0 of the total size (sum of all row lengths) to be received + size = torch.tensor([sum(row_len).item()], **tkwargs) + sizes = torch.zeros(self.num_workers, **tkwargs) + dist.all_gather_into_tensor(sizes, size, group=self.comm_group) + assert sizes[self.worker_id] == size.item(), "all_gather did not return the same sizes" #sanity check + + # method to deserializes a buffer into rows of different lengths and write them to file + def write_buffer_to_file(buff, src, builder): + assert self.worker_id == 0, "only rank 0 can write to file" + + # collect all buffers and write them at once + buff = buff.cpu().detach().numpy() + row_offsets = np.cumsum([0] + row_lens[src].tolist()) + arr_list = [] + for i in range(len(row_lens[src])): + arr_list.append(buff[row_offsets[i]:row_offsets[i + 1]]) + builder.add_items(arr_list) + + # 5. rank 0 prepares output folder and file + if self.worker_id == 0: + os.makedirs(os.path.dirname(fname), exist_ok=True) + builder = create_mmap_dataset_builder(fname, numpy_dtype) + + # iterate through ranks that have data to be sent/recv/written + for src in [rank for rank, count in enumerate(row_counts) if count > 0]: + + dist.barrier(group=self.comm_group) + if self.worker_id == 0 and src == 0: # rank 0's write its own data + buffer = torch.cat(tensor_list, dim=0).to(self.device) + write_buffer_to_file(buffer, 0, builder) + elif self.worker_id == 0 and src > 0: # rank 0 receives other rank's data and writes it + buffer = torch.empty(sizes[src].item(), dtype=buffer.dtype, device=buffer.device) + err = dist.recv(buffer, src=src, group=self.comm_group, tag=src) + assert err == src and len(buffer) > 0, "recv failed" + write_buffer_to_file(buffer, src, builder) + elif self.worker_id == src: # current rank sends data to rank 0 + buffer = torch.cat(tensor_list, dim=0).to(self.device) + dist.send(buffer, 0, group=self.comm_group, tag=src) + + # rank 0 closes the file + if self.worker_id == 0: + close_mmap_dataset_builder(builder, fname) # close file + dist.barrier(self.comm_group) + + +class Dist: + """ auxiliary class to perform distributed operations on tensors""" + + @staticmethod + def min_max(tensor, comm_group): + """ given a distributed tensor, return the min/max values across all ranks""" + + value_min, value_max = tensor.min(), tensor.max() + dist.reduce(value_min, 0, op=dist.ReduceOp.MIN, group=comm_group) + dist.reduce(value_max, 0, op=dist.ReduceOp.MAX, group=comm_group) + return value_min.item(), value_max.item() + + @staticmethod + def gather_v(tensor, dst, comm_group, num_workers, worker_id): + """ MPI_Gatherv. gather tensors of variable sizes in a single rank """ + + # gather the number of rows to be sent/recv + size = torch.tensor([len(tensor)], dtype=torch.int64, device=tensor.device) + sizes = torch.zeros(num_workers, dtype=torch.int64, device=tensor.device) + dist.all_gather_into_tensor(sizes, size, group=comm_group) + assert sizes[worker_id] == size, "all_gather failed" + + # all_gather requires all tensors to be of same size so we need to pad them + max_size = max(sizes).item() + buffer = torch.empty(max_size, dtype=tensor.dtype, device=tensor.device) + buffer[0:size] = tensor.data + buffer_list = None + if worker_id == 0: # create padded recv buffers + buffer_list = [torch.empty(max_size, dtype=tensor.dtype, device=tensor.device) for _ in range(num_workers)] + dist.gather(buffer, buffer_list, dst=dst, group=comm_group) + + # revert padding and return value + if worker_id == 0: + buffer_list = [r[:s.item()] for r, s in zip(buffer_list, sizes)] + return buffer_list + + @staticmethod + def sample_sort(tensor, comm_group, num_workers, n_samples=100): + """ perform a distributed random sort of a tensor, and returns the sorted partial tensor""" + device, dims = tensor.device, tensor.size()[1] + + # 1 - sort rows by first column, then second column, then third, etc... + tensor = torch.tensor(sorted(tensor.tolist()), dtype=tensor.dtype, device=tensor.device) + + # 2 - collect few samples per rank + idx = torch.round(torch.linspace(0, len(tensor) - 1, n_samples)).to(int) + samples = tensor[idx][:, 0].contiguous().to(device) #only first column, all but last row + + # 2 - Allgather samples + all_samples = [torch.zeros(n_samples, dtype=samples.dtype, device=device) for _ in range(num_workers)] + dist.all_gather(all_samples, samples, group=comm_group) + all_samples = torch.cat(all_samples, dim=0).to(device) + + # 3 - Sort all samples and collect the ranges of each rank as equidistant + all_samples = all_samples.sort()[0] + idx = torch.round(torch.linspace(0, len(all_samples) - 1, num_workers + 1)).to(int) + ranges = all_samples[idx] # range of each rank r as ranges[r] <= x < ranges[r+1] + ranges[-1] += 1 # increase upper limit of last rank so that x < ranges[r+1]. + + # 4 - collect elements to send to each rank, based on the rank ranges + send = [] + for rank in range(num_workers): + mask = (tensor[:, 0] >= ranges[rank]) & (tensor[:, 0] < ranges[rank + 1]) + send.append(tensor[mask]) + + # 5. all to all to communicate the sizes to be sent/recv + send_count = [torch.tensor([len(s) * dims], dtype=torch.int64, device=device) for s in send] + recv_count = list(torch.empty([num_workers], dtype=torch.int64, device=device).chunk(num_workers)) + dist.all_to_all(recv_count, send_count, group=comm_group) + + # 6. all-to-all-v to communicate the elements to be sent/recv as a single tensor + send = torch.cat(send, dim=0).flatten().to(device) + recv = torch.zeros(sum(recv_count), dtype=send.dtype).to(device) + send_count = [s.item() for s in send_count] # convert to list of ints + recv_count = [r.item() for r in recv_count] + dist.all_to_all_single(recv, send, recv_count, send_count, group=comm_group) + del send + + # 7. the received tensor is the 1D disjoint subset of the distributed tensor. + # We will recover the original dimensionality and sort it by columns again. + recv = recv.view(-1, dims) + recv = torch.tensor(sorted(recv.tolist()), dtype=recv.dtype, device=recv.device) + return recv + + +def test_compare_both_data_analyzers(dataset): + """ given a dataset, compare file and memory based data analyser""" + + id = lambda t: t.to(torch.int64) # identity + batch_sum = lambda t: id(t).sum() #sum batch + num_threads = 4 + kwargs = dict( + dataset=dataset, + batch_size=2**10, + worker_id=int(os.environ['RANK']), + num_workers=int(os.environ['WORLD_SIZE']), + metric_names=["mod", "batch_sum"], + metric_functions=[id, batch_sum], + metric_types=['single_value_per_sample', 'accumulate_value_over_samples'], + num_threads=num_threads, + ) + + dda = DistributedDataAnalyzer( + save_path="./output_dist", + device=f"cuda:{int(os.environ['LOCAL_RANK'])}", + **kwargs, + ) + start_time = time.time() + dda.run_map_reduce() + if dda.worker_id == 0: + print("DistributedDataAnalyzer runtime: %s seconds " % (time.time() - start_time)) + + da = DataAnalyzer(num_threads_reduce=num_threads, + save_path="./output_disk", + metric_dtypes=[torch.int64, torch.int64], + **kwargs) + start_time = time.time() + da.run_map_reduce() + if da.worker_id == 0: + print("DataAnalyzer runtime: %s seconds " % (time.time() - start_time)) + + output_paths = [ + "batch_sum/batch_sum_metric_value.bin", "batch_sum/batch_sum_metric_value.idx", \ + "mod/mod_index_to_metric.bin", "mod/mod_index_to_metric.idx", \ + "mod/mod_index_to_sample.bin", "mod/mod_index_to_sample.idx", \ + "mod/mod_index_to_sample_percentile_merged.bin", "mod/mod_index_to_sample_percentile_merged.idx", \ + "mod/mod_sample_to_metric.bin", "mod/mod_sample_to_metric.idx" + ] + + if dda.worker_id == 0: + for path in output_paths: + with open(os.path.join(da.save_path, path), 'rb') as f1, \ + open(os.path.join(dda.save_path, path), 'rb') as f2: + if f1.read() != f2.read(): + print(f"files {path} are not identical.") + + +if __name__ == "__main__": + + class TestDataset(torch.utils.data.Dataset): + + def __init__(self, size=10_000_000): + self.values = [(x + 7) % 10_000 for x in range(size)] + self.size = size + + __len__ = lambda self: self.size + __getitem__ = lambda self, idx: self.values[idx] + + test_compare_both_data_analyzers(TestDataset()) diff --git a/deepspeed/runtime/data_pipeline/data_sampling/data_sampler.py b/deepspeed/runtime/data_pipeline/data_sampling/data_sampler.py index ef845e4bc490..100bef3f7946 100644 --- a/deepspeed/runtime/data_pipeline/data_sampling/data_sampler.py +++ b/deepspeed/runtime/data_pipeline/data_sampling/data_sampler.py @@ -119,9 +119,15 @@ def set_custom_curriculum_learning_schedule(self, schedule_func_dict): if metric in schedule_func_dict: self.curriculum_schedulers[metric].set_custom_get_difficulty(schedule_func_dict[metric]) - def get_start_end_idx(self): - start_idx = self.data_parallel_rank * self.micro_batch_size - end_idx = start_idx + self.micro_batch_size + def get_start_end_idx(self, batch_len=None): + """ + given the length of a minibatch (defaults to micro-batch size * data_parallel_size), + return the start and end indices of the current data parallel rank + """ + batch_len = batch_len or self.micro_batch_times_data_parallel_size + start_idx_fn = lambda r: round(r * batch_len / self.data_parallel_group.size()) + start_idx = start_idx_fn(self.data_parallel_rank) + end_idx = start_idx_fn(self.data_parallel_rank + 1) return start_idx, end_idx def get_sample_based_on_metric_value(self, metric, value_start, value_end): @@ -281,12 +287,17 @@ def get_next_global_batch(self): for cidx in range(len(samples_per_cluster)): batch += self.get_sample_from_cluster(cidx, samples_per_cluster[cidx]) self.np_rng.shuffle(batch) + + # broadcast tensor must have same shape across participants. So we fill batch with -1s when not full + assert len(batch) <= self.global_batch_size + batch += [-1] * (self.global_batch_size - len(batch)) batch = torch.tensor(batch, device=get_accelerator().current_device_name(), dtype=torch.long).view(-1) else: batch = torch.empty(self.global_batch_size, device=get_accelerator().current_device_name(), dtype=torch.long) dist.broadcast(batch, 0, group=self.data_parallel_group) + batch = batch[batch != -1] # remove trailing -1s used to fill incomplete batch tensor self.batch = batch.tolist() def __iter__(self): @@ -297,7 +308,7 @@ def __iter__(self): self.batch = self.batch[self.micro_batch_times_data_parallel_size:] if len(current_batch) == self.micro_batch_times_data_parallel_size or \ (len(current_batch) > 0 and not self.drop_last): - start_idx, end_idx = self.get_start_end_idx() + start_idx, end_idx = self.get_start_end_idx(len(current_batch)) yield current_batch[start_idx:end_idx] self.consumed_samples += len(current_batch) current_batch = [] diff --git a/deepspeed/runtime/data_pipeline/data_sampling/indexed_dataset.py b/deepspeed/runtime/data_pipeline/data_sampling/indexed_dataset.py index 60115fa6efef..872d05de0145 100644 --- a/deepspeed/runtime/data_pipeline/data_sampling/indexed_dataset.py +++ b/deepspeed/runtime/data_pipeline/data_sampling/indexed_dataset.py @@ -98,25 +98,26 @@ def write_longs(f, a): f.write(np.array(a, dtype=np.int64)) +# valid metric_dtypes as numpy and torch types dtypes = { - 1: np.uint8, - 2: np.int8, - 3: np.int16, - 4: np.int32, - 5: np.int64, - 6: np.float64, - 7: np.double, - 8: np.uint16, - 9: np.uint32, - 10: np.uint64 + 1: (np.uint8, torch.uint8), + 2: (np.int8, torch.int8), + 3: (np.int16, torch.int16), + 4: (np.int32, torch.int32), + 5: (np.int64, torch.int64), + 6: (np.uint16, None), + 7: (np.uint32, None), + 8: (np.uint64, None), } +valid_dtypes = set([dt[0] for dt in dtypes.values()] + [dt[1] for dt in dtypes.values() if dt[1] is not None]) + def code(dtype): - for k in dtypes.keys(): - if dtypes[k] == dtype: - return k - raise ValueError(dtype) + for c, (np_dt, torch_dt) in dtypes.items(): + if dtype in [np_dt, torch_dt]: + return c + raise ValueError(f"{dtype} not supported. Supported types: {valid_dtypes}") def index_file_path(prefix_path): @@ -153,7 +154,7 @@ def read_index(self, path): version = f.read(8) assert struct.unpack(' [sq, b, np, hn] + context_layer = context_layer.permute(2, 0, 1, 3).contiguous() + + # [sq, b, np, hn] --> [sq, b, hp] + new_context_layer_shape = context_layer.size()[:-2] + \ + (self.hidden_size_per_partition,) + context_layer = context_layer.view(*new_context_layer_shape) + + return context_layer + + +class ShardedAttention(DominoModule): + """Sharded self-attention layer class. + Only support self attention and causal attention mask + """ + + def __init__(self, + config, + layer_number, + mpu, + ColumnParallelLinear, + RowParallelLinearNoComm, + apply_rotary_pos_emb, + attention_type=AttnType.self_attn, + attn_mask_type=AttnMaskType.causal): + super(ShardedAttention, self).__init__() + self.layer_number = max(1, layer_number) + self.attention_type = attention_type + self.attn_mask_type = attn_mask_type + self.params_dtype = config.params_dtype + self.apply_rotary_pos_emb = apply_rotary_pos_emb + + query_projection_size = config.kv_channels * config.num_attention_heads + kv_projection_size = config.kv_channels * config.num_attention_heads + + # Per attention head and per partition values. + world_size = mpu.get_tensor_model_parallel_world_size() + self.hidden_size_per_attention_head = query_projection_size // config.num_attention_heads + self.num_attention_heads_per_partition = config.num_attention_heads // world_size + + self.query_key_value = ColumnParallelLinear(config.hidden_size, + query_projection_size + 2 * kv_projection_size, + config=config, + init_method=config.init_method, + bias=config.add_bias_linear, + gather_output=False) + + self.core_attention = CoreAttention(config, self.layer_number, mpu, self.attn_mask_type) + + self.dense = RowParallelLinearNoComm(query_projection_size, + config.hidden_size, + config=config, + init_method=config.output_layer_init_method, + bias=config.add_bias_linear, + input_is_parallel=True, + skip_bias_add=True) + + def forward(self, hidden_states, attention_mask, rotary_pos_emb=None): + # hidden_states: [s, b, h] + + # Query, Key, and Value + # Attention heads [s, b, h] --> [s, b, np * 3 * hn)] + mixed_x_layer, _ = self.query_key_value(hidden_states) + + # [s, b, np * 3 * hn] --> [s, b, np, 3 * hn] + new_tensor_shape = mixed_x_layer.size()[:-1] + ( + self.num_attention_heads_per_partition, + 3 * self.hidden_size_per_attention_head, + ) + mixed_x_layer = mixed_x_layer.view(*new_tensor_shape) + + # [s, b, np, 3 * hn] -> [b, np, s, 3*hn] + mixed_x_layer = mixed_x_layer.permute(1, 2, 0, 3).contiguous() + + # [s, b, np, 3 * hn] --> [s, b, np, hn], [s, b, np, hn], [s, b, np, hn] + (query_layer, key_layer, value_layer) = torch.split(mixed_x_layer, [ + self.hidden_size_per_attention_head, self.hidden_size_per_attention_head, + self.hidden_size_per_attention_head + ], + dim=3) + # [s, b, np, np * hn] -> [s, b, np, hn] + query_layer = query_layer.view(query_layer.size(0), query_layer.size(1), -1, + self.hidden_size_per_attention_head) + + # apply rotary embedding + if rotary_pos_emb is not None: + if isinstance(rotary_pos_emb, tuple): + rotary_pos_emb = rotary_pos_emb + else: + rotary_pos_emb = ((rotary_pos_emb, ) * 2) + q_pos_emb, k_pos_emb = rotary_pos_emb + query_layer = self.apply_rotary_pos_emb(query_layer, q_pos_emb) + key_layer = self.apply_rotary_pos_emb(key_layer, k_pos_emb) + + context_layer = self.core_attention(query_layer, key_layer, value_layer, attention_mask) + + # Output. [s, b, h] + output, bias = self.dense(context_layer) + + return output, bias + + +class DominoTransformerLayer(DominoModule): + """A domino single transformer layer. + [s, b, h] -> [s, b, h] + """ + + def __init__(self, + config, + layer_number, + mpu, + fused_layer_norm, + _initialize_affine_weight_gpu, + ColumnParallelLinear, + RowParallelLinearNoComm, + apply_rotary_pos_emb, + bias_dropout_add_fused_train, + bias_dropout_add_fused_inference, + skip_bias_add=True, + layer_type=LayerType.encoder, + self_attn_mask_type=AttnMaskType.causal, + drop_path_rate=0., + output_bias=None): + super(DominoTransformerLayer, self).__init__() + + if not dist.is_initialized(): + dist.init_distributed() + assert dist.is_initialized(), "deepspeed.comm is not initialized!" + + self.llama_model = config.llama_model + self.layer_number = layer_number + self.layer_type = layer_type + self.apply_residual_connection_post_layernorm = config.apply_residual_connection_post_layernorm + self.bias_dropout_add_fused_train = bias_dropout_add_fused_train + self.bias_dropout_add_fused_inference = bias_dropout_add_fused_inference + self.mpu = mpu + self.output_bias = output_bias + + # Layernorm on the input data. + self.input_layernorm = fused_layer_norm(config.hidden_size, + eps=config.layernorm_epsilon, + no_persist_layer_norm=config.no_persist_layer_norm) + + # Self attention. + self.self_attention = ShardedAttention(config, + layer_number, + mpu, + ColumnParallelLinear, + RowParallelLinearNoComm, + apply_rotary_pos_emb, + attention_type=AttnType.self_attn, + attn_mask_type=self_attn_mask_type) + + self.hidden_dropout = config.hidden_dropout + + # Layernorm on the attention output + self.post_attention_layernorm = fused_layer_norm(config.hidden_size, + eps=config.layernorm_epsilon, + no_persist_layer_norm=config.no_persist_layer_norm) + + # ------------ init mlp start ------------ + init_method = config.init_method + output_layer_init_method = config.output_layer_init_method + self.add_bias = config.add_bias_linear + self.skip_bias_add = skip_bias_add + + ffn_hidden_size = config.ffn_hidden_size + if config.gated_linear_unit: + ffn_hidden_size *= 2 + self.output_size_c = config.ffn_hidden_size + self.input_size_c = config.hidden_size + self.input_size_r = config.ffn_hidden_size + self.output_size_r = self.input_size_c + + world_size = mpu.get_tensor_model_parallel_world_size() + self.output_size_per_partition = self.output_size_c // world_size + self.input_size_per_partition = self.input_size_r // world_size + + # Initialize weight. + self.weight_c = Parameter( + torch.empty(self.output_size_per_partition, + self.input_size_c, + device=get_accelerator().current_device_name(), + dtype=config.params_dtype)) + self.weight_r = Parameter( + torch.empty(self.output_size_r, + self.input_size_per_partition, + device=get_accelerator().current_device_name(), + dtype=config.params_dtype)) + + if config.perform_initialization: + _initialize_affine_weight_gpu(self.weight_c, init_method, partition_dim=0, stride=1) + + _initialize_affine_weight_gpu(self.weight_r, output_layer_init_method, partition_dim=1, stride=1) + + if self.add_bias: + self.bias_c = Parameter( + torch.empty(self.output_size_per_partition, + device=get_accelerator().current_device_name(), + dtype=config.params_dtype)) + self.bias_r = Parameter( + torch.empty(self.output_size_r, + device=get_accelerator().current_device_name(), + dtype=config.params_dtype)) + if config.perform_initialization: + with torch.no_grad(): + self.bias_c.zero_() + self.bias_r.zero_() + else: + self.register_parameter('bias_c', None) + self.register_parameter('bias_r', None) + + if config.swiglu: + + def swiglu(x): + x = torch.chunk(x, 2, dim=-1) + return F.silu(x[0]) * x[1] + + self.mlp_activation_func = swiglu + else: + self.mlp_activation_func = F.gelu + # ------------ init mlp end ------------ + + def forward(self, hidden_states, attention_mask, rotary_pos_emb=None): + # hidden_states: [s, b, h] + hidden_states0, hidden_states1 = hidden_states + + layernorm_output0 = self.input_layernorm(hidden_states0) + layernorm_output1 = self.input_layernorm(hidden_states1) + + if not self.llama_model: + rotary_pos_emb = None + + attention_output0, attention_bias0 = \ + self.self_attention( + layernorm_output0, + attention_mask, + rotary_pos_emb=rotary_pos_emb) + handle0 = dist.all_reduce(attention_output0, group=self.mpu.get_tensor_model_parallel_group(), async_op=True) + + attention_output1, attention_bias1 = \ + self.self_attention( + layernorm_output1, + attention_mask, + rotary_pos_emb=rotary_pos_emb) + handle1 = dist.all_reduce(attention_output1, group=self.mpu.get_tensor_model_parallel_group(), async_op=True) + handle0.wait() + + # Residual0 connection. + if self.apply_residual_connection_post_layernorm: + residual0 = layernorm_output0 + else: + residual0 = hidden_states0 + + if self.training: + bias_dropout_add_func = self.bias_dropout_add_fused_train + else: + bias_dropout_add_func = self.bias_dropout_add_fused_inference + if attention_bias0 is not None: + attention_bias0 = attention_bias0.expand_as(residual0) + layernorm_input0 = bias_dropout_add_func(attention_output0, attention_bias0, residual0, self.hidden_dropout) + + layernorm_output0 = self.post_attention_layernorm(layernorm_input0) + layernorm_output0 = no_oper(layernorm_output0, handle_dic, f'{self.layer_number}_0') + + # Residual1 connection. + if self.apply_residual_connection_post_layernorm: + residual1 = layernorm_output1 + else: + residual1 = hidden_states1 + + if attention_bias1 is not None: + attention_bias1 = attention_bias1.expand_as(residual1) + layernorm_input1 = bias_dropout_add_func(attention_output1, attention_bias1, residual1, self.hidden_dropout) + + layernorm_output1 = self.post_attention_layernorm(layernorm_input1) + layernorm_output1 = no_oper(layernorm_output1, handle_dic, f'{self.layer_number}_1') + + # ------------ explicit mlp start ------------ + bias_c = self.bias_c if not self.skip_bias_add else None + + input0 = copy_to_tensor_model_parallel_region_a(self.mpu, layernorm_output0, handle_dic, + f'{self.layer_number}_0') + # Batch0 Matrix multiply. + output0 = torch.matmul(input0, self.weight_c.t()) + if bias_c is not None: + output0 = output0 + bias_c + output0 = self.mlp_activation_func(output0) + output0 = torch.matmul(output0, self.weight_r.t()) + handle2 = dist.all_reduce(output0, group=self.mpu.get_tensor_model_parallel_group(), async_op=True) + + handle1.wait() + + input1 = copy_to_tensor_model_parallel_region_a(self.mpu, layernorm_output1, handle_dic, + f'{self.layer_number}_1') + # Batch1 Matrix multiply. + output1 = torch.matmul(input1, self.weight_c.t()) + output1 = self.mlp_activation_func(output1) + if bias_c is not None: + output1 = output1 + bias_c + output1 = torch.matmul(output1, self.weight_r.t()) + dist.all_reduce(output1, group=self.mpu.get_tensor_model_parallel_group()) + + handle2.wait() + + output0 = output0 + self.bias_r if self.bias_r is not None else output0 + output1 = output1 + self.bias_r if self.bias_r is not None else output1 + output_bias = self.output_bias + mlp_output0, mlp_output1, mlp_bias0, mlp_bias1 = output0, output1, output_bias, output_bias + # ------------ explicit mlp end ------------ + + if self.apply_residual_connection_post_layernorm: + residual0 = layernorm_output0 + residual1 = layernorm_output1 + else: + residual0 = layernorm_input0 + residual1 = layernorm_input1 + + if mlp_bias0 is not None: + mlp_bias0 = mlp_bias0.expand_as(residual0) + mlp_bias1 = mlp_bias1.expand_as(residual1) + output0 = bias_dropout_add_func(mlp_output0, mlp_bias0, residual0, self.hidden_dropout) + output1 = bias_dropout_add_func(mlp_output1, mlp_bias1, residual1, self.hidden_dropout) + + return output0, output1 + + +class DominoTransformer(DominoModule): + """Transformer class.""" + + def __init__(self, + config, + model_type, + mpu, + fused_layer_norm, + _initialize_affine_weight_gpu, + ColumnParallelLinear, + RowParallelLinearNoComm, + apply_rotary_pos_emb, + bias_dropout_add_fused_train, + bias_dropout_add_fused_inference, + layer_type=LayerType.encoder, + self_attn_mask_type=AttnMaskType.causal, + pre_process=True, + post_process=True, + post_layer_norm=True, + drop_path_rate=0.0): + super(DominoTransformer, self).__init__() + + self.layer_type = layer_type + self.model_type = model_type + self.post_process = post_process + self.post_layer_norm = post_layer_norm + self.num_layers = config.num_layers + self.drop_path_rate = drop_path_rate + self.drop_path_rates = [rate.item() for rate in torch.linspace(0, self.drop_path_rate, config.num_layers)] + + def build_layer(layer_number): + return DominoTransformerLayer(config, + layer_number, + mpu, + fused_layer_norm, + _initialize_affine_weight_gpu, + ColumnParallelLinear, + RowParallelLinearNoComm, + apply_rotary_pos_emb, + bias_dropout_add_fused_train, + bias_dropout_add_fused_inference, + layer_type=layer_type, + self_attn_mask_type=self_attn_mask_type, + drop_path_rate=self.drop_path_rates[layer_number - 1]) + + self.layers = torch.nn.ModuleList([build_layer(i + 1) for i in range(self.num_layers)]) + + if self.post_process and self.post_layer_norm: + self.final_layernorm = fused_layer_norm(config.hidden_size, + eps=config.layernorm_epsilon, + no_persist_layer_norm=config.no_persist_layer_norm) + + def forward(self, hidden_states, attention_mask, rotary_pos_emb=None): + # hidden_states: [s, b, h] + + for index in range(self.num_layers): + layer = self.layers[index] + hidden_states = layer(hidden_states, attention_mask, rotary_pos_emb) + + hidden_states0, hidden_states1 = hidden_states + if self.post_process and self.post_layer_norm: + hidden_states0 = self.final_layernorm(hidden_states0) + hidden_states1 = self.final_layernorm(hidden_states1) + + return hidden_states0, hidden_states1 diff --git a/deepspeed/runtime/eigenvalue.py b/deepspeed/runtime/eigenvalue.py index df63854dd1ca..a82d8b1d5c7a 100755 --- a/deepspeed/runtime/eigenvalue.py +++ b/deepspeed/runtime/eigenvalue.py @@ -7,6 +7,7 @@ from deepspeed.utils import log_dist import numpy as np import logging +from deepspeed.utils.torch import required_torch_version class Eigenvalue(object): @@ -36,12 +37,15 @@ def __init__(self, ranks=[0]) # Replace all nan/pos-inf/neg-inf to zero - # TODO: Pytorch new version may add this function, replace this one by then. def nan_to_num(self, x): - device = x.device - x = x.cpu().numpy() - x = np.nan_to_num(x=x, copy=False, nan=0.0, posinf=0.0, neginf=0.0) - return torch.from_numpy(x).to(device) + if required_torch_version(min_version=1.8): + return torch.nan_to_num(x, nan=0.0, posinf=0.0, neginf=0.0) + else: + # Fallback to numpy based implementation for backwards-compatibility with PyTorch 1.7 or older versions. + device = x.device + x = x.cpu().numpy() + x = np.nan_to_num(x=x, copy=False, nan=0.0, posinf=0.0, neginf=0.0) + return torch.from_numpy(x).to(device) def normalize(self, v): norm_squared = self.inner_product(v, v) @@ -110,8 +114,8 @@ def compute_eigenvalue(self, module, device=None, scale=1.0): eigenvalue_current, eigenvalue_previous = 1., 0. while (i < self.max_iter) and abs(eigenvalue_current) > 0 and (abs( - (eigenvalue_current - eigenvalue_previous) / eigenvalue_current) >= - self.tol): # test convergence criteria + (eigenvalue_current - eigenvalue_previous) / eigenvalue_current) + >= self.tol): # test convergence criteria eigenvalue_previous = eigenvalue_current Hv = torch.autograd.grad(grads, params, grad_outputs=v, only_inputs=True, retain_graph=True) diff --git a/deepspeed/runtime/engine.py b/deepspeed/runtime/engine.py old mode 100644 new mode 100755 index 20df5eaf81bd..bcbe0f68b04f --- a/deepspeed/runtime/engine.py +++ b/deepspeed/runtime/engine.py @@ -17,14 +17,15 @@ from torch.optim import Optimizer from torch.optim.lr_scheduler import _LRScheduler from torch._utils import _flatten_dense_tensors, _unflatten_dense_tensors +from contextlib import contextmanager -from typing import Callable, Dict, Union, Iterable +from typing import Callable, Dict, Union, Iterable, Container import deepspeed from deepspeed import comm as dist from deepspeed.runtime.utils import see_memory_usage, DummyOptim -from .zero.offload_config import OffloadDeviceEnum +from .zero.offload_config import OffloadDeviceEnum, OffloadStateTypeEnum from deepspeed.runtime.zero.stage_1_and_2 import DeepSpeedZeroOptimizer from deepspeed.runtime.zero.partition_parameters import ZeroParamStatus from deepspeed.runtime.zero.utils import is_zero_supported_optimizer, ZeRORuntimeException @@ -35,6 +36,9 @@ from deepspeed.runtime.fp16.unfused_optimizer import FP16_UnfusedOptimizer from deepspeed.runtime.bf16_optimizer import BF16_Optimizer +from deepspeed.linear.optimized_linear import LoRAOptimizedLinear +from deepspeed.module_inject.layers import GatherReplacedLayerParams + from deepspeed.runtime.config import DEEPSPEED_OPTIMIZERS, \ ADAGRAD_OPTIMIZER, ADAM_OPTIMIZER, ADAMW_OPTIMIZER, LAMB_OPTIMIZER, ONEBIT_ADAM_OPTIMIZER, ONEBIT_LAMB_OPTIMIZER, \ TORCH_ADAM_PARAM, ADAM_W_MODE, ADAM_W_MODE_DEFAULT, ZERO_ONE_ADAM_OPTIMIZER, MUADAM_OPTIMIZER, MUADAMW_OPTIMIZER, \ @@ -69,10 +73,10 @@ STEP_MICRO_TIMER, \ FORWARD_GLOBAL_TIMER, BACKWARD_GLOBAL_TIMER, BACKWARD_INNER_GLOBAL_TIMER, BACKWARD_REDUCE_GLOBAL_TIMER, \ STEP_GLOBAL_TIMER -from deepspeed.utils.debug import debug_extract_module_and_param_names +from deepspeed.utils.debug import debug_extract_module_and_param_names, debug_clear_module_and_param_names from deepspeed.monitor.monitor import MonitorMaster from deepspeed.runtime.progressive_layer_drop import ProgressiveLayerDrop -from deepspeed.runtime.utils import clip_grad_norm_ +from deepspeed.runtime.utils import clip_grad_norm_, compare_tensors_in_structures from deepspeed.runtime.eigenvalue import Eigenvalue from deepspeed.runtime.data_pipeline.constants import DATA_SAMPLING, \ DATA_ROUTING, DATA_SAMPLING_ENABLED, CURRICULUM_LEARNING, \ @@ -90,10 +94,11 @@ from .pipe.module import PipelineModule from .utils import get_ma_status +from .compiler import is_compile_supported from ..ops.adam import FusedAdam from ..moe.sharded_moe import TopKGate, MOELayer from ..moe.layer import MoE -from ..moe.utils import is_moe_param +from ..moe.utils import is_moe_param, configure_moe_param_groups from ..git_version_info import version from deepspeed.profiling.flops_profiler.profiler import FlopsProfiler @@ -120,21 +125,25 @@ def split_half_float_double_sparse(tensors): device_type = get_accelerator().device_name() - supported_types = [ - "torch.{}.HalfTensor".format(device_type), "torch.{}.FloatTensor".format(device_type), - "torch.{}.DoubleTensor".format(device_type), "torch.{}.BFloat16Tensor".format(device_type), - SparseTensor.type() - ] + supported_types = get_accelerator().supported_dtypes() for t in tensors: - assert t.type() in supported_types, f"attempting to reduce an unsupported grad type: {t.type()}" + assert t.dtype in supported_types, f"attempting to reduce an unsupported grad type: {t.dtype}" - buckets = [] + sparse_tensor_buckets, dense_tensor_buckets = [], [] for i, dtype in enumerate(supported_types): - bucket = [t for t in tensors if t.type() == dtype] - if bucket: - buckets.append((dtype, bucket)) - return buckets + sparse_bucket, dense_bucket = [], [] + for t in tensors: + if t.dtype == dtype: + if isinstance(t, SparseTensor): + sparse_bucket.append(t) + else: + dense_bucket.append(t) + if sparse_bucket: + sparse_tensor_buckets.append((dtype, sparse_bucket)) + if dense_bucket: + dense_tensor_buckets.append((dtype, dense_bucket)) + return sparse_tensor_buckets, dense_tensor_buckets class EngineTimers(object): @@ -175,21 +184,20 @@ def __init__(self, enable_micro_timers, enable_global_timers): class DeepSpeedEngine(Module): r"""DeepSpeed engine for training.""" - def __init__( - self, - args, - model, - optimizer=None, - model_parameters=None, - training_data=None, - lr_scheduler=None, - mpu=None, - dist_init_required=None, - collate_fn=None, - config=None, - config_class=None, - dont_change_device=False, - ): + def __init__(self, + args, + model, + optimizer=None, + model_parameters=None, + training_data=None, + lr_scheduler=None, + mpu=None, + dist_init_required=None, + collate_fn=None, + config=None, + config_class=None, + mesh_device=None, + dont_change_device=False): super(DeepSpeedEngine, self).__init__() self.dont_change_device = dont_change_device self.client_optimizer = optimizer @@ -210,6 +218,7 @@ def __init__( self.loaded_checkpoint_mp_world_size = None self.loaded_checkpoint_dp_world_size = None self.enable_backward_allreduce = True + self.inside_no_sync_ctxt = False self.progressive_layer_drop = None self.eigenvalue = None self.block_eigenvalue = None @@ -222,22 +231,24 @@ def __init__( self._step_applied = False self._global_grad_norm = None self.use_ds_comm = False # False --> Use torch.dist, True --> Use ds.comm backend. - self.checkpoint_engine = None self._is_gradient_accumulation_boundary = None self.scale_wrt_gas = None - self.losses = 0.0 + self.losses = None + self.mesh_device = mesh_device # for debug purposes - can then debug print: debug_get_module_name(module) debug_extract_module_and_param_names(model) - # needed for zero_to_fp32 weights reconstruction to remap nameless data to state_dict - self.param_names = {param: name for name, param in model.named_parameters()} + if self.mesh_device: + groups.mesh_device = self.mesh_device self._do_args_sanity_check(args) self._configure_with_arguments(args, mpu) self._do_sanity_check() + if self.autotp_size() > 1: + self._configure_tensor_parallel_states(model) see_memory_usage(f"DeepSpeed Engine: After args sanity test", force=self.memory_breakdown()) if mpu is not None: if self.elasticity_enabled(): @@ -261,6 +272,9 @@ def __init__( # Configure distributed model self._configure_distributed_model(model) + # needed for zero_to_fp32 weights reconstruction to remap nameless data to state_dict + self.param_names = {param: name for name, param in model.named_parameters()} + self._get_model_parameters() see_memory_usage(f"DeepSpeed Engine: After configure distributed model") @@ -268,11 +282,10 @@ def __init__( # Configure wall clock timers self.timers = SynchronizedWallClockTimer() # Throughput timer - self.tput_timer = ThroughputTimer( - batch_size=self.train_batch_size(), - steps_per_output=self.steps_per_print(), - monitor_memory=False, - ) + self.tput_timer = ThroughputTimer(self._config.timers_config, + batch_size=self.train_batch_size(), + steps_per_output=self.steps_per_print(), + monitor_memory=False) log_dist(f"DeepSpeed Flops Profiler Enabled: {self.flops_profiler_enabled()}", ranks=[0]) @@ -302,7 +315,7 @@ def __init__( if has_optimizer: self._configure_optimizer(optimizer, model_parameters) - self._configure_lr_scheduler(lr_scheduler) + self._configure_lr_scheduler() self._report_progress(0) elif self.zero_optimization(): # no optim selected but zero is enabled @@ -324,6 +337,8 @@ def __init__( self.sparse_tensor_module_names.add(name + ".weight") logger.info("Will convert {} to sparse tensor during training".format(name)) + self._optimized_linear_offload_setup() + self.save_non_zero_checkpoint = False self.save_zero_checkpoint = False if not isinstance(self.optimizer, DeepSpeedZeRoOffload): @@ -359,9 +374,114 @@ def __init__( self.flatten = _flatten_dense_tensors self.unflatten = _unflatten_dense_tensors + self._is_compiled = False + + def _optimized_linear_offload_setup(self): + self.optimized_linear_base_weight_sharding = False + self.optimized_linear_lora_enabled = False + offload_ratio = None + for _, module in self.module.named_modules(): + if isinstance(module, LoRAOptimizedLinear): + self.optimized_linear_lora_enabled = True + offload_ratio = None + if offload_ratio is not None: + assert offload_ratio == module.lora_config.offload_ratio, \ + "all lora_config offload ratios should be the same across the model" + offload_ratio = module.lora_config.offload_ratio + if module.zero_shards > 1: + # set attr so checkpoint saving can handle BWS properly + self.optimized_linear_base_weight_sharding = True + + if offload_ratio is None: + # Nothing enabled, do nothing + return + + total_params = 0 + for _, p in self.module.named_parameters(): + if hasattr(p, 'ds_optim_param'): + total_params += p.numel() + + offload_limit = total_params * offload_ratio + logger.info(f'offloading {offload_ratio*100}% of eligible params, specifically {offload_limit} params') + total_offloaded = 0 + for _, p in self.module.named_parameters(): + if hasattr(p, 'ds_optim_param'): + if total_offloaded < offload_limit: + total_offloaded += p.numel() + p.ds_offload = True + p.offload() + else: + p.ds_offload = False + + def _configure_tensor_parallel_states(self, model): + """ + Configures the tensor parallel states for the model. + This includes setting up the tensor parallel groups, initializing the TP mesh, + and registering a pre-hook to ensure that the Dataloader inputs are consistent across ranks. + """ + self._set_client_model(model) + + # sanity check + # currently, the compatibility between 'autotp' and 'zero > 1' has not been validated + assert self.zero_optimization_stage( + ) <= 2, "Currently, the compatibility between 'autotp' and 'zero_stage = 3' has not been validated" + + self.mpu = groups + self.mpu._init_tp_mesh_device(tensor_model_parallel_size=self.autotp_size()) + + self.first_dataloader_check = None + + def check_dataloader_inputs_same_across_ranks(module, args, kwargs): + + def broadcast_and_check(args, bcast_rank, bcast_group): + if isinstance(args, tuple): + args = list(args) + if len(args) > 0: + if self.mpu.get_tensor_model_parallel_rank() == 0: + _src_args = [args] + dist.broadcast_object_list(object_list=_src_args, + src=bcast_rank, + group=bcast_group, + device=get_accelerator().current_device()) + # Rank 0 does not need to compare with itself + is_equal = True + else: + _src_args = [None] + dist.broadcast_object_list(object_list=_src_args, + src=bcast_rank, + group=bcast_group, + device=get_accelerator().current_device()) + + is_equal = compare_tensors_in_structures(args, _src_args[0]) + + equal_tensor = torch.tensor(is_equal, + dtype=self.communication_data_type, + device=get_accelerator().current_device()) + dist.all_reduce(equal_tensor, group=bcast_group) + assert torch.equal( + equal_tensor, + torch.tensor(groups.get_tensor_model_parallel_world_size(), + dtype=self.communication_data_type, + device=get_accelerator().current_device()) + ), "Data inconsistency within the TP group. Please check the Dataloader implementation to ensure consistency." + + bcast_rank = self.mpu.get_tensor_model_parallel_src_rank() + bcast_group = self.mpu.get_tensor_model_parallel_group() + + broadcast_and_check(args, bcast_rank, bcast_group) + broadcast_and_check(kwargs, bcast_rank, bcast_group) + + logger.info(f":The Dataloader has passed the TP group consistency check.") + self.first_dataloader_check.remove() + + self.first_dataloader_check = self.module.register_forward_pre_hook(check_dataloader_inputs_same_across_ranks, + prepend=True, + with_kwargs=True) + def destroy(self): if self.optimizer is not None and hasattr(self.optimizer, 'destroy'): self.optimizer.destroy() + debug_clear_module_and_param_names() def _get_model_parameters(self): if self.autotuning_profile_model_info(): @@ -569,6 +689,9 @@ def random_ltd_initialize(self): raise ValueError(f'not yet support') #self.lr_scheduler = lr_schedules.WarmupLayerTokenDecayLR(self.optimizer, self.random_ltd_scheduler) + def get_sequence_parallel_group(self): + return self.seq_parallel_group + def wall_clock_breakdown(self): return self._config.wall_clock_breakdown @@ -743,6 +866,9 @@ def zero_load_from_fp32_weights(self): def zero_elastic_checkpoint(self): return self._config.zero_config.elastic_checkpoint + def zero_nvme_offload_optimizer(self): + return getattr(self.optimizer, "swap_optimizer", False) + def zero_max_live_parameters(self): return self._config.zero_config.max_live_parameters @@ -752,6 +878,9 @@ def zero_max_reuse_distance(self): def zero_prefetch_bucket_size(self): return self._config.zero_config.prefetch_bucket_size + def zero_module_granularity_threshold(self): + return self._config.zero_config.module_granularity_threshold + def zero_param_persistence_threshold(self): return self._config.zero_config.param_persistence_threshold @@ -770,6 +899,12 @@ def zero_legacy_stage1(self): def zero_ignore_unused_parameters(self): return self._config.zero_config.ignore_unused_parameters + def autotp_size(self): + return self._config.tensor_parallel_config.autotp_size + + def graph_harvesting(self): + return self._config.graph_harvesting + def fp16_enabled(self): return self._config.fp16_enabled @@ -845,6 +980,12 @@ def zero_quantized_nontrainable_weights(self): def zero_quantized_gradients(self): return self._config.zero_config.zero_quantized_gradients + def zeropp_loco_param(self): + return self._config.zero_config.zeropp_loco_param + + def zero_log_trace_cache_warnings(self): + return self._config.zero_config.log_trace_cache_warnings + def dump_state(self): return self._config.dump_state @@ -889,19 +1030,19 @@ def _optimizer_has_ckpt_event_prologue(self): def _optimizer_has_ckpt_event_epilogue(self): return self.optimizer is not None and hasattr(self.optimizer, 'checkpoint_event_epilogue') - def _configure_lr_scheduler(self, client_lr_scheduler): - # First check for scheduler in json configuration - lr_scheduler = self._scheduler_from_config(self.optimizer) - if lr_scheduler: - log_dist(f"DeepSpeed using configured LR scheduler = {self.scheduler_name()}", ranks=[0]) - self.lr_scheduler = lr_scheduler - else: - if isinstance(client_lr_scheduler, Callable): + def _configure_lr_scheduler(self): + if self.client_lr_scheduler: + if isinstance(self.client_lr_scheduler, Callable): log_dist('DeepSpeed using client callable to create LR scheduler', ranks=[0]) - self.lr_scheduler = client_lr_scheduler(self.basic_optimizer) + self.lr_scheduler = self.client_lr_scheduler(self.basic_optimizer) else: log_dist('DeepSpeed using client LR scheduler', ranks=[0]) - self.lr_scheduler = client_lr_scheduler + self.lr_scheduler = self.client_lr_scheduler + else: + # load lr scheduler from json configuration if lr scheduler is not defined and passed in + lr_scheduler = self._scheduler_from_config(self.optimizer) + log_dist(f"DeepSpeed using configured LR scheduler = {self.scheduler_name()}", ranks=[0]) + self.lr_scheduler = lr_scheduler log_dist(f'DeepSpeed LR Scheduler = {self.lr_scheduler}', ranks=[0]) @@ -955,13 +1096,13 @@ def _set_distributed_vars(self, args): device_rank = args.device_rank if args is not None and hasattr(args, 'device_rank') else self.local_rank if device_rank >= 0: get_accelerator().set_device(device_rank) - self.device = torch.device(get_accelerator().device_name(), device_rank) + self.device = torch.device(get_accelerator().device_name(device_rank)) self.world_size = dist.get_world_size() self.global_rank = dist.get_rank() else: self.world_size = 1 self.global_rank = 0 - self.device = torch.device(get_accelerator().device_name()) + self.device = get_accelerator().device() # Configure based on command line arguments def _configure_with_arguments(self, args, mpu): @@ -1014,6 +1155,12 @@ def _supported_optims(self): # Validate configuration based on command line arguments def _do_sanity_check(self): + if self.fp16_enabled() and not get_accelerator().is_fp16_supported(): + raise ValueError("Type fp16 is not supported on your device.") + + if self.bfloat16_enabled() and not get_accelerator().is_bf16_supported(): + raise ValueError("Type bf16 is not supported on your device.") + expected_optim_types = self._supported_optims() expected_optim_types += [type(None), Callable] assert isinstance(self.client_optimizer, tuple(expected_optim_types)), \ @@ -1038,18 +1185,21 @@ def _broadcast_model(self): def is_replicated(p): if hasattr(p, "ds_status") and p.ds_status is not ZeroParamStatus.AVAILABLE: return False + elif hasattr(p, 'ds_optim_param'): + # do not broadcast OptimizedLinear parameters, they are unique per base weight shard + return False return True - for p in self.module.parameters(): + for n, p in self.module.named_parameters(): # Broadcast the model for different parameters if is_moe_param(p): if torch.is_tensor(p) and is_replicated(p): - dist.broadcast(p, + dist.broadcast(p.data, groups._get_expert_broadcast_src_rank(p.group_name), group=self.expert_data_parallel_group[p.group_name]) else: if torch.is_tensor(p) and is_replicated(p): - dist.broadcast(p, groups._get_broadcast_src_rank(), group=self.seq_data_parallel_group) + dist.broadcast(p.data, groups._get_broadcast_src_rank(), group=self.seq_data_parallel_group) @staticmethod def __check_params(model: Module, dtype: torch.dtype) -> None: @@ -1129,7 +1279,8 @@ def _configure_distributed_model(self, model): # Query the groups module to get information about various parallel groups self.local_all_to_all_group = None if self.zero_quantized_gradients(): - log_dist("Using quantized gradients", ranks=[0]) + message = "Using LoCo quantized gradients" if self.zeropp_loco_param() else "Using quantized gradients" + log_dist(message, ranks=[0]) self.local_all_to_all_group = groups._get_local_all_to_all_group() self.data_parallel_group = groups._get_data_parallel_group() self.dp_world_size = groups._get_data_parallel_world_size() @@ -1141,6 +1292,7 @@ def _configure_distributed_model(self, model): self.sequence_parallel_size = groups._get_sequence_parallel_world_size() if self.sequence_parallel_size > 1: self.communication_data_type = self._config.seq_parallel_communication_data_type + self.seq_parallel_group = groups._get_sequence_parallel_group() if not (self.amp_enabled() or is_zero_init_model): self._broadcast_model() @@ -1194,9 +1346,15 @@ def _do_optimizer_sanity_check(self, basic_optimizer): # data type checks elif model_dtype == grad_accum_dtype: if model_dtype == torch.bfloat16: - raise NotImplementedError( - "Bfloat16 wrapper must use a gradient accumulation type of fp32, enable ZeRO to use Bfloat16 gradient accumulation" - ) + if self.pipeline_parallelism: + logger.warning( + "**** BF16 gradient accumulation is not safe numerically with large number of accumulation steps, proceed with caution *****" + ) + return BFLOAT16 + else: + raise NotImplementedError( + "Bfloat16 wrapper must use a gradient accumulation type of fp32, enable ZeRO to use Bfloat16 gradient accumulation" + ) if model_dtype == torch.float16: return FP16 # else optimizer_wrapper = None @@ -1210,6 +1368,8 @@ def _do_optimizer_sanity_check(self, basic_optimizer): # Configure optimizer def _configure_optimizer(self, client_optimizer, model_parameters): if client_optimizer is None: + if self.has_moe_layers: + model_parameters = configure_moe_param_groups(model_parameters) basic_optimizer = self._configure_basic_optimizer(model_parameters) log_dist(f"Using DeepSpeed Optimizer param name {self.optimizer_name()} as basic optimizer", ranks=[0]) else: @@ -1251,7 +1411,7 @@ def _configure_optimizer(self, client_optimizer, model_parameters): else: self.optimizer = basic_optimizer - log_dist("DeepSpeed Final Optimizer = {}".format(self.optimizer_name()), ranks=[0]) + log_dist("DeepSpeed Final Optimizer = {}".format(self.optimizer.__class__.__name__), ranks=[0]) self.compression_scheduler = self._configure_compression_scheduler() self.quantizer = self._configure_quantization() @@ -1458,7 +1618,11 @@ def _configure_bf16_optimizer(self, optimizer): clip_grad=clip_grad, allgather_bucket_size=self.zero_allgather_bucket_size(), dp_process_group=self.seq_data_parallel_group, - timers=timers) + timers=timers, + grad_acc_dtype=self.get_data_types()[1], + graph_harvesting=self.graph_harvesting(), + immediate_grad_update=self._config.bfloat16_immediate_grad_update, + has_moe_layers=self.has_moe_layers) return optimizer @@ -1485,13 +1649,6 @@ def _configure_zero_optimizer(self, optimizer): assert not isinstance(optimizer, DummyOptim), "zero stage {} requires an optimizer".format(zero_stage) log_dist(f'Creating {model_dtype} ZeRO stage {zero_stage} optimizer', ranks=[0]) - # Overlap and contiguous grads are meaningless in stage 1 and are ignored - if zero_stage == ZeroStageEnum.optimizer_states: - overlap_comm = False - round_robin_gradients = False - # Non-MoE requires contiguous grads to be disabled w. stage 1 - if not self.has_moe_layers: - contiguous_gradients = False if isinstance(self.module, PipelineModule): if overlap_comm: @@ -1551,6 +1708,8 @@ def _configure_zero_optimizer(self, optimizer): zero_param_parallel_group=zero_param_parallel_group, zero_quantized_weights=self.zero_quantized_weights(), zero_quantized_nontrainable_weights=self.zero_quantized_nontrainable_weights(), + zero_module_granularity_threshold=self.zero_module_granularity_threshold(), + log_trace_cache_warnings=self.zero_log_trace_cache_warnings(), ) else: log_dist( @@ -1597,6 +1756,9 @@ def _configure_zero_optimizer(self, optimizer): zero_hpz_partition_size=self.zero_hpz_partition_size(), zero_quantized_weights=self.zero_quantized_weights(), zero_quantized_nontrainable_weights=self.zero_quantized_nontrainable_weights(), + zero_module_granularity_threshold=self.zero_module_granularity_threshold(), + zeropp_loco_param=self.zeropp_loco_param(), + log_trace_cache_warnings=self.zero_log_trace_cache_warnings(), ) else: @@ -1753,14 +1915,17 @@ def eval(self): self.warn_unscaled_loss = True self.module.train(False) - def _scale_loss_by_gas(self, prescaled_loss): + def _scale_loss_by_gas(self, prescaled_loss, eval_micro_batches=None): + # In pipeline evaluation, there is an option to use different micro-bs, which creates different number of + # micro batches, thus the training gas, is not valid in this case. need to use the number of eval_micro_batches + scaling_factor = self.gradient_accumulation_steps() if eval_micro_batches is None else eval_micro_batches if isinstance(prescaled_loss, torch.Tensor): - scaled_loss = prescaled_loss / self.gradient_accumulation_steps() + scaled_loss = prescaled_loss / scaling_factor elif isinstance(prescaled_loss, tuple) or isinstance(prescaled_loss, list): scaled_loss = [] for l in prescaled_loss: if isinstance(l, torch.Tensor): - scaled_loss.append(l / self.gradient_accumulation_steps()) + scaled_loss.append(l / scaling_factor) else: scaled_loss.append(l) else: @@ -1865,7 +2030,7 @@ def _cast_inputs_half(self, inputs): for k, v in inputs.items(): new_inputs[k] = self._cast_inputs_half(v) return new_inputs - elif hasattr(inputs, 'half'): + elif hasattr(inputs, 'half') and inputs.is_floating_point(): return inputs.half() else: return inputs @@ -1895,9 +2060,6 @@ def print_forward_breakdown(self, fwd_time): @instrument_w_nvtx def allreduce_gradients(self, bucket_size=MEMORY_OPT_ALLREDUCE_SIZE): - assert not (self.bfloat16_enabled() and self.pipeline_parallelism), \ - f'allreduce_gradients() is not valid when bfloat+pipeline_parallelism is enabled' - # Pass (PP) gas boundary flag to optimizer (required for zero) self.optimizer.is_gradient_accumulation_boundary = self.is_gradient_accumulation_boundary() # ZeRO stage >= 2 communicates during non gradient accumulation boundaries as well @@ -1910,14 +2072,34 @@ def allreduce_gradients(self, bucket_size=MEMORY_OPT_ALLREDUCE_SIZE): self.optimizer, 'reduce_gradients'): self.optimizer.reduce_gradients(pipeline_parallel=self.pipeline_parallelism) else: - self.buffered_allreduce_fallback(elements_per_buffer=bucket_size) + grads = None + self.buffered_allreduce_fallback(grads=grads, elements_per_buffer=bucket_size) + + @contextmanager + def no_sync(self): + r""" + Context manager to disable gradient reduction during backward pass. + This context manager has the following effects on other DeepSpeed features. + 1. Incompatible with ZeRO stage 2/3 which rely on reduction for gradient partitioning. + 2. It is illegal to call engine.step() within the context manager. + 3. Tracking of gradient accumulation steps is disabled. + """ + assert not self.zero_optimization_partition_gradients(), \ + f"no_sync context manager is incompatible with gradient partitioning logic of ZeRO stage {self.zero_optimization_stage()}" + + assert not self.inside_no_sync_ctxt, f"no_sync context manager reentry is unsupported" + + self.inside_no_sync_ctxt = True + try: + yield + finally: + self.inside_no_sync_ctxt = False @instrument_w_nvtx - def backward(self, loss, allreduce_gradients=True, release_loss=False, retain_graph=False, scale_wrt_gas=True): + def backward(self, loss, release_loss=False, retain_graph=False, scale_wrt_gas=True): r"""Execute backward pass on the loss Arguments: loss: Torch tensor on which to execute backward propagation - allreduce_gradients: is deprecated, ignored, and will soon be removed' retain_graph: bool, default: false forward on user defined choice of retain_graph """ @@ -1927,21 +2109,21 @@ def backward(self, loss, allreduce_gradients=True, release_loss=False, retain_gr if self.scale_wrt_gas is not None: scale_wrt_gas = self.scale_wrt_gas - if not allreduce_gradients: - logger.warning(f"Argument `allreduce_gradients` is deprecated, ignored, and will soon be removed") + do_gradient_reduction = self.enable_backward_allreduce and not self.inside_no_sync_ctxt - # scale loss w.r.t. gradient accumulation if needed - if self.gradient_accumulation_steps() > 1 and scale_wrt_gas: + # scale loss w.r.t. gradient accumulation if reduction is not disabled + if do_gradient_reduction and self.gradient_accumulation_steps() > 1 and scale_wrt_gas: loss = self._scale_loss_by_gas(loss.float()) # Log training loss - self.losses += loss.mean().item() + mean_loss = loss.mean().detach() + self.losses = mean_loss if self.losses is None else self.losses + mean_loss if self.monitor.enabled: if self.is_gradient_accumulation_boundary(): if self.global_rank == 0: self.summary_events = [( f"Train/Samples/train_loss", - self.losses, + self.losses.item(), self.global_samples, )] self.monitor.write_events(self.summary_events) @@ -1979,7 +2161,7 @@ def backward(self, loss, allreduce_gradients=True, release_loss=False, retain_gr self._start_timers(self.engine_timers.backward_reduce_timers) - if allreduce_gradients and self.enable_backward_allreduce: + if do_gradient_reduction: # Traditional code path that allreduces the module parameter grads self.allreduce_gradients() @@ -2083,8 +2265,6 @@ def _take_model_step(self, lr_kwargs, block_eigenvalue={}): else: self.zero_grad() - report_progress = self.global_rank == 0 if self.global_rank else True - # Check overflow here since in DS fp16 optimizer, the overflow is updated in above step() function. overflow = False if hasattr(self.optimizer, "overflow"): @@ -2104,10 +2284,12 @@ def _take_model_step(self, lr_kwargs, block_eigenvalue={}): # pipe_engine.train_batch() self.lr_scheduler.step(self.train_batch_size()) - if report_progress and (self.global_steps + 1) % self.steps_per_print() == 0: - self._report_progress(self.global_steps + 1) + if self.steps_per_print() is not None: + report_progress = self.global_rank == 0 if self.global_rank else True + if report_progress and (self.global_steps + 1) % self.steps_per_print() == 0: + self._report_progress(self.global_steps + 1) - self.losses = 0.0 + self.losses = None self.global_steps += 1 self.global_samples += self.train_batch_size() @@ -2115,6 +2297,9 @@ def step(self, lr_kwargs=None): r"""Execute the weight update step after forward and backward propagation on effective_train_batch. """ + assert not self.inside_no_sync_ctxt, \ + "It is illegal to call Engine.step() inside no_sync context manager" + see_memory_usage("Engine before step", force=self.memory_breakdown()) # Check early because self.global_steps is incremented at some point here. @@ -2317,7 +2502,7 @@ def _report_progress(self, step): mom = self.get_mom() log_dist(f"step={step}, skipped={self.skipped_steps}, lr={lr}, mom={mom}", ranks=[0]) - def allreduce_bucket(self, bucket, dp_group): + def allreduce_bucket(self, bucket, dp_group, dp_world_size=None): tensor = self.flatten(bucket) tensor_to_allreduce = tensor @@ -2325,16 +2510,18 @@ def allreduce_bucket(self, bucket, dp_group): if self.communication_data_type != tensor.dtype: tensor_to_allreduce = tensor.to(self.communication_data_type) + if dp_world_size is None: + dp_world_size = dist.get_world_size(group=dp_group) if self.postscale_gradients(): if self.gradient_predivide_factor() != 1.0: tensor_to_allreduce.mul_(1.0 / self.gradient_predivide_factor()) dist.all_reduce(tensor_to_allreduce, group=dp_group) if self.gradient_average: - if self.gradient_predivide_factor() != dist.get_world_size(group=dp_group): - tensor_to_allreduce.mul_(self.gradient_predivide_factor() / dist.get_world_size(group=dp_group)) + if self.gradient_predivide_factor() != dp_world_size: + tensor_to_allreduce.mul_(self.gradient_predivide_factor() / dp_world_size) else: - tensor_to_allreduce.mul_(1. / dist.get_world_size(group=dp_group)) + tensor_to_allreduce.mul_(1. / dp_world_size) dist.all_reduce(tensor_to_allreduce, group=dp_group) if self.communication_data_type != tensor.dtype and tensor is not tensor_to_allreduce: @@ -2342,23 +2529,23 @@ def allreduce_bucket(self, bucket, dp_group): return tensor - def allreduce_and_copy(self, small_bucket, dp_group): - allreduced = self.allreduce_bucket(small_bucket, dp_group) + def allreduce_and_copy(self, small_bucket, dp_group, dp_world_size=None): + allreduced = self.allreduce_bucket(small_bucket, dp_group, dp_world_size) for buf, synced in zip(small_bucket, self.unflatten(allreduced, small_bucket)): buf.copy_(synced) - def allreduce_no_retain(self, bucket, dp_group, numel_per_bucket=500000000): + def allreduce_no_retain(self, bucket, dp_group, numel_per_bucket=500000000, dp_world_size=None): small_bucket = [] numel = 0 for tensor in bucket: small_bucket.append(tensor) numel = numel + tensor.numel() if numel > numel_per_bucket: - self.allreduce_and_copy(small_bucket, dp_group) + self.allreduce_and_copy(small_bucket, dp_group, dp_world_size) small_bucket = [] numel = 0 if len(small_bucket) > 0: - self.allreduce_and_copy(small_bucket, dp_group) + self.allreduce_and_copy(small_bucket, dp_group, dp_world_size) def _get_gradients_for_reduction(self): non_expert_grads = [] @@ -2392,36 +2579,56 @@ def _get_gradients_for_reduction(self): return non_expert_grads, expert_grads def _reduce_non_expert_gradients(self, grads, elements_per_buffer): - split_buckets = split_half_float_double_sparse(grads) - for _, bucket_tuple in enumerate(split_buckets): - bucket_type, bucket = bucket_tuple - - if self.pipeline_parallelism: - dp_group = self.mpu.get_data_parallel_group() - else: - dp_group = groups._get_sequence_data_parallel_group() - - if bucket_type == SparseTensor.type(): - self.sparse_allreduce_no_retain(bucket, dp_group=dp_group) - else: - self.allreduce_no_retain(bucket, dp_group=dp_group, numel_per_bucket=elements_per_buffer) + split_sparse_tensor_buckets, split_dense_tensor_buckets = split_half_float_double_sparse(grads) + if self.pipeline_parallelism: + dp_group = self.mpu.get_data_parallel_group() + dp_world_size = dist.get_world_size(dp_group) + else: + dp_group = groups._get_sequence_data_parallel_group() + dp_world_size = dist.get_world_size(dp_group) / float(self.sequence_parallel_size) + for _, sparse_bucket_tuple in enumerate(split_sparse_tensor_buckets): + if sparse_bucket_tuple: + bucket_type, sparse_bucket = sparse_bucket_tuple + self.sparse_allreduce_no_retain(sparse_bucket, dp_group=dp_group, dp_world_size=dp_world_size) + + for _, dense_bucket_tuple in enumerate(split_dense_tensor_buckets): + if dense_bucket_tuple: + bucket_type, dense_bucket = dense_bucket_tuple + self.allreduce_no_retain(dense_bucket, + dp_group=dp_group, + numel_per_bucket=elements_per_buffer, + dp_world_size=dp_world_size) def _reduce_expert_gradients(self, expert_grads, elements_per_buffer): + # to maintain the gradients value unaffected by ep_size setting, + # utilize dp_world_size for allreduce average + dp_world_size = dist.get_world_size(groups._get_data_parallel_group()) for ep_name, expert_grads_group in expert_grads.items(): - expert_split_buckets = split_half_float_double_sparse(expert_grads_group) - for i, bucket_tuple in enumerate(expert_split_buckets): - bucket_type, bucket = bucket_tuple - if bucket_type == SparseTensor.type(): - self.sparse_allreduce_no_retain(bucket, groups._get_expert_data_parallel_group(ep_name)) - else: + ep_dp_group = groups._get_expert_data_parallel_group(ep_name) + split_sparse_tensor_buckets, split_dense_tensor_buckets = split_half_float_double_sparse( + expert_grads_group) + + for _, sparse_bucket_tuple in enumerate(split_sparse_tensor_buckets): + if sparse_bucket_tuple: + bucket_type, sparse_bucket = sparse_bucket_tuple + self.sparse_allreduce_no_retain(sparse_bucket, dp_group=ep_dp_group, dp_world_size=dp_world_size) + + for _, dense_bucket_tuple in enumerate(split_dense_tensor_buckets): + if dense_bucket_tuple: + bucket_type, dense_bucket = dense_bucket_tuple # Separate between diff groups - self.allreduce_no_retain(bucket, - dp_group=groups._get_expert_data_parallel_group(ep_name), - numel_per_bucket=elements_per_buffer) + self.allreduce_no_retain(dense_bucket, + dp_group=ep_dp_group, + numel_per_bucket=elements_per_buffer, + dp_world_size=dp_world_size) def buffered_allreduce_fallback(self, grads=None, elements_per_buffer=500000000): if grads is None: - non_expert_grads, expert_grads = self._get_gradients_for_reduction() + if hasattr(self.optimizer, "get_grads_for_reduction"): + # This is currently for BF16 optimizer + non_expert_grads, expert_grads = self.optimizer.get_grads_for_reduction() + else: + non_expert_grads, expert_grads = self._get_gradients_for_reduction() else: assert not self.has_moe_layers, "attempting to reduce grads in unsupported way w.r.t. MoE" non_expert_grads = grads @@ -2431,8 +2638,8 @@ def buffered_allreduce_fallback(self, grads=None, elements_per_buffer=500000000) if self.has_moe_layers: self._reduce_expert_gradients(expert_grads, elements_per_buffer) - def sparse_allreduce_no_retain(self, bucket, dp_group): - allreduced_sparses = self.sparse_allreduce_bucket(bucket, dp_group) + def sparse_allreduce_no_retain(self, bucket, dp_group, dp_world_size=None): + allreduced_sparses = self.sparse_allreduce_bucket(bucket, dp_group, dp_world_size) # Densify sparse tensor and copy back to original location for tensor in allreduced_sparses: if tensor.is_sparse: @@ -2440,13 +2647,13 @@ def sparse_allreduce_no_retain(self, bucket, dp_group): else: tensor.orig_dense_tensor.copy_(tensor.to_dense()) - def sparse_allreduce_bucket(self, bucket, dp_group): + def sparse_allreduce_bucket(self, bucket, dp_group, dp_world_size=None): sparse_list = [] for sparse in bucket: - sparse_list.append(self.sparse_allreduce(sparse, dp_group)) + sparse_list.append(self.sparse_allreduce(sparse, dp_group, dp_world_size)) return sparse_list - def sparse_allreduce(self, sparse, dp_group): + def sparse_allreduce(self, sparse, dp_group, dp_world_size=None): original_data_type = sparse.values.dtype if self.communication_data_type != sparse.values.dtype: if self.communication_data_type in (torch.float16, torch.bfloat16): @@ -2458,12 +2665,13 @@ def sparse_allreduce(self, sparse, dp_group): indices = sparse.indices values = sparse.values + if dp_world_size is None: + dp_world_size = dist.get_world_size(group=dp_group) if self.postscale_gradients(): if self.gradient_average: - values.mul_(self.gradient_predivide_factor() / - (dist.get_world_size(group=dp_group) / float(self.sequence_parallel_size))) + values.mul_(self.gradient_predivide_factor() / (dp_world_size)) else: - values.mul_(1. / (dist.get_world_size(group=dp_group) / float(self.sequence_parallel_size))) + values.mul_(1. / (dp_world_size)) indices_device_list = self.sparse_all_gather(indices, dp_group) values_device_list = self.sparse_all_gather(values, dp_group) @@ -2505,7 +2713,7 @@ def all_gather_scalar(self, value, dp_group): return tensor_list def module_state_dict(self, destination=None, prefix="", keep_vars=False, exclude_frozen_parameters=False): - sd = self.module.state_dict(destination, prefix, keep_vars) + sd = self.module.state_dict(destination=destination, prefix=prefix, keep_vars=keep_vars) # Remove frozen parameter weights from state_dict if specified if exclude_frozen_parameters: @@ -2630,7 +2838,10 @@ def _get_ckpt_name(self, checkpoints_path, tag, mp_placeholder=None): mp_rank_str = f"{mp_rank:02d}" if self.zero_optimization_partition_weights(): - filename = "zero_pp_rank_{}".format(dist.get_rank(group=self.optimizer.dp_process_group)) + if self.load_universal_checkpoint(): + filename = "zero_pp_rank_0" + else: + filename = "zero_pp_rank_{}".format(dist.get_rank(group=self.optimizer.dp_process_group)) ckpt_name = os.path.join( checkpoints_path, str(tag), @@ -2732,23 +2943,33 @@ def load_checkpoint(self, load_module_only=load_module_only, custom_load_fn=custom_load_fn) - if not load_module_only and load_optimizer_states: - load_zero_checkpoint = self.zero_optimization() or self.bfloat16_enabled() - if load_zero_checkpoint and load_path is not None: - success = self._load_zero_checkpoint( - load_dir, - tag, - load_optimizer_states=load_optimizer_states) - if not success: - self.optimizer._restore_from_bit16_weights() + load_zero_checkpoint = load_path is not None and (self.zero_optimization() or self.bfloat16_enabled()) + if load_zero_checkpoint: + if (load_optimizer_states and not load_module_only) or self.load_universal_checkpoint(): + success = self._load_zero_checkpoint(load_dir, tag, load_optimizer_states=load_optimizer_states) + else: + success = False + if not success: + self.optimizer._restore_from_bit16_weights() + + if self.zero_nvme_offload_optimizer(): + from shutil import copytree, disk_usage + offload_dir = self.optimizer.optimizer_swapper.swap_folder + offload_ckpt_dir = os.path.join(load_dir, tag, "offloaded_tensors") + _, _, free = disk_usage(offload_dir) + logger.info( + f"Copying NVMe offload checkpoint from {offload_ckpt_dir} to {offload_dir}, {free / 1e9:,.2f} GB free on target filesystem..." + ) + copytree(offload_ckpt_dir, offload_dir, dirs_exist_ok=True) + _, _, free = disk_usage(offload_dir) + logger.info(f"Copying complete! {free / 1e9:,.2f} GB free on target filesystem") + self.optimizer.reset_swap_buffers() - if self._optimizer_has_ckpt_event_epilogue(): - self.optimizer.checkpoint_event_epilogue() + if self._optimizer_has_ckpt_event_epilogue(): + self.optimizer.checkpoint_event_epilogue() - if self.load_universal_checkpoint(): + if self.load_universal_checkpoint() and not self.zero_optimization_partition_weights(): self.optimizer.update_lp_params() - if load_zero_checkpoint: - self.update_optimizer_step(step=client_states['iteration'] + 1) return load_path, client_states @@ -2916,11 +3137,13 @@ def _load_zero_checkpoint(self, load_dir, tag, load_optimizer_states=True): if zero_sd_list is None: return False + param_shapes = self._get_zero_param_shapes() self.optimizer.load_state_dict(state_dict_list=zero_sd_list, load_optimizer_states=load_optimizer_states, load_from_fp32_weights=self.zero_load_from_fp32_weights(), checkpoint_folder=checkpoint_folder, - load_serial=load_serial) + load_serial=load_serial, + param_shapes=param_shapes) if self.load_universal_checkpoint(): logger.info(f'loaded universal zero checkpoints from {checkpoint_folder} for rank {self.global_rank}') @@ -2928,24 +3151,6 @@ def _load_zero_checkpoint(self, load_dir, tag, load_optimizer_states=True): logger.info(f"loading {len(zero_sd_list)} zero partition checkpoints for rank {self.global_rank}") return True - def update_optimizer_step(self, step): - - def set_step(d): - if isinstance(d['step'], torch.Tensor): - d['step'] = torch.tensor(step, dtype=d['step'].dtype, device=d['step'].device) - else: - d['step'] = step - - optimizer = self.optimizer - base_optimizer = optimizer.optimizer - state = base_optimizer.state - for group in optimizer.param_groups: - if 'step' in group: - set_step(group) - for p in group['params']: - if p in state and len(state[p]) > 0 and 'step' in state[p]: - set_step(state[p]) - def _get_mp_rank_zero_checkpoint_names(self, load_dir, tag, mp_rank, dp_world_size, bf16_mode): zero_ckpt_names = [] for dp_rank in range(dp_world_size): @@ -3004,7 +3209,7 @@ def _get_all_zero_checkpoints(self, load_dir, tag): if bf16_mode is not self.bfloat16_enabled(): checkpoint_bit16 = BFLOAT16 if bf16_mode else FP16 engine_bit16 = BFLOAT16 if self.bfloat16_enabled() else FP16 - logger.warn(f'Loading {checkpoint_bit16} zero checkpoints into {engine_bit16} training engine') + logger.warning(f'Loading {checkpoint_bit16} zero checkpoints into {engine_bit16} training engine') return self._get_all_zero_checkpoint_state_dicts(zero_ckpt_names) return None @@ -3089,6 +3294,21 @@ def save_checkpoint(self, save_dir, tag=None, client_state={}, save_latest=True, self._create_zero_checkpoint_files(save_dir, tag) self._save_zero_checkpoint(save_dir, tag) + if self.zero_nvme_offload_optimizer(): + from shutil import copytree, disk_usage + offload_dir = self.optimizer.optimizer_swapper.swap_folder + offload_ckpt_dir = os.path.join(save_dir, tag, "offloaded_tensors") + _, _, free = disk_usage(save_dir) + logger.info( + f"Copying NVMe offload files from {offload_dir} to {offload_ckpt_dir}, {free / 1e9:,.2f} GB free on target filesystem..." + ) + copytree(offload_dir, + offload_ckpt_dir, + ignore=lambda _, dir_list: list(filter(lambda x: 'gradient' in x, dir_list)), + dirs_exist_ok=False) + _, _, free = disk_usage(save_dir) + logger.info(f"Copying complete! {free / 1e9:,.2f} GB free on target filesystem") + if self._optimizer_has_ckpt_event_epilogue(): self.optimizer.checkpoint_event_epilogue() @@ -3145,7 +3365,7 @@ def _save_moe_checkpoint(self, save_dir, tag, client_state={}, exclude_frozen_pa local_expert_id = None if not m: - logger.warn(f'No expert found in key {key}.') + logger.warning(f'No expert found in key {key}.') else: local_expert_id = m.group(1) @@ -3175,22 +3395,24 @@ def _save_moe_checkpoint(self, save_dir, tag, client_state={}, exclude_frozen_pa # In the case of E + D parallelism, only the # first expert parallel group should save the expert weights # since each expert parallel group is a copy of the model's experts - if exp_dp_rank != 0: - return - - # Save optimizer states. They are different across each exp parallel rank. - optimizer_state = { - 'optimizer': self.optimizer.state_dict() if self.optimizer and not self.zero_optimization() else None - } - # TODO: why use BufferedWriter not the path - file_path = self._get_optimizer_ckpt_name(save_dir, tag, expp_rank) - self.checkpoint_engine.save(optimizer_state, file_path) - - # get non-moe parameters - model_state_dict = self._get_non_moe_state_dict( - self.module_state_dict(exclude_frozen_parameters=exclude_frozen_parameters)) + if exp_dp_rank == 0: + # Save optimizer states. They are different across each exp parallel rank. + optimizer_state = { + 'optimizer': self.optimizer.state_dict() if self.optimizer and not self.zero_optimization() else None + } + # TODO: why use BufferedWriter not the path + file_path = self._get_optimizer_ckpt_name(save_dir, tag, expp_rank) + self.checkpoint_engine.save(optimizer_state, file_path) + + # Load flow uses below saved file for model parameters, RNG and more + if groups._get_data_parallel_rank() == 0: + # Get non-moe parameters + # Classes DeepSpeedEngine and PipelineEngine have different behavior for method module_state_dict. + # DeepSpeedEngine returns the state dict, where PipelineEngine saves the state dict and returns None. + # We need to get the state dict, therefore, call to DeepSpeedEngine (base class for PipelineEngine) + model_state_dict = self._get_non_moe_state_dict( + DeepSpeedEngine.module_state_dict(self, exclude_frozen_parameters=exclude_frozen_parameters)) - if expp_rank == 0: # TODO: update num experts info,.. in checkpoint state = { 'module': @@ -3220,7 +3442,6 @@ def _save_moe_checkpoint(self, save_dir, tag, client_state={}, exclude_frozen_pa state.update(client_state) logger.info(f'Saving model checkpoint: {save_path}') self.checkpoint_engine.save(state, save_path) - self._curr_save_path = None def _create_checkpoint_file(self, save_dir, tag, zero_checkpoint): name_function = (self._get_zero_ckpt_name if zero_checkpoint else self._get_ckpt_name) @@ -3439,7 +3660,53 @@ def _save_zero_checkpoint(self, save_path, tag): ckpt_type = 'zero' if self.zero_optimization() else 'bf16_zero' logger.info(f'{ckpt_type} checkpoint saved {zero_checkpoint_name}') - def _zero3_consolidated_16bit_state_dict(self): + def _replace_module_consolidated_state_dict(self): + """ + Get a full non-partitioned state_dict with fp16 weights on cpu. + Important: this function must be called on all ranks and not just rank 0. + This is similar to nn.Module.state_dict (modelled after _save_to_state_dict) + This method is used for tensor parallel training. + + Returns: + OrderedDict: The consolidated state dictionary if the current process rank is 0, otherwise None. + """ + #TODO: If we use both Zero3 and tensor parallel simultaneously + # we need to consolidate the gather mechanisms of both. + state_dict = OrderedDict() if dist.get_rank() == 0 else None + + def get_layer_state_dict(module, prefix=""): + with GatherReplacedLayerParams(list(module.parameters(recurse=False)), module, enabled=True): + for name, param in module.named_parameters(recurse=False): + if param is None: + continue + key = prefix + name + if (dist.get_rank() == 0): + state_dict[key] = param.detach().cpu() + # print(key,module, param.detach().cpu().shape) + + for name, child in module.named_children(): + if child is not None: + get_layer_state_dict(child, prefix + name + ".") + + get_layer_state_dict(self.module, prefix="") + + # ensure that all GPU communication tasks are completed before the process exits + get_accelerator().synchronize() + return state_dict + + def _consolidated_16bit_state_dict(self, exclude_frozen_parameters=False): + """ + Consolidate the 16-bit state dictionary. + """ + if self.zero_optimization_stage() == ZeroStageEnum.weights: + return self._zero3_consolidated_16bit_state_dict(exclude_frozen_parameters) + elif self.autotp_size() > 1: + return self._replace_module_consolidated_state_dict() + + raise ValueError("consolidated_16bit_state_dict is only applicable to cases where weights are partitioned, " + "including Zero Stage 3 and tensor parallelism.") + + def _zero3_consolidated_16bit_state_dict(self, exclude_frozen_parameters=False): """ Get a full non-partitioned state_dict with fp16 weights on cpu. Important: this function must be called on all ranks and not just rank 0. @@ -3465,7 +3732,7 @@ def get_layer_state_dict(module, prefix=""): if dist.get_rank() == 0: # handle params for name, param in module.named_parameters(recurse=False): - if param is None: + if param is None or (exclude_frozen_parameters and not param.requires_grad): continue key = prefix + name # can't rely on param.data_ptr() as it will be reused as weights gets @@ -3508,7 +3775,7 @@ def save_fp16_model(self, save_dir, save_filename="pytorch_model.bin"): compatibility""" return self.save_16bit_model(save_dir, save_filename) - def save_16bit_model(self, save_dir, save_filename="pytorch_model.bin"): + def save_16bit_model(self, save_dir, save_filename="pytorch_model.bin", exclude_frozen_parameters=False): """ Save 16bit model weights @@ -3517,6 +3784,7 @@ def save_16bit_model(self, save_dir, save_filename="pytorch_model.bin"): Arguments: save_dir: Required. Directory for saving the model save_filename: Optional. Filename to save to. Defaults to ``pytorch_model.bin`` + exclude_frozen_parameters: Optional. Exclude frozen parameters from checkpointed state. Returns: ``True`` when a model has been saved, ``False`` otherwise. It will not be saved if @@ -3533,14 +3801,15 @@ def save_16bit_model(self, save_dir, save_filename="pytorch_model.bin"): if self.zero_optimization_partition_weights(): if self.zero_gather_16bit_weights_on_model_save(): # consolidation is expensive in time and memory and therefore isn't a default - state_dict = self._zero3_consolidated_16bit_state_dict() + state_dict = self._zero3_consolidated_16bit_state_dict( + exclude_frozen_parameters=exclude_frozen_parameters) else: # the model will be bogus if not consolidated so don't confuse the user by saving it logger.info( - f"Did not save the model {path} because `stage3_gather_16bit_weights_on_model_save` is False") + f"Did not save the model {path} because stage3_gather_16bit_weights_on_model_save is False") return False else: - state_dict = self.module.state_dict() + state_dict = self.module_state_dict(exclude_frozen_parameters=exclude_frozen_parameters) tag = f"global_step{self.global_steps}" tag = str(tag) @@ -3563,3 +3832,69 @@ def empty_partition_cache(self): self.optimizer.empty_partition_cache() gc.collect() get_accelerator().empty_cache() + + def compile(self, backend=get_accelerator().get_compile_backend(), compile_kwargs={}) -> None: + """Compile the module using the specified backend and kwargs. + If a compiler_fn is set, it will be used instead of torch.compile(). + """ + # Avoid graph breaks + deepspeed.utils.nvtx.enable_nvtx = False + + if not is_compile_supported(): + raise RuntimeError("compile is not supported in your version of PyTorch.") + + if self.is_compiled: + return + + if 'backend' in compile_kwargs: + logger.warning("The `backend` in `compile_kwargs` will be overridden. Use the `backend` argument instead.") + + # create new dict to avoid modifying original dict + self.module.compile(**{**compile_kwargs, 'backend': backend}) + self._is_compiled = True + + @property + def is_compiled(self) -> bool: + return self._is_compiled + + def offload_states(self, + include: Container[OffloadStateTypeEnum] = None, + device: OffloadDeviceEnum = OffloadDeviceEnum.cpu, + pin_memory: bool = True, + non_blocking: bool = False) -> None: + """Offload the engine's states to the specified device. + + Arguments: + include: Optional. The set of states to offload. If not provided, all states are offloaded. + device: Optional. The device to move the ZeRO optimizer buffers to. Currently only `OffloadDeviceEnum.cpu` is supported. + pin_memory: Optional. Whether to pin the memory of the offloaded states. + non_blocking: Optional. Whether to offload the states asynchronously. + """ + assert self.zero_optimization_stage( + ) == ZeroStageEnum.weights, "Moving buffers across devices is supported only for ZeRO stage 3." + + opt_offload_config = self.zero_offload_optimizer() + assert opt_offload_config is None or opt_offload_config.device == OffloadDeviceEnum.none, "Moving states across devices is not supported for offloaded optimizer states." + param_offload_config = self.zero_offload_param() + assert param_offload_config is None or param_offload_config.device == OffloadDeviceEnum.none, "Moving states across devices is not supported for offloaded parameters." + + assert not self.zero_offload_param(), "Moving states across devices is not supported for offloaded parameters." + + if device == OffloadDeviceEnum.none: + logger.warning("No device specified for offloading states.") + return + + if device == OffloadDeviceEnum.nvme: + raise ValueError("NVMe offload is not supported for offloading states.") + + self.optimizer.offload_states(include=include, device=device, pin_memory=pin_memory, non_blocking=non_blocking) + + def reload_states(self, non_blocking: bool = False) -> None: + """Reload the engine states to the original device. + + Arguments: + non_blocking: Optional. Whether to offload the states asynchronously. + """ + assert self.zero_optimization_stage( + ) == ZeroStageEnum.weights, "Moving buffers back is supported only for ZeRO stage 3." + self.optimizer.reload_states(non_blocking=non_blocking) diff --git a/deepspeed/runtime/fp16/fused_optimizer.py b/deepspeed/runtime/fp16/fused_optimizer.py index 182f806c839c..49093bb73c8f 100755 --- a/deepspeed/runtime/fp16/fused_optimizer.py +++ b/deepspeed/runtime/fp16/fused_optimizer.py @@ -9,14 +9,16 @@ import torch from torch._utils import _flatten_dense_tensors, _unflatten_dense_tensors - -from deepspeed.runtime import DeepSpeedOptimizer -from deepspeed.runtime.utils import get_global_norm, get_grad_norm, CheckOverflow, get_weight_norm, required_torch_version +from deepspeed.runtime.base_optimizer import DeepSpeedOptimizer +from deepspeed.runtime.utils import get_global_norm, get_flattened_grad_norm, CheckOverflow, get_weight_norm, get_norm_with_moe_layers, is_model_parallel_parameter from deepspeed.runtime.fp16.loss_scaler import INITIAL_LOSS_SCALE, SCALE_WINDOW, MIN_LOSS_SCALE -from deepspeed.utils import groups, logger, log_dist -from deepspeed import comm as dist +from deepspeed.utils import logger, log_dist +from deepspeed.utils.torch import required_torch_version from deepspeed.checkpoint.constants import OPTIMIZER_STATE_DICT, CLIP_GRAD from deepspeed.accelerator import get_accelerator +from deepspeed.moe.utils import is_moe_param_group +from deepspeed.runtime.constants import PIPE_REPLICATED +from deepspeed.utils.bwc import bwc_tensor_model_parallel_rank OVERFLOW_CHECK_TIMER = 'overflow_check' COMPUTE_NORM_TIMER = 'compute_norm' @@ -63,6 +65,8 @@ def __init__(self, self.fp16_groups_flat = [] self.fp32_groups_flat = [] + self.flatten_grad_norm_mask_list = [] + self.has_executed_step = False self._global_grad_norm = 0. # loop to deal with groups @@ -205,6 +209,40 @@ def override_loss_scale(self, loss_scale): self.custom_loss_scaler = True self.external_loss_scale = loss_scale + def _require_avoid_recompute_norm(self, p, tensor_model_parallel_rank): + # for filtering replicated tensors from tensor + if hasattr(p, PIPE_REPLICATED) and p.ds_pipe_replicated: + return True + if (tensor_model_parallel_rank > 0) and not is_model_parallel_parameter(p): + return True + + def _get_norm_mask_idx(self, group): + """The function preserves the parallel information for norm + from unflattened gradients. + + Args: + group (Iterable[Tensor] ): params group + + Returns: + torch.Tensor: A 2D tensor containing index ranges for each group, + where each row represents a [start index, end index]. + """ + group_mask_idx_list = [] + grad_flat_st_idx = 0 + grad_flat_en_idx = 0 + + for p in group: + grad_flat_en_idx = grad_flat_st_idx + p.numel() + if p.grad is not None and self._require_avoid_recompute_norm(p, bwc_tensor_model_parallel_rank(self.mpu)): + # merge range + if len(group_mask_idx_list) > 0 and grad_flat_st_idx == group_mask_idx_list[-1][-1]: + group_mask_idx_list[-1][-1] = grad_flat_en_idx + else: + group_mask_idx_list.append([grad_flat_st_idx, grad_flat_en_idx]) + grad_flat_st_idx = grad_flat_en_idx + + return torch.tensor(group_mask_idx_list, device=get_accelerator().current_device_name()) + def step(self, closure=None): """ Not supporting closure. @@ -237,6 +275,10 @@ def step(self, closure=None): return self.overflow grads_groups_flat = [] + non_experts_grads_for_norm = [] + expert_grads_for_norm = {} + assert len(self.fp16_groups) == len(self.optimizer.param_groups) + for i, group in enumerate(self.fp16_groups): data_type = self.fp32_groups_flat[i].dtype @@ -246,21 +288,41 @@ def step(self, closure=None): for p in group ])) + self.fp32_groups_flat[i].grad = grads_groups_flat[i] + param_group = self.optimizer.param_groups[i] + + # split expert and non_expert grads for norm + if self.has_moe_layers and is_moe_param_group(param_group): + if param_group['name'] not in expert_grads_for_norm: + expert_grads_for_norm[param_group['name']] = [] + + expert_grads_for_norm[param_group['name']].append(self.fp32_groups_flat[i]) + else: + # retrieves the required mask for calculating the norm of flat_grad + # perform this collect operation only once + if not self.has_executed_step: + cur_flat_grad_norm_mask = self._get_norm_mask_idx(group) + self.flatten_grad_norm_mask_list.append(cur_flat_grad_norm_mask) + + non_experts_grads_for_norm.append(self.fp32_groups_flat[i]) + for p in group: p.grad = None - self.fp32_groups_flat[i].grad = grads_groups_flat[i] - self.timers(COMPUTE_NORM_TIMER).start() - all_groups_norm = get_grad_norm(self.fp32_groups_flat, mpu=self.mpu) - - self.timers(COMPUTE_NORM_TIMER).stop() + all_groups_norm = get_flattened_grad_norm(non_experts_grads_for_norm, + mpu=self.mpu, + grad_norm_mask=self.flatten_grad_norm_mask_list) if self.has_moe_layers: - all_groups_norm = self._get_norm_with_moe_layers(all_groups_norm) + all_groups_norm = get_norm_with_moe_layers(all_groups_norm, + mpu=self.mpu, + expert_tensors=expert_grads_for_norm, + norm_type=self.norm_type) scaled_global_grad_norm = get_global_norm(norm_list=[all_groups_norm]) + self.timers(COMPUTE_NORM_TIMER).stop() # Stash unscaled gradient norm self._global_grad_norm = scaled_global_grad_norm / self.cur_scale @@ -283,27 +345,13 @@ def step(self, closure=None): updated_params = _unflatten_dense_tensors(self.fp32_groups_flat[i], self.fp16_groups[i]) for p, q in zip(self.fp16_groups[i], updated_params): p.data.copy_(q.data) - + self.has_executed_step = True self.timers(UPDATE_FP16_TIMER).stop() self.timers.log(STEP_TIMERS) return self.overflow - def _get_norm_with_moe_layers(self, all_groups_norm): - #all_groups_norm_old = all_groups_norm - # Need to allreduce (avg) the norms across different ranks because moe params will not be synced during allreduce - if self.using_pipeline: - pg = self.deepspeed.mpu.get_data_parallel_group() - else: - pg = groups._get_data_parallel_group() - scaled_norm = all_groups_norm * 1.0 / float(dist.get_world_size(group=pg)) - scaled_norm_tensor = torch.tensor(scaled_norm, device=self.fp32_groups_flat[0].device, dtype=torch.float) - dist.all_reduce(scaled_norm_tensor, group=pg) - all_groups_norm = scaled_norm_tensor.item() - #print(f"old = {all_groups_norm_old} and new = {all_groups_norm} at rank: {deepspeed.comm.get_rank()}") - return all_groups_norm - def unscale_and_clip_grads(self, grad_groups_flat, total_norm, apply_scale=True): # compute combined scale factor for this group combined_scale = self.cur_scale diff --git a/deepspeed/runtime/fp16/onebit/adam.py b/deepspeed/runtime/fp16/onebit/adam.py index 236eea8cadc5..fa817573f734 100644 --- a/deepspeed/runtime/fp16/onebit/adam.py +++ b/deepspeed/runtime/fp16/onebit/adam.py @@ -7,7 +7,7 @@ import torch import numpy as np from deepspeed.accelerator import get_accelerator -from deepspeed.runtime.utils import required_torch_version +from deepspeed.utils.torch import required_torch_version from deepspeed import comm as dist @@ -70,8 +70,6 @@ def __init__(self, super(OnebitAdam, self).__init__(params, defaults) self.eps_mode = 0 if eps_inside_sqrt else 1 - assert (dist.is_initialized()) - self.comm_time = 0.0 self.step_time = 0.0 self.ave_step = 1 @@ -86,22 +84,27 @@ def __init__(self, self.comm_backend_name = comm_backend_name + assert dist.is_initialized(), "Please initialize the torch distributed backend." # Empty initializer. Set handle based on the comm backend as follows. self.comm_backend_handle = None - if self.comm_backend_name == 'nccl': assert ( required_torch_version(min_version=1.8) ), "Please use torch 1.8 or greater to enable NCCL backend in 1-bit Adam. Alternatively, please specify 'mpi' as the 'comm_backend_name' in config file to proceed with the MPI backend" - assert dist.is_initialized() == True, "Please initialize the torch distributed backend." from deepspeed.runtime.comm.nccl import NcclBackend self.using_pipeline = hasattr(self.deepspeed, 'pipeline_enable_backward_allreduce') self.comm_backend_handle = NcclBackend(self.deepspeed.mpu) - elif self.comm_backend_name == 'mpi': from deepspeed.runtime.comm.mpi import MpiBackend self.comm_backend_handle = MpiBackend(cuda_aware) - + elif self.comm_backend_name == 'hccl': + from deepspeed.runtime.comm.hccl import HcclBackend + self.using_pipeline = hasattr(self.deepspeed, 'pipeline_enable_backward_allreduce') + self.comm_backend_handle = HcclBackend(self.deepspeed.mpu) + elif self.comm_backend_name == 'compressed': + from deepspeed.runtime.comm.compressed import CompressedBackend + self.using_pipeline = hasattr(self.deepspeed, 'pipeline_enable_backward_allreduce') + self.comm_backend_handle = CompressedBackend(self.deepspeed.mpu) self.size = self.comm_backend_handle.size self.divider = int(self.size * 8 / np.gcd(self.size, 8)) diff --git a/deepspeed/runtime/fp16/onebit/lamb.py b/deepspeed/runtime/fp16/onebit/lamb.py index 0662fabeeee1..9e7bae816ecd 100644 --- a/deepspeed/runtime/fp16/onebit/lamb.py +++ b/deepspeed/runtime/fp16/onebit/lamb.py @@ -7,7 +7,7 @@ import torch import numpy as np from deepspeed import comm as dist -from deepspeed.runtime.utils import required_torch_version +from deepspeed.utils.torch import required_torch_version from torch._utils import _flatten_dense_tensors, _unflatten_dense_tensors from deepspeed.accelerator import get_accelerator @@ -93,8 +93,6 @@ def __init__(self, super(OnebitLamb, self).__init__(params, defaults) self.eps_mode = 0 if eps_inside_sqrt else 1 - assert (dist.is_initialized()) - self.deepspeed = deepspeed self.lamb_freeze_key = False self.initialize = False @@ -108,21 +106,27 @@ def __init__(self, self.comm_backend_name = comm_backend_name + assert dist.is_initialized(), "Please initialize the torch distributed backend." # Empty initializer. Set handle based on the comm backend as follows. self.comm_backend_handle = None - if self.comm_backend_name == 'nccl': assert ( required_torch_version(min_version=1.8) ), "Please use torch 1.8 or greater to enable NCCL backend in 1-bit Adam. Alternatively, please specify 'mpi' as the 'comm_backend_name' in config file to proceed with the MPI backend" - assert dist.is_initialized() == True, "Please initialize the torch distributed backend." from deepspeed.runtime.comm.nccl import NcclBackend self.using_pipeline = hasattr(self.deepspeed, 'pipeline_enable_backward_allreduce') self.comm_backend_handle = NcclBackend(self.deepspeed.mpu) - elif self.comm_backend_name == 'mpi': from deepspeed.runtime.comm.mpi import MpiBackend self.comm_backend_handle = MpiBackend(cuda_aware) + elif self.comm_backend_name == 'hccl': + from deepspeed.runtime.comm.hccl import HcclBackend + self.using_pipeline = hasattr(self.deepspeed, 'pipeline_enable_backward_allreduce') + self.comm_backend_handle = HcclBackend(self.deepspeed.mpu) + elif self.comm_backend_name == 'compressed': + from deepspeed.runtime.comm.compressed import CompressedBackend + self.using_pipeline = hasattr(self.deepspeed, 'pipeline_enable_backward_allreduce') + self.comm_backend_handle = CompressedBackend(self.deepspeed.mpu) self.size = self.comm_backend_handle.size @@ -161,7 +165,7 @@ def step(self, closure=None, grads=None): else: grads_group = grads - #remove the previous stats + # remove the previous stats del self.lamb_coeffs[:] if self.lamb_freeze_key: @@ -173,7 +177,7 @@ def step(self, closure=None, grads=None): # This is used to reduce compression error during compression stage. momentum_scales = [] for group in self.param_groups: - momentum_scales.append([(torch.linalg.norm(self.state[p]['exp_avg']) / + momentum_scales.append([(torch.linalg.vector_norm(self.state[p]['exp_avg']) / np.sqrt(torch.numel(self.state[p]['exp_avg']))).item() for p in group['params']]) united_scale = sum([sum(x) for x in momentum_scales]) / sum([len(x) for x in momentum_scales]) diff --git a/deepspeed/runtime/fp16/onebit/zoadam.py b/deepspeed/runtime/fp16/onebit/zoadam.py index 922263ad6a76..70282ec41714 100644 --- a/deepspeed/runtime/fp16/onebit/zoadam.py +++ b/deepspeed/runtime/fp16/onebit/zoadam.py @@ -7,14 +7,16 @@ import torch import numpy as np from deepspeed.accelerator import get_accelerator -from deepspeed.runtime.utils import required_torch_version +from deepspeed.utils.torch import required_torch_version from deepspeed import comm as dist class ZeroOneAdam(torch.optim.Optimizer): - """Implements the 0/1 Adam algorithm. Currently GPU-only. + """ + Implements the 0/1 Adam algorithm. Currently GPU-only. For usage example please see https://www.deepspeed.ai/tutorials/zero-one-adam/ For technical details please read https://arxiv.org/abs/2202.06009 + Arguments: params (iterable): iterable of parameters to optimize or dicts defining parameter groups. @@ -83,8 +85,6 @@ def __init__(self, super(ZeroOneAdam, self).__init__(params, defaults) self.eps_mode = 0 if eps_inside_sqrt else 1 - assert (dist.is_initialized()) - self.deepspeed = deepspeed self.initialize = False self.cuda_aware = cuda_aware @@ -99,22 +99,27 @@ def __init__(self, self.comm_backend_name = comm_backend_name + assert dist.is_initialized(), "Please initialize the torch distributed backend." # Empty initializer. Set handle based on the comm backend as follows. self.comm_backend_handle = None - if self.comm_backend_name == 'nccl': assert ( required_torch_version(min_version=1.8) ), "Please use torch 1.8 or greater to enable NCCL backend in 0/1 Adam. Alternatively, please specify 'mpi' as the 'comm_backend_name' in config file to proceed with the MPI backend" - assert dist.is_initialized() == True, "Please initialize the torch distributed backend." from deepspeed.runtime.comm.nccl import NcclBackend self.using_pipeline = hasattr(self.deepspeed, 'pipeline_enable_backward_allreduce') self.comm_backend_handle = NcclBackend(self.deepspeed.mpu) - elif self.comm_backend_name == 'mpi': from deepspeed.runtime.comm.mpi import MpiBackend self.comm_backend_handle = MpiBackend(cuda_aware) - + elif self.comm_backend_name == 'hccl': + from deepspeed.runtime.comm.hccl import HcclBackend + self.using_pipeline = hasattr(self.deepspeed, 'pipeline_enable_backward_allreduce') + self.comm_backend_handle = HcclBackend(self.deepspeed.mpu) + elif self.comm_backend_name == 'compressed': + from deepspeed.runtime.comm.compressed import CompressedBackend + self.using_pipeline = hasattr(self.deepspeed, 'pipeline_enable_backward_allreduce') + self.comm_backend_handle = CompressedBackend(self.deepspeed.mpu) self.size = self.comm_backend_handle.size self.divider = int(self.size * 8 / np.gcd(self.size, 8)) diff --git a/deepspeed/runtime/fp16/unfused_optimizer.py b/deepspeed/runtime/fp16/unfused_optimizer.py index 14271255df2e..530355f846e2 100755 --- a/deepspeed/runtime/fp16/unfused_optimizer.py +++ b/deepspeed/runtime/fp16/unfused_optimizer.py @@ -11,10 +11,11 @@ import torch from torch._utils import _flatten_dense_tensors -from deepspeed.runtime import DeepSpeedOptimizer -from deepspeed.runtime.utils import get_global_norm, CheckOverflow, get_weight_norm, required_torch_version +from deepspeed.runtime.base_optimizer import DeepSpeedOptimizer +from deepspeed.runtime.utils import get_global_norm, CheckOverflow, get_weight_norm from deepspeed.runtime.fp16.loss_scaler import INITIAL_LOSS_SCALE, SCALE_WINDOW, MIN_LOSS_SCALE from deepspeed.utils import logger +from deepspeed.utils.torch import required_torch_version from deepspeed.checkpoint.constants import OPTIMIZER_STATE_DICT from deepspeed.accelerator import get_accelerator from deepspeed import comm as dist diff --git a/deepspeed/runtime/hybrid_engine.py b/deepspeed/runtime/hybrid_engine.py index da6f7a9be54e..b6e417fd4764 100644 --- a/deepspeed/runtime/hybrid_engine.py +++ b/deepspeed/runtime/hybrid_engine.py @@ -17,16 +17,14 @@ from deepspeed.accelerator import get_accelerator from torch import nn from deepspeed.utils import logger - -from deepspeed.ops.op_builder import InferenceBuilder - from deepspeed.module_inject.layers import LinearLayer, Normalize, EmbeddingLayer, OPTEmbedding +from ..ops.transformer.inference.op_binding.workspace import WorkspaceOp + try: import transformers OPTLearnedPositionalEmbedding = transformers.models.opt.modeling_opt.OPTLearnedPositionalEmbedding except: OPTLearnedPositionalEmbedding = None -inference_cuda_module = None class DeepSpeedHybridEngine(DeepSpeedEngine): @@ -61,12 +59,8 @@ def __init__(self, args, model, **kwargs): self._total_batch_size = None self._gather_latency = 0 - global inference_cuda_module - if inference_cuda_module is None: - builder = InferenceBuilder() - inference_cuda_module = builder.load() - self.is_lora_fused = False + self.workspace = WorkspaceOp() def convert_to_linear_transposed(self, model): @@ -160,13 +154,13 @@ def unfuse_lora_weight_non_pinned(self): def retake_inference_cache(self): if self._config.hybrid_engine.release_inference_cache: - retake_success = inference_cuda_module.retake_workspace() + retake_success = self.workspace.retake_workspace() if not retake_success: logger.warning("Unable to acquire workspace on first attempt, emptying cache and retrying.") gc.collect() get_accelerator().empty_cache() - retake_success = inference_cuda_module.retake_workspace() + retake_success = self.workspace.retake_workspace() if not retake_success: raise RuntimeError("Unable to retake inference workspace.") @@ -269,7 +263,7 @@ def generate(self, *inputs, **kwargs): self.is_lora_fused = False if self._config.hybrid_engine.release_inference_cache: - inference_cuda_module.release_workspace() + self.workspace.release_workspace() gc.collect() get_accelerator().empty_cache() @@ -296,8 +290,13 @@ def create_inference_containers(self, module, layer_id=0): layer_id += 1 else: - self._other_layers.append(self.inference_policies[child.__class__][0]( - weight=child.weight, bias=child.bias if hasattr(child, 'bias') else None)) + if self.inference_policies[child.__class__][0] == LinearLayer: + self._other_layers.append(self.inference_policies[child.__class__][0](module=child, + mp_group=None, + skip_partition=True)) + else: + self._other_layers.append(self.inference_policies[child.__class__][0]( + weight=child.weight, bias=child.bias if hasattr(child, 'bias') else None)) self._orig_modules_others.append(child) self._orig_fwds_others.append(child.forward) else: @@ -385,14 +384,20 @@ def eval(self): self._total_latency = self._total_latency + latency self._iters = self._iters + 1 if not dist.is_initialized() or dist.get_rank() == 0: + if self._total_batch_size is not None: + cur_samples_p_sec = f'|CurSamplesPerSec={(1 / latency * self._total_batch_size):.2f} ' + avg_samples_p_sec = f'|AvgSamplesPerSec={(1 / (self._total_latency / self._iters) * self._total_batch_size):.2f}' + else: + cur_samples_p_sec = '' + avg_samples_p_sec = '' others = latency - (self._generate_latency + self._training_latency) print(f'|E2E latency={(latency):.2f}s ' + \ f'|Gather latency={self._gather_latency:.2f}s ({(self._gather_latency / latency * 100):.2f}%) ' f'|Generate time={(self._generate_latency):.2f}s ({(self._generate_latency / latency * 100):.2f}%) ' + \ f'|Training time={(self._training_latency):.2f}s ({(self._training_latency / latency * 100):.2f}%) ' + \ - f'|Others={others:.2f} ({(others / latency * 100):.2f}%)' - f'|CurSamplesPerSec={(1 / latency * self._total_batch_size):.2f} ' + \ - f'|AvgSamplesPerSec={(1 / (self._total_latency / self._iters) * self._total_batch_size):.2f}') + f'|Others={others:.2f} ({(others / latency * 100):.2f}%)' + \ + cur_samples_p_sec + \ + avg_samples_p_sec) self._t_start = time.time() self._training_latency = 0 super().eval() diff --git a/deepspeed/runtime/lr_schedules.py b/deepspeed/runtime/lr_schedules.py index d7f7e15a4dbd..2ffd0bf9f036 100755 --- a/deepspeed/runtime/lr_schedules.py +++ b/deepspeed/runtime/lr_schedules.py @@ -247,6 +247,12 @@ def get_lr_from_config(config): return lr_params[WARMUP_MAX_LR], '' +def update_lr(param_groups, lrs): + for param_group, lr in zip(param_groups, lrs): + param_group['lr'] = lr + return [group['lr'] for group in param_groups] + + """ Only optimizers that are subclass of torch.optim.Optimizer are supported. So check the passed optimizer and wrapped optimizer to see if requirement is satisfied. @@ -268,7 +274,7 @@ class LRRangeTest(object): """Sets the learning rate of each parameter group according to learning rate range test (LRRT) policy. The policy increases learning rate starting from a base value with a constant frequency, as detailed in - the paper `A disciplined approach to neural network hyper-parameters: Part1`_. + the paper `A disciplined approach to neural network hyper-parameters: Part 1 `_ LRRT policy is used for finding maximum LR that trains a model without divergence, and can be used to configure the LR boundaries for Cyclic LR schedules. @@ -328,7 +334,7 @@ def __init__(self, self.interval_fn = self._staircase_interval if lr_range_test_staircase else self._continuous_interval if last_batch_iteration == -1: - self._update_optimizer(self.min_lr) + self._last_lr = update_lr(self.optimizer.param_groups, self.min_lr) def _staircase_interval(self): return math.floor(float(self.last_batch_iteration + 1) / self.step_size) @@ -349,16 +355,11 @@ def get_last_lr(self): assert getattr(self, '_last_lr', None) is not None, "need to call step() first" return self._last_lr - def _update_optimizer(self, group_lrs): - for param_group, lr in zip(self.optimizer.param_groups, group_lrs): - param_group['lr'] = lr - def step(self, batch_iteration=None): if batch_iteration is None: batch_iteration = self.last_batch_iteration + 1 self.last_batch_iteration = batch_iteration - self._update_optimizer(self.get_lr()) - self._last_lr = [group['lr'] for group in self.optimizer.param_groups] + self._last_lr = update_lr(self.optimizer.param_groups, self.get_lr()) def state_dict(self): return {'last_batch_iteration': self.last_batch_iteration} @@ -378,7 +379,7 @@ class OneCycle(object): 1CLR policy changes the learning rate after every batch. `step` should be called after a batch has been used for training. - This implementation was adapted from the github repo: `pytorch/pytorch`_ + This implementation was adapted from the github repo: `PyTorch `_. Args: optimizer (Optimizer): Wrapped optimizer. @@ -507,7 +508,7 @@ def _initialize_lr(self, optimizer, cycle_min_lr, cycle_max_lr, decay_lr_rate, l def _initialize_momentum(self, optimizer, cycle_min_mom, cycle_max_mom, decay_mom_rate, last_batch_iteration): if 'betas' not in optimizer.defaults: optimizer_name = type(optimizer).__name__ - logger.warn( + logger.warning( f"cycle_momentum is disabled because optimizer {optimizer_name} does not support momentum, no betas attribute in defaults" ) self.cycle_momentum = False @@ -615,9 +616,7 @@ def step(self, batch_iteration=None): batch_iteration = self.last_batch_iteration + 1 self.last_batch_iteration = batch_iteration - for param_group, lr in zip(self.optimizer.param_groups, self.get_lr()): - param_group['lr'] = lr - self._last_lr = [group['lr'] for group in self.optimizer.param_groups] + self._last_lr = update_lr(self.optimizer.param_groups, self.get_lr()) if self.cycle_momentum: momentums = self.get_mom() @@ -675,11 +674,14 @@ def __init__(self, self.warmup_type = warmup_type self.inverse_log_warm_up = 1.0 / math.log(self.warmup_num_steps) self.last_batch_iteration = last_batch_iteration + # Initialize lr in optimizer + if last_batch_iteration == -1: + self._last_lr = update_lr(self.optimizer.param_groups, self.get_lr()) def get_lr(self): if self.last_batch_iteration < 0: logger.warning("Attempting to get learning rate from scheduler before it has started") - return [0.0] + return self.min_lrs gamma = self._get_gamma() return [min_lr + (delta_lr * gamma) for min_lr, delta_lr in zip(self.min_lrs, self.delta_lrs)] @@ -693,9 +695,7 @@ def step(self, last_batch_iteration=None): if last_batch_iteration is None: last_batch_iteration = self.last_batch_iteration + 1 self.last_batch_iteration = last_batch_iteration - for param_group, lr in zip(self.optimizer.param_groups, self.get_lr()): - param_group['lr'] = lr - self._last_lr = [group['lr'] for group in self.optimizer.param_groups] + self._last_lr = update_lr(self.optimizer.param_groups, self.get_lr()) def state_dict(self): return {'last_batch_iteration': self.last_batch_iteration} @@ -819,6 +819,10 @@ def __init__(self, total_num_steps, warmup_num_steps)) self.org_lrs = [group['lr'] for group in self.optimizer.param_groups] + # Initialize lrs in optimizer groups + if last_batch_iteration == -1: + self._last_lr = update_lr(self.optimizer.param_groups, self.get_lr()) + def get_lr_ratio(self): if self.last_batch_iteration < 0: logger.warning("Attempting to get learning rate from scheduler before it has started") @@ -844,11 +848,7 @@ def step(self, last_batch_iteration=None): if last_batch_iteration is None: last_batch_iteration = self.last_batch_iteration + 1 self.last_batch_iteration = last_batch_iteration - - lrs = self.get_lr() - for param_group, lr in zip(self.optimizer.param_groups, lrs): - param_group['lr'] = lr - self._last_lr = [group['lr'] for group in self.optimizer.param_groups] + self._last_lr = update_lr(self.optimizer.param_groups, self.get_lr()) def get_lr(self): if self.last_batch_iteration < 0: diff --git a/deepspeed/runtime/pipe/engine.py b/deepspeed/runtime/pipe/engine.py index f08657b793d7..deb44c2e71eb 100644 --- a/deepspeed/runtime/pipe/engine.py +++ b/deepspeed/runtime/pipe/engine.py @@ -4,6 +4,9 @@ # DeepSpeed Team from types import MethodType +from collections import OrderedDict +from functools import reduce +from operator import mul import torch from deepspeed import comm as dist @@ -39,6 +42,9 @@ PIPE_RECV_INPUT_TIMER = 'pipe_recv_input' PIPE_RECV_GRAD_TIMER = 'pipe_recv_grad' +# The buffer size to store the meta data for each tensor. +TENSOR_META_SIZE = 256 + def is_even(number): return number % 2 == 0 @@ -116,7 +122,8 @@ def __init__(self, has_bool_tensors=False, *super_args, **super_kwargs): self._force_grad_boundary = False - self.batch_timer = ThroughputTimer(batch_size=self.train_batch_size(), + self.batch_timer = ThroughputTimer(self._config.timers_config, + batch_size=self.train_batch_size(), logging_fn=self.tput_log, monitor_memory=False, steps_per_output=self.steps_per_print()) @@ -177,20 +184,31 @@ def __init__(self, has_bool_tensors=False, *super_args, **super_kwargs): } self.pipe_recv_buf = None self.grad_layer = None + self._grad_layer_buf = [] self.meta_buffer = None self.first_output_send = True self.first_gradient_send = True + self.pipe_partition_input_meta_cache = None + self.pipe_partition_output_meta_cache = None + self.pipe_partition_grad_meta_cache = None + self.grad_partition_grad_layer_meta_cache = None #stores the loss for the current micro batch being processed self.loss = torch.tensor(0.0).to(self.device) #stores the loss for the entire batch self.total_loss = None + self.total_additional_losses = None self.agg_loss = torch.tensor(0.0, requires_grad=False).to(self.device) self.dp_group_loss = torch.tensor(0.0, requires_grad=False).to(self.device) + # stores aggregated-DP train final loss and aggregated-DP additional losses, if any + # additional losses are stored as dict: {loss-name: agg-loss} + self.agg_train_loss = None + self.agg_additional_losses = None + if self._config.pipeline['activation_checkpoint_interval'] > 0: self.module.activation_checkpoint_interval = self._config.pipeline['activation_checkpoint_interval'] # set use_reentrant default to True. @@ -201,6 +219,8 @@ def __init__(self, has_bool_tensors=False, *super_args, **super_kwargs): self.module.activation_checkpoint_func = ds_checkpointing.non_reentrant_checkpoint if self.grid.get_global_rank() == 0: logger.info(f'CONFIG: activation_checkpoint_func=non_reentrant_checkpoint') + if self.module.activation_checkpoint_interval > 0: + self.module._precompute_checkpointable_values() self.module.checkpoint_parallel_write_pipeline = self._config.checkpoint_parallel_write_pipeline @@ -236,6 +256,8 @@ def __init__(self, has_bool_tensors=False, *super_args, **super_kwargs): self.timers(STEP_MICRO_TIMER).start() self.timers(STEP_MICRO_TIMER).stop() + self.dynamic_shape = self.module.dynamic_shape + def set_has_attention_mask(self, value): assert isinstance(value, bool) self.has_attention_mask = value @@ -265,7 +287,8 @@ def _exec_reduce_tied_grads(self): weight_group_list = self.module.get_tied_weights_and_groups() for weight, group in weight_group_list: grad = weight._hp_grad if self.using_bf16_optimizer else weight.grad - dist.all_reduce(grad, group=group) + if grad is not None: + dist.all_reduce(grad, group=group) def _exec_reduce_grads(self): self._force_grad_boundary = True @@ -278,10 +301,7 @@ def _exec_reduce_grads(self): self._force_grad_boundary = False def _bf16_reduce_grads(self): - # Make our own list of gradients from the optimizer's FP32 grads - grads = [] - self.buffered_allreduce_fallback(grads=self.optimizer.get_grads_for_reduction(), - elements_per_buffer=MEMORY_OPT_ALLREDUCE_SIZE) + self.buffered_allreduce_fallback(grads=None, elements_per_buffer=MEMORY_OPT_ALLREDUCE_SIZE) def _reserve_pipe_buffers(self, num_buffers): """Ensure that each pipeline buffer has at least ``num_buffers`` slots. @@ -307,8 +327,14 @@ def reset_activation_shape(self): self.first_output_send = True self.pipe_recv_buf = None self.grad_layer = None + self._grad_layer_buf = [] self.meta_buffer = None + self.pipe_partition_input_meta_cache = None + self.pipe_partition_output_meta_cache = None + self.pipe_partition_grad_meta_cache = None + self.grad_partition_grad_layer_meta_cache = None + def train_batch(self, data_iter=None): """Progress the pipeline to train the next batch of data. The engine will ingest ``self.train_batch_size()`` total samples collectively across all workers. @@ -352,6 +378,7 @@ def train_batch(self, data_iter=None): self.module.train() self.total_loss = None + self.total_additional_losses = None self._compute_loss = True # Do the work @@ -360,7 +387,9 @@ def train_batch(self, data_iter=None): stages=self.num_stages, stage_id=self.stage_id) self._exec_schedule(sched) - self.agg_train_loss = self._aggregate_total_loss() + + with torch.no_grad(): + self.agg_train_loss = self._aggregate_total_loss() self.timers(TRAIN_BATCH_TIMER).stop() @@ -369,10 +398,12 @@ def train_batch(self, data_iter=None): elapsed = self.timers(TRAIN_BATCH_TIMER).elapsed(reset=True) / 1000.0 iter_time = elapsed / self.steps_per_print() tput = self.train_batch_size() / iter_time - print(f'steps: {self.global_steps} ' - f'loss: {self.agg_train_loss:0.4f} ' - f'iter time (s): {iter_time:0.3f} ' - f'samples/sec: {tput:0.3f}') + log_str = f'steps: {self.global_steps} loss: {self.agg_train_loss:0.4f} ' + if self.agg_additional_losses is not None: + for loss_name, loss_value in self.agg_additional_losses.items(): + log_str += f'{loss_name}: {loss_value.item():0.4f} ' + log_str += f'iter time (s): {iter_time:0.3f} samples/sec: {tput:0.3f}' + print(log_str) else: self.timers(TRAIN_BATCH_TIMER).elapsed(reset=True) @@ -393,7 +424,13 @@ def train_batch(self, data_iter=None): # TODO: should return precisely what loss returned and allow others to be queried? return self.agg_train_loss - def eval_batch(self, data_iter, return_logits=False, compute_loss=True, reduce_output='avg', bcast_loss=True): + def eval_batch(self, + data_iter, + return_logits=False, + compute_loss=True, + reduce_output='avg', + bcast_loss=True, + num_micro_batches=None): """Evaluate the pipeline on a batch of data from ``data_iter``. The engine will evaluate ``self.train_batch_size()`` total samples collectively across all workers. @@ -442,10 +479,11 @@ def eval_batch(self, data_iter, return_logits=False, compute_loss=True, reduce_o train_iterator = self.data_iterator self.set_dataiterator(data_iter) + # set the number micro batches in case the user chose value than training + micro_batches = self.micro_batches if num_micro_batches is None else num_micro_batches + # Do the work - sched = schedule.InferenceSchedule(micro_batches=self.micro_batches, - stages=self.num_stages, - stage_id=self.stage_id) + sched = schedule.InferenceSchedule(micro_batches=micro_batches, stages=self.num_stages, stage_id=self.stage_id) # prevent dead-lock with multiple evals sequence dist.barrier() @@ -454,7 +492,7 @@ def eval_batch(self, data_iter, return_logits=False, compute_loss=True, reduce_o self._exec_schedule(sched) if self.is_last_stage(): - eval_output = self._reduce_outputs(self.fwd_outputs, reduce=reduce_output) + eval_output = self._reduce_outputs(self.fwd_outputs, reduce=reduce_output, micro_batches=micro_batches) if compute_loss and (bcast_loss or self.monitor.enabled): eval_output = self._bcast_pipe_scalar(eval_output) @@ -496,7 +534,7 @@ def is_last_stage(self): """True if this process is in the last stage in the pipeline.""" return self.stage_id == self.num_stages - 1 - def _reduce_outputs(self, outputs, reduce='avg', reduce_dp=True): + def _reduce_outputs(self, outputs, reduce='avg', reduce_dp=True, micro_batches=None): if reduce is None: return outputs @@ -511,7 +549,7 @@ def _reduce_outputs(self, outputs, reduce='avg', reduce_dp=True): reduced[idx] += out # Average over the microbatches - reduced = self._scale_loss_by_gas(reduced) + reduced = self._scale_loss_by_gas(reduced, eval_micro_batches=micro_batches) # Average over DP groups if reduce_dp and self.is_data_parallel: @@ -545,29 +583,67 @@ def _bcast_pipe_scalar(self, data, src_rank=None, dtype=torch.float32): def _aggregate_total_loss(self): # Scale loss, average among DP ranks, and bcast loss to the rest of my DP group if self.is_last_stage(): + # Scale loss and additional losses, if any loss = self._scale_loss_by_gas(self.total_loss) - self.dp_group_loss = loss.clone().detach() + self.agg_additional_losses = self.total_additional_losses + if self.agg_additional_losses is not None: + self.agg_additional_losses = OrderedDict({ + loss_name: self._scale_loss_by_gas(_loss.clone().detach()) + for loss_name, _loss in self.agg_additional_losses.items() + }) - ## Average loss across all data-parallel groups + self.dp_group_loss = loss.clone().detach() agg_loss = self.dp_group_loss.clone().detach() #print(f'RANK={self.global_rank} bcast SENDER src={self.global_rank} group={self.grid.pp_group}', flush=True) + + # Average loss across all data-parallel groups if self.is_data_parallel: - dist.all_reduce(agg_loss, group=self.mpu.get_data_parallel_group()) - agg_loss /= self.dp_world_size + if self.agg_additional_losses is None: + dist.all_reduce(agg_loss, group=self.mpu.get_data_parallel_group()) + agg_loss /= self.dp_world_size + else: + # use a single reduce op for agg_loss and additional losses, if any + assert '__train_loss__' not in self.agg_additional_losses.keys() + tensors = OrderedDict({'__train_loss__': agg_loss}) + tensors.update(self.agg_additional_losses.items()) + flat_tensor = torch.cat([t.clone().reshape(-1).detach() for t in tensors.values()]) + dist.all_reduce(flat_tensor, group=self.mpu.get_data_parallel_group()) + flat_tensor /= self.dp_world_size + offset = 0 + reduced_tensor = {} + for name, t in tensors.items(): + n_elem = t.numel() + reduced_tensor[name] = flat_tensor[offset:offset + n_elem].clone().detach().reshape(t.shape) + offset += n_elem + agg_loss = reduced_tensor['__train_loss__'] + self.agg_additional_losses = OrderedDict( + {name: reduced_tensor[name] + for name in self.agg_additional_losses.keys()}) assert self.global_rank in self.grid.pp_group - losses = torch.stack([self.dp_group_loss, agg_loss]) + losses = [self.dp_group_loss, agg_loss] + if self.agg_additional_losses is not None: + losses += list(self.agg_additional_losses.values()) + losses = torch.stack(losses).float() if self.is_pipe_parallel: dist.broadcast(tensor=losses, src=self.global_rank, group=self.mpu.get_pipe_parallel_group()) else: # Get loss from last stage src_rank = self.grid.stage_to_global(self.num_stages - 1) assert src_rank in self.grid.pp_group - losses = torch.Tensor([0., 0.]).to(self.device) + # losses to reduce are: dp_group_loss, agg_loss, model additional losses + # therefore: 2 + n_additional_losses + additional_losses = self.module.get_additional_losses() + n_additional_losses = 0 if additional_losses is None else len(additional_losses) + losses = torch.Tensor([0.] * (2 + n_additional_losses)).to(self.device) dist.broadcast(tensor=losses, src=src_rank, group=self.grid.get_pipe_parallel_group()) self.dp_group_loss = losses[0].clone().detach() agg_loss = losses[1].clone().detach() - + if additional_losses is not None: + self.agg_additional_losses = OrderedDict({ + name: losses[2 + i].clone().detach() + for i, name in enumerate(additional_losses.keys()) + }) return agg_loss def set_dataloader(self, loader): @@ -641,7 +717,9 @@ def _exec_forward_pass(self, buffer_id): # collect the partitioned input from the previous stage if self.is_pipe_partitioned and not self.is_first_stage(): - part_input = PartitionedTensor.from_meta(meta=inputs[0], + if self.pipe_partition_input_meta_cache is None: + self.pipe_partition_input_meta_cache = inputs[0].to('cpu') + part_input = PartitionedTensor.from_meta(meta=self.pipe_partition_input_meta_cache, local_part=inputs[1], group=self.grid.get_slice_parallel_group()) @@ -675,7 +753,7 @@ def _exec_forward_pass(self, buffer_id): raise ValueError("expecting a tensor or a tuple of tensors") part = PartitionedTensor(tensor=first_output, group=self.grid.get_slice_parallel_group()) # Clear the large output data, but save the computation graph - first_output.data = torch.zeros(1) + first_output.data = torch.zeros(1, device=first_output.data.device) self.pipe_buffers['output_tensors'][buffer_id] = first_output # Inject the partitioned tensor into the output before sending outputs = (part.to_meta(), part.data(), *outputs_tail) @@ -693,19 +771,34 @@ def _exec_forward_pass(self, buffer_id): self.loss = outputs if self.eval_return_logits: self.outputs = outputs + if isinstance(self.loss, torch.Tensor): self.fwd_outputs.append(self.loss.detach()) - - if self.total_loss is None: - self.total_loss = torch.zeros_like(self.loss) - self.total_loss += self.loss.detach() else: self.fwd_outputs.append([l.detach() for l in self.loss]) - if self.total_loss is None: - self.total_loss = [torch.zeros_like(l) for l in self.loss] - for idx, l in enumerate(self.loss): - self.total_loss[idx] += l.detach() + def add_to_total_loss(_total_loss, _loss): + if isinstance(_loss, torch.Tensor): + if _total_loss is None: + _total_loss = torch.zeros_like(_loss) + _total_loss += _loss.detach() + else: + if _total_loss is None: + _total_loss = [torch.zeros_like(_l) for _l in _loss] + for _idx, _l in enumerate(_loss): + _total_loss[_idx] += _l.detach() + return _total_loss + + self.total_loss = add_to_total_loss(self.total_loss, self.loss) + + # aggregate additional losses across gradient accumulation steps + additional_losses = self.module.get_additional_losses() + if additional_losses is not None: + if self.total_additional_losses is None: + self.total_additional_losses = OrderedDict() + for name, loss in additional_losses.items(): + total = self.total_additional_losses[name] if name in self.total_additional_losses else None + self.total_additional_losses[name] = add_to_total_loss(total, loss) def _exec_backward_pass(self, buffer_id): assert self.optimizer is not None, "must provide optimizer during " \ @@ -732,7 +825,9 @@ def _exec_backward_pass(self, buffer_id): # careful to also restore the computational graph of the tensors we partitioned. if self.is_pipe_partitioned: if self.is_grad_partitioned: - part_output = PartitionedTensor.from_meta(meta=outputs[0], + if self.pipe_partition_output_meta_cache is None: + self.pipe_partition_output_meta_cache = outputs[0].to('cpu') + part_output = PartitionedTensor.from_meta(meta=self.pipe_partition_output_meta_cache, local_part=outputs[1], group=self.grid.get_slice_parallel_group()) self.pipe_buffers['output_tensors'][buffer_id].data = part_output.full() @@ -745,7 +840,9 @@ def _exec_backward_pass(self, buffer_id): grad_tensors = self.grad_layer if self.is_grad_partitioned: #print(f'RANK={self.global_rank} BEFORE-BWD restoring grad={self.grad_layer[0].size()} {self.grad_layer[1].size()}') - part_grad = PartitionedTensor.from_meta(meta=self.grad_layer[0], + if self.grad_partition_grad_layer_meta_cache is None: + self.grad_partition_grad_layer_meta_cache = self.grad_layer[0].to('cpu') + part_grad = PartitionedTensor.from_meta(meta=self.grad_partition_grad_layer_meta_cache, local_part=self.grad_layer[1], group=self.grid.get_slice_parallel_group()) grad_tensors = (part_grad.full(), *grad_tensors[2:]) @@ -766,7 +863,8 @@ def _exec_backward_pass(self, buffer_id): if self.using_bf16_optimizer and not self.is_last_stage(): # manually call because we don't call optimizer.backward() - self.optimizer.update_hp_grads(clear_lp_grads=False) + if not self._config.bfloat16_immediate_grad_update: + self.optimizer.update_hp_grads(clear_lp_grads=False) # Free up the memory from the output of forward() self.pipe_buffers['output_tensors'][buffer_id] = None @@ -837,51 +935,38 @@ def _send_tensor_meta(self, buffer, recv_stage): * ndims * shape """ - send_bytes = 0 + meta_buffer = torch.empty(TENSOR_META_SIZE, dtype=torch.int32, device=self.device) if isinstance(buffer, torch.Tensor): - type_tensor = torch.LongTensor(data=[0]).to(self.device) - p2p.send(type_tensor, recv_stage) - send_shape = torch.LongTensor(data=buffer.size()).to(self.device) - send_ndims = torch.LongTensor(data=[len(buffer.size())]).to(self.device) - p2p.send(send_ndims, recv_stage) - p2p.send(send_shape, recv_stage) - send_bytes += _tensor_bytes(buffer) - elif isinstance(buffer, list): - assert (False) - type_tensor = torch.LongTensor(data=[1]).to(self.device) - p2p.send(type_tensor, recv_stage) - count_tensor = torch.LongTensor(data=[len(buffer)]).to(self.device) - p2p.send(count_tensor, recv_stage) - for tensor in buffer: - assert isinstance(tensor, torch.Tensor) - send_shape = torch.LongTensor(data=tensor.size()).to(self.device) - send_ndims = torch.LongTensor(data=[len(tensor.size())]).to(self.device) - p2p.send(send_ndims, recv_stage) - p2p.send(send_shape, recv_stage) - send_bytes += _tensor_bytes(tensor) + meta_buf_list = [ + 0, # type of data (0: tensor, 1: list (unused), 2: tuple) + self.DTYPE_TO_ID[buffer.dtype], # dtype + len(buffer.size()) # ndims + ] + meta_buf_list.extend(buffer.size()) + assert len( + meta_buf_list + ) <= TENSOR_META_SIZE, f"Buffer for metadata is too small. Current buffer size: {TENSOR_META_SIZE} but required {len(meta_buf_list)}" + meta_buffer[:len(meta_buf_list)].copy_(torch.tensor(meta_buf_list, dtype=torch.int32)) + p2p.send(meta_buffer, recv_stage) + elif isinstance(buffer, tuple): - type_tensor = torch.LongTensor(data=[2]).to(self.device) - p2p.send(type_tensor, recv_stage) - count_tensor = torch.LongTensor(data=[len(buffer)]).to(self.device) - p2p.send(count_tensor, recv_stage) - for idx, tensor in enumerate(buffer): + meta_buf_list = [ + 2, # type of data (0: tensor, 1: list (unused), 2: tuple) + len(buffer) # num_tensors + ] + + for tensor in buffer: assert isinstance(tensor, torch.Tensor) - send_shape = torch.LongTensor(data=tensor.size()).to(self.device) - send_ndims = torch.LongTensor(data=[len(tensor.size())]).to(self.device) - send_dtype = torch.LongTensor(data=[self.DTYPE_TO_ID[tensor.dtype]]).to(self.device) - p2p.send(send_dtype, recv_stage) - p2p.send(send_ndims, recv_stage) - p2p.send(send_shape, recv_stage) - # Useful for performance debugging. - ''' - new_bytes = _tensor_bytes(tensor) - send_bytes += _tensor_bytes(tensor) - # Useful for performance debugging. - if self.grid.data_parallel_id == 0: - print( - f'STAGE={self.stage_id} pipe-send-volume[{idx}]: shape={send_shape} {new_bytes/1024**2:0.2f}MB' - ) - ''' + meta_buf_list.append(self.DTYPE_TO_ID[tensor.dtype]) + meta_buf_list.append(len(tensor.size())) + meta_buf_list.extend(tensor.size()) + + assert len( + meta_buf_list + ) <= TENSOR_META_SIZE, f"Buffer for metadata is too small. Current buffer size: {TENSOR_META_SIZE} but required {len(meta_buf_list)}" + meta_buffer[:len(meta_buf_list)].copy_(torch.tensor(meta_buf_list, dtype=torch.int32)) + p2p.send(meta_buffer, recv_stage) + else: raise NotImplementedError(f'Could not send meta type {type(buffer)}') @@ -894,49 +979,35 @@ def _send_tensor_meta(self, buffer, recv_stage): def _recv_tensor_meta(self, send_stage): """Receive metadata about upcoming p2p transfers and return allocated buffers. - Metadata is communicated in this order: - * type (0: tensor, 1: list) - * num_tensors if type=list - foreach tensor in buffer: - * ndims - * shape - Returns: Allocated buffer for receiving from send_stage. """ + buffer = torch.empty(TENSOR_META_SIZE, dtype=torch.int32, device=self.device) + p2p.recv(buffer, send_stage) - type_tensor = torch.LongTensor(data=[0]).to(self.device) - p2p.recv(type_tensor, send_stage) - recv_type = type_tensor.item() + recv_type = buffer[0].item() # A single tensor will be sent. if recv_type == 0: - recv_ndims = torch.LongTensor(data=[0]).to(self.device) - p2p.recv(recv_ndims, send_stage) - recv_ndims = recv_ndims.item() - recv_shape = torch.LongTensor([1] * recv_ndims).to(self.device) - p2p.recv(recv_shape, send_stage) - recv_shape = recv_shape.tolist() - return self._allocate_buffer(recv_shape, num_buffers=1)[0] - - # List or tuple of tensors + recv_dtype = self.ID_TO_DTYPE[buffer[1].item()] + recv_ndims = buffer[2].item() + recv_shape = buffer[3:3 + recv_ndims].tolist() + return self._allocate_or_extend_buffers(0, recv_shape, recv_dtype) + + # List or tuple of tensors (recv_type == 1 (list) is currently unused) elif recv_type == 1 or recv_type == 2: - count_tensor = torch.LongTensor(data=[0]).to(self.device) - p2p.recv(count_tensor, send_stage) - num_tensors = count_tensor.item() - recv_shapes_and_dtypes = [] + num_tensors = buffer[1].item() + + buffers = [] + offset = 2 for idx in range(num_tensors): - recv_dtype = torch.LongTensor(data=[0]).to(self.device) - p2p.recv(recv_dtype, send_stage) - recv_dtype = self.ID_TO_DTYPE[recv_dtype.item()] - recv_ndims = torch.LongTensor(data=[0]).to(self.device) - p2p.recv(recv_ndims, send_stage) - recv_ndims = recv_ndims.item() - recv_shape = torch.LongTensor([1] * recv_ndims).to(self.device) - p2p.recv(recv_shape, send_stage) - recv_shapes_and_dtypes.append((recv_shape.tolist(), recv_dtype)) - - buffers = self._allocate_buffers(recv_shapes_and_dtypes, num_buffers=1)[0] + recv_dtype = self.ID_TO_DTYPE[buffer[offset].item()] + recv_ndims = buffer[offset + 1].item() + recv_shape = buffer[offset + 2:offset + 2 + recv_ndims].tolist() + offset += 2 + recv_ndims + + buffers.append(self._allocate_or_extend_buffers(idx, recv_shape, recv_dtype)) + # Convert to tuples if requested. if recv_type == 2: buffers = tuple(buffers) @@ -959,7 +1030,7 @@ def _exec_send_activations(self, buffer_id): outputs[-1] = outputs[-1].half() outputs = tuple(outputs) - if self.first_output_send: + if self.dynamic_shape or self.first_output_send: self.first_output_send = False self._send_tensor_meta(outputs, self.next_stage) @@ -1044,7 +1115,7 @@ def _exec_recv_activations(self, buffer_id): recvd = None # Allocate the buffer if necessary - if self.pipe_recv_buf is None: + if self.dynamic_shape or self.pipe_recv_buf is None: self.pipe_recv_buf = self._recv_tensor_meta(self.prev_stage) if isinstance(self.pipe_recv_buf, torch.Tensor): @@ -1088,7 +1159,9 @@ def _exec_recv_grads(self, buffer_id): # XXX these shapes are hardcoded for Megatron # Restore partitioned output if it was partitioned and we are sending full gradients if self.is_pipe_partitioned and not self.is_grad_partitioned: - part_output = PartitionedTensor.from_meta(meta=outputs[0], + if self.pipe_partition_grad_meta_cache is None: + self.pipe_partition_grad_meta_cache = outputs[0].to('cpu') + part_output = PartitionedTensor.from_meta(meta=self.pipe_partition_grad_meta_cache, local_part=outputs[1], group=self.grid.get_slice_parallel_group()) outputs[0].data = part_output.full() @@ -1097,10 +1170,9 @@ def _exec_recv_grads(self, buffer_id): self.pipe_buffers['outputs'][buffer_id] = outputs # Allocate gradient if necessary - if self.grad_layer is None: + if self.dynamic_shape or self.grad_layer is None: if isinstance(outputs, torch.Tensor): - s = list(outputs.size()) - self.grad_layer = self._allocate_buffer(s, dtype=outputs.dtype, num_buffers=1)[0] + self.grad_layer = self._allocate_or_extend_buffers(0, list(outputs.size()), outputs.dtype) else: # XXX This is a HACK # When we exchange activations/gradients, the two pipe stages @@ -1122,7 +1194,11 @@ def _exec_recv_grads(self, buffer_id): for t in outputs[2:] if t.is_floating_point()] else: sizes_and_dtypes = [(list(t.size()), t.dtype) for t in outputs if t.is_floating_point()] - self.grad_layer = self._allocate_buffers(sizes_and_dtypes, num_buffers=1)[0] + + self.grad_layer = [ + self._allocate_or_extend_buffers(i, size, dtype) + for i, (size, dtype) in enumerate(sizes_and_dtypes) + ] if isinstance(self.grad_layer, torch.Tensor): p2p.recv(self.grad_layer, self.next_stage) @@ -1203,16 +1279,17 @@ def _allocate_buffer(self, shape, num_buffers=-1, **kwargs): buffers.append(self._allocate_zeros(shape, **kwargs)) return buffers - def _allocate_buffers(self, shapes_and_dtypes, requires_grad=False, num_buffers=-1): - buffers = [] - if num_buffers == -1: - num_buffers = self.num_pipe_buffers - for count in range(num_buffers): - buffer = [] - for shape, dtype in shapes_and_dtypes: - buffer.append(self._allocate_zeros(shape, dtype=dtype, requires_grad=requires_grad)) - buffers.append(buffer) - return buffers + def _allocate_or_extend_buffers(self, idx, shape, dtype): + numel = reduce(mul, shape) if len(shape) > 0 else 1 + if len(self._grad_layer_buf) <= idx or self._grad_layer_buf[idx].numel() < numel: + new_buf = self._allocate_buffer(shape, dtype=dtype, num_buffers=1)[0] + if len(self._grad_layer_buf) <= idx: + self._grad_layer_buf.append(new_buf) + else: + self._grad_layer_buf[idx] = new_buf + return self._grad_layer_buf[idx] + else: + return self._grad_layer_buf[idx].flatten()[:numel].view(shape) def forward(self, *args, **kwargs): """Disabled for pipeline parallel training. See ``train_batch()``. """ @@ -1304,7 +1381,7 @@ def load_module_state_dict(self, checkpoint, strict=True, custom_load_fn=None, f strict (bool, optional): Strict state loading. Defaults to True. """ assert custom_load_fn is None, "custom_load_fn not supported w. pipeline parallelism" - state_dict = checkpoint['module'] + state_dict = checkpoint if self.has_moe_layers else checkpoint['module'] if (state_dict is not None) and (not isinstance(state_dict, str)): super().load_module_state_dict(state_dict, strict) return @@ -1343,3 +1420,6 @@ def _exec_schedule(self, pipe_schedule): # Equivalent to: self._exec_forward_pass(buffer_id=0) self._exec_instr = MethodType(self._INSTRUCTION_MAP[type(cmd)], self) self._exec_instr(**cmd.kwargs) + + def get_additional_losses(self): + return self.agg_additional_losses diff --git a/deepspeed/runtime/pipe/module.py b/deepspeed/runtime/pipe/module.py index c11379b0a0d7..49fa2807c355 100644 --- a/deepspeed/runtime/pipe/module.py +++ b/deepspeed/runtime/pipe/module.py @@ -116,7 +116,10 @@ def forward(self, inputs): partition_method (str, optional): The method upon which the layers are partitioned. Defaults to 'parameters'. activation_checkpoint_interval (int, optional): The granularity activation checkpointing in terms of number of layers. 0 disables activation checkpointing. activation_checkpoint_func (callable, optional): The function to use for activation checkpointing. Defaults to ``deepspeed.checkpointing.checkpoint``. - checkpointable_layers(list, optional): Checkpointable layers may not be checkpointed. Defaults to None which does not additional filtering. + checkpointable_layers (list[str], optional): List of layer class names that are eligible for checkpointing. For GPT models, + ParallelTransformerLayerPipe is always checkpointed regardless of this list. If None, all layers with parameters are + considered checkpointable. Defaults to None. + dynamic_shape: Allows dynamic shapes of inputs. This might have a performance impact. """ def __init__(self, @@ -130,7 +133,8 @@ def __init__(self, partition_method='parameters', activation_checkpoint_interval=0, activation_checkpoint_func=checkpointing.checkpoint, - checkpointable_layers=None): + checkpointable_layers=None, + dynamic_shape=False): super().__init__() @@ -196,6 +200,16 @@ def __init__(self, #newseed = get_accelerator().initial_seed() + self._grid.get_stage_id() #ds_utils.set_random_seed(newseed) + self.activation_checkpoint_interval = activation_checkpoint_interval + + self.activation_checkpoint_func = activation_checkpoint_func + + #storage for precomputed checkpointeble results + self.is_checkpointable_results = [] + self.is_checkpointable_results_interval = None + + # if configuration use_reentrant = False, self.activation_checkpoint_func will be set to ``checkpointing.non_reentrant_checkpoint`` + #with torch.random.fork_rng(devices=[get_accelerator().current_device_name()]): self._build() self.to(get_accelerator().device_name(self.local_rank)) @@ -203,10 +217,17 @@ def __init__(self, self.tied_comms = self._index_tied_modules() self._synchronize_tied_weights() - self.activation_checkpoint_interval = activation_checkpoint_interval + self.dynamic_shape = dynamic_shape - self.activation_checkpoint_func = activation_checkpoint_func - # if configuration use_reentrant = False, self.activation_checkpoint_func will be set to ``checkpointing.non_reentrant_checkpoint`` + def _precompute_checkpointable_values(self): + if self.activation_checkpoint_interval > 0 and self.is_checkpointable_results_interval != self.activation_checkpoint_interval: + num_layers = len(self.forward_funcs) + self.interval_was_zero = False + for start_idx in range(0, num_layers, self.activation_checkpoint_interval): + end_idx = min(start_idx + self.activation_checkpoint_interval, num_layers) + funcs = self.forward_funcs[start_idx:end_idx] + self.is_checkpointable_results.append(self._is_checkpointable(funcs)) + self.is_checkpointable_results_interval = self.activation_checkpoint_interval def _build(self): specs = self._layer_specs @@ -352,7 +373,9 @@ def exec_func(*inputs): else: num_layers = len(self.forward_funcs) x = forward_input - for start_idx in range(0, num_layers, self.activation_checkpoint_interval): + for start_idx, is_checkpointable_result in \ + zip(range(0, num_layers, self.activation_checkpoint_interval), self.is_checkpointable_results): + end_idx = min(start_idx + self.activation_checkpoint_interval, num_layers) funcs = self.forward_funcs[start_idx:end_idx] @@ -361,7 +384,7 @@ def exec_func(*inputs): if not isinstance(x, tuple): x = (x, ) - if self._is_checkpointable(funcs): + if is_checkpointable_result: x = self.activation_checkpoint_func(exec_range_func(start_idx, end_idx), *x) else: x = exec_range_func(start_idx, end_idx)(*x) @@ -629,8 +652,31 @@ def _is_checkpointable(self, funcs): # because only non_reentrant_checkpoint can accept inputs with requires_grad=False # otherwise, the backward of the embedding layer won't receive gradients. if self.__class__.__name__ in ('GPTModelPipe', 'GPT2ModelPipe'): - return all('ParallelTransformerLayerPipe' in f.__class__.__name__ for f in funcs) + # For GPT models, checkpoint both transformer layers and any additional + # layers specified in checkpointable_layers (if provided) + return all('ParallelTransformerLayerPipe' in f.__class__.__name__ or ( + self.checkpointable_layers is not None and f.__class__.__name__ in self.checkpointable_layers) + for f in funcs) + if self.checkpointable_layers is not None: + # For non-GPT models, only checkpoint layers specified in checkpointable_layers return all(f.__class__.__name__ in self.checkpointable_layers for f in funcs) + + # Default behavior: checkpoint any layer that has parameters params = [f.parameters() for f in funcs if isinstance(f, torch.nn.Module)] return any(len(list(p)) > 0 for p in params) + + def get_additional_losses(self): + """ Returns model specific additional losses for reporting + + Return a dictionary of {"loss name": loss_value} or None if no additional losses. + """ + return None + + def compile(self, *args, **kwargs): + for idx, layer in enumerate(self.forward_funcs): + if isinstance(layer, nn.Module): + layer.compile(*args, **kwargs) + else: + new_layer = torch.compile(layer, *args, **kwargs) + self.forward_funcs[idx] = new_layer diff --git a/deepspeed/runtime/pipe/p2p.py b/deepspeed/runtime/pipe/p2p.py index 31b9a14bf0f4..ed6d80b8d4fb 100644 --- a/deepspeed/runtime/pipe/p2p.py +++ b/deepspeed/runtime/pipe/p2p.py @@ -3,15 +3,13 @@ # DeepSpeed Team -import pickle +import msgpack import typing import torch from deepspeed import comm as dist -# To query whether we have send/recv support -from packaging.version import Version -from deepspeed.git_version_info import torch_info +from deepspeed.utils.torch import required_torch_version from deepspeed.accelerator import get_accelerator _groups = None @@ -21,9 +19,7 @@ def can_send_recv() -> bool: - torch_version = Version(torch_info['version']) - sendrecv_min = Version('1.8') - return torch_version >= sendrecv_min + return required_torch_version(min_version=1.8) #initializes adjacent process groups @@ -100,7 +96,7 @@ def wait(): def send_obj(msg: typing.Any, dest: int): """Send an arbitrary python object to ``dest``. - Note: ``msg`` must be pickleable. + Note: ``msg`` must be serializable by msgpack. WARN: This incurs a CPU -> GPU transfer and should be used sparingly for performance reasons. @@ -110,7 +106,7 @@ def send_obj(msg: typing.Any, dest: int): dest (int): Destination rank. """ # serialize the message - msg = pickle.dumps(msg) + msg = msgpack.packb(msg) # construct a tensor to send msg = torch.ByteTensor(torch.ByteStorage.from_buffer(msg)).to(get_accelerator().device_name()) @@ -137,7 +133,7 @@ def recv_obj(sender: int) -> typing.Any: msg = torch.empty(length.item(), dtype=torch.uint8).to(get_accelerator().device_name()) dist.recv(msg, src=sender) - msg = pickle.loads(msg.cpu().numpy().tobytes()) + msg = msgpack.unpackb(msg.cpu().numpy().tobytes()) def _to(x): """Recursively move to the current device.""" diff --git a/deepspeed/runtime/sparse_tensor.py b/deepspeed/runtime/sparse_tensor.py index f0bb5c75530e..291ba5f0c786 100644 --- a/deepspeed/runtime/sparse_tensor.py +++ b/deepspeed/runtime/sparse_tensor.py @@ -15,6 +15,7 @@ class SparseTensor(object): def __init__(self, dense_tensor=None): self.orig_dense_tensor = dense_tensor + self.dtype = self.orig_dense_tensor.dtype self.is_sparse = dense_tensor.is_sparse if dense_tensor is not None: if dense_tensor.is_sparse: diff --git a/deepspeed/runtime/swap_tensor/aio_config.py b/deepspeed/runtime/swap_tensor/aio_config.py index df4a38380089..be6c7d93c86a 100644 --- a/deepspeed/runtime/swap_tensor/aio_config.py +++ b/deepspeed/runtime/swap_tensor/aio_config.py @@ -5,25 +5,39 @@ from deepspeed.runtime.config_utils import get_scalar_param from deepspeed.runtime.swap_tensor.constants import * +from deepspeed.accelerator import get_accelerator AIO_DEFAULT_DICT = { AIO_BLOCK_SIZE: AIO_BLOCK_SIZE_DEFAULT, AIO_QUEUE_DEPTH: AIO_QUEUE_DEPTH_DEFAULT, - AIO_THREAD_COUNT: AIO_THREAD_COUNT_DEFAULT, + AIO_INTRA_OP_PARALLELISM: AIO_INTRA_OP_PARALLELISM_DEFAULT, AIO_SINGLE_SUBMIT: AIO_SINGLE_SUBMIT_DEFAULT, - AIO_OVERLAP_EVENTS: AIO_OVERLAP_EVENTS_DEFAULT + AIO_OVERLAP_EVENTS: AIO_OVERLAP_EVENTS_DEFAULT, + AIO_USE_GDS: AIO_USE_GDS_DEFAULT } def get_aio_config(param_dict): if AIO in param_dict.keys() and param_dict[AIO] is not None: aio_dict = param_dict[AIO] - return { - AIO_BLOCK_SIZE: get_scalar_param(aio_dict, AIO_BLOCK_SIZE, AIO_BLOCK_SIZE_DEFAULT), - AIO_QUEUE_DEPTH: get_scalar_param(aio_dict, AIO_QUEUE_DEPTH, AIO_QUEUE_DEPTH_DEFAULT), - AIO_THREAD_COUNT: get_scalar_param(aio_dict, AIO_THREAD_COUNT, AIO_THREAD_COUNT_DEFAULT), - AIO_SINGLE_SUBMIT: get_scalar_param(aio_dict, AIO_SINGLE_SUBMIT, AIO_SINGLE_SUBMIT_DEFAULT), - AIO_OVERLAP_EVENTS: get_scalar_param(aio_dict, AIO_OVERLAP_EVENTS, AIO_OVERLAP_EVENTS_DEFAULT) + aio_config = { + AIO_BLOCK_SIZE: + get_scalar_param(aio_dict, AIO_BLOCK_SIZE, AIO_BLOCK_SIZE_DEFAULT), + AIO_QUEUE_DEPTH: + get_scalar_param(aio_dict, AIO_QUEUE_DEPTH, AIO_QUEUE_DEPTH_DEFAULT), + AIO_INTRA_OP_PARALLELISM: + get_scalar_param(aio_dict, AIO_INTRA_OP_PARALLELISM, AIO_INTRA_OP_PARALLELISM_DEFAULT), + AIO_SINGLE_SUBMIT: + get_scalar_param(aio_dict, AIO_SINGLE_SUBMIT, AIO_SINGLE_SUBMIT_DEFAULT), + AIO_OVERLAP_EVENTS: + get_scalar_param(aio_dict, AIO_OVERLAP_EVENTS, AIO_OVERLAP_EVENTS_DEFAULT), + AIO_USE_GDS: + get_scalar_param(aio_dict, AIO_USE_GDS, AIO_USE_GDS_DEFAULT) } + if aio_config[AIO_USE_GDS]: + assert get_accelerator().device_name() == 'cuda', 'GDS currently only supported for CUDA accelerator' + + return aio_config + return AIO_DEFAULT_DICT diff --git a/deepspeed/runtime/swap_tensor/constants.py b/deepspeed/runtime/swap_tensor/constants.py index 4c9722bc4e4f..c1207749eac6 100644 --- a/deepspeed/runtime/swap_tensor/constants.py +++ b/deepspeed/runtime/swap_tensor/constants.py @@ -9,9 +9,10 @@ "aio": { "block_size": 1048576, "queue_depth": 8, - "thread_count": 1, + "intra_op_parallelism": 1, "single_submit": false, - "overlap_events": true + "overlap_events": true, + "use_gds": false } ''' AIO = "aio" @@ -19,9 +20,11 @@ AIO_BLOCK_SIZE_DEFAULT = 1048576 AIO_QUEUE_DEPTH = "queue_depth" AIO_QUEUE_DEPTH_DEFAULT = 8 -AIO_THREAD_COUNT = "thread_count" -AIO_THREAD_COUNT_DEFAULT = 1 +AIO_INTRA_OP_PARALLELISM = "intra_op_parallelism" +AIO_INTRA_OP_PARALLELISM_DEFAULT = 1 AIO_SINGLE_SUBMIT = "single_submit" AIO_SINGLE_SUBMIT_DEFAULT = False AIO_OVERLAP_EVENTS = "overlap_events" AIO_OVERLAP_EVENTS_DEFAULT = True +AIO_USE_GDS = "use_gds" +AIO_USE_GDS_DEFAULT = False diff --git a/deepspeed/runtime/swap_tensor/optimizer_utils.py b/deepspeed/runtime/swap_tensor/optimizer_utils.py index 86e43c98e7e5..d7b0ea9634b2 100644 --- a/deepspeed/runtime/swap_tensor/optimizer_utils.py +++ b/deepspeed/runtime/swap_tensor/optimizer_utils.py @@ -30,7 +30,7 @@ class OptimizerStateSwapInfo(object): def __init__(self, parameter, numel, base_folder): self.tensors = [] - self.param_id = id(parameter) + self.param_id = OptimizerSwapper.parameter_id(parameter) self.swap_folder = base_folder self.swap_paths = [] self.swapped_gradients = {} @@ -50,7 +50,7 @@ def has_gradients(self): def _add_tensors(self, tensor_list): for t in tensor_list: self.tensors.append(t) - self.swap_paths.append(os.path.join(self.swap_folder, f'{id(t)}.tensor.swp')) + self.swap_paths.append(os.path.join(self.swap_folder, f'{OptimizerSwapper.parameter_id(t)}.tensor.swp')) def add_state_tensors(self, tensor_list): self.has_state_tensors = True @@ -112,6 +112,10 @@ def release_unswapped_gradients(self): class OptimizerSwapper(object): + @staticmethod + def parameter_id(param): + return param.ds_id + def __init__(self, swap_config, aio_config, base_folder, optimizer, largest_numel, device, dtype, timers): self.swap_config = swap_config self.aio_config = aio_config @@ -126,7 +130,7 @@ def __init__(self, swap_config, aio_config, base_folder, optimizer, largest_nume # Read/Write alignment for each thread during Intra-request parallelism self.min_aio_bytes = max(MIN_AIO_BYTES, aio_config[AIO_BLOCK_SIZE]) - self.aligned_bytes = AIO_ALIGNED_BYTES * aio_config[AIO_THREAD_COUNT] + self.aligned_bytes = AIO_ALIGNED_BYTES * aio_config[AIO_INTRA_OP_PARALLELISM] self.numel_alignment = self.aligned_bytes // self.swap_element_size # Swap buffer management @@ -149,6 +153,11 @@ def __init__(self, swap_config, aio_config, base_folder, optimizer, largest_nume 'timer_names', ] + def purge_state(self): + for swap_info in self.swap_params_info.values(): + swap_info.tensors = [swap_info.tensors[0]] + swap_info.has_state_tensors = False + def swappable_tensor(self, param=None, numel=None): assert param is not None or numel is not None, "Either param or numel must be provided" if param is not None: @@ -178,10 +187,10 @@ def _flush_gradient_swapper(self, gradient_swapper): self.timer_names.update(gradient_swapper.get_timer_names()) def _swap_out_gradients(self, parameter, gradient_offsets, gradient_tensors, gradient_swapper): - if not id(parameter) in self.swap_params_info.keys(): + if not OptimizerSwapper.parameter_id(parameter) in self.swap_params_info.keys(): return - swap_info = self.swap_params_info[id(parameter)] + swap_info = self.swap_params_info[OptimizerSwapper.parameter_id(parameter)] swappable_tensors = [] swappable_offsets = [] @@ -241,7 +250,7 @@ def _initialize_from_swapped_fp16_params(self, aio_handle, fp16_partitions_info, for i, tensor in enumerate(fp16_pinned_tensors): true_index = curr_index + i logger.info( - f'swap_in_fp16_param: fp32_id = {id(fp32_parameters[true_index])} index = {true_index} orig_num_elem = {fp16_num_elems[true_index]}, swap_num_elem = {fp16_pinned_tensors[i].numel()}' + f'swap_in_fp16_param: fp32_id = {OptimizerSwapper.parameter_id(fp32_parameters[true_index])} index = {true_index} orig_num_elem = {fp16_num_elems[true_index]}, swap_num_elem = {fp16_pinned_tensors[i].numel()}' ) swap_out_count = self._swap_out_fp16_params(aio_handle=aio_handle, @@ -330,7 +339,7 @@ def _initialize_parameters(self, parameters, src_tensors, aio_handle): if dist.get_rank() == 0 and SWAPPER_DEBUG_MODE: for i, tensor in enumerate(src_tensors): logger.info( - f'copy_in_fp16_param: fp32_id = {id(parameters[i])} index = {i}, swap_num_elem = {src_tensors[i].numel()}' + f'copy_in_fp16_param: fp32_id = {OptimizerSwapper.parameter_id(parameters[i])} index = {i}, swap_num_elem = {src_tensors[i].numel()}' ) self.swap_buffer_manager.free(pinned_buffers) @@ -420,8 +429,9 @@ def _get_state_tensors(self, parameter): return [] tensor_list = [] - for value in self.optimizer.state[parameter].values(): + for state_name, value in self.optimizer.state[parameter].items(): if torch.is_tensor(value): + value.ds_id = state_name + '-' + parameter.ds_id tensor_list.append(value) return tensor_list @@ -433,7 +443,7 @@ def _update_param_state_info(self, swap_info, parameter): swap_info.add_state_tensors(state_tensors) def _create_param_swap_info(self, parameter, numel): - param_id = id(parameter) + param_id = OptimizerSwapper.parameter_id(parameter) assert not param_id in self.swap_params_info self.swap_params_info[param_id] = OptimizerStateSwapInfo(parameter=parameter, @@ -446,7 +456,7 @@ def _create_param_swap_info(self, parameter, numel): return swap_info def _get_param_swap_info(self, parameter): - param_id = id(parameter) + param_id = OptimizerSwapper.parameter_id(parameter) swap_info = self.swap_params_info.get(param_id, None) if swap_info is not None: diff --git a/deepspeed/runtime/swap_tensor/partitioned_optimizer_swapper.py b/deepspeed/runtime/swap_tensor/partitioned_optimizer_swapper.py index e7bf06043fd7..8b6cbe8fbb51 100644 --- a/deepspeed/runtime/swap_tensor/partitioned_optimizer_swapper.py +++ b/deepspeed/runtime/swap_tensor/partitioned_optimizer_swapper.py @@ -33,9 +33,11 @@ def __init__(self, swap_config, aio_config, base_folder, optimizer, largest_nume largest_numel, device, dtype, timers) aio_op = AsyncIOBuilder().load() - self.aio_handle = aio_op.aio_handle(aio_config[AIO_BLOCK_SIZE], aio_config[AIO_QUEUE_DEPTH], - aio_config[AIO_SINGLE_SUBMIT], aio_config[AIO_OVERLAP_EVENTS], - aio_config[AIO_THREAD_COUNT]) + self.aio_handle = aio_op.aio_handle(block_size=aio_config[AIO_BLOCK_SIZE], + queue_depth=aio_config[AIO_QUEUE_DEPTH], + single_submit=aio_config[AIO_SINGLE_SUBMIT], + overlap_events=aio_config[AIO_OVERLAP_EVENTS], + intra_op_parallelism=aio_config[AIO_INTRA_OP_PARALLELISM]) # Overlap swapping out self.gradient_swapper = AsyncTensorSwapper(aio_handle=self.aio_handle, @@ -185,7 +187,7 @@ def _separate_pinned_tensors(self, swap_info): return pinned_tensors, pinned_paths, unpinned_tensors, unpinned_paths def _swap_in_pinned_gradients(self, aio_handle, parameter, gradient_tensor): - swap_info = self.swap_params_info[id(parameter)] + swap_info = self.swap_params_info[OptimizerSwapper.parameter_id(parameter)] param_gradients = swap_info.swapped_gradients.values() swap_buffers = [gradient_tensor.narrow(0, grad.offset, grad.length) for grad in param_gradients] swap_paths = [grad.path for grad in param_gradients] @@ -203,7 +205,7 @@ def _swap_in_pinned_gradients(self, aio_handle, parameter, gradient_tensor): self._log_timers([SWAP_READ_GRADIENTS, SWAP_WAIT_GRADIENTS]) def _swap_in_gradients(self, aio_handle, parameter, dest_buffer): - swap_info = self.swap_params_info.get(id(parameter), None) + swap_info = self.swap_params_info.get(OptimizerSwapper.parameter_id(parameter), None) if not (swap_info and swap_info.has_gradients()): return diff --git a/deepspeed/runtime/swap_tensor/partitioned_param_swapper.py b/deepspeed/runtime/swap_tensor/partitioned_param_swapper.py index fcc6a272883f..f80fe1501c00 100644 --- a/deepspeed/runtime/swap_tensor/partitioned_param_swapper.py +++ b/deepspeed/runtime/swap_tensor/partitioned_param_swapper.py @@ -13,6 +13,7 @@ from deepspeed import comm as dist from deepspeed.accelerator import get_accelerator from deepspeed.ops.op_builder import AsyncIOBuilder +from deepspeed.ops.op_builder import GDSBuilder from .constants import * from .utils import swap_in_tensors, swap_out_tensors, MIN_AIO_BYTES, AIO_ALIGNED_BYTES, print_object, SwapBufferPool @@ -37,8 +38,6 @@ class AsyncPartitionedParameterSwapper(object): def __init__(self, ds_config, model_dtype): - aio_op = AsyncIOBuilder().load(verbose=False) - self.aio_handle = aio_op.aio_handle self.dtype = model_dtype #set swap buffers, create aio handles @@ -93,9 +92,13 @@ def _configure_aio(self, ds_config): self.aio_config = ds_config.aio_config + self.use_gds = self.aio_config[AIO_USE_GDS] + self.aio_handle = GDSBuilder().load(verbose=False).gds_handle if self.use_gds else AsyncIOBuilder().load( + verbose=False).aio_handle + # Read/Write alignment for each thread during Intra-request parallelism self.min_aio_bytes = max(MIN_AIO_BYTES, self.aio_config[AIO_BLOCK_SIZE]) - self.aligned_bytes = AIO_ALIGNED_BYTES * self.aio_config[AIO_THREAD_COUNT] + self.aligned_bytes = AIO_ALIGNED_BYTES * self.aio_config[AIO_INTRA_OP_PARALLELISM] self.numel_alignment = self.aligned_bytes // self.swap_element_size self.elements_per_buffer = self.swap_config.buffer_size @@ -104,19 +107,31 @@ def _configure_aio(self, ds_config): self.available_buffer_ids = [i for i in range(self.param_buffer_count)] self.reserved_buffer_ids = [] - self.buffers = get_accelerator().pin_memory(torch.empty(int(self.aligned_elements_per_buffer * - self.param_buffer_count), - dtype=self.dtype, - requires_grad=False), - align_bytes=0) - - self.aio_read_handle = self.aio_handle(self.aio_config[AIO_BLOCK_SIZE], self.aio_config[AIO_QUEUE_DEPTH], - self.aio_config[AIO_SINGLE_SUBMIT], self.aio_config[AIO_OVERLAP_EVENTS], - self.aio_config[AIO_THREAD_COUNT]) - - self.aio_write_handle = self.aio_handle(self.aio_config[AIO_BLOCK_SIZE], self.aio_config[AIO_QUEUE_DEPTH], - self.aio_config[AIO_SINGLE_SUBMIT], - self.aio_config[AIO_OVERLAP_EVENTS], self.aio_config[AIO_THREAD_COUNT]) + + self.aio_read_handle = self.aio_handle(block_size=self.aio_config[AIO_BLOCK_SIZE], + queue_depth=self.aio_config[AIO_QUEUE_DEPTH], + single_submit=self.aio_config[AIO_SINGLE_SUBMIT], + overlap_events=self.aio_config[AIO_OVERLAP_EVENTS], + intra_op_parallelism=self.aio_config[AIO_INTRA_OP_PARALLELISM]) + + self.aio_write_handle = self.aio_handle(block_size=self.aio_config[AIO_BLOCK_SIZE], + queue_depth=self.aio_config[AIO_QUEUE_DEPTH], + single_submit=self.aio_config[AIO_SINGLE_SUBMIT], + overlap_events=self.aio_config[AIO_OVERLAP_EVENTS], + intra_op_parallelism=self.aio_config[AIO_INTRA_OP_PARALLELISM]) + + if self.use_gds: + self.buffers = torch.empty(int(self.aligned_elements_per_buffer * self.param_buffer_count), + dtype=self.dtype, + device=get_accelerator().device_name(), + requires_grad=False) + self.aio_read_handle.pin_device_tensor(self.buffers) + else: + self.buffers = get_accelerator().pin_memory(torch.empty(int(self.aligned_elements_per_buffer * + self.param_buffer_count), + dtype=self.dtype, + requires_grad=False), + align_bytes=0) self.swap_out_params = [] diff --git a/deepspeed/runtime/swap_tensor/pipelined_optimizer_swapper.py b/deepspeed/runtime/swap_tensor/pipelined_optimizer_swapper.py index cb00e3dc2fad..8f6d72e35f63 100644 --- a/deepspeed/runtime/swap_tensor/pipelined_optimizer_swapper.py +++ b/deepspeed/runtime/swap_tensor/pipelined_optimizer_swapper.py @@ -8,6 +8,7 @@ from deepspeed.ops.op_builder import AsyncIOBuilder from deepspeed import comm as dist +import torch from deepspeed.runtime.swap_tensor.constants import * from deepspeed.runtime.swap_tensor.utils import swap_in_tensors, swap_out_tensors, print_object @@ -28,7 +29,7 @@ def __init__(self, aio_handle, read_op, param_info, allocated_buffers, state_buf self.num_ops = num_ops def is_parameter(self, parameter): - return id(parameter) == self.param_info.param_id + return OptimizerSwapper.parameter_id(parameter) == self.param_info.param_id def wait(self): assert self.wait_required @@ -55,13 +56,17 @@ def __init__(self, swap_config, aio_config, base_folder, optimizer, largest_nume device, dtype, timers) aio_op = AsyncIOBuilder().load() - self.write_aio_handle = aio_op.aio_handle(aio_config[AIO_BLOCK_SIZE], aio_config[AIO_QUEUE_DEPTH], - aio_config[AIO_SINGLE_SUBMIT], aio_config[AIO_OVERLAP_EVENTS], - aio_config[AIO_THREAD_COUNT]) - - self.read_aio_handle = aio_op.aio_handle(aio_config[AIO_BLOCK_SIZE], aio_config[AIO_QUEUE_DEPTH], - aio_config[AIO_SINGLE_SUBMIT], aio_config[AIO_OVERLAP_EVENTS], - aio_config[AIO_THREAD_COUNT]) + self.write_aio_handle = aio_op.aio_handle(block_size=aio_config[AIO_BLOCK_SIZE], + queue_depth=aio_config[AIO_QUEUE_DEPTH], + single_submit=aio_config[AIO_SINGLE_SUBMIT], + overlap_events=aio_config[AIO_OVERLAP_EVENTS], + intra_op_parallelism=aio_config[AIO_INTRA_OP_PARALLELISM]) + + self.read_aio_handle = aio_op.aio_handle(block_size=aio_config[AIO_BLOCK_SIZE], + queue_depth=aio_config[AIO_QUEUE_DEPTH], + single_submit=aio_config[AIO_SINGLE_SUBMIT], + overlap_events=aio_config[AIO_OVERLAP_EVENTS], + intra_op_parallelism=aio_config[AIO_INTRA_OP_PARALLELISM]) # Overlap gradient swap out self.gradient_swapper = AsyncTensorSwapper(aio_handle=self.write_aio_handle, @@ -154,6 +159,8 @@ def swap_out_gradients(self, parameter, gradient_offsets, gradient_tensors): def _complete_swap_out(self, swap_out_type): self.swap_ops[swap_out_type].wait() + for buffer in self.swap_ops[swap_out_type].state_buffers: + buffer = torch.Tensor() self.swap_buffer_manager.free(self.swap_ops[swap_out_type].allocated_buffers) self.swap_ops[swap_out_type] = None diff --git a/deepspeed/runtime/swap_tensor/utils.py b/deepspeed/runtime/swap_tensor/utils.py index 90b2d9b8bd31..1f9825c34638 100644 --- a/deepspeed/runtime/swap_tensor/utils.py +++ b/deepspeed/runtime/swap_tensor/utils.py @@ -18,12 +18,12 @@ def swap_in_tensors(swap_handle, tensor_buffers, swap_paths): for buffer, path in zip(tensor_buffers, swap_paths): - assert (swap_handle.async_pread(buffer, path) == 0) + assert (swap_handle.async_pread(buffer, path, 0) == 0) def swap_out_tensors(swap_handle, tensor_buffers, swap_paths): for buffer, path in zip(tensor_buffers, swap_paths): - assert (swap_handle.async_pwrite(buffer, path) == 0) + assert (swap_handle.async_pwrite(buffer, path, 0) == 0) def print_object(obj, name, exclude_list=[]): diff --git a/deepspeed/runtime/tensor_parallel/__init__.py b/deepspeed/runtime/tensor_parallel/__init__.py new file mode 100644 index 000000000000..388239345351 --- /dev/null +++ b/deepspeed/runtime/tensor_parallel/__init__.py @@ -0,0 +1,7 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from .config import AUTOTP_MODE, get_tensor_parallel_config +from .tp_manager import TpTrainingManager diff --git a/deepspeed/runtime/tensor_parallel/config.py b/deepspeed/runtime/tensor_parallel/config.py new file mode 100644 index 000000000000..1300bf9323cd --- /dev/null +++ b/deepspeed/runtime/tensor_parallel/config.py @@ -0,0 +1,81 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from enum import Enum +from deepspeed.runtime.config_utils import DeepSpeedConfigModel +import torch +from pydantic import Field +from typing import Optional + + +class AUTOTP_MODE(Enum): + TRAINING = "TRAINING" + INFERENCE = "INFERENCE" + + +class TPConfig(DeepSpeedConfigModel): + """ Configure tensor parallelism settings """ + + tp_size: int = 1 + """ Number of devices to split the model across using tensor parallelism. """ + + tp_grain_size: int = 1 + "The variable required by the autoTP parser has not been activated in training yet" + "as it depends on the gather logic that supports uneven partitioning. " + "Desired MLP/lm_head tp size granularity. DNN library favors tensor size in granularity of power of 2, we pick 64 as a default size." + + mpu: object = None + """ + A model parallelism unit object that implements + ``get_{model,data}_parallel_{rank,group,world_size}()``. + """ + + tp_group: object = None + + +class TPTrainingConfig(DeepSpeedConfigModel): + + dtype: torch.dtype = torch.float16 + """ + Desired model data type, will convert model to this type. + """ + + autotp_size: int = 0 + """ + In automatic tensor-parallelism training, 'tensor_parallel_size' + When set to 0, indicates that it is disabled. + """ + tensor_parallel: TPConfig = Field({}, alias="tp") + """ + Configuration for tensor parallelism used to split the model across several + GPUs. Expects a dictionary containing values for :any:`DeepSpeedTPConfig`. + """ + + injection_policy_tuple: Optional[tuple] = None + #The following parameters are required by autoTP parser. + ######################################## + keep_module_on_host: bool = False + """ + When loading checkpoints to model parameters, they are moved to the device. In very large models + this might fill the device and cause OOM. Setting this flag to true, will keep checkpoints on + host and not move them directly to the device (giving an option to quantize checkpoint data before + moving it to the device for example). + """ + + replace_with_kernel_inject: bool = Field(False, alias="kernel_inject") + """ + Set to true to inject inference kernels for models such as, Bert, GPT2, + GPT-Neo and GPT-J. Otherwise, the injection_dict provides the names of two + linear layers as a tuple: + `(attention_output projection, transformer output projection)` + """ + ######################################## + + +def get_tensor_parallel_config(ds_config): + + if 'tensor_parallel' in ds_config: + return TPTrainingConfig(**ds_config['tensor_parallel']) + return TPTrainingConfig() diff --git a/deepspeed/runtime/tensor_parallel/tp_manager.py b/deepspeed/runtime/tensor_parallel/tp_manager.py new file mode 100644 index 000000000000..cf0b5a75c92a --- /dev/null +++ b/deepspeed/runtime/tensor_parallel/tp_manager.py @@ -0,0 +1,66 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import torch +from .config import TPTrainingConfig, TPConfig +from deepspeed.utils import groups +import deepspeed.comm as dist + + +class TpTrainingManager(): + + def __init__(self, model, tp_size, dtype): + self.module = model + self.config = self._initialize_config(dtype) + + from deepspeed.module_inject.auto_tp import AutoTP + from deepspeed import get_accelerator + + # Parse model configuration + parser_dict = AutoTP.tp_parser(model) + print("AutoTP: ", parser_dict) + + # Initialize TP configuration and model + self._initialize_tp_config(tp_size) + self._get_model_config_generate() + + # Synchronize random number generator state across devices + _rng_state = get_accelerator().get_rng_state().to(get_accelerator().current_device_name()) + dist.broadcast(_rng_state, groups.get_tensor_model_parallel_src_rank(), self.tp_config.tp_group) + get_accelerator().set_rng_state(_rng_state.cpu()) + + # Apply injection policies + self._apply_policies(parser_dict) + + def _initialize_config(self, dtype): + """Initialize and return the DeepSpeed TP training configuration.""" + config = TPTrainingConfig() + config.dtype = dtype + return config + + def _apply_policies(self, parser_dict): + """Apply injection policies to the parsed modules.""" + for client_module, injection_policy in parser_dict: + self.config.injection_policy_tuple = injection_policy + self._apply_injection_policy(self.config, client_module) + + def _apply_injection_policy(self, config, client_module=None): + from deepspeed.module_inject import replace_transformer_layer + """Apply the given injection policy to a client module.""" + if isinstance(self.module, torch.nn.Module): + replace_transformer_layer(client_module, self.module, None, self.config, self.model_config) + + def _initialize_tp_config(self, tp_size): + """Perform TP configuration initialization.""" + self.tp_config = TPConfig() + self.tp_config.tp_size = tp_size + + groups._init_tp_mesh_device(tp_size) + self.tp_config.tp_group = groups.get_tensor_model_parallel_group() + self.config.tensor_parallel = self.tp_config + + def _get_model_config_generate(self): + """Generate and apply HF model configuration.""" + self.model_config = getattr(self.module, 'config', None) diff --git a/deepspeed/runtime/utils.py b/deepspeed/runtime/utils.py index 108c7775530b..9fd7a65a53ba 100755 --- a/deepspeed/runtime/utils.py +++ b/deepspeed/runtime/utils.py @@ -9,29 +9,28 @@ """ from collections.abc import Iterable -from deepspeed.moe.utils import is_moe_param import os import psutil import gc from math import sqrt -from bisect import bisect_left -from packaging import version as pkg_version -import torch -from deepspeed import comm as dist +from numpy import prod +import torch +from torch.nn import functional as F try: from torch._six import inf except ModuleNotFoundError: from torch import inf - +from typing import Union, List, Dict +from deepspeed import comm as dist +from deepspeed.moe.utils import is_moe_param from deepspeed.utils import groups, logger +from deepspeed.utils.bwc import (bwc_tensor_model_parallel_rank, bwc_pipeline_parallel_world_size, + bwc_pipeline_parallel_group) from deepspeed.runtime.constants import PIPE_REPLICATED -from numpy import prod from deepspeed.accelerator import get_accelerator - from deepspeed.module_inject.policy import transpose -from torch.nn import functional as F torch_memory_reserved = get_accelerator().memory_reserved torch_max_memory_reserved = get_accelerator().max_memory_reserved @@ -48,6 +47,27 @@ def __init__(self, params): self.param_groups.append({'params': params}) +graph_cache = {} + + +def graph_process(replay_first_step, func, *args, **kwargs): + # `func` should only contain operations on the GPU + # Please ensure that the memory address of the data required by 'func' remains constant + if func.__name__ not in graph_cache: + cuda_stream = get_accelerator().Stream() + cuda_stream.wait_stream(get_accelerator().current_stream()) + with get_accelerator().stream(cuda_stream): + func(*args, **kwargs) + get_accelerator().current_stream().wait_stream(cuda_stream) + graph_cache[func.__name__] = get_accelerator().create_graph() + with get_accelerator().capture_to_graph(graph_cache[func.__name__]): + func(*args, **kwargs) + if replay_first_step: + get_accelerator().replay_graph(graph_cache[func.__name__]) + else: + get_accelerator().replay_graph(graph_cache[func.__name__]) + + def noop_decorator(func): return func @@ -97,44 +117,6 @@ def is_model_parallel_parameter(p) -> bool: return False -def bwc_tensor_model_parallel_rank(mpu=None): - """Backwards-compatible way of querying the tensor model parallel rank from - an ``mpu`` object. - - *Tensor* model parallelism means that tensors are physically split across - processes. This contrasts with *pipeline* model parallelism, in which the - layers are partitioned but tensors left intact. - - The API for tensor model parallelism has changed across versions and this - helper provides a best-effort implementation across versions of ``mpu`` - objects. The preferred mechanism is - ``mpu.get_tensor_model_parallel_rank()``. - - This should "just work" with both Megatron-LM and DeepSpeed's pipeline - parallelism. - - Args: - mpu (model parallel unit, optional): The tensor model parallel rank. - If ``mpu=None``, returns 0. Defaults to ``None``. - - Returns: - int: the rank - """ - if mpu is None: - # No model parallelism in easy :) - return 0 - - if hasattr(mpu, 'get_tensor_model_parallel_rank'): - # New Megatron and DeepSpeed convention (post pipeline-parallelism release) - return mpu.get_tensor_model_parallel_rank() - elif hasattr(mpu, 'get_slice_parallel_rank'): - # Some DeepSpeed + pipeline parallelism versions - return mpu.get_slice_parallel_rank() - else: - # Deprecated Megatron and DeepSpeed convention - return mpu.get_model_parallel_rank() - - def copy_to_device(item, device, criterion_func): """ Return a copy of tensor on specified device. @@ -185,6 +167,17 @@ def move_to_device(item, device, criterion_func): return item +def get_norm_with_moe_layers_fast(all_groups_norm, group): + # This implementation standardizes the grad_norm across ranks. A more precise implementation can be found in 'get_norm_with_moe_layers'. + # Need to allreduce (avg) the norms across different ranks because moe params will not be synced during allreduce + scaled_norm = all_groups_norm * 1.0 / float(dist.get_world_size(group=group)) + scaled_norm_tensor = torch.tensor(scaled_norm, device=get_accelerator().current_device_name(), dtype=torch.float) + dist.all_reduce(scaled_norm_tensor, group=group) + all_groups_norm = scaled_norm_tensor.item() + #print(f"old = {all_groups_norm_old} and new = {all_groups_norm} at rank: {deepspeed.comm.get_rank()}") + return all_groups_norm + + class CheckOverflow(object): '''Checks for overflow in gradient across parallel process''' @@ -264,8 +257,8 @@ def has_overflow(self, params, has_moe_params=None): elif self.mpu is not None: if self.deepspeed is not None: using_pipeline = hasattr(self.deepspeed, 'pipeline_enable_backward_allreduce') - if (using_pipeline and self.deepspeed.pipeline_enable_backward_allreduce is False) or ( - not using_pipeline and self.deepspeed.enable_backward_allreduce is False): + if (using_pipeline and self.deepspeed.pipeline_enable_backward_allreduce + is False) or (not using_pipeline and self.deepspeed.enable_backward_allreduce is False): dist.all_reduce(overflow_gpu, op=dist.ReduceOp.MAX, group=self.mpu.get_data_parallel_group()) dist.all_reduce(overflow_gpu, op=dist.ReduceOp.MAX, group=self.mpu.get_model_parallel_group()) elif self.deepspeed is not None and self.deepspeed.enable_backward_allreduce is False: @@ -343,48 +336,55 @@ def clip_grad_norm_(parameters, max_norm, norm_type=2, mpu=None): if isinstance(parameters, torch.Tensor): parameters = [parameters] parameters = list(filter(lambda p: p.grad is not None, parameters)) - max_norm = float(max_norm) norm_type = float(norm_type) + all_norms = [] if norm_type == inf: - total_norm = max(p.grad.data.abs().max() for p in parameters) - total_norm_cuda = get_accelerator().FloatTensor([float(total_norm)]) + for p in parameters: + all_norms.append(p.grad.data.abs().max().float()) + total_norm = torch.stack(all_norms).max() + total_norm = total_norm.to(get_accelerator().current_device_name()) # Take max across all GPUs. if mpu is not None: - dist.all_reduce(total_norm_cuda, op=dist.ReduceOp.MAX, group=mpu.get_model_parallel_group()) - total_norm = total_norm_cuda[0].item() + dist.all_reduce(total_norm, op=dist.ReduceOp.MAX, group=mpu.get_model_parallel_group()) else: total_norm = 0 for p in parameters: if mpu is not None: if (mpu.get_model_parallel_rank() == 0) or is_model_parallel_parameter(p): - param_norm = p.grad.data.norm(norm_type) - total_norm += param_norm.item()**norm_type + param_norm = p.grad.data.detach().float().norm(norm_type) + all_norms.append(param_norm) else: - param_norm = p.grad.data.float().norm(norm_type) - total_norm += param_norm.item()**norm_type - + param_norm = p.grad.data.detach().float().norm(norm_type) + all_norms.append(param_norm) + if len(all_norms) > 0: + total_norm = torch.stack(all_norms).square().sum().float() + else: + total_norm = get_accelerator().FloatTensor([0.0]) + total_norm = total_norm.to(get_accelerator().current_device_name()) # Sum across all model parallel GPUs. - total_norm_cuda = get_accelerator().FloatTensor([float(total_norm)]) if mpu is not None: - dist.all_reduce(total_norm_cuda, op=dist.ReduceOp.SUM, group=mpu.get_model_parallel_group()) - total_norm = total_norm_cuda[0].item()**(1. / norm_type) + dist.all_reduce(total_norm, op=dist.ReduceOp.SUM, group=mpu.get_model_parallel_group()) + total_norm = total_norm.pow(1. / norm_type) # Need to average total_norm across different GPUs due to the presence of moe params pg = groups._get_data_parallel_group() scaled_norm = total_norm * 1.0 / float(dist.get_world_size(group=pg)) + scaled_norm_tensor = scaled_norm - scaled_norm_tensor = get_accelerator().FloatTensor([float(scaled_norm)]) dist.all_reduce(scaled_norm_tensor, group=pg) - total_norm = scaled_norm_tensor.item() + total_norm = scaled_norm_tensor + total_norm = total_norm.to(parameters[0].device) + max_norm = torch.tensor([float(max_norm)], device=total_norm.device) clip_coef = max_norm / (total_norm + 1e-6) - if clip_coef < 1: - for p in parameters: - p.grad.data.mul_(clip_coef) + tmp_tensor = torch.tensor([1.0], device=clip_coef.device) + clip_coef = torch.min(tmp_tensor, clip_coef) + for p in parameters: + p.grad.data.mul_(clip_coef) return total_norm -def get_grad_norm(parameters, norm_type=2, mpu=None): +def get_flattened_grad_norm(parameters, norm_type=2, mpu=None, grad_norm_mask=None): """Get grad norm of an iterable of parameters. This is adapted from torch.nn.utils.clip_grad.clip_grad_norm_ and @@ -396,7 +396,8 @@ def get_grad_norm(parameters, norm_type=2, mpu=None): single Tensor that will have gradients normalized norm_type (float or int): type of the used p-norm. Can be ``'inf'`` for infinity norm. - + grad_norm_mask (List[Tensor]): A list of Tensor, where + each Tensor is a 2D Tensor containing ranges of [start_index, end_index]. Returns: Total norm of the parameters (viewed as a single vector). """ @@ -414,18 +415,27 @@ def get_grad_norm(parameters, norm_type=2, mpu=None): total_norm = total_norm_cuda[0].item() else: total_norm = 0. - tensor_mp_rank = bwc_tensor_model_parallel_rank(mpu=mpu) - for p in parameters: - # Pipeline parallelism may replicate parameters. Avoid multi-counting. - if hasattr(p, PIPE_REPLICATED) and p.ds_pipe_replicated: - continue - - # Filter to avoid over-counting replicated tensors from tensor - # model parallelism - if (tensor_mp_rank > 0) and not is_model_parallel_parameter(p): - continue + for idx, p in enumerate(parameters): + # Use grad_norm_mask to avoid redundant computation of flattened gradient norm + if grad_norm_mask is not None and len(grad_norm_mask[idx]) > 0: + + # A loop-free implementation to create a mask tensor based on a range list + # which is logically equivalent to the following implementation. + # # mask_tensor_ = torch.zeros_like(p, device=p.device, dtype=bool) + # # for mask_idx in grad_norm_mask[idx]: + # # mask_tensor_[mask_idx[0]:mask_idx[1]] = True + cum_sum_pairs = torch.tensor([1, -1], device=get_accelerator().current_device_name(), + dtype=p.dtype).repeat(grad_norm_mask[idx].shape[0], 1) + mask_tensor = torch.zeros(p.shape[0] + 1, + device=get_accelerator().current_device_name(), + dtype=p.dtype) + mask_tensor = mask_tensor.scatter_(0, grad_norm_mask[idx].view(-1), + cum_sum_pairs.view(-1)).cumsum(0).bool()[:-1] + + param_norm = torch.masked_fill(p.grad.data, mask_tensor, 0).float().norm(norm_type) - param_norm = p.grad.data.float().norm(norm_type) + else: + param_norm = p.grad.data.float().norm(norm_type) total_norm += param_norm.item()**norm_type # Sum across all model parallel GPUs. @@ -570,67 +580,43 @@ def partition_uniform(num_items, num_parts): return parts -def _lprobe(weights, num_parts, bottleneck): - num_items = len(weights) - total_weight = weights[-1] - - # initialize partitioning - parts = [0] * (num_parts + 1) - for p in range(1, num_parts + 1): - parts[p] = num_items - - bsum = bottleneck # running sum of target weight for pth partition - chunksize = num_items // num_parts - step = chunksize - for p in range(1, num_parts): - # Jump to the next bucket - while (step < num_items) and (weights[step] < bsum): - step += chunksize - - # Find the end index of partition p - parts[p] = bisect_left(weights, bsum, lo=step - chunksize, hi=min(step, num_items)) - # Nothing more to partition, return early - if parts[p] == num_items: - # See if the current partition is overweight. - part_size = weights[-1] - weights[parts[p - 1]] - return parts, part_size < bottleneck - - # Next partition target - bsum = weights[parts[p] - 1] + bottleneck - - return parts, bsum >= total_weight - - -def _rb_partition_balanced(weights, num_parts, eps): - total_weight = weights[-1] - lower = total_weight / num_parts # best case heaviest partition - upper = total_weight # worst case heaviest partition - - # Do a binary search for the best partitioning - while upper > lower + eps: - mid = lower + ((upper - lower) / 2) - parts, success = _lprobe(weights, num_parts, mid) - if success: - upper = mid - else: - lower = mid + eps - return upper - - -def partition_balanced(weights, num_parts, eps=1e-3): - num_items = len(weights) - # First check for the trivial edge case - if num_items <= num_parts: - return partition_uniform(num_items, num_parts) - - weights_ = prefix_sum_inc(weights) - - # Find the smallest bottleneck (weight of heaviest partition) - bottleneck = _rb_partition_balanced(weights_, num_parts, eps=eps) - - # Now compute that partitioning - parts, success = _lprobe(weights_, num_parts, bottleneck) - assert success +def partition_balanced(weights, num_parts): + """ + use dynamic programming solve `The Linear Partition Problem`. + see https://www8.cs.umu.se/kurser/TDBAfl/VT06/algorithms/BOOK/BOOK2/NODE45.HTM + """ + import numpy as np + n = len(weights) + m = num_parts + + if n <= m: + return partition_uniform(n, m) + + dp_max = np.full((n + 1, m + 1), np.inf) + dp_min = np.full((n + 1, m + 1), np.inf) + dp_cost = np.full((n + 1, m + 1), np.inf) + position = np.zeros((n + 1, m + 1), dtype=int) + prefix_sum = np.zeros((n + 1)) + prefix_sum[1:] = np.cumsum(weights) + + dp_max[0, 0] = 0 + dp_cost[0, 0] = 0 + for i in range(1, n + 1): + for j in range(1, min(i, m) + 1): + for k in range(i): + max_sum = max(dp_max[k, j - 1], prefix_sum[i] - prefix_sum[k]) + min_sum = min(dp_min[k, j - 1], prefix_sum[i] - prefix_sum[k]) + cost = max_sum - min_sum + if dp_cost[i, j] >= cost: + dp_cost[i, j] = cost + dp_max[i, j] = max_sum + dp_min[i, j] = min_sum + position[i, j] = k + + parts = [n] + for i in reversed(range(1, m + 1)): + parts.append(position[parts[-1], i]) + parts.reverse() return parts @@ -643,10 +629,10 @@ def __init__(self, tensor, group, partition_meta=None): self.group = group self.num_parts = dist.get_world_size(group=self.group) self.rank = dist.get_rank(group=self.group) - self.orig_size = list(tensor.size()) self.orig_device = tensor.device self.local_data, self.partition = self._partition_tensor(tensor) + self.even_split = tensor.numel() % self.num_parts == 0 @classmethod def from_meta(cls, meta, local_part, group, device=get_accelerator().device_name()): @@ -689,23 +675,16 @@ def full(self, device=None): # Allocate the full tensor as a flat buffer. full_numel = prod(self.full_size()) flat_tensor = torch.zeros([full_numel], dtype=self.local_data.dtype, device=device) - - # Prepare all-gather buffer - partition_tensors = [] - for part_id in range(self.num_parts): - part_size = self.partition[part_id + 1] - self.partition[part_id] - buf = flat_tensor.narrow(0, start=self.partition[part_id], length=part_size) - if part_id == self.rank: - buf.copy_(self.local_data) - partition_tensors.append(buf) - - # Collect the full tensor - dist.all_gather(partition_tensors, partition_tensors[self.rank], group=self.group) - - for i in range(len(partition_tensors)): - partition_tensors[i].data = torch.zeros(1) - partition_tensors[i] = None - + if self.even_split: + # Collect the full tensor + dist.all_gather_into_tensor(flat_tensor, self.local_data, group=self.group) + else: + for part_id in range(self.num_parts): + part_size = self.partition[part_id + 1] - self.partition[part_id] + buf = flat_tensor.narrow(0, start=self.partition[part_id], length=part_size) + if part_id == self.rank: + buf.copy_(self.local_data) + dist.broadcast(buf, part_id, self.group) return flat_tensor.view(self.full_size()).clone().detach() def to_meta(self): @@ -844,26 +823,7 @@ def get_only_unique_item(items): return unique_item -def clip_gradients(parameters, max_norm=1.0, global_grad_norm=None, mpu=None, eps=1e-6): - """Clip the gradient of a list of parameters. - Args: - parameters: List of parameters whose .grad will be clipped. - global_grad_norm (float, optional): Precomputed gradient norm. Defaults to None. - mpu (optional): model parallelism unit. Defaults to None. - eps (float, optional): epsilon value added to grad norm. Defaults to 1e-6 - Returns: - float: the global gradient norm - """ - if global_grad_norm is None: - global_grad_norm = get_grad_norm(parameters, mpu=mpu) - clip_coef = max_norm / (global_grad_norm + eps) - if clip_coef < 1: - for p in parameters: - p.grad.detach().mul_(clip_coef) - return global_grad_norm - - -def get_global_norm_of_tensors(input_tensors, norm_type=2, mpu=None): +def get_global_norm_of_tensors(input_tensors, norm_type=2, mpu=None, use_graph=False, moe_ep_group=None): """Get norm of an iterable of tensors. This is adapted from torch.nn.utils.clip_grad.clip_grad_norm_ and @@ -877,31 +837,73 @@ def get_global_norm_of_tensors(input_tensors, norm_type=2, mpu=None): Returns: Total norm of the tensors (viewed as a single vector). """ - assert isinstance(input_tensors, Iterable), f'expected Iterable type not {type(input_tensors)}' assert all([torch.is_tensor(t) for t in input_tensors]), f'expected list of only tensors' norm_type = float(norm_type) + all_norms = [] if norm_type == inf: - total_norm = max(t.data.abs().max() for t in input_tensors) - total_norm_cuda = get_accelerator().FloatTensor([float(total_norm)]) + for t in input_tensors: + all_norms.append(t.data.abs().max().float()) + total_norm = torch.stack(all_norms).max() + device_total_norm = total_norm.to(get_accelerator().current_device_name()) + # Max across model parallel if mpu is not None: - dist.all_reduce(total_norm_cuda, op=dist.ReduceOp.MAX, group=mpu.get_model_parallel_group()) - total_norm = total_norm_cuda[0].item() + # For MoE grads, max over model parallel only if MoE-TP is enabled + if moe_ep_group is None or groups._get_expert_model_parallel_world_size() > 1: + dist.all_reduce(device_total_norm, op=dist.ReduceOp.MAX, group=mpu.get_model_parallel_group()) + # If MoE grads and MoE-TP disabled, max over pipeline parallel + elif bwc_pipeline_parallel_world_size(mpu) > 1: + dist.all_reduce(device_total_norm, op=dist.ReduceOp.MAX, group=bwc_pipeline_parallel_group(mpu)) + + # MoE grads: max across expert parallel group + if moe_ep_group is not None: + dist.all_reduce(device_total_norm, op=dist.ReduceOp.MAX, group=moe_ep_group) + total_norm = device_total_norm.to(input_tensors[0].device) else: - total_norm = sum([t.data.float().norm(norm_type).item()**norm_type for t in input_tensors]) - total_norm_cuda = get_accelerator().FloatTensor([float(total_norm)]) + + if 'norm_tensors_compute_buffer' not in graph_cache or len( + graph_cache['norm_tensors_compute_buffer']) != len(input_tensors): + graph_cache['norm_tensors_compute_buffer'] = [ + torch.empty([], dtype=torch.float, device=get_accelerator().current_device_name()) + for t in input_tensors + ] + compute_buffer = graph_cache['norm_tensors_compute_buffer'] + + def _norm_tensors(tensor_list, _compute_buffer, _norm_type): + for i, t in enumerate(tensor_list): + _compute_buffer[i].data.copy_(t.data.float().norm(_norm_type)**_norm_type) + if i != 0: + _compute_buffer[0].data.add_(_compute_buffer[i].data) + + if use_graph: + graph_process(False, _norm_tensors, input_tensors, compute_buffer, norm_type) + else: + _norm_tensors(input_tensors, compute_buffer, norm_type) + + device_total_norm = compute_buffer[0].float().detach() + + # Sum across model parallel if mpu is not None: - dist.all_reduce(total_norm_cuda, op=dist.ReduceOp.SUM, group=mpu.get_model_parallel_group()) - total_norm = total_norm_cuda[0].item()**(1. / norm_type) + # For MoE grads, sum over model parallel only if MoE-TP is enabled + if moe_ep_group is None or groups._get_expert_model_parallel_world_size() > 1: + dist.all_reduce(device_total_norm, op=dist.ReduceOp.SUM, group=mpu.get_model_parallel_group()) + # If MoE grads and MoE-TP disabled, sum over pipeline parallel + elif bwc_pipeline_parallel_world_size(mpu) > 1: + dist.all_reduce(device_total_norm, op=dist.ReduceOp.SUM, group=bwc_pipeline_parallel_group(mpu)) - if total_norm == float('inf') or total_norm == -float('inf') or total_norm != total_norm: - total_norm = -1 + # MoE grads: sum across expert parallel group + if moe_ep_group is not None: + dist.all_reduce(device_total_norm, op=dist.ReduceOp.SUM, group=moe_ep_group) + total_norm = device_total_norm.to(input_tensors[0].device).pow(1. / norm_type) + + inf_or_nan = total_norm.isinf().logical_or(total_norm.isnan()) + total_norm.masked_fill_(inf_or_nan, -1) return total_norm -def clip_tensors_by_global_norm(input_tensors, max_norm=1.0, global_norm=None, mpu=None, eps=1e-6): +def clip_tensors_by_global_norm(input_tensors, max_norm=1.0, global_norm=None, mpu=None, eps=1e-6, use_graph=False): """Clip list of tensors by global norm. Args: input_tensors: List of tensors to be clipped @@ -912,14 +914,26 @@ def clip_tensors_by_global_norm(input_tensors, max_norm=1.0, global_norm=None, m float: the global norm """ if global_norm is None: - global_norm = get_global_norm_of_tensors(input_tensors, mpu=mpu) - + global_norm = get_global_norm_of_tensors(input_tensors, mpu=mpu, use_graph=use_graph) clip_coef = max_norm / (global_norm + eps) - if clip_coef < 1: - for t in input_tensors: - t.detach().mul_(clip_coef) + if use_graph: + + def clip_tensors(_tensor_list, _clip_coef_tensor): + for t in _tensor_list: + t.detach().mul_(_clip_coef_tensor) + + if 'clip_coef_tensor' not in graph_cache: + # Alloc memory + graph_cache['clip_coef_tensor'] = torch.tensor(clip_coef, + dtype=torch.float32).to(get_accelerator().device_name()) + clip_coef_tensor = graph_cache['clip_coef_tensor'] + clip_coef_tensor.copy_(torch.tensor(clip_coef, dtype=torch.float32)) + graph_process(False, clip_tensors, input_tensors, clip_coef_tensor) + else: + for t in input_tensors: + t.detach().mul_(clip_coef) return global_norm @@ -937,16 +951,22 @@ def align_dense_tensors(tensor_list, alignment): return padded_tensor_list -def all_gather_all_partitions(global_flatten_group, partitioned_param_groups, dp_process_group): - for group_id, partitioned_params in enumerate(partitioned_param_groups): - # Sequential AllGather Best of both worlds +def all_gather_into_tensor_dp_groups(groups_flat, partitioned_param_groups, dp_process_group): + for group_id, (group_flat, partitioned_params) in enumerate(zip(groups_flat, partitioned_param_groups)): partition_id = dist.get_rank(group=dp_process_group[group_id]) dp_world_size = dist.get_world_size(group=dp_process_group[group_id]) - dist.all_gather_into_tensor(global_flatten_group[group_id], partitioned_params[partition_id], - dp_process_group[group_id]) + if dp_world_size == 1: + # no groups share optimizer states + # pipeline parallel with bf16 will default call this even if dp size = 1. + continue + dist.all_gather_into_tensor(group_flat, partitioned_params[partition_id], dp_process_group[group_id]) + +def all_gather_dp_groups(groups_flat, partitioned_param_groups, dp_process_group, start_alignment_factor, + allgather_bucket_size): + if dist.has_all_gather_into_tensor(): + return all_gather_into_tensor_dp_groups(groups_flat, partitioned_param_groups, dp_process_group) -def all_gather_dp_groups(partitioned_param_groups, dp_process_group, start_alignment_factor, allgather_bucket_size): for group_id, partitioned_params in enumerate(partitioned_param_groups): # Sequential AllGather Best of both worlds partition_id = dist.get_rank(group=dp_process_group[group_id]) @@ -1005,15 +1025,123 @@ def get_inactive_params(param_list): param.ds_status == ZeroParamStatus.NOT_AVAILABLE)] -def required_torch_version(min_version=None, max_version=None): - assert min_version or max_version, "Must provide a min_version or max_version argument" +def get_norm_with_moe_layers(non_expert_norm, mpu, expert_tensors, norm_type=2): + """ Compute the global norm with MoE experts - torch_version = pkg_version.parse(torch.__version__) + Inputs: + non_expert_norm (float) : the calculated norm of the non-expert params + expert_tensors (Dict[ep_name, List[Tensor]): Dictionary of expert group name to list of grad tensors + norm_type (int): the norm to use - if min_version and pkg_version.parse(str(min_version)) > torch_version: - return False + Returns: + if norm is (-/+) inf, returns -1 + otherwise the global norm (float) + """ + + def to_tensor(v): + return get_accelerator().FloatTensor(float(v)).detach() + + group_norms = [non_expert_norm] + for exp_name, tensors in expert_tensors.items(): + group_norm = get_global_norm_of_tensors(input_tensors=tensors, + mpu=mpu, + norm_type=norm_type, + use_graph=False, + moe_ep_group=groups._get_expert_parallel_group(exp_name)) + group_norms.append(group_norm) + + # check if all norms are valid + group_norms = torch.stack([to_tensor(norm) for norm in group_norms]) + if group_norms.eq(-1).any(): + return -1 + + # combine norms + if norm_type == inf: + total_norm = group_norms.max().item() + else: + total_norm = group_norms.pow(norm_type).sum() + total_norm = total_norm.item()**(1. / norm_type) + if total_norm == float('inf') or total_norm == -float('inf'): + total_norm = -1 + + return total_norm + + +def _make_offload_state_key(key): + return f"{key}_offload_buffer" + + +def offload_adam_states(optimizer, device, pin_memory: bool = False, non_blocking: bool = False): + """Move optimizer states to device. Note that this assumes the state structure of DeepSpeed Adam.""" + + def move_key(state, key): + offload_buf_key = _make_offload_state_key(key) + if offload_buf_key not in state: + state[offload_buf_key] = torch.empty_like(state[key], device=device) + if pin_memory: + state[offload_buf_key] = get_accelerator().pin_memory(state[offload_buf_key]) + state[offload_buf_key].copy_(state[key], non_blocking=non_blocking) + state[key].data = state[offload_buf_key] + + for _, state in optimizer.state.items(): + if "exp_avg" in state: + move_key(state, "exp_avg") + if "exp_avg_sq" in state: + move_key(state, "exp_avg_sq") - if max_version and pkg_version.parse(str(max_version)) < torch_version: + +def reload_adam_states(optimizer, device, non_blocking: bool = False): + """Move optimizer states to device. Note that this assumes the state structure of DeepSpeed Adam.""" + + def move_back_key(state, key): + state[key].data = state[_make_offload_state_key(key)].to(device, non_blocking=non_blocking) + + for _, state in optimizer.state.items(): + if "exp_avg" in state: + move_back_key(state, "exp_avg") + if "exp_avg_sq" in state: + move_back_key(state, "exp_avg_sq") + + +def compare_tensors_in_structures(inputs1: Union[List, Dict], inputs2: Union[List, Dict]) -> bool: + """ + Compare two lists or dictionaries for equality, including any tensors they may contain. + + Args: + inputs1: First input, either a list or a dictionary. + inputs2: Second input, either a list or a dictionary. + + Returns: + True if inputs1 and inputs2 are equal; False otherwise. + """ + if type(inputs1) != type(inputs2): # Ensure types match return False - return True + if isinstance(inputs1, list) and isinstance(inputs2, list): + if len(inputs1) != len(inputs2): + return False + for val1, val2 in zip(inputs1, inputs2): + if isinstance(val1, torch.Tensor) and isinstance(val2, torch.Tensor): + val1 = val1.to(get_accelerator().current_device()) + val2 = val2.to(get_accelerator().current_device()) + if not torch.equal(val1, val2): + return False + elif val1 != val2: + return False + return True + + elif isinstance(inputs1, dict) and isinstance(inputs2, dict): + if inputs1.keys() != inputs2.keys(): + return False + for key in inputs1: + val1, val2 = inputs1[key], inputs2[key] + if isinstance(val1, torch.Tensor) and isinstance(val2, torch.Tensor): + val1 = val1.to(get_accelerator().current_device()) + val2 = val2.to(get_accelerator().current_device()) + if not torch.equal(val1, val2): + return False + elif val1 != val2: + return False + return True + + return False diff --git a/deepspeed/runtime/zero/__init__.py b/deepspeed/runtime/zero/__init__.py index 1ccca09a9e69..23fcf9ec13fb 100644 --- a/deepspeed/runtime/zero/__init__.py +++ b/deepspeed/runtime/zero/__init__.py @@ -13,3 +13,5 @@ from .tiling import TiledLinearReturnBias from .mics import MiCS_Init + +from .stage3 import unwrap_model_for_generation diff --git a/deepspeed/runtime/zero/config.py b/deepspeed/runtime/zero/config.py index 76583c129cb9..19ee9b51702e 100644 --- a/deepspeed/runtime/zero/config.py +++ b/deepspeed/runtime/zero/config.py @@ -4,9 +4,9 @@ # DeepSpeed Team import sys -from typing import Optional +from typing import Optional, Dict, Any from enum import Enum -from deepspeed.pydantic_v1 import Field, validator, root_validator +from pydantic import Field, model_validator from deepspeed.runtime.config_utils import get_scalar_param, pp_int, DeepSpeedConfigModel from deepspeed.utils import logger from .offload_config import DeepSpeedZeroOffloadParamConfig, DeepSpeedZeroOffloadOptimizerConfig, OffloadDeviceEnum @@ -20,6 +20,8 @@ "stage": [0|1|2], "stage3_max_live_parameters" : 1000000000, "stage3_max_reuse_distance" : 1000000000, + "stage3_use_all_reduce_for_fetch_params": [true|false], + "stage3_module_granularity_threshold": 0, "allgather_partitions": [true|false], "use_multi_rank_bucket_allreduce": [true|false], "allgather_bucket_size": 500000000, @@ -29,7 +31,7 @@ "reduce_bucket_size": 500000000, "load_from_fp32_weights": [true|false], "cpu_offload": [true|false] (deprecated), - "cpu_offload_params" : [true|false] (deprecated), + "cpu_offload_param" : [true|false] (deprecated), "cpu_offload_use_pin_memory": [true|false] (deprecated), "sub_group_size" : 1000000000000, "offload_param": {...}, @@ -42,6 +44,8 @@ "zero_quantized_gradients": [true|false], "memory_efficient_linear": [true|false], "override_module_apply": [true|false], + "zeropp_loco_param": {...}, + "log_trace_cache_warnings" : [true|false], } } """ @@ -127,7 +131,7 @@ class DeepSpeedZeroConfig(DeepSpeedConfigModel): the allgather for large model sizes """ - overlap_comm: bool = None # None for dynamic default value (see validator `overlap_comm_valid` below) + overlap_comm: Optional[bool] = None # None for dynamic default value (see validator `overlap_comm_valid` below) """ Attempts to overlap the reduction of the gradients with backward computation """ @@ -167,27 +171,37 @@ class DeepSpeedZeroConfig(DeepSpeedConfigModel): parameters). Used by ZeRO3-Offload and ZeRO-Infinity """ - cpu_offload_param: bool = Field( + cpu_offload_param: Optional[bool] = Field( None, - deprecated=True, - new_param="offload_param", - new_param_fn=(lambda val: DeepSpeedZeroOffloadParamConfig(device=OffloadDeviceEnum.cpu) if val else None), + json_schema_extra={ + "deprecated": True, + "new_param": "offload_param", + "new_param_fn": (lambda val: DeepSpeedZeroOffloadParamConfig(device=OffloadDeviceEnum.cpu) + if val else None) + }, ) """ Deprecated, please use ``offload_param`` """ - cpu_offload_use_pin_memory: bool = Field( + cpu_offload_use_pin_memory: Optional[bool] = Field( None, - deprecated=True, - new_param="offload_param or offload_optimizer", - set_new_param=False, + json_schema_extra={ + "deprecated": True, + "new_param": "offload_param or offload_optimizer", + "set_new_param": False + }, ) """ Deprecated, please use ``offload_param`` or ``offload_optimizer`` """ - cpu_offload: bool = Field( + cpu_offload: Optional[bool] = Field( None, - deprecated=True, - new_param="offload_optimizer", - new_param_fn=(lambda val: DeepSpeedZeroOffloadOptimizerConfig(device=OffloadDeviceEnum.cpu) if val else None), + json_schema_extra={ + "deprecated": + True, + "new_param": + "offload_optimizer", + "new_param_fn": (lambda val: DeepSpeedZeroOffloadOptimizerConfig(device=OffloadDeviceEnum.cpu) + if val else None) + }, ) """ Deprecated, please use ``offload_optimizer`` """ @@ -234,9 +248,25 @@ class DeepSpeedZeroConfig(DeepSpeedConfigModel): this option is enabled and then saves the fp16 model weights. """ + module_granularity_threshold: int = Field(pp_int(0), alias="stage3_module_granularity_threshold") + """ + The granularity of a module is determined by the ratio of "parameter_count / (1 + descendant count)". + ZeRO3 classifies modules with a granularity below the threshold as fine-grained, + which are treated as integral units during parameter fetching. This reduces host overhead + and the separate allgather overhead introduced by hooks for fine-grained layers when fetching parameters. + """ + + use_all_reduce_for_fetch_params: bool = Field(False, alias="stage3_use_all_reduce_for_fetch_params") + """ + Use all_reduce op when fetching module parameters at stage3. This improves performance by reducing + the overhead of concatenation and slicing on the host. + """ + stage3_gather_fp16_weights_on_model_save: bool = Field(False, - deprecated=True, - new_param="gather_16bit_weights_on_model_save") + json_schema_extra={ + "deprecated": True, + "new_param": "gather_16bit_weights_on_model_save" + }) """ Deprecated, please use ``gather_16bit_weights_on_model_save`` """ ignore_unused_parameters: bool = True @@ -282,8 +312,18 @@ class DeepSpeedZeroConfig(DeepSpeedConfigModel): Boolean indicating whether to use quantized zero gradients for efficient all_2_all_reduce comm """ + zeropp_loco_param: Optional[Dict[str, Any]] = None + """ + This dictionary contains parameters for using LoCo-Zero++, with two key parameters: + - `err_beta`: A coefficient for the moving average of quantization errors before and after gradient computation. + It ranges between 0 and 1, with a default value of 0.8. + - `reset_T`: The number of steps after which the moving-average error buffer is cleared. The default value is 1024. + These parameters can be adjusted based on performance needs. Example configuration in ds config: + "zeropp_loco_param": { "err_beta": 0.8, "reset_T": 1024 }. + See LoCo paper for more details: (https://arxiv.org/abs/2407.04480). + """ - mics_shard_size: int = Field(-1, new_param="mics_shard_size") + mics_shard_size: int = Field(-1, json_schema_extra={"new_param": "mics_shard_size"}) mics_hierarchical_params_gather: bool = False @@ -301,17 +341,21 @@ class DeepSpeedZeroConfig(DeepSpeedConfigModel): Override nn.Module apply function, for Stage 3. """ + log_trace_cache_warnings: bool = False + """ + Whether to log warnings from trace cache, such as invalidation events. + """ + # Validators - @validator("overlap_comm") - def overlap_comm_valid(cls, field_value, values): - if field_value is None: - assert ("stage" in values), "DeepSpeedZeroConfig: 'stage' must be defined before 'overlap_comm'" - field_value = values["stage"] == ZeroStageEnum.weights - return field_value - - @root_validator - def offload_ratio_check(cls, values): - offload_config = getattr(values, "offload_optimizer", {}) + @model_validator(mode="after") + def overlap_comm_valid(self): + if self.overlap_comm is None: + self.overlap_comm = self.stage == ZeroStageEnum.weights + return self + + @model_validator(mode="after") + def offload_ratio_check(self): + offload_config = self.offload_optimizer if offload_config and offload_config.ratio < 1.0: - assert values.get("stage") == ZeroStageEnum.weights, "Partial offloading only supported for ZeRO Stage 3." - return values + assert self.stage == ZeroStageEnum.weights, "Partial offloading only supported for ZeRO Stage 3." + return self diff --git a/deepspeed/runtime/zero/contiguous_memory_allocator.py b/deepspeed/runtime/zero/contiguous_memory_allocator.py index 632f68ca1718..35b3d5c7dd5d 100644 --- a/deepspeed/runtime/zero/contiguous_memory_allocator.py +++ b/deepspeed/runtime/zero/contiguous_memory_allocator.py @@ -193,7 +193,7 @@ def _defragment_memory(self): tensor = self.tensor_map[self.tensor_ids[tensor_addr]] assert tensor_size == tensor.numel(), \ - "Size mismatch. {tensor_size} is allocated at addr {tensor_addr} but tensor size is {tensor.numel()} " + f"Size mismatch. {tensor_size} is allocated at addr {tensor_addr} but tensor size is {tensor.numel()} " assert empty_addr != tensor_addr, \ f"Cannot have same empty address {empty_addr} and tensor address {tensor_addr}" diff --git a/deepspeed/runtime/zero/linear.py b/deepspeed/runtime/zero/linear.py index e9dd78864cde..8c8db60768eb 100644 --- a/deepspeed/runtime/zero/linear.py +++ b/deepspeed/runtime/zero/linear.py @@ -16,6 +16,7 @@ #when implemented outside of torch.autograd.Function import math +import functools import torch from torch import Tensor @@ -33,8 +34,14 @@ def print_rank_0(message, debug=False, force=False): try: - autocast_custom_fwd = get_accelerator().amp().custom_fwd - autocast_custom_bwd = get_accelerator().amp().custom_bwd + # Fix `torch.[device].amp.custom_fwd/bwd` FutureWarning in torch 2.4 + if hasattr(torch, 'amp') and hasattr(torch.amp, 'custom_fwd') and hasattr(torch.amp, 'custom_bwd'): + autocast_custom_fwd = functools.partial(torch.amp.custom_fwd, device_type=get_accelerator().device_name()) + autocast_custom_bwd = functools.partial(torch.amp.custom_bwd, device_type=get_accelerator().device_name()) + else: + # original implementation + autocast_custom_fwd = get_accelerator().amp().custom_fwd + autocast_custom_bwd = get_accelerator().amp().custom_bwd except (ImportError, AttributeError) as exp: autocast_custom_fwd = noop_decorator autocast_custom_bwd = noop_decorator diff --git a/deepspeed/runtime/zero/mics.py b/deepspeed/runtime/zero/mics.py index 95e48053abe4..628bf86a61da 100755 --- a/deepspeed/runtime/zero/mics.py +++ b/deepspeed/runtime/zero/mics.py @@ -12,11 +12,12 @@ import deepspeed import torch from deepspeed import comm as dist +from deepspeed.runtime.zero.utils import is_zero_param from deepspeed.runtime.zero.mics_utils import (MiCS_CommGroups, create_mics_comm_groups, scale_tensors) -from deepspeed.runtime.zero.parameter_offload import (DeepSpeedZeRoOffload, is_zero_param) +from deepspeed.runtime.zero.parameter_offload import DeepSpeedZeRoOffload from deepspeed.runtime.zero.partition_parameters import Init, AllGatherCoalescedHandle, ZeroParamStatus from deepspeed.runtime.zero.stage3 import DeepSpeedZeroOptimizer_Stage3 -from deepspeed.utils import instrument_w_nvtx, log_dist +from deepspeed.utils import instrument_w_nvtx, log_dist, logger from deepspeed.accelerator import get_accelerator from torch import Tensor from torch.nn import Parameter @@ -37,11 +38,19 @@ class MiCS_AllGatherCoalescedHandle(AllGatherCoalescedHandle): def __init__(self, allgather_handle, params: List[Parameter], partitions: List[Tensor], world_size: int) -> None: super().__init__(allgather_handle, params, partitions, world_size) - def wait(self) -> None: + def wait(self, **kwargs) -> None: """ """ # let the current stream to op - instrument_w_nvtx(self.allgather_handle.wait)() + try: + # print("HANDLE", self.allgather_handle) + instrument_w_nvtx(self.allgather_handle.wait)() + except (ValueError, RuntimeError) as e: + log_dist( + f"WARNING: Runtime Error while waiting the collective all-gather, possibly due to the _IllegalWork", + ranks=[0]) + log_dist(f"Error message: {e}", ranks=[0]) + if self.complete: return @@ -57,6 +66,7 @@ class MiCS_Init(Init): def __init__(self, module=None, data_parallel_group=None, + sequence_data_parallel_group=None, mem_efficient_linear=True, remote_device=None, pin_memory=False, @@ -78,6 +88,8 @@ def __init__(self, if it was constructed in the context. data_parallel_group (``deepspeed.comm`` process group, optional): The group of processes to partition among. Defaults to all processes. + Synonymous with sequence data parallel group for param partitioning + across both sequence and data parallel groups. mem_efficient_linear (bool, optional): Replace torch.nn.functional.linear with an implementation that allows DeepSpeed to partition parameters. Defaults to ``True``. @@ -138,9 +150,24 @@ def __init__(self, if not dist.is_initialized(): dist.init_distributed() assert dist.is_initialized(), "Parameters cannot be scattered without initializing deepspeed.comm" + + if data_parallel_group is None: + ds_process_group = dist.get_world_group() + else: + ds_process_group = data_parallel_group + + if sequence_data_parallel_group is not None: + logger.warning( + f"sequence_data_parallel_group' is deprecated and will be removed. Use 'data_parallel_group' instead.") + if data_parallel_group is not None: + raise ValueError( + "Both 'data_parallel_group' and 'sequence_data_parallel_group' were specified. Please provide only one of these arguments." + ) + self.ds_process_group = sequence_data_parallel_group + self.mics_comm_groups = create_mics_comm_groups( _ds_config.mics_shard_size, - data_parallel_group, + ds_process_group, hierarchical_allgather=_ds_config.mics_hierarchial_params_gather, mpu=mpu) @@ -359,6 +386,7 @@ def __init__(self, offload_optimizer_config=None, offload_param_config=None, sub_group_size=1000000000000, + offload_ratio=0.0, mpu=None, clip_grad=0, gradient_accumulation_dtype=torch.float16, @@ -374,7 +402,7 @@ def __init__(self, dynamic_loss_args, verbose, contiguous_gradients, reduce_bucket_size, prefetch_bucket_size, max_reuse_distance, max_live_parameters, param_persistence_threshold, model_persistence_threshold, dp_process_group, reduce_scatter, overlap_comm, - offload_optimizer_config, offload_param_config, sub_group_size, mpu, clip_grad, + offload_optimizer_config, offload_param_config, sub_group_size, offload_ratio, mpu, clip_grad, gradient_accumulation_dtype, communication_data_type, postscale_gradients, gradient_predivide_factor, gradient_accumulation_steps, elastic_checkpoint, aio_config) first_param = next(module.parameters()) diff --git a/deepspeed/runtime/zero/offload_config.py b/deepspeed/runtime/zero/offload_config.py index b7adc13a0ea2..ca35d7a7d169 100644 --- a/deepspeed/runtime/zero/offload_config.py +++ b/deepspeed/runtime/zero/offload_config.py @@ -5,7 +5,9 @@ from enum import Enum from pathlib import Path -from deepspeed.pydantic_v1 import Field, validator +from pydantic import Field, model_validator +from typing import Optional + from deepspeed.runtime.config_utils import DeepSpeedConfigModel, pp_int @@ -25,7 +27,7 @@ class DeepSpeedZeroOffloadParamConfig(DeepSpeedConfigModel): `nvme`. """ - nvme_path: Path = None + nvme_path: Optional[Path] = None """ Filesystem path for NVMe device for parameter offloading. """ buffer_count: int = Field(5, ge=0) @@ -56,7 +58,7 @@ class DeepSpeedZeroOffloadOptimizerConfig(DeepSpeedConfigModel): `nvme`. Optimizer computation is offload to CPU regardless of device option. """ - nvme_path: Path = None + nvme_path: Optional[Path] = None """ Filesystem path for NVMe device for optimizer state offloading. """ buffer_count: int = Field(4, ge=0) @@ -88,10 +90,20 @@ class DeepSpeedZeroOffloadOptimizerConfig(DeepSpeedConfigModel): fast_init: bool = False """ Enable fast optimizer initialization when offloading to NVMe. """ - @validator("pipeline_read", "pipeline_write", always=True) - def set_pipeline(cls, field_value, values): - values["pipeline"] = field_value or values.get("pipeline", False) - return field_value - ratio: float = Field(1.0, ge=0.0, le=1.0) """ Percentage of offloaded optimizer states to CPU Adam. Only valid with ZeRO Stage 3.""" + + @model_validator(mode="after") + def set_pipeline(self): + pipeline = self.pipeline_read or self.pipeline_write + self.__dict__["pipeline"] = pipeline + return self + + +class OffloadStateTypeEnum(str, Enum): + """ Enum for internal buffer types """ + optim_states = "optim_states" + hp_params = "hp_params" + lp_params = "lp_params" + lp_grads = "lp_grads" + contiguous_grad_buffer = "contiguous_grad_buffer" diff --git a/deepspeed/runtime/zero/offload_states.py b/deepspeed/runtime/zero/offload_states.py new file mode 100644 index 000000000000..f521a11a7aa4 --- /dev/null +++ b/deepspeed/runtime/zero/offload_states.py @@ -0,0 +1,74 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from typing import Set +import torch + +from deepspeed.accelerator import get_accelerator +from deepspeed.runtime.zero.offload_config import OffloadStateTypeEnum + +from deepspeed.utils.tensor_fragment import safe_get_local_fp32_param, safe_get_local_optimizer_state + + +def _make_offload_state_key(key): + return f"{key}_offload_buffer" + + +def offload_adam_states(optimizer, device, pin_memory: bool = False, non_blocking: bool = False): + """Move optimizer states to device. Note that this assumes the state structure of DeepSpeed Adam.""" + + def move_key(state, key): + offload_buf_key = _make_offload_state_key(key) + if offload_buf_key not in state: + state[offload_buf_key] = torch.empty_like(state[key], device=device) + if pin_memory: + state[offload_buf_key] = get_accelerator().pin_memory(state[offload_buf_key]) + state[offload_buf_key].copy_(state[key], non_blocking=non_blocking) + state[key].data = state[offload_buf_key] + + for _, state in optimizer.state.items(): + if "exp_avg" in state: + move_key(state, "exp_avg") + if "exp_avg_sq" in state: + move_key(state, "exp_avg_sq") + + +def reload_adam_states(optimizer, device, non_blocking: bool = False): + """Move optimizer states to device. Note that this assumes the state structure of DeepSpeed Adam.""" + + def move_back_key(state, key): + state[key].data = state[_make_offload_state_key(key)].to(device, non_blocking=non_blocking) + + for _, state in optimizer.state.items(): + if "exp_avg" in state: + move_back_key(state, "exp_avg") + if "exp_avg_sq" in state: + move_back_key(state, "exp_avg_sq") + + +def get_state_devices(model, state: OffloadStateTypeEnum) -> Set[torch.device]: + """Retrieve the devices of the specified state of the model. + + Args: + model (DeepSpeedEngine): The model whose device allocations are to be checked. + state (OffloadStateTypeEnum): The specific state for which the devices should be retrieved. + + Returns: + Set[torch.device]: A set of devices of the specified state. + + """ + if state == OffloadStateTypeEnum.hp_params: + return set(safe_get_local_fp32_param(p).device for p in model.parameters()) + elif state == OffloadStateTypeEnum.lp_params: + return set(p.ds_tensor.device for p in model.parameters()) + elif state == OffloadStateTypeEnum.lp_grads: + return {model.optimizer.grad_partitions_flat_buffer.device} + elif state == OffloadStateTypeEnum.optim_states: + return set(safe_get_local_optimizer_state(p, "exp_avg").device for p in model.parameters()) | \ + set(safe_get_local_optimizer_state(p, "exp_avg_sq").device for p in model.parameters()) + elif state == OffloadStateTypeEnum.contiguous_grad_buffer: + if model.optimizer._DeepSpeedZeroOptimizer_Stage3__ipg_bucket_flat_buffer == None: + return {} + return {model.optimizer._DeepSpeedZeroOptimizer_Stage3__ipg_bucket_flat_buffer.device} diff --git a/deepspeed/runtime/zero/parameter_offload.py b/deepspeed/runtime/zero/parameter_offload.py index d1ecd9288878..2706d4474515 100644 --- a/deepspeed/runtime/zero/parameter_offload.py +++ b/deepspeed/runtime/zero/parameter_offload.py @@ -6,91 +6,19 @@ import sys import torch from collections import OrderedDict +from deepspeed.utils import z3_leaf_module, set_z3_leaf_module from deepspeed.runtime.utils import see_memory_usage +from deepspeed.runtime.zero.utils import apply_to_tensors_only, is_zero_param from deepspeed.runtime.zero.offload_config import OffloadDeviceEnum from deepspeed.runtime.zero.partition_parameters import _init_external_params from deepspeed.runtime.zero.partition_parameters import * from deepspeed.runtime.zero.partitioned_param_coordinator import PartitionedParameterCoordinator, InflightParamRegistry, iter_params -from deepspeed import comm as dist from deepspeed.accelerator import get_accelerator +from deepspeed import utils FWD_MODULE_STACK = list() -def is_builtin_type(obj): - # https://stackoverflow.com/a/17795199 - return obj.__class__.__module__ == '__builtin__' or obj.__class__.__module__ == "builtins" - - -def isinstance_namedtuple(obj: object) -> bool: - """ - Is this an instance of namedtuple/NamedTuple? - From: https://stackoverflow.com/a/62692640 - - Args: - obj (object): An object. - - Returns: - bool: True if namedtuple/NamedTuple else False. - """ - return isinstance(obj, tuple) and hasattr(obj, '_asdict') and hasattr(obj, '_fields') - - -# ensure we only warn once, otherwise every iteration will trigger a warning -warned = False - - -def _apply_to_tensors_only(module, functional, backward_function, outputs): - """ - Apply a torch.autograd.Function that calls a `backward_function` to every Tensor in `outputs`. - - Args: - module (torch.nn.Module): A torch module - functional (Type[torch.autograd.Function]): The function class to apply. - backward_function (Callable[[torch.nn.Module], None]): A backward_function to pass to - `functional.apply`. - outputs (Any): The output of `module`. - - Returns: - Any: The output of `module`. - """ - if isinstance(outputs, (tuple, list)): - touched_outputs = [] - for output in outputs: - touched_output = _apply_to_tensors_only(module, functional, backward_function, output) - touched_outputs.append(touched_output) - - if isinstance_namedtuple(outputs): - # namedtuples require a slightly different syntax. - return outputs.__class__(*touched_outputs) - - return outputs.__class__(touched_outputs) - elif isinstance(outputs, dict): - # apply inplace to avoid recreating dict inherited objects - for key in outputs.keys(): - outputs[key] = _apply_to_tensors_only(module, functional, backward_function, outputs[key]) - return outputs - - elif isinstance(outputs, torch.Tensor): - # this also applies to torch.Tensor's subclasses like torch.nn.parameter.Parameter - touched_outputs = functional.apply(module, backward_function, outputs) - - # restore zero param attributes if those get stripped by `backward_function` - if not is_zero_param(touched_outputs) and is_zero_param(outputs): - touched_outputs.ds_param_alias = outputs - return touched_outputs - else: - if not is_builtin_type(outputs): - global warned - if not warned and dist.get_rank() == 0: - logger.warning( - f"A module has unknown inputs or outputs type ({type(outputs)}) and the tensors embedded in it cannot be detected. " - "The ZeRO-3 hooks designed to trigger before or after backward pass of the module relies on knowing the input and " - "output tensors and therefore may not get triggered properly.") - warned = True - return outputs - - #for each tensor in outputs run the forward_function and register backward_function as hook def _apply_forward_and_backward_to_tensors_only(module, forward_function, backward_function, outputs): if type(outputs) is tuple: @@ -122,6 +50,10 @@ def __init__(self, parent_module, *args, **kwargs): self._parent_module = parent_module self._in_forward = False + def __reduce__(self): + r0, _, *r2 = super().__reduce__() + return (r0, (self._parent_module, )) + tuple(r2) + def __getitem__(self, key): param = super().__getitem__(key) @@ -129,7 +61,8 @@ def __getitem__(self, key): if param is None: return param - if param.ds_status == ZeroParamStatus.NOT_AVAILABLE: + # TODO: only weaken this check during compilation + if hasattr(param, "ds_status") and param.ds_status == ZeroParamStatus.NOT_AVAILABLE: if self._parent_module._parameters._in_forward: register_external_parameter(FWD_MODULE_STACK[-1], param) param.all_gather() @@ -150,54 +83,6 @@ def _inject_parameters(module, cls): module._parameters = new_param -class PreBackwardFunction(torch.autograd.Function): - - @staticmethod - def forward(ctx, module, pre_backward_function, outputs): - ctx.module = module - ctx.pre_backward_function = pre_backward_function - if not hasattr(module, "applied_pre_backward_ref_cnt"): - module.applied_pre_backward_ref_cnt = 0 - module.applied_pre_backward_ref_cnt += 1 - #print(f"After Forward: {ctx.module.__class__.__name__}") - outputs = outputs.detach() - return outputs - - @staticmethod - def backward(ctx, *args): - #print(f"Before Backward: {ctx.module.__class__.__name__}") - ctx.pre_backward_function(ctx.module) - return (None, None) + args - - -class PostBackwardFunction(torch.autograd.Function): - - @staticmethod - def forward(ctx, module, post_backward_function, output): - ctx.module = module - if output.requires_grad: - #TODO SOME TIMES post backward does not seem to be triggered debug in detail - #Should only cause increase in memory not correctness issue - #if output.grad_fn.__class__.__name__ == 'ViewBackward': - # ctx.view=True - # print(f"Warning view tensor for input to module : {module.__class__.__name__}. Backward hooks may not trigger properly") - #assert len(module.parameters(recurse=False)), "The input tensor to the module is a view, and autograd Function or register_hook is not triggered with view tensors." - #if module.ds_grads_remaining == 0: - # print(f"Before Forward: {ctx.module.__class__.__name__}") - module.ds_grads_remaining += 1 - ctx.post_backward_function = post_backward_function - output = output.detach() - return output - - @staticmethod - def backward(ctx, *args): - ctx.module.ds_grads_remaining = ctx.module.ds_grads_remaining - 1 - if ctx.module.ds_grads_remaining == 0: - ctx.post_backward_function(ctx.module) - #print(f"After Backward: {ctx.module.__class__.__name__}") - return (None, None) + args - - class DeepSpeedZeRoOffload(object): def __init__( @@ -217,6 +102,8 @@ def __init__( zero_param_parallel_group=None, zero_quantized_weights=False, zero_quantized_nontrainable_weights=False, + zero_module_granularity_threshold=0, + log_trace_cache_warnings=False, ): see_memory_usage("DeepSpeedZeRoOffload initialize [begin]", force=True) @@ -232,6 +119,7 @@ def __init__( self.zero_param_parallel_group = zero_param_parallel_group self.zero_quantized_weights = zero_quantized_weights self.zero_quantized_nontrainable_weights = zero_quantized_nontrainable_weights + self.log_trace_cache_warnings = log_trace_cache_warnings if offload_param_config is not None and offload_param_config.device != OffloadDeviceEnum.none: self.offload_device = offload_param_config.device @@ -249,7 +137,6 @@ def __init__( self.persistent_parameters = self.mark_persistent_parameters(self.param_numel_persistence_threshold, self.model_persistence_threshold) - self.param_coordinators = {} self._prefetch_bucket_sz = int(prefetch_bucket_size) self._max_reuse_distance_in_numel = int(max_reuse_distance) self._max_available_parameters_in_numel = int(max_live_parameters) @@ -257,14 +144,36 @@ def __init__( ) if overlap_comm else get_accelerator().default_stream() if not hasattr(module, "ds_inflight_param_registry"): - module.ds_inflight_param_registry = dict() - # we need two registries, one for training and one for eval. They will be used when creating PartitionedParameterCoordinator - module.ds_inflight_param_registry[True] = InflightParamRegistry() - module.ds_inflight_param_registry[False] = InflightParamRegistry() + module.ds_inflight_param_registry = InflightParamRegistry() self.__inflight_param_registry = module.ds_inflight_param_registry + self.fast_sharding_for_leaf_module = False + + if zero_module_granularity_threshold > 0: + self.min_granularity_value = sys.maxsize + self.min_granularity_layer = None + self.granularity_info = set() + self.z3_leaf_layers = [] + self._set_z3_leaf_modules_by_threshold(module, zero_module_granularity_threshold) + self.fast_sharding_for_leaf_module = True + + self.param_coordinator = PartitionedParameterCoordinator( + prefetch_bucket_sz=self._prefetch_bucket_sz, + max_reuse_distance_in_numel=self._max_reuse_distance_in_numel, + max_available_parameters_in_numel=self._max_available_parameters_in_numel, + allgather_stream=self.__allgather_stream, + inflight_param_registry=self.__inflight_param_registry, + prefetch_nvme=self.offload_device == OffloadDeviceEnum.nvme, + timers=self.timers, + zero_quantized_weights=self.zero_quantized_weights, + zero_quantized_nontrainable_weights=self.zero_quantized_nontrainable_weights, + fast_sharding_for_leaf_module=self.fast_sharding_for_leaf_module, + log_trace_cache_warnings=self.log_trace_cache_warnings, + ) + self.forward_hooks = [] self.backward_hooks = [] + self.setup_zero_stage3_hooks() print_rank_0( f'Created module hooks: forward = {len(self.forward_hooks)}, backward = {len(self.backward_hooks)}', @@ -277,26 +186,13 @@ def partition_all_parameters(self): """Partitioning Parameters that were not partitioned usually if parameters of modules whose input parameters do not require grad computation do not trigger post call and will therefore will remain unpartitioned""" - self.get_param_coordinator(training=self.module.training).release_and_reset_all(self.module) + self.get_param_coordinator().release_and_reset_all(self.module) for param in iter_params(self.module, recurse=True): if param.ds_status != ZeroParamStatus.NOT_AVAILABLE: raise RuntimeError(f"{param.ds_summary()} expected to be released") - def get_param_coordinator(self, training): - if not training in self.param_coordinators: - self.param_coordinators[training] = PartitionedParameterCoordinator( - prefetch_bucket_sz=self._prefetch_bucket_sz, - max_reuse_distance_in_numel=self._max_reuse_distance_in_numel, - max_available_parameters_in_numel=self._max_available_parameters_in_numel, - allgather_stream=self.__allgather_stream, - inflight_param_registry=self.__inflight_param_registry[training], - prefetch_nvme=self.offload_device == OffloadDeviceEnum.nvme, - timers=self.timers, - zero_quantized_weights=self.zero_quantized_weights, - zero_quantized_nontrainable_weights=self.zero_quantized_nontrainable_weights, - ) - - return self.param_coordinators[training] + def get_param_coordinator(self): + return self.param_coordinator def empty_partition_cache(self): self.partition_all_parameters() @@ -344,14 +240,14 @@ def setup_zero_stage3_hooks(self): #reset step if in inference mode @instrument_w_nvtx - def _end_of_forward_hook(module, *args): + def _start_of_forward_hook(module, *args): + + self.get_param_coordinator().reset_step() - if not torch._C.is_grad_enabled(): - self.get_param_coordinator(training=False).reset_step() + self.module.register_forward_pre_hook(_start_of_forward_hook) #likely one of them should be enough but just to be safe - self._register_hooks_recursively(self.module) - self.module.register_forward_hook(_end_of_forward_hook) + self._register_deepspeed_module(self.module) # Add top module to stack trace global FWD_MODULE_STACK @@ -377,15 +273,19 @@ def mark_persistent_parameters(self, param_threshold, model_threshold): return persistent_params - def _register_hooks_recursively(self, module, count=[0]): + def _register_deepspeed_module(self, module, count=[0]): my_count = count[0] - module.id = my_count + module.ds_id = my_count - #print(f"{module.__class__} : {module.id}") + #print(f"{module.__class__} : {module.ds_id}") - for child in module.children(): - count[0] = count[0] + 1 - self._register_hooks_recursively(child, count=count) + if z3_leaf_module(module): + for param in module.parameters(): + param.ds_z3_leaf_module = module + else: + for child in module.children(): + count[0] = count[0] + 1 + self._register_deepspeed_module(child, count=count) @instrument_w_nvtx def _pre_forward_module_hook(module, *args): @@ -393,6 +293,7 @@ def _pre_forward_module_hook(module, *args): @instrument_w_nvtx def _post_forward_module_hook(module, input, output): + global FWD_MODULE_STACK FWD_MODULE_STACK.pop() if output is None: @@ -433,20 +334,16 @@ def _post_forward_module_hook(module, input, output): self.post_sub_module_forward_function(module) - def _pre_backward_module_hook(module, inputs, output): + def _bwd_hook_unexpected_inputs_msg(value): + return f"A module has unknown inputs or outputs type ({type(value)}) and the tensors embedded in it cannot be detected. " \ + "The ZeRO-3 hooks designed to trigger before or after backward pass of the module relies on knowing the input and " \ + "output tensors and therefore may not get triggered properly." - @instrument_w_nvtx - def _run_before_backward_function(sub_module): - # some models (e.g. Albert) may run multiple forwards on the same layer in a loop - # before doing backwards, so each backward will need a pre-fetch - using reference - # counting to support this scenario - #print(f"COUNTER before: {sub_module.applied_pre_backward_ref_cnt}") - if sub_module.applied_pre_backward_ref_cnt > 0: - self.pre_sub_module_backward_function(sub_module) - sub_module.applied_pre_backward_ref_cnt -= 1 - #print(f"COUNTER after: {sub_module.applied_pre_backward_ref_cnt}") + def _pre_backward_module_hook(module, inputs, output): - return _apply_to_tensors_only(module, PreBackwardFunction, _run_before_backward_function, output) + return apply_to_tensors_only(module.pre_bwd_fn.apply, + output, + warning_msg_fn=_bwd_hook_unexpected_inputs_msg) #This is an alternate to doing _post_backward_module_hook #it uses tensor.register_hook instead of using torch.autograd.Function @@ -469,14 +366,12 @@ def _run_before_forward_function(input): _run_after_backward_hook, inputs) def _post_backward_module_hook(module, inputs): - module.ds_grads_remaining = 0 - - @instrument_w_nvtx - def _run_after_backward_function(sub_module): - if sub_module.ds_grads_remaining == 0: - self.post_sub_module_backward_function(sub_module) + if not hasattr(module, "ds_grads_remaining"): + module.ds_grads_remaining = 0 - return _apply_to_tensors_only(module, PostBackwardFunction, _run_after_backward_function, inputs) + return apply_to_tensors_only(module.post_bwd_fn.apply, + inputs, + warning_msg_fn=_bwd_hook_unexpected_inputs_msg) # Pre forward hook self.forward_hooks.append(module.register_forward_pre_hook(_pre_forward_module_hook)) @@ -485,42 +380,111 @@ def _run_after_backward_function(sub_module): self.forward_hooks.append(module.register_forward_hook(_post_forward_module_hook)) # Pre backward hook + if not hasattr(module, "pre_bwd_fn"): + + @instrument_w_nvtx + def _run_before_backward_function(sub_module): + # some models (e.g. Albert) may run multiple forwards on the same layer in a loop + # before doing backwards, so each backward will need a pre-fetch - using reference + # counting to support this scenario + #print(f"COUNTER before: {sub_module.applied_pre_backward_ref_cnt}") + if sub_module.applied_pre_backward_ref_cnt > 0: + self.pre_sub_module_backward_function(sub_module) + sub_module.applied_pre_backward_ref_cnt -= 1 + #print(f"COUNTER after: {sub_module.applied_pre_backward_ref_cnt}") + + class PreBackwardFunctionForModule(torch.autograd.Function): + + @staticmethod + def forward(ctx, outputs): + # Capture `module` and _run_before_backward_function + ctx.module = module + ctx.pre_backward_function = _run_before_backward_function + if not hasattr(ctx.module, "applied_pre_backward_ref_cnt"): + ctx.module.applied_pre_backward_ref_cnt = 0 + ctx.module.applied_pre_backward_ref_cnt += 1 + outputs = outputs.detach() + return outputs + + @staticmethod + def backward(ctx, *args): + ctx.pre_backward_function(ctx.module) + return args + + module.pre_bwd_fn = PreBackwardFunctionForModule + self.backward_hooks.append(module.register_forward_hook(_pre_backward_module_hook)) # post backward hook + if not hasattr(module, "post_bwd_fn"): + + @instrument_w_nvtx + def _run_after_backward_function(sub_module): + if sub_module.ds_grads_remaining == 0: + self.post_sub_module_backward_function(sub_module) + + class PostBackwardFunctionModule(torch.autograd.Function): + + @staticmethod + def forward(ctx, output): + ctx.module = module + if output.requires_grad: + #TODO SOME TIMES post backward does not seem to be triggered debug in detail + #Should only cause increase in memory not correctness issue + #if output.grad_fn.__class__.__name__ == 'ViewBackward': + # ctx.view=True + # print(f"Warning view tensor for input to module : {module.__class__.__name__}. Backward hooks may not trigger properly") + #assert len(module.parameters(recurse=False)), "The input tensor to the module is a view, and autograd Function or register_hook is not triggered with view tensors." + #if module.ds_grads_remaining == 0: + # print(f"Before Forward: {ctx.module.__class__.__name__}") + module.ds_grads_remaining += 1 + ctx.post_backward_function = _run_after_backward_function + output = output.detach() + return output + + @staticmethod + def backward(ctx, *args): + ctx.module.ds_grads_remaining = ctx.module.ds_grads_remaining - 1 + if ctx.module.ds_grads_remaining == 0: + ctx.post_backward_function(ctx.module) + return args + + module.post_bwd_fn = PostBackwardFunctionModule + self.backward_hooks.append(module.register_forward_pre_hook(_post_backward_module_hook)) + @torch.no_grad() def pre_sub_module_forward_function(self, sub_module): see_memory_usage(f"Before sub module function {sub_module.__class__.__name__}", force=False) - prev_grad_state = torch.is_grad_enabled( - ) # we don't want to enable grad for sub modules fetching, yet the subfunction need to know if grad is enabled - torch.set_grad_enabled(False) + global FWD_MODULE_STACK FWD_MODULE_STACK.append(sub_module) - param_coordinator = self.get_param_coordinator(training=sub_module.training) + param_coordinator = self.get_param_coordinator() param_coordinator.trace_prologue(sub_module) if param_coordinator.is_record_trace(): param_coordinator.record_module(sub_module) - param_coordinator.fetch_sub_module(sub_module, forward=prev_grad_state) - torch.set_grad_enabled(prev_grad_state) + param_coordinator.fetch_sub_module(sub_module, forward=True) + see_memory_usage(f"Before sub module function {sub_module.__class__.__name__} after fetch", force=False) @torch.no_grad() def post_sub_module_forward_function(self, sub_module): - see_memory_usage(f"After sub module function {sub_module.__class__.__name__} {sub_module.id} before release", - force=False) + see_memory_usage( + f"After sub module function {sub_module.__class__.__name__} {sub_module.ds_id} before release", + force=False) - param_coordinator = self.get_param_coordinator(training=sub_module.training) - param_coordinator.release_sub_module(sub_module, backward=False) + param_coordinator = self.get_param_coordinator() + param_coordinator.release_sub_module(sub_module) - see_memory_usage(f"After sub module function {sub_module.__class__.__name__} {sub_module.id} after release", - force=False) + see_memory_usage( + f"After sub module function {sub_module.__class__.__name__} {sub_module.ds_id} after release", + force=False) @torch.no_grad() def pre_sub_module_backward_function(self, sub_module): - assert sub_module.training, "backward pass is invalid for module in evaluation mode" - param_coordinator = self.get_param_coordinator(training=True) + # assert sub_module.training, "backward pass is invalid for module in evaluation mode" + param_coordinator = self.get_param_coordinator() param_coordinator.trace_prologue(sub_module) if param_coordinator.is_record_trace(): param_coordinator.record_module(sub_module) @@ -528,13 +492,92 @@ def pre_sub_module_backward_function(self, sub_module): @torch.no_grad() def post_sub_module_backward_function(self, sub_module): - assert sub_module.training, "backward pass is invalid for module in evaluation mode" + # assert sub_module.training, "backward pass is invalid for module in evaluation mode" see_memory_usage( - f"After sub module backward function {sub_module.__class__.__name__} {sub_module.id} before release", + f"After sub module backward function {sub_module.__class__.__name__} {sub_module.ds_id} before release", force=False) - self.get_param_coordinator(training=True).release_sub_module(sub_module, backward=True) + self.get_param_coordinator().release_sub_module(sub_module) see_memory_usage( - f"After sub module backward function {sub_module.__class__.__name__} {sub_module.id} after release", + f"After sub module backward function {sub_module.__class__.__name__} {sub_module.ds_id} after release", force=False) + + def _set_z3_leaf_modules_by_threshold(self, module, zero_module_granularity_threshold): + + self._get_granularity_recursively(module) + print_rank_0(f"{'MODULE NAME'.ljust(30)}|{'GRANULARITY VALUE'.rjust(20)}", force=True) + for granularity in self.granularity_info: + print_rank_0(granularity, force=True) + + if self.min_granularity_value <= zero_module_granularity_threshold: + self._set_leaf_by_threshold_preorder(module, zero_module_granularity_threshold) + utils.logger.info( + f"z3_leaf_module was set by stage3_module_granularity_threshold:{zero_module_granularity_threshold}") + for layer in self.z3_leaf_layers: + print_rank_0(f"{layer.__class__.__name__}:{layer.ds_model_granularity}", force=True) + else: + utils.logger.warning( + f"The smallest module granularity is [{self.min_granularity_layer}:{self.min_granularity_value}]. "\ + f"To make stage3_module_granularity_threshold effective, you need to set stage3_module_granularity_threshold >= {self.min_granularity_value}. "\ + f"Current Value:{zero_module_granularity_threshold}" + ) + + def _get_granularity_recursively(self, module): + """This function is used to recursively obtain the granularity of each module.""" + + # avoid setting as leaf for particularly large models, even if the granularity is very small + # an oversized leaf module increases the number of live parameters, introducing memory overhead + Z3_MAX_LEAF_SIZE = 1e9 + + if not list(module.parameters()): + # skip Modules without parameters, such as GELU, etc. + module.ds_model_granularity = sys.maxsize + return 0, 0 + + num_layers = 0 + num_params = 0 + num_params += sum(p.ds_numel for p in module.parameters(recurse=False)) + if not any(module.children()): + # torch leaf module + module.ds_model_granularity = sys.maxsize + return 1, num_params + + for child in module.children(): + layers_in_child, params_in_child = self._get_granularity_recursively(child) + num_layers += layers_in_child + num_params += params_in_child + + if module.__class__.__name__ in torch.nn.modules.container.__all__: + # Do not set container modules like ModuleList as leaf modules + # as this will prevent hooks from being set on their children + # and they may do not invoke the forward method + module.ds_model_granularity = sys.maxsize + return num_layers, num_params + + num_layers += 1 + ds_model_granularity = (num_params // num_layers) if num_params <= Z3_MAX_LEAF_SIZE else sys.maxsize + module.ds_model_granularity = ds_model_granularity + # module.ds_model_num_layers = num_layers + # module.ds_model_num_params = num_params + if self.min_granularity_value > ds_model_granularity: + self.min_granularity_value = ds_model_granularity + self.min_granularity_layer = module.__class__.__name__ + self.granularity_info.add(f"{module.__class__.__name__.ljust(30)}|{str(ds_model_granularity).rjust(20)}") + + return num_layers, num_params + + def _set_leaf_by_threshold_preorder(self, module, granularity_treshhold): + '''Set modules as leaf modules based on the threshold, prioritizing parent nodes.''' + + num_params = sum(p.ds_numel for p in module.parameters()) + if num_params == 0: + # skip Modules without parameters, such as GELU, etc. + return + if module.ds_model_granularity <= granularity_treshhold: + set_z3_leaf_module(module, True) + self.z3_leaf_layers.append(module) + return + + for sub_module in module.children(): + self._set_leaf_by_threshold_preorder(sub_module, granularity_treshhold) diff --git a/deepspeed/runtime/zero/partition_parameters.py b/deepspeed/runtime/zero/partition_parameters.py index c0fcb8d34b80..db03a4b86134 100755 --- a/deepspeed/runtime/zero/partition_parameters.py +++ b/deepspeed/runtime/zero/partition_parameters.py @@ -23,9 +23,9 @@ from deepspeed.utils import groups import deepspeed -from ..utils import see_memory_usage +from ..utils import see_memory_usage, get_only_unique_item from deepspeed.runtime.zero.config import DeepSpeedZeroConfig -from deepspeed.runtime.zero.utils import assert_ints_same_as_other_ranks +from deepspeed.runtime.zero.utils import assert_ints_same_as_other_ranks, is_zero_param from deepspeed.runtime.zero.offload_config import OffloadDeviceEnum from deepspeed.runtime.config_utils import get_config_default from deepspeed.utils import instrument_w_nvtx, logger @@ -55,8 +55,9 @@ def __init__(self, param: Parameter) -> None: non_blocking=True).view(param.ds_shape) self.__param = param - def wait(self) -> None: - get_accelerator().current_stream().synchronize() + def wait(self, **kwargs) -> None: + if not get_accelerator().resolves_data_dependency(): + get_accelerator().current_stream().synchronize() self.__param.ds_status = ZeroParamStatus.AVAILABLE @@ -77,11 +78,12 @@ def __init__(self, params: List[Parameter]) -> None: non_blocking=True).view(param.ds_shape) @instrument_w_nvtx - def wait(self) -> None: + def wait(self, **kwargs) -> None: if self.__complete: return - get_accelerator().current_stream().synchronize() + if not get_accelerator().resolves_data_dependency(): + get_accelerator().current_stream().synchronize() for param in self.__params: assert param.ds_status == ZeroParamStatus.INFLIGHT, f"expected param {param.ds_summary()} to be inflight" param.ds_status = ZeroParamStatus.AVAILABLE @@ -109,12 +111,6 @@ def debug_rank0(msg: str) -> None: logger.debug(msg) -def is_zero_param(parameter): - if not torch.is_tensor(parameter): - return False - return hasattr(parameter, 'ds_id') - - def _init_external_params(module): if not hasattr(module, '_external_params'): module._external_params = {} @@ -266,7 +262,7 @@ def new_tensor(cls, *args, **kwargs) -> Tensor: # https://stackoverflow.com/a/63851681/9201239 -def get_all_subclasses(cls): +def get_all_subclasses(cls, include_root=True): subclass_list = [] def recurse(cl): @@ -276,7 +272,10 @@ def recurse(cl): recurse(cls) - return set(subclass_list) + ret = set(subclass_list) + if include_root: + ret.add(cls) + return ret @instrument_w_nvtx @@ -312,6 +311,7 @@ def __init__(self, enabled=True, mem_efficient_linear=True, ds_config=None, dtyp torch.half, torch.bfloat16, torch.float ], f"Invalid data type {self.dtype}, allowed values are [torch.half, torch.bfloat16, torch.float]" self.wrapped_cls = set() + self.skip_init_depth = 0 self.quantized_initialization = None if ds_config is not None and ds_config.weight_quantization_config and ds_config.weight_quantization_config.quantized_initialization: @@ -368,7 +368,8 @@ def _set_dtype(self, ds_config, dtype): else: self.dtype = torch.float else: - self.dtype = dtype or torch.half + self.dtype = dtype or torch.float16 if get_accelerator().is_fp16_supported( + ) else torch.bfloat16 if get_accelerator().is_bf16_supported else torch.float32 def patch_init_and_builtins(self): @@ -435,6 +436,53 @@ def wrapped_apply(module: Module, fn_to_apply: Callable) -> None: return wrapped_apply + def hook_for_skip_init(module): + # this function is intended for handling the logic of torch.nn.utils.skip_init + # skip_init:module_cls(*args, **kwargs).to_empty(device=final_device), where kwargs['device']='meta' + # the function call occurs between module_cls(*args, **kwargs) and to_empty(device=final_device). + def partition_after_empty_init(f): + + @functools.wraps(f) + def wrapper(module, *args, **kwargs): + _module = f(module, *args, **kwargs) + # here is the post-hook for module.apply(empty_like...) + # after module.apply(empty_like...), the module has completed its empty init on real device + # since skip_init won't involve any computations or weight adjustments, we can directly utilize post_init + self._post_init_method(_module) + return _module + + return wrapper + + def post_wrapper_to_empty(f): + # append some wrapper restoration after to_empty() call + @functools.wraps(f) + def wrapper(*args, **kwargs): + res = f(*args, **kwargs) + # restore _apply hook + for subclass in get_all_subclasses(torch.nn.modules.module.Module): + _disable_class_apply(subclass) + # self restore + module.to_empty = f + return res + + return wrapper + + def _enable_class_apply(cls): + if '_apply' in cls.__dict__: + cls._old_apply_of_skip_init_hook = cls._apply + cls._apply = partition_after_empty_init(cls._apply) + + def _disable_class_apply(cls): + if hasattr(cls, '_old_apply_of_skip_init_hook'): + cls._apply = cls._old_apply_of_skip_init_hook + + # add hooks for to_empty: apply_(empty_like) + for subclass in get_all_subclasses(torch.nn.modules.module.Module): + _enable_class_apply(subclass) + + # add a restore hook when exiting skip_init + module.to_empty = post_wrapper_to_empty(module.to_empty) + def partition_after(f): @functools.wraps(f) @@ -456,26 +504,37 @@ def wrapper(module, *args, **kwargs): is_child_module = True setattr(module, "_ds_child_entered", True) - f(module, *args, **kwargs) + init_on_meta = 'device' in kwargs and kwargs['device'] == 'meta' + if init_on_meta: + self.skip_init_depth += 1 + f(module, *args, **kwargs) + if init_on_meta and self.skip_init_depth == 1: + # check and handle the logic of empty_init + hook_for_skip_init(module) if is_child_module: # child's __init__ is done, now we can run a single post_init on the child object delattr(module, "_ds_child_entered") print_rank_0(f'Running post_init for {module.__class__.__name__}', force=False) - self._post_init_method(module) + if self.skip_init_depth == 0: + self._post_init_method(module) print_rank_0(f'After initializing followed by post init for {module.__class__.__name__}', force=False) + if init_on_meta: + self.skip_init_depth -= 1 return wrapper def _enable_class(cls): - cls._old_init = cls.__init__ - cls.__init__ = partition_after(cls.__init__) + if '__init__' in cls.__dict__: + cls._old_init = cls.__init__ + cls.__init__ = partition_after(cls.__init__) def _init_subclass(cls, **kwargs): - cls._old_init = cls.__init__ - cls.__init__ = partition_after(cls.__init__) + if '__init__' in cls.__dict__: + cls._old_init = cls.__init__ + cls.__init__ = partition_after(cls.__init__) # Replace .__init__() for all existing subclasses of torch.nn.Module recursively for subclass in get_all_subclasses(torch.nn.modules.module.Module): @@ -512,11 +571,11 @@ def _init_subclass(cls, **kwargs): self.patched = True def unpatch_init_and_builtins(self): - if self.patched: def _disable_class(cls): - cls.__init__ = cls._old_init + if hasattr(cls, '_old_init'): + cls.__init__ = cls._old_init for subclass in get_all_subclasses(torch.nn.modules.module.Module): _disable_class(subclass) @@ -580,7 +639,7 @@ def __init__(self, handle, param: Parameter, quantization=None) -> None: self.__param = param self.__quantization = quantization - def wait(self) -> None: + def wait(self, handle_dependency=True) -> None: instrument_w_nvtx(self.__handle.wait)() if self.__quantization: instrument_w_nvtx(self.__quantization.quant_handle.wait)() @@ -591,6 +650,8 @@ def wait(self) -> None: class AllGatherCoalescedHandle: + data_buffer = [] + def __init__( self, allgather_handle, @@ -598,7 +659,6 @@ def __init__( partitions: List[Tensor], world_size: int, use_secondary_tensor=False, - forward=False, quantization=None, ) -> None: self.allgather_handle = allgather_handle @@ -606,7 +666,6 @@ def __init__( self.partitions = partitions self.world_size = world_size self.use_secondary_tensor = use_secondary_tensor - self.forward = forward self.complete = False self.quantization = quantization @@ -615,7 +674,7 @@ def __init__( raise RuntimeError(f"expected param {param.ds_summary()} to not be available") @instrument_w_nvtx - def wait(self) -> None: + def wait(self, handle_dependency=True) -> None: if self.complete: return @@ -637,7 +696,7 @@ def wait(self) -> None: assert param.ds_status == ZeroParamStatus.INFLIGHT, f"expected param {param.ds_summary()} to be inflight" partitions: List[Tensor] = [] ds_tensor_numel = param.ds_tensor.ds_numel - if self.use_secondary_tensor and not self.forward: + if self.use_secondary_tensor: ds_tensor_numel *= param.ds_secondary_tensor_num_of_groups for rank in range(self.world_size): param_start = rank * ds_tensor_numel @@ -647,14 +706,20 @@ def wait(self) -> None: partitions.append(part_to_copy) param.data = instrument_w_nvtx(torch.cat)(partitions).view(param.ds_shape) param.ds_status = ZeroParamStatus.AVAILABLE - - for part_to_copy in partitions: - if not get_accelerator().is_synchronized_device(): + if not get_accelerator().is_synchronized_device() and handle_dependency: + for part_to_copy in partitions: part_to_copy.record_stream(get_accelerator().current_stream()) param_offset += ds_tensor_numel self.complete = True + if not get_accelerator().is_synchronized_device() and not handle_dependency: + # if the device needs to handle dependencies and opts for explicit processing outside the function. + AllGatherCoalescedHandle.data_buffer.append(partitions) + + @staticmethod + def free_buffer(): + AllGatherCoalescedHandle.data_buffer = [] class MultipleAllGatherHandles: @@ -662,9 +727,34 @@ class MultipleAllGatherHandles: def __init__(self, handles: List[AllGatherCoalescedHandle]): self.handles = handles - def wait(self) -> None: + def wait(self, handle_dependency=True) -> None: for handle in self.handles: - handle.wait() + handle.wait(handle_dependency) + + +class AllReduceCoalescedHandle: + + def __init__(self, handle, params: List[Parameter]) -> None: + self.handle = handle + self.params = params + self.complete = False + + for param in self.params: + if param.ds_status != ZeroParamStatus.INFLIGHT: + raise RuntimeError(f"expected param {param.ds_summary()} to not be available") + + @instrument_w_nvtx + def wait(self) -> None: + if self.complete: + return + + instrument_w_nvtx(self.handle.wait)() + + for param in self.params: + assert param.ds_status == ZeroParamStatus.INFLIGHT, f"expected param {param.ds_summary()} to be inflight" + param.ds_status = ZeroParamStatus.AVAILABLE + + self.complete = True class QuantizationInfo: @@ -740,24 +830,22 @@ class Init(InsertPostInitMethodToModuleSubClasses): apply_param_persistence = False override_module_apply = get_config_default(DeepSpeedZeroConfig, "override_module_apply") - def __init__( - self, - module=None, - data_parallel_group=None, - mem_efficient_linear=True, - remote_device=None, - pin_memory=False, - config_dict_or_path=None, - config=None, - enabled=True, - dtype=None, - mpu=None, - zero_param_parallel_group=None, - zero_quantized_weights=False, - zero_quantized_nontrainable_weights=False, - sequence_data_parallel_group=None, - param_swapper=None, - ): + def __init__(self, + module=None, + data_parallel_group=None, + mem_efficient_linear=True, + remote_device=None, + pin_memory=False, + config_dict_or_path=None, + config=None, + enabled=True, + dtype=None, + mpu=None, + zero_param_parallel_group=None, + zero_quantized_weights=False, + zero_quantized_nontrainable_weights=False, + sequence_data_parallel_group=None, + param_swapper=None): """A context to enable massive model construction for training with ZeRO-3. Models are automatically partitioned (or, sharded) across the system and converted to half precision. @@ -767,6 +855,8 @@ def __init__( if it was constructed in the context. data_parallel_group (``deepspeed.comm`` process group, optional): The group of processes to partition among. Defaults to all processes. + Synonymous with sequence data parallel group for param partitioning + across both sequence and data parallel groups. mem_efficient_linear (bool, optional): Replace torch.nn.functional.linear with an implementation that allows DeepSpeed to partition parameters. Defaults to ``True``. @@ -854,27 +944,30 @@ def __init__( """ if config is not None: config_dict_or_path = config - logger.warning( - f'zero.Init: the `config` argument is deprecated. Please use `config_dict_or_path` instead.') + logger.warning('zero.Init: the `config` argument is deprecated. Please use `config_dict_or_path` instead.') _ds_config = deepspeed.runtime.config.DeepSpeedConfig(config_dict_or_path, mpu) if config_dict_or_path is not None else None if _ds_config is not None: mem_efficient_linear = _ds_config.zero_config.memory_efficient_linear + super().__init__(enabled=enabled, mem_efficient_linear=mem_efficient_linear, ds_config=_ds_config, dtype=dtype) if not dist.is_initialized(): init_distributed() assert dist.is_initialized(), "Parameters cannot be scattered without initializing deepspeed.comm" - if data_parallel_group is None and sequence_data_parallel_group is None: + if data_parallel_group is None: self.ds_process_group = dist.get_world_group() - elif sequence_data_parallel_group is not None: - self.ds_process_group = sequence_data_parallel_group - elif data_parallel_group is not None: + else: self.ds_process_group = data_parallel_group - else: # both given - raise ValueError( - "Both 'data_parallel_group' and 'sequence_data_parallel_group' were specified. Please provide only one of these arguments." - ) + + if sequence_data_parallel_group is not None: + logger.warning( + f"sequence_data_parallel_group' is deprecated and will be removed. Use 'data_parallel_group' instead.") + if data_parallel_group is not None: + raise ValueError( + "Both 'data_parallel_group' and 'sequence_data_parallel_group' were specified. Please provide only one of these arguments." + ) + self.ds_process_group = sequence_data_parallel_group self.rank = dist.get_rank(group=self.ds_process_group) self.dp_world_size = dist.get_world_size(group=self.ds_process_group) @@ -892,7 +985,7 @@ def __init__( self.num_ranks_in_param_group = groups._get_zero_param_intra_parallel_group_world_size() self.num_param_groups = int(self.dp_world_size / self.num_ranks_in_param_group) self.rank_in_group = groups._get_zero_param_intra_parallel_rank_in_mygroup() - print_rank_0(f"hpZeRO group size? {self.num_ranks_in_param_group}", force=True) + print_rank_0(f"hpZeRO group size: {self.num_ranks_in_param_group}", force=True) logger.debug( "hpZeRO partition parameter my rank in world {} my rank in group {} ranks in my param partition group: {} " @@ -945,6 +1038,11 @@ def __init__( if not self.use_all_gather_into_tensor: logger.info(f"all_gather_into_tensor API is not available in torch {torch.__version__}") + self.use_all_reduce_for_fetch_params = get_config_default(DeepSpeedZeroConfig, + "use_all_reduce_for_fetch_params") + if _ds_config is not None: + self.use_all_reduce_for_fetch_params = _ds_config.zero_config.use_all_reduce_for_fetch_params + def _update_persist_config(self, ds_config): Init.apply_param_persistence = True Init.param_persistence_threshold = ds_config.zero_config.param_persistence_threshold @@ -953,9 +1051,10 @@ def _update_persist_config(self, ds_config): def _zero_init_param(self, param): self._convert_to_deepspeed_param(param) if dist.get_world_group() == self.get_dp_process_group(): - dist.broadcast(param, 0, self.get_dp_process_group()) + dist.broadcast(param.data, 0, self.get_dp_process_group()) else: - dist.broadcast(param, dist.get_global_rank(self.get_dp_process_group(), 0), self.get_dp_process_group()) + dist.broadcast(param.data, dist.get_global_rank(self.get_dp_process_group(), 0), + self.get_dp_process_group()) param.partition() def _convert_to_zero_parameters(self, param_list): @@ -1061,10 +1160,12 @@ def all_gather(param_list=None, async_op=False, hierarchy=0): param_list = [cls] return self._all_gather(param_list, async_op=async_op, hierarchy=hierarchy) - def _all_gather_dtype(dtype, params, forward, world_size, rank_in_group, ds_process_group): + def _all_gather_dtype(dtype, params, world_size, rank_in_group, ds_process_group): partition_sz = sum(p.ds_tensor.ds_numel for p in params) - if params[0].ds_secondary_tensor is not None and not forward: + use_secondary_tensor = params[0].ds_secondary_tensor is not None + + if use_secondary_tensor: partition_sz = sum(p.ds_tensor.ds_numel * p.ds_secondary_tensor_num_of_groups for p in params) flat_tensor = torch.empty(partition_sz * world_size, @@ -1076,13 +1177,11 @@ def _all_gather_dtype(dtype, params, forward, world_size, rank_in_group, ds_proc for i in range(world_size): partitions.append(flat_tensor.narrow(0, partition_sz * i, partition_sz)) - if params[0].ds_secondary_tensor is not None and not forward: - use_secondary_tensor = True + if use_secondary_tensor: instrument_w_nvtx( torch.cat)([p.ds_secondary_tensor.to(get_accelerator().current_device_name()) for p in params], out=partitions[rank_in_group]) else: - use_secondary_tensor = False instrument_w_nvtx(torch.cat)([p.ds_tensor.to(get_accelerator().current_device_name()) for p in params], out=partitions[rank_in_group]) handle = _dist_allgather_fn(partitions[rank_in_group], flat_tensor, ds_process_group) @@ -1094,12 +1193,10 @@ def _all_gather_dtype(dtype, params, forward, world_size, rank_in_group, ds_proc partitions=partitions, world_size=world_size, use_secondary_tensor=use_secondary_tensor, - forward=forward, ) @instrument_w_nvtx def all_gather_coalesced(params: Iterable[Parameter], - forward: bool = True, safe_mode: bool = False, quantize: bool = False) -> AllGatherCoalescedHandle: @@ -1118,8 +1215,8 @@ def all_gather_coalesced(params: Iterable[Parameter], ds_process_group = self.ds_process_group rank_in_group = self.rank world_size = self.dp_world_size - use_secondary_tensor = False - if self.zero_param_process_group and not forward: + use_secondary_tensor = params[0].ds_secondary_tensor is not None + if self.zero_param_process_group and use_secondary_tensor: ds_process_group = self.zero_param_process_group #intragroup rank_in_group = self.rank_in_group world_size = self.num_ranks_in_param_group @@ -1147,12 +1244,12 @@ def all_gather_coalesced(params: Iterable[Parameter], if len(params) == 1: # have an opportunity to avoid some intermediate memory allocations - param, = params + param = params[0] buffer_size = math.ceil(param.ds_numel / world_size) * world_size - if not forward and param.ds_secondary_tensor is not None: + if use_secondary_tensor: buffer_size = param.ds_secondary_tensor.shape[0] * world_size #make sure out is appropriately sized - param_ds_tensor = param.ds_secondary_tensor if not forward and param.ds_secondary_tensor is not None else param.ds_tensor + param_ds_tensor = param.ds_secondary_tensor if use_secondary_tensor else param.ds_tensor param_buffer = torch.empty( buffer_size, dtype=param_ds_tensor.dtype if not quantize else torch.int8, @@ -1193,86 +1290,107 @@ def all_gather_coalesced(params: Iterable[Parameter], return AllGatherHandle(handle, param, quantization=quant_info) else: - if not quantize: - dtype_params = defaultdict(list) - for p in params: - dtype_params[p.ds_tensor.dtype].append(p) - handles = [] - for dtype, params in dtype_params.items(): - handles.append( - _all_gather_dtype(dtype, params, forward, world_size, rank_in_group, ds_process_group)) + if self.use_all_reduce_for_fetch_params and not quantize and not use_secondary_tensor: + # Use all_reduce instead of all_gather to fetch the module params + flat_buffer_size = sum(p.ds_numel_aligned for p in params) + flat_tensor = torch.zeros(flat_buffer_size, + dtype=get_only_unique_item(p.ds_tensor.dtype for p in params), + device=get_accelerator().current_device_name(), + requires_grad=False) + start_param = 0 + for param in params: + param.data = flat_tensor.narrow(0, start_param, param.ds_numel).view(param.ds_shape) + start = start_param + param.ds_tensor.ds_numel * self.get_partition_rank() + flat_tensor.narrow(0, start, param.ds_tensor.ds_numel).copy_(param.ds_tensor) - return MultipleAllGatherHandles(handles) + start_param += param.ds_numel + handle = dist.all_reduce(flat_tensor, group=ds_process_group, async_op=True) + + return AllReduceCoalescedHandle(handle=handle, params=params) else: - partition_sz = sum(p.ds_tensor.ds_numel for p in params) + if not quantize: + dtype_params = defaultdict(list) + for p in params: + dtype_params[p.ds_tensor.dtype].append(p) + handles = [] + for dtype, params in dtype_params.items(): + handles.append( + _all_gather_dtype(dtype, params, world_size, rank_in_group, ds_process_group)) - if params[0].ds_secondary_tensor is not None and not forward: - partition_sz = sum(p.ds_tensor.ds_numel * p.ds_secondary_tensor_num_of_groups for p in params) + return MultipleAllGatherHandles(handles) - flat_tensor = torch.empty(partition_sz * world_size, - dtype=torch.int8, - device=get_accelerator().current_device_name(), - requires_grad=False) - - if params[0].ds_secondary_tensor is not None and not forward: - use_secondary_tensor = True - if hasattr(params[0].ds_secondary_tensor, "ds_quant_scale"): - quantized_param = instrument_w_nvtx(torch.cat)([ - p.ds_secondary_tensor.data.to(get_accelerator().current_device_name()) for p in params - ]) - scales = instrument_w_nvtx(torch.cat)([ - p.ds_secondary_tensor.ds_quant_scale.to(get_accelerator().current_device_name()) - for p in params - ]) - else: - quantized_param, scales = self.quantizer_module.quantize( - instrument_w_nvtx(torch.cat)([ - p.ds_secondary_tensor.to(get_accelerator().current_device_name()) for p in params - ])) else: - if hasattr(params[0].ds_tensor, "ds_quant_scale"): - quantized_param = instrument_w_nvtx(torch.cat)( - [p.ds_tensor.data.to(get_accelerator().current_device_name()) for p in params]) - scales = instrument_w_nvtx(torch.cat)([ - p.ds_tensor.ds_quant_scale.to(get_accelerator().current_device_name()) for p in params - ]) + partition_sz = sum(p.ds_tensor.ds_numel for p in params) + + if use_secondary_tensor: + partition_sz = sum(p.ds_tensor.ds_numel * p.ds_secondary_tensor_num_of_groups + for p in params) + + flat_tensor = torch.empty(partition_sz * world_size, + dtype=torch.int8, + device=get_accelerator().current_device_name(), + requires_grad=False) + + if use_secondary_tensor: + if hasattr(params[0].ds_secondary_tensor, "ds_quant_scale"): + quantized_param = instrument_w_nvtx(torch.cat)([ + p.ds_secondary_tensor.data.to(get_accelerator().current_device_name()) + for p in params + ]) + scales = instrument_w_nvtx(torch.cat)([ + p.ds_secondary_tensor.ds_quant_scale.to(get_accelerator().current_device_name()) + for p in params + ]) + else: + quantized_param, scales = self.quantizer_module.quantize( + instrument_w_nvtx(torch.cat)([ + p.ds_secondary_tensor.to(get_accelerator().current_device_name()) + for p in params + ])) else: - quantized_param, scales = self.quantizer_module.quantize( - instrument_w_nvtx(torch.cat)( - [p.ds_tensor.to(get_accelerator().current_device_name()) for p in params])) - quant_scale_buffer = torch.empty( - scales.numel() * world_size, - dtype=torch.float32, - device=get_accelerator().current_device_name(), - requires_grad=False, - ) - handle = _dist_allgather_fn(quantized_param, flat_tensor, ds_process_group) - quant_handle = _dist_allgather_fn(scales, quant_scale_buffer, ds_process_group) - quant_info = QuantizationInfo() - quant_info.quantized_param = flat_tensor - quant_info.backend = self.quantizer_module - quant_info.quant_handle = quant_handle - quant_info.scale_buffer = quant_scale_buffer - quant_info.partition_sz = partition_sz - quant_info.world_size = world_size - return AllGatherCoalescedHandle( - allgather_handle=handle, - params=params, - partitions=None, - world_size=world_size, - use_secondary_tensor=use_secondary_tensor, - forward=forward, - quantization=quant_info, - ) - - def partition(param_list=None, backward=False, hierarchy=0, has_been_updated=False): + if hasattr(params[0].ds_tensor, "ds_quant_scale"): + quantized_param = instrument_w_nvtx(torch.cat)( + [p.ds_tensor.data.to(get_accelerator().current_device_name()) for p in params]) + scales = instrument_w_nvtx(torch.cat)([ + p.ds_tensor.ds_quant_scale.to(get_accelerator().current_device_name()) + for p in params + ]) + else: + quantized_param, scales = self.quantizer_module.quantize( + instrument_w_nvtx(torch.cat)( + [p.ds_tensor.to(get_accelerator().current_device_name()) for p in params])) + quant_scale_buffer = torch.empty( + scales.numel() * world_size, + dtype=torch.float32, + device=get_accelerator().current_device_name(), + requires_grad=False, + ) + handle = _dist_allgather_fn(quantized_param, flat_tensor, ds_process_group) + quant_handle = _dist_allgather_fn(scales, quant_scale_buffer, ds_process_group) + quant_info = QuantizationInfo() + quant_info.quantized_param = flat_tensor + quant_info.backend = self.quantizer_module + quant_info.quant_handle = quant_handle + quant_info.scale_buffer = quant_scale_buffer + quant_info.partition_sz = partition_sz + quant_info.world_size = world_size + return AllGatherCoalescedHandle( + allgather_handle=handle, + params=params, + partitions=None, + world_size=world_size, + use_secondary_tensor=use_secondary_tensor, + quantization=quant_info, + ) + + def partition(param_list=None, hierarchy=0, has_been_updated=False, free_data=True): cls = param print_rank_0(f"{'--'*hierarchy}----Partitioning param {debug_param2name_id_shape_device(cls)}", force=False) if param_list is None: param_list = [cls] - self._partition(param_list, has_been_updated=has_been_updated) + self._partition(param_list, has_been_updated=has_been_updated, free_data=True) def reduce_gradients_at_owner(param_list=None, hierarchy=0): cls = param @@ -1416,12 +1534,12 @@ def _all_gather(self, param_list, async_op=False, hierarchy=None): return handles - def _partition(self, param_list, force=False, has_been_updated=False): + def _partition(self, param_list, force=False, has_been_updated=False, free_data=True): for param in param_list: print_rank_0(f"Before Partitioning Param {param.ds_id}", force=False) if self.zero_param_process_group is not None: - self._partition_param_sec(param, has_been_updated=has_been_updated) - self._partition_param(param, has_been_updated=has_been_updated) + self._partition_param_sec(param) + self._partition_param(param, has_been_updated=has_been_updated, free_data=True) param.ds_status = ZeroParamStatus.NOT_AVAILABLE # if param.ds_tensor is not None: @@ -1429,7 +1547,7 @@ def _partition(self, param_list, force=False, has_been_updated=False): # "After the parameters are initially partitioned, make sure we are not recreating the partition." #print_rank_0(f"After Partitioning Param {param.ds_id} {param.ds_tensor.size()} {param.ds_tensor}",force=False) @instrument_w_nvtx - def _partition_param(self, param, buffer=None, has_been_updated=False): + def _partition_param(self, param, buffer=None, has_been_updated=False, free_data=True): assert param.ds_status is not ZeroParamStatus.INFLIGHT, f" {param} Cannot partition a param in flight" global reuse_buffers print_rank_0(f"Param id {param.ds_id} status is {param.ds_status}", force=False) @@ -1454,7 +1572,8 @@ def _partition_param(self, param, buffer=None, has_been_updated=False): see_memory_usage(f'Before partitioning param {param.ds_id} {param.shape}', force=False) # param.data does not store anything meaningful in partitioned state - free_param(param) + if free_data: + free_param(param) see_memory_usage(f'After partitioning param {param.ds_id} {param.shape}', force=False) if param.ds_tensor.final_location == OffloadDeviceEnum.nvme: @@ -1500,6 +1619,7 @@ def _partition_param(self, param, buffer=None, has_been_updated=False): param.ds_tensor.ds_numel = partition_size param.ds_tensor.status = PartitionedParamStatus.AVAILABLE param.ds_tensor.final_location = final_location + param.ds_numel_aligned = tensor_size start = partition_size * self.get_partition_rank() end = start + partition_size @@ -1556,29 +1676,29 @@ def _partition_param_sec(self, param, buffer=None, has_been_updated=False): #print_rank_0(f"SEC Param id {param.ds_id} status is {param.ds_status}", force=True) if param.ds_status is ZeroParamStatus.AVAILABLE: if param.ds_secondary_tensor is not None and not has_been_updated: ##param already partitioned - return #check padding tensor_size = self._aligned_size(param) partition_size = tensor_size // self.dp_world_size secondary_partition_size = int(tensor_size // self.num_ranks_in_param_group) - final_location = None - secondary_partitioned_tensor = torch.empty(secondary_partition_size, - dtype=param.dtype, - device=self.remote_device) - - if self.pin_memory: - secondary_partitioned_tensor = secondary_partitioned_tensor.pin_memory() - # quantize the tensor if it's not trainable - if not param.requires_grad and self.quantized_nontrainable_weights: - secondary_partitioned_tensor, secondary_partitioned_tensor.ds_quant_scale = self.quantizer_module.quantize( - secondary_partitioned_tensor) - secondary_partitioned_tensor.requires_grad = False - param.ds_secondary_tensor = secondary_partitioned_tensor - param.ds_secondary_tensor.ds_numel = secondary_partition_size - param.ds_secondary_tensor.status = PartitionedParamStatus.AVAILABLE - param.ds_secondary_tensor.final_location = final_location + if param.ds_secondary_tensor is None: + final_location = None + secondary_partitioned_tensor = torch.empty(secondary_partition_size, + dtype=param.dtype, + device=self.remote_device) + + if self.pin_memory: + secondary_partitioned_tensor = secondary_partitioned_tensor.pin_memory() + # quantize the tensor if it's not trainable + if not param.requires_grad and self.quantized_nontrainable_weights: + secondary_partitioned_tensor, secondary_partitioned_tensor.ds_quant_scale = self.quantizer_module.quantize( + secondary_partitioned_tensor) + secondary_partitioned_tensor.requires_grad = False + param.ds_secondary_tensor = secondary_partitioned_tensor + param.ds_secondary_tensor.ds_numel = secondary_partition_size + param.ds_secondary_tensor.status = PartitionedParamStatus.AVAILABLE + param.ds_secondary_tensor.final_location = final_location #use rank in group for secondary tensor secondary_start = secondary_partition_size * self.rank_in_group @@ -1586,19 +1706,17 @@ def _partition_param_sec(self, param, buffer=None, has_been_updated=False): secondary_end = secondary_start + secondary_partition_size one_dim_param = param.contiguous().view(-1) - start = partition_size * self.rank - end = start + partition_size - if start < param.ds_numel and end <= param.ds_numel: - if secondary_start < param.ds_numel and secondary_end <= param.ds_numel: - sec_src_tensor = one_dim_param.narrow(0, secondary_start, secondary_partition_size) - param.ds_secondary_tensor.copy_(sec_src_tensor) - else: - if start < param.ds_numel: - elements_to_copy = param.ds_numel - start - elements_to_copy_sec = elements_to_copy * param.ds_secondary_tensor_num_of_groups - param.ds_secondary_tensor.narrow(0, 0, elements_to_copy_sec).copy_( - one_dim_param.narrow(0, secondary_start, elements_to_copy_sec)) + # ds_numel is unpadded, so the last chunk of the secondary tensor might not be secondary_partition_size + sec_numel = max(0, min(param.ds_numel - secondary_start, secondary_partition_size)) + + # copy from full tensor to secondary tensor + param.ds_secondary_tensor.narrow(0, 0, + sec_numel).copy_(one_dim_param.narrow(0, secondary_start, sec_numel)) + + # TODO: This is a temporary fix to avoid the issue that 2nd tensor all-gather happens before 2nd tensor partition is done + if not get_accelerator().resolves_data_dependency(): + get_accelerator().current_stream().synchronize() print_rank_0(f"{param.ds_id} partitioned type {param.dtype} dev {param.device} shape {param.shape}", force=False) @@ -1633,7 +1751,8 @@ def _allgather_param(self, param, async_op=False, hierarchy=0): f'After allocate allgather param {debug_param2name_id_shape_status(param)} {aligned_param_size} {partition_size} ', force=False) - get_accelerator().synchronize() + if not get_accelerator().resolves_data_dependency(): + get_accelerator().synchronize() print_rank_0( f"{'--'* hierarchy}----allgather param with {debug_param2name_id_shape_status(param)} partition size={partition_size}" @@ -1766,10 +1885,12 @@ def _allgather_params_coalesced(self, param_list, hierarchy=0, quantize=False): param.data = gathered_tensor.narrow(0, 0, param.ds_numel).view(param.ds_shape).data # guarantee the communication to be completed - get_accelerator().synchronize() + if not get_accelerator().resolves_data_dependency(): + get_accelerator().synchronize() return None + @torch.no_grad() def _allgather_params(self, param_list, hierarchy=0): if len(param_list) == 0: return @@ -1815,10 +1936,10 @@ def _allgather_params(self, param_list, hierarchy=0): offset += param_scale_numel - dist.all_gather(partitions, - partitions[self.get_partition_rank()], - group=self.get_partition_dp_group(param), - async_op=False) + dist.all_gather_into_tensor(flat_tensor, + partitions[self.get_partition_rank()], + group=self.get_partition_dp_group(param), + async_op=False) if hasattr(param_list[0], 'ds_quant_scale'): dist.all_gather(flat_scale_tensor, param_list[0].ds_quant_scale, @@ -2129,7 +2250,7 @@ def __exit__(self, *exc): self.params[0].partition(param_list=self.params, has_been_updated=False) return - handles = [dist.broadcast(p, self.src_rank, group=p.ds_process_group, async_op=True) for p in self.params] + handles = [dist.broadcast(p.data, self.src_rank, group=p.ds_process_group, async_op=True) for p in self.params] for h in handles: h.wait() self.params[0].partition(param_list=self.params, has_been_updated=True) diff --git a/deepspeed/runtime/zero/partitioned_param_coordinator.py b/deepspeed/runtime/zero/partitioned_param_coordinator.py index 9bcf5a91bc95..3417080b1bea 100644 --- a/deepspeed/runtime/zero/partitioned_param_coordinator.py +++ b/deepspeed/runtime/zero/partitioned_param_coordinator.py @@ -9,6 +9,7 @@ from typing import Deque, Set from deepspeed import comm as dist +from deepspeed.utils import z3_leaf_module from deepspeed.utils.logging import logger from deepspeed.runtime.zero.offload_config import OffloadDeviceEnum from deepspeed.runtime.zero.partition_parameters import * @@ -16,6 +17,9 @@ from deepspeed.runtime.swap_tensor.partitioned_param_swapper import PartitionedParamStatus from deepspeed.utils.debug import debug_module2name_id, debug_param2name_id from deepspeed.accelerator import get_accelerator +import deepspeed.runtime.compiler as compiler +from deepspeed.runtime.compiler import is_compiling + import logging ENABLE_PROFILER = False @@ -31,6 +35,7 @@ def get_all_parameters(sub_module, recurse=False): return itertools.chain(sub_module.named_parameters(recurse=recurse), sub_module.ds_external_parameters()) +@compiler.disable def iter_params(module: Module, recurse=False) -> Iterable[Parameter]: return map(lambda pair: pair[1], get_all_parameters(module, recurse)) @@ -82,13 +87,15 @@ def __init__( timers=None, zero_quantized_weights=False, zero_quantized_nontrainable_weights=False, + fast_sharding_for_leaf_module=False, + log_trace_cache_warnings=False, ) -> None: # mapping of param -> handle for each param that is currently in flight self.__inflight_param_registry = inflight_param_registry # keeps track of the number of submodules invoked so far. self.__step_id: int = 0 # network tracing mode - self.__trace_mode: ZeRoTraceMode = ZeRoTraceMode.RECORD + self.__trace_mode: ZeRoTraceMode = ZeRoTraceMode.INVALID # sequence of submodules/parameters in forward pass + backward pass self.__submodule_order: Iterable[Module] = [] self.__param_order: Iterable[__class__.__ParamInTrace] = [] @@ -125,6 +132,13 @@ def __init__( self.__max_ongoing_fetch_events: int = 2 self.__profiler = PartitionedParameterProfiler(timers if ENABLE_PROFILER else None) + # Whether to log trace cache warnings, e.g. invalidation events + self.__log_trace_cache_warnings = log_trace_cache_warnings + + # whether to enable fast fetch for the z3 leaf module. + # this will improve fetch speed but will not break down leaf module parameters to alleviate memory pressure. + self.fast_sharding_for_leaf_module = fast_sharding_for_leaf_module + """Tracing and Tracking TODO. consider performing trace before initializing PartitionedParameterCoordinator and passing trace results into constructor. This way all the code in here can @@ -149,46 +163,59 @@ def is_invalid_trace(self) -> bool: def is_record_trace(self) -> bool: return self.__trace_mode == ZeRoTraceMode.RECORD + def _clean_inflight_param_registry(self) -> None: + for param, handle in self.__inflight_param_registry.items(): + handle.wait() + self.__release_param(param) + self.__inflight_param_registry.clear() + def _invalidate_trace(self) -> None: if self.is_invalid_trace(): raise RuntimeError("attempted to invalidate already invalid trace") self.__trace_mode = ZeRoTraceMode.INVALID self._clear_trace_structures() + self._clean_inflight_param_registry() def trace_prologue(self, sub_module: Module) -> None: if self.is_complete_trace(): # sub_module must match expectation else invalidate trace cache if len(self.__submodule_order) <= self.__step_id: print_rank_0( - f"Invalidate trace cache @ step {self.__step_id} and module {sub_module.id}: " + f"Invalidate trace cache @ step {self.__step_id} and module {sub_module.ds_id}: " f"cache has only {len(self.__submodule_order)} modules", - force=True) + force=self.__log_trace_cache_warnings) self._invalidate_trace() return if sub_module != self.__submodule_order[self.__step_id]: - expected_module_id = self.__submodule_order[self.__step_id].id + expected_module_id = self.__submodule_order[self.__step_id].ds_id print_rank_0( f"Invalidate trace cache @ step {self.__step_id}: " - f"expected module {expected_module_id}, but got module {sub_module.id}", - force=True) + f"expected module {expected_module_id}, but got module {sub_module.ds_id}", + force=self.__log_trace_cache_warnings) self._invalidate_trace() + @compiler.disable def record_module(self, sub_module: Module) -> None: """adds sub module to trace""" + if is_compiling(): + return + if not self.is_record_trace(): raise RuntimeError(f"attempted to record trace when status = {self.__trace_mode}") self.__submodule_order.append(sub_module) - self.__step_id_module_fetched_for[sub_module.id].append(self.__step_id) + self.__step_id_module_fetched_for[sub_module.ds_id].append(self.__step_id) def record_parameters(self, sub_module: Module) -> None: + if is_compiling(): + return """adds sub module to trace""" if not self.is_record_trace(): raise RuntimeError(f"attempted to record trace when status = {self.__trace_mode}") - step_id = self.__step_id_module_fetched_for[sub_module.id].popleft() - for param in sorted(set(iter_params(sub_module)), key=lambda p: p.ds_id): + step_id = self.__step_id_module_fetched_for[sub_module.ds_id].popleft() + for param in sorted(set(iter_params(sub_module, recurse=z3_leaf_module(sub_module))), key=lambda p: p.ds_id): self.__param_order.append(__class__.__ParamInTrace(param=param, step_id_last_used_at=step_id)) def construct_parameter_trace_from_module_trace(self): @@ -197,15 +224,17 @@ def construct_parameter_trace_from_module_trace(self): for sub_module in self.__submodule_order: self.record_parameters(sub_module) + @compiler.disable def reset_step(self) -> None: """indicate that we have completed one fwd+bwd for the model""" - if self.__inflight_param_registry: - raise RuntimeError(f"still have inflight params " - f"{[p.ds_summary() for p in self.__inflight_param_registry.keys()]}") + if is_compiling(): + return + + self._clean_inflight_param_registry() if not self.is_complete_trace(): # not self.trace_complete: # Make sure that recorded submodule orders are identical across ranks - assert_ints_same_as_other_ranks([m.id for m in self.__submodule_order]) + assert_ints_same_as_other_ranks([m.ds_id for m in self.__submodule_order]) if self.is_record_trace(): # Successfully recorded a trace @@ -218,7 +247,7 @@ def reset_step(self) -> None: self.__param_order = tuple(self.__param_order) # freeze self.__trace_mode = ZeRoTraceMode.COMPLETE print_rank_0( - f"completed record trace of {len(self.__submodule_order)} sub modules: {[m.id for m in self.__submodule_order]}", + f"completed record trace of {len(self.__submodule_order)} sub modules: {[m.ds_id for m in self.__submodule_order]}", force=False) else: # Enable trace recording for next forward/backward pass @@ -232,7 +261,6 @@ def reset_step(self) -> None: self.__most_recent_step_id_param_fetched_for = collections.defaultdict(lambda: int(-1e10)) self.__step_id_module_fetched_for = collections.defaultdict(lambda: collections.deque()) self.__step_id = 0 - self.__n_available_params = 0 self.__profiler.reset_events() def _dump_params(self, tag, sub_module, params, step_id=None): @@ -251,6 +279,7 @@ def _dump_param_ids(self, tag, mod_id, p_ids, step_id=None): Fetching, prefetching, and releasing parameters """ + @compiler.disable @instrument_w_nvtx @torch.no_grad() def fetch_sub_module(self, current_submodule: Module, forward: bool) -> None: @@ -261,19 +290,20 @@ def fetch_sub_module(self, current_submodule: Module, forward: bool) -> None: """ if logger.isEnabledFor(logging.DEBUG): debug_rank0( - f"{self.__step_id}: M{current_submodule.id}({type(current_submodule).__name__}) P{[p.ds_id for p in iter_params(current_submodule)]} " + f"{self.__step_id}: M{current_submodule.ds_id}({type(current_submodule).__name__}) P{[p.ds_id for p in iter_params(current_submodule, recurse=z3_leaf_module(current_submodule))]} " + str({ "avail": f"{self.__n_available_params:.1e}", "queue_sz": f"{len(self.__param_queue or [])}", "inflight": [p.ds_id for p in self.__inflight_param_registry], })) - params_to_fetch = frozenset(iter_params(current_submodule)) + params_to_fetch = set(iter_params(current_submodule, recurse=z3_leaf_module(current_submodule))) fetch_numel = sum( [p.partition_numel() for p in params_to_fetch if p.ds_status == ZeroParamStatus.NOT_AVAILABLE]) + if fetch_numel > 0: event_name = __class__.FORWARD_FETCH_SUBMIT if forward else __class__.BACKWARD_FETCH_SUBMIT - self._dump_param_ids(event_name, current_submodule.id, + self._dump_param_ids(event_name, current_submodule.ds_id, [p.ds_id for p in params_to_fetch if p.ds_status == ZeroParamStatus.NOT_AVAILABLE]) self.__profiler.start_event(event_name) # kick off all gather for params in the immediately required submodule @@ -287,9 +317,10 @@ def fetch_sub_module(self, current_submodule: Module, forward: bool) -> None: wait_numel = 0 wait_event_name = __class__.FORWARD_FETCH_WAIT if forward else __class__.BACKWARD_FETCH_WAIT self.__profiler.start_event(wait_event_name) + fast_fetch = self.fast_sharding_for_leaf_module and z3_leaf_module(current_submodule) # wait for parameters in the immediately needed submodule to become available for param in params_to_fetch: - param.ds_active_sub_modules.add(current_submodule.id) + param.ds_active_sub_modules.add(current_submodule.ds_id) if logger.isEnabledFor(logging.DEBUG): debug_rank0(f"-wait: {param.ds_summary()}") if param in self.__inflight_param_registry: @@ -300,16 +331,18 @@ def fetch_sub_module(self, current_submodule: Module, forward: bool) -> None: if len(self.__ongoing_fetch_events) > self.__max_ongoing_fetch_events: self.__ongoing_fetch_events.popleft().synchronize() - self.__inflight_param_registry.pop(param).wait() + self.__inflight_param_registry.pop(param).wait(handle_dependency=not fast_fetch) - if not get_accelerator().is_synchronized_device(): + if not get_accelerator().handles_memory_backpressure() and not fast_fetch: event = get_accelerator().Event() event.record() self.__ongoing_fetch_events.append(event) assert param.ds_status == ZeroParamStatus.AVAILABLE, param.ds_summary() - if not get_accelerator().is_synchronized_device(): + if not get_accelerator().resolves_data_dependency(): get_accelerator().current_stream().wait_stream(self.__allgather_stream) + if fast_fetch: + AllGatherCoalescedHandle.free_buffer() self.__profiler.stop_event(wait_event_name, wait_numel) # kick off parameter prefetches for upcoming modules @@ -331,7 +364,7 @@ def fetch_sub_module(self, current_submodule: Module, forward: bool) -> None: if discarded_from_prefetch_queue != params_not_already_fetched: raise RuntimeError( f"tracing error at step {self.__step_id}: \n" - f"module id: {current_submodule.id}, training: {current_submodule.training}\n" + f"module id: {current_submodule.ds_id}, training: {current_submodule.training}\n" f"expected the next {len(params_not_already_fetched)} parameters in the " f"parameter fetch queue to be {tuple(p.ds_summary(use_debug_name=True) for p in params_not_already_fetched)} \n" f"but got \n {tuple(p.ds_summary(use_debug_name=True) for p in discarded_from_prefetch_queue)}.") @@ -386,15 +419,25 @@ def _is_currently_on_nvme(param): @instrument_w_nvtx @torch.no_grad() - def release_sub_module(self, submodule: Module, backward: bool) -> None: + def release_sub_module(self, submodule: Module) -> None: """release the parameters of a sub module, assuming they meet conditions to be released.""" params_to_release = (self.__params_to_release(submodule, self.__step_id) if self.is_complete_trace() else set( - p.ds_id for p in iter_params(submodule))) - for param in iter_params(submodule): - param.ds_active_sub_modules.discard(submodule.id) + p.ds_id for p in iter_params(submodule, recurse=z3_leaf_module(submodule)))) + + free_data = not z3_leaf_module(submodule) or not self.fast_sharding_for_leaf_module + if not free_data: + # wait for the computation to finish and launch as early as possible. + empty_buffer = torch.empty(1, device=get_accelerator().current_device()) + + for param in iter_params(submodule, recurse=z3_leaf_module(submodule)): + param.ds_active_sub_modules.discard(submodule.ds_id) if param.ds_id in params_to_release and not param.is_external_param: - self.__release_param(param, backward) + self.__release_param(param, free_data) + if not free_data: + if param.ds_id in params_to_release and not param.is_external_param: + # empty buffer ensures that all computations are complete + param.data = empty_buffer @instrument_w_nvtx @torch.no_grad() @@ -402,13 +445,13 @@ def release_and_reset_all(self, module: Module) -> None: """release all module parameters""" for param in iter_params(module, recurse=True): if param in self.__inflight_param_registry: - raise RuntimeError(f"param {param.ds_summary()} still in flight") + self.__inflight_param_registry.pop(param).wait() # TODO. make this throw if if there are still active submodules. currently # there's a hook execution issue param.ds_active_sub_modules.clear() - self.__release_param(param, backward=False) - + self.__release_param(param) + self.__n_available_params = 0 for param in iter_params(module, recurse=True): if param.ds_status != ZeroParamStatus.NOT_AVAILABLE: raise RuntimeError(f"{param.ds_summary()} expected to be released") @@ -431,26 +474,34 @@ def __all_gather_params_(self, params: Set[Parameter], forward: bool, quantize: """for each partitioned parameter, kick off an async allgather and store the work handle for the in flight parameters.""" partitioned_params = [] - all_gather_numel = 0 + all_gather_numel = 0 # numel = num of elements for param in params: if param.ds_status == ZeroParamStatus.NOT_AVAILABLE: partitioned_params.append(param) all_gather_numel += param.ds_numel if partitioned_params: - partitioned_params self.__n_available_params += all_gather_numel - with get_accelerator().stream(self.__allgather_stream): - event_name = __class__.FORWARD_ALL_GATHER if forward else __class__.BACKWARD_ALL_GATHER - self.__profiler.start_event(event_name) - handle = partitioned_params[0].all_gather_coalesced(partitioned_params, - forward=forward, - quantize=quantize) - self.__profiler.stop_event(event_name, all_gather_numel) - - for param in partitioned_params: - assert param.ds_status == ZeroParamStatus.INFLIGHT, param.ds_summary() - self.__inflight_param_registry[param] = handle + # here we need to handle a special case where some of the parameters have a valid hpz secondary tensor (e.g. they are not trainable so their secondary tensor never expire) but others do not. + partitioned_params_with_secondary_tensors = [ + p for p in partitioned_params if p.ds_secondary_tensor is not None + ] + partitioned_params_without_secondary_tensors = [ + p for p in partitioned_params if p.ds_secondary_tensor is None + ] + for param_group in [ + partitioned_params_with_secondary_tensors, partitioned_params_without_secondary_tensors + ]: + if not param_group: + continue + with get_accelerator().stream(self.__allgather_stream): + event_name = __class__.FORWARD_ALL_GATHER if forward else __class__.BACKWARD_ALL_GATHER + self.__profiler.start_event(event_name) + handle = param_group[0].all_gather_coalesced(param_group, quantize=quantize) + self.__profiler.stop_event(event_name, all_gather_numel) + for param in param_group: + assert param.ds_status == ZeroParamStatus.INFLIGHT, param.ds_summary() + self.__inflight_param_registry[param] = handle # Release swap buffers for persisted params on nvme since they will never be partitioned or evicted from GPU swap_persisted_params = [ @@ -459,12 +510,13 @@ def __all_gather_params_(self, params: Set[Parameter], forward: bool, quantize: if swap_persisted_params: swap_persisted_params[0].nvme_swapper.remove_partition_and_release_buffers(swap_persisted_params) + @compiler.disable @instrument_w_nvtx - def __release_param(self, param: Parameter, backward: bool) -> None: + def __release_param(self, param: Parameter, free_data: bool = True) -> None: if param.ds_status == ZeroParamStatus.AVAILABLE and not param.ds_active_sub_modules: if logger.isEnabledFor(logging.DEBUG): debug_rank0(f"-release: {param.ds_summary()}") - param.partition(backward=backward) + param.partition(free_data=free_data) self.__n_available_params -= param.ds_numel @instrument_w_nvtx @@ -473,7 +525,9 @@ def __params_to_release(self, submodule_to_release: Module, step_id: int) -> Set if not self.is_complete_trace(): raise RuntimeError("expected trace to be complete") - params_to_release = set(p.ds_id for p in iter_params(submodule_to_release) if not p.ds_persist) + params_to_release = set( + p.ds_id for p in iter_params(submodule_to_release, recurse=z3_leaf_module(submodule_to_release)) + if not p.ds_persist) # Problem: When prefetcher scans the param trace, it skips AVAILABLE params. # This creates issues if those params are released before the skipped uses: @@ -482,7 +536,7 @@ def __params_to_release(self, submodule_to_release: Module, step_id: int) -> Set # diverges from the trace. # Solution: Don't release params whose reuse was skipped by prefetch. This is # possible because we detect such skips during prefetch and mark those params. - for param in iter_params(submodule_to_release): + for param in iter_params(submodule_to_release, recurse=z3_leaf_module(submodule_to_release)): if self.__most_recent_step_id_param_fetched_for[param] > step_id: params_to_release.discard(param.ds_id) @@ -493,7 +547,7 @@ def __params_to_release(self, submodule_to_release: Module, step_id: int) -> Set for module in self.__submodule_order[step_id:]: if params_traversed >= self.__max_reuse_dist_in_numel: break - for param in iter_params(module): + for param in iter_params(module, recurse=z3_leaf_module(submodule_to_release)): params_to_release.discard(param.ds_id) params_traversed += param.ds_numel diff --git a/deepspeed/runtime/zero/stage3.py b/deepspeed/runtime/zero/stage3.py index c0fd9d6625c7..ee97b6278d9e 100644 --- a/deepspeed/runtime/zero/stage3.py +++ b/deepspeed/runtime/zero/stage3.py @@ -6,22 +6,29 @@ import sys import gc import collections -from typing import Deque, Dict, Tuple +import itertools +from typing import Deque, Dict, Set, Tuple, Container +from contextlib import contextmanager + from deepspeed import comm as dist -from deepspeed.utils import groups +from deepspeed.utils import groups, z3_leaf_parameter from torch._utils import _flatten_dense_tensors, _unflatten_dense_tensors -from deepspeed.runtime import ZeROOptimizer +from deepspeed.runtime.base_optimizer import ZeROOptimizer from deepspeed.utils import logger +from deepspeed.utils.torch import register_grad_hook from deepspeed.runtime.fp16.loss_scaler import CreateLossScaler -from deepspeed.runtime.comm.coalesced_collectives import reduce_scatter_coalesced, all_to_all_quant_reduce -from deepspeed.runtime.utils import inf, get_global_norm, is_model_parallel_parameter, get_only_unique_item +from deepspeed.runtime.comm.coalesced_collectives import reduce_scatter_coalesced, all_to_all_quant_reduce, all_to_all_loco_quant_reduce +from deepspeed.runtime.utils import inf, is_model_parallel_parameter, get_only_unique_item from deepspeed.runtime.zero.partition_parameters import * from deepspeed.runtime.zero.config import ZeroStageEnum -from deepspeed.runtime.zero.offload_config import OffloadDeviceEnum +from deepspeed.runtime.zero.offload_config import OffloadDeviceEnum, OffloadStateTypeEnum from deepspeed.runtime.zero.parameter_offload import DeepSpeedZeRoOffload -from deepspeed.ops.adam import DeepSpeedCPUAdam, FusedAdam +from deepspeed.runtime.zero.utils import apply_to_tensors_only, get_mapping_to_flat_buffer +from deepspeed.runtime.zero.offload_states import offload_adam_states, reload_adam_states +from deepspeed.ops.adam import DeepSpeedCPUAdam from deepspeed.runtime.swap_tensor.partitioned_param_swapper import PartitionedParamStatus +from deepspeed.runtime.swap_tensor.optimizer_utils import OptimizerSwapper from deepspeed.runtime.swap_tensor.partitioned_optimizer_swapper import PartitionedOptimizerSwapper from deepspeed.runtime.swap_tensor.pipelined_optimizer_swapper import PipelinedOptimizerSwapper from deepspeed.checkpoint.constants import OPTIMIZER_STATE_DICT, FP32_FLAT_GROUPS, PARTITION_COUNT, ZERO_STAGE, LOSS_SCALER @@ -66,6 +73,39 @@ def move_to_cpu(tensor_list): tensor.data = tensor.data.cpu() +@contextmanager +def unwrap_model_for_generation(model): + """ + For ZeRO-3 models, we gather the weights once to speed up generation. + """ + with GatheredParameters(model.parameters()): + # Removes the optimizer hooks from a DeepSpeed ZeRO-3 model. + + # Remove hooks + if model.optimizer is not None and hasattr(model.optimizer, "parameter_offload"): + optimizer_offload = model.optimizer.parameter_offload + elif model.optimizer is not None: + optimizer_offload = model.optimizer + + for hook in optimizer_offload.forward_hooks: + hook.remove() + for hook in optimizer_offload.backward_hooks: + hook.remove() + + optimizer_offload.forward_hooks = [] + optimizer_offload.backward_hooks = [] + + yield model + + # Adds the optimizer hooks from a DeepSpeed ZeRO-3 model. + if model.optimizer is not None and hasattr(model.optimizer, "parameter_offload"): + optimizer_offload = model.optimizer.parameter_offload + elif model.optimizer is not None: + optimizer_offload = model.optimizer + optimizer_offload._register_deepspeed_module(optimizer_offload.module) + return + + INITIAL_MICRO_STEP_ID = -1 @@ -118,6 +158,9 @@ def __init__( zero_hpz_partition_size=1, zero_quantized_weights=False, zero_quantized_nontrainable_weights=False, + zero_module_granularity_threshold=0, + zeropp_loco_param=None, + log_trace_cache_warnings=False, ): see_memory_usage("Stage 3 initialize beginning", force=True) @@ -188,23 +231,25 @@ def __init__( mpu=mpu, zero_param_parallel_group=zero_param_parallel_group, zero_quantized_weights=zero_quantized_weights, - zero_quantized_nontrainable_weights=zero_quantized_nontrainable_weights) + zero_quantized_nontrainable_weights=zero_quantized_nontrainable_weights, + zero_module_granularity_threshold=zero_module_granularity_threshold, + log_trace_cache_warnings=log_trace_cache_warnings, + ) self.persistent_parameters = self.parameter_offload.persistent_parameters self._configure_offloading(offload_optimizer_config, offload_param_config) # backup fused_adam optimizer init if self.offload_optimizer and self.partial_offload != 1.0: - backup_gpu_tensor = torch.randn(1, device='cuda').to(self.dtype) + backup_gpu_tensor = torch.randn(1, device=get_accelerator().device_name()).to(self.dtype) backup_gpu_param = torch.nn.Parameter(backup_gpu_tensor) assert type(init_optimizer) == DeepSpeedCPUAdam, 'Hybrid Optimizer Only Supports DeepSpeedCPUAdam' - self.backup_optimizer = FusedAdam([backup_gpu_param], - lr=self.optimizer.param_groups[0]["lr"], - bias_correction=self.optimizer.param_groups[0]["bias_correction"], - betas=self.optimizer.param_groups[0]["betas"], - eps=self.optimizer.param_groups[0]["eps"], - weight_decay=self.optimizer.param_groups[0]["weight_decay"], - amsgrad=self.optimizer.param_groups[0]["amsgrad"]) + self.backup_optimizer = torch.optim.AdamW([backup_gpu_param], + lr=self.optimizer.param_groups[0]["lr"], + betas=self.optimizer.param_groups[0]["betas"], + eps=self.optimizer.param_groups[0]["eps"], + weight_decay=self.optimizer.param_groups[0]["weight_decay"], + amsgrad=self.optimizer.param_groups[0]["amsgrad"]) # Multiple param_groups configs for back-up optimizer if len(self.optimizer.param_groups) > 1: for i in range(1, len(self.optimizer.param_groups)): @@ -213,14 +258,12 @@ def __init__( self.module = module self.elastic_checkpoint = elastic_checkpoint - self.inf_or_nan_tracker: Tensor = torch.zeros(1, - dtype=torch.bool, - device=get_accelerator().current_device_name(), - requires_grad=False) + self.device = get_accelerator().current_device_name() if not self.offload_optimizer else OffloadDeviceEnum.cpu + + self.inf_or_nan_tracker: Tensor = torch.zeros(1, dtype=torch.bool, device=self.device, requires_grad=False) self.deepspeed_adam_offload = (self.offload_optimizer and type(init_optimizer) == DeepSpeedCPUAdam) - self.device = get_accelerator().current_device_name() if not self.offload_optimizer else OffloadDeviceEnum.cpu ### streams used for overlapping computation with communication self.reduce_and_partition_stream = None if get_accelerator().is_synchronized_device() else get_accelerator( ).Stream() if overlap_comm else get_accelerator().default_stream() @@ -246,6 +289,8 @@ def __init__( self.partition_count = dist.get_world_size(group=self.dp_process_group) + self.zeropp_loco_param = zeropp_loco_param + if mpu is None: self.model_parallel_group = None self.model_parallel_rank = 0 @@ -282,6 +327,7 @@ def __init__( # Holds a fused and flattened copy of the parameters self.fp16_partitioned_groups_flat = [] self.fp16_partitioned_groups_flat_numel = [] + self.fp16_partitioned_groups_flat_id = [] #defragmented pinned memory self.param_groups_fp16_flat_cpu_memory = [] @@ -334,20 +380,16 @@ def __init__( self.grads_in_ipg_bucket = [] self.params_in_ipg_bucket = [] - self.is_gradient_accumulation_boundary = True + self.params_already_reduced = {} self._release_ipg_buffers() self.previous_reduced_grads = None - # simplified param id - self.param_id = {} - - count = 0 - for i, params_group in enumerate(self.fp16_groups): + # model parameter traversal-based param id that's stable across runs + for params_group in self.fp16_groups: for param in params_group: - unique_id = id(param) - self.param_id[unique_id] = count - self.param_dict[count] = param - count = count + 1 + param_id = self.get_param_id(param) + self.param_dict[param_id] = param + self.params_already_reduced[param_id] = False #Largest partitioned param largest_partitioned_param_numel = 0 @@ -377,6 +419,8 @@ def __init__( #creates backward hooks for gradient partitioning ###Calls all gather param + self._grad_acc_hooks = [] + self._leaf_module_hooks = [] self.create_reduce_and_remove_grad_hooks() #exit(0) @@ -392,11 +436,18 @@ def __init__( self._link_all_hp_params() + self.offloaded_states: Set(OffloadDeviceEnum) = set() + if dist.get_rank(group=self.dp_process_group) == 0: see_memory_usage(f"After initializing ZeRO optimizer", force=True) def destroy(self): self.parameter_offload.destroy() + for hook in self._grad_acc_hooks: + hook.remove() + for hook in self._leaf_module_hooks: + hook.remove() + print_rank_0("Removed grad acc hooks", force=False) del self.__ipg_bucket_flat_buffer def initialize_ds_offload( @@ -416,6 +467,8 @@ def initialize_ds_offload( zero_param_parallel_group, zero_quantized_weights, zero_quantized_nontrainable_weights, + zero_module_granularity_threshold, + log_trace_cache_warnings, ): return DeepSpeedZeRoOffload(module=module, timers=timers, @@ -431,7 +484,9 @@ def initialize_ds_offload( mpu=mpu, zero_param_parallel_group=zero_param_parallel_group, zero_quantized_weights=zero_quantized_weights, - zero_quantized_nontrainable_weights=zero_quantized_nontrainable_weights) + zero_quantized_nontrainable_weights=zero_quantized_nontrainable_weights, + zero_module_granularity_threshold=zero_module_granularity_threshold, + log_trace_cache_warnings=log_trace_cache_warnings) def _get_trainable_parameter_groups(self): param_groups = [] @@ -525,21 +580,15 @@ def defragment(tensors: List[Tensor]) -> Tensor: cpu_buffer = torch.empty(sum(p.numel() for p in tensors), dtype=get_only_unique_item(t.dtype for t in tensors), device="cpu") - tensor_infos: List[Tuple[Tensor, int, int]] = [] + tensor_infos: List[Tuple[Tensor, int, int]] = get_mapping_to_flat_buffer(tensors) orig_device = get_only_unique_item(t.device for t in tensors) offset = 0 - for tensor in tensors: - tensor_numel = tensor.numel() + for tensor, offset, tensor_numel in tensor_infos: # move the tensor from device memory to host memory cpu_buffer.narrow(0, offset, tensor_numel).copy_(tensor) tensor.data = torch.empty(0, dtype=tensor.dtype, device=tensor.device) - # record some data so we can restore the device tensor later - tensor_infos.append((tensor, offset, tensor_numel)) - - offset += tensor_numel - gc.collect() get_accelerator().empty_cache() @@ -552,8 +601,8 @@ def defragment(tensors: List[Tensor]) -> Tensor: return device_buffer - def _get_param_coordinator(self, training): - return self.parameter_offload.get_param_coordinator(training) + def _get_param_coordinator(self): + return self.parameter_offload.get_param_coordinator() def _configure_offloading(self, offload_optimizer_config, offload_param_config): ###################### offload optimizer setup ################################## @@ -672,6 +721,9 @@ def _create_fp16_partitions_with_defragmentation(self, fp16_param_groups): # record total elements of parameter partitions in sub group self.fp16_partitioned_groups_flat_numel.append(sum(p.partition_numel() for p in sub_group)) + # record ds_ids of parameter partitions in sub group + self.fp16_partitioned_groups_flat_id.append([p.ds_id for p in sub_group]) + # record padding required to align group to world size (only applies to last rank) rank_requires_padding = dist.get_rank( self.dp_process_group) == dist.get_world_size(self.dp_process_group) - 1 @@ -680,19 +732,12 @@ def _create_fp16_partitions_with_defragmentation(self, fp16_param_groups): # move parameters to flattened buffer if not self.offload_param: # partitioned params remain in GPU during training # move parameter partitions into a single contiguous flat buffer - parameter_partitions: List[Tensor] = [] - for sub_group in self.fp16_groups: - for param in sub_group: - parameter_partitions.append(param.ds_tensor) - device_buffer = __class__.defragment(parameter_partitions) + parameter_partitions = self._get_parameter_partitions() + + # We need to keep the reference to this buffer to make sure you can free it in `offload_states` + self.lp_param_buffer = __class__.defragment(parameter_partitions) + self._set_fp16_partitioned_groups_flat() - # setup flat buffers per subgroup, these are each just sections of the - # contiguous flat buffer for all parameters that we created earlier - offset = 0 - for sub_group in self.fp16_groups: - sub_group_numel = sum(param.partition_numel() for param in sub_group) - self.fp16_partitioned_groups_flat.append(device_buffer.narrow(0, offset, sub_group_numel)) - offset += sub_group_numel else: # partitioned params offloaded to CPU when not in use # create a flat CPU memory allocation for each param group self._create_param_groups_fp16_flat_cpu_memory() @@ -738,6 +783,9 @@ def _create_fp16_partitions_with_defragmentation(self, fp16_param_groups): assert len(largest_partition_numel) > 0, f'Unexpected that largest partition is empty' self.fp16_groups[0][0].nvme_swapper.reserve_partitioned_swap_space(largest_partition_numel) + def _get_parameter_partitions(self) -> List[Tensor]: + return [param.ds_tensor for sub_group in self.fp16_groups for param in sub_group] + def _swap_in_sub_group_to_flat_buffer(self, flat_buffer, sub_group_id): offset = 0 elements_in_sub_group = sum([t.ds_numel for t in self.fp16_partitioned_groups[sub_group_id]]) @@ -812,10 +860,14 @@ def _create_fp32_partitions(self): for i, tensor in enumerate(self.fp16_partitioned_groups_flat): num_elements = self.fp16_partitioned_groups_flat_numel[i] + ds_id_begin = str(self.fp16_partitioned_groups_flat_id[i][0]) + ds_id_end = str(self.fp16_partitioned_groups_flat_id[i][-1]) + ds_id = ds_id_begin + '_' + ds_id_end # a partition of the fp32 master weights that will be updated by this process if self._swappable_optimizer_subgroup(i): self.fp32_partitioned_groups_flat.append(torch.Tensor()) + self.fp32_partitioned_groups_flat[i].ds_id = ds_id nvme_memory_usage += (fp32_element_size * num_elements) num_swappable_partitions += 1 @@ -852,6 +904,7 @@ def _create_fp32_partitions(self): else: self.fp32_partitioned_groups_flat.append(self.fp16_partitioned_groups_flat[i].to( self.device).clone().float().detach()) + self.fp32_partitioned_groups_flat[i].ds_id = ds_id self.fp32_partitioned_groups_flat[i].requires_grad = True # keep this in case internal optimizer uses it @@ -962,6 +1015,15 @@ def _partitioned_params_swap_out(self, i): swap_fp16_params[0].nvme_swapper.swap_out_partitioned_params(dst_fp16_params=swap_fp16_params, src_fp32_params=swap_fp32_params) + def _set_fp16_partitioned_groups_flat(self): + # setup flat buffers per subgroup, these are each just sections of the + # contiguous flat buffer for all parameters that we created earlier + offset = 0 + for sub_group in self.fp16_groups: + sub_group_numel = sum(param.partition_numel() for param in sub_group) + self.fp16_partitioned_groups_flat.append(self.lp_param_buffer.narrow(0, offset, sub_group_numel)) + offset += sub_group_numel + def initialize_optimizer_states(self): num_subgroups = len(self.fp16_groups) @@ -1003,10 +1065,6 @@ def initialize_optimizer_states(self): else: self.fp32_partitioned_groups_flat[i].grad = gradient_buffer.narrow(0, 0, num_elements) - # Initialize the optimizer states with the flattened fp32 partition. - if not is_adagrad: - self._optimizer_step(i) - if swappable_param_subgroup: self._partitioned_params_swap_out(i) @@ -1075,9 +1133,12 @@ def independent_gradient_partition_epilogue(self): self.__reduce_and_partition_ipg_grads() self.report_ipg_memory_usage(f"In ipg_epilogue after reduce_ipg_grads", 0) - if not get_accelerator().is_synchronized_device(): + if not get_accelerator().resolves_data_dependency(): self.reduce_and_partition_stream.synchronize() + for param_id in self.params_already_reduced.keys(): + self.params_already_reduced[param_id] = False + #in case of cpu offload, averaged gradients are already in fp32_partitioned_groups_flat.grad #TODO: use a similar code path for both cpu_offload and non-cpu offload if not self.offload_optimizer: @@ -1099,7 +1160,7 @@ def overlapping_partition_gradients_reduce_epilogue(self): def create_reduce_and_remove_grad_hooks(self): print_rank_0(f'[Begin] Create gradient reduction hooks') - self.grad_accs = [] + self.leaf_parameters = defaultdict(list) for i, param_group in enumerate(self.fp16_groups): for param in param_group: if param.requires_grad: @@ -1111,26 +1172,80 @@ def create_reduce_and_remove_grad_hooks(self): #print(f"After all gather {param.device}, {param.shape}") def wrapper(param): - param_tmp = param.expand_as(param) - grad_acc = param_tmp.grad_fn.next_functions[0][0] @instrument_w_nvtx def reduce_partition_and_remove_grads(*notneeded): self.reduce_ready_partitions_and_remove_grads(param) - grad_acc.register_hook(reduce_partition_and_remove_grads) - self.grad_accs.append(grad_acc) + self._grad_acc_hooks.append(register_grad_hook(param, reduce_partition_and_remove_grads)) #print(f"param grad fn {param.expand_as(param).grad_fn}") - wrapper(param) + if z3_leaf_parameter(param): + self.leaf_parameters[param.ds_z3_leaf_module].append(param) + else: + wrapper(param) # Partition the parameter after creating the hook param.partition() + + # We delay reduce-scatter for all gradients in the leaf modules until the backward pass of the leaf module is done + for leaf_module, leaf_parameters in self.leaf_parameters.items(): + + def wrapper_pre_hook(params): + + def forward_pre_hook(module, input): + """Pre-forward hook to set backward hook on input tensors to the leaf module""" + module._leaf_module_inputs_remaining = 0 + + @instrument_w_nvtx + def reduce_leaf_module_grads(grad): + module._leaf_module_inputs_remaining -= 1 + # Make sure everything is done in the leaf module + if module._leaf_module_inputs_remaining == 0: + for param in params: + if param.grad is None: + param.grad = torch.zeros_like(param) + self.reduce_ready_partitions_and_remove_grads(param) + + def set_module_bwd_hook(tensor): + if tensor.requires_grad: + module._leaf_module_inputs_remaining += 1 + tensor.register_hook(reduce_leaf_module_grads) + return tensor + + output = apply_to_tensors_only(set_module_bwd_hook, input) + + return output + + return forward_pre_hook + + def wrapper_post_hook(): + + def forward_post_hook(module, input, output): + """Pre-forward hook to set backward hook on input tensors to the leaf module""" + module._leaf_output_required_grad_num = 0 + + def increment_rg_count_bwd_hook(tensor): + if tensor.requires_grad: + module._leaf_output_required_grad_num += 1 + return tensor + + apply_to_tensors_only(increment_rg_count_bwd_hook, output) + + if module._leaf_module_inputs_remaining == 0 and module._leaf_output_required_grad_num > 0: + raise RuntimeError( + "A module cannot be set as a leaf module when it does not have any input tensors that require gradients and has output tensors that require gradients. This is because the gradient reduction hook will not be called in this case." + ) + + return forward_post_hook + + self._leaf_module_hooks.append(leaf_module.register_forward_pre_hook(wrapper_pre_hook(leaf_parameters))) + self._leaf_module_hooks.append(leaf_module.register_forward_hook(wrapper_post_hook())) + print_rank_0(f'[End] Create gradient reduction hooks') def get_param_id(self, param): - unique_id = id(param) - return self.param_id[unique_id] + return OptimizerSwapper.parameter_id(param) def report_ipg_memory_usage(self, tag, param_elems): elem_count = self.elements_in_ipg_bucket + param_elems @@ -1158,7 +1273,7 @@ def reduce_independent_p_g_buckets_and_remove_grads(self, param): @instrument_w_nvtx @torch.no_grad() def __add_grad_to_ipg_bucket(self, param: Parameter) -> None: - if not get_accelerator().is_synchronized_device(): + if not get_accelerator().resolves_data_dependency(): self.reduce_and_partition_stream.wait_stream(get_accelerator().default_stream()) if self.contiguous_gradients and self.elements_in_ipg_bucket + param.grad.numel() <= self.reduce_bucket_size: @@ -1207,7 +1322,7 @@ def __reduce_and_partition_ipg_grads(self, safe_mode: bool = False) -> None: self.params_in_ipg_bucket.clear() - if not get_accelerator().is_synchronized_device(): + if not get_accelerator().handles_memory_backpressure(): event = get_accelerator().Event() event.record() self.param_reduce_events.append(event) @@ -1215,7 +1330,7 @@ def __reduce_and_partition_ipg_grads(self, safe_mode: bool = False) -> None: @instrument_w_nvtx def __avg_scatter_contiguous_grads(self, buffer_to_reduce: Tensor) -> List[Tensor]: dtype = buffer_to_reduce.dtype - if self.communication_data_type == self.dtype: + if self.communication_data_type != dtype: buffer_to_reduce = buffer_to_reduce.to(self.communication_data_type) if self.postscale_gradients and self.gradient_predivide_factor != 1.0: buffer_to_reduce = buffer_to_reduce.div_(self.gradient_predivide_factor) @@ -1268,7 +1383,10 @@ def __avg_scatter_grads(self, params_to_reduce: List[Parameter]) -> List[Tensor] global_world_size = dist.get_world_size() num_nodes = global_world_size // local_world_size if self.all2all_process_group is not None and num_nodes > 1: - grad_partitions_for_rank = all_to_all_quant_reduce(full_grads_for_rank, self.all2all_process_group) + grad_partitions_for_rank = (all_to_all_loco_quant_reduce(params_to_reduce, self.all2all_process_group, + self.zeropp_loco_param) + if self.zeropp_loco_param is not None else all_to_all_quant_reduce( + full_grads_for_rank, self.all2all_process_group)) else: grad_partitions_for_rank = reduce_scatter_coalesced(full_grads_for_rank, self.dp_process_group) @@ -1324,7 +1442,7 @@ def complete_grad_norm_calculation_for_cpu_offload(self, params): param_id = self.get_param_id(p) if param_id in self.norm_for_param_grads.keys(): param_norm = self.norm_for_param_grads[param_id] - total_norm += param_norm.item()**2 + total_norm += param_norm**2 # Sum across all model parallel GPUs. total_norm_cuda = get_accelerator().FloatTensor([float(total_norm)]) @@ -1333,12 +1451,16 @@ def complete_grad_norm_calculation_for_cpu_offload(self, params): self._model_parallel_all_reduce(tensor=total_norm_cuda, op=dist.ReduceOp.SUM) - total_norm = total_norm_cuda[0].item()**(1. / norm_type) + total_norm = total_norm_cuda[0]**(1. / norm_type) - if total_norm == float('inf') or total_norm == -float('inf') or total_norm != total_norm: - total_norm = -1 + norm_is_inf = total_norm.isinf() + norm_is_nan = total_norm.isnan() + inf_or_nan = norm_is_nan.logical_or(norm_is_inf) - return total_norm + err = torch.tensor(-1.0, device=inf_or_nan.device, dtype=torch.float) + total_norm = inf_or_nan * err + inf_or_nan.logical_not() * total_norm + + return total_norm.cpu() @instrument_w_nvtx def partition_grads(self, params_to_release: List[Parameter], grad_partitions: List[Tensor]) -> None: @@ -1390,7 +1512,7 @@ def partition_grads(self, params_to_release: List[Parameter], grad_partitions: L else: fp32_grad_tensor = self.fp32_partitioned_groups_flat[i].grad.narrow( 0, dest_offset, grad_buffer.numel()) - fp32_grad_tensor.copy_(grad_buffer) + fp32_grad_tensor.copy_(grad_buffer.float()) # free the gradient if not get_accelerator().is_synchronized_device(): @@ -1501,7 +1623,7 @@ def set_none_gradients_to_zero(self, i, partition_id): for param_id in self.is_grad_computed[i][partition_id]: param = self.param_dict[param_id] if param.grad is None: - param.grad = torch.zero_like(param) + param.grad = torch.zeros_like(param) ######################Reduction Related Methods############################## @@ -1665,7 +1787,7 @@ def get_grad_norm_direct(self, gradients, params, norm_type=2): # Take max across all GPUs. self._model_parallel_all_reduce(tensor=total_norm_cuda, op=dist.ReduceOp.MAX) - total_norm = total_norm_cuda[0].item() + total_norm = total_norm_cuda[0] else: # if dist.get_rank() == 0: # logger.info(f"Total Norm beginning {total_norm}") @@ -1676,7 +1798,7 @@ def get_grad_norm_direct(self, gradients, params, norm_type=2): # Sum across all model parallel GPUs. if len(grad_norms) == 0: - # FIX https://github.com/microsoft/DeepSpeed/issues/3564 + # FIX https://github.com/deepspeedai/DeepSpeed/issues/3564 total_norm_cuda = torch.tensor(0, dtype=gradients[0].dtype).to(get_accelerator().device_name()).double() else: @@ -1686,10 +1808,14 @@ def get_grad_norm_direct(self, gradients, params, norm_type=2): self._model_parallel_all_reduce(tensor=total_norm_cuda, op=dist.ReduceOp.SUM) - total_norm = total_norm_cuda.item()**(1. / norm_type) + total_norm = total_norm_cuda**(1. / norm_type) + + norm_is_inf = total_norm.isinf() + norm_is_nan = total_norm.isnan() + inf_or_nan = norm_is_nan.logical_or(norm_is_inf) - if total_norm == float('inf') or total_norm == -float('inf') or total_norm != total_norm: - total_norm = -1 + err = torch.tensor(-1.0, device=self.device, dtype=torch.float) + total_norm = inf_or_nan * err + inf_or_nan.logical_not() * total_norm return total_norm @@ -1751,7 +1877,7 @@ def _pre_step(self): see_memory_usage(f"In step before checking overflow", force=False) print_rank_0("Finished Tracing at Beginning of Step") - self._get_param_coordinator(training=True).hierarchy = 0 + self._get_param_coordinator().hierarchy = 0 print_rank_0("Finished Tracing at Beginning of Step") @@ -1798,7 +1924,7 @@ def _prepare_sub_group(self, sub_group_id, timer_names): def _optimizer_states_and_gradient_swap_in(self, sub_group_id, timer_names): param_length = self.fp16_partitioned_groups_flat_numel[sub_group_id] - fp32_param_id = id(self.fp32_partitioned_groups_flat[sub_group_id]) + fp32_param_id = self.get_param_id(self.fp32_partitioned_groups_flat[sub_group_id]) assert self._swappable_optimizer_subgroup(sub_group_id), \ f'Parameter {fp32_param_id} of numel={param_length} is not swappable' @@ -1846,7 +1972,7 @@ def flatten_dense_tensors_aligned(self, tensor_list, alignment): def _optimizer_states_and_gradient_swap_out(self, sub_group_id, timer_names): param_length = self.fp16_partitioned_groups_flat_numel[sub_group_id] - fp32_param_id = id(self.fp32_partitioned_groups_flat[sub_group_id]) + fp32_param_id = self.get_param_id(self.fp32_partitioned_groups_flat[sub_group_id]) assert self._swappable_optimizer_subgroup(sub_group_id), \ f'Parameter {fp32_param_id} of numel={param_length} is not swappable' @@ -1882,6 +2008,25 @@ def _overflow_clean_up(self, prev_scale): see_memory_usage('After overflow after clearing gradients', force=False) + def _loco_err_buf_update(self, overflow: bool, scale=1.0): + """ + Loco Error Buffer update. + """ + if not overflow and scale == 1.0: return + if dist.get_rank() == 0: + logger.info(f"update loco-zero++ error buffer with overflow: {overflow}") + # FP32 grad should never exist. + # For speed, set model fp16 grad to None by default + for group in self.fp16_groups: + for p in group: + if hasattr(p, 'intra_ef_buf'): + if overflow: + del p.intra_ef_buf + del p.inter_ef_buf + else: + p.intra_ef_buf[1] *= scale + p.inter_ef_buf[1] *= scale + @instrument_w_nvtx def _overflow_check_and_loss_scale_update(self): @@ -1896,6 +2041,9 @@ def _overflow_check_and_loss_scale_update(self): if self.overflow: self._overflow_clean_up(prev_scale) + #update loco error buf + self._loco_err_buf_update(self.overflow, self.loss_scale / prev_scale) + return self.overflow @instrument_w_nvtx @@ -1910,7 +2058,7 @@ def _post_step(self, timer_names): if self.swap_optimizer: self.optimizer_swapper.log_timers() - # self.invalidate_secondary_tensor() # given that we want hpz in forward pass when no_grad is set, we need to keep the secondary tensor + self.invalidate_secondary_tensor() self.timers.log(timer_names) @@ -1949,7 +2097,7 @@ def step(self, closure=None): return norm_groups = self._get_norm_groups() - scaled_global_grad_norm = get_global_norm(norm_list=norm_groups) + scaled_global_grad_norm = torch.linalg.vector_norm(torch.stack(norm_groups)) # Stash unscaled gradient norm self._global_grad_norm = scaled_global_grad_norm / self.loss_scale @@ -1984,7 +2132,7 @@ def step(self, closure=None): # warn user about caching allocator flushes memory_stats = get_accelerator().memory_stats() alloc_retries = memory_stats.get("num_alloc_retries") - if alloc_retries == None: + if alloc_retries is None: alloc_retries = 0 if alloc_retries > self.n_caching_allocator_flushes: if dist.get_rank() == 0: @@ -2033,8 +2181,8 @@ def unscale_and_clip_grads(self, sub_group_id, total_norm): if self.clip_grad > 0.: # norm is in fact norm*scale clip = ((total_norm / self.loss_scale) + 1e-6) / self.clip_grad - if clip > 1: - combined_scale = clip * self.loss_scale + clip = torch.clamp(clip, min=1.0) + combined_scale = clip * self.loss_scale self.fp32_partitioned_groups_flat[sub_group_id].grad.mul_(1. / combined_scale) @@ -2069,10 +2217,11 @@ def has_overflow(self, partition_gradients=True): self.inf_or_nan_tracker += torch.isnan(self.grad_partitions_flat_buffer).any() self.inf_or_nan_tracker = self.inf_or_nan_tracker > 0 - overflow_gpu = self.inf_or_nan_tracker.clone().to(torch.uint8) + overflow_gpu = self.inf_or_nan_tracker.clone().to(get_accelerator().current_device_name()).to( + torch.uint8) self.inf_or_nan_tracker.zero_() - if not get_accelerator().is_synchronized_device(): + if not get_accelerator().resolves_data_dependency(): get_accelerator().default_stream().wait_stream(self.reduce_and_partition_stream) dist.all_reduce(overflow_gpu, op=dist.ReduceOp.MAX, group=self.dp_process_group) @@ -2134,8 +2283,6 @@ def backward(self, loss, retain_graph=False): else: self.loss_scaler.backward(loss.float(), retain_graph=retain_graph) - self._get_param_coordinator(training=True).reset_step() - if self.swap_optimizer: self.optimizer_swapper.post_backward() @@ -2143,7 +2290,7 @@ def get_fp32_grad_partitions(self) -> Dict[int, Dict[int, Tensor]]: """get fp32 gradient partition dictionary accessed as grad_dict[parameter_group_index][parameter_index] """ - if not get_accelerator().is_synchronized_device(): + if not get_accelerator().resolves_data_dependency(): self.reduce_and_partition_stream.synchronize() grad_dict = collections.defaultdict(dict) if self.offload_optimizer: @@ -2160,26 +2307,20 @@ def get_fp32_grad_partitions(self) -> Dict[int, Dict[int, Tensor]]: return grad_dict def _fp32_state_allgather(self, param, fp32_state_partition): - reduce_buffer = torch.zeros(self.partition_count * fp32_state_partition.numel(), + reduce_buffer = torch.empty(self.partition_count * fp32_state_partition.numel(), dtype=torch.float32, - device=param.device).flatten() + device=param.device) my_rank = dist.get_rank(group=self.dp_process_group) - partitions = [ - reduce_buffer.narrow(0, - fp32_state_partition.numel() * i, fp32_state_partition.numel()) - for i in range(self.partition_count) - ] - partitions[my_rank].data.copy_(fp32_state_partition.data, non_blocking=False) - - dist.all_gather(partitions, partitions[my_rank], group=self.dp_process_group) - + partition = reduce_buffer.narrow(0, fp32_state_partition.numel() * my_rank, fp32_state_partition.numel()) + partition.data.copy_(fp32_state_partition.data, non_blocking=False) + dist.all_gather_into_tensor(reduce_buffer, partition, group=self.dp_process_group) return reduce_buffer.narrow(0, 0, param.ds_numel).view(param.ds_shape) def get_fp32_grad_for_param(self, param) -> Tensor: if not param.requires_grad: return None - if not get_accelerator().is_synchronized_device(): + if not get_accelerator().resolves_data_dependency(): self.reduce_and_partition_stream.synchronize() if self.offload_optimizer: @@ -2190,8 +2331,26 @@ def get_fp32_grad_for_param(self, param) -> Tensor: return self._fp32_state_allgather(param, fp32_grad) + def set_fp32_grad_for_param(self, value, param): + if not param.requires_grad: + return + + if not get_accelerator().resolves_data_dependency(): + self.reduce_and_partition_stream.synchronize() + + if self.offload_optimizer: + group_idx, dest_offset, num_elements = self.grad_position[self.get_param_id(param)] + fp32_grad = self.fp32_partitioned_groups_flat[group_idx].grad.narrow(0, dest_offset, num_elements) + else: + fp32_grad = self.__param_id_to_grad_partition[param.ds_id] + + my_rank = dist.get_rank(group=self.dp_process_group) + value_partition = value.flatten().narrow(0, fp32_grad.numel() * my_rank, fp32_grad.numel()) + + fp32_grad.data.copy_(value_partition.data) + def _get_fp32_opt_state_partition(self, param, optim_state_key=None): - if not get_accelerator().is_synchronized_device(): + if not get_accelerator().resolves_data_dependency(): self.reduce_and_partition_stream.synchronize() group_idx, dest_offset, num_elements = self.grad_position[self.get_param_id(param)] @@ -2238,17 +2397,11 @@ def set_full_hp_param(self, value, param, optim_state_key=None): ### Local API START ### - def get_local_fp32_param(self, param, optim_state_key=None) -> Tensor: - if not param.requires_grad: - return None - fp32_opt_state, group_idx = self._get_fp32_opt_state_partition(param, optim_state_key) - return fp32_opt_state - def get_local_fp32_grad_for_param(self, param) -> Tensor: if not param.requires_grad: return None - if not get_accelerator().is_synchronized_device(): + if not get_accelerator().resolves_data_dependency(): self.reduce_and_partition_stream.synchronize() if self.offload_optimizer: @@ -2258,6 +2411,30 @@ def get_local_fp32_grad_for_param(self, param) -> Tensor: fp32_grad = self.__param_id_to_grad_partition[param.ds_id].float() return fp32_grad + def set_local_grad_for_param(self, value, param): + if not param.requires_grad: + return + + assert value.numel() == param.ds_tensor.numel( + ), f" Number of elements do not match: {value.numel()} != {param.ds_tensor.ds_numel}" + + if not get_accelerator().resolves_data_dependency(): + self.reduce_and_partition_stream.synchronize() + + if self.offload_optimizer: + group_idx, dest_offset, num_elements = self.grad_position[self.get_param_id(param)] + fp32_grad = self.fp32_partitioned_groups_flat[group_idx].grad.narrow(0, dest_offset, num_elements) + else: + fp32_grad = self.__param_id_to_grad_partition[param.ds_id] + + fp32_grad.data.copy_(value.flatten().data) + + def get_local_fp32_param(self, param, optim_state_key=None) -> Tensor: + if not param.requires_grad: + return None + fp32_opt_state, group_idx = self._get_fp32_opt_state_partition(param, optim_state_key) + return fp32_opt_state + def set_local_hp_param(self, value, param, optim_state_key=None): if not param.requires_grad: return @@ -2272,7 +2449,7 @@ def set_local_hp_param(self, value, param, optim_state_key=None): if self._swappable_optimizer_subgroup(group_idx): self._optimizer_states_and_gradient_swap_out(group_idx) - logger.info(f"[set_local_hp_param][update the params' value successfully]") + # logger.info(f"[set_local_hp_param][update the params' value successfully]") ### Local API END ### @@ -2397,10 +2574,6 @@ def state_dict(self): if self.elastic_checkpoint: raise NotImplementedError("ZeRO-3 does not yet support elastic checkpointing, please disable for now.") - if self.swap_optimizer or self.params_in_nvme_and_cpu: - raise NotImplementedError( - "ZeRO-3 does not yet support checkpointing with NVMe offloading, please disable for now.") - return self._rigid_state_dict() @@ -2484,6 +2657,20 @@ def _rigid_load_state_dict(self, state_dict, load_optimizer_states=True): self.optimizer.load_state_dict(state_dict[OPTIMIZER_STATE_DICT]) self._clear_fp32_optimizer_param_groups() + if self.swap_optimizer: + # Purge the swapped optimizer state, it was initialized to the freshly created model and not the checkpoint + self.optimizer_swapper.purge_state() + + if self.swap_optimizer: + # Touch all parameters to synchronize all buffers + timer_names = set() + self._partition_all_parameters() + for sub_group_id, group in enumerate(self.fp16_groups): + self._prepare_sub_group(sub_group_id, timer_names) + self._reassign_or_swap_out_partitioned_parameters(sub_group_id) + self._release_sub_group(sub_group_id, timer_names) + self._post_step(timer_names) + # restore fp32 partitions for curr_param, saved_param in zip(self.fp32_partitioned_groups_flat, state_dict[FP32_FLAT_GROUPS]): curr_param.data.copy_(saved_param.data) @@ -2491,8 +2678,9 @@ def _rigid_load_state_dict(self, state_dict, load_optimizer_states=True): # restore fp16 partitions from fp32 for sub_group_id in range(len(self.fp32_partitioned_groups_flat)): fp32_param = self.fp32_partitioned_groups_flat[sub_group_id] - fp16_param = self.fp16_partitioned_groups_flat[sub_group_id] - fp16_param.data.copy_(fp32_param.data) + if sum(fp32_param.size()) > 0: + fp16_param = self.fp16_partitioned_groups_flat[sub_group_id] + fp16_param.data.copy_(fp32_param.data) # update fp16 unflattened params for sub_group_id in range(len(self.fp16_partitioned_groups_flat)): @@ -2508,7 +2696,8 @@ def load_state_dict(self, load_optimizer_states=True, load_from_fp32_weights=False, checkpoint_folder=None, - load_serial=None): + load_serial=None, + param_shapes=None): r"""Loading a ZeRO checkpoint Arguments: state_dict_list: List of all saved ZeRO checkpoints, one for each saved partition. @@ -2537,28 +2726,118 @@ def load_state_dict(self, if self.elastic_checkpoint: raise NotImplementedError("ZeRO-3 does not yet support elastic checkpointing, please disable for now.") - if self.swap_optimizer or self.params_in_nvme_and_cpu: - raise NotImplementedError( - "ZeRO-3 does not yet support checkpointing with NVMe offloading, please disable for now.") - - self._rigid_load_state_dict(state_dict_list[dist.get_rank(group=self.dp_process_group)], - load_optimizer_states=load_optimizer_states) - - # when use loading checkpoint serial, after finish loading, we need to - # delete the temp state_dict_list variable to save memory, then trigger - # the next rank's loading - if load_serial != None: - load_serial += 1 - rank = dist.get_rank(group=self.dp_process_group) - local_rank = dist.get_local_rank() - del state_dict_list[rank] - rank_end = dist.get_world_size() - 1 - if local_rank != rank_end: - dist.send(tensor=load_serial, dst=rank + 1) + if checkpoint_folder: + self._load_universal_checkpoint(checkpoint_folder, load_optimizer_states, load_from_fp32_weights, + param_shapes) + else: + self._rigid_load_state_dict(state_dict_list[dist.get_rank(group=self.dp_process_group)], + load_optimizer_states=load_optimizer_states) + + # when use loading checkpoint serial, after finish loading, we need to + # delete the temp state_dict_list variable to save memory, then trigger + # the next rank's loading + if load_serial is not None: + load_serial += 1 + rank = dist.get_rank(group=self.dp_process_group) + local_rank = dist.get_local_rank() + del state_dict_list[rank] + rank_end = dist.get_world_size() - 1 + if local_rank != rank_end: + dist.send(tensor=load_serial, dst=rank + 1) + + if len(self.persistent_parameters) > 0: + self.persistent_parameters[0].partition(self.persistent_parameters) + # self.persistent_parameters[0].all_gather(self.persistent_parameters) # this will be done in checkpoint_event_epilogue() so remove it to prevent double all_gather + + def _load_universal_checkpoint(self, checkpoint_folder, load_optimizer_states, load_from_fp32_weights, + param_shapes): + self.load_hp_checkpoint_state_from_checkpoint_dir_stage3(checkpoint_folder, param_shapes) + + def load_hp_checkpoint_state_from_checkpoint_dir_stage3(self, checkpoint_dir, param_shapes): + """ Load optimizer and model states from the checkpoint directory. """ + checkpoint_dir = os.path.join(checkpoint_dir, "zero") + optim_state_path = os.path.join(checkpoint_dir, "optimizer_state.pt") + assert os.path.isfile( + optim_state_path), f'{optim_state_path} containing optimizer global state is missing! Cannot proceed.' + + optim_sd = torch.load(optim_state_path, weights_only=False) + self._load_global_state_stage3(optim_sd) + + key_list = ["fp32", "exp_avg", "exp_avg_sq"] + + for key in key_list: + key_tensor = torch.empty(0) + for layer in param_shapes[0].keys(): + key_layer_state_partition = self.load_hp_checkpoint_state(os.path.join(checkpoint_dir, layer), key) + key_tensor = torch.cat((key_tensor, key_layer_state_partition)) + if key == "fp32": + self.fp32_partitioned_groups_flat[0].data.copy_(key_tensor) + self.optimizer.param_groups[0]['params'].append(self.fp32_partitioned_groups_flat[0]) + else: + optim_sd[OPTIMIZER_STATE_DICT]['state'][0][key] = key_tensor - if len(self.persistent_parameters) > 0: - self.persistent_parameters[0].partition(self.persistent_parameters) - # self.persistent_parameters[0].all_gather(self.persistent_parameters) # this will be done in checkpoint_event_epilogue() so remove it to prevent double all_gather + if self.swap_optimizer: + # Purge the swapped optimizer state, it was initialized to the freshly created model and not the checkpoint + self.optimizer_swapper.purge_state() + + if self.swap_optimizer: + # Touch all parameters to synchronize all buffers + timer_names = set() + self._partition_all_parameters() + for sub_group_id, group in enumerate(self.fp16_groups): + self._prepare_sub_group(sub_group_id, timer_names) + self._reassign_or_swap_out_partitioned_parameters(sub_group_id) + self._release_sub_group(sub_group_id, timer_names) + self._post_step(timer_names) + + self.optimizer.load_state_dict(optim_sd[OPTIMIZER_STATE_DICT]) + for param_group in self.optimizer.param_groups: + param_group['params'] = [] + + for sub_group_id in range(len(self.fp32_partitioned_groups_flat)): + fp32_param = self.fp32_partitioned_groups_flat[sub_group_id] + if sum(fp32_param.size()) > 0: + fp16_param = self.fp16_partitioned_groups_flat[sub_group_id] + fp16_param.data.copy_(fp32_param.data) + + for sub_group_id in range(len(self.fp16_partitioned_groups_flat)): + updated_params = self.unflatten(self.fp16_partitioned_groups_flat[sub_group_id], + self.fp16_partitioned_groups[sub_group_id]) + + for partitioned_param, q in zip(self.fp16_partitioned_groups[sub_group_id], updated_params): + partitioned_param.data = q.data + + def _load_global_state_stage3(self, sd): + self.loss_scaler = sd.get(LOSS_SCALER, self.loss_scaler) + self.dynamic_loss_scale = sd.get('dynamic_loss_scale', self.dynamic_loss_scale) + self.overflow = sd.get('overflow', self.overflow) + + def load_hp_checkpoint_state(self, folder, key): + local_rank = dist.get_local_rank() + + # Load tensors from files and reshape them to flat vectors + loaded_checkpoint_state = torch.load(os.path.join(folder, f"{key}.pt"), weights_only=False).view(-1) + + # Partition the loaded data according to the local rank + world_size = dist.get_world_size(group=self.dp_process_group) + unpartitioned_numel = loaded_checkpoint_state.numel() + partitioned_numel = math.ceil(unpartitioned_numel / world_size) + + if world_size * partitioned_numel != unpartitioned_numel: + padding_size = world_size * partitioned_numel - unpartitioned_numel + padding_tensor = torch.zeros(padding_size, dtype=loaded_checkpoint_state.dtype) + loaded_checkpoint_state = torch.cat([loaded_checkpoint_state, padding_tensor]) + checkpoint_state_partition = loaded_checkpoint_state.narrow(0, local_rank * partitioned_numel, + partitioned_numel) + + return checkpoint_state_partition + + def reset_swap_buffers(self): + timer_names = set() + for sub_group_id, group in enumerate(self.fp16_groups): + self._prepare_sub_group(sub_group_id, timer_names) + self._reassign_or_swap_out_partitioned_parameters(sub_group_id) + self._release_sub_group(sub_group_id, timer_names) def checkpoint_event_prologue(self): self._partition_all_parameters() @@ -2570,6 +2849,149 @@ def checkpoint_event_epilogue(self): def empty_partition_cache(self): self.parameter_offload.empty_partition_cache() + def offload_states(self, + include: Container[OffloadStateTypeEnum] = None, + device: OffloadDeviceEnum = OffloadDeviceEnum.cpu, + pin_memory: bool = True, + non_blocking: bool = False): + device = device.value + + self.empty_partition_cache() + + assert self.optimizer.__class__ == deepspeed.ops.adam.fused_adam.FusedAdam, f"Offloading is supported only for DeepSpeed FusedAdam." + + def needs_offload(target): + # return True + return target not in self.offloaded_states and (include == None or target in include) + + # HP param + if needs_offload(OffloadStateTypeEnum.hp_params): + if pin_memory: + if not hasattr(self, "hp_params_pin_buffers"): + self.hp_params_pin_buffers = [ + get_accelerator().pin_memory(torch.empty_like(t, device=device)) + for t in self.fp32_partitioned_groups_flat + ] + + for src_tensor, dest_buf in zip(self.fp32_partitioned_groups_flat, self.hp_params_pin_buffers): + dest_buf.copy_(src_tensor, non_blocking=non_blocking) + src_tensor.data = dest_buf + else: + for buf in self.fp32_partitioned_groups_flat: + buf.data = buf.data.to(device, non_blocking=non_blocking) + self.offloaded_states.add(OffloadStateTypeEnum.hp_params) + + # LP param + if needs_offload(OffloadStateTypeEnum.lp_params): + if pin_memory: + if not hasattr(self, "lp_param_contiguous_pin_buffer"): + self.lp_param_contiguous_pin_buffer = get_accelerator().pin_memory( + torch.empty_like(self.lp_param_buffer, device=device)) + self.lp_param_contiguous_pin_buffer.copy_(self.lp_param_buffer, non_blocking=non_blocking) + cpu_buffer = self.lp_param_contiguous_pin_buffer + else: + cpu_buffer = self.lp_param_buffer.to(device, non_blocking=non_blocking) + + self.lp_param_buffer.data = cpu_buffer + for tensor, offset, tensor_numel in get_mapping_to_flat_buffer( + [p.ds_tensor for p in self.module.parameters()]): + tensor.data = cpu_buffer.narrow(0, offset, tensor_numel) + + self.fp16_partitioned_groups_flat.clear() + self.offloaded_states.add(OffloadStateTypeEnum.lp_params) + + # LP grad + if needs_offload(OffloadStateTypeEnum.lp_grads): + if pin_memory: + if not hasattr(self, "lp_grad_partitions_flat_pin_buffers"): + self.lp_grad_partitions_flat_pin_buffers = get_accelerator().pin_memory( + torch.empty_like(self.grad_partitions_flat_buffer, device=device)) + self.lp_grad_partitions_flat_pin_buffers.copy_(self.grad_partitions_flat_buffer, + non_blocking=non_blocking) + self.grad_partitions_flat_buffer.data = self.lp_grad_partitions_flat_pin_buffers + else: + self.grad_partitions_flat_buffer.data = self.grad_partitions_flat_buffer.data.to(device) + self.averaged_gradients = {} + + self.__param_id_to_grad_partition = {} + + self.offloaded_states.add(OffloadStateTypeEnum.lp_grads) + + # contiguous bucket + if needs_offload(OffloadStateTypeEnum.contiguous_grad_buffer): + if hasattr(self, "_DeepSpeedZeroOptimizer_Stage3__ipg_bucket_flat_buffer"): + # Record properties like shape, strides, etc. as a meta tensor + self.grad_buffer_meta = self.__ipg_bucket_flat_buffer.to("meta") + self.__ipg_bucket_flat_buffer = None + self.offloaded_states.add(OffloadStateTypeEnum.contiguous_grad_buffer) + + # Adam + if needs_offload(OffloadStateTypeEnum.optim_states): + offload_adam_states(self.optimizer, device, pin_memory=pin_memory, non_blocking=non_blocking) + self.offloaded_states.add(OffloadStateTypeEnum.optim_states) + + gc.collect() + get_accelerator().empty_cache() + + def reload_states(self, non_blocking: bool = False): + + device = get_accelerator().current_device_name() + + # HP param + if OffloadStateTypeEnum.hp_params in self.offloaded_states: + if hasattr(self, "hp_params_pin_buffers"): + for src, dest in zip(self.hp_params_pin_buffers, self.fp32_partitioned_groups_flat): + dest.data = src.to(device, non_blocking=non_blocking) + else: + for buf in self.fp32_partitioned_groups_flat: + buf.data = buf.data.to(device, non_blocking=non_blocking) + self.offloaded_states.remove(OffloadStateTypeEnum.hp_params) + + # LP Param + if OffloadStateTypeEnum.lp_params in self.offloaded_states: + cpu_buffer = self.lp_param_contiguous_pin_buffer if hasattr( + self, "lp_param_contiguous_pin_buffer") else self.lp_param_buffer + self.lp_param_buffer.data = cpu_buffer.data.to(device, non_blocking=non_blocking) + self._set_fp16_partitioned_groups_flat() + + parameter_partitions = self._get_parameter_partitions() + for tensor, offset, tensor_numel in get_mapping_to_flat_buffer(parameter_partitions): + tensor.data = self.lp_param_buffer.narrow(0, offset, tensor_numel) + self.offloaded_states.remove(OffloadStateTypeEnum.lp_params) + + # LP grad + if OffloadStateTypeEnum.lp_grads in self.offloaded_states: + if hasattr(self, "lp_grad_partitions_flat_pin_buffers"): + self.grad_partitions_flat_buffer.data = self.lp_grad_partitions_flat_pin_buffers.to( + device, non_blocking=non_blocking) + else: + self.grad_partitions_flat_buffer.data = self.grad_partitions_flat_buffer.data.to( + device, non_blocking=non_blocking) + self.averaged_gradients = {} + + offset = 0 + all_params = list(itertools.chain.from_iterable(self.fp16_groups)) + for param in all_params: + self.__param_id_to_grad_partition[param.ds_id] = self.grad_partitions_flat_buffer.narrow( + 0, offset, param.partition_numel()) + offset += param.partition_numel() + + self.offloaded_states.remove(OffloadStateTypeEnum.lp_grads) + + # contiguous bucket + if OffloadStateTypeEnum.contiguous_grad_buffer in self.offloaded_states: + self.__ipg_bucket_flat_buffer = torch.empty_like(self.grad_buffer_meta, device=device) + # self.__ipg_bucket_flat_buffer.data = self.__ipg_bucket_flat_buffer.data.to(device) + self.offloaded_states.remove(OffloadStateTypeEnum.contiguous_grad_buffer) + + # Adam + if OffloadStateTypeEnum.optim_states in self.offloaded_states: + reload_adam_states(self.optimizer, device, non_blocking=non_blocking) + self.offloaded_states.remove(OffloadStateTypeEnum.optim_states) + + if non_blocking: + get_accelerator().synchronize() + def _handle_overflow(cpu_sum, x, i): import math diff --git a/deepspeed/runtime/zero/stage_1_and_2.py b/deepspeed/runtime/zero/stage_1_and_2.py index 4b92fe319bfa..2bece09bffc4 100755 --- a/deepspeed/runtime/zero/stage_1_and_2.py +++ b/deepspeed/runtime/zero/stage_1_and_2.py @@ -4,22 +4,20 @@ # DeepSpeed Team import torch -import os from deepspeed import comm as dist from packaging import version as pkg_version from collections import OrderedDict from torch._utils import _flatten_dense_tensors, _unflatten_dense_tensors -from deepspeed.runtime import ZeROOptimizer +from deepspeed.runtime.base_optimizer import ZeROOptimizer from deepspeed.runtime.fp16.loss_scaler import CreateLossScaler -from deepspeed.runtime.utils import (bwc_tensor_model_parallel_rank, get_global_norm, empty_cache, see_memory_usage, - inf, is_model_parallel_parameter, align_dense_tensors, all_gather_dp_groups, - all_gather_all_partitions) - +from deepspeed.runtime.utils import (empty_cache, see_memory_usage, inf, is_model_parallel_parameter, + align_dense_tensors, all_gather_dp_groups) from deepspeed.runtime.zero.config import ZeroStageEnum from deepspeed.runtime.zero.offload_config import OffloadDeviceEnum from deepspeed.ops.adam import DeepSpeedCPUAdam from deepspeed.utils import logger +from deepspeed.utils.bwc import bwc_tensor_model_parallel_rank from deepspeed.moe.utils import is_moe_param from deepspeed.git_version_info import version @@ -29,7 +27,7 @@ from deepspeed.checkpoint.constants import (DS_VERSION, GROUP_PADDINGS, PARTITION_COUNT, LOSS_SCALER, SINGLE_PARTITION_OF_FP32_GROUPS, BASE_OPTIMIZER_STATE, BASE_OPTIMIZER_STATE_STEP, CLIP_GRAD, ZERO_STAGE, PARAM_SLICE_MAPPINGS) -from deepspeed.utils import link_hp_params +from deepspeed.utils import link_hp_params, lazy_init_hp_params_optimizer_state from deepspeed.checkpoint import enable_universal_checkpoint from deepspeed.utils import groups @@ -41,6 +39,7 @@ OPTIMIZER_GRADIENTS_TIMER = 'optimizer_gradients' OPTIMIZER_STEP_TIMER = 'optimizer_step' OPTIMIZER_TIMERS = [OPTIMIZER_ALLGATHER_TIMER, OPTIMIZER_GRADIENTS_TIMER, OPTIMIZER_STEP_TIMER] +INITIAL_MICRO_STEP_ID = -1 def input(msg): @@ -76,11 +75,6 @@ def get_alignment_padding(tensor_list, alignment): return (alignment - remainder) if remainder else remainder -def move_to_cpu(tensor_list): - for tensor in tensor_list: - tensor.data = tensor.data.cpu() - - def print_rank_msg(msg): print(f"rank {dist.get_rank()} - {msg}") @@ -94,6 +88,12 @@ def _get_padded_tensor(src_tensor, size): return padded_tensor +def _pad_tensor_by_size(src_tensor, pad_size, dtype, device): + padded_tensor = torch.zeros(src_tensor.numel() + pad_size, dtype=dtype, device=device) + padded_tensor.data[:src_tensor.numel()].copy_(src_tensor.data) + return padded_tensor + + class DeepSpeedZeroOptimizer(ZeROOptimizer): """ DeepSpeedZeroOptimizer designed to reduce the memory footprint @@ -225,7 +225,7 @@ def __init__(self, self.gradient_predivide_factor = gradient_predivide_factor self.postscale_gradients = postscale_gradients self.gradient_accumulation_steps = gradient_accumulation_steps - self.micro_step_id = 0 + self.micro_step_id = INITIAL_MICRO_STEP_ID self.ignore_unused_parameters = ignore_unused_parameters self.round_robin_gradients = round_robin_gradients @@ -238,11 +238,11 @@ def __init__(self, f"Currently only supported using ZeRO-Offload with DeepSpeedCPUAdam. But current setting is ZeRO-Offload:{self.cpu_offload} and optimizer type {type(self.optimizer)}." \ f"Either disable fp16_master_weights_and_gradients or enable {self.zero_stage_string} Offload with DeepSpeedCPUAdam." - if self.reduce_scatter: + if self.reduce_scatter and self.partition_gradients: valid_reduce_scatter_dtypes = (torch.float16, torch.bfloat16, torch.float32) assert self.communication_data_type in valid_reduce_scatter_dtypes, f"{self.zero_stage_string} supports {valid_reduce_scatter_dtypes} communication_data_type with reduce scatter enabled. Got: '{self.communication_data_type}'" - assert self.gradient_predivide_factor == 1.0, "gradient_predivide_factor != 1.0 is not yet supported with {self.zero_stage_string} with reduce scatter enabled" - assert self.postscale_gradients, "pre-scale gradients is not yet supported with {self.zero_stage_string} with reduce scatter enabled" + assert self.gradient_predivide_factor == 1.0, f"gradient_predivide_factor != 1.0 is not yet supported with {self.zero_stage_string} with reduce scatter enabled" + assert self.postscale_gradients, f"pre-scale gradients is not yet supported with {self.zero_stage_string} with reduce scatter enabled" # param flattened by groups self.bit16_groups = [] @@ -295,6 +295,7 @@ def __init__(self, self.round_robin_bit16_groups = [] self.round_robin_bit16_indices = [] + self.round_robin_bit16_meta = [] # Use different parallel to do all_to_all_reduce related things # padding on each partition for alignment purposes @@ -309,6 +310,7 @@ def __init__(self, for param in param_group['params']: if param.requires_grad: param.grad_accum = None + param.param_idx_in_group = len(trainable_parameters) trainable_parameters.append(param) self.bit16_groups.append(trainable_parameters) @@ -317,7 +319,14 @@ def __init__(self, see_memory_usage(f"Before moving param group {i} to CPU") # move all the parameters to cpu to free up GPU space for creating flat buffer - move_to_cpu(self.bit16_groups[i]) + + # Create temp CPU param copies, free accelerator tensors + orig_group_numel = 0 + for param in self.bit16_groups[i]: + orig_group_numel += param.numel() + param.cpu_data = param.data.cpu() + param.data = torch.empty(1).to(param.device) + empty_cache() see_memory_usage(f"After moving param group {i} to CPU", force=False) @@ -335,21 +344,27 @@ def __init__(self, self.round_robin_bit16_groups.append(round_robin_tensors) self.round_robin_bit16_indices.append(round_robin_indices) - # create flat buffer in CPU and move to GPU - self.bit16_groups_flat.append( - self.flatten_dense_tensors_aligned( - self.round_robin_bit16_groups[i], - self.nccl_start_alignment_factor * dist.get_world_size(group=self.real_dp_process_group[i])).to( - get_accelerator().current_device_name())) - see_memory_usage(f"After flattening and moving param group {i} to GPU", force=False) + # Create meta tensors list, ordered according to round_robin_tensors + meta_tensors = [] + for param in round_robin_tensors: + meta_tensors.append(torch.zeros_like(param.cpu_data, device="meta")) + self.round_robin_bit16_meta.append(meta_tensors) - # Record padding required for alignment - if partition_id == dist.get_world_size(group=self.real_dp_process_group[i]) - 1: - padding = self.bit16_groups_flat[i].numel() - sum( - [t.numel() for t in self.round_robin_bit16_groups[i]]) - else: - padding = 0 - self.groups_padding.append(padding) + # create flat buffer in CPU + flattened_buffer = self.flatten_dense_tensors_aligned( + self.round_robin_bit16_groups[i], + self.nccl_start_alignment_factor * dist.get_world_size(group=self.real_dp_process_group[i]), + use_cpu_data=True) + + # free temp CPU params + for param in self.bit16_groups[i]: + del param.cpu_data + + # Move CPU flat tensor to the accelerator memory. + self.bit16_groups_flat.append(flattened_buffer.to(get_accelerator().current_device_name())) + del flattened_buffer + + see_memory_usage(f"After flattening and moving param group {i} to GPU", force=False) if dist.get_rank(group=self.real_dp_process_group[i]) == 0: see_memory_usage(f"After Flattening and after emptying param group {i} cache", force=False) @@ -362,6 +377,18 @@ def __init__(self, data_parallel_partitions = self.get_data_parallel_partitions(self.bit16_groups_flat[i], i) self.parallel_partitioned_bit16_groups.append(data_parallel_partitions) + # Record padding required for alignment + left_boundary = sum([t.numel() for t in data_parallel_partitions[:partition_id]]) + curr_partition_size = data_parallel_partitions[partition_id].numel() + + if orig_group_numel <= left_boundary: + padding = curr_partition_size + elif orig_group_numel < left_boundary + curr_partition_size: + padding = left_boundary + curr_partition_size - orig_group_numel + else: + padding = 0 + self.groups_padding.append(padding) + # verify that data partition start locations are 4-byte aligned for partitioned_data in data_parallel_partitions: assert (partitioned_data.data_ptr() % (2 * self.nccl_start_alignment_factor) == 0) @@ -370,11 +397,16 @@ def __init__(self, # Note that the params in single_partition_of_fp32_groups is cloned and detached # from the origin params of the model. if not fp16_master_weights_and_gradients: - self.single_partition_of_fp32_groups.append(self.parallel_partitioned_bit16_groups[i][partition_id].to( - self.device).clone().float().detach()) + weights_partition = self.parallel_partitioned_bit16_groups[i][partition_id].to( + self.device).clone().float().detach() else: - self.single_partition_of_fp32_groups.append(self.parallel_partitioned_bit16_groups[i][partition_id].to( - self.device).clone().half().detach()) + weights_partition = self.parallel_partitioned_bit16_groups[i][partition_id].to( + self.device).clone().half().detach() + + if self.cpu_offload: + weights_partition = get_accelerator().pin_memory(weights_partition) + + self.single_partition_of_fp32_groups.append(weights_partition) # Set local optimizer to have flat params of its own partition. # After this, the local optimizer will only contain its own partition of params. @@ -491,6 +523,7 @@ def __init__(self, self.reset_partition_gradient_structures() # creates backward hooks for gradient partitioning + self._grad_acc_hooks = [] if self.partition_gradients or self.overlap_comm: self.create_reduce_and_remove_grad_hooks() @@ -520,9 +553,20 @@ def __init__(self, see_memory_usage(f"After initializing ZeRO optimizer", force=True) self._link_all_hp_params() + self._hp_optimizer_states_linked = False + self._enable_universal_checkpoint() self._param_slice_mappings = self._create_param_mapping() + def destroy(self): + for i, _ in enumerate(self.optimizer.param_groups): + for p in self.bit16_groups[i]: + if getattr(p, '_hp_mapping', None): + p._hp_mapping = None + for hook in self._grad_acc_hooks: + hook.remove() + self.print_rank_0("Removed grad acc hooks") + def _enable_universal_checkpoint(self): for lp_param_group in self.bit16_groups: enable_universal_checkpoint(param_list=lp_param_group) @@ -540,14 +584,14 @@ def _create_param_mapping(self): return param_mapping def _link_all_hp_params(self): - dp_world_size = dist.get_world_size(group=self.dp_process_group) if self.cpu_offload: self._get_offload_gradient_dict() for i, _ in enumerate(self.optimizer.param_groups): # Link bit16 and fp32 params in partition partition_id = dist.get_rank(group=self.real_dp_process_group[i]) - partition_size = self.bit16_groups_flat[i].numel() // dp_world_size + partition_size = self.bit16_groups_flat[i].numel() // dist.get_world_size( + group=self.real_dp_process_group[i]) flat_hp_partition = self.single_partition_of_fp32_groups[i] link_hp_params(lp_param_list=self.bit16_groups[i], flat_hp_partition=flat_hp_partition, @@ -557,9 +601,15 @@ def _link_all_hp_params(self): param_group_index=i, partition_start=partition_id * partition_size, partition_size=partition_size, - partition_optimizer_state=self.optimizer.state[flat_hp_partition], dp_group=self.real_dp_process_group[i]) + def _lazy_init_hp_params_optimizer_state(self): + if not self._hp_optimizer_states_linked: + for i, _ in enumerate(self.optimizer.param_groups): + lazy_init_hp_params_optimizer_state(self.bit16_groups[i], self.single_partition_of_fp32_groups[i], + self.optimizer.state) + self._hp_optimizer_states_linked = True + def is_moe_group(self, group): return 'moe' in group and group['moe'] @@ -569,7 +619,7 @@ def _configure_moe_settings(self): assert self.contiguous_gradients, "Contiguous Gradients in ZeRO Stage 2 must be set to True for MoE. Other code paths are not tested with MoE" # NOTE: To run ZeRO stage 1 with MoE, we need to set self.contiguous_gradients to True or ignore the assertion if not self.partition_gradients and not self.contiguous_gradients: - logger.warn( + logger.warning( "ZeRO Stage 1 has not been thoroughly tested with MoE. This configuration is still experimental.") assert self.reduce_scatter, "Reduce Scatter in ZeRO Stage 2 must be set to True for MoE. Other code paths are not tested with MoE" @@ -591,8 +641,7 @@ def _configure_moe_settings(self): assert self.ep_process_group is not None, "Expert parallel group should be configured with MoE" def _update_model_bit16_weights(self, group_index): - updated_params = self.unflatten(self.bit16_groups_flat[group_index], - self.round_robin_bit16_groups[group_index]) + updated_params = self.unflatten(self.bit16_groups_flat[group_index], self.round_robin_bit16_meta[group_index]) for p, q in zip(self.round_robin_bit16_groups[group_index], updated_params): p.data = q.data @@ -644,8 +693,6 @@ def initialize_optimizer_states(self): # which do lazy initialization of the state at the first call to step. if isinstance(self.optimizer, torch.optim.Adagrad): self.optimizer = torch.optim.Adagrad(self.single_partition_of_fp32_groups, **self.optimizer.defaults) - else: - self.optimizer.step() if not self.cpu_offload: for group in self.single_partition_of_fp32_groups: @@ -685,8 +732,9 @@ def reduce_gradients(self, pipeline_parallel=False): def get_first_param_index(self, group_id, param_group, partition_id): for index, param in enumerate(param_group): param_id = self.get_param_id(param) - if partition_id in self.param_to_partition_ids[group_id][param_id]: - return index + if group_id in self.param_to_partition_ids and param_id in self.param_to_partition_ids[group_id]: + if partition_id in self.param_to_partition_ids[group_id][param_id]: + return index return None def initialize_gradient_partitioning_data_structures(self): @@ -724,7 +772,8 @@ def independent_gradient_partition_epilogue(self): self.params_already_reduced[i] = False if self.overlap_comm: - get_accelerator().synchronize() + if not get_accelerator().resolves_data_dependency(): + get_accelerator().synchronize() # It is safe to clear previously reduced grads of other partitions self._clear_previous_reduced_grads() @@ -865,7 +914,7 @@ def wrapper(param, i): def reduce_partition_and_remove_grads(*notneeded): self.reduce_ready_partitions_and_remove_grads(param, i) - grad_acc.register_hook(reduce_partition_and_remove_grads) + self._grad_acc_hooks.append(grad_acc.register_hook(reduce_partition_and_remove_grads)) self.grad_accs.append(grad_acc) wrapper(param, i) @@ -882,7 +931,8 @@ def report_ipg_memory_usage(self, tag, param_elems): ) # create a flat tensor aligned at the alignment boundary - def flatten_dense_tensors_aligned(self, tensor_list, alignment): + def flatten_dense_tensors_aligned(self, tensor_list, alignment, use_cpu_data=False): + tensor_list = [param.cpu_data for param in tensor_list] if use_cpu_data else tensor_list return self.flatten(align_dense_tensors(tensor_list, alignment)) ############### Independent Partition Gradient ######################## @@ -917,7 +967,7 @@ def reduce_independent_p_g_buckets_and_remove_grads(self, param, i): assert grad_reduc is not None, f"rank {dist.get_rank()} - Invalid to reduce Param {param_id} with None gradient" self.grads_in_ipg_bucket.append(grad_reduc) - self.params_in_ipg_bucket.append((i, param, param_id)) + self.params_in_ipg_bucket.append((i, param.param_idx_in_group, param_id)) #make sure the average tensor function knows how to average the gradients if is_moe_param(param): @@ -930,6 +980,8 @@ def print_rank_0(self, message): logger.info(message) def gradient_reduction_w_predivide(self, tensor): + if tensor.size().numel() == 0: + return tensor dp_world_size = dist.get_world_size(group=self.dp_process_group) @@ -999,8 +1051,9 @@ def allreduce_and_scatter(self, bucket, numel_per_bucket=500000000, log=None, di def average_tensor(self, tensor): if self.overlap_comm: stream = self.reduction_stream - if not get_accelerator().is_synchronized_device(): + if not get_accelerator().resolves_data_dependency(): stream.wait_stream(get_accelerator().current_stream()) + get_accelerator().current_stream().wait_stream(stream) else: stream = get_accelerator().current_stream() @@ -1020,17 +1073,14 @@ def average_tensor(self, tensor): process_group = self.dp_process_group # count = 0 - for i, param, param_id in self.params_in_ipg_bucket: + for i, param_idx_in_group, param_id in self.params_in_ipg_bucket: + param = self.bit16_groups[i][param_idx_in_group] process_group = self.dp_process_group - grad_reduc = self.get_gradient_for_reduction(param) - #Averages gradients at parameter level if ipg has a moe param - #Otherwise averaging is done at the entire buffer level at the end of the loop - # MoE param have different groups + if self.ipg_bucket_has_moe_params: process_group = self.expert_dp_process_group[param.group_name] if is_moe_param( param) else self.dp_process_group - grad_reduc.data.div_(dist.get_world_size(group=process_group) / float(self.sequence_parallel_size)) partition_ids = self.param_to_partition_ids[i][param_id] assert all([p_id < dist.get_world_size(group=process_group) for p_id in partition_ids @@ -1069,8 +1119,7 @@ def average_tensor(self, tensor): curr_size += numel prev_id, prev_process_group = partition_id, process_group - if not self.ipg_bucket_has_moe_params: - tensor.div_(dist.get_world_size(group=self.dp_process_group) / float(self.sequence_parallel_size)) + tensor.div_(dist.get_world_size(group=self.dp_process_group) / float(self.sequence_parallel_size)) buckets = {} for i, (dst, bucket_offset, numel) in enumerate(rank_and_offsets): @@ -1088,14 +1137,14 @@ def average_tensor(self, tensor): if self.use_multi_rank_bucket_allreduce: self.allreduce_and_scatter(buckets[bucket_key], numel_per_bucket=self.reduce_bucket_size, - divide=self.ipg_bucket_has_moe_params, + divide=False, process_group=bucket_key) else: dst, process_group = bucket_key self.allreduce_no_retain(buckets[bucket_key], numel_per_bucket=self.reduce_bucket_size, rank=dst, - divide=self.ipg_bucket_has_moe_params, + divide=False, process_group=process_group) ############################################################################## @@ -1185,9 +1234,7 @@ def copy_gradients_to_cpu(): if self.micro_step_id > 0: accumulate_gradients() - - # at the boundary we will send 32bit directly - if not self.is_gradient_accumulation_boundary: + else: copy_gradients_to_cpu() def set_norm_for_param_grad(self, param): @@ -1326,7 +1373,7 @@ def reduce_ipg_grads(self): self.average_tensor(extra_large_grad_reduc.view(-1)) self.extra_large_param_to_reduce = None else: - self.average_tensor(self.ipg_buffer[self.ipg_index]) + self.average_tensor(self.ipg_buffer[self.ipg_index].narrow(0, 0, self.elements_in_ipg_bucket)) else: self.buffered_reduce_fallback(None, self.grads_in_ipg_bucket, @@ -1343,7 +1390,8 @@ def reduce_ipg_grads(self): stream = get_accelerator().current_stream() with get_accelerator().stream(stream): - for _, param, param_id in self.params_in_ipg_bucket: + for group_idx, param_idx_in_group, param_id in self.params_in_ipg_bucket: + param = self.bit16_groups[group_idx][param_idx_in_group] assert self.params_already_reduced[param_id] == False, \ f"The parameter {param_id} has already been reduced. \ @@ -1436,11 +1484,10 @@ def set_none_gradients_to_zero(self, i, partition_id): for param_id in self.is_grad_computed[i][partition_id]: param = self.param_dict[param_id] if param.grad is None: - param.grad = torch.zero_like(param) + param.grad = torch.zeros_like(param) ######################Reduction Related Methods############################## def allreduce_bucket(self, bucket, rank=None, log=None, divide=True, process_group=None): - rank = None tensor = self.flatten(bucket) process_group = self.dp_process_group if process_group is None else process_group @@ -1481,7 +1528,8 @@ def _clear_previous_reduced_grads(self): def allreduce_and_copy(self, small_bucket, rank=None, log=None, divide=True, process_group=None): process_group = self.dp_process_group if process_group is None else process_group if self.overlap_comm: - get_accelerator().synchronize() + if not get_accelerator().resolves_data_dependency(): + get_accelerator().synchronize() # It is safe to clear the previously reduced grads of other partitions self._clear_previous_reduced_grads() stream = self.reduction_stream @@ -1630,16 +1678,16 @@ def get_grad_norm_direct(self, gradients, params, norm_type=2): Total norm of the parameters (viewed as a single vector). """ norm_type = float(norm_type) + all_norms = [] if norm_type == inf: - total_norm = max(g.data.abs().max() for g in gradients) - total_norm_cuda = get_accelerator().FloatTensor([float(total_norm)]) - dist.all_reduce(total_norm_cuda, op=dist.ReduceOp.MAX, group=self.dp_process_group) + for g in gradients: + all_norms.append(g.data.abs().max().float()) + total_norm = torch.stack(all_norms).max() + dist.all_reduce(total_norm, op=dist.ReduceOp.MAX, group=self.dp_process_group) # Take max across all GPUs. - self._model_parallel_all_reduce(tensor=total_norm_cuda, op=dist.ReduceOp.MAX) - total_norm = total_norm_cuda[0].item() + self._model_parallel_all_reduce(tensor=total_norm, op=dist.ReduceOp.MAX) else: - total_norm = 0.0 # if dist.get_rank() == 0: # logger.info(f"Total Norm beginning {total_norm}") for g, p in zip(gradients, params): @@ -1647,19 +1695,26 @@ def get_grad_norm_direct(self, gradients, params, norm_type=2): if hasattr(p, PIPE_REPLICATED) and p.ds_pipe_replicated: continue if is_model_parallel_parameter(p) or (self.model_parallel_rank == 0): - param_norm = g.data.double().norm(2) - total_norm += param_norm.item()**2 - # Sum across all model parallel GPUs. - total_norm_cuda = get_accelerator().FloatTensor([float(total_norm)]) - dist.all_reduce(total_norm_cuda, op=dist.ReduceOp.SUM, group=self.dp_process_group) + all_norms.append( + torch.linalg.vector_norm(g.data.double().detach(), + ord=norm_type).to(get_accelerator().current_device_name())) + if len(all_norms) > 0: + total_norm = torch.stack(all_norms).square().sum().float() + else: + total_norm = torch.tensor(0.0, dtype=torch.float32).to(self.device) + # Sum across all model parallel Device. + dist.all_reduce(total_norm, op=dist.ReduceOp.SUM, group=self.dp_process_group) - self._model_parallel_all_reduce(tensor=total_norm_cuda, op=dist.ReduceOp.SUM) + self._model_parallel_all_reduce(tensor=total_norm, op=dist.ReduceOp.SUM) - total_norm = total_norm_cuda[0].item()**(1. / norm_type) + total_norm = total_norm.pow(1. / norm_type) - if total_norm == float('inf') or total_norm == -float('inf') or total_norm != total_norm: - total_norm = -1 + norm_is_inf = total_norm.isinf() + norm_is_nan = total_norm.isnan() + inf_or_nan = norm_is_nan.logical_or(norm_is_inf) + err = torch.tensor(-1.0, device=self.device, dtype=torch.float) + total_norm = inf_or_nan * err + inf_or_nan.logical_not() * total_norm return total_norm # creates a flat fused tensor from the tensor list starting at the first_offset @@ -1733,18 +1788,20 @@ def scaled_global_norm(self, norm_type=2): assert norm_type == 2, "only L2 norm supported" norm_groups = [] for i, group in enumerate(self.bit16_groups): - partition_id = dist.get_rank(group=self.real_dp_process_group[i]) if self.cpu_offload: - norm_groups.append(self.complete_grad_norm_calculation_for_cpu_offload(self.params_in_partition[i])) - single_grad_partition = self.single_partition_of_fp32_groups[i].grad + # complete complete_grad_norm_calculation_for_cpu_offload return python float, moving back to + # torch.tensor as else statement returns tensor as well + norm = torch.tensor(self.complete_grad_norm_calculation_for_cpu_offload(self.params_in_partition[i]), + device=self.device) + norm_groups.append(norm) else: norm_groups.append(self.get_grad_norm_direct(self.averaged_gradients[i], self.params_in_partition[i])) if self.has_moe_layers: self._average_expert_grad_norms(norm_groups) - # note that the get_global_norm function only supports l2 norm - return get_global_norm(norm_list=norm_groups) + # calculating L2 norm + return torch.linalg.vector_norm(torch.stack(norm_groups), ord=norm_type) def get_bit16_param_group(self, group_no): bit16_partitions = self.parallel_partitioned_bit16_groups[group_no] @@ -1763,11 +1820,14 @@ def _optimizer_step(self, group_no): self.optimizer.step() self.optimizer.param_groups = original_param_groups + # We need to link optimizer state after the first step() call + self._lazy_init_hp_params_optimizer_state() + def step(self, closure=None): """ Not supporting closure. """ - self.micro_step_id = -1 + self.micro_step_id = INITIAL_MICRO_STEP_ID see_memory_usage(f"In step before checking overflow") @@ -1818,7 +1878,8 @@ def step(self, closure=None): # bit16_partitions[partition_id].data.copy_(fp32_partition.data) bit16_partitions = self.parallel_partitioned_bit16_groups[i] fp32_partition = self.single_partition_of_fp32_groups[i] - bit16_partitions[partition_id].data.copy_(fp32_partition.data) + bit16_partitions[partition_id].data.copy_( + fp32_partition.to(get_accelerator().current_device_name()).data) self.timers(OPTIMIZER_STEP_TIMER).stop() else: @@ -1866,16 +1927,11 @@ def step(self, closure=None): self.timers(OPTIMIZER_ALLGATHER_TIMER).start() # Gather the updated weights from everyone. # Then all partitions of the model parameters are updated and ready for next round forward. - if dist.has_all_gather_into_tensor(): - all_gather_all_partitions(global_flatten_group=self.bit16_groups_flat, - partitioned_param_groups=self.parallel_partitioned_bit16_groups, - dp_process_group=self.real_dp_process_group) - else: - all_gather_dp_groups(partitioned_param_groups=self.parallel_partitioned_bit16_groups, - dp_process_group=self.real_dp_process_group, - start_alignment_factor=self.nccl_start_alignment_factor, - allgather_bucket_size=self.allgather_bucket_size) - + all_gather_dp_groups(groups_flat=self.bit16_groups_flat, + partitioned_param_groups=self.parallel_partitioned_bit16_groups, + dp_process_group=self.real_dp_process_group, + start_alignment_factor=self.nccl_start_alignment_factor, + allgather_bucket_size=self.allgather_bucket_size) self.timers(OPTIMIZER_ALLGATHER_TIMER).stop() # TODO: we probably don't need this? just to be safe @@ -1896,26 +1952,20 @@ def update_lp_params(self): # print_rank_0(f'update_lp_params {i=} {partition_id=}', force=True) # if i == 0: # print_rank_0(f'{fp32_partition[:10]=}', force=True) - - if dist.has_all_gather_into_tensor(): - all_gather_all_partitions(global_flatten_group=self.bit16_groups_flat, - partitioned_param_groups=self.parallel_partitioned_bit16_groups, - dp_process_group=self.real_dp_process_group) - else: - all_gather_dp_groups(partitioned_param_groups=self.parallel_partitioned_bit16_groups, - dp_process_group=self.real_dp_process_group, - start_alignment_factor=self.nccl_start_alignment_factor, - allgather_bucket_size=self.allgather_bucket_size) + all_gather_dp_groups(groups_flat=self.bit16_groups_flat, + partitioned_param_groups=self.parallel_partitioned_bit16_groups, + dp_process_group=self.real_dp_process_group, + start_alignment_factor=self.nccl_start_alignment_factor, + allgather_bucket_size=self.allgather_bucket_size) def _average_expert_grad_norms(self, norm_groups): for i, norm in enumerate(norm_groups): if self.is_moe_param_group[i]: - scaled_norm = norm * 1.0 / float(dist.get_world_size(group=self.real_dp_process_group[i])) - scaled_norm_tensor = torch.tensor(scaled_norm, - device=get_accelerator().device_name(), - dtype=torch.float) + scaled_norm_tensor = norm * 1.0 / dist.get_world_size(group=self.real_dp_process_group[i]) + if self.device == 'cpu': + scaled_norm_tensor = scaled_norm_tensor.to(get_accelerator().current_device_name()) dist.all_reduce(scaled_norm_tensor, group=self.real_dp_process_group[i]) - norm_groups[i] = scaled_norm_tensor.item() + norm_groups[i] = scaled_norm_tensor.to(self.device) def unscale_and_clip_grads(self, grad_groups_flat, total_norm): # compute combined scale factor for this group @@ -1923,8 +1973,8 @@ def unscale_and_clip_grads(self, grad_groups_flat, total_norm): if self.clip_grad > 0.: # norm is in fact norm*scale clip = ((total_norm / self.loss_scale) + 1e-6) / self.clip_grad - if clip > 1: - combined_scale = clip * self.loss_scale + clip = torch.clamp(clip, min=1.0) + combined_scale = clip * self.loss_scale for grad in grad_groups_flat: if isinstance(grad, list): @@ -1938,24 +1988,26 @@ def _check_overflow(self, partition_gradients=True): self.overflow = self.has_overflow(partition_gradients) # `params` is a list / generator of torch.Variable - def has_overflow_serial(self, params, is_grad_list=False): + def has_overflow_serial(self, params): + invalid_grad_count = torch.zeros([1], dtype=torch.float, device=get_accelerator().current_device_name()) for p in params: - if p.grad is not None and self._has_inf_or_nan(p.grad.data): - return True - - return False + if p.grad is not None: + invalid_grad_count += self._has_inf_or_nan(p.grad) + return invalid_grad_count.bool() def has_overflow_partitioned_grads_serial(self): + invalid_grad_count = torch.zeros([1], dtype=torch.float, device=get_accelerator().current_device_name()) for i in range(len(self.bit16_groups)): for j, grad in enumerate(self.averaged_gradients[i]): - if grad is not None and self._has_inf_or_nan(grad.data, j): - return True - return False + if grad is not None: + invalid_grad_count += self._has_inf_or_nan(grad) + return invalid_grad_count.bool() def has_overflow(self, partition_gradients=True): if partition_gradients: overflow = self.local_overflow if self.cpu_offload else self.has_overflow_partitioned_grads_serial() - overflow_gpu = get_accelerator().ByteTensor([overflow]) + overflow_gpu = get_accelerator().ByteTensor([overflow]) if self.cpu_offload else overflow.byte().to( + get_accelerator().current_device_name()) '''This will capture overflow across all data parallel and expert parallel process Since expert parallel process are a subset of data parallel process''' dist.all_reduce(overflow_gpu, op=dist.ReduceOp.MAX, group=self.dp_process_group) @@ -1965,9 +2017,7 @@ def has_overflow(self, partition_gradients=True): for group in self.bit16_groups: for param in group: params.append(param) - - overflow = self.has_overflow_serial(params, is_grad_list=partition_gradients) - overflow_gpu = get_accelerator().ByteTensor([overflow]) + overflow_gpu = self.has_overflow_serial(params).byte().to(get_accelerator().current_device_name()) # Since each model parallel GPU carries only part of the model, # make sure overflow flag is synced across all the model parallel GPUs @@ -1979,24 +2029,11 @@ def has_overflow(self, partition_gradients=True): # `x` is a torch.Tensor @staticmethod def _has_inf_or_nan(x, j=None): - try: - # if x is half, the .float() incurs an additional deep copy, but it's necessary if - # Pytorch's .sum() creates a one-element tensor of the same type as x - # (which is true for some recent version of pytorch). - cpu_sum = float(x.float().sum()) - # More efficient version that can be used if .sum() returns a Python scalar - # cpu_sum = float(x.sum()) - except RuntimeError as instance: - # We want to check if inst is actually an overflow exception. - # RuntimeError could come from a different error. - # If so, we still want the exception to propagate. - if "value cannot be converted" not in instance.args[0]: - raise - return True - else: - if cpu_sum == float('inf') or cpu_sum == -float('inf') or cpu_sum != cpu_sum: - return True - return False + float_x = x.float() + nan = float_x.isnan() + inf = float_x.isinf() + inf_or_nan = nan.logical_or(inf) + return inf_or_nan.float().max() def backward(self, loss, retain_graph=False): """ @@ -2182,7 +2219,7 @@ def refresh_fp32_params(self): # Extract optimizer state for current partition from merged states of all partitions def _partition_base_optimizer_state(self, state_key, all_partition_states, group_id): partition_id = dist.get_rank(group=self.real_dp_process_group[group_id]) - alignment = dist.get_world_size(group=self.real_dp_process_group[group_id]) + alignment = self.nccl_start_alignment_factor * dist.get_world_size(group=self.real_dp_process_group[group_id]) if torch.is_tensor(all_partition_states[0]): flat_merged_partitions = self.flatten_dense_tensors_aligned(all_partition_states, alignment) dp_partitions = self.get_data_parallel_partitions(flat_merged_partitions, group_id) @@ -2191,19 +2228,39 @@ def _partition_base_optimizer_state(self, state_key, all_partition_states, group # Assume non-tensor states are not partitioned and equal across ranks, so return first one return all_partition_states[0] - def _restore_base_optimizer_state(self, base_optimizer_group_states): + def _restore_step_from_elastic_checkpoint(self, all_state_dict): + assert BASE_OPTIMIZER_STATE_STEP in all_state_dict[0] + assert all(sd[BASE_OPTIMIZER_STATE_STEP] == all_state_dict[0][BASE_OPTIMIZER_STATE_STEP] + for sd in all_state_dict), "State dicts of all partitions must have the same step value" + return all_state_dict[0][BASE_OPTIMIZER_STATE_STEP] + + def _restore_base_optimizer_state(self, base_optimizer_group_states, base_optimizer_state_step, group_paddings): if type(base_optimizer_group_states) == dict: base_optimizer_group_states = base_optimizer_group_states['state'] + + saved_keys = base_optimizer_group_states[0].keys() + for i, group in enumerate(self.optimizer.param_groups): p = group['params'][0] - for key, saved in base_optimizer_group_states[i].items(): - if torch.is_tensor(self.optimizer.state[p][key]): - dst_tensor = self.optimizer.state[p][key] - src_tensor = _get_padded_tensor(saved, dst_tensor.numel()) - self.optimizer.state[p][key].data.copy_(src_tensor.data) + padding = 0 if group_paddings is None else group_paddings[i] + for key in saved_keys: + saved = base_optimizer_group_states[i][key] + + if torch.is_tensor(saved): + if key in self.optimizer.state[p]: + dst_tensor = self.optimizer.state[p][key] + src_tensor = _get_padded_tensor(saved, dst_tensor.numel()) + self.optimizer.state[p][key].data.copy_(src_tensor.data) + else: + self.optimizer.state[p][key] = _pad_tensor_by_size( + saved, padding, torch.float32, + torch.device('cpu') if self.cpu_offload else self.device) else: self.optimizer.state[p][key] = saved + for param_group in self.optimizer.param_groups: + param_group['step'] = base_optimizer_state_step + def get_ep_ranks(self, rank=0, group_name=None): from deepspeed.utils import groups expert_parallel_size_ = groups._get_expert_parallel_world_size(group_name) @@ -2231,51 +2288,23 @@ def _restore_elastic_base_optimizer_state(self, all_state_dict): partition_states[key] = self._partition_base_optimizer_state(key, all_partition_states, i) base_optimizer_group_states.append(partition_states) - self._restore_base_optimizer_state(base_optimizer_group_states) - - # Restore step - if BASE_OPTIMIZER_STATE_STEP in all_state_dict[0]: - assert all(sd[BASE_OPTIMIZER_STATE_STEP] == all_state_dict[0][BASE_OPTIMIZER_STATE_STEP] - for sd in all_state_dict), "State dicts of all partitions must have the same step value" - loaded_param_groups_step = all_state_dict[0][BASE_OPTIMIZER_STATE_STEP] - for param_group in self.optimizer.param_groups: - param_group['step'] = loaded_param_groups_step + self._restore_base_optimizer_state(base_optimizer_group_states, + self._restore_step_from_elastic_checkpoint(all_state_dict), None) def load_state_dict(self, state_dict_list, load_optimizer_states=True, load_from_fp32_weights=False, checkpoint_folder=None, - load_serial=None): + load_serial=None, + param_shapes=None): if checkpoint_folder: self._load_universal_checkpoint(checkpoint_folder, load_optimizer_states, load_from_fp32_weights) else: self._load_legacy_checkpoint(state_dict_list, load_optimizer_states, load_from_fp32_weights) def _load_universal_checkpoint(self, checkpoint_folder, load_optimizer_states, load_from_fp32_weights): - self._load_hp_checkpoint_state(checkpoint_folder) - - @property - def param_groups(self): - """Forward the wrapped optimizer's parameters.""" - return self.optimizer.param_groups - - def _load_hp_checkpoint_state(self, checkpoint_dir): - checkpoint_dir = os.path.join(checkpoint_dir, "zero") - optim_state_path = os.path.join(checkpoint_dir, "optimizer_state.pt") - assert os.path.isfile( - optim_state_path), f'{optim_state_path} containing optimizer global state is missing! Cannot proceed.' - optim_sd = torch.load(optim_state_path) - self._load_global_state(optim_sd) - - tp_rank = bwc_tensor_model_parallel_rank(mpu=self.mpu) - tp_world_size = self.mpu.get_slice_parallel_world_size() - for i, _ in enumerate(self.optimizer.param_groups): - for lp in self.bit16_groups[i]: - if lp._hp_mapping is not None: - #print(f"Loading {self.param_names[lp]} {tp_rank=} {tp_world_size=}") - lp.load_hp_checkpoint_state(os.path.join(checkpoint_dir, self.param_names[lp]), tp_rank, - tp_world_size) + self.load_hp_checkpoint_state_from_checkpoint_dir("bit16_groups", checkpoint_folder) def _load_global_state(self, sd): self.loss_scaler = sd.get(LOSS_SCALER, self.loss_scaler) @@ -2349,7 +2378,9 @@ def _load_legacy_checkpoint(self, state_dict_list, load_optimizer_states=True, l self._restore_elastic_base_optimizer_state(state_dict_list) else: # loading an elastic checkpoint into rigid exec - self._restore_base_optimizer_state(current_rank_sd[BASE_OPTIMIZER_STATE]) + self._restore_base_optimizer_state(current_rank_sd[BASE_OPTIMIZER_STATE], + current_rank_sd[BASE_OPTIMIZER_STATE_STEP], + current_rank_sd[GROUP_PADDINGS]) # At this point, the optimizer's references to the model's fp32 parameters are up to date. # The optimizer's hyperparameters and internal buffers are also up to date. @@ -2408,7 +2439,9 @@ def estimate_zero2_model_states_mem_needs(total_params, gpu_mem = 2 * total_params cpu_mem = total_params * max(4 * total_gpus, 16) * additional_buffer_factor else: - gpu_mem = 4 * total_params + int(16 * total_params / total_gpus) + # GPU's total_params multipliers: 2 = params_16bit, + # 18 = 2_grads_16bit + 4_grads_32bit + 4_params_32bit + 8_optimizer_states_32bit(momentum and variance) + gpu_mem = 2 * total_params + int(18 * total_params / total_gpus) cpu_mem = total_params * 4 * num_gpus_per_node * additional_buffer_factor return int(cpu_mem), int(gpu_mem) diff --git a/deepspeed/runtime/zero/utils.py b/deepspeed/runtime/zero/utils.py index 0bf1ca4a894d..2d1cf17962d8 100755 --- a/deepspeed/runtime/zero/utils.py +++ b/deepspeed/runtime/zero/utils.py @@ -4,7 +4,7 @@ # DeepSpeed Team import os -from typing import List +from typing import List, Tuple import torch from deepspeed import comm as dist @@ -16,6 +16,9 @@ from deepspeed.utils.nvtx import instrument_w_nvtx from deepspeed.accelerator import get_accelerator +# ensure we only warn once, otherwise every iteration will trigger a warning +warned = False + def _initialize_parameter_parallel_groups(parameter_parallel_size=None): data_parallel_size = int(dist.get_world_size()) @@ -65,7 +68,6 @@ def get_lst_from_rank0(lst: List[int]) -> None: lst_tensor = torch.tensor( lst if dist.get_rank() == 0 else [-1] * len(lst), dtype=int, - # device=get_accelerator().current_device_name(), device=torch.device(get_accelerator().device_name(os.environ["LOCAL_RANK"])), requires_grad=False, ) @@ -87,3 +89,87 @@ def assert_ints_same_as_other_ranks(ints: List[int]) -> None: if ints != rank0_ints: raise RuntimeError(f"disagreement between rank0 and rank{dist.get_rank()}: " f"rank0: {rank0_ints}, rank{dist.get_rank()}: {ints}") + + +def is_builtin_type(obj): + # https://stackoverflow.com/a/17795199 + return obj.__class__.__module__ == '__builtin__' or obj.__class__.__module__ == "builtins" + + +def isinstance_namedtuple(obj: object) -> bool: + """ + Is this an instance of namedtuple/NamedTuple? + From: https://stackoverflow.com/a/62692640 + + Args: + obj (object): An object. + + Returns: + bool: True if namedtuple/NamedTuple else False. + """ + return isinstance(obj, tuple) and hasattr(obj, '_asdict') and hasattr(obj, '_fields') + + +def is_zero_param(parameter): + if not torch.is_tensor(parameter): + return False + return hasattr(parameter, 'ds_id') + + +def apply_to_tensors_only(function, value, warning_msg_fn=None): + """ + Apply `function` to every Tensor in `value`. + + Args: + functional: The function class to apply. + value (Any): Target object to apply `function` to. + + Returns: + Any: Output of `function`. + """ + if isinstance(value, (tuple, list)): + touched_outputs = [] + for elem in value: + touched_output = apply_to_tensors_only(function, elem) + touched_outputs.append(touched_output) + + if isinstance_namedtuple(value): + # namedtuples require a slightly different syntax. + return value.__class__(*touched_outputs) + + return value.__class__(touched_outputs) + elif isinstance(value, dict): + # apply inplace to avoid recreating dict inherited objects + for key in value.keys(): + value[key] = apply_to_tensors_only(function, value[key]) + return value + + elif isinstance(value, torch.Tensor): + # this also applies to torch.Tensor's subclasses like torch.nn.parameter.Parameter + touched_output = function(value) + + # restore zero param attributes if those get stripped by `backward_function` + if not is_zero_param(touched_output) and is_zero_param(value): + touched_output.ds_param_alias = value + + return touched_output + else: + if not is_builtin_type(value): + global warned + if warning_msg_fn and not warned and dist.get_rank() == 0: + logger.warning(warning_msg_fn(value)) + warned = True + return value + + +def get_mapping_to_flat_buffer(tensors: List[torch.Tensor]) -> List[Tuple[torch.Tensor, int, int]]: + tensor_infos: List[Tuple[torch.Tensor, int, int]] = [] + + offset = 0 + for tensor in tensors: + tensor_numel = tensor.numel() + # record some data so we can restore the device tensor later + tensor_infos.append((tensor, offset, tensor_numel)) + offset += tensor_numel + + return tensor_infos diff --git a/deepspeed/sequence/cross_entropy.py b/deepspeed/sequence/cross_entropy.py new file mode 100644 index 000000000000..baa7bc1ea7a8 --- /dev/null +++ b/deepspeed/sequence/cross_entropy.py @@ -0,0 +1,60 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import torch + +import deepspeed.comm as dist + + +class _VocabSequenceParallelCrossEntropy(torch.autograd.Function): + + @staticmethod + def forward(ctx, vocab_seq_parallel_logits, target, sp_group): + # vocab_seq_parallel_logits: [S/P, B, V] + # target: [S/P, B] + # return: [S, B] + + # Need softmax for backward + softmax = torch.nn.functional.softmax(vocab_seq_parallel_logits, dim=-1) + ctx.vocab_size = vocab_seq_parallel_logits.size(2) + loss = torch.nn.functional.nll_loss(softmax.log().view(-1, ctx.vocab_size), target.view(-1), reduction='none') + + sp_world_size = dist.get_world_size(sp_group) + sp_rank = dist.get_rank(sp_group) + ctx.sp_world_size = sp_world_size + ctx.sp_rank = sp_rank + ctx.seqlen = vocab_seq_parallel_logits.size(0) * sp_world_size + batch_size = vocab_seq_parallel_logits.size(1) + + loss_all = torch.empty(ctx.seqlen, + batch_size, + dtype=vocab_seq_parallel_logits.dtype, + device=vocab_seq_parallel_logits.device) + dist.all_gather_into_tensor(loss_all, loss, group=sp_group) + + ctx.save_for_backward(softmax, target) + + return loss_all + + @staticmethod + def backward(ctx, grad_output): + softmax, target = ctx.saved_tensors + + step_seqlen = ctx.seqlen // ctx.sp_world_size + sp_rank = ctx.sp_rank + grad_output_part = grad_output[step_seqlen * sp_rank:step_seqlen * (sp_rank + 1), :] + + grad_input = softmax + grad_2d = grad_input.view(-1, ctx.vocab_size) + arange_1d = torch.arange(start=0, end=grad_2d.size()[0], device=grad_2d.device) + + grad_2d[arange_1d, target.view(-1)] -= 1 + grad_input.mul_(grad_output_part.unsqueeze(dim=-1)) + + return grad_input, None, None, None + + +def vocab_sequence_parallel_cross_entropy(vocab_parallel_logits, target, sp_group): + return _VocabSequenceParallelCrossEntropy.apply(vocab_parallel_logits, target, sp_group) diff --git a/deepspeed/sequence/fpdt_layer.py b/deepspeed/sequence/fpdt_layer.py new file mode 100644 index 000000000000..4fa2cc988a19 --- /dev/null +++ b/deepspeed/sequence/fpdt_layer.py @@ -0,0 +1,1225 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import torch + +from typing import Optional, Any, Tuple +from torch import Tensor +from packaging import version +import deepspeed.comm as dist +from deepspeed.accelerator import get_accelerator + +try: + import flash_attn + from flash_attn.flash_attn_interface import _flash_attn_forward, _flash_attn_backward + flash_attn_version = version.parse(flash_attn.__version__) +except ImportError: + _flash_attn_forward = None + _flash_attn_backward = None + +from einops import rearrange +from .layer import single_all_to_all, apply_rotary_pos_emb + + +def _rotate_half_backward(x): + x = rearrange(x, '... (j d) -> ... j d', j=2) + x1, x2 = x.unbind(dim=-2) + return torch.cat((x2, -x1), dim=-1) + + +def apply_rotary_pos_emb_backward(grad_output, freqs_cos, freqs_sin): + rot_dim = freqs_cos.shape[-1] + grad, grad_pass = grad_output[..., :rot_dim], grad_output[..., rot_dim:] + grad_t = (grad * freqs_cos) + (_rotate_half_backward(grad * freqs_sin)) + grad = grad_t if grad_pass.shape[-1] == 0 else torch.cat((grad_t, grad_pass), dim=-1) + return grad + + +def _update_out_and_lse( + out: torch.Tensor, + lse: torch.Tensor, + block_out: torch.Tensor, + block_lse: torch.Tensor, +) -> Tuple[torch.Tensor, torch.Tensor]: + + block_out = block_out.to(torch.float32) + block_lse = block_lse.transpose(-2, -1).unsqueeze(dim=-1) + + new_lse = lse + torch.log1p(torch.exp(block_lse - lse)) + + out = torch.exp(lse - new_lse) * out + torch.exp(block_lse - new_lse) * block_out + + lse = new_lse + return out, lse + + +def update_out_and_lse( + out: Optional[torch.Tensor], + lse: Optional[torch.Tensor], + block_out: torch.Tensor, + block_lse: torch.Tensor, + slice_=None, +) -> Tuple[torch.Tensor, torch.Tensor]: + if out is None: + if slice_ is not None: + raise RuntimeError("first update_out_and_lse should not pass slice_ args") + out = block_out.to(torch.float32) + lse = block_lse.permute(0, 2, 1).contiguous().unsqueeze(dim=-1).contiguous() + elif slice_ is not None: + slice_out, slice_lse = out[slice_], lse[slice_] + slice_out, slice_lse = _update_out_and_lse(slice_out, slice_lse, block_out, block_lse) + out[slice_], lse[slice_] = slice_out, slice_lse + else: + out, lse = _update_out_and_lse(out, lse, block_out, block_lse) + return out, lse + + +class FPDT_InputConstruct(torch.nn.Module): + + def __init__(self, tokens, labels, loss_mask, attention_mask, position_ids, args, sp_size, sp_rank) -> None: + + super(FPDT_InputConstruct, self).__init__() + self.tokens = tokens + self.labels = labels + self.loss_mask = loss_mask + self.attention_mask = attention_mask + self.position_ids = position_ids + global_seq_len = tokens.shape[1] + batch_size = tokens.shape[0] + assert global_seq_len % sp_size == 0 + assert global_seq_len % args.ds_sequence_parallel_fpdt_chunk_size == 0 + num_chunk_per_gpu = global_seq_len // args.ds_sequence_parallel_fpdt_chunk_size + local_seq_len = global_seq_len // sp_size + assert local_seq_len % num_chunk_per_gpu == 0 + + self.num_chunk_per_gpu = num_chunk_per_gpu + self.chunk_size = local_seq_len // num_chunk_per_gpu + self.sp_size = sp_size + self.sp_rank = sp_rank + self.global_seq_len = global_seq_len + self.local_seq_len = local_seq_len + self.batch_size = batch_size + self.device = tokens.device + + def generate(self): + device = self.device + totalChunks = self.global_seq_len // self.chunk_size + token_chunk_idx = torch.arange(self.global_seq_len, device=device, dtype=torch.int) // self.chunk_size + chunk_to_gpu = torch.arange(totalChunks, device=device, dtype=torch.int) + chunk_to_gpu = chunk_to_gpu.reshape(self.num_chunk_per_gpu, -1).t().contiguous() + + gather_chunk = chunk_to_gpu.flatten().unsqueeze(1).contiguous() + mask = gather_chunk == token_chunk_idx + + indices = mask.nonzero(as_tuple=False) + gather_indices = indices[:, 0] + token_chunk_indices = indices[:, 1] + indices = torch.cat([token_chunk_indices[gather_indices == i] for i in range(gather_chunk.shape[0])]) + load_balanced_loss_mask = self.loss_mask[:, indices] if self.loss_mask is not None else self.loss_mask + + indices = indices.reshape(-1, self.chunk_size)[self.num_chunk_per_gpu * self.sp_rank:self.num_chunk_per_gpu * + (self.sp_rank + 1)].flatten().contiguous() + load_balanced_tokens = self.tokens[:, indices] + load_balanced_labels = self.labels[:, indices] if self.labels is not None else self.labels + + load_balanced_attention_mask = self.attention_mask if self.attention_mask is not None else self.attention_mask + load_balanced_position_ids = self.position_ids[:, + indices] if self.position_ids is not None else self.position_ids + + return load_balanced_tokens, load_balanced_labels, load_balanced_loss_mask, load_balanced_attention_mask, load_balanced_position_ids + + +class _FPDTGPUAttentionImpl_(torch.autograd.Function): + generate_vmap_rule = False + + @staticmethod + def forward(ctx: Any, + layernorm_output, + attention_mask, + inference_params, + rotary_pos_emb, + spg, + scatter_idx, + gather_idx, + hidden_size, + projection_size, + hidden_size_per_attention_head, + kv_projection_size, + qkv_linear_weight, + qkv_linear_bias, + dropout, + num_chunks=8, + cpu_offloading=True): + + do_save = layernorm_output.requires_grad + + if rotary_pos_emb is not None: + pos_emb_cos, pos_emb_sin = rotary_pos_emb[0].permute(1, 0, 2, 3), rotary_pos_emb[1].permute(1, 0, 2, 3) + ctx.pos_emb_cos = pos_emb_cos + ctx.pos_emb_sin = pos_emb_sin + else: + ctx.pos_emb_cos = None + ctx.pos_emb_sin = None + + with torch.no_grad(): + per_gpu_seq_len = layernorm_output.shape[0] + chunk_size = per_gpu_seq_len // num_chunks + assert chunk_size * num_chunks == per_gpu_seq_len + assert attention_mask is None + ctx.num_chunks = num_chunks + ctx.cpu_offloading = cpu_offloading + ctx.spg = spg + ctx.scatter_idx = scatter_idx + ctx.gather_idx = gather_idx + + device = get_accelerator().current_device_name() + ctx.device = device + ctx.dtype = layernorm_output.dtype + ctx.projection_size = projection_size + ctx.kv_projection_size = kv_projection_size + + global_q = [] + global_k = [] + global_v = [] + + ctx.softmax_scale = hidden_size_per_attention_head**(-0.5) + + ctx.dropout_p = dropout + ctx.window_size = (-1, -1) + ctx.alibi_slopes = None + + batch_size = layernorm_output.shape[1] + + global_o = [None for _ in range(num_chunks)] + global_lse = [None for _ in range(num_chunks)] + + for i in range(num_chunks): + + st = chunk_size * i + ed = st + chunk_size + + qkv_chunk = torch.matmul(layernorm_output[st:ed], qkv_linear_weight.t()) + qkv_linear_bias + + q_chunk = qkv_chunk[:, :, :projection_size].contiguous().reshape( + qkv_chunk.shape[0], qkv_chunk.shape[1], -1, + hidden_size_per_attention_head).permute(1, 0, 2, 3).contiguous() # b, l, nh, hd + q_chunk = single_all_to_all(q_chunk, scatter_idx, gather_idx, 0, spg) + global_q_chunk_len = q_chunk.shape[1] + if rotary_pos_emb is not None: + q_chunk = apply_rotary_pos_emb(q_chunk, + pos_emb_cos[:, global_q_chunk_len * i:global_q_chunk_len * (i + 1)], + pos_emb_sin[:, global_q_chunk_len * i:global_q_chunk_len * (i + 1)]) + global_q.append(q_chunk) + + k_chunk = qkv_chunk[:, :, projection_size:projection_size + kv_projection_size].contiguous().reshape( + qkv_chunk.shape[0], qkv_chunk.shape[1], -1, + hidden_size_per_attention_head).permute(1, 0, 2, 3).contiguous() # b, l, nh, hd + k_chunk = single_all_to_all(k_chunk, scatter_idx, gather_idx, 0, spg) + if rotary_pos_emb is not None: + k_chunk = apply_rotary_pos_emb(k_chunk, + pos_emb_cos[:, global_q_chunk_len * i:global_q_chunk_len * (i + 1)], + pos_emb_sin[:, global_q_chunk_len * i:global_q_chunk_len * (i + 1)]) + global_k.append(k_chunk) + + v_chunk = qkv_chunk[:, :, projection_size + kv_projection_size:].contiguous().reshape( + qkv_chunk.shape[0], qkv_chunk.shape[1], -1, + hidden_size_per_attention_head).permute(1, 0, 2, 3).contiguous() # b, l, nh, hd + v_chunk = single_all_to_all(v_chunk, scatter_idx, gather_idx, 0, spg) + global_v.append(v_chunk) + + for k_i in range(len(global_k)): + causal_chunk = i == k_i + if flash_attn_version >= version.parse("2.6.0"): + block_out, _, _, _, _, block_lse, _, _ = _flash_attn_forward(global_q[i], + global_k[k_i], + global_v[k_i], + ctx.dropout_p, + ctx.softmax_scale, + causal=causal_chunk, + window_size=ctx.window_size, + softcap=0.0, + alibi_slopes=ctx.alibi_slopes, + return_softmax=False) + else: + block_out, _, _, _, _, block_lse, _, _ = _flash_attn_forward(global_q[i], + global_k[k_i], + global_v[k_i], + ctx.dropout_p, + ctx.softmax_scale, + causal=causal_chunk, + window_size=ctx.window_size, + alibi_slopes=ctx.alibi_slopes, + return_softmax=False) + + global_o[i], global_lse[i] = update_out_and_lse(global_o[i], global_lse[i], block_out, block_lse) + + global_o[i] = global_o[i].to(q_chunk.dtype) + + output = [None for i in range(num_chunks)] + + for i in range(num_chunks): + global_lse[i] = global_lse[i][:, :, :, 0].permute(0, 2, 1).contiguous() + output[i] = single_all_to_all(global_o[i].to(ctx.dtype).contiguous(), gather_idx, scatter_idx, 0, spg) + output = torch.cat(output, dim=1) + + head_dim = output.shape[-1] + + if do_save: + ctx.save_for_backward(layernorm_output) + ctx.global_q = global_q + ctx.global_k = global_k + ctx.global_v = global_v + ctx.attn_output = global_o + ctx.attn_lse = global_lse + ctx.head_dim = head_dim + ctx.batch_size = batch_size + + ctx.qkv_linear_weight = qkv_linear_weight + ctx.qkv_linear_bias = qkv_linear_bias + + return output + + @staticmethod + def backward(ctx, grad_output): + + num_chunks = ctx.num_chunks + device = ctx.device + dtype = ctx.dtype + spg = ctx.spg + scatter_idx = ctx.scatter_idx + gather_idx = ctx.gather_idx + softmax_scale = ctx.softmax_scale + dropout_p = ctx.dropout_p + window_size = ctx.window_size + alibi_slopes = ctx.alibi_slopes + + projection_size = ctx.projection_size + kv_projection_size = ctx.kv_projection_size + + layernorm_output = ctx.saved_tensors[0] + + global_q = ctx.global_q + global_k = ctx.global_k + global_v = ctx.global_v + attn_output = ctx.attn_output + lse = ctx.attn_lse + + qkv_linear_weight = ctx.qkv_linear_weight + qkv_linear_bias = ctx.qkv_linear_bias + + input_chunk_size = layernorm_output.shape[0] // num_chunks + grad_layernorm_output = [ + torch.zeros((input_chunk_size, layernorm_output.shape[1], layernorm_output.shape[2]), + device=device, + dtype=dtype) for _ in range(num_chunks) + ] + + grad_global_attn_output = [] + chunk_size = grad_output.shape[1] // num_chunks + + for i in range(num_chunks): + st = chunk_size * i + ed = st + chunk_size + grad_global_attn_output.append( + single_all_to_all(grad_output[:, st:ed].contiguous(), scatter_idx, gather_idx, 0, spg)) + + del grad_output + + dq = [torch.zeros(global_q[0].shape, dtype=torch.float, device=device) for _ in range(num_chunks)] + dk = [torch.zeros(global_q[0].shape, dtype=torch.float, device=device) for _ in range(num_chunks)] + dv = [torch.zeros(global_q[0].shape, dtype=torch.float, device=device) for _ in range(num_chunks)] + + grad_qkv_linear_weight = torch.zeros(qkv_linear_weight.shape, + device=qkv_linear_weight.device, + dtype=torch.float) + grad_qkv_linear_bias = torch.zeros(qkv_linear_bias.shape, device=qkv_linear_weight.device, dtype=torch.float) + + for i in range(num_chunks): + k_chunk = global_k[i] + v_chunk = global_v[i] + + for q_i in range(num_chunks): + no_computation = q_i < i + if no_computation: + continue + + causal_chunk = q_i == i + + q_chunk = global_q[q_i] + attn_output_chunk = attn_output[q_i] + lse_chunk = lse[q_i] + d_out = grad_global_attn_output[q_i] + + dq_this = torch.zeros(global_q[0].shape, dtype=dtype, device=device) + dk_this = torch.zeros(global_k[0].shape, dtype=dtype, device=device) + dv_this = torch.zeros(global_v[0].shape, dtype=dtype, device=device) + + if flash_attn_version >= version.parse("2.6.0"): + _flash_attn_backward(d_out, + q_chunk, + k_chunk, + v_chunk, + attn_output_chunk, + lse_chunk, + dq_this, + dk_this, + dv_this, + dropout_p, + softmax_scale, + causal_chunk, + window_size, + softcap=0.0, + alibi_slopes=alibi_slopes, + deterministic=False, + rng_state=None) + else: + _flash_attn_backward(d_out, + q_chunk, + k_chunk, + v_chunk, + attn_output_chunk, + lse_chunk, + dq_this, + dk_this, + dv_this, + dropout_p, + softmax_scale, + causal_chunk, + window_size, + alibi_slopes=alibi_slopes, + deterministic=False, + rng_state=None) + + dq[q_i].add_(dq_this.to(torch.float)) + dk[i].add_(dk_this.to(torch.float)) + dv[i].add_(dv_this.to(torch.float)) + + dk_seq_len = dk[i].shape[1] + + if ctx.pos_emb_cos is not None: + dk[i] = apply_rotary_pos_emb_backward(dk[i].to(dtype), + ctx.pos_emb_cos[:, dk_seq_len * i:dk_seq_len * (i + 1)], + ctx.pos_emb_sin[:, dk_seq_len * i:dk_seq_len * (i + 1)]) + else: + dk[i] = dk[i].to(dtype) + dv[i] = dv[i].to(dtype) + dk[i] = single_all_to_all(dk[i].contiguous(), gather_idx, scatter_idx, 0, spg) + dv[i] = single_all_to_all(dv[i].contiguous(), gather_idx, scatter_idx, 0, spg) + + input_st = i * input_chunk_size + input_ed = input_st + input_chunk_size + + input_chunk = layernorm_output[input_st:input_ed].reshape(-1, layernorm_output.shape[-1]) + + dk[i] = dk[i].flatten(2).permute(1, 0, 2) + dv[i] = dv[i].flatten(2).permute(1, 0, 2) + l, b = dk[i].shape[0], dk[i].shape[1] + grad_qkv_linear_weight[projection_size:projection_size + kv_projection_size].add_( + torch.matmul(dk[i].reshape(l * b, -1).t(), input_chunk)) + grad_qkv_linear_weight[projection_size + kv_projection_size:].add_( + torch.matmul(dv[i].reshape(l * b, -1).t(), input_chunk)) + grad_qkv_linear_bias[projection_size:projection_size + kv_projection_size].add_(dk[i].sum(0).sum(0)) + grad_qkv_linear_bias[projection_size + kv_projection_size:].add_(dv[i].sum(0).sum(0)) + + grad_layernorm_output[i].add_( + torch.matmul(dk[i], qkv_linear_weight[projection_size:projection_size + kv_projection_size])) + grad_layernorm_output[i].add_(torch.matmul(dv[i], + qkv_linear_weight[projection_size + kv_projection_size:])) + + dk[i] = None + dv[i] = None + + for i in range(num_chunks): + dq_seq_len = dq[i].shape[1] + if ctx.pos_emb_cos is not None: + dq[i] = apply_rotary_pos_emb_backward(dq[i].to(dtype), + ctx.pos_emb_cos[:, dq_seq_len * i:dq_seq_len * (i + 1)], + ctx.pos_emb_sin[:, dq_seq_len * i:dq_seq_len * (i + 1)]) + else: + dq[i] = dq[i].to(dtype) + dq[i] = single_all_to_all(dq[i].to(dtype).contiguous(), gather_idx, scatter_idx, 0, spg) + + input_chunk = layernorm_output[:input_chunk_size].reshape(-1, layernorm_output.shape[-1]) + layernorm_output = layernorm_output[input_chunk_size:] + + dq[i] = dq[i].flatten(2).permute(1, 0, 2) + l, b = dq[i].shape[0], dq[i].shape[1] + grad_qkv_linear_weight[:projection_size].add_(torch.matmul(dq[i].reshape(l * b, -1).t(), input_chunk)) + grad_qkv_linear_bias[:projection_size].add_(dq[i].sum(0).sum(0)) + + grad_layernorm_output[i].add_(torch.matmul(dq[i], qkv_linear_weight[:projection_size])) + + dq[i] = None + + return torch.cat( + grad_layernorm_output, + dim=0).to(dtype), None, None, None, None, None, None, None, None, None, None, grad_qkv_linear_weight.to( + dtype), grad_qkv_linear_bias.to(dtype), None, None, None + + +class SequenceChunk: + + def __init__(self, chunk: torch.Tensor, device=None, is_in_use=False): + + self.chunk_shape = chunk.shape + self.chunk_dtype = chunk.dtype + self.device = chunk.device if device is None else device + + cpu_chunk = torch.empty(chunk.shape, dtype=chunk.dtype, device='cpu', pin_memory=True) + + if get_accelerator().on_accelerator(chunk): + cpu_chunk.copy_(chunk, non_blocking=True) + else: + cpu_chunk = chunk + + self.cpu_chunk = cpu_chunk + + self.gpu_chunk = chunk if is_in_use else None + + def load_to_gpu(self): + assert self.gpu_chunk is None + if self.gpu_chunk is not None: + pass + else: + gpu_chunk = torch.empty(self.chunk_shape, device=self.device, dtype=self.chunk_dtype) + gpu_chunk.copy_(self.cpu_chunk, non_blocking=True) + self.gpu_chunk = gpu_chunk + + def get_gpu_chunk(self): + assert self.gpu_chunk is not None and self.gpu_chunk.device == self.device + return self.gpu_chunk + + def check_gpu_chunk(self, ): + assert (self.gpu_chunk is not None) and ( + self.gpu_chunk.device == self.device + ), f"gpu_chunk {self.gpu_chunk is not None} shound be on {self.device}, but it is now on {self.gpu_chunk.device}" + return True + + def offload(self): + assert self.gpu_chunk is not None and self.gpu_chunk.device == self.device + del self.gpu_chunk + self.gpu_chunk = None + + def overwrite_to_cpu(self): + assert self.gpu_chunk is not None and self.gpu_chunk.device == self.device + self.cpu_chunk.copy_(self.gpu_chunk, non_blocking=True) + + +class _FPDTGPUOffloadingAttentionImpl_(torch.autograd.Function): + generate_vmap_rule = False + + @staticmethod + def forward(ctx: Any, + layernorm_output, + attention_mask, + inference_params, + rotary_pos_emb, + spg, + scatter_idx, + gather_idx, + hidden_size, + projection_size, + hidden_size_per_attention_head, + kv_projection_size, + qkv_linear_weight, + qkv_linear_bias, + dropout, + num_chunks=8, + cpu_offloading=True): + + do_save = layernorm_output.requires_grad + + if rotary_pos_emb is not None: + pos_emb_cos, pos_emb_sin = rotary_pos_emb[0].permute(1, 0, 2, 3), rotary_pos_emb[1].permute(1, 0, 2, 3) + ctx.pos_emb_cos = pos_emb_cos + ctx.pos_emb_sin = pos_emb_sin + else: + ctx.pos_emb_cos = None + ctx.pos_emb_sin = None + with torch.no_grad(): + per_gpu_seq_len = layernorm_output.shape[0] + chunk_size = per_gpu_seq_len // num_chunks + assert chunk_size * num_chunks == per_gpu_seq_len + assert attention_mask is None + ctx.num_chunks = num_chunks + ctx.cpu_offloading = cpu_offloading + ctx.spg = spg + ctx.scatter_idx = scatter_idx + ctx.gather_idx = gather_idx + + ctx.chunk_size = chunk_size + device = get_accelerator().current_device_name() + ctx.device = device + ctx.dtype = layernorm_output.dtype + ctx.projection_size = projection_size + ctx.kv_projection_size = kv_projection_size + + global_q = [] + global_k = [] + global_v = [] + + ctx.softmax_scale = hidden_size_per_attention_head**(-0.5) + + ctx.dropout_p = dropout + ctx.window_size = (-1, -1) + ctx.alibi_slopes = None + + batch_size = layernorm_output.shape[1] + + global_o = [] + global_lse = [] + + layernorm_output_cpu = [] + final_output = [] + + offload_stream = get_accelerator().Stream() + general_offload_stream = get_accelerator().Stream() + compute_stream = get_accelerator().default_stream() + + q_compute_chunk_idx = 0 + kv_compute_chunk_idx = 0 + for i in range(num_chunks): + + qkv_chunk = torch.matmul(layernorm_output[:chunk_size], + qkv_linear_weight.t()) + qkv_linear_bias # torch.Size([18126, 1, 12288]) + + with get_accelerator().stream(general_offload_stream): + layernorm_output_cpu.append(SequenceChunk(layernorm_output[:chunk_size])) + + layernorm_output = layernorm_output[chunk_size:] + + q_chunk = qkv_chunk[:, :, :projection_size].contiguous().reshape( + qkv_chunk.shape[0], qkv_chunk.shape[1], -1, + hidden_size_per_attention_head).permute(1, 0, 2, 3).contiguous() # b, l, nh, hd + q_chunk = single_all_to_all(q_chunk, scatter_idx, gather_idx, 0, spg) + global_q_chunk_len = q_chunk.shape[1] + + k_chunk = qkv_chunk[:, :, projection_size:projection_size + kv_projection_size].contiguous().reshape( + qkv_chunk.shape[0], qkv_chunk.shape[1], -1, + hidden_size_per_attention_head).permute(1, 0, 2, 3).contiguous() # b, l, nh, hd + k_chunk = single_all_to_all(k_chunk, scatter_idx, gather_idx, 0, spg) + + v_chunk = qkv_chunk[:, :, projection_size + kv_projection_size:].contiguous().reshape( + qkv_chunk.shape[0], qkv_chunk.shape[1], -1, + hidden_size_per_attention_head).permute(1, 0, 2, 3).contiguous() # b, l, nh, hd + v_chunk = single_all_to_all(v_chunk, scatter_idx, gather_idx, 0, spg) + + dist.barrier() + + if ctx.pos_emb_cos is not None: + pos_emb_cos_chunk = pos_emb_cos[:, global_q_chunk_len * i:global_q_chunk_len * (i + 1)] + pos_emb_sin_chunk = pos_emb_sin[:, global_q_chunk_len * i:global_q_chunk_len * (i + 1)] + + q_chunk = apply_rotary_pos_emb(q_chunk, pos_emb_cos_chunk, pos_emb_sin_chunk) + k_chunk = apply_rotary_pos_emb(k_chunk, pos_emb_cos_chunk, pos_emb_sin_chunk) + + compute_stream.wait_stream(offload_stream) + compute_stream.synchronize() + with get_accelerator().stream(offload_stream): + global_q.append(SequenceChunk(q_chunk, is_in_use=True)) + global_k.append(SequenceChunk(k_chunk, is_in_use=True)) + global_v.append(SequenceChunk(v_chunk, is_in_use=True)) + + del qkv_chunk + + cur_attn_output = None + cur_attn_lse = None + for k_i in range(len(global_k)): + causal_chunk = i == k_i + with get_accelerator().stream(compute_stream): + if flash_attn_version >= version.parse("2.6.0"): + block_out, _, _, _, _, block_lse, _, _ = _flash_attn_forward( + global_q[q_compute_chunk_idx].get_gpu_chunk(), + global_k[kv_compute_chunk_idx].get_gpu_chunk(), + global_v[kv_compute_chunk_idx].get_gpu_chunk(), + ctx.dropout_p, + ctx.softmax_scale, + causal=causal_chunk, + window_size=ctx.window_size, + softcap=0.0, + alibi_slopes=ctx.alibi_slopes, + return_softmax=False) + else: + block_out, _, _, _, _, block_lse, _, _ = _flash_attn_forward( + global_q[q_compute_chunk_idx].get_gpu_chunk(), + global_k[kv_compute_chunk_idx].get_gpu_chunk(), + global_v[kv_compute_chunk_idx].get_gpu_chunk(), + ctx.dropout_p, + ctx.softmax_scale, + causal=causal_chunk, + window_size=ctx.window_size, + alibi_slopes=ctx.alibi_slopes, + return_softmax=False) + cur_attn_output, cur_attn_lse = update_out_and_lse(cur_attn_output, cur_attn_lse, block_out, + block_lse) + + can_offload_kv = True + if k_i != (len(global_k) - 1) or i != (num_chunks - 1): + if k_i != (len(global_k) - 1): + next_kv_compute_chunk_idx = k_i + 1 + else: + next_kv_compute_chunk_idx = 0 + + if next_kv_compute_chunk_idx == kv_compute_chunk_idx: + can_offload_kv = False + else: + if next_kv_compute_chunk_idx != (len(global_k) - 1): + with get_accelerator().stream(offload_stream): + global_k[next_kv_compute_chunk_idx].load_to_gpu() + global_v[next_kv_compute_chunk_idx].load_to_gpu() + + if i == num_chunks - 1 and k_i == num_chunks - 1: + with get_accelerator().stream(offload_stream): + global_q[0].load_to_gpu() + global_k[0].load_to_gpu() + global_v[0].load_to_gpu() + global_o[0].load_to_gpu() + global_lse[0].load_to_gpu() + + compute_stream.wait_stream(offload_stream) + compute_stream.synchronize() + + if can_offload_kv: + global_k[kv_compute_chunk_idx].offload() + global_v[kv_compute_chunk_idx].offload() + kv_compute_chunk_idx = next_kv_compute_chunk_idx + + global_q[q_compute_chunk_idx].offload() + q_compute_chunk_idx += 1 + + all2all_output = single_all_to_all( + cur_attn_output.to(ctx.dtype).contiguous(), gather_idx, scatter_idx, 0, spg) + final_output.append(all2all_output) + with get_accelerator().stream(general_offload_stream): + global_o.append(SequenceChunk(cur_attn_output.to(ctx.dtype))) + global_lse.append(SequenceChunk(cur_attn_lse[:, :, :, 0].permute(0, 2, 1).contiguous())) + + compute_stream.wait_stream(general_offload_stream) + compute_stream.synchronize() + + final_output = torch.cat(final_output, dim=1) + + head_dim = final_output.shape[-1] + + if do_save: + ctx.layernorm_output = layernorm_output_cpu + ctx.global_q = global_q + ctx.global_k = global_k + ctx.global_v = global_v + ctx.attn_output = global_o + ctx.attn_lse = global_lse + ctx.head_dim = head_dim + ctx.batch_size = batch_size + + ctx.qkv_linear_weight = qkv_linear_weight + ctx.qkv_linear_bias = qkv_linear_bias + + return final_output + + @staticmethod + def backward(ctx, grad_output): + num_chunks = ctx.num_chunks + device = grad_output.device + dtype = ctx.dtype + spg = ctx.spg + scatter_idx = ctx.scatter_idx + gather_idx = ctx.gather_idx + softmax_scale = ctx.softmax_scale + dropout_p = ctx.dropout_p + window_size = ctx.window_size + alibi_slopes = ctx.alibi_slopes + + projection_size = ctx.projection_size + kv_projection_size = ctx.kv_projection_size + + layernorm_output = ctx.layernorm_output + + global_q = ctx.global_q + global_k = ctx.global_k + global_v = ctx.global_v + attn_output = ctx.attn_output + lse = ctx.attn_lse + + qkv_linear_weight = ctx.qkv_linear_weight + qkv_linear_bias = ctx.qkv_linear_bias + + offload_stream = get_accelerator().Stream() + general_offload_stream = get_accelerator().Stream() + compute_stream = get_accelerator().default_stream() + + chunk_size = grad_output.shape[1] // num_chunks + assert chunk_size == layernorm_output[0].cpu_chunk.shape[0] + + grad_layernorm_output = [ + torch.zeros(layernorm_output[0].chunk_shape, device=device, dtype=dtype) for _ in range(num_chunks) + ] + + grad_global_attn_output = [None for _ in range(num_chunks)] + + q_compute_chunk_idx = 0 + kv_compute_chunk_idx = 0 + last_q_accum_idx = 0 + + with get_accelerator().stream(general_offload_stream): + layernorm_output[0].load_to_gpu() + grad_qkv_linear_weight = torch.zeros(qkv_linear_weight.shape, + device=qkv_linear_weight.device, + dtype=torch.float) + grad_qkv_linear_bias = torch.zeros(qkv_linear_bias.shape, + device=qkv_linear_weight.device, + dtype=torch.float) + + grad_global_attn_output_chunk = single_all_to_all(grad_output[:, :chunk_size].contiguous(), scatter_idx, + gather_idx, 0, spg) + get_accelerator().synchronize() + grad_output = grad_output[:, chunk_size:] + + with get_accelerator().stream(offload_stream): + grad_global_attn_output[0] = SequenceChunk(grad_global_attn_output_chunk, is_in_use=True) + dq = [ + SequenceChunk(torch.zeros(global_q[0].chunk_shape, dtype=torch.float, device=device), is_in_use=True) + ] + [ + SequenceChunk(torch.zeros(global_q[0].chunk_shape, dtype=torch.float, device='cpu', pin_memory=True), + device) for _ in range(num_chunks - 1) + ] + dk_accum = torch.zeros(global_k[0].chunk_shape, dtype=torch.float, device=device) + dv_accum = torch.zeros(global_v[0].chunk_shape, dtype=torch.float, device=device) + + for i in range(num_chunks): + for q_i in range(num_chunks): + no_computation = q_i < i + if no_computation: + continue + + causal_chunk = q_i == i + + dq_this = torch.zeros(global_q[0].chunk_shape, dtype=dtype, device=device) + dk_this = torch.zeros(global_k[0].chunk_shape, dtype=dtype, device=device) + dv_this = torch.zeros(global_v[0].chunk_shape, dtype=dtype, device=device) + + with get_accelerator().stream(compute_stream): + if flash_attn_version >= version.parse("2.6.0"): + _flash_attn_backward(grad_global_attn_output[q_compute_chunk_idx].get_gpu_chunk(), + global_q[q_compute_chunk_idx].get_gpu_chunk(), + global_k[kv_compute_chunk_idx].get_gpu_chunk(), + global_v[kv_compute_chunk_idx].get_gpu_chunk(), + attn_output[q_compute_chunk_idx].get_gpu_chunk(), + lse[q_compute_chunk_idx].get_gpu_chunk(), + dq_this, + dk_this, + dv_this, + dropout_p, + softmax_scale, + causal_chunk, + window_size, + softcap=0.0, + alibi_slopes=alibi_slopes, + deterministic=False, + rng_state=None) + else: + _flash_attn_backward(grad_global_attn_output[q_compute_chunk_idx].get_gpu_chunk(), + global_q[q_compute_chunk_idx].get_gpu_chunk(), + global_k[kv_compute_chunk_idx].get_gpu_chunk(), + global_v[kv_compute_chunk_idx].get_gpu_chunk(), + attn_output[q_compute_chunk_idx].get_gpu_chunk(), + lse[q_compute_chunk_idx].get_gpu_chunk(), + dq_this, + dk_this, + dv_this, + dropout_p, + softmax_scale, + causal_chunk, + window_size, + alibi_slopes=alibi_slopes, + deterministic=False, + rng_state=None) + + if i != (len(global_k) - 1): + if q_i != (len(global_q) - 1): + next_q_compute_chunk_idx = q_i + 1 + else: + next_q_compute_chunk_idx = i + 1 + + can_offload_q = True + + if next_q_compute_chunk_idx == q_compute_chunk_idx: + can_offload_q = False + else: + with get_accelerator().stream(offload_stream): + if i > 0 or q_i > 0: + if can_offload_q and last_q_accum_idx != i: # the first q chunk calculate in the loop will be sent out, therefore we do not offload it + dq[last_q_accum_idx].offload() + dq[next_q_compute_chunk_idx].load_to_gpu() + global_q[next_q_compute_chunk_idx].load_to_gpu() + attn_output[next_q_compute_chunk_idx].load_to_gpu() + lse[next_q_compute_chunk_idx].load_to_gpu() + if grad_global_attn_output[next_q_compute_chunk_idx] is not None: + grad_global_attn_output[next_q_compute_chunk_idx].load_to_gpu() + + if grad_global_attn_output[next_q_compute_chunk_idx] is None: + grad_global_attn_output_chunk = single_all_to_all(grad_output[:, :chunk_size].contiguous(), + scatter_idx, gather_idx, 0, spg) + dist.barrier() + grad_output = grad_output[:, chunk_size:] + grad_global_attn_output[next_q_compute_chunk_idx] = SequenceChunk( + grad_global_attn_output_chunk, is_in_use=True) + + compute_stream.wait_stream(offload_stream) + compute_stream.synchronize() + + with get_accelerator().stream(compute_stream): + dq[q_compute_chunk_idx].check_gpu_chunk() + dq[q_compute_chunk_idx].gpu_chunk.add_(dq_this) + dk_accum.add_(dk_this) + dv_accum.add_(dv_this) + + offload_stream.wait_stream(compute_stream) + with get_accelerator().stream(offload_stream): + dq[q_compute_chunk_idx].overwrite_to_cpu() + + if can_offload_q: + global_q[q_compute_chunk_idx].offload() + attn_output[q_compute_chunk_idx].offload() + lse[q_compute_chunk_idx].offload() + grad_global_attn_output[q_compute_chunk_idx].offload() + + last_q_accum_idx = q_compute_chunk_idx + q_compute_chunk_idx = next_q_compute_chunk_idx + + compute_stream.wait_stream(offload_stream) + compute_stream.synchronize() + + dk_seq_len = dk_accum.shape[1] + + if ctx.pos_emb_cos is not None: + dq_accum = apply_rotary_pos_emb_backward(dq[kv_compute_chunk_idx].get_gpu_chunk().to(dtype), + ctx.pos_emb_cos[:, dk_seq_len * i:dk_seq_len * (i + 1)], + ctx.pos_emb_sin[:, dk_seq_len * i:dk_seq_len * (i + 1)]) + dk_accum = apply_rotary_pos_emb_backward(dk_accum.to(dtype), + ctx.pos_emb_cos[:, dk_seq_len * i:dk_seq_len * (i + 1)], + ctx.pos_emb_sin[:, dk_seq_len * i:dk_seq_len * (i + 1)]) + else: + dq_accum = dq[kv_compute_chunk_idx].get_gpu_chunk().to(dtype) + dk_accum = dk_accum.to(dtype) + dv_accum = dv_accum.to(dtype) + + dq_accum = single_all_to_all(dq_accum.contiguous(), gather_idx, scatter_idx, 0, spg) + dk_accum = single_all_to_all(dk_accum.contiguous(), gather_idx, scatter_idx, 0, spg) + dv_accum = single_all_to_all(dv_accum.contiguous(), gather_idx, scatter_idx, 0, spg) + + general_offload_stream.synchronize() + compute_stream.wait_stream(general_offload_stream) + dist.barrier() + + with get_accelerator().stream(compute_stream): + input_chunk = layernorm_output[i].get_gpu_chunk().reshape(-1, layernorm_output[i].chunk_shape[-1]) + + dq_accum = dq_accum.flatten(2).permute(1, 0, 2) + dk_accum = dk_accum.flatten(2).permute(1, 0, 2) + dv_accum = dv_accum.flatten(2).permute(1, 0, 2) + + l, b = dk_accum.shape[0], dk_accum.shape[1] + + grad_qkv_linear_weight[:projection_size].add_( + torch.matmul(dq_accum.reshape(l * b, -1).t(), input_chunk)) + grad_qkv_linear_weight[projection_size:projection_size + kv_projection_size].add_( + torch.matmul(dk_accum.reshape(l * b, -1).t(), input_chunk)) + grad_qkv_linear_weight[projection_size + kv_projection_size:].add_( + torch.matmul(dv_accum.reshape(l * b, -1).t(), input_chunk)) + + grad_qkv_linear_bias[:projection_size].add_(dq_accum.sum(0).sum(0)) + grad_qkv_linear_bias[projection_size:projection_size + kv_projection_size].add_(dk_accum.sum(0).sum(0)) + grad_qkv_linear_bias[projection_size + kv_projection_size:].add_(dv_accum.sum(0).sum(0)) + + grad_layernorm_output[i].add_(torch.matmul(dq_accum, qkv_linear_weight[:projection_size])) + grad_layernorm_output[i].add_( + torch.matmul(dk_accum, qkv_linear_weight[projection_size:projection_size + kv_projection_size])) + grad_layernorm_output[i].add_( + torch.matmul(dv_accum, qkv_linear_weight[projection_size + kv_projection_size:])) + + del dq_accum, dk_accum, dv_accum + dk_accum = torch.zeros(global_k[i].chunk_shape, dtype=torch.float, device=device) + dv_accum = torch.zeros(global_v[i].chunk_shape, dtype=torch.float, device=device) + dq[kv_compute_chunk_idx].offload() + dq[kv_compute_chunk_idx] = None + + if i != (len(global_k) - 1): + next_kv_compute_chunk_idx = kv_compute_chunk_idx + 1 + with get_accelerator().stream(offload_stream): + global_k[next_kv_compute_chunk_idx].load_to_gpu() + global_v[next_kv_compute_chunk_idx].load_to_gpu() + + with get_accelerator().stream(general_offload_stream): + layernorm_output[next_kv_compute_chunk_idx].load_to_gpu() + + compute_stream.wait_stream(offload_stream) + compute_stream.synchronize() + + layernorm_output[kv_compute_chunk_idx].offload() + global_k[kv_compute_chunk_idx].offload() + global_v[kv_compute_chunk_idx].offload() + kv_compute_chunk_idx = next_kv_compute_chunk_idx + + return torch.cat( + grad_layernorm_output, + dim=0).to(dtype), None, None, None, None, None, None, None, None, None, None, grad_qkv_linear_weight.to( + dtype), grad_qkv_linear_bias.to(dtype), None, None, None + + +class FPDT_Attention(torch.nn.Module): + + def __init__(self, + config, + first_weight, + first_bias, + second_weight, + second_bias, + sequence_process_group, + gather_idx: int = 0, + scatter_idx: int = 2, + return_bias=True, + chunk_size=65536, + enable_offloading=True) -> None: + + super(FPDT_Attention, self).__init__() + if _flash_attn_forward is None or _flash_attn_backward is None: + raise ImportError( + "DeepSpeed FPDT requires flash-attn 2.6.3. Please install it with `pip install flash-attn --no-build-isolation`." + ) + + self.spg = sequence_process_group + self.scatter_idx = scatter_idx + self.gather_idx = gather_idx + self.config = config + + self.projection_size = config.kv_channels * config.num_attention_heads + self.hidden_size_per_attention_head = self.projection_size // config.num_attention_heads + self.kv_projection_size = config.kv_channels * config.num_key_value_heads + self.hidden_size = config.hidden_size + + self.qkv_linear_weight = first_weight + self.qkv_linear_bias = first_bias + self.qkv_dense_weight = second_weight + self.qkv_dense_bias = second_bias + + self.reture_bias = return_bias + self.dropout = config.attention_dropout + + self.chunk_size = chunk_size + self.double_buffer = enable_offloading + + def forward(self, + layernorm_output, + attention_mask, + inference_params, + rotary_pos_emb, + cpu_offloading=True) -> Tensor: + self.num_chunks_attn = layernorm_output.shape[0] * dist.get_world_size(self.spg) // self.chunk_size + + if not cpu_offloading or self.num_chunks_attn == 1: + output = _FPDTGPUAttentionImpl_.apply(layernorm_output, attention_mask, inference_params, rotary_pos_emb, + self.spg, self.scatter_idx, self.gather_idx, self.hidden_size, + self.projection_size, self.hidden_size_per_attention_head, + self.kv_projection_size, self.qkv_linear_weight, + self.qkv_linear_bias, self.dropout, self.num_chunks_attn, + cpu_offloading) + else: + output = _FPDTGPUOffloadingAttentionImpl_.apply( + layernorm_output, attention_mask, inference_params, rotary_pos_emb, self.spg, self.scatter_idx, + self.gather_idx, self.hidden_size, self.projection_size, self.hidden_size_per_attention_head, + self.kv_projection_size, self.qkv_linear_weight, self.qkv_linear_bias, self.dropout, + self.num_chunks_attn, cpu_offloading) + + output = output.flatten(2).permute(1, 0, 2).contiguous() + + output = torch.matmul(output, self.qkv_dense_weight.t()) + if not self.reture_bias: + output += self.qkv_dense_bias + return output, self.qkv_dense_bias if self.reture_bias else None + + +@torch.jit.script +def bias_gelu(x): + return x * 0.5 * (1.0 + torch.tanh(0.79788456 * x * (1 + 0.044715 * x * x))) + + +@torch.jit.script +def bias_gelu_back(g, x): + tanh_out = torch.tanh(0.79788456 * x * (1 + 0.044715 * x * x)) + # sqrt(2/pi) * 3 * 0.044715 -> 0.1070322243 + ff = 0.5 * x * ((1 - tanh_out * tanh_out) * (0.79788456 + 0.1070322243 * x * x)) + 0.5 * (1 + tanh_out) + return ff * g + + +class FPDT_FFN(torch.autograd.Function): + generate_vmap_rule = False + + @staticmethod + def forward(ctx: Any, x, w1, b1, w2, b2, add_bias, chunk_size): + do_save = x.requires_grad + ctx.add_bias = add_bias + device = x.device + + with torch.no_grad(): + num_chunk = x.shape[0] // chunk_size + ctx.num_chunk = num_chunk + result = torch.empty(x.shape, device=device, dtype=x.dtype) + assert chunk_size * num_chunk == x.shape[0] + for i in range(num_chunk): + st = i * chunk_size + ed = st + chunk_size + x_ = torch.matmul(x[st:ed], w1.t()) + b1 + x_ = bias_gelu(x_) + if add_bias: + result[st:ed] = torch.matmul(x_, w2.t()) + b2 + else: + result[st:ed] = torch.matmul(x_, w2.t()) + + del x_ + + if do_save: + ctx.device = device + ctx.dtype = x.dtype + ctx.save_for_backward(x, w1, b1, w2, b2) + ctx.grad_x_shape = x.shape + return result.to(x.dtype), b2 if not add_bias else None + + @staticmethod + def backward(ctx, grad_output, grad_bias): + x, w1, b1, w2, b2 = ctx.saved_tensors + device = ctx.device + dtype = ctx.dtype + add_bias = ctx.add_bias + + num_chunk = ctx.num_chunk + chunk_size = x.shape[0] // num_chunk + assert chunk_size * num_chunk == grad_output.shape[0] + + grad_w2 = torch.zeros(w2.shape, device=device, dtype=torch.float) + grad_b2 = torch.zeros(b2.shape, device=device, dtype=torch.float) + grad_w1 = torch.zeros(w1.shape, device=device, dtype=torch.float) + grad_b1 = torch.zeros(b1.shape, device=device, dtype=torch.float) + + for i in range(num_chunk): + st = i * chunk_size + ed = st + chunk_size + x_chunk = x[st:ed] + + before_act = (torch.matmul(x_chunk, w1.t()) + b1) + before_act_2 = before_act**2 + tanh_out = torch.tanh(0.79788456 * before_act * (1 + 0.044715 * before_act_2)) + ff = 0.5 * before_act * ((1 - tanh_out * tanh_out) * + (0.79788456 + 0.1070322243 * before_act_2)) + 0.5 * (1 + tanh_out) + grad_w2.add_( + torch.matmul(grad_output[st:ed].reshape(-1, grad_output.shape[2]).t(), + (before_act * 0.5 * (1 + tanh_out)).reshape(-1, before_act.shape[2]))) + del before_act, before_act_2, tanh_out + + grad_inter = torch.matmul(grad_output[st:ed], w2) * ff + del ff + + grad_w1.add_(torch.matmul( + grad_inter.reshape(-1, grad_inter.shape[2]).t(), x_chunk.reshape(-1, x.shape[2]))) + grad_b1.add_(grad_inter.sum(0).sum(0)) + + x[st:ed].copy_(torch.matmul(grad_inter, w1)) + + del grad_inter + + if add_bias: + grad_b2.add_(grad_output[st:ed].sum(0).sum(0)) + + return x, grad_w1.to(dtype), grad_b1.to(dtype), grad_w2.to(dtype), grad_b2.to(dtype), None, None + + +class FPDT_LogitsLoss(torch.autograd.Function): + generate_vmap_rule = False + + @staticmethod + def forward(ctx: Any, lm_output, labels, logit_weights, rank, spg_size, spg, num_chunk): + labels = labels.t() + chunk_size = lm_output.shape[0] // num_chunk + assert chunk_size * num_chunk == lm_output.shape[0] + batch_size, local_seq_len = lm_output.shape[1], lm_output.shape[0] + loss = torch.empty((batch_size, local_seq_len), dtype=torch.float, device=lm_output.device) + + ctx.num_chunk = num_chunk + ctx.chunk_size = chunk_size + ctx.device = lm_output.device + ctx.dtype = lm_output.dtype + + ctx.rank = rank + ctx.local_seq_len = local_seq_len + with torch.no_grad(): + for i in range(num_chunk): + st = i * chunk_size + ed = st + chunk_size + logits_chunk = torch.matmul(lm_output[st:ed], logit_weights.t()).float() + + vocab_size = logits_chunk.size(2) + # nll + softmax = torch.nn.functional.softmax(logits_chunk, dim=-1) + loss_chunk = torch.nn.functional.nll_loss(softmax.log().reshape(-1, vocab_size).contiguous(), + labels[st:ed, :].reshape(-1).contiguous(), + reduction='none') + loss[:, st:ed] = loss_chunk.reshape(chunk_size, batch_size).t() + + del logits_chunk + ctx.save_for_backward(lm_output.to('cpu'), labels) + ctx.logit_weights = logit_weights + + seqlen = local_seq_len * spg_size + batch_size = loss.size(0) + loss = loss.t().contiguous() + loss_all = torch.empty(seqlen, batch_size, dtype=loss.dtype, device=loss.device).contiguous() + + dist.allgather_fn(loss_all, loss, group=spg) + + return loss_all + + @staticmethod + def backward(ctx, grad_output): + lm_output, labels = ctx.saved_tensors + logit_weights = ctx.logit_weights + device = ctx.device + dtype = ctx.dtype + num_chunk = ctx.num_chunk + chunk_size = ctx.chunk_size + + rank = ctx.rank + local_seq_len = ctx.local_seq_len + + grad_output = grad_output[rank * local_seq_len:(rank + 1) * local_seq_len] + grad_lm_output = [None for _ in range(num_chunk)] + grad_logit_weights = torch.zeros(logit_weights.shape, device=grad_output.device, dtype=torch.float) + for i in range(num_chunk): + st = i * chunk_size + ed = st + chunk_size + lm_output_chunk = lm_output[st:ed].to(device) + logits_chunk = torch.matmul(lm_output_chunk, logit_weights.t()).float() + + # nll + softmax = torch.nn.functional.softmax(logits_chunk, dim=-1) + vocab_size = logits_chunk.size(2) + + grad_input = softmax + grad_2d = grad_input.reshape(-1, vocab_size).contiguous() + arange_1d = torch.arange(start=0, end=grad_2d.size()[0], device=device) + + grad_2d[arange_1d, labels[st:ed, :].reshape(-1).contiguous()] -= 1 + grad_input.mul_(grad_output[:chunk_size, :].unsqueeze(dim=-1)) + grad_input = grad_input.to(dtype) + + grad_output = grad_output[chunk_size:].contiguous() + + grad_lm_output_chunk = torch.matmul(grad_input, logit_weights) + grad_lm_output[i] = grad_lm_output_chunk + + grad_logit_weights.add_( + torch.matmul( + grad_input.reshape(-1, grad_input.shape[2]).t(), + lm_output_chunk.reshape(-1, lm_output_chunk.shape[2]))) + + return torch.cat(grad_lm_output, dim=0).to(dtype), None, grad_logit_weights.to(dtype), None, None, None, None diff --git a/deepspeed/sequence/layer.py b/deepspeed/sequence/layer.py index e1dbff87f4ec..ba5e596e0d6d 100644 --- a/deepspeed/sequence/layer.py +++ b/deepspeed/sequence/layer.py @@ -2,59 +2,310 @@ # SPDX-License-Identifier: Apache-2.0 # DeepSpeed Team - import torch from typing import Any, Tuple from torch import Tensor from torch.nn import Module +from einops import rearrange + import deepspeed.comm as dist +from deepspeed.accelerator import get_accelerator +from deepspeed.module_inject.tp_shard import get_shard_size_list, set_num_kv_heads, get_num_kv_heads +from deepspeed.utils import groups + + +def _generate_layout_params(scatter_idx, batch_dim_idx, seq_world_size, input): + """ + This function generates the parameters required for `permute` and `reshape` operations, + which are used to process data before and after `all2all` communication. + """ + if batch_dim_idx == 0: + if scatter_idx < 2: + bs, global_seq_len, num_local_head, head_dim = input.shape + pre_all2all_inp_shape = [bs, seq_world_size, global_seq_len // seq_world_size, num_local_head, head_dim] + pre_all2all_permute_idx = (1, 0, 2, 3, 4) + + post_all2all_permute_idx = (1, 2, 0, 3, 4) + post_all2all_res_shape = [bs, global_seq_len // seq_world_size, seq_world_size * num_local_head, head_dim] + else: + bs, local_seq_len, num_total_head, head_dim = input.shape + assert num_total_head % seq_world_size == 0, f"Number of heads ({num_total_head}) must be divisible by the sequence parallel size ({seq_world_size})!" + pre_all2all_inp_shape = [bs, local_seq_len, seq_world_size, num_total_head // seq_world_size, head_dim] + pre_all2all_permute_idx = (2, 0, 1, 3, 4) + + post_all2all_permute_idx = (1, 0, 2, 3, 4) + post_all2all_res_shape = [bs, seq_world_size * local_seq_len, num_total_head // seq_world_size, head_dim] + else: + if scatter_idx < 2: + global_seq_len, bs, num_local_head, head_dim = input.shape + pre_all2all_inp_shape = [seq_world_size, global_seq_len // seq_world_size, bs, num_local_head, head_dim] + pre_all2all_permute_idx = None + + post_all2all_permute_idx = (1, 2, 0, 3, 4) + post_all2all_res_shape = [bs, seq_world_size * global_seq_len, num_local_head // seq_world_size, head_dim] + else: + local_seq_len, bs, num_total_head, head_dim = input.shape + assert num_total_head % seq_world_size == 0, f"Number of heads ({num_total_head}) must be divisible by the sequence parallel size ({seq_world_size})!" + pre_all2all_inp_shape = [local_seq_len, bs, seq_world_size, num_total_head // seq_world_size, head_dim] + pre_all2all_permute_idx = (2, 0, 1, 3, 4) + post_all2all_permute_idx = None + post_all2all_res_shape = [local_seq_len * seq_world_size, bs, num_total_head // seq_world_size, head_dim] + + return pre_all2all_permute_idx, pre_all2all_inp_shape, post_all2all_permute_idx, post_all2all_res_shape + + +def post_all2all(permute_idx, res_shape): + """ + Post-processing function for `all2all` communication. + """ + + def post_func(input): + if permute_idx is not None: + input = input.permute(permute_idx).contiguous() + output = input.reshape(res_shape).contiguous() + + return output + + return post_func + +def pre_all2all_fun(permute_idx, inp_shape, input): + """ + Pre-processing function for `all2all` communication. + """ + input_t = input.reshape(inp_shape).contiguous() + if permute_idx is not None: + input_t = input_t.permute(permute_idx).contiguous() + return input_t + + +def _rotate_half(x): + """ + change sign so the last dimension becomes [-odd, +even] + """ + x = rearrange(x, '... (j d) -> ... j d', j=2) + x1, x2 = x.unbind(dim=-2) + return torch.cat((-x2, x1), dim=-1) -def single_all_to_all(input, scatter_idx, gather_idx, group): + +def apply_rotary_pos_emb(t, freqs_cos, freqs_sin): + """ + input tensor t is of shape [seq_length, ..., dim] + rotary positional embeding tensor freqs is of shape [seq_length, ..., dim] + check https://kexue.fm/archives/8265 for detailed formulas + """ + rot_dim = freqs_cos.shape[-1] + # ideally t_pass is empty so rotary pos embedding is applied to all tensor t + t, t_pass = t[..., :rot_dim], t[..., rot_dim:] + + # first part is cosine component + # second part is sine component, need to change signs with _rotate_half method + t = (t * freqs_cos) + (_rotate_half(t) * freqs_sin) + + res = t if t_pass.shape[-1] == 0 else torch.cat((t, t_pass), dim=-1) + return res + + +def uneven_heads_all2all(input, scatter_idx, gather_idx, batch_dim_idx, group): seq_world_size = dist.get_world_size(group) inp_shape = list(input.shape) - inp_shape[scatter_idx] = inp_shape[scatter_idx] // seq_world_size - if scatter_idx < 2: - input_t = input.reshape( - [seq_world_size, inp_shape[scatter_idx]] + \ - inp_shape[scatter_idx + 1:] - ).contiguous() + assert batch_dim_idx in [0, 1], "batch_dim_idx must be either 0 or 1" + + if not (scatter_idx < 2): + input_splits = get_shard_size_list(inp_shape[scatter_idx], seq_world_size) + input = input.transpose(0, scatter_idx).contiguous() + local_heads = input_splits[groups._get_sequence_parallel_rank()] + output_splits = [local_heads] * seq_world_size + + output_buffer_shape = [seq_world_size * local_heads] + list(input.shape[1:]) + output = torch.empty(output_buffer_shape, device=input.device, dtype=input.dtype) + dist.all_to_all_single(output,input,output_split_sizes=output_splits,\ + input_split_sizes=input_splits,group=group) + ###[seq_ws*local_heads, ...] to [seq_ws, local_heads, ...] + output = output.view(seq_world_size, local_heads, *output.shape[1:]) + ###[seq_ws,local_heads,b,seq_len,...] to [seq_ws,seq_len,b,local_heads,...] + + ### batch_dim_idx=0 [seq_ws,local_heads,seq_len,b,...] to [b, seq_ws, seq_len, local_heads ...] + ### batch_dim_idx=1 [seq_ws,local_heads,b,seq_len,...] to [seq_ws,seq_len,b,local_heads,...] + if batch_dim_idx == 0: + order = [3, 0, 2, 1] + list(range(4, len(output.shape))) + output = output.permute(order).contiguous() + ###[b, seq_ws*local_seq_len, local_heads,...] + output = output.view(output.shape[0], inp_shape[gather_idx] * seq_world_size, + *output.shape[3:]).contiguous() + elif batch_dim_idx == 1: + output = output.transpose(1, 3).contiguous() + ###[seq_ws*local_seq_len, b, local_heads,...] + output = output.view(inp_shape[gather_idx] * seq_world_size, *output.shape[2:]).contiguous() else: - # transpose groups of heads with the seq-len parallel dimension, so that we can scatter them! - input_t = input.reshape( - [-1, seq_world_size, inp_shape[scatter_idx]] + \ - inp_shape[scatter_idx + 1:] - ).transpose(0, 1).contiguous() + # The compatibility handling of 4D and 3D tensors, standardizing to 3D. + input = input.reshape(input.shape[0], input.shape[1], -1) + + if batch_dim_idx == 0: #b,s,h + input = input.permute(1, 2, 0).contiguous() #s,h,b + elif batch_dim_idx == 1: #s,b,h + input = input.transpose(1, 2).contiguous() #s,h,b + seq_len, h, batch_size = input.shape + num_local_heads_list = get_shard_size_list(get_num_kv_heads(), seq_world_size) + local_heads = num_local_heads_list[groups._get_sequence_parallel_rank()] + h_dim = h // local_heads + local_seq_len = seq_len // seq_world_size + + input = input.view(seq_len * h, batch_size) + local_seq_len_with_heads = int(input.shape[0] / seq_world_size) # dim size of local_seq_len*local_heads*hdim + input_splits = [local_seq_len_with_heads] * seq_world_size + coeff = local_seq_len_with_heads // local_heads #per head: dim size of local_seq_len*hdim + + #uneven seq_world_size coeff, total_heads/local_heads. + heads_scale_coeff = get_num_kv_heads() / local_heads + + output_splits = [num_local_heads * coeff for num_local_heads in num_local_heads_list] + output_buff_d1_size = int(heads_scale_coeff * local_seq_len_with_heads) + total_h = int(inp_shape[gather_idx] * heads_scale_coeff) + output = torch.empty(output_buff_d1_size, input.shape[1], device=input.device, dtype=input.dtype) + dist.all_to_all_single(output,input,output_split_sizes=output_splits, \ + input_split_sizes=input_splits,group=group) + ################## + #suppose 7 heads divide into 4 ranks [2,2,2,1] + #chunk_num_heads_small=floor(7/4)=1 + #chunk_num_heads_large=ceil(7/4)=2 + #num_chunk_heads_large=len([2,2,2])=3, all2all_buffer_counts + #num_chunk_heads_small=len([1])=1, all2all_buffer_counts + #total_num_large_heads=sum([2,2,2])=7 + #total_num_small_heads=sum([1])=1 + + chunk_num_heads_small = get_num_kv_heads() // seq_world_size # even heads compatible + chunk_num_heads_large = chunk_num_heads_small + 1 + num_chunk_heads_large = get_num_kv_heads() % seq_world_size + num_chunk_heads_small = seq_world_size - num_chunk_heads_large + total_num_large_heads = num_chunk_heads_large * chunk_num_heads_large + total_num_small_heads = num_chunk_heads_small * chunk_num_heads_small + + heads_large_combine_size = coeff * total_num_large_heads + heads_small_combine_size = coeff * total_num_small_heads + heads_large_chunk, heads_small_chunk = output.split([heads_large_combine_size, heads_small_combine_size], + dim=0) + heads_large_chunk = heads_large_chunk.view(num_chunk_heads_large, local_seq_len, chunk_num_heads_large, h_dim, + batch_size) + heads_small_chunk = heads_small_chunk.view(num_chunk_heads_small, local_seq_len, chunk_num_heads_small, h_dim, + batch_size) + if batch_dim_idx == 0: + #[all2all_buffer_counts, local_seq_len, n_heads,dim,batch]->[batch,local_seq_len,all2all_buffer_counts*n_heads,dim] + order = [4, 1, 0, 2, 3] + heads_large_chunk = heads_large_chunk.permute(order).contiguous().view(batch_size, local_seq_len, + total_num_large_heads, h_dim) + heads_small_chunk = heads_small_chunk.permute(order).contiguous().view(batch_size, local_seq_len, + total_num_small_heads, h_dim) + elif batch_dim_idx == 1: + #[all2all_buffer_counts, local_seq_len, n_heads,dim,batch]->[local_seq_len,batch,all2all_buffer_counts*n_heads,dim] + order = [1, 4, 0, 2, 3] + heads_large_chunk = heads_large_chunk.permute(order).contiguous().view(local_seq_len, batch_size, + total_num_large_heads, h_dim) + heads_small_chunk = heads_small_chunk.permute(order).contiguous().view(local_seq_len, batch_size, + total_num_small_heads, h_dim) + + output = torch.cat([heads_large_chunk, heads_small_chunk], dim=2).contiguous() + + inp_shape[scatter_idx] = inp_shape[scatter_idx] // seq_world_size + output_shape= inp_shape[: gather_idx] + \ + [total_h,] + \ + inp_shape[gather_idx + 1:] + + output = output.view(output_shape) + + return output + + +def single_all_to_all(input, scatter_idx, gather_idx, batch_dim_idx, group, async_op=False, handle=None, type=None): + seq_world_size = dist.get_world_size(group) + # we only need num_heads once + num_heads = input.shape[2] + + if get_num_kv_heads() is not None or (num_heads % seq_world_size != 0 and not scatter_idx < 2): + # Assuming here that the number of heads for q is consistent with kv + # If not, additional logic is required for cases like GQA + if get_num_kv_heads() is None: + assert num_heads > seq_world_size, f"Number of heads ({num_heads}) must be larger than sequence parallel size ({seq_world_size})" + # set heads at first call by num_total_heads. + # then use ``get_num_kv_heads() is not None`` to re-entry uneven path. + set_num_kv_heads(num_heads) + assert async_op == False, "uneven head sp does not support async op" + return uneven_heads_all2all(input, scatter_idx, gather_idx, batch_dim_idx, group) + + pre_all2all_permute_idx, pre_all2all_inp_shape, post_all2all_permute_idx, post_all2all_res_shape = _generate_layout_params( + scatter_idx, batch_dim_idx, seq_world_size, input) + input_t = pre_all2all_fun(pre_all2all_permute_idx, pre_all2all_inp_shape, input) + + post_all2all_fun = post_all2all(post_all2all_permute_idx, post_all2all_res_shape) output = torch.empty_like(input_t) - dist.all_to_all_single(output, input_t, group=group) + work = dist.all_to_all_single(output, input_t, group=group, async_op=async_op) - # if scattering the seq-dim, transpose the heads back to the original dimension - if scatter_idx < 2: - output = output.transpose(0, 1).contiguous() + if async_op: + if type in ('dq', 'dk'): + handle[type + '_work'] = work + handle[type + '_grad'] = output + handle[type + '_post_all2all_func'] = post_all2all_fun + return output.view(post_all2all_res_shape) - return output.reshape( - inp_shape[: gather_idx] + \ - [inp_shape[gather_idx] * seq_world_size,] + \ - inp_shape[gather_idx + 1:]).contiguous() + res = post_all2all_fun(output) + return res class _SeqAllToAll(torch.autograd.Function): @staticmethod - def forward(ctx: Any, group: dist.ProcessGroup, input: Tensor, scatter_idx: int, gather_idx: int) -> Tensor: - + def forward(ctx: Any, + group: dist.ProcessGroup, + input: Tensor, + scatter_idx: int, + gather_idx: int, + batch_dim_idx: int, + stream=None, + handle=None, + type=None, + is_fwd=True) -> Tensor: ctx.group = group ctx.scatter_idx = scatter_idx ctx.gather_idx = gather_idx + ctx.stream = stream + ctx.handle = handle + ctx.type = type + ctx.batch_dim_idx = batch_dim_idx + if ctx.handle is None: + res = single_all_to_all(input, scatter_idx, gather_idx, batch_dim_idx, group, False) + + else: + # overlap communication path + if not is_fwd and type == 'o': + assert ctx.stream != None + res = single_all_to_all(input, scatter_idx, gather_idx, batch_dim_idx, group, False) + get_accelerator().current_stream().wait_stream(ctx.stream) + # The computation of d o_weight can overlap with the communication of d o_input + + elif not is_fwd and type in ('q', 'k'): + # Achieve communication overlap by pipelining the matrix computation and communication of dq, dk, and dv + type = 'd' + type + res = single_all_to_all(input, scatter_idx, gather_idx, batch_dim_idx, group, True, handle, type) - return single_all_to_all(input, scatter_idx, gather_idx, group) + elif is_fwd and type in ('q', 'k'): + # Achieve communication overlap by pipelining the matrix computation and communication of q, k, and v + type = 'fwd_' + type + res = single_all_to_all(input, scatter_idx, gather_idx, batch_dim_idx, group, False, handle, type) + + else: + res = single_all_to_all(input, scatter_idx, gather_idx, batch_dim_idx, group, False) + + return res @staticmethod def backward(ctx: Any, *grad_output: Tensor) -> Tuple[None, Tensor, None, None]: - return (None, _SeqAllToAll.apply(ctx.group, *grad_output, ctx.gather_idx, ctx.scatter_idx), None, None) + + return (None, + _SeqAllToAll.apply(ctx.group, *grad_output, ctx.gather_idx, ctx.scatter_idx, ctx.batch_dim_idx, + ctx.stream, ctx.handle, ctx.type, False), None, None, None, None, None, None, None) class DistributedAttention(torch.nn.Module): @@ -73,6 +324,7 @@ def __init__( sequence_process_group: dist.ProcessGroup, scatter_idx: int = 2, gather_idx: int = 0, + sp_stream=None, ) -> None: super(DistributedAttention, self).__init__() @@ -80,30 +332,89 @@ def __init__( self.spg = sequence_process_group self.scatter_idx = scatter_idx self.gather_idx = gather_idx + self.sp_overlap_comm = False + self.overlap_handles = None + self.sp_stream = sp_stream + if sp_stream is not None: + self.overlap_handles = {} + self.sp_overlap_comm = True + self.dafult_stream = get_accelerator().default_stream() + + def layer_sync(self, layer): + if self.sp_overlap_comm and hasattr(layer, 'done_event'): + self.dafult_stream.wait_event(layer.done_event) - def forward(self, query: Tensor, key: Tensor, value: Tensor, *args: Any) -> Tensor: + def forward(self, + query: Tensor, + key: Tensor, + value: Tensor, + batch_dim_idx: int, + rotary_pos_emb=None, + *args: Any, + **kwargs) -> Tensor: """ forward Arguments: query (Tensor): query input to the layer key (Tensor): key input to the layer value (Tensor): value input to the layer + batch_dim_idx (int): indicating which dim is batch args: other args Returns: * output (Tensor): context output """ + # TODO Merge three alltoall calls into one # TODO (Reza): change the api on the megatron-deepspeed side so that we only receive all data (q,k, and v) together! #in shape : e.g., [s/p:h:] - query_layer = _SeqAllToAll.apply(self.spg, query, self.scatter_idx, self.gather_idx) - key_layer = _SeqAllToAll.apply(self.spg, key, self.scatter_idx, self.gather_idx) - value_layer = _SeqAllToAll.apply(self.spg, value, self.scatter_idx, self.gather_idx) + + def bwd_hook(layer_type): + + def pre_hook_fun(grad): + type = 'd' + layer_type + self.overlap_handles[type + '_work'].wait() + self.sp_stream.wait_stream(self.dafult_stream) + all2all_output = self.overlap_handles[type + '_grad'] + grad = list(grad) + grad[0] = self.overlap_handles[type + '_post_all2all_func'](all2all_output) + grad = tuple(grad) + + return pre_hook_fun + + self.layer_sync(query) + query_layer = _SeqAllToAll.apply(self.spg, query, self.scatter_idx, self.gather_idx, batch_dim_idx, None, + self.overlap_handles, 'q') + self.layer_sync(key) + key_layer = _SeqAllToAll.apply(self.spg, key, self.scatter_idx, self.gather_idx, batch_dim_idx, None, + self.overlap_handles, 'k') + if self.sp_overlap_comm: + self.dafult_stream.wait_stream(self.sp_stream) + + value_layer = _SeqAllToAll.apply(self.spg, value, self.scatter_idx, self.gather_idx, batch_dim_idx, None, + self.overlap_handles, 'v') + + if self.sp_overlap_comm: + # Register a hook to synchronize dq and dk after the all-to-all + # operation when the gradient data is used. + # Place this logic after the q, k, v all-to-all operation to + # improve interpreter speed to + # call and launch of the forward all-to-all communication. + grad_fn_q = query.grad_fn.next_functions[0][0] + grad_fn_q.register_prehook(bwd_hook(layer_type='q')) + grad_fn_k = key.grad_fn.next_functions[0][0] + grad_fn_k.register_prehook(bwd_hook(layer_type='k')) #out shape : e.g., [s:h/p:] - context_layer = self.local_attn(query_layer, key_layer, value_layer, *args) + if rotary_pos_emb is not None: + pos_emb_cos, pos_emb_sin = rotary_pos_emb[0].permute(1, 0, 2, 3), rotary_pos_emb[1].permute(1, 0, 2, 3) + query_layer = apply_rotary_pos_emb(query_layer, pos_emb_cos, pos_emb_sin) + key_layer = apply_rotary_pos_emb(key_layer, pos_emb_cos, pos_emb_sin) + + context_layer = self.local_attn(query_layer, key_layer, value_layer, *args, **kwargs) - output = _SeqAllToAll.apply(self.spg, context_layer, self.gather_idx, self.scatter_idx) + output = _SeqAllToAll.apply(self.spg, context_layer, self.gather_idx, self.scatter_idx, batch_dim_idx, + self.sp_stream, self.overlap_handles, 'o') #out e.g., [s/p::h] return output diff --git a/deepspeed/utils/__init__.py b/deepspeed/utils/__init__.py index 6237d7239682..983e64642c69 100644 --- a/deepspeed/utils/__init__.py +++ b/deepspeed/utils/__init__.py @@ -10,12 +10,13 @@ from .groups import * from .nvtx import instrument_w_nvtx # TODO: Move tensor fragment and mixed precision to zero utils -from .tensor_fragment import tensor_fragment, get_full_hp_param, get_hp_fragment_mapping, fragment_address, get_full_hp_grad +from .tensor_fragment import tensor_fragment, get_full_hp_param, get_hp_fragment_mapping, fragment_address, get_full_hp_grad, map_to_flat_opt_states from .tensor_fragment import safe_get_full_fp32_param, safe_get_full_grad, safe_get_full_optimizer_state -from .tensor_fragment import set_full_hp_param -from .tensor_fragment import safe_set_full_fp32_param, safe_set_full_optimizer_state +from .tensor_fragment import set_full_hp_param, set_full_hp_grad +from .tensor_fragment import safe_set_full_fp32_param, safe_set_full_optimizer_state, safe_set_full_grad from .tensor_fragment import safe_get_local_fp32_param, safe_get_local_grad, safe_get_local_optimizer_state -from .tensor_fragment import safe_set_local_fp32_param, safe_set_local_optimizer_state -from .mixed_precision_linkage import link_hp_params +from .tensor_fragment import safe_set_local_fp32_param, safe_set_local_grad, safe_set_local_optimizer_state +from .z3_leaf_module import set_z3_leaf_modules, unset_z3_leaf_modules, get_z3_leaf_modules, z3_leaf_module, z3_leaf_parameter, set_z3_leaf_module +from .mixed_precision_linkage import link_hp_params, lazy_init_hp_params_optimizer_state from deepspeed.runtime.dataloader import RepeatingLoader from .numa import get_numactl_cmd diff --git a/deepspeed/utils/bwc.py b/deepspeed/utils/bwc.py new file mode 100644 index 000000000000..69fcc251a684 --- /dev/null +++ b/deepspeed/utils/bwc.py @@ -0,0 +1,104 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + + +def bwc_tensor_model_parallel_rank(mpu=None): + """Backwards-compatible way of querying the tensor model parallel rank from + an ``mpu`` object. + + *Tensor* model parallelism means that tensors are physically split across + processes. This contrasts with *pipeline* model parallelism, in which the + layers are partitioned but tensors left intact. + + The API for tensor model parallelism has changed across versions and this + helper provides a best-effort implementation across versions of ``mpu`` + objects. The preferred mechanism is + ``mpu.get_tensor_model_parallel_rank()``. + + This should "just work" with both Megatron-LM and DeepSpeed's pipeline + parallelism. + + Args: + mpu (model parallel unit, optional): The tensor model parallel rank. + If ``mpu=None``, returns 0. Defaults to ``None``. + + Returns: + int: the rank + """ + if mpu is None: + # No model parallelism in easy :) + return 0 + + if hasattr(mpu, 'get_tensor_model_parallel_rank'): + # New Megatron and DeepSpeed convention (post pipeline-parallelism release) + return mpu.get_tensor_model_parallel_rank() + elif hasattr(mpu, 'get_slice_parallel_rank'): + # Some DeepSpeed + pipeline parallelism versions + return mpu.get_slice_parallel_rank() + else: + # Deprecated Megatron and DeepSpeed convention + return mpu.get_model_parallel_rank() + + +def bwc_tensor_model_parallel_world_size(mpu=None): + """Backwards-compatible way of querying the tensor model parallel world size. + Similar to bwc_tensor_model_parallel_rank. + """ + if mpu is None: + return 1 + + if hasattr(mpu, 'get_tensor_model_parallel_world_size'): + # New Megatron and DeepSpeed convention (post pipeline-parallelism release) + return mpu.get_tensor_model_parallel_world_size() + elif hasattr(mpu, 'get_slice_parallel_world_size'): + # Some DeepSpeed + pipeline parallelism versions + return mpu.get_slice_parallel_world_size() + else: + # Deprecated Megatron and DeepSpeed convention + return mpu.get_model_parallel_world_size() + + +def bwc_tensor_model_parallel_group(mpu=None): + """Backwards-compatible way of querying the tensor model parallel group. + Similar to bwc_tensor_model_parallel_rank. + """ + if mpu is None: + return None + + if hasattr(mpu, 'get_tensor_model_parallel_group'): + # New Megatron and DeepSpeed convention (post pipeline-parallelism release) + return mpu.get_tensor_model_parallel_group() + elif hasattr(mpu, 'get_slice_parallel_group'): + # Some DeepSpeed + pipeline parallelism versions + return mpu.get_slice_parallel_group() + else: + # Deprecated Megatron and DeepSpeed convention + return mpu.get_model_parallel_group() + + +def bwc_pipeline_parallel_world_size(mpu=None): + """Backwards-compatible way of querying the pipeline parallel world size.""" + world_size = 1 + if mpu is not None: + if hasattr(mpu, 'get_pipeline_model_parallel_world_size'): + # New Megatron and DeepSpeed convention (post pipeline-parallelism release) + world_size = mpu.get_pipeline_model_parallel_world_size() + elif hasattr(mpu, 'get_pipe_parallel_world_size'): + # DeepSpeed Topology + world_size = mpu.get_pipe_parallel_world_size() + return world_size + + +def bwc_pipeline_parallel_group(mpu=None): + """Backwards-compatible way of querying the pipeline parallel group.""" + if mpu is None: + return None + if hasattr(mpu, 'get_pipeline_model_parallel_group'): + # Megatron + return mpu.get_pipeline_model_parallel_group() + elif hasattr(mpu, 'get_pipe_parallel_group'): + # DeepSpeed Topology + return mpu.get_pipe_parallel_group() + assert False, 'mpu does not support pipeline parallel group' diff --git a/deepspeed/utils/config.py b/deepspeed/utils/config.py new file mode 100644 index 000000000000..15f37ca7d874 --- /dev/null +++ b/deepspeed/utils/config.py @@ -0,0 +1,46 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from deepspeed.runtime.config_utils import DeepSpeedConfigModel + +######################################### +# Timers +######################################### +# Timers. By default, timers are enabled. +# Users can configure in ds_config.json as below example: +TIMERS_FORMAT = ''' +Timers should be enabled as: +"timers": { + "throughput": { + "enabled": true, + "synchronized": true + } +} +''' + +TIMERS = "timers" +TIMERS_THROUGHPUT = "throughput" + + +def get_timers_config(param_dict): + if param_dict and TIMERS in param_dict and TIMERS_THROUGHPUT in param_dict[TIMERS]: + timers_config_dict = param_dict[TIMERS][TIMERS_THROUGHPUT] + else: + timers_config_dict = {} + return DeepSpeedThroughputTimerConfig(**timers_config_dict) + + +class DeepSpeedThroughputTimerConfig(DeepSpeedConfigModel): + """ Configure throughput timers """ + + enabled: bool = True + """ Turn on/off throughput timers """ + + synchronized: bool = True + """ Whether to synchronize a device when measuring the time. + Synchronizing a device is required to produce the most accurate timer measurements. + However, this comes at the expense of performance degradation. The CPU timer provides + sufficient accuracy in many cases. + """ diff --git a/deepspeed/utils/debug.py b/deepspeed/utils/debug.py index 02295fa98011..cebea56255d9 100644 --- a/deepspeed/utils/debug.py +++ b/deepspeed/utils/debug.py @@ -11,6 +11,13 @@ param_names = {} +def debug_clear_module_and_param_names(): + global module_names + global param_names + module_names = {} + param_names = {} + + def debug_extract_module_and_param_names(model): # extract the fully qualified names as soon as the model is acquired global module_names diff --git a/deepspeed/utils/groups.py b/deepspeed/utils/groups.py old mode 100644 new mode 100755 index 3ebe8cd75522..6dc750035061 --- a/deepspeed/utils/groups.py +++ b/deepspeed/utils/groups.py @@ -27,8 +27,10 @@ from deepspeed import comm as dist from deepspeed.utils import log_dist +from deepspeed.utils.bwc import bwc_tensor_model_parallel_world_size, bwc_pipeline_parallel_world_size from deepspeed.utils.exceptions import DeprecatedException from deepspeed.accelerator import get_accelerator + # Expert parallel group that the current rank belongs to. _EXPERT_PARALLEL_GROUP = {} # Expert data parallel group that the current rank belongs to. @@ -44,7 +46,7 @@ # All to All quantized graident communication groups _ALL_TO_ALL_GROUP = {} -_DATA_PARALLEL_GROUP = None +mesh_device = None # Deprecated groups initialize function. @@ -60,6 +62,127 @@ def _ensure_divisibility(numerator, denominator): assert numerator % denominator == 0, '{} is not divisible by {}'.format(numerator, denominator) +# ======== Start: Tensor Parallel Group Attributes ======== + +# Intra-layer model parallel group that the current rank belongs to. +_TENSOR_MODEL_PARALLEL_GROUP = None + +# Model parallel group (both intra- and pipeline) that the current rank belongs to. +_MODEL_PARALLEL_GROUP = None +# Data parallel group that the current rank belongs to. +_DATA_PARALLEL_GROUP = None + +# These values enable us to change the mpu sizes on the fly. +_MPU_TENSOR_MODEL_PARALLEL_WORLD_SIZE = None +_MPU_TENSOR_MODEL_PARALLEL_RANK = None + + +def _init_tp_mesh_device(tensor_model_parallel_size=1, data_parallel_size=None): + """Initialize model data parallel groups.""" + + global _DATA_PARALLEL_GROUP + global _MODEL_PARALLEL_GROUP + global _TENSOR_MODEL_PARALLEL_GROUP + + if _TENSOR_MODEL_PARALLEL_GROUP is not None: + return + + if data_parallel_size is None: + data_parallel_size = dist.get_world_size() // tensor_model_parallel_size + + mesh_device = dist.initialize_mesh_device((data_parallel_size, tensor_model_parallel_size), + ("data_parallel", "tensor_parallel")) + _TENSOR_MODEL_PARALLEL_GROUP = mesh_device.get_group(mesh_dim="tensor_parallel") + _DATA_PARALLEL_GROUP = mesh_device.get_group(mesh_dim="data_parallel") + + # They are always equal only in 2D (DP + TP) parallelism. + # _MODEL_PARALLEL_GROUP is assigned the same value as _TENSOR_MODEL_PARALLEL_GROUP + # to allow for future potential changes. + _MODEL_PARALLEL_GROUP = _TENSOR_MODEL_PARALLEL_GROUP + + return _DATA_PARALLEL_GROUP, _MODEL_PARALLEL_GROUP + + +def get_tensor_model_parallel_group(): + """Get the tensor model parallel group the caller rank belongs to.""" + + assert _TENSOR_MODEL_PARALLEL_GROUP is not None, \ + 'intra_layer_model parallel group is not initialized' + return _TENSOR_MODEL_PARALLEL_GROUP + + +def get_model_parallel_group(): + """Get the model parallel group the caller rank belongs to.""" + + assert _MODEL_PARALLEL_GROUP is not None, \ + 'model parallel group is not initialized' + return _MODEL_PARALLEL_GROUP + + +def get_data_parallel_group(): + """Get the data parallel group the caller rank belongs to.""" + assert _DATA_PARALLEL_GROUP is not None, \ + 'data parallel group is not initialized' + return _DATA_PARALLEL_GROUP + + +def set_tensor_model_parallel_world_size(world_size): + """Set the tensor model parallel size""" + global _MPU_TENSOR_MODEL_PARALLEL_WORLD_SIZE + _MPU_TENSOR_MODEL_PARALLEL_WORLD_SIZE = world_size + + +def get_tensor_model_parallel_world_size(): + """Return world size for the tensor model parallel group.""" + global _MPU_TENSOR_MODEL_PARALLEL_WORLD_SIZE + if _MPU_TENSOR_MODEL_PARALLEL_WORLD_SIZE is not None: + return _MPU_TENSOR_MODEL_PARALLEL_WORLD_SIZE + return dist.get_world_size(group=get_tensor_model_parallel_group()) + + +def get_model_parallel_world_size(): + return get_tensor_model_parallel_world_size() + + +def set_tensor_model_parallel_rank(rank): + """Set tensor model parallel rank.""" + global _MPU_TENSOR_MODEL_PARALLEL_RANK + _MPU_TENSOR_MODEL_PARALLEL_RANK = rank + + +def get_tensor_model_parallel_rank(): + """Return my rank for the tensor model parallel group.""" + global _MPU_TENSOR_MODEL_PARALLEL_RANK + if _MPU_TENSOR_MODEL_PARALLEL_RANK is not None: + return _MPU_TENSOR_MODEL_PARALLEL_RANK + return dist.get_rank(group=get_tensor_model_parallel_group()) + + +def get_model_parallel_rank(): + return get_tensor_model_parallel_rank() + + +def get_tensor_model_parallel_src_rank(): + """Calculate the global rank corresponding to the first local rank + in the tensor model parallel group.""" + global_rank = dist.get_rank() + local_world_size = get_tensor_model_parallel_world_size() + return (global_rank // local_world_size) * local_world_size + + +def get_data_parallel_world_size(): + """Return world size for the data parallel group.""" + return dist.get_world_size(group=get_data_parallel_group()) + + +def get_data_parallel_rank(): + """Return my rank for the data parallel group.""" + return dist.get_rank(group=get_data_parallel_group()) + + +# ======== End: Tensor Parallel Group Attributes ======== + + # Not currently used. Helper function to create a model (tensor) parallel group. def _create_model_parallel(model_parallel_size_): """ @@ -128,31 +251,32 @@ def _create_expert_and_data_parallel(expert_parallel_size_, use_data_before_expe log_dist(f'Creating expert and data parallel groups with size {expert_parallel_size_}', ranks=[0]) world_size = dist.get_world_size() + pp_world_size = 1 if mpu is None else bwc_pipeline_parallel_world_size(mpu) rank = dist.get_rank() - _ensure_divisibility(world_size, expert_parallel_size_) + pp_stride = world_size // pp_world_size + _ensure_divisibility(pp_stride, expert_parallel_size_) group_name = f"ep_size_{expert_parallel_size_}" # Build the expert data parallel groups. global _EXPERT_DATA_PARALLEL_GROUP - ep_stride = world_size // expert_parallel_size_ + ep_stride = pp_stride // expert_parallel_size_ # Only create group if it does not already exist if group_name not in _EXPERT_DATA_PARALLEL_GROUP: - for i in range(expert_parallel_size_): - if use_data_before_expert_parallel_: - ranks = range(i * ep_stride, (i + 1) * ep_stride) - else: - ranks = range(i, world_size, expert_parallel_size_) - group = dist.new_group(ranks) - log_dist(f'Creating expert data parallel process group named {group_name} with ranks: {list(ranks)}', [0]) - if use_data_before_expert_parallel_: - if i == (rank // ep_stride): - _EXPERT_DATA_PARALLEL_GROUP[group_name] = group - else: - if i == (rank % expert_parallel_size_): + for pp_stage_start in range(0, world_size, pp_stride): + for i in range(expert_parallel_size_): + if use_data_before_expert_parallel_: + ranks = range(pp_stage_start + i * ep_stride, pp_stage_start + (i + 1) * ep_stride) + else: + ranks = range(pp_stage_start + i, pp_stage_start + pp_stride, expert_parallel_size_) + group = dist.new_group(ranks) + log_dist( + f'Creating expert data parallel process group named {group_name} ' + f'with ranks: {list(ranks)}', [0]) + if rank in ranks: _EXPERT_DATA_PARALLEL_GROUP[group_name] = group # Build the expert parallel groups. @@ -161,24 +285,29 @@ def _create_expert_and_data_parallel(expert_parallel_size_, use_data_before_expe # Only create group if it does not already exist if group_name not in _EXPERT_PARALLEL_GROUP: if use_data_before_expert_parallel_: - for i in range(ep_stride): - ranks = range(i, world_size, ep_stride) - group = dist.new_group(ranks) - log_dist(f'creating expert parallel process group named {group_name} with ranks: {list(ranks)}', [0]) - if i == (rank % ep_stride): - _EXPERT_PARALLEL_GROUP[group_name] = group + for pp_stage_start in range(0, world_size, pp_stride): + for i in range(ep_stride): + ranks = range(pp_stage_start + i, pp_stage_start + pp_stride, ep_stride) + group = dist.new_group(ranks) + log_dist( + f'creating expert parallel process group named {group_name} ' + f'with ranks: {list(ranks)}', [0]) + if rank in ranks: + _EXPERT_PARALLEL_GROUP[group_name] = group else: for i in range(world_size // expert_parallel_size_): ranks = range(i * expert_parallel_size_, (i + 1) * expert_parallel_size_) group = dist.new_group(ranks) - log_dist(f'creating expert parallel process group named {group_name} with ranks: {list(ranks)}', [0]) - if i == (rank // expert_parallel_size_): + log_dist(f'creating expert parallel process group named {group_name} ' + f'with ranks: {list(ranks)}', [0]) + if rank in ranks: _EXPERT_PARALLEL_GROUP[group_name] = group def _get_expert_parallel_ranks(world_size, - model_parallel_size_, + tensor_parallel_size_, expert_parallel_size_, + pipeline_parallel_size_=1, use_data_before_expert_parallel_=False): """Generate expert parallel and expert data parallel group ranks list. @@ -193,32 +322,40 @@ def _get_expert_parallel_ranks(world_size, Args: world_size (int): Distributed world size. - model_parallel_size_ (int): Model parallel group size. + tensor_parallel_size_ (int): Tensor parallel group size. expert_parallel_size_ (int): Expert parallel group size. + pipeline_parallel_size_ (int): Pipeline parallel group size use_data_before_expert_parallel_ (bool): Use the D + E instead of E + D topology Returns: Expert parallel group ranks and Expert data parallel group ranks list. """ - _ensure_divisibility(world_size, model_parallel_size_) - dp_world_size = world_size // model_parallel_size_ + _ensure_divisibility(world_size, tensor_parallel_size_ * pipeline_parallel_size_) + dp_world_size = world_size // (tensor_parallel_size_ * pipeline_parallel_size_) _ensure_divisibility(dp_world_size, expert_parallel_size_) # Generate data parallel groups data_parallel_groups = [] - dp_group_size = model_parallel_size_ + dp_group_size = tensor_parallel_size_ + pp_stride = world_size // pipeline_parallel_size_ if use_data_before_expert_parallel_: - dp_stride = world_size // expert_parallel_size_ // model_parallel_size_ - for i in range(dp_group_size): - data_parallel_groups.append(list()) - for ds in range(dp_stride): - # [0, 4, 8, 12, 16, 20, 24, 28, 2, 6, 10, 14, 18, 22, 26, 30] - # [1, 5, 9, 13, 17, 21, 25, 29, 3, 7, 11, 15, 19, 23, 27, 31] - data_parallel_groups[-1].extend( - list(range(i + ds * model_parallel_size_, world_size, dp_stride * model_parallel_size_))) + dp_stride = world_size // expert_parallel_size_ // tensor_parallel_size_ // pipeline_parallel_size_ + for pp_stage_start in range(0, world_size, pp_stride): + pp_stage_next = pp_stage_start + pp_stride + for i in range(dp_group_size): + data_parallel_groups.append(list()) + for ds in range(dp_stride): + # [0, 4, 8, 12, 16, 20, 24, 28, 2, 6, 10, 14, 18, 22, 26, 30] + # [1, 5, 9, 13, 17, 21, 25, 29, 3, 7, 11, 15, 19, 23, 27, 31] + data_parallel_groups[-1].extend( + list( + range(pp_stage_start + i + ds * tensor_parallel_size_, pp_stage_next, + dp_stride * tensor_parallel_size_))) else: - for i in range(dp_group_size): - data_parallel_groups.append(list(range(i, world_size, dp_group_size))) + for pp_stage_start in range(0, world_size, pp_stride): + pp_stage_next = pp_stage_start + pp_stride + for i in range(dp_group_size): + data_parallel_groups.append(list(range(pp_stage_start + i, pp_stage_next, dp_group_size))) expert_parallel_groups = [] expert_data_parallel_groups = [] @@ -252,36 +389,33 @@ def _create_expert_data_and_model_parallel(expert_parallel_size_, mpu, use_data_ expert_data_parallel_group = [0,8],[2,10],[4,12],[6,14], [1,9],[3,11],[5,13],[7,15] """ assert dist.is_initialized(), "dist is not initialized" - model_parallel_size_ = mpu.get_model_parallel_world_size() + tensor_parallel_size_ = bwc_tensor_model_parallel_world_size(mpu) global expert_tensor_parallel_world_size - expert_tensor_parallel_world_size = model_parallel_size_ + expert_tensor_parallel_world_size = tensor_parallel_size_ world_size = dist.get_world_size() rank = dist.get_rank() dp_world_size = mpu.get_data_parallel_world_size() - dp_rank = mpu.get_data_parallel_rank() + pp_world_size = 1 if mpu is None else bwc_pipeline_parallel_world_size(mpu) - _ensure_divisibility(world_size, model_parallel_size_) + _ensure_divisibility(world_size, tensor_parallel_size_) _ensure_divisibility(dp_world_size, expert_parallel_size_) log_dist( - f"Creating deepspeed groups with model parallel size {model_parallel_size_}, expert parallel size {expert_parallel_size_}, world size {world_size}, dp world size {dp_world_size}", - [0]) + f"Creating deepspeed groups with model parallel size {tensor_parallel_size_}, " + f"pipeline parallel size {pp_world_size}, expert parallel size {expert_parallel_size_}, " + f"world size {world_size}, dp world size {dp_world_size}", [0]) global _EXPERT_PARALLEL_GROUP, _EXPERT_DATA_PARALLEL_GROUP - # Get world size and rank. Ensure some consistencies. - _DATA_PARALLEL_GROUP = mpu.get_data_parallel_group() - _MODEL_PARALLEL_GROUP = mpu.get_model_parallel_group() - group_name = f"ep_size_{expert_parallel_size_}" # Only create groups if they don't already exist # Need to check conditions outside the group creation loop because of the way torch.dist group creation works if group_name not in _EXPERT_DATA_PARALLEL_GROUP and group_name not in _EXPERT_PARALLEL_GROUP: expert_parallel_groups, expert_data_parallel_groups = _get_expert_parallel_ranks( - world_size, model_parallel_size_, expert_parallel_size_, use_data_before_expert_parallel_) + world_size, tensor_parallel_size_, expert_parallel_size_, pp_world_size, use_data_before_expert_parallel_) for ranks in expert_parallel_groups: group = dist.new_group(ranks) if rank in list(ranks): @@ -386,8 +520,11 @@ def _get_data_parallel_group(): """Get the data parallel group the caller rank belongs to.""" assert dist.is_initialized(), 'dist is not initialized' global mpu + if mesh_device is not None: + return mesh_device.get_group(mesh_dim="data_parallel") if mpu is not None: return mpu.get_data_parallel_group() + # Return the clone of dist world group return _clone_world_group() @@ -430,6 +567,8 @@ def _get_expert_data_parallel_rank(group_name): def _get_data_parallel_world_size(): """Return world size for the data parallel group.""" + if mesh_device is not None: + return dist.get_world_size(mesh_device.get_group(mesh_dim="data_parallel")) global mpu if mpu is not None: return mpu.get_data_parallel_world_size() @@ -452,6 +591,8 @@ def _get_data_parallel_rank(): def _get_sequence_parallel_world_size(): """Return world size for the model parallel group.""" global mpu + if mesh_device is not None: + return dist.get_world_size(mesh_device.get_group(mesh_dim="sequence_parallel")) if mpu is not None and hasattr(mpu, 'get_sequence_parallel_world_size'): return mpu.get_sequence_parallel_world_size() return 1 @@ -462,14 +603,18 @@ def _get_sequence_parallel_rank(): global mpu if mpu is not None and hasattr(mpu, 'get_sequence_parallel_rank'): return mpu.get_sequence_parallel_rank() + if mesh_device is not None: + return dist.get_rank(mesh_device.get_group(mesh_dim="sequence_parallel")) return 0 def _get_sequence_parallel_group(): global mpu - if mpu is not None and hasattr(mpu, 'get_sequence_parallel_group'): - return mpu.get_sequence_parallel_group() - return None + if mpu is None or not hasattr(mpu, 'get_sequence_parallel_group'): + if mesh_device is None: + raise KeyError("No sequence parallel group found") + return mesh_device.get_group(mesh_dim="sequence_parallel") + return mpu.get_sequence_parallel_group() def _get_sequence_data_parallel_world_size(): @@ -508,7 +653,7 @@ def _create_zero_param_parallel_group(group_size): Example - ZP + D parallel world_size = 16 - zero_hpz_partition_size = 2 # number of ranks with with replicated params (dual partitioning) + zero_hpz_partition_size = 2 # number of ranks with replicated params (dual partitioning) zero_param_intra_parallel_group = [0, 1], [2,3], [4,5], [6,7], [8,9] - segmented (subgroup) with rep partition data_parallel_group = [0,1,...,15] - all reduce is on ZeRO model """ diff --git a/deepspeed/utils/logging.py b/deepspeed/utils/logging.py index 1e62d96e1032..ed691e3985e1 100644 --- a/deepspeed/utils/logging.py +++ b/deepspeed/utils/logging.py @@ -7,6 +7,8 @@ import logging import sys import os +import torch +from deepspeed.utils.torch import required_torch_version log_levels = { "debug": logging.DEBUG, @@ -44,6 +46,15 @@ def create_logger(name=None, level=logging.INFO): ch.setLevel(level) ch.setFormatter(formatter) logger_.addHandler(ch) + if required_torch_version(min_version=2.6) and os.getenv("DISABLE_LOGS_WHILE_COMPILING", "0") == "1": + excluded_set = { + item.strip() + for item in os.getenv("LOGGER_METHODS_TO_EXCLUDE_FROM_DISABLE", "").split(",") + } + ignore_set = {'info', 'debug', 'error', 'warning', 'critical', 'exception', 'isEnabledFor'} - excluded_set + for method in ignore_set: + original_logger = getattr(logger_, method) + torch._dynamo.config.ignore_logger_methods.add(original_logger) return logger_ @@ -147,6 +158,6 @@ def should_log_le(max_log_level_str): max_log_level_str = max_log_level_str.lower() if max_log_level_str not in log_levels: - raise ValueError(f"{max_log_level_str} is not one of the `logging` levels") + raise ValueError(f"{max_log_level_str} is not one of the logging levels") return get_current_level() <= log_levels[max_log_level_str] diff --git a/deepspeed/utils/mixed_precision_linkage.py b/deepspeed/utils/mixed_precision_linkage.py index b1afa8f00aa3..c97515ca8fef 100644 --- a/deepspeed/utils/mixed_precision_linkage.py +++ b/deepspeed/utils/mixed_precision_linkage.py @@ -5,17 +5,23 @@ import types from deepspeed.utils import get_full_hp_param, get_full_hp_grad, get_hp_fragment_mapping -from deepspeed.utils import set_full_hp_param +from deepspeed.utils import set_full_hp_param, set_full_hp_grad def link_hp_params(lp_param_list, flat_hp_partition, gradient_dict, offload_gradient_dict, use_offload, - param_group_index, partition_start, partition_size, partition_optimizer_state, dp_group): + param_group_index, partition_start, partition_size, dp_group): local_lp_param_and_offset = _init_lp_to_hp_mapping(lp_param_list, partition_start, partition_size, dp_group) for lp_param, lp_start in local_lp_param_and_offset: lp_param._hp_mapping = get_hp_fragment_mapping(lp_param, lp_start, flat_hp_partition, gradient_dict, offload_gradient_dict, use_offload, param_group_index, - partition_start, partition_size, partition_optimizer_state) + partition_start, partition_size) + + +def lazy_init_hp_params_optimizer_state(lp_param_list, flat_hp_partition, optimizer_state): + for lp in lp_param_list: + if lp._hp_mapping is not None: + lp._hp_mapping.set_optim_state_fragment(flat_hp_partition, optimizer_state[flat_hp_partition]) def _init_lp_to_hp_mapping(lp_param_list, partition_start, partition_size, dp_group): @@ -29,6 +35,7 @@ def _init_lp_to_hp_mapping(lp_param_list, partition_start, partition_size, dp_gr lp_param.get_full_hp_param = types.MethodType(get_full_hp_param, lp_param) lp_param.get_full_hp_grad = types.MethodType(get_full_hp_grad, lp_param) lp_param.set_full_hp_param = types.MethodType(set_full_hp_param, lp_param) + lp_param.set_full_hp_grad = types.MethodType(set_full_hp_grad, lp_param) # lp_param overlaps with partition if both are true # 1) current_offset < partition_end, diff --git a/deepspeed/utils/numa.py b/deepspeed/utils/numa.py index 13617826b1ce..aba3b5179d41 100644 --- a/deepspeed/utils/numa.py +++ b/deepspeed/utils/numa.py @@ -23,7 +23,10 @@ # ] def get_numa_cores(): ret = [] - output = subprocess.check_output(['numactl', '--hardware']).decode("utf-8") + try: + output = subprocess.check_output(['numactl', '--hardware']).decode("utf-8") + except: + return [] lines = output.split('\n') for line in lines: if line.startswith('available:'): @@ -49,8 +52,8 @@ def check_for_numactl_pkg(): flag, lib, tool = data path = distutils.spawn.find_executable(pkgmgr) if path is not None: - cmd = f"{pkgmgr} {flag} {lib}" - result = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True) + cmd = [pkgmgr, flag, lib] + result = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) if result.wait() == 0: found = True else: diff --git a/deepspeed/utils/nvtx.py b/deepspeed/utils/nvtx.py index 3823599e7bf2..72d7c863a33f 100644 --- a/deepspeed/utils/nvtx.py +++ b/deepspeed/utils/nvtx.py @@ -4,16 +4,22 @@ # DeepSpeed Team from deepspeed.accelerator import get_accelerator +from deepspeed.runtime.compiler import is_compiling + +enable_nvtx = True def instrument_w_nvtx(func): - """decorator that causes an NVTX range to be recorded for the duration of the - function call.""" + """Decorator that records an NVTX range for the duration of the function call. + Skips NVTX instrumentation when torch.compile is active to avoid graph breaks. + """ def wrapped_fn(*args, **kwargs): - get_accelerator().range_push(func.__qualname__) + if enable_nvtx and not is_compiling(): + get_accelerator().range_push(func.__qualname__) ret_val = func(*args, **kwargs) - get_accelerator().range_pop() + if enable_nvtx and not is_compiling(): + get_accelerator().range_pop() return ret_val return wrapped_fn diff --git a/deepspeed/utils/tensor_fragment.py b/deepspeed/utils/tensor_fragment.py index 5f94070dc4c7..053c8b5adad0 100644 --- a/deepspeed/utils/tensor_fragment.py +++ b/deepspeed/utils/tensor_fragment.py @@ -21,11 +21,11 @@ class tensor_fragment: lp_fragment_address: fragment_address hp_fragment: torch.Tensor hp_fragment_address: fragment_address - optim_fragment: Dict gradient_dict: Dict offload_gradient_dict: Dict use_offload: bool param_group_index: int + optim_fragment: Dict = None def update_hp(self): self.hp_fragment.data.copy_(self.lp_fragment.data) @@ -39,6 +39,13 @@ def get_optim_state_fragment(self, key): else: raise ValueError(f'{key} not found in optimizer state fragment') + def set_optim_state_fragment(self, flat_hp_partition, optim_fragment): + self.optim_fragment = { + key: value.narrow(0, self.hp_fragment_address.start, self.hp_fragment_address.numel) + for key, value in optim_fragment.items() + if torch.is_tensor(value) and value.shape == flat_hp_partition.shape + } + def get_hp_fragment_address(self): return self.hp_fragment_address @@ -50,6 +57,32 @@ def get_hp_fragment(self, optim_state_key=None): return self.hp_fragment return self.get_optim_state_fragment(optim_state_key) + def get_lp_grad_fragment(self, index_in_param_group): + if self.use_offload: + gradient_dict = self.offload_gradient_dict + else: + gradient_dict = self.gradient_dict + + if self.param_group_index not in gradient_dict or gradient_dict[self.param_group_index] is None: + raise ValueError("Gradients are only available immediately after backward and before engine step") + + return gradient_dict[self.param_group_index][index_in_param_group] + + +def map_to_flat_opt_states(flat_hp_tensor, lp_tensors, optim_state, opt_keys): + for key in opt_keys: + hp_param = flat_hp_tensor + buffer = torch.zeros_like(hp_param) + + for lp in lp_tensors: + if lp._hp_mapping is not None: + hp_fragment_address = lp._hp_mapping.get_hp_fragment_address() + hp_fragment = buffer.narrow(0, hp_fragment_address.start, hp_fragment_address.numel) + hp_fragment.data.copy_(lp._hp_mapping.get_hp_fragment(optim_state_key=key).data) + lp._hp_mapping.hp_fragment = hp_fragment + + optim_state[hp_param][key] = buffer + def get_full_hp_param(self, optim_state_key=None): reduce_buffer = torch.zeros_like(self, dtype=torch.float32).flatten() @@ -73,17 +106,7 @@ def set_full_hp_param(self, value, optim_state_key=None): def get_full_hp_grad(self): reduce_buffer = torch.zeros_like(self, dtype=torch.float32).flatten() if self._hp_mapping is not None: - hp_mapping = self._hp_mapping - - if hp_mapping.use_offload: - gradient_dict = hp_mapping.offload_gradient_dict - else: - gradient_dict = hp_mapping.gradient_dict - - if hp_mapping.param_group_index not in gradient_dict or gradient_dict[hp_mapping.param_group_index] is None: - raise ValueError("Gradients are only available immediately after backward and before engine step") - - lp_grad_fragment = gradient_dict[hp_mapping.param_group_index][self._index_in_param_group] + lp_grad_fragment = self._hp_mapping.get_lp_grad_fragment(self._index_in_param_group) hp_grad_fragment = lp_grad_fragment.to(torch.float32).flatten() lp_frag_address = self._hp_mapping.lp_fragment_address @@ -98,6 +121,14 @@ def get_full_hp_grad(self): return reduce_buffer.reshape_as(self) +def set_full_hp_grad(self, value): + if self._hp_mapping is not None: + lp_grad_fragment = self._hp_mapping.get_lp_grad_fragment(self._index_in_param_group) + lp_frag_address = self._hp_mapping.lp_fragment_address + value_fragment = torch.narrow(value.flatten(), 0, lp_frag_address.start, lp_frag_address.numel) + lp_grad_fragment.data.copy_(value_fragment.data.reshape_as(lp_grad_fragment.data)) + + def safe_get_full_fp32_param(param): """Assemble and return the fp32 parameter of a low-precision (e.g., fp16) parameter. @@ -166,7 +197,10 @@ def safe_set_full_optimizer_state(param, value, optim_state_key): # TODO: Figure out the correct return dtype def safe_get_full_grad(param): - """Assemble and return the fp32 gradient of a low-precision (e.g., fp16) parameter. + """ + Assemble and return the fp32 gradient of a low-precision (e.g., fp16) parameter. + The return data type is that used for gradient accumulation. This is usually the param data type, + but could also be different (e.g., bf16 param training with fp32 gradient accumulation). Args: param (``torch.nn.Parameter``): A model parameter @@ -185,77 +219,98 @@ def safe_get_full_grad(param): return None +def safe_set_full_grad(param, value): + """ + Update the partitioned gradient of a low-precision (e.g., fp16) parameter. + To avoid precision issues, the update value should have the data type of + gradient accumulation. + + Args: + param (``torch.nn.Parameter``): A model parameter + value (``torch.Tensor``): The un-partitioned new gradient value. + """ + if param.grad is not None: + param.grad.copy_(value) + elif hasattr(param, 'ds_id'): + # ZeRO stage 3 param + param._z3_optimizer.set_fp32_grad_for_param(value, param) + elif hasattr(param, '_hp_mapping'): + # ZeRO stage 1, 2, and bf16_optimizer params + param.set_full_hp_grad(value) + + ### Local API START ### def safe_get_local_grad(param): - """Get the fp32 gradient of a partitioned parameter. + """ + Get the local gradient partition of a ZeRO-3 partitioned parameter. + The return data type is that used for gradient accumulation. This is usually the param data type, + but could also be different (e.g., bf16 param training with fp32 gradient accumulation). Args: param (``torch.nn.Parameter``): A model parameter """ - if param.grad is not None: - return param.grad + assert hasattr(param, 'ds_id'), f'This API is only defined for ZeRO-3 partitioned parameters' + return param._z3_optimizer.get_local_fp32_grad_for_param(param) - # ZeRO stage 3 param - if hasattr(param, 'ds_id'): - return param._z3_optimizer.get_local_fp32_grad_for_param(param) - return None +def safe_set_local_grad(param, value): + """ + Update the local gradient partition of a ZeRO-3 partitioned parameter. + To avoid precision issues, the update value should have the data type of + gradient accumulation. + + Args: + param (``torch.nn.Parameter``): A model parameter. + value (``torch.Tensor``): New value of local gradient partition. + """ + assert hasattr(param, 'ds_id'), f'This API is only defined for ZeRO-3 partitioned parameters' + param._z3_optimizer.set_local_grad_for_param(value, param) def safe_get_local_fp32_param(param): - """Get the fp32 partitioned parameter. + """Get the local partition of a ZeRO-3 partitioned parameter in fp32 precision. Args: - param (``torch.nn.Parameter``): A model parameter + param (``torch.nn.Parameter``): A model parameter. """ - # ZeRO stage 3 param - if hasattr(param, 'ds_id'): - return param._z3_optimizer.get_local_fp32_param(param) - - return None + assert hasattr(param, 'ds_id'), f'This API is only defined for ZeRO-3 partitioned parameters' + return param._z3_optimizer.get_local_fp32_param(param) def safe_get_local_optimizer_state(param, optim_state_key): - """Get the fp32 optimizer state of a partitioned parameter. + """Get the local optimizer state partition of ZeRO-3 partitioned parameter in fp32 precision. Args: param (``torch.nn.Parameter``): A model parameter optim_state_key (``string``): Key value of optimizer state (e.g., `exp_avg` in Adam optimizer) """ - # ZeRO stage 3 param - if hasattr(param, 'ds_id'): - return param._z3_optimizer.get_local_fp32_param(param, optim_state_key) - - return None + assert hasattr(param, 'ds_id'), f'This API is only defined for ZeRO-3 partitioned parameters' + return param._z3_optimizer.get_local_fp32_param(param, optim_state_key) def safe_set_local_optimizer_state(param, value, optim_state_key): - """Update the fp32 optimizer state of a partitioned parameter. + """Update the local optimizer state partition of a ZeRO-3 partitioned parameter. Args: - param (``torch.nn.Parameter``): A model parameter - value (``torch.Tensor``): New value - optim_state_key (``string``): Key value of optimizer state (e.g., `exp_avg` in Adam optimizer) + param (``torch.nn.Parameter``): A model parameter. + value (``torch.Tensor``): New value of local optimizer state partition. + optim_state_key (``string``): Key value of optimizer state (e.g., `exp_avg` in Adam optimizer). """ - # ZeRO stage 3 param - if hasattr(param, 'ds_id'): - param._z3_optimizer.set_local_hp_param(value, param, optim_state_key) + assert hasattr(param, 'ds_id'), f'This API is only defined for ZeRO-3 partitioned parameters' + param._z3_optimizer.set_local_hp_param(value, param, optim_state_key) def safe_set_local_fp32_param(param, value): - """Update the partitioned fp32 parameter. + """Update the local partition of ZeRO-3 partitioned parameter. Args: - param (``torch.nn.Parameter``): A model parameter - value (``torch.Tensor``): New value + param (``torch.nn.Parameter``): A model parameter. + value (``torch.Tensor``): New value of local parameter partition. """ - # ZeRO stage 3 param - if hasattr(param, 'ds_id'): - param._z3_optimizer.set_local_hp_param(value, param) + assert hasattr(param, 'ds_id'), f'This API is only defined for ZeRO-3 partitioned parameters' + param._z3_optimizer.set_local_hp_param(value, param) ### Local API END ### -# TODO: Implement API for setting ZeRO partitioned gradients - def get_hp_fragment_mapping(lp_param, lp_start, flat_hp_partition, gradient_dict, offload_gradient_dict, use_offload, - param_group_index, partition_start, partition_size, optimizer_state_dict): + param_group_index, partition_start, partition_size): lp_end = lp_param.numel() + lp_start hp_start = partition_start hp_end = partition_start + partition_size @@ -268,11 +323,6 @@ def get_hp_fragment_mapping(lp_param, lp_start, flat_hp_partition, gradient_dict fragment_numel = fragment_end - fragment_start hp_frag_address = fragment_address(start=fragment_start - hp_start, numel=fragment_numel) hp_fragment_tensor = flat_hp_partition.narrow(0, hp_frag_address.start, hp_frag_address.numel) - optim_fragment = { - key: value.narrow(0, hp_frag_address.start, hp_frag_address.numel) - for key, value in optimizer_state_dict.items() - if torch.is_tensor(value) and value.shape == flat_hp_partition.shape - } lp_frag_address = fragment_address(start=fragment_start - lp_start, numel=fragment_numel) lp_fragment_tensor = lp_param.flatten().narrow(0, lp_frag_address.start, lp_frag_address.numel) @@ -281,7 +331,6 @@ def get_hp_fragment_mapping(lp_param, lp_start, flat_hp_partition, gradient_dict lp_fragment_address=lp_frag_address, hp_fragment=hp_fragment_tensor, hp_fragment_address=hp_frag_address, - optim_fragment=optim_fragment, gradient_dict=gradient_dict, offload_gradient_dict=offload_gradient_dict, use_offload=use_offload, diff --git a/deepspeed/utils/timer.py b/deepspeed/utils/timer.py index 4aac4ded1243..64ae8ac0e5b4 100755 --- a/deepspeed/utils/timer.py +++ b/deepspeed/utils/timer.py @@ -18,6 +18,7 @@ BACKWARD_REDUCE_GLOBAL_TIMER = 'bwd_allreduce' STEP_MICRO_TIMER = 'step_microstep' STEP_GLOBAL_TIMER = 'step' +TIME_EPSILON = 1e-6 try: import psutil @@ -50,7 +51,7 @@ def __init__(self, name): self.name_ = name self.started_ = False self.event_timers = [] - self.use_host_timer = get_accelerator().is_synchronized_device() + self.use_host_timer = get_accelerator().use_host_timers() self.start_event = None self.elapsed_records = None self.start_time = 0.0 @@ -197,15 +198,9 @@ def get_mean(self, names, normalizer=1.0, reset=True): class ThroughputTimer: - def __init__( - self, - batch_size, - start_step=2, - steps_per_output=50, - monitor_memory=False, - logging_fn=None, - ): + def __init__(self, config, batch_size, start_step=2, steps_per_output=None, monitor_memory=False, logging_fn=None): from deepspeed.utils import logger + self.config = config self.start_time = 0 self.end_time = 0 self.started = False @@ -234,14 +229,22 @@ def _init_timer(self): self.initialized = True def start(self): + if not self.config.enabled: + return self._init_timer() self.started = True if self.global_step_count >= self.start_step: - get_accelerator().synchronize() + if self.config.synchronized: + get_accelerator().synchronize() self.start_time = time.time() + def _is_report_boundary(self): + if self.steps_per_output is None: + return False + return self.global_step_count % self.steps_per_output == 0 + def stop(self, global_step=False, report_speed=True): - if not self.started: + if not self.config.enabled or not self.started: return self.started = False self.micro_step_count += 1 @@ -249,14 +252,15 @@ def stop(self, global_step=False, report_speed=True): self.global_step_count += 1 if self.start_time > 0: - get_accelerator().synchronize() + if self.config.synchronized: + get_accelerator().synchronize() self.end_time = time.time() duration = self.end_time - self.start_time self.total_elapsed_time += duration self.step_elapsed_time += duration if global_step: - if report_speed and self.global_step_count % self.steps_per_output == 0: + if report_speed and self._is_report_boundary(): self.logging( "epoch={}/micro_step={}/global_step={}, RunningAvgSamplesPerSec={}, CurrSamplesPerSec={}, " "MemAllocated={}GB, MaxMemAllocated={}GB".format( @@ -264,7 +268,7 @@ def stop(self, global_step=False, report_speed=True): self.micro_step_count, self.global_step_count, self.avg_samples_per_sec(), - self.batch_size / self.step_elapsed_time, + self.batch_size / (self.step_elapsed_time + TIME_EPSILON), round(get_accelerator().memory_allocated() / 1024**3, 2), round(get_accelerator().max_memory_allocated() / 1024**3, 2), )) diff --git a/deepspeed/utils/torch.py b/deepspeed/utils/torch.py new file mode 100644 index 000000000000..1d32775fe64a --- /dev/null +++ b/deepspeed/utils/torch.py @@ -0,0 +1,31 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from packaging import version as pkg_version + +import torch + + +def required_torch_version(min_version=None, max_version=None): + assert min_version or max_version, "Must provide a min_version or max_version argument" + + torch_version = pkg_version.parse(torch.__version__) + + if min_version and pkg_version.parse(str(min_version)) > torch_version: + return False + + if max_version and pkg_version.parse(str(max_version)) < torch_version: + return False + + return True + + +def register_grad_hook(param, hook): + if required_torch_version(min_version=2.1): + return param.register_post_accumulate_grad_hook(hook) + else: + param_tmp = param.expand_as(param) + grad_acc = param_tmp.grad_fn.next_functions[0][0] + return grad_acc.register_hook(hook) diff --git a/deepspeed/utils/z3_leaf_module.py b/deepspeed/utils/z3_leaf_module.py new file mode 100644 index 000000000000..14e8ae2d2823 --- /dev/null +++ b/deepspeed/utils/z3_leaf_module.py @@ -0,0 +1,93 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import torch +from typing import List, Type, Union + + +def z3_leaf_module(model: torch.nn.Module) -> bool: + """Returns whether a module in `model` has been flagged as a 'leaf' module. + See `set_z3_leaf_modules` for more details. + Args: + model (torch.nn.Module): The model to which the leaf module flag will be applied. + Returns: + bool: Whether the module has been flagged as a 'leaf' module. + """ + return hasattr(model, '_z3_leaf') and model._z3_leaf + + +def z3_leaf_parameter(model: torch.nn.Parameter) -> bool: + """Returns whether a parameter belongs to a leaf module. + See `set_z3_leaf_modules` for more details. + Args: + model (torch.nn.Parameter): The parameter to which the leaf module flag will be applied. + Returns: + bool: Whether the parameter belongs to a leaf module. + """ + return hasattr(model, 'ds_z3_leaf_module') + + +def get_z3_leaf_modules(model: torch.nn.Module) -> List[torch.nn.Module]: + """Returns a list of modules in `model` that have been flagged as 'leaf' modules. + See `set_z3_leaf_modules` for more details. + Args: + model (torch.nn.Module): The model to which the leaf module flag will be applied. + Returns: + List[torch.nn.Module]: A list of modules that have been flagged as 'leaf' modules. + """ + return [module for module in model.modules() if z3_leaf_module(module)] + + +def set_z3_leaf_module(model: torch.nn.Module, flag: bool): + model._z3_leaf = flag + + +def _do_set_z3_leaf_modules(model: torch.nn.Module, leaf_module_classes: Union[List[Type], List[str]], + flag: bool) -> List[torch.nn.Module]: + assert all(isinstance(module_class, (type, str) ) for module_class in leaf_module_classes), \ + f'leaf_module_classes must be a list of types or names, got {leaf_module_classes}' + + leaf_modules = [] + + def _set_z3_leaf_flag(model: torch.nn.Module): + nonlocal leaf_modules + for module in leaf_module_classes: + if (isinstance(module, type) and model.__class__ == module) or \ + (isinstance(module, str) and model.__class__.__name__ == module): + model._z3_leaf = flag + leaf_modules.append(model) + + model.apply(_set_z3_leaf_flag) + + if len(leaf_modules) == 0: + raise ValueError(f'No modules of type {leaf_module_classes} found in model {model}') + + return leaf_modules + + +def set_z3_leaf_modules(model: torch.nn.Module, leaf_module_classes: Union[List[Type], + List[str]]) -> List[torch.nn.Module]: + """Sets a flag within a module in `model` to instruct ZeRO3 to stop setting hooks recursively when it encounters a module class listed in `leaf_module_classes`. + This is particularly useful in the context of Mixture of Experts (MoE) models. In MoE models, the computation order of experts varies across forward passes. This variability can disrupt ZeRO3's functionality, as ZeRO3 relies on tracking the computation order of modules to prefetch parameters efficiently. By designating a module as a 'leaf' node, ZeRO3 will prefetch parameters for all child modules upon entering the module. + Another scenario where this functionality is beneficial is in models with excessively fine-grained nested modules, where it helps to avoid the overhead associated with hooks. + Args: + model (torch.nn.Module): The model to which the leaf module flag will be applied. + leaf_module_classes (Union[List[Type], List[str]]): A list of module classes that should be flagged as 'leaf' modules. + Returns: + List[torch.nn.Module]: A list of modules that match the module classes in `leaf_module_classes`. + """ + return _do_set_z3_leaf_modules(model, leaf_module_classes, True) + + +def unset_z3_leaf_modules(model: torch.nn.Module, leaf_module_classes: List[Type]) -> List[torch.nn.Module]: + """Unsets a flag within a module in `model` to instruct ZeRO3 to resume setting hooks recursively when it encounters a module class listed in `leaf_module_classes`. + See `set_z3_leaf_modules` for more details. + Args: + model (torch.nn.Module): The model to which the leaf module flag will be applied. + leaf_module_classes (Union[List[Type], List[str]]): A list of module classes that should be flagged as 'leaf' modules. + Returns: + List[torch.nn.Module]: A list of modules that match the module classes in `leaf_module_classes`. + """ + return _do_set_z3_leaf_modules(model, leaf_module_classes, False) diff --git a/deepspeed/utils/zero_to_fp32.py b/deepspeed/utils/zero_to_fp32.py index c98caae31534..0e759146cadd 100755 --- a/deepspeed/utils/zero_to_fp32.py +++ b/deepspeed/utils/zero_to_fp32.py @@ -10,7 +10,10 @@ # the future. Once extracted, the weights don't require DeepSpeed and can be used in any # application. # -# example: python zero_to_fp32.py . pytorch_model.bin +# example: +# python zero_to_fp32.py . output_dir/ +# or +# python zero_to_fp32.py . output_dir/ --safe_serialization import argparse import torch @@ -18,6 +21,10 @@ import math import os import re +import gc +import json +import numpy as np +from tqdm import tqdm from collections import OrderedDict from dataclasses import dataclass @@ -95,7 +102,7 @@ def get_model_state_files(checkpoint_dir): def parse_model_states(files): zero_model_states = [] for file in files: - state_dict = torch.load(file, map_location=device) + state_dict = torch.load(file, map_location=device, weights_only=False) if BUFFER_NAMES not in state_dict: raise ValueError(f"{file} is not a model state checkpoint") @@ -139,11 +146,10 @@ def parse_model_states(files): def parse_optim_states(files, ds_checkpoint_dir): - total_files = len(files) state_dicts = [] - for f in files: - state_dict = torch.load(f, map_location=device) + for f in tqdm(files, desc='Loading checkpoint shards'): + state_dict = torch.load(f, map_location=device, mmap=True, weights_only=False) # immediately discard the potentially huge 2 optimizer states as we only care for fp32 master weights # and also handle the case where it was already removed by another helper script state_dict["optimizer_state_dict"].pop("optimizer_state_dict", None) @@ -175,23 +181,11 @@ def parse_optim_states(files, ds_checkpoint_dir): else: raise ValueError(f"unknown zero stage {zero_stage}") - if zero_stage <= 2: - fp32_flat_groups = [state_dicts[i][OPTIMIZER_STATE_DICT][fp32_groups_key] for i in range(len(state_dicts))] - elif zero_stage == 3: - # if there is more than one param group, there will be multiple flattened tensors - one - # flattened tensor per group - for simplicity merge them into a single tensor - # - # XXX: could make the script more memory efficient for when there are multiple groups - it - # will require matching the sub-lists of param_shapes for each param group flattened tensor - - fp32_flat_groups = [ - torch.cat(state_dicts[i][OPTIMIZER_STATE_DICT][fp32_groups_key], 0) for i in range(len(state_dicts)) - ] - + fp32_flat_groups = [state_dicts[i][OPTIMIZER_STATE_DICT][fp32_groups_key] for i in range(len(state_dicts))] return zero_stage, world_size, fp32_flat_groups -def _get_fp32_state_dict_from_zero_checkpoint(ds_checkpoint_dir): +def _get_fp32_state_dict_from_zero_checkpoint(ds_checkpoint_dir, exclude_frozen_parameters): """ Returns fp32 state_dict reconstructed from ds checkpoint @@ -211,9 +205,11 @@ def _get_fp32_state_dict_from_zero_checkpoint(ds_checkpoint_dir): print(f'Parsing checkpoint created by deepspeed=={zero_model_states[0].ds_version}') if zero_stage <= 2: - return _get_fp32_state_dict_from_zero2_checkpoint(world_size, fp32_flat_groups, zero_model_states) + return _get_fp32_state_dict_from_zero2_checkpoint(world_size, fp32_flat_groups, zero_model_states, + exclude_frozen_parameters) elif zero_stage == 3: - return _get_fp32_state_dict_from_zero3_checkpoint(world_size, fp32_flat_groups, zero_model_states) + return _get_fp32_state_dict_from_zero3_checkpoint(world_size, fp32_flat_groups, zero_model_states, + exclude_frozen_parameters) def _zero2_merge_frozen_params(state_dict, zero_model_states): @@ -248,6 +244,11 @@ def _zero2_merge_frozen_params(state_dict, zero_model_states): print(f"Reconstructed Frozen fp32 state dict with {total_params} params {total_numel} elements") +def _has_callable(obj, fn): + attr = getattr(obj, fn, None) + return callable(attr) + + def _zero2_merge_trainable_params(state_dict, world_size, fp32_flat_groups, zero_model_states): param_shapes = zero_model_states[0].param_shapes @@ -287,7 +288,7 @@ def _zero2_merge_trainable_params(state_dict, world_size, fp32_flat_groups, zero avail_numel = full_single_fp32_vector.numel() for name, shape in shapes.items(): - unpartitioned_numel = shape.numel() + unpartitioned_numel = shape.numel() if _has_callable(shape, 'numel') else math.prod(shape) total_numel += unpartitioned_numel total_params += 1 @@ -321,7 +322,8 @@ def zero2_align(x): print(f"Reconstructed fp32 state dict with {total_params} params {total_numel} elements") -def _get_fp32_state_dict_from_zero2_checkpoint(world_size, fp32_flat_groups, zero_model_states): +def _get_fp32_state_dict_from_zero2_checkpoint(world_size, fp32_flat_groups, zero_model_states, + exclude_frozen_parameters): state_dict = OrderedDict() # buffers @@ -330,7 +332,8 @@ def _get_fp32_state_dict_from_zero2_checkpoint(world_size, fp32_flat_groups, zer if debug: print(f"added {len(buffers)} buffers") - _zero2_merge_frozen_params(state_dict, zero_model_states) + if not exclude_frozen_parameters: + _zero2_merge_frozen_params(state_dict, zero_model_states) _zero2_merge_trainable_params(state_dict, world_size, fp32_flat_groups, zero_model_states) @@ -385,9 +388,56 @@ def _zero3_merge_frozen_params(state_dict, world_size, zero_model_states): print(f"Reconstructed Frozen fp32 state dict with {total_params} params {total_numel} elements") +class GatheredTensor: + """ + A pseudo tensor that collects partitioned weights. + It is more memory efficient when there are multiple groups. + """ + + def __init__(self, flat_groups, flat_groups_offset, offset, partitioned_numel, shape): + self.flat_groups = flat_groups + self.flat_groups_offset = flat_groups_offset + self.offset = offset + self.partitioned_numel = partitioned_numel + self.shape = shape + self.dtype = self.flat_groups[0][0].dtype + + def contiguous(self): + """ + Merge partitioned weights from flat_groups into a single tensor. + """ + end_idx = self.offset + self.partitioned_numel + world_size = len(self.flat_groups) + pad_flat_param_chunks = [] + + for rank_i in range(world_size): + # for each rank, we need to collect weights from related group/groups + flat_groups_at_rank_i = self.flat_groups[rank_i] + start_group_id = None + end_group_id = None + for group_id in range(len(self.flat_groups_offset)): + if self.flat_groups_offset[group_id] <= self.offset < self.flat_groups_offset[group_id + 1]: + start_group_id = group_id + if self.flat_groups_offset[group_id] < end_idx <= self.flat_groups_offset[group_id + 1]: + end_group_id = group_id + break + # collect weights from related group/groups + for group_id in range(start_group_id, end_group_id + 1): + flat_tensor = flat_groups_at_rank_i[group_id] + start_offset = self.offset - self.flat_groups_offset[group_id] + end_offset = min(end_idx, self.flat_groups_offset[group_id + 1]) - self.flat_groups_offset[group_id] + pad_flat_param_chunks.append(flat_tensor[start_offset:end_offset]) + + # collect weights from all ranks + pad_flat_param = torch.cat(pad_flat_param_chunks, dim=0) + param = pad_flat_param[:self.shape.numel()].view(self.shape).contiguous() + return param + + def _zero3_merge_trainable_params(state_dict, world_size, fp32_flat_groups, zero_model_states): param_shapes = zero_model_states[0].param_shapes - avail_numel = fp32_flat_groups[0].numel() * world_size + avail_numel = sum([flat_group.numel() for flat_group in fp32_flat_groups[0]]) * world_size + # Reconstruction protocol: For zero3 we need to zip the partitions together at boundary of each # param, re-consolidating each param, while dealing with padding if any @@ -411,12 +461,11 @@ def _zero3_merge_trainable_params(state_dict, world_size, fp32_flat_groups, zero offset = 0 total_numel = 0 total_params = 0 - for name, shape in param_shapes.items(): - + flat_groups_offset = [0] + list(np.cumsum([flat_tensor.numel() for flat_tensor in fp32_flat_groups[0]])) + for name, shape in tqdm(param_shapes.items(), desc='Gathering sharded weights'): unpartitioned_numel = shape.numel() total_numel += unpartitioned_numel total_params += 1 - partitioned_numel, partitioned_padding_numel = zero3_partitioned_param_info(unpartitioned_numel, world_size) if debug: @@ -424,10 +473,9 @@ def _zero3_merge_trainable_params(state_dict, world_size, fp32_flat_groups, zero f"Trainable params: {total_params} {name} full shape: {shape} partition0 numel={partitioned_numel} partitioned_padding_numel={partitioned_padding_numel}" ) - # XXX: memory usage doubles here - state_dict[name] = torch.cat( - tuple(fp32_flat_groups[i].narrow(0, offset, partitioned_numel) for i in range(world_size)), - 0).narrow(0, 0, unpartitioned_numel).view(shape) + # memory efficient tensor + tensor = GatheredTensor(fp32_flat_groups, flat_groups_offset, offset, partitioned_numel, shape) + state_dict[name] = tensor offset += partitioned_numel offset *= world_size @@ -439,7 +487,8 @@ def _zero3_merge_trainable_params(state_dict, world_size, fp32_flat_groups, zero print(f"Reconstructed Trainable fp32 state dict with {total_params} params {total_numel} elements") -def _get_fp32_state_dict_from_zero3_checkpoint(world_size, fp32_flat_groups, zero_model_states): +def _get_fp32_state_dict_from_zero3_checkpoint(world_size, fp32_flat_groups, zero_model_states, + exclude_frozen_parameters): state_dict = OrderedDict() # buffers @@ -448,7 +497,8 @@ def _get_fp32_state_dict_from_zero3_checkpoint(world_size, fp32_flat_groups, zer if debug: print(f"added {len(buffers)} buffers") - _zero3_merge_frozen_params(state_dict, world_size, zero_model_states) + if not exclude_frozen_parameters: + _zero3_merge_frozen_params(state_dict, world_size, zero_model_states) _zero3_merge_trainable_params(state_dict, world_size, fp32_flat_groups, zero_model_states) @@ -460,7 +510,30 @@ def _get_fp32_state_dict_from_zero3_checkpoint(world_size, fp32_flat_groups, zer return state_dict -def get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir, tag=None): +def to_torch_tensor(state_dict, return_empty_tensor=False): + """ + Convert state_dict of GatheredTensor to torch tensor + """ + torch_state_dict = {} + converted_tensors = {} + for name, tensor in state_dict.items(): + tensor_id = id(tensor) + if tensor_id in converted_tensors: # shared tensors + shared_tensor = torch_state_dict[converted_tensors[tensor_id]] + torch_state_dict[name] = shared_tensor + else: + converted_tensors[tensor_id] = name + if return_empty_tensor: + torch_state_dict[name] = torch.empty(tensor.shape, dtype=tensor.dtype) + else: + torch_state_dict[name] = tensor.contiguous() + return torch_state_dict + + +def get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir, + tag=None, + exclude_frozen_parameters=False, + lazy_mode=False): """ Convert ZeRO 2 or 3 checkpoint into a single fp32 consolidated state_dict that can be loaded with ``load_state_dict()`` and used for training without DeepSpeed or shared with others, for example @@ -469,14 +542,13 @@ def get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir, tag=None): Args: - ``checkpoint_dir``: path to the desired checkpoint folder - ``tag``: checkpoint tag used as a unique identifier for checkpoint. If not provided will attempt to load tag in 'latest' file. e.g., ``global_step14`` + - ``exclude_frozen_parameters``: exclude frozen parameters + - ``lazy_mode``: get state_dict in lazy mode. It returns a dict of pesduo tensor instead of torch tensor, which is more memory efficient. + Convert the pesduo tensor to torch tensor by ``.contiguous()`` Returns: - pytorch ``state_dict`` - Note: this approach may not work if your application doesn't have sufficient free CPU memory and - you may need to use the offline approach using the ``zero_to_fp32.py`` script that is saved with - the checkpoint. - A typical usage might be :: from deepspeed.utils.zero_to_fp32 import get_fp32_state_dict_from_zero_checkpoint @@ -492,6 +564,16 @@ def get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir, tag=None): If you want it all done for you, use ``load_state_dict_from_zero_checkpoint`` instead. + Note: the above usage may not work if your application doesn't have sufficient free CPU memory. + You may need to use the offline approach using the ``zero_to_fp32.py`` script that is saved with + the checkpoint. Or you can load state_dict in lazy mode :: + + from deepspeed.utils.zero_to_fp32 import get_fp32_state_dict_from_zero_checkpoint + state_dict = get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir, lazy_mode=True) # not on cpu + for name, lazy_tensor in state_dict.item(): + tensor = lazy_tensor.contiguous() # to cpu + print(name, tensor) + # del tensor to release memory if it no longer in use """ if tag is None: latest_path = os.path.join(checkpoint_dir, 'latest') @@ -506,23 +588,96 @@ def get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir, tag=None): if not os.path.isdir(ds_checkpoint_dir): raise FileNotFoundError(f"Directory '{ds_checkpoint_dir}' doesn't exist") - return _get_fp32_state_dict_from_zero_checkpoint(ds_checkpoint_dir) + state_dict = _get_fp32_state_dict_from_zero_checkpoint(ds_checkpoint_dir, exclude_frozen_parameters) + if lazy_mode: + return state_dict + else: + return to_torch_tensor(state_dict) -def convert_zero_checkpoint_to_fp32_state_dict(checkpoint_dir, output_file, tag=None): +def convert_zero_checkpoint_to_fp32_state_dict(checkpoint_dir, + output_dir, + max_shard_size="5GB", + safe_serialization=False, + tag=None, + exclude_frozen_parameters=False): """ Convert ZeRO 2 or 3 checkpoint into a single fp32 consolidated ``state_dict`` file that can be loaded with ``torch.load(file)`` + ``load_state_dict()`` and used for training without DeepSpeed. Args: - ``checkpoint_dir``: path to the desired checkpoint folder. (one that contains the tag-folder, like ``global_step14``) - - ``output_file``: path to the pytorch fp32 state_dict output file (e.g. path/pytorch_model.bin) + - ``output_dir``: directory to the pytorch fp32 state_dict output files + - ``max_shard_size``: the maximum size for a checkpoint before being sharded, default value is 5GB + - ``safe_serialization``: whether to save the model using `safetensors` or the traditional PyTorch way (that uses `pickle`). - ``tag``: checkpoint tag used as a unique identifier for checkpoint. If not provided will attempt to load tag in the file named ``latest`` in the checkpoint folder, e.g., ``global_step14`` + - ``exclude_frozen_parameters``: exclude frozen parameters """ - state_dict = get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir, tag) - print(f"Saving fp32 state dict to {output_file}") - torch.save(state_dict, output_file) + # Dependency pre-check + if safe_serialization: + try: + from safetensors.torch import save_file + except ImportError: + print('If you want to use `safe_serialization`, please `pip install safetensors`') + raise + if max_shard_size is not None: + try: + from huggingface_hub import split_torch_state_dict_into_shards + except ImportError: + print('If you want to use `max_shard_size`, please `pip install huggingface_hub`') + raise + + # Convert zero checkpoint to state_dict + state_dict = get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir, + tag, + exclude_frozen_parameters, + lazy_mode=True) + + # Shard the model if it is too big. + weights_name = "model.safetensors" if safe_serialization else "pytorch_model.bin" + if max_shard_size is not None: + filename_pattern = weights_name.replace(".bin", "{suffix}.bin").replace(".safetensors", "{suffix}.safetensors") + # an memory-efficient approach for sharding + empty_state_dict = to_torch_tensor(state_dict, return_empty_tensor=True) + state_dict_split = split_torch_state_dict_into_shards(empty_state_dict, + filename_pattern=filename_pattern, + max_shard_size=max_shard_size) + else: + from collections import namedtuple + StateDictSplit = namedtuple("StateDictSplit", ["is_sharded", "filename_to_tensors"]) + state_dict_split = StateDictSplit(is_sharded=False, + filename_to_tensors={weights_name: list(state_dict.keys())}) + + # Save the model by shard + os.makedirs(output_dir, exist_ok=True) + filename_to_tensors = state_dict_split.filename_to_tensors.items() + for shard_file, tensors in tqdm(filename_to_tensors, desc="Saving checkpoint shards"): + shard_state_dict = {tensor_name: state_dict[tensor_name] for tensor_name in tensors} + shard_state_dict = to_torch_tensor(shard_state_dict) + output_path = os.path.join(output_dir, shard_file) + if safe_serialization: + save_file(shard_state_dict, output_path, metadata={"format": "pt"}) + else: + torch.save(shard_state_dict, output_path) + # release the memory of current shard + for tensor_name in list(shard_state_dict.keys()): + del state_dict[tensor_name] + del shard_state_dict[tensor_name] + del shard_state_dict + gc.collect() + + # Save index if sharded + if state_dict_split.is_sharded: + index = { + "metadata": state_dict_split.metadata, + "weight_map": state_dict_split.tensor_to_filename, + } + save_index_file = "model.safetensors.index.json" if safe_serialization else "pytorch_model.bin.index.json" + save_index_file = os.path.join(output_dir, save_index_file) + with open(save_index_file, "w", encoding="utf-8") as f: + content = json.dumps(index, indent=2, sort_keys=True) + "\n" + f.write(content) def load_state_dict_from_zero_checkpoint(model, checkpoint_dir, tag=None): @@ -565,23 +720,41 @@ def load_state_dict_from_zero_checkpoint(model, checkpoint_dir, tag=None): if __name__ == "__main__": - parser = argparse.ArgumentParser() parser.add_argument("checkpoint_dir", type=str, help="path to the desired checkpoint folder, e.g., path/checkpoint-12") + parser.add_argument("output_dir", + type=str, + help="directory to the pytorch fp32 state_dict output files" + "(e.g. path/checkpoint-12-output/)") parser.add_argument( - "output_file", + "--max_shard_size", type=str, - help="path to the pytorch fp32 state_dict output file (e.g. path/checkpoint-12/pytorch_model.bin)") + default="5GB", + help="The maximum size for a checkpoint before being sharded. Checkpoints shard will then be each of size" + "lower than this size. If expressed as a string, needs to be digits followed by a unit (like `5MB`" + "We default it to 5GB in order for models to be able to run easily on free-tier google colab instances" + "without CPU OOM issues.") + parser.add_argument( + "--safe_serialization", + default=False, + action='store_true', + help="Whether to save the model using `safetensors` or the traditional PyTorch way (that uses `pickle`).") parser.add_argument("-t", "--tag", type=str, default=None, help="checkpoint tag used as a unique identifier for checkpoint. e.g., global_step1") + parser.add_argument("--exclude_frozen_parameters", action='store_true', help="exclude frozen parameters") parser.add_argument("-d", "--debug", action='store_true', help="enable debug") args = parser.parse_args() debug = args.debug - convert_zero_checkpoint_to_fp32_state_dict(args.checkpoint_dir, args.output_file, tag=args.tag) + convert_zero_checkpoint_to_fp32_state_dict(args.checkpoint_dir, + args.output_dir, + max_shard_size=args.max_shard_size, + safe_serialization=args.safe_serialization, + tag=args.tag, + exclude_frozen_parameters=args.exclude_frozen_parameters) diff --git a/docker/Dockerfile b/docker/Dockerfile index c5f0124b3908..263a30be27c5 100755 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,4 +1,4 @@ -FROM nvidia/cuda:11.7.1-devel-ubuntu18.04 +FROM nvidia/cuda:12.2.2-devel-ubuntu20.04 ENV DEBIAN_FRONTEND noninteractive @@ -19,7 +19,7 @@ RUN apt-get update && \ curl wget vim tmux emacs less unzip \ htop iftop iotop ca-certificates openssh-client openssh-server \ rsync iputils-ping net-tools sudo \ - llvm-9-dev + llvm-dev ############################################################################## # Installation Latest Git @@ -40,20 +40,20 @@ RUN cp /etc/ssh/sshd_config ${STAGE_DIR}/sshd_config && \ ############################################################################## # Mellanox OFED ############################################################################## -ENV MLNX_OFED_VERSION=4.6-1.0.1.1 +ENV MLNX_OFED_VERSION=4.9-7.1.0.0 RUN apt-get install -y libnuma-dev RUN cd ${STAGE_DIR} && \ - wget -q -O - http://www.mellanox.com/downloads/ofed/MLNX_OFED-${MLNX_OFED_VERSION}/MLNX_OFED_LINUX-${MLNX_OFED_VERSION}-ubuntu18.04-x86_64.tgz | tar xzf - && \ - cd MLNX_OFED_LINUX-${MLNX_OFED_VERSION}-ubuntu18.04-x86_64 && \ + wget -q -O - http://www.mellanox.com/downloads/ofed/MLNX_OFED-${MLNX_OFED_VERSION}/MLNX_OFED_LINUX-${MLNX_OFED_VERSION}-ubuntu20.04-x86_64.tgz | tar xzf - && \ + cd MLNX_OFED_LINUX-${MLNX_OFED_VERSION}-ubuntu20.04-x86_64 && \ ./mlnxofedinstall --user-space-only --without-fw-update --all -q && \ cd ${STAGE_DIR} && \ - rm -rf ${STAGE_DIR}/MLNX_OFED_LINUX-${MLNX_OFED_VERSION}-ubuntu18.04-x86_64* + rm -rf ${STAGE_DIR}/MLNX_OFED_LINUX-${MLNX_OFED_VERSION}-ubuntu20.04-x86_64* ############################################################################## # nv_peer_mem ############################################################################## -ENV NV_PEER_MEM_VERSION=1.1 -ENV NV_PEER_MEM_TAG=1.1-0 +ENV NV_PEER_MEM_VERSION=1.2 +ENV NV_PEER_MEM_TAG=${NV_PEER_MEM_VERSION}-0 RUN mkdir -p ${STAGE_DIR} && \ git clone https://github.com/Mellanox/nv_peer_memory.git --branch ${NV_PEER_MEM_TAG} ${STAGE_DIR}/nv_peer_memory && \ cd ${STAGE_DIR}/nv_peer_memory && \ @@ -69,8 +69,8 @@ RUN mkdir -p ${STAGE_DIR} && \ ############################################################################## # OPENMPI ############################################################################## -ENV OPENMPI_BASEVERSION=4.0 -ENV OPENMPI_VERSION=${OPENMPI_BASEVERSION}.1 +ENV OPENMPI_BASEVERSION=4.1 +ENV OPENMPI_VERSION=${OPENMPI_BASEVERSION}.6 RUN cd ${STAGE_DIR} && \ wget -q -O - https://download.open-mpi.org/release/open-mpi/v${OPENMPI_BASEVERSION}/openmpi-${OPENMPI_VERSION}.tar.gz | tar xzf - && \ cd openmpi-${OPENMPI_VERSION} && \ @@ -106,12 +106,6 @@ RUN apt-get install -y python3 python3-dev && \ RUN pip install pyyaml RUN pip install ipython -############################################################################## -# TensorFlow -############################################################################## -ENV TENSORFLOW_VERSION=1.15.2 -RUN pip install tensorflow-gpu==${TENSORFLOW_VERSION} - ############################################################################## # Some Packages ############################################################################## @@ -138,16 +132,13 @@ RUN pip install psutil \ sentencepiece \ msgpack \ requests \ - pandas \ sphinx \ sphinx_rtd_theme \ scipy \ numpy \ - sklearn \ scikit-learn \ nvidia-ml-py3 \ - mpi4py \ - cupy-cuda100 + mpi4py ############################################################################## ## SSH daemon port inside container cannot conflict with host OS port @@ -159,12 +150,8 @@ RUN cat /etc/ssh/sshd_config > ${STAGE_DIR}/sshd_config && \ ############################################################################## # PyTorch ############################################################################## -ENV PYTORCH_VERSION=1.9.0 -ENV TORCHVISION_VERSION=0.10.0 -ENV TENSORBOARDX_VERSION=1.8 +ENV PYTORCH_VERSION=1.13.0 RUN pip install torch==${PYTORCH_VERSION} -RUN pip install torchvision==${TORCHVISION_VERSION} -RUN pip install tensorboardX==${TENSORBOARDX_VERSION} ############################################################################## # PyYAML build issue @@ -187,7 +174,7 @@ USER deepspeed ############################################################################## # DeepSpeed ############################################################################## -RUN git clone https://github.com/microsoft/DeepSpeed.git ${STAGE_DIR}/DeepSpeed +RUN git clone https://github.com/deepspeedai/DeepSpeed.git ${STAGE_DIR}/DeepSpeed RUN cd ${STAGE_DIR}/DeepSpeed && \ git checkout . && \ git checkout master && \ diff --git a/docker/gh-builder/Dockerfile.py311 b/docker/gh-builder/Dockerfile.py311 new file mode 100644 index 000000000000..603fb614314f --- /dev/null +++ b/docker/gh-builder/Dockerfile.py311 @@ -0,0 +1,35 @@ +# Start with NGC container +FROM nvcr.io/nvidia/pytorch:24.03-py3 + +# Set noninteractive mode for apt-get +ARG DEBIAN_FRONTEND=noninteractive + +# Install necessary dependencies for building Python +RUN apt-get update && apt-get install -y \ + wget \ + build-essential \ + libssl-dev \ + zlib1g-dev \ + libbz2-dev \ + libreadline-dev \ + libsqlite3-dev \ + curl \ + libncursesw5-dev \ + libgdbm-dev \ + libc6-dev \ + libffi-dev \ + tk-dev \ + && rm -rf /var/lib/apt/lists/* + +# Download and install Python 3.11 +RUN wget https://www.python.org/ftp/python/3.11.9/Python-3.11.9.tgz \ + && tar xzf Python-3.11.9.tgz \ + && cd Python-3.11.9 \ + && ./configure --enable-optimizations \ + && make altinstall \ + && cd .. \ + && rm -rf Python-3.11.9 Python-3.11.9.tgz + +# Set Python 3.11 as the default Python version +RUN update-alternatives --install /usr/bin/python python /usr/local/bin/python3.11 1 \ + && update-alternatives --install /usr/bin/python3 python3 /usr/local/bin/python3.11 1 diff --git a/docker/gh-builder/Dockerfile.py312 b/docker/gh-builder/Dockerfile.py312 new file mode 100644 index 000000000000..a0a7193201d4 --- /dev/null +++ b/docker/gh-builder/Dockerfile.py312 @@ -0,0 +1,35 @@ +# Start with NGC container +FROM nvcr.io/nvidia/pytorch:24.03-py3 + +# Set noninteractive mode for apt-get +ARG DEBIAN_FRONTEND=noninteractive + +# Install necessary dependencies for building Python +RUN apt-get update && apt-get install -y \ + wget \ + build-essential \ + libssl-dev \ + zlib1g-dev \ + libbz2-dev \ + libreadline-dev \ + libsqlite3-dev \ + curl \ + libncursesw5-dev \ + libgdbm-dev \ + libc6-dev \ + libffi-dev \ + tk-dev \ + && rm -rf /var/lib/apt/lists/* + +# Download and install Python 3.12 +RUN wget https://www.python.org/ftp/python/3.12.5/Python-3.12.5.tgz \ + && tar xzf Python-3.12.5.tgz \ + && cd Python-3.12.5 \ + && ./configure --enable-optimizations \ + && make altinstall \ + && cd .. \ + && rm -rf Python-3.12.5 Python-3.12.5.tgz + +# Set Python 3.12 as the default Python version +RUN update-alternatives --install /usr/bin/python python /usr/local/bin/python3.12 1 \ + && update-alternatives --install /usr/bin/python3 python3 /usr/local/bin/python3.12 1 diff --git a/docker/Dockerfile.rocm b/docker/rocm/Dockerfile similarity index 100% rename from docker/Dockerfile.rocm rename to docker/rocm/Dockerfile diff --git a/docs/CNAME b/docs/CNAME index 72033bc5f7fe..47f170e64eeb 100644 --- a/docs/CNAME +++ b/docs/CNAME @@ -1 +1 @@ -www.deepspeed.ai +www.deepspeed.ai \ No newline at end of file diff --git a/docs/Gemfile b/docs/Gemfile index 888e3c8dfd6a..f40c61e4575f 100644 --- a/docs/Gemfile +++ b/docs/Gemfile @@ -20,3 +20,5 @@ end # Performance-booster for watching directories on Windows gem "wdm", "~> 0.1.1", :install_if => Gem.win_platform? + +gem "webrick", "~> 1.8" diff --git a/docs/README.md b/docs/README.md index 0c3aaaeda600..7333a119c7be 100644 --- a/docs/README.md +++ b/docs/README.md @@ -42,6 +42,16 @@ We now need to install the required Ruby packages for the website. bundle install ``` +Depending on your environment, you may need to add `webrick` to avoid the following [error](https://talk.jekyllrb.com/t/load-error-cannot-load-such-file-webrick/5417/6): + +> gems/gems/jekyll-3.9.5/lib/jekyll/commands/serve/servlet.rb:3:in `require': cannot load such file -- webrick (LoadError) + + +``` +bundle add webrick +``` + + You can now start a local webserver via: ``` bundle exec jekyll serve diff --git a/docs/_data/navigation.yml b/docs/_data/navigation.yml index 217d56c14812..46875d75059b 100755 --- a/docs/_data/navigation.yml +++ b/docs/_data/navigation.yml @@ -8,7 +8,7 @@ main: - title: 'Documentation' url: https://deepspeed.readthedocs.io/ - title: 'GitHub' - url: https://github.com/microsoft/DeepSpeed + url: https://github.com/deepspeedai/DeepSpeed lnav: - title: 'Training' @@ -41,7 +41,7 @@ lnav: - title: 'Flops Profiler' url: /docs/config-json/#flops-profiler - title: 'Monitoring' - url: /docs/config-json/#monitoring-module-tensorboard-wandb-csv + url: /docs/config-json/#monitoring-module - title: 'Communication Logging' url: /docs/config-json/#communication-logging - title: 'Model Compression' @@ -55,6 +55,10 @@ lnav: url: /getting-started/ - title: 'Getting started on Azure' url: /tutorials/azure/ + - title: 'Accelerator Abstraction' + url: /tutorials/accelerator-abstraction-interface/ + - title: 'Accelerator Setup Guides' + url: /tutorials/accelerator-setup-guide/ - title: 'Automatic Tensor Parallelism' url: /tutorials/automatic-tensor-parallelism/ - title: 'Autotuning' @@ -69,6 +73,10 @@ lnav: url: /tutorials/curriculum-learning/ - title: 'Data Efficiency' url: /tutorials/data-efficiency/ + - title: 'DeepNVMe' + url: /tutorials/deepnvme/ + - title: 'Domino' + url: /tutorials/domino/ - title: 'DS4Sci_EvoformerAttention' url: /tutorials/ds4sci_evoformerattention/ - title: 'Flops Profiler' diff --git a/docs/_pages/config-json.md b/docs/_pages/config-json.md index e9d7166b05b3..43de95b5210b 100755 --- a/docs/_pages/config-json.md +++ b/docs/_pages/config-json.md @@ -6,7 +6,7 @@ toc_label: "Contents" ### Batch Size Related Parameters -**Note:** **train_batch_size** must be equal to **train_micro_batch_size_per_gpu** * **gradient_accumulation** * number of GPUs. For simplicity, you can choose to only specify two of the three parameters, the last one will be inferred automatically by DeepSpeed. +**Note:** **train_batch_size** must be equal to **train_micro_batch_size_per_gpu** * **gradient_accumulation_steps** * number of GPUs. For simplicity, you can choose to only specify two of the three parameters, the last one will be inferred automatically by DeepSpeed. {: .notice--warning} **train_batch_size**: [integer] @@ -371,11 +371,12 @@ Enabling and configuring ZeRO memory optimizations "sub_group_size" : 1e12, "elastic_checkpoint" : [true|false], "stage3_gather_16bit_weights_on_model_save": [true|false], - "ignore_unused_parameters": [true|false] - "round_robin_gradients": [true|false] - "zero_hpz_partition_size": 1 - "zero_quantized_weights": [true|false] - "zero_quantized_gradients": [true|false] + "ignore_unused_parameters": [true|false], + "round_robin_gradients": [true|false], + "zero_hpz_partition_size": 1, + "zero_quantized_weights": [true|false], + "zero_quantized_gradients": [true|false], + "log_trace_cache_warnings": [true|false], } ``` @@ -480,7 +481,7 @@ Enabling and configuring ZeRO memory optimizations | Description | Default | | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | -| Do not partition parameters smaller than this threshold. Smaller values use less memory, but can greatly increase communication (especially latency-bound messages). | `1e6` | +| Do not partition parameters smaller than this threshold. Smaller values use less memory, but can greatly increase communication (especially latency-bound messages). | `1e5` | ***stage3_gather_16bit_weights_on_model_save***: [boolean] @@ -489,6 +490,11 @@ Enabling and configuring ZeRO memory optimizations |--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| ------- | | Consolidate the weights before saving the model by `save_16bit_model()`. Since the weights are partitioned across GPUs, they aren't part of `state_dict`, so this function automatically gathers the weights when this option is enabled and then saves the fp16 model weights. | `False` | +***stage3_module_granularity_threshold***: [integer] +| Description | Default | +|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| ------- | +| The granularity of a module is determined by the ratio of `parameter_count` / `(1 + descendant_count)`. ZeRO3 classifies modules with a granularity below the threshold as fine-grained, treating them as integral units during parameter fetching. This reduces host and communication overhead from separate hooks. | `0` | + ***zero_hpz_partition_size***: [integer] | Description | Default | @@ -507,6 +513,12 @@ Enabling and configuring ZeRO memory optimizations | ----------------------------------------------------------------------------------------------------------------------------------- | ------- | |Boolean indicating whether to enable communication efficient quantized gradients of ZeRO++. | `False` | +**log_trace_cache_warnings**: [boolean] + +| Description | Default | +| ------------------------------------------------------------------------------------------------------------------- | ------- | +| Log warnings from trace cache optimization of parameter sharding, such as cache invalidation events. | `False` | + ***cpu_offload***: [boolean] **Deprecated:** **cpu_offload** is deprecated and will be removed in future, please use `offload_optimizer` instead. @@ -663,7 +675,7 @@ Configuring the asynchronous I/O module for offloading parameter and optimizer s | Description | Default | | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | -| Unused parameters in modules may be unexpected in static networks, but could be normal in dynamic networks. This controls whether or not training should terminate with an error message when unused parameters are detected. This is set to `False` by default, which means unused parameters are ignored and training continues. Now is just used in stage 2. | `True` | +| Unused parameters in modules may be unexpected in static networks, but could be normal in dynamic networks. This controls whether or not training should terminate with an error message when unused parameters are detected. This is set to `True` by default, which means unused parameters are ignored and training continues. Now is just used in stage 2. | `True` | ### Logging @@ -1139,15 +1151,16 @@ DeepSpeed Data Efficiency Library includes two techniques: curriculum learning a | ---------------------------------------------------------------------------------------------------------------------------- | ------- | | List of which step to change difficulty level. One of the `schedule_config` when the `fixed_discrete` schedule_type is used. | N/A | -### Monitoring Module (TensorBoard, WandB, CSV) +### Monitoring Module **Note:** Deepspeed logs to TensorBoard through PyTorch. Logging to TensorBoard requires that the `tensorboard` package is installed (read more in the [PyTorch documentation](https://pytorch.org/docs/1.8.0/tensorboard.html)). {: .notice--warning} **Note:** Logging to WandB requires that the `wandb` package is installed (read more in the [WandB documentation](https://docs.wandb.ai/quickstart)). {: .notice--warning} +**Note:** Logging to Comet requires that the `comet_ml` package is installed (read more in the [Comet documentation](https://www.comet.com/docs/v2/guides/quickstart/#1-install-and-configure-the-comet-ml-sdk)). +{: .notice--warning} - -Deepspeed's Monitor module can log training details into a [Tensorboard](https://www.tensorflow.org/tensorboard)-compatible file, to [WandB](https://wandb.ai/site), or to simple CSV files. Below is an overview of what DeepSpeed will log automatically. +Deepspeed's Monitor module can log training details into a [Tensorboard](https://www.tensorflow.org/tensorboard)-compatible file, to [WandB](https://wandb.ai/site), to [Comet](https://www.comet.com/site/?utm_source=deepseed&utm_medium=docs&utm_content=docs) or to simple CSV files. Below is an overview of what DeepSpeed will log automatically. | Field | Description |Conditions | | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----- | @@ -1201,6 +1214,36 @@ Example of **wandb** configuration: } ``` +**comet**: [dictionary] + +| Fields | Value | Default | +|--- |--- |--- | +| enabled | Whether logging to [Comet](https://www.comet.com/site/) is enabled. | `false` | +| workspace | Comet workspace name. | `None` | +| project | Comet project name. | `None` | +| samples_log_interval | Metrics will be submitted to Comet after processing every `samples_log_intervas` samples. | `100` | +| experiment_name | The name for comet experiment to be used for logging. | `None` | +| api_key | Comet API key. It's not recommended to save the Comet API Key in code. | `None` | +| experiment_key | The key for comet experiment to be used for logging. Must be an alphanumeric string whose length is between 32 and 50 characters. | `None` | +| online | If True, the data will be logged to Comet server, otherwise it will be stored locally in offline experiment. Default is `True`. | `None` | +| mode | Control how the Comet experiment is started. "get": Continue logging to an existing experiment identified by the `experiment_key` value. "create": Always creates of a new experiment, useful for HPO sweeps. "get_or_create" (default): Starts a fresh experiment if required, or persists logging to an existing one. | `None` | + + +Example of **comet** configuration: + +```json +"comet": { + "enabled": true, + "workspace": "my_workspace", + "project": "my_project", + "samples_log_interval": 50, + "experiment_name": "llama-fine-tuning", + "experiment_key": "0c4a1c4a90664f2a8084e600b19a9d7", + "online": false, + "mode": "get", +} +``` + **csv_monitor**: [dictionary] | Fields | Value |Default | diff --git a/docs/_pages/deepspeed4science.md b/docs/_pages/deepspeed4science.md index b35351838f22..b1aa706ad180 100755 --- a/docs/_pages/deepspeed4science.md +++ b/docs/_pages/deepspeed4science.md @@ -24,14 +24,14 @@ To cite DeepSpeed4Science, please cite our [white paper](https://arxiv.org/abs/2 ## New Megatron-DeepSpeed for Large-Scale AI4Science Model Training -We are proud to introduce [new Megatron-DeepSpeed](https://github.com/microsoft/Megatron-DeepSpeed), which is an updated framework for large-scale model training. We rebased and enabled DeepSpeed with the newest Megatron-LM for long sequence support and many other capabilities. With the new Megatron-DeepSpeed, users can now train their large AI4Science models like GenSLMs with much longer sequences via a synergetic combination of ZeRO-style data parallelism, tensor parallelism, sequence parallelism, pipeline parallelism, model state offloading, and several newly added memory optimization techniques such as attention mask offloading and position embedding partitioning. +We are proud to introduce [new Megatron-DeepSpeed](https://github.com/deepspeedai/Megatron-DeepSpeed), which is an updated framework for large-scale model training. We rebased and enabled DeepSpeed with the newest Megatron-LM for long sequence support and many other capabilities. With the new Megatron-DeepSpeed, users can now train their large AI4Science models like GenSLMs with much longer sequences via a synergetic combination of ZeRO-style data parallelism, tensor parallelism, sequence parallelism, pipeline parallelism, model state offloading, and several newly added memory optimization techniques such as attention mask offloading and position embedding partitioning. ![new Megatron-DeepSpeed](/assets/images/new-megatron-ds.png){: .align-center}

    The figure depicts system capability in terms of enabling long sequence lengths for training a 33B parameter GPT-like model using our new Megatron-DeepSpeed framework. The results show that the new Megatron-DeepSpeed enables 9x longer sequence lengths than NVIDIA's Megatron-LM without triggering out-of-memory error.

    -To see how the new Megatron-DeepSpeed helps enabling new system capabilities, such as training models with massive sequences length, please read our [tutorial](https://github.com/microsoft/Megatron-DeepSpeed/tree/main/examples_deepspeed/deepspeed4science/megatron_long_seq_support). +To see how the new Megatron-DeepSpeed helps enabling new system capabilities, such as training models with massive sequences length, please read our [tutorial](https://github.com/deepspeedai/Megatron-DeepSpeed/tree/main/examples_deepspeed/deepspeed4science/megatron_long_seq_support). Meanwhile, our new Megatron-DeepSpeed has been applied to genome-scale foundation model [GenSLMs](https://github.com/ramanathanlab/genslm), which is a 2022 [ACM Gordon Bell award](https://www.acm.org/media-center/2022/november/gordon-bell-special-prize-covid-research-2022) winning genome-scale language model from Argonne National Lab. To achieve their scientific goal, GenSLMs and similar models require very long sequence support for both training and inference that is beyond generic LLM's long-sequence strategies. By leveraging DeepSpeed4Science's new Megatron-DeepSpeed, GenSLMs team is able to train their 25B model with 512K sequence length, much longer than their original 42K sequence length. Detailed information about the methodology can be found at [our website](https://deepspeed4science.ai/2023/09/18/model-showcase-genslms/). GenSLMs team also hosts an [example](https://github.com/ramanathanlab/genslm/tree/main/examples/long-sequences) about how to use DeepSpeed4Science in the GenSLMs repo. diff --git a/docs/_pages/inference.md b/docs/_pages/inference.md index d63604e1f022..fb3534872439 100755 --- a/docs/_pages/inference.md +++ b/docs/_pages/inference.md @@ -6,8 +6,10 @@ toc: true toc_label: "Contents" --- +>**DeepSpeed-Inference v2 is here and it's called DeepSpeed-FastGen! For the best performance, latest features, and newest model support please see our [DeepSpeed-FastGen release blog](https://github.com/deepspeedai/DeepSpeed/tree/master/blogs/deepspeed-fastgen)!** + DeepSpeed-Inference introduces several features to efficiently serve transformer-based PyTorch models. It supports model parallelism (MP) to fit large models that would otherwise not fit in GPU memory. Even for smaller models, MP can be used to reduce latency for inference. To further reduce latency and cost, we introduce inference-customized kernels. Finally, we propose a novel approach to quantize models, called MoQ, to both shrink the model and reduce the inference cost at production. For more details on the inference related optimizations in DeepSpeed, please refer to our [blog post](https://www.microsoft.com/en-us/research/blog/deepspeed-accelerating-large-scale-model-inference-and-training-via-system-optimizations-and-compression/). -DeepSpeed provides a seamless inference mode for compatible transformer based models trained using DeepSpeed, Megatron, and HuggingFace, meaning that we don’t require any change on the modeling side such as exporting the model or creating a different checkpoint from your trained checkpoints. To run inference on multi-GPU for compatible models, provide the model parallelism degree and the checkpoint information or the model which is already loaded from a checkpoint, and DeepSpeed will do the rest. It will automatically partition the model as necessary, inject compatible high performance kernels into your model and manage the inter-gpu communication. For list of compatible models please see [here](https://github.com/microsoft/DeepSpeed/blob/master/deepspeed/module_inject/replace_policy.py). +DeepSpeed provides a seamless inference mode for compatible transformer based models trained using DeepSpeed, Megatron, and HuggingFace, meaning that we don’t require any change on the modeling side such as exporting the model or creating a different checkpoint from your trained checkpoints. To run inference on multi-GPU for compatible models, provide the model parallelism degree and the checkpoint information or the model which is already loaded from a checkpoint, and DeepSpeed will do the rest. It will automatically partition the model as necessary, inject compatible high performance kernels into your model and manage the inter-gpu communication. For list of compatible models please see [here](https://github.com/deepspeedai/DeepSpeed/blob/master/deepspeed/module_inject/replace_policy.py). To get started with DeepSpeed-Inference, please checkout our [tutorial](https://www.deepspeed.ai/tutorials/inference-tutorial/). diff --git a/docs/_posts/2020-05-19-bert-record.md b/docs/_posts/2020-05-19-bert-record.md index b47ad0b0beaf..67d00280348e 100644 --- a/docs/_posts/2020-05-19-bert-record.md +++ b/docs/_posts/2020-05-19-bert-record.md @@ -19,4 +19,4 @@ the same number and generation of GPUs. * Brief overview, see our [press release](https://www.microsoft.com/en-us/research/blog/ZeRO-2-deepspeed-shattering-barriers-of-deep-learning-speed-scale/). * Detailed technology deep dive, see our [blog post](https://www.deepspeed.ai/2020/05/27/fastest-bert-training.html). * Tutorial on how to reproduce our results, see our [BERT pre-training tutorial](https://www.deepspeed.ai/tutorials/bert-pretraining/). -* The source code for our transformer kernels can be found in the [DeepSpeed repo](https://github.com/microsoft/deepspeed) and BERT pre-training code can be found in the [DeepSpeedExamples repo](https://github.com/microsoft/deepspeedexamples). +* The source code for our transformer kernels can be found in the [DeepSpeed repo](https://github.com/deepspeedai/deepspeed) and BERT pre-training code can be found in the [DeepSpeedExamples repo](https://github.com/deepspeedai/deepspeedexamples). diff --git a/docs/_posts/2020-05-28-fastest-bert-training.md b/docs/_posts/2020-05-28-fastest-bert-training.md index 62be6c1bffce..2154c36fe279 100644 --- a/docs/_posts/2020-05-28-fastest-bert-training.md +++ b/docs/_posts/2020-05-28-fastest-bert-training.md @@ -284,7 +284,7 @@ and faster convergence. To try out these optimizations and training recipe, please check out our [BERT training tutorial](https://www.deepspeed.ai/tutorials/bert-pretraining/) and source code at the [DeepSpeed GitHub -repo](https://github.com/microsoft/deepspeed). +repo](https://github.com/deepspeedai/deepspeed). ### References diff --git a/docs/_posts/2020-09-08-sparse-attention-news.md b/docs/_posts/2020-09-08-sparse-attention-news.md index 79de33a82e3a..b9a0aeb88d9b 100644 --- a/docs/_posts/2020-09-08-sparse-attention-news.md +++ b/docs/_posts/2020-09-08-sparse-attention-news.md @@ -11,4 +11,4 @@ DeepSpeed offers sparse attention kernels, an instrumental technology to support * Brief overview, see our [press release]({{ site.press_release_v3 }}). * Detailed technology deep dive, see our [blog post](https://www.deepspeed.ai/2020/09/08/sparse-attention.html). * Tutorial on how to use sparse attention, see our [Sparse attention tutorial](https://www.deepspeed.ai/tutorials/sparse-attention/). -* The source code for our sparse attention kernels can be found in the [DeepSpeed repo](https://github.com/microsoft/deepspeed) and BERT pre-training code using sparse attention can be found in the [DeepSpeedExamples repo](https://github.com/microsoft/deepspeedexamples). +* The source code for our sparse attention kernels can be found in the [DeepSpeed repo](https://github.com/deepspeedai/deepspeed) and BERT pre-training code using sparse attention can be found in the [DeepSpeedExamples repo](https://github.com/deepspeedai/deepspeedexamples). diff --git a/docs/_posts/2020-09-09-ZeRO-Offload.md b/docs/_posts/2020-09-09-ZeRO-Offload.md index 8e2e8423fd55..e0626f791a4e 100755 --- a/docs/_posts/2020-09-09-ZeRO-Offload.md +++ b/docs/_posts/2020-09-09-ZeRO-Offload.md @@ -10,4 +10,4 @@ We introduce a new technology called ZeRO-Offload to enable **10X bigger model t * For more information on ZeRO-Offload, see our [press release]( {{ site.press_release_v3 }} ). * For more information on how to use ZeRO-Offload, see our [ZeRO-Offload tutorial](https://www.deepspeed.ai/tutorials/ZeRO-offload/). -* The source code for ZeRO-Offload can be found in the [DeepSpeed repo](https://github.com/microsoft/deepspeed). +* The source code for ZeRO-Offload can be found in the [DeepSpeed repo](https://github.com/deepspeedai/deepspeed). diff --git a/docs/_posts/2020-09-09-onebit-adam-news.md b/docs/_posts/2020-09-09-onebit-adam-news.md index d0adcb09987f..1fd8ef89edce 100644 --- a/docs/_posts/2020-09-09-onebit-adam-news.md +++ b/docs/_posts/2020-09-09-onebit-adam-news.md @@ -17,4 +17,4 @@ its efficient implementation in DeepSpeed. 1-bit Adam offers the ***same converg * Brief overview, see our [press release]({{ site.press_release_v3 }}). * Detailed technology deep dive, see our [blog post](https://www.deepspeed.ai/2020/09/08/onebit-adam-blog-post.html). * Tutorial on how to reproduce our results, see our [1-bit Adam tutorial](/tutorials/onebit-adam/). -* The source code for 1-bit Adam can be found in the [DeepSpeed repo](https://github.com/microsoft/deepspeed). The implementation of 1-bit Adam is in [onebit_adam.py](https://github.com/microsoft/DeepSpeed/blob/master/deepspeed/runtime/fp16/onebit_adam.py) and CUDA-Aware communication for 1-bit Adam is in [custom_collectives.py](https://github.com/microsoft/DeepSpeed/blob/master/deepspeed/runtime/custom_collectives.py). Example codes to try this feature can be found in the [DeepSpeedExamples repo](https://github.com/microsoft/deepspeedexamples) as shown in the [tutorial](/tutorials/onebit-adam/). +* The source code for 1-bit Adam can be found in the [DeepSpeed repo](https://github.com/deepspeedai/deepspeed). The implementation of 1-bit Adam is in [onebit_adam.py](https://github.com/deepspeedai/DeepSpeed/blob/master/deepspeed/runtime/fp16/onebit_adam.py) and CUDA-Aware communication for 1-bit Adam is in [custom_collectives.py](https://github.com/deepspeedai/DeepSpeed/blob/master/deepspeed/runtime/custom_collectives.py). Example codes to try this feature can be found in the [DeepSpeedExamples repo](https://github.com/deepspeedai/deepspeedexamples) as shown in the [tutorial](/tutorials/onebit-adam/). diff --git a/docs/_posts/2020-09-09-pipeline-parallelism.md b/docs/_posts/2020-09-09-pipeline-parallelism.md index 48343ebd8d1e..fe708bc4d50d 100644 --- a/docs/_posts/2020-09-09-pipeline-parallelism.md +++ b/docs/_posts/2020-09-09-pipeline-parallelism.md @@ -14,5 +14,5 @@ low-bandwidth network by up to 7x. * For a brief overview and results including trillion-parameter capabilities, see our [press release]({{ site.press_release_v3 }}). * To get started with pipeline parallel training in DeepSpeed, we recommend our [tutorial](/tutorials/pipeline/). -* See our AlexNet example in [DeepSpeedExamples](https://github.com/microsoft/DeepSpeedExamples). +* See our AlexNet example in [DeepSpeedExamples](https://github.com/deepspeedai/DeepSpeedExamples). * Read our API documentation on [readthedocs](https://deepspeed.readthedocs.io/en/latest/pipeline.html). diff --git a/docs/_posts/2020-09-09-sparse-attention.md b/docs/_posts/2020-09-09-sparse-attention.md index 9675ef1058dd..1ab827d6fc8e 100644 --- a/docs/_posts/2020-09-09-sparse-attention.md +++ b/docs/_posts/2020-09-09-sparse-attention.md @@ -28,7 +28,7 @@ In a pre-training experiment, we ran BERT model under three settings: dense, den ![Maximum sequence runnable on BERT](/assets/images/sa_maximum_sequence_runnable_on_bert.png){: .align-center} * **Up to 6.3x faster computation** -We continued the pre-training experiment for different batch sizes and sequence lengths, using [BERT base/large](https://github.com/microsoft/DeepSpeedExamples/tree/master/bing_bert) and [Megatron GPT2](https://github.com/microsoft/DeepSpeedExamples/tree/master/Megatron-LM). In this experiment we let the training to continue for 100 iteration and recorded the average time per last 30 iterations. SA reduces total computation comparing with dense and improves training speed: the boost is higher with increased sequence length and it is up to 6.3x faster for BERT base, 5.3x for BERT large, and 6.1x for GPT2. Following charts show these results. +We continued the pre-training experiment for different batch sizes and sequence lengths, using [BERT base/large](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/bing_bert) and [Megatron GPT2](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/Megatron-LM). In this experiment we let the training to continue for 100 iteration and recorded the average time per last 30 iterations. SA reduces total computation comparing with dense and improves training speed: the boost is higher with increased sequence length and it is up to 6.3x faster for BERT base, 5.3x for BERT large, and 6.1x for GPT2. Following charts show these results. ![Training time for BERT base with varying sequence length](/assets/images/sa_bert_base_time_result.png){: .align-center} diff --git a/docs/_posts/2020-10-28-progressive-layer-dropping-news.md b/docs/_posts/2020-10-28-progressive-layer-dropping-news.md index ee518f53f012..da07edd7b922 100755 --- a/docs/_posts/2020-10-28-progressive-layer-dropping-news.md +++ b/docs/_posts/2020-10-28-progressive-layer-dropping-news.md @@ -10,4 +10,4 @@ We introduce a new technology called progressive layer dropping (PLD) to speedup * For detailed technology deep dive, see our [technical report](https://arxiv.org/pdf/2010.13369.pdf). * For more information on how to use PLD, see our [Progressive layer dropping tutorial](https://www.deepspeed.ai/tutorials/progressive_layer_dropping/). - * The source code for PLD is now available at the [DeepSpeed repo](https://github.com/microsoft/deepspeed). + * The source code for PLD is now available at the [DeepSpeed repo](https://github.com/deepspeedai/deepspeed). diff --git a/docs/_posts/2021-11-15-autotuning.md b/docs/_posts/2021-11-15-autotuning.md index 71acf54438ea..410e32c878a3 100644 --- a/docs/_posts/2021-11-15-autotuning.md +++ b/docs/_posts/2021-11-15-autotuning.md @@ -8,8 +8,8 @@ toc: false We introduce a new feature called Autotuning to automatically discover the optimal DeepSpeed configuration that delivers good training speed. One pain point in model training is to figure out good performance-relevant configurations such as micro-batch size to fully utilize the hardware and achieve a high throughput number. This configuration exploring process is commonly done manually but is important since model training is repeated many times and benefits from using a good configuration. Not only is the hand-tuning process time-consuming, but the outcome is hardware-dependent. This means that a good configuration on one hardware might not be the best on another different hardware. The user thus has to hand tune the configuration again. With DeepSpeed, there are more configuration parameters that could potentially affect the training speed, thus making it more tedious to manually tune the configuration. -The DeepSpeed Autotuner mitigates this pain point and automatically discovers the optimal DeepSpeed configuration that delivers good training speed. It not only reduces the time and resources users spend on tuning, but also can discover configurations better than hand-tuned methods. [DeepSpeedExamples](https://github.com/microsoft/DeepSpeedExamples/tree/master/autotuning) would demonstrate the effectiveness of autotuning across different models. +The DeepSpeed Autotuner mitigates this pain point and automatically discovers the optimal DeepSpeed configuration that delivers good training speed. It not only reduces the time and resources users spend on tuning, but also can discover configurations better than hand-tuned methods. [DeepSpeedExamples](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/autotuning) would demonstrate the effectiveness of autotuning across different models. * For a brief overview, see the [Autotuning tutorial](https://www.deepspeed.ai/tutorials/autotuning/). -* For more information on how to use Autotuning, see the [Autotuning README](https://github.com/microsoft/DeepSpeed/tree/master/deepspeed/autotuning#deepspeed-autotuning). -* The source code can be found in the [DeepSpeed repo](https://github.com/microsoft/deepspeed). +* For more information on how to use Autotuning, see the [Autotuning README](https://github.com/deepspeedai/DeepSpeed/tree/master/deepspeed/autotuning#deepspeed-autotuning). +* The source code can be found in the [DeepSpeed repo](https://github.com/deepspeedai/deepspeed). diff --git a/docs/_posts/2021-12-09-deepspeed-moe-nlg.md b/docs/_posts/2021-12-09-deepspeed-moe-nlg.md index 99a62fbe00ea..69fef131d3c0 100644 --- a/docs/_posts/2021-12-09-deepspeed-moe-nlg.md +++ b/docs/_posts/2021-12-09-deepspeed-moe-nlg.md @@ -170,9 +170,9 @@ high quality language models accessible to a broad audience, even with limited compute resources. To this end we are releasing our [end-to-end pipeline for training MoE based -NLG models](https://github.com/microsoft/Megatron-DeepSpeed/tree/moe-training), +NLG models](https://github.com/deepspeedai/Megatron-DeepSpeed/tree/moe-training), along with [specific example -scripts](https://github.com/microsoft/Megatron-DeepSpeed/tree/moe-training/examples_deepspeed/MoE) +scripts](https://github.com/deepspeedai/Megatron-DeepSpeed/tree/moe-training/examples_deepspeed/MoE) and [tutorial](/tutorials/mixture-of-experts-nlg) to help get started with our pipeline. We look forward to the application and the innovations that this may bring to the deep learning community. diff --git a/docs/_posts/2022-07-26-deepspeed-azure.md b/docs/_posts/2022-07-26-deepspeed-azure.md index 749be582d9a0..540f74d4be1b 100644 --- a/docs/_posts/2022-07-26-deepspeed-azure.md +++ b/docs/_posts/2022-07-26-deepspeed-azure.md @@ -19,7 +19,7 @@ In this extended post, we share the details of how DeepSpeed users can train tri ## Making distributed training faster and easier on Azure using DeepSpeed -We compare the existing manual and error-prone workflow with our proposed easy-to-use workflow for DeepSpeed on Azure in *Figure 2*. Customers can now use easy-to-use [training pipelines](https://github.com/microsoft/Megatron-DeepSpeed/tree/main/examples_deepspeed) to launch training jobs at scale. The new workflow reduces the number of steps from 11 to just 1 if users rely on the recommended [AzureML](https://azure.microsoft.com/en-us/services/machine-learning/) [recipes](https://github.com/microsoft/Megatron-DeepSpeed/tree/main/examples_deepspeed/azureml). +We compare the existing manual and error-prone workflow with our proposed easy-to-use workflow for DeepSpeed on Azure in *Figure 2*. Customers can now use easy-to-use [training pipelines](https://github.com/deepspeedai/Megatron-DeepSpeed/tree/main/examples_deepspeed) to launch training jobs at scale. The new workflow reduces the number of steps from 11 to just 1 if users rely on the recommended [AzureML](https://azure.microsoft.com/en-us/services/machine-learning/) [recipes](https://github.com/deepspeedai/Megatron-DeepSpeed/tree/main/examples_deepspeed/azureml). ![Workflow](/assets/images/old-vs-new-azure.png){: .align-center} @@ -29,7 +29,7 @@ We compare the existing manual and error-prone workflow with our proposed easy-t For users who have custom environments built using Azure VMs or [Azure VMSS](https://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/overview), only two steps are needed: - 1) Run the cluster setup script (to be released in the next few weeks) -- 2) Use the Azure VMSS [recipes](https://github.com/microsoft/Megatron-DeepSpeed/tree/main/examples_deepspeed/azure) to launch training. +- 2) Use the Azure VMSS [recipes](https://github.com/deepspeedai/Megatron-DeepSpeed/tree/main/examples_deepspeed/azure) to launch training. ## Key Performance Benefits We already shared a summary of our key performance results in the Azure [announcement](https://azure.microsoft.com/en-us/blog/azure-empowers-easytouse-highperformance-and-hyperscale-model-training-using-deepspeed/). We enable the capability to train 2x larger model sizes (2 trillion vs. 1 trillion parameters), scale to 2x more GPUs (1024 vs. 512), and offer up to 1.8x higher compute throughput/GPU (150 TFLOPs vs. 81 TFLOPs) compared to other [cloud providers](https://medium.com/pytorch/training-a-1-trillion-parameter-model-with-pytorch-fully-sharded-data-parallel-on-aws-3ac13aa96cff). @@ -48,7 +48,7 @@ We share the details of our experimental setup and some of the best practices we We used [NDm A100 v4-series](https://docs.microsoft.com/en-us/azure/virtual-machines/ndm-a100-v4-series) instances in our experiments. Each instance includes two socket AMD EPYC 7V12 64-Core CPUs, 1.7TB main memory and eight A100 80GB GPUs. The system has a balanced PCIe topology connecting 4 GPU devices to each CPU socket. Each GPU within the VM is provided with its own dedicated, topology-agnostic 200 Gb/s NVIDIA Mellanox HDR InfiniBand connection providing an accelerated 200 Gbps high speed fabric. The DeepSpeed library exploits offload capabilities where the activation and optimizer states are allocated in the main memory. Hence, 1.7TB memory capacity per node helps us to scale to large model sizes. ### Training setup using AzureML -Users can directly use the AzureML studio and use our published [recipes](https://github.com/microsoft/Megatron-DeepSpeed/tree/main/examples_deepspeed/azureml) to run experiments without any additional setup. This is the easiest and recommended way of running experiments on Azure. +Users can directly use the AzureML studio and use our published [recipes](https://github.com/deepspeedai/Megatron-DeepSpeed/tree/main/examples_deepspeed/azureml) to run experiments without any additional setup. This is the easiest and recommended way of running experiments on Azure. ### Training setup using Azure VMSS @@ -59,7 +59,7 @@ A cluster is created using Azure Virtual Machine Scale Sets (VMSS) to provision | ------------------------------: | :----------------: | | PyTorch | 1.10.2 (installed from source) | | DeepSpeed | 0.6.2 (installed from source) | -| Megatron-LM | [https://github.com/microsoft/Megatron-DeepSpeed](https://github.com/microsoft/Megatron-DeepSpeed) | +| Megatron-LM | [https://github.com/deepspeedai/Megatron-DeepSpeed](https://github.com/deepspeedai/Megatron-DeepSpeed) | | Apex | 0.1 | | NCCL | 2.12.10 | | CUDNN | 8.2.4.15 | @@ -122,9 +122,9 @@ The 2T parameter model consists of 160 layers, 32k hidden dimension, and 128 att We recognize that DeepSpeed users are diverse and have different environments. In this tutorial, our focus is on making things simpler for users who plan to run large model training experiments on Azure. -> The easiest way to do model training on Azure is via the Azure ML recipes. The job submission and data preparation scripts have been made available [here](https://github.com/microsoft/Megatron-DeepSpeed/tree/main/examples_deepspeed/azureml). Users simply need to setup their Azure ML workspace following the [guide](https://github.com/Azure/azureml-examples/tree/main/python-sdk#set-up) and submit experiment using the aml_submit.py file. +> The easiest way to do model training on Azure is via the Azure ML recipes. The job submission and data preparation scripts have been made available [here](https://github.com/deepspeedai/Megatron-DeepSpeed/tree/main/examples_deepspeed/azureml). Users simply need to setup their Azure ML workspace following the [guide](https://github.com/Azure/azureml-examples/tree/main/python-sdk#set-up) and submit experiment using the aml_submit.py file. -Some users have customized environments built on top of Azure VMs and VMSS based clusters. To simplify training on such setups, we are working on an easy-to-use cluster setup script that will be published in the next few weeks. If you already have a cluster setup running, you can use the [azure recipes](https://github.com/microsoft/Megatron-DeepSpeed/tree/main/examples_deepspeed/azure) for the 175B and the 1T model. The recipes can easily be modified to train other model configurations. +Some users have customized environments built on top of Azure VMs and VMSS based clusters. To simplify training on such setups, we are working on an easy-to-use cluster setup script that will be published in the next few weeks. If you already have a cluster setup running, you can use the [azure recipes](https://github.com/deepspeedai/Megatron-DeepSpeed/tree/main/examples_deepspeed/azure) for the 175B and the 1T model. The recipes can easily be modified to train other model configurations. ## Acknowledgement diff --git a/docs/_posts/2022-09-10-zero-inference.md b/docs/_posts/2022-09-10-zero-inference.md index 59a3e3bf15fa..3c588e39c1dc 100644 --- a/docs/_posts/2022-09-10-zero-inference.md +++ b/docs/_posts/2022-09-10-zero-inference.md @@ -83,7 +83,7 @@ Next, we measure the impact on generation throughput using four V100-32GB GPUs. We briefly discuss how users can determine when ZeRO-Inference is suitable for their application and how to enable ZeRO-Inference in DeepSpeed. ### When to use ZeRO-Inference -ZeRO-Inference is designed for inference applications that require GPU acceleration but lack sufficient GPU memory to host the model. Also, ZeRO-Inference is optimized for inference applications that are **throughput-oriented** and allow **large batch sizes**. Alternative techniques, such as [Accelerate](https://github.com/huggingface/accelerate), [DeepSpeed-Inference](https://www.deepspeed.ai/inference/), and [DeepSpeed-MII](https://github.com/microsoft/deepspeed-mii) that fit the entire model into GPU memory, possibly using multiple GPUs, are more suitable for inference applications that are latency sensitive or have small batch sizes. +ZeRO-Inference is designed for inference applications that require GPU acceleration but lack sufficient GPU memory to host the model. Also, ZeRO-Inference is optimized for inference applications that are **throughput-oriented** and allow **large batch sizes**. Alternative techniques, such as [Accelerate](https://github.com/huggingface/accelerate), [DeepSpeed-Inference](https://www.deepspeed.ai/inference/), and [DeepSpeed-MII](https://github.com/deepspeedai/deepspeed-mii) that fit the entire model into GPU memory, possibly using multiple GPUs, are more suitable for inference applications that are latency sensitive or have small batch sizes. ### How to use ZeRO-Inference ZeRO-Inference is available in the DeepSpeed library versions >= 0.6.6. Integrating ZeRO-Inference into token generation pipelines, such as [Hugging Face generate](https://huggingface.co/docs/transformers/main_classes/text_generation), requires updating the DeepSpeed configuration to set [ZeRO optimization](https://www.deepspeed.ai/docs/config-json/#zero-optimizations-for-fp16-training) to stage 3 and [parameter offloading](https://www.deepspeed.ai/docs/config-json/#parameter-offloading) to CPU or NVMe. diff --git a/docs/_posts/2022-10-11-mii.md b/docs/_posts/2022-10-11-mii.md index e0b43f51b1e0..324b7ffbad33 100644 --- a/docs/_posts/2022-10-11-mii.md +++ b/docs/_posts/2022-10-11-mii.md @@ -11,7 +11,7 @@ The Deep Learning (DL) open-source community has seen tremendous growth in the l There has been significant progress in system optimizations for DL model inference that can drastically reduce both latency and cost, but those are not easily accessible. The main reason for this limited accessibility is that the DL model inference landscape is diverse with models varying in size, architecture, system performance characteristics, hardware requirements, etc. Identifying the appropriate set of system optimizations applicable to a given model and applying them correctly is often beyond the scope of most data scientists, making low latency and low-cost inference mostly inaccessible. -[DeepSpeed Model Implementations for Inference (MII)](https://github.com/microsoft/DeepSpeed-MII) is a new open-source python library from DeepSpeed, aimed towards making low-latency, low-cost inference of powerful models not only feasible but also easily accessible. +[DeepSpeed Model Implementations for Inference (MII)](https://github.com/deepspeedai/DeepSpeed-MII) is a new open-source python library from DeepSpeed, aimed towards making low-latency, low-cost inference of powerful models not only feasible but also easily accessible. * MII offers access to highly optimized implementations of **thousands of widely used DL models.** * MII supported models achieve significantly lower latency and cost compared to their original implementation. @@ -33,7 +33,7 @@ Under-the-hood MII is powered by [DeepSpeed-Inference](https://arxiv.org/abs/220 MII supports a growing list of tasks such as text generation, question-answering, text classification, etc, across thousands of transformer models available through multiple open-sourced model repositories such as Hugging Face, FairSeq, EluetherAI, etc. It supports dense models based on BERT, RoBERTa, GPT, OPT, and BLOOM architectures ranging from a few hundred million parameters in size to hundreds of billions of parameters in size. At the same time, it supports recent image generation models such as Stable Diffusion. -See the MII GitHub repo for an up-to-date list of [models and tasks supported by MII](https://github.com/microsoft/deepspeed-mii#supported-models-and-tasks). +See the MII GitHub repo for an up-to-date list of [models and tasks supported by MII](https://github.com/deepspeedai/deepspeed-mii#supported-models-and-tasks). # Inference Optimizations with MII @@ -133,7 +133,7 @@ mii.deploy(task="text-to-image", deployment_type=DeploymentType.AML) ``` -To learn more about these deployment options and get started with MII, please the [MII getting started guide](https://github.com/microsoft/deepspeed-mii#getting-started-with-mii). +To learn more about these deployment options and get started with MII, please the [MII getting started guide](https://github.com/deepspeedai/deepspeed-mii#getting-started-with-mii). # Concluding Remarks diff --git a/docs/_posts/2022-12-12-data-efficiency.md b/docs/_posts/2022-12-12-data-efficiency.md index 52148707b767..82931a30e167 100644 --- a/docs/_posts/2022-12-12-data-efficiency.md +++ b/docs/_posts/2022-12-12-data-efficiency.md @@ -141,4 +141,4 @@ The composed DeepSpeed Data Efficiency solution leverages both data efficiency t # Concluding Remarks -We are very excited to share DeepSpeed Data Efficiency library with the community and improve it with your feedback. Please find the code, tutorial, and documents at the [DeepSpeed GitHub](https://github.com/microsoft/DeepSpeed), and [website](/tutorials/data-efficiency/). And for more technical details please read our [Random-LTD paper](https://arxiv.org/abs/2211.11586) and [DeepSpeed Data Efficiency paper](https://arxiv.org/abs/2212.03597). We believe that our composable library and novel data efficiency techniques will help users reduce training cost while maintaining model quality or achieve better quality under similar cost. And we hope DeepSpeed Data Efficiency could become a platform that motivates and accelerates future research on deep learning data efficiency. +We are very excited to share DeepSpeed Data Efficiency library with the community and improve it with your feedback. Please find the code, tutorial, and documents at the [DeepSpeed GitHub](https://github.com/deepspeedai/DeepSpeed), and [website](/tutorials/data-efficiency/). And for more technical details please read our [Random-LTD paper](https://arxiv.org/abs/2211.11586) and [DeepSpeed Data Efficiency paper](https://arxiv.org/abs/2212.03597). We believe that our composable library and novel data efficiency techniques will help users reduce training cost while maintaining model quality or achieve better quality under similar cost. And we hope DeepSpeed Data Efficiency could become a platform that motivates and accelerates future research on deep learning data efficiency. diff --git a/docs/_posts/2023-03-31-multi-modal.md b/docs/_posts/2023-03-31-multi-modal.md index aaef9cfbfd2a..63ea2f94f850 100644 --- a/docs/_posts/2023-03-31-multi-modal.md +++ b/docs/_posts/2023-03-31-multi-modal.md @@ -34,4 +34,4 @@ Specifically, we incorporate the MoE structure into the classical single-tower m A sophisticated MoE model design requires a highly efficient and scalable training system that can support multi-dimensional parallelism and efficient memory management. [DeepSpeed MoE](https://www.microsoft.com/en-us/research/blog/deepspeed-advancing-moe-inference-and-training-to-power-next-generation-ai-scale/) training system offers such advanced capabilities including easy-to-use APIs enabling flexible combinations of data, tensor, and expert parallelism. Furthermore, DeepSpeed MoE enables larger model scale than state-of-the-art systems by exploiting expert parallelism and [ZeRO optimizations](https://arxiv.org/abs/1910.02054) together. By leveraging the DeepSpeed MoE system, VL-MoE Base with 32 experts achieves similar model quality as VLMO-dense Large with about 2.5x training speedup. -[DeepSpeed MoE](https://www.microsoft.com/en-us/research/blog/deepspeed-advancing-moe-inference-and-training-to-power-next-generation-ai-scale/) system is already open-sourced and can be easily used as plug-and-play component to achieve high-performance low-cost training for any large-scale MoE models. The tutorial of how to use DeepSpeed MoE is available [here](https://www.deepspeed.ai/tutorials/mixture-of-experts/). VL-MoE is currently in the process of being integrated as a model example of [DeepSpeed Examples](https://github.com/microsoft/DeepSpeedExamples). Please stay tuned for our upcoming updates on this thread. +[DeepSpeed MoE](https://www.microsoft.com/en-us/research/blog/deepspeed-advancing-moe-inference-and-training-to-power-next-generation-ai-scale/) system is already open-sourced and can be easily used as plug-and-play component to achieve high-performance low-cost training for any large-scale MoE models. The tutorial of how to use DeepSpeed MoE is available [here](https://www.deepspeed.ai/tutorials/mixture-of-experts/). VL-MoE is currently in the process of being integrated as a model example of [DeepSpeed Examples](https://github.com/deepspeedai/DeepSpeedExamples). Please stay tuned for our upcoming updates on this thread. diff --git a/docs/_posts/2023-04-24-deepspeed-chat-chinese.md b/docs/_posts/2023-04-24-deepspeed-chat-chinese.md index 2fd962327b54..57a77caab32d 100644 --- a/docs/_posts/2023-04-24-deepspeed-chat-chinese.md +++ b/docs/_posts/2023-04-24-deepspeed-chat-chinese.md @@ -1,7 +1,7 @@ --- title: "DeepSpeed Chat: 一键式RLHF训练,让你的类ChatGPT千亿大模型提速省钱15倍" excerpt: "" -link: https://github.com/microsoft/DeepSpeed/blob/master/blogs/deepspeed-chat/chinese/README.md +link: https://github.com/deepspeedai/DeepSpeed/blob/master/blogs/deepspeed-chat/chinese/README.md date: 2023-04-24 00:00:00 tags: training ZeRO RLHF Chinese --- diff --git a/docs/_posts/2023-04-24-deepspeed-chat-japanese.md b/docs/_posts/2023-04-24-deepspeed-chat-japanese.md index 63200846ab65..ee3c8dca00fa 100644 --- a/docs/_posts/2023-04-24-deepspeed-chat-japanese.md +++ b/docs/_posts/2023-04-24-deepspeed-chat-japanese.md @@ -1,7 +1,7 @@ --- title: "DeepSpeed Chat: ChatGPTライクなモデルを簡単・高速・低コストに、あらゆるスケールで学習" excerpt: "" -link: https://github.com/microsoft/DeepSpeed/blob/master/blogs/deepspeed-chat/japanese/README.md +link: https://github.com/deepspeedai/DeepSpeed/blob/master/blogs/deepspeed-chat/japanese/README.md date: 2023-04-24 00:00:00 tags: training ZeRO RLHF Japanese --- diff --git a/docs/_posts/2023-04-24-deepspeed-chat.md b/docs/_posts/2023-04-24-deepspeed-chat.md index 70b627b951ee..f6cad798ca99 100644 --- a/docs/_posts/2023-04-24-deepspeed-chat.md +++ b/docs/_posts/2023-04-24-deepspeed-chat.md @@ -1,7 +1,7 @@ --- title: "DeepSpeed Chat: Easy, Fast and Affordable RLHF Training of ChatGPT-like Models at All Scales" excerpt: "" -link: https://github.com/microsoft/DeepSpeed/blob/master/blogs/deepspeed-chat/README.md +link: https://github.com/deepspeedai/DeepSpeed/blob/master/blogs/deepspeed-chat/README.md date: 2023-04-24 00:00:00 tags: training ZeRO RLHF English --- diff --git a/docs/_posts/2023-06-22-zeropp-chinese.md b/docs/_posts/2023-06-22-zeropp-chinese.md index ca52dd5f59ab..71dc2d51cb70 100644 --- a/docs/_posts/2023-06-22-zeropp-chinese.md +++ b/docs/_posts/2023-06-22-zeropp-chinese.md @@ -1,7 +1,7 @@ --- title: "DeepSpeed ZeRO++:降低4倍网络通信,显著提高大模型及类ChatGPT模型训练效率" excerpt: "" -link: https://github.com/microsoft/DeepSpeed/blob/master/blogs/zeropp/chinese/README.md +link: https://github.com/deepspeedai/DeepSpeed/blob/master/blogs/zeropp/chinese/README.md date: 2023-06-22 00:00:00 tags: training ZeRO RLHF Chinese --- diff --git a/docs/_posts/2023-06-22-zeropp-japanese.md b/docs/_posts/2023-06-22-zeropp-japanese.md index 745fcac41d97..e81013d11aba 100644 --- a/docs/_posts/2023-06-22-zeropp-japanese.md +++ b/docs/_posts/2023-06-22-zeropp-japanese.md @@ -1,7 +1,7 @@ --- title: "DeepSpeed ZeRO++: LLMやチャットモデルの訓練を劇的に高速化 – 通信オーバヘッドを1/4に大幅削減 -" excerpt: "" -link: https://github.com/microsoft/DeepSpeed/blob/master/blogs/zeropp/japanese/README.md +link: https://github.com/deepspeedai/DeepSpeed/blob/master/blogs/zeropp/japanese/README.md date: 2023-06-22 00:00:00 tags: training ZeRO RLHF Japanese --- diff --git a/docs/_posts/2023-08-24-ulysses-chinese.md b/docs/_posts/2023-08-24-ulysses-chinese.md index 613af2fe7583..f8d269217b7a 100644 --- a/docs/_posts/2023-08-24-ulysses-chinese.md +++ b/docs/_posts/2023-08-24-ulysses-chinese.md @@ -1,7 +1,7 @@ --- title: "DeepSpeed Ulysses: 训练极长序列Transformer模型的系统优化" excerpt: "" -link: https://github.com/microsoft/DeepSpeed/blob/master/blogs/deepspeed-ulysses/chinese/README.md +link: https://github.com/deepspeedai/DeepSpeed/blob/master/blogs/deepspeed-ulysses/chinese/README.md date: 2023-08-24 00:00:00 tags: training ZeRO Chinese --- diff --git a/docs/_posts/2023-08-24-ulysses-japanese.md b/docs/_posts/2023-08-24-ulysses-japanese.md index 921c7c28739d..291407a5523e 100644 --- a/docs/_posts/2023-08-24-ulysses-japanese.md +++ b/docs/_posts/2023-08-24-ulysses-japanese.md @@ -1,7 +1,7 @@ --- title: "DeepSpeed Ulysses: Transformerモデルを非常に長いシーケンスで訓練するための最適化" excerpt: "" -link: https://github.com/microsoft/DeepSpeed/blob/master/blogs/deepspeed-ulysses/japanese/README.md +link: https://github.com/deepspeedai/DeepSpeed/blob/master/blogs/deepspeed-ulysses/japanese/README.md date: 2023-08-24 00:00:00 tags: training ZeRO Japanese --- diff --git a/docs/_posts/2023-08-24-ulysses.md b/docs/_posts/2023-08-24-ulysses.md index a88a0d66080a..c10b2d599f02 100644 --- a/docs/_posts/2023-08-24-ulysses.md +++ b/docs/_posts/2023-08-24-ulysses.md @@ -1,7 +1,7 @@ --- title: "DeepSpeed Ulysses: System Optimizations for Enabling Training of Extreme Long Sequence Transformer Models" excerpt: "" -link: https://github.com/microsoft/DeepSpeed/blob/master/blogs/deepspeed-ulysses/README.md +link: https://github.com/deepspeedai/DeepSpeed/blob/master/blogs/deepspeed-ulysses/README.md date: 2023-08-24 00:00:00 tags: training ZeRO English --- diff --git a/docs/_posts/2023-09-12-ZeRO-Inference.md b/docs/_posts/2023-09-12-ZeRO-Inference.md index 7b9852dc160b..04a6347bec59 100644 --- a/docs/_posts/2023-09-12-ZeRO-Inference.md +++ b/docs/_posts/2023-09-12-ZeRO-Inference.md @@ -1,6 +1,6 @@ title: "ZeRO-Inference: 20X faster inference through weight quantization and KV cache offloading" excerpt: "" -link: https://github.com/microsoft/DeepSpeedExamples/blob/master/inference/huggingface/zero_inference/README.md +link: https://github.com/deepspeedai/DeepSpeedExamples/blob/master/inference/huggingface/zero_inference/README.md date: 2023-09-12 00:09:00 tags: inference ZeRO quantization English --- diff --git a/docs/_posts/2023-09-19-deepspeed4science-chinese.md b/docs/_posts/2023-09-19-deepspeed4science-chinese.md index 7b0ccf00aa61..651d61a3b79c 100644 --- a/docs/_posts/2023-09-19-deepspeed4science-chinese.md +++ b/docs/_posts/2023-09-19-deepspeed4science-chinese.md @@ -1,7 +1,7 @@ --- title: "DeepSpeed4Science:利用先进的AI系统优化技术实现科学发现" excerpt: "" -link: https://github.com/microsoft/DeepSpeed/blob/master/blogs/deepspeed4science/chinese/README.md +link: https://github.com/deepspeedai/DeepSpeed/blob/master/blogs/deepspeed4science/chinese/README.md date: 2023-09-19 00:00:00 tags: training inference science Chinese --- diff --git a/docs/_posts/2023-09-19-deepspeed4science-japanese.md b/docs/_posts/2023-09-19-deepspeed4science-japanese.md index 8c0a1b6d0082..20d83c8e0b5a 100644 --- a/docs/_posts/2023-09-19-deepspeed4science-japanese.md +++ b/docs/_posts/2023-09-19-deepspeed4science-japanese.md @@ -1,7 +1,7 @@ --- title: "DeepSpeed4Scienceイニシアティブ: 洗練されたAIシステムのテクノロジーにより大規模な科学的発見を可能に" excerpt: "" -link: https://github.com/microsoft/DeepSpeed/blob/master/blogs/deepspeed4science/japanese/README.md +link: https://github.com/deepspeedai/DeepSpeed/blob/master/blogs/deepspeed4science/japanese/README.md date: 2023-09-19 00:00:00 tags: training inference science Japanese --- diff --git a/docs/_posts/2023-10-04-deepspeed-visualchat-chinese.md b/docs/_posts/2023-10-04-deepspeed-visualchat-chinese.md index 290b8b4b8ba4..1e0ef0bed34b 100644 --- a/docs/_posts/2023-10-04-deepspeed-visualchat-chinese.md +++ b/docs/_posts/2023-10-04-deepspeed-visualchat-chinese.md @@ -1,7 +1,7 @@ --- title: "DeepSpeed-VisualChat:多轮图像+文字,为你展现不一样的AI聊天魅力" excerpt: "" -link: https://github.com/microsoft/DeepSpeed/blob/master/blogs/deepspeed-visualchat/10-03-2023/README-Chinese.md +link: https://github.com/deepspeedai/DeepSpeed/blob/master/blogs/deepspeed-visualchat/10-03-2023/README-Chinese.md date: 2023-10-04 00:00:00 tags: training Chinese --- diff --git a/docs/_posts/2023-10-04-deepspeed-visualchat-japanese.md b/docs/_posts/2023-10-04-deepspeed-visualchat-japanese.md index f8b7e20cc2cf..745e9052358e 100644 --- a/docs/_posts/2023-10-04-deepspeed-visualchat-japanese.md +++ b/docs/_posts/2023-10-04-deepspeed-visualchat-japanese.md @@ -1,7 +1,7 @@ --- title: "DeepSpeed-VisualChat: 複数ラウンド・複数画像の入力が可能なAIチャット体験を実現" excerpt: "" -link: https://github.com/microsoft/DeepSpeed/blob/master/blogs/deepspeed-visualchat/10-03-2023/README-Japanese.md +link: https://github.com/deepspeedai/DeepSpeed/blob/master/blogs/deepspeed-visualchat/10-03-2023/README-Japanese.md date: 2023-10-04 00:00:00 tags: training Japanese --- diff --git a/docs/_posts/2023-10-04-deepspeed-visualchat.md b/docs/_posts/2023-10-04-deepspeed-visualchat.md index 74a1eb66fd5c..8226597290b2 100644 --- a/docs/_posts/2023-10-04-deepspeed-visualchat.md +++ b/docs/_posts/2023-10-04-deepspeed-visualchat.md @@ -1,7 +1,7 @@ --- title: "DeepSpeed-VisualChat: Improve Your Chat Experience with Multi-Round Multi-Image Inputs" excerpt: "" -link: https://github.com/microsoft/DeepSpeed/tree/master/blogs/deepspeed-visualchat/10-03-2023/README.md +link: https://github.com/deepspeedai/DeepSpeed/tree/master/blogs/deepspeed-visualchat/10-03-2023/README.md date: 2023-10-04 00:00:00 tags: training English --- diff --git a/docs/_posts/2023-11-06-deepspeed-fastgen-chinese.md b/docs/_posts/2023-11-06-deepspeed-fastgen-chinese.md index cc259c20361a..ec936bb6d79e 100644 --- a/docs/_posts/2023-11-06-deepspeed-fastgen-chinese.md +++ b/docs/_posts/2023-11-06-deepspeed-fastgen-chinese.md @@ -1,7 +1,7 @@ --- title: "DeepSpeed-FastGen:通过 MII 和 DeepSpeed-Inference 实现 LLM 高吞吐量文本生成" excerpt: "" -link: https://github.com/microsoft/DeepSpeed/tree/master/blogs/deepspeed-fastgen/chinese/README.md +link: https://github.com/deepspeedai/DeepSpeed/tree/master/blogs/deepspeed-fastgen/chinese/README.md date: 2023-11-06 00:00:00 tags: inference Chinese --- diff --git a/docs/_posts/2023-11-06-deepspeed-fastgen-japanese.md b/docs/_posts/2023-11-06-deepspeed-fastgen-japanese.md index a4bb8237783a..a64b29c88163 100644 --- a/docs/_posts/2023-11-06-deepspeed-fastgen-japanese.md +++ b/docs/_posts/2023-11-06-deepspeed-fastgen-japanese.md @@ -1,7 +1,7 @@ --- title: "DeepSpeed-FastGen: MIIとDeepSpeed-InferenceによるLLMのための高速なテキスト生成" excerpt: "" -link: https://github.com/microsoft/DeepSpeed/tree/master/blogs/deepspeed-fastgen/japanese/README.md +link: https://github.com/deepspeedai/DeepSpeed/tree/master/blogs/deepspeed-fastgen/japanese/README.md date: 2023-11-06 00:00:00 tags: inference Japanese --- diff --git a/docs/_posts/2023-11-06-deepspeed-fastgen.md b/docs/_posts/2023-11-06-deepspeed-fastgen.md index 2af103e81f15..d9062ce56da3 100644 --- a/docs/_posts/2023-11-06-deepspeed-fastgen.md +++ b/docs/_posts/2023-11-06-deepspeed-fastgen.md @@ -1,7 +1,7 @@ --- title: "DeepSpeed-FastGen: High-throughput Text Generation for LLMs via MII and DeepSpeed-Inference" excerpt: "" -link: https://github.com/microsoft/DeepSpeed/tree/master/blogs/deepspeed-fastgen +link: https://github.com/deepspeedai/DeepSpeed/tree/master/blogs/deepspeed-fastgen date: 2023-11-06 00:00:00 tags: inference English --- diff --git a/docs/_sass/minimal-mistakes/_sidebar.scss b/docs/_sass/minimal-mistakes/_sidebar.scss index 63cef338c583..5f657e112d82 100644 --- a/docs/_sass/minimal-mistakes/_sidebar.scss +++ b/docs/_sass/minimal-mistakes/_sidebar.scss @@ -76,7 +76,7 @@ @include breakpoint($large) { position: absolute; - top: 0; + top: auto; right: 0; width: $right-sidebar-width-narrow; margin-right: -1.5 * $right-sidebar-width-narrow; @@ -94,7 +94,7 @@ @include breakpoint($x-large) { width: $right-sidebar-width; - margin-right: -1.5 * $right-sidebar-width; + margin-right: -1.5 * $right-sidebar-width-narrow; } } diff --git a/docs/_tutorials/accelerator-abstraction-interface.md b/docs/_tutorials/accelerator-abstraction-interface.md index 0810c3c6b5d7..30a362b82d25 100644 --- a/docs/_tutorials/accelerator-abstraction-interface.md +++ b/docs/_tutorials/accelerator-abstraction-interface.md @@ -1,6 +1,6 @@ --- title: DeepSpeed Accelerator Abstraction Interface -tags: getting-started +tags: getting-started training accelerator --- # Contents @@ -12,7 +12,6 @@ tags: getting-started - [Tensor operations](#tensor-operations) - [Communication backend](#communication-backend) - [Run DeepSpeed model on different accelerators](#run-deepspeed-model-on-different-accelerators) -- [Run DeepSpeed model on CPU](#run-deepspeed-model-on-cpu) - [Implement new accelerator extension](#implement-new-accelerator-extension) # Introduction @@ -79,69 +78,10 @@ torch.distributed.init_process_group(get_accelerator().communication_backend_nam ``` # Run DeepSpeed model on different accelerators -Once a model is ported with DeepSpeed Accelerator Abstraction Interface, we can run this model on different accelerators using extension to DeepSpeed. DeepSpeed check whether certain extension is installed in the environment to decide whether to use the Accelerator backend in that extension. For example if we wish to run model on Intel GPU, we can install _Intel Extension for DeepSpeed_ following the instruction in [link](https://github.com/intel/intel-extension-for-deepspeed/) - -After the extension is installed, install DeepSpeed and run model. The model will be running on top of DeepSpeed. Because DeepSpeed installation is also accelerator related, it is recommended to install DeepSpeed accelerator extension before install DeepSpeed. - -`CUDA_Accelerator` is the default accelerator in DeepSpeed. If no other DeepSpeed accelerator extension is installed, `CUDA_Accelerator` will be used. - -When run a model on different accelerator in a cloud environment, the recommended practice is provision environment for each accelerator in different env with tool such as _anaconda/miniconda/virtualenv_. When run model on different Accelerator, load the env accordingly. - -Note that different accelerator may have different 'flavor' of float16 or bfloat16. So it is recommended to make the model configurable for both float16 and bfloat16, in that way model code does not need to be changed when running on different accelerators. - -# Run DeepSpeed model on CPU -DeepSpeed support using CPU as accelerator. DeepSpeed model using DeepSpeed Accelerator Abstraction Interface could run on CPU without change to model code. DeepSpeed decide whether _Intel Extension for PyTorch_ is installed in the environment. If this packaged is installed, DeepSpeed will use CPU as accelerator. Otherwise CUDA device will be used as accelerator. - -To run DeepSpeed model on CPU, use the following steps to prepare environment: - -``` -python -m pip install intel_extension_for_pytorch -python -m pip install oneccl_bind_pt==2.0 -f https://developer.intel.com/ipex-whl-stable-cpu -git clone https://github.com/oneapi-src/oneCCL -cd oneCCL -mkdir build -cd build -cmake .. -make -make install -``` - -Before run CPU workload, we need to source oneCCL environment variables -``` -source /build/_install/env/setvars.sh -``` - -After environment is prepared, we can launch DeepSpeed inference with the following command -``` -deepspeed --bind_cores_to_rank -``` - -This command would launch number of workers equal to number of CPU sockets on the system. Currently DeepSpeed support running inference model with AutoTP on top of CPU. The argument `--bind_cores_to_rank` distribute CPU cores on the system evenly among workers, to allow each worker running on a dedicated set of CPU cores. - -On CPU system, there might be daemon process that periodically activate which would increase variance of each worker. One practice is leave a couple of cores for daemon process using `--bind-core-list` argument: - -``` -deepspeed --bind_cores_to_rank --bind_core_list 0-51,56-107 -``` - -The command above leave 4 cores on each socket to daemon process (assume two sockets, each socket has 56 cores). - -We can also set an arbitrary number of workers. Unlike GPU, CPU cores on host can be further divided into subgroups. When this number is not set, DeepSpeed would detect number of NUMA nodes on the system and launch one worker for each NUMA node. - -``` -deepspeed --num_accelerators 4 --bind_cores_to_rank -``` - -Launching DeepSpeed model on multiple CPU nodes is similar to other accelerators. We need to specify `impi` as launcher and specify `--bind_cores_to_rank` for better core binding. Also specify `slots` number according to number of CPU sockets in host file. - -``` -# hostfile content should follow the format -# worker-1-hostname slots=<#sockets> -# worker-2-hostname slots=<#sockets> -# ... - -deepspeed --hostfile= --bind_cores_to_rank --launcher impi --master_addr -``` +[Accelerator Setup Guide](accelerator-setup-guide.md) provides a guide on how to setup different accelerators for DeepSpeed. It also comes with simple example how to run deepspeed for different accelerators. The following guides are provided: +1. Run DeepSpeed model on CPU +2. Run DeepSpeed model on XPU +3. Run DeepSpeed model on Huawei Ascend NPU # Implement new accelerator extension It is possible to implement a new DeepSpeed accelerator extension to support new accelerator in DeepSpeed. An example to follow is _[Intel Extension For DeepSpeed](https://github.com/intel/intel-extension-for-deepspeed/)_. An accelerator extension contains the following components: @@ -150,8 +90,8 @@ This class implements `class DeepSpeedAccelerator` and will be returned by `get_ 2. Op builders following https://github.com/intel/intel-extension-for-deepspeed/tree/main/intel_extension_for_deepspeed/op_builder. All op builders needs to inherit `deepspeed.ops.op_builder.builder.OpBuilder` directly or indirectly. A common practice is to implement a base op builder (SYCLOpBuilder in the case of Intel Extension for DeepSpeed) and inherit this base op builder instead. 3. Op kernels as in the following [link](https://github.com/intel/intel-extension-for-deepspeed/tree/main/intel_extension_for_deepspeed/op_builder/csrc). -Note that an extension does not have to implement all op builders under https://github.com/microsoft/DeepSpeed/tree/master/op_builder all at a time. A missing op builder usually means certain DeepSpeed functionality cannot be used for that Accelerator, but models that does not use that functionality can still run. +Note that an extension does not have to implement all op builders under https://github.com/deepspeedai/DeepSpeed/tree/master/op_builder all at a time. A missing op builder usually means certain DeepSpeed functionality cannot be used for that Accelerator, but models that does not use that functionality can still run. When implementing op builder for an accelerator extension, one thing needs to be noted is that the op builder native code is being built by DeepSpeed jit load mechanism. This mean the native source file being built needs to be in DeepSpeed installation directory. However these files are defined in accelerator extension installation directory, which cannot be built by DeepSpeed directly. To solve this, follow the example in https://github.com/intel/intel-extension-for-deepspeed/blob/main/intel_extension_for_deepspeed/op_builder/cpu_adam.py to use 'sycl_kernel_path' and 'sycl_kernel_include' (User can change 'sycl' to other prefix in their own accelerator extension) to allow native code be built during DeepSpeed jit load. -When accelerator extension is installed in the environment, it can be used by either explicit call deepspeed.accelerator.set_accelerator(XYZ_Accelerator()) following the example in https://github.com/microsoft/DeepSpeed/blob/master/accelerator/real_accelerator.py, or add an implicit detection code in get_accelerator in the same file above. +When accelerator extension is installed in the environment, it can be used by either explicit call deepspeed.accelerator.set_accelerator(XYZ_Accelerator()) following the example in https://github.com/deepspeedai/DeepSpeed/blob/master/accelerator/real_accelerator.py, or add an implicit detection code in get_accelerator in the same file above. diff --git a/docs/_tutorials/accelerator-setup-guide.md b/docs/_tutorials/accelerator-setup-guide.md new file mode 100644 index 000000000000..ecb77f475375 --- /dev/null +++ b/docs/_tutorials/accelerator-setup-guide.md @@ -0,0 +1,256 @@ +--- +title: DeepSpeed Accelerator Setup Guides +tags: getting-started training accelerator +--- + +# Contents +- [Contents](#contents) +- [Introduction](#introduction) +- [Intel Architecture (IA) CPU](#intel-architecture-ia-cpu) +- [Intel XPU](#intel-xpu) +- [Huawei Ascend NPU](#huawei-ascend-npu) +- [Intel Gaudi](#intel-gaudi) + +# Introduction +DeepSpeed supports different accelerators from different companies. Setup steps to run DeepSpeed on certain accelerators might be different. This guide allows user to lookup setup instructions for the accelerator family and hardware they are using. + +# Intel Architecture (IA) CPU +DeepSpeed supports CPU with Intel Architecture instruction set. It is recommended to have the CPU support at least AVX2 instruction set and recommend AMX instruction set. + +DeepSpeed has been verified on the following CPU processors: +* 4th Gen Intel® Xeon® Scalarable Processors +* 5th Gen Intel® Xeon® Scalarable Processors +* 6th Gen Intel® Xeon® Scalarable Processors + +## Installation steps for Intel Architecture CPU +To install DeepSpeed on Intel Architecture CPU, use the following steps: +1. Install gcc compiler +DeepSpeed requires gcc-9 or above to build kernels on Intel Architecture CPU, install gcc-9 or above. + +2. Install numactl +DeepSpeed use `numactl` for fine grain CPU core allocation for load-balancing, install numactl on your system. +For example, on Ubuntu system, use the following command: +`sudo apt-get install numactl` + +3. Install PyTorch +`pip install torch` + +4. Install DeepSpeed +`pip install deepspeed` + +## How to launch DeepSpeed on Intel Architecture CPU +DeepSpeed can launch on Intel Architecture CPU with default deepspeed command. However, for compute intensive workloads, Intel Architecture CPU works best when each worker process runs on different set of physical CPU cores, so worker process does not compete CPU cores with each other. To bind cores to each worker (rank), use the following command line switch for better performance. +``` +deepspeed --bind_cores_to_rank +``` +This switch would automatically detect the number of CPU NUMA node on the host, launch the same number of workers, and bind each worker to cores/memory of a different NUMA node. This improves performance by ensuring workers do not interfere with each other, and that all memory allocation is from local memory. + +If a user wishes to have more control on the number of workers and specific cores that can be used by the workload, user can use the following command line switches. +``` +deepspeed --num_accelerators --bind_cores_to_rank --bind_core_list +``` +For example: +``` +deepspeed --num_accelerators 4 --bind_cores_to_rank --bind_core_list <0-27,32-59> inference.py +``` +This would start 4 workers for the workload. The core list range will be divided evenly between 4 workers, with worker 0 take 0-13, worker 1, take 14-27, worker 2 take 32-45, and worker 3 take 46-59. Core 28-31,60-63 are left out because there might be some background process running on the system, leaving some idle cores will reduce performance jitting and straggler effect. + +Launching DeepSpeed model on multiple CPU nodes is similar to other accelerators. We need to specify `impi` as launcher and specify `--bind_cores_to_rank` for better core binding. Also specify `slots` number according to number of CPU sockets in host file. + +``` +# hostfile content should follow the format +# worker-1-hostname slots=<#sockets> +# worker-2-hostname slots=<#sockets> +# ... + +deepspeed --hostfile= --bind_cores_to_rank --launcher impi --master_addr +``` + +## Install with Intel Extension for PyTorch and oneCCL +Although not mandatory, Intel Extension for PyTorch and Intel oneCCL provide better optimizations for LLM models. Intel oneCCL also provide optimization when running LLM model on multi-node. To use DeepSpeed with Intel Extension for PyTorch and oneCCL, use the following steps: +1. Install Intel Extension for PyTorch. This is suggested if you want to get better LLM inference performance on CPU. +`pip install intel-extension-for-pytorch` + +The following steps are to install oneCCL binding for PyTorch. This is suggested if you are running DeepSpeed on multiple CPU node, for better communication performance. On single node with multiple CPU socket, these steps are not needed. + +2. Install Intel oneCCL binding for PyTorch +`python -m pip install oneccl_bind_pt -f https://developer.intel.com/ipex-whl-stable-cpu` + +3. Install Intel oneCCL, this will be used to build direct oneCCL kernels (CCLBackend kernels) +``` +pip install oneccl-devel +pip install impi-devel +``` +Then set the environment variables for Intel oneCCL (assuming using conda environment). +``` +export CPATH=${CONDA_PREFIX}/include:$CPATH +export CCL_ROOT=${CONDA_PREFIX} +export I_MPI_ROOT=${CONDA_PREFIX} +export LD_LIBRARY_PATH=${CONDA_PREFIX}/lib/ccl/cpu:${CONDA_PREFIX}/lib/libfabric:${CONDA_PREFIX}/lib +``` + +## Optimize LLM inference with Intel Extension for PyTorch +Intel Extension for PyTorch compatible with DeepSpeed AutoTP tensor parallel inference. It allows CPU inference to benefit from both DeepSpeed Automatic Tensor Parallelism, and LLM optimizations of Intel Extension for PyTorch. To use Intel Extension for PyTorch, after calling deepspeed.init_inference, call +``` +ipex_model = ipex.llm.optimize(deepspeed_model) +``` +to get model optimzied by Intel Extension for PyTorch. + +## More examples for using DeepSpeed on Intel CPU +Refer to [LLM examples](https://github.com/intel/intel-extension-for-pytorch/tree/main/examples/cpu/llm) for more code samples of running inference with DeepSpeed on Intel CPU. + + +# Intel XPU +DeepSpeed XPU accelerator supports Intel® Data Center GPU Max Series. + +DeepSpeed has been verified on the following GPU products: +* Intel® Data Center GPU Max 1100 +* Intel® Data Center GPU Max 1550 + +## Installation steps for Intel XPU +To install DeepSpeed on Intel XPU, use the following steps: +1. Install oneAPI base toolkit \ +The Intel® oneAPI Base Toolkit (Base Kit) is a core set of tools and libraries, including an DPC++/C++ Compiler for building Deepspeed XPU kernels like fusedAdam and CPUAdam, high performance computation libraries demanded by IPEX, etc. +For easy download, usage and more details, check [Intel oneAPI base-toolkit](https://www.intel.com/content/www/us/en/developer/tools/oneapi/base-toolkit.html). +2. Install PyTorch, Intel extension for pytorch, Intel oneCCL Bindings for PyTorch. These packages are required in `xpu_accelerator` for torch functionality and performance, also communication backend on Intel platform. The recommended installation reference: +https://intel.github.io/intel-extension-for-pytorch/index.html#installation?platform=gpu. + +3. Install DeepSpeed \ +`pip install deepspeed` + +## How to use DeepSpeed on Intel XPU +DeepSpeed can be launched on Intel XPU with deepspeed launch command. Before that, user needs activate the oneAPI environment by: \ +`source /setvars.sh` + +To validate the XPU availability and if the XPU accelerator is correctly chosen, here is an example: +``` +$ python +>>> import torch; print('torch:', torch.__version__) +torch: 2.3.0 +>>> import intel_extension_for_pytorch; print('XPU available:', torch.xpu.is_available()) +XPU available: True +>>> from deepspeed.accelerator import get_accelerator; print('accelerator:', get_accelerator()._name) +accelerator: xpu +``` + +## More examples for using DeepSpeed on Intel XPU +Refer to [LLM examples](https://github.com/intel/intel-extension-for-pytorch/tree/xpu-main/examples/gpu/llm), [Megatron-DeepSpeed training examples](https://github.com/intel/intel-extension-for-deepspeed/tree/main/examples) for more code samples of running LLM with DeepSpeed on Intel XPU. + + +# Huawei Ascend NPU + +DeepSpeed has been verified on the following Huawei Ascend NPU products: +* Atlas 300T A2 + +## Installation steps for Huawei Ascend NPU + +The following steps outline the process for installing DeepSpeed on an Huawei Ascend NPU: +1. Install the Huawei Ascend NPU Driver and Firmware +
    + Click to expand + + Before proceeding with the installation, please download the necessary files from [Huawei Ascend NPU Driver and Firmware](https://www.hiascend.com/en/hardware/firmware-drivers/commercial?product=4&model=11). + + The following instructions below are sourced from the [Ascend Community](https://www.hiascend.com/document/detail/en/canncommercial/700/quickstart/quickstart/quickstart_18_0002.html) (refer to the [Chinese version](https://www.hiascend.com/document/detail/zh/canncommercial/700/quickstart/quickstart/quickstart_18_0002.html)): + + - Execute the following command to install the driver: + ``` + ./Ascend-hdk--npu-driver_x.x.x_linux-{arch}.run --full --install-for-all + ``` + + - Execute the following command to install the firmware: + ``` + ./Ascend-hdk--npu-firmware_x.x.x.x.X.run --full + ``` +
    + +2. Install CANN +
    + Click to expand + + Prior to installation, download the [CANN Toolkit](https://www.hiascend.com/en/software/cann/commercial). + + - Install third-party dependencies. + - Ubuntu (The operations are the same for Debian, UOS20, and Linux.) + ``` + apt-get install -y gcc g++ make cmake zlib1g zlib1g-dev openssl libsqlite3-dev libssl-dev libffi-dev unzip pciutils net-tools libblas-dev gfortran libblas3 + ``` + - openEuler (The operations are the same for EulerOS, CentOS, and BC-Linux.) + ``` + yum install -y gcc gcc-c++ make cmake unzip zlib-devel libffi-devel openssl-devel pciutils net-tools sqlite-devel lapack-devel gcc-gfortran + ``` + - Install the required Python dependencies: + ``` + pip3 install attrs numpy decorator sympy cffi pyyaml pathlib2 psutil protobuf scipy requests absl-py wheel typing_extensions + ``` + - Install the CANN Toolkit. + ``` + ./Ascend-cann-toolkit_x.x.x_linux-{arch}.run --install + ``` +
    + +3. Install PyTorch \ + `pip install torch torch_npu` + +4. Install DeepSpeed \ + `pip install deepspeed` + +You can view the installation results using the `ds_report` command, Here is an example: +``` +-------------------------------------------------- +DeepSpeed C++/CUDA extension op report +-------------------------------------------------- +NOTE: Ops not installed will be just-in-time (JIT) compiled at + runtime if needed. Op compatibility means that your system + meet the required dependencies to JIT install the op. +-------------------------------------------------- +JIT compiled ops requires ninja +ninja .................. [OKAY] +-------------------------------------------------- +op name ................ installed .. compatible +-------------------------------------------------- +deepspeed_not_implemented [NO] ....... [OKAY] +async_io ............... [NO] ....... [OKAY] +cpu_adagrad ............ [NO] ....... [OKAY] +cpu_adam ............... [NO] ....... [OKAY] +cpu_lion ............... [NO] ....... [OKAY] +fused_adam ............. [NO] ....... [OKAY] +transformer_inference .. [NO] ....... [OKAY] +-------------------------------------------------- +DeepSpeed general environment info: +torch install path ............... ['/root/miniconda3/envs/ds/lib/python3.10/site-packages/torch'] +torch version .................... 2.2.0 +deepspeed install path ........... ['/root/miniconda3/envs/ds/lib/python3.10/site-packages/deepspeed'] +deepspeed info ................... 0.14.4, unknown, unknown +deepspeed wheel compiled w. ...... torch 2.2 +torch_npu install path ........... ['/root/miniconda3/envs/ds/lib/python3.10/site-packages/torch_npu'] +torch_npu version ................ 2.2.0 +ascend_cann version .............. 8.0.RC2.alpha002 +shared memory (/dev/shm) size .... 20.00 GB +``` + +## How to launch DeepSpeed on Huawei Ascend NPU + +To validate the Huawei Ascend NPU availability and if the accelerator is correctly chosen, here is an example(Huawei Ascend NPU detection is automatic starting with DeepSpeed v0.12.6): +``` +>>> import torch +>>> print('torch:',torch.__version__) +torch: 2.2.0 +>>> import torch_npu +>>> print('torch_npu:',torch.npu.is_available(),",version:",torch_npu.__version__) +torch_npu: True ,version: 2.2.0 +>>> from deepspeed.accelerator import get_accelerator +>>> print('accelerator:', get_accelerator()._name) +accelerator: npu +``` + +## Multi-card parallel training using Huawei Ascend NPU + +To perform model training across multiple Huawei Ascend NPU cards using DeepSpeed, see the examples provided in [DeepSpeed Examples](https://github.com/deepspeedai/DeepSpeedExamples/blob/master/training/cifar/cifar10_deepspeed.py). + +# Intel Gaudi +PyTorch models can be run on Intel® Gaudi® AI accelerator using DeepSpeed. Refer to the following user guides to start using DeepSpeed with Intel Gaudi: +* [Getting Started with DeepSpeed](https://docs.habana.ai/en/latest/PyTorch/DeepSpeed/Getting_Started_with_DeepSpeed/Getting_Started_with_DeepSpeed.html#getting-started-with-deepspeed) +* [DeepSpeed User Guide for Training](https://docs.habana.ai/en/latest/PyTorch/DeepSpeed/DeepSpeed_User_Guide/DeepSpeed_User_Guide.html#deepspeed-user-guide) +* [Optimizing Large Language Models](https://docs.habana.ai/en/latest/PyTorch/DeepSpeed/Optimizing_LLM.html#llms-opt) +* [Inference Using DeepSpeed](https://docs.habana.ai/en/latest/PyTorch/DeepSpeed/Inference_Using_DeepSpeed.html#deepspeed-inference-user-guide) diff --git a/docs/_tutorials/advanced-install.md b/docs/_tutorials/advanced-install.md index 10197e62f681..b251485f8988 100755 --- a/docs/_tutorials/advanced-install.md +++ b/docs/_tutorials/advanced-install.md @@ -27,7 +27,7 @@ ds_report ## Pre-install DeepSpeed Ops -**Note:** [PyTorch](https://pytorch.org/) must be installed _before_ pre-compiling any DeepSpeed c++/cuda ops. However, this is not required if using the default mode of JIT compilation of ops. +**Note:** [PyTorch](https://pytorch.org/) must be installed _before_ pre-compiling any DeepSpeed C++/CUDA ops. However, this is not required if using the default mode of JIT compilation of ops. {: .notice--info} Sometimes we have found it useful to pre-install either some or all DeepSpeed @@ -56,22 +56,22 @@ DS_BUILD_FUSED_LAMB=1 pip install deepspeed ``` Available `DS_BUILD` options include: -* `DS_BUILD_OPS` toggles all ops -* `DS_BUILD_AIO` builds asynchronous (NVMe) I/O op -* `DS_BUILD_CCL_COMM` builds the communication collective libs -* `DS_BUILD_CPU_ADAM` builds the CPUAdam op -* `DS_BUILD_CPU_LION` builds the CPULion op -* `DS_BUILD_EVOFORMER_ATTN` builds the EvoformerAttn op (from [Alphafold](https://www.deepspeed.ai/tutorials/ds4sci_evoformerattention/)) -* `DS_BUILD_FUSED_ADAM` builds the FusedAdam op (from [apex](https://github.com/NVIDIA/apex)) -* `DS_BUILD_FUSED_LION` builds the FusedLion op -* `DS_BUILD_CPU_ADAGRAD` builds the CPUAdagrad op -* `DS_BUILD_FUSED_LAMB` builds the FusedLamb op -* `DS_BUILD_QUANTIZER` builds the quantizer op -* `DS_BUILD_RANDOM_LTD` builds the random ltd op -* `DS_BUILD_SPARSE_ATTN` builds the sparse attention op -* `DS_BUILD_TRANSFORMER` builds the transformer op -* `DS_BUILD_TRANSFORMER_INFERENCE` builds the transformer-inference op -* `DS_BUILD_STOCHASTIC_TRANSFORMER` builds the stochastic transformer op +* `DS_BUILD_OPS` toggles all ops. +* `DS_BUILD_AIO` builds asynchronous (NVMe) I/O op. +* `DS_BUILD_CCL_COMM` builds the communication collective libs. +* `DS_BUILD_CPU_ADAM` builds the CPUAdam op. +* `DS_BUILD_CPU_LION` builds the CPULion op. +* `DS_BUILD_EVOFORMER_ATTN` builds the EvoformerAttn op (from [Alphafold](https://www.deepspeed.ai/tutorials/ds4sci_evoformerattention/)). +* `DS_BUILD_FUSED_ADAM` builds the FusedAdam op (from [apex](https://github.com/NVIDIA/apex)). +* `DS_BUILD_FUSED_LION` builds the FusedLion op. +* `DS_BUILD_CPU_ADAGRAD` builds the CPUAdagrad op. +* `DS_BUILD_FUSED_LAMB` builds the FusedLamb op. +* `DS_BUILD_QUANTIZER` builds the quantizer op. +* `DS_BUILD_RANDOM_LTD` builds the random ltd op. +* `DS_BUILD_SPARSE_ATTN` builds the sparse attention op. +* `DS_BUILD_TRANSFORMER` builds the transformer op. +* `DS_BUILD_TRANSFORMER_INFERENCE` builds the transformer-inference op. +* `DS_BUILD_STOCHASTIC_TRANSFORMER` builds the stochastic transformer op. To speed up the build-all process, you can parallelize the compilation process with: @@ -81,10 +81,10 @@ DS_BUILD_OPS=1 pip install deepspeed --global-option="build_ext" --global-option This should complete the full build 2-3 times faster. You can adjust `-j` to specify how many cpu-cores are to be used during the build. In the example it is set to 8 cores. -You can also build a binary wheel and install it on multiple machines that have the same type of GPUs and the same software environment (CUDA toolkit, pytorch, python, etc.) +You can also build a binary wheel and install it on multiple machines that have the same type of GPUs and the same software environment (CUDA toolkit, PyTorch, Python, etc.) ```bash -DS_BUILD_OPS=1 python setup.py build_ext -j8 bdist_wheel +DS_BUILD_OPS=1 python -m build --wheel --no-isolation --config-setting="--build-option=build_ext" --config-setting="--build-option=-j8" ``` This will create a pypi binary wheel under `dist`, e.g., ``dist/deepspeed-0.3.13+8cd046f-cp38-cp38-linux_x86_64.whl`` and then you can install it directly on multiple machines, in our example: @@ -106,8 +106,8 @@ pip install . For installs spanning multiple nodes we find it useful to install DeepSpeed using the -[install.sh](https://github.com/microsoft/DeepSpeed/blob/master/install.sh) -script in the repo. This will build a python wheel locally and copy it to all +[install.sh](https://github.com/deepspeedai/DeepSpeed/blob/master/install.sh) +script in the repo. This will build a Python wheel locally and copy it to all the nodes listed in your hostfile (either given via `--hostfile`, or defaults to `/job/hostfile`). @@ -118,7 +118,7 @@ extensions will be loaded form that directory. If you use multiple virtual environments this could be a problem, since by default there is only one `torch_extensions` directory, but different virtual environments may use different setups (e.g., different -python or cuda versions) and then the loading of a CUDA extension built by another environment will +Python or CUDA versions) and then the loading of a CUDA extension built by another environment will fail. Therefore, if you need to you can override the default location with the help of the `TORCH_EXTENSIONS_DIR` environment variable. So in each virtual environment you can point it to a unique directory and DeepSpeed will use it to save and load CUDA extensions. @@ -146,9 +146,9 @@ If you're getting the following error: ``` RuntimeError: CUDA error: no kernel image is available for execution on the device ``` -when running deepspeed, that means that the cuda extensions weren't built for the card you're trying to use it for. +when running deepspeed, that means that the CUDA extensions weren't built for the card you're trying to use it for. -When building from source deepspeed will try to support a wide range of architectures, but under jit-mode it'll only +When building from source DeepSpeed will try to support a wide range of architectures, but under jit-mode it'll only support the architectures visible at the time of building. You can build specifically for a desired range of architectures by setting a `TORCH_CUDA_ARCH_LIST` env variable: @@ -159,9 +159,9 @@ TORCH_CUDA_ARCH_LIST="6.1;7.5;8.6" pip install ... It will also make the build faster when you only build for a few architectures. -This is also recommended to ensure your exact architecture is used. Due to a variety of technical reasons, a distributed pytorch binary isn't built to fully support all architectures, skipping binary compatible ones, at a potential cost of underutilizing your full card's compute capabilities. To see which architectures get included during the deepspeed build from source - save the log and grep for `-gencode` arguments. +This is also recommended to ensure your exact architecture is used. Due to a variety of technical reasons, a distributed PyTorch binary isn't built to fully support all architectures, skipping binary compatible ones, at a potential cost of underutilizing your full card's compute capabilities. To see which architectures get included during the DeepSpeed build from source - save the log and grep for `-gencode` arguments. -The full list of nvidia GPUs and their compute capabilities can be found [here](https://developer.nvidia.com/cuda-gpus). +The full list of Nvidia GPUs and their compute capabilities can be found [here](https://developer.nvidia.com/cuda-gpus). ## CUDA version mismatch @@ -171,7 +171,7 @@ If you're getting the following error: Exception: >- DeepSpeed Op Builder: Installed CUDA version {VERSION} does not match the version torch was compiled with {VERSION}, unable to compile cuda/cpp extensions without a matching cuda version. ``` You have a misaligned version of CUDA installed compared to the version of CUDA -used to compile torch. A mismatch in the major version is likely to result in +used to compile Torch. A mismatch in the major version is likely to result in errors or unexpected behavior. The easiest fix for this error is changing the CUDA version installed (check @@ -195,7 +195,7 @@ DS_SKIP_CUDA_CHECK=1 Some DeepSpeed features require specific dependencies outside the general dependencies of DeepSpeed. * Python package dependencies per feature/op please -see our [requirements directory](https://github.com/microsoft/DeepSpeed/tree/master/requirements). +see our [requirements directory](https://github.com/deepspeedai/DeepSpeed/tree/master/requirements). * We attempt to keep the system level dependencies to a minimum, however some features do require special system-level packages. Please see our `ds_report` tool output to see if you are missing any system-level packages for a given feature. diff --git a/docs/_tutorials/automatic-tensor-parallelism.md b/docs/_tutorials/automatic-tensor-parallelism.md old mode 100644 new mode 100755 index 5d182b2a4532..a7de4721a5ce --- a/docs/_tutorials/automatic-tensor-parallelism.md +++ b/docs/_tutorials/automatic-tensor-parallelism.md @@ -66,7 +66,7 @@ With automatic tensor parallelism, we do not need to provide the injection polic # Example Script -We can observe performance improvement with automatic tensor parallelism using the [inference test suite](https://github.com/microsoft/DeepSpeedExamples/blob/master/inference/huggingface/text-generation/inference-test.py). This script is for testing text-generation models and includes per token latency, bandwidth, throughput and memory checks for comparison. See the [README](https://github.com/microsoft/DeepSpeedExamples/tree/master/inference/huggingface/text-generation#deepspeed-huggingface-text-generation-examples) for more information. +We can observe performance improvement with automatic tensor parallelism using the [inference test suite](https://github.com/deepspeedai/DeepSpeedExamples/blob/master/inference/huggingface/text-generation/inference-test.py). This script is for testing text-generation models and includes per token latency, bandwidth, throughput and memory checks for comparison. See the [README](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/inference/huggingface/text-generation#deepspeed-huggingface-text-generation-examples) for more information. ## Launching @@ -121,15 +121,21 @@ The following results were collected using V100 SXM2 32GB GPUs. The following model families have been successfully tested with automatic tensor parallelism. Other models may work but have not been tested yet. - albert +- arctic +- baichuan - bert - bigbird_pegasus - bloom - camembert +- chatglm2 +- chatglm3 - codegen +- codellama - deberta_v2 - electra - ernie - esm +- falcon - glm - gpt-j - gpt-neo @@ -137,8 +143,11 @@ The following model families have been successfully tested with automatic tensor - longt5 - luke - llama +- llama2 - m2m_100 - marian +- mistral +- mixtral - mpt - mvp - nezha @@ -146,15 +155,21 @@ The following model families have been successfully tested with automatic tensor - opt - pegasus - perceiver +- phi - plbart +- qwen +- qwen2 +- qwen2-moe - reformer - roberta - roformer - splinter +- starcode - t5 - xglm - xlm_roberta - yoso +- yuan # Unsupported Models diff --git a/docs/_tutorials/autotuning.md b/docs/_tutorials/autotuning.md index 38648daa89f2..2935f38946ac 100644 --- a/docs/_tutorials/autotuning.md +++ b/docs/_tutorials/autotuning.md @@ -8,23 +8,23 @@ Make sure you've read the DeepSpeed tutorials on [Getting Started](https://www.d One pain point in model training is to figure out good performance-relevant configurations such as micro-batch size to fully utilize the hardware and achieve a high throughput number. This configuration exploring process is commonly done manually but is important since model training is repeated many times and benefits from using a good configuration. Not only is the hand-tuning process time-consuming, but the outcome is hardware-dependent. This means that a good configuration on one hardware might not be the best on another different hardware. The user thus has to hand tune the configuration again. With DeepSpeed, there are more configuration parameters that could potentially affect the training speed, thus making it more tedious to manually tune the configuration. -The DeepSpeed Autotuner mitigates this pain point and automatically discovers the optimal DeepSpeed configuration that delivers good training speed. It not only reduces the time and resources users spend on tuning, but also can discover configurations better than hand-tuned methods. In this tutorial, we showcase the usage and benefits of the autotuning feature in DeepSpeed. For more details, please see the [README.md](https://github.com/microsoft/DeepSpeed/tree/master/deepspeed/autotuning). +The DeepSpeed Autotuner mitigates this pain point and automatically discovers the optimal DeepSpeed configuration that delivers good training speed. It not only reduces the time and resources users spend on tuning, but also can discover configurations better than hand-tuned methods. In this tutorial, we showcase the usage and benefits of the autotuning feature in DeepSpeed. For more details, please see the [README.md](https://github.com/deepspeedai/DeepSpeed/tree/master/deepspeed/autotuning). ## Tuning scope and strategy The DeepSpeed Autotuner uses model information, system information, and heuristics to efficiently tune system knobs that affect compute and memory efficiencies, such as ZeRO optimization stages, micro-batch sizes, and many other ZeRO optimization configurations. Currently, the DeepSpeed Autotuner tunes ZeRO stages, micro-batch size per GPU, and ZeRO configurations (offloading is not yet supported) on top of other configurations such as optimizer, scheduler, fp16 defined by the user in the DeepSpeed configuration file. -Note that ZeRO stages, micro-batch sizes, and other ZeRO configurations to tune are also configurable and can be overwritten by the user through the DeepSpeed configuration file. See [Configuring Tuning Scope](https://github.com/microsoft/DeepSpeed/tree/master/deepspeed/autotuning#configuring-tuning-scope) for details. +Note that ZeRO stages, micro-batch sizes, and other ZeRO configurations to tune are also configurable and can be overwritten by the user through the DeepSpeed configuration file. See [Configuring Tuning Scope](https://github.com/deepspeedai/DeepSpeed/tree/master/deepspeed/autotuning#configuring-tuning-scope) for details. ## Ease of use DeepSpeed Autotuning is easy to use, requiring no code change from DeepSpeed users. -Compared to the original training script (`deepspeed your_program.py --deepspeed ds_config.json`), invoking the autotuning feature in DeepSpeed only requires setting an `autotuning` flag after the DeepSpeed launcher (see [Usage](https://github.com/microsoft/DeepSpeed/tree/master/deepspeed/autotuning#usage) for details), and adding `" autotuning": {"enabled": true}` to the DeepSpeed configuration file. Users can further tailor the autotuning process by changing the autotuning configuration in the DeepSpeed configuration JSON file (See [Autotuning Configuration](https://github.com/microsoft/DeepSpeed/tree/master/deepspeed/autotuning#autotuning-configuration) for details). +Compared to the original training script (`deepspeed your_program.py --deepspeed ds_config.json`), invoking the autotuning feature in DeepSpeed only requires setting an `autotuning` flag after the DeepSpeed launcher (see [Usage](https://github.com/deepspeedai/DeepSpeed/tree/master/deepspeed/autotuning#usage) for details), and adding `" autotuning": {"enabled": true}` to the DeepSpeed configuration file. Users can further tailor the autotuning process by changing the autotuning configuration in the DeepSpeed configuration JSON file (See [Autotuning Configuration](https://github.com/deepspeedai/DeepSpeed/tree/master/deepspeed/autotuning#autotuning-configuration) for details). ## Example -We demonstrate the usage and benefit of autotuning using the training of a 0.77 billion parameter [GPT2-large model](https://huggingface.co/gpt2-large) from Hugging Face on 16 Nvidia V100 GPUs. For more examples, refer to [autotuning](https://github.com/microsoft/DeepSpeedExamples/tree/master/autotuning) in the DeepSpeedExamples repo. Note that autotuning works with any DeepSpeed-accelerated model training, not limited to Hugging Face models. +We demonstrate the usage and benefit of autotuning using the training of a 0.77 billion parameter [GPT2-large model](https://huggingface.co/gpt2-large) from Hugging Face on 16 Nvidia V100 GPUs. For more examples, refer to [autotuning](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/autotuning) in the DeepSpeedExamples repo. Note that autotuning works with any DeepSpeed-accelerated model training, not limited to Hugging Face models. The model has: @@ -119,7 +119,7 @@ Note that the performance metric used in autotuning is calculated using the timi Tuning completed in 0:27:33.988447. Total number of experiments: 13. -As we can see the DeepSpeed Autotuner can select a better than hand-tuned configuration with a reasonable number of experiments. Examples in [Autotuning Hugging Face Examples](https://github.com/microsoft/DeepSpeedExamples/tree/master/autotuning/hf#autotuning-hugging-face-examples) would demonstrate the effectiveness of autotuning across different models. +As we can see the DeepSpeed Autotuner can select a better than hand-tuned configuration with a reasonable number of experiments. Examples in [Autotuning Hugging Face Examples](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/autotuning/hf#autotuning-hugging-face-examples) would demonstrate the effectiveness of autotuning across different models. ### DeepSpeed Autotuning with AzureML diff --git a/docs/_tutorials/azure.md b/docs/_tutorials/azure.md index 38af70b3f4b0..1bbfb687d812 100644 --- a/docs/_tutorials/azure.md +++ b/docs/_tutorials/azure.md @@ -13,10 +13,10 @@ The recommended and simplest method to try DeepSpeed on Azure is through [AzureM For AzureML v1 examples, please take a look at easy-to-use examples for Megatron-DeepSpeed, Transformers and CIFAR training [here](https://github.com/Azure/azureml-examples/tree/main/v1/python-sdk/workflows/train/deepspeed). -> Our [Megatron-DeepSpeed](https://github.com/microsoft/megatron-deepspeed) contains the most up to date [recipe](https://github.com/microsoft/Megatron-DeepSpeed/tree/main/examples_deepspeed/azureml) for end-to-end training on AzureML. +> Our [Megatron-DeepSpeed](https://github.com/deepspeedai/megatron-deepspeed) contains the most up to date [recipe](https://github.com/deepspeedai/Megatron-DeepSpeed/tree/main/examples_deepspeed/azureml) for end-to-end training on AzureML. # DeepSpeed on Azure VMs If you don't have access to AzureML or if want to build a custom environments using [Azure virtual machines](https://azure.microsoft.com/en-us/services/virtual-machines/) or Azure VM Scale-Sets ([VMSS](https://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/overview)), we are working on easy-to-use cluster setup scripts that will be published in the next few weeks. -If you already have a cluster setup, you can use the [azure recipes](https://github.com/microsoft/Megatron-DeepSpeed/tree/main/examples_deepspeed/azure) that can easily be modified to train various model configurations. +If you already have a cluster setup, you can use the [azure recipes](https://github.com/deepspeedai/Megatron-DeepSpeed/tree/main/examples_deepspeed/azure) that can easily be modified to train various model configurations. diff --git a/docs/_tutorials/bert-finetuning.md b/docs/_tutorials/bert-finetuning.md index 3014be18d682..efb8fa268e29 100755 --- a/docs/_tutorials/bert-finetuning.md +++ b/docs/_tutorials/bert-finetuning.md @@ -10,14 +10,14 @@ In this tutorial we will be adding DeepSpeed to the BingBert model for the SQuAD If you don't already have a copy of the DeepSpeed repository, please clone in now and checkout the DeepSpeedExamples submodule the contains the BingBertSquad -example (DeepSpeedExamples/BingBertSquad) we will be going over in the rest of +example (DeepSpeedExamples/training/BingBertSquad) we will be going over in the rest of this tutorial. ```shell -git clone https://github.com/microsoft/DeepSpeed +git clone https://github.com/deepspeedai/DeepSpeed cd DeepSpeed git submodule update --init --recursive -cd DeepSpeedExamples/BingBertSquad +cd DeepSpeedExamples/training/BingBertSquad ``` ### Pre-requisites diff --git a/docs/_tutorials/bert-pretraining.md b/docs/_tutorials/bert-pretraining.md index 14789d3fda96..342918de958d 100755 --- a/docs/_tutorials/bert-pretraining.md +++ b/docs/_tutorials/bert-pretraining.md @@ -5,7 +5,7 @@ tags: training pre-training --- **Note:** -On 08/15/2022 we have added another BERT pre-training/fine-tuning example at [github.com/microsoft/Megatron-DeepSpeed/tree/main/examples_deepspeed/bert_with_pile](https://github.com/microsoft/Megatron-DeepSpeed/tree/main/examples_deepspeed/bert_with_pile), which includes a README.md that describes how to use it. Compared to the example described below, the new example in Megatron-DeepSpeed adds supports of ZeRO and tensor-slicing model parallelism (thus support larger model scale), uses a public and richer [Pile dataset](https://github.com/EleutherAI/the-pile) (user can also use their own data), together with some changes to the model architecture and training hyperparameters as described in [this paper](https://arxiv.org/abs/1909.08053). As a result, the BERT models trained by the new example is able to provide better MNLI results than original BERT, but with a slightly different model architecture and larger computation requirements. If you want to train a larger-scale or better quality BERT-style model, we recommend to follow the new example in Megatron-DeepSpeed. If your goal is to strictly reproduce the original BERT model, we recommend to follow the example under DeepSpeedExamples/bing_bert as described below. On the other hand, the tutorial below helps explaining how to integrate DeepSpeed into a pre-training codebase, regardless of which BERT example you use. +On 08/15/2022 we have added another BERT pre-training/fine-tuning example at [github.com/deepspeedai/Megatron-DeepSpeed/tree/main/examples_deepspeed/bert_with_pile](https://github.com/deepspeedai/Megatron-DeepSpeed/tree/main/examples_deepspeed/bert_with_pile), which includes a README.md that describes how to use it. Compared to the example described below, the new example in Megatron-DeepSpeed adds supports of ZeRO and tensor-slicing model parallelism (thus support larger model scale), uses a public and richer [Pile dataset](https://github.com/EleutherAI/the-pile) (user can also use their own data), together with some changes to the model architecture and training hyperparameters as described in [this paper](https://arxiv.org/abs/1909.08053). As a result, the BERT models trained by the new example is able to provide better MNLI results than original BERT, but with a slightly different model architecture and larger computation requirements. If you want to train a larger-scale or better quality BERT-style model, we recommend to follow the new example in Megatron-DeepSpeed. If your goal is to strictly reproduce the original BERT model, we recommend to follow the example under DeepSpeedExamples/bing_bert as described below. On the other hand, the tutorial below helps explaining how to integrate DeepSpeed into a pre-training codebase, regardless of which BERT example you use. {: .notice--info} In this tutorial we will apply DeepSpeed to pre-train the BERT @@ -26,7 +26,7 @@ We work from adaptations of [huggingface/transformers](https://github.com/huggingface/transformers) and [NVIDIA/DeepLearningExamples](https://github.com/NVIDIA/DeepLearningExamples). We have forked this repo under -[DeepSpeedExamples/bing_bert](https://github.com/microsoft/DeepSpeedExamples/tree/master/bing_bert) +[DeepSpeedExamples/bing_bert](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/bing_bert) and made several modifications in their script: * We adopted the modeling code from NVIDIA's BERT under `bing_bert/nvidia/`. @@ -360,7 +360,7 @@ the scripts/json configs in our DeepSpeedExamples repo. Below is a table contain summary of the configurations. Specifically see the `ds_train_bert_bsz64k_seq128.sh` and `ds_train_bert_bsz32k_seq512.sh` scripts for more details in -[DeepSpeedExamples](https://github.com/microsoft/DeepSpeedExamples/tree/master/bing_bert). +[DeepSpeedExamples](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/bing_bert). | Parameters | 128 Sequence | 512 Sequence | diff --git a/docs/_tutorials/cifar-10.md b/docs/_tutorials/cifar-10.md index 8b4990d0431e..2bd06abf0e89 100644 --- a/docs/_tutorials/cifar-10.md +++ b/docs/_tutorials/cifar-10.md @@ -16,7 +16,7 @@ First we will go over how to run the original CIFAR-10 model. Then we will proce ## Running Original CIFAR-10 -Original model code from the [CIFAR-10 Tutorial](https://github.com/pytorch/tutorials/blob/main/beginner_source/blitz/cifar10_tutorial.py), We've copied this repo under [DeepSpeedExamples/training/cifar/](https://github.com/microsoft/DeepSpeedExamples/tree/master/training/cifar) and made it available as a submodule. To download, execute: +Original model code from the [CIFAR-10 Tutorial](https://github.com/pytorch/tutorials/blob/main/beginner_source/blitz/cifar10_tutorial.py), We've copied this repo under [DeepSpeedExamples/training/cifar/](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/training/cifar) and made it available as a submodule. To download, execute: ```bash git submodule update --init --recursive diff --git a/docs/_tutorials/comms-logging.md b/docs/_tutorials/comms-logging.md index 2719f08ad200..c4f6141a5b6c 100644 --- a/docs/_tutorials/comms-logging.md +++ b/docs/_tutorials/comms-logging.md @@ -64,7 +64,7 @@ The steps to add DeepSpeed communication log summaries are as follows: 2. (Optional) If your application contains `torch.distributed` calls that you wish to log, import `deepspeed.comm` package and modify `torch.distributed` calls to use `deepspeed.comm` (Note: The `deepspeed.comm` collective and pt2pt APIs exactly match `torch.distributed`) 3. Call `deepspeed.comm.log_summary` -For example usage, see the following modified [DeepSpeedExamples/cifar](https://github.com/microsoft/DeepSpeedExamples/tree/master/cifar) example: +For example usage, see the following modified [DeepSpeedExamples/cifar](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/cifar) example: ```python # Step 2: (Optional) Import deepspeed.comm diff --git a/docs/_tutorials/curriculum-learning.md b/docs/_tutorials/curriculum-learning.md index 29f9417363f0..0b74945d3715 100644 --- a/docs/_tutorials/curriculum-learning.md +++ b/docs/_tutorials/curriculum-learning.md @@ -8,7 +8,7 @@ On 12/12/2022, we released DeepSpeed Data Efficiency Library which provides a mo {: .notice--warning} **Note:** -This tutorial was updated on 10/29/2021. Changes include: 1) A more detailed tuning strategy. 2) Pipeline parallelism support. 3) Token-based learning rate decay. 4) A new GPT-2 example at [github.com/microsoft/Megatron-DeepSpeed](https://github.com/microsoft/Megatron-DeepSpeed). See details below. +This tutorial was updated on 10/29/2021. Changes include: 1) A more detailed tuning strategy. 2) Pipeline parallelism support. 3) Token-based learning rate decay. 4) A new GPT-2 example at [github.com/deepspeedai/Megatron-DeepSpeed](https://github.com/deepspeedai/Megatron-DeepSpeed). See details below. {: .notice--info} In this tutorial, we introduce DeepSpeed's curriculum learning-based data pipeline, which presents easier or simpler examples earlier during training. By enabling stable training with 8x/4x larger batch size/learning rate (whereas the baseline approach struggles with training divergence), we observe that curriculum learning (based on sequence length) provides stable and 3.3x faster GPT-2 pre-training (tested on 117M and 1.5B parameters), together with better token-wise convergence speed and zero-shot WikiText-103/LAMBADA evaluation results. In addition, since curriculum learning only affects the data pipeline, its benefit is complementary to many DeepSpeed features and other system optimization techniques. For example, curriculum learning is compatible with DeepSpeed's [ZeRO Redundancy Optimizer](/tutorials/zero/), [ZeRO-Offload](/tutorials/zero-offload/), and [3D Parallelism](/tutorials/pipeline/). @@ -114,17 +114,17 @@ After the update on 10/29/2021, now there are two curriculum learning examples f We provide two curriculum learning examples for Megatron-LM GPT-2 pre-training: -The first one is at [Megatron-DeepSpeed/tree/main/examples_deepspeed/curriculum_learning](https://github.com/microsoft/Megatron-DeepSpeed/tree/main/examples_deepspeed/curriculum_learning). This integration is based on a newer Megatron-LM fork, and only this curriculum learning example supports pipeline parallelism. However, as of 10/29/2021, we haven't verified ZeRO-2 and ZeRO-3 on this fork. Overall, we highly recommend you to use this example if your model does not require ZeRO-2/3. +The first one is at [Megatron-DeepSpeed/tree/main/examples_deepspeed/curriculum_learning](https://github.com/deepspeedai/Megatron-DeepSpeed/tree/main/examples_deepspeed/curriculum_learning). This integration is based on a newer Megatron-LM fork, and only this curriculum learning example supports pipeline parallelism. However, as of 10/29/2021, we haven't verified ZeRO-2 and ZeRO-3 on this fork. Overall, we highly recommend you to use this example if your model does not require ZeRO-2/3. -The second one is at [DeepSpeedExamples/Megatron-LM-v1.1.5-ZeRO3/curriculum_learning/](https://github.com/microsoft/DeepSpeedExamples/tree/master/Megatron-LM-v1.1.5-ZeRO3/curriculum_learning). This integration is based on an older Megatron-LM hard copy that we will eventually deprecate and this curriculum learning example does not support pipeline parallelism. We recommend you to ONLY use this example if your model requires ZeRO-2/3. +The second one is at [DeepSpeedExamples/Megatron-LM-v1.1.5-ZeRO3/curriculum_learning/](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/Megatron-LM-v1.1.5-ZeRO3/curriculum_learning). This integration is based on an older Megatron-LM hard copy that we will eventually deprecate and this curriculum learning example does not support pipeline parallelism. We recommend you to ONLY use this example if your model requires ZeRO-2/3. Besides the DeepSpeed curriculum learning json configurations described above, there are some other necessary changes on the user side to integrate curriculum learning: ### 2.1 Training data truncation -To enable `seqlen`-based curriculum learning, we need to add the functionality of training data truncation based on the given curriculum sequence length. For the case without pipeline parallelism, it is necessary to add a `curriculum_seqlen` argument in the model's forward pass and use it to perform training data sequence length truncation. For Megatron-LM GPT-2 pre-training, we implement this in `forward()` in [megatron/model/gpt2_model.py](https://github.com/microsoft/DeepSpeedExamples/blob/master/Megatron-LM-v1.1.5-ZeRO3/megatron/model/gpt2_model.py) and in `forward_step()` in [pretrain_gpt2.py](https://github.com/microsoft/DeepSpeedExamples/blob/master/Megatron-LM-v1.1.5-ZeRO3/pretrain_gpt2.py). +To enable `seqlen`-based curriculum learning, we need to add the functionality of training data truncation based on the given curriculum sequence length. For the case without pipeline parallelism, it is necessary to add a `curriculum_seqlen` argument in the model's forward pass and use it to perform training data sequence length truncation. For Megatron-LM GPT-2 pre-training, we implement this in `forward()` in [megatron/model/gpt2_model.py](https://github.com/deepspeedai/DeepSpeedExamples/blob/master/Megatron-LM-v1.1.5-ZeRO3/megatron/model/gpt2_model.py) and in `forward_step()` in [pretrain_gpt2.py](https://github.com/deepspeedai/DeepSpeedExamples/blob/master/Megatron-LM-v1.1.5-ZeRO3/pretrain_gpt2.py). -For the case with pipeline parallelism, due to DeepSpeed engine limitations we cannot inject the `curriculum_seqlen` argument in the forward pass. Instead, we create a duplicate of `deepspeed.runtime.data_pipeline.curriculum_scheduler` on the user side, and use it to retrieve the `curriculum_seqlen`. This implementation can be found in [megatron/training.py](https://github.com/microsoft/Megatron-DeepSpeed/blob/main/megatron/training.py). +For the case with pipeline parallelism, due to DeepSpeed engine limitations we cannot inject the `curriculum_seqlen` argument in the forward pass. Instead, we create a duplicate of `deepspeed.runtime.data_pipeline.curriculum_scheduler` on the user side, and use it to retrieve the `curriculum_seqlen`. This implementation can be found in [megatron/training.py](https://github.com/deepspeedai/Megatron-DeepSpeed/blob/main/megatron/training.py). ### 2.2 Disable batch size warmup (`--rampup-batch-size`) In our [paper](https://arxiv.org/abs/2108.06084) section 5.4 we demonstrate that curriculum learning (`seqlen`-based) provides much better training stability than the batch size warmup technique introduced by Open AI GPT-3. So when using curriculum learning you need to remove the `--rampup-batch-size` config in your training script. It's not recommended using both curriculum learning and batch size warmup, because both of them reduce the number of tokens in a batch. Another related change you might want is to increase your micro batch size, since without batch size warmup your batch size will be fixed now. diff --git a/docs/_tutorials/data-efficiency.md b/docs/_tutorials/data-efficiency.md index 9ea3a33dab92..b49974f1fa78 100644 --- a/docs/_tutorials/data-efficiency.md +++ b/docs/_tutorials/data-efficiency.md @@ -20,7 +20,7 @@ Curriculum learning has been successfully applied to various training tasks (see ### 1.3 How to use Curriculum Learning #### 1.3.1 GPT-3 and BERT pretraining -The `examples_deepspeed/data_efficiency` directory in our [Megatron-DeepSpeed repo](https://github.com/microsoft/Megatron-DeepSpeed) includes our examples of how to apply curriculum learning to GPT-3 and BERT pretraining. There are 3 steps: data analysis, pretraining, and eval/finetuning. +The `examples_deepspeed/data_efficiency` directory in our [Megatron-DeepSpeed repo](https://github.com/deepspeedai/Megatron-DeepSpeed) includes our examples of how to apply curriculum learning to GPT-3 and BERT pretraining. There are 3 steps: data analysis, pretraining, and eval/finetuning. **Data analysis:** Curriculum learning requires a data analysis before pretraining that calculate the difficulty of each data sample (based on the metric provided by user), and build an index that map difficulty value to corresponding data samples. (There are exceptions: for example the truncation-based sequence length metric can be achieved by data postprocessing without data analysis.) We provide a data analyzer to perform the offline CPU-only data analysis. @@ -31,7 +31,7 @@ The `examples_deepspeed/data_efficiency` directory in our [Megatron-DeepSpeed re **Eval/finetuning** `examples_deepspeed/data_efficiency/gpt/eval/` and `examples_deepspeed/data_efficiency/bert/finetune` include the example scripts for GPT-3 model's zero-/few-shot evaluation and BERT model's finetuning. Our [paper](https://arxiv.org/abs/2212.03597) includes the reference eval/finetune results if you follow our example scripts to perform the pretraining/eval/finetuning. #### 1.3.2 GPT-2 finetuning -The `data_efficiency/gpt_finetuning` directory in our [DeepSpeedExamples repo](https://github.com/microsoft/DeepSpeedExamples) includes our examples of how to apply curriculum learning to GPT-2 finetuning. `data_efficiency/gpt_finetuning/finetune/ds_finetune_gpt2_run.sh` is the example finetuning script. For CL metrics that require data analysis (e.g., the vocabulary rarity metric), you need to first use ```data_efficiency/gpt_finetuning/finetune/ds_analyze_gpt_data_*``` to analyze and index the dataset, similar to the GPT-3 pre-training case described above in 1.3.1. +The `data_efficiency/gpt_finetuning` directory in our [DeepSpeedExamples repo](https://github.com/deepspeedai/DeepSpeedExamples) includes our examples of how to apply curriculum learning to GPT-2 finetuning. `data_efficiency/gpt_finetuning/finetune/ds_finetune_gpt2_run.sh` is the example finetuning script. For CL metrics that require data analysis (e.g., the vocabulary rarity metric), you need to first use ```data_efficiency/gpt_finetuning/finetune/ds_analyze_gpt_data_*``` to analyze and index the dataset, similar to the GPT-3 pre-training case described above in 1.3.1. ## 2. Random layerwise token dropping (random-LTD) @@ -44,14 +44,14 @@ When you want to pretrain/fine-tune a transformer-based model, it is always a go ### 2.3 How to use random-LTD #### 2.3.1 GPT-3 and BERT pretraining -The `examples_deepspeed/data_efficiency` directory in our [Megatron-DeepSpeed repo](https://github.com/microsoft/Megatron-DeepSpeed) includes our examples of how to apply random-LTD to GPT-3 and BERT pretraining. +The `examples_deepspeed/data_efficiency` directory in our [Megatron-DeepSpeed repo](https://github.com/deepspeedai/Megatron-DeepSpeed) includes our examples of how to apply random-LTD to GPT-3 and BERT pretraining. `examples_deepspeed/data_efficiency/gpt/pretrain` and `examples_deepspeed/data_efficiency/bert/pretrain` include the example pretraining scripts with random-LTD feature. Several changes are needed to enable random-LTD during pretraining: (1) User need to provide a DeepSpeed json config file which includes configurations for random-LTD (see [list of configuration](/docs/config-json/#data-efficiency) for details). We provide tested example configurations in `examples_deepspeed/data_efficiency/gpt/pretrain/ds_pretrain_gpt_1.3B_dense_run.sh` and `examples_deepspeed/data_efficiency/bert/pretrain/ds_pretrain_bert_336M_run.sh`. (2) After initializing the DeepSpeed engine via `deepspeed.initialize`, user needs to use the `convert_to_random_ltd` API to convert and wrap the model layers in order to enable the random-LTD feature. We provide an example implementation of this change in `megatron/training.py` function `setup_model_and_optimizer`. (3) In order for random-LTD to understand the input argument mapping of the forward function, user need to change all the input arguments (except the hidden_states input) into keyword/named argument. For example, in `megatron/model/transformer.py` we changed the forward function from `def forward(self, hidden_states, attention_mask, encoder_output=None, enc_dec_attn_mask=None, layer_past=None, get_key_value=False):` to `def forward(self, hidden_states, attention_mask=None, encoder_output=None, enc_dec_attn_mask=None, layer_past=None, get_key_value=False):`. (4) When saving model checkpoints, (especially if the state dictionary has non-traditional structure) user needs to use the `remove_random_ltd_state_dict` API to convert the random-LTD-wrapped layers back to original model layers. We provide an example implementation of this change in `megatron/model/language_model.py`. For eval/finetuning of the pretrained model, see [previous section](#131-gpt-3-and-bert-pretraining) about how to use our example scripts. #### 2.3.2 GPT-2 and ViT finetuning -The `data_efficiency` directory in our [DeepSpeedExamples repo](https://github.com/microsoft/DeepSpeedExamples) includes our examples of how to apply random-LTD to GPT-2 and ViT finetuning. +The `data_efficiency` directory in our [DeepSpeedExamples repo](https://github.com/deepspeedai/DeepSpeedExamples) includes our examples of how to apply random-LTD to GPT-2 and ViT finetuning. Just like pretraining case, similar changes are required to enable random-LTD for finetuning: (1) DeepSpeed json config file. (2) Use the `convert_to_random_ltd` API to convert and wrap the model layers. (3) When saving model checkpoints, use the `remove_random_ltd_state_dict` API to convert the random-LTD-wrapped layers back to original model layers. @@ -92,9 +92,9 @@ iter 5474 | LR [0.0001]| val_acc 97.97000122070312 | layer_token 305784192 ## 3. Composing curriculum learning and random-LTD to achieve more ### 3.1 GPT-3 and BERT pretraining -The `examples_deepspeed/data_efficiency` directory in our [Megatron-DeepSpeed repo](https://github.com/microsoft/Megatron-DeepSpeed) includes our examples of how to compose curriculum learning random-LTD, and apply both of them to GPT-3 and BERT pretraining. +The `examples_deepspeed/data_efficiency` directory in our [Megatron-DeepSpeed repo](https://github.com/deepspeedai/Megatron-DeepSpeed) includes our examples of how to compose curriculum learning random-LTD, and apply both of them to GPT-3 and BERT pretraining. The changes needed are the same as described in previous two sections, since DeepSpeed Data Efficiency already handles the complexity when composing the two techniques. However, one thing to note is that since both random-LTD and some of the curriculum learning metrics will change the sequence length, it could require some extra code to calculate the effective sequence length at each step. We provide an example implementation of this change in `megatron/training.py` function `train` where we calculate the `actual_seq_length`. #### 3.2 GPT-2 finetuning -The `data_efficiency/gpt_finetuning` directory in our [DeepSpeedExamples repo](https://github.com/microsoft/DeepSpeedExamples) includes our examples of how to compose curriculum learning random-LTD for GPT-2 finetuning. `data_efficiency/gpt_finetuning/finetune/ds_finetune_gpt2_run.sh` is the example finetuning script. +The `data_efficiency/gpt_finetuning` directory in our [DeepSpeedExamples repo](https://github.com/deepspeedai/DeepSpeedExamples) includes our examples of how to compose curriculum learning random-LTD for GPT-2 finetuning. `data_efficiency/gpt_finetuning/finetune/ds_finetune_gpt2_run.sh` is the example finetuning script. diff --git a/docs/_tutorials/deepnvme.md b/docs/_tutorials/deepnvme.md new file mode 100644 index 000000000000..a6d4545815dc --- /dev/null +++ b/docs/_tutorials/deepnvme.md @@ -0,0 +1,297 @@ +--- +title: "DeepNVMe" +tags: training inference IO large-model +--- +This tutorial will show how to use [DeepNVMe](https://github.com/deepspeedai/DeepSpeed/blob/master/blogs/deepspeed-gds/README.md) for data transfers between persistent storage and tensors residing in host or device memory. DeepNVMe improves the performance and efficiency of I/O operations in Deep Learning applications through powerful optimizations built on Non-Volatile Memory Express (NVMe) Solid State Drives (SSDs), Linux Asynchronous I/O (`libaio`), and NVIDIA Magnum IOTM GPUDirect® Storage (GDS). + +## Requirements +Ensure your environment is properly configured to use DeepNVMe. First, you need to install DeepSpeed version >= [0.15.0](https://github.com/deepspeedai/DeepSpeed/releases/tag/v0.15.0). Next, ensure that the DeepNVMe operators are available in the DeepSpeed installation. The `async_io` operator is required for any DeepNVMe functionality, while the `gds` operator is required only for GDS functionality. You can confirm availability of each operator by inspecting the output of `ds_report` to check that compatible status is [OKAY]. Below is a snippet of `ds_report` output confirming the availability of both `async_io` and `gds` operators. + +![deepnvme_ops_report](/assets/images/deepnvme_ops_report.png) + +If `async_io` operator is unavailable, you will need to install the appropriate `libaio` library binaries for your Linux flavor. For example, Ubuntu users will need to run `apt install libaio-dev`. In general, you should carefully inspect `ds_report` output for helpful tips such as the following: + +```bash +[WARNING] async_io requires the dev libaio .so object and headers but these were not found. +[WARNING] async_io: please install the libaio-dev package with apt +[WARNING] If libaio is already installed (perhaps from source), try setting the CFLAGS and LDFLAGS environment variables to where it can be found. +``` + +To enable `gds` operator, you will need to install NVIDIA GDS by consulting the appropriate guide for [bare-metal systems](https://docs.nvidia.com/gpudirect-storage/troubleshooting-guide/index.html) or Azure VMs (coming soon). + + +## Creating DeepNVMe Handles +DeepNVMe functionality can be accessed through two abstractions: `aio_handle` and `gds_handle`. The `aio_handle` is usable on both host and device tensors. while `gds_handle` works only on CUDA tensors, but is more efficient. The first step to use DeepNVMe is to create a desired handle. `aio_handle` requires `async_io` operator, while `gds_handle` requires both `async_io` and `gds` operators. The following snippets illustrate `aio_handle` and `gds_handle` creation respectively. + +```python +### Create aio_handle +from deepspeed.ops.op_builder import AsyncIOBuilder +aio_handle = AsyncIOBuilder().load().aio_handle() +``` + +```python +### Create gds_handle +from deepspeed.ops.op_builder import GDSBuilder +gds_handle = GDSBuilder().load().gds_handle() +``` + +For simplicity, the above examples illustrate handle creation using default parameters. We expect that handles created with default parameters to provide good performance in most environments. However, you can see [below](#advanced-handle-creation) for advanced handle creation. + +## Using DeepNVMe Handles +`aio_handle` and `gds_handle` provide identical APIs for storing tensors to files or loading tensors from files. A common feature of these APIs is that they take a tensor and a file path as arguments for the desired I/O operation. For best performance, pinned device or host tensors should be used for I/O operations (see [here](#pinned-tensors) for details). For brevity, this tutorial will use `aio_handle` for illustration, but keep in mind that `gds_handle` works similarly. + +You can see the available APIs in a Python shell via tab completion on an `aio_handle` object . This is illustrated using tab completion of `h.`. + +```bash +>python +Python 3.10.12 (main, Jul 29 2024, 16:56:48) [GCC 11.4.0] on linux +Type "help", "copyright", "credits" or "license" for more information. +>>> from deepspeed.ops.op_builder import AsyncIOBuilder +>>> h = AsyncIOBuilder().load().aio_handle() +>>> h. +h.async_pread( h.free_cpu_locked_tensor( h.get_overlap_events( h.get_single_submit( h.new_cpu_locked_tensor( h.pwrite( h.sync_pread( h.wait( +h.async_pwrite( h.get_block_size( h.get_queue_depth( h.get_intra_op_parallelism( h.pread( h.read( h.sync_pwrite( h.write( +``` +The APIs of interest for performing I/O operations are those named with `pread` and `pwrite` substrings. For brevity, we will focus on the file write APIs, namely `sync_pwrite`, `async_pwrite`, and `pwrite`. We will discuss only `sync_pwrite` and `async_pwrite` below because they are specializations of `pwrite`. + +### Blocking File Write +`sync_pwrite` provides the standard blocking semantics of Python file write. The example below illustrates using `sync_pwrite` to store a 1GB CUDA tensor to a local NVMe file. + +```bash +>>> import os +>>> os.path.isfile('/local_nvme/test_1GB.pt') +False +>>> import torch +>>> t=torch.empty(1024**3, dtype=torch.uint8).cuda() +>>> from deepspeed.ops.op_builder import AsyncIOBuilder +>>> h = AsyncIOBuilder().load().aio_handle() +>>> h.sync_pwrite(t,'/local_nvme/test_1GB.pt') +>>> os.path.isfile('/local_nvme/test_1GB.pt') +True +>>> os.path.getsize('/local_nvme/test_1GB.pt') +1073741824 + +``` + +### Non-Blocking File Write +An important DeepNVMe optimization is the non-blocking I/O semantics which enables Python threads to overlap computations with I/O operations. `async_pwrite` provides the non-blocking semantics for file writes. The Python thread can later use `wait()` to synchronize with the I/O operation. `async_write` can also be used to submit multiple back-to-back non-blocking I/O operations, of which can then be later blocked on using a single `wait()`. The example below illustrates using `async_pwrite` to store a 1GB CUDA tensor to a local NVMe file. + +```bash +>>> import os +>>> os.path.isfile('/local_nvme/test_1GB.pt') +False +>>> import torch +>>> t=torch.empty(1024**3, dtype=torch.uint8).cuda() +>>> from deepspeed.ops.op_builder import AsyncIOBuilder +>>> h = AsyncIOBuilder().load().aio_handle() +>>> h.async_pwrite(t,'/local_nvme/test_1GB.pt') +>>> h.wait() +1 +>>> os.path.isfile('/local_nvme/test_1GB.pt') +True +>>> os.path.getsize('/local_nvme/test_1GB.pt') +1073741824 +``` + +Warning for non-blocking I/O operations: To avoid data races and corruptions, `.wait()` must be carefully used to serialize the writing of source tensors, and the reading of destination tensors. For example, the following update of `t` during a non-blocking file write is unsafe and could corrupt `/local_nvme/test_1GB.pt`. + +```bash +>>> t=torch.empty(1024**3, dtype=torch.uint8).cuda() +>>> from deepspeed.ops.op_builder import AsyncIOBuilder +>>> h = AsyncIOBuilder().load().aio_handle() +>>> h.async_pwrite(t,'/local_nvme/test_1GB.pt') +>>> t += 1 # <--- Data race; avoid by preceding with `h.wait()` +``` + +Similar safety problems apply to reading the destination tensor of a non-blocking file read without `.wait()` synchronization. + + +### Parallel File Write +An important DeepNVMe optimization is the ability to parallelize individual I/O operations. This optimization is enabled by specifying the desired parallelism degree when constructing a DeepNVMe handle. Subsequent I/O operations with that handle are automatically parallelized over the requested number of host or device threads, as appropriate. I/O parallelism is composable with either the blocking or non-blocking I/O APIs. The example below illustrates 4-way parallelism of a file write using `async_pwrite`. Note the use of `intra_op_parallelism` argument to specify the desired parallelism degree in handle creation. + +```bash +>>> import os +>>> os.path.isfile('/local_nvme/test_1GB.pt') +False +>>> import torch +>>> t=torch.empty(1024**3, dtype=torch.uint8).cuda() +>>> from deepspeed.ops.op_builder import AsyncIOBuilder +>>> h = AsyncIOBuilder().load().aio_handle(intra_op_parallelism=4) +>>> h.async_pwrite(t,'/local_nvme/test_1GB.pt') +>>> h.wait() +1 +>>> os.path.isfile('/local_nvme/test_1GB.pt') +True +>>> os.path.getsize('/local_nvme/test_1GB.pt') +1073741824 +``` + +### Pinned Tensors +A key part of DeepNVMe optimizations is using direct memory access (DMA) for I/O operations, which requires that the host or device tensor be pinned. To pin host tensors, you can use mechanisms provided by [Pytorch](https://pytorch.org/docs/stable/generated/torch.Tensor.pin_memory.html) or [DeepSpeed Accelerators](/tutorials/accelerator-abstraction-interface/#tensor-operations). The following example illustrates writing a pinned CPU tensor to a local NVMe file. + +```bash +>>> import os +>>> os.path.isfile('/local_nvme/test_1GB.pt') +False +>>> import torch +>>> t=torch.empty(1024**3, dtype=torch.uint8).pin_memory() +>>> from deepspeed.ops.op_builder import AsyncIOBuilder +>>> h = AsyncIOBuilder().load().aio_handle() +>>> h.async_pwrite(t,'/local_nvme/test_1GB.pt') +>>> h.wait() +1 +>>> os.path.isfile('/local_nvme/test_1GB.pt') +True +>>> os.path.getsize('/local_nvme/test_1GB.pt') +1073741824 +``` + +On the other hand,`gds_handle` provides `new_pinned_device_tensor()` and `pin_device_tensor()` functions for pinning CUDA tensors. The following example illustrates writing a pinned CUDA tensor to a local NVMe file. + +```bash +>>> import os +>>> os.path.isfile('/local_nvme/test_1GB.pt') +False +>>> import torch +>>> t=torch.empty(1024**3, dtype=torch.uint8).cuda() +>>> from deepspeed.ops.op_builder import GDSBuilder +>>> h = GDSBuilder().load().gds_handle() +>>> h.pin_device_tensor(t) +>>> h.async_pwrite(t,'/local_nvme/test_1GB.pt') +>>> h.wait() +1 +>>> os.path.isfile('/local_nvme/test_1GB.pt') +True +>>> os.path.getsize('/local_nvme/test_1GB.pt') +1073741824 +>>> h.unpin_device_tensor(t) +``` + + +## Putting it together +We hope that the above material helps you to get started with DeepNVMe. You can also use the following links to see DeepNVMe usage in real-world Deep Learning applications. + +1. [Parameter swapper](https://github.com/deepspeedai/DeepSpeed/blob/9b7fc5452471392b0f58844219fcfdd14a9cdc77/deepspeed/runtime/swap_tensor/partitioned_param_swapper.py#L111-L117) in [ZeRO-Inference](https://github.com/deepspeedai/DeepSpeedExamples/blob/master/inference/huggingface/zero_inference/README.md) and [ZeRO-Infinity](https://www.microsoft.com/en-us/research/blog/zero-infinity-and-deepspeed-unlocking-unprecedented-model-scale-for-deep-learning-training/). +2. [Optimizer swapper](https://github.com/deepspeedai/DeepSpeed/blob/9b7fc5452471392b0f58844219fcfdd14a9cdc77/deepspeed/runtime/swap_tensor/partitioned_optimizer_swapper.py#L36-L38) in [ZeRO-Infinity](https://www.microsoft.com/en-us/research/blog/zero-infinity-and-deepspeed-unlocking-unprecedented-model-scale-for-deep-learning-training/). +3. [Gradient swapper](https://github.com/deepspeedai/DeepSpeed/blob/9b7fc5452471392b0f58844219fcfdd14a9cdc77/deepspeed/runtime/swap_tensor/partitioned_optimizer_swapper.py#L41-L43) in [ZeRO-Infinity](https://www.microsoft.com/en-us/research/blog/zero-infinity-and-deepspeed-unlocking-unprecedented-model-scale-for-deep-learning-training/). +4. Simple file read and write [operations](https://github.com/deepspeedai/DeepSpeedExamples/blob/master/deepnvme/file_access/README.md). + + + + +## Acknowledgements +This tutorial has been significantly improved by feedback from [Guanhua Wang](https://github.com/GuanhuaWang), [Masahiro Tanaka](https://github.com/tohtana), and [Stas Bekman](https://github.com/stas00). + +## Appendix + +### Advanced Handle Creation +Achieving peak I/O performance with DeepNVMe requires careful configuration of handle creation. In particular, the parameters of `aio_handle` and `gds_handle` constructors are performance-critical because they determine how efficiently DeepNVMe interacts with the underlying storage subsystem (i.e., `libaio`, GDS, PCIe, and SSD). For convenience we make it possible to create handles using default parameter values which will provide decent performance in most scenarios. However, squeezing out every available performance in your environment will likely require tuning the constructor parameters, namely `block_size`, `queue_depth`, `single_submit`, `overlap_events`, and `intra_op_parallelism`. The `aio_handle` constructor parameters and default values are illustrated below: +```bash +>>> from deepspeed.ops.op_builder import AsyncIOBuilder +>>> help(AsyncIOBuilder().load().aio_handle()) +Help on aio_handle in module async_io object: + +class aio_handle(pybind11_builtins.pybind11_object) + | Method resolution order: + | aio_handle + | pybind11_builtins.pybind11_object + | builtins.object + | + | Methods defined here: + | + | __init__(...) + | __init__(self: async_io.aio_handle, block_size: int = 1048576, queue_depth: int = 128, single_submit: bool = False, overlap_events: bool = False, intra_op_parallelism: int = 1) -> None + | + | AIO handle constructor +``` + +### Performance Tuning +As discussed [earlier](#advanced-handle-creation), achieving peak DeepNVMe performance for a target workload or environment requires using optimally configured `aio_handle` or `gds_handle` handles. For configuration convenience, we provide a utility called `ds_nvme_tune` to automate the discovery of optimal DeepNVMe configurations. `ds_nvme_tune` automatically explores a user-specified or default configuration space and recommends the option that provides the best read and write performance. Below is an example usage of `ds_nvme_tune` to tune `aio_handle` data transfers between GPU memory and a local NVVMe SSD mounted on `/local_nvme`. This example used the default configuration space of `ds_nvme_tune` for tuning. + +```bash +$ ds_nvme_tune --nvme_dir /local_nvme --gpu +Running DeepNVMe performance tuning on ['/local_nvme/'] +Best performance (GB/sec): read = 3.69, write = 3.18 +{ + "aio": { + "single_submit": "false", + "overlap_events": "true", + "intra_op_parallelism": 8, + "queue_depth": 32, + "block_size": 1048576 + } +} +``` +The above tuning was executed on a Lambda workstation equipped with two NVIDIA A6000-48GB GPUs, 252GB of DRAM, and a [CS3040 NVMe 2TB SDD](https://www.pny.com/CS3040-M2-NVMe-SSD?sku=M280CS3040-2TB-RB) with peak read and write speeds of 5.6 GB/s and 4.3 GB/s respectively. The tuning required about four and half minutes. Based on the results, one can expect to achieve read and write transfer speeds of 3.69 GB/sec and 3.18 GB/sec respectively by using an `aio_handle` configured as below. + +```python +>>> from deepspeed.ops.op_builder import AsyncIOBuilder +>>> h = AsyncIOBuilder().load().aio_handle(block_size=1048576, + queue_depth=32, + single_submit=False, + overlap_events=True, + intra_op_parallelism=8) +``` + + +The full command line options of `ds_nvme_tune` can be obtained via the normal `-h` or `--help`. +```bash +usage: ds_nvme_tune [-h] --nvme_dir NVME_DIR [NVME_DIR ...] [--sweep_config SWEEP_CONFIG] [--no_read] [--no_write] [--io_size IO_SIZE] [--gpu] [--gds] [--flush_page_cache] [--log_dir LOG_DIR] [--loops LOOPS] [--verbose] + +options: + -h, --help show this help message and exit + --nvme_dir NVME_DIR [NVME_DIR ...] + Directory in which to perform I/O tests. A writeable directory on a NVMe device. + --sweep_config SWEEP_CONFIG + Performance sweep configuration json file. + --no_read Disable read performance measurements. + --no_write Disable write performance measurements. + --io_size IO_SIZE Number of I/O bytes to read/write for performance measurements. + --gpu Test tensor transfers between GPU device and NVME device. + --gds Run the sweep over NVIDIA GPUDirectStorage operator + --flush_page_cache Page cache will not be flushed and reported read speeds may be higher than actual ***Requires sudo access***. + --log_dir LOG_DIR Output directory for performance log files. Default is ./_aio_bench_logs + --loops LOOPS Count of operation repetitions + --verbose Print debugging information. +``` + +### DeepNVMe APIs +For convenience, we provide listing and brief descriptions of the DeepNVMe APIs. + +#### General I/O APIs +The following functions are used for I/O operations with both `aio_handle` and `gds_handle`. + +Function | Description | +|---|---| +async_pread | Non-blocking file read into tensor | +sync_pread | Blocking file read into tensor | +pread | File read with blocking and non-blocking options | +async_pwrite | Non-blocking file write from tensor | +sync_pwrite | Blocking file write from tensor | +pwrite | File write with blocking and non-blocking options | +wait | Wait for non-blocking I/O operations to complete | + +#### GDS-specific APIs +The following functions are available only for `gds_handle` + +Function | Description +|---|---| +new_pinned_device_tensor | Allocate and pin a device tensor | +free_pinned_device_tensor | Unpin and free a device tensor | +pin_device_tensor | Pin a device tensor | +unpin_device_tensor | unpin a device tensor | + + +#### Handle Settings APIs +The following APIs can be used to probe handle configuration. + +Function | Description +|---|---| +get_queue_depth | Return queue depth setting | +get_single_submit | Return whether single_submit is enabled | +get_intra_op_parallelism | Return I/O parallelism degree | +get_block_size | Return I/O block size setting | +get_overlap_events | Return whether overlap_event is enabled | diff --git a/docs/_tutorials/domino.md b/docs/_tutorials/domino.md new file mode 100644 index 000000000000..e1cb704fc229 --- /dev/null +++ b/docs/_tutorials/domino.md @@ -0,0 +1,6 @@ +--- +title: "Domino" +tags: training +--- + +Domino achieves near-complete communication hiding behind computation for tensor parallel training. Please find our [Domino-tutorial](https://github.com/deepspeedai/DeepSpeedExamples/blob/master/training/DeepSpeed-Domino/README.md) in DeepSpeedExample repo. diff --git a/docs/_tutorials/ds-sequence.md b/docs/_tutorials/ds-sequence.md index 815b99d6de35..41a76b784782 100755 --- a/docs/_tutorials/ds-sequence.md +++ b/docs/_tutorials/ds-sequence.md @@ -3,7 +3,7 @@ title: "Getting Started with DeepSpeed-Ulysses for Training Transformer Models w tags: training --- -In this tutorial we describe how to enable DeepSpeed-Ulysses. DeepSpeed-Ulysses is a simple but highly communication and memory efficient mechanism sequence parallelism approach for training of large transformer models with massive sequence lengths. It partitions input tensors along the sequence dimension and uses a communication-efficient all-2-all collective for distributed attention computations. Additionally, DeepSpeed-Ulysses incorporates advanced modeling and system optimizations, such as Flash attention, sparse attention, and ZeRO optimizer, to optimize both computational efficiency and memory usage. Training with DeepSpeed sequence parallelism allows both model size and sequence length to scale near indefinitely unbounded by single GPU memory limitation and at a high fraction of peak compute performance. Currently, DeepSpeed-Ulysses can handle sequences up to 1 million in length (10 times the size of a complete Harry Potter book!) on 64 A100 GPUs. Please read our [DeepSpeed-Ulysses blog](https://github.com/microsoft/DeepSpeed/tree/master/blogs/deepspeed-ulysses) to learn more! +In this tutorial we describe how to enable DeepSpeed-Ulysses. DeepSpeed-Ulysses is a simple but highly communication and memory efficient mechanism sequence parallelism approach for training of large transformer models with massive sequence lengths. It partitions input tensors along the sequence dimension and uses a communication-efficient all-2-all collective for distributed attention computations. Additionally, DeepSpeed-Ulysses incorporates advanced modeling and system optimizations, such as Flash attention, sparse attention, and ZeRO optimizer, to optimize both computational efficiency and memory usage. Training with DeepSpeed sequence parallelism allows both model size and sequence length to scale near indefinitely unbounded by single GPU memory limitation and at a high fraction of peak compute performance. Currently, DeepSpeed-Ulysses can handle sequences up to 1 million in length (10 times the size of a complete Harry Potter book!) on 64 A100 GPUs. Please read our [DeepSpeed-Ulysses blog](https://github.com/deepspeedai/DeepSpeed/tree/master/blogs/deepspeed-ulysses) to learn more! ## 1. Installation @@ -12,10 +12,10 @@ You will need to install DeepSpeed v0.10.2 or higher to use the DeepSpeed Sequen ## 2. How to use DeepSpeed-Ulysses in your application? -Integrating DS-Seq into your training code is easy, and in this section we describe how to integrate DeepSpeed-Ulysses through our [Megatron-DeepSpeed](https://github.com/microsoft/Megatron-DeepSpeed) code repo. +Integrating DS-Seq into your training code is easy, and in this section we describe how to integrate DeepSpeed-Ulysses through our [Megatron-DeepSpeed](https://github.com/deepspeedai/Megatron-DeepSpeed) code repo. -* **Replace attention module**: First, you need to update your attention module with DeepSpeed-Ulysses DistributedAttention. Here, we use the attention from [Megatron-DeepSpeed ](https://github.com/microsoft/Megatron-DeepSpeed/blob/main/megatron/model/transformer.py) which is the causal attention used in GPT-3 like model training. Rewrite the attention block: +* **Replace attention module**: First, you need to update your attention module with DeepSpeed-Ulysses DistributedAttention. Here, we use the attention from [Megatron-DeepSpeed ](https://github.com/deepspeedai/Megatron-DeepSpeed/blob/main/megatron/model/transformer.py) which is the causal attention used in GPT-3 like model training. Rewrite the attention block: ```python def __init__(): @@ -49,7 +49,7 @@ def forward(): ``` -* **Add sequence parallel communication group**: Note that DistributedAttention takes `local_attn` and `sequence_parallel_group` as the parameters, where local_attn can be your original attention block. You also need to build the sequence parallel nication group and pass that the DistributedAttention. One way to do this is to build the sequence parallel group at the model initialization stage. +* **Add sequence parallel communication group**: Note that DistributedAttention takes `local_attn` and `sequence_parallel_group` as the parameters, where local_attn can be your original attention block. You also need to build the sequence parallel communication group and pass that the DistributedAttention. One way to do this is to build the sequence parallel group at the model initialization stage. ```python @@ -94,7 +94,7 @@ DeepSpeed's sequence parallelism can be combined with different types of attenti `FlashAttention`: the implementation from [FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness](https://arxiv.org/abs/2205.14135). Enabled by `--use-flash-attn`. -`FlashAttention + Triton`: a of FlashAttention in Triton (tested with triton==2.0.0.dev20221202). Enabled by `--use-flash-attn-triton`. +`FlashAttention + Triton`: FlashAttention in Triton (tested with triton==2.0.0.dev20221202). Enabled by `--use-flash-attn-triton`. For the best performance, we recommend using FlashAttention + Triton. Below are the installation steps. Note that FlashAttention is compatible only with NVIDIA Turing, Ampere, Ada, or Hopper GPUs. @@ -111,7 +111,7 @@ pip install . cd ${WORK_DIR} git clone -b v1.0.4 https://github.com/HazyResearch/flash-attention cd flash-attention -python setup.py install +python -m pip install . ``` -You may also want to ensure your model configuration is compliant with FlashAttention's requirements. For instance, to achieve optimal performance, the head size should be divisible by 8. Refer to the document of FlashAttention for more details. +You may also want to ensure your model configuration is compliant with FlashAttention's requirements. For instance, to achieve optimal performance, the head size should be divisible by 8. Refer to the FlashAttention documentation for more details. diff --git a/docs/_tutorials/flops-profiler.md b/docs/_tutorials/flops-profiler.md index 24efc238615a..d4a7496405b9 100644 --- a/docs/_tutorials/flops-profiler.md +++ b/docs/_tutorials/flops-profiler.md @@ -184,7 +184,7 @@ When using DeepSpeed for model training, the profiler can be configured in the d #### Example: Megatron-LM -For information on running Megatron-LM with DeepSpeed, please refer to our tutorial [Megatron-LM](https://github.com/microsoft/DeepSpeedExamples/tree/master/megatron/Megatron-LM). +For information on running Megatron-LM with DeepSpeed, please refer to our tutorial [Megatron-LM](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/megatron/Megatron-LM). An example output of 12-layer Megatron-LM model (`hidden_size = 8192, num_attention_heads = 32, batch_size = 1024, seq_length = 1024`) is shown below. diff --git a/docs/_tutorials/gan.md b/docs/_tutorials/gan.md index 09572a439eb0..db3734fb3b96 100755 --- a/docs/_tutorials/gan.md +++ b/docs/_tutorials/gan.md @@ -16,7 +16,7 @@ Please go through the [original tutorial](https://pytorch.org/tutorials/beginner ## Enabling DeepSpeed -The codes may be obtained [here](https://github.com/microsoft/DeepSpeedExamples/tree/master/gan). +The codes may be obtained [here](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/gan). ### Argument Parsing diff --git a/docs/_tutorials/getting-started.md b/docs/_tutorials/getting-started.md index 8d2bbf2d9964..2c6e27d1319d 100644 --- a/docs/_tutorials/getting-started.md +++ b/docs/_tutorials/getting-started.md @@ -8,9 +8,10 @@ tags: getting-started ## Installation * Installing is as simple as `pip install deepspeed`, [see more details](/tutorials/advanced-install/). -* To get started with DeepSpeed on AzureML, please see the [AzureML Examples GitHub](https://github.com/Azure/azureml-examples/tree/main/python-sdk/workflows/train/deepspeed) -* DeepSpeed has direct integrations with [HuggingFace Transformers](https://github.com/huggingface/transformers) and [PyTorch Lightning](https://github.com/PyTorchLightning/pytorch-lightning). HuggingFace Transformers users can now easily accelerate their models with DeepSpeed through a simple ``--deepspeed`` flag + config file [See more details](https://huggingface.co/docs/transformers/main_classes/deepspeed). PyTorch Lightning provides easy access to DeepSpeed through the Lightning Trainer [See more details](https://pytorch-lightning.readthedocs.io/en/stable/advanced/multi_gpu.html?highlight=deepspeed#deepspeed). +* To get started with DeepSpeed on AzureML, please see the [AzureML Examples GitHub](https://github.com/Azure/azureml-examples/tree/main/cli/jobs/deepspeed) +* DeepSpeed has direct integrations with [HuggingFace Transformers](https://github.com/huggingface/transformers) and [PyTorch Lightning](https://github.com/PyTorchLightning/pytorch-lightning). HuggingFace Transformers users can now easily accelerate their models with DeepSpeed through a simple ``--deepspeed`` flag + config file [See more details](https://huggingface.co/docs/transformers/deepspeed). PyTorch Lightning provides easy access to DeepSpeed through the Lightning Trainer [See more details](https://pytorch-lightning.readthedocs.io/en/stable/advanced/multi_gpu.html?highlight=deepspeed#deepspeed). * DeepSpeed on AMD can be used via our [ROCm images](https://hub.docker.com/r/deepspeed/rocm501/tags), e.g., `docker pull deepspeed/rocm501:ds060_pytorch110`. +* DeepSpeed also supports Intel Xeon CPU, Intel Data Center Max Series XPU, Intel Gaudi HPU, Huawei Ascend NPU etc, please refer to the [accelerator setup guide](/tutorials/accelerator-setup-guide/) @@ -226,6 +227,36 @@ deepspeed --include="worker-2:0,1" \ \ --deepspeed --deepspeed_config ds_config.json ``` +### Launching without passwordless SSH + +DeepSpeed now supports launching training jobs without the need for passwordless SSH. This mode is +particularly useful in cloud environments such as Kubernetes, where flexible container orchestration +is possible, and setting up a leader-worker architecture with passwordless SSH adds unnecessary +complexity. + +To use this mode, you need to run the DeepSpeed command separately on all nodes. The command should +be structured as follows: + +```bash +deepspeed --hostfile=myhostfile --no_ssh --node_rank= \ + --master_addr= --master_port= \ + \ + --deepspeed --deepspeed_config ds_config.json +``` + +- `--hostfile=myhostfile`: Specifies the hostfile that contains information about the nodes and GPUs. +- `--no_ssh`: Enables the no-SSH mode. +- `--node_rank=`: Specifies the rank of the node. This should be a unique integer from 0 to n - 1. +- `--master_addr=`: The address of the leader node (rank 0). +- `--master_port=`: The port of the leader node. + +In this setup, the hostnames in the hostfile do not need to be reachable via passwordless SSH. +However, the hostfile is still required for the launcher to collect information about the environment, +such as the number of nodes and the number of GPUs per node. + +Each node must be launched with a unique `node_rank`, and all nodes must be provided with the address +and port of the leader node (rank 0). This mode causes the launcher to act similarly to the `torchrun` +launcher, as described in the [PyTorch documentation](https://pytorch.org/docs/stable/elastic/run.html). ## Multi-Node Environment Variables @@ -285,10 +316,14 @@ local machine to discover the number of slots available. The `--include` and `--exclude` arguments work as normal, but the user should specify 'localhost' as the hostname. -Also note that `CUDA_VISIBLE_DEVICES` can't be used with DeepSpeed to control -which devices should be used. For example, to use only gpu1 of the current -node, do: +Also note that `CUDA_VISIBLE_DEVICES` can be used with `deepspeed` to control +which devices should be used on a single node. So either of these would work +to launch just on devices 0 and 1 of the current node: + +```bash +deepspeed --include localhost:0,1 ... +``` ```bash -deepspeed --include localhost:1 ... +CUDA_VISIBLE_DEVICES=0,1 deepspeed ... ``` diff --git a/docs/_tutorials/inference-tutorial.md b/docs/_tutorials/inference-tutorial.md index 6330198053e7..ddf287f24b96 100644 --- a/docs/_tutorials/inference-tutorial.md +++ b/docs/_tutorials/inference-tutorial.md @@ -3,15 +3,17 @@ title: "Getting Started with DeepSpeed for Inferencing Transformer based Models" tags: inference --- +>**DeepSpeed-Inference v2 is here and it's called DeepSpeed-FastGen! For the best performance, latest features, and newest model support please see our [DeepSpeed-FastGen release blog](https://github.com/deepspeedai/DeepSpeed/tree/master/blogs/deepspeed-fastgen)!** + DeepSpeed-Inference introduces several features to efficiently serve transformer-based PyTorch models. It supports model parallelism (MP) to fit large models that would otherwise not fit in GPU memory. Even for smaller models, MP can be used to reduce latency for inference. To further reduce latency and cost, we introduce inference-customized kernels. Finally, we propose a novel approach to quantize models, called MoQ, to both shrink the model and reduce the inference cost at production. For more details on the inference related optimizations in DeepSpeed, please refer to our [blog post](https://www.microsoft.com/en-us/research/blog/deepspeed-accelerating-large-scale-model-inference-and-training-via-system-optimizations-and-compression/). -DeepSpeed provides a seamless inference mode for compatible transformer based models trained using DeepSpeed, Megatron, and HuggingFace, meaning that we don’t require any change on the modeling side such as exporting the model or creating a different checkpoint from your trained checkpoints. To run inference on multi-GPU for compatible models, provide the model parallelism degree and the checkpoint information or the model which is already loaded from a checkpoint, and DeepSpeed will do the rest. It will automatically partition the model as necessary, inject compatible high performance kernels into your model and manage the inter-gpu communication. For list of compatible models please see [here](https://github.com/microsoft/DeepSpeed/blob/master/deepspeed/module_inject/replace_policy.py). +DeepSpeed provides a seamless inference mode for compatible transformer based models trained using DeepSpeed, Megatron, and HuggingFace, meaning that we don’t require any change on the modeling side such as exporting the model or creating a different checkpoint from your trained checkpoints. To run inference on multi-GPU for compatible models, provide the model parallelism degree and the checkpoint information or the model which is already loaded from a checkpoint, and DeepSpeed will do the rest. It will automatically partition the model as necessary, inject compatible high performance kernels into your model and manage the inter-gpu communication. For list of compatible models please see [here](https://github.com/deepspeedai/DeepSpeed/blob/master/deepspeed/module_inject/replace_policy.py). ## Initializing for Inference For inference with DeepSpeed, use `init_inference` API to load the model for inference. Here, you can specify the MP degree, and if the model has not been loaded with the appropriate checkpoint, you can also provide the checkpoint description using a `json` file or the checkpoint path. -To inject the high-performance kernels, you need to set the `replace_with_kernel_inject` to True for the compatible models. For models not supported by DeepSpeed, the users can submit a PR that defines a new policy in [replace_policy class](https://github.com/microsoft/DeepSpeed/blob/master/deepspeed/module_inject/replace_policy.py) that specifies the different parameters of a Transformer layer, such as attention and feed-forward parts. The policy classes in DeepSpeed create a mapping between the parameters of the original user-supplied layer implementation with DeepSpeed's inference-optimized Transformer layer. +To inject the high-performance kernels, you need to set the `replace_with_kernel_inject` to True for the compatible models. For models not supported by DeepSpeed, the users can submit a PR that defines a new policy in [replace_policy class](https://github.com/deepspeedai/DeepSpeed/blob/master/deepspeed/module_inject/replace_policy.py) that specifies the different parameters of a Transformer layer, such as attention and feed-forward parts. The policy classes in DeepSpeed create a mapping between the parameters of the original user-supplied layer implementation with DeepSpeed's inference-optimized Transformer layer. ```python # create the model @@ -19,18 +21,22 @@ if args.pre_load_checkpoint: model = model_class.from_pretrained(args.model_name_or_path) else: model = model_class() + +# create the tokenizer +tokenizer = model_class.from_pretrained(args.model_name_or_path) ... import deepspeed # Initialize the DeepSpeed-Inference engine ds_engine = deepspeed.init_inference(model, - mp_size=2, - dtype=torch.half, - checkpoint=None if args.pre_load_checkpoint else args.checkpoint_json, - replace_with_kernel_inject=True) + tensor_parallel={"tp_size": world_size}, + dtype=torch.half, + checkpoint=None if args.pre_load_checkpoint else args.checkpoint_json, + replace_with_kernel_inject=True) model = ds_engine.module -output = model('Input String') +pipe = pipeline("text-generation", model=model, tokenizer=tokenizer) +output = pipe('Input String') ``` To run inference with only model-parallelism for the models that we don't support kernels, you can pass an injection policy that shows the two specific linear layers on a Transformer Encoder/Decoder layer: 1) the attention output GeMM and 2) layer output GeMM. We need these part of the layer to add the required all-reduce communication between GPUs to merge the partial results across model-parallel ranks. Below, we bring an example that shows how you can use deepspeed-inference with a T5 model: @@ -47,7 +53,7 @@ pipe = pipeline("text2text-generation", model="google/t5-v1_1-small", device=loc # Initialize the DeepSpeed-Inference engine pipe.model = deepspeed.init_inference( pipe.model, - mp_size=world_size, + tensor_parallel={"tp_size": world_size}, dtype=torch.float, injection_policy={T5Block: ('SelfAttention.o', 'EncDecAttention.o', 'DenseReluDense.wo')} ) @@ -108,7 +114,7 @@ generator = pipeline('text-generation', model='EleutherAI/gpt-neo-2.7B', generator.model = deepspeed.init_inference(generator.model, - mp_size=world_size, + tensor_parallel={"tp_size": world_size}, dtype=torch.float, replace_with_kernel_inject=True) diff --git a/docs/_tutorials/large-models-w-deepspeed.md b/docs/_tutorials/large-models-w-deepspeed.md index 8e09cccee1fe..3d0bae0144b4 100644 --- a/docs/_tutorials/large-models-w-deepspeed.md +++ b/docs/_tutorials/large-models-w-deepspeed.md @@ -28,7 +28,7 @@ Since, ZeRO is a replacement to data parallelism, it offers a seamless integrati ## Deciding which technology to use -**3D Parallelism for GPT-2/GPT-3 like models**: If you are attempting to train a model whose architecture resembles very closely with GPT-2 or GPT-3, then we have already done the hard work of porting 3D parallelism to a GPT-2/GPT-3 architecture-based model and have created a training pipeline that you can use to efficiently train models with hundreds of billion or even trillions of parameters. Both Megatron-Turing NLG 530B and Big Science use a variation of this code base to scale the model training. You can find the code and tutorial to get started in the [DeepSpeed-Megatron GPT-3](https://github.com/microsoft/megatron-deepspeed) repo. For more information on 3D parallelism please checkout the resources below: +**3D Parallelism for GPT-2/GPT-3 like models**: If you are attempting to train a model whose architecture resembles very closely with GPT-2 or GPT-3, then we have already done the hard work of porting 3D parallelism to a GPT-2/GPT-3 architecture-based model and have created a training pipeline that you can use to efficiently train models with hundreds of billion or even trillions of parameters. Both Megatron-Turing NLG 530B and Big Science use a variation of this code base to scale the model training. You can find the code and tutorial to get started in the [DeepSpeed-Megatron GPT-3](https://github.com/deepspeedai/megatron-deepspeed) repo. For more information on 3D parallelism please checkout the resources below: [3D Parallelism Tutorial](https://www.deepspeed.ai/tutorials/pipeline/) A generic tutorial on how to port your model to use DeepSpeed 3D parallelism diff --git a/docs/_tutorials/megatron.md b/docs/_tutorials/megatron.md index 5242c8184db8..286a9a36a926 100644 --- a/docs/_tutorials/megatron.md +++ b/docs/_tutorials/megatron.md @@ -19,7 +19,7 @@ reduction_** from using DeepSpeed. ## Training GPT-2 with the Original Megatron-LM -We've copied the original model code from [Megatron-LM](https://github.com/NVIDIA/Megatron-LM) into DeepSpeed [Megatron-LM](https://github.com/microsoft/Megatron-DeepSpeed) and made it available as a submodule. To download, execute: +We've copied the original model code from [Megatron-LM](https://github.com/NVIDIA/Megatron-LM) into DeepSpeed [Megatron-LM](https://github.com/deepspeedai/Megatron-DeepSpeed) and made it available as a submodule. To download, execute: ```bash git submodule update --init --recursive ``` diff --git a/docs/_tutorials/mixed_precision_zeropp.md b/docs/_tutorials/mixed_precision_zeropp.md index 12ad3556abde..9429b75bac10 100644 --- a/docs/_tutorials/mixed_precision_zeropp.md +++ b/docs/_tutorials/mixed_precision_zeropp.md @@ -3,7 +3,7 @@ title: "Mixed Precision ZeRO++" tags: training ZeRO communication-efficiency large-model --- -Mixed Precision ZeRO++ (MixZ++) is a set of optimization strategies based on [ZeRO](/tutorials/zero/) and [ZeRO++](/tutorials/zeropp/) to improve the efficiency and reduce memory usage for large model training and inference when users use [Low-Rank Adaptation (LoRA)]([/tutorials/zero/](https://arxiv.org/abs/2106.09685)) training. MixZ++ partitions model parameters across GPUs to reduce footprint and gathers them with quantized communication only when needed similar to its ZeRO and ZeRO++ siblings. Our evaluation indicates MixZ++ increases the training throughput by up to [3.3x](https://github.com/microsoft/DeepSpeed/tree/master/blogs/deepspeed-chat/ds-chat-release-8-31) for the Llama-2-70B model running on 128 V100 GPUs. Read our [DeepSpeed Chat Blog](https://github.com/microsoft/DeepSpeed/tree/master/blogs/deepspeed-chat/ds-chat-release-8-31), [ZeRO++ blog](https://www.microsoft.com/en-us/research/blog/deepspeed-zero-a-leap-in-speed-for-llm-and-chat-model-training-with-4x-less-communication/) and [paper](https://arxiv.org/pdf/2306.10209.pdf) to learn more! +Mixed Precision ZeRO++ (MixZ++) is a set of optimization strategies based on [ZeRO](/tutorials/zero/) and [ZeRO++](/tutorials/zeropp/) to improve the efficiency and reduce memory usage for large model training and inference when users use [Low-Rank Adaptation (LoRA)]([/tutorials/zero/](https://arxiv.org/abs/2106.09685)) training. MixZ++ partitions model parameters across GPUs to reduce footprint and gathers them with quantized communication only when needed similar to its ZeRO and ZeRO++ siblings. Our evaluation indicates MixZ++ increases the training throughput by up to [3.3x](https://github.com/deepspeedai/DeepSpeed/tree/master/blogs/deepspeed-chat/ds-chat-release-8-31) for the Llama-2-70B model running on 128 V100 GPUs. Read our [DeepSpeed Chat Blog](https://github.com/deepspeedai/DeepSpeed/tree/master/blogs/deepspeed-chat/ds-chat-release-8-31), [ZeRO++ blog](https://www.microsoft.com/en-us/research/blog/deepspeed-zero-a-leap-in-speed-for-llm-and-chat-model-training-with-4x-less-communication/) and [paper](https://arxiv.org/pdf/2306.10209.pdf) to learn more! We recommend that you read the tutorials on [Getting Started](/getting-started/), [ZeRO](/tutorials/zero/) and [Megatron-DeepSpeed](/tutorials/megatron/) before stepping through this tutorial. @@ -16,7 +16,7 @@ Collectively, the optimizations bring better scalability and efficiency to LoRA ## Enabling Mixed Precision ZeRO++ (MixZ++) -A ready to go MixZ++ example has been prepared at [MixZ++ example script](https://github.com/microsoft/DeepSpeedExamples/blob/master/applications/DeepSpeed-Chat/training/step3_rlhf_finetuning/training_scripts/llama2/run_llama2_7b_mixz.sh). If you prefer to manually enable MixZ++ in your pipeline, please refer to the instructions below. +A ready to go MixZ++ example has been prepared at [MixZ++ example script](https://github.com/deepspeedai/DeepSpeedExamples/blob/master/applications/DeepSpeed-Chat/training/step3_rlhf_finetuning/training_scripts/llama2/run_llama2_7b_mixz.sh). If you prefer to manually enable MixZ++ in your pipeline, please refer to the instructions below. ### DeepSpeed Configuration Changes An example snippet of deepspeed configurations with all MixZ++ optimization enabled is shown below: diff --git a/docs/_tutorials/mixture-of-experts-inference.md b/docs/_tutorials/mixture-of-experts-inference.md index 882ad7aefd1f..675815dd5d57 100644 --- a/docs/_tutorials/mixture-of-experts-inference.md +++ b/docs/_tutorials/mixture-of-experts-inference.md @@ -54,7 +54,7 @@ output = model('Input String') Here, we show a text-generation example using an MoE model for which we can specify the model-parallel size and number of experts. DeepSpeed inference-engine takes care of creating the different parallelism groups using the tensor-slicing degree, number of experts, and the total number of GPUs used for running the MoE model. Regarding the expert parameters, we first use the expert-parallelism to assign each group of experts to one GPU. If number of GPUs is higher than number of experts, we use expert-slicing to partition each expert vertically/horizontally across the GPUs. -Let's take a look at some of the parameters passed to run our example. Please refer to [DeepSpeed-Example](https://github.com/microsoft/Megatron-DeepSpeed/blob/main/examples_deepspeed/generate_text.sh) for a complete generate-text inference example. +Let's take a look at some of the parameters passed to run our example. Please refer to [DeepSpeed-Example](https://github.com/deepspeedai/Megatron-DeepSpeed/blob/main/examples_deepspeed/generate_text.sh) for a complete generate-text inference example. ```bash diff --git a/docs/_tutorials/mixture-of-experts-nlg.md b/docs/_tutorials/mixture-of-experts-nlg.md index 6fc7022ba1fb..c4fb072dd82d 100755 --- a/docs/_tutorials/mixture-of-experts-nlg.md +++ b/docs/_tutorials/mixture-of-experts-nlg.md @@ -7,7 +7,7 @@ In this tutorial, we introduce how to apply DeepSpeed Mixture of Experts (MoE) t ## 1. Installation -You would need to install DeepSpeed v0.6.0 or higher to use the MoE feature. The MoE for NLG model examples are in the [Megatron-DeepSpeed](https://github.com/microsoft/Megatron-DeepSpeed) repo under the MoE folder. +You would need to install DeepSpeed v0.6.0 or higher to use the MoE feature. The MoE for NLG model examples are in the [Megatron-DeepSpeed](https://github.com/deepspeedai/Megatron-DeepSpeed) repo under the MoE folder. ## 2. Training NLG+MoE models @@ -15,7 +15,7 @@ You would need to install DeepSpeed v0.6.0 or higher to use the MoE feature. The To apply MoE to the GPT-style model, we made several changes in Megatron framework, mostly in `megatron/model/` where we add the MoE layers into the model. ### 2.2. Pre-training the Standard MoE model -We provide example training scripts under [examples_deepspeed/MoE](https://github.com/microsoft/Megatron-DeepSpeed/tree/main/examples_deepspeed/MoE) which we used to perform the experiments in our [Blog]({{ site.press_release_v6 }}). There are a few new hyperparameters for standard MoE model: +We provide example training scripts under [examples_deepspeed/MoE](https://github.com/deepspeedai/Megatron-DeepSpeed/tree/main/examples_deepspeed/MoE) which we used to perform the experiments in our [Blog]({{ site.press_release_v6 }}). There are a few new hyperparameters for standard MoE model: `--num-experts`: the number of experts per MoE layer. In our experiments we set it to 128. Larger number of experts tend to provide better convergence, but it's a diminishing return. @@ -30,7 +30,7 @@ We provide example training scripts under [examples_deepspeed/MoE](https://githu ### 2.3. Pre-training the PR-MoE model -PR-MoE is a new designed MoE models, standing for Pyramid-Residual-MoE, which improves the parameter efficiency up to 3x as compared to standard MoE. Please see our [Blog]({{ site.press_release_v6 }}) for more details. We provide example training scripts under [examples_deepspeed/MoE](https://github.com/microsoft/Megatron-DeepSpeed/tree/main/examples_deepspeed/MoE). There are a few different hyperparameters for PR-MoE model compared to standard MoE: +PR-MoE is a new designed MoE models, standing for Pyramid-Residual-MoE, which improves the parameter efficiency up to 3x as compared to standard MoE. Please see our [Blog]({{ site.press_release_v6 }}) for more details. We provide example training scripts under [examples_deepspeed/MoE](https://github.com/deepspeedai/Megatron-DeepSpeed/tree/main/examples_deepspeed/MoE). There are a few different hyperparameters for PR-MoE model compared to standard MoE: `--num-experts`: Instead of providing a single number, to enable Pyramid-MoE, you need to provide a list, whose length is the same as the number of MoE layers. We suggest to use more experts in the latter stage (close to output) of the model. @@ -67,4 +67,4 @@ MoS, standing for Mixture-of-Students, is a staged distillation-based technique In addition to the new parameters above, we observe that using the teacher PR-MoE during the entire training process may adversely impact the final student model accuracy. In our experiments, we use a staged distillation method by stopping distillation early in the training process (e.g., after 400K steps) and perform optimization only against the standard language modeling loss for the rest of the training. -We provide example training scripts under [examples_deepspeed/MoE](https://github.com/microsoft/Megatron-DeepSpeed/tree/main/examples_deepspeed/MoE). Details of our parameter settings can be found in the example training scripts. The performance results of MoS can be seen from our [blog post](https://www.microsoft.com/en-us/research/blog/deepspeed-powers-8x-larger-moe-model-training-with-high-performance/) and our [paper](https://arxiv.org/abs/2201.05596). +We provide example training scripts under [examples_deepspeed/MoE](https://github.com/deepspeedai/Megatron-DeepSpeed/tree/main/examples_deepspeed/MoE). Details of our parameter settings can be found in the example training scripts. The performance results of MoS can be seen from our [blog post](https://www.microsoft.com/en-us/research/blog/deepspeed-powers-8x-larger-moe-model-training-with-high-performance/) and our [paper](https://arxiv.org/abs/2201.05596). diff --git a/docs/_tutorials/mixture-of-experts.md b/docs/_tutorials/mixture-of-experts.md index e7739a6a5051..d4604b929ff4 100644 --- a/docs/_tutorials/mixture-of-experts.md +++ b/docs/_tutorials/mixture-of-experts.md @@ -13,7 +13,7 @@ For more details on results and further discussion, please see our press release {: .notice--info} As a simple starting point we will show how to apply DeepSpeed MoE to a cifar10 example. Please refer to -our [cifar10 example](https://github.com/microsoft/DeepSpeedExamples/tree/master/cifar) going forward. +our [cifar10 example](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/cifar) going forward. If you are adding MoE to an existing model you can use the snippet below to help guide you: @@ -104,11 +104,11 @@ fc4 = torch.nn.Linear(84, 10) ``` -For a runnable end-to-end example that covers both the standard MoE architecture as well as the PR-MoE model , please look at the [cifar10 example](https://github.com/microsoft/DeepSpeedExamples/tree/master/cifar). In addition, see the advanced usage section of this tutorial that links to a more comprehensive example for NLG models. +For a runnable end-to-end example that covers both the standard MoE architecture as well as the PR-MoE model , please look at the [cifar10 example](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/cifar). In addition, see the advanced usage section of this tutorial that links to a more comprehensive example for NLG models. ### Combining ZeRO-Offload and DeepSpeed MoE for very large models -To use MoE Layers in DeepSpeed, we rely on two parameter groups that are passed to an optimizer. A concrete example to create such groups is available from the [cifar10 example](https://github.com/microsoft/DeepSpeedExamples/tree/master/cifar). +To use MoE Layers in DeepSpeed, we rely on two parameter groups that are passed to an optimizer. A concrete example to create such groups is available from the [cifar10 example](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/cifar). The relevant function that creates these param groups is as follows. @@ -124,7 +124,6 @@ def create_moe_param_groups(model): The above param groups can then be fed to the ZeRO stage-2 optimizer as follows. ```python - net = Net() parameters = create_moe_param_groups(net) @@ -135,7 +134,7 @@ model_engine, optimizer, trainloader, __ = deepspeed.initialize( We are working on automating this functionality in the DeepSpeed ZeRO optimizer so the model training code can be simplified further. -To run the [cifar10 example](https://github.com/microsoft/DeepSpeedExamples/tree/master/cifar) with ZeRO-Offload (stage 2) and MoE, please set the ds_config flags +To run the [cifar10 example](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/cifar) with ZeRO-Offload (stage 2) and MoE, please set the ds_config flags ```json "zero_optimization": { diff --git a/docs/_tutorials/model-compression.md b/docs/_tutorials/model-compression.md index c8713cb1f616..d11eadc3d726 100644 --- a/docs/_tutorials/model-compression.md +++ b/docs/_tutorials/model-compression.md @@ -25,7 +25,7 @@ If the model is very deep, you may consider using this method. It works much bet Layer reduction can be enabled and configured using the DeepSpeed config JSON file ([configuration details](/docs/config-json/#layer-reduction)). Users have the freedom to select any depth by `keep_number_layer` and any subset of the network layers by `teacher_layer`. In addition, users also can choose whether to reinitialize the input/output layers from the given model (teacher model) by `other_module_name`. -To apply layer reduction for task-specific compression, we provide an example on how to do so for BERT fine-tuning. Layer reduction is about resetting the depth of network architecture and reinitialization of weight parameters, which happens before the training process. The example includes the following changes to the client code (`compression/bert/run_glue_no_trainer.py` in [DeepSpeedExamples](https://github.com/microsoft/DeepSpeedExamples)): +To apply layer reduction for task-specific compression, we provide an example on how to do so for BERT fine-tuning. Layer reduction is about resetting the depth of network architecture and reinitialization of weight parameters, which happens before the training process. The example includes the following changes to the client code (`compression/bert/run_glue_no_trainer.py` in [DeepSpeedExamples](https://github.com/deepspeedai/DeepSpeedExamples)): (1) When initial the model, the number of layers in the model config should be the same as `keep_number_layer` in DeepSpeed config JSON file. For Hugging Face BERT example, set `config.num_hidden_layers = ds_config["compression_training"]["layer_reduction"]["keep_number_layer"]`. @@ -33,7 +33,7 @@ To apply layer reduction for task-specific compression, we provide an example on (3) During training, if KD is not used, nothing needs to be done. Otherwise, one needs to consider applying KD with the `teacher_layer` JSON configuration when calculating the difference between teacher’s and student’s output. -One can run our layer reduction example in [DeepSpeedExamples](https://github.com/microsoft/DeepSpeedExamples) by: +One can run our layer reduction example in [DeepSpeedExamples](https://github.com/deepspeedai/DeepSpeedExamples) by: ```shell DeepSpeedExamples/compression/bert$ pip install -r requirements.txt @@ -49,7 +49,7 @@ Clean the best model, and the accuracy of the clean model is acc/mm-acc:0.834029 To apply layer reduction for task-agnostic compression, we provide an example on how to do so in the GPT pre-training stage. -Step 1: Obtain the latest version of the [Megatron-DeepSpeed](https://github.com/microsoft/Megatron-DeepSpeed). +Step 1: Obtain the latest version of the [Megatron-DeepSpeed](https://github.com/deepspeedai/Megatron-DeepSpeed). Step 2: Enter `Megatron-DeepSpeed/examples_deepspeed/compression` directory. @@ -97,13 +97,13 @@ Weight quantization can be enabled and configured using the DeepSpeed config JSO (4)`start_bit` and `target_bit`, to simplify the first experiment we suggest to set them the same such that we apply quantization to the target bit once the iteration reaches `schedule_offset`. -There are two changes to the client code (`compression/bert/run_glue_no_trainer.py` in [DeepSpeedExamples](https://github.com/microsoft/DeepSpeedExamples)): +There are two changes to the client code (`compression/bert/run_glue_no_trainer.py` in [DeepSpeedExamples](https://github.com/deepspeedai/DeepSpeedExamples)): (1) After initialization of the model, apply `init_compression` function to the model with DeepSpeed JSON configurations. (2) After training, apply `redundancy_clean` function to save the quantized weight. -One can run our weight quantization example in [DeepSpeedExamples](https://github.com/microsoft/DeepSpeedExamples) by: +One can run our weight quantization example in [DeepSpeedExamples](https://github.com/deepspeedai/DeepSpeedExamples) by: ```shell DeepSpeedExamples/compression/bert$ pip install -r requirements.txt @@ -130,13 +130,13 @@ It can improve computation efficiency similar to [weight quantization](#12-weigh Activation quantization can be enabled and configured using the DeepSpeed config JSON file ([configuration details](/docs/config-json/#activation-quantization)). Some of the components are same as weight quantization, such as `schedule_offset` and `quantization_type`. The key configurations we would like to point out are: -(1)`range_calibration`, user has option to set dynamic or static. When using “dynamic”, the activation quantization groups will be automatically set to be token-wise (for Transformer-based models) and image-wise (for CNN-based models). See more in [our ZeroQuant paper](https://arxiv.org/abs/2206.01861) and the code (`deepspeed/compression/basic_layer.py` in [DeepSpeed](https://github.com/microsoft/DeepSpeed)). +(1)`range_calibration`, user has option to set dynamic or static. When using “dynamic”, the activation quantization groups will be automatically set to be token-wise (for Transformer-based models) and image-wise (for CNN-based models). See more in [our ZeroQuant paper](https://arxiv.org/abs/2206.01861) and the code (`deepspeed/compression/basic_layer.py` in [DeepSpeed](https://github.com/deepspeedai/DeepSpeed)). (2)`aq1`/`aq2`, users can expand more groups such as `aq3`, `aq4`, etc. The client code change is the same as [weight quantization](#12-weight-quantization). -One can run our activation quantization example in [DeepSpeedExamples](https://github.com/microsoft/DeepSpeedExamples) by: +One can run our activation quantization example in [DeepSpeedExamples](https://github.com/deepspeedai/DeepSpeedExamples) by: ```shell DeepSpeedExamples/compression/bert$ pip install -r requirements.txt @@ -188,7 +188,7 @@ Sparse pruning can be enabled and configured using the DeepSpeed config JSON fil The client code change is the same as [weight quantization](#12-weight-quantization). -One can run our sparse pruning example in [DeepSpeedExamples](https://github.com/microsoft/DeepSpeedExamples) by: +One can run our sparse pruning example in [DeepSpeedExamples](https://github.com/deepspeedai/DeepSpeedExamples) by: ```shell DeepSpeedExamples/compression/bert$ pip install -r requirements.txt @@ -223,7 +223,7 @@ Row pruning can be enabled and configured using the DeepSpeed config JSON file ( The client code change is the same as [weight quantization](#12-weight-quantization). -One can run our row pruning example in [DeepSpeedExamples](https://github.com/microsoft/DeepSpeedExamples) by: +One can run our row pruning example in [DeepSpeedExamples](https://github.com/deepspeedai/DeepSpeedExamples) by: ```shell DeepSpeedExamples/compression/bert$ pip install -r requirements.txt @@ -260,7 +260,7 @@ Head pruning can be enabled and configured using the DeepSpeed config JSON file The client code change is the same as [weight quantization](#12-weight-quantization). -One can run our head pruning example in [DeepSpeedExamples](https://github.com/microsoft/DeepSpeedExamples) by: +One can run our head pruning example in [DeepSpeedExamples](https://github.com/deepspeedai/DeepSpeedExamples) by: ```shell DeepSpeedExamples/compression/bert$ pip install -r requirements.txt @@ -286,7 +286,7 @@ Channel pruning is a feature designed for two back-to-back CONV2d layers (e.g., Channel pruning can be enabled and configured using the DeepSpeed config JSON file ([configuration details](/docs/config-json/#channel-pruning)). -One can run our channel pruning example in [DeepSpeedExamples](https://github.com/microsoft/DeepSpeedExamples) by: +One can run our channel pruning example in [DeepSpeedExamples](https://github.com/deepspeedai/DeepSpeedExamples) by: ```shell pip install torch torchvision @@ -315,7 +315,7 @@ When you want to quantize the transformer-based model to INT8 or INT4/INT8 forma **How to use ZeroQuant** -One can run our BERT example in [DeepSpeedExamples](https://github.com/microsoft/DeepSpeedExamples) by: +One can run our BERT example in [DeepSpeedExamples](https://github.com/deepspeedai/DeepSpeedExamples) by: ```shell DeepSpeedExamples/compression/bert$ pip install -r requirements.txt @@ -363,7 +363,7 @@ If you want to significantly compress your models while retaining competitive pe **How to use XTC** -**Installation:** Examples of XTC extreme compression for BERT models are at `compression/bert/bash_script/XTC` in [DeepSpeedExamples](https://github.com/microsoft/DeepSpeedExamples). You will need to install the requirements by: +**Installation:** Examples of XTC extreme compression for BERT models are at `compression/bert/bash_script/XTC` in [DeepSpeedExamples](https://github.com/deepspeedai/DeepSpeedExamples). You will need to install the requirements by: ```shell DeepSpeedExamples/compression/bert$ pip install -r requirements.txt @@ -373,7 +373,7 @@ DeepSpeedExamples/compression/bert$ pip install -r requirements.txt To accommodate users who do not have a fine-tuned model or task-specific model for compression, with the arg `--model_name_or_path yoshitomo-matsubara/bert-base-uncased-${TASK_NAME}` our python script `run_glue_no_trainer.py` automatically downloads the models from Hugging Face. Users can also use their own models with better accuracy as the teacher and the student model initialization. ### 3.1 One-bit or Two-bit BERT-base (12-layer) with 8-bit activation quantization -For the configurations, see `compression/bert/config/XTC/ds_config_W1A8_Qgroup1_fp32.json` in [DeepSpeedExamples](https://github.com/microsoft/DeepSpeedExamples). In our paper, we used FP32 (`"fp16": {"enabled": false}`) to perform training, while directly applying 8-bit quantization (`"bits": 8`) to the activations and 1-bit quantization (`"start_bits": 1, "target_bits": 1`) to the attention (query, key, val) and feedforward weight matrices (`"modules": ["attention.self", "intermediate", "output.dense"]`) at the beginning of the training (`"schedule_offset": 0`). In addition, we also apply 1-bit quantization to `word_embeddings` as weight quantization. +For the configurations, see `compression/bert/config/XTC/ds_config_W1A8_Qgroup1_fp32.json` in [DeepSpeedExamples](https://github.com/deepspeedai/DeepSpeedExamples). In our paper, we used FP32 (`"fp16": {"enabled": false}`) to perform training, while directly applying 8-bit quantization (`"bits": 8`) to the activations and 1-bit quantization (`"start_bits": 1, "target_bits": 1`) to the attention (query, key, val) and feedforward weight matrices (`"modules": ["attention.self", "intermediate", "output.dense"]`) at the beginning of the training (`"schedule_offset": 0`). In addition, we also apply 1-bit quantization to `word_embeddings` as weight quantization. One can run this example by: @@ -387,7 +387,7 @@ And the final result is: Clean the best model, and the accuracy of the clean model is acc/mm-acc:0.8293428425878757/0.8396053702196908 ``` -The other important feature we would like to mention is the `quantize_groups` inside `weight_quantization`, which is set to be 1 here to match our XTC paper's FP32 training setup. We find that under FP16 training, smaller number of quantization group (e.g., 1 or 2) could lead to unstable training. Thus, we recommend using larger number of groups (e.g., 64) under FP16. `compression/bert/config/ds_config_W1A8_Qgroup64_fp16.json` in [DeepSpeedExamples](https://github.com/microsoft/DeepSpeedExamples) is the FP16 example configurations, where `"fp16": {"enabled": true}` and `"weight_quantization": {"shared_parameters": {"quantize_weight_in_forward": false}}` are different from FP32 case. +The other important feature we would like to mention is the `quantize_groups` inside `weight_quantization`, which is set to be 1 here to match our XTC paper's FP32 training setup. We find that under FP16 training, smaller number of quantization group (e.g., 1 or 2) could lead to unstable training. Thus, we recommend using larger number of groups (e.g., 64) under FP16. `compression/bert/config/ds_config_W1A8_Qgroup64_fp16.json` in [DeepSpeedExamples](https://github.com/deepspeedai/DeepSpeedExamples) is the FP16 example configurations, where `"fp16": {"enabled": true}` and `"weight_quantization": {"shared_parameters": {"quantize_weight_in_forward": false}}` are different from FP32 case. With this config, we quantize the existing fined-tuned models downloaded from Hugging Face. For 2-bit weight quantization, user needs to update the ds_config JSON file. To give a sense of the compression performance of downloaded models compared to our paper, we collect the results (1/2-bit BERT on MNLI and QQP with 18 training epochs) in table below. The difference between this tutorial and paper is because they use different checkpoints. Data augmentation introduces in [TinyBERT](https://github.com/huawei-noah/Pretrained-Language-Model/tree/master/TinyBERT) will help significantly for smaller tasks (such as mrpc, rte, sst-b and cola). See more details in [our paper](https://arxiv.org/abs/2206.01859). @@ -399,7 +399,7 @@ This section consists of two parts: (a) we first perform a light-weight layer re **3.2.1 Light-weight Layer Reduction** -`compression/bert/config/XTC/ds_config_layer_reduction_fp16.json` in [DeepSpeedExamples](https://github.com/microsoft/DeepSpeedExamples) is the example configuration for reducing the 12-layer BERT-base to a 6-layer one. The student’s layers are initialized from i-layer of the teacher with i= [1, 3 ,5 ,7 ,9 ,11] (note that the layer starts from 0), which is called `Skip-BERT_5` in our XTC paper. In addition, student’s modules including embedding, pooler and classifier are also initialized from teacher. For 5-layer layer reduction, one needs to change the configs in `ds_config_layer_reduction_fp16.json` to `"keep_number_layer": 5`, `"teacher_layer": [2, 4 ,6, 8, 10]`(like in `compression/bert/config/ds_config_TEMPLATE.json`). +`compression/bert/config/XTC/ds_config_layer_reduction_fp16.json` in [DeepSpeedExamples](https://github.com/deepspeedai/DeepSpeedExamples) is the example configuration for reducing the 12-layer BERT-base to a 6-layer one. The student’s layers are initialized from i-layer of the teacher with i= [1, 3 ,5 ,7 ,9 ,11] (note that the layer starts from 0), which is called `Skip-BERT_5` in our XTC paper. In addition, student’s modules including embedding, pooler and classifier are also initialized from teacher. For 5-layer layer reduction, one needs to change the configs in `ds_config_layer_reduction_fp16.json` to `"keep_number_layer": 5`, `"teacher_layer": [2, 4 ,6, 8, 10]`(like in `compression/bert/config/ds_config_TEMPLATE.json`). One can run this example by: @@ -421,7 +421,7 @@ For mnli/qqp, we set `--num_train_epochs 36`, `--learning_rate 5e-5`, and with t **3.2.2 One-bit or Two-bit quantization for 6-layer (5-layer) BERT** -Given the above layer-reduced models ready, we now continue to compress the model with 1/2-bit quantization. `compression/bert/config/XTC/ds_config_layer_reduction_W1Q8_fp32.json` in [DeepSpeedExamples](https://github.com/microsoft/DeepSpeedExamples) is the example configuration where we set the layer reduction to be true on top of `compression/bert/config/XTC/ds_config_W1A8_Qgroup1_fp32.json`. In addition to the configuration, we need to update the path for the student model using `--pretrained_dir_student` in the script `compression/bert/bash_script/XTC/layer_reduction_1bit.sh`. User can train with a different teacher model by adding `--pretrained_dir_teacher`. +Given the above layer-reduced models ready, we now continue to compress the model with 1/2-bit quantization. `compression/bert/config/XTC/ds_config_layer_reduction_W1Q8_fp32.json` in [DeepSpeedExamples](https://github.com/deepspeedai/DeepSpeedExamples) is the example configuration where we set the layer reduction to be true on top of `compression/bert/config/XTC/ds_config_W1A8_Qgroup1_fp32.json`. In addition to the configuration, we need to update the path for the student model using `--pretrained_dir_student` in the script `compression/bert/bash_script/XTC/layer_reduction_1bit.sh`. User can train with a different teacher model by adding `--pretrained_dir_teacher`. One can run this example by: diff --git a/docs/_tutorials/monitor.md b/docs/_tutorials/monitor.md index a9c111f8eeec..5e7a6fc4e834 100644 --- a/docs/_tutorials/monitor.md +++ b/docs/_tutorials/monitor.md @@ -11,7 +11,7 @@ In this tutorial, we introduce the DeepSpeed Monitor and provide examples of its ## Overview -Monitoring model and system metrics during training is vital to ensure hardware resources are fully utilized. The DeepSpeed Monitor enables live logging of metrics through one or more monitoring backends such as PyTorch's [TensorBoard](https://pytorch.org/docs/1.8.0/tensorboard.html), [WandB](https://docs.wandb.ai/quickstart), and simple CSV files. +Monitoring model and system metrics during training is vital to ensure hardware resources are fully utilized. The DeepSpeed Monitor enables live logging of metrics through one or more monitoring backends such as PyTorch's [TensorBoard](https://pytorch.org/docs/1.8.0/tensorboard.html), [WandB](https://docs.wandb.ai/quickstart), [Comet](https://www.comet.com/site/?utm_source=deepseed&utm_medium=docs&utm_content=tutorial) and simple CSV files. Below is a live monitoring view for TensorBoard: @@ -21,16 +21,20 @@ Below is a live monitoring view for WandB: ![WandB Example Output](/assets/images/wandb_monitor.PNG){: .align-center} +Below is a live monitoring view for Comet: + +![CometML Example Output](/assets/images/comet_monitor.png){: .align-center} + ## Usage -The DeepSpeed Monitor is configured within the deepspeed [configuration file](/docs/config-json/#monitoring-module-tensorboard-wandb-csv). DeepSpeed will automatically monitor key training metrics, including those tracked with the `wall_clock_breakdown` configuration option. In addition, users can log their own custom events and metrics. +The DeepSpeed Monitor is configured within the deepspeed [configuration file](/docs/config-json/#monitoring-module). DeepSpeed will automatically monitor key training metrics, including those tracked with the `wall_clock_breakdown` configuration option. In addition, users can log their own custom events and metrics. - [Automatic Monitoring](#automatic-monitoring) - [Custom Monitoring](#custom-monitoring) ### Automatic Monitoring -When using DeepSpeed for model training, the Monitor can be configured in the DeepSpeed [configuration file](/docs/config-json/#monitoring-module-tensorboard-wandb-csv). No explicit API calls are needed to use the Monitor. The Monitor can be enabled by adding the following field to DeepSpeed's configuration json file. Refer to [Monitoring](/docs/config-json/#monitoring-module-tensorboard-wandb-csv) for details. +When using DeepSpeed for model training, the Monitor can be configured in the DeepSpeed [configuration file](/docs/config-json/#monitoring-module). No explicit API calls are needed to use the Monitor. The Monitor can be enabled by adding the following field to DeepSpeed's configuration json file. Refer to [Monitoring](/docs/config-json/#monitoring-module) for details. ```json { @@ -45,6 +49,11 @@ When using DeepSpeed for model training, the Monitor can be configured in the De "group": "my_group", "project": "my_project" } + "comet": { + "enabled": true, + "project": "my_project", + "experiment_name": "my_experiment" + } "csv_monitor": { "enabled": true, "output_path": "output/ds_logs/", @@ -72,7 +81,7 @@ The steps to create a custom monitor are as follows: \* Note - Some Monitor backends don't support mixed sample values. Be sure to use your DeepSpeed engine object's `global_samples` attribute in each 3-tuple -For example usage, see the following modified [DeepSpeedExamples/cifar](https://github.com/microsoft/DeepSpeedExamples/tree/master/cifar) example: +For example usage, see the following modified [DeepSpeedExamples/cifar](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/cifar) example: ```python # Step 1: Import monitor (and DeepSpeed config, if needed) diff --git a/docs/_tutorials/onebit-adam.md b/docs/_tutorials/onebit-adam.md index 932bb355cf26..e24dc8f86554 100644 --- a/docs/_tutorials/onebit-adam.md +++ b/docs/_tutorials/onebit-adam.md @@ -33,7 +33,7 @@ If you don't already have a copy of the DeepSpeed repository, please clone it now and checkout the DeepSpeedExamples submodule that contains the BingBertSQuAD and BERT Pre-training examples. ```shell -git clone https://github.com/microsoft/DeepSpeed +git clone https://github.com/deepspeedai/DeepSpeed cd DeepSpeed git submodule update --init --recursive cd DeepSpeedExamples/ @@ -75,6 +75,12 @@ Alternatively, the standard mpirun launcher can also be used as follows: mpirun -np [#processes] -ppn [#GPUs on each node] -hostfile [hostfile] [MPI flags] python [training_script.py] ``` +#### 1.2.3 Compressed implementation + +This backend provides an approach to abstract the generic part of one-bit optimizers and implements accelerator dependent part with DeepSpeed custom op builder. To use this `CompressedBackend`, you should make sure that your current accelerator supports `PackbitsBuilder`, so that it could be loaded to do high performance packing and unpacking between float and Byte datatype, which is utilized in one-bit algorithm. An example can be found in `Deepspeed/op_builder/xpu/packbits.py`. + +This approach does not require NCCL or MPI based communication library. It will automatically use your default communication library selected by your accelerator in `deepspeed/comm`. + ### 1.3 1-bit Algorithm The detailed description of the 1-bit Algorithm can be seen from our [blog post](https://www.deepspeed.ai/2020/09/08/onebit-adam-blog-post.html) and our [paper](https://arxiv.org/abs/2102.02888). @@ -106,10 +112,10 @@ Please note three new parameters `freeze_step`, `cuda_aware`, and `comm_backend_ `cuda_aware` is used for MPI-based implementation to indicate that the underlying MPI library supports CUDA-Aware communication. This feature is only supported on systems with InfiniBand interconnect and a CUDA-Aware MPI library like [MVAPICH2-GDR](http://mvapich.cse.ohio-state.edu/userguide/gdr/) or OpenMPI built with CUDA-Aware support. Setting `cuda_aware` to False will allow training on Ethernet based systems. However, the communication will happen using sender as well as receiver side memory copies between CPU and GPU buffers before and after communication. -(New in v2) `comm_backend_name` is used to indicate which backend implementation to use. You can choose between NCCL and MPI-based implementations by setting `comm_backend_name` to "nccl" and "mpi". When using NCCL-based implementation, there is no need to set `cuda_aware`. +(New in v2) `comm_backend_name` is used to indicate which backend implementation to use. You can choose between NCCL, MPI-based and compressed implementations by setting `comm_backend_name` to "nccl", "mpi" or "compressed". When using NCCL-based implementation, there is no need to set `cuda_aware`. #### 1.4.1 (New in v2) Momentum masks for parameters with constant zero gradients -Because 1-bit compression cannot represent exact zero, the compression error would keep accumulating in the momentum if a parameter have constant zero gradients during training. For example, for BERT pre-training seq length 128, `bert.embeddings.position_embeddings.weight` has constant zeros in its gradient and momentum for row 129 to 512, because it only learns up to seq length 128 while the model supports up to seq length 512. Thus in 1-bit Adam v2 we added support of a momentum mask for users to specify those params that have constant exact zeros in their gradients. See [example script](https://github.com/microsoft/DeepSpeedExamples/blob/master/bing_bert/deepspeed_train.py) for how to configure this momentum mask. One thing to note is that we don't use momentum mask saved in checkpoints since this mask could change during training (e.g., BERT seqlen 128 and 512 require different masks). So you have to provide this mask every time in your training script. +Because 1-bit compression cannot represent exact zero, the compression error would keep accumulating in the momentum if a parameter have constant zero gradients during training. For example, for BERT pre-training seq length 128, `bert.embeddings.position_embeddings.weight` has constant zeros in its gradient and momentum for row 129 to 512, because it only learns up to seq length 128 while the model supports up to seq length 512. Thus in 1-bit Adam v2 we added support of a momentum mask for users to specify those params that have constant exact zeros in their gradients. See [example script](https://github.com/deepspeedai/DeepSpeedExamples/blob/master/bing_bert/deepspeed_train.py) for how to configure this momentum mask. One thing to note is that we don't use momentum mask saved in checkpoints since this mask could change during training (e.g., BERT seqlen 128 and 512 require different masks). So you have to provide this mask every time in your training script. **Watch out!** 1-bit Adam relies on an compression error compensation mechanism to maintain the convergence speed at compression stage. When loading checkpoints, we actually reset the compression errors for 3 reasons: 1) The worker and server error at each GPU are distinct, so in current implementation only rank 0's errors are saved in the checkpoint. Thus we have to reset the errors. If we want to save them correctly we need O(num_gpu*model_size) memory in order to gather all the error, which is a very large memory requirement. It's possible to save them in a distributed way, but it will make the checkpoint saving/loading much more complicated. 2) Even if we are able to save the compression errors correctly, you need to have the exact same number of GPUs in order to load them correctly. 3) We verified on BERT pre-training that occasionally resetting the compression error at checkpoint loading does not affect the convergence. However, please avoid frequent checkpoint loading which could break the error compensation mechanism thus affect the convergence. @@ -130,7 +136,7 @@ You can also use a pre-trained BERT model checkpoint from either DeepSpeed, [Hug ### 2.1 Running BingBertSQuAD with DeepSpeed and 1-bit Adam -We provide example scripts under [DeepSpeedExamples/BingBertSquad/1-bit_adam/](https://github.com/microsoft/DeepSpeedExamples/tree/master/BingBertSquad/1-bit_adam). There are 3 sets of scripts corresponding to NCCL-based implementation, MPI-based implementation on Ethernet systems, and MPI-based implementation on InfiniBand systems. For MPI-based implementation, we provide both example scripts when launching with deepspeed or mpirun. +We provide example scripts under [DeepSpeedExamples/training/BingBertSquad/1-bit_adam/](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/training/BingBertSquad/1-bit_adam). There are 3 sets of scripts corresponding to NCCL-based implementation, MPI-based implementation on Ethernet systems, and MPI-based implementation on InfiniBand systems. For MPI-based implementation, we provide both example scripts when launching with deepspeed or mpirun. Q6=lQpBVG}_B&aNL&7`Ruc*1iTx?7R`bbDE$kYR^ z=jUT7B^_8I+51IzAUq57nQL@cHrHnj@FvdMrol%{`Il=t>&_4=zdmn-|3ENq1K}T) zr$>WLRh<@e7=<&8$kR27ekY5RQkw@>rGfJn6U8uw#0YFipdnO$f#1&^PTH{@hEQ)l61UISzu8i zT9U0>@ruH296`u+D}Gu2N+NqA>^HB=jMMbm%0T|1XrQ^u)o{1+vU;z(>rPo&wpeyM zJIVO;qd`X3yl7i$w#^8rL{y+RdIZ^F2q)q`>St!Qe=eS4O@~k|EDZ&&5i2Y6mNE=A zY=tI@9IeU_bEC9jv1ktZ&0SEr)HzYcec!C!O)HvEOo>d7#%#}%hX}EV};B5Uz+>gv3_gEbem=nQ{SXuVn;@isq9-tr(|hd z-)*jO1u=jmG^b?!XsQF|=^g4rsyvko%aj#kO}SlQaYT#p*F6@^b}@{~V|W$4O8`KHT@^mMCDLxWtPiwLs3xjNrE!S0rebn z^^Gc-b=0gwp)rEqD|kVgFv^pX;420sx4V(dPx?EnUbNVrZX%J@YRac+|Nif)0~D8^7x%5VY+jaYP0>>*9fF94}Uz)vQvDi z@TV27Ji0_v|NLHAEC^|{#6;kfx?sPULIY%Yi8JT?LoKW9t(kSDwlooSgUsc6V_gggO^dB(;vbu%P~ ztS&m$*VOwqPj@%|&VT!&yg}=gOS|Oov$i`YU6Y>JcXcw4;#vE$<8;yEK)G~NHLJ!9 zEN=PTd{jG`(@Y!j3w5U{X^gUxa6JG*SaiY`K6#VUCgh;jAoL1GuEyS!W42x0?x-z| zKj8%Qn&Q8^RGDo2Gm>i^cf>b|_$`ej+U8H~+$P6&cVl~7ZEa=~Ae!x_zryHL*^Q=& zR2}uLM82W|6kpDZb*B?fICf%&gOn(w_{J7($ksE@2C4$aj1YsP79FZi`CG9e;!2-m_BU@E8a|=C9r>A$)%3Vs$<&zk z(Y~IuGP#Z3CQZ(h?OgH?)m#}Xa#lw|(K1NR5sv3W+zHcIUMFGR*v`k3p^ z%&Em3rC0Z4sk~&a4f)R8Fe`Gy11NdA8%E-xQd8p?(NFf48e>AmX}V#XHpLYf9ncZ7 z{?2m`v_5klG}pq4B6%!7bI#zu3yrZ&;hMa5w#w5;>&B}$zKp@@nj*=!!-@6yZQS&%@Nqp=nNy2LhJoDN}>RVQtIcR4JzrlAHi|D6Nj|QU%V{=Zo6p4QZ1UrP{hL10dh@MSGtX| z@0l<#H35*w7|?0MkTbw80e<|Rg`=KJyu2$cDXJZwh)|#R9{v)}&qPQDK*9b!GVAPd zOq;L>LS-_m&pr$iJlbXlf%>NnjSHf{iki{g9mJ6BC5#>)ZxMb7G&36NY0hm74(n9H zZ{a!j6;!NRGOn4M(obxDh#60JMXL#Q44x3P`B3Qh4-iCld~S$PhWBXJ8Q7aDq40k) zpywHZ#NFQK-8_ombOkAqt*{z@i>2kpO-sP ztn1_o#L0ujob>sU`Ql`Nd1i+xO%(=|P9wly$4eI^@a=c%kAZ)&#(bevVP?crw zn2$u!1Y`W?(RUqJcH9sefq9TF~RuZ3EvWEDlzsomf z@QhR>M-3#6RvwuRIj6*by=5!G<7i zx22GHjb9JBpbTIB)i@>N7;;p41^4JB_q#f6=JddDPT2imu9)O>d`oxw@8)~Ws zGkY=RZ_sPX^|a9J7NUHD2I-=KqU*qBG~{o!d2~Cj46j08n~QyzxoM5cp2w*Zx905K z`Hb4gcWW>HFrQ3>lqC^2wt5XNaq~`3k6ujNvbKQvD*rqOt)7V{qKfqXBgF_Yilf`qH>(tb>51-sIMtd@P~z?$Yvj(oX^aA<-_9 z#1ASeq(y^DB7i=Ij|B7D@u}8fO2S0enss+x{c$D;Q5;nJHIg60ll`{uYMQkZJJN3M zim)i9C%K`Y1)AWPR|9ALJYR0Mr;8CM3N=^fQhQz z*K9`|;p`(ePU45+jgv#X*o?7Zb@v<3E>ap(`!Tv;P3>mYj2;Y_g3=vZ(bhn`j?%>A zuSP@-N{bd1i98FFTL!4IomsyEs-HIx0>lyb(GE-C*3)&{h*MjeiL3sn(DwNX#Gc+4 z_iI&P8vcQcvLX*{yI=JAoyquIioA=X%HZY-5iK9KRgP}w{-PeD8i?2=v-aU0vaDJ5 zVInsxQRKj_!vBxuE&mI^_y7N{{}pKb|F9l?bHUohj>~Ha1*=1i`+5oaVZN^v0vShDiZMuX3w6^svi>%Ns>eu(Z^CY=LMP}bB+(|wr z5XnV$Z@0R+wQcA;DJ^VV8g^5o7=8&e%~Duw(!Hm|CJVCK`%=9o7$htLc$fn!YBx;# z9G;&S8*y5FxKdgLRFlu<&sMepx5lvK=4|U~Gc>~^M)(>$R+_c){h0iA;`{5w^}Pkw zd)$dkoLj`4mK(Dq(kH0AQo|BE(c`muF$eF7vO5!Q7sD&kkgs_0N~P3hf)yHRXy)*u=;qwrvf;8#py(G5LXO04O}^5k zx-e1PUm26Cy31_Ica?TUV-7g8$5gN+3@eSZ9S4*P;w=-+==W}?FI1+-epl4YS0a5Y z)y$}MRr(|fcYpmQp$@$df*FN>V4KekEg9>}g=4*5=4P5nuunua5@?^E>TBsXg*Bd#sY7drU~>o*%dOnlRb)x zK3zKOZ8M_L#S%=Ht@>veKyXZ0-F+ph^6ju)yQn{@)^NLGhY}pl%!ea5=>c=&&`P6` zvYb<6CUY@EXrsJ;{_~F4PZ)al-8C)`BDLOeLq<9`$af{=1 zZ~XhqZHcyP1?O2Pi107h3FB&_!s+J{$&MRtv6fF)cMF=(pz@Kg8{v{SiGp*MrBy*a zq9+SjAhfD!xCQ)YqS4uF;L0{qK4>%f>-KNw^;r(9*_-1G${*{mdVxeSM;KjspBUne zW(wONQ|~{zq%mCU&~1CO+=t!V|KhaKNZ$l*w}%(`InJTPrf8?oYKbl+bcI$JEjzXB z++DSGkYpYj!VUMD<1$>hZvg@7x6G|h1?|(-Pki<)iwoyo3s&@*&EEr~-JZkvb{Z~mqnX4V*-iSVTGbz+GCjikHsKf$jp^_m{l)?FPkPo0QPMEVt^xLukq zeDgu&{u<+FSK3TH0bj3Pp?DhFjiZwb=i&rZ1A%9Bu=FkAy(XrQaX-<#&@|9P*aENO z#8)j2UkG@ey`iJ&?Hhc8^F9OF!h-`cD-^8`TX7awVw{{%jE_yJrzNl?-hNw0`^Deg z3ZB;l2oX2B&2$-BJ5+V?WO<7RL{F-uiZhyDiZW?mx;z9Dirh{N`k8$K559)uB_J3W zX{Xup0cQ}d>iAEY&PkP{EfT%)o>%psfa!7dr*H9wnN7wZ%Qa*!O;=C37S^VKO!cD!-c*S9Ql(ss}O;i^Y6|Dy6cH z8rO-KRju)?Mdfm84Ck7{4LV$ynqpV!F)8qSJajw|FN)O?2+w?~`J-fO*^t)(|A-Qo zL9blXDkEi@(Y7x!#Gmd`9}0B3(R{Pw%zcFAGw};;Ec_Zc%)U?8Rer>{=Bbn$9MK4NpFlQ?%%@zVMRq7 z&tg|CE+s4Yzxq0`ZEIG1e*Z}c)Exv<4C`-fBM5wnN8_@>{6lm`i z^1WO!9j@y^bOB|*cizw!R)zK(E|@5Oe(%n~e8m#3m+y)S-Vmh`Ti_{oFilJBgk@WhSujt%~821HUVzP8#HC!(pedkDk<2eIJ7o z(HcHTG^%mRg`z3RejXdWVG5T-%ZBlH5SfWh zjp08&a4?9_zQ}Z%z~z#Lqd1Z^JlSwobT(5nR|0tP8MPIs@!n)hq@AHX7XhZ;}wSIv_c=cB-p#SsbYE2BYJ_u~?Ne9I`Y%s!*%Bm$9G zdhCuct%+$iU)jc=jJe`7u(R_Jp0D6ykTV>JPNKWW2kf4;RvPzg1znc3B^(M_uL-NY zYhX|$;94XX^Q%3bNzX8zg&vEIsVr!;CGLs2kU>$sqD`a3wg$=m&M8ybQUK1KG5@DU zZ(Y+riXwu-h_oKP)u2gW>AXC9_s&x)$(!C{NliNd5iI0>&Ly&sTU6_cGj|&QIe1LN zw>inU6^9S#pvKvWu+O$eNYhkm!Oh{T2oNT(3PZv#uP8BN4GhVx+BV7(b7u=`V|V-O zV#wYW3fCmo*WLe(y0;FBBWnLW2MI2L;O>y%?jAg7a7`F&fMIZV4Q>ephv0#Mpo6;; zT!X{l?jEx9-rtp~t*za?```9dS9RBPb@$V!`*fd2K3{j#kOAjHkt#=r%vO0SP$1Cu zf-2KbtS^Jt?IiAEJ|W+i8u75oYqfUHKu9j#B+^G6)k=+HjS{S*M$8fd z21F}nwa|Pf-933orYjA*3O=)}Vj`-Ny*C2h-ccxK`FK&Ujzv^15LC^kDSyjQ%4gDB zVnY#alP;9XZgB(YD-N5uE`KNe^dHYgIm=Z2=oik7ERFgUc2^v>^K!$Xm;FK72!vPZ z|Mlx0A)Uh00Kuz*R)aF*re!AoaQp=Cgn6fWQ|(CrAq7y(>v*A^$l|5YCWa) zG(Y)7Xy)=Nj|>{c=F>}zmb%$3Di>3XRKwX?TV9D0M}XlE{Uvz;L8bk~#XHd7>n&ef z3uX9v^T|X+@@-8s6|*RQmzOTFWq7KR5Yt#*_aeL%vp~6N=x@nNP0DpX(pM$?MJ!9c_A|H(5Dv1~QAs4x_ORjX7N2AM3WI z^5NlYD5EAc9V{jM*!Kh%9zb>>Gmgt+&X+c?#24LJ6O?aC2TKg){g}7)^$$GgdVklj zdD85W3l2CKClq>-WJ5TL>%2Wi?cm9VKPM<@T747c@Qd98nHC~L93UuhEhZi5R+EJpB>c$V^d${(JnqT|ax7WXTx^|Kz6q(Y zer?SOz#L>;YF;)oR!bx_Q^GC&)huR8itOTUEQ~YGI|IOZlRRHx>^*(BwI&)k5Kq0c zYy!GeBzqY7*hEL#x@w^6B_V(MH&QFRE>cLt0+{)S)rfYC|RegI8nCC}g)y$7E<4ptnFilI@FD zSVr9)N?29G#7;jNUx*W+SuOh^ZDfASyEJo&oF#nsEe(&6RQUBX``4z6_-l%sStSkF z6K7QgTK3sq&dF|gZwQQv98J-FJCL<0U0rP2`2CVt3XeuEW35K6xmI`3o~-4Q8 z)+~{ig1CxO{ggfP>Axq$>|H_;)i!G@pbqjmZm3YekEMB)!Zp5TJ=VODD1-vYu_l5p zu&hFr_UKWh^S&5px2ea5uZ2N{Whl@tHLtP_t7(ir#j~-BmQDS8j2A?)u{$T|XXeW( z#~kW27!^NT&QzJ4%_D(BqrBBncu_p}SaD$dAzhBw$rgc4RQIseATg7Xs6fCzRzwFwWXoapumh0 z2w6>lh+e)hFprh2WIY>81{RWTV87RuX0d}_&xY{VziMt>=2>Gyn@K-NPp zv$dsFEM;RIUX-|o%t7u=hR+r`qApoI@I<1Ob=s-w`TMq|XM`dkA$;TJZm=Ci++)hU z2o|%7=)-Y1J4E`h8z^USoC6L&1MRrthZ@37-=uPNw~7o}loI!P=NZhN`LjYf2lALJ zRlrn}W{Su8DZOtOw|%cgt9n0nq-xF(dZ!3mUX-3OVG;2H@?80I3R5Sw74T*X}63L%QAP;I}U?gECCn8eGClNB|?{1UJ`0u>yA`Qz|oUKz?ep~kx;GA`&= zF5_^5E>7vWAjNFBfgck+%EnLy+IAS}2a&6a-nkA`m#I!bR@rG)MrSOPNB1&9$(Vq5OOh%@2 z#Ae1UE3Ga`Jq=E?;bkX=V$vZe*GJz=oBhNyESaKH`YqEwY}4{~i`S**qJidVxB}!h zIT%AoZqB$k!=&Ua=`aIIbLF{5&lX}-+O*3+3-h;+4dEm|w#JQsZ{H@77fKA~idFxX zCRhpXq#8{*-x8OJRpxwvxV;1S=jK@DF6LE5;p zQ$flAK5C&AbHSbduO%vr3~hE)JU!dxsI*SGH#AvW?P^A|?%XVt-q5p3F565Jrkslw z78GCq!3Kb*P?~;AKohL4F>;MyD1iv0@SJ$;kOnLEOimcam8)nx*$}nOyGzeB8-TF@e4mr*92Sr19;y(gTR$wjxD5}@--Z6Ga8fg#Z==iX zYw6VT;pmoa`pI>}Qb4Po3THDnpAejsvRKk)@8&Hd%E3Jz_`yY39A91^cVg)_p3^uOmHDCmk1XVyYsq)j%~>0 z-_3^h7Ar>C)C-MAoe&s>_>(+x!Mt1VWu{a1=MPPC04ON@GPZ{Jvw8qS{R z(1b7G;JRIB*x@UOp%H@1*fMlP+SMi@iH2 zITK;`7fC+0L$sOuc*ZclgS&FNl=oJ4UCY0mI1F=ImG|Ao9auDp1_V!}?oO&&I0xdH zpV-;D040d{at#tGP9d?t4vrq^4Xm>$o{k{4=0KtAIF-;C0uj3@b-K zkm^9kxg#vTg7$=2^91|IulFS}kE8GPD@4iFDAiM@Scoe($)91Sv=fL6^`Tj;to^1} z-Pbi9*#V)e?AucLtyapYCjpnS+q3%i@_IUS1HF|$dt^(p<1Rx#`R+N3=Bfl`%U-oQ zY_|u0@s3ZE<|wD^ux3XjF*BV5aTO)a7qngCTxY}ykgqGPkm z6*LLJESj@Q^P7;`ue7!7Os6UiklS|V5u4A=gQ}Ey4+y}Ty=I&QzP2W?$nf+dD9Q(m zb86BkYoK%oS@OW11#UxoLvDE1rYRx?CD9Ay?JifT>ZeJf*^w@K~#h z4OM6Id zW~B-{&_0ynY7jGrwhK~{bC9rp{Xw6^gwUlPW<*DI8`_JBIqQD2CLfq`ScZF=MU&fS z{CBeXA!=gwR3hN*V`6CWEZQ&1kMCb*V6c!Ha2|(3uF}M~7los8Lz(yZsCsK#sDs*o z2_ycJjjmZuWhvIWACv8*O>xTw_*=t4Bgq{gpyi3m(mh{z`@10x>>n9QRayBupOqKYh;1&TOPLPvp#2lt_OZbLRAZs{Hue=Wc zzrP%Gb768_mLug0dBa2Q2uu4bD z*MRKXaxQgj?4efFjW@6}TU5NJetUc0N?*&t4$NXM>Q2u#HoX-!-Y(kc-CzFzo4Dz} z4PK_r1rtw91M)gB{@k^=&DVRZVg*cyA~xHvsZXzyEv2-J)5@9t>{&g6z%Qf(VGdV;NO3*8)Vk7{9+017oDZHi^Dw8>wNZ&!P2Op}k+N~S9r z+b_VUZE3Ky&K46_7{T|x+P9x~UrEIV<2whGk;*paax_NHQ&k}XG~0eH7@^eYvnSVo zZI-nsf6TvDA+AjJ=^6ph^JXVuo*16MTTw$nOXGJVG5sF6-MWz>Ej$k`PaYNXySK|d z_=wyIGXOSXJi9{$cb&xLfvYT&{4b>ST`Cv= zAgxMs+GB2OfFDEXqmOaDyxt%H=3D+HGeDo1cLqewM#|okaM4nN2XJ|Rm_Lx1LPS~{ z^T~B_2A~a5tdXb$VFw>Oql(ovCUhIyl+W_(gs<$vltx?WLit2b9XOwnYZP$w zDN;@Hf2H++&!hM_;>^Cg3N>zNx=g6jrr-Rv!~R|825-f7|Mt@F$K<>u@5lawi;$c@ za;NpvHeO(ZN&gFL%DU{Vg|biEktn?p7bBJ)d4|--*6NX75h^Qf?hvMw@yGQi-B+zM z^fR%PPI^E@EdCVnm_6#4-;?-#N6_>=f>;p36U9yPkf!L5pH`y00O6)#c~D6%w9+_1 zKPcsUqZ3BkG?VY2R+>hll67v`T1>%2tkI@h|9g2`fATXy)OD%EpQ z8DN_xqv#b>x^L3nxBgbB(aWjv(#LfLY{99~1<&3N#TYF` zgJE{aN1#aiH=YL(mL`l9(;Zv&i70VYJVWSrPFV7tRnSh_ks_KN+*AXs`-Y=@600^0r z_=PUrxl=N#CvSKLyw*scC`G52@O&d|mg=s8qWTN?y5h-%q@lIBxkZJB>;#V6#Da~J z0+2{($b-P4d>1Fc`o_+tlr2Uc!;Kvx5yjOM9=(=CpbSaSCf?N2=&@TbbAJ=e!EhRc zjj<&%Qe7&GkkJyv_NGwQT3$ z*jW@ZP_Z#92j}_p`T&Nr(G~M@RI0=VDpENUvc1#eT{H?o4^uSJ&X&dx^O$N#A9y^D76T znh#SLt8FD(RajPh$=Oz~m5g_R7xBkS31Oa`Tw~Cebk3PS@4x&ubfgQ*{SKUs5esP- z4zC|x+gv}Ptm0;DPklp>0bH*Ci#7*eiq*t8(05%WOLKcQ?CEEallh7}X9viNA}XEn zv+n**K5~Gvnf zA|#Ud%_B)Hdg{t_9fqo*{{CLI9o9Pomksyl2wAU9HSsYGle_jgLKWq;WDDiwBr)84 zIL+E_MIt3=ONCHP?Y=FmzAn2>{`JuPpQh7&FYXUFd&E}v)fz?&OzO8Fr;dSi6Q!@# z!)DFnf#-}O1AddJ>*ooebr8P~&Ana-O`9r5e8gWSN zo>P|!3WDNq`u86ohQ`dc_aESskAY@OYua0DD+?~Y_io*XJObXKqZv=(Gpi@W{lOR8DaV2~P0+zC;p9>0KqgJ0giy)By7cwFqeuJ!%thA%vjeNIOuXY-ETqQ%9F2Mvtf+x& zG%cY5tXwlQHhGAZtSxM5qN=b(C1&!Jf;Z)3QzRri{FKaEdB~{CHdUw@+3ccwbJQ)U z;LljXnx0r6czS<`osswm&(14lO~{^ck6j*}c}ffUP-+;biNX1fke9zQ}!RPGk2j3MI2?vUwlfg%cd)1#q^HSbeDhZFUljK$etd z!Wy9KY5Btq!moSDL?oQiRgb`C#dV=dqPFpdd9G|4`yXRtYa%0t39dtwI z$vHj|FlN{UtkY3?38^NaODxEAyrb}pDjlnm`8>N@f3;g5OPOv*c}|uPemx#oe^xw< zvH_;G|LV6`td_wA%oQ&+BG`Vqcih8W@v0!aS5r&XPIyqCn09tR1`?m*ZbUgWB_3zEp3Rf0zE6Vg_&NVBEf;?KiO zMnTMmqZZa6J-uP5?11bz(x7j;{;bZ#$7wpBQwCuJT#8DU3XW1Bb)_bqORgjvGPVT< z$P=jfI-nq^4xT3N|65}&^(?^Gt1K#1z@xD)RJuViE$s|Ut`_;~hf~>L(}vFC{isG~ zM?+%*_R!0W#QcRClMHn4Z2N6fS_co*a30-c=9R(0l=q_U9);XVF zbJU4?8g`FQ2Jk;@*yNQR&M)cb!eCj2akVTnagm-_NP8$L;#CjI4w5&eo15M^n=nyb$i* zx_*K$eS-V90LR(X(o&eg*6#Mu*LPCFq*TR;wIN~aByb3pKqvFTMM#;6P*g+$Cl{aC z*n$Q`V6wXMsyPMQFh8eA!BoI4V9*rCesmDSfvy@`LyW}4HlVVbqX(_lIdu3wMHP_K z!%qcfDs$rTLw+~*zxWGO@EEoe8LIKrEf8dW;RF{5W=g*kg1%Ap68X~f8`%6HEA^)W z-fxV}qc?ZFnA8XUN_8S4azl4pHcEPcQyH;p z(-$I>`$FZWY0d_D@1&&_x?~EAuP5--eNn3G-R2zDp2z;${kIZ4Wwo%j7#qSpH2o2H zf}+@*pC-10(D?z#t;Be(C)565LFmj|i)*Gg4u`K%!{9)MTKG$wCP_S)(xm>)_`>V= zQ|S_zR9xO?VM+L=9~({r>X(mjg%%ZVN4H*#G7Nv5==dy8u%axBR=FM_@}fMKB6A>M z2LV!w`1b3M56j4?yiSQunDEh!M~eL$u-NTU-xBpPZvm{1-{-dlDnz{yrJWj3$NHr{ z%i6`G%tVPvr9-?6#o$a>dWZz3rWB+A^b87eaGiTD}wcZ@4oZcyNdk zAZ#%ZERGno*T;zppI4`8i2y@e$6qJ;qDkTh&W=J|=Zpx~ZimFym@6wJvXp_LTKH!h zq3G={q@Knlt#iedYSwO7%SJ}N&9bl%?z_CkC)4_^WGT&)=}he0ZAd7773aGJmHy)HeHPgF zm{Znrh04M$;Do0rmnY{cEw;-gA^3B2Ga#@ZTtF(k6uTmyp(rE}vy$!X-2PS&9~S|! z%B-JSmXB>$?KzYf;jg9T4)i{{qzbT;@rbVixvX=h9+Dh5pK3FL035wP6ZOfd@O(>DXukS|Z!T=}mWdHCbDwk+HA>MYJ8hVHyjtjnj>Pz^; zTI?>I=?Nu`;i`fjpK#azm0J?AHi`Cpz=`OLLU&DC71>Sb0yox_GH=v7487mEeZ@I< zk<)z8N(HZaS9YNhYRYhU>p18M_|N0_Nm5y|A`cNyG|_ed2{cPI!d@256vYv)7#?l9 zuT^5FL+rWVr6ZI|?;Z3T^AvqJ3;IjS{k*uCXo`=^JAsMrIgz(Mtm4}q}3lj?FkNpZVeu}+BaK8PZ-k< zIB!sPDtjr76+RE&3cxqi_1T$gVBUHLihc^|J^0-Hw9w4_O<3&VT zh+1jF#_vNS+H78`>vM?!Wn9nz;{<@YJ1m(3zc~ZpH?D8zyrp z_DO)Nhab-y5M(U@#a&u6@S79dUZBHU#{kz+VK35y}PfdsFMdJ9)dH>Qk0@=$v@dUNvaGRaMAk|M` z2Xp2`jgA>8_&2|bn}1quIq>@(viBf4yu@#|CGQIq!7xRy%U$yuRkO{OnTYRp%PSii zQ1aak+N4-0RCd3>A?$`!X5F-c&L=4Od0)BY^mV4W`@JS>&6!Qw z39_u@J`pLTk$B{KHCp*%;V|Fx~kF;^FGvsupIDX`Auq@$@!Zg6Z+CUy`KftvHCt||y7!?qQd>HQtbX@W zFQeo|60Yv#v*Z>h@yVT`k-0o`q0s~mOoEQEH43$S1;d|UAw;e8X3^G!G+Lm!S`hoQ zD{&=O^q&DD5 z2J)z%Z4lCW@b2s20YwpXTMHM3yGRdqsN0hfC;X#Op@Rz(F53ekku|F%HuZW+3}7v) zuf>hBHQGa6{8;i|Lx!iPK9hcdqJlXQ;A{1yik1V9+VNDxl))e4F6U zwXrQ)hP5};*J+A4Bj||hIy6Xy_b#p3)~jT7Rg=jX+J6coUJVvjqw$m>+D?XvC~n-K z&j*W-B4iiaYy6f?j(nh6gjY<#KjBrHj$RY05eRA!6B;nmJIX`1?hIDA`txW~AUjNt0Jy#QOzLQV|De zABIbt`_Uj791)dSDrqiJw}NSz_cCeh3RpXyx@1?Oi;_tI8$O=jefg+&UN1Jc8TyB8 zxGm}dU_>rEeAD%Ol-GEE+gf^*w^U;y&sSCK!P|J%wMx`29C}^Dlh0%l5UgQIZiOs!IT&s>y`xn~ zid4Q^LQ|0$P}4gu);&U2k8E7U$pEE%Xd4K1ZIq&zrR!`>I8v``jWbjC0Q+$EzPZ{y zxxDE0?{~}1`=*2+UcI1^);-o;`$mEJ$KQ&-48MOis;aFZ>#{jsBu@v6fg0$E*A-#Ni|Ph#df7dQ~FqGgQ~8E&rRC5#~vaMQSk$acv694*d$?Wn~JxEOTu zqa%e@Oik}AVVHy7wq-3P`v-UHA{gM;R zGF@jN^J}E?5XxV&Jx?Mp8k^l`7h{85wyER#<#;)@#U*U#;t~Hr+@5oBn!#eVO8fZI zd)GU?#`k&0w-e4kf9s0qaW0@wM+#6Nlt4k4FH@Z{rWkFj#}~b1s5irm z(JXh>+OBfu;UC~qVR(khAK|Aisz72W8q8{bKGDquhu>6zD%U75>oI`OoBT*sLbfm~ znvSBlAdRkn@M;aEchX&4{ZYnYfAjt;px=bW^!1 z+%B65yZju%v>_j&d8R<#6EE_nd6E}e|2z-J;$&=S#<_f1V>*GJOd;X0`6-VO}`*x&1Q1J=!D!(o2&06rsnE*o9adZg}K_+t?!;{F|g^=t1&L>wn%ZFabdYxzB>5H#zg9*ah0R|QvrZ*BUudW!% z*xE^~Sm9iCNg!aPs*)PB^}H$)4iZ0$lyY5r=>nrJ3xX^bhR8>ky$QE4u1AID=C1z= z`7pr}kJsDS4o9@}Jn>MH@Wl0EH8JgZygdU5&74HR9V54CC$~K0udAloP9KJ-Twt>c z>K;B2tC%}}Ci_AAQ)%y;uA2>ta^WxT4lV>)y7ii(D1#a4dpa_xeuRi}Si0#Q3%tSN z*e|g~Z!y1Zti+)qjl7u*iL-70+`W-l%aunBy_A2I_5(7F&zwQZ_Hpz>=SU~7@&$h)*n-8|(MEK)rPNP`hY?BZYJD&%|i^C~dme z(|cRNPxn!ZB)jk@jfG(xt*YM zaK(Xdrnj`-FVOs>(TO=C#ptB%7v{%>T}hQgb*DvHpEoE1`{3s2| z9CANkP4Uim(B4%vO?zkI#om+}hq5eKg6NVOT1~l%9VZL<_$z~hb*)}xLId6zc?5`& z)2l!}>E}Vx(`kjyS`(`w#(-VNXH4dXjttbyAH&oMIa0YU;QArv<*R_JP@x1-=&HDC zOU-$kn3_34XvvXtdP6>#r&X3sWkN&I2P$flfRSlbq#Lh@h}{xLRCw2E*8FO0f;B|~ z-P{|KlU#ppZ=4R6BGQ5QQ@cW!NBk&kW8HE0Tw_lH#cxh;ez}HgN2f%`Tjb~grIE|_O5SI>ptm8%2&x4m&m!`xg$zgGqr72C<*vl=Yk-F3SN|3PI^gR%krQKLG!>^?(G{LA zW&j&KCmBgRNqnH5%>~IfNQGv}glDp;ETAda!m8xz1ApAB#)+KT<}%O85G$qMfVM z;K2Rm+BO;yft`cv$ny>1@gPY`BB4IoWG>Cs8{DY~o`f2AJEijbz$M5JKaqEv2O`1x-9;7Op1$%Ec+&sJvXBg3h7VFw6y;v+X$A|tQC$&A{{;pJB^L+X513=rM~ruB?oc>lc$jEiI%;D;oa~bW$HR}Oxu%84NQ}T_#p2L>g_dM z|MWX#Vu>ooB~^m`x?0 zjg1G+cbKSZ{BZ&y02`XU@^ZWXiks4_iQAR>z+n+ALG29rIO`v0XJ`LQDu+N4+Ln&# zeExohu18smMElq`Chh-5U$U&UG4xQHYm00*QFNIBjr@^Xfqd0DMbiy~ zz)`zLpDr?#zw`qDDx_nPYK;r8=V-CLzhQg-08?NEqT=)LKqlukCQE?|D=i|ywA^D| zfMIkxIb#Z%1`<3o<%LNK|2~9es$KAHj-dxC)BC`DZ3SIekn|Xqq?AR{yI834Trp?M zQ6Kvrk!99}mCFoGSTWe*Ku8P{C&3K?IVSgAnJbSDj|v!Bx~)tp&@OC*JwA`-ilID- ztB{esEY!namaukqwK|vH1Mr_&v|Q2ab+uK+pZ@_2<4^wjeBDl-=z((Wxm?Yd;nmvi z;@%FDPfRA?Px04!Yj&ry6VOdp(>fou9wPvrV?;Vn+>iT$7u-kX%@ua@h#mlkTaXMv zIQjs_ALXm7qmDpY9^SCc)|1rO1&eQaMQqi7D~#2FA)iX@STAL?(q*0NWoSr`SK4i z9K(uK!5h`RL>_l6eI7fGD4Qpu-Ewf-qQiFK)sBCmY{pI8LMj{x%#h9@`WUqL7$0O2 zG8trJY;P{yQr8;$yYZzzm@Mqu#}*Y7D`fs8bPLs1co{HkbD#!QnS|{)gV+y%hR{0I zgd8;$cCKj0eyE>)whglNAxK$%Vpt>#t1ZX5JRL%{6`^*>y7(}?pZEH6&5V_UpGi9x zh$UJ>FIOa{5D<6-01S0+#k|!-w2Ss&Q0p~I8xZKqE$Bp5Nl`S7rzA2HG!FO~@T<_9Ww-?h>T2VoLnSnVj7rVdQO;<@R+ z#hV>%Ds4IiuCMG+mNU>R{R?%Ix^vW32XfU1G&@Xl@f z*`Q<6&;J1V?N;8KOX6pwe7yPy2cR!+@)^@tZN2|A{OtFWyTC|za2|n#lrEUN$P{hR znS#UiAoXF6_BG-v_HRu*kre&|Ojfb|C@~562Pm6IXus_%RsQVX1XC$~iB#u%Z=;9Q z_<$0;Dzo7(v7!II?I5$!@1BqLFPbV_Dd)~#_s`VnH*?h7Q2+}{(+B|mF*^P(a{s$Rie0GoHEyK z4GnX+O(d1J6X^w1A3a3OJRW2&CQb#uU{R0%Ldk|@>{dhpv{~x_;(7!*pSk_Kf zZtkwupTYla5n^eNi^a<$LdQe*-xeh#xOIJ;t+@>~E$yv=?%W?eEZzUJt^)pSYt3x{ zvU0bh6BZTaR<;J&+PTy53kz_|LmVNlADuq~t-0S@dxC)0I!bcfav*m%Eo)bK2-q3o zWbNcmC&H}=a&)(L<$f=(``#J|u|n+A39;@Bas2FVP3P|FVa@%)+Q}BNe?b9ZVF4*A zT&(|bp8ppAZ2(@YDyk>~kdTl7Nr)fd-!ecRfPsdFj`j)z9UUDL69Wr}2p0z%8;6|m z4L%Vy1uYFV1r-$?6BjET0|z4&6`Sx|4jx_s0RdW8QArU#2`+vCzW?k52@?|&2OEbB z7nh8Wo{FCDe|!4Z1t7pc@MJyK z3`{I+#0Cwo0mw)wD9ETNuU?^|BDM}d{0~4SctuFhD~t9<`!hO&3lU#PasdXTTunEz z&eS;*zoly^CKd@P894wVc`*xQD35CQc}NuOH2Qrk@=&rsJNuGto&zfU426%tf{%Br?;M?`3E2xVqY$9JqUS{;l+{N6?DB?zF9d@~F1etl8x+%|88<43(EHf;r@cEhhqBCB?t!hQZ^_Ee#&azgM zx?C}%Gs1wwwKi`A$KLJFTekB2 ze)d^C2nrJGs6x7Q+^owW5$8DVUYced>)Jyvs9NuCe0f`gP^vS$uOf#x!$J{RzuS0Y zq~DT6tmG|Kid3q#T*Ei$*VRl>$fE?YH-5xlay)yOb{; z&i_&<10A;(!BClERH!jU=n~D{%+)s>^2iP>Fa_gHdW8|S=jN~_&W_&{G9AWF$%cGT> z0S>YEL}Q=})_x&_KPI^|;Mc$ATMp_ZFS{#cnUp?EaleLEh?0|Us=4n?gue(_gk?G| zIeqak$*8ijJ6YQKv`hfJa&i(&$h}$U{^=d2bH3K-v5r@jpfmTJ&#eRh{Xi-0?vfxa z2I#*Rhl6bg#kdOnDg(0oNs-z52)>dnVNS5lw==ZK-+F1ipf4m{3tQ1X-Lj)>;zyYb z(BLnS>diHvfQb4y+dh6n)8z0!_H7jDxjvc?mP(i)ucn!5pbpw9dZBBcc~* z>qiFG^&cc(e|zY*kI^rC&S&JWaDJpeBM2&KX^7b$2r2&5ja9xxMir75xLX@!`xjrm zU2JZrzg4pT+aVd{m@{eEA{9+ecRs%6wBs`f0{3g2FkY2m$~2E zlEyVQGZjipsw?6fu|OrFyIOH#6cmc*7`)A&=lp&7oe{=WlP)gHGq_ypCPNeFkKoSI za)%WrY~IkajWV7f3s8FDxuqx%%9=^~-$6E^EJwG=ozqs0p0y@!^qNv1PI=kiw0fQ* zU?wk&-O|Br0h^tqe}?%EI2nvrdzdU^BbKvmTWl{>0k=!+V_V!?{}3S|fBsew4HXP! z+pX3l1I^E4sYzOkyjE7ecN`s39x5@>){v zaHTAl67)asE8^`Jqzg!*zt84hdA%@QM3`;*BcaSK&XztFW!e?m)VLVMjppm1A=uBL zg`&>m6 z$8m9oBTQnJOShdS1k~$N>R@R242<8mRNA{-!S2FYnNqtZQzY;^3O%Sw zNq(8E5`wl*cn{lRjjxYw2WrD+=0P~g%jykzchCk`w+O0iyf!WLDP4oG`%$fys4ddS zXC&l9QVPzT`aln8WdU$b_yJ$s)1@O7x$`Mpa6{-5Xjm?ynime$7T+$q!@U^u3-1b&;QC~NNb0~uN+ zZF6adiu=r`TbIy(0JTh?hM>A{eC5A8j7RjoNUAwf`!2kKc9$NSBcErRQ(SRNXu2?D z^+l}i_=mNQ?TM_$*}^o~P!5)MB|gKU+}%-{36J8@wzJHaPa@RwI^Qq|4S%tM+a4U#LV3dEW6H{#mmgVQFV{=8ht2Gr27)Sp&Lxi;A zZ*zfHy_ts`FR$1p1YMv9cD zwi)O)WxDpt&tzy7r_7lzGzT)r5)qlMSn{@R9Kyycybb+*N)B*KLZoArpy|vP+J*WF z3hyB8^YqA@9I0s*!v?|Drnt(3ChPB*CakZbAF%+pk5}z(gLeyo!kVwVHP}Id%sLC{ zFuHpEpJU@ z=O@Xt0)Lg%FOZeOI13latOi}PO!p3+kL0%!qi-}Zys2*j_=lc!-4x@P|sF+=~?{E(KcLU5W$^ z?(Xhx4G=U1%6r!Pov|;zt8?}_|9!K^zQ|Z(Br9voHS=Vy`8>~0*2l#g45yjtVs$L) z#+9aqkeL+#YrjY1I0nkYYDe8D;E2bl6Mt6p7ltZF{+gw-f z4O-yVWkLctWE*R~_}m^)j`QPNSs!p5wT!1!aD!GJ#ea6bu5yw;&;Iscb)K&}#+-97;^-*O!h7X2i(yE}=s5!%i+ z3pd;R;qI?LbpI|%`A4Ww$rB#=v%Tn5-eZZ-56iSm>KT7Vq;p&8H*u71&oD)#E2t&-q&nT(+? zxPQg=iRv9$0Ht4p(vE2(bA@(&Y?rp|C$?YYmu3<5qA<;`DNR`>bMqLDtG3 z$#K>qo~Y`H#GE8)FD}vuaQ`xx1ZtXglZ7`01%B0@gUW5)@e_be)dI)4&p)6?Vua^5 zeW}U*gx?8c_4jFXX>A!s8ErEml$|>x17O}g=X6zRqd#Bu(ygwwF_VHz@#)jD5YFV? z=q*jEs?^?r-jt5I%ueL9tPKNLA`8!S@b7k)P}c7mnZ@+B7%R5b84|Kv2WCNHPLVu7 zYu8jGvml3u$E>NUT79KRO4B*fCo2;9Of9kpT0)G1?EXxerU(QP}Xr zO&;Q};tSL)T~xZCJ2b-=P#a_Jnw%(8dzF@z*MD(1*qdy#%PaYsZ=lK+gL(Tl%1?c> zQfxqXN^kD>x;(+~7_nuA_xmTzA;Hp|OY;&cCF_2CP9!MX?ghmu#~qaqKJnNl&IyCG z9mHS;uF2;}rBE0F&1XJWTpdfPlWV<)C)jY|t$#qVRT9$Yw`S*U-Pwq8ju=>ItGj1% zBow24VMy8tbWQa2QMeg7@pb(MsCH4F8w2FplV z`@_$lm#C8~VNK^EuAlC;@6SKb?enR5OC0LKL9)xfQ1$ZTy*@z}^{tTdxJOW*yBWhN zODhVxwer(>U)_~1F75*FoSC7Shj2Mm}}-L z50SqlP&KU#-Ffxf+p69=4cQTweW5PEc!!Gn2c#hA`!X4D*ofl2+swXul7r{=|HWnN z!-vKe_zVxU;`DLA`PD~~oso^bqz4&m>qkMrSN_6@$d7LJfm?E}KVe73ys2d%^Nrn9 zYoqA#sOE=kpJRdSr>LwE!v=ThZ6=uyD6;C2wzP z+Q8QbP3OG7uqaLFje82e$^mo7D_cE?n`dEGT~f@myjNqEn!iux zS?l*h_Dofbg-**eZ0Nb#^8!Tzi2Vd>=iu@Hwy6Bi71TqjQSX@AdWTVrfru_ZELdAX|zD;;88W z_U}h*fmi1{$#eH}?yNohZuBD%hxFODV%{aKKT8;#53rvJViv83&kU!>Vl;Dbr zunW-BCt6a_wT9SPy8yxkbyRAJ*T}tgfp4$1P`eD8>{F?m(=TU*9#>j8#Dx#yCU3S) zb9bJX3B>tC$Jm>L*u?{)Jnxxdtf@V)I#jOrjuS%Bn@20($QuL_;*3l8yl1+q+KvQW zu4!%+_HGb^`^7Zc@7!k-BKG7RYC|qUci8Ab$3!oRQ7tW=51eaylDZ>b5N|Qjnu`aQ zf{rzfJ;prUlPkTPRFQawneSH+=;Ia=oF>8H^thnSN2%iZK)!YwFSAEtX^h3i!6taJ z-+i9XPufJHN%Jq{QsJ9>Qxf`>kbGTuGgLcB=%V5ME7yT4F(TPMw<|3y6OGYh8r{A4 z)M4RgaMMq#h}8lc`n!cpl>U}ST3LM#mqHjK)$h^*>kr4s<~S91MJK1@m*foQ!Ikz?n{c!aj9* z$;w~3Fy)!4pL<(fONY9XY2l>WZaiU~%$>VBVI*Bs$UFAFgr=-Xj6PG8=*a>wX7;z? zQq-%qQdo0-oXcm~P@lwCj@)uTJflf(+ntKZ58VLgc<=+$%)%DDov5V)5_-A3jn@Ox z3mq55OUl}*W}5#h1#0^T6zcA|c|Y-N$djxlBDclYK|&?oW5;uB2BV0p8Mq7IfN(XZ z^A=6a7~M!Qe*fx0YEb)GYwP(5@GgQ0W%T%jCLbt0`d1H8gN8az56(|a+Q`s$9tEd= zKcJnnqkQ)7PPf$3y^4b{9Y#;5K|L(cV;=bbAUOHF*j&12mj30?Pn_dHTR&EgaJA3A8n@p03G5qZD}m#|(AW z<>iu%=uMzDD0(f)A)$VbkWksA7w@hv6TtoSoYD4K81G)uMr%U!^?yx4pI69ML*}*_ zrd>OIdvm->u{@2eH%(wy0{ZDd?f|oNj8ZO&x7UN)iK28T>f}V+MW~Aok5q&nLuG^* zk>w8oCjaR+Aj-O+iR7ttsxmT}C^%{8r8=t&WZ5a&llGlC8c;=)Hb!a@~lJAoyLP*GNf&-o!t+j<_Flfcxco)1Nq)e1-9s`zS zY^BgEX_O-TP4Qv(?rM|>JeNbgFi^rdDQ>*JihHZIA!T`6Fp*lTAfo5__vmN#M(h}4 z0v(|(siBTl9a|(w>pS2C!nAA| zMCT=xThcYs@`h^->p`4npErCZb}-$}Ob}#fdv~7QP^BKDnAt3Hr2l-XmD~OLRAq{J z$Ghwvk%{>hqGu>_xa_7KTu=(;F(zJ-xIUhzWJx8wwuu%mLihAHdk!Jxd(`KaxE@+F ztcJ27I&?u{0Gfm85SQvn-#QIsyacIwD2UbO{9Kv4MnnzG{G>EINA!22@2iJdJK!-cp z27|f}P&xM+h=Ow$p{jQplAWILKr0pcEAmg1^+xU24+52nxRy@1)X&$G3y#ymify2^ zms;ivZ{E~VGK(B*;7DTGPokLu&7!Bp>cA?I<7amh`{=az(2+X65_4aN+M$O`+U5{4 z_jM2moKc{v6&4&nUaV+Jw?%zY=niSt$v}o=8;5|ic+STfqaOIYbJs>#_>8f76Rs8Y z@Cn5)aL5}KK;Dx7fVxK3^t)2p={u0t)AE*`%UJcgZ!wtnsYmEYa3p-^J0c&c$F|RK z?ZoJB;KMhBbgQg6fA`5s{&+eE`v2Du7zY>$Q~TFxXWYEq^A`1JblLaHtf)(02nzF=B0eeE~ak7If*x7r<#Qv$l$ip5i18c@^xbUWK z8$62*S%rFGMZQcmB;(193k?!l{N$9*U%jBG0QcZb|S*(w`-ClAJC0PR()U2@dNEt(zwCfqNd8FT*D1Chx zX0-Df#px(-OV z8VRL(+|DPMEWb-y8O_~E5gKmE`pU2k$LL(An}*9H)B79lU}bAy1%dHjqT+boO+y$} z{6KN>_JoVeU#x$9c=|ax3=SdFu2#@`jk71iz=f1HSg=I3=GYp2X)Q4@JSOf;aHr$Pf%tw)P6SA9zw$#&t&lGBv_QgON><;*y*ow^ zcd8ktqh6&W9+cW{b9#F&6u#A_f3MhAjftR+B3)PE+>H0(lQ?I`Frp7oYMNb957((n z{G&qPP{$EZys$U!RV>t4SU5LUZZDL#J^$tv@~7fqJpQT0qWQJp4kJzdVtog>?cG11 zaF#@Avb_RZ?ip7V5{{R87?bG5(q8^tB`DsPF=Z&l9j(x@`ATmtdLy-Hff$b80gD5& zGu3S%wJqr=4+dtWVr8+hWK2wDMHG2{TPL?$U*w(-Iw3Y_!W6dB5#eTgjq7$h=P-Z4 z%F9B)AFhDGl8}WhT1}7QfI_8XB^)O()%Vu+C33{2z1cK1lHcDe)&RX+yOR+DIbN|T z#9Tp?Gx|H3VuILw$=2;a$?g^7>1u(x(v@SO+C}{Ry^jnAU0r`#+)La#NNtT)CkRu^ zmrPYdUd3xvb^2`5AOm8AYHWd_6535F*yIekT&NIk*HEk%gh^!hjr!M_2rdNqDR?6> zM-S=aTpR_j7T3KvF1_a4d zBi#s;jRAUm_a>NNhU%0YUUTfd>AMhZzpS2B2ShN};%Le=xLk$G67xs6h=V&Fe(W{o z7y7B)zlDwhNyVKl5ZSg$VvpY5x3pMFn2w;GA_b6dO7b>6tucQLmrh+9UqA)LC0Fv@ z<`hu+SDNh3)Yqx2-MD>w$w_*Jxe$Z;G{2$px5ypBEk%WZ8qIaMJ`L5-rVSLKyVQX* zN>x_)Ss~pfoQh5C`2^wzC<>X`W103o2XY*u$K~D%pq+W>&!;8lnHa40xH>TntKo%x zxO&kv5!KEy3uoR`ak{GDo~T?QnR66EDxFC>j-v|8&E@qVUw zF*SI+pxb50@%^GZ=LOiG`ilxoJfk8g%4cdY*xyv%B>_ps(J_eL0uS~X3GuR%EUXz= zHG$WPUXr0#q9Frh<`uta{}o?G+2$@j;p#%^m@7fd&#aqmk-QjJmfBys41kT7A7V!n z_c#EXw^Bl3%j8qQFJohGO*=lofs#C2={?#3HJv{MyhBmy9I(xZzIe=eZb#`vcB@s> zox+nF;)D2bmj=3#eA6d}T_+myZr;IhA4AIcO}UU%;0!O^Y^#m`Kc4LDn4Uc1XF>DxpYsD4dcz+ayJg<$3> z4DUe7VVa!hojsZ;9dQcC+F6Dn9Z7iN*+cJgI(!&+^)iuTGl^j{jB&c=@d=+(sE^;Y zs7<2b+S<5^lofswN}qYl+d5#$^Zg~=FR*XnyBpdG@+5{_|Ki7yXKf)Z0*yrY6f~}1(jlC z5joBc`RPa_{T~2stO+#WDz8m#TXL5|n$S;{yQi$&V1#D(`qTR|X%YpHbZ0wn1F|s` zdL2PJM;MRUjnAxAJKP9l~$*%iS z=l>)Hd)Be%IW;~LG{V5g2GeG89u^nm?nLd!GFjoac*SLFwc<*@J^bkL=;_$~*~ReV!D?Awtkjvt8r9u`A!86+?hE@-J8#03?~}Y}SqX|n(aThP z@e<4n=`+B^E^wWBisa7s@-_jZ2?;%yPJP?OIOFe2 zF2vn7{QZnl%^a}qwOOt|t~qkgGYWJ+aEt_mmVvY&Kp zi6mc+#AnI~>ipA?U7ADWT}^=!-6nwOBO4>R-6i!-FYx5_sP@1A(p-PN>5t{B?#0$Q zuZ_g(|H<@m=-{yh2J&6A(%e2HG}`zZ?C+@&d*-phda5Pl&zA+0AGj;*iwhJyspK(t zdR}i?BsB8UiyILHL}|R2G~l@zEk!`j(@pS)|Kga|i?SlINtf|knV8wPD|*LI;cD}*oLFU3l-cynr2-c+z0z(~&O1URI0{f@ zV}7#beJ?5th*d7sIQ;_agq?n1#Cs!*`zu(p!DPDPinf&SfUz0_hde(0Oh-RQ)*YR z*k|K-%lFPI!WrHY9Ka;a2|7FV18W_XR)m*-pp>x!ggzYFl+R&>!{GMYxL>37;?VC z*sHZCB>}ABT6HwVIvp02wIvhJumg<5TdJWP!1$FzJO2U2L0nOPP7G-}!rZ*1Kb`m+ z7%JXH^!D#1fZ`@k5=@$zKauCRTdZyve z2>^&Z`68y7$fb@ZCWey+8i81KhP5=d*GC@DTc@q-6450z=zhOqy3?6moU)9uQg~YS z8a*0KBL_W_{eSJNxdR`?`1U+`Ki9KRfnTlUH6(DfQ@v&T*c(4_*ym#4j~-A^8#`>r zo)RE>c1(l#>RNgIcvk;r*bwaMDB-cIucAPPHt3bURU9q>u23qouQ7(LI!8?9HCZpC zu~^YxsDG$MDQtlWRF@xFJ0MZsdIqDZRXZ*j(ZSwTr;&hZ=y_G@$8GU7f2%|jRV1d1 zxQ^*0v3mI0$44J1pgP}36G%uG z0V<-VwfF9AW4-MTHGOVJqz#@f`6Uw~627{<=Ry%#f=(0_t^ttO%VuNZ&UK%Ju8vGt z$gax`t(mj z&LV#U2^Hk=nF;A5sToSmulXMktS08sZY3t2ud!H_w6o=f*DR`DN&2P+lkzfl)L|*6 zO-vt1^IWyODBm_BGumIpiUQv$#1#J-JN*>Vzn+Pujl}5&;u;lY@VL+vw!fk+vgT|f z`Yjz0vU~gssmlxG7a+nv%A##du_J9fU;PcvnuqGp z1asSuIWjA*(W2|_NR{;@fPt!%Xn_~6=Jd-*GuW|y5bHDoN3*O{aHlB3Y7L4Cc6D~m7>=z~~k>xWFc)WEQ_|cyiW%9j_dAmZf3Z=Pz zNV?YYW;9;#rL!Z0(AkzmpqG_&g4_VWG{{AY73H*bMge(t+*07Fc!8-Cv(;pK6R3h| z)vjse^uVP_q%Po85@2f&Azn?er<_)&l4@1ydVu@_yr@jc zBjPj+d>09mR*f2*so{@whf?${k^4jqYwARIDQzuwZ%x{DB{0qaCo&+*$7;{SuDMq` z(VI42UD-w-;;z_d(<3gHlV;#rco5wjqwOIzF<$I@mD*_I-nTXyW>|Pv^O#)K;-6@e z4y$Vfr<}b0CZCO>c%x?vsul|fHpTb-Sw+xxp7M$3cVjHS%FrQX3J6Vbk2H~=pqO-r}^e9Q6X_5`7hH7hL76_5;`mNbH!b$ViQ9{yB)#(OQV~Ejll^vL|wOgyT zxbpG>MO))AY*S6~aAj*w%IuXmoxF=m&P3-8&HYS)dem`-bj>Q zZFG2;L&SjUu(R2U3)K@NFUqi)>FbtbP5#+FjIHb!lIV+%G+^MKyi&*Lc0QJ(MLxou z%Pa+J8`aguFKcC%iM=tX@2tqrYL)1w>Rs|$UiWa}hoE%9CX8w|@k4e+ODoOCQ!*t1 zui4SVL(B}4y6!%lY{uy3U~dwKWG&tHzd1`={r_oi_1~?->iz*W3S>9p@glg)V3dn5 zE)};o)&{C!Alv`WA^0#W2o+cP_Hov!62WX0YPb6Y7swi#6+YC?x&2jcs%dL%=G*a# zl<9Mw5joOl2j$iA`Y9CHA#r(l^K^vK7r0V;3j&`Z#tD^A^aQyzCX{COJ34;IL!O={ z$`yn%z_qYiIO50Xdxkr|3cK^18~NWlewKk3bF34H+6MxxV@= zRM20HK(55g+GxqVF^$F`JwDZxL<2kbelSXSayNezT?*|H${ErzfDQ;l+;u5;-rIE_^;N}%nQ|5Ux z7^#wM5SP1OWwf?p2CnQYKx*RsU3&3(IDlA&^uNum?wM1iz{#iPw&uunED?UyEuAkf zQ^xNWv>U+bTtBLq0$N!#s5K`eL0OTNz5$S8nU}3UEfvk9vML60KrSj*WA< zH~U{5MqMX&T5eJDGsoOUeUT5$p{xFFw&-)@DZqYyUR@IFLGy3U9yg6d%W#hjl>bY$z{Z6q(+U(bmz>w4{UUdhSjYcDSUGT?0>3V3hz+J)H-FV8 zx4E)(OffS`=^ZO7FSP!1ptucWmKPc8z11fk?Y6nM<$gAvARlpH8CMr=AUH; zoR4Hkrv8gxqu!yB-yqDkJyp~N-CxdDVnxy6h4B9YB+c70 zbko&FAoteI^;x2uz%S}R4L(!=X)2HbVf#P#LT3oi&`$@C_-+pVc8hyx-NwyS6%;oB+jgK{d)mhB;86+ zBCeeBgr)L+MPu-$Z;YeI9PGv2C?3`XpM|chcH^xd9f|0KnK2;4JH79o`VBS&Gb3UF zMDxJ@F4HPjF)v)^Piw-dEjL6C5<-iPvR*D!SFqJ4)E{1>1m&%fQ8s*-j6#3gKYh0P z6Ep#{m){)ma&+V9FD^;S>$hxtZ`o67QXDWeF%r}-EoIM5qzUUl>g8@nAb6PG$fcC< zFxxKOBsJd%J$WR@jEy?dE$o}jukz~9nmXNmHLpo0JPC%uom-n@<;qMl=oFVM6!IlFM0ryY^m&64NGL z29qH}KEPX*Z(+WHpx zzDeX}Cwws}gJ&)6UaBsG?-o55?oK}*`HaIX%Dike;X=G0OPAVvBZWxhrur-R_kJy5 z9_*1BdA0wAE95V((u$I5r+ArgCoIYgR*c-QB3wh60VQUoHC6OXYiN^J)C~$zOVXWPCa|=U9C3{D*zZRak8IKbTIwq(InpwoLW<%N zS-1HSs0*@|s6Ov%<6`sm(B5b7QeU)DFL|BTUnuV_W%IOYtgNX<6;6TbCO4gL%G_Bl zzG!E9;Qp4eiBLbmazk0`I(yHNj}q_mH%Z1@zaMb&f87k}s^lUHzcDhhvmDWx&GQ$c zW(reB*6=lBeLs~G3knt`TYO|#Rwz8WbAgDJtsLEkU94h9B>VRTvh=&4eL6YOoyGKB zGo9&Mr};HUsoIosOj`>Oo`;d&K@Xun5SZkHHzy`BmS!jy@xKA;^JZFYDp%L;k?f-u zv|eb9A8|!No>T)=*)TbwwLWgI-ICj91n&oJ#4+UZ-T+Go7+J!}6odJ?z%EOrQ1 zd&5B=F2fgyjfKJCRo6!o_O<0}3c{LVeA0LTPw`Sk=uOkJ0&hrA-~cn*a=Eebv3>xl zfIh4>jLW;;`xCJWsR#&eI8H~fdhR@sTS>ctzPzDUDv?%{*Rkv|1oa}$XRy`fq&@X3 z#>s4An6vO>CRsny57FtM6!UKd8aBV1Y5@nl-{^tkim$)ZBg3gA{t-J=MCjytHs1;O~t+K2W zQmwG!v|^#lPGZ@`$hf)MjypNWNOK}P7H%h*yyl8B5mG6bx2$beVftkJH-BV<0la4s z9eqIFmVZn-wi8EeppNweY>QZW8Aeho^0^nsA#<@GN42}@e0j02$P1$BuW_hQE?=r5 zI4f_-6hDkg(AF5ch*3y)VQxgT~M@8$9_)20> zDbYnnwlRPP0FYT>%pFMX*rw%}s}GCiEPRSq7w3!kPuNw)aRQ1sIsB-L)hOzq`^Ky( zRk+PCJv7X(=7Sj@4FGeeu9K`8}wG{kHlSA1NSwxW=Mm2MLb1<&- z5pjZ!4kKbVXj)3bXh7pU~k4LuN$$QS)?=TW<2ymb8jm?nIQo3$aRe{QK6 zJ~(3IvlX@)jht>_B(xW+yx4eIYHfbOw&cVIm_PRG(68XKDzk)4ILzV2q1mMhC9$MZ zTAqTZO8gsybduRX>>s-kbRfQ1-~Gz9!aZy|2~{-77cC#R{c_=8sNCTtc*A6AMsdP*vMt&2J2p zO~J$9A(H8in^-perpylx2ZgX5K)s1hV9{-GZ}JsGYb1~ z{ki%zl8N#3ccHl0YlWAE?ypFnr<(VR9#l8-2Xt$e8KSb5XY|z6B&BXOASJ?Y*R5T0 zuy#B)Lh9+xu|NBBUS$zS-P^%@P4u_|eapFrn*SmaFJ*W<+xc+McSb`oF-vc49IaZXK2-ReZ)E7jGCVb24Gn zi+q_~rBJ=(6(SeAd;@`aHl}rNYx4TM!Cs@iAg^uOHIH1pCpdUu*>IwCiQ=vOqwZ)u z{N{AfylFEiUc-BEClb0IHggPcdOemi_c9RZT`&4-66Vy1lRruXj}2bu5I()tYn($! zusY`({EfBP#$`^KKZtu7z~l5b${sn;}R1#_mQ`fA62#w_6d1S^7GSz1FKsEoJsBPCi0W6C9bw83ji z_mZ2$gZxH{GFy%GInShw8LJE1
    =q#R8%$&M4JdvXvVQCt>B@ADH_M@^f7e6pgz5UTudBAVc%>VK{i%510nQ({YP8Vdj-j|M zxv-a$3Q3b3|H(bq2N&k6e-EeiBr}&~OENa+Ps%;Pb%@Tn7gMj84b$U48qT*?RV@A*(pe*yClzpdo#m zk3A1NpZ~b_ufrtPNny?Bi71cliwm%uj={kvSxyJ0TugRqEG6yhlHBv)o(eUf69%=1 z25^_ayrYzcgO$ZSpqQisRQV-t>|Rd2MyHKl^KbqJ<5h}gN$S2ORQ$WqO8n(A*DRe) zQpqn!Ndsvz*AOWS`xSe4VwU%68|8z)1k1b2nXAO4#u`(s!CIC{h(dP_x zgsy!bcuXveBIWt8?~v%iH+z>B%!p=(JkqBiF*6&l1+qh1mT3V?Wwy0eA95KS$%q$$ z?8l}Y^Yx|Ie}&9yRD7)pGc~4nhAikJ_^IiIcc1B(IQ|tWeI=n(6#(^eF0n2t@b(Bj{+RgJq2`MpSW+p>7R4yCafL~aAnq(#vgwxW|87QxSgt3i zZY$H{@D$v)7*UG5v(@dx=J(?7@V`KmqM_rXZaX4ldg)zyr*5U&v)50Yt_Gu@t>?y# z+Q#z73PCM89~qX)ob>;Ck}S@gU!Ufd*rwdlRDP>%gLWJE5K;xo40SSLL?hE?OQ7aL z^C!e?&V*Ysv#O1bMX1C6cB)>}NkFlKAq_EIr4WrMsBO`4s(jn>(l*EqQ!HFuK zeT6j_^<;YAg8awpaGMo|BiH6RMMC{VzF+g=UOV8laq%XC#ODnp{6C^Te&v1MMG#H$ z<7@%w=&I#4|0TKCn>{=GlmgMIZEW!(A^)0c4%%%vCDeT9M&3#`rIEgsz+#-d8Vv|D zGM@{8?zny+8QQ#yP1OnN=To-V`_9yiOJ6{XX>pht4l*3+v>_~v=jne2qwpJP3=(z5 zsTz>caatldgjtb06@p{7UXXY5)%&$ve)G+-BB~K7N?ID*tLN(>*kvZD3t!rAbba_Y zMcZC;`I01*W_;f!MC3H*Z1L##$N@e~w}~H5{ko-FA{gRZ@{p6uk}Pk|=a-1V(fM9d zGoJ++R%pjiFjEOnQo>V*(%BaYX$oqI#7jLv3o>8PG@V6Tn=(jaDE8(~?oI0qBjU86 zQ8wjkde$_kZ(hs>n3?&^uYt()S<8=8)1(02RC4UW(DeE~nJ%Xy<7rYWrsp`8KFw{! zmmwOmdX@e5uyu}tCp}iBEXlEoyH)^76cdp1g5@=B5PQXGP3A5)J~K96mf_(EYcgeGKF-ppOeJ zYlzw^@A$pA!YrP}Clk|=6Us`&$`g+nn~|Hf%_j?l zt#fgeR5t$Bes1{jk%G48rAw>Ew4^OYeO{9!PVe1(u0ND~b{<0CjZYRB6Pj}=E9xjC z;V~v=B6khPDK=g<>#<`t?IWu#OEIPmEH1Yubn!mw19|G`dO2ENAf`@p6AktEJ~DY1 z5UNIJNlSdF0(9$Z)oPnLr~})#N_t+NPmSwnFUSoWaAU=CsBnr$M+PxBF`Dz5AkYu*XJC*e z3?;#g<@#UVw7BsJ*yr*#^!ii-J^&^{O$*7IUsdizRiCviI+d3|7To)gZyoJCgYR)A zp*>015_zfOPOo^TGPM=IDs-=zs41{-Nr>OcRcaMjfG$fr#2lG2(r5Z27Hr^{HVfq& z;1^)~A`j007-GdTK2UrfNs;3tNIn<<9V=c!r5(7#>x@jxaCX`Clz)v2(_yWR^L1w> z3yv37yj_N7Hslwrj(Pe`3U+sU^aoQWorX&bkDLJQmt)&1X)PpSp@p|Ispcp3xTW3% zfwz)N@tfcOw42G^He>2~KbVvls+Xn*IX>!qP_s`cv0WqX4!a~D+9Ylw$Egz2!f{sk z?9-lKW@={?mettcQZMY0AULZ1T7^X4I2R2iaXG=+Q)K^ld-aHBJ?JAe0BU7v^|LT) zSe!m=T4v;&a3^S-Z#__KnX?daX9V=c7+z*AWAFvh9!QX2OPdZWBF_ zSg^}qm&(sGFdZzbH3koGVIAVJvoU7U^AO1){*z1j|HHM2ConyQE&$B&cJfoPtj%a* zo$aZL1jE;?Yj#6CqDn zg7TyNGiyRq$aSp|T?57B_K~1m!kFToqMl+{y(_rag~FXEWn7K!+EPXITF~mZUaQC7 zG&(D)i-98P1nEowH7>}kd|5;8Ntc;VEd|4h32o1GG;dIkn3jk+9qs$^$dXp40Fsw1 zgiS@Sg8TSl8jF7bz91zN^6wreYVXaK9|xRnvi~6VcpiV;FHWceC%>Jalx$o|d$PP* zHNl><(l|rUrw*ol8?Bh~ixVWHO$9=K?R85oNrq-{bffOVqn_EE0m}P8wF=tB-;sFV zXJLaedcG`6tNB=8U`{Q)e*IwIM}{V6LaULkAr`RoLQU>?pK6jbkxE$h6bopWfyV2n za_T#>uEv}tE~-W+ULw9FuIR6@tzKP~zcw&j?q_bS4`w0S$BKQO?^%Tt;8UXj($DH2 zKh{avp2jVZkrPM=<0LXBoer}2#FKSsB*R1R0ng)W4$qZTE+^B%Qm${4dQuq4g=ety z-SVxn4i3W(-7Ha_kz`+f;8c&TyaI%Qf~iLYn&VC_g7~ACOoj&jO#$SXX3N;G9sROd zr1NY<08Oy?(!xm5ZQG(4>zICOI&0!njw>z9XG_Z~19YEPb6fXaHGvE+BRV-eRvLq+YXuMNtk{8IK1hmADQtq7VBf)BJI@2adLZREKAl!>*F0k z3-O7*667WWb&)~dysODc=+yfRkAD-W*`Rr##glHHpiZ&`e&w1m8qC@o{x>%^fCivH z$~1VCl$1iBmVrvpL1cu1K9)sq4W_jJl_u1B4J!QKT(0PUcR8m2c7J6?Mb*WJDcruL z>k1Hu0**wz&Y?q~QsNPrTXtgf*G)PipUPsd^0#x2`LMcK zX5Vj?mwDfk6ACoX*v*BBoMmXq^mrdwTNqbTCe2EdtE7gX#0-0HTuyuuI=vaUuV|M# zA7#)?Fa3SF%O_`q%g2Qg&9QPxcc+D;qTuRjDs?`V+>~|l{&oK+p+COfN@v)FqtHQ# zSkA}HZFOe7c3@dM7u2X9#ySs%nQql9gfpSTyPb zdLqG3|9Jr~E^+;itWF~d63Zote~}ge(Td1OZ`7# ziqzjkt}qhfZGoL^I_;kX=FOO4LLz%jfdD{f@+?V)DDUTf+-b+(3)@SjTeHVMKxV>` zW&3#Y4`}0M-2XZ0|J4+v*(i)7dN9~H0gw>qb7yK1YL@67yCdaBZEvUxi)!6 zExyLE!tbvIr`ALjy5jG$Kb)zQM_)7x9xQa&5U8pJe_67zpZDZkdz`H^0^ZwAH)d5$Vf@OILNUbQz^JdCPhMpr`e@C7ai7c#H3A_>mbsN_9j?GGlj#4Of zfIsw2yKd?N{u`8sU!TjW^e1~b7~D7Hoqp3&F}6G0^2#sUwkO%Lz?VxH|WRb>YC~e za0BVNSBG?LGm?j`=cjQ2+!YH(ZX_eNt>y`-`_XQllFo9I)ccIYuiSab3?MXZp+6D? zzES?BeBnT5i);5&pKf;#KwOOQX`ie!#Tg>mdboWMfs?0rttry2YKcuIYqhk+lM7{C zIY)Xe)@jhTuf&F`Dqh5&W3u4BvwU7)nGjWf9!Z8Fw?BmY4Hrr&npNvRb8U&n$h)YtN| z_}ElQmWjdz^Nj7w%hZd&QaRZkdrADfQ!SBV;qs~?JKuy9Bcl>O=VP$!KGxs;=Yiwc zDr7F9Brlru@P+X=W5Z9h)hz6!{7ww4N5aJ?8GqnoTn|u}X1$GbywzRxh|aLS(+xmy zF}@nQ8SxK#s9m@13^+ZI^e;i517e>#t+H>|_5UL8t)tr79&g`JyjV+VaVcKhT}zRa z;_ei;0KtPxp-AxJUfkW?-Q6X)7BAYH^F8O>@w@lFF`kY$-WcycHredGvO{)O=9=>} z7jzb7F%=v+se~#C0SJUmC>+cZUi9u=Fl>$nslUW> z454$`q@VomT}tVKu7R8pMKC#ob98E42ZA5P-tIo%@_PAO37M&~5+g0`NoFEq^7k!u z$oXJ@0@ySv;oh#W;J$d_4ao7?KVI}VVExf0dE!VWa9zDZO({k$41oIdROY=l-E*<5 z1tf|2S^wi~PuJF7YV~g0vxFBshPKbywPvwKl|09&Bq$SZNvX>f8{4|XkAgPFXOsxb zgB*+TwzL`#bNE;vJZtYU-_UmS>w7NQ2k3l_E?RhfVgx^7<6;e#7p%GN&DN4;*^5tQ zJTbeq(HsT)@(YYS7?Fvt26TqdTCMyD0NPl1v))_ft+wquNQ z_grT-VN2oe9k;^$HT>lh=Rzp_Kk9%GRKS+Hz+|{JQl{&#Kt{Dws~M@f$8RHlx8xxoxLf)qf+q?LX)g#>VZ|^vTt~zDyMXPv6t=87|t!`z;z+acS?SaRqH6N6TB^z{l zFXq1*H6Z(nvhh99BTf~ID$mBsHB4{C5K=#YI_lLwvO!fV=;-o?+%+;5_M1j-mOy3s zD8-~j3uwj{Jox^mQK>PDOP`OsBU0Q$j~-=_N9qM$*ViS3Q8HtO6cH<5@C`m{Dxyj# z3h%VIMlA^yvCvAn!A^%7R(!C!FU$FBr>`L*Gu4($fjO?p_Mu8>Nd0UHvGGPGh9%y{ zx8L7-e3>kp)|_BDbJC2AVx=+}(JRMpc~QOX{y={}Y^3X>C5c^Cr`zYCkm3lLb7xuRSYd4yn!ufn!J)hSHhU6; z60e{iq;0d)mVekgCYSvbbZ3k`S5FhYsY@!*>0zR%gwF_U4$cerLPrgmFUfV8n!o^!;VthVH7axZxh%O;Dv}K9< zuW{E@Nb{s*{+D@aBukh_NJN+wTxQ%DdokZI5eI32sPm|$tVfrG2izI1#WZ=9`3K{e z(D^pAK?GvepQjX;>FKjQ2Tkggj&QVPIaxs#sALJ9a>27+lFX=?B#y?9I^Ys9!rG%} zVy&$l`^S$33?eu3-uoyfUrX~)C z*jfFez9{0lfG8n8g8c180Y31$m8<6dSyo%~NM%-%sbQ0wJnm3g7ijPV?;79*%GwCL zH#HyU``J4zVOu9ZSFF5(2=W2d7>kye+%)u#_rXX|b3*vRRVr1@UTXS9p}J>hTSXsf z3)f}iDd5UC`vb#=2T5QNvq@Wm9)-@#G|&AsyUF47P4!~LOd78%l_7w=eR!!~TN&2l}w1L zWLJpk6ZBSD9M@iO=gjC^pBGc{kIZM zq{TlPrfQAmV-EzFSCdi{YJehJErB$&s$&qNZ_xC%8fV1m{c@qENjp4ECicTBOAc8< z-H*m$o;HWgXpsbHXx@MU=Hz^yh)aW`WKa%o%pp3+gxQwbriLSsYQzi`p#eGg$e%wG z8%~9X-=LbO4c$z9>UF)+^klkt`n(++q3;j0-;TS*U=)@M2^rSM+fgavj_hZnwW)?R zJhLz+R87@dI6?Lrt7r0O<3(wAc}z9)Muuel8!Xu}qtFlHU|a|XTpG#J+4?KQ7_y@* z=O;#UdC_f(q0H&D07G7k#_z+=Z<*IZ9Lcf@b(aq`^o^`}VwS3I0zE4~=(`~??lr%7L zhHvq%*>aWBwAC#H-xU?A@1#^-a&-?zF{JJ&ZYtPH<6&NFGe*pTjN5)gFp0QZstYeL zF6HMZkk9aPIuU8l+w6iSvT&_~ zVyfT%dQ^i^K+>v}yKmtoxuF}5soP|;ebPDByMo4cc=7imw7>N9*@@{eBX=Ah4cMW6 zkAe!Hvsq$GqJ@_9!(Gj}lE1tf>iO9cL){qX*c{IwgXs>ZP-U(k4u18?TWaADUCy&m znt@Uwv5xca=jU2zpm8;x>`ms>)Xe03vr=%R90^XBVXLw)_APFRV4sQAc*OtekssF6 zSZ^9!qOW?9H<+_oRRxeS(}lV99X}|d?1mT9RvXPLbyEwP#pA}jj+$(gn24U0v(QM< zvc$iMwVbcC#5X#&N*L!fw}!CL(4&vP)XL^Nb^v$gE&ldVnkjYG;XgL3#TRgHUQYNz z?J8p++5_aL#~{;0T=ErW3Ei-BYL(Y?8eX(9m26JSn`JJIBb{eIfxfjRVFi!VQ8trO z&L3+FrLHgnP!6?A0V>Ud2k zxy~dp!&n84i83*)$u7tyOE1IQyARgsl8*{9QToz#Ws;a{#RkuSmF;`Q&k~PtArnPD zGso(lM=#}xQoi92Ae~h+`SF=T&UCK(#K(LoMW`Tv#p5z`b*6or`R5re>UsmiWpY9IyOXwAt1(Y@`QCIf?Pt7^9NWYJ^fVR>v8g)xq zVf*;i3v3a)pw&XPXH)fkCCdQ=(I4>4Wa2l?jr{I-dq(>n6;aW;8vH)Z3_A+K=ao3H zgacm_<8e&CdMIx7#u%RSN1-p83S_VG3+;dR8iy3pi;~1NkdDTbY&C+--G?(BSZ1Xsn?sam+*`m?MRmdHpe&^Y6C-v_rA#1yQ~<$WLtI1#Hhb@ zFOfCGe{rzEG*G1VB_$ix7lNQQzL`Gz(MzNE)h9KOvJ`9m$OBiRB9Yn{KA3-z@MirW zbh3SZr>4H9(b`mrn#@Cz$`D#bPuy%gGI+0wzO_glJFJ7&{~n`u0KKIp?6&S{eU*K@ zfgtncNtrb~#NMD}OdmoG#km4vunh-c^x;TS#6rpJ<%F!sD3Ujgf_mo-$-c%cb}%9J z_{yVT4+KHTMH{k&%-h_kWYJAH8#*vWB$r?F!7{G1j{;6UwXvqt_-`zJoU7JJQl);# z8T&mej$ki3=fL0JM*pHDIU~5t>GzZ-bx00H0CG-q=eO|WE&0D2co5JZfUv;@`KGdx*z3E0H>Cf4{QvsSZ@;rqX|*7S zc}8D&2Q|IyfWMWaX4fC0{{W~ouzGID<)>6@pKeGKg71wdrmf`2pGD8$bs-rS+>Q&0 zr`8N{hrMkzhx8?~e-rr2g=$)PMLwYW6v+~V-tV{&nu@bwev&C-Yt)5@dt9kE5GVG_ z`KRQw$ilK$R>q5gSiRHz1xea^=Rfb#4M;f3KAS|em|XwVQFtYiVa_pH(7r_7SV0gs z8^ddS16eR}XcnWskbv{J!zCdzdm45aG>?0#wKF2qmR81rJI28~YVl&(LTqae(hLY^ zI_}g7=iOVf){f59@wY5Y-t#Sc>>misABNjq9mPo1-tI*$Tiv%7_z#___~lKx>I#ih z5|oSUHH@(V*Be*~5SMbAnr7GKr=2+x>g*5k8SE$-nMy$f&_HB0KR^RgT)$E>;Ovl) z)^00>SSL+Ets#h6*o5OGhG6Fhuy1o((A^(G zYAvh3Af&UI@JeQ+dbsUVU?OFrp42WPz?KS59wsg6xZi&BWO4gv; z0K6V$DK}>5&`W<>#edCd8WfRU-DhM<-M?#l2ac_FH$OP}h}a&=NW7Riv-SGR7DuIg zKA+0`TO(lhw-523rQuS3j-32-WysFeck=*~+fmq)#EnYrXJt;Q;ZI~;u#Ru7=i3mh(l1puIf;AhKL z-=(r1uHbOksIsNm1D6KRx>-CcEu88l$Vu9Rop}r}#5Csr*{?WbRzH1mt;H>K3~Yfb z*`aDtGSof%9joC<6si8;)MUWvajl@oL&~z7>s`DGgcJ26+p+|vJCu$8_NScu8nY1= z^KDqtCM5d~d#XT{SEQZe{7m16t*N$cj@8gh^K)`*)E8+ATwQc64W|0Y&;l}HT;Z~PL1wr!l5+G{Ucl6*MovXIF zjXGoo+m$m?<|rq|FI%E@Ak>pwxCdl>4khH)bmBY1-BY8KQ zq+$=X6zHOw${Y@I`Bit^OKVdhL1`m`A%)$vy z4?JE1r+dn+wXwj|rBOWGtayjfiwZ*9H-^NKRCLL$dE*5*uMT`M20=vh*%qP0=yjBs zF{ESU{ zx~bxVNU5M*!tEp~BW?VPZDN^jL$W6~s$2<_By&)Ku0ii>o#H5@@z#h(xKVAZq1vMW z9vm~EBK>sGzO0#4Hyr2N!CrB_xO=@koj$8ie!^dif#ES6u4S{xjmbf%S|dI`uqG|l zcT7g$%Q+WC7AXlC4Zo>meWa@XY`14tS0|fDXc{;>{A$XaSSOEE6B|HrIhGKTH`89j zEfZI6+?QIO%U$8gJ!W7p=td`EfCbNAi;*%O-V7Ip3#(hwB7X|v8)lO9V{Et?P`P&x zZP$$qqHsRf2&PRJ{FW|(A`3~^A^#u&8XvM>BylRyV>x_k2`Oc%6-)`{W?VQ`tZsTr zBT~%Xy#pdqsLTsFjS?dqyp=!tT-DkbvFqk2WTj-HVG7DGia{H=5z>_(Y+!Z3fydg(*Q2{hE>Q<(#T?6FTI$jqL!{b{y8yslo64mv zJn#T;&cuG^nT_}q? zT}xMJT7S$Z$E79dG;B3lYvq9H6Yo4KB*0`Z;|GNHXnlpb%|f?sMw#sHA}x?+OW$uJ7-u4Gk;t*W(GR&*gT z5+oCW&^#p|brhnLk>fHS{EOGmhA>ijnEd>;V7PcWZ3R@0B9*DV>4n$}E;ot|uQ~nV z7-{#3a~u328@m#$l@#6OQ6$`|Q!TurHiW|x)xC=GTma}WIjt=+U)IO9eISf@=)DmK zc*4udI;;R>gger!*p&GmxD%{2y%Ks^+ze7Tcwv>XgyB6Oe*;r^i5UYqjU4IZAKR=6 zi0I3mVPUm7<>q6~n_Z$myE=Gp^JTkO;BJ9$$7PQy^ClB}PhsZdTC~$`#0cm zXPTKp+@N%s$GRxk+1q1YSWH=+H8h$`kQ`t6=_tceNDYjy@0?% zj~L_6d6%eWO84qGvrE39{)kuu4?L|8ckMllM&D1M)Ma~!Bq7K5yeS?h!39!%t?0p8 zKty_03;6>;S34Jbx3)gwq2!rlT=PjSf@}X=PMi}2a^}3|A z7^x3YN(liqw_m@&p|>PyL<<=zPV0}hbp@H2geEg|&XzUA9|*kw#vmQBZExw&B-$6U+XgYPe5wPHUGFYn|bU>~Y@BttzMgyDeK=G)8?Vl#4a zmz#c)c-lco7zqUc;BD5sRs>WJD8n(pKL8n_z4FJZGo2YlRAIX1JZSd*JIT)wpYsdp z;c4>2dk4#=SZm&Uwb`g?=IqNYi*B#Nh!vuV0pHi@OlWslB8GiS`*^_}pQw`81MWaNDmae7!oM=~`bmVgCcrm@u!* zn@JXZ^jY^=7Tvbmt7Ko9Q^%TkeNB+BBx$7i7Z^ePjpe;m*bdh%ZVrxX6G3iN71LM` z6vxF#$_?pUr*_9Rwihd?9510ZWTXxG}f%2SZMQILu}UWT|ZsSd@Ktc!7HFi@}>5{7MRNjUc34&E0uns zdAb>Ku_pIf)|7_&8+lUYsw>F&7{>~5kf1w7#Gj+5JdnfKrhYk()|Q`++Ddt}B)BZ= zkX#z3)04IRL-)O^%0z4`z&ie%w$YrazVaiJS-k+wbjo%HEqfp_Hs4(c5*!AAUX-yA zW95z7FiVvzm=e+=FsFX5!-|AAPDkfxf^aepw^BYi6RyBN>JAp`$n9!J=N~;H`F*^e z_e6O&)sGTuW|(R%J%wyozBXL=#r4<_^tGw5jz*+bkj#;Xwn%#9A12=~ABEXAdBxR^ z*vCOP7gse&pc}p|&fAW1`^Pjz!q}mgDeZ697S`4^%Zl+Pr3*U|S4Rfg%|m5)FVyT2 zz%{sht4fCgH^o*a{tCD{Ax4udcCO38L(SRY-*8(yJ7K7(1Uc`78A30E&h@Ta>XpKk zY}GQSPszT}-E+vj*U|-u9G2nm_p9`ZTpG+!HOPLN>v1_L$<5*YCiP{KODE9;idzDX z{=FN9upg&Yexjlj(V3^@%miZiRI{N9v)x?H#E#~O-}kS&sn5WLX_do1+g`h2zfAX#r= z_Wh;z_*a^)wBYdF0cDAC=00~rmbKR6pA*i-#p7@FwZ>iddaEoc*zhdsm_jpoP_~`N z*c{-raXf^16`DATz@6y2zEG_Q0ff1R#7FT0U_tkDLfyt;)slkY$LG@(+nzKIwk!iM zAH3bze7}vpG0I|U?PyY0+6M&L&A$7bJtWGA32=n&rFy)SI{+{1kbSpwM!rtvb*W;i zyUdK?$It#ih~)j28LrexIdVOINw|2gdPO+ep7&t6{lksfcz zHGhq@7qj=0QK;5q;Vx6?Hrj$e##iwb6ra!enbA{|y2x?Q1^4yeYZhBRAzxdC~d=*~Z3nx*5ZuLll|mcbh)2P0sqtW$4~n4L4#Qy-`+QHB9+LYrS*zfQBLg5Y1@5M-45?+5ir;d2L1F9@{;iHS}c%y(s zvJnsvaH9Kw?-MK&^9N8IDa(v@(lCUWQTD>yc}UWg$jwnV;B#{*y^g_!c|6^CEJhQm zEe;~#9u-OI`N!wB2ZRHwAs9nv5ID*z*_z0t`tJ21PdKkAeTW%ECNJM6Rny6$aVExjl!_8_PUBQp`- zPT<%kQ^oEv#=0skb-96kIS(pzwiaw%vM|!I{-_#~q%Hpf#vFl-FbZ&uOUgdD(f*>M zrLD`A(F#eUPVit9d}n+T1AMe*6`Q4No;zjUYJZ-be(uLR0$-%Xup6o{0JZ_(8E@`h zg`275l4M87)QYy1sA(t<{Nu64Veu<1zhLm4<4`KL`(y>Pf>wm)uHK|fS!18-wplT- z_@GkHD_QR2EFIIEVap#punA*fuj2Gy&-1gj^;6oM`L(STe%TM{7SKHc*y$al1SG0i zU-=tkjiIx=a%f)zUenYCR;k$Q+EE+Uo%Fl$Z97UU3c6jl(&}VeljWP-B0N^(uDrKj zU+r_uu&PDw(V*AI$1du{7KHbTKFr4-;#e?kH^^V>HQ#!2_>d<9+VxN(aOtrAF13=qQk2z;VaUUBeL~jdh`d{B3}WjuPTqVS zpuT``&(|0F<*0?t~p_k_me-3e%1O)6ul`^m~(116S+Z zE+9vNR+l_R<|oj#Otz8i_Z0!Fp$bCz5(=u+g(ljPv@DvBw5Oo2AKZZn=2I zp%LyqVQ~FdrTq)>^}iwMis7mw{Q+DMxBLM(h;Cck4cpzp1ItlxUVZnE*QNR|dfQ~~ zL?tw^dYMBQ{v*J)|E0f@3IdhqZx>t)uD#gz|1;fO`k7oLt*i*N z3}PIjs;ys_ek%-ufaL07L&Mx)6s>+1E zLK65+0Z}sth%W99Ap`Bv8LQN-fw+jqJ~=Z=1>bHQT$Jh4kVc zZO53z?t*9KWN@%gjBp#4ETD^JUzGha6T9W5_D23Wd9d+>vzH;kCv|tLl`fhZ6OA8* z<{vT4cRB!(XRf`Lb;TuR1K<#st8pUgA!Z2qOPaM(IHN?T&yd#PjO>8 z>@LX~RPzRB`D-pwYCR5YC`+Jp!Cc&l4m?#HZYmF$Ds={`tn8(_EN+dN!-ogDar7;Y zQEpIk5yar#f21gkA=T$BHMj9{V45(U(GrEc8gSQ8uOhIvlgZv&ybs5HVZN4GYFcBG zsl=pCvOQfU$MPqOhRv4^DBJUyf;(U)wBIb7`#5%xQQ%uR0n360G_Yfw+GI~OSEpRG z_BqHF*v;v&qT3hDDP{+{4GoioM#7#PgUivX^N7~gj)l)r$uF3?b%gK<+LAH}; z#{#yz!1c?kdU^`^%f&@Vs%zx&#H|(lq>`3*^_On>-Eu{eNUoo63xx7e>G42xu>nvM z^HP9IBHpS5yr}OrlZ=6g59{bfQYyolVn@;I23x=eOi0Z_NY+Cn z&b5>{O=N8h(J2!1urr(e-Af=+#^x}llaPn6-AXr-`w!lFjpo zfuYZM$>}lNgeSE493O8+dd1XCLET6k6;%7~p2l?S?ZTXRj7{< z<%>_t9tsjnp{au!n%oc+ZvcP*lWURMzN5SgQBrZ5Zxs>(`}3Ik7GY3yD!vY?yICzE zJC7R-;)VFt`tGkZJq+KDA0z_#jimVabxnRb_F^asj^KO_r}Nv3L5k-|X2a+sc&B?c zaH4w>(dxk(Ml)^O1OC`&Pz{Q77%8kVks%I3N*fY83GJU}Eq981^E*rS zuQGNIWa+IaPC%C_bRh|FT|nCQi=LR(Ja(~C(H|6wsVnP5Tm2MIc7|$ zKBp}&w8sBnZT@m`aqTI2lg5x5qXKu`gMW~Kpp*1Sg#6vntv-I^{8oKc#LU6Ps$~1_ z2g=lM6g&!qNay~dF9B!4sDuDm^ogwBf$nZdu@&dht-JHXvP_|=9fVkdP_E5b=4EQ- z7!S7Fp;hTwurs}oG_&7Dmfvu0Nzfb0p<#4~+yKuqw6Q4w10R3ZKH7mqUA@Yh;0A_Up7>6F*T&9%r`TzQgDJd z{Vdn2I!w0VfvfZ;OeVWoCN#&$sN=g{e{_9>lq)mGUQg4CBlizE6S^=hIsSY%&79zK zbVLAg5OIYRq~GQj!t#c@G6_y1%x|vcS}#mVvdmYbcx=U&yY$Jnp$AQi;G5bwd*U80?BOnCJUl=_yp|k>+p9R zr&`MaypRFBnYo{5-eCR%`1Sn+NXZdaoYktav$`kBH?Cmw%pLc2tJOu1Q@S~Ep>gJz zHp5D+d%#JqGje<={TtX{nhQDN!LR>CcyY7KWHZ4Se;MVv>MV=#ue9Avrvn}3M42p5 zA_1=sr)N&%9t9K@<)Nx=7a}C#dH=cQ-oeKL2tn_yP7A^}B=CIPW>xU65eA&u3p3P~ z{@^h(V8WdmFpXZ08S%*IK)8C*pm9EzDI^Lips0n+jWMPKD|2{X1)@_|yv(;Yj&Tq$ zbj)%rI^yO0ozBWD|3H=ueaFw71kK9CMkIy#!l@Wj-}AC7=P`oGHcRI$mP`~!2@Ew6 zC!!COH{3PSbw&$-g|d!0(pJe~ZdPlW#ukIny1n=IXne=~TTOP@*0@J-D!oN7H7H+5 zhLTJRXV;iDHr+R^p&yCJ<#nad&CLK!Lp*(gpu|9@l!8riECBk7%{}x|&Ov9f=8Pcc zHjK;uFn$Z+&5s@*%yS9sT`OU05~ zC+Z%2NIvG4IWc#bm10wvT@Q*jSQ#nM)CX|17-@Tk?YyY@r4eV**~Kjuyf8!nwiXQ9 z3K+SVN0DaP<7et`zaS5^=NvAT*g|gRSe7Vc{hkhiR-6Jtcx}2W_T9!jH0*Np>$0;o z*98KtQ`~kK1YQhb!+QoB|23cLp0*e0EgN*(*?Eu_4HEO*Q8CA(`b}I9jMst3eq!HB|L=&_N}!2aAy=9>@Zh8eeZcgitx+z5f1c(1j|F z(8r;b|5S&BEC96>;C!Y0VI`|o%ChYrq0g6GQu-f-&+{J<6(ABC`9ElX7Jp48{|Q@2 zCyO@y0o)E|qSF^V{__X_iiUs9F8_&XK(Zgo;Z>Q*a6ab$lgBdu=j=KEoaV2Y+CRU_ z{(Hz1NIz7)|L1@Ru9DK-KLh$#=mY@&ect~)S&~41p*>2XP$l)TXnmF1-a0(2J9&MP zX_MKuVp&guEpS!>w>ZjOv!dA?0`Dgn5Xg6!C2q=jspO z{-v(ZdPDo~(A;-Dt6|+=#J6~6+QxBsxRwm|DGBX8*G272=2GAa%kW;F3L#HefAQ zV#*Z%g&fCV;2@TWp~`ObL_JCLnJgqPXNkEl#bVg3s%w%;nxF@QWWp+c{cVl8A@(y! zd2E!W#6|2=w4E7p2a5|b^*3c4LSbnFZaE<}$WsxkzO4CF_GI$Cq~CBrZN%r)7xE}< zV2NXth>VRC`k$j)Qqf(;Hx_Vi|&iN76eoIX+KyOx~J zwKye=(34=KXW+XFay(NQz%DG^Fb`iM82*F?jU)U5C2;vf0bj2#>!{UpA)wKv6?Q7VAblba#0hX$%vV+MOGNI1Q`fH`&Zr z6s=TtOV%^2vjWaGpjSEX1XMEjkE<9hd1y?2eA!seBNCsCB&l!LPCrwqYS)~*n8FAQ z59p(X@~M-ejZ2*ACjZ{rTAMs|#uA|puNk;T`^5Q<&I5U2Q7J+TLU?wdVkN>f!!>A^ zm7-7&VUldQ6!^UCJ)GhJ-P?p!<>LwN_P8!Q z<$7Rj%u3!JTeCEz?zxa6%%&@wa`%2azW)2?>D1)uyQRg+WMjJ!%_Lm*c?)HTa0dmp zg07n8^~vX3jTSd`PD3XPJ1W0z`i}NQ?_Y$dzQUEghypTB!j!977EaCdOIT|_Stk_X zRhJEL`tSVi9Lu_MSv&!+67Wc~iDaM{cwdU2BwhF@E}#!L@7wf}W=Tl?fy-_E2c~1q z;w(^64@p!JL|9=@dDX4&o;d6#Qoi0=P%yMZNIb;G~>EsbgQ;_k$$bloTBV-}?@--TD<5692N3@P=V3A$bThJWXq$_$AG|Art3gitO~Mt=z~B z&(xSPJE8ttGkW(jnK9v_W;aI(6IBqg0z&~6#*Imbq5}&11kqqhZ%p=}kW26lyOnHS zGa*_O|9e*$LEkPS;TZo-(d*x*TY?K9yONU)W15jSad9bw@oZWMckTkvfPR=5sS^<> zu(VrO+|&+lG;NCdtL9$p!1Yf(jxLYfrsSbD*+2lgK82>?w&Q$&?im#G@=>5Q=7wOa z@j`9!br=$;c#J@t@F2SNjGjw{AF?lP7b}ApG=U0iKRdC>P zoQF$UyOpfM3^9)<7?)*fr_zm!qN8vq>JPL6dXs;+#z=zmwb3?awx)M1P6=Xn8RATl zrR8A!S6t4B3QE7)GDKn_mS4?{O@(eQI$}$!cG)SqU!mY^Mys)UQYMh$#7fj#Gg{__ z^6jKCi)g%*{uM-)Htz1{397>&{b(&oWO^LiPn;b~Nie(2)X;|(-bBWCv`lIDsx<;$ z+ll^mr^Nb=1 z=B*&QX%G>g!AOWU@_XWk?g*S#ho;<6v4zJ*10D57NCu*B^w zOFt! z_YMeoPCBwCmQKaOB4byQJCdS{;tQ>QFID4i28y-4pxU5sJW)>r^Mrl8ZwBdBViaJS zZS?1YZtnclI&Qm~rOCUJYp!w18~^~!-`n`F$b?O%x+O<1{}Bj6@|OGVfgj{6=iHjlh4Q!QnUU zN&;J}uz6JSDmZ$*xU?iznPjW1cPiWS-YbKT+|@@B^5~&jbDozi9G}9~q>DkDH&R#G z%PAw((L3y!{g6#C<~YVKMk;$iWD{>RdG(-Phtu-ONI9z&9MN_iUGQ6K>hxkshWTo{ zF2n@KnmN(Q%pu>cQqNC?;Y!Lod3h|#0V%qmT8na@MR{sTiI%VK9bWR zi|iKUL2olj<{ypJlWPKpR;7z_% zsFQAEq>I}dc|dSk>F_$qtfzZX%NSMB7OOMu3{pQ*Y^(`dJKS1(TTcyPeDhE;om9?`l2`-!IRXrfkj&$pP7mr>G8>wfukL07@sep7?0oftZqm%+?3hR?>Z8)?UuE z8q%SbhEh)piIo}@-gpQ(LUh?!{5B$^tcz-sbD}kaf%L8vBjMf8cTN(0+oB zj@d1v0utu1ZAa3x4eiOh#N=)d-7V&?kh58<*-UD4Ck>ibd{0Qb$E-P(WKyUN7k{#6HU7O!3_w!EPzXRNvtUFqbbERpzW z`D=MajAAW;{Z55YFUS1LE4+B>jTdgW+|hP0`ZEw^%v6`9EmrZWEXp+smj=C*JFb={ zj;>3-j$8eMv|_}(+%#PykokR!R!fiM#r7(6dyik&$d}7jNHAAV+M1*;+q6WA;G-bz z!T=y2$y5drUbAJn=|#!r$DHP(;}!K<$oEcn6Sz9YVebx|(dG>it&1Pcs)`o+y$uQA z8*P+YuKiwi93hOwseG>2mU?>(%86f>V-H(Y`+iyva3k;a6&LAm1;`6AW~2QK*4pCR z(6Mi`-u$T_yz)3Ch%(CDA9xj(*UYISNIZzE^#|ZXu{Id~JqSiX(4To#a)K*cs?xJG zQ!nKti?L3NEbITqF6KKjDr!7)>^j+xa2OB18AA3-1yO+Ia!<%evn!_KM8s18qSdlw zMNP|tE?a#nVxW0+hM^1QgE$=_#hb{_LATx7@>w+72|Obw5Tbr?h~B5rRt^O6j9jIv zbE`E4b3jELO`~dM+teR)7RpeO#RP6tf^QY~eLpzAdGQYjateLh#*j^j|>S zr4o9nRfEN_Wto@UhaUqmN|vIEcRR1h0EceZmI6yl(}{&`Z`1=c>-^Q!>^SJR8HhN* z@#EBF@&t}k;UB%MutYr*T%*M9S6g^W_H0URk3%~f#+84M^Y#8^DL%et=9$*0h#9)) zWUfhE^ILQ^PA?KKqU&nnZ^9Qfi~3ysl*!f*WhB=u>vfs~Uv9ou(U_5sEFSfuPEgif zJ{ad*&KjU*BkZ5Z*wbE;|JhWRnh;#@dT_}&&O{xs!DhM0qHba} zC4|zWP$@#f+$Ml2-_d+MLpy%Dt8SMbKE2Ym+zB#^S!|o75^kyhWG1{%Br(s>b$JWC zCNA~~=AFwwx#h`L2vYMWc`I!m4cv|x64fr<4EF}-_ha_$UMe=Xx5^l&buf}}R9(1Z z0_ zs9!r|6McW6dEs`CT!)XIx55Ro6z)28R@TPHpf)%QxPyh((m_kJgZM|Axi}$=NWq)m zVq}{AAHI4UdC?=vlj9uN>k?+yD7p#;GJR$gU1!KSLE7H-Te(jzCJ%5zn>U<}i#MOo`@XVpassem>#(`C%ChKS90V6ajX$*F<9*a{9f_VXHh22_;u6O&ewt;%yuMbwpVKsd4$AZ-V~PtGhtcrI8Mav*T|eTrH{N5qv( zCw2Q8zUX7sFH<$mgcY7D_qK6-fZ8rWX84G>u0zR?Z5T;}AFUGdOaRvA98gmJ<$#W}W(+UpM z>;;C|Xw50q4^Abf=i4ZAYYN8?-;;G@&a}}Sjw@wkI-KNr2hdt|pe$?zK+X7iI#7BO_BF*&5Y zxHvwkRt_USJl07mlv?BmI<*T3hWv!E#H%$}dd}-jBQNiQPyx}MuxPDczfb#g_{*T! zMX|X}6wWNBW~K|nvjm{QapSdG5O;k0#Hn3YP5cL=OFT)o<;Db|fK>%!$$LNYN6KW@ zXgo%Xfr^poo_*X@hlN-1t-l*QGAETye} zU)HAIe#rx9G6&YqlwuHj6vV5pu-Qw4kHql*?N(#_e*Shf_qmOU zcBZXkf}B~ej3>Mo(InFl9JG-R%P$85{r2er&tzC&&?c#zEvt!ju}*m{V=-qIbZ6p& z<874`05L)^^u!_)NvZbZ9v{Id=ihdR{NJiS6p_4je8x4NM7#dZ)n)vbv>ROfekoK3 z&zY9r`vd|d0n+~o%uPT39m_lTuW>nrU)ld}A5&pP*kT0-5DGB=+w1YaKLnEJ>U_Qb z#@JUt#q~UE4#C~sJ-EvdJi&vzd(gq%B|sp!yE_4b3=Y99xVt+H8X!O*JNe1mxBs(y z_MO9U@64^aeY;wwtE;}R)@-%ZS64H-CR>-YzQcqskh|Q|-Cmss)8Cl>P*Ftx>L*m$reO-+5sXPMKHupqX%{K2B9m(P|-2QLC zH>ja;#WzjHyH^u!=v8JuP1B6kUpF{_E&Zx82yx0R?;qWQNH&f0sW^fWU1Dv z)4Y%)g&%49$NQx-zFno6d#9lPIqO{)eNAClnnkoUs%h|w?1?t<=|YoT_*{pkKYiHR z)PP9d5;(mYm6_#XIs;qBJSmar2W&I1H_VjIPuoeQdD<>;=C*LvyLwqqSfWVLlWU$H zx*titQ!p86DgF=zDNs8pR zbSzP!T~b;5Lp)mwCUEnmTNe#j-5E2LgkFsOfUObs_=b!GFsCR))VNR=Sscr+rM9(y zz5LzckSB+(6dX=W=Ihh8pu;2(sf~k$j2jco3oJHthfI)aX(4{E-JDm zMey2pkADN%KC0*P<=Yoq^wPK{|GLAr*6=GhX3~cKG%!%tNb44Cmn2@ z0SRED>C!SRTcx^le9uJ&FW$Rg(RUEi8UL$ga7R{fc%-K))rg{TmXDyT(I)w`4uk-p z{T;j1BY4njO`kCVthZvu0iyDsgc0zZj)EI9;OtOecK#Yk>VvcBoF-vV$8-ZGL|#;_fRvvN4p zl*W%$cwrg#e&IK;e`*isnGFr$76euv@1l#;pkX@t;z=KI6{K#5>m41GqCF{V@BKNjt z%W@?W(bOqHS*0&G8GrLKSbd-pwnCdHC^sVNhu=#1?=3txUC_*et zQQHvY1O=c+<&o`r9}Ll&`~-skL7+xIhGQVNS0wC3VU>0OdW0b6N=x%V!G{8>mzgpp zp*DPwf$`EjzMMu7jcH#w5fJvNYC=Z2Ms2p2a|4>i%24%uV64q&SzdS6&w0y1ikW{a zVKLF`FsdluPN-yjGeT?UMNaG3G1c8d;(%zcmjcfu_&6A%pUeHNeWru9!j^yssRmTY zP5qh(=M9#x3S83$dB~)C<|Ar*qi;xzGf_NT#=K;NX)Fd{VhuJ{N)gKHz7n<%KK3^0 z1g}xIh6TB6J&n2`SqhS2$pGd-Ji3{O{UoUg^o=Fe`*aE2u;@9GnOqNI6IZbMidT`+ z90zrC!%f)@ZLHx@9`lzdUF1nBETP?%h7R?e&()}^O-+$hsKVZnrE2f$9Z|o2HKE-) zbhU8(iG|Ly9mBeEe0M;wYzl1obPnVuU;Rw+z$$mkhkO~H%xm2^oN8?rz6((qA^Rw- z_DYu7zaiRfh@AQ3274yyGQD--%fx3WU6N_zLspZ+X7(;=?3($eNTnfc|DsS1BwAZl zva0;};AKr3>2*Oe6y!Y8|H*}GGYX3&%?G{Y8T>_{ny;rR#{ox<@_?OZk%)*YUYaXJ zih7D|5X@eIJ}`!>gk?adX3DU9uYl$xzDpGyi*6R$aNB3zU6D%fzY@w12~gyfuiaK>5q9hqqmZJz2RO>3u&`uwiGZwnuR zf^VnU8`-3hx1SV1=GiWCaG}SsVEUAUb~iuqOXK3iLREF0bZHBqH7-_L4QSSs=%W~zl2S;OMJKt78 z^7VfM?7J%P$LDazKBc{40_gTWulGUoLDgUgR<6uHA7s@Y)!xOlSb z7`C$3Z>SSQxSxzqOWJxOcweUT(?Ok%Bn)ypdSZv&oT@{tKJoDlH%m~v3(QHri;~cs z(0yc0<7w3qgeELJr|k1n94C&U0w+=nEh5rd_T5fV#K5ewKUoEt@p8Rw;BwV<9*@V^ z#e{RrCOg+f?i>{_yD*cvGevO>-%QD`V^^9lp~%ekeH`S09yzYFYjd8tm#eu|*{<(9C_`I>Xa72*_FcujGy5xQ%MZgSu*sm?-e z<4<#)+f$oYC-JLtbY|SgxLep%gRmi_hyY&|_!!qdoHq)56>Tj~pgnb?*Iv!9-%-mW zk}6ZXkkS%gL@iA7K9%z>L->$MyojTE6N^n#Y4SmitnjC~p#|i2xh;!)bylQogTt$O zQKO`J^b#%2F8NJJgA%MTu!zJ1_9sGhGwz=wYdMJBj_f~hMY#fd@CUbIR2u( z%Uh}{e*UJyZ*6{^Jcb;j5-tT-D=xmbcZuMv9*4SwnwI2tz}QL%a%}Pb;2f7nG~oi% zEjTGSZWO12dz@&*$}`j`Hhd)D*Gh)A^8#ltU4qGK7bD^U zYEoRAOY81N5M5f2o@MXw?00vzzE6^C8Gux=*QwDVfIR}??4)e6sMYW(nGc}-O#PVd z2yYz+``aTZb{9X_PsV!jdRYSRMiD3E3Ck2&@&pq|3|sp?o=5el?MGYL$AX32k(~s{ zuM0-nyfk65ACEh+LEM|YS|0IB)t&QuuDX(-oordu2N_E0;T}rn-RNj55j&&7(M`p# zA)_-~_#N1vb|ro>Bfy*4Y_P^&$jqL9sBaT9L_YIIf8Ck zP<>bB-ZkB0N76V?Cr5|AN5xZ>qWYU=qc8|#{=31?*hge`eCnnY8eMu_36t2mAYH^N z7X%;o-KY~g5jQqA6{@eHCZHbqJy?i1;e7LJdvjXeNub!uA3*CL6Y7xh$@qSxXhQk! z+eMPnM%Jidzu(!7HpPnPa4ul>0c6A zESSh8{(u*5lAdd!n9jd%S=`hbe!kAw9506(U4;=|l8^Lj?>E2>%ChS{^0N4RZL=2! zR|mk5;|-oGH|ef8a_z}Sc=-DY+EuNZv=_0uGDh@R<*2StkdL;=PA9{SroMz7ku$NG zw`#cHiqggQX`-m-(~RSv8N__MJ=lEU*<8dXxN~{^n8}q z-Yf*$LhVbJK=7aFG2wqi={YBH#=d5#$oDaah3|-j{af2C>L}|>0Zed@dQe|nHFamB z%6?5g45>LT)r0=jBc<)|mF4q7Ug=x<>_H|9r?8OF!3B{X@-V?NMhk|s8jIr<=^`uN zk~h+59(Py$Jt;a;F;ADWYsm1N+OwH!b+Zr%U$x{d$UJ(o!9J3JxaFZCI2Sw^*!#8` z>K#&2e!8Xn4Zzj@q3EjFvUpZ~&XK8OX@wEaOWeyvjz^KNb={}Ld^V!>+2hT>twQln zy%OW&D|O-ldr1ZdegD+)AC=o;SLlHAR^j&$mdLz&B^qjkew?aR_j7P0*B2z2_!oqG z`uBrpd7P|Rb4f-<@J90kCso`Sk+gA<57yF@57HIy52*J zM+{&_27gBNwv4h1io=3W4qXc#s%0&TQ$5v9m8co6E;Vt0BA+oeXry^(>eI!;Zs5Y&`S*!MQw#R(tgT|)4)jN7u^{12B<^G4yO%oA2*Y-Ey?+yUP z$^Ge%k0VLO%~1>2-X<+^XVFzOoGMCZAlidL3>h`9P5cb$yv%QZdjHo_la={x;-`dL zqBGm)E-=X5k9Al3#;=anZ{*|fFe3WMP^k=UW)alzrmp&SPYZR+kw%`0{v988SnLlY z62o6S4dr%yd3u3@dug>rB4ZEgzdB_6l4hDy)k%d8Z2? zFy&FB>X)FuU0trdDm_Ff8 zwE`F*d#^aXw@hP9jDN;yf;;BTWty36Ds@*G%z#{q`{#%UCj!}&4k^u!wJQl;vj*?9 zNc(I*;{g3vC04YF*+#@((^AF&K5&F24}tJjLgnzZ1+>w+WJ!Nr_M`!~&>?YsGueLB zEMAUJ_+TyT_;+>R@7ys6_|XdL?&C%gymp(ss|l`@q9Ppze^552VO0*EO^nUnb(jBgc+Dguv?Qyg{2jGJ&qO~YRj#on*XF;elEidSwH*+T9}4I%;3zJ z=35KDRul0Fo|U4c0jT2_(~=#-aVbs;F$QKE$YuTI14R_O7(axzL z_;rzF`YMRMQDe9pbiJe?A~!p7N^9A$n}uL z6j8<~3DcN|N?p6ZYSz-W_gixg*lT>JugySa+A$o`7vKh&MZu21jzzOSDm_Mc1 z(2wJX2j|v5&)RE;aw=v_mI8-rfeK#$Sv!f! zY+$z4Mi(xjf|*Lu=*5vGdwqg#*m*^fVoDwBn`nRsCxtr_@*Cjfmw&w;p{^IS2YY(* z8a6`|o73>2%^}~uNKw#cYVd3L^)4cHFyn=9W*tYk#z>I@NJw9yl>e;^;Q8paO2uIT zqL>P%ZDSYhjINbs2fRsSsSEZeu8KbHs~dncvcW8GLz-UD%z{<<@p4^qUjzg z1S6s7DY%vMIE>CB1Dn|qI)&HpmeJe0(7l$lH7v|+Roh1#TO;DUx8de?a9{oNTuOH; zqM_lym2C{I{1rRswo}=wdPrz*@~yKSwHT>eMG!FHjgt)@nc%gkAIH*gqDkPP=- z5ClMn$9;Wpz%sa zQl>vc2ej_m7%CVtJh8tuHRkSM)7cNdXm9jv@ngXB?DE=^X0}ZvP&Ak{&Ah)HA*-9j zn+{G+AmYxZz@#m6*4&$BXo=dc;m}gZNTB7|!(^pt@;Ia0Ba3(Op0suKN_rncymD}8 zuJ^^*=6N;XV(h7`?Ct4Hj{6R|(EK?KcSn-=7hT%OtQ5t+bxS;sDXy0Sahto`4Bu-2 z$NDC;Nhb8?xwYehwZ)jxw$LtFXeePv*dy%h=$}^QS6F=vr`~A~t9YyVVCi;301YU~hAO3YdJMNA~#4VkbWf`r*&8s0c=* zYKk;d9AX4`-dAdEFi$&zQg>EvCSrz>>lqo|*IXoa9!o+TqWCso=$> z^4fbFKk9=mjx!CVnfXIC^XH|ZZXjV_P?jl}@=3+QBtL02_m<7v?$L0tIN`H1Dpq3u zcP=WxX|q$eaGbL1IKX~dF-Ev0fm>-Fma$XdU)PTcqVS5;$*KCf3<>(go&h3hR9j^j zloo%hc}qm;_3Dv80xPy$X+Jf$^aPD1YZyL)Mz*=LK_al5e3IOFIqN0h!>^&As&^lL z1M)JyalPPyUj@u(AS9dA&4E&;{43=QojCD02bq0y1Pz&4)(sgZ!kMCQZ&#z|1J8&8 z51-VaIT1$02FuY=t)mIP_R2EwYSMXj4=8A`H5P-DhtoW3<|H ze2h3tx&8i$Cvb9XGac%V0t{c?Wd)Wgda!5c34nUK)FuYfQ-=Y&@LoXR$ zG|-hM4kzGUHbC}At+>92dS0V^KyhH0B_;B)Wk!@-DqUV)E3n#n6g%LNr-GR8yaCF! z@i9pcnvozha1+Y;_A?XGA>t`=7Y1^5dfNA2%>r1V$vBp1LZuYsU-rJ;uiNM@$(Y)v zE}Wm@SXmE?DEW(=R8C~4wR~ZA&J4I=TYx`L@n&egTT(+*8KG%t)mDq@GugWIbiWtY z`Y(-?l767eYkbdhB=b`Xp-jND$ktUk;1s?=#$z;^!Z=-8;Lv6{NNIbK&a(Ab=_>PV znst%X*{O(lLR7jY;taY*6XOXm|HX{DPJ=ED7k<2#fPEhe&GG=b<zPPfdX{aN;g zdHVAHSM;Ofvs>UZ-tA&wFMUa%i}BNWNz>&*o{cB|7>!gajXe3opakV`=2=DL$HE!l zwxqmV7QVK6qrju#db)qOmmcTR1UJ&S;y?aIrh0J;!!Ez7^J3UvRUc1)-*Zq^Tf$;Z zqO{rxrD$^IC9ofS-@;D_qG!ABlAlZ@6>RF9as+w?l20eDy@Tw7T)LxOvrSwF5sj;D zpFjQvOs-Ep|0>bvjwXd@Ba(mK3uM+duNS_7MqDPuL3>&aG^$cuufQn6c{@kw;6Oi8 zOFC6+?J$7b3GwQebvFtl^mroBkE$(NXx^pti_tuz$d z4-C^$DE|gje)*eA;g5fFH|rqD`Z%gljm3B=YngT30tr-x>(V+o+DBP?tV`Gi|B`xT7+uKA^-s;ZQz2KnVlBL3B3^ zW7sJ66{>j3yo@%+pfOP$$Sr7AIMqTmP>y*?P)xhRn?Xb4L%-}0q`jwLwLq(Z=fhtE zcF4N6?^4@{n*WNXuE5V}yNQ_wPnD4xHfw0U~H}-ISEy0HoBk=aImRwoxU|d(~nM z%KpJ+ufX?p9U)%qq;5LQVT))_@(#jQZ{&y&Ddr3UhixyOhoKEoL3`PhfmcDpT96P5 z`>mx4Quc1PV<2zL36?B&ow;IEL6=%l=Bz>V|1hTm8+Kl9Ud&QSi6DCkyPoI_0#J@% zrTH(#nLP3Xl}wez?q-{M?jKbCOpDr-9AWNE)E!doU<7|75ji>OEvB~(wZ`$T7c=cB z6CDd*Kt*k+p0Y9Tw)|#o|a95;xT(K^)L(W;YPj>G8K;(8T{xDQL(TiBehr2J=;AmRJW9!L%3{33OFPtJu9 zxQE?COU@!GV*WmZ#tV$9t!r^zWSJrB`Eqoa1Q91&zX)?zXwQ*X_5AS7z6;zAC?d~Q znoO$&E&(B#PM0N*Cpep*zdJj%70gi^#xx^PcWxQ}0T4EJ^1A-41$C(XQwKn%Fo#$zACyQE^?pxP4uzmsXHrDIK4{yocsy zpKtZUuNZNxly3I0bzGUB*iX1?q{B^A(ic31k^~!nBGsM0psweSv$1-kKjybK5}$t# z^?D})e@udH80t#pXa_T6iiAxw=0B)uF!kY15{X#fz~(Lf;;J|$Oq6e)LW*ooe7&dD zuZVjg2ng~tuh>(k?9Kct5^a2o-xZhji-ebFbZ$<*T37rpRA8N zlA&^pQ^kB*gE?%nSvlz9T|GtTM`$8k9O#$aQLN;z5Z=vILfnN!2_dSpJ0fo=6tY#u zFrd~p>MPKF)lb1evcN&R$(7$FulHG$sL@fZ^a}V5P>y;Rt6$~$@y#nuPbT7_fX1Kh z`uyu;X{m)fbeqC%W7 z(_^-=Jy^NvSk>m?dg+X*oozAuLf982cehttfTd!UZ_U_zo-zDj3-o5!O#=<P4@C~MrFZB_ezuHLrIjkAxpd0_;vn^$S390SwIb$Bnp4Q4D4 z$rhE4OQu}^ITl^>7H=Jw7|H)BK6^Km*5p|P7{1v(yXs|hBP~7aH`I_gN;+--u7onW zby7uWw*qiw=+>4JO-Qq$KaAtj{t-llCXGBH8kE;PN5bB0zJty!@>V%n4lQ?=JF4=%G@qs4jEZw?%qI!HZvnfPwCa$XSX-RoUL=s7E< zDo!@v9M1Q~5z~6bY*Rd-S2i8qQg_h?wqUpiIOyaYRb{ueuC}nK7-Y2kwSJbJ_t%5H zfOi;_gnqDRsI{ijUuzJVF07XA<5htx?)yq8i_2jNKbzj%@`|FXGYHn8u%0PLmTou9 zac3`9Mo$1X3;IJVqlz^|)B%3rm7a;bUQKkqxji0IUWgQ?u26vA`*1zwUnHf-icRWQ z?C|jT;~|b>-LB+idFEvX8X&g9pX&<^cl))!X5emMRSQ;$8^{FB5n@^iE zU0?0)_4As(*hDT#d^Jh`Ip{5XC}w~GFH!#Uv-}LCmZ7CHg5R09LAnMtjNEI|Nalc9 z=eC+#wz`;bVap)Mbgb&;CKh;@E86IQ$VM3oc5kuSp96i!IAdqcm67@W5M3;0fM!lA zLy_DZfYj9yB53r2)N7-<6fQgRW_o`9@yBR%oTPWn=#EU(iY|?mrxa`Dcq7gmD@4i^ zvtv<~y3Q#GAL&Ci?_Fy%Aq_FR1PiesTq0sQ`RkW&oaDteBw?kk*UWUrB~yzwFIeD zT`x@zbBlt(?nS30p~u|o21}8wwFLXW%9jvfh&j1^a`v7~Fnnf?DHx-md-pAK?3N8d zGVUTBj)wt|U(J?qxTnp01X(*j9o!Vyq|fww8+7>2MjJwgt74z1;=*b&Fx;s+(+O%PFEL)*!g;AGHg^)i}_}g zy@LA6NP;MDx9mTDM9f@hUO?Z*rzQkDVAv^8l z`|K;JkY^=3jmy{)zqY78e>=jvu<8!A)W|IJer1;7Vc^Bgm*%h z1WIePEDfPU2aRje8UX&3-U)$rEwkQw&zoM4;W}BOf**p%nqZJepOi0OSGv?)YsaS% zD)c2rM#fUa>wN5SsjaNWmytvp-qYsB*}*(sZG!zGHv`kO?C`C_x=FC@+wG?o$J^Ha zrU1j|4yOUiL|Mg88VbWVEZ4;?89SY?u#8_PJxa`^v0#>Cu^TZHoNE1TD66>h@s9 z<`m1wLCv|n|FDMtwThufm>hF&SN`e>y)jzs)$}nbo?YR*(uK5 zKrMeSfHlMmnx|9genBYKL@CgKlGg*=^5Op?c*{JmD|+))Lp8B~3r6lx=D<6^>|)U4 zFk1!oNt+&uhGqNV+K1n7T{M~VA(3tkA4gN7$HaRBNc^a+c(-ae{LLnU+rOv7Z&O*% z{H-~yv>uCxWqhNzifq81FElb=LtS`j(3R#=GS>%p%HNwZM*xDgkC>U^A{oRfg`x_!lGN$r1~o z7YE7hnYhlu{-~zUIye>gL9nl z1nIEsa-#em%6A>bVlsPjxhaR4E&fin*U960sNzWEWFffh^%X@0TW7zzjp`b4^)$vi zPYf|1p4r%daOs)?I&|oc27zIZtL`H~6+u<;kXJma%C&5+Ds8y7rHF_uLrl=be52h1 zxc&30*H&xDsS>|3+6?~n#EvHhhQxY^NSK+?&o?@8N*#5LcD@Dfh5E;X-uthibR49g zR$MTkh>G^>9%-E*5xL5pm$?(gGUSMr1!}H1L~3LzN~Qc44Va{2Xo|hOPkahhpYjRr zt5Cz`>S(?^*n`-SL$LzYpzW%vJ;zWlOM%su~0lq7- ztsqm1{HiBt_@ps-!~p~OZ97>maA`BepuSyU^)w2w1QAs< z*pR{bTy@|2X^7e}B_!61NQ~o~UNR{O8 zB0v$!msMkjT6lDGA}ZISBOm_G36mA^I1_MSdO1-|)a=-x8;NV=FEyOL*S}gfv7wJ1 z?Y3L(VB6+?I~m!izl1{zvSz^Lk<|>pMd6Po+dW}%g#z6s4ODa`dZ?`Crf0gH`9%rm z*|w&)ll2>HUO6?emI>%jCnFF&xVG@P@5|_|UFN3nM{XO6Dd!^5wlz1)7GLW#pFuZ? z5RIMnb>ZTXhEE}~bdoR_Wg?u`uwgTPES0))1szQuz`Ddcxu!9t_r)ngBO`lOB{C&H z)%Cv4&M=uZWRDaFS}9uzqN^fJEq|{1IyTppM@<@boRGYAO}XS|&xI@cj#R9QJeSG{K@g zCa6fE^yOOZxx&e_(li2NbG z4F?r*Iw+Ossr3GY0NUe+Ai-8%au;LlRpSo+kk@>)uAdH;&_LKq!J<|pdr1?5L-L(F z{+KFr7i{OekOYIb#P70422o#)&{<#|NyhobBAptt|5$DJ*{yNaJ=8+o;hi2sPXpVf zWH}AO!qZZI%12XR!&GnltOCxQ7(C(|7#{$ye!qFSckUronh^jEi@62hr&w)`OY_*K z-7VawLP}Pb#*w-bxk%sXCp4m;EKeW}Q)%Zr8ed>2A@b&j6T@LcHv{-4!})aS=8B^h zzWWb??E*=OKZ$Bcb4$GOa$L{Gylb01?*M*jN~+KqKreb&>D_z>0TL?%EvRD35ch|C zAfBZ&t7+CJt~1GP!HL~yR=@(A=Rm`t?V1jzDg$yGYR(?`=gt*x4vzF(`-pwF(ewAQ z23BxC@NI7-=g%*GJPj9xFYLT7h}F{l)$gW@DkQ|c9nPr{jn#i+hybo+k1O0b5mn9B zlbq$X?Z(NscuC>e2y2MlHcd3#M;QJpyCyzK=fsorqX00qSbyB$y>MAFvQb4cDxZ)@ zcrZjv#271b8ava$_C*h!5W=6z@tjvQY1Xf#WZ{xd%QTB5AqLU*{xeAf2YFN{UC|qH zm3gD;dc*b{&x5#?_r)hX$SE}I+D2I0WFd_*1L9iPL9GUR(;IkHr zmo*U=WE5e#ZD}K8&)M$u=~E5=*=NbHnsvyD8s4oR2^)@RwL#QFbQFjZHPq`f$KR&e zIKBKDJi~5J=a!w9DcLSdDnrRArgzc&rv+duCgnXOh#|6`f;N6UUp9tH-qNhDqWY8U zDy8ZivJPLfnsCPyQF(ix2+i_gqS`)&=eVZZZ?_7OWvUG}kSFqh9!6GsYcLRyA7b3w zN~;mlEYdKaCb>02=(V0E&hXIgh=udSZGGkTQ)hteCQuH&oM}SzSY_wM1t^rG_Ozu5 z__1!jF-GrHy?M6UBIXQKorrWml_mq~`*<87D7v=g!Y3?MW@Idy!k75&TGyDZkFFjM ztzB0M15=FOM{D7>`%O6J+uTM673YM!_fv?Z(7nXF@}@3YYY6YQd!P?vvlaDqdNkIu z66qeDleBDQotK?KtbICLhIC72JcoyF$G6u^l&%+6j5BT3b~=WXicgM-Rua6<+*QFb z=eT0QG->bW7gby4sjc5LDz`oH5SYCE^=UgIzb}gL_9x8uRWB>8;4cPx%ZL#MS*r10 z4jBY=0mRGS11_CkCiQqX(N6AejzG>f7Fxa6*E{c(^dl8gRdy`%BEyE?y74J-w|ciCQqL=5-oYk2ipA z-drgw%Kt01`X9>I|G^8-y^4R%P2rRdNpA-+8u6)&mh4HJ_l0QQEb$oPK!d|l?2*`z z(@Xv(nl!eOG)^r_(Zfvzk(?u(-8^;YH5;2nQz{d6+*sf(6$HgOcGcGhMeB0o3p?9E z?9S#higqUXR;q`$0>6^T)46u{Krs6lb(^|?gc85&%}pfVfttEwSMBopNh zJ6*+X{W>&{E4DU<9sIei)nF$}cxj=OZpbkHGIZmiQ3!p{hi#0~s#(quvLqgNP08^= z$$8TTa;$l9`BGfJW~jfq!kQFuy|sp-&xLw}R)P4&WeuZ4+gu9Z>Jtzd=vcL3)R7=_ zmoPZtmxwem<@NA#3U9%w`Kt>^yh`i-$2oGI1{`WQH|LxpJ z1$0KK&dpay;E2`uG2u6WH42~U2i;z5IFyzh$|W)7Mn5~I)#P#S8DIP;Oh~x!8(`io zXk&>x_>uGTz)G;b3Q4XrZ8U|^{CK^x4PVp(@Tsy_JNUBIFxb>`0%d zUIy=UIt<*3dR;bWh|xFLPkDA^5rd}Qkw8G}tYy*No0qmocSs%~Z241@*56gSqa~8A zCF^YzC0{b(4b2CP{#@@##9Amg{!dNPH~N0bz!7XvFP3@H*l_Uj#WJD@u&~G%C#{N_ zxt(Ex&0co;R8p>^|TnRXj!YGQ(MGJEI ztKP3aqwXeEo1%8r61tWxnTLDKq&~ft-1Gu?I>8_UPYqgI5oP9fl?d*7=jd$PH7S6^ z2KT~2Ep&;_<9O=WGskyVx26Ha22Nu)hDS7+Icu% z2zHj~Sxin)*<~_14N1xG&KwJPRTY|Vr{1KK1SIfHq?NB!uWhcTI(>4aw*iDZAFzC* z_9XAov1}#%R8HMmKNr|^t52#5U!7WH>bZ}PA})>!fsIbctMz%EZ`s79uV}>-=Hw@S zAKB=?v@GQB(nniHZj1T`DR3Jn^KpSMba>t(^G6M=g1x0T0pBof(D8Lbbco1NVOTSi zqG0hrr@f)c_>6uwQ;P?|i>4Em&Y@nOJS7PBJ5_LFnNs?ITL7mexMkLzv|m4l8J5nI zU|pd-2s=oa%x_)xX}K^8&h$h`H}-m0UNO?u2ec`d=WK4B5VlpfXHrGMle4zqws6N$ zsZ6U^@Zkz&Bs=gsO|Wht4u;IzT;eRof__v%N^P|u7;*4h`d5X@aOxL=iZh53?Zn+utJzj%c&ai|&u)~)r!7~Y(i0M1 zD@8)AjrH}4rc9@g`ifY@mYM*QXw19zowhgl{@UAncaK6cW$Pjh{U34g>4(@_&~7iH z?+c?SRoTNO>`-HvS9R;^byz_)^I%daaSL0o^f2c)x9to}!HEqYltNZe{#;{fM=)c9 zW7C=xGBGk-9e~|p_v%b2G1%&I@250eFBd!Ay~)QBL74PgDtiZI z;iyi35aOL%W=Syp&ndkh$+u;J5K>%zR-pFv5eQk`=gMNOL7ULnN0 z@t7I7wurD(IdSnq=frn9__cg?pHQS@Ty4sA6|jhvIqTc%7+JdkYq=jU0fkYyd5adJ z-xi%OdmT0vn`U0=8jf!tLuk|4r|O$#s)tO>&2u~Egc>=GtshhNlTksopn?W3MB)}X zSnp7Z&k5}nlVChe_m_@=*~e?Tt|u}cy9DuC8~a6%*?wv%Y9g8FWHFXk;=>nT{_MsRf$v*qY1}MHPT@+N;7SL&Uj#J|YM^wNSR!Fz@$j=^5E-UBuyO z+=HA>gzZM>MY6@WyT_~$)63iO`EMC;KA9oG((>uWyT`L}wy%qR{RRvh@44!ge2lk2 zx6f76KjGTw4ChvCx-7v(+*je0qr%|{yREvDp4GTQC<|bn(NCS(@j~mbq0<13$zLO5 z6geG+O5s6KFGGuu*W98DMeo09Os09>5$}ozkQKe5gx@9X#5%T^qTuem57iaZ?H(R z3*2nYjFYyg>4ZA)1n@Tc$MArUz(?ZMUJ}`a&vN8noZE4;>w}74%%cA6<$jp|ANI%E>Pq3uTw`eTXYmIP9PO0)nBK=!W=hrdEIcxmY^5 zQE@{rs&S}Ux;nbMm|MC+MWnpkWYpbE-7KN!GV1(P{C`QvsB>{qLI0rAqM{tqjt*|n z%hJ45+?;=1mgb@268!s&ix(=#^N*m8vYD-=`5#$15VTaTzi#sHT~u5g&DAa4^f^@C zNpomedb#~AB>DH@?cWDELn>&25)KZIZm#;!JOA~-hEyDimKHXql8#>b(2_W*fc%_P ze7u~{&)-5H4O%f*sOaC1CgbAh?gV{+zpDP%8xD024Hr`fSEoNJF!$zotIqMx(!<8w zQcXq@T9$^XnJZL8-Oa__-0g2Qxl-})h>HFgMcx6|oDB7)xV})NJJVyXWVX8lfmB7<}wFJ`f#xJmod?ZWm zcQ!D4c5f&BF_{?3&`>qjGwu2GKgpsO?& zVCbb4v7wP?0~$h~P($;Md?A9poJhLLW5O$&3_eb8H#9f^8O{jY>ljurr>@|a495Mn zBARSmo{o_#G+%>uSj?9UqM8Sd=mKnSQL#g>j(?qYkDn#BNa|FCI0` zzT0p7a;?Le=$O=*h*CJ|GzxTR?(U|JFxoTT=y)h!UJVpxD+22c3F)%KVHF?E(g{cw8u)LsLeEa6>-YO)5XG9v ztBt2yOtOB-%3Z9wDqSeUl^x(OHtDWsSF!Qaf{bY)2lkK=VPjIPb8~p;jWKW(yZYUP zC3zqE!#+5|39WQu`b$anyKMF7jToj}Qpj@$=CNq)L<0ijj>{oD}u{@NIy)<{zI_!s0Q-pkJHPVHASWUKHE!=VG54Praeol2wfzFG>6$mxy znmFZLf=q5_B-_9vq$JLEfmGgw56UWZNYl)8KPMBVmwfnl4QHg6O!<1%{qvg13EfX% zS@}F?tdteJUgl!lT71r>8CVH#`d|a`bTaE{W1W#0-_?1&i}^)gy+*E-_9HLJ%qErW z>Ud#Y_T$asal=!{{`zru@>Db>j7KjClf=-?4P9Vcru9)KN^M&LN?DB=<~iu4$@;4n#bviEQRoNy__AFYeC=J_fF$DJnxmwTF}xd7_4gLW>@QV|Ek3 z#VT!R77Bn0^}xVDv*V_b8i}#-=C5DBTw>W+S${p>Z>Dh=cbzH!$cQbxu(bR3D_6vq z-}PYZ!+0j&>w>bf#V-FRTAA1m8xcZwgV*j$&(F`s9bT#nsz4wx0+Uip)OLR~WwFMv zXxXoC>BUvU7d-E$?NW? zlIuB@>QntyHda=L;?EkNFS2TBe*d0Uje(BtLz1MyxpRq(9bH}L3oohI+S>lF7gkYI zOO*C3DKGcPB0q<1V`X7^B;~IC@mmlfhnH%yGpi$*_RvA_AODDmh&Tlfsx`^?@7~S) z`ju%`Ba_S}EnVgO^W%*5jNZG4kHl}(*Vg(ehhp{8sGU?k_4S3`cXMzMI-k3hj4Dkn z%%G>-`6s^A{g}o@+L7OTIR4%ku5aJI#l*z$@$pIZc6|KE(4j>^5&H7w%fi{1#t=ei zXy_On0+-5bW>8UGz4^f*jlHzA-v>O(l75 zc2-+Q=Rss-=1Ki7n?wcrcC9N{u28efoYBz8IN2&X?@eDv)Qw0;VEXekE352UZ{ftm zwE`*1w_*E_>+0zlU6huVHeD}v;60I8e&+kV=HFDwfB^9Hy)~8S3fub?-H6O0M;$P+Qojuudi=Ex{=%}^7 zyaTdLQ=+J(xOi`0pH7lR!`-#TK0A$M83FgbMw};4y5NQL^78KNpd9bcA7~{KtXdvT z{`{F36Qi%_kcp2tu7WMAMvedhF zr5tY;(~MYIn%3AVd9^bWr*g`7okHT2^LvUyC5P|o$9XBR~xpC7DMZ!q#w@1RaN%D+2xj0kgsp?6OZd+B-Wh)l7EfFj7m6 z39l}XBro%&A8%($-TpF1TThP_x$sROwR?$*!F==)gV9W+8A(Y=#O}i%pPHNVu&yFs zbmQ{4#^vqp?X!w*iqRp-5&TG>Ha#9>llBm~^mfmpy^M7OIBFO`&(bgtx@ zQH9I({(Wc9HkDlOYfh3B6%mQ@I6vl)dF$4z$EWTX7VBD7c`Ue0eu{qZ;LR>s?-eHm z7(ajd<}00+YjGmoSmJOl^blj^TPKZ4;Z;N-}mHfB1%|kXNJv@BUIs`q0G`APQ~39 z;|;O!8V|)Vs1word!gH`JNKNyhosM6zM#t0Rb3N1apJ^{8*`}YijLopP`>|C;hH71 z8X&E*)ydhpX8A|rt2<-{9xSRiPThHDN2RN!wO`csGb*)N^pLK|(JIfS%QY!%KxsXn zK2@KjI;){!R^@>J&2=9=&zEq5mX?;9ntDcj%7EKpG(|DAw#sw&?%hgZ`)2AG&4Mz1 zWTriM(9v6Dg)DT2ds%Itf>R0tZze95NG0RD{<)*0NH0g)+l4 z&UxxTfI&Ngy~Q;8C9?KpZ;`Upd3pKURaM?u6sE!fsOf}2sw$tgau(0q!hrsOY@xi)K6H{y05ONJzL$zH;DXv3{;G@B%Uj z-MLwSv|^j?lh&>SOuc;~b zpxB~;YJKn4t1qX%R9vZTj3A)AX6gaR(oQd=3$}{Z*ViNecXxFS2XlKrwkxsyl8~I- zLZ&ZHWhol;@u|@Ro`is?0L4i6c3vYx!`5UcZ6+_i1N|4ze8B2rRT4vjuNsCku`l*H<+U*>=7)~$kq0)V0KZAZeFzrMP| z#l=-ep7QE*jjyc6+1@|K)NE3Q_sO@ltJPev_HWTYY&?;Fe9Byn_Dvv`JUN!NEaWTRU0CyEd^&!gb2)$A@?v zLmWLkcF-7Ybfwc+q@#57zCiVO;kwVCy%21&>%YGjSTxvvF1;TYw~v{tHb`+@AC zZZltCwg(5Rajg1oZ>P}DH%_2u~$9XYv88ox$61qB7)y?ZAj zLkQS?G5%Q6-R-Wlht&BGQCZIYMpc?SeECZMQ=_70WX6qkZ>DcJU_j-;tcb6(*4Dhq zGQ(m~;n^`U49s1Kl$e@n-818vyPd6m|N0inc=VCT6>Y40?UwmeU`IFK>E*eRDWNC-%hKosUVe6QE~Ugu6^zq0ALu&^6v5!|9!vm{_a- z#Kc4;GRyadh`_)=fI0Pv7b?1G2*0Ba3E8TAhE!jIc zg@uQw4?IavKMTef_6hm%#r3`?mELD8>xfQDva&U5v4Z$T{D%$&PJc7i)m1p;y}r7f zcfO)l`H{1e6PVf|nWCpGfraM4O)qS}q%b|gTNv*=Y-3|1RMFAi{;9(Cs4s=3m)9z4 zb=_yZ^XI?R*Yg}Zb_|E%$dMyJue`jOo=a2a@v32j7uR|nm!{5>k&)@wpfDixIJvw&rH8#;&_llg)%GjZqDdqaNZ-d6&fqR>@OiVr_ebr?wjPYZi z=|#y?*n*=qmpm6IRH~kswoYhza&mGWoH-f|CK*xM7v;#Jszbb`Wb(GPs-@M6^e{@JkPlT!SXNZPS(lF9*NlD4-NnMGgf&vG7 z`(tY{JFEa;ujO4aDlaQbfAU1T&-&d=!$_~vW!)Ae^1ApGOSv1$Hri6G=VksZP0RYO zOEpo{+_lc5prE*NFUtmJhc;FrNy1q_&qPIe<|F4{WaaDMEHX0)n2@xqUecGplsjXg zjgG~|#xBjZ$c84C0DV||dVU4CGO|<0$iW)<;NnG&&{?`&U@q#$#-9+UDJdzOs=rrO zLf%CO1k{hVrFL|5)Wu*;@fg7LWWJ9Q8jqTkYI@0T@;0q-5s1(u5D3eEa81tEJ4uqR zA$|5bT#y#>GBOTbwnZvwFFR@b`R$#f*RM}vTh$*)#Ww^awxkeVCsJ3%L}X-qYJ+IZ zuk{sLs_`9o_Z;}~EPY6aC_o|`c??sa3(Di&!Rd!#ckh-wd$z~!I8Wz=^^;py=1?R> zBE43gKYxC?U(rNw=IRI7h4^1+U# z=4L^D{;)>6*bBV}Z1&}njVJxi);@A1=ZHbxvw^~M{>#rg#*Be%=;-F3*hq45y{W5H zG>M;&&pTTF(cHq~?Af#Kvt=On3_1YIkG_zf=@4?6=s|Jq(EJc5L^v}GHd5}nWc$uX zyVEhox0=r=(}_dYeRc?uaR2^&Cz>zS-ighB#xjy;iBA>?wD%Jd8mX24qD8Mxkv?tG zq`7$UVx;ox3a7EXbab^o=S)mk=;^zPZ473_e*&+XmfD|kmt9f~Cd4D%5ke^l<9!jtj}Web)k%+cKs}3_6PoGpFJC1CG}td z*%6dC=+nrJ1}ZG?q{X3kon zP}!lvM!sk(uc&CKs{`Ad>E0O^7sn#)5k*-M7)aLAm!*uyhzJV$s&l^zAeDEK3?i3Mg@Psb=F#s&d2*N~X+c zO+7t5njk9t&=9{_^~1n>U24y$A&*h*-hIhcJcc%qk1hn8Dq{2T z%+ur@F`s%@^GBIgUY^d_xpU`*1)Of@@lK;sdtzLO+MwoQKsz2gNIJTfC^7-AXBE$v z^mbq%xkli@SWkh))vMVD{hL30FnM8{mJ4Re-;LaB@ijo zFn)evATcg(;!|knBok$G+R+6#aPpv36T+2nI&H}v;E+OXUHuUiov z8!PHEVL0Pb?XfT}E-5+P_hLF$mQ~FDWmD5xHMP*dL%Ke#k55H<_Z;D-YHDm;!8!Dp zALR&$*FDr%tURd^x%LW09hC4;iNfAMKt%~&-qX9Mc2Q730bN$=?}{4KG&3`s5tNaT zbT<0@G!Q5IT@VeITY&zU1Mk{6@GFQ%{-S}%7Ah(#{{hTGhT7JxUN*l;0bu&2{$78K5lcf-}nwyp-n=({(4ECO_$YJ`_rpm%k+qI=AUbt`|_Z`^G+-P+5i|5ZP-Db?i z-(58ty%!X;lbM-$Mr#R~Lp#4AoVh`tCY2DCUcQtQ8h;ukCUWxR$NGAuFslQ`u0r3`h7{zx9_G@KjXG3hwsdQFXRaM2Wt&KI*_h3nQ z^hgGYU}oy`Rqj*6I59@Y7Cu!F?%ck8@K0GsCf?L|je3T9Qsz-$n;koLFrU1($CJns z2=YP7qx?EPEaM|1hpN498X6np^>k-12RwbsZ)ay`>}RgRls+_cNnZ}juARnxA5zdd z|K|!J*uNUf@(eN~{b$eQHa&q!)sKk*V57kLJSHV=psnOB5)4}P%PZr+%Y4UY;5|Q$Tqretgmg} zy5scX=KKTn^wHR9^do*L2MkD4>G9HGq4wBO=AN%uguwcng2OC2O~hQPPFInIY42WC zeJ+n~NFA zJ|t4-C@d`zqrNiHd)zd5w*&7&lzvoIRh1Z>$fHh1hvPhaE`Yv#JpDpyhZbgLz7@^6 zIPemk+Yw|w2PlgXQW{)i=405_OP7XhejZi>kcY;{bn@C;jZ@BxqiqBTWVy*8zM<1% zP4C~Q`kc7_DT@9H@n=r~*T%;7&U~Dv*$WSer?9IdfybJgo4t~=47l%)fz;IoPW?p_ zR=55Q9(l0?$sn)$Ts!m5_qDeEdLVrI(OKK}w0HO=zxBUNvjrB0U#{)U17X*Ba^@Q~ z4Tt)}YF%sazTda-y%Dm>M7V7-?o@Xc`_FX{fKiyH7~|14j-g zl_l#ym8UC6%ct0V;*M#h&Yd>jHOJ{FjS-8rx11duf)%;tqqg(05DjS?|q~d>?z1#P6dsv$NZunUp#DYs{Q$Aa+Jt zzK;oJ<^#R`weTb>YkBg;KuFnOVhTflxpNNqN9Bx&>dMN>wUtqY=i}Cy?#e*I;MfQ< zx2>bXLk;Z_&#jlG3wAdhIQuY8TmOiA0bh;om3A&p&QZCU{}8jO|2mqR9-|7Mpbu184(d(v^@+`o;3YDPL{B0LKip&z*$Nw6BU^JvYg_Oy@Q(FV4&B#Al5drfmQyBJ>~@eTLcwB+Q0NNzP~Ih<6I^oAr@;8N|(qDr}Q_wKaq zT$giKkLT9oZK*P}Cx%2sWK0G1-O@YyN}|xbZkNhh=L8Lx(zDIqxc8&|!tV3?RtpW` zJr5*DN7u~sbnaX$^aMzfT%BaWzeb<3wRI+r#=cw;+s|&Olu%rbHrgZC0^NnU7JH*s zdky?*{G^%%j$p1zh>lB0fC3{SDS6Jw=*rcrNcAB^lj7`PERCNhu-o9-=uXKJa;>7v zO;GkVCewbjMd+1B?r+M#tFi)n0ZY#wtuH=U`L?1NbqfkibkGLlE*5x=cL zZEI_rL|AZe)@knH$5etwg=w9!x~;X#zki=@w7Pt`Ia$`MOj?8=GQj4|nU3Ybc5QV0u^Kt`d-Mla-~7kfR70$wym2o@#3v?#`p4cF>4Rtq zOvqI)29*K)CxlX{%#A8Eskyn*AW}9qKeK&YM{^?MAY+Gur3sEKWJ?40 z^cEe8IFlntC7`T0s2Ld(Q{uC>0$35%#TdLq4`|QL!y|aEBUyhOT`QKxgU`?3eE{}AC2&)aCdh{x2UzVldk(1bDnyV1lpL2WveI-b&NZY zUA=mh)EM<#%9}lGJDm%*f-zm-R)|47)82?^tagWA|TCg1k< z_5@+e#*U2PwVyhsrv0CaZL$u^W5!Rv=Qv{b9D5#k^`RC zbHrup^A!sV!a~tV6w=DBwI1-A?Gy~Z|NJ4r^Dpu5aNK_->Y4%TB4Q9t=9`DbM8w1l zH8dh(+d4ZRir;v0Q0RSA6XmX5$h!L$5@bc1m@KTV#n8Etm6cu5!CBUm&%N4PIE=*H zpZUHPT5rHjKHpR^CqTo&N(ioND?js51Fydu`uS7sOIvrh)f+YMZ=O#&te{zsZ=v)r zD-&;Gr95FrKm!pck4eP(Ws7{rx8Y&#M}v^97Z(=+mM(6$7J6@T_fJI!5D1V8@3$PQP zC8Y(3(F^cRS9VS?CpXFe*kqLJBI~x4ncGN{Xp9YwjKto6GOu;v!dC+`Z*Dd*n~zVw ze*FqP0ViY%%ywmdEYCNk1<+LUZno)>1$py^Ain3aok)_X zohfwI@bGXX&(GD~o@8W!AXCtKbuhY;kDhY~*D?dKw=Gq3-sywZNqhr!Bf1e7Z@8oCxg8atOmV&jD@loS;F3Qh^()I9= zSh&q&`MJ~qY`;?;3IA%YzkeNi3)bxrnR$D4lW;B)aN1=lP6P*Ju0A(22MoRT!u1IX zxS8*oGqPBn4X^UGYfs@}C=DRbHDq!h_D;yWgATqEQKhlNWMZJE=Bam*^`P}8-{s-h z`&`N{)BQ<#Tuc(>cdc{R=Q}h+Y(;(gO zu)!xSy*6q58&PH zxnTF2;ds?ke}8}7i|BZtKK&L7M*jH<21Z8ZH+4STSI%UOcnC z;&QS{Yyq0WM0>g#dRC<%kJxXZD&-=j_XKxtO$#V$;2gaU|{ZT@7Ebw0g#HjPdn_TT-o*Z``dP@UY7vSlINA;fvv%7Pp zhkpjOO2tUfbvmlJ_VA;>_i|2Fzzr9ONwjR*W`nvP*;BFDkkOT^`gO`o++6*92A!wWMzARV?CW;CDNwNZ;)%`u7Rl^!PSp-}-*a zoQw>E7q;i2Q^fdx%+yNt-B`!ba2uf9hVOQxtR=EPghgR-kM+&OvX{J^0738%W3HK5G&btuPAJ8jNyLt@Ua1(!sJYrYdMwEro6{ z>c%;UlAk{LkduDjfmoOXW+dh7#Ga$-xVX4XS2&aYeq#VM1rN$EAV6XVmp?$^+4ran zW{^G))H~?<-Dnfc=3j1pn3bPzMoIdazy36)=jGYj*Z>Ef|NGndpbUnFBDwTT`wmY| zUbnXXT^+mkKfnFu0PA3@?@dWGPSAIS9RvjprkoX;O9dC->;TDH`m*b0L>g&30W2NdG<3?q1TLS;mw){Ae!gLW;Gu;o zHC@56iJhW+bZ~HRor;lljd2(~8f+j85Z4V13|8)2*#r?}#pX3;(VHq1a{_apt`KMU z9~?9i4lGT=(sB*UPnsHpKs3N33RAeKM26fb4j*G|Nu7ZerccZ5og&8aRuJst9D z<#fO%FS^;eIoiE@O`%s*GjI7-a6x=%;9E-SMv6({CGt>$RrAC6$jH~e{$lfY?uhC7 zASf>dh|$TZ|IaV7ky1zzes4cgi}?TiB6C*|VK@*!cNsr71S`V7d_m+pKo!l7pNl8` z9PR)3!aw`w|6jgvzar|St?krtZd5fK20Y>ae6as|)Nkio8=+hF!r=6zCMD}ycU}^( z(4b~7u;ssBF*n9t{)6a7z$&raVg^+%6BrFf0c93GW)N#(0?V!ghyLdmdYh;JU$~I} z9}S)PjULIl(nsy<8y%0*_o(F1S-uzCTc~*d+Wl*yg%Q`^G8{h>Ch&gWJ7J4@nR;Ot zo~F|=x{;?m%%H9&epLfJw>%O6aqoZ&_gby#5boK80GKUYVqygm!O0ES`-QC7Q zkFtOSHQ0k1{dD5-x_Kr+MNy8GkNv-XZ6<;I{%*V(;lnjlb-g67C-j}SZ{NZwwmi>n z0wbl~AXOKVWDr7?Y%OepZ&A=@p+gZq#!1O=R?+$K-vSQ zCdv2b{cJVB30hiW8P532v#RoK8P{C?j}?}`gue*7M0#?SWoK(tN`Pz-Xi4YsOMrAs zWauXFE+{CSM}mM071lCkVK4;rVgW$srw2CBn=Q?!+w0twt><9}d7uvbvTYY61M`ac zg@y1iRGq6sLqj5#jZttl4(?qk7C?ViKE5tQSVTnR_;H*5%Cd}%5o8reWCN40<UxCM7{< z&eqS(&dJG1PuEKi0_csFy06uS*8=q==H`ZroHhfK!BZZPoEn^*n1CNaAZ!@2ZFc2; zko;4pPFdHXOQCjFvv_BeosA7M3kyoBj!P))5VtZ-_2}eJ96Pq}ONa2jh*AKfr;PN=T-f&K+#wP?^~$TvzmUzV82 zOvR>aEWA%-prhlsxOkcTn|nK)c@G~dJ+fTGjgYi=b~*Y}PjGvygoT9#aTm=h8t2jcrKfRV6+~h71+^O)9{#p$2 zH-xsaD`Nq0B+%MIu}}eH63?zzWORS{SVN-T@`?m`2&8QDFJxrW>n3KVz*vS5RPt=A z0uh9E-(y;I`E1%@@f>|!zYDXWyu}5(dh+^Ze}}g4MXRQ@ynELR8wniJez7(K)oW-K z$MPH9_CRku{0G-DmXkPcUPeRe(I3CvCd3w1rIM?<$o?J{#Vgp>1wH z2&Q*;EglDP@bjw|w9c6#|CMG)IZqfl?`_(u1fA<`4h{}zv>K|a5^ldPz*b_KPMA^i zz}_o`Gkps<4>_=}kJ;!MYsTvQSciYq@slUlXWt(!m;r4q@U@57C2+1}^ykmeNH`Fd zK~L+m?>~GPHXlOO)zOhC;mjAJ7>-;6yD5Aqdn>?#AH>BOx`cK*TjOW_7x{U4gTlfl z+EN3LJ;*c%b>;L1_=4I3TWSrwS2u6o1Y{;IBCBxxz(VpxY*75#KfEzd1~)=B6Om%2{3Z(iR0a-ccgqT_iCC_@6y<~gszUxjrq|wpovT&2?-B) z0dX=@Xm{-1cT-(3W(m8#&mZxSS{3AicNTO=QnI2m#PP-rnoIWfzaVYMEDzB-H6yax zT!eHO6^RYVu9~rT?%cW8CvR;2+y36yO_Cn-ya{2O^`@(!X=SoojJ|}rd&Dz(J7s%E z$9>i+35X5v9vtHO3K-3XhG{QpFk$hPCJIjE>`kr_s6#Me*{p{_&917FcFsKW?{`f$ zN`C3vG~V(1R^smw=t9{B`FBayp1R4(W1c`^|Ks7WmrFN2>S2~*_g&Sx zL?fe*EYHBLr!-;!%)6mM)%MVMGKrH<*1I z-^`9yfz4^e3vV~l41(zf5W1q`51OWAluWwXfjEzg<6RW~B;^!dQR}C?vV44v=m(YT zbfRnIPfh1`&UAB)+|#XksI;t1QCay&St~sP7H_q(xcG$p-XnL-<&Xe*&cxZHtFxez z7{qYLzZS%0lzn#!GJr$_L_G@{c+3k=PYxEvt@R<(A!NR8l1o0qw7(%P?s}*IT&%Ea zp@DF!Z{{1ck#VvfEK3_lPhW;c^0Q~hE}aTQNy)}Y$fzECee(xX>VAE5BQPzvsN9i= ziXwZs9f&||xMSl3jK!E)5V&hUt||U+t6k=68)xfNr*2hLR6H}KWIie7_UrNKn`S*| zQk}5tH@W2G=!mwKRbgLU_(N4;{ojiH+ttFBj>Zq-)DLSQpld_;;QTj<9({x?X zBf9>_r?w93sRE?HTZaDs-cT1#-Kfjv=C^GNo85}8{rtzgSHc|#}jB? z<^mt#B>#-Lkg%ATP9kOicx5Fe|Mc0_(Cb_kGR4WIr_K(21*h03d~=u`xhfD8s7T{1ajYSZW@_u?@m+bbH^~95m4A;@t&GbZGzgvQeH%JGy(?6VdKdYcp24rC% zrBh@f(fdg#j&Dn~s*242M11m>IL`(SF41MUpx;{CkIV=2qym3p@OfklwE5^O;60*c zWzAhL`coqD9E*qpTvAwg73S%(vN9r(=+@K$!=&BkQZ2_<@60oQY7U{2of1dO9~I8r z0~X6K0hG*9BOPslNVq;eJ~$KbM|q()hSG-iUu9*bUonB)eEZGV{8r-VEl9(uWPTJU zgoWWXW>GzdshZGG3iCa$be~hf6!4W=cJ-zMXps%XV9lc^Qy3IYxYXxKnxf+AQSRs5 zQc_YPBApEl%KYoW^(i-M38QE|06~`Un!$kC-@o3WfxE+NQ5W|tqU~?SAgvnVBe%5c zXQ;Z88rp!MPvYjaq=B8))wvdQ6+#wkWrem`bA6gZvY#-g+andAQv1yEJp)S@%vg|* zXj7-ZeY>SzKT3kE*kF>t4V;#mlF}%%kA(jI30J3$X|9IxaB~;ieks>w4cR9F@a2LR z=7&Y_ym56dl|ZoDavM7RFcU9-%8wQ9=cfkB^IRA&_TBKYOgiI-9%a#o4`)mS4jwu* zP~*D+`2~h0oEXL9{sVI}Gc*ExdVwjokbP<9F6ZdwoWxL66j#5t)9P=BbLY;H7ZGyk z1cYzC#K!8OI-ke?YBMr1v5KA>pAF+zF>%kur%+VmIQ#O=Y5+{0a>8nc{`ga^Z89e1 zPUK_QgOE3JA1I28iXBX&)mKu|n~1a_0>u^>H&nlT3V#Z{Nyk z?cBs=c(~?7CozrlF;(=xAu*>rh&_psktt_33p^nubdm^Mkc0Ax95CEQ1OkEPiu%fq zfh~9u(AD2fNeR5E`TEzlH!xej_em}-rvf^(cXX5&$7qS8g99lsilb8lvJR1u(Qb?U z6|@XtKU%_{#YLs?^W{#MCQz{GvZxnj){e<0%v6a22H)SS=R4OV`kJ5D9datMWm}S1`Sovr=8j%M`{u;$W z>h~k3#Q;DMGiEq+htN!=ufSjr zoP$P-qG9D!*P)z23!`zre3|DqJovgXuUL*D5N-N4tsEQQ_f~!InohI)sXIKzeVe*70M<;*MKUB^WKv+<8K*LQ;YPxiV4I zg6b7sUi-n2PSUPlipXkzeG#}1{h^fjp3pnH$Ue9Zcw52gW_*i-VUTX?8qx?RLEg8v z?%{r{xGxF&M0|(hYhInXn#}yqXa3T-W~Z=u?aqRUG_W_A{*R99W$DUptQJMK)zxk9 zE+3~A8<=dG{mnyD0SpEQQ*YOMf>WYlbxs)3g+EyLNQjoXMQt1#Oz|e}g+>q%J@VxFU9py9ZikrC9-gI{}e)pdTFE2BcrvD-X4bxyuGpx9L zO@D_p>Sp>FGUMr1>cO+~M?>$X1O1Tqg}wTO=zulDFO&^EIEk}|$?gaG`*U1_4+ZHC zrzkj9E|>=cg`(&=hY4oy{6F;pdO@|IYJ}}!{f<|!Hv5O3e|;US0&Gk_P6;kncm{@l z{4h6w)dCS+tJ8%kw>UVI3SO{QB~p1WPQ(Z8VuzS~*agFuKA8WoOD90_40g2NfAfb4 zy5*An@%}AqdD(a^*c2A4h~VMsK{o&z}L}VG5P|urX|c2YJJ|s%lqC!nlh{LkuC?D35!*f%|gy336E`UucReqR)4*rhUvE2 zaX2I+BLgVdt$q3Bt*v$0Zjd@a$uauFEiA0fKX%2=?x+jQN^t*a#Csa?jZ1VkH`~Hk zXDzRwP>Y6YRb^#un1bJ@3=Q@){wD-9tufkgM@B_e745RT)<^kW#GY!0?@FsWqfLkb z3^`zWaQ{r|9-&u-aa4+3qhvHHm@>eIhB{Q*f4hx-d|c&9v&6jR{Tw=4Z~p+r=fIap zI;Vc2tRt_}2o?YVjhfC&eG1LDjS85-EbttB4Yln_`<|e!5iEbqtG~Zr?BM!{@4fHh zE3`uB{~g#*MIAj|<;%^58C~c}bd~`0<112`yJ8`q+epIWV9y!AR!)b8#U8q)m8^yjiUC9)MWvj1~)-d10F z7kLud7W)lL1d2NCl)9N2`?+UTcob3vlT8(SWsqxZX>QJGx_JF>6$c_q*Ha^%%8AP$ zzw-C9=77Hmgg59&;izry!O(4Qq#UplCe&nPs)tg0#{u(18ZcIyD|ZhyHN}~?1}_M2 zggje+g)23=pPxcK>_-^#Z0hT)&`MQme1Eg?BawFqO_r@YcJKMI$03DeHQ?}>k9L#Q z5@KCJ1qS&DB~L$n^8h^5?J0_I&Qm~?arH4Yb?>9e^LnD5lwD~_KBKIt7)+jtrfjxO z#$7|n&bBsqih_?{{;*Hf_F+bb6^6NC9EqSF6!-<~2E9=9_;Ff?5Q6#Fm$y*U<$Y1j zF;ra1-%dme6vH2BAsyfo!l_VR2JlVnG2fP!H57G06NFMhd)d zWT=|;m7g{>rT}L5N-v4;EX8gDc|$2e?N>c}mOlLTlSO@$Srr_|v) zhJ0$9o7IP4-vXn8yQRna`t_n|hFH}&%XSKAI zXkCYQWBlA2mku0iPc_vInaAoWBy*|ZHBEB}vVSIyw-o@$vVg0m5NNCv6cn&t3ai%6 z@Vwf})!KwXw!?9{;q(+KVV}9*tsmc$d7HYsMGqYsv20V+RZ^-)tUw$KuQe|%UVn_Q zkXB9yoJ(wx-C*&)JJp4fq;7aXq6jJzDGe25-w7K%qZkjAhxxpqr5ogaRP=gV=>+?i z{8~o)klw+dW2O4}nEtsmLxh~6Edy`THpBmBGBYFYI`vSPgO(lBb5ziJp~9iwkiv9K8Jl#|}M1R`0!xjDebpE>L)ZtO|CF z!DHdy{)|TY@n}=5qM9|NYKAYvU%$4NI#@VSyjFSxOF@BFWeTs9l*yGXwq$qNq$S`c zN>fgURc7=J1*2flU3mttQV1pc1u$6AkN5-OSKKOk{gYqC?gc?O9JCW6N1-)YoU2GNd7>Brj$& zaFj$2U*O8Fch!Bj>^FFL77{vAM?-CGT1H0brPKMfPlvS2DFhndzt@S_we{A~mwtYJ zm|T+anBRFZHGO=njat>CEgVV$X^zf)jwerV&(@O629rhC!xEGZe8D#y9YdtU^Qsw} z436evB!)Hg&Ipuy*kJcH0Gvs|O<>5e<&uKA!anTx6OIdB`qQ*t7>#aV5ZQomcKYTe zRNdcU;rS9W_kRLRKquXMREtE;J>;Y}bDpB+a?}kpts_y;{ad3F5<*O)WsmC0{a@V& zbb)9(9N>$Dv?W7Ar22BuNorNore*(`WPv15Q?We9Xrq&Z1C3gxewKDRP7HGYxW-CN z%Rh4n^gU$6>{~H(_Nl#HyOQo5dOa;IM-Ly)D*W!D^Uv51+s)1*X8q>P8w0c$(40Z? z19u_KAW||0c(XsI;-=s1oayzy^+Lplm;KjB{v$^yYUoN2@hvpzPmBLwPxgQI!2aX+ z{}VF$4`JmWBJ@97Y5&j)`cHuM&ksWC$o&&LlV@F#nH!MJoRE8KhTrth?{NA!z#C$e zC8=hAC(-hb%{0VOC@@kdTCe1<`EEAJ;bP3=#LV~%qf!6R`1y40!)5mM7ftLd);{eV z5C^#SQKxz9ua?yP!{f%kFLRy5Y5LOUhNK053P#Mji9<#;FzCia6C}*DkEFzTd3iCU zCn=fuKvC8ylc2VpOqR-yWdqti+ysN7171Zl)FnLFcYADIBC$e%0ZdMg$<;uZQ%I>Hsb0w<5bN0x40LNMGdaLgu!|UNw_fpvMDNT zJv;niZ(w%m?ZuPr{Jy~0%*%xY<*j!N1q-6(mb*8Q#b6}*F8i#gh;;J=)-Y?o!>c_s zG`JWh3^h*Fx|LMRp~%DjiJ@V%HX&C+4NOr@=Zm3O^MzvrEsc_^U8>S>Wa#1k9;A47 zDL2j8LH05X@Q7fV1%f1R+4#rYBaYq}Dg%b)*3bxZ`@1aNqsVYUwt&|0vn!_?PBTDP zlpJvZf!tM5rhl7IX~$ca`~Xn_kTCBE#&q?{6+Qfp#^hHF*IpDB;tm^dJ6q@~mVsyb zX~tW%-7#y5#e|d#grPO@H6PEfsi_I}e&{u}sKWWDKBi|Qttdkv*!M%Iz&$FRH@-1_ zhcObhva_p8;6!Y2@H;5_xMU@Cco#XjgNw_@?(U-}41n6;lZ=J3^N3<=xK0JCFUHon zZ@@mBB1r0dI#+G|$H%w@c@fNCRYO%Z0SD zr)V$?Ur2Kkp5wUJPaGwI^XHElvd0dHu7E0|{FHi%h z(&0Oyl1smTyTK8J`DCr9xw+Rt$L>R})0bc6j13QO0(@||5S6j@pQ1CGDuAT^fB`Zp z4WDi8>SD#MKn3J>Lxfur&voI{A>F8f(F-)k?J-mVqaLPoO?xGtKYR9zH2in2gsw;s z4=0531^c9w`|P$pl;X^tEqLXIhK5jQSF}KI^bkLU`xO4ElQ3=K-Wy!6zz!WJMG!4) zFcjP$BB)@ASz9_AL<^VfYP4? zGxX6=o+yOZI4a#{EK#93{pufW!#6`F5+5(YcQMvionTO z?f|kiN}$=nC++q7SzK5Gu5Fr{66DD@j|~k~GckF%cNIErbUB0;5C`2yski^F(k9Pp zTn2|FX*3l5A-gI0?dbYKRv?M1mM?BrLjKH`|IklY8B7J^!wu+cYG+`eo`(}vNJ#7O zI3zlZu$k}5ynDA9D8WJc==#>zsJBM-H*l>CAcSfj3>FaNcTENt?f!DxX7A_iXk~PO z23#UJr!mCcex5IS9A}wVXF|~w$15ys_Yh{r;D@DkzW4`GcKrB;Z~ow>o+2v^?6N{0 z+GEXNK;nzPt zjpt;>?mMhKK6qM11rs#MJ)t_+&|yPHgZl!YLj+nub1Jly9MM&TCdOw&%t^6+^(x=&y zI03u6mjJXH`!~GRFc?6(4~UiTKkIhTe{VwzMQ;>`7%@)OEUSl z4O^<09g^eX<1uGr*jun?c8N^(1_*Ph-q3#KAQt=jZ+CZ#(nPcF98C)o?sDII{ zZ1=xHwwfM&LBlmA@iwzs)tS+t0S@lfe)x$qu@>NCCesktWEop?km#*7)?Os z*4?Pl6|utIZi5A`6W3A2kS5B#VLS~<*+!B#Tl}ZrKsO7CRz$h}gw_yzIiMXFM6^^N zL*o!SCtM1+B?Pb{>nWA7b|6?h8d9o5^6_BH=zUc8EZ~Tt7hG0ezUXFwYe*FRK=zRn zHV)Ej;7sEl4ft07etLC@hYl#>HEWCKEF0wCDxY$6oJHw%tEb^4d*}duuco4sH6gci znfGN`K%(~}hv+&aEu6W5vw;|CT>2~1+eClaIqUM(DKsL&mt9?A^%L4JOLnOQtEPnX z^-Z26?K-NHI9`TX2$(nNSjQ(O_?<>^`Yw&PqHE(NzKx8GtV#&2a=YHb^f=aXSW3OL zXD$Re#HGW#>vF))i~nodn}}`e_K zf|o6(yR}u5EoNh?VmitV;SZY6#}=b33{BQxtQFxYa;05iNIra=`u)a;?8dvJ<&^F> zS|xC0mgQvYMq~(C!%aiU=Y?B2hAh7Mc73GEoiNs25c>Fy%u3UTc~_IAh9@+bo@K?_TW;b=G02*D7i2TTp%uVgL)uY5JL{J2sKP zKiM^^S-V+7Y9Kw+=W9zKw->5kQDOBMZlt$#bSp48T(#A!sM2fwy}@A`&e)CNoT#1m z-})}|amx?ACjAv{wQ825J7x;wge+?3D(%#YuXa`c9;Ap?)g!%8GPCq~o=W||YJLfC zlG78zR-Nf^p5Z2{!X=2FnEujcQ%r_pfXM;dbo2p@aQ_P4E;*z+0=EHfK!m1=ROA2h zA+Gbl5;YfM(J>br!kBsM_nK_ zXN1xrkOpBm5Q9X++sVj|jMH=E8WwCRJC*<^l(VDbURu@S=g&>fpO2=cb+GMuwmDc) z5UZ#g9$xwuf)#08-T!dzY=dK}U5^$(o??N`#s_%96HZkh{-(>O&Q*cDD>b5c@St(fl4gCBeJ8GxWC!1VAKJM7U3WA;e5Lh=F`r~gZYOPa09G0OwC8eoTsoA+(hj#k- zbYEwu$XsS-r}m#j<;&(V30d(g?<@J{nweW(b7^wXtK5t4r8SJP=)Ge}eIfSC`atik zFP5iX-VvQ!_Ic#)WpCC0C#g5SrFyQ~M4#gV>JFv|E;0|1M^K}?0^U_r)yB@iK+@A; z(Ky9BrM#!_^z>}eX5F1Hyr}7JB+ zuJIo~usS7B-ugQI-}+K?66rZ(-^;H4BJ{a6t72r6BZIJU*!yrbsOm}A#$~xF-N6|* zcsPQ?!kn0tDVO$<$~s!(qG=B(whQ&hBdD8_B)c7W+I>~YQgP`@(@Fe`Wuh>hynx{| zIerGofZIRdaCLHXD;1zy1>n8tIn5?7U{rYU#EAv+BYR@CIjP4rw{h$yeIWmDU$t6o z3sxxfTAsyKu4NS!Hy))){VGFR!i^)O(Ra5UFPa_)t-b(t;&3d(z;B)Xu5EgCg_iHH zNzAk7q@#r&f9#?>h#TVkD~p4(Gj7J1Us|H3pg33VbOr6^Hftx<<_pI#^=pYlhOHiw zhcgNaF_YU(hiY)l11)h!jWq7WYO2o`yYVATUW><$=Rt4^$yHx9*DMK1e7Y^Q z0q>4Qz=!0?;R2jRQl=28OPVnpW;YaqAo$0cZPZf+n4$OwJKHjGdlU305f{!r`yg(iqUq($z21tax{+{c7qI4{1*nRoV}TnqY~?Z~SG0`K9f zA;`#)-Jj3J z&`y$H2@rbRR-lhIU?&M_%c!_|(%?hq6NtH=Cw}WS=hbij{#7KyH?>>dBGfAgx__*R ze_I&;Tr64iU$SF50|f{l-@N)wCg9(`%EyF$9n9(i@Ieq95CJ3A|MHa@0W>cE`^ERq z*I1PGwr}EsHq{FB zJ&bTaohmGCdY>sS`|sb%e|&o$Pgse*uKanit@4kb{J;PB|M`*Fpcu%#6Z)TCIuSlt zkN^Im_~(Q2==!?K-hclQ|F75hKQ8cpE_xx%-?kb3R^Lp@^H^bR-2oI*39Isd+MWN) zj@=o3O?U+!GpHNW4B}wo#S5U^j$cp(q5sRy_+NL+MOjX=P_6`4I=ZFDy3k(fgR9*C z`9S!`OUfwvJO6)tII`&f&s)I%dJTb?|DQjDRMeL|ue|Py^TT!d4IXva|7~eqw~v6o z31eT^3|5eyuR^D+u#jb4#pHkbpi@yZ`(MIQoR^o^+l|6D2HaSxaImQS&yV&uTON{F zS~@y&=pFp65Q1%I1i!BtdKlG5+e?PcIRai<9((s~3!GQ>QC_v#UVL&s@+naL;=|UBxB1R2+g}$H{Jgt<%#T@%6rPuFq@RJ{;p^~+==;b=`F)^TL zxg0eXV9vhF_9IVAR4=$n=YxmM+iq(XcE-Gi5!pJqgMW^X-FIy4rvvTMbWi5G{ zqz8-PenIzX-(&pojGd9OyQ?2N$T95s!sT~m8UFzyGc&@CgGcfDi@Rd~c8U$5evY~A zL8Td-s7Svx>u2fL$o|}JDARsipJxdq95O%WMc=il!PUOfq13G1#rKo;s)eGJu|szc zHV+6vKKw{xmHO43(zb%Ts)43vy}fH}p5_-)4N84vvf7#Gh>ZlvswU^gZ>iEJvNU#uIzhSAG(Q zQqrzY2Ct31!rWmbeJHj+@qCS%L(RC+M5B;7vOSEDgs_vxPQk~^em!}dZgPtM&c^5( zT0k(`1LoL*o_KB%Lv{+DnAvLXK_n$)MOuAd{h-Mb+kCz}M05WEdFY;a@W6~8$9b#A zo@s}Io*hvKIgaNW)sBmMqA$e`kGqFHSzv+4*?p(IVJvmFm?cI@$nL%EbbMm-g6ew_ z^?!fZY*1h?@z9{uv*k3~8dp3W%`h;ea?K1}H}k1)J8PJwN_t2(&P$%a!^WshwY0GC zxxf0kEU#}UXnNF&2J_jIl}{Z-25TNIwP(I$H|P1A6~{|3kt~{SJTahL)zuaD%oP*! ztR!XAZgD%+eZxZ0^5aKDH6ck49wp%is;(+5WW&_hgd@`@56_z?2VGNTU+?0dsSk6i z@_EF@b3CA&P!kGn`tb|%O=Cf=S8fXqsTy4c?#8h&Eh7isN|sN<@w9Q*#3AL>w@d8i zC>>U`HEXayjN9xw^_CcZf(@_d0Rt2iLczynOZ>UuE=Y@rsK1ot9DG6(OYp)Y- zKN91S@6-NCUnN*XlGVc5$h#qZg(b$4e^Seyph2Lo%S~iOV92anhd}apwBTf_h&txb zFXa84fJzssYKWxtV8#nmrlX3~vO6W%bpQr*@qN3f|e7UhrDP_J#Z zxnPonQMS2wM%vNp4_vR#dY*Apna+lt_4|n@xX&d$K4UX{cqDUQ6P+nj+^2CB{qfmb z_6*(}tT&BvpRA;6`G?+-hf`lNq_Zucorr zaMI}q^B*{l;HU^M6351JQclH3kkhP=cDyhZsBx!AmBu*vLu>RxK#K3B%3+D&vRsFh zog;%v+G*6mvPTuMRyBqZ}+V{SxFR2OA$?C^nF!Pkjl5Du( zzgMiw;0>Ag|KQN{i~)nO7_0yFi{p3iG#lRF{CH}3<7R;P9cr&)x{&_AWfLsMG>0?q?^rwYX80 z7^eTxXO(bWC3(Iog?s$WPEGVB$I%y#2|@S$hqy`1Cq-r_8o94BqY?&j*Vgbtn2)}_ z@Lh2%+;Fa*5FPDyVKmSwF}k(?!IATI$pWvX)xyGE*Mo!S3!@C`RNFPAe<=kQ+uEIS zi5~hS;8NxF9MI*-=C&4WvMGIu4m4}ms38;)slX*y@bJ(?f9AS+b_`^%v)^F@L_IN< zO3!!bNF``ipVW4QVV$_RKm1-*TI$kzvVL~bYB=5?ddM0|KlXd=clxJNOs^UEX3S$CnYwP zF1l;Z_@(Vo%ZbDPnM1~uaotP=DK<}nIw5Q4xE7w_rNHtG= zil+ZIIU^75`M%GWU@D-A{w^fs6xx7uPyZf)l`}`WL9m#@3c;v-EEgE{r1*Bz;u8#i z2_*NJ0J_WVPMn9-54Q)|{&L@3SNTUZlPYbbJ7dd}Ka3vPd6#gE=P-6GJFU-keN0m< zdJb;AxF}7(o|O?TEkD8eO=@&Emh8TXJxfg2XKAmoB=-%ik?>P4zp;Eizf=PCvO*bl zUYYwIybj&U$(<9Qv}+C~KZF{$QadX6K6#?5rPcQHtH~=%Z+&JoYwOL0en;04E0>4G zd?YF5=FW!~X~X4ygcfERjMvAO%5dL2`8%Mjq-E5Ud@vYZ@gvDhutuEmW{IL4b41rz zP;K$EkoottvFlOMYL`2v(rx!s1?YB`L!*RbvXusMKBxN|?&#B~cC=euo)MTa9qq53 zeft*h0f%RK4{v9Lm4C$OmH5`<`?_97W?R#RbxuL9Q5Kce==ZZR7(PkUm)-c1&PaW2EpKe^sgGyLxw!eaMIg&wY2_dYO4P{*%s}o1E*p z-u8H9b{ju7gW<6hug$~m5E8p=ErTZ1(3W?74b2PAy{Y9}0TZ0egc0IP4$ZQozW01N z)b@O{_68*Nx4xD%{C&yS!97wM?fpCTZ*f8tlwczI3DuT(RgsTbO*mqEBMBw{cLkV# zj}j~QH}n@lB-RMCOkn1KCs>q*2IV3JSW7S^S65TRLBDZYq+#F{ zjZQL?o3zmC|5HkpaOezLePB4eMtS1`rm8^tafT64J-ApRWhCyBU()1>NB-khNTnOB zMJoHEe7}%m?TeT+CA41Zo`l}OC^RwoD_qzA`1%z6>ZrWyRsr*}`|kHOmp>$o)Y{!i z3|4~!Pa7ka+uE=?!ja5lk7E&IV~i%-~9^WN{F_Gr}&wuirL zLmqk-mKdrVzq_TFqR`y;wm42;CPS7W{Rtcvn{!{#AJbv*+C0E+0vtLpiQFC zCw5`P|p*ShOxAS;)Q&pKI_FRx@&}HF<|oQe){}+XA0eZN3Z7#NH0+)ejlYT_;1fJ-~2uwR`7L?`=mIC?sDnEuNk!xD_VoEWV zwy=az<@9Q^xRzGrwSA;cPh-P6{&eazcAK5|*BU6XS#0#_=6>xu$vO?V7ii0mBp<4@ zZVVXG*wyD=J9&KAh&TSRPirsGoc{gm*L(I;GRDVD&F*-4V%@VCbq^on?$gwHsQ2$% zw-_I;5`NYq4SN{z0Vd`{RWVov#GL@Ngj! zMZSiG_c0n;?zPjF`rO4Dn+0Xj6p;j~S>!BnhZ{AKHDRypi!3FOkUXC+Y7+E_XqmP;FWt-AtZ%M z8rlwWNuX?wv~@#6v=FBPoD__-6gZmuOYz1chWs9Ig@=icwvIK-zXIeSAj%Dt5Q^lg zpKHJg`~rHwASrd*Bn9A?$`)v(ph<9L8UC~1>Uq^D`bR(L3>z*HYLJ)lsTwbHA-KBx zuSI6MHmYFC)3x`*XYHW}C?XUbm&cafJ(UZR<+VQs1Fid6eY!4*va(|z1k*>`wmEsl z1)vOSvBrP*2q{=vp-9TbX#UglelVAER`n5c>_D&f1CEE!)cte@w(SG1pSu#8vom)K zyGB`0?;)j~f^25q{#X>f{D_NwaImq!6umn4X0suFNq(g})7$5mqbAzNaQTr@&Ed~9 z(-Pgc;KYUQQXjZVe`s%a*EUK98nDwCxl2CNg>K7}lveCd8&r86?cT zxx*r=Y1rIu!Sp3faax2s3tO|kX7xZ8O)WqA78~%NE@lzF@s6D~33uUYiYjuuczaI;I+|q3U>4br|=6SDVW^;MX@qi}tDY_Kd3lj*Z%jL!7}T+{uSj z+b#D3p>?p9R$5>X4D}JJu-6#2T7At!o9fJb9`ewHji#)I&5cUzI+y;zho4xER&V+0 zkn5i*B#r#Ww7iL=&f(CrN{brmQRgyEOocoL9J|L-QWMhDddgVtYwxq$Z5o(*P0BT# zp6ANT-U_As)puzalqvo3U^wc%O6wWVVIfBIB#Wcwi_Np;0F?1h`kT=_e+;0(5k!FR zmhdofzgJ7(@In7ZbkMn{K&m2WWyfpv~9Y&AeU<;BNq!!Q&iw9s^&f>Ia=&ip|xUA$sB$&_2fPs4D|HN+qhsJLJ>QWy)gQx#W@n+gMoR9iSj1y8}U|!B% zOs|+ICKO>OgH7{F`KdNc+94w$x8q|Mfjv1i)@W#HrF8+&Rlp?^y50xs3DA@~)7kZ< zU)NT%x>b_(o8$f!qy$_YxgYZg9F<{CA!I+r2Saul!U^n&heARPFdGF$PXLY>&s}Yx z<4aS@p${Q1CFdqG2G@p`KEqrJ#8&h7LCX8V@^LVfin|zxEUF$2QT=jmlywfq@AUs1 zA(MDA#Py+V@nEapM}_$0rA1AD4i$VX zOTMl%*WS**{2RD7$H|oaiD9}3lVAimtYjDI8zUB$l#8`DJ&&0Ck-5rWOR$RW#(QkE zJB(-DWy7TzooZsE63zLJH620C;a(RO?jtAl+^#QlgC!%=u9QE16sh1S?%OP4Zqs{y zPhe;|bZsQTr=vCty;}hPav~tIRer{PnST_|P?Yoe%F&^#8!K_8QQAT4(Rb`nN~!qW zRsV@TF&7zv?m;6gE7rDmzrs?!$_5W`pmH0wFgb8^AXF$Rv4*3(7Wk(3(Y&;Tg+7wB zesi`k-x)8i^Okj9al6MG-y+@=S=fjC)loU~x$0PsC)JstQov=0s>CTBgSj_#$$j05 z-k#TJ(m#t?$L`qJ|YdlmH2Zdd6LK>WZj|}(sbO=Bj2HyT}IhisNIC8_1S{8 zx?Ey~`Jd$TQ*17XAuVJXMJCp}eiGVNqh))Ap&q?VuDNm+Mc~)0kqTRE2s@-|+2#CZ9RuMU;vn|SA-Ba)9*Y+b}34H|l2-J!8GYtt~(gC#)fY0CzbCP1`<0GXSJMi=Y$rK3C zv}5=BrKw%FrxFC)r>7}Rbe6ur)Np=dEJqyjG+=C55338PDIgU#1+_0EvrSpG_Vx9_ z*uJ|sF&Y8joGF;nheLGEZU;5^|6ZhlBd_^r#tR132KbfZMg3NDCH^^Ur&^#QlAyUo z@ul&?AtX6zi#jU3SSDMoBWqqJ?+-`-MAGoe9}9nBAX-;>ON{8LK*5`?k-awOY_F!Z z{fBuvKNE3eak-IaWX~}aK69e*O|cdIGKd(-h~@9JuI;W~*OR3nk%%J}K{6cb}#$0Y zJhfnZka>rR-K5kgn-6xq5@pxaI6nr0F(cDiIW0i6qQ)ow;zBS$WLol9$C}lIEthq4 zw7GGy;^my-<4^2iOnZV=@?KtX`J3;e}5P*tf;Y7 zI=y>){cHbQEDYSCvjY+a^qvhBudSdUtl<5?(6zIu)#_cM)xLqM*WwsCKN6TIc;322 zsM0}k@W-TnNS9k}_9bP(v}(fpH@HlUjkx}{R`#>Y?mpwb{%NIF`)|MhNP@mu=kXFr z*XEs=R)dPDe03Z|vxdNiim1a#(4N6v$**5#GE~L?P77ea!7Ek^ZZQ(}mOa`~w+<#W%bC-J;c2*G?_ zSm*N23)fg$Rpr<%cWaG(b5_4*jr_Pjb1zeRAfC;f;UOa~~jzmta8dE`-*gd8qznYOpkqsaPQnrDU zpq4*$xP>{J`};c|1hXYsybg93ueBZkDgD*Z?&k!k53ZoUOSJAoNRS=X;97y-^GX8% zr895QKIo)l<)1K6)`50dXoE$RITmn|-J_%Nm2M7A#}=MzHb_U;3D7_Q2?UT?W8lNa z0h$*m#=$ZS5)QcXGAw>u#=N%%AO)~jOY4o7n+CHP=DmkF9MCcQ{Qimo^ci54ZG%Ga zueWcIKupdWIHw#Vz4y8pK$~fBA6(O*7YW>QekY;k5yH3L2ZF(AkUmmx6mDF}(_!q- zYco1KducW9Wx7fVws7#a>ovT5Fx2|Iw2=pBDWEAg1f>Z#_h8q9Lw15mLd*e8)U{;|_s<}$7W zFyyqS0^U2|r|!5i%BB)gu5Zw$3h*E8=bxP(RWsr3EiA;WWP}u#j*xvb8E(T48Xq?& zF=l6E=Ukj_V4@Hidc5zEUt(CTSf%p{QM|;GaISUHhzgwPXIgP*tEzP#Z-skbU9Siw zuPtly^qHv0j&bkeWX{oKIWEtf3fQyAyk$~D8j3G_ks{dL6OU!awJ{ZAF=np82u*hi zHWQmg!A%rl{Ia~a`Yy7dWJ*`&z?kofmT1aUlrxEc!Almhxc7ahrh=n?l3PpqWIVTR z5tRs)@K6{P2yU*Lbxm5eR z-c>7^Up*#CABJ`17c2!vhV`RcW2yv~43>rI%x2`x7M9Lzsw~@Z*Z8wDvqb#&P1KXZ zcR7mHjnVQL80Pllwu7EZ0x^@XTi+~FT|T6PpP)@vwx~#J}Vars;TfygVtEvprF1H=tQqBXA8u1WQr#~>4(no zs6cJ=g&Z3CSkOwk?>ftaHUY{>ONE?_nvAx#yzE|gr?j-h^ z;`)meB4;tKd9F|TH|-`@m)#nrjy>fqelm7;Iu`w2Xla=u=tyvTHqzh1zA)NezT9V$ zABNEE_}1s!bSPrb3}R)X4kq4thqg6!7nW1<1%;61JzD9_j*ma!T8!H0sb-%oPD73c zR)+~`8FV!BqIV`Mggz4Qohk-Jk~@k~I1CTFOuwn1hoG_3!^dyMrz@xIonsxHOzoCf zU`MEX&JuYu7`MXJG{-P+VN-YeHr9&Ma?Q@F|3G!2w~+b9=(vkHn!r%2;zNt9y%sbp zl`-t`K$h6;uYqUZBz%u<7VICP%%@+#JQv28F$O80d-UL)UpJ77`Yw^Pz;NS#O9f?42>>5CEJyKkjCOqTp4w+W zQipZ<_R=yU=-c9GWkf@K-_wF%XFt=29hB1`R5^Ul5o>5SWn|&ZdoBKX&uSmu z3=5;6kNeC{^Pu9UIO>|GtEP4dAA5XeF5`UqE5waPgKq@wF9ylA(!~u8(E`!M+PgPG zu4>~M*2|xEN|;YBAj_T6R29X>xzNk`AhW?S)q1kMCf<7beTvaA*+`z6?2LD-(f1Qq zZk{4u5D`AFoSmkM~Pxtnv|-$dtA=F{P|GHy5Zf;C+pNAWlJoi2@fJ6sl=Hox_8ZjDa0W zKCzl-jiwpaEOD)r1;u*l_LWCl+2V4+5_NSqPxoCmsh}rkmeeF`T;)HRrJ7dw%cM{j zZy2SnQHoadrT=V2kZ_u>NJcsBBfl9Zy()Q*IqZ(``F2Y#HvLXK>Sg-Oyf{RV(l#ge zH7Gg3fE?yNRD=+APPDh9zWL)JUL>`^VxGcy7k(Ipi5^dB`lD%sHf~GO*8%HAH+Nod zf4%W|hsu@~eWdI7c%|d**RU(C1CxGp*o)tFRcW6#dpP*SjeN##ttIiCi+ZhG9~~OL zc%fSn?0@&BRwUA&KpL%FbISGUtk$Hqow2mtw0^_lKO$!N# znZl8}N&A6Q-2e65Wi7vxvuq3gQrw|mQ`+fnU{~#m&lvOk4jeko zh$Zd-%s2sG9HOPz!Aj}=1D$mVSN@o-O^x5D4h6igC-h{c(C;AQD+Y)7wtjW-pZa!Q zZrS!9Y(!~rA-!oM=`L!Y@)HI=BV`RX;Zzv#bjri}-N*pW8R(CJlL4$ipgqLJ!_#ga znAJc)_RKigu^_QoOzg|m#heI8p@60Yy+&3YZzeKTim#XB)oQ+b$lU#vKY!fG`R? zk-tx&MgY4$_zd!>>L^Yixf~*w2x>p1yZYPm)TD~w)|!@tlNivCP;BXxMx9| z{j`;u^Ujw`0j#HD`4MQGrT{W1&dtTJL*A|WO>uup++=Oy?kIAfqpyY2wy zHG&@G`cwY>S=2c3gj}{xyi+XL~YuYbJVY{Ry9| zI7WzEra1Hct%}17vEoj(Sn-3ZK}#Q1!%xE3AHTohvgY)YV!y7TfO+Njy_Sh&ty;vh z*>}^qyrW(+>thejVtbsGDHt-}jPTaW@@pWbMZMlguD!0CpxAj8H8kWI`?f8>e|Ts@ zgYP9Zj$~|J5At=f;?E`@vc_EI;B_nKbCJBFNoJIrcvMfTbK8u!PEuF9iR5C~{dSY( zi|J^2)djJXgYJ!MeSh}nEXJ!2dE2d*N=USMNHw$XEBRW-_I%Cb$*$uWQ#rNJa^A3=BP5gVpV2DIY}*)|2#zh36PFYO9fO z65uv!+|Qu?Vf<|DzS&%QOG~nF{rI$1NCxiypoO>6yG6o9`;&A^vn<^=O=o3h>k+# zwO`WvSV@=$WkDqD5s!JQCSC;N+$9nEM95{KVMH~BwSHdrtWSjDrL??O^2kWb`Rl<# zhDWX*)S(<+yA%|fPM0F}mdf3e*6Q?{!@>$p1NVdX=oMMDSxHs4yj&mobv+rLa?~Q0 z_*CL(yyWSXtC$w&wOIDLm!XyHEJQ-}YWd;>E~((Wk^LAc-aoSfeL;D7`6?zakn}^EhJu|ar(CY0Q(no(~)vI%1l8Z&VvD?Lv_GJUg{kdeY3yD?33S^`t8p8{1 z>CE{0#CIE#(LX+b;Um}uAQYZigxQ+{Jd_jPzM+m&0J+EeO4bLBPvkxQN()>piYwY- z)f+dkDZ=}{t`5WmFn+@#h0WsyL||~~X^k|Kz)x2125T^vvVMg4_>OCr=w)zw;&W!^ zJz76Hf*8{E;Zv;A-98(JvAWm^&!R-#neRGfyI#8I)Uj&07s08gf~JR?qYj-*Q6D}G z^@`kM)i`o#7TI^j6lB@%ocCycJ&0CFztl(ePU7X?2rdpcFX7b7EV;+@)68W;M`Nl1 z#Ga9Y>C^+f53|(3Z9TVu7CNI2i{3@uQYkm&l}D~pc~MMe`}Vw6b-0aIDCNZ0hPzy9rX-1YAKBQLBC~Sig+8Z| z_%i>gcb$r)eXEqBb8=vTsL$136VFB&QQ+6m)3`6>n>-zz^F(mM67m5PVkP}<-mm01 zR`#U*gkMAX`qnLnYO(T!3snW{$8$%HcFg*pD!%Ld#!dKUpr~E+^XIZhGjS{bjm9~r zk~zowLhKagn3#8Z;>r{@4qKjEzj%Yg%6A$3x}z{4*F;h?JDj@Gi!q*6 z+Fdk^53@BM49jJ6hH?}8Dt=7rlNuBdbZp$j9Su_J?C$QwuGwA|8=G9D!VU6zdbn*U zA^m(Q1Ou;6IG;T@r#FGk`tDf_BmEmeZ_=Kj*V!+gtXmP(XyvQZlNg2h1`C|cBI3j! zkiPlq#E9N{AEy)f`+E1vpLjNXAf5qr6<|kuLJfZW-vVdzJ3D?LNnZ~`^@F@Mx2sgOd!BdcUYgBquj`9@td9A08Vct>cLN^6B*l zfUqJdkH84k_oCbMH-#qH8O@CYMgc6-0BZ*l4FQ>yb&s|%ovqBVIIvsXT_Zv#!x6{*8p2tfe*eQ9*zlnh3916@H$=q5G&d%G22#L} zwD|h}dl*vi=4K@EJ|bgKQdkWAtCGMdEgw==Hs?~l;^KN24@0o!^Ji4Vk(G63mtS#7FZOW7(0FxGj7MVzfg@82SS)}RYb|< z;^hg8aMJCL!OTPp8&fAM1B%>I21UvK>m;`Pn4Hvga|TKsTce8)+!K`L!%NJdSad$gF&nPC`>;I6G5 z*Jx46oXw1b5goqcY11LjGuv-3oEARUIZY7;S8_iy*X7VDL|#8_WKX6N9=JS`tTvf9 z@ld0&?7N#d$>xMdk%vSRzZUJ}H`T$Vt#re_*>_>lEH+6h^s~@TE`dY`;=ttY>e^mA z6ES&n?FWOd6=&~R%QYK!g80k%+G9!2yfT(EpDG9+w@jhf|TX# zXDtMWx9UfSmC}x9_kc{m#ZQvxwe?xtXHH9un#+}+u&Jca?;u^BmYAfieJ`G4>9ZRH zD;p+(>1Q^Te%)B!?0M=q5${faxn3L{MB7tR^d2NBPIOhx)sxRh@e|ryk-pibrJ}I& z10?6o>u%ntt6*Gkb^+}Z38&f^z}ly#r~56u0kI8+o<~i0RU{FHz=r^Y2VC_CC@6#g zp$Uf9tiQ*nrD2Kb%d zlX#U?jt+o)I8bgDS~J z+Y?ZGkRL~`^&r0w(l4sG$1ivt4atvaXe|e)skNsK*+}z^El~()e6`TtJ9dl_^8U#4 zs~L)~Vga+u&&HaF^Ai@X+**46ec(b`Ybu2?(o5k}#2hXul`Lf(&OQOLPny4-&}%eo`@nTD;{sDp(Wbz`&~Csu&1cN9Z5hip;hD7DSCkX=(H zUYt9QwIpYY7}lGYhn)3SRI*6%uCuk)##o1OS2^QagEDTu=c7N-!_QC2CRlsj*681d zjf@4g=g0OGVq+hu1HBq`d#F2nyNeHK~U@Er^?L>pBS%2yCUv5 zHoDQE0$CPLeJR-Amo&c@VbP?wcj`lg}uqF$`4(JT2P@jItgTJ41(*I`={pEP?k(QKHh zZq(!%|BZ(Czjms{b_06|nD70vRS}I`U3Y3YSvWaw$@^6 zrtKiZ#ajGgFPr(gz{5@?if^ zjWVr#c@<~fW{3YTb)%jpLQ?*E^T|3(RrGXcrxl>Ypc5Vah@vbHEkA~j0Q@wZ?6N4z5)0WBmyf@ocgOFgcI_4|K*%`$sXSWh#XZ$B`dNwy+zlTf2Lqx zGy}(Xoe5_gu6jvRaZ2qU3JRFn*@2$X1U+^Yl|FdEesphA1h^@{{hJvzmj-e&!s(&$ z@#Cu-Dv&Pu8d7NXSHZQ{z0s6PLP!XN(_-+K0n)&VTjZK+KqMTDU`h91Cj0dMK^et+ zYuqx5ZXr8eL@Y6pd5LicSIHn1?!n-SpCVqOc3e#7=~#2@VxJzfXDW?2m0Z0+N<3tF z&6n!;tf$8yUPi}8o+QT0F~yaA%C@DqEkd5U*cAt~%2EnP&6HL#MU%;8OLQZT65_MNaGbcIX{xock+PS zNpfnH;iTcF{PvXAVYw=Qm6U;z<2G-NG~UwtZl#fg=USQ;W>!_f3fY8&8pMaLCHe($x!;1{GfhdzY z+$9dfpqpuU);9+>#p+4k0fijTr3M0{|o{`PO{Canv=v$3e_ad8h#zC(JfMAiHRK=&a* z^LJ2Vq-$X5i~%C(gnON;c*)5_Ln8+6Gq-o&;M{3h`9p3kFNv52NQvyU!ywA5r&l>1 zt`J~hrAiYC=2C?u9^BX+Xoo^>At)+=OGZXc4lxE+RZZox{QEGOxZ*kwv+Id zqMHEUr7zRXCSeJL7X|FWKvzJ)tYM3|A~MdqyexZV|1*IbLl>clLnXu~B0@EF(-if5 z9rRUkal{SSsQ})Y|6~K6^w&W_U%4Tt!UQ@ikyygeEcR6}DD#N~T3b9f zXEoCKO0Ob5kdZOfM=N3JWq#e6`)i$pYSuR%n&1(c`?_BRV_s>xR)PGBu&q667k$GU z4P!q~?Ji@T+am_6;MEq7f@OEc;AJY&cDL=HyS{17W-l%{=G$JpSZIzyhCh|nR8oTd z`HU{)re2oB&ugU>uTjmZ$>YS4djZbPFMNE`-Ajd^+9!)#Ze-|xy1%y8$FUSicehO^ z0Vgb=(sDH9|oVpCF!RMB}=D`#sb}aJ(^+VTI#}MwA?OziuF>Jk@AXCD_H(6`rcvM=2Z;ayrY`vxen8( z_4S4eeSJaKsgGFf+S%UDOMTFOw6M5Xlj+Y6G2uCNML(_+*D{cpX%!qXZ?34qw?%w| z`%|FxovX6$V^-{e03@(0b8@GI^1WVYIqLh-@D!6mFY z!8HIXM4;qkW^x15a`VJEQ$xj=63f^YN%c;`2~>svJ4+u%!ldIbbR@IXtReUahJgJQ zS1>XlA84|GR*L$e6~5lo*ypQ4^5X1|@_t51$u@v<#%y^SZu-gqIP;-(l;>t2OeFv* zdyjvpy?q%DqdpTD+=3RXveG$ZsqcQ94F#$D>J`sewVqQ40J_A?O??15L6Gy{ppj5= znO#Lo&MzC3T)XfuzYz$Y>WFj4L3G+k2Ecwi^G_%3=EDnDR)N$A_Ot5@5aQ{5H0=($ zsaFKh!I_tIl${=G9S(`5tsFhuo}re|E+On_dskxgBm6_>baPs>l}JY=hP*Zd%U%D1 zW5aG_N7(He9;^MYp~**$@TBoM4|i`WzBcyu6apWX|CEGzMBZYH7dNjcVoOqW`zwH{8e(p(#5ZOo zB4ilE5T?E&$92qEJ{&%Y#@=(Bs?9S)( zJ1pEt>FnL3zUtOpm!OSR#dBG?Z?oRwX-Zg3V|DlZS`@4vH!<)@{vE`OOAWITAEB&p z-ziY-aok6DvXVk~m?Cv^@7P~UTiKpSaDVvlQbXslnVGMSj$0q%rx=I1#7$|8XF4A} z1B(3^|Mh+qMS-Qg3!8i%D?gB2uduQPX^;o2c`oNi%MWoWqphv95M7WK0Lpvfix9G) zD}lZKkd=lT5x+}!3=>pvD!p)Rg0zLF78Y-aSwMnx1-w#8?On;ti{b7eau>7X-Mppdb)=h3ZKbLA&42dA*5}7Qi+_K;9!|`h86e*v581lU$n@`+7g` z46@)bf1`!AUKeehM^6FRaJM-aMf6mC$L2`RjkB)41!ZE2zUuXh`&RGPy11m!B}Un^ z;_DivKaw+vOGB#7x|0<*qNe`2@3+!D=B3hz&`zYea%!3IbdoyTGjk@P7ZhE{N4GJ* zd%G!r@-&}__HY}sFOfL1e;pg-^!DK3W1M)>X6LS{q81AqJF)Fd7EN%Rh);%*8W6S~ zI3Q{Vsw1yX9?OeQn``QIS-RdE#G{rs?Y76U!zm?utlC($CM?yNsv|fbbs01@B=R_r zqm-N%rEk4{RC|rf?!BL8W(e*>cY|n(iO#RP>&Al`i*%te3=GbV82M9Jd_G?9jOm9* z^5kM1=!3(GNP+^*v!rL7aSk+mwHHF~V49Bp)%xs*|DT_BxM={~XyQ>fD0kXyn$Mad zDJJj%;sxWHcj4jjJSU_@G{H8&uLk$@O}h*rCr&r{2ofy}Kudgb(yK51Ft=(N31cEF;f6(~Mi_8#@RYcWO!gq3 zDjOJ3Xat>Iiv`KydkLDC!r&+ewoRv!)h$~HHTW1Ft_+tlJ6qdyp|e}$wsPn9`8p;GBj z0xTZ8`vNRC(3zV%lajK053SdSl-D?#CWnzlKY3WEJ)dK5PC zRM4}N%;St+dr{2(Fe6dH?929AA|(ZDCYpvVi&LJ73o}~4=GG*X9}z4sH8l*@{YPwOZwRO^EtM0=MGwd44xR&WZBo=32n;V32(5 zhu@BC84c`;>&@5x^>!kQ2l08-8x_W)xHpv(g- zHeg+{u|ayzBM?x5?dqUgb8h#g%55dp(p>0+!7qp=2J-1ElRP0I%(H`0V{Bs9)v4Ob zcPNZ&>+6sRrB`;RD9G7sfAz&C>9G)NtQ^cOe=RKqtta!?krkk(vH%_HXloLfvUjb> zm>+O+JG;5fT&1LG7Q(;A3W7mX1@PVP2S4#3P2Xucy`ti(!22Y{f(T4|Ad^CpR-RKC zvMXf{ZXQ=TI7_0JXMYwK&DM({1YxbWPUJa^X zd~`+pZF!Z4x%IM$1BhpFxZ1~RI58b0d*I|yFd}k*(tj8 z`rm7zfrbC!bIY5PKf^d5N?_D`Y4U<>W+S?zox=G0kv)YKl~5;C zPJ7{>oUjTD@AZvZ3cCF?II`Pqtj`)y)5d#d#yD1 zy9}pJMv?P)l$_oPgL!X3A+;1;N{}5wo3i3(51W>Yef2-ULl(hmTY0oo5}D z7%jc@>}wePv^am`;KVqxt3Cv6qgnl=nn#LAh?nupy_Z~L^EK$c7A%M$uj06d{doZiS#kY7kT>j-<~I<#^yT{x=NGNDqrWz z1l_W1miO0nU6$T2WA-tcSsW)*aCtxeLRK=1@!CANF4D%h_e0poT4l38rmmq*x?14h zHtdq#r`aJ2igHxK5)QG#UhTWGd#vmjsxnk&SH$HWj4D#i$)T`cdu>;vCwAw+zj zEdfI>E;ZE`DmqZUfAO0)$WjQn4rH?{YsavZq@-%>mrO{c?uRZn6oVMCsAy;ql0ZUC z3|RXsi&)+-D*^#mETLe3QQ%8X!a{G+1xno0%JJsQ3&8>ky<0rhqf878!A=vPIYC3Y z-lz`eYM%AA_iY^=w7dAW{thQkNs}v}NeG%QpxBu}#}MQgp&=ormZ7Y9(^-D=b)dV|So*T@u0lNlOFVMOCiIax@rP=<+ez6arsmL;+ z2j#5ucLchPn_`A9YlDq+w6y4zWRX}Qx<&0Yn@kn-vBG|-euuVNj%80RWsD>w#zRPk zgMzX$KGLc1oGkDs^yh3l2UjsONFUp)skuIWCHLX+OHW3>-2i6Vc}tbhsM?oK&MX51 zbKf#1UwGsyTW(D!)tWnxT%3DY_Qp)rv&bsP=d+y$jL2&Dt-q#U#Pv%Y{o=#SO;D$f zPZ@juD?A~I7qe9vdeJv7#Wu*4P+R5X+nD?wb$Dexn0vL-YfR#Mk^G@T=Ko>tEyJqZ zyLVA+X+=U>kw#hsNhL(OyOnN`P7z_!2+~MQ8YyXM0Rbs#ke2T5-h;LN@7n9#*LBW5 zAJ4btVlsK2UyN~&x^I~Y6-C9w({N=av@(gx!)3&zHJ{pr1;q4dAat#5OQOBYmpL96~^&PkPy9PTC2CHk)aZVH7HU#l+B zkvn`>|IfkuWYUV3P=c2tk^CMQ9!?278T@}dS>ux*)43)-fA+~Ou<5-@#Ku$W2pTGJ zbabT*{BI)4nws@9kyMnpnw2qojo2*ThHqidUTleO)wsStIoQ$l6QRJ%F{Q+*>}qOl zm6u{&j+d~oD3!g9_w?dpK-_sZr6{kAYW}iovm+(;jd=d{$ zr3>D9l)nCVHTs%IG>n>#npk<;7?B@@|Cm}!h?ssU!q5zgQ!E1OE^ZwcGfZi?kkB7&ZypAB%``#F_mrNqHoV2XAkHvc{+ zHv*ra{+gx;J+`3=WNmLmGvR4|leN9@aJFR&x~=KYSXR;b{<6_S4>Hd6EMg3;$jv1> z{J?hN8*$2>TwXFTD#Iq#MM)d|ksHTfm_G99MGpb}kg5!f13&5MUf?hK`uxgRK{5_Z z&XyBCyVrr@x>%Ndcq<+MJ!mG2e{@2p>9t69yngPh0vyapUR(6ff_T1z@owTKV};B4 zvUk1eA3}xO`mHbX`Q{#ZP#EXtPefFtpdMT&A*JOqq??i~HtroXAK9YYWWNT;R^`NE zXk;}cC4)jku}A3Y+>UI6kFU{VoC^;$)J0g0;sOY-#bZLP_M@J;8o>5(jEMz5MvZk)aw5GkLD!+6rht4rw? zOIP8pVYl^Kxf^R8QLFez?bq{yBB1(n4}3~^?Xo7?_*X9<4jBItHUKpci$JXcNRy$( z4qE7-7=Mx(i2c{I&`NJWWM0;91kG;{+*`-$!jt@Upy1suZsN8-FiV%;HvUwZQeDJm zHpw65;}6vL_hxdXy!1b#NlN_H_rP))KgC>D6w4%SZK1oN9C+xVLARh_1444_zS245 z_mP{Ie~)T2FHJo-A|hgIre&scTk@X+EQg2?I#@L%EG?jcb}$3Cvq&zgIi>gr>kEit z{^?7Ek4tJ?Qsq8{do^|;r14A)3nf`&T5s$r| z<3`*1TsnsH67`w~rgv<6qy{KiKd0 z>63`3HojIRZ2+W=JZd0FToydV*ujFp=w{RP}+!(aypp~;Ii}HZ*^4q8{ zzfJ%0+hX5gC7^aM?Sg)BN0NZ&6Lj&*Z-TD;oxQ!a_4UN{_t)-S`M*5K8cVDsB-KFN zH25wqJ=vp509eq?aA>`)a{d4Et2NdYV}K{kK|2VdJ)BC}AkGP=HxT=QUP7PNHQh0I z*^H~*$k}V$xG1k~+R>tXME&<$WD@LVCki4@S9C6jqR~Yn%+a(K$!4FYBVqCt!y?<}2 zG$;?z!474 zp~-LLG@Y^%YJ;WooxpGglWLc^)oR%D_-lL$TTqNbwfSN24`#O4gf|1kbJZtrE6w;v z8m;1ge;z#@((mF{uj*MXlU(l=`@Lkb`<%a7@2#sU3AOillfL7Db&R>?hOv;Z@G+0) z#pc3R%g_U3MO&xO+KO~fujME*M>kCsw(JpIIp6>HI@!5E>K6JkmwwnS3Y>3Y6nyWn@?reGH99LQ){)Dk7Nqp%F#y0&Yep%EqCQLs_4blk|Q zzYwJBANV}^F;*iwB)$5$r88kK9G#CS2Xp+rQ%k@g1(wY23} zKj=<*T2fS<&O!*HBs&&i4R4x1rFMh&WSGr7+VmX*aUNf8IOKyNW3*#YlX@fP&%mE|lIUV0>gaLMt98 zf&5Rr;S8?hz)qN$aH5sVT;pKAFJZE?SM1gQI?>UExzuveW0i9zS3)^hT`l{8N=0 zS-7Y}WI6tQU-Aa4Op}Xj=Uo%-94$&>M9Z&SY3}7C^g?sJ;RdZ!*}Wu3j#$y8e!D~5 zlbW*j=mWI(!k_7b2iC*%g?UM}7;}!pUX=~zznt-Vr0yMT{c{cRGm~?8jG&ID%4Kna zF6uDqCW$W}k|BJbu>0*z7AE&fP2K^yQvA@oZ8sj zM2i+Ex@ei&s#uD&$@jk*ZIullmLK1Lq|{#8meGzE98DYhSfNxk)$(M@MBr#t%`&)z z=wr%r^2=o={U7s}84VhRKrR9%li^+;65=x5Le>Ah%wTbLKx4h~m9#~GZ>P(WnbqA- z)%6skzjxMN*GJvw*Sx@GXtg&MQ&=bGRPxKzsYriFHrhH>NUqYf zQRI=N`t(B4Y?U@)z>@R?k$dj8dZ0lk?{L5@UxjcNQyD#9U1pS;UK;ICzG+m+GCcmn ze7KbEM6344j`44cSD+Cm{L`+8`}1@@9U(L6#5;K&#)z6z!rFhvecr63H*N%4Cwbo>iCvPIUPlr}23}=ba38C^-&EeQrQ(i5?NuL8XqIA}b z$IVN;sD1lvbBvfd2y0D`J-88zfrv3|AYR~g@K+VDFHJF0>^gSrc#fd5eX>)iIQ1NuKJ7usbXQk9`!qNpiu%wt7w;mqB}7SAq-U>hFy zik05JiM}Ni?L9!Rj_$8QYwl*-u|qJug!VEpZ#@AgUX7Xp|>h2x3{-tA*v#!~V^c4Bok4zM!4p6O2dDXhyrNZWXEBMh;sFnpXDl*jv2GLKo^E3xpyiC!Wn7C!CMFGi_B~Aq??Y zDjTvi%N}*36xu}C-b5!Q*IZv+is_~BkCOdf?8l$3`|bAlIM*pl!rpWh0EK`EH~^#t zjMR5U`NE~HvL{rBcmA3j%XnQWcs!y@@^~(9Z9b>b)}2x<6!(z$-`=@<>4tj;NUO;z zDS^=a{x>^F8iO{FeUHxd|8mOg&ZKQqg)Q*zhG+RGgrS=5_k zK0oAE?54@GDBxP%O6}17I`?!($+4K%+Glipbm{1)>V)-Od|T>N=z-_3;7n8E|9-Wr zyDovRMB;_%Hy!z>TJyM$kuaAKl(-IW{jngbd#se}d5drY$_*aL4o9}smO@^RS!WiE+RHMyuz$& z(WSEo2cF%xnKAzh`S2`WdkOs)0IVNYpr3&#O9gZhfmmh?-NirPF{yP$_N7&{$q$=~ z`qufP;~o3zbeR*nKQ9Hx9o*&KL>*F&5rVL5|2qEo9SgVPues+}<6Rdvsbn;&h%g1Q zUmwdgnct|yih7GU8W~l~S2dB-5|4X}{mlcRqtiLx_|Y62m4PBfs9ZkHK{dZ=o-0*6 zVM{5?gqZ+i?A5o>4l+d7=ChMHEMkM*`4FT~kAMIAd`l#@yFzXUMX1hgMZVedM(qVD zqf^}A1}s;acq7FoN0w}g3ugRXR2=a}sfN(kt-QsGjrbgz4n38IDR^Od(y}(_aF3(f3~>*{%ld{ zfwA*N-jW&rIO=%T-nbsmd@D!oWzx1xaqAapL75k60^O=>dKLUm^^%W5MQ4vV`c^jZ zt`i~1pRMl^)Bmnr(Ye8A;~?>b#sB`#c@ohV*smUo%gTx{7FHazd{3tcsiGkqC{fWJ zhC@7bZ&&hBh@Plibk<5%_@-9~W~>I?Tz`h4GF7tZqu!w3gfiP@=)h-2Mtauec@C9Y5E6XhFD&C~(jcB2K!0xV4=(KH8~_x?)iBW4)eAa@WS`^NEOKzXjs;+J2Q=r1Ft$ zLxA6+tX)A)IS2fY;Ijp$9DBK=^Hq;~0|P>iAyombMuauauAgh4o0yXxS6318g}5{6 zv=akmkvqN7;r{uG4o{1g*_tV3qEBM3#2Cl4RhB?8_ymOjYA&<|J`c?rVA9FQ>Ys)<7Cl3>co6GRV z+=`I<@;BBWe+76dN_~=thK=@)O_L)BDS!Q_e!)(LxG9~BfjvuB zR1eKolSGe17w>UI%cFZ7@z|S8A0}A%>E?qbn4V0Gf5JGy4z8}ldpcbmE=fK4;J?wQ z5%}71&<+7DE}-j}2d$`=eMsQ)0mhA2GBOAt?q~W>1S%_kuQ zCsw=T*3}K00vF^9!+>p3?1ddW-;;G?v(j~%Qy7A=-tVu=AD<-L?mL56ppUHiJc;rXu`eza(4Xt zkoEJq3Y?N0JtrrlYkBiyQU-3`+oVxuU>~R2cC8A80Bae!<87j)P*=KW+`GVk*S?Uv zW#6k3_4T~bHWT4l#;)FzD#;W&?0H69jlEi?MV`3QNWvd~E^>SM7TN=!V++{~_UHqg zT5?bM9pi#CBPY&}1Vpa_wJp2QWrPb-d*`dYErqU35bXmx5VIJULmoRFa9?YT zZT`u=NT?r{5{tU+QdDK-n#*)=E#w0x#!2F4^7QJinDIqi(Yiw%zNmAfvB@}BFJbs- zYM_<#cK5Bz%mgHhE>k1jvDc#88R_Y{L5CIU?9h>T&`fMqy+2|G;w{Udq;x(XZw0+e zo*>i(DrO+-w;4OjjJYVQOOFDY$e;R=T6|CX{8GR93wjR4e;`K|kK|;fXS(U9-%@&4 zxrYG%Gd8s|r&Ea)nNgkox>9r0q|YO|Kp5vZeRVTSB;^wD1`rot`c@ed<)>=+NBwot zqm8fG*XNzu7JscUPmt6puDti{c$6=oOF#2&rCcO^)BU(XtM(98-=` zN7M>p9lLX1l0MiPqK~yxf!sC?y0;GMHPM=6-VAhiNdt;niJ8I&;zP;in!YE{RHsLx z+SnDjphrkXAt|!ebDym-c=GG=R1#SV_f#yLMxrgVZw*?e4QOI0k_Pamb;z-KEaWDo z%rpw*Z6xr_9~D>E%Rb17+e7roSnXqsDBdL<(aFYJ9JD<~FOSXrtygB4c{E~?!Empg zVws2D|5Lr(n`Q#Uw1dQhKMRAIsh^!Bms*M03>c4`R?cedX^DageafG#@z-nMaLjbt z@uc+PGNEhYWayo+PTY1S;TNiV!ML-KH!h^yt&7xJJ%S8^4IWCVr?^NiOGY$Bx?yR4 z@|OQ>U`WW#Wl8`Ks+&)#FAlie5|1A%H>jYw*gWI?_P(xDHgo&c6N-@6{Z<7Ny+2(0 zv35#rnvj}_o2Aq#LOmj7v3WQ|9^U0!mf4njUOI777ANdARVSNd`Gz}QYP0?yAD90K z-~7p|b3pm1@v9JG%=5VsvP!1t1q#N$vE8pHFggrUI?&DbE0HfJEo~RFlF(`tFNkz< zb_PvBM+b+Lx*Hi)LEqC*NYNy3Bn!0~g>yeirC;|unMZOx59GM(Tx)J=g^e(9-N1Hp zC`;*i-M-i-S(vA)U4%s{L$NF?tR*@y_kd%}@aGb9NtLI6v-yfHZ@H^AD!VIKHyrVX z5yCF}jnzo@JHEJIM&0fo^(VD20K|Vbf5h%#qZG*Tf>1h(lrs0HAIQ(Lo``Qg55o<@ zj~7{vD4R_cd`+!9>=dh!qNn#J%KBcGoSm_SMw1W9z!gTZFhPRCU_PC3<%veU?L$q) zs_z&y1NF&jgf&OLdbdm-FMpqxZM3H~9id+R;=kzLu2 zY;dK^k}9hzNrq=7DH&0~apKHb`;&%d8P7MQ0lum>Z`YrBQoY^_bv{=gIaSnmR@xQT zytfxA6^$Jdcw^z35@rLI1*b+ZAHUtSSW;e7=d8-us|~;JNBue$ zQx0f<(=vN&{p}IjL2N*?1i-Hz%HJL6*J{FKCr2%7aX62%W*{DVjYfJFuaxj@)PZk; zQSRDcN#vV_fW>YvOOx8R2fGjGm831iZ4{*C)%2H(Z$%zAl1Ia@@&!$I}-GtO|FXk#LzYLxYz~-B{EE z=jT*zq#|lH&fsQ=OiD3Hl>qP`W2Qxv?L;5#5lT9g>%;|%*F6xl2do8wEjjKuwPkOf z!GVeR5#M8TNt~Dc$l#K=Zju5ox>MY2_g^~d&7bQp6h@CcA;ke$?=qZU{yc(k>Bp!UBXGk%VtXRHBxoJ?$!x~m4v(>E6Skrltmr;MxX`(~EK8Q8F)1fj zk;gGBxHnH~b0K%Xj`67$DaR`^Tn7OF5k& zB{)CXyoh9vs-Kuffv!Kh$m|mw(IB&z&(3^Q-Vd0Kv^AG9DM%Q3Lylu{%*(^9^3)PW zmJnW8NH6k;sUT5%KpW^z=9A+*vgS6V0c_u>7adtfxxB}5N_kyWk~wDq5;{HW>0&*) z0+wph&u-N(4E6snE8~!U>|94S9QWcR>H{3J17k$lfDokke43+^=T58}EK|~D zk9)@JAo=2fjpLV^kR$=xO7EP^d@^qO`{%m`d-D}Ei*FDyt4wVPd~8BC{ySqhyRNrK z7n1{L2hx#!TY;&^z6-~?H}3Tyvvg0i>gY^6rbBQOelD&Rh45vv92zTjC|~Dy(B1jH z_|Qpd*2tK9&aHF16+qYLoQj^ z=rswAH$OQsAleJBEtsjhv3)&<{rvA%h9SqG`t#W~N(fwjr6qvlBma#c8eR z7MIh}scT$N-d*`u#pv(C+jm72?g%&PT%n_D5*O|PRbgv}Io@nq;G+tK*G$VQ4iG6l zIAfKXs1s5~r8Ay0GEK_j-258eYzd7!mUk44^UGTv%~*JUc`HmBpiWUt|6+8G;kEE< z8z4&d&s&$UFW1`UE zg<$B3#}p&S3by~F+j~3hUZ!AIQ6oOIFC1r%Kmt`Lb^dj?bO)z2Mn6N!wiVgdAu9O| zfNJ^Uy@EH0hn^mAbtMuc)Kyq~jcbTB=?M(!TQ7PT)xQ#olO<%6B2zN^k61MHtiI{ogPBZrgs>(+^G3k#4by$|0&p_p-@7e z^sh>6*9UuJN9^&PFxFb`tZp+x<^jxMGqP;&Om+`6@eemB54hd7(zv~7?)weJp@F_{ z)XQ5!B}@>>*(mX{M%Yl2j;Kt8dp@+jmH6V9u9w^oxzx?Z?X#++9QAzEUv|y5`?fCU z)p`Ee*Z?#jXHI@F@jfZbxcaxuH>yr9!FdSJ+`O#I&7`J6*52Np7j9!&m3@?VGl9z& zE1h*T_szvenhr5fJwcg1I5^;JIeUL?XVG!H8asW0?T4%|*h{D2m{rRure`0%YiS}J zii{DcE1j0bs(5j0RJ{)%Q#CI~<4vY3Vsvl+e(dg`_eq ztN1G@GD?n??t&f8A*(*ul2h29E#D6NXwrk^BT;^B@SMBI+FMsezH*;a{xMyvz{v#`twan7SzRBhI%?Cn^*FdvBYF)G&w{OJpE-n z>Cf_8>)|jNVyu>?RzM{D^VI0z!7uqL(K}zhJ6+a;FSioqCzQAUs^|V4J>45brZdWP z9n;&unc)M=#(_ zQoD+O`rX4D1vHBcyJqqReFg|V55;0aw9g8xIc?x`!XQ%JHn=YBD_%5pnT zE(5U5Wxfmdxg%QF_hrhPWQ0R!vRb;Dr$iwy85;FCRR%G4sQWgl$!<}w&+m;^>Pq(~ z{$41JIt4d(BgboYi_gWsMJTYSlkEPM)0f^V9;8T#dl~x2u#%6uQ`nA{TmRq>v>>~e zl!;*4*KOjLee+_eJHHB!#a%wnL9LckwX__Po6|~-FGQxdD#q$Rc#sXzN4$AngeB6n zuFH?zxy3zw-uFE`5|_@|+vlbuHZJE}HOmK_1nqI<4C3vovG3bRA(QBVlZR@SpKS^r zKKPj|8Lz#L1K`M$W;kri+t zR>l&_YeS`a_VHw%RCxoL?^i$<5MH)(0r3Kj++AIie@8KY-`~G_5ZGBs1Ad9qqCSd~ zMD1%r84x!`bqIqU1psF4yCYkTFM<{?7h)k|Hz;#=$es5JC;df6z?SW51{AgoZmC=y z6Av4i*>$$pp!4K4dkCrI3O7qrk=)}yyat5h&$uUg@wx)P-fQVb^73;QK5>g*64$(@ zU6ZQxI|fR~zelK|xQXMJ>;XhNG`}@(Y0U0JE`EIRyS_fpd1B-X&k)o8Yojh%CmPer zmM*e&`;jNJyn73x3%7J{I#qMyLXxiLe#zU-E1l2&?2qepCCy^qboe}JabV*#fw^T* zG)mYnI@hz6uBR%V??*Uv_4b?RQ20(=b#^Rv45$FCcMUC$0wVsg$J>X+3nJl8ullKY zKS|==;-N8pekyTi*E?j$O6JSGmUQw8UTOWrf`BFQ{#co#Ha_Cjj&Scva-x$;M-Qk& z`nr31iKpn5*9&y6r+-jL*;-80r%e^G+C=v=I7Z&O>A<=|aJcS&lj7V>lN;By3CT3n zsK>uyD#-XzEz+7M4jPZ(ny~O6nUBk|+p5e_+1JXU|=NXtWEc3b2~*xs>=0OQaJoYK4!hPYrEP?3p*x@(7Vs^pjfrK4c3Z26?jjG+8>Z zw|-?Z<(zu!5$R>&*R(5OP;e*f(9TA#CyYl%jE7;%&>tZBRuy?Z#t3~*glE?qT&#AM_Yo(&zD7X-ZC2e+*oad zr4%mPHKHHJ{%76{d?XpOYr_W=q-}FHMBHBz2h$e@Gg3VLb2visgyNU>8VuMm@&7o? z#SAe&99|#j?~VF(GXiq(+bisXMSOcg2OIXM(_mWHyz@Bixg**aC?h^>l(=DA8HvoK zLm8VK9|8G-IZplK^x-TGPrnr&=SGnT9@oNB`4j3ip_30u?!ymFdI2=tIpa_Fui7k00Ge>#6U=*Z&EEK0 zUYxBF^ZN76G=mEh%`L6h(h!jipijoRz4{!NUmZX5EJd5xyU>2|eo)?}?X-37xErDO z^<|OEj-z_5>*BE^l%swf(vwu5=S8j2@N^8d5myH%rk3?xjNCkENaQA^U%bb=VOmt{ zXjyf%Tpy{PE_a+M}~EAJz{hh@MA?2jMsBFR*^pX6&pq8 zC<1bQQ+)`LhvBQUAurtp#lBS|zt$}|S>09hQovC)zd2Wy@qt5dDQkf_cEEq827UR$ zv1n|-LIB4sg~N*wYdT&=EMF*loRPrW0n$0j96CEyjSHgVoJkcA9e?Q@WsQasl@WI{ z+}JoJav)xxyA@JC`;P11oeF>Vul=1|yUJZsTHHf>%0hPE--88$fi+7q)?#bYpKaer z@y%?KzK*}{OrXivBr^h)VW_xjqV~TADiEhI90qV}sLdOjKj@ z>Ikma52f!h6r>|V0y3v^YP+mmIv)a)vDR^XOg~89^*z1&{$>v|pQ)tVRSg1Ar zTOWDTg1*?W8T*ZtoFgVnq_GTR35r zT_a_+BgAY51hPu5X__%4lRW$G_P-a@oi14hodgR}uM2IDyT=Vr74Gw}2Q~>7RQ>Yk z?xJ82MaqyaUh_0DF|iR?WM0qCd#4Xgj&X5Bxv%Et<}56d+o_@9>uV z>nRVtC;CMg=~{y;(-IBes^vIdDHx4EEZ=~f%$p;n4iI2iH%l4VKCFfgGmGc~2i4j@ zD!Xi+*rAqmA?6Fu{q^hl8M_zPxWv#$402+q-w>caa_wY!6CK7n7|UAJ5k7}7c`ShI zeLIY!JtzU==&l-DcuH7z?Zm5qrCxi2%JS_C=`OAd#qj>Vedjuty)Ujw3!fK0yC#ml z&N6-oL(gxUK^r4sqWzM~@@e_@dsN&bL-v6sl(np*4~-{cob-JgbJ3SL#=$aIh%A2jPb^6?K%MRSWe&K9iR>-F5( z*y$vQuI9jUZ{<%rts_S~W$@LBWBm&aA(XXEH+owVW6OEnN)*0Iu(5ZeqA zI=G%oHZwteA*bFkph@BS2SC9+(A2q-!qi!-Y8Ch=xrv$ zn3(}+l7p!h3ibG}viTyHqVjO>@%x#@619*Y*MRW6rK#3SVx zjJGB~sIyYMlRVOES>703XsIYq+-r$`eeqn+Pv{Dl5DD7%d(+(qFI<^fS+_w@C|qWWjiupNEu$L={N)g*_4lp@Bk}3oYjzEw?&2I0*Ig z`zU@AM2^MPJS|Zcu`ezF>rZuTfg!Z5pCuxB2U-8j8<%>TE$6M-Vb=J_B?lEV`yyH zc3)fTEysE8uFq^9-bGXfImW)ziW#y^F2i5~J4nFsG=qTAZO2DvO!{JWohRPox6Sa} zVP^ueRRumw7s2+>14(WfkUu+#TI-07b|9=Ymqj5jgnh#b2dx`DjLG>yu3T(_$V!{e z8FNqM)w~oX*}}BCH>VWU*jke%ot|_YCNmXBiW4XESf-2?T2R|;E7l*HKKnogbJ~Qi zm6V)j=`(A>i%e4#Q}yjZhU>?a&mJ)?VD7A@@k{aFDUthKzPpoZgdOnsDF0g%vc#l> z*hk7~g&Z}7ihQI!-7zI;SHW^`j_0e>V*w&XTCm2u|_Q4B4l2XS@t16N5u6w84gj0*@}K*Jqq@9y8fzc>$MLzziH z4gu0|9?%AU>Thgpya)sm+(6CfL>Bf1YdH(Aj0yS%(yI*|-4G(eLX`RcspB^4v1#jnrLfN8*r zellAj^Uohot9+_RaTs%%Onz}~zaOR?7%bmjkOvB><*1jM`f!!l-GO=P=Ok_9)3RCX zwo1>wKrpE7$IHKR@X&k5Fp{V!cPb)}uVMX`(odA+=4Rwlc!bWy!HgXwW^F6vvmc*N)TQT(FzT14Ig8ik;|Tt}0L?{;U1t;_6$$4iQ(-of7Nvw0 z+mm8NwW?=cEk{X#)u@!WIG$of8i`p=Vq@LaLKgIAw&IO{PHD=Rv^hwq=|5Q^cf?Mc znVlr8(j>ZY`#DvA@9xVWrMv(8B<^bURP})g<3C<}gs*67Y%CeeHV1=9OG`^#J89|Z zBErI;u<{rNG|rCqb`zUTE2^qimY3!6q@+4wOhPWUqeC)XUTji?q9@7o+!>hlU<$sl z6xUA(wAw`4k!-tvKtu^dnymMhmFOP@F)Gn30c#}~TToIot|>O`JO+&@0!H;&_=_tm z5>{UnpZ~so{EUn1(3;HD2v{rR<$GbY3W~6xyO^4iqCKBr)9ow!X|Z0%tM=}45(pWZ@=VrSyJ)~4!)F=fj)vtr>)n^ z{3`jH$hT{!XX)0AE;oR_DC^{_I_NN>-oEX0dT6t?B2SB}xB}!#{q0$wfL@t{mey}j zNjdXATqtle12KB8{Gt<;p(zo2x|pwjZCxh1t#!R!q9@ zCtmIoU-CAOMhin^_@#>?giT1igQ#V2@s8thWI74rbq4~19T>|+!^ScGkq8P8;o%L5 z;jbuxdm}C`P7x@R+JTpboxS*Z)T@H`cN$=kIW0y?fTsndwt#pb2ER8;E_I^Dbz{6r zh5E#iOv6WTYJPqY1dm7p8u?Ey1Kpo>^3PIk`(D0!uMm`VNV`3Lz?6_;A z?gISWE^vCTEG>aRj#jl(SX=iJC<>u7ek98Uia^-0tXcRu%sq#4?eaauViYPt1%H{u zW*`olSBv+ba&TB2qmdrL5Q|j+tqHIne*k*8PPkqj9UZ_!sH2l~JcJ!-A;>%rt0Tf!zK<%v@l>+%k*-i%P zZbWC`eG@b4u^I(_-PxlzB}qfMYK{3oB$6o&TylmmJF~WSHl*X}54>YR7%r&Wp?K&& zkU-RB2F3(GPbfvL#P>b+p6K_cjh)x@bcHa`nHJNwh8`5;3E zzlMo{K|)GO4!p3+FRY5;3*Ja%u$4S3Q8kTEOwBS4O2PnbbFXOr{Lh&<8!?6 zKZ~9r+lHlepy_fNFCyAfm1s8xjncZO6?U!Hl=g|46Bkfyj1BN(iI#0&)047X@SO)Q zG&KQk$lw)o$&YxGt7?C_&=@wfC^B$+2S8P&%6_FeB?uHtfNV(f+p;`;WHZp6FWe&_ zXyNab2GvKfE{vMW>TuFvUE|~8dV7I&2VVA5Vj>g9Q?wsQ@HN2M{=3?_xT?w(>;O=U zw>PK)&r+F#3u#StH9oVp+hR8|IXM|9Y~HyL~k(+ z(7}u;kVD0AT1~*=EYPkY!pCo>FS4++vm2{&EP#1XXraHe^Z<*I;|J2f?t>M0}X;X8vbRuu;8G$#NY;<{9S%$VuscJ@> zsWa&6E&RM?L+j}$gd}S3>e9^qXjkCj%=Y5Fft`g0p#m32LaX4_S0Ztu>=e*O%6_4j~=9%l4l6F@xTYXfkIGbrckGPc69kATRQ3!rS! z@d^qG0L7%pMu+l3HG>QApIft>W~*RQ&GfN+SwyHer@a+?3vwX%{~ z%ghIUyr7rCMBtBm69s@o)m{dFb!BBmCjM#gF*@lf7%@^7U6d116h4V@N;Wq6Ec@A? zcY(|@N>6_BGl=N|t+J`HhwX8@Sbh~uxyxXcAqGr$A$Mk>Yf8$=ACcL-b& zrq^md-Cj9{zBJGcoiI{)fHj8=C)x;bhLhmG?0gOk$ibcW^&y_0pWn^7gPQp4Z3e)G zqg3fPZ{FzW=;$4Yr^~|}B0Rn-&@rp3J~96-d${@d?0H?jS}`>{`;GyU3piZWxMpe{ z*5bm#?zYo|{fP_Pk}(vqxD(g}TrPE|+krJT?!Y7iBcsx0ck>6I*K= z8xxoT+_IsKbhNhCJ$rArHnIm(!cTr>daE%-gS&|)Jxv3<0eknl<`D;nJ&2pE{sFL5 zTv!OcRJSzCs@D>iiGhQa^_j;hS59P13>T1f!erQB3y3J(BO(%)N>T5}prN7B(*ktfG;xp7}OOKPaa&vw&mr=X7Z;OkH zzUb8PGm1(`?eKwjl@Asj^VZ2MONPeV$UXKY+tkpy2h0oSu< zatkTN@8Bo{=OfyXVpk07BPuGNfs|TkfD~JPysGx4O1~B7i^vKZ21XiF^PouR;jUS4S}W{`HhzE*#2AcElC4R^ z+YfejR)EX^i2t8(Z~z(IDOfd77QNII1=T&=?I`BD(;{n@^zVxn4&i`Q5SW|41Hp;P?5VjdGj2zl%pyQOd>5^0Tk5JbqnIClpPBm#zi|Gs^2 zHGxG>5JW6$R6&{V-c=cws7j-AFL7Y1EG^|&+1mxovP2Q)H#oPp#%T9^IWb2$59gSu zDv8D3c|SKQDhjl5P9(EFa776GZ}pegV2-Hfw-hy6mzd-{O zH$Ntr9S*!KL6YUUIjUSf78Y4Q zp}M1aVwc9W9UD^=2`zBJAlOX9&6jx#F7yP*E$OAK!5x2<-n&{|J`CN$;(kKem`Ass z^^bs6cxpBAnW_Y^)o6_?43^u$Xfq7$t0`npi-O=A=uY&p_#aFZ9B1|Mfo=?&9XEHX zW|6*FaDb3Wxz%uyh#ze$u($49+=`mO_TdryTID`b@m7=~>|0e;vFm;mCDz&OCmBG~ zi$2;Fw&~r0=q*S94dBD{OO0duHL_C+GZ)j54ZycYsQP-htTCS*rljp`Y@AW%nBl%p z6hdS}U-=M)|6nOSlb z;Y$MR{>7(FDIl#UH}x56CRA*;N9U0T&O?P!`uN5c|SEaL@H#7-M(m-$8>}cPw)L z&*KlGvCe@@tL4X!pZY~G9~p7lxZS@2!^mLhrJFu1mV$pcs{v)yT>Ki7p!=-v2Y)4| z_%Pt29aY`N#=fK_4iqwJe2YBoX&1KIfGx>i^hN2%U7bMg-g*Mu`hVFSxzJRkhqyRe z{5c9r8*zefW@cs|s>EN*uX})%zHw=GXc!m*9TLjR4`3%@^$aX5#`Cp!AV!7&7Q6>2 zSMxo2vI~d2p^7kp1IUF3hlk--orBXd1%d`RREr21{v& zMJR`JMbz?eb5m1M^=SM6i4C8>mY-BSCQ(d6Vg(2u+&BNc$Sx;UpxcTL%#J`gY)}+O z;hlR;PlZy;5{ZK%6C=Ll-u?Bn1F+aqpFC)V2n@sqE+bE-2E}Z}BlJGM_xtR4(o#|o z=wM=E)d6$6$weDkx~#85J6H}kuIeh zEJQ$5kdXGEhYsmbKv9tH5EM|l5hSGFb!P7G*5G^py3U7l&hva@$J%SJEo-G~f>Gl0 zCl%Hb!-pqM0iP7TB)8wJad&nkGJP{?Annr9TZ3PEZTHf+xir&yLd5mSmRu>TLpd=? z4Gyp{Y_Lg54Vz5;Q&e#jjP~=qdyPjN7)rHf@gI_uka!5KTESWLeNg$Fleqo;`%Qo# z4t_qT?ME-hh($S&&3Qe4egwI*npd<=feoWQr<&Jk3enFQ*UtmEMdVTRAv+BcaAb{a z9F_=uXGh66gxr_1zq1$p4vdn+`IVaBmq&hnl5|xhIOd<|?7uQ14mRGa&j}K@$B92n zS%Z`A4ahyBs^FYsPu?;(sNA4Q01|J1em*0itD(XkU$#O7!^j@0fUd& zKfR;}T!JZk32OTK`bb>wU2X2}7CUzAPHXHYQtT*3k)E9V+Ps}pZ49w&TU#5uwyLr+ zEuWc+gv6%g;IJ^6R7x|5(pw<(VO%`0nU7mcto!4~p~vmcE-uK-Ik`B|vewCM>UpGTvN=1bt;y%>%qjd~90LiB5u)U09Vq(hPkEb~Q z{xK=89 zJJsvL!p!9bB@RrT;o?dMCSvy9i|oKXm5^u}F}I(Hu4FSS?fSJ}J0LK&Y#lTC{5jiH z(hr#Dt_?PU1Q3`|$I5>~@`N_qYcU_2ngSU^&S_~aBkDX1XCpfK_3JB4zM#@-?3hJ1 z3cHm;AiU%3~07fuCQso*Y3D6Y5gn*2fusSTHe}Jy!H5DB*V8%aSYQ<>km3YUs6Oh)vD$3ZFYV_$)p>;n&mA z(fQM>NJ8TaCL9xl$an2hWewhx>&P3(dW@!f%W#J%{mK@{ zn#lIj(XHU#lcc=x9}&XiV)b~gufoci_Uj3@8X#texxy1;(n^9F;*)KE96aMXg=m@A z#aTH?CMQk1Kq5!_@!>A`d%!!FIhdK_`#wH~FA1&G_zO1tS4#PRkl&vR0dd7V+ zMmyl)Hf7c950;f`HElU7>F&aOQC=R;H@hjr=Slaugy6tHiJalqmzp=CD0CB5sM4gy zT-xR1QlTUH0H@xw3-Xdnb7S7F-ZS_9jkEj<@%nRrrtUt9#5!LBR8=*Gr?rHhc-VmR ze;^0{^^jf*1f@iTCWsf0=?;yJ`6WvV{Rf)--+w!E3%~6Bt6v`Y?fV6DScAa54@qzGNZ1@X6iQ_=VitBoMdg|)Ptyz#P z{nx4fvzRth9a7DczKvOU_26=b{lfsOY|YeR&Gh0Hv$AKrJ~_Fv)*4I-59-UV5LwUA z?VP&1^#WiMk|i2SAN!n_j?q0x4EB24+}&WM*n|f5PrvAyFJH*?NmS=5yfm@CTjGaj zVq)3w2$TOo*4OrAp+0IJ4qWIBza3NI-?g==$;$%KLay^T$d28<;tj_m9($pyhxQde-)C?ibeYp!`^yW}F zkPGF+Jc{AA)QG64E_FS3DYBlt8+tcyzPiG$mZfbar<@;&oidg-Hw`{U?%$ReTI{YRb>p`;ms|ZMgJl_m zF$?Dd9=bJ7o))GJ`9aAEGD^j;t-ENlt-4$=cTgp?&cHg%}#eO(7Wu2K|dP=i52u zsbuvkA1RO6rw;qyidF3roP~roCc)`GTAH7b^Bh>TGRcwHd|XejXUBdf!8cZrgvb69 z)d4+ktV@pHOQR78Zt!_ea9;i25= zrIh$`zbcJT^RqAy01MeGkW|E+Er9Nw@7@tmYD5VPFqVRX!q96%tFJ6E_Rv9ETG}6l z2=6|3b|xhz9wi^xx&iPC;nD{Wo-vgZA4y6n7Y8%@{q-OMp<>^sm{9YpW6m6WasK95$U&Vbr4NLRkck-W z!Yiat!S_^c{^k9Pc*?M2htJe!Va?R}*JXs$ot0T0F4Nzy{dqy={3JVOWs>w8g)9~= zeqSNm*kfcjDajCbx2OA^YH;;t&vuyj87&&^em(UNESFfVl08v7n#VXXtaCvZoe&t@z$Z z<@iXNK8Xwn_=cfycEgGof`NM4L2Bxe14N9zK+&+SriOiJSJGaSJhtGfA+K}i&S9L? z!CyF$K;`31-7$R>pG$c)b&B%YRg@Xhls}$#bueCCb(9jI?vCyJK*-(!ssJK%+}#{s zscJ`idnr0iCX-tf`}f;Uei7ogXsDr;99lQ&M`_h0EP z@mMPpIpn0rFlVc<@HEHmV$|0(H8kuwWN`~~EjsQ9W~U^musR>bcoEcMO1(D@Q&gp` ztS+gkY=W6USods|H&4@~KE4$lIZ^Ccr{blz(Yp|-9B z!CzDk{t>AfA*jMmrEHJ5QL_}#BjP-vyaT>>H%5kczSY1fLpF|TtJvzSGHSRe3!!Mx zD1Gg%_T^t(#NPyy`K^bm-&hKv#(|Ou1o4VjW~u>0cEf;qX%w-7l(Y69B%1#)>Ug8t zii#@*HipRdXn9TEQZ*qtfugwMNK@I8J*+w0Q>Y3n2M%`Q|L^x%f@AnCHG%Y+7wzKc zX>H{LZy-`2K^m#tcXe}2N~>bE}b@uNFU^7ojTstpFx z7Q7?|7JRrKN6giX&HrN6RpCXI^+id$X~ryWaG#pdpnXBy9n*rrO`O_K*^HWDh zfMn|v$=?k770>J!qEM73-@+S!f2uNhS6#{+KddEt|IkRLevT&Q?{Isrtu(|kU5a$- zabF0KO7IK72t=MvxVUFRmS4?3KdE6*7M|B zg7Dk&_$q24iiUIKIT=^jsi~=j9mb!DdwSfw`Tf?>wusi(Fxfg$)pvqx+o|2 zwAJwSDkL=G!RaYTAdOT;i7W=NIXIB;xrQY=R$l8sD&;5(q$p&C-Kf|A?J_8|E< z%-taU3Qq38yA!l^w>NKdI@^ABgE!ziD9U{N_=o!Xbi|LKTQOnU?TK8>Ne3hZ_izd* zEpofh^V=}xHiFN5P&Md_64ea^VhfX9Bvf-u&EYs?UTxcT9G!z}KKSf6R4;i(KvpY; z+5@zqG5sT#$FZ6;-WieO0w@m#$0!=LG$^YH7#K~O?umSHV6VxI8+t!aX#j!k*h9LZ zk&%%$5x=j|+a!qDusnZAx6|a9_ok`}!YwA7go^5F7%YhBK1BjqX~114)%y*iNVh^m zF&-cXkZb=kAiK`Bp8~wR*=O%=$)5du>fnmw0?w)F7d|dyaMwIca6k zg#S|;BfgG%4UDT^hu?0v0r@R$Mgk1@W09E(TQ7FqH&-5|`%&N2*Y5>O&cF%PK@o)4 zNZS!<3hRH^UclBTrj=txxpyxiWAdhC(na!M%OMmKfBWq>XGDD3TA&v+9c36me=GMb144P$dVq{Q*?Br?XE^Q5_`#8BNp`lGH>LtJu~ zE@32H#ARQUr~2b#xXw*}`1zsH9Cr>!hg-xsI!LR^so#|6*f9xdt1rf2*Fc$uEjZYl z_OhW(g2jPMN~nWS?|uUk%lu@QD`4QiC_v9*V)Ssl{aHFuVJxNRy*+bggPQ@cLLG

    RYl%zfZP*?#X!@26-Bmcs)^Mze##yF!4wJgSqUqR3}{5x>A^4YjgzL}CZ z`kPNw#r1bMPnVX6W!}atCx{kQU6}lxt2~v4fD8S7=z!xRXz#`~oD??mAEkcUKE!*^ zUqC9F5~=~QA97bFM8j6y7@UvnK5pOZ3Km@^5WxCf+aLg7;mrZ0ZIA}FO~6?p;?vLH z@a$1J@#$HSkZx@<88;$IEcw@`QOkQqIny_Ybg3=egW zE5HT@H4wWu6`4vp$DhZEzLHK7xrzuZSp$^uoBLl`7l^nf z1B6dDdU(A1ZxsG1ver=cBWmqHxBLy_24D*TnMuS8N;+w$i4@@XS_^-h3!(ptpq2d< zJNLrlxQO8EV z^{rlLT9WRV@0quXD2C_1H-R?Q-!ChPE}aU{W??Sr3>Z#u+;InJ(7N=nFSIH}2ef=+5dS56Mj*=L zd>|9dG-+ayRJ$PsN@eAtHN!!InVBr_0P_`Vmoh?J3r z+tG-He5k^sM+VI?$m(^s5S^Y83hTA{5+d?};NVG%1mQ^i{mG_hAR#DhU*B!fcjIvq z1X137Ea+>`YroR!grO(HbJ)#c%lswy>OrddN)n%@(!1(qp77j{yPIEg)VU7um9CbT zf!Go>@XZvBdFlT)3a>D#ul`cIGIjL0b;s-7<%>{MkKJZ${7@>^l*_N9)9x5bj_gw8jB~~;(Z=v*D!>QY@#$FHMcR%S^sXIC- z_d0Lbfqv8hO#*lQrD84izsr(2w#ZP=yYwfYIl7BHGC$W8Hih*K0pnhWF~idirXoIru(j3g~|Pb&r2^+RpjwWMx%r^wE9R*|@J4tCz;w zz-#7T%(2&PQ9|;k=x?HX2Io%4cQ`>pRe0jVvsD0j8 zPE>c4;h+~rDIjqV^pNEGoBfL7Zu;cO$w@S@w#~+XxPH$X8~=shurzR z4-Nj@=w#QCR-U}^`BcyQtBYp!fJj>&2zjP!W%*fOkS{Nn?I|4F_$R9lH_NS5;-4?T zzl?wvK!XE+Wz7uW#Z4r#Ab?U*DKnBF94;BVT{M~sO6D0wL5`9%I2PM{O96WTR9htBxY&3|Oc!SVW@vC}AS zs>^{S`^<^wAm>e<{G@R@w%YY>b$PumyTe}f7rj?Rx+wpwLWQ@yTrc-UlXuoeFZYJe z_&Gj9-{d5qJp1$J&IMx0JMp7h?iZJdVkzD?IFvO%MSK1jSv8Tr-ge2p!0W^f^(!4y z)s6eEIl0#xPE5z~=ZkM{QUE9r$&w4?8-r^D@so`J-TxzNAKg@IKx+g#|HNOA{7v@U z&%E{0?oX=X9refl{O=?=s@i^~cbGQ6MkX5qDU7lK_E$3&#m&!OUmPwEbq8Q0>aR*n z^==4s?`FT0YN`WfvLXI=b^hmzI898UN5#Sg z^repa5k$&E-JE$0g6_jS6n`#zdETY1WCk){{(T;cAmn<$n$!Ib=1-GO2MXqd&p5AO z@Cr4nH>>^cb5aM};DnDWuVBVMU6u%a@W+V{$X@3F;jWw0rv;Gp5&Y9+P#h|s0W5&M zIWKmwNrcw+_V(t3z#o?F0ZDpRkJ@oy4h0%HlsA*wA5xH^<%I!_v=SqO?q|a_-11_v znfqL7PG5JdH^`pED{od9Dz8ruEY=4;{fd8`%0QUg`)J?C>s$nfO3bJ6lrFdkPFd#> zcXDiIBDY^$n&BUwla@M9&xBETD6%VScynB0+W1v5OoJXxW? zJ$HF=1}=gQ=e#wo3DmSBUI^(Yaz})uW~U7we1*PdyQ!6|X0MkUd~~}J0co1r>fMkI zex@jPlkqm2n*n-mL)y?CR}Xeo|5qY+qVV``kq0xl1aZonA@RX0>lmQl%53{MvC&AT z>htR81P5>#9iaH5Y(^Ik_F_1o;rp!D)a|0!%bJC_W8^mIpo>a` zHco835&;MUir;4))0KEAD^K>prA}Typr(h2#upnXcB^1Z^tNsx9C>D7cq33~S{Fqk z^py;7jiw1)ec5THh&W98$107J;Pu*>Dl3RT3l85R;E zR{Go?Df~~$Bu>xi3By+Lc%O<{?%??Nc)6IQjDa{HZl2w4<~|cAE!QRNROny^RsT;V zeSB{7)+Ghn^ona;a&vQbJv8bA8^Hc<{UN`vR@ zcIK_Z$DSH6k4~sh1-8oveP*rSK{dLyT1MgZM{Ps+0+s@>Cuu`~k%WS~X0-R)-s$pv zVeh4>8dn7p(A-F#Iuk?%02pk}4lR8^8h}Lczl{)3KVT}rL*@VI9m@6RN#y)o(>#XvinJsnrM&Tu;ZS?Y*kmF3( zEszEbrm$mj7%rVV>?A=cL)>vBgjPyB5MG~S3%xTvbV0*X8%E?HY!k2ru$Wyr(j-(j4Me}#mGeEIeh7|c9pyhq?+~0 zE+tDcPht8&*!0Cuq@2A>2!;u--lcuA>)-SV(OMgjH>KgkVNx=vx}Iyvw<`UUK0>2B z(2FUYU`UQA0g!x`Q4^R9q7s3ZAlcXJ0#vEzIaI71_qm;x(kHy;?GHUm_4FKK`3rON zp>(&R2S6wT)+8Ir6Z>Kiy5mx+PQWj*jrzRwsDSn!2Q!D~2@pK=ADN5vJV-MhN#JLg z>ikyhfto!@_Z_u+0_o%iO=bY|a(U1K+pI~whfbl=r#9Q)4SCzh9!q)kKJ+U~^ zP}JqS0%O%nnGnC1Ge_~S`lXym(>rCo{b-&-&vjIPLS`&D+0g{3^sj~uSiuHO5~2Wo zoM>OdU^a&JNrtK}j)7Q-?$)v;7M~JEM)jgk^g0U8g{!>r=oIa0GgBA77h8Kt$582@l*B584B8Tc#w6 zl^*C4$ajot(c&&Y_ytbEC+NrC7_+BNs#FoQnF??^KY%E7yMdrME-HJ;u5Ex@ysgMJN42-XFfEl&Wf+wmCTAHwet|>H+vK#Mno9vZU?DhvE z*2Cxo)jHu|~ZQgPTMH8^DPJo+mHm{S*crw)$L-Yfdy$#77@OORlk? zy|wT{hX?}7&v)K0!GK|y0vaq6_Qf2vCXtGlKY^Ni1CSX$c&K7#BTx6PU5i47Dz#zX z`pvFHBRq!#zt*%#z(l3NeuSG(7s?dyP6Va77#iGK0}Yb(ep**oFT%~~FW(G~7}3S< zrofkv>cwAI1Ii0R<^3Y%4X&UZhR^S=9x*VqA6XT+}7p+$#VYxB7wQ0PeC$vE1g zBjS@}8w?Bp>wJl}fOryN%EMMFYQY5b3J}i|3=rh}#8LzJUwCbn~`?x#( z%=R=UsX_=*j6R;ZaIXKN!qUEHI)WmjFNLYK){N2P{VWXRZ9BvIKT}73Z7So_o5wtyt~-Mtr#5!S z0f7pMzFo$a488Bs5*8#?@6paer|s0g30xDrzE-%Ie3h;#pi6Drzd3Qw{v=`T2olu5 zbszZQSWr`$^Che!M36E@Y^w65{~Bs`sRKYN@Bk~&rs84g)jpYygsn|K%wFJ_Q#=_I z$UFbKoIH1xH$Z4qSFtuNfk*}fs9^zkHVvyuFfI#MNf!{R+RpcsXGiuHa zzMa%EHU-LaUXzrIo7vFKM}D;3G_le{3<4=X2G{bEH3KV7!Dx|4%jIn21Pav9c}--o zQ4}O|=d+FGBa}R#%2}3gXLF+PmKJ)6z{2@X^-Cb;2J!~RH_)yD_$D2|83p#A>`D0S zKF}3a2bOVwW`%)l5(rdm7LCXKwa3%(sCF>50DOKY1NaO2n4pPZu}o=HYhe`vqJa z`?@%bqik%^*))0gZGdG`;LZXc2Vix`|C*hv(Gu)Y!ytIM?q-$YsNH1z?0i2>21)mZ&)VDS; zq?awbX{5HWQzM*b$|Usa_nNe z{tyJ>&o~QKM}-6(<95J-NFvZd0(Z$l-j75+f_tjVoXoZg(dYcxik5Zya-^CNybluVGIX9mz9wC{D=*VI=W zkc>SK0mU^Z^nR;le@4r9Q#-)1W(;I+QU7*^-)6mNqfru>p?%r>^g_R!sP{Iw)v(&| zlp~p`rvjjD=JB)H6B_bEkNcq6%`!eGJ_}fYJnPbfqCGjT)n_8twD5EcU5#w)=HL&HbX(tml^)byh>Z3r;X40a1 zO_rSXUIui}2zh(BR{`C;gnNuS+wQTwz3vBcG3`2d5$EwTxjqPFv2qT&bZKr@hZVQo zwitz6SX(CK(mO|iEKH^j+G0Ow{8W-`(DG@7Fkg$&6Bc5ur!?be{NdG_eu`sDG$jZB zLxW3FWl<1A*Kj>WQf<$+AgYFk?~1YKhP}>|xiy5*nL8lR$FxHd2GJHvDF-9dgkkP zX9!2l!Ro`6=CSiph=xAHy@iqYVUyZhyT|$TMlF$IK(de{qSlKTbgps8XHomL!h@E) zH+6s8Q^hMO1T;%oa-h2&9ke;KwZB+LZ_pB%YI~X{#%>4=;*U;7RWG<`ztW~BPeIlR z3bDz?@aAOWut8cL{q)Z4M7UM0 zn+A#u(czbsIEx?;=&{y1^HVvInmBZN-sW*k{--UH8OPKc8^j$bXK;nV9;5rC#x2z) zo0OhAQp)Zw@S$fdjs7wf$XEkxN)7mz83 z_5!Kbs%(>=HwT%k*T#VC-D@}|j=NI7%9L*kiPQ{FU8M3SSs&;@cH0_CU#-YodC-%y zoy|6(+8%iojMQIsjVsgNYan=Mej591jFy_6JUc8-zA}aKhDQl|g-RwUn)PhfO%x8^dpw2k zF0n|i;x{C53!Fy3c#w|=Fc-{e@p(3vf@&|_h!V&AmT`~jcMq5#LWO!T%hW1$2i&*~T z+_P;V&C7yNdhN-l(@@(&?oS52F1nDzX)G4`w=P9RK}frE^HVd^7wsKYTj6*$`ASH0EfAWWdUA+tSU%=6^{MIdHEpef*xY2IA;Bb;}3n4qBOwoxDRyc_sXd|KPR z`he%I0kriY3ptS}n5xCKgi99i87F57fVhUceWUyBq@?67CDqjEq~xG`oN9x_f#6EN z<_ljJaFMG*9N%S0BwB5a*p@o6iCYM5@pZ&x(aS|h{EUZy|OM3=$U-W ztIu}5j6n=Dh^fwJ2il{^0rxL=%!GOB!2Dw-PBdmzK+!=l=L(Lu1KFz%KIx8v`rBlF zGrY$Rz&I}ip2Gty^KWL>z3zsY{o7beMuWP6zWh(vcK7Mf)}O5Tj~SwSXXm@I{}aV@ zfT{)kHHG{|=xuxO_%(q34?6gLW@!%sCMMtHkH1b!-8+~6L8IU2r|)h2HU9tKjL#LofR*f6WI+`LF$C{;gl0WbH73d*`JRB1F~8@+&2`^DR6%}zHKTM z;Ts5klgrP|FZ;{9 zyLV3h8a)4vy41Wf1y+u~J;w6hXIGW5phv%{)o-TfFPrdBe&@e8eDlBm<-@;x_-S)6?|NqN_ ze|6wr9r#xV{?&nhb>Lqe_*V!1)q(#fbpVErBTn%j^7TyrS-xJ>+Rl<*-q7CK(N5pc z9?0s8xHyO@H~?vNU|&puk&y)WGLXpg0UvrnL2H+9iF#%hI#v!Q5=JIEP7Y=uX%FP^ z?M#7dOmqyuX>cl^m5!B#l?}WLT>j^DJu?e4)353JS~c#l(sJZY*f`!vuGY|$Hy4nN(j+m$1u@!zbaDILnlVZA0bE3G$0AA6dWo6azHv?lU)`%$RaR{)tqhe# zxR%o)yGhx1$XCXTLQK3qtR%Vm<}k4xJk-Suo;y!EWT6@4$w zIBD5vH7LnFL}0FG{ITTi6Gj@NN}g&X&m4sid0cfDgur)W#H%d3LaE|~k6p{A*_R%e ze=>K836rVDTk0*0S9eUF(hRmee^)j%)au<;&k)w-RaL`h9!*WROS7D8u2tf^FUl+L zS4)8$__PUU8EX7qTt>Rm4w@sH#EBFcaci+?A$Y+4xp+deH;MESnsV;JW&Z#`B_qENk3=2AlDFt_pNCjvCEeO#G!M zYw*2^ohUL*SuoZ-O__x|W2>QNxEpeqgVy&;@f+mUP_Fp>mZ9t;q_w*k z>iO|rUy5gMs0gXLM&TmwUVBp!n?kWFc6Q(H?#?olKa{+&SBcz zreHs+R%f*ISP|vuv)=pooU+)0WVm1nq-OSp#7q#HBV;1^XqkZMT6PU` z?>?J82RZZoN0KZV`IZJKl5y`xTju2BVT|ndm#UO5k28_G=sY?r&}q$`VO}@(3w-FA zx{GEx(uHi&QhMvnt9wQ|BV-C~$fl)=7~G>-66f4+u)}H?YjGjWB4csW$|}uf$6^E} zs$@5xCeM8~2TjcLt%q9pS>-`k?m-6-PCV9}okkKX&kcEGgQ(C5W7R@YNZT@YtH9JE zakr@qS8;yKr^vGt>GS7`0LY2kO)O9oNUMQ|WRT;|AD}>`NBCnpA3$aEaL79ElR1`d zu@TI$7fNgL6F$=zb6EK7xoqB_^UAxFq@O*vN9i-vi0G04>oyg8jy962Xs9uMu}p|{ zug>M&1?D>+%^n2%Fs&g%vE_Yk=Rav;C}oB5tI|Z8Q%2+OAx-U5Uc|eN zT1l3L+1k0;eUc=F=u3<8Vmh~Zz*N@s(Nq%;U6h+)K4cy;mI<5v0v&<<`%m!)l>Pjc zv8{FSYzwvTyOZpkhSQqLgd!U+SV6?-SXI=q3EI9)2_KhaCoD2-+O%A`*cBl6REX>i zH>Hg&BMs=T{>`raS49Lk94aV&(S7oUA*_&d4h9mDY;P zlH1dt4j235=&S9(QrpOhJj=-|WUn{2Rh@nhA>Kr`Ga9SUGR z(1OEB$E;StqdlOQgw|g9#5t)dpnm_8_)ac;i4}!~7kL&zu11;R*`;jB2U>|+=Jv9Y z3|N_`p(4Id!y%t;bBGh{bD3r-SaoSs#*CnBMVWAunBr1bN@Toxpzg$WuR`mNDqP-1 z+t_3Ws;$fcp6FV^u|M3Jg-RTP<{0ik?TWwq!V{_rBu zb45cj`@&9zyTr1?XWZ?LkEW4CR-?s|(vt5=O|F;0K4eVYx`%{xTDBk?q(7eF$Z;;a znjSmTQ5c!Zb@ncgg_l`e2HW z{ps5iUG7G>j;3x6aR$xoLyG&|#$P@oyjN?SeCUX)u4&BTcn%kyKR1i{^&DZT>{ho2 zt?hhD?fCBbP+XT?o}1oX-l&AyN@CTLvbD#FXpcq8h?%P8W*#rkVu{cQGOsuuW1!n1 z<14zDzVxV1ovhofJvw+t2B|NsaDf}50Kz3VKk4Lv=|5dWT)+}A)TY!xT9ZS^W$o3J z%s%Qt49S%txG+{VixL*io~C%kX!JY+ZYU&zDoYcCw(Y@lfhDTv4EFVsWcvG+lCOQw z;E|qqxo@1|b8dtQy82v>7<2u+cSAGsqw*16V3kk7;Va$m7Il$R885-L@ZT}*tHx~W=1F&= zL^95-QP&+D*cIEbQxG_K4C(1;9~cdTAS3OU7WN)n6sha0zlwkgHNnu=0PTfM4{}Z7 zo~82E)oR>ZN>20|vc)6saROg!1yrQ0F0(1>4rxw6p;DxU7IxQF>$Z~;4t2_%iYy`q7JL%fV4%zA4l zRVB)?>EH}iq6PWUYT+)0R&K~=+Twau+ziwiuI&W5>G64xT8n3a-BVr_A04mel?PJm z){oXJJMTnR`t>Qjm9w%%v{LM%A0O<--NPfQu~@c`=AN%nrji*Sa2{;p^~N^^#8Bc@ zYrjXUcFBco9Eb>43g!w|YMhmZ%INhY_CiBe2410w@ct_q>S>ZWRhGJzM4_o|%4nh1 z5pAUN*h=0DEj?w?aeTgI_2KvJwMi!ss12(ZEvcUE3tRkk^{m#4c*ifsX490t2y(LU z1K-D$Fh8L-*dp6*Ngu;ia}kM*hObcO+Yal9o%+B;6LubiJup@XlaMIR#)(jhgAh~8 zkc+jF6Qes8qVXkAm%qLG&~p;H^K;3W{k=P>jjE_Km^4?NyV5+#USCJ;9IDZ*4sBl- zbZbo{#YkYvAz2$N?mmfw_^?;zBsYTD8IgH_-KWv41~*pxER2s=7@LC4kQ0-QH4;Vz zzEf$e*k$BJJew_I{(;x$zSAq8cb{#e&guB?4-oG;?2X9VGVFLLhrZk)8MoAm{y@EXT!H$$8cS)Xea%sri72sa^O ztjoD(GOG4Ou{a_wund&CapKS|sLI(Ti_o%$F?1@Wv?ZC#nJ23xUpW(%AlOvqUc_{5 z-;L1GURQqV0oB|~&w!ASpxa=wB-`pHg5V{T9+#K7{Fj@#^cAn$I}~h4n=IN87~rirXt|H1=Qh2A z?uk5y!4(b})^Q)O>6BP=_qVn0P;ATI4u|k3OHCTx%6#|;L1K|rMpk1%X<|aNPHB=Oabr25tQ)EWNa%dm%ckq%gf=BZ=2e#D{)72%m4VW+P6;voTR)>qQ^*FsL z-j%DDakM#_L!rym5{w>pFQ|i=Rl+Bt8nuGTWRJnMtcY^3a(YjG7T>jDtj1B7Ai=(0 zJ6jLpShgVk2fWA(0JdM&cZ*tE{k^zb(azEEde!%1T}xmMHX|#&psu~)^(}%zB7!0! z)Iz!zrh0a!wBioHjy}DJ6|gkh)XErG5N`F*%HH&^V{jQ^LwkKYQyT|sI{-(r01e9n zIML4DLC8ecj)a+sUP|}-KCtZk+lq2~5=Kte?{M_zRq5cuH>m!*dU|kc*ChX$N?;Ya zu|2rOZ&W|DGPW=zp=D&Ge`v1{UVzTd$^fia|F%!d1RMzI+I(Nu4!-oz$@trPcUFK- zX#;DgvFhtF=yBX90V-E;uyfRRkkz#Vj{|15 zUpv6@QwOfif-LyikMB2MtLlFcSz;skraZsIn66n0^hK1BfrRC|N#G!1{=UaT!UT>i z0Sd>+M8f&40a0)e>ibC&&hI;nBphJof^TF8IQXLw2eAKr1kuadS?enpI;hjj3X9S! z8oD@qdvZna+eYZyMqCrj18IPDx_?E!IDwJL$^sslLV$_@YypfC)3=7j?5rJaen{f_ z01$+tovxL=4VZ!YuJl3*-yeLD7ZU_(R@BwA2X6V9$$%YV|CP(&x_=Cle~zOuF|q&l z*h`O^x;1_|h9}PKRYSWHL_v@<2Asy~a+-+WaSI*7n@zu2s(eH-aY7te-ulb#m(^-{ z!e1X~!LRz!zu{PPCpHdb#-hI`(}zkN>)dB?YSebgg%9C}0jfaLiDz&40D1U<3;$x5 zP(3x2PHX0l)761R%lL&6!yOd)a#64IuNM2MCFtt2xf}D#U3NWMwN)<6XS%(!^Y4~U zQ?TD3ob<6TbV;%$w?{WCYKZqEVMxkY+n!LPNM&P$=#>+TBP#mXz7<}p)am>z&*gOX zT(KJUvmMb8%;BlUzWGiUahLJoc66xHjwemJYOUMZ#j&%~*}}MqZQ^j83f@&E&(+Rp zBCC_s*g#@TU0aMYhvLM-jOa|(5;e$}-mMhF?}I#iUeed0PIXk#2j^Y7_h`B~FX@+O zYk^;#o9WXb<2|NE)UuDO;*`3LGVz)?l)wm^3{~u@$``B-=0W9kbqgCW)?Pz+z7n;@ z(>y8U&wW@Bt1X#jmeFY}L|)?gV}lou+qo5^dDPPEr$~iL#<9)~FxYX}XU<&5RQa2w zVa6>A87evu<2e1&LG8_pyBe<>;aHF!ruONpr|WvRm4$B_O?yIp5=(2(e&cgT8)LEg zm~)2g3G`>%$kwK|jA z7(&dpM2|6urWOwl`WEbir{@tLJ(X&XdOtL$6>ah*VWDiOQ20KcvS>0n)5ir;uUj-m&xO%nk8b~MgkeA z@H{LTl#EgqDV^=xM&VhhG5RR2{QKqyEp2Z{Wh!z$4nc;uX&j;TzHN zQ6O|6!P4uw)xC%Q_tWg+9(NFEioxevR#h-kByYX$wPW&G3Od;P@*HwwYUSXmV^BBm z5d&qKZZG@`+<}3P9CF7fZBkspaSY~Q8R;Olp`AyBOjGD0g$t-(2H#Z5TA3&GlbYRU zX*Lq3P&zQJB@du9uZ@|;L(k-UE4z!3Da-X><)utgk(GJyrkGix0e49F-r&_kg&8UI z&&9XVdsa#xZ4A7n^@SCom`~{AmK|#My?gLl`E$R&BkW~knAjJawJ<7-(U-Tf5Xhtx zO)dQ8CA0I;qZNmPI?FQAq$!ko@WmWvUnRE_vFQP{-&SB+d7tDQiddS{wM{c%|uo#TkD` zTBE)WutpR*gx-GNY?P4W8RD0_r%wJLI|sFt)k^(^o@Xhbf1iBX9dB`Q4Jgw1>gj|- ztb0Qit23?CP*xl^}`Uvf)a z4NMm0Ep3x`l-9?uP`s;_T5PYXEfAS;zbt%x=j>zKN>zoc7GKb^ibd7@;BHqe>`(yT zQ`IeZzo!)v)p+n3f*tWACVYGsQ*smG?DQY)`!pm64@rIRySE$SgOD}1{4 z!cDdman0b?7tGd*K6kXQipaZ<06jjaS?3- za5T0sT%23mgAsdu_ zhE7{7VfEujjLU-Q&a7eKNK%Mxqa#e%ce-C^iXbgk@bvBeNNB==yVhR+V&sS-)~^3M zcKP&5*F%={WrGw?=piHX?E^VqI_&%{d53_Hma9ffbR)GF2&W6yly8f8suQtYF=0xw zzf$%$WG4x9#d7=L9!7m=hG$Z<#IFy!k4GE?uYsQYNjN~DOH7Objn-MP%^mcz(XojS z19y}8`5Tu|@u`C`9N4(Guf!;y3@C)~bUZTKJ_&$h!}AR$%@<4>%upP{s;7WlgNL7K+HeDD`*+EQBfM{agn~(4vRmnnpNc2#bL$#z_F#KbbQuJ3 zRx*JuWkU*0g3wiiE=AoKGibFkh<`Y?nN&}R%jUM`K4mSe|9%2CgIw;J#K;E zV0_#%awyt2u5XCZ>(xtSOcT$S;z5vUe#Yr2D{sOi>s-qJ_Mm`tY+0~q$HRup2I4J` z^CS1OwG#>gX=Tp z?+#9AhndPfSnMr-a&9`Ir~tj)50{petwW3Rf!HB5e5tBWKAFdOEnX_-zD@+~+xLnT zgA|gDl)>++*OF#YbDd*pO&;Bq>3bgpgUoxL4B20U6_s|j7XLT|p{t)Jv8MLqcwlwo zsasc5r3+W?!nE)K4HJW}d9%Y<{St)ffCS;2=y3UX%RCU0vv7-9zJYXs+zX~BhT+bO zUS(1qc1NAH3;0dYf;N3`L{S{OoW~#NXG^Dan3Q!3N-ZnAm~;>NScQe#K^oX*6Wa2E zyHs7v9@@3uPL7if_i10_aQH%0QWdh>b}3~s=j(x>sch3U(4?)`oBr%$oNE>fy7Tb?gMe;~lm zX%%0>if}7ccw8y;*jw&;>%Fw;SvH@fnWUWI;Ol3iBDCFDm z99u^oo&J_DrEf2dbS&4idM8KTjD9115|#WrREo5@u~c@6iU}$jk{X;U_{R~}&SZ_3 zFRC9nJoZ()BUFz!M!Wf<_h{@=Tc6vk!@#ibNX+T*a#`D$Y4oKsRy4GvI9AqKfl@6Z zX;SUv_;X*LXEA24MXc|Qlnv}YM%X%Y5ZApM(CoX-Qpt|h^xo#cznxUGR#IrNKz6^s zKkA|P4t$Wql5^hM;M6dR~GK?7#~>{Tg@ehWEshKBz^Uqf^>5bN3OMcViG+>RT*Rubnv1l z!gYR_?8z~kPgHq(WM4YJOdHPmFV&7s{EJJ z8p0lw4eX3P>L94~{^Zpa-EkF!VCI8ka>-hZCx}f=DmRZX`tmbGp8aa(LfMBHza)tb zILM(u{BB}%?>Q&|{D>HHeC5#PH%J5s4>;o#rR+6MJ|Wn{v)M#Zwg=b+3`2^DMoNrC zq>Yf(Fv}KzhI;zmpG7;17>}M1rCgc0s3kD-c-k9f>A(GKsIeNQJqka&(w+2%zt<_4G^LG)2nE{+h<`R#qY13`T5;6 zK(O?$_t0>%v$9;<`5*TBYV2wjgeD;>E((GGJ|qw%AkftuNKM4W)CdHUmIgfl9yEai z!9YQPfHz@*z>l3sKtWw^!TTUNv~T<1137dM@MbaaF^z;A#^3wk`#=zZX&_Kh_|*hR z2=srk_Z?tSWj(_e5J$QwARt8qrHM$B&VUFANSEG3qz*-TXHXOrDI!f#8Kg)DmENTz zNUzd+@4XDef7umv*DdZo?)&ch{rEUA+{xUNjf_o9ZEWrA9UPsUJ@4N0^1lDT=W$SQNNCuTr{Pi2F|n`W;u8|zre|bkW#{DP zm6nxPR902LuW4>+ZENr7{Ma=(G(0joHa;;qwYaprvbwguvAMNJ7aD-^Gg+T01M&Wv zE<%tl^h1X*4ng+lLPK`|Ul@dkFlpEh9}`i4=vf^<&3^j`(WStbZ%VLeITRO&Z&){B zlhAPvo>|-@?I+5poe+Z%fCB4V3{f7~2d@Jj9LT``jtnrS zb|1~+!|foZFHgD1sKH^$X28Rv0nARMo#=y;#y_Lv8MIJ4I- zaPQeGctb(|dL8vbx^2Ve`ZLsKB>tGsVDX^gBw~4I54*di^##!c;H(ccuWT_ z=YPSG*5HHtC1;X`Ul|O>G%xT0rWlf;8i z{q4#k&u2SV5p#%9T_NpVplYNa^ys~O7$VURUjO?%$V1>DRv5#YucGecn)WXgbXyqR z-37?KsJ(ZAR1ZFVvBN&ViZi&~C*$6F3hjl~6uIW_0s-%f`?*#q`loL00=ByV)8^7V z3VIfF@EZ?tDu@9@|JX~ytPxF&h>8#VNtxc|S)~CmMEL*=(V0Ymg4jR!lF$%ziwC0o zH}>LR^F9nf)a~k_pwk{C|GW;&@6neg1rE74?B9B^RT_W!rhkS!$in@X9Vo*5!-bTK z!kD1$V-ndR_Y|A|_~hO!K8N%D@sLR*+-K|87^}oAB;x0lCn5i4fv8R4?J3^2llE4B)A1w%;5VX^ROd78(-atOvS=JS)L%ot)ms?6hoZkh8 zmn_%o0MRc9?j!o+es@!4x?F9xScPTYX+N#zHa5c)(30Y8;nm~_e`lT;zq69`sH$~= z0fWn(N|YSUCQ*#SJ8{HHU591?u}1m0x6CoUDxZR)T^`leZV?;Gl@lRad+2?fw)*rf zHKP3Ne9c=TWuEOG+_t)yVu_QdQPTa4a`b|j>R?304Y!FyZAy|OzC_-oJv98CEAKNp zfM|WPPR|wUzq&dSa_ChjW1mx%ECU9=2Nb%gqC+_`Q9m#r*K{j9~E%AJ(Rl(^eAkF1D<6%l)J!PFX?+GA9SSV2JDhy_X{3A z)$7gICq!t>7Li*Cy{tl}r}81;d5x-*ED~ED$zRUY(dB#Vin#q_rdMwUs#khh z=3f?T-n)8}G1+B$M_Rir#=ykj(VK3Hn=6MyGIrc?oRm{6+R=-7Zdp|Tx(mhkB<`oo zo#7U`a?j)aI$4Su62rtQN7HnY*8gF|Ds1q5rC$=oir(|JO<3r{kWO7%_s$b3;b0DZ z9-Ihcw3NZ=`&_Lp=OxAM-`(QB7IAiAV_~)D)&pek^z-nU0!ccFN)4^+sP!a5b?C8O zV1(JsO+OOfp)8M~W0ls>U}@pmTc*?`gPo^|Js%{bXU#fzA26FZVB3RR$1kK1RBvK&xROI zx~haFJrb$rDIo$PC>rbY6AK>%SG~a@*`iRD*aeQ@JwjBYI^{0hB&M@VL=X@MRj|`} zB;8lLAZQb)-nG;N^|d_K{ek`D9isE%#^{2UW!!u$T@uU|K9|sQlAJ-E5Pulc-M=1zdK4(;?pJ1e3y4ZgE|1#q!x1EZKFgh8Y5q zQ3M30(#G`cqZl^>G|~o<@KRCzfX!*mUEr9_E`UYk=9H~FEldHIWfP+?@~C{5QZQLt=PK;@Y2>+6zyy$ z@EUyFUy;>x6}$Se-t8G1Z6hC7#w63OjhxKRteHrXJ`p0c4;!APN)z%arBd|S0+v*n z_4d;`e#2PB=>i<)(S&r5f!s&F{({r>5?A4Tz@z}{pykGuW_uWdxu!}gVF*f4>^&cP z*yc1(O>shM(qO)my+#oJJL++{MRwNv0xVR~WW6l8{EOX>88AFs%n%B#H0dIt_UL(j zHt&i%x1@F4Ugzo#R#0K2Uvqh3YPFqYdq#2kkWHF@1 zl|>xamTg--IqCY0bUCO+=vC&+h3tE)5Eqw|Yuu!p)*l5&^5FBgivGab*$ zkWY!{`r7JutR}cqU25M7K@z-Zy7S6|Cq@CF>t)pCRdfv+ zd#Sd~Y`|g~ZFbWL{AlV^&!xIMR^6OvjV4rRZqibkAJ1Rax$*b}Ws?8XLkfgn_6XQB*}DYi+mB*V<)ksbZ8q%S+GII3p%rR{Jng}@5l!3&^+Gb6JBJ?cld`y9 za%zEKTx~1N3;*d5vkRG8VZj{wg=ybL2=|79j(5Bxhe(T|zjS`KS8o-NO^34WZa_1c zd)=$9L!1uf^sNHV7?x+Y6m;$pc-m4*)!4k!;gBI6m}`Ju?O=}HaGq9a)2YUbP~Yrs z_FzK=tGc7e7hV+X0tOK~1p^nZxbFflu5ZMZK|3`Ky_C)*BkbZaB9IJeBH-Fae?^x3eX}hb-?VG_WA}UByOr3-tg5H`Ja~|bi_;n!sli?Dh3B6~KBB|+ zZlzGket;CzdpX(uOdZvIdhWU$6;d9;^2yu4(99&_Hf6w=nEIFayBMHba{u)-3XMmXo^=OEqkkXm?Nl){Qz4OP7(7^PE5qr zjPeBf)@79fw^!N$N4aXcs~4|C<0eHorHV6BF%m~x`wCqz&Bw94zuu&o>_8%~rJtXL z@BSnb4~niP9jDf>+mj^jizsK)st<`y%}vyJ}`_rQjN|o6#Fj9mWH$wF>aZWd)v(j_IxC6YjoAfTUeY)oc-jy=feJ++X6{ zeH9nRh{g>+aXM$Pp%M4T`H)}vr|4E2{$7RD@3;fCCb^xJE~w+H-CV7%aH^9raS#lt zX|SYGCmJCXK8a_NxM8XJSZyH4(XgxL?i~*8xfgJ!_>D_*uodR>l~Xyh^IEOYW2`D% z(hrZECnYGVf-F@iw-&g>o08O7Qm}Q458NTLKn0^^FAO3J`IUpvva0b38r!gnP8En$ zq}*k@;@Im`(da67@ixo>T_ZVaVD!Z^(xKOqJr(yymi==g@iYZxhv0-IPMo=cG22zI zQ}c(;BCKrAWUdfq1e%p}a_BhX6F?|S)>G53F0Mt#b)^(!Eovp=GT1aMMdB0_*wzNO z#T0~|@SzJhlowbpkz%ORqh9QnW*E^lpYp-~vXyV>3YU@m#=Us$Zq5tc6|j8Ij1h2i zm^L6&H&kscE5$qh+)9{Y_PwYLjUTSD+91Kg_BG`j+ZYOY@1WC&wC&2I#;j&{quT zRd=ByZbiF*y=?J3c5c!}k4aZbU7p(In-6N{X%kYRVjbg6t4>_hXN(?;of>`3%bUpO zH*L!2S22A`{OLL|gcHq3xr3FF`Dw!e0hX9Pt?9LtH75mqw+|ogT5Yt)`IV~{ab#!XcU}+7YH4{+ zu8yM9$v79NCSp1~ZM!hVWU{b1gN#jL7D<`h4S~{zF9Krz?729?V^p6>VrmA>s zx;gr!4dWVpMB`=7#lR4UzfET&gjAxgrQ3&5PRDud@%J6FPauio;Kq(#?89v3+?h5Z z*@N?hQ16lO%USB-V%^IZ*@Q`uHt}5Z_hWpy=LR=ba!0arLZqv3{UeuZ?)qpZ^i54^ zdQ)?}p|hLT)PVZLHD!D}_qdCZ}FOaDX07qsuflKc|<~KqeX#P~&mtX*B%7)D2p+ zcbm>e0<95Ttz6QUghZL4dQ>HT(X?FeJEyGGOy5kMbnTGn_2PM-novYrGn*$v-uA>M zrwASkSX`kiUcjkMOjr(OzxKMMo+piYx@58|d$ssPKP)i$JPD3X8?Ar}M4{?xBjlwk zANAt-)94G|*pq6w^*V#Vsm-qEv;OtVdUnISItg&%QCSHco^tk;mGJ+KU0h zTFt<7FgiI`Whvcjwn8RG(j45Y;EJTkG@l;2@@PpG7Ff7gF}fCT9wC@&#s*3 zQyErOU*fAF7R-KOOsvFmRNa}?hrY>T&H^*M){`)(gexdPoY!TL z@+ua3-!rw{^L8f%`7-qAbhG1~E&ha4M~So}8S71Z8y?QhaS}DV-cwe__|Rt!#|9<~ zuom z(U@RHghb}kR<|);q_Ya;{QWuBOf}XKFRr6URk#G)ZPA)srCHV^e>gI|s$R1U)=k}3wnAE}D>O84TkM9tn;aNEsO4pbqri5pScN)p*E;cc{PY~J{i z0?sNVIBeLYp_D)*fqGF>bQ@PMtLjx!Y{RQ=SgFS=H4tlI_vsC+n=aY24z}k@^G|YG zde^d4)zZ?awdE~Y>1b%$aIl?uFg-1d^>1}WzYghAzS+Z4m9tlIS~72W_9k}u^*cPY zeF=>W7`n=fXJ00j(&QMopR#$&^{(!w0?O*23kXxjSA2?OO00qrD|suGj5?`d$wKKQ z^CHtbLKdD}ivFE~f(&TQS6ZZ&vit1M!H>&CM~rj+80X?EFYvSD(!3WD_TL1tVY*`I z0=qvJaI&c^Qm8MJl6ssI4X)H?VFzo-(3)i*Ab1>CxJbN%3ZZ&-tGZEK1hSEn9ML%| zF#>tT0Hols7|xY84|Vm|e!NgNx01ZYPgpf7jMEawI}$DhZD{_^7~TASRD5z4e234s z7bSP7`zh4B7w%OM28Lt7pAe9J3_x`3CvN^k#C~WyVEWTNoVS01n)TVs{_AYCd+0{x z5b8o`ucjyNKC9n^a$~@-DHo#4>4*_CAS|Ko^`#2&-eEv`Z2dga-e`Cht@6F`kp$84 zAcJmxdw$T-X!EP^u<+5QeG(3S|Fef2|2ThTOw86D6iTT3Y<#!y$2_RbU-jzJ7@zJ* zyd}vKmG8(hoSA*)2I)1@t?edZs;8iK9kPMPgNFsW(B2CA?z8CJ^iHVbx*~xQc&ZmK z-W};Gbz8#*Hn(eoP)@}=OU6s!ZX?1HJcSD1g3OR0mZu4Jwu#)lT2OA+cY)#?9zyP4 zAOv!u^kL)qoawpMcE2?Mvw^UPiKAXH4O=IF)uf-veBEnRz%Efv8A;c3p zm!Zq=q4R-afaGrlr~mcW&anK0$>aarImFkeBmXn+pGNrzvk*VCOaAz=ZdB%CJ1O0b zC@{Gy2t52m+}?5Ibh?;O8@2tbzt;os5P4z zit3K2w_k3wA<6kO%umDV{4`v^C;YxZ{nl{%P+x}IzttZNw~x|S!|k)<2M$O3iA}#n z-S-W*5A|Er3I5FT?_=ivji7`3Nd20brZ98EnkBjOWS-p3L3hK1$HeauDYgcGBjv#v z?UTYd(&~z^EmuWOOCH>qI~Pof_vPhULUqJVSd%*S{sjpnowFqpNl@ML4WdE6oT1J? z6NoP~d@FySnDLwP_Xh&8&x}8wp?#=dv+TFU{mXDac!qv^xP4LnB{Mssz=WTDJq`Qy zXMdu3Ul{%UluvS~Ll*)ke=-^>$*VXntA^RPwjDX2(`A!CHt1r6Na?K7{$@)VDUE2C zL=82*l=7F{wnGoOUtbIz?XUC!Gg0maT%}$DjSwh9;Xlbxn+xySiJy(iZ*lqjFCaLVy-!W7g4 zVOb}RpR;NRwE!wi9Aa8D{nY)Vd>C`5_HH!|o=8G~g9L!XOM?Tsi6_YV zHi?Z|?II%ubR~=`iYS&RU()_BppC z)v`t=Q%!H}Ojc^ysL}gH35w+DZ=-xPs?qoJA3ps))W8|AF4r6ySTwmM4++<`O3=37 z8BAP_b20Nm4Lo0_i5IG+E;LKWR%i;CQl^UkYF>WDQHgoEFC5*Y62z|fmkj*{$S0L2NVgX1i(a%Fg62@CPt~-@t$*?aA6#_xX`9YTw}V zWh}(7wxuUn5ZE^mFpoW65#zqv;;6&vgH^h&rzBv`_b~Ldqe+XZk!UzWZ1TI`(op7r z#el78*9hj6#?PbQTlwV;mo&DuTRF!*}fK+ossJ?4xs7t+k ziL_N*g2L!|TgD=B8j=>#Z3FS?uU$T35vea2k74LjwlMBv<|<>htQJ~IakLj^CXfC{ zX-qE?2&6Rd0BgR1%2)k!K6NQF4ya3hsDb3Jr9_E-!&=gzT(gTlcEl9%aNRJy45j$! z5J<;pr#aCS!>GvWru|7VJ|A9rH+OBXCfO+eYt;WuAd?B*rK7umN4uTL1oY>3!Oipnahun9V+8J{cD z#SoizrTRB5R`??IR%cRds%1H1S}z%f#PE|doYNy`Y*l>{-P1kYJOc^=(Wbnc^S@!D zza@HK_-<5!@dBD7?wMWwA(bZmON8Fj+OZCLildG7c5bOrO=85Y!uu2dyT7lgK(>_+UF=vXG&WU!RBdL$}{rxHhhiC8FT zNQPcZYqH}_-3&Xyh%tta&s8vK5l2k9pq0gT!#CRj3mbn1_B?Dz;@%DGfW*opJoW9+ zW)HqDW@f2H{HG~NltQy--;J;;Y__=>Rdk)d%`TRplZ-z+su%+@Lil8cDjnh&l43!0b8tx5MF@tzbQ7xu&@>$m^dgpgB87*%|3^4C<94`yYMknRELe?Pn+(r|1!>m8Y zywXNjaH9fw-dvxL$Xe`{--~xg@$Bc_5~iRK5}2Wl^_#nfx&<|mvmSiY#S|OXHTpzb zG1$X*xP97NRyA2vdgKiFq{${~Y;+h0jFF61rVB7BvE_>d&z(DBo|qL-4@%d*VDr2j zuYJLq0Ym@V;`zYnqpb5c?nZogrx5EHCefb0gK)zgu~#|N;kzNmX>PhUue2z(VPwB~ zIxq)4YLT)saIpATm#NOl0+su&4Max%Y=Od*@XBGZkXYv2F3?g7pWtdXq5e3(u+(Gf z;$CSUR@dWL$sDp##`vtv`CQI+^ITOMOvjb_E}d0fM8jIAv zKGjxhNn#wv{Z_pKP8cCDCsXEYmwIv#*advt*D)v%qgobzF+0A0MxN%Iq1SyX5YRXxYD9{WEw5^d!oAo*Z4;ARJ{vSjhqH+>l)KBPSaWmQwujK&x~!0#VG9pZfHqg z4EMgM29q;zUf>nnU$>e&;3EwEbJ%rh>~ZCKETujS@pQjs^8V^IW;w6`^pQ96aQf$W zsfbD+|8do>(4b66th4xFI5&2Ehn?|?4EeM|pu@Q%Y5`iS{YsUYexC>52hZlv0>mJq!hSI#`s@n_i_L?eUjMH9Y9k6MpDfu$}BE|fzC?BTF-^A1YMhg|<#tqAz ztNjXEtF}TXcL62tR+UyE_QA!I8Q_}RXGZjNEHvtAx%_)tTala=beVV99CeO@RaMym z6>tOT3uc$|u>_rm+Y2k}2QAMH=E~(WL8v~GMdA=W^RnuDixf!~8{EMkR}3b(aun3O z$Bv@I52xK30y*0f|`WG-p6#tUwZ#MLr1&U!>pagpq^6nd6-mMDh%2JmsKlT>k-l z!MVkmQ%c095QH~i;bp6Wi2*TcOgjlZ0 zp*=Gerwzb{vk6mllp(M*9mD&^wc9az1l|(MSM`jvgNw!R0F+9-A&$+z>qeY0&pWW5 zQMuoh5pX2$wt%(^S*@lj4KviCf{*VQBHfA5rn8nF%nm)l#Ui?}Mee^f$A6MB_2#=P z!EYK|u^)=#a!TX%isc!hHi-j zSd1gUftlks8zElxp*ydgphO=SZk(t=nZO3ZWqw- z;3|L)yx=a=@D1a$GEhH(Njg?AKQ!gFcriE`zr#R<@=bWlg0A1{tZD`HW8NdbizDp* zxs)*0VSsgrh3nd*50|`F=vE`~)2=O0dx3$^lQ8d0HSO!Tbh=^BRRtIH=ET+#js|wU zS9X0XD`NJ17m!MU4?s`!m{gCexje}_OgN4~I@z2hM7j}9Aczzce5~19iG>M&NNKYv z4@vNhXwA42`h7KuUu|*(^oKbPE#mvm+)APXgORs8w2F@j@EW{21$(!|WF1Z12-6{M zDiGmRoC;;UwRpbmoE*ji*Yje00j7Xl+xsH*&eTqMo=^dT|w25+&8m9FpLwSjYXUbdZ*#_g5`r^jKe*4uQO;5qTktvM`R9A zN>$p>hYp)z<~BfL!44Vx3mJ+Jj!WLXz+11j3|6&Tn&8Dq6BocJU`^NLAq{=R56e^> zPG~qhNWs>o9pJ#-1^A}gsl7RLx;}QjOP8@>s!WWuiddb{K-{%uxgm094MCL5zXT28 zmRYdB7xUrl+m<08g(fda>KDMRU4X1fzmfAv*+HPROsJitPM+DPceteta} zw{4v}LsaXm%HV19YSKVYU;6}qzw2G9YkJvAM(IW&LB8^k7sylN!eDi;qklx3_kiUl z6L-JrEUL|UENF0t<8rnm=d|)2?(LeG<;_+S9ik@NS((+7nneDy%Xz}GvT$->+?^TM zk==5=W7B^%WMEcs)zZ_tv(nw^ZVhxky04JnTJyQgXB;MQ^g1kFCL8gv81;#EW`nrW z*P01*;)Q7R^eKQN_q`KkB+FVRDEiEgHYab*FehE!a9Znz!LA(YI982rrr@)Jr&P*E zm452+ww#YDWxd2wOp7b^OOxYR$r%&Tk8lrzL~{s}FNi;S7bsC0PfFExA*SNnjdUXE4Iw8n)AV!Lwa#*l)c{&k5ir8V2m*qIz|38WNfJ?Lm}d!PJ*OA zqlc%*VP_S{LjgvEp;^k6?Z!(%A$px1B0g;M!W0k>)CrS5tenSlWVjvYu)Qow^9QTw zeY6z(!BSVB#qqKfXyt;~+5=pUiuIcq0?PfEj%UkCoQ*!3y|>p7vuW*+7k6p$0d!j1 zw_m-GvCK0O^cZ4=4zI!2>qM1w;8iobzr2Jc-}-xh{Ze^T;duz-b0$j7ID*qU&3Ym@KMSv)eg8CR+r#a?q#{kGqp?u*5jR%Q2Lf zHB|f_iu*OeTCJpo@v4X$HnK}YbL6Vzx44&eZ_h~J!EH1sg#wJFD&0Nn0O3IVJ#euIX)WGjw>cP?Yv~p|d zya2aUq(Yfpsum{(F2=piP!O{X{WCX#W<-^7kruje+tiV4^TaN2iMTC1A>Jf3FC{qC z;SE;G$aZy=Cuq}g7F=f+JO_--QmTfvsPa=ZHv+28hgZ~=y(&42j#g6P;ve#Ia_h{? z%$Ah)BUtan=(pMhit!6rIMdFBUp+Txt(I=H)p*ztG29O^34LI0!W~AAe5njH6l=6} z(0W#&aC5c^myg}-Kj}P-m{iyWN;4NCpd$qMZVucV9b$T~x+X(SOpLHA&~ce?!TRGs zB=4dh!fR%ZQ(G?_;&VwUz$QE`sgJvynyO1Ij#lu+o0ABN>l8scu?ZXeBJF3FEmtO9 zxsQw(EhRY{dcK-iJTk+ge;Z;DiSxSrbp?g=y22$NPldNK60+gV^4K-^;N;mNWb?vQ zIB~sGa9jcDa}M$xYW3xzGi3rd3J#d6kemJ-W!K(sqT(E^qdi(+!y4@$ za@U<=<67+)<>_NKLA7u{z$wgwUR!iXpyLg#lkChpgiUzvqEnV*khI~T@@@J~Dp&{S z&PloE7K4yv`G7Ssr8Xpe)b!irybxcTJlk_}E1YO|`U#P|MzP|>X3La%*u;Rq@U)gh z*+c#m{VE$+)M5W7?nhTDrO}z2f(9Gz>E9Z@ayPK$T>r2(UhKWhyXZJ-$4JAX;v;b| zc*jB?;VS<4UJ}2PJ%cW99NGA8WOd(8N`JPU1vLo5yV;-)L_Ycv4Zl(ZA*f5#3*;a6 z-{ir`nfPDmnrg_lW=@{GN2GA|7l#(%{kAO$DeE%yuPMa#B58XeHCV&O4q|6nzT+wM z{Lqb+B*G(^lmg zl3RVbGP-K(H%iHg#io5S>AapmVb)|8gpUPBl?Lpg#+ z@vh-Q4cy4ZAk-$O_3MKHJ~938u}H(20C^WWz$Lmr0~#81if2$7+zQzVicFJn_1={A z(U~kns! zs|$Cn;@1fLjfrhtI+(zHt@(Qs_>U{mXJ_!<2$%%-v-VnU*mGYo?DNf~jju2l5wd=n zn=LIy3`To?BY;F)=NPnO#?{=xKg2NNbfeR^bA>E9$(61_|A>O3)A65;h(zGe3e7cc zoqqDSEI`Ys-VHt`xi1EU`m-_MRa5i#3EG!miO<%?Uxnnij8b&Sz55dhpDoB|TXQhL zXS@BqETX#nv+Ze&nqxlxIo#Fddd%-0p8w{xvkX_s1{Z0@LD?snxcY!G5 z_uHaKZv2F`DccOAapa+@*U?m^p+3M>7wmu6g$kBW9ZY`5SO46m<%fOFE`IIO?79Tq zma0%6@4`|#W2-)<>=911rY5ZpBz*+ME)W@f4PNRr*sz5qCQQjfT(|#+#OIIEnh$^v zxN#sG2byy2z!YGK9hiaxQ*dAk4om^)F#Vr31=LgYOB8I3xMAON!q_^7wX^2iT9JYd3sBpj&2 zflW9tj0da3!4i4kCmc9S2TtLEXZ(M4dq7)OmHLceXIaelAMD=#!;S_1)5j18?@CGnpsYuM!F_$bRt2?M;OOaWJ8} z|1{Xg$WCr^6S`iVJbz{v$dz~uK8H1G#U*kyp|c5$-gsXF+bIQsnNmK`FJDS82t$oh zN$&#I51ZyZL*w)%P{$~hQ0{U&OANpGPW_VZcCZucP7SMQ9=^s4KkCn;fo+pMeS?|* zJ$z09B!!`nYJ&H_gPp{`8oU25c?TBiA;A6#u0Dm)Fz$7}=eJ~d?JU>CuJ1`x%L3AZ z>&e6Oz`T+|^Jvq{N{*uV`2-UN;tDsJd%w!}L}TETcb10`#KXexlKXvNw0d*w(g_dK zVk8}391@Ax9=XPstVpRclZaULCRW1ktY>?=;v_Wb%_kKbtAA9nz;6QE}JGP0X^#?wMuWIznUc?@Nv5PHq&TNXaqo;bt1YK!XjJwC-WMt*Yvq^o0^*yv|fQl?%&qPsxl7=DlXM*ab^c6zO{L`nwpqX zOcI?HP0|#Yj;POwt*x6U?{MI$txy@e>V!x3%=y2C7P38yBj5)V4|+KHdBTIw)k_D}NLX}QvC z!9t{<{-;$w|IG}=Uyschu5pP&TG*Di7_5!*aD&I{wXZ*b%%4KSW3LZ%Jk`#==%AP) zdm&vh<3w~ceSerLig4PqI>ag7kGED|S?Af5ev>Bkg1^=-&>$j#qz!{EH!8c3 zd#<&9aAwv=5!NC$C-&S$>v5DbwxFNz!S(+bAKaPN0>CmfhLR**aDE&@Oxye)aAgjC zsE-v>=HpPzzpR`hQ~CZ`Z#1D4(#WNj!QPhXA)Rmt%un#}9tB)vZ44>LU)ADiIk{3zI#Gr@!rmQ{5G z++u&z){Hr15o;Ha1r37DR)?}$UTP4_YE892fa6nHpcQ@7{E`%VKCjQ7ZRqyh1yU%m zp@Wn;d%}?879yJ8t@K%Z;y;NG!!c!=3SEHmlZQiPRdSNFnIZb$D-T zv|roAAnLeJL2ImIK$H)2m2!uCC%zGCNjxtB&Jco z1FGYbJ8w=vXTX+5;Yfqwa+Mf(1FM{K=fW;frhQy}!LIP*v6P-SbF9U_!_6Lo+_LQ% zI~sy(+zRy&?YLN7O5U{a0yZay!G@C(=D4vo(BJ_oQa9#Fg=P=1L@)BMROB6s@(~rL zSbre2Q#`!GjGrwaxjqZ_S(#L`8&^fqUI=duZ$Ux9dUID*vuO03B+PuQ zGBa&KZw0U?mGQ6F@W1*u4OvY0ye#-|%%8eF%&IR;JDXPwt5-PT^e~qA@>ECSVKZW0 zR97Somn3Cks6F20K`o~6x^0F_c&uiQvD9sz<#vU39l%1Yv$oYC=TYatCrUb1e~a8V-y8qe+K z(15|Hf}%L6QevY7Qd(&W{=!s62aFk9&-aDUD=XV;=MKR~tH_ zmZI;70lHB>cc$k0YB0Dy)Dnp%y?IB3CP=JOC7;o%w`?{?8!j+xeNjv!5c9v%g#IfqB*m96^{kE%T%ddryNCUj^x0+g-%b z0v5U=#i=ICdbZ5s2qskVU^kRdgyKZEuhhq`II>j!iU?p~G|tlM0$>a_{n2XBtiwzg^JMma;s9<^ZYdlMkF!6%2fixlVT%M}= zLifzc%?g0txuGqyj$btE1bIkv2_X;eyXPonr)uRMSzulVZ}FrSqTE6CbYsw~$q~qP zYqAGbt3+tCU504}$r=w+gzO@YH+j%*wsj2_5rO=CO2E6>y%|0SO##lsSQQqjf?^oC z*BeXx%STX`-XPtEq6htszQ=E|pK4#-95Hw@C)RLIs3;h1f(g*E3YGBXO?|IDh&tMi;_*tys9(}xAt(kms+Q--WgjBl>jR5s2#5p ztmKR(v=PB*2xvJgPPgnrU1H^9nleUlXmjk_#SX7ktk9F%iuBf2zJ$mMC)T?w4_SKMPSwJqg;^dNPT?Ou z4|ZkGSRu4S!kPpy;<_XUdW9reZaA<7Jc)ci{yNUBc6@9q$DyZFO z3#X!w1fFe^PlO2b5SLH&A4@rxd9fv9n=uosaj;yJ2N{o%7nRG3=eSf>e%M$_Fthd4 zQ<_KDeO0s@DvpGsU~a5Zxy4sxDTfq=LC{9y&BiuOGHAFruPvb+1D}XPTWHr}Is!rgcv{YUmy%pzP)pAL(<8UiTR9 zc;4~xCi(>!I|2UW#jb~@M>|WyWZnnLV+fP8ja24NiQR&dK2y|1(}EjXE_0)ut6=&tmRr2{@L#iu<$3$#9`%JtHDa z)S?&$*Gqp;tZ23`Wxe8@70}p>YRq@)hTtbPLLM zcK5vty6nU>eEK0Cd&AZ2qw4P-l|%0x#soAezt<&T%3Mb})}aPb%7#h0@G9T_IqFd* zmM0Na$B~>0NKVyIn^nFP2udVj64Ady-zoeYlepybJQ<$Ctb7m^4szoN1vl6@XLy{f274%G8-sW??G-A$|> zc;ODy3nx3Fvo^IhO2T0KxMeWn$W?1hy@&!G!&mv>LXMSu@y{0{BE{pvM0U?yl2XnN zon-Xo#*d*57~~ob2jx>hpE5VMuqa4A>%N6!2?p&-nqo(RcATUA*pbY`HzjYE-EM5B zDqN&3Ywx<+r(7K_Ny~Jf|1p~|!G`$|4xXm?#kJ6=W@&eF+MX>`NXl@)CXwYXF#W;` zdW7>?EO&THxgqDHAuhoxu5QP1lo;5PPM7s{B);4L0{M^|y4sC|wa7SymFR|*InbiQ z*O4$&>ib#89g`>AmAredK`nyOo-RTvtZC#3Oe|zpo4V>_+-JzE7tedb2Iuc_bSJ-O zY4s1_@H!NfqdaRgcylWvTPT(!W|7lZUCLi#TC3_I62ob57a)*{mrJU%Atye}NIEcb zds>)syfh(N7g9zRh;hQ~ywkLHhjN``N0}~`ww8oRa%wbF`D2QASlu1dI@LTBjSxRq z6GK#UOK{NWEd642nnL3);4t`1_l$5iqz2NQ+y6j^B&eM4LTH12;<Macp8!x<|(Lfz8o{>{xa6l}gsKG|Y` zN`Wd2E0kk7m?!P@hPhxY!iUQ-^YE3_he3IY5SwY8+F7ll%mEe*?fh+-(WG-ZCB_It z_nc{ADhHF1epj`;&?@Si%9gw>ktdymLR5AE$^3=j6XXrvncaq&PdrEO;KoqP!`d?} zu_wv#fc^2o-MwP zX>DM2HQwAjGCj*5=cd}Aub#3vkPwe%{GHpdf71&1%M^*fkTSBji>UnVT?AqAq#nHOD|f8$j2;!-9H{%d0Ft%BSb`9~t!+u&cHF zVZ)Tj$*vx0l9y&di7R+rZ)Q=Hj)v`)7X{fbe4LP^UFB+P5+)QqWZ!gTz)ykbRw7S) zTJrVQ6uQhjnT6^LwNp%OL}*|`N4V_5PPC>;*3gkBBk^?08?9^`N)iv%_!8Am6$suW zOUVPbemvCe>8s{c4Vo=|m0N@?`H$2kS9nv%8PL5#qCZY#Nt@^&@ge5L#?u}NNa6DV zE^)LPzFvhMF%B=YEPU-Fv06f1lWiP{uh=oz;bl&@e7Z%y_xZ?Uc#7?TO1Q(naW zr!EkSsYQA4G6#55k>=(+cFJgT0$0)=c;%}%3j|&(o8_-ftRN7Y2lSialM|7LqYlX@ z0t$`zcV7I)xz~4Pi-1nWp?9(0sa1Oh<|iY=-y||EOfmn}wjcGjAB71<01BoW`YuF( zEiV_h3ATsw?IxJ-XMl@nC%m7yJMEOp223qaADr1K&R;ZA`KnLjf9!gS+b%%G0ndSl zsQ+S1z{&xN0dSO zU7Y^AGxR6lQ*?;(Z2sAe3H#*6fH?@qztS;>+yrndy$#RTR<_QAAn%^s>6(IN;}^E5 zneq8Bq}2Y$IQ|1>`Pif9HejfS-Oi0qbL@U)iT!wr5xi7zFAS};l!_oyQH&)Ml(dqw zdFFj7$7hTY*XPn}dg3OAO2$^@OW6E)VyD1Pik07O!2Tg)NsL!+2y>#PRKG&ZMHGG& zU(3;c808!{DzdOzd1U!G!gPvFoS9Yc7%!p3)eIQF*n{eG1g81YVx}R1dOxU5*WY!U z(HKDgf_J)?#O2|~v#Ro`Hu50*t$t>IG?5B>G|8MC6B}pUSr~sbZC;@7EoNiICJk{W zrfL&4&~&`~!vM}71$PcU`~ASz|6jZb2N+`N$iR(Y5T_v+u)f+94rnlPh#R9BA6!1* z$$wKI!~ig1LiorGp)?zSAJZ=Fh!DLbYMSK{uw_;}tnoPN{c&2{BwRwRbR^$G8Jm5} z?HksTfyI>`T+l(r#^MQPlU)EFh6Gcy?#5jLJJ_Ve?VxlQlZ!W0sYt4jp714FxF7XG zssPI_Al#3<-#;u&j#vnu&|M)0U993-6eqk?=_R~Tr3JMMux_;LBAEkl;Emk7z-jIc zFew&$xU_!-4~!7|p*YdNgIz3HFxVxcDYuO*9+p6!;XAQ|X%3xV+6DX!z(kmwh3p-S zgCP$XdmugsN^)Qd4s7hfN^-DX9(V-@?$&`*dEh!9Y!D81UI+WjgI)ANtl%IBa}a7e z2&f%|4G-e62T|vP*!sZ6*KTbg?mRT#E<*&kmulIlwdMU_C}L1C75I_ zjCpqNu@3K|(f1zefPLZMj{_e3AD06HDNxAK|16XJyFX`S1go4J2sF3}H0-bQ`B)52 zi-Z3o|99T85Z&`mAsbF%xir+=tl0AFtQ;`gCMFU+^jU#Ij&oCds<(nnkDxL5zg0i} z)f`oZ1yzPA#{a-ONL{Rxbq@Ub(rp1&6r#7m*L z{^JT1{wVkL2Y!aeNT8vC2Uxk&6z6%WI7a1$a&^XGZxDy=B*eoTX8PBAbr$*Fv_DA< zT4K@Pw1(g6Fz0O^Z7nHvXw3W>WEWWPrS1y%Mxq*a0k^iB+2N|#fgIeKay!plC3k_# z?#u==eeE;}H2psTfz>B&O*;v2uq{zKyx+Eergj(DTn$@^-e%tgP;Lf044D^N9oAmG z`~(0uHKktO=H6MCL47C&+bgNVrJ(7oyTEw6Zu3JWJc-YrORUB20!Y-}{afJs5CQwQ zk7_Mb_yq!=sN?=T?C0CFT;-ztOg(j1*e>wLdGZTK)`1=g{Oy8f=|CwjM z$JEaZ0w>_R>ED~#KO}0OK@wjk?e`G)jNzYC^}oVZrG);#fUK+V0lWM`m;9uM371<6 zd>|+NVUX>M+i4$fB4IA2?O`PAikz?Cq8Co{^*qlb#)rKy0G}y|*7)mG)H4#ir?HOE z9gT~XR?tE>AHimqdX7ypuqH4u<*-@RHMVs)7S+0^1s{v&^DNg4)`n3&JC2`Khq*Z* z-HJCnr0O$!|5z#FOmF;esoEz~@Yf`5Uy^=T)&H`pN$w

    I1eSTyJ`{3mED;WCkt9 zkEZ8(@0j5h1#`*RlPiKxdHsLvy$4tnTeb$;NN5ECiIPDOX_DleRkGxqB}r%j$vF#1 zlR-d{Bsn9JBr8!tq6En~=iH>`6*``oJMW%3=ggeBbKiY@A9Pn&?W)?f_DXxzUjO=A zb@!L%1FAc7i0MomDIE$ezA4q+-i^R%_MwBK@5&B9HdOVt{MlQM6ZXAxP)C06*(;!b z!tW5V>RB=il)nh>Kh!qamWG>Hi2i<&#RHp@jfi!*`v`9!o3DPkVfaE?S6P-N4}iBg zr^g+~%HP%P|4GdtpPz#Sz!8)pu=R@kIV(vXDofJ{B+iv|+Jfa8kP$*Ar?z_azIaU; zEo3k?Up|8F=X0|6rSun4FDfW=Jot*&#yKHejw9u)}<&n zbiP~ibbGYs77dDVGOA6`{6c?M=K34i6Cf|@2j!Q38I4ze8BnhmzYK<6T$XXp<}afJ zv~BpSjQSzhMItF8c{rG}4fy)zSk%a&9G!g3nu-NbIz%RW9RM&4k)`f|` zVBTNtz)uqW5eocf2Yw;ZU&rfLJMep?>jznXk|_PJ%6P$o81DbPe^e!ho>(v@AWOhc}3qwp5jA_KHpMF`-4$dUX=s0FO2L(r; zVLHxKVd8r?cM1pAfEbH0x5gF=c{?X=wU8-^JG?R{Q)7 zNq^=6eB%)yBK0%d>+ioGDzz}vg8q0vXdk&mp1$238xqr`xUE!yom&7cwp*&UQ;Hq# zUPuBEmZUpw!$TF74VJzn{Q@Umy`l>O zeBez7LIs>ykQo>R6B)*v216E|2?x@Qdj9JHHgV?bD8H8EM$fwkOtSyM*}r<(fAT<9 zCAvj_SXf!|$Ns6z+h2|l+gXbV9x1D@&t~OXTsdl@#>v!f7j$l7IV4n*ES_>5K0Y22 z(~qU}naic6*Qf3kC&>M$Q%e6Jc*Eb^C;4m%$vp37LRV6@6z;|bL^B+@;#%J1R?O0? z5B-HZ-lM6QFoyEF`MMdK%B0%{2UwP!pg$^=v}iEQ>sShU0Qy0?_j^X}vhv9zbeC(|u4)T>P7>%>ti<4QAVwNRA50fu8hg z>XUA($IRs4x6jmL%HgFlV>}w1tON1G76fHy>o6Ma+6c24@8qLrk^g3w(|0F%FlvB^HshPyh zz+wo4lX=Xk@D_l#{s&U0|3TX;$~@zl88$W2YuLumV$PtRa@oV zn~l!>B0m814)bidzPv}{jpQ_UVB>|@iT#7i0-}<1b`ipgQEMo(!kipNZGP-w_DHY? zwVJ-pbxsYV(B@%@XFN|&>qKZjQo6WmSwAxu%DBbT7?wP4TlFPST4bWS)nHxb@aK75 z12NKL4n?#i0`&a4u!w zm;E6qcmQll5&Z1*u@bNVjv$vNf{|FLDxZX>@int?V~?ehZna(q(If1Kvzhm|;}H@9 z1}ZldS_{on@Sl`3}N z_Nx`hafxVw<_g}8yj>6d)C4*~KPLL)sQ52PAe^jxLVq!{BYi{ObCAgm^v+`L?@8wd zz20+oQe;+FBY$q>V{VZ&83N+4#Pqik_Rnr##MB_jv2g$Cs#=Yyle)VTDrCih%0jA( zl;Mo+UN=1$hW11V+HzN5%(Imu5S2qj`Q|w&03YO6+cb;qTh2mcQPG`Mv26AEtQWzs zcbZ_(=p*=gs@um=;i|Z|V_s79SYFOE2VJw2!Mev09!dacOTeiv+_17yKzVuZ>vCEBbqQNe1UTOps1rk#$Ztto&Wb{E(gB#kUpe3PMF~G zpHZj+_YbPoqdh#}JC3G=!vRFM(-r=oTdUm>_ff0H=*B5!oZT!vd-t-PiN0{`NtlwUwkqCaw$R1XHjAqT71}5(g1Z{9y>7sRWVSstMqtmWDxc)jpX~3+ zyBsXb4o2=H?)eCw%uM>*cohrJNt@Tr`XheqO`=^}x1OE#SjM+XPoCI6lvv;$2%prQ$)>>Hb}G-tRN9wjep$3s z81DljLkDe~vQ3?^V7TU+(Y%}!am>#uW`f(!j7wNaSYc>*v(MaVELm-FOZJulO?%P0 z6zPEH&1#m_70lW3dOjyZw4>Cw2F1hRNwW?p748=h`m6rM*}z}WoqyRb!XvNuM8Ly zD2kQjbnKLPY!Kwtay!`~9G8dUR3mZxRBh-E2Pc%uua zGs)udzaOdNR|H49+;37BrrCa+ZsqpsLDcg$@|EuJT1v2A+#rDFRU3;@LMrRf%E;5y zq;G?_f-L4)NddK9UfopZDjzE3GH0nZFy9?vG&ZL}K>$E;!gw{wCr#WuH~Dt;*=mI3 ztOhlL90izl#4D@be(*O(lH8gNRWJNw&f1GIMR0%z5aNo04J8^e?Hv})eyAtuwLYcE z9_!B1{>&k9&FMK_UzwoX);Z|mw%nStM$DMRQjKV6sPQ&IUHUSsd4ev#XN`b3`a0@y z0;mMFmOBbS=%7*RRehwvRd9N53lZePT$CLxT~mP3U^A4kwCNl|-%gog*y2jr#Jhf1 zP$j=^OQS~XDuwy-=j8;@o)x&|SmgPv^Vbc&P}A9%c~gq_1xb=K-hpMKl@+cFuVV5W zU%#L%f(DgI#m|iQlh|Tdw>K&$p=spiZ321|O=n!Dk5ORt+Bc7#$PfE%#GN2_iB~xv z^DQC`MmBaH>wT_$G|Q!cz?H>bKL@QDOq>;4Pw$+*KOVfBQaG`qe=Tsg$qA>hRanQ> zMX6f|QU1ZRw56$So#((acL2p;rPAZIw+MipGtAjL+Wb{!nnobKI0u;#M?`xWQ(J+TJ8g!dJ&4e658Rsy8#De2+pqrBiQG^1D}#woLPVBa z13koo1+$x~N_5389RT=gO9_>b#r&N=cBdr zwL{6iq=|$S2T%I()&B4{Dd0g^|D5^5PZ-ia_Kgb|0%jV|5rs$YWVgRtfwEF53oxx^C=r= zY{rGMc0c`EbvqxYGNsXn_Z$?Opjvo9u1}@SYZvXs+qP3wEV^S{xBl#H8-V%7P ziON?``~tMCX7mEIZ5CB0^Xaa~t*z5a2}9a;dOo&%%!YO!K9Qhp?vm{*hnkhjR%)Y* zYp%r--el&%GuUe?9A|G6JtyNubO(!K(lpKEj7Hi~!vtn?3(U5#!V$L-qlR?JSnIEj z>_y2~THG;0nC;s1qz)gj5*?rz6CdyD)#~$YohE>45k0=%&PkzDH*EW=$?rcb8+bC& zcR&zFxKgOA1s6{xjbTZ$FH1bq37ni4C2MGW%~$Lpn`_ygp(7aHK3l)=iD0chB{i?w zI@UB}Bm@c}gnS@lajWtbrGRc5Hz}{Ud1xo)5ylM#f=r?i;yfQkaLSfBa|*cJV=JnC zp0M0H(%CMSg%o6JqA9bA6^UrV&8E-vjoE_N=d7il&C+eBUS|mwrtK*fWai2&O1ENe z+LQW5Qn%Gi3D+=tYM69tOxZ|3m~ypN#D>b1VrKU2l~mgjV`*96Iunyuo5hVl%*=bm zmZ0sFAfC8`WX}G%WYu8Vw;d^NOZ5#K0Twu9jV|+hs5|8l zLgLXGIbF1oW@3ttx=iUyJJw;78A1?b9$oJIbluneEY^63K3KN;bdHq%%*;i%O9rjy zEs%zd3PhRQt{@e=$8jcb!^E$LvZ@{yG;d9Wkp}7UgPIc8mqp2f8s%^o<$5>n78$X5 zX6}-(&asd~dvi6<<35}p+iR#4VB*3qDR^#FV|0Gfxq z05He@QB(HaAmzFmVs0rx=xiR6sa4Z+CX^!6A#hGu0PmtcjA4n}eB}eT>YPVwxq0rv z)3v**R3H$&d0K(tKMt?_rhNWh&GoD8q$I=vqQ4kHjbY=p_8#F(*@_r;<2l=dYQrMT zC>rO*Wrc(>ZZuMPSy%DpJ1D6}>s$u}@plB!{=FX1f7%1Py#M9+Uh=?y!vo43sLIVg zVBJBeOOUh%gUu9*;WP$t}T6|s9|1Kr^ z_a+hiS?yjZ%0m`nKU^%mV8(y7h+pROpI?O`WsYP48Q)9uA&ibpwy^)xvXy>yt;(Og zR_2PDoXp&?rkq_KQEHb6Nu^dj@X|SweCQ@Oi%=j_gZhrYXHS=)5D{%!bFj&f6KzGM9K zA6P5(N7hyS-nJ-t39-W^rLK(|qa%fb2G2$2aCrI>)vJTojJz8S+0H@ns;8Z|wnIO7 zx4rXvToow+mQj|#CKz4I)ok6ZTIRPJt}m5t4`BYL*51B#cCP+z$rH z{g0LbOo9lRb1I?gL)f9&T)|f!3B;iB=vE^b7SlNRRSl_GlsG|2xByO zJM+(arIem}DShor5+kF`bcH#xR4ut{ladF9or9=8`7EKDt6`EN#7aCF&fFX(YjQs_ z@(BQWIBL=V=_M}&Nd;5O?~t|8O80>nEbcG^otGYZSaEI}sxI~mFVz4Iu`44aDI9Y z%2P-!A`#ioMQjzVQ0`0b5oD3b>%1C@Bekt&hV&6}C} zgLl6dmxFZTgOsEr`TO>Xfej#{{zv|Sq)F%0>q!dD)xuHiE#5AXpPHyx1z~A|?$dF+ zBpF)5ZKsSK_3X0tSx-1E0$EL~-26##={H|l z*pub26viB>_4d_UZDqajoNgd)c^pk%ZyOdb$Xc8sDFXr)>HZ4J+JC;T$s-dNG&<9*x!TLzc6t+EsQuWYn+L6ZXVyuZSJpEom`1U` zK#<*FHWlvb>NPWREKN>+i>lR{G(sHxJ!o|VuhOA$BxkUR@43UR;udE9>wrDBuRaXp z6v0x!=TBN`VG5ep-PKW#e>$m?*;4B#l|dRCBm*k>oksNv$(sW2PuvEX23+?w0Wrng#&(4m}`=}{oCGi&>Z>AzTyE)N`zSNcm09DOZ%=oLIGm^MqW;W zJknx>Hpr1c8B?Zf!6^{qWk#&<4xQOKlkMrfG zpHe9dR4z{E=C`nc!CN~T91Q{1+_qiuVNy~Y9lP&%BkmfZ)Mz^Wr(E}*E4_b^m4A)x zUnq%Fv7SmJvM3KDc8Z+q9Q1FWgH*6j+Kw~?CTfq*L8NTSvjDSbr);8c7@mVvQ#N4J zF=v+EwTx9EXUd+aRsjsJXz`Ww9{c|001!mY2!u%t-K&n5dEVg$+8HAL{0Z>_398t? zR`%Xwwc}YZ*on(%#AV}=)*H|5_w6Z41_JQ*wq{%A^2z6BMnfpEL39{!janC*2rNyf zvz}B;?XG^VIv#1gp&{Ewp>B~_t(rt_ZCL@6=l$g_@j(tv+sG~Pl_UilgWGuJ$d0Ml z`d>X{(^rZs+K-8KzVeC`LY=!9n`<4Xubz@vmDdr>1rRjyj(Hv0%s~eQ`2b0J;^Ni? z$W&R0pXh!nrls*)v8r%xWesP-NR=IBW#Ji4OX++?j8bs1Oxo(tc^zCWABlO5KwNLkwi;xr#+~txd%$K19P7G6 zLA6$yF3)8u)_Ub`vWr7TKDf=iEB1mc6CU=BieYy4gia^pk0G5dAy;?fKh9Yud7)h& zYvYa1F3G-uK8s=}xtB+|6{8K%R_-il{_{cD>qFyEMYR1pmZYy=7BXifn_a^T=6 z)|qJyJIKZ5y_*c_y52#danu7&eH=Q(Gi^hx>5?<%3FCWl&z1cS(wXJr^V<7X(;Y+` zMM}dIVnp8rQqDnYpeK)Go@TW{q6wnJn(nSqlsAui$oDbrhlFu!X73uV-4uvOUGNb| z+=Xe+I$%FfP_M~L;!}pY`?2SygK4X_Kig|Ud*X_9Vv}96FUEW8cbP?Le;<0*ChLMs~Fc_)1)zA|* zCQEtwmKKn#KHiDw(sAZ=X>~=ow3VV^ESl?nu~Qr8XTxxZVJ0Z`V*2$SaKtG}U%4zM z#fI#B94{?RyChLtp*!WWTsUViw}kHvC*&)Mo|5`6kaiAR>oBxz$b@?QEUdCX4^(ma zQ)CVz0!XaiWVuj}kUywQ@Ong=LonP4MLBuU({|@;>pqwOf(`?LkUm`Tp%kZD{(X7l zS1kiC%>$q8A`h>QQ#$T5#m+YLWy@j)Q?rgDR)@5mkkQP)36OHGCN%E4+9W9sU6tf&eo6njWJ*iGxQ zItI@PTW=zq5(%7$_3&qG6AHoN}L$TI1@CccWw1xsYuJC3_+{GETH+l|2h4(-!N;tG-PF_azD}uA&4O#;Z zo@{h|PX-r^;0)~wWXBpHVS0Eprt(Ppp=|lH4r>1@O)|U)?KRHs;AHapGU+>YQnaml zq+}Wi@KN28ZE%Fc(cbcd-Z#P5R9f%%fZeyX4&jvU#!T%}rqdV}V=~mRYM|q()-S&j{H@SOX7N&=V%jBT>(EgST z{{8Wci<0UQH(V&Cw#oZ+4bsbCHDW5Gg-@2u;Z5y^6KHVZqKIp%-K*0u&{M)> zxwe+q#cLbPGL?y+Tw2FS^6j%$ywGpD6@_`43B6dmdR>gJh__g+=k#XA5@B?c1u-*2 ztSj04bK(6!VcaF1j~1I+_sxvuTWps@dw|4UwE?bfCr=AJl zr4an~xEwLSX6C%Le!4nRQ1Iw$!EAZC7#UkAgRfS@Rw&>vH%gvW?w;jaPt+Ru@D&3A zX{)xam1V~}>a~o4tl?}4En5yF4-Bps)eb%5Zr$aHdY`hWA65AIy0&=7*!_iO{7nTV zeOgBrzd`zpuQT=TN4^-A&Ci%TOC$Px_$mFX=<|<=$erBOSSXridQGxb;>HUQeQC@| zVvFRfxp1}VlR_HFgoPcB>+vjA#x$rJ%X<0^)1x9dT5V7lU5V&xXiedOhAr}8^Ps;8 zi)xs0WUd)?HGULIws$;~vXs^7#X4R-EDow@q9+ymR16Ixgs5|UR?|h+Cx&L|KvM`D zF&GOcRII6TsrFMbMgWKe$8DodhY!TDzL9O8R=X7}58iwzGH9AW=@aC0I#kcS9aDK) z78`I`2&&{Qx4U0&<5a92cI%27)Pu@L>$f_-#;0@ND7Rt z?s*@fwd@t5cVA3FNN@I)F@DY7N`LbN2w7-0{!xeRPi~L$%bcnH7js7-j3X2-dNFZ= zT$s9D{=`MY3s-}mCDR~}MC8;z?O5%2Z~2t&ffL|w=Kn_{ZU1$)<5bOp>zx~PHhY?% zRD}Lxs`HnrP0+>E=ILidxyS^;SQ8>w*sr`X_F*&(QdBDX_bTAO`HhU+tdIZIH=7cNq^`qC^DKd31Hc_Gka6nl%mL#>s)*3EZLPvi+nTxkdEi^aP zG^+mK>tOY%5)9PbTg#ZSM018Vpw>_;$yGT4V*^sc2i$7}+?TXTU&cv&nq$q!R|MnO zZ&fyF;1UaW^+ww{k@WS|Vx(H&GQ}Opn2-}!4@s#~YO{$FyDj*e&0rv#x@9!FBkQ)E zGT2~ZJ+PZ{8rK_V1{p3*;P-J-Jh4*KJqO)%8zYCbkfZ+V=no{2R5W(RTnRI%O-v8-60*?E$rSJ<}Gvj}2 zRPQ%}QMfQj1{!6sNPiPz8;JQ0iO(qPvz~)$y<_dmKN`$F<`}c{E>r*_eZbC(NFTAt zVD?F4%}ehAx*qlS%DK@>;sk@{fMWaC+3bJl8nkNtRPL|oZ^;)hjNi%_81PLjKERyd zFJ6>B^LLTlLO2fCk16?To?MOk1RL?dwla?rQBuzV+;Un|BS3j){ZG9T`nCI9QPY8w zEcDLEXB8?*=cn=+tdZ7wV_)>%xqJL{HUC3Ki}4zb`!Bs0=3&;(*px4fepe!`3BJ#<^1u87If{((o1LLBdvC7vUY>JFgG)ZRl!Z%uaH$h7?Lye4Z3JD? z0PvVD`QVZU7oPJaA6(Mlk`I2&A}?j(QWh>{;ZhcUMwKr0!KFU9)CZUP;Qy{Z0Be5* zFj1iZqLDgmzPqsji*hOj0n`k&e1J}gy9a2&9 zDoMf$vyYdfu+u4^82a1S0ul!MPiHqNW#%%X=B>I~BC3jDE?!nziFukE-7wA%-*!ob zYh3cxk2?c;8+Gr@_Ta&GVTv+|xl||W-59t8>Tao2dy7KLjqmj+n>n=ko9tSpG-v7Z zhHUUdm@JpX)QM3vm}RW7T1#R-Lo)b^%v$Q%f*O@ZYX_spj=qR$mZS`pLY9|``GD+- zw;_S?P1T9EhfYeq$3r@)F7fi)045F=g_L4s7w1bRp(2*_O)%K83vkPcLxRDK)^ zq~u5^n|Ehl{8CD>1ZmTAJd87+mfNXLJ7lsI#Z`JJiS_1%U-lcYzx>6C&-w`4X8U}| z#qXGZzs}FBwI3A>P&l9Y$~2>XE^<~I=-RywUa_R(LbaO)^O!u5^R@v`Mq;<-orA2k zHb!d^YVD<^NnNs(Zr1Y9;F;l}{RdGaO*uMpjZz%@`J(=P?{Boot44Z?6^5~BnvWYL z&g-O8lov8da`bm)5x3}(^JZqHgZ0|&F!`%D?O#B$q^Vm2#sZW+)4eTXQGvhC7}n*g z%ix%7&qfigO2wLh?SArN(meXe;*h^8PDeVg1lxS`iY|cmeynYjC~mKm9C0dYS_~&p z_fI-zS+kyD@NtjBwS6LL>Dv)$pA#wDeYlqjm|3*m_Y2ZfR6wpjZl62x+RaV$-lF%Px$M5aSCVoeF2M9|B{2(n!Q5YyWw_IvSdzt& znpQh^s`ZSGPPG4l!R}Y{7DqQQ%%L0SgMRx{J+D2hCYEVYQU_(TMCTvelpZ$&!7qEq z0NH2*Nw#*5>B8l_21BabUF?}&QFWsTb2MSSY~vh z0F0>H79w~*cPYgb(f!qHXrX?n%S&nXV^KKRf=beKq(zKz8Q@3hltzG9^n5Mf$IHo0 zDdB==RriI|ze<(5=YLj*M4H4*_}uN)cLs|3Sbec_(7U(5%CR7k4&E(_XhblCG#|X{ zB*-{G=vXnbeoVy*gauf?aeXMuKnzv`-&U=f0rHC;_Qos&gLco_Nb4Ch!!?Cl&i2ZS z-(@9%1K3adgIE4oDa&75F7y9|{c4y-n`>@Q-i5#akiQ==Q~tQOYvRkbV>K0x=zDQ( z=wJGzOpN1=qZQm_zz0)+x1?^<|Yde$)i{a!~pNct`g)pgL zGp(FS>f&tSR}YHWw+h(4d8qZTbM6SY(~Py(A#JK7K5k=e3>ZQ?G~YOa-ub^rUlydD zCi37w{(QT2W=G|fnI$Ml6CRMU%u{R;Tx6zDA9;7C{I2ipIHP|33BK2po0>E9@leXf zw^`c~L0K#DY!=!&26}{Fx=GAZa*Hg_LCV$jaNp^p`94y4EJJp~v`ThVlns@af+VeEFtzl>83v2q_)owPj={2F!w@aZLaBjG1j7e zO`9}C_e~MClW_(uI9IDvB>53*L=x>3tkVWoeXom9);;5S1I27j-_7Y5jni!aI!y=o8I@y}o30k8fr{ke&KgNJlk`ti}YDG21^J6d7y5 zgVL9I!psFn^PllL_&O65xi?mq4SHY8s6u%~6Besr+sX+3sL#-|Cku`~XkTz2PArRl z8G=<84ngkS!zQ)xqN;*wIyX6>dE{z9z0^K=C~ZG5YPTY%uF?_%cV4|W`;{wX1{=rX zIIAIJa_NAFRrmJn7hx4pN7PV6q2nYzzVuWvXKUVuY8=Q!5v3kuJG1IV+uq{D*%ycutQMvk==@|#_K0WoD=H56~M^qKuPhHwwaYpaNmyJVb zSKvjI&r@)1>xUIDBRz3g&Do5KO^-5U4EKudcS%^#X?TX)!5_J9{ibxt4;7>rKO-MQ z=2ZVs1Mf2{N*jqus&IL6flH};&sy618oNSve=^OZh-ocvY=;o2!L{K}y&2K%Z$d+> zc-I*5+7hhxD}$LFKNVum7f`z0-~eipa_wyflX$(!X)|Zqn6c2Ytc{A~(0i8%o82=Y zba6L`nlAEEDOT+2m zvL{%a$v9ebBQo941r}h=tMmK4aO}>Ok>OV=ttMR5NF95%j$ZOvo>9AM6B9W&;z_86 z*s^{h*v%qY&(Sh;w;`CMWmLgzdK7GuykGC6U*jpFy<96Wt;f@JfFo&To&1PWFw^U? zi1zfUvRB)-^Mk7QbnPMz$w~SB8FvkBAYt?JlMiQM{hx|GGc{KfUv4rR#VQ=WAXBlq z`=-yKijKh}2hSGdM6k%ekv-dq)dyV-w!*Bg`T$xap4}^oTiLOaoo=plMsa;N632T? z0xCWSVQ@(CtMWui3Wl*gxfc>YHJfSGIrADr?h2;1+GbZPI;i?qh z$P~f%i{K~Hy)445vSYf=;W$-6)4B~XL7S}A3B1}0@q~%_pboN*vXsVxQ`WvmwO<#9 zSk%m_t74y<5sx6z9IH(Rj|e3q2ohF5KS-uVmr6%L2MugJTeX;y6$nORB)k0m;44dYZF22^f~D0j;;4lsW*pa%JoI=dd%8H$IwzQRiwUE1W%vCwU)B3 zov~z(mw^kXc@-hs7}5iqabF4szc!3(4Ov6G1Q};M?{uit_m}JFgyiQw79f()gq-Gi zle*+f53W(i%fGD-QSuWvAG;?>exeA@hX)x{Y%RnM9m=c|Q6Uk1<||;F3?@-4v*ol^ zc)H=+-dqD)EZHmQevVhy-DGYOc|#BHsYrkgoKd{AWUJ0sQz=qnVb^~*Pwq(mUuTM3&3nH&H ze3QK!i#*iAt}H*vNqw~?g`8}T?A_?aQZaO>BW_`jJv?(=+x)&lDKl`rt&5{GOPOS{RC%nPO;G42U7chYmuH^70WW?30O^8qHA; z%cl38PesY59C@$QW6mRb|P90h~$Ji-|{D$uNrgg1! zesKzo%mc`20P(tBcNn#6ElsW@g)&BFIN#g}#f}Xw)&XY|EE?RTRao;BMh<+n5je2f(*ss2 zf+u(1>zN(M#ucg!&#OU`9{;*kPkHvZO=r0$q0v#QPdmKoW8e*KM01GXKpLqMBwDRUdgLUlD4W%098(P z6OFE<4avZ|R(Pa17NjW#rrZWQBVYxawX&XR644kTf?%UsG9Nbt7gRKmwwFoIShSVk zGX^lHF}Oa9Al!W3rmu0t403eK4&z*>)C-cS9SdXF*k#)ZPXapn`Sna(1nO|ubQKQT z=pz1+2>-`zy+rMxmasb$kDLhR+`<{lw8`sZ`}&=#?q>;lWeF&iyHs)0ndXPmT?5LZSKe%w z*SdK}aLU%GYGy?F)qf1#F-NZ0z6oO%bN2&VIlnoo#tF$(cx=F>|XscxqcH zL~m4#$rjniMECLgO*}nH{MF^@BsLtY{)H6>v4Df_Sv`q&)LU(S*6N+y1*|W09X|v4 zw>lc|;0z1EPpG%*|J=lc@xD;IN6;!09{9L2Aek|Mn6;g|a$etdDurN4o8pE3O8dgh zu?7og7WMdv?Zd%ZNy8j?icCXqLD8cm+AF%vqNXANAh)3B9x7(jpPALSO++j_VTxu} zN0VpStsQu${t-p?^pHX_y?e8!lNo>?$Gyfnu&IpAf>InYQ3&7>k-?4 zw4Hu(AKNxJJ?(>`ra|_J5Ou?-D#M4RUIdMnUdRI;!aJ4}ME$q*vYm%DPqV5iQQ-wH zaf3QK-yS$`k(WwHNDcy}$D1a&1KU~>VoxiEqT6`J#qVjkIg;lO#x!#qHFu(u`@P%?aTMVEmftR8RN5uV7CCF^JB5{|XKHr!`cN{pPlYw7P&5 zi$2pis1S$z{eGuIMLq4?x}Mi+<@SQ;na{;y_KKKKb?+8vPs(l8M(e~<5sIP-S)^P| zN@iB)qhZU5Ka-wgx#PpvkwS8B5(iI>yYex9#1-5i=OKdC1i}Wa%BRbTuZt##c73 zRCtKYbn-M?PMSmpt86|PV?Psj-3&N2p6C5vhWc{eL>lvn<@ixQ-f>QwpGwcGeaI&oZDhlQK|TuZk)ZX zlB*kD(RCuZT}wg5E$3;12Tdg&-Gr@hvfwR|oR)+*gbS1{lV%N~`S2$=awHzlAykil z73BcXxBsV(F=V~5yt|h93;=$LWEcSRz7epb%M&azCmC@HlqZ)5?c=v^Iu@b{iC+&6 zc!_njhuw5X;%@2;^vr3mE#hu_X4BB{7O5zfgGL%955YTG2F<&g3iu{LCbtyoG?9_7#Q6xC zH44+c-7>8Cy8oUQHrq+}WjJXjZP2l*yqnU+ZEsE1KYwN42WA)F}j_NWpm{*at!JlI4E$|@= zYvRql;=_uD#tYym&3?{lnVO_r(QuoualJ{$+Fi+;H+kb!-9!8ha`xya&NCEZ%Dt83Rdkca&VUj6}YMo&Z>z>0K8;QoPf=Zu{$-A-bTx4)qJfGMN&YEWRO)Vje$;6@uJe-hIS$@F-lktD!T$r&i8)x==JZS-KFd zJRlp7Q_6&#$TuN2lAquadUEPvDmKp+D$LRwGo#e_3v9})q>Ugp)x{4R?Zb#1kQWH-qLE&sOVnNJ4OK)zQC(J5gR!KGWUUjq6bRgJFe7m|mSVb?R7_cqk#A!T>ikgZmjN3}g_ z;zVkc+{S3q=)28tl|KG(-6su413_&?iM9DjfrX9!T6oaYnd)b6%Y#eF3mEJZpIym{ z#!uiNgOOt^Hu0rir$pYJ#uOkId;|EYb+ev4O_i(A+}pvV*Ef}-^zJ=~3YG8`B}4j< zGhgOs|H?4@K4QdQltQFn(qe*T8!MhJ(8{1I{L!vFo;8T3i1FK$x+ae1yq}L8JEIf; zXQ*=B_9V?$1?g|%dq8p`{R;P_d6~&(zXs8Yu{|*gdor|Mh>=F654C5KkWg%SqAI^{ zVSt>I(Qc_r8dO2*tiN4}aE;hy__s3p&J4m+qMK9Vm?dvBUT^V_Z|9i5YHz2Mesc!+{@ zA*tzEWhc&l0W-(U!vxN2rZZ6D!ug1K_JHZS)vqP+e%#?vd3)wspg5_bWw2m=ix*GX z_T!j4uhO);9d=kr{f5+-YvV+&k6im|5;bz8-7ByZZEW|fC;t;;e4I8-0I1NQ10w%1bH%jW#}VoY+1>O(o?Rj@$J zlfw1kP*zD|>uYMQl67olqjzW%`UvUHfWqdETO*CLCpK#RslMxFRilTHS>ol9Izbg& zE^#D92>FXgDj!;amkHlrs!97K<-Z;(B&I#N7n)1S4giMEn$#iT`zeWm#^9z}_vFEO&P@u)Vm|p2)^crZU?l>#0 z3`_2tdkU%AGZt}KE8C*;H|7%7R1HP<@+zE^h8t%bGIl(s;uID?~^Zs z+f_J_j#Ro#097Mvvn`peqQ9l4DN`%yQ=TP|(Bi$?>sYP@3fI|FLMEscJ8Ecn zMb--49;$P1Ntpyr+%{s1Rit0FLYL_)kb1{6@hBZAHIL0X*nO%mL@8)^^-R4c1u#~h zDm}YT-*IJFy|GYN556AK`+QDin4mu&LKS+$9Jw2D!+vUE7I~fBON1@Y0Ou+NOAovE zd@AB`-CZJ@$_Nv-JeIUjbZO={apJDj>ZVIlV0@%S5kexAJ_Yp?3ZZQeFVd}3 zMTyyUjjIHbPp_`(l~wd~S9S$cTFgG}GV z3uhz417475T2WO3)@}A2T%k^+*f zW3o;f+uYj6PVucx@di0r#UU0dcUz~)+fUfqidXeE4@@Ji8v8(=PS*!~e4i4CQuHIu zu|jcNfIx1xa4}h~%~N4XwJtaH_-1Y^s93LKK2b(OE1%#p9$74JtK_tP1Xohs$1gn@ z&m6{5XHw>bU?CcjBud2=jF^#+wap~eqaM_9%3Glv3!KIdX@GhT}Qt>SA-g)#Du=ZaIp+ zb`IDwm-o9WS#Kat3lNwgtX%Ex01 z_w?1qa5{;o)?<;cBe>Y9TYYiv{+dj~sHL#ywbHb$11=xiK3RIF6rHw6V*R9&B%vM3sw zU3}P?T02m&0|%8^luhkz9PNxv?SUrZE)J3^4u%e8y7LqD#Y*fG>&{|lS zMZ(6~0XQtd#!AJ>`Te*AClx#Ek1bv*j=$_d`at30T-4t zHL){n z#S;fpI~Iv202LpY8rztdvOF}kHghls$iTsRao*2Sa!Fj*l(nIjyirfHO?k{)iYuqq zpmQ&d=xw21i?-RiT!tp!4MIHXP@Zs&qm$eX;wBJBhw&X{EIv?C*8juaTSis+cHhE^ zs30QJ(nvSb4HBDfkPhkY?(PnyYtzy#E!~om($d`x?}g9v{GR`N-f_lw&-b%G;2661 zy|4Sa*P3gtx#op79%uKa*BuE{U90-n{go-mH&t^_U*JBGg)1M#`KHF~{<6Xg*k8?`Y=1cMvL2Q=9sV%g4Mv}uRB zljzei?U}nE%Z+1RA~UG0^BY}dovc8MqC(pz7;i51#%`?LDxXc@uwSqGcXiLVjo6~5k2+OsyX8>bs{ zv`jij9&W) z-=-$ZIuOC5v`$!FNjvx>BA+cJw0Y3!4R7B5o@nLQhYNdV@{A4I;>N3s8f#F3la=n^a_Q72R(+7@>Oiq!g!9wouu!$vt93wx4+=-bH+@JbaV#@(@0r*d3NrP6wS zie>VULB(&_p9l!X)5SIs9V*?^-8ra%^^7kUqw|62uljLAviqnF z+XX}NYmA@m#Y)Oi;`9`+er07?X;MRLk4K5qfGWPH-^!mzghxZ!%6ygiEW425YUnvq zZ!YCP=Ptr1@z+xfd00qt|4OCwgs%d!rG8euok0>V9qqsu=z0!m59&jD>9Vj*J!_dT zO=<;(od~4DS|{s3D%3d7>}A>L*Sl8w`*c1TNa@TXg8?oJ5q6W}uOBSkyeD384?FLh zini(^5^~F#%@6vk$zMrKv7vr%qDSlz>}BkA$}2+FSMw%7WvIoj{FwL5ZNTXsfoWRp z#?Se+1I7@(f)e&xwj9d0h*#dk;v(JbYWKbG1aMU!WN{c9wp~W}0a>??5IG?slGo7BLeHoOs|9f)LWP;r z4jU(3v@$*&6xwZ1JoUZaxlyCRNLA>-&uBRKrs)Mdjw^@~4PJMn^te z_V5`FCLRUx-L|pb9Cjcj&}oKFRwBM3;Js~oNpR?*rL~YP64gx`go@CmqN;i|DncNY z&Rw6A150~Xt3a{<-=q-K{OiEKrxZSz1UI9~ny$`&=J;foZ)$1^_3b7*1_2zJ-Nw(Z zuP>tdDCx9Ynq1FJ8xpNpEoQ5kjDD&Fw|G5x^7H$6v^X6s9Q7^CWtNpi?Z(9n^WN;< zUY(#$nu8b(b|O&hDN(O0)oPx_iaKb0xCf76l`d!m|L*Rt4K*eQht2Yo{KrlB_3=>5 z!&#YEO>HeSQaY90=5%v(d)xH%2^C!730EPE;$#|^Q_IbMBwQ!7-UjUTFtnn=8&sN%lMT#jKU_}{c-B4ye@&yqQ5t%JkK*`FAJ|E}ZyLS>Vt9718Nl7{9euKSjYvsE=d=`Ya z82*mr>}a(|-v{60_R?l&UI?9$asOhRoiJDE_mW0xfL$7=!?&y~pRs{&YYO?~GU=(j z9u156jJ%gies?z)NJvO?hC=Y6`{1F-%)V~9zuv*5*D6P}xf!5utwwq{uWOC4@+3#; zKOFYDXR0SOzdy-%z^&=Q1Oat_VRN!RP{jpt%U zf>)`~ecq13g0o?K4*Ry5+2#0;!NAu~Buj8tS63ic4rv*V{|w-NazE;pK#{&y}3HQ{atuZ zT;t(7tHnGqud`pu_REwCdCuCaNZ0K~86Lu3ZAQpx-8+*QcSqM}JNBg@RATQxAJmpg zy=`&WnVgnFgeOZ}<$;&7TOV9r5{vP#+E`n&n5!)*Dx!{jApMjx3~d< zR;%fARUrUF+5GfIB9YAFhwY4PY zRkp@q02?!v1_cK0SV{=!Y#!J4!=v$(3apmD*})4#GiZd0j;=P&RzH%@>)w5WvP*() zM3auJPr$-rZ}Vq>s9;u!YE?I?Ovo}(>-9D@32FT*8+jUw83y*SgtyE{Dl$=hP0g>! zK$QmTWr2pF!!Mp=fq=6#;MWDG>!f!i-}JXqjq zc_tMi;VBY;`dmiJXt1v@YhG=jQyuxGtE($f!*U$CjB(%nHglt73TwnjTckbnHR1b! zA1FP0?*6$ zYlf9j03)61I{b1w4{1)0;e6v?Sr#@uVvjU5Fb)=5y~t5^x0gGD@}<*EomOouY`WdM z$&Dd$WasJGql=4C9{_})9S>{k30YK1i6e$6G&=5KhfdMH*ImCnTAiPtPklZ=palo1 z{QdiPcmq?w=c{&6B3_ZSu$M^q(W3e|+x9o-d$_HjsQ9)+V`D&M$Dkw>tK5vL;{3t7 z@9lgqvdYfov=6G%HYjuEhd3^Ota$k$a~fE+q(ooaC7o1YV=emVw&LI0+uMKtX=Q3E zew70f0dIM>>PaW0AZy(vH(y)c&1MX(`=q3R~7e%Z;V`%gqM#+^f+vzx+I= z+M1eAii($d3Y^GuIXJX@+}x5(>5K-U7Lupbw6x96M^GsYsY;VuK|#U9ndD?_^Mplg zB5jo>IljHMa#*$%6f8<=>PGu56vW{{gx0Nlw~KuTE*T6{GcysL4Gu*;z3e$h0qQe( zWn~e{n8HOASw=rUKTus@-RWP}=DZ$9#}?~iS7*;X$f1VquPrF({RZEW@^h{~^cCQM zRskW^P@5n6=olEupM+vHTijjTjc(x8M(JBFVdfL7pQ<55_`4pFV{3ceIf$nT$|Fm! zPh2)z&Nu8#mF54ArTL74gvZHjG0UvLRq$MKt-t}M{)f-kgao~39n_f7&tdyOCD$Cy zQm*28j>V6Eqlb*krpvoFSei$ouC6{GA>TwXXFqHP!r3B4?jC@zbb>bmCf&3lli^?{ zR?aDMCG-Fe)f~bk(82C@UOY!(PKal%5xEOnvI%1CBFD-?o_MxAg0RN;tF8A-u`UPc z4BmOx6b`%f(QJ_nZkJfb{m~kDMt^L(?DKC9Lgb-=LMS`67IT5`*TR?SgtNZH$A3Q| zMTyiMBZ&?2sFfC{A+knxPzdC8ONvL_Rmz!%H@CEu-ts!y!kyfIiefS5qA!4oiAGJ` zPpiokjgJ0Eyj~r|qeBq(W~zGJiPql?GwxUYG^~bx4gdM`XKE_00vWg;$tze?vn?W8 zK0dzHozG=j&77XM-=jWuP%Sh%S=rZ@Z>;r(wjGVT%Rp0N-S8-CTUQJsjulyN>xYi z?>$}XSYFTm8A@U6@gUkarZyd+Y`Ht16SFEPEQGi6gNG8U$Zy%?%Vb2R?`>iqao`Sc*wdOM`@0+WunX{8fr*&U=d=QqC zlk1O@hjXlpK$)&FQ|27*8dWM*Vb~f{iMLk}?fZ9tIrW4RxivI44n2W>Y`NYpT57X-&6ITAup`o)4yzk}gE+jQBE-tm0 zYDFN$erjbu32@mOBXv6qZx44CPO`iJRaTX=V$OJ;T^d6wjO=2n?d@_~oUMNbYV^B0 z=;l?%;^&=r^5wf-t-pT#y4TOCsyYE%SF0+^VPpoGNng#BE@>OFEr_`!OVfRC!OT=$ z!N!3jfOP`bh9SY&8@WeK%^9f_k6l_-T%1THma ztn>E+wqkip;kO?Se%QQ1KvC-FAtZNJ~s@wN>YbP|3FS;OyY5K zbcO>YILu?9@Ud`?Z@zyI$nmWS@fF?$%MC7b4$n`*05nA<`uMZ+^J`;uG&O6VFUAxy z1n6S*?+Y6H*YKSpaVVQj3 zsxll>15_{eV1K@G^cxa_`_=IpAV(>Pf%B9F=+sJzpFYhL8bErwLdUX#Ur%-q{+@63 z;?rGiY2p0_2)sizL5hdj_C%o&Iwy-q>Wid(UO`D}@uHLEJfZX)D+WSVcQjjD+vMbA zUBfuKB_v^!KG4)f)$7%Mwg~Qago4*4!gx5zz7!sh>qIKMfyB#;8s6-z!8;Siu7OA` zgg@~p#BXFp&Xp)}rm@*x+{Ku^Oz>V=(Y?=&FTR}#k8HKylAjBY)KFL7@nFqECk=h` z`gJO|i|uN6M6EwY5UC%DcZ;O^=H_Ow3SSsZ#e4_{YYB#f5hlF=?vUSGWDjK@Ga^j! z$a2tDrMw9B2>C@yN?Oev{jsVi@)ED+Wk8yA5fE;$osg4uZ{ADi`JHOi+jgag z#?J7#op*ZK_Iy1%JL7eMYo~GT{QR~$8Zjv4bp4a|4enZMMg~D?F(Ddz;2SCQW-OS& zsf!RjNZ*?kM1z4BTa(%E3wzBKoxTs1yD2MU@*+zfXkwIFS&#y1`=Os>0Y`Q2bjv71>7$VVgnG2-2ix<^J+t*_{ z*zT2AEPwushoPUJ|cZXloPrv>W|EXg65vjUkSRi1=3q5-&WbHZ9Vh zHILiGAmQ&6!o4_H)UGm&C`49#>489AK78Zv29)7cagmel-kRo2q7BnqX;Bwszi zA=pKFGp~pW!LFzl@Ar@sDgEBi&```ij40$wUl|4qE6-zxC8+7Z1kvSPAGV z9i%AWDVJ&-t(li=+V5R9j@Fb}?dgmE zApbm(1wkYpMS7BzxEFRjZZuSvxsk)I)M%A_G8`fM*Q z46kry_rc|vj~RdjPj#9#lv4fB5imWfvOZez?tDuXurrz^800>qB$HEI@F-Pf)LB9- zUMKST{w~)MYj}lIhC0J$c!Xtkc2`epHae=7 z>puG_&??G_AZ2i{(7gT$o&}(hD$h*L+NG~lcH$f>oK9T&^wd;P;rs8J4fb0AGuheY zAv8eFqGDiz7UlWZ&QDKoYWjWa+jelc#;ce*CzTGg$~y{~MYB&{93m9L!@)(*)-C?)46HPv@NibsZHG^u3R;6~Ski;F9cbqUqWBq997 z>carLJ#XLe@I`*nzi=91p#dFITc0V;!5@9H(uJTAu4%e4l#;L?^HO@!(oaTwuquW* zL}(LZRd`5< zi^q1W=)Tp6pjWLV$<@xh`z+S93^EHwtsT&+U0QAd*o6pa|#JwTQU>n$WWM1amPSiy;Il1MFp~^Iwl&|MqnA$2Z z7_@3=M{w-KXmE}xT2TgM`_DzHWAR*d8|M6wM@rmnKmSlRtl?_;_3XI~BRBoHkeVD! z3mYvR!PXmrA4kgb_1|SJRhzRG7Zxn1o}V`Z6=UoLXsfHqCz!vi_Cy7p3^@3+i}9#& z$3M19M_PxDB@|PZr8kDJ>+OYm+hhDq9EMs!yxA*XEeVjYPm+8hsD^HRv?BcR_Sx2? z;3G+r)rABvd=OJ&&MkO{fLl^gF&co{m9i&*)GJLOo4j|p8uPFi3LWft<=$Sr33{Hp z3bZfy489B|MB_l>y}TmTX*mc*r;eR{E!7n(qA7c@Wy$sV!K2$ybyRL-ZqBSqU}n0@ z9?_5lnIL*|y%q?YeUZpLr%BE;q+8zn)X8tSpVPr-Cmj0_+H_NbB>IXd}A z{O585I&AoN7g4VZbh&|nfvRM}G-m_0PKxuK9T=0tp2|P78x|72n%g@&dwE~~qRWME zoiU_dJe|wwC+P@)x9pxo2M324f%h6Q7IbO$xSaOAmW0I5<-*(iU`q;y-ks>c+#h0E zh@#9Auke2aj6!{MWo4z942NHFcd>P`WD^L|epbBqu`gOe?flX#fKCefb|V*%79zR^ zTs4Lxq3i4GhSWA5lo4W9H-!}9)5%Y9023sI;$HSI&Ssk$f5oc0Qh%ZyM9M8)35B+| zB!i}*6RlBA*`7uzo{=5^is8qN+y!EqCwS4kW;pcf;Quq*9<9LrzQTmlAQI{I`&n z%(}X%z$FylNL&sSb5>ZLl*#ZHwLnV_rjDHa8=js=7$p=5$~l>ZX(r=&Su@a}Z?)Cc zml~WDx5=ky=;&7y!eR;&FG?u(pFA4_qlDkT2ML^YG6;`WqxiZb@)}p1938I<23X7{ z^;ujI@5EL-N_f1K(MH>`rt*C>DN4gR-%7PO?x{7>X2iwWf&ND>{2pT6(3$&jti&lU za&}g&vH7DI^sXI8G9108Y!?nqv^yjP8wZDWhGOmzit{4i3QT=|`Wo+oS<~?guS~33 zsIl8kC{cvUH$f%)38i>wN2iMy4Gm5Be$>QgPtTSbEULBX3cam%xS<~heQ$ANaSaYN z<)mkmz2is1;LUh5s2mHMn|Tb_s>P<=8@2#DFmRX(_5=hFh6{n?xaUZSTt0;{+18EhP z<8H9^_y07oU(peN2812V0ezvnLh^g9nAJx-Dd{M_#Z*oQ(=iF*EyEEAKB4FL$eZ>f zjeeO__83M|-0_W4q1?;eNE^bZU0q%Gl~i=oyk3V({0(c{WTeHM>cThuK}ZDGf*2%- z*jz>M9C)wUzxMZA_s3IGFKxJ=P;`^+CGA=D0xrd{LLXG{cucsL`w4)A_Y%o-Qv}I&$ zvP3=G&vb-;{7I~(p}c+P6-bYS`1ok&S(y*9&Ta_ma%_q25UvnWzkk6>Se-7Uo=6*X zc=qv97T88LF@Os;c)zA&PI^N#*d2irXRmy!OV^t(kwAC#oeNF0-)+gm!{eSC1`_kj z|9x#~!QMc~ZH*90ch;DRs5%+TN`%O9*ruNg;d3~`rmynWza~FD)6O9gWyO|quM?d0* zDB0U9#iMk;xaOvXy9}RAQL}!DsbS2B2c``qvZ-87bbY=M`t^3za@rPIg!8BB3DrYD zp_EDETr0{P+isr|8W|f~8OGgGNaubX%oiu+`=SY?eKFCqwV8#5{Z;djUq{LjTf4ib zP{SVkvW0yA%x$N4!5z!w^{9G~twdOY;pf^AwhybUQ$_ zn_UAAK6vyRf`ELJzXvdxTB*3aGgGntx`)k-&1&IvxeTaZbP?Tc+SuF=1e>{?aJ`1UW+NkbDmW+!p#ShR{`Qz4xPBaI@$2E zQ|+N-b4^_oY0r`M7}e3Ywmt-;ba_J-5U*Fc^y6)NLO|i%-Pu8~^6NUB6Jhqg6uj%Z zS!i~ZM0m$30JMRg*mZ`DV|;Y!#A4!1FjqT-X7u zbl&Ggd9=smRnr8`)SN9!@!hLd9?<1+T5v`e^pPI7F8uubN>SUsLh7S2LI|BiS3_^1 zLYF!iLt}!7v?ML62n&d-OE$t^!m){1&yB`#R)*=NW>8k#ISVh#N)@8MeEDMOsn9~f zpaUM>vHB~lMf6;U5-=-gHKdP9ZF3SeDGGXn_li$re`lu(1O2F!A~(zFaa?w5rR!Tl zf&GkB@4_>N0`$Q6@7@I`DQ56vf*2M~SY%g1i&;8Qw^1!CDngLZzzs#x(X6*MkmL{Z zr=X!ZHTg&fW~mJt>=Xow5yQqlvu%+ETn3i!Lc138Q<#jT#UIdL?Ah;5Gf=C05+}(o zG-te{?mzE|BDe@Z2Z9<=Xuv8ixAO?AFw;#xa+!8(X+go^l$8wuB@&7bM6+Xcgo~4N zjPyxJi%!Q2)zM3(_|j^tMP359Odg#fhrJ5RZMz8bh^KdudLnss$<-ceEAPfAK?iq?EHez+2!qG{YZ8$x zM_&`)J9w{~2}s&%SyT7g^pw)aDT5mQ6x5zj=qX6J!E;@i@25fJ0zw8?tFIN60AK4q zEgz`2+mPf|fO-D>`DoabzQ3YQ=B@|BSjdk^Ye!WdZ<`KLRWO#&cW)h>j5(TWJd9fY zv=sq3yt2G;fj?3#lZOOHyV?vVM=m3@(D~+B0i5f41IjF9%u&|=% zX!1PRc64i5efQ+sr=s6KP~5vcFDPN$OQV>`XFIFoxByE*L5|(wY&lx>@~{h@K5 zM6yCKF=jiUr>63MyVCrbsHA|W;P?w~XjoX4+6x0?V`I<@17W7P2RAA~=&!<_@(VMW zUpzMzGO0`-05-9q3DdKaNn0P9eX5 z5)5e~>2d+RXqeVn!W5`A*FM{4QtIk7RbYwc-nJBMtNEY&IWc=rCC#nvUq!s(snM~vT@m4(6;R?3 zh;P%=&k`NN;cxw))v!u(x4nccW)U5*6LXPS1V$1p29on*XDO#Z1G48%XuTPS3Urcwvf<_Rm>#V1Y#m>|FUQXn23VNj~Vk< z%kZb2;eYlP(q6lev@xD=q|MLaXl7Sc*-fxzZhC})-WceepbTztDTyzzTcFQ_`R-4* zms?gQCVl7jfCur)&E<3o@<@x&muLQ|&qlFHNEAOPS451Ynco7GERw|1RF%AD9E=Bp zPG91LmyESXuB%vVS1sYBJq~@SG5g>gtrY&KvOCClUk}f0(}V z+OBi?7vRuKCZex3gw!8iP#@)Je0S1^VY9!xc2FkPum%mJRLBudfZg$*J}|*sJ(GpG z70$4Z0I2#=`+e#Nw^$#zbB5_|j{ z0pl}CQBlzx3Sm}^q%(tm^%PBV3Fs->ucUL(YjW*wBSxE=n!s=mDE-eict3owUh7A9 zbn*#`Ud;g>E`;RhdBM+4+cCOA!ceQiw(jn3P~qR~L(poWwcI1SGgTJPPT&7L1)0XI z$o|NBU_oIo_+^($Ngrnj)Q~4Gb|*JD^xW-_!hU{V=|{R z5yO=f(zby?&Y&Cr-lMG%#j&`!m}ceak&xPGOs5oWtL8^33oymoA71mrtABz_3I>ID zlcYi7q2?;eYB4=nrLyLS>}^28s25g&tAT_nsLAbGi;0BXX)S|M+86Z3?H6( zmySu1hmI%KnuV^9P(NZ|p zSJ8a8%h(Ycz^bvlrF}?$U+y;~n-%==RotG1Q|v~SM_|dODD?fzcl(6X-QK5nyJ+-U zg)J=$ImN}s%tGFuox%vje5OEIfYkF#8WA`O^iO!9rFnXEJHG1-4=SV?iLM7Diz+{m`_3Ph;(}div2+6XyiI0$Yxm zH8Vg9RpT&zJa-V!Ydir7m;LRX=QXVQC>TZq90FQ!0~X1Q&@(eCEhUn`@mzNo|8DbuVO!PIBs8x2?)6FKA6JK5mILtLr*mULFWAV9^ zK-;N&Vhj*LMQ9<;hga+>7H#Uft&KnanTTD?+n>+7jqa|`FzGZ7kCL*xmHdy^(DZ!Y z;LdZ|#J@j&5w+##&~b>4ee!~zw>(IjnTyr+v1Ws(~BY>pQkAX zY_p-)-`KE93g~^rjb!Q((S??}K3u8 zgZcg=H`OJxv9YnBfMRnKkrzxNnJ_Lvxd2mgQU)N7@Hp058FO$YhP zyslWX8{5T!)%SZ|-a2TpZuI=RR#$Lp-}ip#>;O+xHkKk6jCF9uG7=K%42Q7w`+y$~ zu#ps7&Nrn8n=;{jU>8q@U2JF6|SJ-846Y=_w13+DF=flsZnKQ9KhC!Hp-k(bGE&2Ar!G>)0 z+cB9vS&>BEoX0-vC<^(LUSpicSQVHS9!I_)TV>`Oq_59QBgAV3#*+B-E<%f7BPtkL zPQIr``CKEiLkhCqV2F^d0<W;Fstr2>+tdY^cu3`2&n0umrQh{o6~%pmE4w)*;xOABA6M7kYusq(!rG z9+qolZ5Vnfah^?}%KXS;b52xO<=*e5ZdMg9+2h!KG?uV&Vcc zphLu+iqtSI?_5$$A;qXTrKNZh;R7%fM>9_qg>3RVY{!4`>NoS}Z_QJdPXQgM2Iklq zjkLJay7B2syjjoXs4)_|L4Ut#Px}%Wh{E@h@HUuEr&&s`#d?H6as31N5lEiy_7b3@ zqieKZUti1P2gSaBC$9<{3Ji}nus@}fK?h;NaXv}gC1FTSP0i5Nx--!aY()MaWZ54F zc20DSqP~F3GQ7!fOW?Oja&(=8$3i4YnZ>G^&#s6VrJ7~t(&O;GX?ZU*?ZN+lJ6@vQ79VzJXL9ZWZXvr-i(fU&Se zN+p10gEadc#dl932uS|l&%%6&0{zIthZkN~1KMip>f^NFfFJkok&)<>lpEj&_Bw2P z=>_+r6?m&Nj!#aGnhp+hKmF@l;of(L0RucBV=|#_#i~`ab8`x6qhPDPeWSX~vk0+D zW3^C|mi`IiCSNki7pG>Jp$cS%ny|*-MFU6k0KA%9@yg^W(8@PKek>DzmIn4tHsHvQ z^xo;LP*PL`o_hy-`_J6Ki6t*9>&;PPl|ZXLIXB0(T#xqeRUExRu7;+tT3~k}d)^-P z02id&DF?VsAeJvtXoOR}c=Xt@CUUzR1D{zp{ndXKzrfdR4DkZIAu#ZT+vcO09uK4} z@YF630ql7cBWQq9M*!rEsA`0NAJ1^6$I3?UQhYSOJ3br_&}ZDe6Vq1uWPy9KO87&5P&-ghk;pn@``9> z0U-F(L(GLOwy2u zMTCXr6%^KR);2bVhlcJVRG&S*4Q6^#OfINHPF1gTh=3lNEwzU3Kfp)LqbAan-@B8uwDlO z|88F!Xk-B|-zmp_{QSo!D(O(L>c_eV*A3JqAQ)=2xL<(*3a}yF0$cL&P1W~c4O$9{ z=wT@diIl{|!$V=Hb(dK~LrqbU+59Bz<7E!b1{CZAGBY!Q55nKy|Jlnozw7OKK7U|O z`?)sEk}?E}mhE9A9#>vo9(U6yuv`Ft_@B>5$!Te6JB=S6ui)J}wsQtbCX`c9K;Y3k z^eHAL=D3@hPOStC7=Xjn-X$Wm!QP=LPK!n=y-}!Vbe|R8;wsV``uhw;@l9Q7II3mEn zAVXzjWvy*&oMZWHVnWHoGw+~iZ)n)vQ4}(~47ShKT0@90!YC;{ z{rr$q_Ym0g?)2w~M!SR`uXpK$5!MxywjwPh6>&}vkBAr%94sm(#$o&CagMaHz79hz z3dln?6skeK(%?9b&JP4+YOnN|7zPfGtz`%XCgwnYKiEmR)AMu7-rtWqNm%|RA)%~( zeAg)?GLjdZ&{YvE)~S&1 zj*ZQgm18v&Y0?{OVeWQO#D6cL&zNMtSeBokUsAFMw0qFY46xi&UtbavDX1&U%dM|cK?QWNJv1P?@L721BvwF#S8aJmB%l;{1Wn!3rI1NRlt}{ z@H3~jRw;Wl*rc<&+tA1eNc-RsuUy*f#d+iWxL}#iW?l1JemX3x0vB{?S9jm7T2?H z-@mi7vN~Rc1?QlXy4~Npq)C%6Sn5qae_W-C4j3ioWuR$$W~ z5eT3Qs7gQ-+1lSvPffiw^lxBKlg=KUUR-?G$nauiW)8-z_qcI%bGtb_EWeeR9Hf;`8Pz#{1o^qtc<3?#Q0QK^VYF^Mw8OS-tt;k32PQ`?7*A`DrH!k|e z57ebf=Le5$ZEXQ=_UDiORNhC>QtzMVJol9PS~&cyN6_{BKEd1hHSQE$geM6EY-V|B zcTZ0Wc(rJ2YHHfp9D&l2u=x9to}Qef&c3|Gkw*hpR>=a*t3%yTt66XJ@`o zS_MNN@02<|A>m;N4)M(!X>svy#l^Vz`0EoIpIQF-pjP%MtQUC%6?l=8=R=_@;J%fL zzPx!pDfF)k3=R+T-FX5fb!5vP926KIA14yf8vcO{P%rNSl>~;di;y& z&p8y2e}4A+`vz|#)|8>o9|i{p-S2Nz%ch2Z{!Er63+hUNluc&rh?aE1w*{hdACpZQIh9iQ zlp5(}@y|*9%J`TbpCCZGk`fD`zyY%ob_5vM8^?*eXa6!qMMVX4a&~cXI8D%})f?@3 z&S+6R&(%Y=(V`bpe9+K`y`ACLPrNgdHb=lwyWG4yOIsP{Ex@CA-7kOiHT<|Bf;=^; zHk6TB@H)BDwml$tyvrR^XJ>W*J^1kG+8yofpsQwNVgfsaih|NfuvX^l=Lb-mo0WBa z=L+U&Ah_AbZKt^aToY9C-s#`XZccV~Rnqw>>FJX@XW$tF_ok|!^M zdCQBlc%P2~p)e?q+pB^5rU%seKSv{}si`1^Qif{Xy}NXg`9Zm-9iBi}<>cc#D4K!s z3I6w&ecwF02KMUFL>n6$uzeaQ^0N8kSD<|WamzqMLL!tuZgI=)^8@mqF90?OQu^of zz!7*_J@+tNGh+_Q!ts)cogGsO=Fi32bP2| znE$>33=rcnebT{*4d|5}y})$Ri^k)$k4yQ=IqE-)o0y#JM+1E}bIK6DaEr@{a3l>a zt!70H@)IQRfWeMG@g4vjU@IF0j8nl9|9y3manUJ|kUyO5=hUOm` z^w5(KgefZbWT)*5luukmMFkAY%MzYnBLD0A_(Ng5w}D6e*pQA-+}L;%&}@%pnjcZo zP;Zc4uRu5`g1`jh7yt_zb^xx zc!vG6BbnQ~yYVlXnHU*`g@q?^SH(xc;($uDLlqVl2AWNH1O!w)z~6;MMA)3sz4`vT z)&jtj^+VHnJzUQMA+gjDkoqrQyih{2=1c>p%w(jb(Dj6(!P$qBlj8s6Fa-#f%j;ju z*0=XJ2gjYWfP|E~IPNRc%PYRa!vkCTB_S*{L2X#|*}nnf@tGZ-6^$Cx08(^=%;R$0 zIsd^*9uVQY@84BgCcv#tS@eHg`gd@G9dy3~8=jJoKz_|YLXrcH`2Bsqj?OaB<$d}O3Nz3K(b>wkjc zBPonRp0S)sM!>6!Y@hs7SWl4|=i!+VX|X4p7pqy}dg#dfmD?92^{CV&bkHArTR9OzD1v1I8!f zKTq4cfBK^7Ve{b^`eTU}{^mHnPVRA+bZ1V3At5Ol{=0s2r7O(vMEfe=(A1QQo?eE` zLP_as<4qh)E7^ZnB6z?wzx=Rw()ve>H;{U)#18dwDFUEI0qj=HF&+ci)6l3pffv^Y zL<(|kes`cueEVOoB9A5jD54z#Cc zV4ep3a|5AhUCL)bYjxTef1M}SJp zANK6H;6?%U2kZx6B>}HH_=O30;M_bGR#HYr-Q1oK#S-HG_{?d7L5&(j;@TDC2ffe# zcxrc`C(Z*>4LB+_b9n~J6o>mbO5&|_uO>H&=l^lpnkT~0DG!^py zvG1E@CSY?M8ZnNf?CnoMWic}~1sH0cEY@aj>z4)Lj1`>fSt>>b`#; zZBC_-sZxmsNvISVqGU%&GRs&hWGo5E(4ep-%}9t8nRb$7ZlDOsJcZ2jJZvg@Ih+k_NJIgC7?147`UFpPIeDUI-!{!}& z4mQ2;tU8+P%4d~Y2 zf^(EoCAqn!qfa=jT(ROB^qS3~64!=y^6_O4?qu(kebB}&k6yL>_L_iM%k{+GH~GdL zU0rO&01Q%t(~ydkl?(7#2>y;EeHjKZi%RBy22zLw(kRNSjtQ7Li{#A9y_JZn8V_CX z+#!zBGcd3#J`TJ~t_9PTl$iK2nr-912^m}BqU_#QB!!=WQfZLK`}nLWy_fWm?me1A z1V^|k_#NLyu~gojg-7D9mRW^vGmp3J;{NnDVaw{B4AJE=KtyYWrW+udXn)=Vl$4@Lh>8xs%o!jX+>AY@p03l zH8b`FOZ7$F<2#;F8S~(#r<_|@Yh(!o1PhEP!>a_cQL^@tf4oXRs&cL`Fo!YVM419ULAGef|0e!y(lXETlxzq8o@2)8!3TafU6EC-M-+ zQ=;|L(3lM&i?OmlLcHP>wUT*Xou2NJYuN9)jrB5u&+3?+h9BXg04ST9SuYcb`-pW< zJt{t!`z7hx5CXity|Z_)2Oc&xZ5I<~(}qZsw@$7`1!1RHd6CpJu*VXlJ@96??@7dX2u{Qr@Zy=f`W%9Lc!ewAipOk`XHE>mlqMahMeUlCVBDCb)W0% z5eF_e-SsKchW?>D+8`4?>3f^artc@77-z@M;gs#iPPMPa`K%3(yExGWLK^3G%lx8wWIp{ z25*<^)6EYmvx5X;UFeqZew68bMdiqz*ocW;-}-V{rh(RX0vM02wHVXE<+P$su)65r zkgT|B@(X2Vlpy=b)a9b#&C476>Zq+F!v%2b$Khavy23)rsHMB*>o7YDWc|o&K+Z8@ z43=9G2dCgnM06-eOV5hZS|zfq)vBSjorv0_DpkjglkHh<{d(FvkeM!d$(y+5{K zpzTZ)ErlOl(ofHY&GZ%fRz%-56F+vVr*NAjfZ-q?YrPNQ-koc zJ@T8YHlz^z93~aRycu+re)UxHV75PXvaE->E$wX-Pj}krxM0Gt*Mn3GfFERD&msM4 z)IQbKl0y?`dzyOl^KPY1{_0^K{asRat;czEQZT{RD^DCnmPABG(l1-~KzxDwwiL|Rqu&DZj7&-JWy4;pd`(UVI-sW)K;M9ow&K79kxI74 zhK9_5S#H0xqj9X{ed%ypj(c}|yz zc7WAY29Q4L`g5+6LzR{&qqx7*FZl|Hp&<{O+)?u!MpM0AW$-%F8z?#i>lU;gU%q~A zT$_ya(ANx5`Ek{bRN&z|>>YCI9SMLxpZliZ9tN-1(%1?01SeGQeU z!38K!sw`li@z7NUy&1T5-Ow~Z7i#M2#6XWbtOr^=-1%e-f3&)1neKgdKW=AQx|)Na z^Y#KYw)dJZb=-0~0Ua|~iX1r5nb@B#GQ9tb;Jsv6Y1^Sw}{IQY9i+o9mhUsz8D|Ds8Usm z_Zrb%yY4@KzEc(pzo1!L__Nf^n4+lypeVVgALwK>vo*o!fc?OB0f7^DDgnM~NXT28 z8XJd^&97cfXenPA7#IBVWj%0VzMkzuLMmOcTiARaJm7M+LzUdydufCl1}5mh_w2&V zLT%ToeSK?UBuZ_sd{`(jGwPIVxp_kG(p9V(?5&Zn_yer`t2U-KHbX?e5IT4tF}m{v zcOY=3R`7utL$|At$Yb9R2*B!!!3TIxxsH$IWVhuWxv~<;RBNuP#4i_Hka^yLn(6g^92GS~vga%(%4|mI;JyVpyL0}q|mZVl+5#CX?6k8Kz<%c@&*6a+wY-3Ym5=T`0 zW)O2+QBg!hBzvsNjp1D72Xirhi(BkB=S^dC)7j(81|~oF{;Xzgs`wdUbA{V&>N_T*j(#5P40aVNL$pw60yHe^g+xSb|9qOCe;!gI?h=PM zqX#0%$CVB(x`GnJ%q%iV0S82(%hJ*!`D>&6E1-woSE;12j>d_w5BvGn<*)A|Ofv0nI?e0_K$pw}737UXi)x z@zbYB$)IAD_r4)D)6MP~0fYR+&7pj}dzU`JQt|B$xvgmo%a*wliKq&-Ra6R*WS{w= zrQSdD>2;NL4k3)89u!C;g)POKL|?j=lQZW-8pYp#uGEHYCCtx(Y{a;*=y3t;PB1bixz0e=y9WaqYcWY|#l+Vd{ z*BTV9i0O@Ql2Q0HecJvOXzf4XA}cR(U)=lm#(UT0KSA|_5K@you0n4&(s%yYF`^w& zJp!4y>st;p9o@|Lq|U5c{_EE!#gF_ucI;W_SuJ7u4-Vy0jkaG{aDmRummIlmM;{h- zpL9O90XTx(*z~thKV@AK=4Y1_RaC44OB~z>r62moY6&!8I*Hat_4KGO zeK3HF@!+gaKT0Zv`G%TxBRa3K(a~gw9~dXeP(iAxtgI}(cIV){*#XHf*9KfvlsX3+ zn@wxMtBednUVW6hDH52q^?SK|04GotnCD2`xPEX7KK~~M_=CO1kckLN8cE62SFbY6 zY{nGtS6Mj29Rts54R!nn^z`MR+0S>mEeN6$q1l<4W$!OwlPY7(bElPR`-M zAM-e8t*C7&dd{FhH%qC4D0fZqx*iBJXvV@3UBBwq=UtS;j{Wy`eaf5JL@mBP2>uA% z#`LpW@X7vPbQMc={^^vNNf3nP%=c;cwbdF{J@B!r`|*Si!Q539@DqxBh{yoT7+n8r zZwElA0nh=R(j8Y<($#qClfrI>`NgW0D-r(m^VoZ2XD%^`U4FU9IFK>~ioqeMOzpjV#C^tJaG1H#5AES1ptJ)bf& zX&5L#(1Pk9CMIT&5Oys}bc`%u3OT1Z3!Yq2Uc1{89=7upKYIikuAQoDBjX>VOP zd3)AM0B^Qxqr{pJfIh}1CeH!_^imEyAipHn0-Qss1--uzQ-^>0w;Js_|q&+Mb!QH^QB0W@ZKyT35GoA{H{Hb41J&UzTV8 zH2djnl(2h|Z!Dww^zmb#T)m0<&3Cd;OL^*Hx+uknZV}_m&omvSbX2vfu$&5P>2-CGy68;Zv!P~n!Z+_sfBWinmCKC1fz0jy#3_VJ`S@~)%_fI)Leu!QC^9e*8RetjOH_FI*aM(Y7`~XLb zA-~;XVp`_D4<1~iOgdTwuE@c<`u9?LMfFJWNlDibkK0~toE=6l5_+jyw?3% zg@6&V{q$52BAgCBf;|FbxVST4?*M4S9*Zq^7+DK6o`b{h!2=~=RORKZ)?!hTdIzz+ zU*Ha>f!WWDhuV7WaHj~@8cIr+w5aZ@z`eA!0ob{ew#SXGneT`Qgx$JiYH`fl#WCZX z7tf3RpZ;Thh8duO*x1;5Z6G)0sEdm|7VgF8{`;iZ`AMbMFn9#nevYMi29Xsdn>vZ% z7k1FUx2pU8`H5y=OWem9nVD6Tku<%BlsGkp@UVpNCW#qWs#H{5jOOmVp&=D%wke_1fbA1PJOB?xr872cm`Ghp=OQt4 zNnn;nRt`o}Sjp0LraAK3M`4!yMD zmel-o;;r$_<>7LPNNjWHts~&Yo;pi{6xZl?7EKY~r4P25F;Lvp9)~Yi7{-;vHOb4BI43$&~#{Q_fme zw4Pb0QGsuL1nI1xK-Fh0U%p)CMEGG=jt-R3=gu`09>~ef-6t#zmuCrO8*(*d}^u>Lk_;GX~PD2N*};uZ2yF2P#ZlpVmphjUpE0aJyU zN>^FLm$tKBY3;QGbtMxVFLn-D+0!s8C`AYy~O!Zu?5 zD2y@8X~F~f3Cgw)20?TyXFghh^60^9b`dhFL5!U1490#z!b0Yps8%t)c=2smnA~|o zGqVl|TnQ0BYYtjRkgbxc1ccqD#DX7dB8;`QwD#=TQxuM1LWp=4x6uWC$iH!OxzZVG z^*L#S*oj^wQuncO);xAgq9p4`>$Pj0F=xL^9#gtBjy0$1nE=;1NV-O=yvjNN{O-5_ z%nB*8$J6`9MFP{#c4$H?o&w{ORT6Wxvqr0>6Lb z3BcidUdj{p*(xMCqkNjk$TA^|_%VP5ZM)xmfrbX(Em`pbx-v(btcP1~w8L-D zYEtbL+S6^ElG4p+K5|~n9S8-lxCgr=^1#_YDe8e`o=OJ z{@VH_HYTPQp#h

    Q;sK1&eD0`^{_|?CkLv*F=-$XwR+5648Ai9(C(v%k$Py4v(sE zPeQHJx(}afLbmtJ|If2yiso$_w1>_db?c^ZAz|SXi};8!7Q&Gu;PX73I$B#tTD~O^ z!?IzTdnjcaw+5)41>+j%n}G}k3B!6D^3<3ME2QaAl%tfQpDK;%>RBMFP+^!DciUcw zRtEEhn0Klz{O%>TepQXar4`GUgZ9Jc=m=;4kgC|fdw0y6H(5FR9B;JL9W}l%a9(!U z!mrW!_7c&mq?dP+{1Cz;oyr;SjGl<@%%O;6J7?YsjG6RSPcx*GWo8!4?&qiUuCfuH zY|jnc%KY-MdYTE{;amLii618Q+wr@8>}mWQ*T#Ogm73Mc@M@Ov1~NzUj>bC_5L?n! zsN9^0#qaIwgg`rh4BZl*Ybby8Xu`$XFJv-#ob=4sH!C++jg)m~B?t5!3&(k;Gi=c} zKeNr(Cu$_?HbS!xizzC2NUF0>fGtmC>Xjx5C=RVt)+8j&Iu+-l6Y1zm3?~81cbWKUD z{$K~MKdrVoVE=)yU=&y8XOv`S8L$`T|JoDpxabEr>aW$}9qqd6O1(5CXXoxW64}nl zxBNXRZDaM`lOlpqPQ{FO^e9)NOtYOeDTg=y9$24cU)f(oeU^AFN0qYOEpKQxVZ#Dt zD*A#H4OY~V!)@n8YiM9mC=4-0_wQeG+H#faVV9_i{o>-+CY@5HYBtoU%dXp30X7zD)Zwih0qu(9j z+@B*BNxiUbV(o`pwDP@QWgE%XoSJyX|NPE|(cxqk;CxQ-ILeb60&%Y>_^HT~Y@-8P zcVS`msEJa2=RrqX9f4Bp@tY3OEhyydsvP1gSxqSduAFzC3v>^PlZFFKDjoOieH|t8 z3ubqudzEbSSI6@&p#S}W?*2z}CI{YU==6YujCsL~8{ot5w)2kVm>$uH)T~X~R%9!p zo1c$20?Y>>%%ZZa%uKiLEI|bR8?(!Hyl6>+H|Jiru?hQfK$=n$M&y?q2FQVoYA7GbwlLTYx5 zE7yZy@neCL&3$bY@5_8!UMD_aS)97=KYPA6R|Rky9LqmbFBvHkb-}B9qEfI3_ah>8 zU>>446dpu<3AXCjQmQeZkO3h_u1sP{QIP}bEW_cDFv-KjFHi?fSJ$@%37A9qKn**T zGHj-?v9T!K$8PDLINTDG5y!2p-f4}I(k8_y^3`e1m@x~Lj6+_@)142hO;1NBvMb#W zEeJVAknS!^v5}mT50os^fu!eE3#Qn(S9b(TNnSBA`BA~KcbbNjA7A%p7qyw}?^h!n zArOFEI8S~P@Qz4M)=AlElQcm!un%0Ot)|wP)T;#MFChNaa@IK)P9Pu1X+*e331M0i ziC`K|r~KfXz(~i+jM|H6`a3XVjK(EWtH}7!q0gZV42~FS1}kTO9*+p)Q5jAS;!K>7 zW}`+OJ+WQNakS`R#+{YQs)1aDGY}%Z~vJ z596t^dcOJTO4P?&7=(ybvF2C1O_DQZ!nQ`-4txjnrQ2-!pa*r+h=c~3i|df%j;&i8 zq0c-KTKHeSjzqGg#slp?;SF~IW_Wr|v@lQ|5-}*5W|_(gAegG9a2fr;ew)uG_(bUF z2_LFL&B0-OOkg+tgWyr9u=@XPfoi>jowMUhF@R)Noh*tCzGH{UKoa4@Ka zY?R*NM(EdC7&ybBOY!JYB_3r*ajbbT5KcIar1=<|{_Q#MmJaCljaI7!)SJ^44hD(r zM{l8Lgo+{U+VIa->m`?8a>Z93zz9}BK_8UbP_(Oe97;Ao>bqcR8HkdMLbqm|dCqIi zz<>#1nYy+H8R zs9vD}K=oCZ<@0tqZ+PC!518L_ea{H+pkIE_a)BDQKWy_XfkG|1|iCqEkYt57eE^FpI zk1r(P>C`H(KL~X-=KI7jwhYTdNWe|q8nXoDgFHjyIFV(|%rF&^DVn0}7b<#YpJ9Gc49iI%s zKrhx%0b0qHUl=s;%YBLry2b_LA=vQRwBD&;{=>Fai7Ti`hPJlp;Bv;fOKN!UHb928bm`LK zKv)9`=qB!UI)r8(TRu{kU3%4=)yVQz%eBiX9=RmIBr`uX(>xRIqJN^bs|yZ+|=|1VPhzZAG@y}#GDwzp#zaoxsM zL(aD$V9D^d28ljAoR{0{rRlKYuXT;p6sZ-5I^b1E2z6-8NAN1}TJY*9NS#MpL-A^! zIl9mZ%~>e7^S@XN%+gadYXK3{hO$$ePeV?hJS@Uw)??=Vo<|-o&fJ&m#J`DvrGNvvjuQ>e%>9t_uw?-k;{>NWj9qXiS{1%lpw1Mm zG=>5OVAJc@hM17Alkc#(26y!071Dp@1eSb1pnf|x+NXXJk+4NV6sI$E4YXoLrE;Ee5Ojz4xOPjL8de-}82MJ*nshB-9F!<88 zk1Kudeci0=gaZxc1U$)0Wn8vx+Xe*;jDxgNUU<1L{)tJoV`yzchQHWwr>b|#beNwJ z|J*$HGn}(m5YQHZcuK6jh5P|v%;VGXW5=}clRJVi>c|Eph3o>HE?JLMykeBoKo@}+ z&0gIn9ApKm5A&oCpgGfkP6`gql|C-mYkI2N6AHR{;l$iVI z2?O;F4GrX_;09IW`C$dp(%#NNS$*Z{$&kR}b~2}dD0Fi`!h>HTdYdbUY>|9h*@+n= zZh5$7GucU5#3z9?3kx#_2$CAl9pUe$$}T?A=&g@)GX~#u|Fx6Jao1fFj0t)!^cPUDhkG~5 zAoHt+3U=CD!|*{^MsP59%u@wFVfQO<{1!&EYdhnLYR^bf3K%bx7ZrtURNO2Kc$=D> z-l&A)(PH2bsCq1HaG!+Ll>#?K$J#X}DD-^pyK;gsPXaERsi~8AQ$cpA-H@ZArhxS! zqe4YN!5&G;=xF*YV*cP&05x;-t9b$|slmq;+Li$jAzG-#_&$7S1^ZMa?i%@^jVXyR z)re!x|3E$OsoH~HaL%?QXi`yl6uyAPH>~>*tGGj09AbfET7J1DsP#O(V|@O48t!h){`=xK0ht<23$+CnQRRKK3{SPJ ztZY0l6__iPw~2)ch4R}fSh%JSgp(A`7;a%>Ra z#Cgq*dv5(@4+DeJ*T%rE-F^WE8W^xvdZ$kMv!bgejr8*x@hk}5$jZ(k$72pU%F4lP zae##9F>IXBt~R!9{^@U0kD3$fy5H-7#9!-rB?E)ULGg9eIsK4VuLzmi`BX)AbaWTi zIUch*X%k~;A@4n%DhoN6ek`jd{d!)>B%FSw<_*=x3Wwmr+KVuWkTZY&;6Z*#iQ#0e zE6>~vA^5;hz&m@b3o2+78`O&RojhiZHi%K^U*1VC0Q3v8Fk+P213_sUnD)7&!who1 z(GGBqXb%^5DD0%*6{f0$!F+2Qr&HO~11i$mnD;xfP>7kk-r8~eWYeerbSy;Y6Y07r zGc7El!}4*s$@}>Dc8AU7NHv(S4!3P4>Lb4$*qArIQbu>wB9QNy^|^CfK2^)a!xmiH z9D|CH6!AxJltS|q7AF>n{;$Aspdj|XPedH)cNZy4=|9bMogW6LaOnW(V#>|%u37dO z4Kj`JtQ$e`*;bvv{T!gGRHAKHP2Yj|RKGf>(dXV?2st=;CGHY&^f^;s5w)v^;^HV1 zhZW>rXA!Og?f%@A*VIkgC&0^=W##QoHt) zSx#YqHP$cxgP=)BC0h5K_bw)te{ug7^HwEi2yiYU(i`r=p@-CCTu8b}>bhG;zcNT! z+uAxOdXj}9atlv{T$sJ)<2-Sel~imiE@t~B(>&_2EY`OppO*Ywnf7}uPp6$jC{xt2 zu~%bf_ZeNIUT5t|4db`5n}ge{J)@&f6sA_vg>($dGD*4QPq?F@A7jJbq?qHU$b6F5@EHBzK|iDztZQ2&xDzI|1nNk8}VB~}_v=m&jP814$Y zF*Nq|>)|HHB&JWV!i^sA0YzQLV5QDh<6KE$mD?^Ha_WJEV%B=ucX&fhg%|zyYpY&a?}NOykhU3J;5W6=PAI;V56pN=>Y#EpPC=B zKVY2D@(cUZ?YMfgIR=}_36*@gY3BJ5ku0qFkcs_=IRW$MPo5O#=b!nx{0k>gJRu!E zlPD>U>N54}592%%nWvJ*YI7o+vm-{Yn}V&MR=?J1<2=?K0s`tv>RMXi#UnMSy8u6Y zM+d5n-D$o3;A!IP>Qu)hEjfGpQAlog_rke%AsN4o$8$V6rk3kn1bpqgV+ao1?f9RzXDN4n9oM zNm$Ly{8G#s93{7*Bt!f{!VqvnbF<(|X=HV`llmWF*#$#rx4Uuni|>pyn`GSR{GA}wlVt7)GHlCD zt*91c<3RD-U@b7$1owm@)_3@b@z<_tAE$Dc3BR&x1n@VIvl!(54?V;JlH%fr(XO&9f%hY4@6(A+B|)DO%qBs4Ul z{|OW`P)RSJ{Pg^U5f;12@tF5`=g#&48XZxosd|f(%KG5SCAL$-dMa1Uxr2RE9^W6N z=&(c+F(UzaVOg2a_kLE&rrpIj!=*LJMy;x>1a*;Q_e= zU@X+hdU(7Qn=rgofn(<8(^y44Lhu9e^J^Ek%VkO^Hsi5V-QfvYQcv_}eE4$^Kx_XJmtFW4D%;;*} zbtj7?{X!$^Mz^r=2! zoVo&S^;QW$p($W9@eVLHM783inuMY0hT{_o^T7lO;UXF@V$tD6r6>cOot@F3;U(Zi zN{i}b-nI_vF!HTit6b|ZZ&

    {qHr-{g#SjrKUorh{J_>(FcGv0@tLznlt3}YXR*K zz;!=D+k*=Pq}x_c2>U15&bpD)AhH2!!;=P(?kb0Hd2?#VwwsBbWgv&GsF(;bimw;r;xPmSLWd+&Z z;%X<}H#hhrDZO+Oq_E_R?cHk) zpprNxH)jiN5Eu~@cyN1-TlKnW0TYT?tbJ4?)&}=I zoybwrzkkOlw#;BP(`g!a8^N>zXGI#uY4NkkXO=SVtH4&bAEVnv%ut%#v$z`urKo8z#mV%h8SXuTg3Yip$9LJ7_t-0z{}g=8Py^wgPPcIiC5@KsS6 zWZLv;s&JUI8tgIgyZvN-5VWnhBmd{mb+qb+mE~k;EP^(~#3tT+*kIDHT$vwq-}CPk z5c3cyQgpPiJ~wEI{0zcmp3}{+e`RQ+?5ud3M<9ag^cnP$9G!;Y#@f)fg1+G z;sAUc97-xDSkuhr>0^0vwcIw%nOUA5f@lsb>@2&l5b|Z9Uduk-C%}+&@0Qm`%l*Fhom06v2 z?Yi-BAVKv}l6?3!3Ps~>rTTAM|v}QscK24y|n%q;T$Xb_MJO$;>a<}g0D?}NZm`Xz||YH z)YP5;AA!{ZFH&m`5H|oRVRHe4gl|A> zl3&02T1(a1$;hM|SqiP&xX}qKy7$s#-JcaxMY73sea}0E4Sb1cWI+$Xwhvkr_8}=$ z3ph==s;H>JhEhr51Ugd{XX@=6hztnqmRp*i&4YXvZi5O6D+M>)W}p=bo~jfX(4G2h z5{EA7+Q`IV!c&}=zz1E21D~j90v1h5$^_1FLUF;&m%)xw*wE1M@kZwNM`&zZ6H$Uf zT|am)Y+aP<&^A5Or_S48$ZMoc2`)(BoFOuRRF!(Ll|?)y+wN*BJQ!d~l8_2Zqro$W zrct-q(U^qgp34FwK#X_T!I}UY0T9xkKU7-TRyCXK9IY4Vq!IW9h=_+;BwyrHkhYp25KU+2=v64v=`Du4W z%rPADA}kwLR6|2Hy-z^@pwH}ui1axo5fs@mEKUJ*X;|DBEuguQ*4sy;;8VKO#Mrne z@!*zlW3`B4AgJ7vRKXVv*LpX@V2vCp0%8&fNUldO#0rzwb2l^6O3#Uql4xrB$mL^` zlU5)J$PfW-!8*rX>YkTZb3=n$HKrDtjWmAfYHGscUyyfs4Xp*fPejBchlST3>QTJm za$9djYv8vG^z?2dw{MtVWz-+Rd&k(Ar0&iiMGjp8ioa;DM2Nz3S1?2SfopIawNmPT zM?g^IRt0`(UeXA*GiQ*SfWuhHtqN#7Z9sT5#ph&qF5shecke1YQOB(UdbM(8)w}cZ zXtU@F&@^BQjf(pgsXllL44OJo3~ZvX6&8xAn!KqHLF=A61?i4u^}X!IM4X~H5(Rhp zxTTBzX?%(L=8DTWzL#rBL~$a{52KpwvGyxSFJ=lyD-#tK#&`)b%ME=}NVD*y1hWbx zkPvKm{=Bcge&=$zPib;W{&!er2fT<&``2U8Q||cj_nJGoC;}MV=HlXlZ-xV3!Rcss z436Eq#}k~M4oWTyOG`mM zKIR)2Bu7ddyz=opoG1GOxuvA!H6n`bYrib^&VDs|{RRAy=B9_+mPl>DB_Y`aFb!4= zdXA0j*Y71sZjmIOJm55L=j1dAX%Y-U4#X5##QQ1!@Wl1D?pUCH&I|+m+s>5^QQD6vuntIL?g3* z_(|i^TGeiDIvQ^=`CYjgZe}<&3qwk92MrsglWgv_12IJ%?}F(%ikz63-BQjMFI+gf z{se3$(W&DA1Uw1oJb5IUWKpwk>DnG}BY7H2pZ!Ahz-<}AK*r$_syOhBVUjnU>#fBw z{)STGJ|fS?jT@0jqzeK$S$uiBh){0zKl_wz8M8x@$(b5FAzTLlw8hd{cd9L$Q<7}e zvTCfnHOjkZ&%2v=n${GDla z|JhRQlP7oW-J70}-%YCwLkDJx<*hCS(<3B8;&x_ENZkPrC1daxW-i6DJ^BzfK;eer z$y~efy<8JV^I#ECum61Z>=Ecj$hiN%WjQ5W4U;2Y>36B->d|8%sTH&O; z(}wAi*92t8w=hlzU4zm&i2R@=L6iGKup<@*o*$IZOkINAilB+XSf;>#r#hwy=(db zH5F`2NU~c-Rb`?__UbA{VveC;)pjzCRb1k-Jq|gge_2FbJsP5l3Anqcs;lGlccqSV z3EUHk)T0h?JjLZksO2=Yn|kfQ2Vp)fmpvG{_{7y)O9lSk?ipIX{{B=9_v-CHxLU>e zF&zc8Vx0Q^vM+^q6zm_C@8wtB@s6O|u^ogo*x1y!pJp4SO@~u;DJ#kRCHf+q_K4(-LX1v+_-^S#fS6^ zK13=hn+3;@Q*Ej>HH`)26%~gagD+!t7AR2@Y?q1v6D{M=hxH)DWwZBq4TR}HL@^Bv zjN8XDVD;LyBY!?GEFSColEwBg{e58Iy;mhm)hGZ`AF68> znh4%A_3aC2q=X0@kqYwqK8eSw197^b=XNlqPn>{)0X7G@=dsfO;q_edI}sX-Gd^|J zb8zrY@@z5ttuNqhy8Co)jzEW?`HB}TDgETAs_vI#`wL2)w;Ufylb(1!xw-c8;V2J} zNlwm^g2BYn`HzFO84mdS$BsB#TMC*nM6&4mta~zS>v<(d(&1`+pKE;JW@YP+t_x%1 zk!|8D4;jCnIMhv|XpG$Yop;qy*l}_~yLh-fp83^_w<@VWaAq0M$WOna z%uLB6P7V|*Hc_Gan(hZMWWwPf#sVkgnR&1P|#Yfi*k?wSHzHzqzpNusm`l`c#P@7}v8=(DWG zwdE9*iCe$ZT6s@wXrn7)aqMqWnD+`kK-a*7-Qtv~akqf5rI_-ZMDgZdz1Tz`J1eW# zv7GyoEPqn5m{!F`I zJLYJusV%}$y`+fQIxtso|F~3Qt%vx6_GO74oYmQ5N#8~rtx}SdU*KUj4|Gg=^`_;0 z>{t=ry>C%a`OiD^?4w%zF0UPW!$e&Pg(G)s?f+2x5-^37r}Gr?e@EqabCiR@DD6(8SO_q;BNRLQ zZbH!po;JY_$qG%~f7y&B42UxIz3>&(-pO|PJe+#GDjmj#%%K-d=mYW%!OE9!rPEx} ztadtMwAP5Y9K}pFJ0lqG4ii!jt3D3d^MK$cTP6`!IvPJ|{^4yYnacpLkTlR>qk|P$ zi%5vnpVYA)RN3hP|iAV|b_^5~x&z%0yx~G_v3hAI3@yOfusIV9# zhXC^gDgo&n>i=?MdjqRJ(!e4B+t1Bv=J$e*7elNK0TO;S8T{Nn`$Zw5SzJk6w_fGb@hyBdVlw-11 zk5F^qo?NqTor#l%!$a7>o2a^8e#y;>k)LDo@`?@y&~Rnr_yEVT&>FzvPjd~&2G}rc zg7Ke>Gtb%)DWPaVk+*aCdrZ^7suSd4(}B&zxbSf38Y0BX{?I5ddwxjp`}q1MtPcv# zu<5M8(3~%(6g(~_!CHna^Ii`HaA<-()J1Q22Pw5|x-d$-#A#$D6^lt(1m8RhnRA1P z*)o@$6P3@ALq#~4nJ;6IA7->$UDqC`kzDlP5Qx~<({oWt8+Xh?JzP!Ztbl+3(ef&N z9doa2Zw7F2gzYkit_ZTGib}nWbB5)%J!PFX53+(EoE_gBoJ1mZ$8spI|1IXt4Rt8z5MF_=b$XDuHMXS=jP3a_i6y4fc8hmax{!zs2t{KX95o9 z{QMb!vpgOo=^lODhhbsJ61vBlFy}}A0o!$AbWTY00gdW~Txq z$S@XIPrk&y$nhM@`!t|byDP(8y8Q~;m{0jo(fTD1#6LJuA4NTgF`lFxUNp@O%-*?J zLGr;{b0b)FKVJMy2?P-GZVgz7S6z&sr!~B@8<>aR>#>-3tH3p|fWny!AL*;+fiOYo z8CUy<-6w62E9kvo^$VTOuJ|0Yn+GE`F!W&AiQnYTw=Ra@NB0zqJ6%Ma9TSf-U`!Zq!>0vZ@J#q?FW z7wlSbzDM2n4(3C*{zfKipA@!ATEv(^hiA0CWlLL*mrY0F#f#?3K#7jjq26g~8 zV=E7jU#P6cas~#B4N*Paz#fNb6l)(jI7Ktg?$5|yYcFDErwc_lum&RxtK{8*@Crvu z6&Dq~kBd`KR2&-_dU;*r?|WTNaW7+0Kuf_!U-t+`D4~T}z9$`~#qV?0Qt)m#HgIro zpcS(l;c=SQ9?bb2By>c1UC**N$ppgtBaObyOT|HPpRt}1 z{@^{v1{!ZcFQKXnBBd=`x4N%`rQ1h5{V!i`wkdG=&}fO&(PqPA8~SS*Pqc10fafiV zlvm#yR?U8sna0)f^*a&>M061dJ-};Wh)mUyef&rs@W!AkCv;sJj*Dm^+{;P8c7!c{ z!vhQRyg9a4dIQN1zI{9L-$;};3`@hTL|^Si;A>+n{kF{qX%RqngYbBQr_)5eA6hLO ze|7S|aVuai0b;DEks05lA@Ze^#yb2*4L*Bu{y+So1CG7{4TFiZ_ah49Zf&}oX%RmT zj0Dkr`vzg%i12-TpgheEsz4AR+;TI2i`ZdbMFpn?VuPRTfk zR&mT4*fJ1=2+0MssFB+m;K!(dBv5tK4aZ>W{pr&ufZcU<+}>Mm($m<%BuvYg2CN3U z6crJ1IVr79WaS?Y8qJ=1pPdAZU7A!bLrE$mD*DD=md@$#&m*GqeF}$F3%z~AI1EX^ zTOQkFoYpp>devd{HiUZcmASBATjwTPn>ZP#wN>JD5xIO6&mjE-)E2>b;;+z0-E`=` zu!S(jjP2n-jgqwYXT(|#jxoGh&|dI70Ond{p^>tAksRazg9D_gwt3)0P3(L<>YWql6$V9 zO3H>v6&i~N+t1JPi!x3Vc>DH+y|`v5jaMDAeR|??0!m6*N$+`@xcS5*wLR!-g`fKRUWm@g&i2CrOK1G(X|)8A*1!fE zS2V*`vEcg;R8ZhUpYiT^W{qP{T+R1n(g+njYrVd!oH})(DhGP^AsWl-2jboIv3b6?+|D^LAUP3csU`}U8u zyq3K)y2HjcuzWpZp}x|t!Nm4@S&A2fX=`n4>B#qmO`I-|*!52+1GO#jW;<3^#R&HZoW`hwg3HJ)8SG=W*LLpqRm9SMxY4i+~sU1)0hkeREZ- zF{-hMiw|{Cmy}nkF(SkrQ;I1LI9QTjUR9kx7=B>a>xhUk(^b()NwFzO^=hY&8zq&I zBGU{V-0h4P|B|AsHR#ntT6@$v`=Fx6ris{Jg~e}1C#CPVbtzBwOcGl= zPC7a}CSk_d-F;a=${RS@Vj|7ybr@taZ{D18iZX_^Awy;JF_i0t)U%>`x`EZR*eoA! zuoh$3AohNIa;JW>nG%7pSmW2!8DI_!-q~t8I%XxWicJP5QiI_EfGRY*3X;RYuS3hI zpFy{7qgN=fl1O=v42(B-o$ZBq2tyaSRKgrugo!g_Q|BozdISm$M-d3^0(aDUwlO_D z9YAN!6Kqndh}G;7^~0{8E+{EMb#ZP<6P2MzDtk=ERK+!@a;{EN?ej1(x73oA`kRdF zvC9CxoPXT{4Hyn2tH0t4358v+0UA|JDxHv@-+OELpGyRi4SO$x7`Ja2jD^n?V{w92 zIjT$e4xEYv_A#8eg!-ZLq@cm!my#8M7XWSnJZpB%l?0vO!`R0;Ixur4kw_XJwW+^( zkn!UF^hX`D&EW<>q#9R1ncDQq6ZV!=cY9ze_Sw|GxPBdH3Q~nijq6xz z*P>S7iB28KpI zR2{6v{8^@s3Y+?ung4g4l2`4UR{U|oa=hEx;pB;hLARv$gk~|yiXAIDwASig%%1OW zWa!Rs7v=SIlfHG8oEly2eWkNIpu*GYH;FUR<{HW9fTRjVhxY%w zzue1NkJ!DIS~Chi@o-Vm!U6=g`7K<1ZK!*}k3i&8s?e=c>up=Chl5O5$JTiUg1c{_2xC?xL~FjrN5?0FL@ zweQBE2lwwEytCz3*2UdVxFm5p$6HUB^5PVDZZiMfkuePN!Dh?>@H_@a0dmp>Fc`)H zPlE3akj(XTYZeQ$WnP4E-l68#uU)|^{?ZP%Z#|JN;M4>~!M2CKWy>s8ReBVlA;LMo z?;y0Y)tM)m13AgpJ1g;!aKftZ`yF&#>5pH<#}9)_K(bC7@5_GAb@9RW<})HPkB~~t zF;YqytD(Fexkb;8gSmaax1EqCxU5-`S&t+d8WOUJRfoR2JeG&7j<^Rg`WcoN@e}tJ z9CV7*O?tZfRpB24lbZ}FSK8U0t@Yfn{jP5_g239%hfajkuUZAk{*vt0d)rc%F5Wv1 z#f`P$k@16@9_{i9P|CeX4Qnq30^ueCRj`)Ux<}40=Ck4$96vt~j^ay)=z0tLfD)iW zT7yBSyTtorzv}Iy3U$_$1(T){ZjzZ z;r1$y$~)Ed0~KyOlEE-vJqD)@oKQ+!D07jIcvJe+sZagh*PCmgh=LdNk^AD6S*}=L zm?p`JyvHbgd~t_fB!D_@4l|qc;WDDG7KA{AJcEqoj|6;jA#_Pk7EdV6&;Pury{Qr! zF~)8(tHDFSmI_y|ivG;syToRXfWXh&U2oNa)9&Hs=7#kOD&&U#wqib!d3tU!KV;*twyZ6$^c`=FVz4Mg8WjhRW>bB4u5a1C2nMSVb z>K^1u5JVOk*O9yn3Y3>TP7;R1aG!e|le8P}XLOjpI}|L1)GR9Aw_+9vbHrR)`4~Nh z>GTgntv%&w&d&P!fg0-!&+gfKHBZ0b__^CIYgWqi0Wresc2~BxgAEM?eAMY8K!m}p z=1^_I{39$3qJy|@wT;hPVJKP~9Rr7QU6BY6UO9|on3zzH(1Z8rVK;mKU7sIei5g;V zn(Z5Q^S3MZji1!Dy%MbC{yYsF(_8KG3U`Nu; zF&}}H+Sy^SiSO9+nl$Gc|Arb!vTSYRHP+q1AyF~n{Eq?xqQw`vFiLTt`N*)`;~lLP z*9Ps94e!zotAklP+u95c%jdX)2^&)=!7-H|;?HHS8QQZuj>+Khz~CST*@Jc?LTa2m z*@GYr=SJ>WgvvF+tXn6L<8SG-n^{=cct1jOAg%vU!|muoc`~T3P1%*Ov*;>|`O3YP zS5HZ)mbD++tJ93-6Y(Jfeyo0w-(+`b@svZ4e8n`_r;afOap_%B8s=2ss9XL={qfgB zIAX=~F&HHwf$@zS_78xeFS~Su>GK(bx(I3laGM?%eVGD;wko0hR}}a+OkiE+@6~sn zV3l*-EHp{3XYhN3vn=61Cp5W_$$%aj!)@@4nRX>|i6Hd3MYg<6wjYE>?}wH4yL0X* zGTk^I0I9;-FA%VYq7w0;qWxwQ*qM$81(+uQTySvdVwR5_I=~qLy8At@Td{i`=*D;m z=X7}X+}XVNyW5$lumefwm{K8KI~Z|pmjf`Z-@!+yV1^DWmy3^9ncw%6B561E$14#y z4VGN~c6aUZ2d*RZyY+Q-&3Ahx zb+oi>vUiOOhK=0m>zXcz|DtkDL)SmN!V8JeOTYp5*aJ|XO=5cKDGscD>b&rkOdyW7 ztk}w>3bV@g7UG*cvX;_g_wyNynR$7o9IP2$bll@PzCv9}CrP)}k>Riuc4qd598xD9 zxv{yaioYG%m0910>&RDZIrwL~6(BuTn9uvFrL;E>RDG3s{O4|g%@l|^wd#<%+c&(F zreng=?Cw^CSnn~Kx6iMx$jf^~&AT;}nUgc1TP5fA=G%TPs@xqCd2MyXNnG>B&^^m{ zzoDn6$G}(V&W4+dR{$hzA2Eedb(Fuycy*kqMvpuNSVz~pd^}#BkAI}^E^*1dv2f|G zAY7RuWHy2OBUv+|#WrNPa5{Llp!7sNtW^iZ8l~T|NH0d|aXJ@c0*dFVSW74oS2_hf zdPALLF(mk2S;&8JOM1~6ok;56(M@6$p`!3$x>UXC#fujmJa(iv{3?Tm#!3PrmtEK67Zk`Ehm~eHyaCV05|q0?2jT znhap73BMTD5L^&gOtAJ{H|HvH_I|b_(TUhvOi5;G^3jPc)GBWJhzJO-YSv5q8 ziziqib^(dR4fsZU#}CxPGwWXfITQ-I_hgzo_{Oi#nEc{SsyZ@AO*fbyCXmq!w{<3K~M^UHq$tqT4@l1I!EihQ%Y$r4^I!pZr&N|w&`cvcz>n*d?IW=7 zNs1}yB&b~ek#>*;Z6T%t4A+ZW+cWmvbph9HHu_O_FE`b=!BG!v$Hmgs z`YG5yTo6cq@uzDF0G1r22+Q4nkhBb)9F4g3Vh@%jEFfI$J>Uhf1{xi4FF#`{hk;AP z9Ab5wKiP)TvR5+XQj(c@JwzS`Vfb?9SX6F9q+A;PcD<0zmK4_@do)^uW~R#9a7m=r ziXi=7RP9;OJj4?qr-~xK_HMJa-2xghX&O9~HO>Us{V?VR#p5X=P;kapu`L&$1HHIVxV$iLR7SS_Sf@!Qw>cWG z+=j#i`eXV#@5x~w%3p7^A3wbHUp|oQlrm=Z`mrvJwG5-NZk97)c#hm;sHDKnYJT5q=@%JDQp0#A2=X`;zhVW${HwDw&E20b*5$by|r%?L$)|0uGg zs0iImOCz?t%eVa_#>8{h>hf|%5z?b~wxe?O-}AKv{xGV6+7rq-9?v+7mwtKU?ZN-v zx4(|UzV1VSbb|7>-I&cYNQzlYPUYe=;D%uNYS1%5pN$XWHZhO!OOV+G&M|p^%Oy8~ zUIXZr6rH)=RYKRh%B-Wln9Krnn%$bAKAxVl>Nyj4I$@T}!C$?|4BYtj0L4y%c84mc zfla+ERr5ZFn15@oAx(6LlCi zI+zwTEIf%DgEENlG&Gchm$&g9ui*rQqlFV_Nq_fF2r_dOH8uAif~PGfpt1&`p*qwp zzuLSXRiah0+8VH*uh{!s-JMSsR51a>{kUx zAE?_#?>WuaJ3z{Q{1M|w?0ldDh}s6cJQ!-^S&hq*vhrOBuIqhN`5aw@OC2ZYb(uy~ z$)1I7;>@AV0kssIaliyY`2{E{tF}h2WVtbE-)FnU%54|~0E*3}>0AGC(2_WojLKk0 z>V*uhWauy+cxhVi7M_#HSCu$K8dp&%WX;Q7Ey^<>=yjyGV?p9j>3D6ELXGyChc zeJevghF~ro{S0p zcofUg(`pt?$C>IKzSJ%78CBF4~kAAJOh``B!+#4G2 zYQJ&xHXi}?2c*p0pK<8hSX_L(bwC8JIh=J|YW7~9UU}((P^`^W@ZraR5EH%gr$Oux zRGeUZR3gp~DDhJ^M<`EVD4^Z)%*;${@dR+(a36aIwNOpK6X^UaN09$&@8UK!w3K?1 zaQ*k&+@8rNzg!Z0+W0H`=c}eb4-mBnbkTo#3T1a3cPr7l(zgC@K<{VoH`zv+jc;I6 zHT6j63MGjWuStXpUmpxG&Te!T&>Se3asDMEfpl)(+yk4+f2QhvzIAvh%fL=T(80gt zLOhf!76jQ+AOj4+6pk`eAjW~A9P5= ztvl6x%n^H6QQ^om0$Wo?nsnFOYW3}-cQ8nV_#!p715yho=mU~MM{fRhFT4$ok=|HQ zKxsq<55Y#0Vb>>P1R)#cty?aoo^T{yn^%OI<>ck}w>g8kkP2v~qS5N>G)#gq-S8>C8NHmly4L9%;s2rCgpbJ6p z-L%aVNBwZ4pWU4MV9q1#8Q7HUd_@Rg$TAkj>=REA9sYIaCBTJx29gDrOFQgH!fvb+ z8z57G+xwwHCQS>;f$#5a;uy@PVB$D2^pB9-cmDA0ZeGdD3qXThh7E`WXllnd@r5eFO(LVU$CDX#GadAtJ%+hy!5t?F1OA!G8R7i6Ag%ss?Gbw#r1`t63vnI@i>9MLO*@+4TPgfp z`v#^%=AOuFON@YAnkWwdX&5*_g#l*9qSmLk%ub`_F|ndR)Tqkc0ZWWg3l$P0&=pFN z(14yK*tO&wPF+yA4RS&S#KYsfLj(ZJa*GGsonzRqa9WC-HIOnX97JPBLsk(bN(8{v z_dlN$qGg~l0|uFbJ>UUwS%SD=lnnOyYk)O_bQ`cO&`=8yQ9b>YZ|Nv!-B@1_m3oXQ z?g|810G5K~uZN(5G7=xl(^p4_L>ZE4^nMJhe0a5mh4LqxNP05Vj)sP7Ls{%xh-Mff zFK!1zN)1~QTGW%k62h_%2_hnJmxMRE4_ZPfYQV)noE^?-+oW-NdDhcW-TS468e3mx zoyt+Ih~3m(E()Ic4RB}p#i3E83Nl4^h0?WUDAbo!bl53+>7($ zedFgC-dg65?YU#G5b-Yo0wDVM@i?DKRo!&}x=s23jtp+1Cq32N{k zdwYQ(!EFAvytEV)f_)DX0-MDnN@)rxS3$%Lpp_{cPJmv_RKs}#9y}bKB>W(&CwB*$YUwq|IYGrJ-3qDTSQ~s(}k=6$Gpgg7|N>sfC5sCo{ak zEauN|NnMu<%d`-Owod|xnSN^kfd^`B*u&5+0s5Y;vDe^~>kIWiy?xDpknW4y3}1;H zpuX9@wFc6jLW&Q$XP^p>AzU~9oE-k|;?Im(DLAWnY<+}Xa5zdkQvOGnP z6q|$}P)%>0W7TNkx0RKBJ5!fam(rjc`{n9B!ELv=w5-xS zF2)6oWl@Ktfsfy^AD6<&rfeW;1g!ewca~+;rR0eV|P2nlu;93b#wYGZ(UQRrCa%1s-B=e|S7Ddz>- zawXNATfe@u^EIQ@s)Crn-ueQnG}?Vx=%K8qD6sXCKfZrosCP&yW|YF|uhb_+2!uXu zoV3ijwi@4@U_}X^o9mJ}_zt%YB`{P!7pCKEDKG>w{ho-(3|F_|TlP+)x2W{Md-t~! zUoOCg+JwH1X5S}Qpqy!J6joxn1xx8!6%Na;X=iXk*bS1~6dyq28(Eu6^cvmXf;H)z z{NN=X+{cv^k%NW}l$diduw?&!4WWvJD9m#EHp4sOFqOL_)=)$-ekBu;y>G*XB<=p$ zikTQ2YuMoU1vVQ@oC5x?5hyr7KeL=w)zp4DD&3}56BQSy`Cf0{9S+Vc33h$`*+7C> zq`{V9-v?;`AkU~K-Z`T7wP0ulGG%;AuT7ED;KQ}Pz#XM-i286S?R^(yKL#*uhmvIK z6n4Xr8b1Y>8VTVd1>(SHLT3TldH?Q!V14IF&16qmWWk zir9UkZDn;a$;rw(hx+e%fMO&Yc;0>Vij#*b^H%`nf9R?8_)_vEcoV8N)`lRQh)qM8 z2nIbXX&AQf!}Yp??rZ25kT&P*Odp0BO;2AN-@|B9nj383oT8TlGvSM>$&0(8j@n^Z z)B-D)GWv(Fguue_>g*f6+OsE@yo{?3iUO1nrvuNyE367OG89ZuaJG(=WXN`Eu0Rn2 z$cc6`fOPXXTKfKQ{HdXSmQ zYB~TXZ%y0h$xid-W1vymS}`Ib9Y&Ba6k9Gpf)2~{?A|@qELf3E_4QhKorDI#XZ;x! z0*?ZhC;g2k;D9@e-UJ*Lyi3fOrr)l?Wq}psMVhdRV!yqj$yQ=EcoVA-8~6V!h7Vk9xYlY)^S zmD1G2#D@?=wcMLwrmG3bE4XUF{ULj_f$P094>+K6D@>GtWb=?G`@qtW3%5BQ(DP^3 z66J!Ec2oT>ihX5%SC>IbO8xcucEMl&FJ3WpMaT!B<*xBbAQ`hbgHqw z$Y#V$$ulY0zK@|BjvX*E9YsP%?7Y6xb}89^@@Z2I*y*V1O0UnqjySv87bs(|gut2r zjM-(RufSKN4D=xQ4Pnt+a~(SH!~$dN6~*eH2m>Sx)J!}k?_UP-7}a0DU;Y+;nv# zE1FoNAP0psg;vU+Oi%dzNli^PB%46uQs70qAMNUY<}gt*fg~iNXTu=;0E!ww@9btM z$em!;LGZBf`)o$}`T}3bRH%+#)aSdtE@<~~cOPVAX8v&E&?{i1U6BL6!PhP5) z99|ZA0&d)oD-%zZW{?9~ zajhlQ6g@4QfOjZQrDbjudY>IF$fEPTl(3MH7N7AB-l>eJMQ=1+>c@VFFSmE!mQnBn z##L$;=e?Y-(C3UIvNZ$^6i;^HND9!fjMrLj_``m?{|KBso$M1dVF8|pJ0wiwZ3Jc- z52ln@6}&?Q5o;0-vC5lC423+2Qi}jamdajJ6`3de;owvO)~0f+UfJ!}OOnY{|78UC zK`Lf#j{5o(f9h`bnKVsmm32UJqW#zhuMeri$(@UV&*-@^NW6SP4b4^y z7X&xtbbbGcD{-muUkReK4*EQ}&BYir+MI_Uj74C^G^0vnKXGf=saiq+P4S`YTpdRF z&%5FFjyb5dQ$J@*A3^3OWAMJAZYf$f=O?v4^NknX-LgvTmbs#b-0?T#z%!+vV5P0i zoz<5gmEwyjpQ3y9b{}7)ZzZP!*RZ)Ax1nJ8bh}?n9n_Pn{uka!dXZfv5f>fUn0T7_ zhMs_+CTsMX1;F5=lSY?!nfh&&?TNFlx5tS^1v^VIuochKU&c$&B;{F(|9VXCJKyAU zQyal*(fSaTbX31L`di1WL~ZZ=n;ZPyKWY+!?E=0(65ocPmn+6U4v0g9CzqBvE9n^B z#7N^}m@8RJ8Ee?jW?QxHxP|zvoSgfeuf;r~^EWcDhac@#xssT*dMBJkwx51V(Z!PA z_4C)d&M{>V>Hx6#q>}COtqZAh!(BJ%&u%J*$n#&2_0X;XFV=X@RWW%qn~?Fi-T$r` zQ-WlWR#KBu-sb6-;$GR=atF@_4r^p&Sxs>m>Z1urJ%CDoCwb8q<-FLO%*n>WvdY0t z@7;aUG4rdxIot)B=>uMI@n{(t?al<9Mk(=fa0n!*vF1|Rux|hoeLwzetqqNSw$Ltj zk4||n3w0^>o&i#hvP`RwbLEd0hRdp|OtNvb} zen2$3CCR4r3b6MD_-%p$wV9R;V*k7Y$f4);ymIVY-O?+?NCC~%^8)By4+h~Wwt&Yo24IZi+83#MLEY`|CU`$+E4iI(rQ(=SQ**P_v{4-L*cd8 zo#5wNI8r7-PCb!QBZ{3h(ypI6p{B|&itolmt-hwAwz3{eGw3n2F3We`%?%sa2F7~RzA@Qpl(lwNZv}g`(<}w1aeY%J>KhQK zpXkS8S{T2N4#_NtLyyny%coWWD<`ng z!k0I@(#ax*jsYB)mi_#Uap=}uwTI)z5hSVSbg5AH-mh@6tPN$9qlyNa+1-Qt#-<-* zuD~aiQb`JJ-mgrO48oF{SORDdRkF!P%LEtgHJ>XNc}^&b3Y_@2XlG&nbah~#1$uIJ z5qHm4V@sY@bysC>`vI3Q&&Tey6GnTbwQ1ZrnBT0{h69VNX9igy3~Im!h&xwA(x=HnY&oUac(O3Q(UB%_Wlq z5sA|?i=ujnxANSX44!M#Ge{fQP{V;c0skJZ2F9v!Af zU+0EPEov!D?HBVo3_x-whkK7cudpZq3H;n$63U+u8J>cdVE*~TuZjrAMbWv|a&4UV z)1-om&F+uvF`xQ^-VG>S-u`u3dE610dCZtJNS*Evy4I6hEJks$f1FwD6df$G<~7g- z%&W~hHS{5S?``oFzV5_nca)`D@~Z$m4Q9y3}*TY{dU^Ji44%1!q<|hDbYUI95Ft0hyH#gKBOS9uNKkn+|KN!_XwuP($XyC?D`*PiFK5v{pBnc1b zZYVH?P;ETezJvMpJ~vT+5~EeaHeI;v@JHKKDW1?#AN_0Ad_R~_=MvBaA#P?NF0Nh2?=duT3#a)HzdXaf&6NVi z&ObJ*Dz@9lTc!b;m>VuJIPTCY@+(2awhs^sV;aH5jv$GK#!$vw9HTA6JE0q0rivTktS90uI42G6@!YpofA$gu42oT(4v0!IG3 z0@??AvgTRon4LoC123VpsFjdg1BsRGmpHv(CN->>6*SqwaqxJb4hV}Pl8Yq*2>~Fr zt^(h~XgAsSPP`?oZ%+0I_bSb)UV_-dY{F{mr_-V8^35+Q5sPvonYa228A&8bXQQOq zc8U725o7nq$qg}Sm5I32{1u+J2AzPnZHFm|SJ-!fL(L~Ety0x|@e@cL1lgGEY)z|#6ZBmrW@!%R5$xZ(j>xP*g=k0Mnx0G%cqkr6qdErI2>r0*Lm5J{d zUkBP{kV|LnT+OAW-#{oK^iOkto5AeONbvsI_c&A8^qywQjLE@x1p}%8Pdd$BtYwOo znzQyzDL)4%4u~Y-_*3&T~#KZtmZU6I7MkGp;2! zNA@_*?C46c9o` zSqWC5nP^-KnsSVW9KxXOsv14TN|EC$=z(l}Ts3a`YmrH8o%iIH<6Fwd5{YnFRJDsw zj37yJggTZNGpN~(^UlJYVE)3=7o}XTgsuXLewJ`|VQ&gDJy@0Yz!ObWZI$v4O2=V~J)UR0AiySOyo*?5Vr zNIdAzVBo}<>>yuFa?s|+@6C1YrJ}GZNC0|ts4c7Y{KpkrT3SAT`WbgZ{74&#Txm)x z<$z9X$s>iRg7?my&~Y6m$+}E>YdZJk=nNh@qbC=Vlb~n=M~;n5dnW(qzwcK~1=DT0 zzQKv3bKtoP!%CJd1NpcBOMbG16??@nL(35naE76GY=pA#NV|t2Y4-SWPn2~A%}L6V zx(sRN7Er15OX2+lCB$rdwO+DJnLoNjTVr0qxVeo~^TkT`6#TTSArTlCv>gPJEe(e- zKx`82iFw|CY43|uWsW5;{s&~!-Q8zTsH|^3{OAf+zlXyEQ^-2y&ZgF>yFW_Ofp~#d z(ayW=fO9;#;UhO`ZYeOPLA~9|a3d91&&=@%Q#wi{xlP)Zy`_Ubh!O1LIES}fFiJ_K z2x*~)D8B@>Ao$MeUs#mtjevApn7zIYMQ`lN>2)x5nHMris2}Db?s0B!RY^#@hI zjzaz_f7EtcSoSZNpR?LgPJV-+b=Q|Y~#y`X__0qbd8eITg(SO(&pdSnhA5y z69=qNe+wLd{i{}lc=bQqL@9%^N?FREMhBU&C#!dE8c&r>?(FF3{+=v#(+e{c;pQ{9 zzuYOU#rhHj&0ZMYSg3$<9C*!ZAtF2Je0SyS`c9%;_Y`u{GIrs!>v&v79#{d6{o%){ z0Tlah^z=zx0c@CK(kT4jdyU|Ip~)~;%)UG_@Co^XkeMkd*?L8kbk!@M&G?lHMfsDjb^t{;Ob2!b*p3l#M+LvTPtjmt?Aa87d?EQRWQ~Rr z{|(E@fX+nXy>oWwH7^+Y@k5Qim~LENSYM2a&E5Xf@o}R|vXBZL!LTqi4X`o3NcMUB zsEplV&a@NMjm2NWQ5z$KY#*7K5sC=kS0ruXPFX1sZct-wdAg2S!h6VV0^|dbU7N4D z9duu=rV1F$pv)5Qq9lKI!(W+OT59-Cz7bE>YytZg;YLd7=F*RlN@D0J`t@JuAZQ3u5I%mH|_}|M}-{E*)><~pXdM$%@&keP#`R=*bF*42_vZzgf3Z2^0RQ82e%0PNFLc-%%&p_I{s7y!B{SDSVNIC>M?q4 zPt-wIZ$jm5Tsv`X3AI&~UOeeXhK4dCbJ%KLp`KGo@u<6( zi@+h^>#oW(pp5f^)5g+1$oY&2Y|ovY`JK3%?KXUA)1{1Su6wBcRynKUuQ3=ofFx%} zG%#^-(@^}`JBaLH9hrgy^RNk>yTRESRiL%_)nxfLbmTzc5fm1X$4Cy{4y1b(DtFf5 z0wI7~m2X1<`DtD z`Ts2NN_?8}FvDQafh{N8Jn=4uJ4l+tRR*|Z6_3L10)$_G(aJg7%kgW-5Joz^vb*ky zFKHXv-K}{0z*X+{2gjFD$St%<1z(arU28i|ZPw77dAj9LWpoujwi%_lADYay8H$gA zS&Vc_dxg}Y{B*#6Tb#DHJDt1*xIx3j9C?=soR*6l#uGTHHu(kax`Hpf7j;4()@d+& zVJvFQYKM0^-DUl;Rt5B)*3a6wbw7WaCg%F6L(GHAH^LE%+=`%#2HYC#r>r$3lAb-! zn}xQawn5EAe_&qV@lp55Dx#P`Enc4xjmV6zkpcPEy;WL-h4ptu5%PxA0+8o;^9B}Z zO{}dIj3UDWoHZ!IADzDiEmR%@dS0^kKmQz=9A?Ddjj}R@R-C!Biq#+^L7i*WEA@Kx zciFZFPWU*EbmIZB`xoIvwL=?k!*CvVxmJYo|T5mBx!}Id-A|k~pH6Z2xpm2W^sJJB8s?_vp3IReFGFulZlzND8vNJUxVL}~ z|9Q~F?tc~@AW5*2nk}C^8Ii#wqU&ks?5yTGXgv)s{o$&(zy2`v$EQ!v<+)@yLiPE{ zwXn+TjX?+4GqgxYP0jJcSo5^$>jcnrU?f!YTR7pl2^<#%3Z{{BX7QZY08uZT^N(45w z!Q(w8>@T9Q4{sM0_t?7MZ&F!P8jSJ6Cuf5R%!q0q7+NL8QtIU(3&y}Z=y@>+-!H(i@c zrYGtb&5-It?co?I+_LYz)YnhRQUK8ss|n)Q$a#fap~w)JXpmxPbd0M#aj<1%$cLKG zrKrfp%F6B5BN5WSxxF2$@mcp2aA+pw5ZG&3U5WN}m1P4a?`Rdm{To{eXh%os9h&L3 zO=q(e+mOwG*9j)}Xkqg0#k*=sTpa+}DgJC1*d54_CH5x1)e z^FSN5hE)g$fg&g!#yZB)`6Uc*{~nI^a>O6oMhSL$O5?`WmZ}9^NW5$v)TIT|7Y7ld z7@Ol|Ou|=^4xFHt@eob^_-Fn}H84hVl~(2KC5@z5_9cJGG|mUTar$f6YU}sN3kt?j z{uWTLD`P7bm$BO>vmG1(rmC#|)XBUim2{PZO&Nl}#EmyJGowB0T4SOU&^DG+p+#euqt*Oel54IP}`>0{J<|hH1fWTVeQ}8a~-j?*@X7CAb=lc z3nY1s^ZGKLl3ez-dTGH~S0)T#Dj|kbyuaQ5zaPdS(^H7*H71?1-2IOv&{*6xB6}gE zc5}Hbgkt!jIcWq&R5p}XV1J~2bQkwtq~vbZ^Ne_A$J|F?b+Y8Urb|{vs5N6Uh%q?* zZ}MJnlRc-JcFhY=V4CODXENuaq(MVn#RY(cQPc(5NXtpk@7ar!qXI*{ds$DKBz@220>s1hWdYLAwOKX2c?n_REz=#kYIX_oO;tGtZM|0> zMGDHd4s<{N*TNZM8qm>Jx&mSF!Ql_=coL!)r!^7Ca3b(<+pE{&?+4t5c{?11j+Uhe zJ>KuzD<7t3_+cnePd2Phg7^#QMt(u831AGtb10+nsbSR}KBu$qK>LT$$05)j`?$Fw zo+CqR3(DD*WTZlw4AY}wMGMLO^Oae!s&M<<>b|LV{NZs|rsbSrb!}~O!E=^G*!-wX z7e)E`C|NlwI%Vk^%U{20?D@yEZRnB()reV#*x2-KcOKh4FEirc#I0s@6IuSH_OJvhers-@{qPE{NF0oD<(DxBvUNe6(T6iCl!O>fJ~@i{`*aLMsA^gM15$ z`!>(Duh<8d&}oK9SZ*-7AWY>?7wG0-#^id$y^I?ScC90VKMKX7WT-4iWhiAZd>BQ~ zo4KDx$I4wBqb`^fklUl*1s8^HgS@+W#AP>eLtg+gNW~ams8&=^78xDNl|ihBphQU$ zqA!yc7RF?(D=&b-D+o(wC5^%Yd#bMz#SIOqSG=q^WL;YXr(l&SrxI_5;%Nt#+Kr9Y zxaK$YLVv(;7!D%Myb(cR{a-rT+HK#Vj=#diu@5vi&ueL+Zk@YL@LRg$xK&4&>>07> z@gd*tYD$sI1>6AHs$QoC5-23C|C?^d6KIU z6JW!4e=w<}x$2#PT7JQ)5-4NuKOpJK6d-GGqbpqf=-U2=!pC_@1@eV^hT8HWs(R-H zR|C$2wrbo8=+xOsZ0oCIW!HWPDmeUVNWH451$8C##auHm*jo6=+&|Fs%h@?cu~k@D z*o~YsyzE7{TgBYmqgf`47bBZYLFvgz9Xyl!g86|u>{9B+v8b1NamfCqy`%8@W z4;Wt}?oO4ytr4?-^;|=xs6d<)#W`y3lw1b&E@aNDmKQmw`N&DEOAJkJJn~{9H}#GC z-a?UB6M>#J5xb{or!;2$dwB)+FtEyrr_KX&9kmquAhJ;2a z)aart)6a;tK;Eh@eR*n?Lu9dWZJc>gV0_wuXzEH6d}|Cx#kT)nMiYDz%#pD29@ZOA zqAGN8dzY4%$G*-6)|edvkzM7tds<5%iZ-jGC+ck|XPmG9GRBd-s0$cjNPz4OvhLc` z&^_?!q5zeBkf-O%K_B31-ZZfcPEYGUmNyq}Dzk@i#d5!MCH=x%hgTsx_|WY7ldMr;(Ek)gks}iiPKql#s0xhk)X><&s@RA3kIE(A$%Gr;*Jr7vlCH~f? zVO%?)4|?21ZfKW-B>8pzCE#cKH~w`vyH*s4H1DK4u9^i#yny-V{OR{kU?xg`dD-0~ zkgYlBdiwht-3XH{-4rP+)B6V=YXbo>TpP1cfrxzdW#$>s!4qaAWDD+1NS{QvT*k!1 z`C3<7OI(G`0#@Hoz6_Kaa+$`k_4LN@S)GCy|t@sBu<@D$2sqZ{i_F329xX68FD^NxB zlo>y42g%6Hb5hUeuZ4!kEbe!;fD}P~xQOK6B>0)$0ex?#N}ARLNrHc?D*&(}0+D zm1Hr2?`|&}9H$%nHA|wGSG#YjoBPn3bF7xh+fc>je}2%19-PVun8&d5@PtAy!|0rg zX%cZKo-n${iazi_R?^L!-WS_vlaZg#alqo<*+xpdMKr|Ew5 zi6&C@G4;?+11y_9Z`l^w?rV45cjY?oAgHWVx1vJ5D$3<_h z`78%1hq23h7GT8@FOX%q3#nD)eKSLR} z_%}2m)M#xn?2v04K^GYqZa`3%6}=te=61kNv>P=+Ys@e|$zH)r;7)HWYEEu7OqQo$ zPw7SeuR{8*^ZZw>NAHJjy2?sI89v3MS z3giyftH=-E@J7pUWzv}X_yxGTV?V&hg4MF(9OcihEKu9+ri34M_GxL6lF)!O7Fc zoliktSHZ^0)f&F33w-V7>SW<*!{F)eWy5#h#>EbPz+F*cVWE5XZs7i}3%#1XT0s!0 zDXA(UP*6}1N$?-yY5^gSz{bSH!o>?c8`~ontgPu)HN>osi_l}U@^*2EQBQAVAe5xBas00~l83q5p{&m%b zAjU?`Lk~eiVM3r1qo5I^T=gR85eO6vxZ3Lr{_kHXsA%XIm{{02xOngv8i)|6C}?P? z=x7)i=wQWz5(NJrfliD;!YCk%Nvdsu#q^X+Ff2JAn^~^5n_Oq&;PxF$_i!9s3Q8(! z8WvVIb`DOVyTT%(V&d`&ib~2Vs%j5)_4Ex49~oI$+t}LKJ2-lHdU^Z!`uRshMn%WO z#vxy%yi83?&&bRwC@d;2DJ?6nsC!r6(Ad=6^1kOoZ(skw;Lz~o)aNhLGqZE^t842U zn_J(ucXkhd9sT}ud~$kretlmk2(Ob0!+oKmqobi?UEdc9st~Nt{;i%(w1l)tizAHw^Gx%S z#Iq3WMT;GUN5$|LIHV^gVp+FFp(4x^k~%SO{U!2{ii zz(<9r;i}A2Kh%e)7KaCQ*JrX23k7w*6Nw$NzAv)AcC&fnjmN50C4T;A$LJ+OTaoPl z^s#lgWSF|E{x_RTB2jQ{Hkosu*@Zyj?>OcwGHn?QvVko2+AWp1-0TeesW5bFTI7E} zl>fQl-tJpHp89=LujR9?fWl}EQB++BE@GmfFxvhH&w8%#M|XCwdwKDb@*b}4RNay~ zQKGIqAIvYwPC*ym-u*W=>*$(-$eC}X0pT-g zE19Gg2rKGuR8sb6`bcEJn*j5YHQxe!H~i<6Y=`Cchyo3?p9_6A;=z@Ox|7GtB^8Wi+mww;OSB&rMneM zr%0Ba{`bRC9!5cY#Q4Pj%_IJwkNp4UYa8Dfxo5rNk7~0VnB-PZlxL7%3PL51F3EXc zT_I$-Iwzaw+Qf(t>&1nic?fN>VLD_S6w&79rtWlz9r7RiKz>yxY#jR~CnaTkQ1O~D zP|!1oec7a37+iiA#caMp#F{d;P36~5 z*7tJ+1TM%&3|BoJ$iMwr_zHpN+5e8-xveejFxpg`mH+Dp`cI(}U9!|z3@7AU%alb= ztxEcykQTk+8d7kJ`w3%O0esM9{#NoPGJA`#J466!z-(Y5~D(XfSXSe?^ zCX@&&M3R(;o+Mk*F3rg^>qF-YChVJAVRuHJ)(0cBuq@VI6DhB@lc-N?{UWWqE#2GS zY{J~*-;}^a)7V)yN-KCVq3~*;N*qP=wCRr2bgJF!q!$|j-^h0wYbqOx_!&^FWbz0t zWNvws1@b)+eefx!{4vXCEB80A+xM_{jLZlx3_RWxo!gdZF6@WI9z6CGJ0V}3NipP` z4HnX*4di})hPLD(bL*WV^{sl_P|;D39`W?pKjlV8y1t$b2t{-gP1>!N5VBJ;U#t7# zpOQn|DqTj}?zp2cSQGzv(s@Xaz_|DJ@Ormkj7@f3Wv$lBa&Yj*z59R6ncIam3_y<0op z(}zneOJ{!jjWrGiX#Piu>0d+n10QZUULi<-FWgKwsF%q!S>_mHZ6}$zKe_+tTWv$r z^9R{@y?IY}`uxaGBHuc9FfQ1uKJ|1i!po!{$Pm2K-7l^7hX?J0a4>a!3v%*Frow;+ z^`Zb3T@41}X(!GVV*TgiD@2fVwn3>u#s%9IBC*}$-|tIjeMyf>N0Ik`s-u2qX0c^s zI*_d#E!@l43YAz7v90s7-6gt0ED7R&36-U$ok8uy6?$Fg9I!Cu_1u;~;B|?(9zCXG zR`j#AH;H(T59<%(&v-Xp2n_ZI5YLB7aVKG_c9miL%S;)e)JorJ`bhoOjP%t1sF&vn zzJE@d_mkIBR-bmnEo=BLDIC;Gho^lEo_WVUqT4_x!3t(a8+W)q5)nV1#GG2aU2^oN zJw9=#Hl36~?zyYwX5LL-4^r2fZqsvKHMwUSeW(88u*#6+(H;iEU(&$)sMfGFZq^HT zCE3*V;P0h!HSraq?Fwz1 zMz0V7A<~ry{|1kH;xi@Vl42}B0`l=<=0p9QmehZ8)`D+JN@$R9G4pdv-{x4Tro z(f`1^JKbLjX0S)xL3z1CfBb!_45dK9j-5`OAn%sq4JKBRx+-64(NVwZs8@-7L2eYc zF;c=q=8aO;K2FLKB;Qtuel!<4rh~{Ml+Rkb>9r&@(NE}O&auO!76zw<6mAakXn_w! zv%2RlJ;^TRgQxt9H9afbGQVjf9vP{dp3)B_+mCtNo)4Nrw2o1^#LPxahf3MzrTv=6 zT)5k-UAy-Q!y{MfkgS7#yt_fPwZ)Z}`QP$G!*jC_#>OM)Ez>`KeCx>cX(2gix%5QY z<{aLoHWbW_q*3;ax0%zuB_>+UKe5?%VE6o??2BF1-{0T*nOY1z{(a%mXCG*kTsZ!g z+Ay5AmHzkv!so?eH|Daq{rb{W07}-%B~MbIn7y)QJ>fs}FLZahPJ%h#nHZRMHX|SD z`VlMmD(=sm>B8RHk9r;Pd%=9OSEmBgr4(1m9<5<=jr7!ZlHxWF53wp;U8uf6q$G#y zYO=RQyNHteoi3E8uMaCt?p!KnYo7l$`-j?`80j+V`o_gF#Q&9MZ62YDAcI@fXMycI zLuH$-jZr=7Pe}x}sk>O)S_jf84=xm^t`P4M&mS5W^x~{PwIeSJrX29IopPk9Tzp@c z&~MU}=X#$wCs+t&TP9qPK#|99<^zxZ(dcI(i8&gjcVcn_EN*VfQ+KTf=J$VnH9QSa zOB(R0U@t-*UzcPnn5!sAPAJn7Gf$9%DNUzB?n-UP7>zJGB?XIbY z_J~@kX9Me5x*xWy)yzzLDXI4+LMa-@o!7>A0|H*lE(8Kc;@x*&!5o`K|7LN zV#h0&4auw34Zg-}WVyHg>ZUyU*dp_-lp5>1%uO@$kPXc%L{sEtL(6JrK}3(Z@d%Sr zr=7;58gYI4KC?5@E5!b)bfuNAPj`Co?MY{shK0Y84Tj+h#&TU2GAp_DC_57m$aday zkSPAqAAI|hXh-0?KTBWay9^2$X7T1($hTjocOQ8!qzsGgiW3D`+g17m zON5-}|8La2cRXDE);>H!h@R+uL=QotL^nhbL=e3vBx(@R>xe`|Z$Tn@XLLp{(TUy@ zqKw`d41+P=eV^yfea^Xm=bWd!&+|UN_mBC^Gu7j3~S2lh0}`lnB~uIN36rcnP|1wBgTG?u7S)h9kL!;}TS5pR}Kc ziBGY=_yIlQOef3gVxg=--hm&MMwG@r7AJ7G&tNf4Ny>OdBSJ*XQcJyNPCFYr_Gr2j z>Ulw4R?=?1zf=0*sOMQj(xPbC8a^#3F7gx~04b!4uvtexb+=oKGk5`t0kn}&*}w(` z5qaJ454f&U^;2P<;5Hgrwl7cAU}3eLl|dSuUk6>LSkLq|mY^h@!GTYW>8+i%*XHPF zZtJAFgliIHju}0;k6T~j{d`F@48d%CZrx6!uUN?%t}J-o*Ln#8chwF!q;<4Vy*%of zjetioJYo?){c;9CtFs)~EU`N8uIXk;S%ZMaE8d;g&G+^va^ZP0E5N$ zA4dD};3lH2b8S89-F8+pNGKm4Qscj5BC&3nY`Ql+O)T}iraHnR2%nnj)m1O@H`26u z=rEO}-Obelu}Fsi1-5*4&NXj-NWnebn6O!8u1= z5aUQPt~MXO<~MnQ4E#py5W+0=*ls#vXSpU)Xg3ywbKCSivl^tiyba16^WkQu?!GIpc%XMr_wc;zH-*@+GL02SS4% zz%_iNHuS;8#BRECd*ny(EfTF{f7AE8GElijG*q;?G;6MZva_ux5~}e1t!Zg{Z2|;$ zV?~a!z5Hw!f>1|?(Z#ij{h*(L2e0zrYMiUMfr;*A;qY?8ZE2Y!=aGPxN&l?_M%UWI z#m!6FiE0La(51`1YTx(0Mi8ua?WJ%&X1aF%3c72o-JSN8iP6vg(Sb&~kJrUJLB>;6 zDcXpm>gmWYh3fpU=BbDaziaFAt4;ck8)(lQ;M3uRnfl$iie9uK(uTAVg13)aBP4sD z|2+7~qJojsFWJ~vu+KAYb!^Ru6xDg^5=~$Ps#K)X#QD#@v`kGpt?l{ycPV&2Hk5B) zRWs?1JWA0p+CTYz)YfdNnybiP^ZF_BbTL4JnP}Ra#k0%Q3Q2zKkY&N)7|cw765WKa zOzWi}aTUwd_~>qD1xa3^iuF_3(|?dgaUfJ}0I)$exO|H`Bv_GAu}8zoY`lc}h0K_k z)6jJY0@Qp7%7AHMhR~Byq0)SpAi~FCcrKFd`S&vt0rQ{RY8;R*DeMvv_K{?rFID_iNFN8`ZEW2I_1mE zHAxfVs24a~U-yId7D8_LO68*iiLZ_=8j?JrSg5{pEu9n=MY17T5*e-W;@bT6_CnA% z=W&LmX0RPCgV+bBMt;AWH|ai!xwFSb<*zpJ&XTx~u=}mZk*}C=hhq2(`W9zMJ(MDh z6#3S!%y=J9|6(^%{l;m)&sxc2YG=bbWGnf#Sx8u}tJlQVpVo5E8t*k^(pWQnpd^JcXde zXd^!zzk)qnlFv`c9=8L_G>TGZ*cz%1;duCC^o0pEt99|SO>d_N*IA?0J>^EV2E*jq zK)u2KW6&i?K}V3^pA{X7UtS+M*ERi^gIBHxLnwmdgpj%D>-)QDKc4O~LSQUqY4#8mwk+57lqU<6^OUrfdsAcG34PT=!oHH>Jp?kuVA8-foM{N zhPc;vINz!W7g(F^`P!|zOZS3~Y%xH(52#oBZKdty9ol^;t3gjb!Vrqz_ZthHK|>J( zYVx%cW>`*nse&ld zDUI;e%Ku^K?#&VfcM>RjR3uzQ`6g=elP_&)A5QFEXX1VJx)%}RSc_a_>AO9++LpTI z!x+7@8MMKYJDHNqW`Q}&R*YZZCZFj&e8v~4!iQyhks3$oM9^#a{BF;Z7j>{o8P(1N zU3DGZdx6)}Tha$6T`{nh9wzWoq#pFFQJfGp_VIEJJBBw@zur2$4vq|_!h!qc8E)$B zT-|AOQJU55vj67##R;wC&sXxrlAY1^@#Lem6~1I}MlrMsqZT0@RcS1-vGxoq+cH|^ z%el~yBBdQ?G+A=BD~Ib9PLByn0+mkU1dahmxf0SLUI#<=B~e7njcy1DX%%ad>c|40 zmnu;nIKjC-dK`B!3gi6mzc?>XKTztf@0ruzBsT)RZF^jbG&Xtu^qbzJ>p z%O}@lJWEB8eZ)~8k~kZ=g>OcQ?oV;~Woq5~JAtGg@hhX-Zi9FkPZ13?eAOlhNVDJ@m$}?7A zZSSUlS&kE}`rlmFKRXV)+MLGF%l3#V5E#j;iNE^!62#V-ci}CFePaS?1EWtSfCs%0 z%5I8^uZmtzI4%Lj^G^y1{}kYhM|&Va6eHdFqnba{(|h;TSe)H3yP1 z)tfCftGCD%wry}B*z3f5XAE$`{!37V@%|;~jpc}F^@RD8)Lle$fsmld3AbpBlLwOF z+ufJbe#Mg`RgZu!G!*z-JvpiTBD8AArSxZe`S`V+MW&m8*J@CrY}PkQ0)9A2nTX@drEEp z{6X`uFNCugVaPWO_!R+$LN}6)ay~17?|PM>)PPUx9{*AsLkdiQSyxxu)q$ zTXAyK%`_UK&G5nvvuCk$ckBFcNW-xrX{4VN7B3tLJwGKZpb)1e4Xw=-QEkUhoZ z)9?+Y{H{LpjBBkglDq^RUxMDR=+s%(KMd*8@O5WB0rCQ}+94Lt!aW5wV}4QP8OK5D zPu4br5a~(n8O;4DO(RngNw)@Pjt_DckSpr8==RnrhQSnzW8tV8gM1wU=SFgCTHwYr%>B-PuB(c^z12rex=h+TE zW&SU{!zqUl+MbMU^})ezDO$VDHZO22KUS+9Jhs6VT-3lsq=Er9@e*Whw2jd(g|j7Hi~s=tqj2rRrFN{=SlhS4xE96rVGj|)qT=^mos)e$ioM%upO? zqd&h{n3p~C&d14$@NOZhXWNQiH5m3(-u>67VdRSS6q6;H_YB-LT#D3 zC}Cbu2iDJcegx7$*5}EnBg858C!*uV|ccQ z2|J6r@B!j)deU%VQW1rztylsQ1h7FYBng zZb*U$)xn=X=5D*uzXV*f4iCWJ+fQjM2B#NTrz^|xmJaDList(@Z=Lwz9#d{xZ=CaM zermp^oIk+iUx9={4sNvr*8!vq>2Nm|#!FC)y*iLOKF8|D0B3HVYLsCverKVQ;PyJF z{3{;RXm+GHr*hi*h*k6IW=64{ZI;cH(c6-hH)0Mb84zZ`ywIrm3rlIX zsqH~*fuuvv&N@^QwBTwWt-Zu&HJ&p$-8S<5!%~pM*CKTvrMi(u`;1PvLiK#%`a51q zL=hK~Nk2wkHo72e!0Hv1@J9I0M~*uuF7x^MyS|KzYQ;Y46Qy}-pD_z#ywx<+c-H}{ zizQ2u>W7$@LnY(B``ToHggG6$Nklv-BKiW4?1Af>4Kn=F zp30AO`^mS6A3EB__0u9eJT0Am?dMb`e^A9nmc|Y8%4?13Db-7K>10j__^62|?+8`k zaAjBf*edtgm_O$%XUkj18y{wc3wcm$kkLA{ujt~?HSi~5msgOo76+stb|{)Rp82s%Yk(YD zkeu?#vb{IWl}H+tFKePuu-RQFg5w{`1IRW0FL~8QeMkk5!`EF`#?mQ1y|99QBEgL^ z+F4J(w(ukY`EObBlV1Xd|K|5slxQd2iDveaJU@`>y_pLY0kQ>2XVhxL+5aWR`5##% zzW7Ouu|V8nv6Ql!PK?0uZglz8*Uoaxx_>9R&`-f=PP#GQu^llm?R8pBxNRxUodfdb zq;B<_pl@ZtT!JL`0I5f9=?BS+xfCbc+>KbO=EgW1z6k)t zme`9S5=sl^XE)u?f|hGo9^YNP_v*ELI=S*MT}VF5@uXCCwaXfbMl(??W(9 zn(eh5xdi=;It9o^x8JT$!Og?r1$l~_^sDYeA&)$Xm{Ng zvwgBAi$sRx#A&y_ry+zW`mN*}Nu$+B^AL=-ha~#-=rpnT7pF9rROnDHsf)iv4e~a@ zBgu=|A5 zw>Y7V>_}z_OKl1A_Adv}RnFdpR}1#7NokuL1i?@zPA|sIjlIHytNmzHT0R5qcs45- zbb)+1Bl2#+6@^iM9);%_dm+7}+)0_eGuTrJhiaMnw-g(rp~_!0Yp*6qUzMNubVS|# z-OgVM$z0Z0t}fd(`PfnzHx|MU00BXwErzbRB|=|e*sSPi^rI(tdzqfQOyRi~M}>$@ zc|(I5x1>T?6Nhx?8J{jCE#F?8c!q{QPwF35_o{OAl-<3@=*zr*M!Bx}hT}ZYu%HFl@lN z{FUAcyCBn4yC(W%t(AohUTxoCPHC#<{nowhA&H;lBuVt<6olIC+EGJ(ajDQb$LH7g z7MzEVOJL{Ri?kO6K$3QTatZpbd9@S|9lO*~FWOJ5zOqSk8ZoPE63NKYf-oWYAj1E6 zs7ulzzN?b6vwy|6A(qUt&v~w4=&GmEC8#|y@kD=0^U;aH;_W2~j#N2Rkp?}qSA7_= zlZJh7gPXU%7VPH0aA1fc^)^N)$z+P*fn26y?UU2=CNZ{)j45JDjrSxS3OXwD^nj;g z0cjTO*KjVo<}`Qk1#H5AoX434awdMc^`r=R$q(8=N&z(%XAJjTz&$rV+75qmICipp zin}qCjbubE*>YW_r{qL#lG1dz7*03kl$0g}(AL3t{%$>UXpe61ppVswl5?s1-*Qad zE!nZ?lCU;OsyXKU0|S#su|3Sm71m70s{zvUDpQT>1@q=M)wIIWhl5c6y)>>n559 z$N%*+NHFBheoKcMv)$e5>FqZHlHOuRqQD6L9;WL$;cs_LYC4#~=f-VuLIPIsivw@u zxWDdT>k?}k@uOzzGduF~H>oa>dP^H@G z&M`x;6rDWRI`$Av%w|7vJ)~ZSLE1N=L@Ux3!bmkm zU^6N1H!jB_u^%r%p}|^Gx`f2oJkf6eb4>_p9V3-7 z;QNiayN?09XgOLtE7ji2iBwG5^p0$jNl$hPrK`o!PzX@sH4p2&1eG7{%OX;0{7rPK zCC#H4HLC6X+*_aBy%p}|M~e$?-H@X`DmFLVuL-+3?DnP7%hu%$$=W%`G)FfoZX#8)auYW6p{r}x(9Bn`e6Ro~>@d~xn-oe)aS-BY1 z*gJrpmC|6`S8XXiO08yOwW9hqNii!cxPaB!EXX=T!5R^@Z7_3UHJib|X>eU*%V=Da zAZ}eOX)R!S>v7!(cf*_Ix!C){sXuxMLQ5C(fvrlhYFt31mlduO*#0uhB^+gWN_0%b zgDb52Ud30`gXpF$!^B6P&Bt@`1DHGI^=13p$k~}*TzKo#3IReo>X{KarjrO)iAH%u zLD5dn;l#U`K<}8D(<$yO&r;KoqgvO`jiMg>{lqI-JU2CRJxkRAK`KmR6m$Q#gjQ6> zXre|nSBXccoHY9?_e|)9EawlCc~AXs@IaMp%8co-xJdi*%mATAVUh$a-Pp~~^c-q7 z6Y=k_NhwqJ*iSob&r==2YIk1vxa!XGn18gC*&5+V$8X{J>dkNnuvXq~J3)gLjyo^j zNr%;VFL`k1cvDm1tj*oopDZA2A`fw;J`}L*{&IcOd44|fT6WYTS$Sn2lxX%#WHN3I zB>uO9gAuSI+pR=OxI6PI{-?dsUXrrv77nWJ>Wyw8);FzpGa49eDz9iZ?SA z&NsAmM}2CO2Zz4*?F3B@FCmpw+f#k(9GRo~N8|+$V&;UbbRGws=}zKP2 zSD)xrv{i_IH+{vp>KMOX1zra|(P8#UW z5ShLr@AuZv0v1|1%J-H>5u<}P@VrKyn}sFQf|f0RG7N=vH{X1Z}={l zg|lh|4R6$Puw+RQ40hyditvShEC8KRcB2aKoe_LsNAAYu+u3rA_AjcK((=)oC(4MI z8fOOF!5AV?NR}Y}goW6*&0I2{^yzav<2ssY;p&1O4| z*US!a4E@#~?QG=we+S&Ysw_nnsAP8SiK2>@$t9?}sAU(tB6q`fwDHVWsOR-|9apg~ zKRZ?)fDyYuXleN8d4_(flFEXvI7tUXxvl_oX?5meNsi{<+8};wh4?>Typ2M_CWF~4 zI^nvZFn}`zCqlI3X!8HTk-xtEeq&n7+D-hacmX?S<`eH|UcPzsVcfn{`JW>A-@8h?t z<84}wpiiCPcGa5xKkxe2z3|q?G|yQM^{uS2oWiIzp*>nHTZyRO zzVtU;5C4VF)YL;5?>;O7tIMzGatUIoxCGTg<3akPkY#Eo>>dgRR|5*H(Yh_?Et4g~ z|5On1YYFu>bA~X!GtfqxE3^M98`P}<9_GHZe3-7@JQgD0pBcda_dO?nx7p%c-NShG z9u?fY1U*UH4UIg(N-v-3L|=jmG)@#jvj2h`Ac_FkU=bkgwknSr9bo}uPHu!=c=&KQ6WzPj}VP;3Tto(jhaPUZgRzL&rGcRpm9XCBpe zHc|iU)9_VbnDBq7D@h2WP^_44Q^WA?tw+M0u!~ihtIo$Xb7E85`q~T~?tDD6B*b)G zQdV$(j_*T02>Qk#Ya7$&FU+#ZsyuzVlBiO_Rfni+4lD1eBOflmysl%3OuvRQUZx&7C9MHcxSh(#yN$EP?bQ+Aq?gNfCX`X7N}#JC z*DC=Mf_Ui6HDhBKvkJ8+n{mpkW>i}mo zg#Ltl%gHZ+E=`)BkRPNIohf4iivdME7VchIRj_C(@KYrJnwk8wEq&P$0?cs~_6%rE zqNbf@y#%EK%*_1#s4DqOkPJ|MXbu9YDJmX+fUH$PPlmI0u0w}xESd6(xsG;Hsjk^UaJbzbI%JW(HI?TZzfu>Qkg{zsp_|HM`D>$F^gG+XvUzx;7&x}{bj z8JZP0rMi{UiD&cwUBCVBUG~3wB>u^%A0=T2=Y%>4QVxi%%c)<&@)rxJSYqQyi{yKYHq4ml{QcldZ$qN(MgF}ldmipQ^1fK4hYW2-s|6*cXkLMQI(SZM#aF%40)LsR!EsI6morQ($kIrV1G`VvoTaQT22 zI!QHNnab($W32|DZ&45b&A+40yux%{!IGfFo&rjQcIo#iID*|#GW?tc@>4gP6sbi; z2pQAANZ^bEORK+sLZgYZnAmA!_ffLvOr7Cp@s$J^qVtCsIFR{&ea5BrwDO~$Z?yOuGJ9=~bF?YgUF zXXH>){ER<-`~E`?x)<22x!TtKUM-_*@U5dt%YG0tN)=R$putX|!%FOszLOj0aR2Uf zaOUdg1zJdUO|91O89h->RT1?XTetg^pmU^r>+q9%CuzffcT5JhG zVX_^zmdHcxmiqDR538cdn9K&rzaU*+zBDu{@uD45XcW4Jm3eUqdUXln1?A+-w4FUC z8M(>n#o;qCR55c28lu7!lKyR)aQz}-9_yL6qWlBc1J*+Qb>j;?E0sqDng={yKlu8* zu;8ViT_WZ-m>fFP-*U1(Ss0;IlG*DLy6I~E0)UdKw@$T=jiINDY4I*C`(?f|mmmnh zI?iXA%!grINOwYwY$+e&eLhUH)sB+aC*e0#;WJ3oyJfcaYU+$lV;Mg1DNcOa)Fr8r zzxYE>s1P~a7il{5R@y4b> zq)4Rb?S5rBK9;erGt!lB#@(*1KX**m<+!(WvFs*IHGxja659!;xvhtYUkjB{>dYp}Yhkf|aCA47puGD*0GE z6)EyGB69iAcsGpWWu#Ei9p(H2`Vho`wg!?VhWY3^Tk=kk4{8zw!wc| z3a`|LY`Zyp1JN&}W}BPT(YKLaWJO01iDRQUGnT!5t0@3zT5 z=WoFvHNMrVi?vpmZzP<(ljUl$ue+|YT2v?3oorF>2i2El+V8Kah!Gi4DkNO;Nrj|| z;1vA6{=Y6lA14Q`t%<}>V<~`bO_l#N5jcvZoz5qJ%schYOvmImd z@jpABwGJvnfp#gj_U4)QLo?hC=w~j6~@DZjKW?Ecja`%fXfrIx`{Rgd!&) zh2@2g1@$LyEC&&2*Z+5a%KGJC2-J?6))dCbS2TA{G^LTSdDHd0JKz=Mt`2;Ne3ONu z4Etl$t)cf39=%1%34zI>981`rjG?E74i(*p9v=@SZewj8og87d!iO%sYNWnBh?y$4-k50!atKbO^Lh7ugpd$ z^{XoFRetJ{P2n@|o@1(=I{K8_a|y~df_!EG^i$)0_JWG&@aTG5EE_!b+s2*TCoQ*5 z*x?|zdTHT-?3v~~YbyO9sCOtn&VbqPjslyvOE~tHo{n~ly|yTXuN~c9P3naW%d*3Y zy+K8&8PvnyE3;j57#s$AAs_z!ov7cP4My4SEnA$$2=f_uG&jBPkR*Rtnh(i&UK1$F zucVx&kEC8w?N`ky|NcRW2(0E!J9k-I-Jag>-) zN*_z}aV0T)6r&0ts^DPg*4|k$$Po>DI3ehY)>cT6vV9lOKv}~VWi(S$saPFh6?yL? z4_T{sDyj#g(NI^pKie>)!6D$NLlf~qytO!ra_F|~wdN!VdQO@;vOGK{?_vC@-vgzN z-@gS;Gbh9a*c9m)Y%hu}mB|UWt)PB~Ij}^30)k__bz6;5LeP>_6v@1qiU+Q8Gi~&8 zq%fvZ4iMP?={zRZ;iAk+TOCFo?~l%Nt7z4lZ4>t_QwdfKWbf_|481?f9_JTrk{|0Q z{5%`sPd+Xi@gt$wcACe|h4w9MHU z*be@Zu?zq5>|dd?AV2-uFXR5<_DP|j;Qvn!BqDVpKMu@GXi%jL*G>BsqJc8Y?{vWx z@Sj3cZf3yEKRHsN9nb&#VLXO2Z5uaj#t}XA)YiXD6WYD2atSgeHU8f;;UBA4I90u$ z&8sI$;K@YPqAPd_8W%iY4B-5;wH(Ja@gRSSlEJhLRVSDjPxpXgh7;GNe& zE)i~|m&SnmHCC|?oL;DxN`nM{$flf44CPw$T?5BXWpDU1j#jyWpI6BPG(ket;a!Zn zy%y?|_Gq}nYWoif-PW?ZXJoUsi5lgc^$Xu|7e!3fFbZqpC zD;n=+)RO^3 zQnUY;hyMHxgiH78Vtz~C1~+*ELz%rLw&V56TEzr3 zXB%B}2%foe?;)T!$hS@Ue2{FPOY z5=LBW(gq!5zxO8Z-i?HNg786KnPHhFGT-h6mM7a7&L(?c_|z$}-lhN?Y{gPR+p0z& zYdP~57%;*#p1Kc}G~Ykqmn_AUQrbR1GrGwaBqlIY_OxV)9vozZoJ`}&S=d5bJQ?K; zp&~nf$bB^6s^dl{n!NcKN?E7ME5#JtUTns!+%|cPm>Pn!80UI*Tbj}o7aH4~y_~9f z!mG@%7B_x;rOrs&Lt#jA+UgV-{oZ-YS>Z(EvV>#~WILTXt z!^hkyt%;QEG!@k{bst>&6$ywx`eG@fF$DC|Ig!s)G~aBSSzqOe|g`RLUJv0E6t8<~BT6 z*Eer!f-Cg|MdF-IJ$>mA5&ZoTuR~*tU|%<*Gtl!&nvND!oe+_d>OrY%Q#>FfbPLF< z?UJ!~QQm+2IdijR`p%Gt=wRFDRMVf}Hh`Q)n8_sXx;nf*Xrq<5Q_ur0erdx(V@k8B z)(a`!e`U{$Xc{X zj>X*4GnE)Q2)DmAW9>p%8zv)!^9;ygiKfu@&(|I|PC63o?X6kip=Q#M12*W=)_cvj zlICm$Smq4mpY){f64acciZ5ip@r!BHR0R0%QeA5a0(m(di#DBf@;~{8U0t0S?2i$l zc*!4qjs6VEyZIdLl+#DABFd~gjMA&?f#leFMz!5zVY@rPE=?N)h1GsQ1fwU#_n9$$ zD`x0atiAvHJI*nv0gxf`adZNh%&}_g`l>h^UWSe}Y__kPW+?Bk91^1_3 z#XT=Gf;H4w8`2FhO+_y8T@odCn;9=sH}ytQum(oMNHe;j1BrAZ$(-4ysV>r6Pvf88 z$?cx@zDKu&D#896f~)Hj1ldlz7w64S_pyoQE`AOFtg@@_>V64Ap1J^i^n4~?6A5wq z!-NBMiAlU{qi8?%PPWlim6KCGe7|elX^ib$X|B z$cy^aWeeL}2|(GS-#cmpk>!p8L8j zO=)CK(XxCKF@JWBg&Cdczq#$|_j+EZruJhm)5{WY9Q*ax9cPF7z6yv>jqsL2RJCQz!J`ruijkD(|QOqlKu&XykTV^S6Jckmp)4 zSp$Xp!(DVn$FxVd#~73p69jM9(zDM62w`x6Qz(7LA}&G05l>B^y#OEB1U=R^O%2ZB z3du6I?d4M~yM^=pX{rhqu86ryiEffsI8LPCFf)&@vdk4u0xe@+G@o?WI~3>i>xo6n zJvS~e1|=s8o}yr{(N5+_j$y@8y9A|gv}6|Wt&DPi7)i>Twj zES>NgT=YV=GGJ~`{=i88RP9>`7(d_qq|>-C@e;I2dx4arIoDFQ`)yv={Z{$ga<~N| zpelU{nCFbr=!sz3aY!(xGB~aOs6^nTTXMJZR?R5FhPw6&=g&3djw#hXoV&QFv42JH zt_+{n#I{I&W8X~vBJ&&RwDc_#rDCM0()tn1VfJ06E9R>82GAJ}H&r#Sva7)db@SKm zxtLbREnI*fPLCK9T7eHH%>fi2Q0(>UsK$3_pAE%b9h|0|=ULiW!tpuhI(YHpw)_$E zR>7!09wl|q1B>RuTd z*Dd__Ys8(CjeObmyA@_LRxju%y4=gaM*VLQgKwxp4{`-G zGDE1@7268KLA;*O@x1fQtR|ppBq1Bm0ol~P7?C6YrQiJr?^m**J?fCH&oDQwmSwIq zRR6yy4gXf~EwDTR=2n!vFP=~X*KuFC{wp{Cx5^{6BQRpXGfj0YlaO+{v=F{>k(+iSVRunn)5E>ft2zrwsoer)SE;_UyTIh+qG^ccGoP}e zWk?<%s^QF&usot3FH0^&nTDqrZ(Mcp&_gHM;;$d|FaWV;Ejx`DYpStfGXHsTh_;z_ z;DB)Fyfzq(h0of`;*T5+lnh_wKEu2|fZ&YQ>*^{JrGq3vx6ZwFT7npxwFai}}{??qRQ^^|ut8AiCg?L5;zj`17azE$HtD2a88T5?d#ZHXM=z^9vXCh{&X z(Q9l}lGOSVF3C~?#-Sg3lBWIRX>I5xbrK=X!?E`Ili{qMtcBdK<~_^EH-i z%Q)GqKSXqB9g8vnaici=p9YVA<&poP3S)uoUs3h%s)0(;CM$l1p#kS+W$_5%aez>K zl%2t1`%;H>O~7E+cErqaPGll{ru_je#KoF=YMtT8dz>`>#t?Y^5jL|dCoE6T1m==i zLRQRksAg#u%2N{ek(ckwr=pz~b)Ty{DH2`Quc{fEaRN#>OKkusSz~o@-U4&;Ann2E z-R5SEOORPTDY!$@tbtKB&9!3Zyl*6NlkW@K-rflkxOn(9;*f9cHSS!w<4(qiEWd$r zPJW0Zt?+{s2?A+<`gC%wUk@%InZDtf+1Fmyy+)9_bw9GLcmE_J)lwNP-`Kr-o_quhNy@Any6)LL^Pn!Wi_y!; zjb3)8iao7+w2}>ZbX*hNTC(oJ@Z5#DK=|IuP|KA7DLY>H&P8?FGya|a4E`n4e(Xdi zcZb?})7S=y{gUi1A_bSswNs4{l~zQ}C0rz~i6g@1K)>c~3^FSY%hW zUT-oT)YhPUz4w}s`jdSROvsu3g-@~J)L!P8D_=uzac74!*XoBOCp(aT1WciLLvxd6 zbBie*Ve*>S7>dT!orM;pZ{D?&Wq~)p|8CsP;qy*y#19rzfd)oC2+QXV$sEN}M~<@B zMoYy-0@K-;sk_!wrO*AV>L2Ijs^`u@&fqZ>jLj0b)MK08DY-GvICr))#VwiA%%AN6 z+Mg0iEamJI1ND{Cpi<7UZZ-=vr=MJ>>ls;-^&+#V)5~65DO1Khc5epIcxLTP3*)Tl z(PX{s8;^W10j=fpkeDd~{JedjKQ~Tq0<79xmiTy_>bc_09;b}2>0~9LZAgs}%JzGj zCQWsp)OezBs+Z=<$GZ1CU>pqY5iV{PFK#e)4*p!jiwcHT-5~1s1o1r8|l8?G@mSa4gr#K?qrQsIS#2433xP9xwz6?+3 zJppU@TOF1@m5J>{SDLANgF@LL`Li3^b7sc2-oAPC92I1)ITwpfSbLRA3 zkQ?58wk9PcBiCBoLWC}y>To|`d$4b6yr4#mVz~t6fP|bV`)DK6_xEcQsLD>?o1}bQ zNZZg8y#!GkqP-Uf8S``9>t6~c2uG$sC088*XR7)Eoyx<0Lp3d?xKAlJj4suVO>UG} zeGmVB@nb1fxe4SNu#CH3wWbY!~H>U;Kp zETENJOVR5bqtsHL6P*(Jr|7a;`x0uT(Ox!w_CTLl1fD(0ISz(vwirwD` zX?Vpj@5ZooNj3jb^;QDpwZ_>x04&STW1&+D|41WLfzr6X;Vl{GFpnbBxJNOh&#YXP6VRdUNGStwKdlkZ~ z$<5T3QHcgf{VUEy;?hkC&QY@rx@mJYB%< zGhXKW9-iaWKhlC6X!J7XVbI$i`igFe+5!FZklH7ek%j`P_;u_L0P0K@&fF+--d`r}$$p z-=W=YiBikL0P-Crae$69pUm}g1-EVM2=j(5>fe>-PVdWAIuQeY)fE2sUDJ!gwoPek0T}KK)^yzZ;VLH-a@?ClsT)!1&L(!Lqh%S7&n7pF`W65ou?{ zt*2sWO#%f)%kOBI!g$H(fCC0s$MC7mK_RgKl$<^xnni)sQQgu6r}xllAxZiBDVj&rZGez>vZE2=0f~ zBRh>>Ua2^m4(W;ZDdTGO&5tnamLHAF3>bDot%EwY=kI?;~y1IR0l90+1IWgzO^v-g{XH$SQ_XNSEFKhxJYrc2d@&CY{E zw~r^;&g^Z1;|U$oeVd?0EhTg4G=nmGU?kXe)g0x$H*3JJe8ChaUN)*YEc#K9SE(^< zr{YWiDeHt*?-Fb)YbL$&wpKusB@VT(4Tm ziWLr$SSlf>!r65D<_qZjV%W|%)6TA!^a?UwRXkr6RpKoJ2=ggclcV_O) zz4v#&`-cy^`)T*C+O=v`)mrcSE&|==LwU)SPD8<-u}1O*(0ongogiF7NF0^6-F*OC}x3gRe+WlqBB?6dD}I=!VXM3r@-EudlB<AVi zH)>s=GK=8xoJdD2gCkiFuxC^dnlWkE+1_YMFGf!&WS3nBGV&26S?eY6X+~jSw!9*Y zmg6-RhP?>E7q$Z&tYJYx3p1yxi-ne2&;8c)OYKPgRvFNS(hF8ANS6}J8-1ix)s9rx z@hp2`BDy1WQW@aur2u4PoKzR>ZHw(j`@J>*gY7_C;a`9h`2`f59qzrmHrJkr9hmJU zC4NwlevQX34}m9N6Us=jn6G7)jkd5yIAyF3#|*c+6l?lM-qeN$o#hBK41J%d9_A{z znT8oEQDOVET&a)C@hJsFC$8}8lv9mOI8 zp2o!%@f>TF4WzYcTSWK;Z*B?mU)+HR%$%~77rU|@&ZtHRdTc;#*mzd`!e0Z&$5i$R z+QG+(j#ju^>r>u_f@rEcg^}o8+%wn8UD8I!KkjU~I-~++ic#D(y!CnJ0+@$)dID`o zm&xRliayG6Z7L@7-H|3ss*iQ6PB=YlPR$uU;0G#)o>`qj@$e||mT<`QY zJ1*dTMhI{!-$1|sVRF)a%tV;q# z&R6vW6rpW9H=bP8G=)xxTR)zE&F%yN$Uc2iC zYZ@df^VfR(0_3;<8W(-;ghiMM&VnCaQn+Fn;kV55i1o=pvmpUbaPepz9~Nd3fX!CG z#mfQozfAp?azc<2JgsFV5-crkTUnRLBE_fQvL>q=l5FJ7A*{+7OryA$=Y-XT;IXSR z0C9Hn;Ka4PZCude3XRy4c^PZ0Yj-d6pNZ(~f7%;?8`RI0haW`Z={7&YYI10fa9pU+h9~0arSP?mSs9AM-Hy>c{mE zfq4E4bw?VAq}OFS>UqY!vh0cv7lxD66=nxD&)kk-T`ASF zp*l#G#YD^{J_p>svzhLy({v(4Y>R!e$K`2SA*)K&^wxr`@6pV`JK$=ODq%IM!4YFC z3mda*A>%ja!ys5}7@B2oWM}nyYU$(c5vh@U1HxnmdT*08YIZ*?W>9o{XV-?aH|r=w z0dRugWxQka1qW}ZA_-$ve3k5Nap{3DXCQLzt zkacH-nL$5q+i2(X4M&kM?GThm#Uv_MBs&u3& z_AmzLPLO$gylyUYF*7XWlg(vUJN(qLWTkvg8HKo7y~vjP=4%FI=C^J3lLr>tF!d;N zPJpv|H-bi?d=LrF1@p$QVT8Zon8?SzAl(LGK{>4x`Olu+H1{SeFJ}%;^z2Y9Af0-R zOEzzvV`q~!zE<&BL-yFSRBXk(ohp&2*mSlCcS1&%Z(uHVvH9ahJUw~J2p60o4vrZR z>h*!k40ZBoKVlGV8HMh~Z9}|4NzTco+txad?QV<|BO;CkQ-#&J<>^~qUC|!(jD9%d za_>DL)R^a3J_AoyGZA6|=u$IRWq0a+0p)-{%|LoCqO3#-JVkf9{2P47Vd>WKl^S71 zHTab@!b8Id8zn2v<_bQT{cg+Ebh{5Ib*c7;co>!dzBbKpP*n&NmUekS+=-!m&sdb= zYkid8kauK%!^|Suk37cE{RLEeX1Qr<5u+E*3yLaWo5tOCFJGR9^wa=tQUk_2@8<`% z%JjXh#-kySZbtr(Yf7sXN1xR%a_U_T4rzi0 zlLc(OM1xAG{pgU;M9=Y&;pw^$YoGd$>qy=`l-CIA1R!y#D}KMu>;mi~9Z+*>$h|N{ zr26ZpA2$M3{-BV+hZE`iEQbrE)!!nQRe^3!nt1!nvw zX7Zn$9T?wP4O)S!@&eN`Y@`eWcC@t%Nz3I_!O;@cELIP@dIhiF0M5BO1DOKpSahmk zE`qzFB(xyGq!lL{GV^hb#XVHtUDRc78z5bI1qwF{edSL;<^Xu9NO(~=*W8ETczMyp zNaUX6xQK9h-xo$z6ifM+u(K@aPKN(>M0wX!!*>?8+)R^b*W(=!1N*;#0>>+IZdDCg z3;9e&b=8QYh-OB|aCq67dK3Zx1sdbLle7cy&k@WMGGr=e7$suf;B(-5wBsF_JqT@i5dRj&4p5WTn>+(p? zJz7h_cTcJTXGf+rv1FyZMKzK!e9@b9_<)x{KVI)Bt`x#FUb2%y{K}%pyMN(yvwcb1 zLr%ibSE%6g#F$Z@r~R_GBumnAeNlD95QP#D4`Y&Awj4_EW!t(b1F@ySjLCQ5ae^Q3 zyp}Gak)XJcg5~nlELF9*r`9X!7>#u_vR*2yG&j3HP4}aya-nLc{|r_;M?2*={FO`A z)HAxtETOgVa*5APF#eCsQvLeBz`y_8G5lC4L}{x|?QHJ2979}Op7mae`;7z3ch%8Q zF%=CI0y&6Y|APn`nyl74RBvA~E8mN~Hzt#c=+xDU=o=?qX<^(R8$m4FELv^z+7|*z zPT!~DIBRP3P3y>7v3XW2Wj>yr9ijEU>1vzuYULMDW3~^AYeB2~{hYw9ICfSTG>JEa zKO@?ZHq62AeJ+yBDSLIA_+44`P~pW7vNdN=VHLM_gCQy;6ToVK^e_T3tF=rN5hPG# z1pp%)?e}6ni72J6xoct+^~wHnjv8-#$(VLC_%bzr6t%Cz`@C;KwPJ23$PG^gw77_L zXvBi=`(Hq+Cs_M6q9IvvN>?_X5Bm^T>qA--1Vn`U$rtF@wR@Cq)iIC!-n4GrT!9s|Nbf?4$w*Q&%1g{UWT^4>mA& zO^9-`t6cJDj&0OoUlM5E6C=ye>zxuDHwQmt{_Gw3v%BgJX{oi|>any5lo#O8rNxR^ z*{qpegFD>=DX7OQJH<*_CYt)NH-T?}Tpb7eMz9Gy3xCxe1KL^GjXfZptS(yoaDWBS z2ih#myr)HT84t$PVkdR2#V#LD;%3e_9`LW*43$Am5%>oCY2dLEhSzUs9cpF2?mm94 z&Gr{8WuotieID!lb4Gbrsylj|w9zQ#scHbY|`Y(}Avd+HAF*!Z_Vej5zouItgW zLpOA1(Jd`~cFMspcJs!-O{FxQC$ipG0aOcYLS~08Jlo1SX!5g2gtgSHfX3AK)kS-- zRV^)W6*i@&|P;HVfZzCPR#2TN76C3Mh z7z*<>a}?*FmaVGg?PL}fZfrUz41CzzQnf{42qy0mwN$*Br|=39rQPi@ZyQ3&84 zys--#ZWkLU+rcL8sDqH%gC9i}sO2FoJfplUQ$=Q*m%AS|zaQ>1DmJr7KFw1NefkwC!@vpI!aULHg@={|G`x=+GuG zsW7&K8j%eb=eT8UEdpORLo%o8q5=wfP64bBB7a|p0ljnEF_PF-fFN&t120#nc~2f2 z8reDHm)>80RdR5C*fG@V0lt4Cx)o||O9Wkenq$a{yAj7AIq@3z+cLX0MYa~>oB1<% zR!bE-`av(R>D>S%D_TK-Fx=mk1Ni?r-9Kq7`i&cjx@gB!{tMMsy6q>zsnxd}T<)T7 zHmm}GG)H9qoPvXMNHu3n#EPc2dwP&#{p~BYwc)xbx4cfOrn>2sR&QE3ZQG1u_=0#_ zr>z5`+yDqXOzZO}Yu4<(>v$-ba;ErbT}!K3r@t~fz1$vg?M!uEzvZ)0KdZCZbJ|P? zZ;-|_N;0@e@Djm{47H@&jIDHgAGoiq5h$AQAhL9v{*}m5W_Z`}a6Of_Kae1ses(`L zp{-l|TV^n3!)dYk6nP6N(pK{^BjR$4on*=D^E{t$$Wp3I*R;ZNbVvk{!&4*tk;h#B zA!h(6acBUVYC-#5BGj^RZkRh#d!&g9cQs>6lwV|T5;yFcPx~lL{ynK@I zu0p5c6Z@k3Svz>WO^Is z`SkcHs!`zdAIWQ|9f-L*)<)+L-tfnZG0fg}2hC?AEbLfzWq_g^6tj~p3z(6^z*!xu zZ2=V^+XL{M!g<~xUgm4VSbWfFW9q!)60mXzVH$6N}<2Bc$E9VD+0)@bmIBf zc=Cbmat(UC$`)yM@J5DfTO`7X@PT>@AOSQ3%>ql2YmTy})%8he)>_QcA%z5!@cw!{ zQI8HsS#9=}5RX9pHtB{9^xnuOAMV`0A&&A@hU7;M@b`qx;-9d7%lKbYgMY4m@^jq= z@M_;h2>t_EiytRvjr^iUq_^Ig1V|_2R|$^41Or~U`de;2#qSUhK+V%XSH>awDczDE z{!<6!I;i6o+F%k$hdFhq&MMPFH>&4XFelS#yUy}Ej*9--yUey1#U0YyY8dA%6?L`U z527?YGDbq< zjEq^eL1n$7$-!@OF_}QcKl9EmCdtfNa;2%ti^U~(h`J0B1Bw-&CN5Rmtu>*ZRv&wc z!8X{Qlxau^Sv`j&!n79{CB`g~5jCz%rJC;ST*dkdpPEQ?mVrtr4j+Wln@ZU0oUSji zSaqiL(4+4bo(X;!acSvvv!y0!#;Y3|9CbC5efvS{VkzE2!m`Mm_TCfAFV&j!7M=dk z+GWV|_Cz3?PvCQBH}dspT%OUa(%qvYk^|{qKy9^mFNA?W6#lGgwo3Ku!e+~ICGRR( zc>sr?p(7EHR#j2)P-MDIcdr1L+IAr!rBdWsi(8|>6mR+MT1WI_mNQNLpx1*c$3q1F z+%_=OsCEf$PL|F9%*XeuKi8}w8Qn3vi3gi-M$STWiyGVlL(;4 zm7yVDfNJevYhFWeey|q5#Pld&oiL3lF3?Ztw$Zbs*Z#DXSQMsJ_8&1}cvPuQJ9YLC zBCj$({DeicD)sDdWj9`a)8- zHt3Dm)F{@Tm+U+n)DtBcXSEnG%ga}d@+}y5pC_ZY+dccV5t^S)Ce?ZUm11F-mb=#l7D+BXnp#2F{OddRzR^?(6yo?Uymd?FM{Xl04iu5UoCFhu zfG;PYKy^;aT#KO-C}1dWY>3E_E%|gjZ-Kef+Owe-R0+Qkq|0Wy8+jDbLgoK#)Rp*R zv!Oyi)fPSaUZHS_PR>rI=~OC}W~MBnwDwEbX(P${jmRY}u_d$YOUpcj!eqk-ZWk*f z`uvcp1nHk@3*-g5Kk$xEv{O|X0Ikl|l2O#@uS(;*3sBis23J^wNOE-Ma;9t-PAA!y zbm8KJm#;Gn5jtXVs3_|zL9s0RH11idr%JgA#{E#o`iXKL4lw#NDTf~nLSSY2A(Q2m zn_2!Fu+3i_6xGE5M-M1H!3>9shJL;N(-S3HI&7-L`1OpwII5I^Bw-!H4S*k(4I|u~ ziYD6+Qy?=w8UNmxnQvF5y2u@@F3yTNz)vvFX{n*T_<5(W=PZ94P@?h^g)E9T8)x^kl zjcs?Y4>1_CIJ6gC^nYgj=EJrqWunAm*QX0Dnpf=3>cQ9-@t54pieYX=Cm@ExdWc@d z&S5m`S+}$SKBlH|ujU=%l7)#4#Z5AO;cmgFWc|daOMtNcJ}GnZPGm?zOGWGzqg{5Z ziD!N89wC{?{Tx4XV6U=k<1Dfi%!Np)0f` zHt#hCcMh058G_ZqT<(*41hGEhoRo`}6nOU*{QxGVfe6pm-il}?-4a8Jzd&xp`8B6~ z#R87eN&{HHn?Ay!`p&UCdyn3ZA8FUUgg~}X>WzN^2GoWthAeXEWMy2p)gT(rT%S2} zAMI}-d56zdo6&7Fez?GCP;PNG&HW-0;a|zVZ$nSb`Ao3IbmuU zeNw^M4llxDfN4y)Jk7gP@{^+QlWcR_|GeD1tRRN+U~EWJBiuRBEKZ8+qoCBlUT&(i zn1MoTQ_8xagx*Xpn+fY)buOXDUl^NVV@by04|l2+>y`g{Da$`y&q7Y9}{$cZ(% z#|NCe%gBPb1@fsp$rYUsxy-{chKVJRg;0L`3Onx2vxVJa#4y2n!>y4NXw65O`x$x+ zCrRrpLNwXhb6MiH3w5a?OjFYRcdn8$<*pJwRypKZ{{?hiLqF=Q9?P&Pe8$<1Sol(! z3TAmnWI~I&ZNKk8|HlZx zQCC+*^pEQXCqJ`ebQbo}OqzC0ZX<=II~A;15XHw`ek$pNF(u_KRxCRFWk#uYyNHJ0 z?Tv|H9??pC1Kq&D+`)37^ZbNz#q-&_Rc-TJ{XT;H2NVws(P5caB}du@x-b%!ST4C^ zy_-wb+eo7<8>D#9LG3x`euK`tF>&XUy!&vPN>fTyi*fp+RnMzAUD=2S zpUC`~X&9sO*7?Yvi&9X0-+|vmF=;@s)-6M{!*F~s>8cbjBgT80QDhZw>q{D^NS^ew z7_ze{7P+Snzv^vSS6`4+xhtk5_8NPWphdtYh&9Pd*z45Qkp{a_Sto7@MIIt35=t6g zk-j_r%xX2=(N?6$-CNQw3A9%nyty*HN_-KuWzk`Jump(9J(Rc{5^|UDv1STVSry~Z zFBku`%ItPz4in@}v1ItL^w8jv)&(4pTbnONLhI&}abcRctI-EoGoO=Onxoi|;`2CS zC<{{k=k=ikXBd=ZG%AQZn4!d;`1NCtK)Id9-T`lNsuDzK3#ntuBid=glS{V%6B4Dk z(Q?(PYDeQul}X#1k@d@Yo>v6*T-oKF?@@C$#^Rqb;RU(ajU(6)_t2mhcqp@?HIO8h z!+;#i6Q}WMjd|g$bfBv4;Ga83jecp=r^-byfL`r_r>yO6n!;)ER`61Xf!k3*`eVPo z#_fDiNtJsDAD*&0>H}sbWJb-)7Y|tbfZSo*+&aVLeF@Fei)4k>QtX?tEtlQlq!_ZGfaCi#26Nc=Mn-A(Bo|B{|D6;)G#s~4RJx4*p%&47No>Qrfd6^<^D`M>Nv{Y#qq zMdNGG)Dgpd%}}+7wSf5oSSWyM{bv3J&f})O*3~Ie zUkqarDpq%#xs#nG9cmh(2bM5z$&xLkPzcC z?+caBga}M=Nq3C}A&wLUD4yQ4Z%!c3`>Rh-xBV~>T37CEqDZFlsP9NKs$#gJ!tP6D z2!Fy^bV&MNIfI%Q8Ex|LimlE+oUN}y|M2U7kq5an8eOU&b<(T>n4b0_P~$y9i<10# zm)7^ORKobfp%WzrJm7E4Ir7`Y1^wlK3V-vFXvVe&gup~D`2L=9|M|PCH_~(%NX`6o z6}4p{3@>x`5iZ?TFOVB$x#h3rGV3af@=>4<`yT^uxlV>h@21G1BqIks`VuyHkd{ zoKkX9X$aCEw->pTx46c>7a+5^!N(hQl{tuplQxic33`>X z5bZrTTHp7?GFl>R&3^sFSm%S=ovd0v+P;H}q)WQZ4SXi2_uxX_GB??mkfX?VCnFvb zpvSJpP4Q`@0pet3N2=tVf(JIJay2-nzjb*e{@O{3KwvZxY^rZ|FQA9YAZ|!mlqBge z7(9=|BzyI(b0t%A{@qmxdwhg=>+tZ**ddBmy#(F-ljjF7OvrFORtTtN2SA*9^5i7D z-t1rrbR6K*wAm?4zvjvW?s^Os;5mLf$PxI=)SwnnWA}}Ge^OE4fjvz(EIfuy&wLSF zMzF0vp9`>OG0;J{gJs{!QUAY?b(L_iqkxtr5Zu*TQ2DI*n6c8OqT+6%bxs5!#Z-v_ zWWI+&%U~^m)XKMmJ&89lXgo8@bqj2%W~w4{=M6zp$Y9Gb(k0)L54R#F8LT&_E)cyg zulNS}V338XbMQ)SWjo1xC!`08r)?lJ92#vb!SdM_v;`h_b=Rw_;6KYM_DF>uMI3ZJ zQMG}-?*+oRvei8c65U3WS?A@+NC1<7*GcgC80;3 z&U(_Pb%dhp|H4UX$Kr>eK8{3a0w7P_jqKe*))wtqa%*F~0}i#k)#)60p*uQB(4536 zSs|s{ZdqD`PAqm>H&9#yMfPv4tL@IFfhdtP72ZZoXR!5DA0Av`=A)*V(QJ|M1de@= zEh^9-SwIC2DnRm&xjdb2$CE|G0O6Y}buvZkTTk9ehAZwgRg0v`TFiDmfCFc(7TxN5 zg0DuLaO!wJUcVf}LlI}EGN2`F=3Z(~(6(Ek5)vG0G-t)uj#HB9%F6C>aPwj<5pYKPezYN%)fBqkHjAEYQ4mGkhdLe%+Y%?gm z!LGlqQHGMQcY4Y3?1oigx4zY)U_7T6u7iH}^LgdsnRWaRmKx(j$nuoR8Iebd#I6}s z*cKV~X;v*c&p6DssZ=*b$rUR3A`dz*l_twvYg$>s$G$-sm=!V_K2A>E9h?RW}x5+TJ1C)@z)|y=@LE=Fd32F(0X0kwV9eItpS2Q^j$>PNuC797_rj2Z zO`1u#lrujJkkx4$zH4e_3=TY4E$>k&V?@dgr;^4A6FKDO^VQS`d_|zApCiy=l=5K1 z5%TtDupmePNE9irTe>4L_yve@;I9A(GQJhPMx9i7hBnl*^^+{d4IPbLiO_8dT$Q%T z*s(<*8Tn}!3FKhn0gU>_?k!k%b92%;l&q#Uav^q^C!hZ&p_fjP;(X_#-v&3pEWJd< zYd1`Z5o|j$g3;p``TTf9-V8dX#l~9HFJgNSxjseIr{FID!Mc|Z?5q(0DUzrp=*RN= z*CC`oMgN>9asDV*{U?c=AIY7{AAw;X*29d5!Ea0B9|e)sF_HdcsA`B#<zm{%Af$H{5mO%JLI5D52WJ^JUy{*YVDsB3wxmI@ z_9>*APZSF0Wj8L<+j7(=q<0r-kB+Y$cG{R-v~8-#zj48b0g)zsd#535AuB{rr>B{9%{OO7qaVJ(mlDN% z1W0@T2Spfvm1p}C0sB9Ym-uUe9j5Q48-Rouz(a^kwmAw1P~d-_mIdVl(cW`SC?d-r zsw+wu`RC9X#;X`4Pe2r14mFkGWnRqoZZqbuAQy#DW>B@;jI|Pa3NqG?PU6bLj+=D% zk1Ca0SF@HPd!34T>)~y+MUSlZKk5)!gZyRhAuaU<=eF{4KeF-Y#$L9TW^EAH2V=c1 z*3m$It}k#G)2l7;lwZo|FY%9+AKtH9Xs!r8Vc%v5~Pa5oSUv$Wt}SzlDa4Z zgiZY}Kr^ayG@K|FyJ(0gd_$OdPxS%#k>_dLq{#DoJYmqA1s$XP94}KdU>54E20Lpf z@?HI5Wfr?ri@x&h-`W6>a>SB(7_u2SDYD^#R@yWS(mN~-pV{KcERqD$f z`*5gwR)n{oP-+|*GlQ+Van_qmy!aDxl~=P2|E|w7Q3i^-g&A18bLhFwTf33YLn7} zjf$TtGs2DhsSRsF2)zkU4%g-wn>Ap_9xNDV;l4uWM-w|Ktc&49=V=?ojF9zv7yiKV z{uhAw|EhbW-F;e#O3N5RUpzBubkR-tceMMUqCI-tMywU-!RU`O#+3> zY!q=+vh&Q%&eaC8r)G3UADY%yecfa0JuQN>bSo$(ijQRS#?YgaE4pOs#SCG88V5)ebw!mVPawc$oK-FyNs4*p{do6t2Lt^g-q+j zJu92IFL0YEwahjbwYq^A%4dv`C1)_uCL(lVv1N{~UGGv^4eZm~1e66FC*%t6z{nvE zIV*bmDEeV1ZJ`2&&yV-7<*^=*u*#V-n5WJ}4=G}5xR;wQyJ%`2#>>zV{n0WlmKHO`b)vKcA&NqDG#)J0vr5tz=he)+B6O_{gQ$B;b(rZW1llXjo zhUo(;E;_BTJDu_jnF8(NfHM#ZHJKC%uNEmX?~`znp_jo*>DuP zWRWRdCbY+lsB?n5pt4J$U>^oX5#CriRV?-4CKzuf96hJu`#*4IgHa;Ax4-s&Go z^<=N9)^^h8Sh6VEG@;ZbNU@iqigRZL5j~POln=3?lRY&BwA@WdU^eq?m3Gk85}h#) z-GVhCsL_y=r?($Gw-7~Y?)OM*t6#=?igWMy1w}iM8Bu@yiA4I=K6N7Z&V-~%np!xf zhVy$E`rO&laC(tt8cA&;R9A!Udi!h4W8+KtL1gV|{B^$T+Lz*TY^gQgJEVBm0sPlh z=kd6>1)_>t-zNe=lceParVCV;#}OV1`Zf>tSm`TlwU}cr(--qhuewJbRs@@Qg^^@n zzjr?ZG!P%0kN$t@GX5raL&rH5;B{8b@2l9iuL=yvRGQHBPc{OgAFsnYxI;;C3)?}O zsq2jdR|$w?Exj(j!&}TKneVGpo$t6<$x7YihIfy_Z&l=EXo#G)s7rY_lV013LZMj$ z5eU_?mX#lgiQKYnOtt4i1h$|UUw$x&p_THDUqFXju9u|;>X^olv16BT2GfZ3DcdsD7hxGTYkG~^cN-FvtO#f}%a~B>>ugxNaY%HCXuz5!`nWfl++zC2 z2&_R*IA;=zeoDP*skNx(!8sQcI7Z7QRO^PGJ-flj$MFWWWv@7=2Vklr7D!~T+PA;! z1oTBBvZ+%=f>XJ_W@*33fJ{=bJ~hDU5{;toygx@rcEI?Aso_^`0mu>(jaj4leaPLB zBf&_=(41v(`Ua0B1WSb1@k}R9WI=H;WTb(ww#t~ozbaDbl1*adoVs!E!KPJ9g4}u_ zBHLz>xw^Ffnd8BQ@v&=w#yN>ds($AByR>pB2>C2SA!i52!Kx>*e3xduIH)FGa((wHqmSL%jpTFU?Pz&&Q8^dKM=7pxRI_-SP`h z{S(%!^5C`kc#qiY?Yl&7V!?I={PdQrg~fS z#wrki_>+q7NmAe``_Aut3uU_y$$?S>(o(-6*rB^o zhb5bVoM?wHK^Laj6`os1|+*kFzRN92R{R6^m~&`NL0wH%zmEo ztg15X$vb1t9979dYJxw05+hRts12U2Qn0dYmaoqNJYMmR&LJV@HppQ zi?Q<5E3Abrq-mZ(W1JD@OFVS*=>tMa534&oW31yE-$ja)!w-T5Rg> z{mQ&Bq@CF{>dQJ$Pi8gH!8+4LLZMG#&wH3Jqsj-gT>0e7n-xfx#m@GC@TJZthPkRL z>1buKn^<=lJxC8A!OUzQy(fTJrd{n;H|0c==3Zl>N4-M_`m(V;ML@8Tk#CZN%q`Tt zdpv#0x~fh6Ii-Vb*=$AfWWBj;S?Cvr-a}9I8uvEt=w#I3J}Le-J!aws9t}Sa?4>MKk^~>uXstYwy4>P}X+hX$Y{2q_&_qUDg@36yv_9rCS zbExs+Md1g=Htr?gW*Yzo_)){)pXu?x=)GB4Q{cnVEA-L?)xQsc%6DO2$Ny+f{ANS3%HdoT)PYi7!Hzl z+F-BRh@_3H=f&QeS_&D;@WID777co%h7E8}^N*6e(%#%iaI+#@8=2z z>Dm+`0}kTKKpc7})1k(>)BCD^eC(_~mE8FDjqz-%c6P=0j4>#gfSJ?06P zD5qsb5_v%>%|-WX019CjKp{-bfZe@Q@W$Dc?xN5-y&qI3Z&Pr5(wZ>tJC6{XMn2Du z3OvWmpj;q6Wgr0t0K~1l6T0m;575)Q3xTsTZA|Gs zGOH>7zbXd%DpU;!3!jIE|LC8X2T-Th-it~4f1(WY4|*X;cT<8Q_iu1!{vq9!{~-SR zBXsbeJwRqAxfab^JdLIamz2Hto)GPh6gOP=VSf*GJLv(C%Bd={nZKV3TXk$Xm8%zO zZo-4Z44Cn*Bf9Nax^DTTQHoXYoZudeVACco=N>D+%rD9;U~xTd(GVD{=+*kz&w>#u zd^an_5yn<8<4N%b;UOEdqH<~LL9HAA#k5b%fw79^ocF@@m14_?yD{|M$*~c6@Y(0h zGSA;%q$C^&$e9k{*9uceo_<#+v~t_F^ih%qq9*wCptbx$9c98h~g) z=zgbAp|v$FMJBno(`UNq;td#WH766*{Hxio7#n=kOQc(psf{)KI&+6Z0NNCnSAT5a z3xf)Z7IsQQywK|2kV7A5iXTMjd%L<(z^V9!la&N=;<)a$8=d6jOq`4JVf?aNu&D40so^+3h*7q58d+o9}7L`dv55j{{CBudVlOd{>Z8P z(*X4j(+EKC&_t_GQkLUAP*nUp`6*A^&qN&-Z|uVyHjJVk9oq_&H!PRqpXtLyj4;Gc z)4>Z*CmYB1j?x!{z0=Bv&L>QIO&C<&ib8t`48bof;*-eE8P6uS5dy-$q)WzSaK3Q* z>yP@q(nZ|5M@Lo#M+~8^RMLG)dX}8DyTyV~L1k}WKq<0a?wujqkldF#kRO%^DU9V1Dl`rU^ z%jmO)T@54ZrY1d{=YG2H_SVc-(N^j1`|#~XP#lJz(E7d zC}aeZfKMBLvjb*b&&Gb)LU}?+lFr%4kA{zCP48gD*ZN6~8j!*W?+ull)#fPk z4_U0slXpLO+G4&gs@ZHZs!y@u$!iU3_0ZPA6U_)=E}Q!~Ier_{|G$ay-&Zgmpfp6C z*XD}(Y>NRBNTdzMekwzuOlb0s98J%=5{{?%c8bXN3})9hYwHK!*1NNnQ;3Myo0{D8 z69TGwLU0cT$hnqQa*s6=)9=r)5RFZ4K=4^uTqJUeff-`G>W2i!;3E>+Vy&Ga@6d-L zJ|-Y7DwF_e_nW$B6|;_RRia)mosf!ix-ytSJiUZ0p_rl^OKq6_Z_~^IGmdThmJ=NE zNxZaSmOXK}@A^D>=8!U8{DW*G2tre_6G*srH9T%|rfR?{9%HqN#HJH!@OFnqCa|H3 z4N^^o4(yS75DK z+a>DNa%ESnXx1aHvKy-cwAyqSn=v1;ZEG&e%UNkN1E2$P-kpip(oduZoz+`qB!~v% zA|$t~)PL}5hidX1egRSO&TNzZaT@!FL;j(S!8G(^clG+}|81&%Y?S`s??qas_$MIp z7;wM{iq7K11SRpp(8|fGR3L@=)T|oTzctJ}A!GIQVk^_j$GEsSZYwSNbnQ|*R?u?) zQt_L0a{lD$anZp`o8lcwr?;Bi3_fd#5czsB~3-N>(nl%)dy zvu&wglyLbJGp5ofF%{0s+j^BPy8K&664%eK%LGkSSH*~IKJc-+%x>~((pJWm#eR`S zy+ms~H@)AW69w~W1j(7gVpo|zA2eQ{TGzxadDN%l=daHH@qowQ^Pzdc$JOS!B?FD% zRnniL(^gZ)54Jw2VaF(diWvvWr^Mx=xVhfZyG}02OF+Ex5WZHGoE=QDyC1GKMFJo| zFq7*Er)Jzp{PIBO2EFOi+EnXz3#Vk9y%y^>)|e!QRU(uJP3t;oC9nn?>qipfwEW5l zO|cwTHk9qv44pPe{m3pXyZOVoX*Q`TI2hAK$XmU%btGZucIWZ|An+O(*xZaLUG|D^ zPqsM0PGBP*A6v1}Gr`(;CUn*A7LEsJQ{$w9B0|%N+^*?4jRYXw6o%#Xbf-IWxtN|# zq-d8-heKIXJu;BHOXQNE)32IMt%RBnzbZ5>eN|`zBKm65KlVreH`TwEVfwe8pQ=Pc zsdia(00r53$SSLT`Aixs9q$|Yw&taPwb}}B*TETCJ0*3gtn4Vu3yWJ(&mQB7(wy{S zW>_@tUIiHbFlJ=_ki9o0C0oeWO&+bn;Z_0*j`ZZ`t?WVE+xYsfu?p#OwY!Bh?J3Fd z^yD-_xadtog6DynJDX$k{L7Eq2jWC}M>6xUUq`$!(O?hp6uc4aXjbaHyNKzjV!ZVh z757;juZ3BbBZqqIV}331+AC}Hoa1>P>fVZJPyJzQnkDM6H#8$yIR}?w=Mr~$!o9l? z(NCu$TOxO0u}zf3l;mZJ*$F)j)mD3*+p8j6+5$cPP97ro6^(P%#sr@@xUbt%jqJU~ zF{J8_a%EPYwyVE@mq(qo!+mMyLz3m)Td$5D12qte94aZP0E*$(tw=+2R&GSHgT$2% z2Y}ltbCD7I5iz$?KIUVFuiQ>?7Xo=RA=#reUgZPoI(Mx!5*D7mmVXcuY(ZC&Fe%2^Ya>H+N&5!`m%MD$Ms61E%FhrCSsB25BL zFPfg>2!(z+PQ{$lJ-8`HlQo%B?fO|K|D{n$@>wJm@=PC)t{fLBSped81&ybtI%=A3 zD~XMxa3J3>G;?;Ac}gjAd;$Oi8q1*)pr?Q+T{}<{ToZD182QB&s9>}X6r~)FBSia? zn<-tgITV8I9h{5Co1@wzQQj~>8*I}8z<>We&xl%m8*`<)hSu?H$)fM?`!D|$&H9I* zVR0$+GHqz`YemCpjnseF%ld~~_4f`)Dlzq4YwMtWPUW-kYvlU+keN^Y89rQ)pGG6~ zbBw`{LO@-=jx*IyJ1SygKl8@8hhraDfRtolmFUB^nB5Bu|Aa__VWB> z`15K1KEwUDjRg)d(VBy!a15Z+@n8K4|1+a>yU)nT&%x2V^#4Kg|IM3@Jtd}?Xc%xx zOWb2t_?@NemY3_QF_cOl-}@XMtJ(*sME!l~h5!5AKl+~3H2Ltybvo@BTkLK-3%^&o z_`-)%nvj_py8wNkXSqf{J`;Y);(%;pZPO7Nl|>B5iMHE=p?#htm;Ccsr(kbfJIV^g zX|^M*Q@?Pcc4R0h+skeR876!Yg7*~_98aM*lr5SvHWB)K^h8 z#NRTE$jLTGH~8I|j!7_>l+40ZYh3an3%+{^`s!QQNuI~D1UhtWhc z4oproBq+n~f(`G>38MXrLylG|`}#VO9DWVrfY#@Ix~S6P>Bqv^C7wKmGR24|SLe#D zDX=PE+qF7`?i_9_PuUf1jMz`|N^2<)iS+a;VR{XR>=|NDt{YImThd5s>O5+-ua(K2 zNs(ZV*E9V^eN&i2OATECOxDK6BA<-x)|HetVdwikXCA$n4@qRs+iL;ttP`8~7wPUR1|ZgoqSqNd9uO_+PzLjbcuEvy zofIuzm^QBL^sY8W5sj@jT$U$Ojo7z5s>DE})C=ED0d~Qf(%PEacd1mh(pW}Dnv<|A z--ydeM-bkh+(*`+h`KBquG9>F8Bl^>DsVj_@R?_rv24Q=6Q%UMOmpkJ^w*(}kjTYe zDGxgb!U&R!?SlNP%uj#c$p@b@Swtz9(Q5$jtIUm6JrN;~>@F9k09U#X`!mhl^9a@U%)Gtc3<^8# z#WYHB%F_61j3X)QTr;jcZG5D6>c7M%nMR%MJ#=%JIhfB!1U73LV3*5-B?e(Z{_o=% zb!~4Q0VNPK@+?SwEypE_POz^m;6;j0dOJD)zN_*ZDb^(WU1l5cHU3+1cN&r%D=KkC z3Gh=3((JZF7OlNWb4IgXf;GE53E#%0`_3pTw)qI20CkXQ=3tc``D=We(4lWrB)ZB zMdHE|V~rCVvX689;D8nP)1mqVZEwNbBWfS^{tI~GN%KgXyva#L@LUnwgUZT6p?1~J zc1JwvJJ~W}q-82yv>Er})M^PfL@7gmM4f*8m5EL!-(+^|?80B8up z`)DKQZPD2?44`&((zoo_4W_%sFRC59D&1v{6dT%poi5w=#f-NLa$B2@Ld^sluiHm3 z{M&nFbwj<`*}W>y1}@OoIcC2d_VJE|D=qdOaPq@DNUjGr<9E5YE{A`9Dvo^YD53*e zH~$^yDr%n_Wa1vei6?F#HfM;}IiFX4&zi?$RE{g|0^ddqxT@FlW({%X;fMTby(oXr zYTc!kdO(6Rk)#dG-g09+JR*%u_AOt63jagBSvpA2sbb9_ zi1h%zW_ax@U*d?nyhY!YMrruqYG}BzZps4_VL4(XhQXLHP*mLcy)Wlw?((JR_FUH+ zZSlm+5Z2*TPvKqBN|<ZIE~?d9yv zGuO0!0X6YZ_;-D_)f>Ma7Q;IbcCh@8=jy9Ec{rb({=K@@XSV&HQ~B=+0U@K}1&`zH zEh|sfoXQjVIUGT}V>7D8;nD`$Q86e&T(-1QzeJp0`Ir(ctF%LxX*bVYZ_wF-XLjeq z>f6QK_X~nGc6vDx`#6TO{hLdT@QdSNR=h*uz2P|&?nyvxGDXCmAF8@|H?IJ_XBz~mWU$-%5cCzV$YLG&8=?``18Cl#8ncuyf z)#hC1L%P=(kQ5%5Rnu2p8^C%5f*qmTu0TQV{-y{&-O66>;9~2Wrjj&ryPKm}$w1xb z{dy+(NAt>uj`|-GQm1{qz}?&vwTd^uh7**x8q0k@U84T~sCx^rs@yx;Sk=YIEp@7=nYYt2397&F!! z<2S~dF#&9jbEx+UcLB-%O^^nBq57%#>=x~sB{%<($ahBttD19#amlC#!Y-bmOF-q;X+O86f^?O}GygGRNFgNQSsPUz+Of|n2mMQ0vl`t5 zB&)f)Viq=GooN>!j4^G*s;9*MTEToxH8X$$(D*sZe}us;isdL^z?pTaNVH3_*Y5}K zz_cR2Pl}~_cGqMBE|yQ8m#{?wOUikAPK&I8^GA;jj%9bnz`4yc57u(@Xo9k5L|h=G zsWS*vtu=^+ol}t{+K1;aKwYxVF_daFR4Y=Eu#+#GTYwi~<$2e9k@4Q%DW7Y@TXk}=`i91fvs!PwWR9yvV96;RLB7A&74<=2fU$)P z9c<7~qiGS9eRI8$SA3_aD6Om_Vr_{Jk3P@nwJW&lE#@dpKs~u7$eN$Y#2_xY{m7GI zasRa2&8E;jRO8~4J*8t`Y&fN~$i!PFHxkJCXNT_lfmy;5N?(-In%?PSUpFae2dQD= z6nR0)s(xLVf|5mJ%ZTWAr}Pq#x-rf()>zvkZ`t5=;4kV##vLdNDalv#6z1_3p&HTd-tH`AfifGsyvSi*v#eA%^pUXxWIW z%$f2WRnL&^|Rh$`Prf!z#y)MVsfOCp{xOm(Iq^q!cXOg9PJ`V;e zGc<-7=JIESL@g%bN1b0c7X=P>aBz1<;vY77k$lDWVe3tibVxpascZ9 zFYq42mB1!tptkooC1B$+?0rSQ1Bv11_+CMoL%WpKuz?1g-*xF4^NmJ(rAjt8nUF-C z``hoIZf@ukHsig4Gl>uqx=Rn0-{%sWFk{&w!PQynUEqLybK`Wt9}KyjT(aZBsrhcX z7{Of{CW&)ucC?SLJ#Ail8={|CtEt_^qPDbd(!I=E=%jwuV7b_UH?I}Zt|teh0ul$y zTc$-3N;9zychVZjW+TCuAYi;uB!C#o8meb0u%@@Oowv`ZT|q$Ztw}-R4lU02Y!zAJ zmLDA)uq;$pY8NQ&G#{pBmO$i-x7a62iZb-I!X=Cbv-U(pPAt3#HM&|eypd3mTQ)@g zHYdqKziOOPXmbfQtBrBtQ=qC-;tk(cOHSy=wPJViK|KYxS-H;BW3oRNdWPjs+9BDo^@va zWx{a?NawKps|5DYZQqke1ggSkO8cSab>j{}_?WQkO^LnlXNlaK#IHp0Y=<%Foxcea@3{zoO3F?%&zqWO!ddzzgf3tw&S?M_ z)(n5PfMuSLm4H5)Y4o@g0&R+LeLiE9rf`>sV$0UtqO`kLsGxtymOiYF2|V^q{uW1e zmcH>aF|%I)qVK!>?uA{#X%RG3o-BmL3}z z-t-ncnz=$%t99}Rx$zxLN{tp-O^*n9GBJ`aDNuh#{qQvqtnQmT%bPqJH>q6OORYmv zB2RCgub=k)bdGU>vo*YK%toBa?)O{H2`<7w*Hh%ThPgS_oNVhSl&`O^kC{=6nc#fm zcbuU(m^4|;1ir)cm)T3!$uu>w?KpGAepDZQpG&!JU%%w^Ofeh02(!dUxh9DjA`(qc zG|SzAo^GIh%PcfO>i|!PCT2D%t>z6#u2If{=)-Kk0@HF+bN6Bi52LtGhC^Xghutef zFvVK)0y&#UbF*}+>HIq~B}D=)F?ME`(UXDuWBVVYJ_}ry@%X?Iw#As$2fYJFMC1Qu6&S5chR{>!dIcBM+E+Gun#D}^N7(o^0qGJ26m#U zof4m7TTrb6zNxGq!f0Nu&*}uC$!w_}H+?JCgJ>LWMk8jtaP8(e-*~VMZ$0I(Fbump z+>L+u#kk8T1{)QR?Cd&k=rmYs-672TwPEVr3WI7NiRel($MB?`WWXhxa7v3Pl+~81 z-j&JG5T_IE)kD_kzA?sZiL$A{JU&-2{n>zy239XLu1IE)Uy^A~s9DeGoUj`4av3o>FL$gfg{rrz~*Ukc}AdDFChl(n-H7_`63QBBULG6$ZhdflBIc*OiUUX z#)%IfnP`)gi&|ygfvHfrQM!6KjPWf|6Rd$VsYjO+V-Lo`92da=C;oQmpnY!1s!GIo z2dx&HgBUpo*w-1_c1tqfDK3$(e7;w>LIG>LGqnxB47bL2uIoaZ_qz$?PDvbc3RZ{i zVfvw4g|kuACuhIq=Kl~c2TuA|Vr ziLxVwXkG1x);+MJ4BnL?$e7i7)5FKK>5!WVYOPJiAW+u{#wPQ?=F>*(Vf&3w78R5) zLSU}XG)qr;PKUfV^P_4YQPM%0UFrAtuj-PC(mly-Y>8N_rwwKcXU$JjZ$|(8`?7G! z7^VcWK)xskincKvcXV)I_IPXk0f0o}On~QZVr%L;VCo;pI=0`ebMIa)+#FIV0G3O5iTchD2 z1UB&0r&P6gzVdE1m)FnSR2?ZkJ%c927>~2@7(BxBNx#YPD}+jQ}F_vxom9ZgJ zm==(^m`1-h>2^vx1`vBv0G$O}SeRN~CGo~2;$^s=95h&-$)Br-?kD9SRSf7{JZYQu z?Psb4f36=fOs{#XGz`2Q;Sllv9D+>R+D~FPK1lsNAyIjl>Be?Wcg(VVIKxUVg3c3e zDE%!v=t9KDKV}1`KE@`SE(r%Jo5_u~LyWxpKJx(jENYv{ z5qwTsB(CG_H8RHVTQD#L@F6($mtdcEX@Mo9Al@C!C0g#Pp5rHx7ZV}>zMHMGV@}%U zWt&FDX?4_0<;Cr5mXy}dCaDmqfRuyalo>kNrCD2B8kiNK?z4)ndQ!d4%#x8cWj3*3 z+*ldvdJzG_g0?txm)5RNiEk7nA|gX`t*)9H3$DV{y@F$XvoLOI!O z0+Nx>gtS-U8~la?EuSN7PErwpz4I#%7yOGdRhP$~A#_1FQ(kx26OV_p=_&?$bD+M0 z7cw?gUrQ-`9OBm;_v-5TchQz>^H<^EWT~l8>E$PdAeo8f7%3i4_Scr7jvst3Cj9<( zruW}X)ck)jPNfN0hvP7KV+&f2;q2Flw)rj zalga$9aQX0(@$KJxpmpgiJ!HfYvmAm;N3a^$MM_>nR;$7Hif4md3Uu>RLzsr59-P{d~yf2B9VAon{%9s z^uEGGh3|Iq>#fYx^-WVp6?WG|&E!Q`HZHtNVPTP#6`A~kk)IO>nCSP?(JZytTe0_d zU?qS#=rLC1ZHr#CVXoo609U3A7bXTMq6BiT@|5XMLuL2e6J!oeHLIe zB*ukX-|5BCZOaC@Ge3hD0E;}I&4P29)J9B20(1GGdFZ#b9Q@NP^VLLLj4ApMd?;FL z9&_o~Q5R^i`ZAL|A#F{BrWa}Bl;ZD`Z1g{xFn8|n+>n>^@n-MZe1%rkp7dNzg3jMD z-iR)%_N`X;9(Tc;w##YrOVAA3w7DC*0A2@4SSa`k|5g3D55y$ZowXai{WzN^REo$sG=2}CMWpx6Mx`@G++TagpMZ-Ig zj%=_^A0#W;o*jjZ;00QwL?K|qMB~L~+ZfmTy+F}%w z%e4$A^aSlni)V_{!@dJ+J!@~tMz1L|H`U9xSm$gH13gs+LpZSIJgzkazcH8!YkcY~-P#!L%#5g=ciA{}uo*$~yU-qA-Y#&zqy0Z}=`B>>%o-pOem zIpk+GZzw#Kp2wSGQQ2pPWtABO2{=a(feSuk04TdHu z2}UTsbc^0bMSxqa_S(6p<~fW!C*0l!7?Sr}Ho|w)7+>#|93`}E3Q`Me0fa_aO{ zPg%5h!nf!GIm~64^BN)#dsC|cpF1YO>#=ZY7aTsw%3z(C&kmWOJKg@mRRI@BSM4d za8l?zy1^;Nn65F~T4;j_MBHdbxEr%-AYJ4Yd*`fOQb4c@?joX-{6SF&${17Md;6)W z1omeFwTvH8gk1ZHWrblOU0=WD>QF!LN~SHV(_k+=DS)VEDhO%EyEP8$t*m!XThPV@ zy!F97PC1SHR0uKHFk#x!(_rYjU@)m!sYp14?;Sl}J>@V;!|%p2nV>p8EsEtIH=3YA z9IJey=DqSvlCHzuT%wPErjo|pMmiOl_d*|XsHk+U{cvqPq*vH=GF9#^2OKbAryWP< zY{17QXWd*18&1Y(i&uS-i+8Cn1zr^qS96pWVg{|W2hRneV)Juw;DQU^WgytGiGu9m zU=URWHdWT=5eqCX53_G|5Gm_{BNsUc<<82?fvg|=dLuBzcFe0GARc*xW05d{Ye+-c z_sQ}>@~8ToU>E_=e2`0OaaTp+5ap0HV6;E{n7bOAdb`WoO!bzmz0|UH7_?lC$3S6| zu%DOBMD_wbMIP`=)MF#1JkoYy&iY*{9rv`Vp<+&jo%;^pOs)d8c<3|SU4K)3L=f( zi;v}lFuyH`?`~#cgsSn8jLE`4eM4l~Fq^I{I}0;5cl5M_55_ZQ?{GT#r;{N5S$e{| zDMUC!D+4=wTSGm|hfC0FGekIgCVC<|qK8W^E?PwwYeQODJ>&a7wuV;rL=3=>^0e}X zb|42^eM37SiIB6sh=RSIy&-TdqQFAL@{mGAfu5cS_Acwnx2J`=>Gfj zjtRJ9y1(P$p%n&M*#l&R>FJ1=9^z<)*@>9w9?}ZavjZuae_S&WG5itBM#T6tx2&GM zy`ilYKtPtBnU3iG`-7~kEl6L%&|ZU9R#2E$(a_nRR?HHp6aSAu;71^)MFf;U%Fw`6 zk00c$0c52kVrQWvVrHV#BBB)lN(R*5j)1$$cuefuA+X$RDehv(O}zo-4P?S)M(fa=f+ zTL5hq&BxrzUgfY7opf)(akf?p?v}-~a2Gg== z6N;=ZjnsNR1!HOUMvG0{99Q*ZX8#VsPz=2%95w!o7}K4LaXp7|ouv&=iZFT4DkdfQ z>(1)O8+wArq}3?=6fd}fr0L8d-&7NX-F}DA2oVu6jt!mT2^EQ$vx0^v^Q+7nX5|eQ zX$ltEfh;J?=v#=TbaZn&vGr)wUD{Y*-HI`sEa;i(yY7Hz(Lhfal^-$Di_ewguJgWB zAdd^>;&5~jKq1nNFm1zN1h?%e;(0P@$sf&73g^f|;NCsIPGK|&(q6waQsE5|Ayau= znqu@=E_X}Y{3AksuWON1Wd8BE6we2iI*qy2C(+!iq*vvi+#8-gO$-U=th~D{f~P^e z(qYJR(ufR=GUl^2J!G`ikH_>jk0;f(av+FyqhcR$O{XCBf1N(#jPx#)CPqeP5}ERB z6ZOjo+}TCm0q>?gzwCf@K*PB=ZW|8>azwD`Q5~7rT8k3YHaW_*6W2(uO?llH^^&Bl z=+yxws8vJ$Z~31kiND5UaIqFqyrkBrVtMTpU!lv{HxyX_C*G$@UK7OG_X%o7O&N|r zN=a6`)7(nD58XRSP1^>P?>)jGtx@C{s|H_Lj`!?qLVjw!*yC zebdQDIQHTqlLMNgmehCs5fHrv6Pl?*;ASa<<+EO$#XM4L*5`_u{0h}9+BHv{spyEPuKg+?3d>%u1`hlMw1mrIS+kT7noiUabY);*CPTClI5}Aq4pi9lkO7g} zD4txoulAM~6rz+>gUEtRX}w|6%cB93=}@`$Q~~lYm)Q~?i?L7Jrw=`DMSe%*rHkrm zodqJ26+la6^b6C|Z@5cD5fs((2b?eVBH^yDAmg`^>7F<~3H3=gd3UY%(#!;X|D`3NcRGwPJ;zY|DhfIy zU0{dm6t>?0)CTtBb|l0l`DTLGPgv;!6*%zekX{`MWI!e&k;A0=ddby`Ie`bHwtLBW zmzaQ%q^uiMEmjFc?cljK(f#brvpqeNWF*f>Q#N)^pR-P}-_+LDXbi8U%B~$`NtxE=(&+8*UE7eSys^3^OJXIE zgAdGDs*w%8!kZ5I7=q`(E)X*n9qE<@yl}g-65_qHOHt@Hdlvof8*S4gq}iu6&|46~ zRJ_F^T&pzhJVUY{+`kyLxx;S{kL3?6EbS5KzC(+2SL2RwIESd&)7Cm|P*G{LUA16x z2(}K>J(G#xbQ&zfmo8rP(2(}1y)a@^=<+8Jsw~3~%Cmcx-w~uN$XI_9bz=X~tbC!s zX+6pob6r9By^YOTaoYl}A~6$Mm~0^m_q>v#1J1{bDD&~WY5XpvJvL$JUPm3{j6LkftngfG4|zgm_T9Ezy7gtIkG1f=K0!!$Pntb; zKI*)6sa02#i8Y~(c{=Sc{KlaORUXNL$=s3=OB%oS40A))63MiNUO50B6N_=qbz*yX z3qi-c(>AZX9NxgE3jdl9aT}Q?dvc)vaGCSMo8aqHu3A6gTnmrk4(aTwq`+F0$i)xf z4wjmrErT&3>fqCgVo9?rjbd*zUn{|^H-=-xeMLj-gB)=qh#+yFWM-yAe0Z`Pd<524 zP{rP9$&ixZ{01oc+%v{&U+jVBYeffzibx3yY%iC^PT~((-k57e zQzej=*>=}rtE-sl$@q@KY6TcmcG%klvP>!@&RA)T7r%VA9G@>BPJp4VPF>?P&iyn^ zz+3r7rd^2+x9O4p^SQ$0y!rJ-igtT9 z%@Y4U2@ZV+I(@C3T)(&hR8BiQD2xs?Njwyh!_QdD#`s_6ijQQu#ycWHV{EUzN>|=! z)Y1ee#ARc$JR$Sr4k54EIkBfPQpRxUZEj?|-j-)q+Su=W1ESYc)3|$4`4o04>{Hix zZ*u3$k-ls7a>IQ)>P_BihFYmwH}!dK#t^p?FA0D-4f02H+xgRtoDe1SXI}V<2`W?Xt|2(ZHzpW$K&VN8*&apU*AS}bJt2h$j z+Orv6C-*;qzk6KvF970TrEhNvvbu*jz(Hz)AWJ<{t9xKX4*((|t9wMEL39uC{^kp$ z;0HMX@DfN*L(js(!U}|p_a7hxKpYJa^$^E)9|xos{(~8if&K^f1HuQi2ZRsU5eNYy zMDjq$_D9HmAKv4(Uoq4@9Q@lVF#M$o0`&KVqhqFH2k8AC-XlJ``(GK@7#Q!1`&$V7 zDosTHJJeuk^xZXF+Kj8YG=>DiHD-$~%06=Me3;&Mm zeK-6AuD{XyN&lbM^}f^p0oVV!uK%h1|E*u|AF+SH^*_=5(Zc`fS^F#32g~Ir*FVgf zhf&Btt6-vMU}|LySRMi(3y`gXwVuA=pLWL2pZ`cK00Psx(wf(*2DGai;q~(7w#~4@` zY1mkR;;`S>gpC1^AnZhptaLO?Oh9oT3^0Jn52Nu{^YmAvkc9!TARmf!Ume>2!oZ?? z7~Ox`SB67;aF6H_{1$JTXVb`>D@_x!s}A6v1;RU|%@g8hfA!yKh1u6xvF38;iJfHp zxUgs~$-n6CQ3U^3K)##V8<>$9UhTy+%i1k_I7G%=M2KsIgXK-}3kPHu=nduvy#YK64-Nt# zeDG8JMUOmW{y7GJ4u?O+)$gkChaO>~XTPUI^IP~YDF-wn&BGUn`M1&j59R5vw0_7H zMpl-4-AMCW_;;NCp$z?v-cS1fsuLp%9qYa3{4M-DuK!Sm{zmU7{Xe<>H|zS)x&NU5 z{_DE_+U9@lzlX=?A8`7W){p-C?U?~;{BZv_E%_k4escOhtQVLcz}a8)!h>J$X8|8X z`oG+RwER-E(tteIv!K=2Bci8OxYrnf$bJ}mzbTgoci?}A2ptXEJ$U;)^RJTUp#=9% z#eZoOML@?r#7gT~0{VrXot9tE&hQ}#zkraikPxMUp)tr%N$dx}1vD+Kim4T!m7VDW z;Jv@UPb_F?r*CU&Z4a^qq{k1>rm(54oxOmGo-Gk01FfXqAJ_B@^Z)?^dlSHO$o@kP z{a)N(5!}Cu`zQGaZVzSsOYs1=pt0ROD=~XL3sZeQD`N{oB05?=JN%D*xB!C1CQ-}3jxa25Ky=5KV<23t*WC2PTUU?zy+Xwd!<^t zU>6f$t~iocN@k6dbK&)|W5Z~h=DQ&j{1IJjhXh#5yb{{rP=wF{;^*thK8j|Kv%2}j z5Y_U+C7BWApfPF1iVnPXCYKB=tC?K+L%MnmTP!at`3>p`t){H(NpbZs7QyTT=Tbj z%~H@@A41lW9<5(M_5Z?`r6AQ1HoA# zl*~@z4H}>3tZe!E5*9k_-Z9iq6NL6{M;=xzPlwmzk7J~v*lLR!;#bE`_I45HBn3lq zuJj~_#>lTni3N$7n9EqrkY5~^I#94_m#-8+!@X)q&4#C{=qx4|7F18+8u8cY6(XDg z?Hkz zVF^?y820RbD288X|Fl)G3_3HO4#E6&D44AumMGj%=3yz`}R#$D6Mkhu9cGIdELd)=zjEF-t2zC=}px-$8r}q zqi9U=dsQ2C35hIBX3oXN zr3j!e)f_}X_9mwK)bfVL4ijU(rRRk$n znch2+?lr}Ofc{NWJfwOk5a1PJ{R5@{VrD!<{VedWiu`X2_S32q5EHyF#eD@Ce!RcC zzoiAD6+t3mf>L_cv_FeZE2skK6F?0DKPtG`0s2qO$_NCM<%eN=pYKmy4MaZ}xwJr@ z2V3C&o#wBl{ng%;u{AKX1>nTXpRCAe~lm5*y#R*5A+Pb!iW2x{skY{Sr~tT4}c-{!1zDF z2T8*R*98$HJ@X$>f}Q0d{U1=`zM+Yz0dByHV*pbFjQ)Zpe%Ncjx9PpE|E(eZcVmg4 z_~Ca{!A!*P2Og&V!-)Z4fQPrt^uU|%`!4`K{-+@a>jTUGDagU_d&B;UqyIDHV5eul z&-N$cC{$hmO^c#xICbVb(C$nrPWK@6 zpW?7RrbxrUX^t6cBlk;zg;KX0qic9f1PcyZva&pDO8viXoH;c&M1M93qD zW0glf3FcK{g#jB{cP}Yi&?v^ed%vfozHSQ=#W_3FN5^%1EcfZF3hBoX^tNU6e8jK3 zK^FqIeY!6yQ={!y1_)P%UgmoZXA%|=0c`MkMQSo ze;LJ5gyV!XzT-23HNCGlpM~@}k`8Y?arERvuA9HnicNai^6Nvgv|BMJWqYqwXG16H zK^-rR$5k!fWRgf`_)HPDYUAbx?%r-2 zsE#{0oKwf&I`PUJy)LB+a#f4&89!gx)=f}U;?}uwO@gZtzIiSt!_UWo-Xc_6Q&Cfy zFZTI+`FKc&LqqS`44G$r!y&3_H6z!{9{dWG!s;B+dApGvlIjrd<|(c>Tg)VaJy&(F z>2vCk%ixmjoS@hkX`61~*ntY0buEwmsJMd9j^0$~<cs#zHO zqJ~O)sv%`vC}*#&VepiNRxAV2w%7z-McDFax~k~7*X|L;f>BMj4%^dQVI?D&vA!Op z7vkfiiY8h~i1MZ7MoA+AmDJn(EPo+e-KK) z$z23g&!EjC)E-{*Mz|*zfK6-{r}Udw`QdSMANh$(#MgH#%^TXrjP}$jcY_yxP#^$i|Um z#K-l4XQ^yK$3@s{IG?XGREsd|+nU?D+-28?U-WMyd1^aZ6{{TM#$>#fSR8!D!}v^_ z*6S4!3M}NK|NX&YlD~8@$jVg7oC!38@(aW3_2yOExqAH4gXOH)BJHj#m-+GOX#%%B zZ{-5qn7*(iE(dO=FD48(S&nFbmUM9;EHt!eBd*T<2BO%8mdVIM^I9au4Tk`A)3I*d zMdD)joh2s(6{fiiXrC;_z0sphI7ImhC*#R4B(#LD8?J(4Y5FK%x;4zC5f&;JjBb83 zep4u2<#IL9%~?uQm3Tt>XVYAZJd&4t_8}RTqe1sDqVDj#wze)>JgaLNTj{0i)ujbX zqH@9Z=4MAq^@cT@VO!hWMP0GXHW{*#nS+Yc;MX{`{awd5I-Yk2C3xHth73%Yh=Dnx z!;Ou%(FIM#pYl7eHeH`UY}#MWH+sw#$OeDkk6+?uP4(1m)@8aZN|apl0+(}g3R9#= zyo=ZVwE-Q5Htlg)K{xAH@NUI3ABMx@fp*j>vv85Nnh%|OGp|vyp)8nbVokTQ6pc~P zc(s7cducsPmRM==1R2o<3K0wUX;=^|Xs$D5D6UWC(=2ug>zdVdVDzWM5yL*h7cV%k zpBoz~pG__l$>ojBo4P)EU0$2*xE(r&wbTHRTFlWQAbr6J_1Lt0CNd@alWGNyyT?gS z4(FpYeut&Y?(PjQ0k5D~5C3f)j|K`-mVwu$^%%y#^koZ7!T2Q`xy!24LQ|9VaHCH^ zTPuifZ)(?ZLrU|z#rMDvjmkM#c#x&}VDG^9lVe(BLUs?5owXwFtJ~9-R)~PGxG!ti zr=<3j25U9&Ps8vy!B;OW@75eg}0~YQZ|pzFH&w@M;EO>!gAcq zdka;OWDq|ew$roe0UqR1$2nSPpS1kiwT!UXJzn%&#k^tpJjL|8!^6X6zMQ92m(Mv_ z2luSw`i%;uVayl22_OGi-UEiUp~SGrl#2wl!ik-av-sd|Jg;4D^2d4Wo2=>WvrJ^U zGUhc)w>Ue#Vl{1dA4YEE=T`fkkB&@N8tvBlcM9L;G|l^}YgXM>z37W!Wv)1o>5A%g z*k+}=Tp9HO{~(_?-M^z*t2Y{R@J_Te4iRxVNJ1jkqY=+%kJk+{Kk~MT;+MjN>LNA7 zUo-jXc$Eb;#a3G%MhJ+6j*qhEoN%rO< zS6JX~jQY>9T<`v>cz4Rvx@AeG%+~gM^rovqmU6Mi-Aoy+N^o%Kl1#kC#kNv`jsPf~ z{`2nCF>#}((1Z?X+M-hH&6)ebaMxgR&Y=t^2WPBj!&YCh3VAd|&gf%4ICEf#J6hd( zcSsCH_ZToFNIC{Ua2JekK?Fc70OPRYu8Zc+CV1uS^VYl0`j7!~dHx0_F+t-wT3*{? zTsmt7#~cWk)w6md^6EV@WkLQq;p?(J=96sc9F6aD3C4M*jl)-0S3t{N&oGVO zxf)HhhQ)fEw}q)qv5zxXa60b0crGr5OQ`6|>&YEnA|^&eq_9+d?(A6bq2k7JwzpSA zb=$j6Bk7`~$Tu_FuH5_Tx83m~3)B+!OZnpb^S2TPn=aRM2&vk)w@z_U-j5EBcFu-q zlsG@8;WsVPz8bC7VXgO{{{%8=7nz%DXiTe6-|g(5p`&Tf=rBkhqBn&(hNi z%*}@-izmruCF)}@nhjW%W$dAn-W3V@_|U{sQjh}jON%3Eev;bi>3e8;D_3FClWdit zN__kzU;w7?wJRzr>uKuf=k`Sz=anojE@v+4vEMnF3^!I(P}3w=(7vQ)kyhGcta{@^n0Zx@t>Nt)e|X`VJa|sAv!9i$x`6YOkM|sP+9WdxtOJjC!1=? z|9n9I%=?R||DTIoT!5Oq{^nS>P?_~he_wDe?q{)bJLX7$JV>(`nGK96tYBAL_6M7T9exzDd7(=z5;<;A@2lO+I6+^(4}*oqYx(+ zdI{wFrl>s{w3AJGk7!ofe_hklI}6q2%0+86obc_MysCs5+-IQi)s$=I);4*yleQx^ z6+xoDwt{nj7kLSlP#HT}M1Q!Z|74WWLE@HrpuQ^g?6M6um2}o#bk7&OB9>IoyYaAC zj5-s~(plmRQrr1c`2qcLA!OR6jrcFGnsyT6ynDa#!db;{3~f%P&Ge(`i$BVcDIBgk zgB#DW3zce&a-DArLb}P1h|fu!NR!>%>FhcAX1T->!yhT+OG@u#I5wT3ID*^7ZFs=Hkv#-ExkQX`Ax- zHOGGDkA0iMiP%!|VR6TV_KAp|dKcH=PdfXNt}fiZH-Elr=!X2_TE;4)RGXWn$l@N= zm|ePp8&Y##tLbfw=lJv^*I?WiScI(+ndwTlM>dY^>SVGJb%w zV(s1|p6E{;%=1jm%EqxXQImAlC)RhoPN9&qj?%8U39qTx~x) z*7UG8&KI#1JeJ+m8_VBXC?>nVqr$(wcuT_*79_Gd1>-Dbx`{U~KIuo~wWudyn6ol7 zdUMxcxsga@$2V$`M6y0UDIb0ZaW|U>8|*;wS)0$x>=~mF;V!N-D0XXFfo62)S&dsC zV&zNf`QkdAjnXC}-k2?#lhmL=V^3XR$9k3%-b!Hez<1($3PV`vBKt_!=9A5D>O_zQ zYka%JFGL%u(ecZk1&Xd0;9*+3+mcHJ-%Zh9cQGsGsto1(=U^-ihUtD-B-uiPhq*0n zxVy7lr5%O=uWSU&Q1B`k-9?crCe(N->Cx(boonev zR+W3&;8b3O!pQSBdB%l7cO+ZK0V5eRxBJ2P+y!0US58r`3UWGvPQxP>w*Z%9p;!(5Uo`&{3Q=Q(#K^R5dp8~d-kW*h7+dzJ6*}2 z64oIidznx*ZOkm8%?tv!QF@bIJE9Ar_!f-YlkypIr!L=f_-QUxan+7AKf%%-qo8_E zTyai2HbCslSs;=grt~VTeuP5RTlQJ%aeON$e1j_&eI`;tOLXCPOAOoM)P4EZM7b*k z_4KcxJ?e?zgvH~%S~)6rGUc3rUGhEigy>^|Puz&+!sy>@mP`qhMsVBB<1woR2VEvFq0;`^-4hGj{Eb zA2hl^XYXZ&Q>fBM)g(t#I}fcr6rJ4Cl35#3DHvaN>qdiL4M4&gh!PC9Hh{E1)3t`c!+dr(SvfhHNawJT79f;jx$^tO{4?caC*JV}D1XFD(NxvN@=ZJG zvdbkcE;)w9MKLiTnt0VwT4xo6NURXR9pF-F_1?gtguVjJG_NKJX{wv!OFpiqEv&wa zU(Sn&Xuh>0$5?ro#U8@AjmW;ZKsV1S8PIDl!yNJh2GybCjYiR`{sE5QzP2c-np4@S zm}!D};_SD0&96}6&RXQ=+ni@och-ZtHHug*wa|L<6=ZuId*a+Q;x0SOn>J?oHzVhr z1VN!1c!w?HAaRg4DIgnydDLz0_~+bq&SA2_NaO7rhEprgSVFyOHlt#&HTWHqz%*te z?j}yNKa0SJK-`|Wx<2_5IoC*f6YZ)%&gjh>hENvZoSI$A7mbC!wS0P#EpCN``0|m? z>13k26r4#9`w8iW)2+{5!Y4kH(#~f+tJE%VJvyha)&}{xU;E>|r5L98Vl81RerKV6 zfw(2LTC%xS>0MMSSN|S?s(1kJgb-bw#LZJot4Nj8h)*t4q@o7T>a*Z$r-|Tih+Dt` zX2^zqrMir*AFM0aLN=rj+}8y=7SuuMDB%{?AG9rny2Gzk5w-JJhoOU_bETkY4QEZm z*fiHZ8b(%8*p+m&KD#Ub1mU&*$hC)q8dv`S8o{%h$7 z|A+6_VbfsX4A?aMUjF-(e2sjsGqOI*1f@lSn7A9K!3y)0ROz6e zKmX#4GaZF7bBL3FP`Dw50xFTRj-Jv^m85AK1EJX21g*>{q(i;o<3k)Qn04*@dg!dL zOl`k#;NN#iW@z`4(=F3e6RwbA0S8VS^24JBat+VNny@OujsZTrZ%MwNklMfGc|;5@ z2R^E-?Q9@QgFEl0Z=h0LQ3TUKEkjK zt!}hUweHpd;ba;LpUT%KlvOiPqeKgsa4f5%iP^KzQi8R6e8UHw1sO0IyEjxl_-*;6 zqvu4m^to=wh;8NK*|Bq0r-k<8(PYlZEX-&q;A{I>iokN9z6qUncr#ev@HrZV*AqjW zv?tkJobwd&kex`N>U1P`=w$YQdBr486Ukz5T0feJIZ9ntf*>E4&UK|H0i&N-^vy7? z-%nvDt4M#0wX6G%QXTZ3nXe=@t5E9`8_s$$YnuB>SfEX@+m)1rAxz>xwf>GE7qk*& zCxZS^`?Gm6@7LQg{5g`tiTY&A^zc)~v0dK#K4@*@8#*U^V6B;rm%c8#CI|*fWk;DZ zAa&d;MU@COD~m>?;-lGS2NcoF+@oufDNwB9WHN^z$pn@=KX%QmEO%;!DDGz1x)A)? zx2A**D#urcTMGKZi0Du3Or3ESAUejXgNDF%#x!TY&?Iz*Or0JTvc}cP7hJ>(gpG%` zKlzAaL}R8G*3q@w?YK5h&6)}ury;2+zq-E}+@^!K#GzGmUR*PLE{f4_c4dc-3UjxuDS8Tsb=K#ZV3!(>E&IgQG8{iZs z8*!N_A2wr24ib6i;vTXSQo?ddqEV9k4s#Fxa_zbIqhm=IM9GMHO`lc@dT)mI)FF{G z4Ayow<)+c@otO_AoGt={o#Fu)Cg(9(8vF2krbTre}4UeZ_afzta@=p-;AGcC;jS!qJ9TJ%V zKspV^&$aXt0P9wHoBY<%#%S?ttB@WME$rjanUoA&Ijrs_4q}S}R6I|VHse&Q{j2;F zj=tJKw<|u0W?mJf|Gd7D#yNe#^(jjegfo)=|1tH=;gxj3o3ZU=Cbn&RGRci6wtZvU z=ESyUV%z4#wtZu7zWwd9yZ`jl?sHC8SG{l5sjeOKkC>ntBw*WVZvPy3=k>L+ZeM!F ziXNqcXKAigXLy(Qa*8; Jf&Gm6oV znkHtW_{%yydfXKcp4!-o1r_TzF|c1+T=!Hu^~^#2WKIZ8i3mkebl<;wljFp8f_<2t zSg$Je{;UTjFV7=<2S+3P86=dCW9p+-Ge_%*DLNW)CE;l@&|pmF-F|u(m%iPjC~m<{ z#ToefEa~pEGOb9jEcv!O1MB2_da*!^(x_PQuI{FhTH3h6NFxi=w$Rl%O_Kgw7+ombD1F zR@O5C;hvGky)uWMYHhC#bY#c1v!l0ncl%|p z1)2vUyeK!WwIP#I!b4VORVgHQZ*(gTF=!cjz2uO^h1=HsH{-+B)rC6Y5pzShn|~ou z>jT9gmxmg;1fqWj-B`e=9FXng#ST~Ev5|boLr;{hG&!SNB^j6?ifa}E9?vGj_%)&| zV0Lx?&ef3GBy*i%keh({<$w+~i~dbDVr@q`WI*w*<*0X%FL%>5i&T{izIAWvHd>vcg%(*9f=7zaikTufyOuJ-0q@HnEDkz`>;iE<)+L1{THJw-Wkh zH$7A|H@L2~RI<5z|2%4q^-@gz8op}V)786Fw+6P*nD3gdu9BfRPCq#0$4QIILJeA9 zWXQ5b7%QvT48OIsdt#vo+Ss8Htymm<b>gk(fYz!K=WaE(A%>@vpb^h9JofY>x6e^bf-(0acHA`R4eD7yX~_;1LOq)^ z{890@#(@CR=DJsQ8H$dC>&@zb6|qYZ#CW4RPw(r~Pw~N9Usc$p%=p}9)ZdO3#9$@hoKS0_U3@$76(aH!^g$y0fR%gp&mz^COvo!(|1uWd`V#_vmvZ)i z>wX(sxmcWm^E;nw@pgCTrzKgEA9618r+^vtS?SjvRo1feC0V>B`ZufufX4yt#=BU& z;FnuJ?@TY?-#C|E00YFma#r}`G9ezE7EA%E09ySmFJ=a=+3OuuS+>bS`K(WZ;vAmV z+sV!sYIP29e`c+5MiOjs|C|{k=?EhemoUI<#velo#&pIl%D(dPR}i!8k)YX=-)+o*jK%ed%mbpPF#HJMxGw8qK~9mI!NVf= zthi`qELP34R^`V%7X}+ymyX0gy9ECmqFtP#0GobnaYx$mD$d>?>^j6N9!~Z*;Ap;b z2m{!2-n30H>;>?D5wxn>uJP)nB>u#_Zx_SeZ4blFH~&L3(g~w~Yu3pRJn++T3SX%U zS{4-}>pGn|vZpG1e=-6vpfMxPOZ0^Ce&K<5qWA}KeZsK9o@v9lHH+De$w4fZ0?-5` z5;*?u?@H;Fq!^C(exs9V(rbz~$BH|-KAVn6QdL}{bWrBG58LRYxn@i5@1W~AHxzvK zvv^}WcI_w<`C{v7%$qj_KMs30N<0t!UQ@^R46tGHRAB;H4I;Pen@-2S{Zud@iy z2Ei5yXNTc%nJ$p_r-zUK8MN{zl0ba7LK}sFrcf6@kA_+wik3o^kXg(^_su<)s)511 z7&g)DP|SDmc#<++bF!YYurn8l?6Z7=8=Kc!qSteUDkRZ3*9=gu_R@gjCbPl}fefJ$ zfEN`MD?cGlt|`)T{L%D*Ar~kvg}QZ9H@BhX%=E#476PLieUFSOan2Io+LG)g{w+OU z;4wU%yPP|JrdU`P?VOnqzJ>C|VEXqS+TlO0`4f6S7nFZ-lA~!uj>a4;Fy(#KQL8by^swi|MQ!n$~_v?q=0ciL_ODVh~X zsF0~*R?_n56_*k3C*pvI_f_0BJl5g5b6!%$Z^Jy=>Lm?6YINZPSq3(g|p*aGJ;^$;FRev7D51M-H04PkFNujgv)CJ@WA z=_KAQn+U{+3OFM{9X26MDOj z)@HnYv?Qy__%IkO!-z91Rpf1EvXT!N=id zV&puy#VNfu=rw~{UONCSFh*fE^T>BHwAtEepar@C&AX0H-1#I9xceIMC!ub z#9(C*&?-6F`Gaep;`>>5K;?HX(Kx)`DnY&FQ0G8xw8F9;M-~q`1oVz4X`;G@eHoyu z4)utcnVi@0r4bSW(3lL(2$g9;Ttx(-H@60Jo?vfNSYP}1e3TH7kfwYJt+ufHoo@h9 zCj2hQY2GpEj{+`^V)T5Ui31_6`cn%ve^-#Tp+hObIiW88{2m&44OG5FqT3=1%Jy95 z$U}{P0lhY2B++9^$sIXqLYAH=Fz1tzdPj~^2VC>+$toz%zEiPRv-SdxUiBLYpAsw} zjv+&!t4vJt_0tMZ1~Fg=@UQZ(y--$kd9ifk%{|gB!j}3jJzsQG&&>fu{gBCy$nsDh z)?ib9>t^sYX>4Aj2V)-I^m`&Qbx+M&*cg$%ZLl%@KM6Q|4(O6|*H$H?5t<^(H~$w# zc{A92QVx;;R(=Vb69RM%6c=DUk5VfhH+6m`M=`3`Dbyg@lSqXi2cm(FHZ+&6UR z`MyDbM-ZXaZ@If!1n+@Vl0U#NrvcM2Vkd7XwgHf}URe6OU+9T7Q@M9fAdFuZNEK!g zt>`%v{1*gu z_rut21Nm#=Qw)jj@xbalYSYA&wdvBW-&tt(xFAMUik_juoIWs6!?E0G!nTJ|uPRv$ zI$*#vq}~rr)I9)S%gXc100e!?F6kP4%TAIeGu$7!)NX1L%~fJP0mQ-nM!kyzQU-Me z&P)|^`=Nk~n{mahky_;ubo3>C8j7OVI5}8P*Ctg$h-?%KXZ4F@XrIVQQtj^*x1|L? z5_MfY*KL~ob2N=Vbz}qbzVWLn!?(BWLL~+~mPbrMh(Cn5w{5ECc=fo646VTyZ{>zK zrt>Idevrw{-BTUzqBW_Dc#8Vm$H`v%nhXOkq~d{)m|>`f2Pc7)(7*7KZ3D5S)24C=X?0Mh*WS3yzobOYFrE zt2(|QZ_=hv|C$;DyNCb<{6ZS2az|B!x%WU+U7iz{DuaB!Vm(x#5^HZ*9HnRViW$mn!YCQE$K7Ei%72veCLIN zpU6f^=BuM$=dCc5=Bc2XLboJiTZW`b`!eQAoHR^!!UW=8U#*XhI)LLFf2GT#8Im7p zzh`JqqfnsBwzuJ03qHUt~uMB_pHc$rk)&8LFLNO-od*Rw7 zGrC%Uxt}}&>F)etXp_7=0# z8K8IqPB|5Gi+3$bxH8ufmmlie?JgR_GW1BkRT`tj4`O?Y>t*~fNIw`s7{=Ux*lDPK z8OWZe7_hwGD9H$l`ah?7j0mV)}-~^BmD@vS3i)$h-dLB7k-1$kuk1*+B^1lX%e(tSZd`Uj^fZ0p~MZJJ!k>P+c@g@;qpFrcaHfh+#Jx2qraILiw z_vuf_)t;ijFhQoH;4`EQ2SriejNkqGz=HmUvZkX1MsF)L@_4bYK3IU8)sLb$AP7c1 zdQz_W_nea;%&@l*15q0x0vXHtTxV7z8^Alz+Ml+qh`PQAI|q^6H_cw{O(7i^=>T}~ ztLSj5bA{FwD1_6fZRgH(Mw>eK6`@9g0uf5?o7;vgUnjYx%&valaLb9Cu`h;fgzFZ$ zGO^a6J~9ixm6cJz-3ehR73Lj=^4=4s!`y?R=;=D|3PPf@@Y{T^`ifh9Vj|n)vgL0p zO&|Py&Rfw6fsPFk0%;6Bx&WFgW5c!+16IV6= zN*o91o=frWoHgfFroZwv|JY9eI;0ZhLmeG?T^5Rmez}jU_Nkn2w$`8T%#JS$h(sA` zV)~BWM_A>ce8Z6#!gTHtwBUaRbW0z>G&UCgjCJ&n9+ae@8{mn170IM~vEbd>-1VQ! z`*2U(9;#eJWT}1|up@2x1HKO5ZGU%(l|^HqZ&TzNkN8n(ui>l*c50b#uu*o#_e9aht0SirV8-o*5f z_-CJ3)tCcw;4b!^nT5z~c$z81(9akf$-jm;PrqfkN=ew$DP2<)fGGkeF^E+Uf{ca= z({FcF1(39KIbog^qu&R1ho-BkvdTpXZ_Z{iy9gc;5UCb9Hc3CCkd(#&HDAuP1a$%3 z&cMx%*6QFRE*vr_LN>I);$Iy#GiIjdvfEBPXtIk7w$KUEW9&w&tO#_2so3nNlb_R@ z>F$y)rk@|(o>%uTolDu5&TgKUMeLcq0|Pu1tW#1kx50sABs4T+V z;!28=;LupmSM^u4Rq8OsfO9U*Ms-FUohd={+|Ebd`}a+!ht|`GvBc~JCnr#m>=JQ6 z)831}Aa8V@rLDbT73fah=EpXx@QCB}KEoWYPz=Zy&zU4H&AVzaB`QIci<|rP>B-#+ z0|UdTRzt7xZL-+=_A2Z=xeDL$PD-oW-~>CTJrIiT!_mHJ&7{L(Vyj`v1>y*63yR&X z)34&S6EkIPrGi2cAFANT`rB`RTZ<)v=aQUmUh`T}Cn{N!BvKl z4_jA3{LS56&G+hSo-#NwcU)*#8 zoJV|{%F}n8X2pIXq29)LJNep8Ie)~Cl3R(g_c`5id*Sewgtjxu?Zf$nF+bXN@uaIG zs`vd=iPM>Oyl5n>Q*tuE+TM76?61+fPvGPak<2~J^gn7^a(%SpsZNDjg5P>OLMMD5 zBb#07;`^;T#eM$Zk~@AEgHH|G9_!_ifql8)1mOhr;`9hUFpTh}6r zGlhf6l?s~t+ZE5V)D5y;a6)=E_9cpid|2d;#B7VFy@bwnd%N+nw#gBQdK&4sa~C2> zulVG#;pQ{--AqxUT}x9Ln@q(F*UlKqcP0+pY9EDVE>kI$5?7A+RR|0Fs84(o#jPhQ zj!-F0Y}DXFRG%HB`U5LpW~(F$iPfLGk#Q&UbQF?Ja~1AA{eqD75IClM!lz01OFN@o zSb&n&i{$xHe%B%&Py2noYBqh?N6~-fgS!6RW|)NZbhSr-6w1D$VU|FDgs}pQluk{T zqc8!uyST|b&Af61_8b@?!c`kRkoeF@{i@FWS{6XU+A$cmtT)A-Z&vja;nY(I)bo1i z9~>a4u3MFc^HtmCO++JE`nSN_Y@Y%S6KcrRN=f+i6nC5v6ZXFnL^qS!=S*3v@2xrv zUZDyGdYx`{*)BZ{-cB3oD@4!AIdqn%8{5T1IxJx#e)~^qPlu&PRJYa(F)7R5gL$uR zFl|JdJV(;rmt&ALM@jd9q(@z6C(ggQxcjG5e@?_0?gfqnDxW=I(4}Uk|B*gOz3G0} z$EkMHQM#quY~G~j@)(56cIF$lD{A_v2J(M+*W6YMH@r{BJ}kM$>2!=o_wFCgH-&HC zUAif>JTO`#qk~ah@rzUU>rT&rIo?R#{Sb`#4LuCN9ZvcgLbqxz5hMHf8$=J9EU!Dv zxj#CbP{?b^5>M76g=Mxz*p@EYy73x3W~O+bu+1RiL*IO6D0D>I?d1pQse$FT=hwDi8KeC%bTGIxsmK*UVuT zu%N6LdD-)B&EIkd__>FDTk7MsbpCg`dVt8uBzuO|<>xBSu(`X*r?g4sr#>%U5*;2-!aUV}5i9zk$#p(~K&qe6hn`>NpwGYM@3x z;TD3xw>=e7e&Nz1i&TTcaqd`LLt7j9LbR~;c19`cJ|9KBPZh$`Z*Hy1wz$FDJ+Zba zmg6H>Of4WEB0o=CdFqK7SNN@g=!(R!lR6tgPFCxQt>8Ajr7}wJcnoFf(kf!c-BPlm zx~gW2o}oH$2w%rHcx6*(1I&AUl}{+!d<6$({tbtapBr$3**Q9fK1tW)Kie~MR*%58 z?%wDK+4WY_=ek-R6Z7+%e3(Waz%;4IKT>ZepT?_P@HJ|7GbMC&M3UQn6e{T*6w?w$ z0<9v-5bG%ZqFZqcpm*`_qp@HwAeoTO`6Vc~8r|0p^4JrMz0_j3_7mPovO3(y|7+-bBb9Jg!Fj3-CUCf{FKZq9Mb zkB3YoZR9MCp~!VMQ>{-kHEe!7%oNyE72tFF?@N=QbP-p|r@(<>QtG z?n@7;r zkHa;=pH&H(^!rM75=hxd?8n)W=tVVa3-#o3hrfc!0mui%noOUbf7j6fyPg~F7HI5> z2+cpqv+F&*y`78MX!z*!R!Q49(qpk;$^1?bQ7R;O^gTDQ5gdTsT{wa1lXIAPJIBr< zu@>Z*+)P>itL2yW7St4cPF4nZCn_Q8oNh-J5QVUlQe^(5VUzxJu}QJY(&yF~RWlPz zvia`e55Mso%F#d*dFpO4bG_KQN%pu9`82{<2F!zA_Js%N+=#3`G6!LGUhfRdDZw@g zBZ-~7>jui-WMPt*+R+*YHIxS@B6+O-n-C^Er#Ph?>{b@LCMAHAL8Vuh3>Fcs*f?RO zAmSkdX7q#JwlBilq?#6LjF;J3?Z%|#!T&W9IF@q79mnShpktvpVia>--> zu@Rh6M56D^lMi^y|BE!O^_r*Z@SPhx31#Ag&fTrg0%EKc{EP1Y{+s4ZB_#s;xx@zV z=`}y1gTRPribl@L9!pHLP(z!mP1=mr@nAu$9wkGiKgl;n7_D^8dW}}bRwemwHjuF2 z({Vh8qxN(+bei%k6VfX%bXrO#jW@d`2owp_G6I>fAGv`?j*h)hL3RKo9>f;*9A&00eNTg;OqeVHndk@VGhWD?=I-bI z>_MxwVDluO9J_dhfvws7Iz@}F$)R#aL9bQ#D$Jy5hyJf)xI9== z0vqdl%KVi-U8P^Qk~mBXWc4cdi;5@(#*4%*OL4%xmPGx3triqr1EwcWd~A(RkG*O% zWgK54xgjJwx<`KtQ1RL*qSTg#E<7DZ#3hN=U~6vVS%(B}XZq{ONIOm;x@;uQt{8*@ z^;S|5x%4i|lm@wbPf5~Sc{NWVCMTjr+B&zv zOJ70>%b#86XH*C@#NU$ZP!oTDLqq^$2wwdY0@O=_{w;HQ;=%B{wb)VP1^{jSteY)U zAZE(D^=B&Sp6a3)l}@l8jp1~@jRes|2)oDkD677yCUs_klZ`ZKCrvOb+^)qjYAuV1O%GTBfX0&QO)CCSQ1LDq7`SisIE~{CB_h;UVR> zI|)`@i@#j6rhj1fM%p$cBu<#SSwNHUwuNTBooaNdS2cN8ecar|dlpYZ8%mYI*MLxJ zoIFVwes9dUXe78T6R--=PO>cqg)^i#A%%tLo7sw5Zv)A$h>CJUwM{-fe8jE~OPEIabvtsh2%yIRo4zn`*9EvD z=_u`O7dtSQP=OY94?F_)5mvk;T46Btyi_*<==yd7#*n^>DJ{ku#b<- zQt02==F?V-2qA{aVFhYMlnvC6hM|P~TxHE0wl!dEu`Y2!Bkb{2ysvtccep~lorLba zmL&A!UDO(aii`g>|pM^^H*Q%YYJzl4yu%W_wGK^A1-sPYne^%eqO!&*a&$0_wk~) z;&5b7@J!{7_oncEQGJ1fC~*|&R9{JPX5U$=vAuyAY0qfkU4OB}?{JgXq%e&^PdFUi z@S`T;SLYR&ehB75gWKEt%y#eDVvCqR{d(zpbGwqe!Byjb4Au%AKG=Gg_!0F3t-$WP z0u9WM{%q6FdUd2M=;ZCp#BTibjgNN0KEl|r(RMK@TO*tcy(h6PZeMpD%G0TDp%f42 zPkWEfk(X|7hQuiesT3K1JGI~8KwlL1eG59Rx>&Biaf@GuB6DiEpp>yQa1;v%X|2F< zg8uAYu_8Ees{5md=Ir&7ZMNX4q_e84!3o_P}L}Nox%2%TXh&@sCtNa-=V7E~1w;q((k&Ek5-mMQ_hTln2_A%%?+t{l(AC zAlOi0XiAALl^Q#?^~3gqjw&Jr`}r^{1sidX-D9XHs{J5;jKZ)6Vk;|$GPL}=lc9a! z76J8DSayYbblexqH^fqb?3EL6etXW-kU`F}Sefm_>5>^}>aNv)n}T{W$A7ZoN-}gm zhPfC!>CzI2bKkIvH)6@on8tm*4*f2Fp%swjV!-{dODup~~3(&*)c6hvt2M%wlTt zaK1{{^Gsfn{ImBYHW?xWTR)#T0SGdvy2{nh>rRu$b~=WnQrAYp34_SKTWpq%e|rtn zJ%0FV(Ly#%M@E*JzO;W1GNn&pN5_H&{Jsy}SBNz-iV_KR_$3A~Cp;`F`ScI%b{wrL z&}%2)bC!~uehy_ytMOyJ4M+VPhMaQY$`DlmXF@KrT@ogN`Tv zQ(1l|8mHGc@wNz4uyovJ)6G^25_ZNv0m3JaYR>h_5o^7hG~#}pT*cDvDg9B*-r4Y+ z?uK3EiS>D5k3m-39h>^*Wu|I1>7SQ6We6hZ_w%vqB_Poj1^=eDFi$Y0P<2oYUv!*G z4Le6nMsIN`Wx>O^<&yBW^OpOW zB>NL1C2M*{WHkk=_Xx=O@X@2#7FbizT*mnJ451LkdvMhN%U>SKcs9A7^*IJX$$28} zDIG)8x7rkdL^gZak&zW##gQ2r;8#rZu5Bma-U=Y^kIBtj@?HERm{hgx)8mRPjig~FA4aQs*cTvZH@wp5`6)yFBYUS~Pc z;noCx$@0u$K@oU{=Yzzn6?kV*n$Mck(JZY8ad|`uZK%P7z|_ z9AjmCe<#-p&850bO)ndh4WOF#_}7^Zw*q!$VdwVY7^uH<4+<3t8nPsKejybJP7-jT z7+WYEy#jxBmvkF=?zAk;cwG248kcl~p2OG7%1GU$+3B6+N@{nSSNa97c`m~Ot+jff zh(@}78}JhA$hK6e5z)Wx5Eb(z%=Cq}v~U#f-I>!md`w9G(ui;`bg|u5tqdr11$-Il zUAFI$ezgLB0LXez)sZ5167-j1Nx{~f>Zn*Vq6K0P-?EtU-6kk3$jm8M2&2h0$Gh}o zy-PN&j;-q%{!lz+-27Ot_+cjBPsPGEMAbByvr5v)d$b>s^tc!uT)CiZs3Gn)r!udw zr4Th}jWwA3>+6VK0d8E-3 zI%7qXP$7opHKnHKZ-;kfx2Ub*f~<%29xss~ecs%MkU?HS>xjv3eE32M^z>A^K*C>Z zm0!fdy0p9M3*=!A@SLMd8m_>UIN&J8KwQ*!k~?Dk^??!K+VvT3oi&#+jOi^s%KqsKKyryq6C+Lv{u$?a*3zi=blc9O5rI z<1?|8^WtLDTxY4UJ^y_+*;y!>C=0g*RXg5SER7W`OK9GZ$B3eZDQjuE-$&T~y@9^; z1<{Ds0jAlvd&49AD)PaTu4E9)JnVGE!l~rXl zOV}tGtnn#M%Lf=3eE7xt*f%18VoXTU>D8;hTiW|ozXB;6CUm0}`l4sE$e%WglJ*H&k~Dny|v_9$UQe$WL{|EAu0PWSdsuZfO5KVb2uI`k4hT23lJ=-p!<#%n3 z9Pa=XoAyKX)R(n6tQ?iX?8T)~coe;_>I|>18ymuYk)2z79h|442dHCw%~56Xc8Yis zea=@wSD}olBAoRh-}d0-qX2TV$f#k!4+io@Ixveu09>_-{pZ+dNgde4{-G}5opZ-o z5GolDWGGJf4foaGnUa%96X9mXnmp0aQ4GgsNBQo~%y8gOt@3d~Cb5z|xQ!hu7>Urr ztg*pTviFz@Uo3U)Dn?_blwVDSkQ#ZcJP252GFYm@b~0H=m&U?SmAfAONwTMGy)g^r zqmRC>r%WCllD9n&;{vO!FKiT$IK)ASnrkFaG%2oj`XQFlwZAm#+3B#&GQbhU0+`j; z44>bequ8m~kjFia9hly>xH`&NOw*xZe_xPacAXS>c#&^xRh|9if;;%-^Pqs?gH1oM zu&yfuN92c*BBY}4@?tY)p^*KizMq-&>>@tgcb7QO>PWMSkZBxmRl31sv9dUnW)9)a z#yK^L0_Bt2QG{x7LnT{#3jHgV7v}!D{D%!0%&b~i#6>CnL@KA9X7NRdbuN=F{U4dne--PnVoMk)B7f^xj_;W==JwSGvlxq-ayJzqR_o z+Hz8mrxs!5YLHk9mnwLGEWhHH0sZolpuIxHbG~;Yy*Fd{KvI|2PGot712yRa-sXS`q%Tpd^bM-|lMFLUySwhJr-a z79hc~sKD-A$LID9*}7UB3N$pUS@Hoc#N)wZq@#@MvNgSb7U-<38)@}`+<8CItq3Zn z&P0)ygR>f(T52@3L%e^xw z{@^I%Hk`w>C3$zsmq5p~Vty*nb?6imp&uu~Z=C3_yNG0M!(rjLSvQW}#`Fo{m1U%| zz?s$+WX1s4Y34=iuC0HXNperKSR5>pioU=69r}#`nkb_(4w3swHxY@k zS_7u5a^+im-)l#|r}R&tzWvu`C!f1!6BLxH;Mi$~=DUl)bbK!E7ROlP8-P+Jj>xT= z-}vng*!>pWyj(3A{hUc3*^zNE=QJes+SOI0_kKM$rt+N0EOXdM7(|@Q>1uB8SK|cQ z+N^lr8%*xjynCCI)zhHxyLD3kC{Z%0b{q-vYvxk_F!SEIjp`~BA%%T_gz z-8crE>=p>Bu6S^aJ);Wwa4^j02K-4X-!7i&D5zAp8~ zH=5X*|L?x5|1HMRZnvS@dS&vJ;>q1r23kSp9q+f)sg(b>1%qkb&q;__c(FEFP*vyS z^gc6PDb4WhrZFJIz0BC&+M5B4J#(_kvDUHn@g-F`=2D(TQ|V6>3{v&F^#Y&tErfxhavP!{>1sRk`EbjN}iLF%sVRDsYVH&y4f?d3Y){```CdxYX2*87I>z8%fM} zlX?A)5&8K{{FkPkR8n@^_ms4b1Lm!OxMS(iD&4FHd~5Gn5H8bO0~x;od7Tu~20JVj zAemeEh+{Ta%Rchnw>B&6%?W4ZH)qw%lT})7Hjk}J%JKS&c~@vZV>d;uX36cIcB$IR z=QAcki~RV+%N03e<%*trH^9&9kXg^(?xS;&@{0M%QnK^Gd30QFLGQTAlsU?;YGRr2 z;3PXpmpKH2h7?Kqh1&5-NFEh966GbZZvBcXU1DrjMUy}2t}`*MMDP=qU>qh#{}Map zMu|62#;>tT+t(Fzdyr}85T(7oi__dP$oN02De9W*-gEzFSP|@idSrJM9Br{^A(_Lf`HAtfZ?n_Bq383fd$z2XL30?d4mr*s_r_r#it{ ziJb>}d}~J1SoG}Zzi#1e;lpT?&KqE z?$}h@VL;O}@y#U~0ib;JlE8s5EmTGuHaC|Zpx~7GQ?4mB=j8M1XIyLUC7RbXp5`L$ znsjP6t!<^wU;q9S9`B>Kg{*5%u2tTDnL1xZ+vO(zT=QZ72^K2nTKSG$&!v6d7w^|Vz;Qu%iBOZWaP zs0lTiQ7~}Z%C$woie(O>d+i*v1+w%mR*1eccC7ruS5iwS;i4(@*T5Qs4zTB zr-?2wscn;OCPg(lK`qld-MKj2HLb0-hHl8Eq|p3j;7dNnE6MD-PQIkzV1>vFMi^d_^{kD*iB6T`*Z!1}2JR1lIL^ zx*ER6yjg_Q>Wf^fibx&j3JAmesHE2$RVRzO5`1MMd3;nd|JZqdE}T+7vysaCC^>uW zLfWhsvVR@*5?U-zR?z8nCVm1kYEm}fa1emR|Ck%NE^84C`b1~P^m+*)zfFN8~gWQ4q6p;D#n6U2Difz~|W-{V{$JwVmSk&FqR3Dm*j~^!B^McRuXD@B_Ua z+j+2IrH$gdeeRrxc>s!ka{qW7+V0HN-zY~=iH_1l4#^aIu?ftiDyx zHju#L;9GZXH@4hvR&H)aZIJjA{EwWhbk7IN00X+UI||B+dJvrM4L}ji)*-FjyaDhM!H z#PxMjVQJdUv>=P&JDTro<5W#O`Qz;2Y2{l>s;C*)O1u&1NCtMjE-&NX_5xO5QQ(n> zd$tq>n&Ljx! zV)m5g9?F$mdG`(z+VxUoti#G*J7u+rTvfl3Gq&=bRi1glGWO4a!;N=Fa(IgNe2;4P zH?=SLD59xl+p9iW`n*}^Bi{-}l$)%G&ruya^PZzk$ugjD)V*!*H&aBqg)!aWBXHX+ z(ADIE$rT9tC&xH63z%eH4$hT*i={D*o{chv`?j~7K+mp%6EuamitrIl%C-lB_i|iFzvUWxC-UGIE;xLT zT{?HNf*-0kC-UtR@OM;`xS`Xybimt2t?eTn+|OIyb6yFIb_sJ|fJ#?B7Y#!~Jf2muLH5*=Ub5i*-SK()qIejyWhv^ ziJMCoyzSe=V*bzv^)zWY%ZJiw|ASTE(~ZG!yKiQsHnGEvndl$j%RR2I&B1?KyPJ}) zFxVzEH1q|Zf|V5={l0^K4T_HNuTXfp2CQ$O6yv+{Gj07Ot2i}C0B6h zEuP2OD?y=anNFA*@aru3>sQjlb?Shv_rp8>c-I)pyh_tD)sCG~%{%H(G1OU4*`iXg8;wAlRsd|)2GGx7i?$>>dzqyX< zQUP=p=}=4Y?{y0%e!WO{YZWY~6Nhz&>cL%d#eY8hdQYeWS-)_CW(_X-QXH-NA%I!h z(r*kF>qp){^QO325$6xxvmU>+uCLSS1>uf#yYx#-j#6&-&5NEQt6d=O7G3x+q=L2e zZq7S{*}bqkxUXp+?PRf^FZ*j8qB71SRy1$tr}Fdu3m=+x9fkBZ^$N`0f###qV>{M6> zVrsA3hGByb2Is9K8PaTxosq2-mzgj4e%+_NMi8sM*B=dYBVOk9KhzX9l&SKiIzKxe zGF~zQD_0$jg*jD_v;xMXz3U6=aX^kFt3gdq>myN8l!M%H!}{w4o?x_ROY> z#?t~7dC{+saf5=kRgfC<(0ec+z3uS0+Q-EFK*?vV&Cj^bJRLNbcRt;sl_%{re?JP+e2qwUk|E?irlQ^9gmKD3mH%e`LxBXg;!?0_`rkrTgfOW?F@=ckk|I6EFBY+tgXO#C!^ z#)DKgpUW0*y^5pxKy5o}5kfYA3!*N_b|&?9HZdC-=JF?@-CHRXSFoeK*l2 z*hlZ}ZqsExqy0=<@$7jig{_BoE1wyZh3f5&wI_LeGr52C}mi~o?w^hKf`5+)l$w{AQ zxn6@4fXYNgfF;Ez!YzQ{A$ZHb2rpd25NFs4Bz~}~Sw5>_K{;^y%Lsv1^4+x6VlG}m zPCi3Rd>dG8vHwNZTL;DQebIv?NCE_RC&&N+f_s4AmcfHda0?9X5+o4Zb#QkH4ue~8 zcXxO9?a%kOTf0@;e^663&71CiukStgoYS{49Z3Lj_yIog|3!vx`n6sB6@wO@;%Ik@?6n?A!waH@kjFrrhJ@HRom&!o$E}+w6-i4mMEmW&;gFAc8 zdd0tbQ?vRn(zkfcWtM%3y;bJDQYH|Ax1Mz8);W+9?+9*N_b(+Boe?bi)N{*G?~u-9 z{<+cI8GS_=v#M=H_CsXV9}VwZK!NKjv%&AaiA0;AF3mNY0&FYdZ%r-stb9eu!vqhZ z#7w>q4Wzwxw+1NkLxn7RL}ZkzYoKm8Q+=(Lr$^E>!Gha--C!t_jEj z{N_X(Z3xbfwzF49SM#}Wm7EC{BnR2#SACrxR0_7#Sm~3B#u>Ff&Q9;*q>2J&M?grt zHG(1CpZL24J(tkal6I*Vb zoy`h7T=HA83bM}2-vABbR!}kD@_k+L2!%-?(QE!4W>)&B<)!08@kf3_FIBqR2J00ESdd#==B@qI`8YV7#Q#gyb5kaiv4%9ILy7= zor#wO$X)RkvcIN~Cw0<@Mx0TX?^O!TuiqI=7!#(F3Sryw$y$R`VSQrBHD!m^RH>iv{#~~Wb7G3@C6WnoviWuK)mP?)jcw~301wzh<$P?H>K8W=%7%UuewAG;AxHoX z2Pdplz2V=fziBQ~HdjYYWS;F#=+Ca>3r@2!qy&j`-qBk3iMb@9CO5<2QsyF*<$jTmUM!$fD z*VheLSXers!NI``TlrgHh9U(qU89z5!P=6a{wnz17tjx9QU%W&FJNp@R(tizW;L6WM z><%Kj-bDK8@-f`pg3(Hksc{z9k30sF$1=FPou|C{?ndyvQIq+qrpT;e^kJ*V-r3pJ z37ay>ZyjW{Xs_T^wcX4nW+Edtnpb9cGML=Q_MM?8rlX?eHsoh(wQNyM6jZyYKYs8V z%)tMLpJ6AqKHLdC{fR!JSp{*|XyS!!>9X5Ce?k3v3tg3P8o#)zHTT#Eic8WcJGQVN z{m?x%dh!#=cn>779BDR7U`|(u?i{t4xR)LTAFJ#Y-NaG|lR*tZ+@g#W3z-$ksMeo9 z{z-Dcz6m~);tlfOXKD~V1C7)E=wR!?5e|*YQQx4T$HvBRCC|Iq!D6Eu=>VGcO{;8z zQ!zl@3HhHTbWuFT15U4bf%jMA!uAu0enj(dSUI>fkdvf%T3`L*fdCrp^_SyhJf?@Y zE!caE7W$6A9hzSEqoA-%h@N)Jj#170(a-6^n~wAzp}8skxyH$3-fo(RkMh9v?$Bi= zSf@+)>VVQp#SNs3S0@NbT1wOo%a!Vc7LiiaSHiu%>@&YRqc@4j)rfdLw$!ybm*l9h zjl`TQDSwNUS;wz>k%YYwclxGhnu>0*vdFVaCd9XzULy7;3Gt_hSSwNEZ4~4*I$SG1 zk06NUwPsWnw~&dGg_e3h9`&{$GL8J?;wdP7H3`aBBUW33V4lkqg44^qs5Ka2eb`s3 z@PrNA-u1xNgxzonVcugp+;?<=@jv!7J|J!AKVJB@rYc>g8mxQHrB&rEhV1GMab#lY z8q!veR#!rfoF9cFhpay}VjX`~m~wxxU)hSA?BFq!Q@+My+XN5nHc3uv4F!Hi%kL?g zKHo<^B$Rsl?JgmO-8nkC4$XP|N()(8S(&2o3dYC7qpq&LySBD=cqqWjOP@hNLrYux zBbY}wA)l|fnfPC{7827LsAzeZP-->|&TFFFM-LPE%qB9{kB3a9<;CuC)!2o`9_`>; z>e_HzUf&%}g4xlnP#1&MI{5k0@3Z6_Z=QR}&5%&pXft#THu#KC#4tbg+H#&YH&yGo z`nWBw>caE1@dPbIr?t)Pg>Gq4anT{a_ImSh9;D;t3Zf%Y{R-}0cF=TkQ_nfdca$3+ za*eHVxTG%e&4cW${)6T^P@RX;e`_FgQ_uD6a2xmIxj%gBRv`WGF~$$1W{g{#5IfgJ ztt1irlZ}=ktt&M0YWxx;k@lfg5_yA_J4VB~6Z)$_x~Gvd*!^JuR^+2M_L~;c7R@8m z7R$&^KvGZT?;J$D_WrM8inmCbodA}nU=8JoX_$X&-pgjM3&x~p!sQOW8RKNCOzL~W z@@^<6#qa=m{m@qvL;f{(0U7fi<0?$abmYeUXQpqfnB6M|uX1KxHu@1wx6{vQib>L) zZLqe@fz8M6`}!M?9}{&Q@|ZHOFvBJckB0KPcNi3?4cR7ZUx~Kzt`arq_*250U^iCH zy1$BvAQ$Df=x=>I|8@9A_QqiNKbM0W9o<2bmjQGx)+4=(sK|O z_U~UF+G!ZOoVfUPaYk7hj=ty6)SE6xVhA?#+23D#h-46VL9`Z9H^_Jp-af+Xr$Y<6 zFcs2oVZngt*nD{FmUg1}==5mIQ_*9jYw;YGLTVzUMCJ#_Sv99OKSjIu`gb{fRY#UJ zSM5^{qx#m5YV%z!C^;#;&fBM;@*pH`w@}W0QLUX1nq7S}83ly12%Mx zJY(XrLwGXpSppWL0<7G~H1oU#k7Z$QRA&ogQ|~Pbto;t(WK^ea=MP!xetfqn8ZCjW zt&6UZlHc$!{)@3oE;u=g2ofXVH+vjz8sM3!d?7WGz}8{hz}=lff%b(byEsE~vd2Nt~guY7R9iawmU z7Q^Y$Bxv({Wprm2(yu)0!cg1a`Hh817u3;#UybBcEc$8=ep2G%6Y|KXe`s>PK7VHG z;{6)8s45z8bk1v$xYgTcG`T5JhF9%S-H^t+57_qRyd59nyIaj_P6dJlomz$i=wV_O z#E=lDm@C{fW}p-@wYhOK0$Or6qo&9)Ux2LNBsCb*S3AY0ISB&}ES`HzI;VG;Yn1O# zJc3$a5_H-09U`0?+=bXY2Y&EG2sQB^Oku&3-rlZJcUu$7 z)Lt75`DY*_M30khK}YGEc0yMiWAy$=rJ3OyZitH@l{fMqX}B-*{dmk5I}LVzc1YL- zt8DB#VGSO%2jn(2|Dc3lCCCZrR5I;)=f)P_W@4$jh9Obm@?rn#+0}Uu*s$HuxQh*7 zpcNXesoF`7b;NW1#p44Cid=?U_tcGSMRH!Z?pJIAJeW)w-;eq}3&|acf!QIYNb77la``81y zrRKT@cjI0a8L9UTy&iI4gw{s*8NLF}C-cuZp%X-Z|5`d^$yG6lzfat-)FN`}iO)Z| z{9>))J}?91wKcH(y9YWw?K{g}sHZZk?54uQRL^@7ZrPorAPXV!%sRzfm(o>1jz5Kp zv@zBGxz<&Q#OMt$S*foZN4z(oMC~*V1JtW^ZS@q2o7mmBZKXXO|D`1CCVl zs%`9lq*mUKXX)#p)5Yb9DYONxJRFUf9yIsNhkUR#H>6<_#%Fn+bY{dIYTT;XUYn8T`l#Y z85AUN_84OI?Xt+ppdjyDYe_Ho_kaNLg9yY;mU%laQ4|Tm$JX39{sW)qYGNXlG)cMR zK^8Zyx9hQ6U39K)IuBv{88|Y0uO7DqteD-DO1Q8h?h`CHgcV%RHxT<}T^qVO`q|~( zbRzSccH?j!g1Gx4TVi+ULk`9nh&+G1aSTKLQSh%H9NPq>FrfH(wk)GE+$AgU@67>o zq_+{>6m0cy=)9c~^?+&m_%4W(Z5C19fh6=C&w@ikq~*rr6}?~0Y5LSw5NQp!UJbYY zd#A}{wd6lP!W^mt7Vs0w$lCox-6s@vk3I;HMx#T_rnfs!4M)@Nq^?jOu&jMKiduF5 zHg_1aCgu0PG8jYM%@~KpUxWoYyqMNdZ0O+j7%~=r_9BHLVCqafzt;_gA%mmZ{evu_ z=^)-`d#b6Z6X7)nHJvMwl*k9^MVW&VA>f^cpO`+1#Ph9v`%{}lmeVYPqcI}?L;TB+ z8UC5zhR%{Huf)D!J+4=b{!n}`-vqo^lZ8vauTG4ss14{B4=Z-7&UyP7mmA96y5}uY zrq-WlY@F+4i~lLk)<7>odd!y0K+)p&BDY9(A;_{53Pckpnew6R83gzd7``8(hCse(2wOa|zO8PtA5L1uQvWkv zQS5j{!p_L(I3nxjX}$Nuj5mfC=Gw5;r@9Nl(Y$kVwei_P)Rv@QuX<=k+>7GsK<5HG z45A>0DCeMB@ZmF=0Rux322(#2z_1WphV99wr;rF@^S3LG^0(BFwDZ)5AU4X1Uo!n- zHE1Dh!=F&6^S@1Q?WQg+t@cLe?&Z?{YWHg@u574{p^>_uZ+NL|S^*8LbD5~QOk;#$ zM7si|$u?K~7ALO7YI&O?M*dfm86$U5A0_S>1C)0^8EBfbepy+p*2HS5;Bwc0aNH}A zbVdRHx!_BDl4T0n6lZ$(Q6|c!oA-RRy0~SHjH<9(;oj3^=`^3ntS$A>o7T z0W-enl=4SPJ{vHFqQ}$=8a?@+d)8U)5$ohb?G_dHww9`C*awWKg;;abf)nb?%am%9 zZ{AMJO_lOD#*|Fm*6sO-<$4vO`a3{FdPI4{I%tMr*)u41B}cja?N;&-#f)Vd*UN8v z;H5tuh6yUyFm|-uGynsMdPnq8@?IPqJ-pQ^cutbum1fbyyKKz#b;kdGLP9|^y}IxH zC7&13#WzE1vlB{FvmIh~F|b%7@qWKYd&BCTl2v)qq@pw-{b+%cpe&=J{t*6kr$=Un zvxP}f<%0vsUFyJ$Bad?2jkLl7I)$O0k$&hID_B1_z=qt$7-Qt!w{`={#PEQ|?3@He zrOoOn(`-JZMALAFWOs{nGmPWw($=r2FNoKs+Izo@@)HxXurE`4*segInG?)#%CBmZ z8;M?GOjQI1loo9y<8+p%Gkd9+p5q5g-_cq@@aVxs zZFWLL1$98mRF(W)2sW;s_kGN4YG-ZnwApvAo7#~0{vF+CFNITT0uH9y%gL}nAMdM%Vd?C=HGlEOS4&g_QR8l#5CX(uZO zyH&icZ&vnj%?l3}G!&SVRb1jE!iNsKj2i*U0kAWV&se%s zqfqj4TcZxrb#&xI=-*(IsD3_MP}f^{u!Eb z1?&+2-ye)%ym54fbmJYGp)z_ z%@U@{8yMVKSSiaSJZEHHKsvFWBDmvlsJ?T~GnqIQR{^1hqb`KXwA3?)}R5-xaV%8$|6gLH2;@b7UylbUKyMuW7CV9C)mj>sV zi*SmoY9JH?8%5qsU$Kudu_|zimdEZDOP^?KKWZ^7tm1hT-!bqs_JeKgV;2LhPovmO zyy<}nv!U(7EK<-u1PxzfZ4V8VE^UE;y^doSOnKb3=j*QR_DG6UMr5UdLlCoG+v{NE z<>qE%W6P`0YN}vs;B@|B>6%j-^AJ~qKgVe_B;#*jYhDBS;d))B4*U=l7_C0i-eXg0 zu6=B8E6%{?`vGo7QhE#gb)d!nvWJg2#g8iui!k=&Z-Ro)@bFy^E~B8O=S~L&HHVkS zI$&xtc`ou_a-5xQY|M>+{xpo4C9!UZ`)`|i1bAU?wjQbUd7WMRttFM!i=RJ5qeDA!Z|0WFyZ&p;3fxcuy>$5? zP=T7hUUMoBtvxV6OMH#pW=jOQRmN&qiQ7f(>M-G{T*x7{wuG&XU zq`oik|-B6x&P+-`S%nLYqn46nEe(|O{zoe{~BY6UH4i9T{Bo5S2pri^Hocy44ATC-(XlfqWy1SF`GT^67?FQ0Tp30#`%rxkImcE25CC;qBX>7syte%(DNVGbIWi z=*v{fleab~197axx%{_ETgrq2?}r0#61ERbt5Yu9u2)utCZ1cZV}ZNrrXO6L4BpO} zF+cjRg!(PHrzy>;kyPaR=6jw+fD>f7PhG^ zfn%{sUeehb&hy~rnoCVjPk`MUs7`-ZpPkHIt;yn1FvOe6}fniyh!XW6r z;qq|_)X0v*oy;l^)MQP#28StFWBhlY3dm9kTghHo+Zr92dtzed>6$6f8it%fTc&Ov z*B3_LsyP&jt63x#00L{DLd9};8fTE>v()mX8$LHDUpCo1$BYk8M`LB4&S7pZ5j8i) zx6;>n*~s)ez>6_?YO!a{cjRN?I-RkUmJD?oML8fnsk*ZIes}_^!2ZkOmF#u%-@UCfTzZFPoF?o6 z1ichDZF6(8e{ZUH^oGo4cC_ww{}m77c$l9DDR^G>MUCovc?vgDS^Y3HH@4*DWihST zEt=K_Nb{j^^LM+BZHOk)8JmclHL^}IpV-k|Gs^Z#y%teh7{kGl9>$3CAmDWo7tLSr zr|zo2j$S&c#^+al34d`!X4Np5g+}a&Q6PPSH4#pqtV<@^eutW;Xxqt)+xru9@Un6W z-^eeCMNp)ZnnZSRrm03ZE^ZooL8^N$sx2Kxe=n!&)>0FGlPusojV`MC9&u0Doh0^C z#ifayELG6)6<~=x`W~)>B=A8?!9M>`dlgR2vRpPO`10JtiF*?Xq@mcyxUPZ=>1voo zh%9@{v*e5Mb?U=yNf5;fSC;W^Ii6bS++lRN!q5F7BifJ zM!AtoAzro|GYrMN!Ga&MNPp3)XP*G{S7>Bz{!1N{EkY+0D_(_A14Vn_#^X6%Ev+T9 zuGPvEZq`Hq$8tDW)fe^NI4JEy(+bxFBWb4;JjCw9#|0jtIRWk;&_Z14a4jVM%4#3O zJ)lZgLf`DtdRm$kHfAN{-14j~cD4w)42Lm9s{p_u{DIdE=NMI>Szv2u+xT(Z0+oVP zS=l{#wZ8En4f+sYL;Ul?_fZYjPbYxvZ-KTbd%yd~;Hh%8NB4wIS`|(#hJN+v3_^CZ zBxf(M<#EE(7Mj|eX^&qtxC(g{sH1UW4nzyXP}-Rv(brGGKP|9MxhaDY3r^L>)51|Jlw9_N6wla zcnr4}7cx>6eY{~sL@7#ML)U&O<(DjoAqR@T0p*1E-B`Zu%kSYg))61E@bGd!tA_Z@ zGZ2^Omc?u$=Uzk*(}!jAhPw3hwk1goG>sl!;c!84v4t!s4zz-K%y!KR%)(Nia9>tgb{%d+*O%}fUVl9%obruK1ng}YH5RBatwV~zeW+U8oNkw~-|cYx3Qp@Ed{ z#9mll>vLy}Ysp?=2S;j;!IYN1$Oq{X_qx@?u$vZ?AY?i#lVUJ8?OU0e#6p%`WzD?S zgSPC}%8&6qC0g%;u|ZRcThdihsZ?))H$g85a=iD@;dtu5)Gv1ZZ22i$9#AZM$UluV z|Db@*+qZp#4ek&RW{19VEu#@opV%8KS>4~;lIR&vZ!gQZ zid%sa3N|G}I`0ac+_Y26{zz8;peC=>*#v*1y{OX949B0)7)gTb~Ysf9;S`@AYmCV7klv)7)2bYuI}3jSMIo2cRF_*vK_I9BGN8cW`*IsyeFCW0x7FXL@NRQs3kae;vyr&2%nS05GokPyT8s#w%Ui<$G;Yq@ z`sW=VyLIdCcNuHoYEAj$U8S|*p>?JI2V^osR-`@7k`L=DT5hhvo@1JHMZ!5VY>h=7 z`6AO(Q&ZaKrYb%pM5qi`B=rDGIaq-G&+MP4x1EsAl9mj+*h9xVH#_aTB$;pJLr(`U z^6Z|z(izM5_mCOkazLr-uWKep9q?M>p5ud9SWvi;g~=EypafXIdb?Iae!|62)%xF2 z>i-EVO`_(o%y^x2URvd3o73VoqGX>=B!#p|(9!PLp_Wt}xk@QD&5$S_dYs&J44)hMUkxoC?br*VszrXg1`fOxFb-}{5euP9 zIIOvqH6)Y(`zN#ylWiBSC%q> z>&QF@H8RdKT-Pd`&z(3AQ9(?LV#9#Exg6qQ`>`{SQOJEmOc|^bEZNPMI}D50x^@)N zwLi+7>Uoq5qmEBgcd(E~a2&SO{Es0wP=|rwfYqH`>Z~0i6 z?Zyq@Dcp}Z~(;nstKzL&`c$>UX(+ZaT{wKZu2HyY zxS8|ruZ(Q(r-jOGP_}DUP z4x1mF6}_&)RAaWP72h=~myQSE5Pz=gw{Hsfra_bVz@(`;&Vas~Ds!#m z<*bLWIcY_~WpXB7{X$*m287BFx!IoCSISd@*CfRRg!_p&9acZp=pi=vYkAFBqPRWu zB36FKQIxf|vX?1J43SAL-_El+^=$EH5y!Gs*RoHw@AX{cPUKL@ulVFDERL)ecb$4O z!@@5yGVaD4-iUQT2{CnJ?D;OpU;4a>{jlW`bcfZ9ke71q)sowLTvPSuH3uobnXT&^ z`fGH0EUU1%dZ25gug&MruZ=IqBs}OP``n|LtTCmh6fWL@jBS4xWj>iG7bL`avzh&s zvtK>53t=ksDzs{wJyj=PeeJcW?}Y+V`IfH(3lmE+wanv+!70y8b6f2ynnrYa64_S} zJfe1=(EH)Y=K-79#9NoB^{=G4dmr!FUTc;gS~i7#_#&7#A1c}JQ>1xMUxJ93f{7Y= zDl%qv)6i>?68gWa`2oVs&P-wO82PA5k_a-*S#AVPQ#p~ZvE5VzZn;B)`WXnB4mn+; z3tuVe2ic*xT4XKFjjG#E_a~jZv;<%0&|0Jp06;_2lR*#|*)8U(;X3y$^>U8aQAcbb z5p@)v8fKyrbTHbF$EATRh@H3nP_qy~Uz+^3Sa(lsM0m+0_aytYyP_x!SASkcG@Hv_8R0y5Ac8_KYf{!hi(=DN>3N#cn$nEsEw@0^=63J*$m#U~(bsnTB@0O;5H z)GucuneQKv>KRYmK}`zpp7Eh|g)6(1apn^AMWUtKy^W4*-UUbZeJ+qV2KkGt5IDQA znF+68`x8!{{mE^CgrlS2e zyC3xp@yyau8uccZD>EO&c?E%VrM5A7#DcRM00E`nJvG&}yh{qrpj0tZY6xf@U8 z%|@P@pbBVTm1GW%mTHNIj`Z?Qo#9i5#3-m+Ptm5vb$DO=J(}*Ea{0`x>)37To+B#% zN-kzZ7T=VeQQ#rU%1}8=W&oBGGH1gsAUa7;mL|QUx{g4@^zhSL2d{Z)CC_B=VcQlp zlwqfIF_VhnOrotbm7{-bGC`aWDP-CbC|s|o8u7|wEUxK4=MMH0u z_~2IGW`%uBm1~Cor{Tdk5^TQvFFV1Wb(PnslaJ1?!U(Ty^O|!@FUATGIri6}RNR#T zX}p?eKuh4|qBW9%4i(SSHg7C9(YIX6{_@eVc+g^Kpy!_^b&?l{7HFd z^1-tg?H>;>%Z^sfvp*-~Wn-v^Vc7&G!)(qXq*HS~6UGCC$dxcV*uz{zhZ++BmJ#}u z7icQwv;O2XT-~aiBkhM6#%i^TUwZ%X7{Js>F5~W&6aOE;A-(YRTrVgzJ}_t64acM& z-|M)x-b+;|PwfCrYtvBcc`Lscs!|N1D`@gq_2UtV1WW~wOQwS)^(?2SQ>$SNSE4OA zyYKqE`tg##j)4mFt-dQ$I{X+_z`%$Jh$@KQwy}F*&bhg-NB58}5kL4(o)}lEp70vZ zePBgJ#zX$N9b1r0#%htmPwpDOgsf4iaC6sT=cA;(tv9Oj*fMeiAmE$pNq>JpbKmkH z{VLhA-%;`LzKTOGbZ^KN2MJeyAy)6gy-|?13}_FfJ62&md9s>YNPS?h;)=6FML=tU z?eI4VyevU3O%8Z{5`VfmtxN%Ibg8V(H(5#FOq5+vTmi)upZbEH#D>((oX{L1!7t>k z_N{s>31rqpiy83|mM^{gG)}1!>^_1E5mztnHU9jYMNHjb0EO>fYZG&=1lUOj_mFmf zx`l}1RDMC~0@p|+qPQd-#FEL2%E5mxN#V<732x7!W~19(jrgz?;yrrS@iiNJwAx82^Fgio0uU z6ed=TM!Lv)T)zR=a`=g+2rd_^kZ~_G=$R#0d&1nkQ*4R7bQc`pk)bM_!>?Fvrp9XR zLUor?Ctq9C<^@2DgTltR8$edf#6M#|ld3l4xPcSU){Pj;s>G2V7qVeB&6wS<%6sIp z#j+u2_sglohq5u{?C{Yls<`%r@koRkVQT<@FB>4(0i4sa| zb>$uSkJwL(6e5UTWEBC~yIWHp+#OEbvGH!%g@bZ;TVy&`4UvJkUx{_iWSdPjO#XrI zrDdsU0KbszBr}6g)Xrui&PTnV?LK>rK1H76&!y9)Z_il7=M+U;Rdo9^S#fQ$Toefw zhDKiwEoYNA z;;>QC!DlhRF2w)Yz7rX_w<|Yf=ww{zH_tR4<;EeUiS=11fulnpVrj9iJ0Y>@(KY`t z@3(c|My1_ONNDYR(DUc-E(`{BsXPp+5tDpZ#Uj_R;8%~{2crBtbGSled%F+nTcT7z zYP%bV@ClCX2<8z+P}l~av+>fpUe+><%+J@J<%`P$yyo{S1Igg)VMsRYW}@QDZQTcL zZ^F#DxUoSKt!N%IW~Th_1`hUyh8Jb7u}3KgMVXC9;UquJ*+q{y-P~fP<{GGnH)ta8Hm@XRi5&m)qyg`^Z z|L17a0)U^YzuE#ZPHX;%`Yr|Dg$ zj%sWOer*E9nGhrSddV&rMVQ1A&F~u`9pGX>hHD}*vl#UStoh3a?yiRG2gz;G#@a!-%aQm-p+U)b^XwGN)~J_iWR|J zJu6I^Vrk~Ra!kgm^w z+U}__Ms?^Lsl#Yg3Ec>h{0FmeB3aamqH#u{SKFf;5ueL+ZAd+md9Ir@BCy`mgKU~!I&E$dic1`Aq;zR1rAw(X^;D(FHipX+lYS(UYEBs&#| zsq0#P^9X~5MI~w4i%lyTR>)m_H=$B!gda-Za3Q;?=(HhQd8WI4Xn*s7z9fvLq38Fz z<9oz8;&b~SZy{+G*GmVd7WzicU;ei{FjVH8v{c+v2BH^Ylc~L#Nno8Znz*q2wJtsE zni7-GI20M2EZKH3`jk#O^pdO+RT1+gNUs%F&gU8EaF1wpOEn&!AB|3b`rS?CnR%m1 zV^fyeo-o?I=5c``swnrKp_4Z4X6`GLuMwnsPfAq{hr}I2Ai8;~-xp)t; zozE`nk8kdHeGVgX`8Gbk?}e+eqW^B$^{w7z>TmV0#Yie7@;UA0{V!b@@yn)r=m!Ur z)1NEayf444U)KZ%AuJYpiOw6EA3qGICYWguDg`6iY$Nx0Ctp*O1r!ESfjI{7{+z># zYE*aF+%cVKrYx*h!gs;h4;e&KRhl|P;XvOWv{bF1nZ_w(B$enYDxN}{breHFzq`s% z>xSJfb39hT{AB?hiOIqVH#0xr-UP~cMy>fi)IR$aGDRbmaeRJ$__817{%oq`GCl8i zSVK(tR9el{I(hH!eHPWkQs#u<(*8K?pW$ABR5ZdfPe+8~da+wVVWj;8$2c>oy!tq- zV54R-W?Yb=Z%w-Y<6mCc{;$-O^!Qb!A?>iBKJv858#O~#0;_*!%L6M?Z*Ml;Vn3!3 zj%BEhLOpeK2g;AAueeOL1NVx3TCNer67I$oEVkF3s~<|_HGP;POfo}nyZAL{T~$hp z@krk7Cr*8W?SE^B+J^wtxuw3j+{#fM@$2@NrJOxjZ(ipvi=j896t_umRh^ZnE8*1_XEKfJUegx`+#kTNRKojCaGRZ+V8 zbC#b$p*Squl1fWWaPCg?0V`}>U+?CL)keAqn|r5dC5j}h3DGZ+#;O1HaW}|p6jx`rXQ)?79CiQsp2{SW024W} zypUjTxu~^bX&~ziB>#)2gC8?2@<-$!gv<-Wb27pN%ayXhtN~n9l^^gQ$GM7hj%38z z%Qg~tXu4qNiEqYDylUI0c9W(0cSQ*0X-r9ayhULD*zn-5AL3WQ)JTTf0dJJ9p;78shQ%)4lnFdHq-HhHx{@8ZqC7{%{kg zkg0qgR`GbFB#ZO)&HlApH+F6BqG1udQb5ksrzE2R!+%&|$e-W2p|)@RSovElM-@MP z?NvJ$Skax{#pOS|;Z1bKI}lbx89NijSUkoxKFSd1)YcupDpvJ0cvz6G+aa9}r=t2s zn*OAyvtD93{&-XH7D^G?vE>ZLSN#{;-)Qj%$}Uon$#0D|5RXA0Ewg3-n>!&)!9T38 z_`amASRZeS*}m?2kjrq<)1UPS3OL`Mk+r0 z81S7MF1qlwndcyQw;zX^lA@7=LT&`Dh4)4JcO!^l90sEB7X`t}V%V*;?@`7V0qyWpk4AY3`H37hwn0@hF+* zdk(9BG9*IL$ z^$UfkDKFGpu*}j7*OF2gw;uz;Rym{6S|2do-_`&7DbrM=az;rs19uOmxhV*5+qg#C z*1quHa`zAQC{e?T?9WbGPUyEak^vu1;&!G>SbB!gu`aAficZ8`(*O5; z>*j_k}gxv5w}|Bmo4k&iCm?uLe2*3#CVnb!W# zU%)d-{s9a5UG^UL4JvU>Aqb9!TMdypJ-G6=YXlp zX(6K0^Y8}1<5R)aXv$FFa-E{(tEI!rl6f^{I8SX)4GLuBr!dD1NLxH^#H6n(RDCy2V<|YBbXCGkOPe=R7C7&CNAj+#Rm%2X{aX1c%hYS4h>}2y0bjNM*b@(aU)0N`r z4gGap947ZQtnp+6T*X)RB2RBqA5@{$YWu$x1dNtNgeU<)L?%)H^%Nv)t z#CcV+=($*Zd-!hHqQ`Kdz7raKHgFVRR%14@i(c#$%x6Z>=f3+>B|ZLMsJ8rBj}Ra4 zX*%l9>Tl@eKcU+O>~k3H}u`8%hgSw%#>;SW47H zK?)y6SnhdXec`J(2Spj&s`6M)ki&FB$M$_C0&798ny53mU^vF6*;!4l__NJTuaP4M zvh{6dKh`zv-i#KsNzU%3de3r7p;Jh@CVH7WbndV;ot;SU1K1n#C-RYdk4X&av1>35 z>VmMsg~6*|E3z8G8n2PpN?yQ@f)%n)r@b_iDA^ft5!~540G>SipqF=V-W}c$be;fj zdy#E6?aTQtV*~ff(5^QNoun^`|M)>fV}J8{GG)<@vT7i>yX^ziGoU>wL-$xM0JCCG z0G$@2X6S6gHc?lcw`^(g$96Sa-lW7MaT$z}oV1@%&MV%qq@bp%hkpmZ!j(XcIV$bq59yb*jt!^{=RUUOR$1cbE zD>ToA14K;^CQcKxTw6Dl@VUv3nGd}k3y1HlitWFR;?r^tswBYB}32i(#>0++@_~1ikmIt46S2VrZ&T2_S>PBMu$v5Z%9xq z`jn2ahR5ThdkpDu^%kp}I)6QK8}fH=pUTfZ;;$jroerl3JHu`qxF3XDSGFr@TFJib z&%}}}YhQqp55mQq=64rsJ-y|I7x9Z&;udsx1GmqO@G@0nxNUFz*;x&iwKLrp`b|BX zhaFmCbew%oXyMVUiJYxpRgBwyyF9XZs)-DI(kt@#qMTqcMIjbWo@zx0M+dbdEuQEU_1Jf*qvURu{ra9wgkfK&yP{+F`CCVK2m26Xn&~CA2;N(&((1(}JG; zk9}i6;ehy9e$4KDrC;1iL`Z)CMZv4-^FkdTWFx$9w)tI(nU?I3gv(>rhhyf`r-?~z z!QQ(0g{Soesjk#Pwqxp>%G^8hk>uWzt7fx$4|8-4A%pucJYL(&h_&0_~RJ}`T{ z(R(dP8y=c`ZA#k+NTH=-`sjCC>XnTT=+IW1rrtL>4xoRy2ZjpUy1l8^C_$vh_8(oB z8olK3_p!!`GzV7Cb+@lrlqnMaQ2GAk+Zh_oYPKLnw7aN9?$AhUByVo9FS)&cqh+>c zF0YZd4Sm~lb*}6)O{I8u7L+<4h@)re#);gS@Wmg;HI^eDRpcUg^UAcZFU!I>`n9|gY1LeTqN~p)h*2Mx-7c^?1DGY#QzCMtHR8*4s)K2!MfE>a4Zy?RQ; zi-Vvj>@b)&<0I^)nwS)oC?Io04*L;~VnGPjUd|%q)0@%faGDdfWL~j$GZMQ5ZM6Dj zb8M3%cT<*qFJ9^DT!#c#X}GKEwhjGDxoCht;&5*JecCk_8EERDEqdC9N~SF8D??Fm zcdNHz$h#jk)2A&KYh_~`3{_*^k{4>i4oqp4bim_8gK#pov?c>!jg=l{p%0uvaBFOnk{9;Tt=FEU$SQ0ra2G0m?dJ@ zBtOx{R~LuiK7vh4K2=IfAqukDPDo#9>nA!>i?^>%!pi8o_vyvg5sA4#xA_Q;6b?O&z)0d)62uqLSFtA;ksWj zobknORoCdSG+Vt5K%y1Vlq}O_+lt7Tgpbeb_NDAw2{wNH0aAjZusc891@uU$ zNP+uG-2$&)3(=rsDZ`=snz1_PB!%8(Sh$^xGe1eGZ1`ofHk7Ui1kteI6Tu?CE*os$ z{++SpqR8@yRkJ0`5#q6JU}IHkNGIMUJjo%Z#(K`%rpPv%8)-k4BPiFjrTy3qEujGv z=8BNv4g=!Z4?i;4BB?B1INYgg47MCgdW!tMN5e__bG!Ol_wr?_V3RS-$+hgk#8$h~ zQhlr5&B=88qw#$ zJl1aCwo{?UOpQCX_yKxhNevyX!U=@(O=$gVRf=#i*-354GW;@~7)2(H716$MCd6{I z5S3qfc&vT+D9Z+40#iK^4+rwdc<-iJVed7U$UC%wcRE9opDj?N(hO;PP3{D_<|UwNT}VK@fJWSTLrlx* z>q4*OJ6{Nkk&7dxyg4J$fK~_!$#=L0!Iml7lzVF860#I?;o8KoLradPOvf*k!XTQr}oisds?DpTGk;D;0Wb?w_?+w2vD4foi-V=M?a6BJT`B zn%C1VjVNZ(?^7;*-pZnYEROTOhVC5_Ke9yhaQzgH^3hFW6DuzFW$iB36MGtg40TRv zSyv4cOuZFIm~WQHSK;X^h{53>Yl8Q6mEh&ryixTZbjr7JNOER5?E|R)Lt-5un;|e~ z^>*M&&!X=5-T#7m6KKztG`~Gsr8V;VTz@+wSgyUb-vL_OqXAE|vpSy{(zdtnOb9HPm*{EZF&F?63>{xk)nPQmDkk_x{2T7$CdxY^zE7q=8?ERY5Nn7W*DfdgtMxT@eGsRKD zIn$W804lS5E*N`X-}fHl`yWHCiRxl+m#4lOZNgLuvIRe3wmuL2lL!~s!5vAXw zifN%m^t{%9#xjT$X3d1W>~*Mw=Z>%idXAkdnO|tQ`_b&W_2_fG^Y={kY5heRdZCHo z+7e8oiMfEK(>y`kqH7Mk7~1#DM|qo_E|w9yTx>;pF)uWwR==WKD*Dwt9}2Pn7Sj;= z^3>9Zo4O_U@DeCG0%$ceh;<6K&Gty!bB$|Y=SAbL9-o19c7fwwUtWwILECkYpH+RG zs~ntrbdv$$Sn0}62!C@=?~y6U42P{5GBMP`N{@Nm3dub&c)`g1__G!qBuNywpL?(N z@+42rTEbrBZy3T9%u26C5q+3v~`6(jza$9YydEebKc6}cJ8;*SW zFPwPG8@U9a#D+`uRX&6wE##}G_0JiBspE^HrotQO-c8(B+g7^hOau*HaVUMDj{&8# z=s;H=^Dq3rfNta7I`R%ADh^MIV-ILTLr{d$2C*+W9ZsF?yL(i4(_j$~=hsWJ>>t&# zByY@>yCm&!P5Tqa4${3thU+#4WB>I0-J{4t%lHoBS#gotksNm)&*C8QMTCQzriMa! z?wk;MwgI?P9KsL9Ps%23U4$S@E_hJZ%dfvj8nZiZhW+PMYkydh%?RARTOkkDN&74u zpL>T2nof4Hi~~F8ua?^ginSPh^^gpX+-obHV7?AqnQGJr|CLvKhx#FF`ZU)d$V)-f zxEvff;pRBhk#T91m;*Vv+?$k$*cGn`0N|W+uac*jhoq3Z;YfTzDWv`FKM-UuP+%*P zw+|c>5gCc!`niY{n+4#f(_W<3_^Qsi12KuiNHnhPRJZi}NoLwDQH#b~$3})96mWZu*kb1th}wm(V2-k- z8AZuokGoqlU}ECKCRjSMz*_FaQy(a57sRrkH&5T==5PigO;OrSW4Svy`z%I@WqNLE z&Oq%iT!GoawxOK0!T&oGPl67sG@d4STknEbln+!kKM8p7W^#Gg!yq>1ww}?BoAj_@ z-70-&)R)o1)n#$>sqmML+)JepLAB{T$Pl+W2onAuxp$KDk9pJ9x!;+bth<%`U$881 zjRNq})@}mphySh>?5}*?-N7LrZ@#dp6xW^EPe(~Iq3P)P#~VD5_6_eu4x<^^C-f~#5wA{LL!LTx4I@WDQ-5x zd$x8d3Nj7q6MRGT&Q152Dz_5o`9Zjpca_U~s$mX;r`K1CNbXll^BjqyS4l!7pOrL4 z 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⁣oS#TYOhGiNKI4a*)ffB)pMpbT^Ym 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 z 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ν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≦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≺!JSW6%& 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 z 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%0Ai& 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 z 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 z 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�(C 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

    RDOyV> zd-e{2;Sh4V_8Xd20Xv}AFC|hu9YN=R@aD=VDHUFOYVzf+EieAC^kOqig{YP%Dfs1yC#V+Dtw4^b4oO8MfMm(RTtEPC zQ;VXYF&T|2n^vpQfC^MX39rDx9=UiAro^hcE6{gMRA|`ILR*4hm|Ro9uN+J|oQ7+@V8GR6wYzuXq(>LXfP-mf>4T%W;|#t^X!AvoRmP*;CcG!!2ZX zd@tBLz7-Bb=p%4`IXtlxqss@F*QAO+D;X4C%UW#Hp0aT|9TaoFyOvGz-7-RLib3+E zo9%9~ZLl$X+Gg6|v4_HDfDIK8klsE{oVAf!|2BzU-a-#sw`!-Q54`|SZz3El?Ak9K zk_s?h+t|9~7OO>NHA<&cMsKp~Ey}XdD1tBhwpiTgSl!a0{>6vrXP&F^Fz_$i@BQ{r z$HGI0_~=)kee01=qP99qbB4VQlek|yZt_23pCZtHE=b|%|9g?-BOxJDfCA0}zO~r| zqSuS+BW&-oHv~!9I@mXmn89h~W&t+sy+xd*P~so8hu}taVZn#=3wmLA{iQE9t?9_K zhn3dwh)-@3Wq#-PDu?)-k{7X>xk@E@t1wE<+`D3r%JHwW(t!OP0e10l`xnBV zj{BJ=Uc+cvBz}sqGEmkA1_q!wQ~_fh-tSs_+$&5|++L=w`(~l4C}UU)ea}-AU$g@f z_n&)wZnzfOf7mb06wcC9=jo3J=(Ya4g3|7p()=t8oB2%qy`H~w&nv6!BPX__*0CBx z!cn!|Zj_W1Oi#W66EKf=x0uY}r*Cfx|5$EL^lFH=e4IFM&W*pX84nAEPu`__&Y!_x zF(H~e1AkaGY{d#;!>7iF*9NF(V>KRr2ONmA`lD4sTS`3DRWXOV}c)7W>0^bobQ z5T0eUyb6GriOAN3Ps?T-w`8XPM8;ycVQU~&c9aSA9WlbQ9hG8Q`x5bSad5}VQNp73 zo8t8U^Lin`&EP&1U*!9t#MBLBB->m?S-6^;!S~}ntg0fwH$s&#O4#-L^}`#VgDT$D zc@gQ?l24^uQmc}iN0S8ErXni6hFC>T^OM%84b$tbVLoWn#+-8ZCcM5|n~W@5j~zjK z?i9+uR|QvSd=-s^uT#MW>nNLee2XrF^IeLYMzUe?{!7@>!05{EH5%wu-1JpjpQ?piAGZaH@NTP)$=dB-VO4IP$MLwJ!Ku`1+^B0W>_v;Ws?dFJZ2w)ScnD&ASko(+Y&8!MW<`Z zUH!%*uD;GI4e6@&(;rM2_(G(0|?uJ!P>;hyg(l1T)}O` z{7EogB9@P~!GISRF1$_y;3od}7HH=hxaIiY0WIjJR~{Y3p`C%t#TH*qRUi)6;Q5M+ zg7(#nD|5U42BXP)*b5uu$`Yp9Z)kYN3H*0Q4@>--*_^AeFt9K=dEmh0r37gEbM0CD^W{y=71w&lfKIO9(`8cXzkomf-I0?h@QJ_#(mG-CY;h0E@dj1YLB2 z#r@@9?}z*4e!EqtYNn^UX1Y$#boc3b&hxb7gzSSqVMf8lQwWw@3wTL{fBN(bLymP< zd9EfS1NtQwS$vRoOQ-&M`1x217irkY!;QSlKnYarFpZ1R9#3$zrKprO`zaHSmTc$D zh6IskqiMmFr~(wHc#yaptxYMqi1+8n7TX1cP58N7Qm2u-H^l>mFfOJQ&s#&1ByazK zWnm>;$&ZZM^{7wB*}Jc-bv{}6(Vxci^`ErGE#-EdY2G8*D|hIM{i?KRq9|n)doy-w z!k2Q#Y1;wK(=7C?k)dkVw^Zt(H4!@$Q>N1*( z(Wl8WC3oVe!u4IJ8GH|yMXBpoe=`$*L6vfpZgQK8e9TLTD8#W9nIpd_rtYGm5*_Du zmOO9LrcIpj*bn;O-K+__%?@f*Nm@*$s~nAK-QyJV1RYZT+6f`SYb~%kAW5n(mc@vesKdI z&PCr6Q});M)uB35bp`1CJ`+y*I{zu8Jf&fy z@P6m>9uMgyy!+Ml*OhdBI*Lf-UqPBSQNWj@(sELCsvM*QWKCxBgoKP$a6Xv>QDOj7 zyH*`m(gMLho{eOZ(vuqWJvPi9U~XI9v3VZ8?-CrFi$|MiFcji42)bC^ zX_e7%)W5V8qP0!`FbMD<^o~=Lu+puuj%Ip$W^eSX<} zC(Ros9!g0VK_P$~-8OuO!|wmu*T%u$Q%r8ceL%Rg6F~TMCd_U1z?-qXTYctvP76lL zPBjvyZR@o3vr)JS;={ZuMTx<0e*Qa-|D=WFD2>Ms{7=l=RMc6+#Lz+}QJ~e>&(^kr z2$wOf)FSynsy8(|qAcFI6eQ>{|5%~3qP7&Dee2TcI({ADN+a^7Y`7^lrG;9}qIjsL zZ@`=H;^tyHVh`JYg zp`9L4-Y0K%|7QBB>kz&VO|-W{5AmAZcCwY_qbtPh`gjTK`>)6t^^4oZ`);aNnk8Wg zdnbSv3uw0QT&tyZTFGem_5*aSk|bI3`8b?LLPApV_6)$Pa^ZHd{K@+uwBat*stl_H zzD7WQ#&^CjK>`s<%Httw35zt=MMqCK{T3gCcB9L2Lu$=!~v`A3}2F0n{b%2@^d9(RRA4vD5ogNTicPc6Dn%1O$_+6ln` zn^zQ2t&e1a1(+o#0N`NmRLigjA)=v(?{KF~Wi+08ToKbmmJ3LA=| z|JyMnmeFH^2xQ7QzwtU3T=hpgd82CHRpP04OPAd!Q=F0Q#HNUFu$nH!j1BqVuZFHd z{8lOH#b8z)tIzWiVjfxD$FJx$hkWYkIn@cV*}6pw!IQ?{FGCEs*4;~0tb$C5bBD=K z$E~NW;Z@4C2#Ybg?U9K})8=VVTw_a+@dDWP|J0CGD)l?jrU7p%&E1%r`yGB^i0t;Pv2;FTzg9;Af{*12=fjw^N~>`oM?09o;_&JnlI z@rtz8$VUC#qdRk!j=I_=j?EDG`4>z)QiEkgOkD$Bd{{UE+{-K_4&tYrkEtP3WR`*- z6Rl(J zL!A+Ttf2~bWNrFf`Am$tynaN}~SMS=t6W&8?Gwi0N21HSd^ah1NKkWXK`BQ*&{6vbc zly#`EsyL;UZ%8IJAed(e&ZQwBC0sD%Cc#ER0EDwo$-!Tl57&NKWNC~*4?0~Lei5ae z6-pBhHa>*dVAu)$wxRS_-s8^=Hm`TRw11{WNS3shl8V;TW{hnFe_)t>9t2}W&E=}D zW(5btUKXk^BHD7J&iC1x$L|^rVPm4T~V8g&X$^lghK1jxA0#6_QBnh6aTQ_*n z#s;KnWTdp(CEL@Lg|$rY^$7;6RVf<(&aVfmFMj)2s>kr@v=VxdJa_@llD|J;^owna z@_}-E+jy?FA~sy5JmxPMKg zpVNuN-G@dO3^!2Ys?6khD027^T<<`8=^}Zrk}#T&)5lp+PK_RX@Ei`t;w>3ALzppr zrDMlwaE?S!VK#0*O8xRN?)ll##!C)$G*WYW$VcgyztEk6&|R~Y@G)3zUDOG{W>8_W zOmN{++abcn+d8V)ThWjmN`d|QO)}?dC8V^n17ufi6T|SMZhE+ z&c2>>psLD3+SRPRuD`Qiw9COcWK;!dXL;0u^mu7cEImF>EN!PqV0a{c5#A8vCy-E~ z_PYEAEG#ryChVEqt%jI4wB|haFq_0nf5E4SDLhP~nlyTe4*_SL0KodvXRQ#|LnrBkP%n`rtf@M~~5 zLcFki_LHV(4Z{B6nh8Bb>1c&f>gcoEd+;DC9kk*`+3l7R0N2Xu6q2#&+{gXw_fb#@ zGMjWw%`YckRCBH6mmTU>FUH#XlDYE~`e`o;=hE%1bO6IVJ*YmYaOsN36@_17R~Fqi zYvMyTNzjR=U!L8MZ|qj)j=^DQI{@MXX?0UC7$NG*?Kv$fDZeDDt4VH^>6sCWetyon zyV7oM&GeX3FMe@8ZWJwiEFTeXpY~I_Y#4_~a3+i1kCSPzc0R5Zy0mDzWRW{PelBI~ zWmNn6hI2KMnJout4VC|^JW-O`XUmWtb2;8Cs0hW?H_7(g>WJS-cT7yD0v_8J=`mPZ z<&fBuhbAeSv*k}~jZ!6ig1`Y?t$~ARbjC82)~^Slrv)ql)eyz?=?qwZRm#Gym^aHx6Jet#_v z{Si5dZw+Ti6Y3hOM*9LqZR7d!sxzpTN({V0+v~r+x>c z5d$l{CFieo_FpE$O2lK-9Q-vgcX(_co`P8-t!MuS}JOBjG*?U zqz1N`(i|Sm`|!ttXk5}z{eM52tqiVevXsBA9Sr6 zaE0*NH`>6vqn-ZP;)gRBIH)#(LqJ4r5Jtc(tW@qg<%n4|I3HE1wvgiX<)W`c(J7-H zpxM{>PRV7zIgKuunJl2>CHmw03Q?lwkYAPpp>a}>t9A1i6Jo(x{K~7Jnut}I^+uqy zt5+`@&HrpsS6`$w;B#K2d1qpI1a32pu?d;A@gd{77F#Bf3x<3W7yLF;%yUJM`_9 z8z~2__&gH?loo7k!kjOfXd~|3@ID#rHly0)kvCF&0)`{ zzJ`A(Q)z;?$4=>sSibI(g~zD-$KAUReEZuarYL+B{AZay*NZne z@=9RGqcb$#!$->k)LVz1P4!<>lru9J1z;WLb> z|Jo$7enSxR;ZBNKAoqn*ees1qu=n&S^~}4$``qV?Cv`}BWlxB(CZ;z=yXb{H++2cLr1G_*6)&r^W|e93>%~B%`m?^` zkmLP<)MoqZW^mi4$*O9wU{17POA?b#n(-*RGkwo@EA+?GN(6W~R#9|Ct0(Lxtf76g z?2leEVkWkj5*)KpQ=U(nqWg?EXD`{WpHxH~)A`;Sa3}NDn*tK-=t2#zf&^*;uHT64 zo-c$43GI#8p1hK-5O7uV?_|-!G)BHv-77{^v-h@};lKspLDhkNuqzk%yp53EE^{(p zFIJJRF7$EtzUMWk0K~oBc!obe-K%o>?nl*>h^;!+H8#ppPpf;smKHSV==p*5*rY!Z-q+#cD0uOq zMXh)HLEyS1XUkHs+jq;y0v^+R3xE-^$kqt261cD8SBG;G^BqoJY@2-oq=oWh_WJM^ zJ?*5WaIk#F79EL!$lNDXMz=6t-lFXb&gdU9;6~e}efS#iAM>55EVMW9d3S%w$jRSU zJdu}vZxkAvL-+tsc-QT=KI$de|A`Y86U$FBM)5bJh<}dl(;+;KMA89;BS2HSs?W`i zAZsn?+&;!LM2PMWErCK8n#nDGS$~z8aEnzoz@jS3xD?IgQfAfOB60G*yI5#RN$6!2 zv0h&L{^jVLU--$GfAlG3UjVfScAr!id#R77sr6y)AQyg&hfMUbr%Z@c5O_MBc1~n1 z03fm$18)8_X#NxPF{dzy!0&j51)H8SX^6fFXiw1nv5i@%hSNv}emn*XFeOUK^qkYV zCa1g|Dv{Uw$&qT9Sx<;|8n0@zP%Zt|$>a#=CDCz}6O)MmAT&3%54UNY$=^oy39!}r zmep^eNdVg@AA6&^_oS9>h1c;_H8fP+dVW6a5EzVd4W>M(ZoH?_0=O^hM_p8))XG0S2ji>Wua>EYqt3v5k)7@zrDpk%|e zUi@KaV$$zEUDw~?Cwl8ZQvU8YOg_A&;REp30LKT8A&TPb(sROD-uawgsthOXKc*22 zh1kT|@>{ru3nn$qyODKv=0mXSidt+D;h1pjzJ#1aN}sJJV-4ck#U-InDl*5&IC=*3 z2;8SqI*ghdCE`FZ71|<`1wPt;&HV!SUR&!Tv47inUddzHM$)DI;CJ|3#TL%E3A!5h zQR3A4Fe26FlL_D0=DwXQC+{Jg%V1bo*2)&{VHZ=#`~kFtQ_2LI!(pZOC}kNl68(nb zr?T}I`8PRpmUhw8R_E-&T}n}dL~1-WF|w#(inbE{-E-9!*DMVAHzgT-s_4V~6m_Je zT#|taUdM5+N4QUKyLJCvKe2l9vZPVccqgDbfAz`3-Yq(tjafKc{0OVZ2G~x%pB= zg5w|<0}B;wJtndGpUp0|tu`+^xdTEVZ$b+KAmJQefk=qnta6hw^EoU2C)&ka*4BrP zXUNDnP*BzN*H$L;XX}q`+XhH<27jUhN*snN#qvN`gAXD;Twwy_+6j#@IE7Z$=;Za4 z*ew#sb8OYNeBU3A6hgIIdO}hYd0PsQIV5C4+ev&1d3Q0R?$jMcU&Wm|l;U=1#d8Jz zJxGv|YOr!~Ok{^$j)i7R(?~Q*o;rNP{P@TpqMM@kxjYH|&qt1nzfDSyqAAs`ygm^b z^4${bVRV?I&lQAK<-U{NbFEC8r4Mx#tJOEG25}Q09{1_--kC60?pSRtJ||xn6-jIB zTkE_0OJ5J zFs-MJG6>w&1hB+7_gf&JoBJVtsei1ODblo?mpP67)(t1B``esNCS7u0EDJ zScJVne%;Y13!<~}=2!p0>%zM}q66?Xkl*5cQp$Gd z(vIJUI{H3LCPI#HTSX~(Hs-{Yx*9SFNA?b>#06u{!v6H(6hir3#ieA64{A~Ojj8iw zRT5G5Qy(Ji;d7T)Y9Oj`I z_A$ltZ1^1{;v^Z)MSMJ>T2J%mFm(}3@KP*tO`P?bUBS=7&g(_&sgB$Vx8hFpp5K}O zKzS8jJ%DN0xcn(6IP80D+%E*;p%v`a^j}cTitp2nZ=-jL<8Gpgjd z@HxoGvyW)OUaJ+K2DVuyj90&ae(84d2!B9fmyP)z^M*(NQ=Q7L{mb66DCZx|gOr3% z-8v>|_-={CmYMzi`Z}z^#k)7@`S1kSo7s`nwBLp$KF}O+Zj-+~w~ST;WvJiS6|~(A z6vw4?6L`WW9X`o&6O&=lVlbSCG+ zh}wj_FSty%=zQH@cm@;`%;@JS+{#mAzYSd6HNT~brc7l;fIKnj18S{UwHCc&vQ8he zQTJFqNVX0S5V;$LSn_q2r#2)>sJjaqh$2!>g{iBPkzInwgRGlxe=r{%FA>X5A^7&R zyW?yW7FUZ!daE?=gr#$iW87A?*7;mKJY8|i5`u~2)oTp({^)_7+w5+Ic`q&wM3NQK z`8%t|L~bLJMpq8)kcte9}_gWcqLa;qB)IB;*E%% zCJm7}Q(=+e9DU@?=6 z3!BS1wO9;v!CPzTww0mcd40mUx%03(%ie!}sB*QuclSBI{eJpkiHQHL|M$|`+qo9y z+q1^VR;iy*-GPeUCV2U0#ink5S~WSBchh4in^cQbO^RTbJ^{Ni?lYh91gV3C&BEx` zTOVT9d|lwLdX%_@!~D+p$C%5EQ?si}8#nqu!_$+K73+ZlcG!2x)9~}U=PT?I&?OM- z?De_L=@FNhAm0pms`qV<7DT!AqR7V48bO0QPgL*acPs97K9aQQBOqk+cO+)4HtP=J z)L^Zpglx#c>^f8MjXw1yljt$05g{U=%s$}~(PD6`ij+w|^ZDV)Je5FB>7@1dn?%w6 z=Ri2)3d13feZJIJd)Zn+dyyB2(UqQUXF2HXyzj=Wx_6QN7Tz2h`;#QosUIbxi1{NL)5&+2q!sXW!aM@>%L~tnhc#{6B-sp6!1k4E7h7EfJe=b&gBZ z&Nn5r}FR6JBUd4Isd39;OI zf!=~e1h(hJQdh|FA#!(Dmr&OCR*ZiV>vhsE18==;rgDKtTX}jfTY;)D+Z#U=sU$!R zJ_uJ!(*1Cg&r!%)wH=`2g|CcHQ(=$U63MjSqLR zFxl=kwpIRhNXmr|N|}C}eoI*It#pSj*v@%=W#sVIs7h0q2c2`>_HGOHw}#*PiTM9m z7P^e57HRtBxH`93-VAMnSBRD&@xBW6pzO~>oY%D!$(1S5fk}m(VLZ9n%z$9VN2f+M z-jbo`MfNj`NbgQzHzuaU`^#hIaHlhe;@`A+Z;1qnnUT9c*!{hAA??rnV1*+7{!il+*%2T-ijab@pSqv1T`r-7RqFYUBwzssA7hVix`_2l~LR*^Ub3WY;oOyTbP>q;~}R()_5 zar7P99vy_|2N~~F#EIWQp{HZl>!1nikk_5{bC(gmPl{icw9c=zyHzA0x z#hzDA9iZQ(W@C8d^7ZO`X_;+#?;yzKsF1P+kHJN!JTmZVF39V8i`9j1%ueogJ+Za! z(3s4#j%=$|8t&46z?LoI16cPzZ_??9K(t--`Wb^N*%EgidCpU_p@RrEdG%H0rd2jW zhf#@I)2>xj)K%5btL&v`>20?a;ihR-{zzTUpH<~*O_HVy=q)4l&DsqyEHJ; zd=QCDKF-$6168#kmr#-f)E;o5t2%`N{+mOHWWmyXxND$*97V&EA$vGaxuH;dV>x-g za&dQa^yL6zXuHu3_BL|KH!_2}oR9Z{N(n)w{B9^GpPU^*s=pl5r$k~d50%~?lK^nT zpbytJ|2-8wEvKyyy)tE=_u&IC3@G3#rr;{p;G&v-f>+3H|J)@7qLUcMW2jKV{{B~Q z6urksxiTd*%!Mim1js&SwMGigKhiC)38_1BypP^Q^}NL?E8Fi7pmJl<15ghq1zjdW8upZf0X#5uT8 zPDgmH0w6-BNK+y-22{bXwA1mS8>7p{7Xj?4FUl0Y<>I%PyVkx$zA;pfsp29-S8;5@ zGk>4dIi6z8H_Z}pvp;P{<+?1+4zU@?Yzt9`y(oM;*HgL*fVttximT!`smGOZ9AKu` zef3k^n@U=iQZU`5X}FUs%4vq9NWx!p%jL;=73vpQ7CFZP8U$Vc;0{{LBAw3zP(F7+Zn&j9GrWzjA2ojvr6NbDa=x4OxHBIM8B;% z0*2E z_^OlnANxt*PQaR*Kig&@HA2YaZ;OYZ+G20!4W!?875ojX6-7p+xd_$FMh8Tt|GuwT zFJHbD_*0bdN8YI(tI@kRBxkCRX6o`2$sio791-mW6X=ZU8jL=6#S*Pb3av}NtS4ng6Pe$hQk4tI31SBz9g-(&+Vm?9|p{@G^0yu z7tm;Nrdq>eNBQ8us&()O1hOfQ*EK)wrt`v^XUYNEli1^`1Uy{!%9-Ny@(lxaxh}c5 zuz?)|RGo0s{bz05JhBG;>3L;})KWgv4&@>BhVLigEmED{AQtgf^xf z#Tn#Ca}8>jX7LRYFeuigBVx9(%>~}QE~QLcR}EBK zjXtJ<2%c?inysyp^NlmgDf@JbF~;RTFl$oo;*dGZF4y5$r(HXRBL@-P4_8)a_?hiV z*{NLQ#DFn2Av7@SP(SuA3p(B{>O->S;NrI78@Ycgx*tbudeotGlyVHMrD_N*1?)R6 zrfmYiE=n14c|t7ymW?%om}8z%?Af0AlSvI0>iKxY41K?!L%c=vp_W} zKQN&>FJa#_$}~38RLDCr@AJ7b2}ubOyC8=&K0y%NXi?Ju2a^<2d<)LlFI2H)4%0t! z-_2g`zf*^MO7GpaxMgnR&1Fcpm8%OQ0x4%@q?*s&N9w6Lj71pXLdbQw`{Ybz`o6Zi@J zHfylCaRSQ)siylE7cN4D=`@AyJ+Qo?i;oPXdhx$~T7;D!s5bWJ{uHf=$6=$ot`MC% z0!r;Ce!asEw~255a6l&nHqd*HPoO8{rYkAuj-HL$x8Hfc?z8N(kKWBEMxzYfiYcYZ z4*Ie_ZRB-kXZkOc)!Kr9wu3uME6{+VO(MEiU)#m@23b;1O@r#z|8RX_6|T)1UMX#h zD-?^JXYmtFvDzmR(Jim`4cz0-d_20<3c7#=JHQU{FE?Su{SflNnGc@0gY9;j9zORp zoj~5x`%GG*E$Sx&7KO(XmaG8NG*9dk>|og+uOoKY=d+!&23Z?Ji>;dtEm=N~Ev%{^ z_pjS6S4V*FGR!QG_xxv`M_t={8|B0XX^ulnEfbgSgl@+nSvkVwvGLH>&|P5n!68&y zpjALH=Y

    |(|HEly!rbaUTT&#Kli^Anxv8cbC`6r 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

    `zKY z_eXk=y;gtk2xphuOSr-zG}_apn}l&ACg)3WTzfQs_55Iczgal2E72vcRCeqnnotkp zy(7|P;*U)ld5z_^6SI*paTrwsAF0%2JmprRsW|DB_ihFK?j0akzQ(H(Ke8+t0l}2M zMD@C?g0$l1PmMeoF6}Yi$J!k5rHp`t5~b5@You@oFi|m}H0fRELXD$bXUc^s=~b}+ zNB*o-a7ZX`H>1?~4Z@!D3i?C$h;%#^V>@F+Mcd@nnid|FOS}W)@D^%PU=AB)tdhuU zk@IfRzh2p!w<{SXf?o0O3Z%7e9Wp<58ShUlvhe*3$C!brK@P6`P9LtrVunNyOweES zXX<&4X9tx`vd6-Map3lH; z?oRZ1M&Y{1(J%SC^_K`Vw%j8}Y$yTJoSC{S+-LyJAvVRG`P<%pj@dfa-WQwFEqAah z$0luIW81QeU?7FipJ;a2Pb&p=Y)PN`jq*BCyb7P}sCKEYoKipH3ZCE$2HGVYQpap? zFP1mb&9pUXp8mu4#Ha&ik{)Fl@9Vkz1NIcAVH&*$wslM@x3jlOnT_#&miQ)|!==>GAy2eX33f(&>EW8DrcxzpONrdQh1+Q_s^f(g=K$T3 zf$L|?alRkHGecS(ZAH9&tE2{R-B9Qlj+9pgFM=lH9j77s3X~+BI!-$G=qKYr)Gj%c zhgY2l^&De}((i2;C#|4L5oGcj_>MC1-oMmS?>tu`jO5NRvBPOb`T246Ga7tyE(^D@+7+TTUz*q zCyrm1SyNh6!kTGSlhti4j%A(Y@u=dWt}QU!g(rZi7|!ygHCD$tf18WOB5{YBWMmKY zo#nr3l%hD_>AO117qKYmQN%%-!0bYU`(d>#oD^{s65b8yh06KnD!WbEaE;N)X(31& zvbXB{7SIf*a_LqybS81K0jvry7&}3_E`kjcKE% zVKX|ZaBi8#`r3sj%DuVbU+s^-xGd)HXN3DhVWx_kYq7|L${F(xNorz1X=7v($hseuE>xf2=AYNgbaFNp2 znj+Sdj3(rM17UJ2?%BmM725i{L+%9JycC8!&eS{zT^3;7ADuRi8T@w6L4Ac)}`Z#MRP}dH>Lo6ukVFa&o7K95WX%c*AqN>~y``_A(mW z6G6|{9bol#=j+BCBd0J1s*rx5+(s*NQ)5!uY4%XIC*PU>2)2RDX}3&wT4gtgdKMeo`Jz`rHzOFY{? zbrnONxmz>dJZQAOFJgXPBzdy?Awtm1Npwh9)Qm=Y)m4Tm`0ZXozOQv2tIkv@4 z7u7TyArO27aZ0D2loPXEDQ-57VX+I1(fx+~MzYhDZI;H0X*DMAY`7g8yMu&hyIj#M ztD?)pgB5u-sw|evyA~SE4ypu@YucQs$yM;K?K7N3{jL(AFvt!jLM)E8dybnAes%lT zQRfhhymN~8A@`_L7~#>6c*_&U{cB3``pxIy#V7aZ(WS)o(1g2VeR`Jdo{ehPa(ywqkfrq*RXdCO5vU|ZkzfyRe z9O9$jgvcGx&!Mfn{RGY)cN}P#8%aMM4h^fvbT^?IG@oEq{S=WqK4vZ4LD! zgVm6nvHN{^8oBOcN?5K~PGW?}CTU@>_(lA|egp$TdFBp&jpEtPd#*&@LYZ7H*OG8I ze7UPwQ&-@jAS*&K(9ks-n6UirYc=K9W}(y@w^Isdnno7tMp9XG2YjBPzv(eW+|&(D zvOAB(-aAA}B=Jr*UpR{izfEPELq@!9uPS^yUyeA*VTUv`Z6m^OxmKd=P?Oac{D;n=Ok-;n1&HFd)zqvtvDO||tkUIStz};%#eV|HMjNEJCf75(Pse>- zH+`GNj1~U6#9_(okSo|mDa_3iw8+j|V{wVbDpcH}>QXPJ-0%y!>I@(}UDP5v)-5IDm1 zk7Qfl^Gf^GK5F}lIMqK~M1(4vRgftgi0DU#&Sbv(-h62@i@A_-&$Z1f=(I=r$ETz`vtHH}Fo~&Na z(5rt=dbeL7CppFy@a(?UP1{aN4S(aD?6D@d+_fj01?jT8^+K=irmrsagR+Gi4SC;w zHCjY$ld?7wu{~qDy}0J>H}$PV;GI4d|02n;(XsF@8Zbls0x_!P5)6p?mHT&@)_6An z?DF=~_i&&ibwy?Ghw<>Zl+x#2NlZq&#s78P_~&?Dc%ahf)UvQEhnS~ZwZ4Z*LFJY% zwp6Q85eu@2DI(s0+%wAnmLs$DJdXN2VO(~kE6i=`|Et6QA1OA zzdbP5Oa0#&Ye4_StW+<`c2}1^@8{`&e^q^acwZnXCGWl3_1L}*1gP0_Jqx%IuQFvX zP2aVgBSJ)KF((5(f@1&k=tk+@I{EPbQTC3}k#(Wq>3wF1e7>}`udwg*i#uT2 zdE0i`X=j4Iz?wulf;pN``MkGX?T&sS~bhXd7-yBGB+d|jPgD2pq ze@6@zRez zkWHq>$u*K0>&V`ZZwtsVb61BHavh1@ewnD?_-oR`v6(GQQ860%22 z{lZV~5oP5MxuCAeySj>X`d0a;+(Z_m!^p@)9wi^G4>{Rqp2Ro&8b`O+%*IdW;|%t_ zK(a0d(>0g`IMOLeKEJL;r$HRDPt<4Av(E#SY^2}&%Eh0;aj)My1;^y5`Q@bi%WH zl}vkmS>pAi?<NUBu6NXik^*0_uqWo)UFFq9MKPmdzoAI6|^U%85^fD{gzr6bfWmZ zR#2wNf`J>aUaE-X|mM6thzN?Q<)W~Yt@pV z9$q^gel;^=C(4Td`gKHv-Ob}vxuRwAzLmMgX5L;>b#Az^1jI)1C+4{_%HGQl`I~U!T3*T$c`7UxVA3+Dw7Vbl`|%lNs|^_{}F-nI3)1qU`56(S~fGWQ$H zD6_8-5;(9k^6Ki$lcP3gSrv(jO(-1fDmLsge1EVpsNl@ZRrl4U)%V~zYvu5m_-e%^ zMsB`Zuwr7BG|s*n7)RzkJEB9_r0P)x?#oW7&CF0Py^)sMC-NEN)?`586ZVw2mCsS- zT8=C0-NW}8KcJHj3eZKkCRY%|$}2Z?uGH;2-FQBSw`&I1o+It5+7XH@JyBNCfb)sd zCu*C}E)5$z`{Hc-V$1ug>+v~07ai%`&A4196UJMaN-8NU$Q>-1xuM-@q7Nt`abqDFnze{g;bz2QAzxU}@(~_K-p=k!Z zf|gbUY{cvu|Cq=PmRWdIjdkT84 zO>vK_ZOEeQHJUqQwn*bN!_6j>!d1ei9Z7}C6=RhR)oKHIC6;x{A={Gg$7(^Ed5b2J zaW;Ay{~f-%O`0-a3=>z|9LMI|c)QPpNAz8HhR+`i9=&mKWjp>Cn;h{nN&(xmd+a*( zN#W1AA3o~GU#18}+P2o${4$ms>zgLaLe-3gQ?1Sy_B^Ij-hZ@V{2Fe8yjRXc>u++H{OETLT$E!J^hH0`t&}01_}=nC;TE02vZi}@l*fn&7uNPI zvea;&+!xzqBj})(=NL=+`x#=Xh8QVzwr=5DF+r>Ende1l_{j@uzMp1GB4brvcT@+F z>&zNM^Y@O@_4e?0qnsOC)K)P+(H6b!(t9q|g?RS^$Bl_Zj4Y3Z(i;+nVJZ$llFo0H z=_Ah?o>BuS{`c+*ao=Ai8%}68g3t&Ue&DQFz0k%l6WAO|dYee$nr^1wTTBzlsD(pd zX`>UgRs6$ywIVJ0sJXp_vM7$L#EE&A*h}8P;Avh&OvNTv+lTK_IV!t#Fj|->qF#&X z^pV=bv*#*I8L0D^E{7Is)j2XF5kyAI$WxF&sd_E~ps=n}6BtKBw1Pk=E%{WQ{7D3o zJyntN93|d=?;{3d^i!(o6_gvDfP zvbjnd?%P2J_KPTt4aH0Nj!Af+%LAA!E6U}CI7FLar3W=&B zwn8xkmoig=ZH#4JsbeTU7~FlL*7i}cqs6MFP4U?fIrSH1hAg}wkp@l+3iV`4@_fX; zT+rCwNFfcHBXIjxM7OQ7lDNf}G2|hA9+KdLlRPz}7=cysnO=-c4AU#zM?yky`jsV!Q zzUa_dtL0c|vsy)xkCv?`N+qI|q{>DG@l;{uwZ;%a*|fBZzA<@9kT4C_A!+23D1xf0 z%C%yyhg-4SX3~2GY(0I!5_O(MP(W7h<#CEZ&!H7pLgi*EW21bGh0ISjli9gi>x9N% zIxR^>Z*w}TII~_Vb!~+0MGfXQ=I9rn%SeD!>;nYooIuFkkC3@#z*5G`%^f>+|I{76;e=wdBeqY34*rc3z+79~4Q zV88G1>^cDyqeqYcE>BIaRzvG_!11*R>HVHMXUU@-tX_6du@>d!*sOlLsn@`ZmJhc({Jb0s^O^DBgrOQmSoG$$u9EjUmPQsBOUHFTjX7l<{=L1 z3F@PE!i!VHuWT*fF^lgbelXZ}sQR`u>go}#(Z7ncG_#+kJ&x>Hd3)68l-X+Y8$WlA z2yO<|Jm!9)1#!@880sD6w|=c$SH!lMsB71Tq|saRJiW}OZhCE)(hFq(8IbSL<(F;* z_J^$&)UK5$=s%*z(ZLxVcv?po(@)&Fd=F@stW;Ll^<+A1)!QsPe_NmIMdyM)Wglr= zC>k}Ds1I>O`Wa&ua3u(4ga>*Dx29K24f@xf%XGiq}}t%=Kzv2@-%CDf;;x!US= zz&`F$LaS4wVVgi>@;wX5W^5dL9ctgW`q1>*VZ2kD{J2B5vg2-d${Y8AA41-Br)(1Q zm}Z`zh#^+JYNO>v{-E_{eaz^|m9M=oxzwddzeYp1VMlY^JNAwArni52HR%H^sqr>^ zfCm4WN~6hjF6wH<-J6hC^zcn0*t3FeEsmilSog+N!%5*n;>!|oGDl8wO^zxQ`MAb( zYR4P#-7{?7eV#X9aDz@?JZ9oXG13o$Wj(5G&E(gpA1Drqm3sM8znU)6!9j!Ou`tBR@%9CUc8AB57&*{=(BqQwdJR_6?u9^DvEid*ijutEzqNane>IkKve* zhx=RAWE6CiCRM!}x0&ns1!vV>M)X$iJx4VvZ@c43vSvpoW}bwoU+Z-K+2_yxHgm!A zCjpzh^p7D!lUo+)&n9wx#Beo!F7_LvU%COezo&F}B?u~K7}@6wIE`M`Z`-@IRbobc zF1TWG#n-&>Gb*bDHnqkkr{<;MP}JXwT6zTQP6m9#LVq|30B_d+cCSqaz zi*RWZaWHcL5hf;WB32fzzwno0)h6O(WCb$)GxGQPcNECY&dl`x1wc+_ASWx!KbDyP z(F7c00qSI9VFJ3q%t*w}!3hKwATSeg0FAISaT2j{Fae$61kx--tc*ZlWd(|{asb8H zIEXlbq8zM1U}q*`<6;NSumM-W&I#1P!UhC(pe#@ikOr<1=p#Fj0E)1)F#%cGIe|(z zfo2(jW*9mCb>-k7V)-ljmj;?=X8UW7<1Z&0(_e~+i|yZzak2g*@mHFa3FsIXClL$B zKXX6{E?`(WSy+Hl>_lwrKw$jq9B`HYSvV6D`#*8hCDJAO@2O#7{IApivjHUj^8ls< zi2pksKqFtTr~5f9U_x^&gBCSY>Q19KZ?#)+q4G z2HXNHOzgl7@UL-Z)_-~b_sR*Z!hd*J{>95k#KOi##KOe|++{$?zgmFy{_zDU&B6uT z;s2xZ{`&M!P7GBGp$n*i=xCT1>9 zR(^g2*#ErBxM!SY!U!fTynJTgc3zHm(=rC0^>ueM1`c<^<}s2Gg;GE(|HOmF-eiUD zpJ$$siek0ts#xvR;EL2rQ8Q~acNsfTYpOlpWFKAB#vQ-px@55~JUDmtd%yhT03Ove z<&{;}ew1<4ZoVmG@)PtY0TSvw78a)JRLA`Rhkr#XM9#ak!_NG7H=XKZQiCH(uy0C5 z>IJ{;_%pDOx)%*AUIxVwZ1n46-U$p0QGPng?Zpio283AhLp8tA%T%RrxxVD33(&P= z<-D_lY$+Bo=&*mjMH7s7v11shewTIO`9(1b?$w>|GoT_Nr{D$I)0;`dKq7h9JGRyO7J3vK4SJ5s`+)q0{6!hH9X0@M^!4 ziV%^;vSbVWMXd&w$i+w7YRISwWpUg6>3-bie8Pqc1@8eoV-6g79nPCRAqa10k@EKN zCFT>c*Zb$%#nhxv*6lf=t>spL4REX9csYmW=NpVF`qQ6|+9`ydz3ti2`s$kD zOFk!09<%A&PX(v=Rz_P2JaP9a9zTM<4^=oJVoT`U>NQ`PR8g8nmGk6nfag4?+L7+Z zNcw@t%RguZF42bE_G^9P)624icuw>crPb!otAs7g7-s{xAQ!Gf8FqFeQ*fxVBmvWIlRdWFB3x-@H0~ zFK3vGCagnCB3w+mT8cdnw@`3x=ME1feeaDY)mKONgpO@|f3ZSf$gdU&ErnxySsJ@# zUfwe8QnT&uHz#@mcualp%F6`rq9tMx1X=I!6r+U`L2=2s!w%LY6A3qi3J2vY3?(6T zh}V)UP}23+3gmSL>gdVaf-~|V4%U%sAe}-tAyshfAVT-FkH_P$`IYUoLOy&DZopM} zOjzlWqE&`;Wi#4=wm)^PB!6O}sb{~PUVSEo>CahJt02X8sUU7)ExBWVM4a3B1H1bO zo-rh?!DA3mWU73I%eDG-x$7E2@g2c+7;xEsoc?+wELnprVdfF~jCki6aqKDz6L|mp zgg;=bde@`igS`FRVDDGFyTxY0E*)So_*3&d&b5yw7g8|m(l@(>$fF-}S(brJMIXfS zxxxR}z1y^<_CvORJO!d3JT}{WhXybD-q~EokL_D`ol|%JgW*5CuX|CtuM&^l|69R- z=6O0{Yz!V5F9ckpp6}fFeo;~CkNGV5l?wbXga6_GpKi1tHhi8Q`X0wz_yfIb@EajZ z2n{cg?=(_33LmkE^;`V441sFZ=M1wf1S-WlCj?I>$ZgUq`YnJt1rlTXC&V`?IryJPMBeX79D4GMLQe-nh{BfQz&HV;3hj4dXztG7Te8^1oYLeki zP;20)PiSdUYWJ#DN33`@hUpHu)^?mxJ@85!j94>|86M=AY>nCY`kk4_8fsm6JEnqk zS*yf*I!As-3ohzsPzaGBy5`7&*z;*bKW!GOYR7C`gs&sM|89; z^ENvC@dHi158qV3L%;txlqya)vC{Pe~d6d$c>) z_h=XHFbS=XvXj)TQ2D#iA@?{5&|;Dp_xUm2U5D%wlrD}!kNz=L_kMNYe@LAa76{mK zzY<)#%nBNL)4pw5_B;8>bD{6~O?0L9Kj|-L%Nym#7R74>715#ZWslbVB&(_lB3lgC z0dS*D@x)e;HG-{(@6sT<;b}(tg=<5F*$C59)SUjxBx^)#0gzQKo02`CJ92&3>(S=j zWpa$|CuC%pApIIc6}w-DpDK0Zft)IKvl2Kibg=uJKkOYhg(k@ZYkU;A#P%BJtg+Re zLPj7&PkDWnrXIIUyl)u?c>Vn>9M`{gO!6HY?(~)n;w1(wY{!#(RFW2l>emyu0Ck)O z;wP&J>V=5`Ln@E?LwTx816%Y-DNZ8BoO~*KgSV9CpZ&PqyzfD1=Mc|mgGW(g6FBLa ziE$YToU3M04gI1)khpgr+)=Ab5(O%fdEG=c%SuXiuB#`RaT7{fY5j9akj|{|PV+ny z$J98QgBF#^5vdYM^~NL5LkacD-(L;B7jndeTz?NcG>Ta9$Qd@eFmy>|bMMR@RhJ|olYXDi(g2O$RwB6Y7IY)sP3?h@{BW8s^g|YXkHwXHg4(-VxBN3QR1wTA)FkL@Fkk<*n8a`p79gMB#?gtx`}R!*^79$)8q2T^WhB zC=+jJW7RWNEF&wUC|-l;ark_cG&1@7R%i2#tL2?D(OjdXZV?C4Bhn*+UF=2kVdbIt zD)76q!Ls3|f@*@1kj(!GCjA)T!SVrPCv9^_7nzVNW?a%pqiev_5qSv5&JKx`=Y@PmjqTrWI50l|y<$X%AH_ zyY*cQ zgEu8mg~`z}xOh~DORBTRYL~;_koa%y0cxz7tMNj=gWq!X+sYUjn}DXt8| z)S~3h?_>uduhX-w;-2YBs!J`cN^Tu3D~dq$v@hokVyycLXO%(Cq3TB6^{>3>TobW; zA~}>-z*%Ue9n5z!leCo#8W0^h zMHtNrdA4YZGzEM39sXfsx{A*D!oS`%SwzZ{Or{ zcx4W98PsF~Efa{cO+A&i^2ngk_i~``iKY7Wh756TXvK9yTTxw*@99RN+6V&a%yuzw z7TJs~Sd!R{Bh1PT2XW05U^M34ia#Y>!R#3K3PAf&dW$|yWBiGD`l)n@w&|1#h8&_($k^XTuME43-@69r zLfOnCu~Rxh=+%d*LenE{m*SLk54vLBVE`mUGob3_$bBW^m3NQ6qSbxCp?+rFq3VqX zP(r`L#GpN(5Rjgc^Gez93%jRectN+pAfdRTctRtg5)hq{oe^16HbZYzhB^b{t0ypG z{hPDx33v2*)q43VLs|Pb0ByyanE)Q>CNx{pb*bi{(k+=~;bocTFniJ+NXr+`UKf>j zt=?>yCFDv99kKgLG997j40{|yG(*xIB}-3mRekwpz_eI%N_8}KIe9s;j%f2Qdr-rM zv6L{*?CS99IC}y^h#j3?F2Di66i@)DgOP^L1PlNWg?V;ph4FG1FtUO;;&F;`l5w(m6iZ!0V-z;P9CQ)tSAeB3h9P8b zoPtn_9A^+?6l0=-T#E2F(gairG%4r-07);IFtH&?kK8w+eKZQ>L9`p_J?NIoX&q5S zLt5hWUt+^#Cdjie7626-5~m;vW9p!c5dfJm39&z8FtR+hY$)k6w3@mk0ZEd9L(mlj z{vIq&NGL^7DzaE8Sqe1D7gFL3WN~P60CE6~kaLh=YwtHlNM!ggd_CFQ64NO4Ul4?3 zuL{_Gps5|HVPFG9kzv66Q3N5K&|YAC0NKzIFcQ!LsJ=vR%AK^YdITu1(HUE)oy6X< zPvQ0{SL8cz!oU*hH3!JUWFzxayaiT1x~W$~T%+uWs58h{D&0;=vA^z|{G@7QdO$yeWYPn$m8{3??CFK)tY7e@dDU}`E z-i68>*nU-&cd1?sz*vcNvf_xWiX*V%)D_5$z!P=;*4zPXxsc8oY`Ivu6U3x&xeLUk zc)0_FoRH2wY(`k~uN(TDxU!Pr=LehNzK;P#{g*^>{Mjtj2BdpzONJB0i4sM66^_xc z)!N)g?N7nT#;`Gw*# z1@*j2LEY$9_=b@ta!b+^rFqDC&v{Y(9m*Z(3|PfpMH4vDn#4-QH&@;%jPB$`BjJ#- z?qs!p6?~#Sg&~R|@eX`%HuN5h2R+{qr!YNn2xHPO*IKkO2Q2 z$|tlpXl^XXf)EQB+<>%g=_}%59c}{40w0PSI2DEyr+M>YdBto4&MmQyKu^4Tj(P23 z4n;cyjgN3o{CnsV!+C;v+j)^ra$d=;nJ_wWoB@d_awNcB7@IgD7)KboQ9tHP2r z&K>ZA0{#Yml3jeMxRu)}<`by+j(d-BLRj3D&oAr~`T}y#f5I1e0XlzMe55dymnFm( z@zxGP6bxFggPl+qLHgk%QS zB{$`(3#fFomTv2)!^fg(bYcO`*CQLd0F&xS`$nMMZYF6PQdyOT6LNO>YI+DFlo@0mt1 zUR8WKERd*|DSkKBg+IKw zf=b)i#o+7qN}D%8g(M%ZDX*QM?`jrQL^oDcME|L%sG!jX_DozY)mUk*QC$u;59nA> zS9dh~Lo(DBfqjOuo+ELNu}-hJ(W-q61*s4F?#jUfPPr}5i2@fV?^bWkx4|UPGBVTN zFoLq6GEK%xG3CTcw#0KtG37eG!o9{s(=y5AWR*!;TA3qPEL-W25zHnpTM4|qM2)93 zjs~BlQH{HhGJ6+z`s-ZW7`}2-5>FvnGWTd>5;wKf%Kkp8L`@2QP!&0H*p^Lf83~ev zRGO!9`u86!_{{k1VKyisq<}>6L&8pGZ{z0U7$|>4Lq$WpKK2kBIOV4?%DhH81J$3? zW*Vl*N(iof(!nB-F!0*&0iWWZ6CZ1D1Aji8-n;JHUZvOGR@l2F-u3R#ie4w~t?tp@ z-`%z9)lbfSM=Z!cTEFRr%YDtxqnVan3d3_5uapMfd46iNCk0zS*WlE!YerXRWphog zU%Fx0Q#lyP;Iq*gu$JsUJRS);M=DAfIg5yiu1dl`{v?n^^Rq@)AyZ*9-*M`j+l$J$ zbFGV<6^6hn&1uG{i=6%ZMEM`Hv)NT!;AdP{$eZliu|E;))*#A;EpsZWd#Fv;Oc;wv zJnGj@ZMyt!w@%$84KPmJ+&tWvl+I+^pln6pd=Wg?+K_#uwN6Y^n(Lq%WQHj&kzbPj zY#%4+;%7SX)L@JYx`mt_mT)=70zR?I_m(2wjw0Vf+^eJkIkxjv1N5jzsu^UlTT259 zYfq=V|5n<7&-$mdA*pr1*tTOcSS6rr+p-z*1AeL3#h!0+FUlUx`eFb2PWH*AA!E$R z)}LqFwi(NVW*xGrFVh~Y@Umy63+qCH(BqpAp=V?F#Bm3BM?3nXO&Eo`yznswUmuN39!K~ua3r&v$?yq7-mkv!!pQf`UBOpI9&LMY zf-rPPbWt6J2_eaMeDU*7cBsGysPC}3<8S_K+QxUsLhN~MKH>k={LruIPuDoKkuQ0y zo|m|SNje*dQ;8mZlbw9mu-zeAKA7*;@HN-!fb-_~`gomUiX~=< zUFH^gg9|(T)js;N&;15nplcE>>b1t2V{*Iu4c~83?@Bb}&hmpWF0jT?KYAPatJxQ+tt5{&=J=6m@-=17A5sW)45H z2AaE+WL*8|@g4joXVS9;>Yg9JI^N*GH1oqs7*K>kP^}Kx9m_rfbh9&eJrWs*T+827U@J}XJ8t_{L0dC(zw`3F05MKhH^zx$&bUH5 zr%rpv!#T_Kp)d#Bewn>f*r)`#H%w0@LkaA6x_Gt-ie)0@J1A6p}Z@y*=C$zcT&}P0p>`|+z`H&;M@R;csTmGx0 z=eX0gAc|#CECX7!v6i}w8b-pZpoKV~h(X}OaImmoz!nJbIFK33Ely_UfXBkR>IAMj z5v1SdjdhsDMOHJEM!cgepA|}{N+N-<`m0J#) z*K>%I8}$iqsFFC}cS0~Og>X=*@*x7*c3Hxian%V3?0|Udw#V7M!+v}ld?~SLSQHe{ zYD@)PS>d!d{be3>(}0JLO?6c;PANJYF6Cn1Gd`IYq1V=$cUaiOFly_FjU3?#yFu#gg)mDkFO3O9O63eRY0uVxP-5Xze6M4=p-{G|~X~{DlonHmh@`Tp_J$3S5YRa5r z|2Q;8N@mhiZ(t@9ltieWE=Z9R{HBDOd|CkMw`|wqOhC|~lWaz{L(%`l5xN-;e45HT z8}*N^O8|d6c|bcrx(hxWn8O3l#&3^a)!%5MjChUPZ=*rtJ=Tm3pTv9?zMRl@2J$*%xYawBsrdBo>4@J!0#w=3?voR6ZjW}}A z$8(2iXsH$RTD>toC4Bc*oNp{CWvNxmZ0T&8V0;yQ)Wqu-5%B2g$&GkpVAo14GKCbp z4nu{56Ab_LZgT6Mgml-;&|9RZB1jWnq-VbhzPYIyzH@AtrG!`7SgK*LQ2a;GM?}HT z;`x-6`C^coPfH=R)BxXj3Z6fk`@Jf4NkLMy;#e5j#^>yVK?rbNe~v@A1GQ9s+~HE~ z9zz9w+_KcZ)3q4;o}jIyIMjUjYDjnX+52HJ!J;4|9VvcoHBM{`qUi>q*kNj8z%IWL z?%rTCY*Q*Zc&#wsGlk(f6H3(bxNGLL7dUWR?a|}gQj9`+lfH+vZH~PSgpkWuEHn{Ez!*7DwS5gP zg1yxjceWZPF6OOT%{y%Hv8UCxt1_jF`YU}c-C%e^_WR79$rTmMc9@=rliY`o7Jf=~ ziiyScwSN{%Tw>N;O?s1(j)2SkdsIBPbAy@1$|ubOU*4snpH+S!XHgHv12kB6CQI0YDMCL=?=DXiPLBPQ0Bo zt)#SM=C+0omsj7JN!RqSU>CA!Oe78@jqSyo$#n?l&(0 zO;ZSN0x0+#@^qisMRj`cq6D|}%9b0*QRQngEW*XI2;4W%?HQ@fZ2p1wktRQ+t<0yv zl`e_%BDHTdTlRz-jk%N5tql?J|qZd~F=V<7H?TA^6i7=OSOF*J(Fl zVuQX3-aN8O!67%Ct!}b#V^|<&x$tIDJ5#Z4N^Ye<{GNNq5jaN6NwUXijsQB^YeG* z=g%h1zE8J!lR(Kxc|`Hyq#A7vXxva#+jX2u7}#0Cn5#HGMn$wv=IDWrSEbcl)?Buz zf`XFrw=K+jSscFcB5fCL^gGP$jWp)h^39c&x5@?Ta1>5t74{^TgCf?p;W!9bLR6IYNZLOum^khCoKpSgHbk%>G3}Vj)qK4nt zE@v^*^QXw-3KX&Otuic9=-Ea@(Prr5s%P+spQ5STQ}YZZSTBB}n|%M1Z9W-_zwqfI zD1%!$%Kd1*ORhv<((^_ATmLzx9w;4uu=zP-dJ2{Jhx+ETFcO?Q5qSlXtfcgrp}BJz z<~C1iV4c@N;8DrU=n(sznke^7V77Z$6;-~onc7jGl~j>#yPJdX!hQyHMX$tBeiS|j zDMy#D(fD!g;oGuYR*_s=l+@BiVNvrDIhvm+AGk5Mm=v`tQ3=tIeZj zdK>ef(O>-?k_nofr9K~L3L;LYIP(jA(quzhP6`%0SXUlyA9ZzV>)AW1h_CBaIjg++ z$PMLD4Tas@bz-V-g!FH}-F~}5xHR-dI<^@%Qx3lNTU%t?*)Tj-L#)iGt2T!Ekt~;d zr24dyRwD|9kU2Z2jGEos>C>Ly%gLKa#(S4N74GxqO+KxQurmln%8E-WijC2X-iQZJ{A5OC z)z(4<*cxk}TRuv7Z=UBn)#0iQA=Qry6l>U=_G6*xt)xP4xALlw{lmThO;u*?W%Aqa+b4o3_W5UMHAJ!lC|q~b z8Rp@uUPU*w|EstURB~pZ#LtJzI=PW^s{$BnfdS2<=jHJy}K?WdOgR$e9F<+z2aNE&A%n_LYX8X6t{(0l49RbEc1}=(; zUxo@bFKBck4EzPHu zqxN1p@*e}eics*!H9p3^mSpW*q6QgGz~YR)cZ*ynt1WLA;74HfZzWOXh<`IlW(f2? z^SMKrSz^L`W@mI^8pK8Ed8u~mS%|c+)Po`?Qyd4u_?AKL&Vx3KPB=ej8V3DPDc7b@ z2Ngulvwy5*FKa|W2rhnWv^PqqLl))#(kjXTE^Q&w+yae%4{q9?`^|}F*M#+C5(KNc zsaR-zMOQJn*XE3V4cHp~EA~0u_75RgP?cHe+c4o=RcwO#3n+EiR~HL>!UvZ6W7E;N zs~Q-ZumxY?`g_iNH4MF19LUL9>viG5AAv?lF&~C zLie!Jtnz1|dh0QD7C#Wgh+jqly`P%Z6e+?chh< zqM@0Iz|B1m6S|0ED%Ji2K(_Y22O3XUAIH6TiN8DXjIG>-i8)hNKmDsm%57wHjOR?U zK|kak*EY){IC~3Tbr|BcNOtbf2jsUn{8w&a5(+{5(hY)Qjy#_+Z*l3JC^sCstmx)8 z=g%^?&Fgm-E2y5=KgpK|mX{i>=8!aPUbIOUx`79LVl;=`xA7q~nQk935*JTLA*CB` zoe%rR=h~>xf99-~wi?K@vODo#Si1YBK+bFZi^)8aAUqb%fhSyYa76t0xu%eT7Pim- zBzGCtq;QQl;co09+>d?M{H^arvk}Fdch2F-O5))*DXVeBm=+gCrQOGi%kNx%B!%8& z)sJ=qXWGzC&d--y(W^$a)CeXKXQhi+pd2;K@@S%l;J5FToxhhHxbKA*CUK43B>94& zEM)X@9X_t4_F^^U7uh3jZg>d$+oRl7Xz`vc0qAu4f~SO|BD(qQ$Dyl(6fWhYUp&#L`8`Qm`ZfSxBa#--?tAaq;!Sp@D_95w_n^q z*APJlVM+B;Y%&k)D%Pgr&muhsYkw^Asi)m9C>0AnhFz{ZZfjGv?l&e(A$?8gU_^~j zy;U2{G6;0Q3*vVX(%m!~LqalSiE;|?hNfv2;E2l*gYR}j zKU{~L6`V3IiXbzso?y&tO`iwjKX4-FSKO`pE&d(aM4|;V<`>vX{1-3P-;QoYZIBub z#ScDGqDS#z8Bru3ksT7>tWzaf3*waw8?yQx!WVaAyaGHm?9_a&ymWFG6#)Q5&+d0c zkgnusc!m#Jqi)+Q)!_;IslX-Z+1xcDsiPF8@CKIMLHt21*sk_37f9?ZX|+1fkf#7+ z)p`08^p{C*+DnB{-=BU+`;LF?D>IX^|1(}V^I%9rp!9>1xMSPco;=fv%j@cG4T z5X};Rb7P9uPLWui$zx@BUI}Y7PeeF_nbKsioRh40)aydODYwt+mWC|Tp|H<4@xsR7 zhD+R@1@!)Mks(u+!fJdD1n5)=5mw;mxK!(fZ4|JVl7A^sUy9DdVqL{q7Jzx}iyZsI zW~{?&2RtOzQnr+S(C{$@Gt2+=UMhKOFlJ965I*eXw81MC6nQ_1tN&7B^{A#ntO1fE z=hIRU;r0gpMF?`D8;3bn$6t*(Rm1KF0UIV=muvnL{&`IkIuPUMV7+Ph?5SAF7ntp*}_zK6oYJRGPcIg4I`m*+TEUV{>_F^-I+reO0g)?AY81|2{=~e#I)sQ~foX5xcv6(? z6s@+IJT;1Ym$G+f<-Zpaf>Gla{VSk&9{3vRZZ;b$5xA5~D7{3+b5*3tEKN)Dr#Rfv zIJ`}U)8Xy`cWOJYILD9t9?v#lDEPv{l2|uC@Kt9M zy%5(R12!35)fI!MP3TWaM8m`}sF`9AF)*xGm~$%8pIYTW5mzzA7Q}U-LcjEfxx^sm zHeaE1)#lRB%Y&_z<=LGWo2R^qMnZS zyD1`m2UGq1tv)UCsw}44Vn453>ry5ty`mzb#MA23*k>k=K)vra9Abz@PwB{hha{|~ zqn)YoXpH0FRo>S{B4;(*)PzK*YOxxJzQMSPOIOxBcvT}vhMqW!-7AthaIBo(*XZIn zHQDY`4fi~9^q8q($bZ#m$ME8?cB+S45>8+GOI#dsUi>iA{%{N5obfBM3)zivs0%?l z|IwrTseXSU3RS33G|8MKb^}I9V8QsO#pUzTJiYC^lR*u}ZvZ0t$b@QtcpJ@VxCKE) z*1%Xh3!vt;7cbd!_6mu3H^@-)WP)S!Cp%2DZqDuEw=DfGlj|>Ii{L0mrq|QbfMINn zMtZpnijT%i8ILi_Qri}`KlkJnj&y5-6ir9Cgr;iLEZD~7{7R9hY?f}8HnsF)j*D<6 zROI%t2^M(k-O`=SpOp=kO|wSh_^Et}TkBY}+v(wanO*{QPCLoJe|`CNENsVRg?Fs~ zB)13eKp31R3?Wh8S7pST^w7Lwh{;&}dX~U-#_R=8J!rZ=)A|||4-q@85_w0k@(VrI zu|ix>@=kfia6f+d57&NwCyF;gddA)jsnqs4Ih{u<=xq#$JviqUPTW(?>(M_ zxpmOcNqQ4pd`>rMHUtupAudxa^Pv2P8Ou*zOFkO>ZI;+9)+-Z)lqX?GLh2hEs(YHB z4D^;nDzZIb<`mFbF?A`JM4{rt1N7tzr{YNO-6q3lK8{nBAw|ZYAY#Q!9bZqUd7`w! zQW8)T261SXX*irNbh-HwF61(+wr}g7EdtdkdhaY7cxos-g81sS15r~&g}o|b0pe82)ufbe`A2&m+TDU?c~+$GdkpTq8+wVL zT1seQJ#jh}>`)5UXd(oJV4KfuGoS#7nHN$Qf;`%wBSy|d>>*pKIPN77)hlgi)8d}q zZU{t7(?Q4JqGT>Ua@TJSl(Q zRwCXtAt34xm+!>wv8*({qfsUD5dKu60WZ-7VUooj$!R8PaN^FS0dp$|W+A$Ra&+23 z(fv{N5dA<*b^i=Qu%?=iIur+zT0IyHs~jjU`bxs zlgOO^wPG}K8_L9wUhDMit1oyzeDcXo-~3L6@{Y82kpU(Q=>aFh!3ZNgoOv0r3 z=Am)v3;`5LF^|bmi3z!4Rwoan%v^mPru!UnQ-IwD*@oPH8|uS*{*3q&6!9nG?G4<+ zr)v(?_NsMxlrMryFWw&DN&Ub{Ozw}x)PjK7rTMYMoF(<4Wh?8^@g2`avIxyz8LDFe z&G^F~WE_68#={vkOeOEy1uz65r4h;|`SrD?8(c*DVhvTf7@b03T6ylEX@K&lsM)Xh zVLGQ=H_$U?ZbBcW<>VyjlT{T-2bz_B>8(S!|y9d@;df1-4aYxQBC zH9~TUJD1DBx6r1^0DHLB|A()03eJQH*KIU$Cbl`TlZkEHwrzZ|Cbn(c$rszUZCmF* z7w6(s?b=t}U5)Fmx1U~Xnt-p{-xVIKNmu3}2NlURp!TXcDP7x$vHo>Ha*Sxus&dF? z|38&Cky)jab=SSuq}V8V5d)TCK{mlrAs9bDMJstKG+W)>b#=;hOPyjwA+s{`>93sS zjh+;^OC+PN-Harv^l@${qG4@ZO{!ti>F^;Xn3^Y7NcE6{jyE8kq7X^qm??AbvN|I4 zucjh~e{#fHhg63X&ar%6w^ZTtZwm_xN4ReNg+U!byoOc;8)`|(*+)UUt~e$o?)sxS z?O%_|o2eiM&bjy;O%JRhGR~pgdTZ+K0ovMU`J;^S3jGr8-PD1v6yv}EnA-z$S#p9g zX`WDCup+8_ldPIlV-G@YBuIf*JW2m&SfW`~kV5_@*fzB#NR3Hr$GIjGJ=7|wgLM2g z2#|9IT|t61pTROBg>rIi3$Yt+zDA~5oE`2UxJ$weex-QWQzfkBHDU2 zX7~N*Uz1MxJNr&2IV1oRtBnpDgo}ei5v48m6@51QYBZ%?X^eL-1kp2m3>(WY{$f+B z6@#kCSgDL8QyO&>n&%YzmeDbfW(KXzU`Q+8d9(lwTEqjHS|Fp=dIiBt@tqKkYh~YZ zUtJ&#Co$1Z9{hJOl27xmKpJ>=QRvXs^ZI&+F_H2jh&wwlXwgYo9}~m-+khK&9PmJ$ zp&)-jM54~)`LoX`g8O5$&hFemFg~QIpjNmgrJtzjB1p}l&F%X~e?sOH5vm=;tGFsB z-DFDh3jf`b(qtC6Ult}pSD52zFI&K+#HiTGtfx;=p3z7)!_p?cG^0aYB@Ad58x5f} z^|EiN;5GM|-NUnr4d3L!{lbKzxJIJD&tgQdZUDTe!}YeeJ6{Lf{ce6l#Pzw@>6jZ| z3(LTRVQZK79}j$3VII8F7y_>(Z>00rEAUQsfgr2A<{oO#_~A395F3yqTd{$j5u-6%5x$urFv zJ-12i_^nK;LQ}u-beQ%7$~y8P!4cpNJ4bvGKi6m-e^PftLbeam(gv7>aV1R+k8)JC z2*@Tkhaloll`d0Q;_=$}r5IyOL$M9N)5cm1TwC^w9+E9Zu6veUD5%b)7T5?1!?cD7#qF4wVNBFPsZ**7ni)OiDOUwiPt;k1|3% zdnn>}d@H`KwTy=g-{)6>e$9SgB zJJ=&V2npA4x(>;>xRl<3-^2+6gBLZD2`&_OnoK^l*@5f`XDJQ}zCUI=SzC+n1L090~7aB1Sp z47g6sJV|{C3By0x+Zh25oU1UD-LR$o68|Av*>MU}6W!hw*)?Es6uwQ{^>X;@!CZq; z`!>BJG!It~)E(s{Pw5QCM4aj&3jtz6dU`yfjTGsuJB!uZEsqv;!om_s>hbzUI;F_4 z7B#7p28;=Z7v@ks=;4Ok$Gt;m;-2;?0cY&WxjQYc!}id-{ofnvs!DVS-|` zFv(60V<+rgB2F&)K^1n-LKLj4Ds?b&5~-7zld3wD@a|5j9C}6pYpow}CD{lOfl&Uk zmCq7LOlyD^I=Pv+TudQ98X2u&z&C%mk6BIU1`j+O{>fKj;=jzKxSc7|W9^$@r&4q% zG_%`#KUm4ouU4nOj^Z(7?!uC_3<%D692~iXZ3_jD1M6Z5&Z>{e-XOH*tC3iXk`|s*0OZ^k#|mk6t;r zcf)R_C_!rHhBWr{qmx!lLP#7@3%2NT3omWl?-M!t!>C8zoiJiwi=7Kw(qGt@PWy z2^aEg9X}16%~s9+Lz59V0(wwt{rY?Q z%U+l|CZ9i+L&7ZE>G3~2j|Mf`zE0g^w(fVH2ial}R+Jxk$@$0$mipp)f8Z1WeN0{s)sA&=>j_XV1Q325p$=-P| zwR`-+9RfOxyqOKL)5h8-NX01F{zvAby`fR92qhijSHY#2d?l1x1R3Hh7?ScKpYGk$ zl>;shseWHkDaS6u{E=e2QO>Wo#bV?ViE^#agT6FV2PUbLVMd`P(ew;sFWc`|nOx7Z zCTw+^G%3=D$aW0rObXC>$>7s3#IEwzK^&(W=df?67z zM673-%j^3g-N*BBfFEa9BRM^lMb9l^CAi1x-p;aAoGmm9Eq=7cPA8v?Ry8>@y`*2?|IKu6Z_~FuNe2_rq1S{&Cw#J!{LdWLd5V;WE@B0ujs7+_-Ee1 zf3vIXX(IWp*$f$rLH$!di$0c)gu4wrT8_EdzlT|8mkm-c7n5JAFZ5c0h1Opk)5qBd zr4r~}^8W=tio0#=<`t2Ugyi>XSlYfdK2>%M}(FZ zq%>(Q4bB5@ApW6L3hxlDGz%NwejCC7G?&pnr*uLU*appw7gY4|xjBEB1?)sPmiGp| zI07$lI{qUBEj%HYiSf`RYVVEKM9+IP08dR~7!*L5EH^prZ5qn=i#SgmLg7u`;^#g~ znyF;-xL6N+_7>wBspMo(yM@+Lb2UYLXHLtAH_zbQKU}lDuWQ+_2#Ml^_*BJ-ih@X5 zA6WfY19*S#@Iur)J5&B%W`McjGkZd1lFZ+ORov`YhrbDb?msz#`O?W*z+Of~SUdEi zAD;0PDcTKCmvo>KKMBO zK2tESsa^n1-!Z_TgZkakJ`|5w$S}ly&f;}r2(aZ0_HFD<4h%$n}+&w~^obU(Usu#At?<6XilcW~Y1Zz@Oud~6I zX$NZYNySVX1(Z88VXEg}9f9xX>1(JVz6X-%mu8;@evE7_+I3i$oB+VhamP>{wT4qN zsTuki(E(XaujHyU((%hf`lMl1S#20uVl+LioZx0rM| zhqMS*sp9WivkN7x%pvT;txIdOCc0Z`JPI-v-(hsRB$l5yHz}Mw?cbQ7ay_*WX_KO? z-vP~tdH`H+s48D1Piw~=>#Ft}SJ}Df(FiP@4_yKdo+`Wo8r|n zc)i3&EnP+b{e{Mg0FrS<@kD(ty~MH8hE5VCuHqD7at1%mcm{QBTpu?YBul#HxtFMy zDxGug+>8Fx{@FedBlbblqhKoNrNcFq!XP2ffur z&4j%LYI!+Y>4HBc@3^}luR7y>mZEzVpZ_K1UKF<*szk&$RF_HuQiIVA7*~=F6fhVX zm5<{G6^A95=cZsNQm^S{_xx9FfWl5x4V9*X7A{5)tqe-j^;6cnQA>|n^VQ$%e%Q0U zOP)8Z%v7VygmE;cw3JQCU&~@yH=Bk~@2$N!KYh75@F5Y}nZd9ph;5b=qAM8`0EbWY zi}j7+h-@N7gi(8s5-U7~CLz$6%3-4{K+uZmZ%7Dhq{8`whNKUk8VqhO8exF%pRRwB zt>s1R%0!;@31TYB-|r5s2Y4G?TiPAq6Sw4j(i)ELhgkcjsYG(vg#VX~5-BIT-$4@$ zNPY)ppov#@L0Jp2;pN}n$Xri8t~OpBFNsUS?Lx~8b$8Tm{kL$*sIy8zkBH$GP$@>O z78B6T>{zac8JJA0feMz;p-~Ift#^Yq!1XgPCC5vyQ!L~41lk?icH33!<&#DCW|*r^ zjVjF}IE=$crL{inbJXsZCn``Wjp}FVs1{l~L1|Jcv)qKSS3_d=YF`cZhGH!;fE5YA z4^~8(4C4)2bWM@~!M_sqGCSzD(#VI~xH3eyQQu#4U?}}9Jaj(lBSIOIk2C~=X znvJ|S&<@nC0hy2++%KkDw|qAAI3U%@Zs@l9@Q>cVj;j@Jz1vaHK1-f3tqOpOsY)N-Ml@^Qm;d-bB?5GpIJ*xUOo={1kb6OUo^^QNZp8 z2UrHKZmb=I@qsp-5P0fHCKT87ixwY`&Pt#9sk%0Hr{;t{K57+~6GOuqx-2HB`Q?_X z*PlvhU)K(6+isAt9oW*6JM}oUhT0rdMS!8nI;eocSwRp$$^_>T2iG;Fcwwp^U>L{x zz~*w~`uQl8IIC{6F>!=xUZ5WYlTTwoHX$D+4=6a_AA(FE0T7vZ1DW8i?5bfdyY2rj z^C%|%zWoJZQ&k)|tOFqAhf>2A482HiT0cq~xy~rmHA*!n$fQ=1m_x^MQ9Kr`$eHZ( z^)WkO!2El!nbW=xbuJlJ^fp_XlF%?6x3Wa|?f!d6ROCuGet0K$;<*t=@k+NIqS$`| zvBbt{U$y?V=K$6^>uG3;?AtV6X@HXdwLLTim4vf;_{*zQ3H~FSBwY;XuxirJ$FMRg z0#P1#QNbHJ6X5C@pWWXvGF*WRYDWRyUl7SyYq4ZbcH!|s{LZJ%9 zr3&j`HE2RNXvO5(*G7YSdYxW|T4PQAaWgG9xc=9iIq5oX`-EsUa2Qew&ip*l<`wi| zA)c%TYI6QzeUuB5H-|owYF$<)lxD@C&>;%)oV!;GD*C_J7~dEhcFPjQQ8N%~Ef|7z z{JRXqhKJ=|Q;8~X3e8d>R)a*4p3i~8hfsA#d1{+rVXuofRQFF4~Ilfw@m!aTzFU%R< zGY>my1F2#hugi?o>9gnKhBNe~%1q%7^|^{%X~?$?kDL||i6hG|isv7ppx1dUeE_+d z-tQ+080w@R^|gl9wC3jP)d90rhsA@Ad>Z!6YuG3}!m)(mIF?y-*ElV)EkEPp zc@F9XGR7Eby5@Ym$8TSpl#f~SNF0$9qU3n{PQ=XLl(9v*82Hs;PoD-xg$+y0eZJ&p z&|WnE8C@*%*+Y0wsO8*NSt6hhWP3{;6X30z->@t#d^_Bo`yMMMcN?`9^t_kt?y#vo zciKn~kpJCbHA=A&7n8MV$^3J~`&9IvIFO3k;V_s9k)6K9?9x-F1ZV9)@CIdxtdam5 zo5n%j;ql5ZBRl(fm%n}E)mOzI?!id!`9!(25(V3d!#nEKlFr#2;7=}t5tHT=rX}iU zfMq!#Dfd?13kWML410Ga?upG0wmnh`VX?HnxW0Tm)M%Fx%kxmPo>ypkx|@k6sBQ44 zR81PrQ`L&5uGiGY$H!-GLxcQt+0z703#2RonJ|f8teQ*;(IApQ%ciMdivg#=CV1sO zb~x9*$H2E<6ICYc?gsiY3e*EnV{q}kBwf5uGRgzjR5zDVD_?gD?QLjDKcKv)4PmgT z();Y2n>_1wVCQEP`whQkKqwi}s{ z1bKMP=PYP1dEVVc!HpEDO$Wi{8yV`cCUAmcIS?mu7zuQJ4iW7+qLWI#A+nFJkwf*s z=JvOdF9DIo&#uX(bXb?Nof08YO?B-7r^@=jqY0=|?R5@(2;|LaK^sv9cAQsjkvpX* z{vZ(4%ECB!pTboGR{ml`2vnI)%r_I*UJ#~vfTl$23cn{Jgw;n0mB&!R#0*=_prUJ>KUA@E90v9Mg(@jxl&WT|5YbAhDm9c8 zb+=~27gQw=!}t6jRn${?T;?CsoU~V>kcd<>yYMCfY=@OM8QOmiW|;S28mxv9CsbSZ zh@?f0UFWW-Q|?u!cQRhC6NZqe{9Hk>a1380hi|RN2MLrjAwt@O1P3J&$xugq z^lxL$a8rDfzooISLVE@VmrNPn66lG$?WIQyV@&Ovnm&~79tT0w2eN|#XdY)%(jhtT zEWyEf3R5esuU9uKm;EOxY3hhmNCk6{umkc==uKVWk{721`0U{gl>e4c*yw36t@^}E@Pya ztCg(*^`-vR>s126V1~}ipr7qixc;3@GYCesZw)#}UJ1!jz;5-H;G|v$j-TXQhyo;<&`H@(h(VJ#F)Wjpz<-N5@U0|1ggXs|x^^KUkqV;WES(6}=wE-JUd%v_U_`_8R zHA08rzV}Q#)`S#tcU@=}nC686x?>K>7V@&QmRY;DZ}kO>jhGWK3`w$r9!m%Z zQ)4wNeJ9QFuXt^4E-&+eui7?}%bGBIa~I#~IUz@4{Mn#3niDj*Hp)5@B81 zCpdw;U!*0@RLsQa-~T8YBuR9xgsowwqyCUtbZ0O@w0I40qLhXeGgiwqs1ys+Fv{pr z((F8c4RN}xQj3Sc-?+ozEVH-J+(Py{L+Nko_k+uU6P6bc(uKj6)P9ow%UaDpfpQ&% z8>?lxQU*Bwra^nNlgYdKW6VHk!gY zyS?(E(>%o&)qL^J^uJd}loA+}Nzz3~l&zAb8kb6{MVjU|4j0RDo=`xkcx+vJTO}x$ z)}n_PRKfEJ-SR?E%Kzibdx6vufl)z4+=)l%-A{+5gP!LI-pXg&ChkAO2mC`CzjyNhC=9VB(T@&>ER`0uSItlqi2&~^y|X(vE@9); zs7q|=w&>M+xf!=_oDuOa8(tuA`UZ{4C3J2gS-tS+Iw{=Q;A#-BV6+dZn+xXD%+(?m zwUXQWOxV&g!aBi7t0~HLsO;-j(vyTj#OCt;Y9om4FivyH#mh%tQ>;hy3I|VIixSK& zmLEMwy)|D=fk;vY$AXRX=vg|^h*-f5&r+Qe z#1lAmFB>;S%4*{(s?2p*2s$q(nZ~3hEDLsR)|axklvbhtp^Z{Kp(*puGGr-CgiQUf zPIN`F9$d(?wP|$L0{ZPZK7LZxy;tY`AHRh&NP)pWcE7dLdsFTnM1SNZR9RlRHDFM$ z;HqufaEBx|x6D}rzm9|lx;<_nzsW4wlVoC8(B)IlF)$D!;?XEg@$w9Mw6bzWOks*B zMurjy#XHBhd(%Yq>qSDuDRIRth*U;Uic$x8G)k6)mpq@%%$O-}b~N}DE7_;dV!77` zJsjQT&KO>ppak6rlq*&oD7W={o+})*i2(Q#Wj>Bg3Z`m?ZKK`&wMix%=+>5lq2I|Q@NuvmCB9xGv^$_=utrt;$ zyQpW_VUzF&KP`6iMPmV;%oM}G&-ep`$r3UkyV4~X(eW2H9-(JM-^jd?pm`n<(Dx}= zi3W|P$YeV&xm=zf3R#4V5euhDsWMq{`OL*h>B=gwqo}4&_l6NoKMdRlZ49O_^{(5_ zNl5T?PS>PVKHL)YJ>Xzs##vHKltOrWdM86|60WCjD?+V{@DAB)^g{F{Iq?T>IvgVWU-^P)Ee*m-yi=O`DvgOa)Ih2o_GImPt0af#^8YWTgmpaazL#a zn9ln^&j}_MfydFtd4)RPy?D{&ek%(d2DYW@Dz`82cc)U3i_6{)&fX4zD`(PS_opsF z;6{>Hu|`3a@;9KReWYBC+dD(sOV_Fy?j(4J=fnBlyPq`$;V5{qwB9C{k7}jK-$fEk zWPzvI7ab$%F*lj4=pk1LI5Dwl-*w|Xl! z{Ao0rf5S&`XZY6OVWB~DtDIPdfB5!DxgR)F=9n%blZ^crhNnyT^&HNx{ay5oZ91oe zv{xhmEhbmd{Qe1M&VvK}b<5H9R-moC56VMNS&GDM;{G-2L~{d+9jUT-acRFg!-?3BjG-l@-|94V2x&ja92kw@&0U^wqo}Ez zM~F~?YowLe;OPnnJ>v3!m)oJ?6!F?pzc9p$HIC27<-@Bu>*oQJ^qQi%q;A3wHhG2= z{X8)q)A_afYCnOC`K$+s?Unn@Y?}}57;2O|WM385NzaZ1chTcNv1m!cDQ;}+m}EofbwG4A$#V$6 z=lRS^d`WxSb^q40B3@~0Pv*pC`WG}|VT5l+NWC@9t8%}?R3F92>J`41F;3-SMhhV$SM$1V7w4M}SGnlZKy?6JI^4;a(!Z zzi1T7TGq0`xFwpT4l0>8Txiwl>Zl}bc?O;$Z0*v$tnI)7DIW)rwbQUT2;9nA%MM{` zB}9T-Mt{EI=Cld7Nt%V34J(BU<2g~7pVxwjbs6rJi$_NJFPWgHM@{t?EA3PMhU%We zDmcb!)uO=7wLdy~8at3JGHn-hYZep@4RNUYq`M?`ZuHBKu7)X$=OATj^FGDVVT~0` zSEPhnu=yUN#^o!H8zFXl82;`S{PjtJ;d4Q&rL8sdE$6@+HUx?hx#FNfrZ2P(`g=o= z`-f1F8zXk*f=!(UcYX8PA*idZikW)ow1$P5tQIlKO=MWxMZGd=2vK2ZMUw5z9&Trb z-{}qzLABf5+Hs{NWml$Nm|IUZy@^Z~ImAeKAu5Y>!64@Gsfr!j)90bXS$=h9N}N6z zmn9y@;~~?f03-SMbOZas;m`5v@KYFHrf&-i&+e|vHD8gZ+7zBJdhSNJjwQc|Zr`Z$ z`N!Hl{s-z;{6O>+l86jwD(T`O^XG)fcLirF_-}x%U1t~HAv3dC_4I;Cv<~3la95V_ zP3OE;fvE59+g)hXxcgRC_)-pEM8@sa}AD*(JYO`gM1-YO ziZmq02Tsuf@ZPB4m-{tz4eQ^rL{WzuYZ0gn3+wqbI*{6Xf;Ulxu{vIzxWR6)f0X_8 z{IG$eim&cOqnx^WY-b1wdi-aWMBO;^l_b1UPEhf6WH%lH%QTymn>|4{9G72MbOSmy zDvK4f%{JoE3;ftdclv+ zxVDRQ<^%$FK7aA9wkY4trAUGYtolashD3d%-#bn}W`&&TzQ6+Ci!4yI7R!F|7Czfx zx{|VqyC84HqIg;D?x~4a28G)wrXrkKtoW{l{wxcyr2%g?R9t)n9q?n~Hqkpy+8_Rs zd{({xcg?^q$4x#jP_WI($rqz=yB;m9`%-Bix4(2}Hd`dPa^G%uHZ=}n#SYl;g1)04tf2sJ1!#`oY`-=TW%J-*SUK!s6 zpYS@=XJdqZy8CBhty&Al3x0BR>Trd_HSnE{qOA+Z9I@gBIaWI?jCjR!1`w!fXsDb-=>Hn%FJV^O zj-3}i(~;6&BBv{__14K3`<=JnWlD;8OX;d4pw+5di_nd9yDcHz2u7=@`wHrbAG3jniy{%#P`|PJ8gg#EZc&-9M0r*A$Qu zym6KIL^UL8;qdi>U9ldHl)SAOS`trq-G;l6`YlM5jOrs>j%SBWMj2Q*s4cktn_xBX1tOGr^>?h6)#gL4phYmcrI4(7`l@itQEUym(l=eUbEqWpz}^I^AN z32=+*<+cCxNWCJq!#)9~2N<3{60)N))`26wI7BSY9nO(l-kUyJO`_;`RImS9Q9s|Q zT%b&JpAOP^PI(cItXH>QNr-;SU21lPNL;o^GjN$GUmOXcnH)-Wwr&x$Q<_BSo?YLv zQXX+dX#GjLSh6y=&V6avNaYHio8XUMJDQ!hA~l9#QK}cIRc4RYS#Ae3DwU@GE0$U9 zPg`WIR$joLu=vF%MSe0)LR(~2*iRC*|-Hj<|OR!i;814{ueT@nE64xSgoqq`< zP4B#%@bp$H*ofFfOUb)##_}QUv?cPl&LV|}%}c(nTlimQEn|aoUIed3;L_gXUr(J-6%2_<>pJ!sjL%VYG`2uk9rl2aX*f$E-4gj^4+_ zkXmK*yGh}Dp$dsqL3`mB`a<;p8EU-hEsL*g&@B8g}^Y>BEERo zrDH$a%v@SseAk>SyBFIjpiQ1++WgvBgK7?*_;c5CU6PTye83QmU+x=ZvV_?0Hhhja zAV{zlJzD)w+`%15d>=FrEh?8NhG)ByW(U1&$lceg3(QuN_ZbD@M~^grVQb;cQ)xfC zsWqJ7$;Fk;Gu_%2kQx6y(Nlu(WGCHsa%hvs@sJ^xucmy?QhV?&ESI`@%8prh2#%2| zdF|A|H`0isCjJMR&n%Va_plm@*?lrGc79VXN~CFv^7=^cGqcS{wqA*GSyFQp2zbZ# zx4{ItxH(t1FRz~af!d3d^vW)antUDoD*HOa=h5zY(oLyG)5xV;b-g3G)dS91YFOM( zo2M8S%rO@6I*GoQ1}P>rP(4f}zM)`urHDt>OBR*}A~mKU>t>p3igbIMU`G=Fvrvo8 zwIH^oV`ei9if7jjfn_vo^OGDWg2JVALVDGe0Y6m>ebssg)qyf131mjU*u*igR`H%K z;1Vu(&3g-&*V9PK$ji?6Yt#~XoZq$9+|D_`2NtxH!{c`UO!NK%D~AlP5mA|VFFB5F zJ(h-Q%Ce8L4_XX5<5oBV<*~8$*Z?$e52le&Emo=Gf~x1GE9)Y(YKSvh(D+-xkuQ8vG7+b=B7CG47ng&>i)%e5 z)?E`y-a#tWLioUeHSKqzhG1mUy?w;eGKQJ^M7Yk~%wp_!#Qg8g3WajCR@kNJ<7GWk z&q}2~sOJ~|rk)NHhbEBto{?r0-1>0lq|)S3xdf3e*`d|o0+&J^{DmT1#!S$~q1pmE z6+>9COhqG z4GVfFmgc`!Xoy7~-kT3nN3Lw&;3iQ41c0x)_ZHrQ6sZ%iLLqCrFc)Ky=vG>JOK2=+ z_r62&MApdW;v#DOzgV=NI5aHM6ksBjtc8o-C#JE4w z4neJi*2SO=_)V}l@Q^s*V_?o(SbkY<&_TSvtkA||>iYvUD6IB%=b|x-dT0`N2X2Cc z8>rv4(naWF?7Zb4*WVfMbdCBMBAPT`oersua=ar*u==>)e|2`0D`xr5ExqMEF*m zmozh3e(u!C8QpMNI9g5JWlW?czs9{^IXEoj@8~2Ovz$p>VFa{^yvBZo32DjMW5h#` zrL>$3bcq*4;ytEgzO5hMSBr->?=2^sGyFDxZnF7~VwyBX`S;2_3;zM;nK$k|d!~D? z{g`e~0(P2O3_BX0jtsyKLcm-8+_`8IA6%8`ZVRf zpZv(akFlc2L#wNJD^LG-Zwz!`Dd@8cKBze{q<=*lyIRtm?O5o`toqpeg5e`?P#X|G_DEkGAO+`rOFw+!=MuV)s^{@*;#(*M^b_i}#83=+QiX9x9u z&F+Od7gzH?t?Y(#`oH_$YlU9j9jcQO1!m60`AJrGF+jhQyJ1%#UR#fp_9AsO1t3E7 z566Z2X?-$iBJ)0()iH$MWNT=NW5QK*G^LutuMfvr`y}|LlT8u0b`OiRYY1v zur*aG5yiSXnxZ-oz7n)Fg7d?mH8LnD3mobt(D`qAHMB%B$FYv4#QBUn1IeNa-#q`F z>={WT9S(R<{_kY0s6w4|3fALB9Zj+6b4A?t6z4Hp5^uVQps7;r!A(?*z&dt*lO^Z^kFUd23>3koog zPb`N~A$`c<=su3{5fsO?3vc8_wS072U8uKva$k%*-UwHTZ1o&d8>mpMfOirb!D=R( z5G#C5K5RK<$k>M8+NpKGF4w;XJ9u`QVS0`>Y>?~fjvIPLuqHywlKWrtt2JL9KM>dP zM9T&;CPy6KCL9s3KzO?u<6H_sjBRgI-q~j`iTGgN2ZIpBDp?fk1llv?pdPl>pyarv zKcOQA9QuC(NcVAq0O2bXi|lzSy@1gmK%|14VY<^QhQtn;PmM#0Q9DMR++~_&)f`F+ zYqa>7F~6)~Ev+zI{{dHv0l|Z;15m;!TSNPhiTb{mZFmpelXjx{p|A=x7p+A;C6O6{ z&e}sI#hgI9f)*5qDbm&O1kzqx?HNrBL8zZPOowa<=P|nP^_PycvHnAwneA{)|2xyv zS#n>C?jY|3in>*Bl^fd4h?Otaxgd`_P50T*<}zcLtWB7!U5eUzrnr8FF!Oxwll1Sx zfDsF@4;)i`L(qH@2|F4%rraC zq8>702HsN)&%%l!-%n9A4GXv}5A&#}n8Qx^lW7dkH`K=-HKU3>V4Y}Iaa;ca@EtxC8QYH@K zG|bZ(ae6S=zi0$(1P#ewXQdn^{0?wOgIP@`iLuq%RU>l)G#o%m9oVe+M_1vl%1L|h zU70i@$SsiNSW@wnuBQ9dT+Q)aS{(#^PpLw0r*qQ`csJV~eHy6yglad!tvXAqTA#Qf zjME&swZGFa`m-9k8nQt1sU1tLN#NCvSmKEroh&5{=~cn1+VG4z=rUpE3<-<&1F5w_kFR5UP;+qOomrb(V@ro zjT_L0H>`$WC#1T=O(h*@mb}JNlk0<@48tEh2xbygBq0HM>c(f;+RaWO=FL?)mK998 zErXCP2kYLCq&+xQ2c&Y#%n`6K`>&|cnk^G-v&Q8{SCl$L1dZ|hF>Jf)UBC*;X)|MS z2hY+f?&uY0Kyo>c*}+Ogwvp76o+loShCZE>*G<>)@btl)j^qcAm?e(0x%phX_`nT1 z=;u4TWYj@*;~>Q1?_MkHAv)#RVF9%0{**5T+@NJ9i#wrMPrFV`?{g5nFpB&gzOLbV zo`PFW@TVY-VOb>jn!@#=SwBdReBY4>={u~0UR#2fD5Gufd{-RcNISqHR?%V&%2j1M zsE~+z8~$>LKv>4nnuO*Itcisjp|UumpY%TADntwIRo+QEEZ_z0IP6gTKz{dLMsgZP zZr;#_bP)Rv?^i^LBSQ0a&<*G5-`EktVXnscX#;!;1MbQRjuen+yh9h$58{u@lNKUE z;V`h7q?i7koP?`_*TiIUt-k7YH>lfZCkC}1!)s?WZ99w=4g0A5b+Bjjb(~!v>>)23 z!Y2^1eU59kD7G91ViT~!)Z`rTKitDMA!L^xqpisew`FGZjN%&fpU=Kor8CWN4eyLC zFbUQ`*84Y(fz7U1OT^YzChtV)b{W1#9Ro3zb{h&z8ZwqMB9<&Ern$p$E8-au)Hji9 z2@(PoISLHt2m~|sObG@XGt@~J8O&6 zj}W3wABRdVtXFYjN)-tjOlyXB2o5kh*jrQ#5-dynqYx7M=<`f) zhR11HBFE4t)9}mUIJEq;6T?siLzNdY&6kbNWX&w`ea6S5FH<3DPK@%T>C?q2WCxei zo@j9(Icfx?`8@Gm7)%86NhON0zzH;rM}$r_wW5y%>O|-@gj5LmDOeIDhhBm#6Q{fIFm|12A|4@h8MuAuO!_nvDmb|rzL79~dbIC%MvVNU!FqDkj%mno^! zqBME%%~#-QOhT-=^M*7GQ!r%7)EpaXsLae?CGkga4aq5gD%JpSCPEep*WMevJ=w4) zLpr_h3O#M<%X=0Ib2Q% z0jtyA9Mrl?gK!3QW99_bMTtRYRdO2;1A!{gL=pr6zTg&w0Fc|cVJj!gW}yZIEY@^A zsp9*i}z=fthTljER>D7$EDYf`OA&6GUh5FZPm3`8j~}dsy3-mpTs%e zdyoWd8w5gJ{_2IC7zCem`b|QZLBfcwE?{nAT!-#~=4Q?uiF7wVO38#*?U~i>Ocy6m z@59%a6h-XQ%M(Jx69+%n07S<|x+MgH#~eDvLL1i-Oea17h_i=&PB z>}{%?Y&QuX_ins?0zJzA5Ar;t|GuXaw(p-h!G?=G1pvCdhCz2*423-bn-e7{f^eP( zUqHVLMW#vNxu>Y?BUm@LJd53+$GwaFhnK)#kX|BT<`}=3 z8&M~3Ck2o9%hT&YSO8}_E4+^*&ZcJD+AYG zZvNi`v7j62<>?WWQOrPhA2ZODEo=+p;TPeM^jy50oMB;v8}PG24dC2bd(d1tZz9~} z;pO8h2Ww1JkjVh)!oj6N-s0)w?cz2F3wxKl#|+1|HAb6=<6pTB@Wg{Qm|@(|pF%k0 zMiz zil3e5X>i(qrrL{JiRM^=CUKN~!K=bzFa^QU34#g`wr=&?FFD%HNamn&44mUsyxv+011 zY1(OPAez$_rr-S;fjzkhp8)pTo!P4!bMPOaIXLU(%gaN+4}UJAL-orCcHfOTL{BdA zCqV4hnf2!@Yj@-X;$Z#lt7`Y9F>q%F_Irev2E-S2#<$Q<24~zK(7fkie=dB>di%oh zJp9AI0S#fyg%4@E>+RRtl}DsSF!I@X6cRFb?-AXjttSFOv-A9aSbN7HPlM-AusLnp z)3$Bv+qP}np0;hdAPjDlKP`eM?NV-B43EL(lVquIXk8}mY{ z|6GIude?x|wSdo+dbuFg#eu2u>c&BrEc{h)>ZU=fB7rKY^&i2jcKunA>P&%_ru<#_ z^?5hO(;@>{^}(<67toS=?>InI(*$USQVMS3!%OXc-5CbD|8(h=n|a23%CA%!~$KS>h(ma z+k&W?0Xp~U9S8oBdW}z3pB$kARWCL8j$Q(L5OkW2-0VGR#|8YVTJ`@q8qxw+nE_kz z>UV*v=YlM?{EXxZk(DEmid6SYpB1F)$=@1F9}cX_!9N*X-3jO%zt(K#Xr`%-@AfzX`0W#-A0at_1jJ`j0^Ryx{6TGZXH8 zL$31;LDPq>s|ULPssvT#?X?6~-vqKk%#->>2~%eaQ6&y!#i?HnT-5@6PW)fhhv*06 zZ`U2>Us^a!K7Pjlt4{${((1c>$0xG|$Ex7h6+E}t`m;jTk^Ski@qdKW=S7Io2CeGy ze>Nz~U+$E~XXRmJPIgi`kbKBwx<0OoT8T4L(;#H!l@s>=3%B-O_Yp|(d&i%tx} zv2WNR+Yst)2dfMD&w6CQtG56z3H54*3`;?KL?K)3H^q28^|a-wv{9y5+Q;EkT*7w>a+S^uqlIt1I35Mn`_0dI9N17QUoQ(TH}~D zpil%cLIdAoKM1kUg8aBkFQJdgn&TX#E{Y8aD%&F=UQ@l$hl>PAH0HxQ?>p+Fxy$&& z*<`q(Y9m7-#6#+AL}<6yNEAg%V-lmZB0{P*Tym4IID{QQ_qig`(^nn+UIFGB>_Y`1 zgRk4YWe8T6m+w_shqtg8jO2|fpX${gOTfdmupq)OKwbgdr|F0&=OxV7B_NjoKm%uI zXXoBLp`l9RP|oB7T%gQh80NPOv+Ke>cgLbEJ(oQJN|fiHJ(&TN0BS zFP!#P;L?0%SUz#Aj<7 z1PCZ^q~4(I4U_&edeQ_$Og1OM5Y1$eWx#|)<^(EfMB-|>u_PmDj4WLO1ZwYZH6Ml; z&0%0eFP|VSYdLTMcX3}hNrnwyf<#6$ePlAi&ICuc@M^O)IIOv+f^XLpPVM%=;n`;l zB7LNRzfNvYBHmusYux)ZfSCbImKW{@Wo*Cu_?TCVg*p53REz|M;?D(CM-1S=Cj({; zfLs_=#}slIzXxW6n2@~p2mnI52bqNorXeC?g7&pw2@@+6hW>34crYam4y6QwRW?d- zNZJ0)G885jV8JqN4r-YjqA)E-CG;qXKV#3q!X=Gz7J&=4K9Fc`DV7oM87H5w3=c{C zSct333IHjM;ms16IU<>*K#XQ$Bb!>UBlDn}OEnz)#|eR%nMfiK0$ygWm7P{4yGS_- zRW=@qQs+ccH)L?U*ZQ;zR15SNCIImZO5jm@6BM6`6ub$S8!8HgKcc$!dyF2;z7A+x z)F_5c zfW%YgS%G0<0S|d^=h{aJF4hN9?6n%*@CXCl!|q740OrkqLAgZFDbP@x8KYvav2X!O z6QK~ZPh5}%P2?#MlR*|^v4s4gp=O5%g7DGFS_29~Cq$L1g*ik+xCxQj_}~-;pWpMyS-pl z(VWt2z&IDpz$oH?a%UurP+2Dlln|KFq@(KcNdgk#3c$&eWJ6B9OYkob;H?E1I${$2 zv$Jmq^L(MPO7fa2lSXtL0oRe<^v2xKFW&t^o17D@TIr#O5tT*q{)zA=mk`A2cbMb@?_c_FZ z&;?7DAHSm3v4GzbFUEttF!xq6P!0^Npcudq&ztV z2V0Ddj+f|N0G})W#kR2XOw$e|QVJs|q@NQ__A9YZ+N89;Yh`C7Qa1RMMU*1>bO@|k zhJ+q56P1t)u4Eyg5P0COvMz*k7&lmc>aGJDrwRPf3*Ef~Q95^#beWXhoW*<*eGNV0 z*H*|y$OZKSwKEquOH^>%ubLi%5*9!?_?Ib($T(1qV8DqoUufd6{fgge`)awg5+shG z!edb$G)7VHAC?-uhkQYsMiiXia0xj9Ml%Vpb@%RdQ!+!-rPD(pqJ>G_)JEnQC?d&Y zKMp|(`k3tCK1@JGsH2c~Ah~%kf3``?3))7EcsCfv7p8*<>cJiAb`Z`Cl};H{Ud-gG zj$>v}9LehHMy17_P*Mkv;2!p`Mu%&V9%yEb=HMg6io&TS7RlNtMj5NF>5g^_9{5#51h%FsrU6E5M)>Ry>;3!5-&Y^HnTC>^9t*U zxSbiJs5sbV4zDbnZyu#BOz(H|xL^XFeYH%5+{QipzALk>$_=7fE1gTf7CV9Vn~Gyn zXKG^p+Ig^AV>eev*&dpk7=2WEuA8JgE|U^fmeRqbyzac063tOK8}A(63@}wc6kaw# z@Sv0AXlMA@0JNlP6=(agx*omWH#>FS)kkb!Wj#=?P#E8-Cd~Y2DWjz37<4~47^Hu1 zyS-(&tpkce|6IYI>R~b1GIo*ox1ldN%EN|2=p6ipi2=ce5+3xYJNyUf93)l%gh7rx z=FUSDi;qeqfjo$TpSqebNfpxv-bj1z<1SJ*|6WbM_a`Suq)rqaO@ml9N@G-d@i&NJ z#WtKF-X%dqceE+N=?tq>R07=Fa83__Ffx*OB+3w2Q)3gX3!K^6$?5sYIZ;HJGTI*& zqA}F#!zy(r3+ToJjYgdz@k4dA>aBqNFltSKc>P%a5SS{MDkhqr3+^|u(65JKyMuB4 zhZF0qjt0gCV5}R1oxWZVwY+I=n7Q2G6N^7WVec==0}Oree+AKFj*+xOplZWkUS9NA zcL_e_Oh$;DlQdvMMj$!B-parC6zrnBy4M(+Nsi9?oVd_kGp@`gxojF#Q#$YfI*%EA zpNcIGUuK5ldRvOO0UK~BLsn@QO^-IZEh=y-%QIaGBl4|kZHIrZQZ zUn#XX&a1GBZhnYfBVF`xQEc+R{q`OBfkqox&1#=&bB)?a-J?{k-fkxeB~oi;r)DZ< z;~@773#@>LCv|`5)^0h9EvO`|jnO4aG=7(Bf^A&x_Iq6w+kR;}NG$d(EnTuUM+(Qz z*3_!k_mdP=igVE`^7|6H8wWCBZw;<$_X{^l2z`FQK1?Zi{t8QMc&kFp~c~ zeKC6j>7F;q_q$UIJ91ftT*;Hg44*ZV(x=8=p|xoW0Cl&Y!rhb(t?;(%ujxu(tdirrI3whTYZr)`*jN(}ZQn-b zrqONtH&*Mxeg~YDG?n#zkjP>5B{BoBJK-S4moHYRF&S0ZKBO}^_CXXcnI2F& zA&9w*0SFZtC{oVJy9gM<*9YRRW~jE^!4rn(%a4gWw$pstS)w~_|6YfL_&|53wO7?e zozE;T{`{uu{{&tAE3u}Fsu>>Fj3&AMr|3|YLL4QwsF-kgUuIWda+u$G+#sIyX()OX z1~<#>{T0H!7CQPLYy_O}k&N;PAs4hJ;4Tg>%@o}5ny|_rx2_!H%~X(Rl=FV8>^9fE zRzgYgi=Gh!Q=QGVcgpuIgKO*|=pNp!)V|CswxJo}JZfrorCa6Uwc+gOtaBJYdoQN( zJ{wy8AKqqI{c(A?)_(5(RhQR4*9BRFdN+gWj))8WCj|oWNC7}>dA!gTLjv7DbB^m9 z(0u0cg(ZQx4q>+INu;P{=zIc`gU0n(ORZk!f@m@sx9mcwuiUMSpm zYsod9nC}6N)BdQ>_1amfRVP7HLCVUUISV25Lf+y z^=Yv=wO)B`=rsoZw7ZY;pm)pl>Ox<7(XWZ9fAb}uYKO^M%iewElkJwSg_>I>3XVIA zIm**XqDvaP$h@IS`zcKvz<_p9AeLbb5N-ZvZ{m^$bYNd9LbulVYO?LKV|s4 zik(#6a`?|TH|MP?380QluX7$NK5Xt6JJ2Qqd(b73cZe$j7^j+_%m`3)T57*O`p2G( zc;@)Jx@C5BrZZm`(feBQ(UyZK&pcI@V-`M-4J+5-} zmugenG8=o*!_4-OVt_-3C+F+pdSeCn8u&G|`5zk<5{a_yu*VS>QXSFLCC*)&7(<_M zcwg@62!{QLf?zKrqQjcACTo_;)3(Nc1(Q1~*eI@kHVV0bC0h0l)NoK5N(M+NN3zAp zkpbA011tNg?@%wLvCtiPYWU&r$E_rA?gX&mDM}DqIgJ~hJS}4TexMg-xrg>*7M_pD z_u1I9JrFN=8_DPQ2RdJw*ihstviHgC>NST;;amDU6#%V0$#w1Ju~~O2`hrkz7jA2& zFu!vnOA}n<1`-GggddGWhfb0!ie$%^-6^YO81%EQ(AB#~1H-pD1Hyhss(u-9#fIS> zo#58bW1MzYb}~)Y8Ymibiu?9$&X6LVWzHahqj`e{;*Nxu}QDmV3_1mt?d$H{?C3U=Vzb0bHhnvRiw_T>j0ZafpzHA)!@C}muiLH60N==E#5t3b zd?$GueI`)dC%!bBv&-0ka5N_>lgGFrKi0!x zKc>=UMm7spUXLbA;mPH=^EL3mRhbHUVCX4frN(mX$;?mGuz{a7lz()t(=f3 zoM_9*sS*ZtGJ43H9v50#D7#PX{Vsyl#QJ$>S?MoZ#=zk#0)j+(7z+FZtgOYh8s?j; zrgyCvf(cF?Oi_N9E#+*_$+kt4mOi#2@Uxt|h%33!CS%VjUJ_B~GQX_U@1M}EF-u#S zS=RZlg}}tNdEN4lKcx!=jRgqplru^xTJYBFs8R`#oP~4Q$2bWue*MGN76Gt{{D|ElD9v1s^@^ty!yoG8Z3i8mmAAI&jm+#5E zJ|<*4)ok0yX)-iQsp;};tQu+C-kOyEW8Yjw$rhF;;-Hk$<<`oSZoz^_vCjHdv?8>btl#b zKz~wGK9QEN*P|u`FfGe;^v~%E5nSd*b38Z&{(K z9@1cphLptFX1G(hb68@fP4-ZoKUk6ZQnbOTM0l3ntkLvH!GdgZadUT9p<6@4#5C}@ z@ZGWx7BAVXY#=UmD4k~!oQ0ao`sjBB;@_SdeHRIu~1vnWI~;iRp8`ZcgDj2!~piRUsAiC`$u%DMV|x7|X!Nl4K1(g>{R)go@Ro z;V5*Cp7^?kU$1!Fz{XC(a=Fo=K}GJQu}asmEV+u-i-~TFgbpi_&QOA)2TxvC;f#G#&8WJ-tX^lfbI>dKDROflHfU?grk-)a)QPw&@Y|rlr1g@Q- zI+_8tv9Zy)Z>KEUzG2P$iJ#{OG-d8W|3MKs|Bf@)#|BP04;YMx=jWYpnEk>Gcxlrv2#S(7q5PJO8 zGXUN})5`bCKIRZm{}Nj1kjsS2Wi^RY$b*aZ2F?8{mr%c&vi%PaJV36 zs;v}`75BL_3>Lk!=I3Y=I#df@6yO1FiC&f=DOc*rhFt}3_8 z@4Np`Gm>xO=3KM-0(NjfcfWk*G!rAoR{Ps}-NAjgxT4Ik+$2CZHnhcBHI5x$!7@gY zZQZ2p%ybhvTf89sSsb2{wA3E|s=?in&C^x<4*F;)CIPi;*^^C}c_21|>q!me7DCGq ze*J9ZXyUXk2tsr#w;{pTsmRYPpd(R8p*ps=a%4{V_C&tCO$qI(R5O zNctARgGBrMc@-BIc}rAQH@Tb3VO(fpVX1lO+7J`O-q~zr;z1z^(o{ z93qHyJ;QQY|2Eu7afptu+fL5bFnG)36q~JGVPrUaB^#`e8VonAZP?}0LfjRXcKRS8 za*V7#&Ba8Tp&_q5usowSXcK-&8mgH3*)NNpt+UDr5ml6IL)tNa8lip2zd2w=eo;yf z9cui!r&4KwiGA`LWvux|d>HgA8*MtcUusxDm+Pwb^w1S-n$%F3lgt@b>Nv7t=J`#t{fcmlDj6PU-7Udh1iQt^l*6F+ zGW20c(S7w~zK?OZ7E1JQdrD>MwjATzcw%%jXXbIP&CQ17Fxk z8heDr+8T8E82u@{pOpQt3fnGg9 z6@A7M76r4+V?kem&hB=Sj%tXybUl@?+m(os-;v{cmz(YSph|0-yd3zz5v3$Vr?8Qj zMXGKlI3`5wMj2y+tmIf_J0s8YDrflFofcUrX3RNNr2}hKKda&$aykyN_&b%YT;de! z=s&9-^LvwL%*){Ex(eH!NxHuKu2t@9H#rYZ4wvq~n!a|{7xi%|K4f-^(3opu$?UpS zCHw<}pyoT#~rq4C|*%{bfj{qRVlmIV@oM2B~gO{rO&h*&pYKrn7Fu%K@% z{fjpN-#%_@!Bi~v7RJa9C5ZUsk*WU8u--SP*VJ@>FEM_C(_V9ebq{-}B(x%n7$X(G z1_oI4zJIdx<05(b64B$N6VXoUU;~pjHaQ~=`s@J(x&eiYNA=VWAnFfW&t6*a0H550 zW54w7l5O_|%!&;^kzXF5Q+UaW!<^izjO0^?qfmRE^uyQqhse)by59j8gYLiEi}lHk zzBICoe#C8>E}wT?cOT3y(>Xyh^X7D&c<%7XLAM>*47|;nm9}ihDQ@wLL3-moI^0S% z$hk&qTup${#&pu6Jjil(*(yK%xRRgbcZnNB-woAA3d(gtMpKPP^pEJ(y0)P;jB_v+ z@~}UX_JKXi#!FMGY=Vva{I@#IPqPMa%6`_qdGq6}GOL3L28rew;%7hSHl6Tm|J&6w zH|c{x()dbN?ITE8|Ef=;((V4H2oiCoz}E+q5v>WEl9kZ~_%92*SEaew1X^~vwa@=t?6y{~$?oJ<0rmpcvJAk3XuPN0Y zt)rLfu4H{%Soie5pVp*E9?Q1jaeSUSRmz!hW1d$XWoI>WO1TTVYU@s}-k6>L>PL`i zvvpW}*)om>rp^t-6I6&mKd;x5HbcOySY7RmS|yBAGO?ppe576edid+srBFeI%lM5@ z5g~MJvt*a1>q+T5ygr|gv_7h($F{xhtA4!}kLM-+%Pt`nuS&)j7em?H#QRZrd@<+g zCdP8@>qdL5`gMVOTF$2Cw9kgA^L;gx=5j4v*a((h0fW4P;tHjO^rBv8ZFyMRinHiZbwf`2guWPK>3vE*aCyP+eYZusD$a9^f zw%Dz%DxZZ;$HOgOy!cFnk<-0}*Vk%ZnnsW(~ zwb1aXO*b^6FyW0~dcN)l53ab|b%fQ1Ol;n==hbUTW3F8o8;V2^OoA@6lpWv4oz1MK z=g*IZJaH<~!J(n(wPlUEI<&~K)ZG|XcstvJ9X$XmW0_~n-W_ymHA}3XARG73{Wf&?dIVPR@=d1~&gi+8J8HK{IkPGyi7z{a-W>551U$wX=yM zy_mIuvx$g_k)5##y|js~nX~zCCMI@1J~-(A-rhY+Cr-w4kO4OMnJ+kHVQ5FX{e%o` zjS^JjA+&_o--x>0fCy(uuQvI_8QkZ7D`Mm#sP|2D+rie z?o2u0p6ybn?b5nn9^`pF!T!n|w!%WdFRYbhYv<;q-`@?;^H=zZrEm9qLu$L0QP)8X zAYa}L9$Esr=C(~VsQsaIn}Ll(yWsC=2$`}B=|3T-cuTZ| z_tNV{hBdo^y>35uWH+6EE)Lh%=@Z)>!S&P)2bA0tf{tKv?pjK)j7qN`K(P3BEdM)w zvHbti7b_DR1IvF?9^-FDW=>X4rvFue7d{Z~%0q8o?8nwp8ub=Ghrtd5Ng#F-XQ6nS zqS+#_`X7fKXhG1RIG_RvRPboSwx^g)>at955`AHM*P*T2h-Jq|swY>$(d+E{%OE0k z+xzS9Rr>dw=WILEZf3K!^c#^>FeFZUMg@<)laIYvf{T_vgQ;W%vZvsMu@hcI&5vZr zxd$leEpj<2o8N1pPOd274GNW=mcF8&Bh+Tn#1+Eb!4)Yi?JY|^Y+)xyTuD84vY#8T zrCrqsgq8x`o7^o|2b?Yw{LM(4bCD;HM{5}oXP^9AuS|QQ#9KR>92ah`$+rqQo{Q6V z+DmTceb`0(L|hJHoBb6L<2as63F}ZMw&Y}eH1D+dHy%#5c;7RK`I_LwnEtRBqTHQ6C$1p1*L_Xj7+KYSKCf&Lp>Octw(%ge;v6-zdf-^_`GD zZa&bXdVf-~{hAy5YBhOxcI~8R@)nAE-?90QGugduPKL6X$1i#xo2C}%;bZ@CB)lMQ zGlJUQ=ltv6C&^Yl=;Kf+KLO0^U-5|rSG=~Gp+E1s&IddTcr3@qS8lDRvAAJ{*L+n3 zWDBjtOO(YmJ%{+AnI2Jf`Bbe)2SzW5WAq7Rt^=Tt^-7k5+C9 zYlMvaMJ!4S`Q5}@I3|;~Nv7EX7AebqZ6CFi_leETpU$wwr^`yu+sNYU0AtTUPwL)jhPlCB+L+#AA7;M` zXz`wLM2<5uZ+v<2&5EzTQ{BGG)9Lb8*OU(C_=^E~qX(r|ZTm=9B_n#O zrFq^?gHeYF{*G=nfLZ^JHT67c`CK2FlYZyU_LF$~={0o2>1*!3jy>%Q1x^$m1&Q$Y)`#6md>d_AxBGUx!uwyw|9|!N-=z94?)qG{ z&-(S|pZ|#4Gj{OJFAm{(!>$*OUKA9+L^=N=_B%1|+irF4fVkndOT+a{7VDsx1{>Or zP^QQ*L;P`3Lh965Q`~J{Y>n!z*t8g4=CO@<1K!Qet;?&egY@&XtHgDGy&7@AX7EJV zhuctD9*@;|5E7qItk8?p5YaH~$!@OsmlAHxa})o1cjc$oBOI4uXWF7}F>e9J8L`DI zxz)kURnE0ax7yp**|RE2mlKV`iB`85zOxBVRI~J3Fg^}sRB~5I>@xi_&I59OIOZ-Q zWkKc%X-OCpqY@3OjA6Js;WW~5ILwfWVd|K5eOeV+CS^aWMFf**=0%BY3Fa=EhGEnw z63Qr1H*4eH4!jVn9Kh~1i!UPCc(+pxffd*0Sse~hVm6QHkK+}e! z>HbaP>H}#=B+Kl=G2RA{Ok0D92P+t%zs0-%5E`#j1yG%&$>aZ4>}7?WgX0M$^b9y= z8br0H6&}6j&KO}hlEM?F0h_p{(*oKA(;Y>m?tO&iEG!EkoCc*g4TI^6hBa!YH5ug$ z)fx6@d|nFv{r)5yGN&e}PyB$eQw{s+wRnmFl0(iKX|N89KVD}8@s7zh=qAo^abnjJ zNVwn8!F<5uvdrv!0b<+u14ZYF;7%%h0m2SSi>bt{@U{TUymv(!((8VW1{=V3`47`k z_Ua!Nk+|>nZ(-@1N8L(_ld<{6nGL~dJb){aCV1tV)2CfpOl|ErYo`R054TP%*oJQ1z?7h`b3{5dyw9a_Al%sb7VOG7=Wgz%-> z_q7rf`3%L`3H2<5)@Oxy^fWW9C)#ZIDny88wUzrV*j2a!4cel4?#obnFCbLL;Xzriwk=UFnjy-sS+*ysx+#BXGuWg{FTd}K}BDKR=~Y(=`-*DcX7a};?aYUK*2L!~3=-kfh8lovhMPnT64#`({_ zCH!a!GS{gR$-=VCm>B@ja|%VEO&x-V4tl>0d`I93=&3R`Vj=8y5DlN3XMjnxWDLFG zqqJ9>cy+V1u#xg8-{37{KBD3y`prX3ndc!^FqCp4P*iH_{Ck{P^UbN4KlKy+w8ii! zavCI%mVGnD5rNIHDh=5YTGy%__SDwOj-F1^Yq+h018**WMhy z8W2178UpZGa&eXBF&PFbR3iwl>btSRx$70=wKco@tSr|!gX=gue$MaFaHrB(fEK(P zSc%uW@f!T|8l0O{wZe-w_bA2ZS@*SZD0RR$}N7U zV52h>uCp^uE{mH>IZZH`9OF}cAv!VyT0*S_v3sOZDC6x!V+4vURq?bx8hr^T8fy+qryz(U#NJk_4NGte9H*8h4=u3KCVBxw zznT8(kMF%)*RqlVaqO(q0aW{NnO4{lb{BCWCk&7J1gkxcPk7A0k{Ttw3hkXgU&BUZ zPMA%&l>>rJA36_;9fFeBzuQB1l`-~&b<8tpa>bJ%2PTz>AJ{4)9rOdz-&)Mu>s$*N zzP(1?=$>tLQ(+M)GPF?A3ZhYuBtt}Y0_O>V(yup$mKxz}rOxTR@SEoYRgU9pSN^Kn z$k_OWUmP0$%6~;w_8D~w3!PW)+Z1jIGiRMF6u#X$&Wg({;4kAB<2qWz2EWjb&u#tg zdE$Cexv?Vj1^-}rA-##*!RVa{BmmL&0ecpWS1k^~Jf6u6fE*E`iK<)1DqL?WnA zMo%H=m39|knTOO0#!z?xI@*DS1m4!f%q~h2ev3J)0?5iAJO!{&|5XfMNK(%qEC*y2 z3_6m^sv4#vOC_rph$JFM187tY0R)8|K zLa|6OG8!O>no%oU12Cy<7=pZzOrcbu9F9yXE5GMX`T;0@dLo9p?@Ss>wii`y)qMj3mibdW`mQd=i z4w4GD1r$-usX&z?Qvyh+cN0CNB&DFum02l9LJO6g!M;6lYP7WrFw4}!E?ZI7F@TV)T2v|DwL znzUPa4~CRaZI7AMmHM_EIhW!Vfs{{mkC^nUW-t`soj3Rn=qw%FPI6ZZ*8y}E4z2?_ ziwE_R-Ic=GliYQ}my_I8!qt-8HNsPq+!ewxlH7H}kCWV0!?OWAg@X$Kp5nno08jql zK7glWun@pgFbGfjRWLXJ;3*n(CB;|X117yv+v6j>QZdX#)=D;4GK@rirueH7E(5Su zCMpxDMELgCPW%ueZ0h|Es$S2p~oR5siy zxm7H@GWqAzr%rAa3ZF=Bl@6CmZWRfSOnym3#-Mb_N5-IV=tj0m=8y|_N;X&6!zG}XUUnb*f3o0zNOTG5vW9flNW5qvUbYY;Uy7G6%Po}c8pL%O))}qXXkqrN zBiea)689nnk}FWD6ruwTl-0?Sbity}b}kPsi!1pQwd7Em970JvAO&3MUO*~6g@M&U zm$($2nYGSIfx(5PEXRUy0fdezw>;*wNPih*HeC8X%`*LnX$s193gVxAMMil>|SS{#N6^U3+x5u5~31H>BMw0Mj2zS7z>bvmpmt2 zbKHfMJSQG=SS5p5PGDt3XMBipvvDKrDUZU|oLI`#^JrtP6brCa+-a7mN(7T}1MGg5 zGz&xsoKY74!Uwank;T+N6J`^KE7V3NX`alFhG%2>%xUwSrU+yRN^bDk!v{y6 zbS1XZ<;%+ zr)JG4k2oVQ{A|ZoUD^e0+g02e-2vq((#kZdbgH!RbW`T3z0jO7+RQ$dY=ZVE;ncfm zK$`5%5&jJOol}xwiG{RMdc+?nzS$)GKb->y`hT*v68}I|3ZMi+`3Q_S#6wB%2SRaR zggInkPq2h!2loXn2!QtmvF3f~_XFg08S=4MxG>cqv4;+f#!axXq6Xe|a3{)<`c@QY z?Mn>$)Hzv0m=3{=M*Ks-jHCnt1OJ-j31+d!SqLz&p)BS~J;4l*L!9G8C0j9PQbtxj z?{XV6d2p^UN_TOp)0gB(V@aR(sjo`$rt#o5aF0mu>)Xcc8J-P4DyFwHai%M#B?QK# z=N07{p_fU`GU6q(k6b;nIcB3Go5vj?t~N#x_m+@@P^)~XAp>+idD<-!ZW19Ktr#eBnSlY8w6{U&)ro=4D&Uyikj#dDhKFr56 zP-c7!ln2f(3`n&AP%HPD@v@G>gpQk7_SqU@Q-2fR8Ot(WZ*IVPz`DOyfL6gD3?1OgvH?9+_0IR%Ov8qbMbHHFbNcTj*guhgPlz(IZfBu$en47@?$uf9+ zqRz4Sv`ck#=a7r;flW=rgY$B_XN*cb^=b5_Sd-2wcf-K!^?;Hfz{u^V1~`PSz%LUpFh9 ztN1R_w~*iGTksdS)6u(}2Z3*Sj z$Tde@+uYukan*r4k(kcnEPVn2O(3eh0 zdQfXzL>J1MHH(W-FPn*{Ko*`vE?I4NLB0Rs1<>n6NopgsgKzomF;oE9>ocj?TUC=4 zrOQK*z*%ELUbn5z*~vUqfN8l8pKyzm429xZc2ldx-_)}!+4&$>#m^{$>MdvxM<8PY;0{F zo#4W9FRcM%06V#1?md+4){A{7*6zcNw{WeAxm;5VJPSAro&}UTV8I`)x4f6K*Kx;K zAFB>k9fSoqy4O%2Ngja)3?1k`fNO_jM?@cA9%d5!2#8gHRUTX!1WkaG0VfT763i56 zA%H0ll>%56CPL4`>wP&VR0#q8H)- zggC$`0IAnrACm!f6gUJZFhHiata^0L5?QFd%Dxv^pTu zUX}_xHN06MU_=#|mqA~Bf*ayGj1|xilo#L^{1^Ba^p{^R*e}p8$S)u-xG%6PaNf|~ zARnMFm@kko+&6?bz&Ct1_&4l3I{Fwl@HcEX=r?LR|IIq>sO+HanCy`5i0**zcfa#editL*Rek}F^#6ONIZz!0ZD@lD8)ByNYI1I7A9k+FPy>(Q<~0DaV1Xo zmsRICoMz?9WH01vo@jF+?0fU+*eiEE#VrQEw1s^Iz1l`+hAQ}i@FOOGJ6)3`p4 z)N}L#y-2SLJJj>^F|PaQIrIC}iAE8bx1pb}p;5-v@dP{K_5$V zL@|z#8!$?n=sf(|zTiMf;i5>>-zb4LwSTA20QcJWhPihCjqRV48N23U{RQlDI$3Eb zO{7V5dEhK>$$ezUIi)iV6Pq_D=I7h`SRcR{L?bs&F*Xt+&lh9T>|0V&ay?rHS=Q>Y zIUhSwRL)IuB`8isLSu!%Gy z4={I2iAk_q%v#r^xIQD&9n+?#kH|{3>Q;+xwpn`(8QpzCT|xIZtg)$yom1m%wz$;J ziK(&HeQ%mO?fJ^wX>XpXZto?!W%!KT9{LrLHqB(Qv~^2LK4y5@xZ`8u9j2&wM{H-C zH7+)~SN@EBs}sA*7+n(+Io7_3=<^LkCV}4XMqbLH?`6;XQd~(6G129Skrz8INzu5t zqi|`{vV6T#5`D-|^dUbnF)C9Q&Xk2SW#LR&I8zqR+=gHFsD1lpXv!GS*8b5(lmvgV zF($-zgTLDtZSY4Mqa?kE|c5+57hG zlARrym6Vhc>V}k1H>8BRAtlreDWPsiK{xoi_2?HJ9VzE%q@1IXa*jquqEuuOibQVH zV&xq5CCf?LV{lPaQWtx6Qok&Vt5=cBALlpA9?Q**>oPQUK(5GEGp&E@07r+49eQl` zfB~@s`t_ZOt>uU@k`4qxSEhILoJVxhrRpg>hjgdhEV_sR0^5j`i59Od!Ij)4E#9W> zAD~AirY0nIONi3;j}hqL&=^=kV_*r5fh9Bs7TLkE*aVOlYl)N7FtsS!n1=mDw)ab;4eF=OV)tP5q-PLzj-}j}y)M~Z5rEVRqt6NuhtJShB30v|ZUpm01j0H9^*bavc z1`;MAi6QGOGt2BSNp?4r#I}r;kR7tWH6+epmf4?^9VUc{v%her2+RxwgDvlSuc}(D z!^V(B&_{LEtE%t+egE%x-zzkP4BttqtYNp!Z`CVh{|Gr#z4S`S8u&%eXSwT6c+L@PUl@pX*I5^yHb*-lzwW;J9(jaHV2#+V zPzoolSa_c3%qmpoPvWkOi*QxViXD!~ z?5X~VX7=R0x%_>n*!Wnn%`OM#ODjW}iEM7~aBY13{{D`!j%u}3CL#ZW%V+mF4f#jT z9lrm?uM`=l&+hl>?K+t!;BLP8iHRLgOeNiZw^ZkZ&+LF&a2aTU9`j(Ge7t2K(jZo| z6UMAuZoQU9sXUwdrk=!ROt^XQ95yLiO<9(eAakw$K!%l8bbCzv0yi~?ITt_B?VR}tx!sl zg_rB(QV)k1Mnlm`>6JI&JrH_YNmJlEy|4|xnFfYO%E0I2_;;jWdoPeS&EF4jZ+g8= zD_eMxX6y!?jiDF*mS$||&Oi?T9=J0Tb8q&X!L(z zlYqa30=6Nv&KQ9`oJi~x5Q5n776TYE4sS+j^MAmi16tt`b8PEO0v>acP3#o00!Nj# zY>AmPHS7F~uE1>48KpGuO-0ip-<8mEN?TvrU0VO8?WyL;M~3URhyNgAh;KD}8J%zK zP3t4~o_n-^=&^GLd+u1*Y*dhs8XSzw6?C=ldVIrsIB@Svj}4hT9)m}~7C5937RNRsZ2cRVT z1LC#F;T3>uDPIBkZ&Ln~6h1{u2hOxv@*oicnKgzzNOek+#Z&u@T|rPb3w zZ8Rq+LP%DY*3{OYw$}u16}Ed|6)Lm3W2GE_jTAvUK*qNTDwPw4QuXyr#?d z(>ez)0m(G5-xh2ayn?w}Q!H$q$FFAPRqD7R7OP4r;5Qvs)i@P1D@j*q%5@7PfDL0n z9&9}b8i8^H%t5q(414+RV$8TaViY2V>qU%alVqAUcr7-so+cK)O!=!p?k6V~juW)r zYqNRubjZqjYJDJFj8J%k%I1qWXKaB*B=%o^K&2w3aw&P}@+0M~KdbV>Q1MEN__@2r zu7r;V;&uK#fJhrwLOSo$!!}JPm6*r>A*;rmP1DL63uG$tW?tRXmD-+FR{m}kb`X#P zP9=js~X`Rz-b-}wmq;nWS-Vt3F zA#m`IRPVG{T{>xZmDl4Vlmp)?RTT${RagGL@?K?HE3*(7{_BzIb?eqw;~#(+ilV>^ z^q(_V-=%s16B}t6#S4yyDU!<{mcE1#ZA(wP&gD4 zqk>(j$*)cy6Nw;X#nt{^Z|kOP)v4}IQ{4RZziR8Rw-LV|J-jKt@U==vq_irzX1Z9| zp_51!c6*u!FyVfl1ox8!erbwl1qET6t7oFR6l|dnwILU)bw+isx3yW)A3|;8?NN+p zFE+r4HvKCU=IEnsy4P8-r#Jl}E9?t3vmDKe)))@gkt^=D9NStfW^+Y+OFk(x1)UC` zNkOjH1`=JVo5lMF&ey)}!A%KQW2xQ|3;LK13i=PG#6b4(uXL_yuo-AzhNN7h{MVY^ zxP4)$ERTQixk9;{yI|zYD1C`+^;>ou@tVIqYFqfeEe@Y}(tq_`;xf?E0qg-@F5QIw zbSM={XY`8=h~~-#jt~2RKSp|- zM#rkzbhPsliw-xy<4>^$2|QR-Y!LT?WBAZl&~K@z-+bMy{9U>%6qXW~+h)Epn%r7y zWM~ONfJj6c%WZFum6|=#+{THG`I^+`Lxq}=o_Y=XT~5m*9V5wbw$@sk-?(LCz7`J` z_YKwR9Zp8cm>8qWD0lf?=15y8(h(2VB>T2^Wp@@MjM=7D>a2_bM9X%U-4sl^qMdc& z>W1Dekl~y_zdC__d9hYxEf@vV>6BSZF~GZ=a!e_15z^VS?>`T-Sjqu^m}Ai|i&?Dn z+DUAuR!9!Q;WFy?$aEmKbm(a4j=(~=2I(iodIrd3n|PK^8u((U_zC2^H1#^AwpY8WqE;pO zTk--(Wve~js9i-Z{1c7qLteMfK$HJY{DG9|eJ*E}o+dxS|1T*sRJmL}4Iyqz192aUtR=hJrKj0@=sRu8>$MIL0xgv@Ky<%+)!n) z`3$m!ITfu9Rk?#EIdz%%cS>&bJF9{ki4uQ&p^Ptn4>82&@k;qZ0)JVilv0$|W(GXB z`6@?d$X_6y`w(I6)pmQj80lT)s0*zXDSMu+3@R-(lLY6h^EYD*pCPlRUG=*a+Je8{Js+q@u8oXSES5;B2 zx9f@>uc`(qEG}eU6R-{vpSXPsN{V4s=WKM#1Wa2{l?>?6mI+5zt+e1N%kwN8uL=!l zX0a;VOo1`$TyL{=MODYEEF9Mw7gDvYTP9$&Bp#jMqXH?ck~B8*Q4lhrWTW6Gg)I~c z256o|%rH?PGmO(=_h{O_Hk{u(9P8Zo-JOTb^=r}{+xzQPG8M?G9o_3^QrjQCDfIMT z^iFkqHmvR1(_vMqq*9e?VhL>~dec1qQPyFK>cLJ?FW4gr zQH;X6WfbBTohKAoIc8EcHTozCpkB!{p`s(ll+xhi3CSRgF`zrMpyCXwsx3->!f}Q_ zE(8zE%31zU2|O0?^dJgApntQZE25CFX=Qf7Te29J&^ogjxwc;>Cm)-L_UCe8nciVC zI`vWzeS%P0FRLCX6smW8d93>TrqueZw=>%p?mg7gIo@o;-?;PH2XeYlYveW=pO4BU zEnmKeOh@5AW26p!K04Muc@Q$*Mj&G^c@AsDevbIq39FK@7zy5g z3#E%eU4{kSuu!E83sp++{w{)&I(2Jtjc41gXIS>z!A={hGISW4hsi44F{3KQBJb* zLEbf@nvhV7kXA%~z!OS&M<`uV67muf+SWcW9^d}NbYs`;$2UZWdmF8CDWO+u!|m%@ z_uuQwPPC`jXQC=t>;2C$#W_@z_f@K)oq_$5pRq6lTyzBS72$!A)J zT8Ts{TOwLZt)+bC&4#H$9^7J9v2hS{l2s*5$p+;{7LkI&*q+NIIUS55CMJZa7?u(n zUb}GNqK>bcdiO**c28d0>S-mg5>p~nBpQ7x^Ck<%--u42V#{YBZAhr#97vDhNurr# z6rBXH#{?f+^UPeCMj-jpiyJ~AA@HD97r$ucGZ>166X6Us*jy z+LFlEcOLAMp(M;8Q~I?XV=azA3}K}Xriar4R_ih~2rGze+rSt?Hp_lxjj7gPG1kv~ zYiFddsY*>Y4fJ=+JhJ`Dt1>0D5T%UJ4sPiUjIX=$WpNAjzX`(ARET5-6B?ae7xuUV z9v)*q!q~*v^eS7>iL~K?|9)4Rrky>t-FMtnFQJthwP0D2=OlZud$3ngZj0^TIYdGw zC^QdgKvZ`rt4wwzhrr){V`w8Z8uR|l$j}Ipn95EOBU2+&TgTog9x7~w2+8jlOjIIGgYyZ};-vpS>-cI}8~gutelDWC*s{6k}J zu;2`Lpi`(>aE=Zu$AYuO;AsH2#Rg?P91Bi`vMQhl4NJ8F>OvVg!eru+mBKjQT!Azt zq}x@Yr9S3{)q`j@8|yY59v%JSNc45+V|2{x%{fcJX_84~Qj*pT1{DG1TnWE&Jqc_^UXQZxf{r&5<&^o&z;9YRv zzE!S}OEgx!yGpHA(!qhfJMfRa0TAEP#rCmghqED9(=yzk(c3E3gr@>yC20UPX_3Ml zYa8I)CndYF5SGS%f?^L(rVUp*(lFvk!}+u{!@w87vT5kL(vT`JEY34>Tp;4OK*Vt& z3W*Cu9Ea{rVesXY>9B*+)Ii5%ErRfcI;9zulwf>~oLfeSEuw;t&WK9Hqo8!A6!3pmiilMCX-0;K_Cz%Jv?f z2A-{_9!PfrNcT91?4no-dmBl&Cf<~3+S5cDU@Tzp!pUBPua<#x>rlG zx;OfCl!yYMo`$hPiV_?lCHOn^U5VcLAdiCb_W5dmb|3W^Mf{Y)U#4)1a>ic`6|HY? z)68lJjr?urppgEd`0n;Q#K5lMH&Nd4q4{y8k=5i(5jR+tD*D2{DFNxy1%b? z?|&RO96nZ8nr?=y7rgp0aTIvIcI;s^4`gOwAb|o1hY+th#5m0%1ab~RaUF0uccLaZ zfA!_8p3&i@pn_}4+e2KU;4Lu)RAXp>elB`8`92>jB;kZnR@bE9Sg>az#IeG@sK(Hc zSyAn-q^NQkaFLhzS~qc&0<=P#+!04G<<*>%DdiHq_8f3PRx5Bo_c9EOtM2s|b{GBK z0XRLVHCQwfxl(RT4!7>$nd9<1qB9{)JY7s|d1!q^tyLKukOhJuMrZ|+n#S(JP9qOd zQ)3FmVRVpIY@UVBKpHlg(lgLAD6!towBq*J&6MO;7~9bX!&{+<~I&mCQT;hsaio#QR51<%y;BniN?rAC^siRQM6qw69R zP16dQLZ$e$NE_iTyHj#ErpKPb-a~jFJGSR3i1X<~TelWBOu|ol40|$BB@7PaMQ?Er z_&WshXlK^bc=WzQPZgfz9?i{89^#G`zEIj(+EC~#Wt562mC!(#S_dWI?MwosR->FP zj}$>*dR`+M_e9f^72wN&#mfq?EFCg^W}Wg~Q@voVv?9DP(LWcV5A~qD$^JTA|+=@g~(V?DagoYlV_nyCDBxbphwP)GLD7EW`;Nx9-WSJZ25TW zqJCsV|0M$TXQAv{+)Vux3f=<*-*JwoigTY4u46&4HQHkWF(oNsyiOSu;O7?n_Qh=i z22v^T0K2g#5eCU*Gn{(6G`G?1?tvt5a(Ap5ygf6R@0m8(7#O9SZYgffg}Kpua}PII z=qSYswi1fzDmXu#hE~p(;UOe?gvT5h;ubW9orQyphB+1t15ydLVjyd#lIGLtCG%w~ zvb@ht_d)_GmGUSUX>&QpL!f+KmIs;RhJz)a?K+v==cRT&X%ujiWr6KH&S&>?4?jG4 zYzngX?C5Cc;28AalaEiP5Q}%JIw!&3Y!ud{T%H5_W{(vffg3cE@ZrNM&5 zo-PGT2>{I*dr_Cma}trfVOjKA)V-3p-Ny>|J;t$c@B_0PyL5Ov93QYXJcA_9v63=d z3n!`I>gCk@>FNIeH;(oZ3#(9a{;S0ehX#ByJzog3*7YYk5B36ufNgvzB#1TtS+snN zvaUwMH&7@5e5{cFxqJ+xgOAB)fKC~(b$ma_i9YOE;xoWr8}>qNGBqV?hYN#T zd)`~iHEAVHg;2?cjQ_%Uh7)z{l)M4pmekcuuxEsPMs5zfU15ttVF|n3VY6I+9Tf6Ad(E{0heApb01BNw=rRp)imG8*u+!^%rk@;;L2A?zfw)3s}3 zcR@MM)lSs1AgtQ+jG`9&r9F^p4{eSizt_`|zN?^>NP6~hlljesajriX^QO6;Lb4v7Q%2&Ko9k@g-!JJmqHnV5lq@YjPjQ!qNK2ITnuBljhj+h)X;nIM9CnhB3Jg zJk%;aaV2Jw_vMyK%q$2qWK|2dewqz=L=%eGkgLoANMn8gsf19dX}vAv=xYOz+HV-r zYnh9Bg%e!`am35y)4-pu#cn}(dp!P}0%E(?=7-oC)5-Wi&cJ2zem;<~6(k~{W!t$> zrc={EE@J?ZOWrRAE@*#i*+DMxji1*Ql241mC1kWR(U>rQy3cD2SNc5LpXu6o$w~eN z*vfwFKk@UPqoawq$D>4YJH0I)Z{LmLk^Nf}P>`-%w*3wu$eH}s!X~biOZeNlT%oB{ zAmU@~arb60gNaD1W5BhiVJoK)xhfgyDy3+V96w z)6=TlcoKtAikVTZfrVbv*1>EcS!iuF$2e!ch^aVpL5d265JZ4h1_k*D$FmSdz1Tu| zVk;WJ&Xz}T#yA#^VODW08pSFA$PW`;I?KBXG?m2~U%7hqDWzq6*NWmyemBTV-71uNHqo24@vO5b-)}Zr5wyXeyY4P7@7wqU4M_5;y0kvM#dj8s!^a{FT+7 zU(vu+DY=UNl~6HOOo$a@R~4g?OM?S@*AN;W73mwm${xdBMEum*X+6< z^i1|4``t&NiPflgtL@+~d@oiX4c}d03w!t0&v5JVYYGLfId{aN33K%YU&&Z{2mo+` z7AGwm7F|<@j~FXv16GEN0b%5IGaL)YZZ2>v8oeH52mJUnJi$qpF3)T>EV?SOFOm9; zo@q6VKO6MYH{^^5fR&rdy07P{V2v)^>jp--q@;%*3*=$(&aa00A(zrd7y1F{2W;kq zBfxnEiJo~K>4y>Mhm_h>3F!50b!1g#8QU`P&{#yH5jKMZ(B{c&>kwRJ(75mo@)7dq zSSPjy+lreJL!0!mJe(iM%T(aS%NX!dKAD-n`VlOsW`vmm@c!Fp;7=KP2z<<{wR*fX zrb<4@FA9@9S%AfqhQ50n}Q|Vad?VxF9Qx6uL)+A;612K&}2*T zpH-u8noQeT$hX=HHQw%5T8f)q@eT>i$r;qY!2OCZKSq=1VX4*vv@jlzMs;8#b3O|G zjfyW&6T@g+Rq>x$mB}>vCJP5|C*NY>@Gaf1uq{RJrdL>S3Za!b!#6T8FO-XsKtarA zUWr0sDF}7U7L;5p#!=01uBxe7oUt-nKnR4VLgnTLxNssA4r@r^8~KPqd%xe=Fmd0S z=1GU%($(}%&+JHD>eg@HzWex&TES~unIg3q3d6$ilEX@AN3j)aGeuN3N% zNj!e>EaC_>YpAX`G6oNwV`D`>JUA<7{UwR@9abWM!q@%42#bDtX?t4Zl9qD9Qa16G z^F+<;U$ga-qfJH`Nl;Rl;Pvn9&2I1ZMvD1-Se!bF2rk`8DGkNjZA-X9;y>w;~O-EzK3Ouq0ZG@X>`J3Q5{kMzL*^(S^5 zM3qlTZpRw1zeKE^N#Qk%ivxwJjEYr*!YV@GZ!K;moXk_g`6VTsX;Pv|CMEn$fn~u@ zn7am*bEmUriaQT?ZsX_hDQ?{*Bi!qg1w+h?Nlnd+_SV_^>37nJ^#r9kkXh;~(HfJr)uZ zbP*GzhY8ZdMCoDk=!$aU6^U{>g*JVT%UV677FyA|~Hmk!2*LH@5VJkY6 z-donegaj0R7XJvCH-k%04ip2Z7ow}!nTxgb$4X_RAk3q3NsjU zZBJc#U)jE4tG?OA(50{Tw`}N5FtOo*d|>Pg{hmcj_otUx`pPYf+P8n*kUid2UEf<{ z02ELX*%F}MfXyS+wLI$ZMIg@Q$X;XBHEiK?D`6i5&z~?7;pr4HDfs=2K%s~e6|rKC zEzmE*1!IshhYBPrBIG#1)2NcIIEG&>@u_$$75}w~v@Gav4t@%eE)gaW;x@>muq*F1 zAVs($;vABrGZVq9^>{>whtzmTg@b zaRsh0!d^%t6sZyRL>OVGq!G&1_+vr=*KnWFVuP~)P8)nOt+wc&#|dF>8FuOkVijBV zfLO(U_$3+m9IGwDB^g9{?)XNQWRS15?)|$v_WbQ_P3gVg+Y8>CzwhYWH3S^L&ym?R zRM^$)#eaX>kB$y>-!pdycrSwYL;Z($q*GfD4;Bw^Pp7sVhSEE}aE$yVkRI$CJt6ju z`kEAit|#8i6V2Y2?}Kh`QY(s9 zE67|6MXSfMz~y6*oG~b4%nl?T%*vz1kk;hwHU@+NJgdTq=sh$sK05PA-?rjCG~vD?eOm zt4Er8!&*|NP{=iK9oz6#j(7>kq#tLHwW{I+nSr5!dk20nAn6iB&?U&IOR&-|*l24I zzB9tR629ZFW<7z1K!eHwna=@9&jE?h0a?@mt=92l{6qAp1qEzFS7pI=6-?toV7!d# z2P#5U_nT(LJG!;HZMs<<*{o~UncIKe<&Z>*<~Mm|1=16G1{sb)Mjc&z^aos*vKTjI zgUxlnVRedkSWL(0ygE|Dj~HqHHH*fSnBNrD7_Ltd+XJH&=ukJjPUWTKmcwfjV|@v; zf|4p}Wi+$CrKY#R5zek%H=GSeMh=by3at?nNZd(UA(dA(^~Y zpd}WYG2k)S8QS4>=>1K>P^#Kf742N#-nhNLR;4#FDy^A;Yl+P^v%#Nmh8wHBRW|+-6b5Tc&Vref<^_igE26Ma2_$n?sDqvtdQ?yWR4WWI zzJ_DR3;ZZ*mLEoH=2&T7^v;ytG}?jzp4jz6QY83 zG=b`o=lCl1FGP2>5UmjFwJ{*iEH)dW0;FDfjn>4~Gq3y2%jqc*--A=~47?@c`-R`IsvZRV^jCK{6DA(3lFv2$E;GmpuLp~3< z509hCQ&@09h^WD?jZuzm%QhB*M$~zX_D7w^XwDiUfSytC*`@qlw^>|9un@mNNjmJ8 zzxmnaC1~+KQvU>8$F~K!XyE^;D7t1G%`~gK)lTq-HAZj3))cx5ZEfB{qCgbJHBqjy zpofMU9Nb)C;82&(PVj~Ovv3lo+~qHb&c+Xe6_^5{Bnyq>8YoC0M!g_Ldh-(Vhbqm$ zKH}9X`Q{a!#H&ek@ev8S)p&yXN12YFQ^~j&x+(-tkhIoay}HQp=fo;L>h;%a-e}5~ z=V&&$e2hjRNWB6Kol&P&tFHwIj*Aa1TDZD8-_Y9t-+Tpo2_dy(Uk^lT%l%f|`c7;x%z z`(U|qna8hzukQimAS3bqy<&1kMAD81eptb=<)Lrc!m+m$#`6fu@xgXD{xhs_0xQo@ z{NzkVc+|&@^ggd{IyY=k74Vnmap-N7L@uRGXhy}OEq71ref%6vZ3UXN&KF)qJ7moN zBkfDT*;MtXoEZFHE)D+$FOU#XP~7g*%J;s z8WIgy!w_P=>g^#Q3(!}fVub+|L|G3xr$9pj@j%KsyGyu~t+aYAq=9V!?4ZFrgm}$Y zOWqzmA#eeG6$!5LfR**xzkc*T0YgT2*AB7TeiM$nI>cDJ)gY|J!@Mi;8nRhsDtPQB z>#ZL*h&SixwF|aj95c&*BJab$jdY?((T3X%l&m}eY7KDNE!cq8!>u=l`kbiGf%@#I z&xZP}sNaGH2sDVJjZJ7%Bia;2n_4YPC7C|HMy9m_%SS{DHH*z$Bb%LXY0YSq4WD+Q0 zlW!CXSHhEFAT^-TM%3yMXstn4>^9)*u(@b$?PXXy3vWdz#QPM58?BF^xNs84 zjbK;=RTAQD0Ppz;3<4v1rsukK+| z8c=|1=@fn!pa74U(e7J_dHJ`+41nVGW;AFve@g!EU;$OWKMgYHI!UY`uZK-bzv72`1MK_@QyxYTQXFn3E`#pa8qwSsEJ z=_FYCHY%AiIn)?+myE@iz9VHlHk(T)BT*FpBc*mZEFLwrbdgn)3Y`kg5gHnw(DN!1 zmom!581{}{kkfT$%6&xkw=t>x^=4bI799=+$nER%hd_*}?d6 z1?S-WevcpYRSERf)07tRA@#_F&{woQ@hUn34YugRMKz+e)2hhJu6g4D)k69#dAMpG z%;hS{UxZG9tz40pOJX}ReYONzR*iwVYeH} zDb}RZnOHJ4nl6qtnEpm-PkFpu@j!RbowBp|2VL{)!!+mSn-xm9%!*q`nEeC%TKcb1 zZ+!hshqoi+2xec4MeTL%U_L-9;YlNsKsHqJ{CUgZjTu^h#_D>Kna4jL2|Oh^41?WZ zVE0N=zanSVpD9@x*OMh?K7xO~6p;j;DoGBnN#`eIHe4Ce8q*LZ4y*9S7>^MW*I3g7 z4~P5rwdleDpFvImor#u6=s>~QJ<#75ZuQ9}5`Z!5lo}RM&_ch5lB?CUN~4nN zG&JEf?3mgyZgtDl&{wnvywx3)8qD&Hm~HHw%$Ru<-3o+x6n&`3s_h4iGCc4yH=p{V zqK4Lm7|OR-MiVyT0xy@ic}41rB}FYk=L)Ma4xcPs5)knnMyHx%sQ6TK+j!38Xx&~& zZU{&iVMM711Kj}+z*h=e%IE2gVZRnfur;2H4^20BEewTyJ~T#32^{b|a%p2M=BR6T zd%7~ta0brzZt%{tV7_~i7;=~3B^D!K*=@60ZT6MXk)i=HYfq_Eve*d+3`XRGCmr*$ z)BNFTj==eql+Y{gU`4x1d#VJ^A!1;f6Q~&n=Q)BWOOAP7cDlqLUP&4V=XY(Uy_LvC zPQQi-R^t}2S(A3@geKUQ^c7N0nwF|u;bgtz^l5+J{*EpH1wKP`cDU<2T8uzUMt?rU z$$|E3vKUng8F}(_*ZjIrple%J-PLah)Y+hP_h3IjU!g2W7TF?LVl)~=#g);mMRmyM zl0K1`b)DhPgyt*@syP9{UlpC;ewTVfbe_^Bq)(I*vmw`+QiuaTVoL#v*DiRhSO>Tp z`GjUy{i4uUFoMFVumR$oBMOyLew0#~b$T$^>*RnxturM1Qih~nMq=cDS7~TWsW6AE z4ZOw5FBQPh6L9>|@A6g)pRM1JF-c`or4GT75c&bO8_d~eWB?gQ{#mqX4x=4N0MVcu zkT8HZ8!sor;NvytVIfNiG6PyW zWak|t=*Wqp19iaU4pMoK<5r{)p1e9Q(g=X3SKpbunyaKIc>7(Lm_TrpX5SOCz!Z}? z;#3LTKtFt{gy>mt3x%TRL`k^IFNC{fiziC(K7gbgs1mQa5um2kC|Gc-F#G+)h-k_nCKF8y+fjW!3cdox@Ppd8Bw>aD; z&gg0xNn7IjOLF;ZjrHcBS=m@;37eI%O#Cx$zP}^f=w^ujW#qJBKGu^mDHXJV)$kaF z>3t2ZKzp4PD3^{vt4$dsxM?C0DLhIa_r zB(Wc0$ACnt@a3}s4IDuWA_wHmAQpANpgJ3#cO5V+kPB5OlU!{gGSDKdI$K(4Q}ryV zl|n%J_&(mV1Un{S%{na*IQ0$go**eoAF3*aVq=NM;S`7cdWBjWdb;D$rPI~@TKN+S zcv?2*0H>M)^AschEO?a^Me60ypMsY|z$?N43DX55dr)|4%UmwAVd*eT}=ve~^qxUwvY|i6ND)M9k@mC7i3zjPaC|!Z7gba>!;2hU_-6|B-(O z{a@qlF>--s4+u|H_4YU*KFAH9;@_|BtJNE>c1mTW@%I7W?m}jTk=l(u;F)e(-x{RYeKrtq*-poi+8CTm1nHb$}Luy;HcQbEJ$K!nCx}@&r zq;l;(#w)V4EMU9uh$MnYP+rt@gCmc{Mc-3r!yE{}mht9ep?p9Gx9c|JAG9Cb5cLln=x(1Ijs*J;^ai>! zHcMT1B-B-B-3Fhwg#HnG8aypT$vZ_mNP>pluNP3V4$(u1Oef-Yf;1mwkE{S?=tg+8 z7ASKfN?vVRismJRhN(j$Ynwp2&@z) z`VIfQi_zN->K9hmynpwGn6gLdr{5^8e*Xzpx%Uc`vJ@hJgi-MTZ;af-!-E`3r zaYPixGP=2FMHHbEzexTzi6yfqjXBagPoH>Q{f}x)&7C9<*XBH&T$}W;=uL)Bl*DA< z-t5VeaITs@AuKWjexWA0la(YQ+PU!OCE_f-A_U01@w@N+M9`A-_BpNpOv$J%YUO82+Br%1^A#mYSgfl?>j?n) zTKu>MV?uQa9z$QEXwK$jc5GTFm&+A{R7HDu1nkKlafD1hil9ggXE|OjrHF}bs1M@D zPmxlRAi%Fr3Fz`)lPQLfYrxw@u($BPCv`|Wa+~05=x`>vcw84PqYoD4PMxMnCza&$ zx&pKps3p4W!FXPWn*#^U3(5uL;A-05l>~`GQp9S8#A>d8=GyaW^Y^0QwRF^qL8->J z1oWqynwIcm;I$<<@l{-^b(+jhy$qX0vE8^#2lsR|{v3fz)Fz$5qLyH{W7w^zgf;5* zMiqr0$FM`FRBa}8K_G~#13bP5^r2JKH6d2GbY3c@4Q2G9i%!lV<8)>8k)nd;EC=;6=Ai5lerrWI zRr?KAMu4flgvu;6t@st=Q6;r;eLcRKNU?q;ks`Vd4~Gm^1|9-o~IL#wg{4R7s!3I7X)+Fo{CGbOb{`E1{)0tcC+QJc3^q{C(w!0tr-eSkGUe zWH`(a@bfDo@VOwvi$cV|>E~Bg?Kz@*EjnCvr(Jr9xKi<+T{;V|O*qhg^8U5gJ}O*$ z*EQGPb(3rNM{*6JaIPV|bdmJdhlBME;M#8>7)mey0ezR;1_V(M@d_)!-Q7$(|Vb5M&zKXs?Y!{xeL6r0ywhM6} zdMtNI&W6DAP9xx9**B_k{t`S`G{Z!(CV0G7BI0#7d+5^=#;oVeEQP8mt;b?^X(cil z=doIR2ARy@vsgWx49&oNSvdHGEh|`>B!Oc6k;Cfe<#OI{wFZndZ43aqKC}D*I*a@Q zj95_2?MeYn?Gh|tBEtue0vNIIcOedz6>(@aHeIQtrd}Da*?3EH4E`MGj>kH|51cKX z=mji>icwj`2Ujlh+Nn$u?fR=2@2iFHZv{DAxDx)+ul=f~5coH@RCgqJr8$(M~?&g@QF=*g|EkiqT%-oRg3I{uj zMUOQTr(%vmp@`pK89!o~xCiM+whJ{AD_+=b`woxV_A) zQ0kt}Cxxmm`AXXM!W&`nf;XWBjx%JlwX{GALNkhrH1yhjQsBXgIoIXu#)c%hwy*N`oO!>()$o zXkakddw-XIy53DI0Zx#r6t<0z7V=3{#`9VuE0f7(w)(iE&Z|pqK8)R?bVnOp&W1#k zGsRsxE|6Wk9O=p0Qh~r=|6stJN+z*?sEoO!Of7@azE7wd`8&}EbRdFmudw-EiGdld^K(|{j^&)+{b1*YVmfrdCWeLut8KRreCn_orW2O3KqDlPK5 zS#r-weD=;3`ZzJ-2cNNre?NO>_~^G$88U{nq6)w!;#cDWAwXCU2hWgW1tUzww*gQ? zu0j*=Pj!_r&g$yQ;1<@BZnk*sO=chdeF@xV>}VO4oiB}TYAvIRv!zXt$;Sm6S-qEu z{b5xhsBnrpOfaGo6<aL_zs$Qdp^*&C%^T} zMYG?ml|nrWB?y@{oUso7=e`kr_65dI>>ay%gLm;@aA=`#{nOp~ z+ZJYGo|dQy{iQb4p3L+_b&cutWOw+_Um%>_b6fk|sa;c}zRZJP`}?`Cq3BEF>8-bZ z=5IRt_q4iY617IHlIn7!M>?lo{rczjHO~Fx(%XM`_q(q?)skqSD3VYZG+L8d27`A7 z+k1PsV18(4L+kWNuYL2ET3e2cH$(?_Evg{12}gpHyY^-HR8t3buOk;S+0#Ww>dr1} zuB8VJK>4h^09tvRE18+V#w&C$NkCfo{s37ioVPLY?Y=TPvZb0u&V550t; zRb4G`ZXxHZJX~KkDEFcw*Cf7N*S8$(U>)Wa&5fcVbsdrZ{D%K)9Ek9Ob)+;VlAAC zW0kDO#rp^5y6SdL-`e#ZnV3&&cxeg09rVu_@;R}8(pYa%xqfqCeOqAt`al~FD>Y1C zMpW9oHqSSdQNBp`Z;mayTx9s%OVP)JA| znrh^A8|FIOZs~AEHr_sPhk}s-b)AtPY@6=&n=q=+=XD!mn~rqlr#CbxFfz4a7R-9rGEJli9}+@h$PU5E7jv>@jJn__2qap@$je-q zb&ki({xWK~$WGEbh)JZ9AOr@w0&;|&OmJ3R78|m#<)u=kDPPF|QVDXU-0qbnoXiR} zqSeG=P>pb-P9mk%yd{N^{7$W8u`JgpDS&ik=pRX)GirAyZK}5zZfPI36h(j1?ee|@ z6Q+|ukADXcm_cW^SXjJO1|7?!jO?RF-MIIoB{4Dp5vskkh`9J$NIm*b7Xzt4N?|Tz z-RBU6ql_Zw8ym@N8ErZj8RJ%oYNhhaYSoWM*!p4#G>^dc7fO*alB*@6HPzLw_px8` zfLJY-0_$Rk+CDzh`KfR0&FvY^=x7o;$$Q&&_Z9XJMP2>3ZL!Dw9<7D9TQQqVB`0;- zrDkW3XYRS_^u_&OnQLJ5yw2}r0V3fo21mzqZ(*{e~MPCMFGM)g$*u-Ylr z6=Ychm{6cG%=wO7C}~GY*nU+c)E37PyM(wld4%MeFsW*I*-taGe>=b7uE~N=t&I=e z{`{s$x}x$G<+o*mx$l`;i^_?QL$Q!LB*}&6#L& z{ch2hjK+@v+OZ=YBJHr)zVj4iP?xd3^N4{|m(k|)rZM@BN&%D=1J60q1i!mb627dh zTnNX=6dkiOK)KZdC@ouxz$D$Pae-=;67#XS4VE?Al%PIUFjn!mQ{rL)H z8xoaPN%YZLi^lJzG!~d~;ubKXKPH_(j%Scgv7+O*kr-x#<)$%Xk+v~zn+|;F?5kJ@ z5b#B;qo|`I%duna>9Y4|Fw87M;o6pWn0dbCWS=>$axugZ+V@F3jv- zFy}_{yJy4h&b^(59R>Sm?!Ws1bYSznW6|L7ZA1AzTl!u0&h-=7_M>Cz`0#<2?DkDP zc6ZBzVBMy6(FglZxPUIvmUfwUpJg&AN?!WjS) zFf@S~aLHd>a=9c~H~}J1)acJjYPmwiQ%azJS8)jl6bWPrfc_&B5?-Kx$<(#er@MxMoEMFYA&U?|kuKaD7KoOB0krDhsr1%uGEx7R5}h16vXYPL28NO3yFc{^gy4 zmt5^r#nx@j7GvXh+rVehw>JLgXCB?tOtV_8)eP6|SS{Os?D+}C$|)Q7JUYDPsiR$E z&;9D~@s~>R#L(`#rm1$XV8`kKl=SAcn6Oj8gq;E=G>Dkca6?RJsA59HUxf+rH& z>^H$wc!mf9xi&1$*dS&qGHRPz4n7F4)wsulU}oy72}m8_|xOhP_$CAI3ZEUDGCTARJ8^>YIqIr&`|G7RWh;zMkK)snHqrS zvEK+F(xB$ma_aRei2Ud-nc4(-(IN0=Pk~Ws6xZb-lH7kO?gk$uQ^sz;Am`!~=>FXK z&;*;Q!H|_HT>~IN!w_tFu>_h@nKjU{Hh<_^+*niIy;5Oj6*fLa0#3D6BaKZ}3CMV}{ z8w35Nw))*O6}X5ZdjVQJ3Ho4b6)h&QzM^v7M&G)kZ{0dy5my13J_FEVle$UGWd*d@ zyD_rtaFD$d+$Tnh!r8r95iM?XM3zg!1=b4so1w+*|07sD*>d>B{jKv`8yP8utCX_L z#<`BRT^+9Q#@h$)1pOtUP<}VfuzZQE11)h8Ig>OCT82e>G0T zf2q@)lxm$q^?}8=pv?!y8=_YUog->@ChW{fmRtHVy3~w*?;4zFGw5t4UWpG#6oOZ= z^rMGXaN=$t51tTk;vH*oBGf>7E&>fi%V%Fjn~(_72p}NPA0lJdC?Kq;tkvMf3*aOH zD4r|18i8=QToTT^Uhk;Y*KVYAxTu?g#wWUtpDi_)Hf312C@7Un=ur1`Py4~)n1A@L zE%~iJ0W{{JmZsAzS>3&fx##C{=k`52*Qhb_N~PMQ)|k~&qs?e<+t=5!y)GrY}EHnLl%J2zD@v23)>3CZ7o*x zE1RFWeJv zJwT;<&m($L15qh|LsZIZ1XRj@EGk`DjKNu=3F?JWYD-w$}x2Ee_a7tnl%XlYxE=G!lLA^Qfr zpePF!0UnTqY9W0M^InDZkavfKQxqjf5n=#v(pqF+!?|w=?rVLW2`)q7Pptlq1tR_|5)Rn>d(cXNkcoICK9Ql|0XiwEKMn}P0~ zjUBt&UHm3x_x$j&f!6ze@aR21{MNcP63U+trtp`N>%Rg_itkJt*_t=^j%u# z;0<=Y^w+FjLE;20{ZOtom^HjzE#U>n5eOf4+(TnZt3hp0D~K;jWTFcRc)kgM)5Amx zX-4L%IDKl>;``~U#kcNKnxkTSpt(15mf9eNcsX4OafcjfAKEj%>xoFDYb zD4;j5fZOk_;`WB?aC@=HRe}450JQ%KV(vZMhav@jJYp{zE0Fy|2-kll!1X;O_hFSh z*J5?_{~N1&8%tl9s^8X|WPsRL$mOB7$$aBzv(3>l-E{~mb_A`Img+_dE^VkSp5EFS zg$XQRhqCpcL)RT04%#vU(dHd(9yHW*>xL+6Fu|~Yox=!Vm?_>C2zADcl**{n7*(Vx z(HV5q2YHjrM5>HhM$al4n?>ht-`SGd+#aQIGSoH-X0>nmBm92C0|08GV%1GJnKHV3 z!B3J%yo|n3WH`S$@c|KavMlY~O^XFyubPzkp)OS@j~~bc8nN|@zkry1YWd%A9w4DMG5dwN25&vcrcbKJ=@yR&&VC+%v3w2G^&RT?COgg^ud5p9EwYy-Bj zzt7xf3>buDC9{BS!025*Bg@y=fYbXv>}Ok-`#$4mFj#&VtzK16&+hChAnxV86-@V3 zSM_wCI#uVdb55NDnWAQcxr(1I1J|VnT*=+?r;^l!G|%Cq+4=qwNIiJ5dKZmJIZ+N_ z?%MV6cxt>Ou2m|e`GN}74`)vwzYG+$Rj8o%EN=nEWcqrA&gipvLOcn+ef}KJ3mkrs;c1fijbOK!n2(-D8JkIl zqlqm+zaQChkcM{v_T?7Xmk3c0VAq#5yeS-)G`x6~hPUuMZh*qP9VNV`3hmALR9H#I z-mpyeydih46!Yv7YF>S%wk7sP$uddyyfM?ab0eKyLDyTB_|*_m?%yr7o4>kl-Ivy- zT*cLG5Dr@6EAL&s{LUpYb8f7$2nWIGH5)ShDU&|6uyNfIx20}*d;8)vgl*%^9n10t zK(}q}4+px|G$n?6i!MujaiFHKzCRXdUs;Itw>R4DP2CH@Us?wZft<^ksj0EVS4?xk zLONx2)a7z^cOh)D*GT*5Mj<5^KuYGY?sEK-qb|5A6;EIshqa&)xT8;u^c3BfiBds<;xqQ zLoFelQi&^66sZZ;52gmL=?~z>LVI6e*==K?)S829x_68<1^Dkc>xVPB!JK8?MrU(V z4zF*$=Z@=_<{6HoDOS)LtU863*Ve7Mtw#%oLSl4xckk`%>RnAsc7CRI-94i|U*k}0 zVv=G}w(Vg^qlJ)0$n&kG;>}nK*~*O@iWd`^0c*fq_%Z9DcJHOb*&=_9v5zY_25Fdgx>q*@mqd; zaAE(wuYPXVBkL0_r3aV5W4yWaARNh`hXbVsqQeBXu%iDJo^kR#W~N2B_AP$Tw=u$h zAmc6M8*oYzddNLMEc#H5B2|KQl>7%X2&>9XU`G3!y{z`PhSbo?^Uskq3QkXxZ~cKc zFbXt>0W}HN_k!6eC|^*)t8IdXRjF8uAXqpR{`cE8fOVO8BTJLtA`}GLtfcyA7Zi3E zE?^tsTjgM1D2bnGPz;N85Kko_o>CI8X%Ig*!1=3mu{{@5v~-V3l0R`y5xY9cpMa7- z_Fs_vWj$RWl?y3iyI#}{|3?lLzy41midiP=0|hU9FqBkvdnLgWPYOM4_+^s z*kJzP<79rKp)B*gEq^FUO-St$Nm|Rq3HP%Z(J0 z-6@MgK^Wa&3W|LQ2zZ;Inf?oo$A+&({IFIYyGZIwd)<%5pwuT$AZ;9!`dE?0n8KeD z2{QNrl=x>WLg6B5FD43qg3_K8gC9te{_LzYxC;H*+#NhKV?Dm={x$vAjut#D7wXu2 zaBZNgF32cJ0GUIja_4($hPL;(iRj(qD{fxkepDatukG3uwbhQ~>xR-sum}YW^|h|p zc}HKz=kB;}aaPT+G^G_8(aI`mEnUCvwq8p#xp?<*qAzC;S=QY>>JKyxA}PNLj*_;y z*4(0O&25pbx%uPPOGda5-5P^pt25%A%gYMqvL9!v6DNX{@ax>7(ERCSZQpdz4-4vJ3E^I`ceEz$v*2 zCyKl}(^Qv?`jtfJ4bx=no5aUR`buq6=#7$Tl4yOiM9h=)%1a7*<&|x^ga7)%visI# zTrCqVwZnN^Y{}g#m)|xT+ImgPs#e!4%U4aTFeC9BXs~l-e*CVKy{U5uyxlrDSafESF;j5ew82-ONm)(FOrv*T zWLTC}Ei%84m$g5T&4pt+tQm2;F4X=fuUAz#TQg}stEy)9-@jfjbGon-YVuBZ(F!X*R}`NMfw_poCa6YaM@iqkRG|N*9Y{u*8b?~{ezzP#241~ zU%RNzt9!x*=~Wm?8^q*5p?e2j-+u4yyT>yc9jCQ8^cEI!iMCR!vQ7c&7>hDTQb);gS$?1T zec8W-MOROh*fHe!K^-f>3YXLG7%q0}Yu)#QTW>kJr_j9b`}=Q&$79ijyZe{k*zbu9 z?;2QgzDePo8^(Ir!><#=+12V5fYn`1O${%!6gi*G^#=VLUA?gwasahe3loe!?B018=I@#ce+ zZNYA?=yq1j>UM5>hUN?PW%W)%Qtyl*^-lPxa#6KpYKD3 zg49d+Z*ms@X)E~epT~`og%%Q8#&x6A;>$w7<7F!?U8GA@wJ(JNtD=Wp)~ipU7hYBC zC2Otv{Mi|=zE?@TC*ky^UAk9A5qb5k0FQ$MVb}Cqm4wc~qvRYW(Pg*s_y=mOrtH}F zYY+bB`2m^BwvsxC1NT&PKc{AJU}i@5Q&ZF=TKa zg7OFj!8K6)xOIeHd!SrJA!0E=OO&w8OEnOvq#B5$AaDU>FO7q$BmyWShaSZ#*CTVL-i*$k z$Kz;$Uk+gGmd&khIg^K54sZ;QZ=)T8eiT0jj~6wR8+J$$BT#Vuq6W4|QVS^@L#9*o zjpE8C(ibJGK1N|wyvA0>Ab~0j!V92mzl=@9Cb-{ERA+&ZjF?sV3TzdS68Jcf0y|4l zg;5m5E6HoVd*G(WCu6D7cW=8H9>1%z#hM0Fi?=o#ooyR?3yYh>W)1$i2mgL_?UL`D zd*p$0((%yRhxaV5vkc$&{n8gt-`3#oSasc9SjFEAVwD77q+am*oxtw^emn5lfZq!I z7Jx#{nLtG99l^~Zi!{pKg*qe!FhqPTBFBu5$Rv-*F{L9i$s;I97>$k)3F(|>)W}Su zPnwr)&+sVOqIuc&Tvh%ex&<$F4s7uV4|t>sX+7>6jc`*yRe>i+8&alv>`d%bEc>o> z`rl;(@@(9}iHfSE^<)X&LW%A%i&QS9Ecw)3<%nNBNR?gXI0VoX3ZPKY%75OET;*g> zISHk`D)osrQVU{E5OJVLkHx8q%SsU#(P%JAHhm)^rV+C944f@spUk zoFD1!6KHnP$!xEaN0JV8w+K5=*N8GsHKIVB3zCgM8W!^KD0^gl0x*iEsF)O)^Yt0u z3kjQ|A-HbY{gZVDhf60p z724eah*lS8>XsI((CV_fFxq_*mYfP%xI7Rcrz93#FQZjeei->`q#y$MMH#IEX-{>r z0fl3YgHR3dhk!o_0(KCz0iQH|2FxH}0zo4P8bDAFAdG-a;wOP$0b({F&80$lE{z+_ z@WklmN|lxI=} z6kurBE2OZm@UlXYN?sX8BN>L6K#u4i%kU_VB0SEH{CR($F4!i1fm|c?<*@VT{};n) z;o6Q;fuED2v&QL3JGn3MhUtGPgY9cQ!RfzNLh1qtJ)C9{+4Knkg*qT1;{NDgefWQz zZzy|5zC%0&QDY1CQF%@c)qzm0l+uWh=G5<%r_?%m-mF6&O*9-tSNIHbYtK!e-y9G=B6co!KpoJ5XQMR5uxI6_(bBsU(2&}$mr zcY6VHr<@1uC(5`l2Dmrn(Rpg(_3}V1cLVB&8PCj`B46@0ykEk+aGXkay9n@0X;D57 z^MAa5W-a?k{4>ELoB!L62Hs-UF}zjak%Okg>h9b$Hmf}5N0ne2&!rSsBD8UWsdl@VIL*n?|5Kr=eo2s0(mmnvcPC*R$>cg`8B&HNQV*gK zyy#Cp#AN;K$F5Au+k~&=*ho@3P1&_^c4fk97x7v!w zTWqAQMz290Z*;hMG+;)~$F!52tAdoyw5j!SXmj-fbmFSC1nFO#=i6i4pm61$i5yAw}Om8TZ6JSau3;FH#!Quflto+{?sG z<*hUoy{$xBZP@gy61+_0UM|53<<*b$yvliAc$eKeW5hQxy6Gs5TtC!W>T8*1FI8*| zG{)U(g+@szg=k}MxOH`lOPg5Iw-pRA?EMa>f-&-(QRL}|QbWaBbFxWq)GJvNXS4|x zgU($Tiu<}2Z|>YE#mjAjT(bidIb5A1xZK zz0o5-bNazULN=~F32>CSXS7L1zHy{TR`g;a)= zs%va%Q?tJ{?STtOoFJK+#@=AdM6+XPFx-{18wyLC+zijFXx1bc?Sh_fs&gdWoKgqZ zGKv zGLE~Ey7@|0b~BfFsZ>>U9^|{a-7rKJKgnqKs5xm6D5sxBF_Umor34Pxvwn*`Y+?4$ zy6Lm{haZ`&_OF$Ln`x9^Q^5CQEe1UWo>8h`nF@--up4}RTGDECL9SVZw?eeHva%QE zK*g^PyjEl}o%e@m$Mi4bH<(|VWs!No0>uXJ57AEPcxKVSt6~;P+P*RkM(4OIjg{mMz9N_UWHCO{aZ0%?%v$xO&8a7 z_|!U{qTqrUN^=z}=vZ%U*qw6e)PfNVn)GU&N#}5%z=5lAF_P#jAPpXdBPW3s%R2R= zp}HyX-4m4AOeLqlk)jEsupF1e|C$52!_g?|eUabW^gG;F`{!;Iv?L`~o%q_fjz?6)-88w>o)E0lrQCOHY1NZXA?$u4! z`*rSIFh1xM{dIv*-peNHR`-PK)_-O=wQ=p@wg9PS7^8tVXi2qN6=++M);s*gWzF8a zPc-Yhme-n$fh^>V3>*V%AZNJBQGK7qIPhNCQx3e3a%~dAFReGwH_z7{7d3=c_+?4D zbR{o28K2>62tuux{vDweod&y`B|u{O^IC>bQcCc@Ax0x{h0Y)d^!cx-HA*&XOmTf|Uv zIFR>peS-`7z_x2psPUfl5k8VEcxndnPHVa=+Pc;sSqnN6HK~Zv=XP?1=^t1^KCdXc z{UK8>os_ajKx*9ysfDoXhRWUv$mz%%t`VLTjUl$^D&iN4pm-Q3YwU#BM5EN=5FX&pr|EbTSY3>7Gj zXEeN4?Q2_-ty|L*DXjlYL)-F##Td%kJvpCflI%;n@Q1-6$V27mGIqrjxTC1iGj_B7 zh#G>qWcJMYGg&F6PdTKcnb999sf+NEIhnPdiJi&L&g12D7_-qo%i&+)2mUZmpLTdW z&eJrjqkrP`cpRr0?x4f^8b#C8YgUKV@lzB?{-+MuQ-urf;v4aYW-(w<&|^-DvjEEx zcE1bq?Gf^J*e#G%VVAu0`b#nfJW^u!lfEM*c=2j?Yv3Eb-P?NmHn+Pxo!j~rZYx^v z<2AM0Mr?xiX&4;XT{Xr6>E|hQcLCV_rNMGG*;LvIFb_+y;B5M#>%}u^sqQ(-+a3TUT zyk5`g1;&=?jCfi*2IIpL5{yIM;o!TDU|*~t!Q(}3@1Vc8!Qb2KZy-=?;5UkHjLGLC zTneO~>~KXuRm3fW4}ue^iRp`B_Wk0_s&lEU&V?#Z$}2aOGoO-k}L8=sd5KW z|5Swq%Qu*}?NxCFO=s;~;?3$gAu{B`y^}58)?9#9YBXwlv?=OKyI3LAQq!)Y%0ZIb zdirzqj$Fi{R6zI$2$J&Gb_5HfbvDtLb%vWG#%JUGIfq8aa~7*jV0j&9@$e?URg1Fl zup+I<#(hanWEG64qgh5xiM-YlYYsRv5rLgqssHLf^LRceR1G$ErH; zGH4Jsu!O!{vg{|@9;@oX`gt9ASv-g$7S7o|QHy8X?HfAV*B0G|V8Q21c?DbJs*bi5 z1#53p*Vs1_O%3UMlRjYMc+Q*kn!+w#W6y-!^M}G+8M`r7jM`JtAji5w35T~e#Ao(%7okYz3L{JhGPt0fXYJ6yKc&r4g2UAa!f>0(JNbjRDGBJLinX&%d(ylrb*J61Q_@8euCyEW=yX-nAY>;S9! z@7&m+q8Tl(b6Y5yf}9-^^p1RQG*M>$`nvw4o_EKrwunQ^BVA$vzY*U^I&hUj52t{8 zU`ZN30PY|yu*4vjG~xH)R;i9rE{VfdoK#|xOZ4~wyqVO)60=;AfptU@vb@3~m!x1x zTxw;NOT4fZE7h^dB>`9`Bh|6XB|ccmccWvhD7T*cvY~$<=P~+T(LqigsCtV zGeImKf^SiWwPHQkLTm}P8ry{Jz;3|yg9Q>A-afp!w5U|L@s_4r!q@Ju+3jAl!M{P> zyMS4M6+0E3Tq>u}m2TO+VL@ju*STQB?psPK`_h$Wd;fKNhW51Iw6A+#X6yFa?bhY1 zoU4SwkOFe)-&Slftv>%;K*Ja?})7f-7i;tqu^Hx-V-!W77{NYqClktOeE|&(cpo`Nh z(dRi-`vG)DJd{DODV?4EWj33B3w{A#fhXhWZa2dZ@PkY;f4&!nJZJqLYvu+v!#n*eoha(?mtA^?^vwT8yhXkZpZP@$&1MSxG(IZ5!z&ot zVJN>7=EPzU*GbtTj$5%{_J?2zMq@7US?!qi zv#MgGDSqemci`*sQb=jRnhBmNVHsc~U=ucQs)QPyRA*0>V6*vZV#%;ndB^z?D13%; zmamyp{F|aL)6`S*bJk+jP4!MRyLHyE#a#%Szpu5`_?E18hppO#;I9pD-sg;YMdGNx zB@?u2MKk_GvuMi>B<nV$%*==2ZlF$ep5og-52TZwL1V_ENeG!BGTb|8BtMJgFI96+ri_`1b|yoHuPXCY znI0xFix7S}Nz+>>>4j+1ss00KSR>0BbsF$L08nve14?1!6uV7s3#a@s@e7q;un7H> z$Y}6CkSYcIQ^Cpj{PziDm{uqi@ciYO@;9vpcnkjgd$?AxvPzQSwU81r$6#JL`U0ke zTz=BbD}_@I#JJ2ZS@n17Jc_`7Qt1#*l`2=Nk=@*+dKHm^(A_9xNAe8G!^Mh?C;tsC ze+g2pzyqXOiIb19CRTO+`kBYPR|N}rGe?pf$_hUFC;8*qq>p9GQV6dLAcRjSu9dVW zQX~uf^zjl)`ku#6VUB7B{ZBB1(#j4mXzA&0iq+AFpD}V2b6Rb+c#IFx zTCm=t*ITRxe9dM??=l%w`$&?a&Nmp~uLeLpKA^Y(%2C&Gj_`^S6}&{e`p1(o6p?H8 z*XJlN(06%xDJw7V0j+M@!izfnqxtR#-#_4MPWv&M_?h#ro1W$m0d9}Ko<{c2hR-!{_F8@cf& zOHFGay|C7Sn+q$7eyylisrB}_XcmXtdWJ-+Su}>~ywvudXQ(4kJygjH)TrPsu7(0FM=^nAvB=S+4L--oQZh*fVp69BNJBO8ld{a3L-^V%%2%(|4f@%YdQW`O4gHDU ztV^j@sVI#-(UDxWedF#xlS|+X0=Ua!nVvE?IQq8t1@LV9WOsnpu?o^`=Z!4Sj;vU) zP$O8tklv6^{~pJ^%}XE+EpWV#!|@)&n&Fd&($bTMLL~2!o}4G^=Z^fjPhQs08BIo` zoX7VHR+w>L&ou*!wihjoGdsMaziE)xsx-9H7|8oumlmvq|C;u$)%BKLe6TTAztU%f zvqii${D0Z|68NaftNnZLY6%6;$-IJ8rGo`WH~@Zlhqdt<@q0X=`o#tZ3CrN?l?__|E&@duIs&vCIGa`uois zGV`wIJ3RyQptZ>*CE^$I7%w6&-;tlQlHEW^-|DYHC@>iqzt) z*yOkd+sdS5wiHEU4w*%@$h+ZcIOdQnIs~8`vPFx05Gb!y;V%*j{A*sZREt`3{+B9d zVO*jX-ZGoccZcahL&(2JMaXj!=SP3h7oo!+fBA7zeEghfbTtr7&ZpLc|K<=G#1bN_ zOr4-kPuJ^ZlK*6RQqJ&3eldQJ>-|O_zdy}C+x?C->3cf!sr9$-+jX1O+S!&;-dk1K zT{^d|v&VYVs=E4`h_n*@H{(0H+Ur}_ceGF{$6#;o>P?H%xeER2!g+J^sxr!ZvJ4!# zZb|8i{P?WYg;8ba4;I#CrZyIol&>T(4^lA?GU5DY55><}hKVp|jv_V3sKE$QspEu# zi1K5DaP75BqC=WLk1u{V8hE#&EqTpeS8hXeqz<-fLV7`(ab58oY5`YX(_NG>zuLCC z)n1l3NQR}B=Nrn>Bf?Wx7?!Q2KB&KQdrKH3gZRWKcrVH}^2?%A7M67^Ex;VPsl2GC zc2P3BB4uH5b{vCntsowPtAkDWJY(QI6TyU0rvS_X5zI+K_=W$M9%|`xiZ_<8TvwEs zSiGTP<%XifUbtjR&B~t_61lJ-H9LQvmI`UuwmvVXb6a!67RLi5+ zZuEa_i6~?32rB`in!6XkRoCPg8NSe!@VcKN3d8r9=v=rckF2 zsVTisp+pn17o+nH-hN!!@fH_*esgG;He#24+5FIw70HV;=F$;Lt!h47oRZ(TG$A~D zRnZ_>68lb8cw%Bw*sev@%X4FMN+Mz+G9#kZ%E$=a9JXv>N|~u+nG0L`V=7j*nJ6a~ zA1X_n4{ZFYEiqA%QPnk7kVA&m`E#{l z5eijATxxh!_{#iZV_0l-c=@u}w50IJn8>i$$S7JF6`^f!SlJOu(H+1~196xtkXi5< zmWIwSls6ugj<6@F*9aAgN9pBHu_*sjY%x_3+Y*;JC+7U`wV^6{nr6~7Qd(kvNq%^S z98B9qYc%w(u%v|KQ1XUQEnFNmlUvSj$A1N$cz}wQttVI_=b#}GCjf&%u`pBc_(HJd zVvo;ql3n&7%R|(SPOY+(q!(u;Dpbl)ReV}udi}a)^Ss6JVWE*>WO+=?`Kf3&e&iZ* zPeE&OvN}X3Q$)ovx=>wtZK+We7DEEXGqawcczkCTc6bWx@JwPEVK|t&2-}^SstB7K zu-BIc?DdO|G3wICSimoeQ|1=0TT!(xKPKMj*}#_58WpWpL?ve@FI{DbBa_z^EURZ@ zx{7OZYUf6#<}XZLni59dlG9wWkZl{RF5A&x8Lm`@MZo2`T9r}JnHxDTIp4Inq$V+P zWoJQreC84qhic*wHBWXG5lzG&l0|5r#+FBTsStR8q2o(Bz2>Rt^B0tf$?2gq8FBtT zpb&Xac&KbiY*NG*zYWzygi?js(XkQe+$w|pl?Gl*AQqx{m#Nip3l?N#$igMBg@e~* zgh9+oUawtrc=^t*fM3l9o?K~LuW@Z@Zn=35#B7Qm9AKB8i+PE)EKK* zo2p2DeRo^yiuN?4Ew$8;7@t)%zu%bFN;3K-OZ1t=%#!o(=aep(XUth#SRlmxL2ul1 z4$dj?9aztZ=hZ3UygFnHot>{=a$x!Yotb|-xG*F?3lY%~5eIeDlhg#D&{5+AI+|jZq8+4E!TVkLTVZN- zT6-6_WY=8@5s9)eW=;e_Ubs*3O?kNDETJVr4=T0bje|BNfx(LRd(f|qWFLjXT>>+oQ0<{u)yEKS8ht?_dQ&A!iAkxV2EVvL^>GipPyE@J3Hi+{6-xb2 z$S?mnk(K^a^4O(BULt?eCkm}7!?VaqWsg^0L!#2nkhlQp@RLb;ou52DyQovJ{69f7 zYy6CT1CV9U(r4T5X}hO2ZQHhO8`Is>wr$(CZQHhOdwc%xy>Iu6jYZsZ@A*|$R%TXa zRm6!nw=xaC4umweNt-5qXk8T$5fSVc%kY!(llDdi;lSe|6ZNu&rH8w-v6H+uBnKIM zAvEpjhjd-q#YPi}=5pSk5ZQ0aylTd_z>CIe1{&=WzPJ~Tm)$}d7=G^4{L;zNIy};I z5swCSdNbT9^UYTW6&n+y=oHl!{jwf3zz{JJKlDh7Er0Wf&2Wcw5zH$4y3Ab``ZAiv z>>OT6zhg|SJEwLeZ(@H6SVz09z0DNpq5xy-e14AY{Q^BvtED01dqEps`>d^Jg%8cGqx>o}`jnXQtF^MZ___Ob_kbpelG4RIz-%B&JWs-g#)6E) z+)^v0dRE!fNl0!02jxn+wN$>WQzt{=LsLp}0=ZCqE=pObQe2bCYXPUMP8qLqVSZC7 zNv)~u(vWM5wri&?!qPx*Pb#9RDy8l)O6rM4Lqk|SZEbcH#;VK4t?Wbh4f#T3RmYrX z=2Q5M<3iyg%Rv@rHPW=|-idQAWzI$aqO^gg!b0b%+jZ|XiMii(pk^nfEK$?pyBXni zyxWS)#FDDRAd~uK$!+o3uCa;pT?~+`iX)HXiDEc2`(5Y9*qI8x7gB#J9zF$7J~%65#Wv#97si*U~v$fOj zeVryo`xE!GPU<5KcN4qS#q{ojIbtH>0F@FR^skivMZiC>3V-h}@lyfht0P`$-u<1$ zdwNODe-9PovrRasnWS&a4w0M(Khdb4|Aj$c?UF^9uYc@IgOcK7RjEJw{YpQDr1po# zKy9k7qJh4ez{OMK5|UMETYqiju)I{*L9{F})e44qxi8)BmOH^h4TgRSk)myjehQ)D z&02qLcyQF#ufzjSgTH@J>QYsHZ72)gea;FtN(~N~KpZnCW4|)KTB8 zfZA=79Li@kvVS-2L`^vrh!R10wq$4paeI1YsN+u|GOH1&d-BYyngMwA0Am3&Korb?uyq^VWbqb#x68c^t$PlT`7Xf=CrRNZ-5> zVKC}PC4cYED%%BKzO7e?)h-)3bBzvpHJ}%m<(W*NO14e6$AnI|$Z0C5K0yn2g6Xr0 z5YNd9XWhL7YlPJ}65!!;eS5u5;VM3T+LP?hbb%fNs$o7<)@++D$x6;O?fcB?&2>EJ z%0`FEIY{)}8=qEqKhwV=Y4DmGV)V(u;AfrqQ!p59CdccfH{AGjZ7jEhYRK+SXQ&Srq%=cR8YchBl*bM8_^V%X}qb zgBw5qLJprz{CM(DQ}BE6?O6IKP)fSJ2ddpyuyid~+j7~dftS)_!g(t~d!oZ5zeG;w zPR2PdXDJF}LUp4$7O>6?7u(Ep6qk$pNa1l5LhGO#?8C{gEcY@<BXmt<+#vtkwx^3GAVrAKL zfmXbz_qrAVoTSI85qZ|*_N0T<&U~psxvL>d2=o&WkM-LaQ7o&oroU)Z``05JTX5e1 zBJ4xUuczju&sExz@j$53RawH=Qu;6gh9E%CT5E9R<4uIee@-Gi@3j^e42AJ|38nC| zqLeQe;ojUMJ{DD1ZnjNIg7Bl_^m^8Ae=w#^1q$YKZkjQ-7x`y+)m+VB?--7F-=qM- zWNNkP_VJu*e0>n4Uxqt#yZzp$1U%Z81nE?;Ez}zD#O4(Rq3m7oji=Dsq=2X3cDrDW zN~Q@>+|Fe4R^sRW9Xtg@p2O+=6c(LT{*1jhuugc)_tT2?O(!*vAGIkg=Ef|^5#q{8 zX(s3nhvpT-=m8;}h7Hm0PXK`nTl9h}HU>i&bTH`8Vg?<0%-_S z??Q+ar;z)3=Q<>5&FyRvcBp2a(^2zBrI5cfH05@GgMYXc+Fs>Qvexd&Pc0RQC7}-e zbYfiScDv9ej$SA@_YJE-R^q~B$gN*I3|Svo`a2KN7zQGqdjpy_C{LwA?Td{D8Xr@V zxH=JSbSy$xG&mY$EZ~`U2p5t(cxoS;1kYDN6pJFyn+u|OCR5h07%Nh@ALA>`@0H$J zJ{q-SPOyh-Or3F}p*fk+n;AJydh!`}2EoW(U$uIj4=)+jz6%@6sM4GzVC^;cQ^fo* z_Wi+aH`FyQR?&|R_(_%PWuK(&-m_o%ko)yh$O6kzA78rI1#`LpU2Q)&`(D&^2c}G= zvUHexAi}m*c3LF4QR%x-env~T=Xz68YevBC-dd_`IJygq7KMMkF`T3)Qx$v%dXbu8b{g`NbYBltF8xK#h~fsEt7N> z8mVP3X7c&OtXYC+l~Tp4#jDT>7<C=-;3SQZgwm{o&AUD(Amw+dJiMqdhFV$mP> zZFoQzK)HujC9eTBHS!BqLJxYMBYDh5CwMdGb1x2G24`Bv%=#MLX+WeDc`eIn0?k5z zrL6<{X*IZ6_QNA^dT}=uJ^`V`E*#7S zeMXPhaBV(xtCo_;TWd$Q3{vT7_ON!!0-~@>7rTMUV5BBC7`Aqj6)ydB+j^Ff+MB(q z*prB8sXh1;=lUeD9Y2m!Na`k5hUSwmP=kyZ>MQN;S5i^|%djfuW{27^(z-HngTmBC zoYtJfRtAG9deOltN1JhgsiBAP?SsatBQdHq*wFS)_LA8ZpcTe6SliMljMuS;et&GF zFN~^Tq)m^ivNa71a3FHF2PWJlyQHll$XhqwY*6D;=^MY|WFw-|uWe)x4m{Cv9eQpu z_rly{au0G%U)0!!j{!p8J!)4&1-dqSCYv?+f@?ZX9x&6Az|ZxiZ~;?KPBgQ6_qgf8 zhG|SSzfEkbhOIyvF&21rAMRvi&vH*swdm%j-RXi_51!cZvPQRLZy4Ld(0OcY1ztI& zQsD+RG2rf7R>Kqmh;o!49P72dXqT(14)?*j>C$(lFwhc?|6!T4X^f&x1Pm_GWx375 zX+Nh2Mn$_4ral<|823h|0>*U98JN%k?&E?3U<}4j!3gHSImH2|2^5 zPSMiVM-h`iBjBgB0!GV0-^aSW1=hT>O{viAT4})8>85*-uS4U!6r4Z>?{2zFUz6p~ z9ieSwAPARi7~8qNcj1(Fl9P^H(6hyQEl2@Nj^4wtWp~vwHrW!5Y{3c+4D1zM^By?A zv|aAmp&e~XcI!T=zv;%FH_>Is0p6}bGzMVZ=d%==7)C^es0f;4P~N-%0fPo~Xmvhr z=th9ko%&v3;$%}o4s07+%)s)WxugLB~=eX`>*S$GL!~xf<#GQyi^?rtV zxJl&Z84J{v+qABM1$gmTpLh%X+->uvwQj2>>S1`Y6dtiAf`h1 z$O{Hv)}6`Q(jVX$xj<*w#5TUjdzAvJ0$2wC=MRqp#wjfdtPIy9Xzap(~2U?nlNYm{} zQr(=7%HjKsTQ~LfrXlj^X7P>Ix{dSmA6RXtz~s{bP|Z;mp6;bA6H-hD@?#t01l>`Z zKjx)r=VR4spEllfE9hC}j}c=lRRe7bLge5c*mZ(;*ew%G0s`z`_FBd8oC!w| zN&x7=0XW%{32~&iN6XQel~(WQiRsM+XATO(Jg~je_C*F1GXb;G(tAH z5e2!sK_9j`xEZ8CB7-xtjK1Try?}#XrRS$V8nB|I6*{+j%DKx&eGT%gL-XS(Tz^1ME|O$8G(T||Xc z1nfjYwL55W1to!x^-BfD}G14+*}g`{pG0gtQ1*waEauDUi6^eerYF_$6QPg=7tr4#PNeh4QR;wR}GS3l{y< zgL&ymh=hma+baQ9VdtiViAZv({NwJ-ib+G$K6`_R==|P7frEzvy0??S`z62^IW)FI znilMR#CUB78UvxmmXRM!Y=|x=9*EpvNH`-+f~SsyR7;O=vwGX!IILo&07W z%(p9ctFG_6E`h2jlU4gZa%R?-n% z?dO}fWx_|md7_6XyP?T2RqZdkr1Pr%i`u&VjoPjla6`NpnK5n>FM_vtcPVBm=~3?Q zw9_;MQ$XYPKIp%4+VYIw^;LwEu`d9$^xVwL&={iHua>Al(gTM>{ z_F;MNcywPwzF5VAz~p%A;p$EU2NHJ6f}xiJ2mtGvg2Q0z{ss&@1L(8vzNYHF7U;gF z)kOz~=>mf30*1K)2fr{PH;OOFj0$jS)0AMV-%W&w{ATTVzf!}_01L&*s-a*%OMy7pN zVit<2?UF~Vty6^39R`IF?yd%-O$HR;(M1P@Spp7B1Ew>@dZ!fx2z>F*`9aGF6j%oE zJqb%t7&pMaC%`_y?rTb2Ryg!cFqo`ZzwS4S5u)yBQ1nnhKSE;&iv1h&xpubMlp*>>=rcKtyk0veA5HQpPcbf@+GOc zK~9(0gL8Vl(u`WaNE4t)Q_uP@7%_qTuAPr2PiAKH)TO8G8ZApm51-O)I!)%Dt&fjFl}b+H@4g~vn-+~t!Y27hJb z?O8tOi%S>p`@)vXOOY*bh&V+y_MWiefkcy|a5ynD)5EA9YowwF>-rU2agHQ(3|>Ly&8|)f^QL;HJWvjJBhYN`>{QHrCi) z{c&#Iw!SWFDyoLzP%D<4+u2#>w8bfE0#67$xfWv+ny#(Asikj$!R8)`mx2nQH`W9M zNYI7q(ncy_Q~bkU zd_e zJ)#Nb(7udNz=6PjthcB^gz|@q1Bt$KABLCC=Zinl-XI-T;yV-AR@NUo@>MK*-qSHE zNS6xMZqw)5t2jRs74m(C?5S5kAP!SXPY85B8msXNz2_1wq)uU3g3vzMtR_mhhURX8 z)`LXiHT!srv8VZE|uzaxs`pg;S3;H8u9zh!If&d6-lskQi5(SH4!YU&e>VhhWhc_?Rd; zIUS5pXnsGpfX=7M#i&ACcw!U@V}573JCc~icytrdBq&Zdp#-@78CzaX3!!_) zz#V84twzNv&t_!YJ4jp(>ukpAb)VG00b>c{pxu<9(cA!ncy~=o3Xw)B)%HzrS;E=8 zyucZ>^&2Quq~|9^tMEov2VdupE6k@~^$9ksA7-owo!2i6QS1Zc3Tn5PhR}m3fyIi# zi`vSn;W4n8*u<=lsw}E18Zxa2oqnyMN>}!MquuC6%?O<@0oC_jt;vhZ(N@v}H7_OW z@A$zPS}JR!gqW$J>O%(J0ae{FJ=8)^)k=9CYi&6Ob6{Y=KO1Yx0(BMX@Y#-4&_IOq z`uq&CNgSIU2HTJir~*YHTazn$cGh#=SJXP(DR-mjtqE2Fa3N`=woJON6EA(jMCI)tia|7Af&l4&DPM#vs>){w0E?x!hmVf5Y@h*MYfTkvJDvYE&ak0qZDWR1b5-tY>BBvv~je?o!%y*&^*YOa3Nt{`=h(mw4h_n-_2g!z`nd|YTJZmTc$0CXBHj?;NtB)CLR^032Ed;-9TWp5}rM0IZ-x6j-x^N5uk0ypg z{Z1nB%7ymIg=f^T;x5WZIJ-kLXBg#9K1CDp$8RhafL>fhTd|Q)n$J-J)k1EWgo^ z7r1X|7pjPGz925uh?L8%%o}t2fx0+;`k@|sDUK`UEBn)|yNMV3xsa&Us1XP=MJ{HXhpF1yl;kveM7nWFN*|B_SFlL=v&`Q|oc^$k;P7M};(1yaj7`|+FkKy6 zSz$S1rLQstDn%^0zh9$IeLcd1lYG8iC{(m$HtL*fmmhDWXdrYldQ64}%p9(waRoUx zqA8i;=5fDW4a!uqcs)-;Y0XKQ$b5EmUi27Er4Hi0EAzcpa1rZx{hpZP=@{Jjeg1JW z`?-cUt5j9;otbZL%G!&4C#Es-+G2L;2GXm}-5^uH(o$IEG#lD*WTwXzaafxebSHD#{@%rVCftY9XnZZ-APDh^nyLaV)QQA$3^^q}d z!(nh%l;e@NQMaBhZM4%*!Yjf?UBomSZ@zPNNH($2vlVs61Vxh)9EyJ8z`#Ib4PSdL z<))wog0wu*Ti)Z*RyXI|J!%0&{n`aI|ZARF8MElNF#Q4aYHdgBm4X(?cj19Z%UFPdL*Oib>1^3O1 z;W_DKgoRED3#OC7U4s`EQD)0q+|EPM*4k%7s#~Vl_QzYM;xFVaF6Z;{t4xl!&7uZS zV!Zy(nmJdpj}@$_038qRj~4Jzuj}req*uu+))tR4R6Hq&kFht{D$??{*B=~(fA|m2 z5Nb0A%PmR=Ff^DMR;<=uY(_|2C@Bo%Bz3&v`T+g#8{Oe;=-gNbS+`H@o1LeES+08Q z0n@UEsPzKcn-q(wg%-XZ+TV>ZuBUPq2V*w-M7Cb}rRF`owq&@i&fKbY=P9O~7}ve7 zwi7=`Nh4|64r1J5dEUaY-W1l$+&YV&sXwTl&cG#J;$OwvgkNIXWEq4q#Du; z6m78G9$K_URIc6@cFvS}ZV^0A3o=MqhAt>t9}eng;ia>5>_px|TCgOuut(|Bn?FY; zXHPn!481n)!p?)j$~IF=>AA3$=5Fuui;i%uF07rTp13ndDP0Wu;IBF^O7Tp>KTrE} zuDYl=EZIECUI$Ec+6koQTry7mpmV%1A~e;pUiwT@7d_tlwxl+TD=^qyJRU->he$U) zw)?PHsN~D9Qk{t`Hk{CitjgUf=-5}}uE+cb^3og^Habd%=-tmC9~0IN#W1d^u7~kf zeix{7t{I53RYzY-c-0-|fL!^TidRZ3B1}BzAsqO}Eaax>+2tF9V;ye1K`DdL0AgJB zlUjAH-(6~*wY^0qoUgTAHY9c7c-?1B{O;D!{XWw)&i@j2i~3bYzfSzeZP{u|K$zjy zs;OqpTCeHihJ6U%pvlTWBENu)p7|+Of~k^u=PNxjtVM`d7gLbe7fy=BH#Qz01F?DphOa<~2m%U;2%Zh9 zo{Z0zR(x}i5#9J{=rVIC#DN;SP!CC;&{cQxP0^_O}?WHN95t z1`p6hCQ}VD!~3@DMJDde&jLyAj8wa4J4ea%pf`>*33=L}CEpgG;ew*_p3Z~74fnM9 zCMa9Ts{$uMc+&o!UujTRm2_@A`;tbclOsM*<*Ujf`tsrSM0BMvH3K z_LRc=nRM)zAQ_y6AW7%eV`44G6bk`nJ`C{r_Eypa!Q0HADi~?b5G4le4)?>wG?(;z1U0@kxH%n zWjhxvt2p%*o57w@C<Oc4t1H@du6cWy1Z%->@uA;^+EpOOY=)Q^DkV zH;a(Oifgx0C^Am!vv$c1RG@9h3hZz|X<%qA{e4cnb!Hud_VI$GIJ}}upYMa5G!Bd2 z5$%3rl!On5I2|-a^^10b)tr~Uo6|#aA*5b9t6&&A`6`-yv(zNNnh>lHPd7vbgG2>l zH8aqb-OZW)8E$#U_il^L2Cwy=Jvgv|HFzJn*?fS&4rA~(u*GNl0x(D?h%;;Ml+&h`>6%iKPs9)qQM3t zLv0DV=>c%_2p?px7v|0YxSx6YhEVJM=T*k1`YNi~FbnBy=ZA047LW~ z*$kwm+^MZR_T_%#ovO>e$0;L!otn-pzG!4oJ;0#UuaK$P`ssPJx=I9C*Nzg+Rc9Q@ghaF_;Sb+16!!ykzU}Qnp)Ah|d2*t;dQa77 zm&54TNbWxbN;EFPuZ!_&)_hLFAX0IHW5KM7H;LdKJ;DbZG>4*sO;w|F^L2hLol@tK zhGXtLDp%)c{i=xSPiECCf&p+Gkjc%=r1rL}t3NU>3{@*=&%ADzH%!{A)*(OLz~CA| zwsr4x`k{Ti5m=WYe%WkOFb6Qj)nazz4?kIk0%zpsf0RoLBW3RLipE+hiQ>hJ-n}Ty zsYuW9^73rU_SIm;*VbJFogdU>xH2F}Q1x@~R)(h>$0=F`=XxsvB_lPAjA<7QOj1Hd zt40dix50zpM@A2uL;%wv_7=ktRa4i& z!4HA(tQx;|k8S=Gm{Jk~Ic1Cd@$(kSu2g@hz|e32!Hx(W1>~8BTCkEQmC-?%BRIu5 zXZpxRl6x~oub=$pf}#>~m| zWhHSPw|NZjIIj6i9ekRr#`l1LBJun(RRC(UMrHrgY>o+JEMdLffnzj3GCR37hg3Nq zw`GWV{G#jxO0{y)2vT4zc{Qg~d4>*D|-B zP~0V?pEl(&j7<;@KbUsdP63t9LQl4gg*nMr~Q ziaI5zDXI(PA6fLZV=GP8Aijjsm`;hsLagDkFq49Qe)3VTIp0Fth?!rF;nXdFpLab9 zUqq<}5ae!_>a>>ksL?n~5~6$DW<3atz5X=2q974|FKeISF?-Y4{N(!${Q48ZBu3i5 z5IbiWj_IBmLHMDD3c?Ua(TjyES=#VeUkWQjwlOdrCfLm7*KFA;g^f<{uQ8LVDHd$A zEAePQxX2;b>T?A3M1!d-S^6k$jZR0?2Cm7CTXKz-<%*ZrgN6XOoQMQM0+vT893sa3 zN!l-lmZep*p>D+8=CO|oV#a45>Fg5AACdl)6*CVyj4 zrZ7Qvr4TJ!F5(1Ji4Lk&YrOu}b`O{|KQt&FgpI^Y)KpF}lP6?CO4_B532(72tSq~z zW5AQzb+BgaV`h;r{~j6o_`>~2eg%7p#(8KxOdf|*sBDdlHeb$|@mBx!pspDFbw9&* zX|KTF=HGpg4LNnnu#ATO(~d zPfm?Sm*a#40--mPyWFLZs;xed2}>_`fsKX)62mA-diR5YOVhD!*RAHqmuT|5=L!H~ z^+qmNQ4}6LJX{ZMr`^nd)&z89dbc24PTICcrYK2ST10qf?Em73I8aC>h*jCvCMz=4 zC^s{6E4P-sn6o^S{!zEq0~Xm3-7R8JEES=yXAMZY3<|edt)Ees6KEn{(c}(?t;P66 zT@Ix%r$BdVC|aQC*jvud9oYX9_oePT960#ddpnZ6}XDU4)<>fUE`$|e*Jt_fyn#> z>~RWu(GlEHq^ZJ~kzx!d#qD$DjofUF>pAnZVSald&uz`nC$w?f!0y0nR#CZH-luP5 z?>N?Ypk$HyZC7EpxiF9IIt&ryZ^g+N;@qhZ4&C;wDI~;Xv>a+RWIhonMIzTNIb^{X zQB%_lHs`ID_%^VMzGN4hKLrR_c$psE1!Q?r^HMb~W*7c*zbR?=4f}fg6kB zwO21ntQYn^@Uj-W+N(htM%)P5eFivwrE!VknT!~gj$Yq~3Ntz?ERv~SLLVC3`5{g%_n zx4+K*O4%IfTn3u{IgBD%XZ(J+2*v=ysDk%^wt?tr&VmGd(W(CM59K>j{WJfJpX>N4 zMGSl>CMBJJn+jD2K31Br?2bWHyZ!XN#{;)Y+4jb906=_Mn+$FvaZs!5&Wxsj1kdGX zfbwO+tu6xRZ$AdbdBvT|1Kpn+BSc?inW583A^Hq4d-A)qF$+UTg}v=pn9vX4@QF!> zumf8Ya$}a}TUDhjxV0py?m;7n$DaGdB@D)1W=y{%eeW=AZcb`*_44I?b3}B6RX#?< zj^yrEC*`(p7VnZ=vHmbEf>qh{JdH^xHfH4_=wwT<#A9e?qaL2Npy2}tDZ`AyIjn7> zKeRdmCHeq60kT%_fUKf-7`mVa!jg5d>3p;{NbM<@ww}J1ml6|62 zce_vI_#aCIZ`gkD_W`%XOeS$YKCnXkpQu`O0ME-9oz>a-@!0&UyY^r}&+&lI(JhCF;ugw;x-x)UlH)h>I*uMKiWAlx*&2STbM6CC;&jr@E&;p-FNUV;ZB%nw-IS_cxPdcK9 zAT^w~CG&e3L`NG#Nbp%O*2loapY&aGR%)ly*UG94e^HMwYqN3FQ{cy7 zc=ie$?PyvZD-32g;P8YfCn?{dAqn@V918aDFkv6w(HyWzvVE&&p#2M(zjgl`vV0rF!p8O=Cf0vc z{bMNGchA3v{v(_5uPuy!Eo5N(E1Qw-FJ$;Do00KbHVfT9kcsJAIn!T5S((0-(=*Zk zg@0{kp#3{^y|FW5l{#ybw>tBZNnKOQ?qhWfIPp5x7 z`n&O;&$pug!rueG@wY*L?fXXmpNju${C{MA2k_st?*RU9z5n5&{TtK&WAAs6{}bJR z-M?-74&>hm{?q;r)IVeY-v1q`Z~C{RzE{Ne92nXD#^Y}w{^9zL!uS230Q@(%{MG-@ zTIA%U5jL~@V`N7oY^nFhNYKc@#?XjH(#YE6kLll~$;}N5^`EuuoURq!W8Oy#6L{qb zg|jALn>ywQ;WI-&thb@s2>#oWn1QlZE?r>Lvlfj#xf|@|i|0n;bykbx7V;hoe9gdj zCeA>!cNA5xdnArsWxHLAXqmd|`1JlnObNY&qI)sIlvxRnB?nK3LIFp3c zUEB5KjcL#(JqAg!)T(EP%uidgJq3dg?R=hX#$#2w_nnQqF<3U~^BrsOJJ%p1>dLf# zX-U4iX=Z_X!2ah62UGat*l$N3?%=k{)7Ivvr}2ZU4S|&ewcB`{c>M2@^zBu@0+UPJ zJpsVqZAkx5Tleqs_j??4W5flEwF6Mp;jFy&00Cn-EIvQV9H96X)SlXr_qK2 z_ySNs^CW=e`2>qb&E~sRE4S*iC;;rVHug0Y_jaR~BGyG6gd#`1fIQj?D_Enm*C4jcT(o(+DmnG%z%yn*suOKPBzEqn;TC(S%AhVfa5RSi={

    Gd=R zNh{<$C|ZQH&f6O`$f}>hTOvyy5A!DpNWu0srqjfNo z<%6G;KY$m=$wafe9RT>*C&#?^8sjwh0OXoQ$oc^_Z_?jnnxokTeNz8$8g=9OiPiX3 zzW_-A`GYc?8Dfu796?mUOc4jXlFt?agbe66n*r+aX#C1QMIxM`M;}po)lh}{0_J@t zUVpOUY#q`)V!2=Ym`cvN@)`U}`+mK>{5qBVr2~6UTmGRk7VZCi8VOQNlpiTJ+TY&i zJOuW$%;>oizxi`3hUp*rX96!iGZ~?H^nKdD+5VRi|2NqC6{VXD2>-<}w72#3w$=2i zf#CV_#QBcb*`f1S+rP&4I)PC8T=rMh+VmsI@6&JRfR4dMR|oRL&G$(rgH!1GNypeP zU-kGs*_`QLWx7b046%PbvOMnb{xR`P$dZK$+1lg@1B^lIRJyPE*>9Nm<4fzU-d-HK z%b~r?&+6+)tCQiq$xNk1_iQi|_N;A5tKD%zs7%G7qP^PQ#bPY?FaX+ks#LDDtW!lz zPFq=BUQ3~E8F<_GzEnG z$i`GBXEJ4NR`%-FRlo&VNq%WZqtdrZxdD_3wRo;j&cUHnJ55-7KpB{2xC0qp*g9Oi zx}C~Ydq-oYGhgUnRlpL?4dJLlWsZj9l2f6-2giYGZPMDoHU{j7JO$-vj8(1c*Lq@| zMh7Kqz;BpyiH``Y7~%9+VMYBpcMOv}4FM|hl~9FIOJYlMJ6hxFmtD8q7WAZosA^bYNNJ`Timj&}AntAQ3ODUh>cB&7I&~#gCiOqiP5nL6^ zs)a=S@x;22$rL%2TgpzB;!fF*1Nu-7NP>_7sJfj8rdAfr)w0 z<;}1x*jQ&{TcaENMbw4cnqH=3!Rz}nOGABT@Y3R$3v+DgA*-;5)|fgS?aoAvC9_B%^srK-F4 zo`k?q;iA?%AF!jK?vC8=$uK%r$LkFjkQdjo4|+eMRf+$Y()&Yvi~v+O*&Y&cd`uW4 zoVAW_7FI7}uyeqzb}RHalQowm(u%bz3`2^E)!tLUyot`QTqd6jFW+IvF)b zR;itfNbJDkKflrwEu)2d@8Us~(VVzxN9%@Gzd#_A)3_wkICY^k{P+^4@hApx`v^+q z5kKA9xGHNy-Pmv*w}OYR-w?l0E3O=^2AB#_S{N0I*=3Ohgs`aYQo&E*BnWBhuq%q= z6G;}aBz6-5v?>U-X@eujy_p;S`%aZ~@T}MN(iYMhQG;la9>RIgdl5ZIo08I0E}U4r zMLtJy#yk{LPsu}-A-Ej{Q}xtD=LwYj;V3+lH!l~ANQ*!Wy7f=L#^1RWiR&JRnvIng=ydfr7-N(YQ7^F%d~ zgy(sq&I#>C_J)qV+k2S}uceT2$5@*})s&*zB>HC(df!NS@ z3pB#h4iZ%S(UYQZFpZzTqC?UL`l*quu7efn-iY{}$m04St%qhr?4I?}lnIa?$iV z&yB1eF3H1bqoX1_q4z)#13q zvfn*R@tee}dmMH@hqhePEXDm;3Ao7MKGak)zOubwz;KC&J8UZ64i$7a6(Gy)LQJuJ z_AZ5%G{N}%1MYE=L0Q`t4eFS26Ae7DP~RtP&-C0*V3^}6l~l~iX*#Ahi>PO7V4;D) zq!-0XXr~4O?_Spb*{&>NkM+u=7K>$MRko(3%1x1=R$*q!O;`*5pJ)K9ZdF;9S@w;jnz`($hg#eG1BVaP%jyQZB(*_@yr|C2 z_$+|rbXn6yW4D4WwjY2+N5>57&a8o=EjJ!LlvCW+lt~LJJ94?{Ra-IYx@9AKhJSiq z)X5E6;ckBQ0|#?b?$y?4_uiZL)9xw+gCj%{?m}Y}mMaNs1~o(9pj+(JvN~m*$CwY= zVJx!%C+Y6Z?ttjS#0ap>*)IM`j%bFtLG9NHW{-$kC>LnQyaCu1s}S0meY2(!T$y{b zp052|uz;%9cWZCXSE6{Nff~3=vEOs~xM$UHNw*T0Yj>5m;>6>i%j9?m)l0;p0tL62 zZD!Oo#Dv<6_>~jXEezqj?MaQIC^&k8!~}J8JO%sXoW1*omvt1;{pq$J&MtpSpQe~@ z7M;t-#uE1x5ht{1I>)o@yWrpi%qtvcfHOc$-qrRUvj(yCkAB za{lbz;m1WnXKbyn2PWdU3<9o~uc#9-gorv{{AcUc*o~s=ZC&q+Q@fpg(`f(K0bDn9fZ<^DHBCBb@n zNn*j2PVZ-=T?<+aIlgp1ve`TjR;hU06X;G5TWLwHDF(V!9K=-;`>7CV5IoO6|ZO5`vm0y9n|?CdnSWl=Iyqb?!x9;}qz<6MY6mx+K~u6Me=+swCPe zAi^fnV}Ue@tLE>06Z=(4C>if#A8HgD=dXjmLn_)F}A zZS=u(KCSoJL4ME8d@2;-I&;`@j0~si3PM+y@WU|Hes>&Wg>vd7OBRPlhMYz?wB5U*iA{FiV1IhfA>}54zxtR7nd{hi|$4!8D$}Rf*dZP*Tw5 z3$wZkig;;7i6Ci;AL-EQu8=Kk{te_CkyX^t>bXRNrH!r2q=_E9!5(K))QM4Rt_oxz zll2m%84Ho*ZfXV}EJRizjLu-`N7HHzr;&v(R2~CST!~6p^3aUzr~<8GA1sf*jPYKQ z(=Cg)L_SArWyiQHL*3VDqZaIy9&%(A;u$U6@#DG(@lq#sn79#b%m%@0lW~sPNGFem zK8KUW==T}WyQ^+qV8J4yNW-g|NSksxSy)u|#FBDE_D;l-rVd?tqBuRf2IEiz(HJw) zW_!a$DrQyJtqn&UEhveQ*D=G=49zJgOjK`?DVL&ZHLE82V;DFuS)&e?A)*e@Z$Y{! z{w#v|<#!Rz*Z6x3n%^<~A#5yR(VRUnL~L1KLlk%4f~u#wI@V_!%qP$>=~&$}WLla31d~)s;RI-E$&}d%N)EGP6H(@qLLA~mBkbPuDq~5Tc-;eb7#fbBskuC(rz z>Qe5{IX`bDEEc+ep*h_t9w18#*@VZ}%m@If|H0Tl0C~~{fu88JZQHhOTQlux+xEY0 z+qUhVwr$(Cz5Ttr@7??E?nZ1xRh_IlS$R%n6r=L|@+|OG&VsG$XRk!%m5sis#5kY-oQ* zNUYGbK9bm8h#n|JPl8*JWQ3YdXSP3p@fU4* zd5GsObSp^nu3Q_YWp#-A3#7Ua#Aqm-ApgZshXV($_?DO*8mut3{Sbd(g+9$Q^wSzN z`bh8KgrBn=3YS1LRC15jN0TD(Pl)@BTwh)C%4FTT;WrRMFaMQV-MpT^>`BkD-37_6 zYn?zoaB@$U9mhX08xCGL=qY6JDW4EHJA~!2gq5)sHA+7WdNC}wRH%?qA?$%!o?XBm zshXWL=U4y}n+s&y#!u{_9Rh5;0dtf`5LsPXU4Lw_qt%eobuj-*gaWEJa1Ba>9rF`G zT|z7niavL>=`S5}h_>DNWmvU>A<%_6H_HCxpJB5vWVmGfcP#Dlj4)vS#MK7^;(TzW^R1oeeh{Q|3Wy<;#UiuUI)J08Ncs9e&FY{?BEe2qSWn? zpfG4i(hna~JD|AxUJ%8^17#jkx`%j$Vyu@OScWgNFDhXSDbwcP&B9?eZV6o%N!)Nr ze+zdX%(dZqt(d){?1kT&S_uoA2;`IaiLF!tF(4G;m3B5upL{HamHKN`-LFlfi+=5b-T+@tz%ZQH) zOp@akjrdk0(?5XPLU;>DzewG|n;x_rfQ_3KTgdN8HDxVNt-O-w z9P`5bAlu!(RZzDLj*&S;JP6aEQaznnjDH^l@B&^Bb}M34F{ zxXJj_>4SV=8>GK9F!yqLn>r&&Y?snT|2zav!2(3zJ&z7BHjMa3Iw5NuZISr8alU$R zq`0y2W9%GfpuPLlpy+lEuYxGr9uK75(%FAucB9*h@??wQi*(oeqQ)|`Vs;@;3)4{V zZUtHH62I|a_BsB;yCSA}NwQ->ji=cGxM3;`y6qZlg8rp;&#vAhae~GAH6}3jRm?p~ zmKh5yKv=cG*N*b=TniO_Bkq>)jwJ09$Ui!Hpa6X@iIMF~v&*ec&;i~IN%v7RD!n7g z^73kUvRSX`g?X8RJri$Tz_Eav>_vTL4zo$I=Da zxiZd}t0h=at6Yox!2RnZqW@mc{zAW%rx}?(dK2FL1fhAbx(DgG$J6fT_NNuX5MtxS z^U0Tec^@S1A!-(RI1Bm7m!;sE+0k8UEnwf5bL)-_^QX@{^rk!LRq^LD>rEnY&obdX#A-LFq7uf>D8@AOOHESNJYlTRdOV1X+<5GG*-?!5Rxv?n0K1i>WC5O&<8q zj5WRb_G&B4k6U_ClS>6VK6)QKvW&s$S6V zp(S67NWg5)J_B-o9YbPf&kJ$FROosDgP(sc3&03bEV>{UgC>eyWJM4T^OUj-T`O)^ zuJ1M}krLe#X_T?XXJAwmfjLULB%mrO-5{;DgocU8MM49spDIC$@kDtda2ZEvX4g{H z3urFyf!P{}l1Htys0AH&%F}RccT`(IO2FOWrQdDLWsiU3aj+E{$0$z23N2jZDVBRS zD@hKjNoJKDao)0Ug)y~P7S$~HVP&}0K*j$H_MA>siFfi8XjPCmd{7tz+eoT!!K^|5 zY{4SGP64%HwNlG$c%?L zCF2&nE$$7OF&j@a>Hdk1r3nv%7czZDw)2m}ehGL!X5J4o&t4Rj5>~I5n;ia}*vYL} z*L>TS-Ds%|+-BX+Jx~?x5Y#Y$m6it;kL?4kfjJQv_y7-^We z+M5oRk;d{XFTd9aY*sLe9B;l$$^e@qZ|IqsJ|VFDYhKVmw+nMMMdcPSD)ETFgv@IU zfgmjrgWt$AH|{SqDIKsAo?|yykRnIEDV&w;pgCq)mRn@N`c$`Ph{|S(%iTP@P_7Ye zA|Ot;$O5%e9AWj&7YPkHK#PMX#!iPcfs0rHB^swlqQ!|LN75+tG;i`W?O@hm0Ax)( z6NQ<;PK(%_tZ*kV8(G|5&)k)|^kOmP5oAZD2GSHpwLo^4l3K&^4gJSF+a}v)f9T$O zT+|ZA704&dxWPF?j8#d9wn4UOs#s3DQwPaZ)1qo9>%qn*#5<%l#8b4!Q88nYTO*gs zUr?-JkXZvU4t4V0>ONGM5=|^%)~H^+QZ?*SC4=N5H(ID2LSZM7UkJUxXl&jDguCbE zlo@+JWNgMN5$%4F+yHyPSSt+5-5iw##}AtXe>ZL)cFlgs@N3^B)_M~;F2C`0xPFE_ z5DXr0o$c)@Hu6Jr?+(vibWg{t$(w*Rhm=V(MT==+7WiHES{X;7f{ndKE(>kbaW~T} zC7&#p7HR8E?sY#t#L=DO%k{*jd0{DNSd)~T94wh&G1P4Dh*8lf|L2HSJfL}?>!b-= zqu>eIEUdGAS<58rgswp}j+UwcJ<;r7-d#OIE!iz&t+oqosU?01u?v3BTSFF82l@g8 zt;xKkNzt=>pCY-iNP&(>r(-&r0r)8kGfA6~i>?53UrPVm?p~#zu5V|VVB2LYlfa>* z%i=)yqdisNsVUOiiQ{dS;^sFuQHV~}t5QwB5m|KE)nGQvU=#ipq4`mHkq6zR*mun< zGwLf!6k`lxF;X8=ROkHl2yNeok13Nn|aS~1CP z%aq-8>~ThN>vB5>Cc9S4N;7uL`c*xzMZ_9^ZI^ArP3WkLR`{k(!}LpJvlJ$$l$~y$_>`2}fuFEFS3AbdvGw305dyr&Wft zvSO>Ua07YOu@|XcbUqrKDpPoP)dYFcI^N*~{iw%ecvT%o(nKV)r@VL?$ZUD*cwr{0 zD1w2->IesrS`HBj-xwNYF&h?^pq1GGDa3ezntW5%=fVtt9Rw>jP z+#I}$ruX6FO*xVfo%V|$HIry9H}8vt9EN{xO4%)^*7cs}(HgFNoV*&CnV%JO&t1uf z(^*aCZhUEX0XQ;pZ}Sq>yNGkt$>PT}tS(MJxmyFfHB^F)|lOiWyGSD>lTjny@*j}KT)*d&qS(F|YXypMDmYzq)? zZkfD`honOK;2s6q^Xv_Ewyefgq#!#_{J@rL%=mK!@_l3o=I`+VP2SDf^QJ6q5Ar7K zZ&u`fIvo=aCX?ev797UnF0+{pvK`IW)AxHdQnog^T5-3&Upp0Fo1u9+`96FirNRMn(DF1 z(Q&L&QZ%$Pkqi>UNiO*9ZyXt_-5%EK(H~#)cQNdL?`E>cIj*~|x^TL^?J#zU9W6^A zE5y&-PJ?pzp5J6b)E64i0v3;7sB2L=O>EI#4MPV|2y_RQZ|`4WUZeg^>0!X-_c9OJ z)c&GCPS7f$;AX@g+N4HilE4=kn!$Y!eXfl;+2YUl?8x~AGg{PFCPuO96CS%uiQB)7 z(d zXmf%F0WUTkA^-esW2SO`6;Uu|elTp*Cv*ajrr0HM65gVFj%MpayoSEqf~lXAw03pI z?7Uf|%y<_g`1vdxce32~+z^`c&P#m214LiE6nQIR9`N2I?F$ifW~g(=(LcnA6Qm_eVY8&Om<1$QvBk>38R6=Vsi@__0=eU^$kv0A8+UZ- zbkOreHO$$YAm+Wz5V6Me^?mda#eWay0iVW*%qjLJj#ioWSTdxG0=QJu!Q-sBYJ>s@LvKMH6{{-sFVDAawJ5907v>lttSg=EQ~#+A|2elxz~oC=6bO%?vQ;zM$s@Qo+O|1wXYl8!*HVV zpCT3otrsIKYQDE}Lg`K_`DcXU#+Pzd!uq%5IY4L#!<9Y=Zv+YiSV5Fzy-;K^C46UYs&E$Un&3O?+jEhnn3qvmWBNsZaS;k1d^;P{}j8x?v_BlE>(_m;ZpIr~&hu*vMnHHXYC$6A9xw?-2q zha(Gz<9m(y->*b+wjYVZDou4;>rZM%TiXBawEn$ma`}b8zG`||p0^76zbbuJ!1dQw zU;M@Vq^ra1zG3tc4?Ysx#2@q-mA`{czEy{}@u`S*8Tl`qkQXP6(=% zZ;$3*HRHzbUxlRYuZKfe%JYs7GS6P9zZT3YyB-_-)3Zi6^VDV{I4%9r>ISU;r2nct zLxQWXk*q9p6pg?&*R>}+!Ksi`@U4^*k>_`%Bi_NTA z{WC~(SmiiSGSSKHECUtR8$kS%AfJR8>r0x#K9*r7EgRv1>Q?g01>P-* zMAmbrPly34QdylI6N%)Ex@WnE0$6bxq_F`A4|nDdNIJAExE_{oLr><=2n2_;f}Zy; z3(E^I171=PC`uzBZQL6&AOcB|U}MHsfFJ{0WZ$Y4VZl-Sw7tvCW_4Tv&jk2GDa|1bSHY^+AYI9W#E zgHV!0E)esSI|VU?zZ2C>t$mo%U{8v~{G3bhJ2bK276qGYhPNZCng#rRzVwmD*wS%= z_1~MEEn)&k>fZ`skJJ0PLo#`k$PPf&&?_KsOkk{F1qm4So!BD!G;#7e`nql$)QInB-}J2zuhUP|AZ=_$EWMi7?vu^=7=^n#Db^&k_kE5DK{bw z>CJHl6d0<`#O1$Qkq(xEOs~|0MNL;F1id-bii5xLlFRGy&w06v^ElKF=5VfNfF=sHZ>}jKNly3Ze#o{Udj}LSiX~mi20Jl(ZBctPeM4K#i2R zv?B+C7YcR0*Db%Fo=b%3Pg3e!o=@N#TI4NCN)H~KxkRHM- zLaaVD(0hzlWkcR5l7x4*igphaC5(o3HzMd9A*@5zi}{nIpoekdm60{!?Dy!C?9D=S| zsI&q$cjnwrISHV_8)>n+N`sFn5pK&=KyWo*EpzP1S7Q#Gz3lKGbd_FncsqjJXS5_H zWywktff}vpFHl`fI#J@y#ffagQUZscbJI%XSaOmDKH7zi429(qmf3r=1#@HA;_{?t z{Zh_~RH7rYUN!4gd)RhHWKqp;39GhSd(+LiJfru?Sxuy3_Hp62ZGbkLf)<;GN&^a( z*NDiYPE>0l=6j-4U{AZ4rzA}2;ze!a!l)#A_-a{wR2OR%St9}fGsaRWnKFtQ^RC^6 z_H$pAZFAS0PR=!bjp?spn6}aIgwI?|@a8XmxN^*KMRMekS(*b4!xSf9B9>Jir|r^V zr^6HyI9MK?Wz9dCps0(bdtR@v>E2%~7tCx=OczFM?95eEO={*!Rk?tqiIdMmzLbw} z2{!S|CQ9i)q1;(w4^x)y1>X%wdMn#~OhoBuhMhtTKo`l#ti-^EH*J4_P4d)X7DBEV||w?XB0%)syTuS_%9y8UX*;%wP^<4i1394<-!@s zLS0BPqkdfrgCkT!0+HC~BJ48$1~d0o(nAAiA~Jar)0xv^4o6`xB})f#Vv|OI@I1KslB;g#RG_@612C7FYgf$QT6-KOx5IyAgZ01WL_5mhos<}p4C}PW~ za84|WEI73lS8DBi)O|-*@EeU@b;)z#2y!T1Oc$5jvy+( zwLO588)PIHc6)Q|5UhZSmCMyuCONKAdeVu0NB$7xWsmA3S)^{FXNc$%SxBdC3SOXE zptjY{{k?}QW|1x*Awx-5G@5s?)!GT*OsdRtu(wAq3JtaGZ5bubq%_&l!$e%Q zxq{ZrxiQvo+ET(jq7tV<;j%|`GgM!s9lc=T2dA_ zE^*Ll;&5V?1PbPjKgZ9}DlD@`P$LL)_o z5JT>a9V9EXr;L1BI{5mR`yHEWXYHbrwg}iPC13UQ->s-Kd$!ck?y8^yULz&$kh6t$ zah@dJPYP0KYxG)X1d2ZnyfOv98kl{B{alqJOqJ4QgXAGb$c~9Dv8{?hP88J4~k&L_x$A3c0w-U(BBC>-{~_N;F9p zsKAkB?rzLK47u_@Lw4+(d4JR8Qx+G8LzLZ*shLqV619aqD%i^SYmY$~6HetHHU2<`uaTk&OtLT`#qRiz|~RpPpuCxHM5e1#R_! zp(~{qV|$n#@U!!Q(xCDslEp2Q{ibGydQ^J~^th_!!LiEx#fg;ImK3r{^Dp zLCTPIvd#Q!qQ#Dg9_=|=4pB0&RWe*cX5cnoQJ?aPD%QV?0zm3x6gYPIq!FP1X(L3Gq*4)s9}C-Y-p>Z(r-+B*d?*B-Xjv=G|14Q zaQl&1A~IxYqB_YuQc_$eu-<$~B`actYr60#e^yVBd|+Np!Z5U;0WnBYH>XTeO$l*`BUYm5iJnDGr{;JOU`nTY<{gvasE$=z)b!^k+$g$m)alLV_ z>UiJjdFkmI;5^}aebnK4zxm$1y4f)bl`QHRnCF9%Wmcw1p5cBReV!oU%^ zj`z<6Xoa-Y>xL_6*g+hWGnPY8SBI>vB?Lct3B=}>_7s1xtQ+NMo8 zX{;xzk#z&)!wr%(jT#?6zC`Knh7m5Qx1U5ZOFEY*!Tsgf@x~;2Nbo@;6yn7k>K)G9 zg-!($Fm5E10YA7qSaYeNdf@<&p~6IN(4g%i(YG~cY30lmvv0LZ1`~&^YrHfY-K&4_ zvqEpt7LNs;HX3mD^Yo)Z4@}2I(_&*L-N^Lp5x+S{JlF$zV=AFOjzaMEQPNO-rE(hx z7*rUJX{Lkv;QQ3M8BC*b9DjWD4cyp<#3*)Ds3qt8i4epgwHx}7Hq9;qkB6|%3hu9G3>MEK>7=N=-u&wRsuG1z5bCF-KF8-;?TtLXb_!70ReBh z(8;bFseu)_axQ?<`mFupwyZ!vwF51?TjOFW&efdQ-O4SYZ^S)3&i*{Zh5@gOT8qJB zFAFd%eSDJ4A@=oR5>~%^i%?U2b>?Jlu~*Roa((`I7hB#j9xM=g(esm+O|6+~XD3Mn zg_gn=%9`aOc7}b9#`_f(>N(B$G*!ix16|Hy<7%}@M(lL$m3AxZ9j5V5UIo0-)qB6e zV)^GBl5|IBRilqf<5~WAGrFg?Om)N`{!1;@b&-uKQ^vc$cxl}L6+ zjfLl&aBI!=Ip1g9#EM)tey8#}tXA95-pkF2>fg56mX4YOcR1G^`@HstC1{+N9Q+3K zGmW$!V(31smANXo<>=a`MsOks#qzxB{{yST;bQrDk91{U#Jn^KnApOg<) zJ2=GH@*F$ip|xVd#DUw{H-YeF$5walQJfL^n|Xr;4OCI`Q8K8^Y~4t+i20hF>+f%` zF1Ocnbt-~-B|Y+@Fp_m>El{(ixw~1#KtYxxARmZ<{{bP- zZs)Q^3`P+Xhw=yW_tIbW){ab0ej>x)Lazb64j2S-)-4$&aR0 zFPEGv*Bs`YZ8+X4|8YM(p9HjPNQ#@*Jo^-ABX3%s6gvB1DC8i4Pkia0$9iWpq|owv zh{ZK}jU50Tz?R%2ug={zn*-v$q6+F?W+q=sgBDk${IHq))m9HGv z-6}2X&wnX`>h9xj;|Q2ICZlA}GU^#A_^~_wnbK=9aSgs)wbioHy%8BPStd$$u=o>X zeRLPX1J!AaUh46A5^gH9CPjSWv!>EAgBJa%LLJ5+G?P>anEWSN1uogs5{?=axuDca zsFhN@MCs%{ln$W-681|sA4O=H*Qfm)p~J^r?#pxWx+{Q}o56YC?+k%mecYp$N8=N&L|ZFgtjXu9>kQ)+*cB3OPqi6O@1=yDe!M) ze|zg3&yTi`tP-;{mTN6+|43=A4=Aa|@N@Cf+ug<3Y1Yf!ZH|+r*hbc1WP5f|UTA+- zL0nh8SbMdn4Epv$a5%l#*w8GK>N__CU!C=k$bCZ34U5ssD#XEMxkPg+t@SB>miviS zqdd}Crvf&E2Emj<(-ONFmhy^+z~EN3d0e$_UO*AFiBf$_A=J1Xh|&!DW>eqMK_UJv zmfIcc3=*U{+4lM#G^%WtD12S@-LA^Pe^j8s5732bB38E>0DKpzX` z+1uz-{k%0(W*V_ZbA(XRlD6Zh*J(t(=o+JKsvVH1jW_ZW%__xjI@&VH0X*I8 z)lohl9ry!2wb(ql^)(zK85i5zO=I611w!+O{`~czYul;qGJao=pg~39Eyi0++N^?v zai{;=HXNrI`R3LRmt96at=+=yDiv^xI>@zYSWSD1>`fUv(fB5|_AoMcf6%qr9sMYID6w4>+atLr_~C=2kS_y-{$2q@Hj0h0M!x#;ID*G=s!YBWZ+rn3&Gebv+ z6vt*Opa_4pvp=Zp-@f0c=L7T+gN4$zhwjJ5W);Lx?Qzj@mW|iZ-PS2eRd5p)@>_!O zTUG-^O-ni-Nk@E*>#4%Y-@V=d0ieDo2Kr@Pzyt>uUm`}epK%D35f1$J)Pox^Y1!%G zJ`ZAX1AU;vq%i${Vs*m2vkPH0{(|DD2h(1_&S!lC4I7hT^D0+Me7>aH8M+^y;Pk!~JTb5vUKJ91va01H~oE*&1trU?)iFxHA!nI4z9&)|IbN5OkR zfy_4l=xwOX$?@^=*Xl9pq-5Z2E4{%~a(hu2O=lOSdBfe+WMLR7WZmJKINLO%6nB1nggZGPd$>pO0CNE!Mh?auPSma>PPmId8=0Whmi{KzXxqwz zaRUc{%WtJv$Zu8hN9f!mc-^TJ3a6k0&iG^Dzg1v+%!ce;eqy+rrZ#sHCqs^He7>h1 z+Hl$ba*!C#kz6{Y)xewN>; zaZFZD0OIpUDj}tDX}u5b*L@2;IfC1VIOs;IG`(W2u$y>nJFY8nD9mVFT zxYXdeBfM%e$-89u>j5{y*GQKbBijO!@(1K)KK8EJ9eVLs zoa^Ev+pT}~ZwK_B3h>*hCsWUg2B(@W$wdQ$_XMm$;i0zd0Cv44$$uE4>9rC!+%xS) z3w`MoXwk#?HxfCn!+4aZNAp^iwKuj8{@A--?IXx>Om8#o%)~k`y(NcHkbvWIGCRrz zZu-Ce3(j&-gOqT4gv;7Ay!A&OXAg#0JL(~hlEc>xktNKy*}kHBVn};39~hyt=ApfI zZ+KEEtvvTd{yNwe35L7g{5Qu?<)dV>(fx)B{Q>b$?VNVvJI4e16Z*3K_<}*(Ox@@7 z22aIyk)e}EtMz5X^_mv%78Ie)ec$3cPzI>$ubO)`_x+C8a|@H&ag}^V!dcdv84lOU zVX=zklvP75wyy0av63b(!tTvy6q4iH3KYIkvAaH;zr3l;;xicREi1&q?Q(YR7W6r+o6j+h6zF z4zsC0XzaU-9c)_)s0q#%_oF7)O)U<5TCI~_e7E~j)y{46@5)VkC9j|B>T4#3W*Q(zeqg(W5hEjdC@OY160qnZH*a8!HpY5Y{ zUoWm?mf-}G)F^T^m%oAGw?zbZWms{$tf6^kw(D*Q>|Vf=rWty+w||69`Pz4kl*4Yd zvgD4{>k(_kIW(V#E%&4GmIBmy7N@$$X}adY2eE5>1cmc)neq*vjE$6rHVNtB>+E(( zzP1l^|D#Fi&FFPb1zdULFv~E-Vbg%&=rFjt4#c*ihR3%Z-Qp_V8ZzXyGYsfU1%5Xy zRW~cw^WLsc@MrHWhRPM!$c|{)toYxU9Zv&|p=F*3v{-K8PO42jD;IM1y-(){?^~XH zo0=uu=IKqe8k=hT^xW>3JqT@d?E-QmI&BT4ob_rGRKsn_e997?va9`RNZfa$qg@2Q zTTBUbIxgJ3A+)~c$CZ***rS@Bx;Yk{CqFfY{jc5vZM5F@%Ds+>mvlBv)@BT^T`#y$ zx$P7S+Gt_wBntDCH-XS!A2TGb8IsBGXFHZ=J8hJEe3qdibW?o1GGbQ~)w^q$4;9}YQ(SZ4H(&4TU#-ixFWfSbGW0f? z#0kzGY$}}kW-$V?q#dH4&d5?7odx$5K(=5lE_9c;yK1ha>^{pEJ0$RMA9?LWzq6~S zO%ET_h4S}5ME739+aWO>V3AuOJxJjHPX2e(;n5p1wIt>7Uv0he<_iZ$XO{ZR-9k*7nL#^T+Ht zMu)^0@;c{{r>oS62BT4saoB#V`1(i@T=YcO2_kz(?%hFM5k*cU=I4V+3laM=#Mu~c z<>o`JW1!NfS_G6o*Mt#mt= z>*&cq25G!==kL8eo%@Y@6zFDnZ$Rz?lY~y!mGWv~R$07+95+pM`2NIvyV9g$XW(6~uGP9`VPG zPWQ&sh9eGWcl6{mB@F|v94b03_AAD<8u_cazF!?(?K-Ns^dB%CeP4~iL+67-RCEKJvwIRQ68H!K?_Bs#)aNPsZrY;bA~g=rFGi-}^#mW& z_g3A;q^0{jWg43C}5Il_EhezAgIPbU815w?#d;s_ZT}`Joy07PCl+8dM z4VL2XEibi*o4&`b3JG%i(p(`fhQ>}8@`!bB+X~3-I7Hs_!J{dJ?rDJp95PO(b5%&) z={g7q2^`d^`7cdZ@5c=bkEB8fkxAL>_zTOwlwK}>8!z`Z@seVQ#V0heRCT`RcXA50 zY;m-@hj**O0Czm0G}{;`LAG*`wSbo(gwVbY(OtTHI|>Z7cDc@*mMS%5{_ribnk^KL zW=4C5xAi#fl$Bh=P94ty-@oM-+k^;RR-CyX_qj(ILtxc$u!coe+@8yEEX4%h(UXx{ z5Ndopou%#>C5z7NoNnXJcKuqFZ}aV1efe(T$K`x0uQz%rsez*ao`aKUlTxh^*VRoG z9%skL^%Nw5X7>iZ0ej`as1v-3%%Kf0ad_<6Ys2$X{g#0N-()S6_e=Y==bfM(qt}f> zw0(g?29Fgd2+x@9m6X@L^1Zn0p_*E564=+pXB)}>f_@6P)yJ8)**5m`=68VlZOasy zVX#%F${}BCZtsA`Cl1$C*ZPbK-d(J-gz+sW(QTKjxWeYZ(l*0JJ_A$-yX|H)^yS3c zb8rh^W9e4-z=+9|giVc>W*jQZhu~M^Tgli<7y7jI(if^i*D3e)*R|z)RQOic<5B|p zaR}VOq=4)GaF1cPTFnmC+&k*VTO7dcgHnFj6Z7f&ml;!Q)c+HFHp@ zVq*E>{jmHe{{QoSSpS3L{GZCq9RDlt=YP_7{*zc4S^onm{YY#aZ2y<}|GM>m=>AU| z9E>c4?5s?L?98l$94tTd9hU#NK|kF8pCt;F^7#>)KDmH%4!vHQRI?LWK! zF9?|DrKf(<=2NNsn|4z7pa{B$J`GnuK)V=z*vXpUa(%3K5!gy3HX^=M3-@buF zfuU5Aq)mZW;i?Ga%>L(3tx;8coV9nNi$ zwm}G&^*X(u@`K4F91p2|rA%w-Or93UgBDY!EWt}VKm=13{~2B7L;bm)0!z*B^|;&! zsz_J6V7&rP{b6rJ+NRCVIJsO$7}{6i%f8aBAR0=~>}itJWiQp6y|O)fGg=TYZG)wz zw%XlZ1lMc{gtzjV|H53WE8R^en?nACy{PHE?aSvH$03gbyqObzG^pEl*6Yt^@(tNu zgS_m}`^wsk?ir827xzhDY|9Tbv{_8WgXxkH+vJgxx`8ULz5bn~(e3nDqjj9+*y*DW z9PXy_$V?_^^`Y_Z&OJtNsLY5mY#MWeR=2=ENs6;K?b5ZoVr$@?K>@PlvJT^dtkUxf z>j4fZLa+hVgFm;Z6ZbuAPc!v{fZHB@x0h0DHQEj|87khz>I~k!3DFnutLy@~8P(KQ zm08Yal|vN#WvI*WZR$?VWP$&ah)9y)a^Ls5Fi{v+0M>=7l(0w^zu0q^{>jn}-QYod)>(*tNjY=^+F09kKN&%f`?3ffg^=`jJ2u|RTTWYd-%QS0P6jN{ zm6n<5w%_drmh2*h4ZU0gKLfLVuW|mbR(Df?s!^y{{?y`*TaRs5Uj%$e zdZM)8j=g`o1V#5dIp}Fqz+z!8Lq!D)f!TMC`E>`i*>%GN>lj=6z1Hz@SF7`ObOxs?&PD zJVf!od*q7(==7tB>Hq7dT?`0tln5$t$Na?1J2aCZ!e0>bjKb7Ly^^h<{*3TrdD!$J zSd0)yz0&Gnp85o%`q7Y@y~MO=$uJdx?D~dpmVgJIk;v9Q$dO<#%m5aO9#LZxkcprm zPRHroG#R_2#XiklaqfoejIJ1;H;K=%H?!>k=KDXlOdER*k<-kK3g1SDgWDZXK41y) zIDKf7?31d>x$cS$GWW4Z`jaGk#+Py|rh(-Z#j@F~b@^U>FZRYoWQGHKvjySwourED zu{j)bIT;C;nT4Xv(t2au}gOL{f*H zZX-rvaxGq$L!$}W!isxyx63M9Go)~3<@TPmKK5`AA$HM;ikkZ_9i-%VJ`{QwU&$Ph za`8pT>zmbfKfb+C6{p|FN*J^HuvD5fP;rT)p8CXc2w4hHK z=pMg9*h`*g`QjIy(M~s`e$B?}o{nu{N!knq;RKX{Z&j9zOhav|hhh^{)+Ls^hhJgz z+fBGu?4*YqPb;R)loss`>{5=-@vJO8)?-@zVm^7P(v`qYik&tfevt;tKJ|7@LEB1V zhD#xLF*^FuzY$~>Z{fU{i`oxG=^E0*jzgQ4vpX<+fP;`-42Oc1st<{S4N}>1|D*Pb zZDXP4`wBk7=w&HtPUv+<*4Q90N$&BUYV00|GOhPjc(|Agx{QOWFs}=`_tnrmA4TbX zmpPNKfP7^SDtj9dY8Zn3bFa;&1@*cJg@@Z8bugHGfIpJiC384uEpS{0F-KXdQWd&X z)yS789L`WAu6V>3%L)6ki~t9^t>0ldFP+G*@#1n; z_3~}ogo^6+tkMzE821?ucKf>~4xj(v{H!sf6D`ydO!y&+)pqwNS<)tIJnbXh0WvD{ zVoQBF^eDeGIhsP+%p9T%`XIh*-ncc~V@%mc*;Qy(-cZ4o3eS0Mrr-wbNu0JYmNUcV z37U3%QEWPufrAFzTCbIuX%g(EAvXP0esW*%T)=&?7-rxarV{4abFsLlJyJ`?+Dx$x z5_TPNlYAA_GMJguCD81#*y`eZHpnMm^thRVrO$NFg9pOcmbXyA(uu+)zVMd@&=jji))>xdE|4WJHkyH$!_3G1XLsY$2}@!>ax*q|cosdd)z} z60RLu5NHJ2CQdKYe&>S4OvKlyW2oXb6cc(FsuXE*Gsv6rU{Qm8&fa&!XnIMH=(vAk+-{}zw(P`ip-8$(Ov848*Y96}@#Lr75`hvQEJXYLTGpr{`>xly%mn_-7lAi zzF;GT8;lC+-dbfqx5$P>kJe7CD*Bu*DAiW$;~Vj5=smI-egOM*Nqd4;_nP>Or0$dR1LGH*k#ZP^*Lg(-1NY!FDaE0VwJi^ z77sUXvakcCRzD3)XjNLh+K*V=*hRXK6#U8d4*E;U+}Mo9x)9AzHP?S9+!Hg3d8flyIgD4A9Iyl7|PH5 zXbiS|RaQpvp+zyXd3>wY7^U3g9vu)SWHpSba^>_6Da#a9ryz;OJxHd=-Qe*lTfomK z>rU_<9dquhSxzXUU zUe-lvCbT~+f03c0-0;0Nq>TDeuRxE8pM%`emM}RzXxZs+t6G>kuHMv_otKBZ-7#}& zbi!8i$x`XGBUk-t4FAGZYkU6byF+7&9%#E~vdj)y%}mBz&P;wPg1Q|ysG*B;t?4_! zG2Gz?Bd`_1jke$3Ro&Izk-uis1To-ve#HmK>gjF+U5$5EF9_aZlDLAu+a7*}xx0{l zD+}E=bb83-zHlk~v$0@-@Qh&2j%0pD-+DU+KWD#2-{-GgeopN}=~0mbOk?1@TrwZ= zzY}l6bJpH@t1g{|5knK!CppSwt2fqF%C) zEZD<(EB0fRkhS92?VR_%ZM=8;HqLwZHpbhzP37ITRp)KEhx6XEh4J38h4bFNnfGqq z!g{xCb);Bk3$vMV_cGqQwwhD!+{$`?yOlxYj)|tN=|ck3w~|9!$v?kUEBJmJ=L#sL z$sE{6=8+b080-C_gY$mg!Fo4gxv@j#?P$|_Z&*vbt!p^%T1>0gsJ(02SY^#i8=dii z#x~;JfN4FZ8{2qqdz;F;u1)QA6*!#v4o9BDHqv4CI}EuFZH_~g?O=Tl$a18NF_08XlS&z$=H6t6!$^Yo_E-=F4A zuze{RnWiC`<_wk7yN@)JxuV@X%xfC%HK%$^X&!TOib+T@?E(YE;77mSkaK8jH0xn z)FPoMxyV)IEOHdtip)jYB2^Jv1VxqpY9iSxprX1&vLh)K(@G@2x1yUBs-#?Rg`};V zS<^+xEg@``m<{L(S=_c{CyWO=9B@R+Wef!NJuQy3*q9;>pQb@|B z54REOHu=`@D2r!Y=D z9jup5dBVNkK?{%{>_GvREkD2Cpv{+sv;GFGE>o~swj6WGDHS76eu(t4E-mFxWmQRq zq`~M)Q#n&g@L=T?tmI?G;3>hoDSrZQ;PjikC$8jfr-c?x>NgS;_34ez-mF7K>?z`c)@Bq9G*Zt%Ir_ro~ zKX0$WK&nY8$sr!)c?>Bc-ht-;5#aWLadE^%R3O9G@DDf!?_hZj>mR~d_#=G&BMVD| z_E?7Y=OO2y2fqEmxL5H9NG`F!pJ4;s1goJPmg4i*@af<+lyzd2JVB|fgr{LQTnjfu zIv=LryRN`(unYcx<4j~2%EHQ|ft7{6FTn~YU_We!kFfuC_~oGqe=2^eQ$0`4A(tXY z2Y`DWtg0PUgL?bOXyo}FNE3%;D|`$WeDk^7EKlbA=f9P`?<5&bCXqxOcLe?u4q|?@ z{I$HHcTw+-zIA;|`BVJgxYu|Sdp8#k>)|Do<~ro{M{pYY{y)$ig(yTJ3Q>r{F9Yk~ zSv)Q8=xgtL460zLDh3{dGANU4_v{Gx>*seX*p3ig?4enJ*F!T*!7Is^H0acFht!OURkKj+e?6D@ zP9hC;OHblfR*&+-`v38}&-mT)Sn{k~M)uQNEO~<2!)(Si<3v4SF!B{hHerab4(B5I zIMH&v?ia@8gWxzT@N#k^_2hiY8D=Gr_KXTwt?VhV|8*gko<_Hb0mu+vJu7 zl~d==i?1)EluW2YN`igIxy$%Hpv8F3FD9xtg2iHC^sL2VH*6FcUbij8tHHD_gfV-u z7o5dj;`Aj@a%NpohxG7*)dFssv8h&zKi6tuf-(>XQIj+BmtVbp=wLka23bMY_omBt z$k%i4_4djxa)!`*`&$64$nOUOctk7d5E+g3?htFxXc&Wi`_Gke)8mG^<9MP=TT+VaPD5QXBTZ>gB@QFRwb5i^GwgQQ zC<052EGuZWCN|b?kBzlIZlnqGN3~hr_ZhQxiC#P;{A98p3Z9ttOS0Sk#vLLY&p4R;x@Z)qn>0DgJ&$)$dP0 z8Q20;8T<~9m5O3CTR^B{u-&_N%g1_eowjG!t-12!WV)wnMlG7|H7DfvNXB<{?|*)B zVb3+>n=$P-tU@fBkjK-J#{%TQ^e2$39d7y}NUt-Fcf0-ZLpF*!T2IiM#_QreiJtpH ziHW?~9J4KCR`Vm!DEiHzpP4`r^df$UvNx*1n<-ze%qrJ^4o8;nN7-63O`$Nh@nvr=X&rl!&{YIlADQ-B=i%Ifc0UX>s}l~}uK zOI2?(`ziOy@8vh;Bk~*4LnI$>qA_jMU9nKv_YbZddFp`zJOLJp#U-0;g_|@EUb90Z zX%1*uo5rSrgfAe=k|kt`S+`~JIyNh7QrZ_HIC#H*)Tk6=%Fykhlz8K~?IELj5QnXP zG{?c7#~KLusAmjVPFfISJGID+3~HERYgDO|Sw}z`S=_?h(+i8r}$Qg+s)LV=beCKn3BU0KDRw9!6Sg0DC& zqj*F-`AyN{SryLwN9I=D)Eo%R>6qI5P`$ zSKt5H7HRF$`+nC=RI~nAvvtv^^7j2pSL|OGlwU~99q%0)%uP)6j~_m4Y>tbyJumT;@f8&IiyU%G08p?*I71#I+FE2`Q7fwVfl{1So;F%SNI_Wgn zq?rc03Z$7Thn6*Kwef;E+sv4iL(l5B`oX7=hWHOU$=Dw|)v6;U^Y635$6IZ0+Q31F zJL~X7-Hf)N#`s{Pm}FKHP!WR)4;`JJ=#3^b%NaPmPHW-}hVH(zVvZgr8F&@LYRqPK zbI5Eqs8uXSFe*{0HF|?t#gkMN6>7ef%i!~QhWFJW!oIp(TU-Eqak<5Q)KTgfkPbY? zta1Kq%X|6Jy?#K z{xE8~16o9p)!B870TO{>xtN$3hBL$%7|>d@jGlKm?2LVLh_M4oh}G+j8sp}W2E!{s zpRH%~`Z&vKJ{(&4eS=TAfw+!xxDIC3)upRE0?ou1OW z;D>{ro$RHuhP*9%nRvca{y*{y@;SLXA|HMf$|oLbML*~)ItI^XJ)q|o@|*SY_wT*`wVOEU`J-@*99M1t zmZxA1K|W#lT}*r*hDj&K<>yE#_7iaT9cRwrlL3Z`F)EdY)oc#2c0FD=jIc(hGa0QB z(-?e7ut3CpTCHy8ocvAi()ww0-zOzZKt3k_XD0C#lkseI7!Q`N&ciZMOE^VhEOhss z-fLA&Qc8LaBtQfig*fN0XDjR#P3=Y>t9je&Rl#l-_sX3zCJ zN=g|!-}(K*2yfK%cI1M5QOJnNk6|)(WQdwrZ8nxmpxjEb8!fGZHQUNqaovF89Q^1Q zijj1*qM^h(vH(34aTD}Zu@1TkiH-B;WB8?3$uAf*@iDR_pOqgqrD%=v`{W2o_gGY} zWRgx^XJ>4Bxb2dj9QMV```_BpgF@<2k!AB?6;^T*@hjBASw?XBiu-yC=l5s?~xi+r*emHa%G* zFxd>l^c#ExC8`hMyApbw7{%jY{2tc*b4;>)Nbc!eOBh)ur(_$NeZjl(H_Q|An2+8M z^PpHYP4Ud>FiI3`F;>uMVilj8OxadN?b{!$zCPlg zFIPTuN`;V^G90bYc#HgkVccB(a|~Y7vZ_~35Q+-@ zj^6ujYAF^!Buj^t_~Lv2ik!c;Vr_G|gVT*D3c6X4mllnh@hpUI_1s95K_1*BhIDxe zc?|0%>Y;>>cf>QCGsem2%|vTLgcI=0ghZlOX|t?pT&zDKB{t=bP%NhqtYr!3=k5sk z?Fk84X{)UyYqg*yT5Z9gw+eM9EpO2qpCUZVOUltnAFN@U!a6-W!+=-9*#4k7vp>>~ zjk6**B9UWUf5e^9c=>BBqh^ju&YpHv$-@uMxcjxMmi&G~+GR6BLkeb$PR%H5DxSWv zapcVHZ!Ej|?E)fBm=K$pmoluRaHOm3)mxX`-;(1>l;4ieh&MPg^4w_we@;T$)aG@U zU-P>;!-pV;QqV@WC@1jyyppD>%&)fqGNXMtli9Ls>9&Q>#OwVv@QN{wO;^M`7EaU|@cVt2dq zD6<^I&F%hvHFLCgIybR5hk0{9dxWT;>~T|H5$HS49^vBASERsZu}q_Osu`^+Ud8AW z;t1M=nbpUQ3xVFEXN5}$Nuh>vYIn~iqkT_L;0tdE8EutE~IIpIbP`t-2i z&Ifef8quC&_L+;#Q_Qo>i_L4zx0>%WYwKJgh`g&QMqwk;UZCM#b`GJz1ybO_J5ENP zB|V+KzR1HXxM1b;)DaiW9+BVX=Dxc1-$()i&@xF1O!J4}Q&r`jYN(P_3k|1#Aurnh!g0h+v>fUgYG1q=;Mb?n{3; z_vUl+uL><(xoFO;)hk!>Cwi~lE1y2m2lA_oIB)iE9@@6{)?27fj7Q1btVpI%Ojcs( ztsy2>3D&lTG!}hCY2z&G`lIJTQCc|I!FV|p@-B{-*_#)k#9?yikzaa?8LR}>nM^6p zb((O%==TrsMk%PXRfLE>2mHBl7(|mWQ^E}57Rv{@g>N4CoG@>`G?^ns@~g}1=3RZ& zocdKa?;_@Z$|Uy|rlChQsj2P3+t%OS8Nn(EIb+2$zD_Ivo&ZA(JkPTvj@%oHGil=P z9iOdX?+j^TO)+Mon@W{!gYDnC% z?%V>0!bXa{%|X>rrRI`)n=C~8Nb4;hpOsIMA@3ghM*i!biHi+n*U`#PCKCI%ePo#Y z?I)xDw&n_jk8%pP6fsVKOvHFtyArJaHpC_x)6MBr@8ZpIDUOt_A%}&JbGle))9Z)w zsq1XWPs-G|0Ykb#@2FL2vsI$1QdO_w(3Y}u(ox!x*8_PGwp$do=Uv41rFaa#{Kl$# z@82PD3;%rZQvz>3Q%BkV%Cg#d*IYHban%a>WBKJviLUmM%~N-in9tCo<=(ck_r%nO zjXSrtZoLzAv>p9cE$W9Aazq!=It-kdLvk#5OK&5@ZqT$1#Cl4oH=r7dT39JBl}L}; zjbPXpj?tYNhKR97hsmsh*)vt3 zWworKO)zE~8RPjA17%u#;X4OA4J*?to0}`A&Y4r8?DW8_;J6tx#*MH2{t6DlG?5pO zCKh5v196~$OLDME`Qv_|>knHgL@$h?|T&!5mB%BP3oC=!~;`jG^ z^#Q&O@Xz5_-c3>_s*WNPCpXFm@1NSB(3jIS??~l}kI7_a{LvemdjFl7e5Cct-j_Mp zQ8oAZ=jEmd&0M2mQDHgi%>9!5DLF=z@gg}o!g6esUwpJ`zOwt$cS$u9I7Q{i!2{38 zGa~l89e2}140uJ{b!!M>RmdZiMY~S0XQQjL$C}suSd@-d=*|U446wLk_=Ac?=sN$3 z0%H3}s{D4(lIu@>98Xfdl}U>H;fX%^T~_S8Sw2F1Bt`N3@=)$E+}i?)isyIrdw$NW zO3)@y-#_5_lT|k6M?C)pc1S&cKjjyBe#>CT|JKV#dJpfLzhvgZm4_RyTiLsZf2VV= z{N)#l-yc~u|Hg;55!05iuNcZLRxnJ$o0MR55Z8aP_a)#_71_d7_ujs}Z|N;-uSsW5 zce=BOkOo2sA%vKOB|r!XArN-5u*oVqGk^}Df&`g|VuK=6@5*be~&Qx9Ze6r_MQ5b*c&LUA}u) zC5#!+y0)Ms?vg1DQa|ZN^Pi~Qg>Sy}8D`!%I$cz|GdfrG&T3yRq%-XYu=bA_(fR&q zeftj{x^wg0yG1!+U0e*zK3^zNZc*q}!c_;+^Z!7laik@--b(C}1u%m48darSmN7vpvwy`y9Y`wRvx!g5j-H)eM++Hza z%V(ISI#V-vUXC6#r&nmqqev#iD^kT zjWw@w)~FeqZc3qE;nfSwC0QY?sM|tCde*^$W-+1NO(v63&KQX|pi;?oyjm{jcQ?uP z2x)y_=d`?9p}*D1;o00Wj^TXGL>+=cZ1#nX2-%UnW-o{Atr?A;{9t|xJ(V$or@&mQ zyhAv6-~cW?e||$CUz37o;Ip5;KV5k3Q=#p?BqW`3)q~y?HHU@O$TUP!4GO)Ust(nF zKv3@hl?Nj;M|2FJR~PB609N{3z3_^x_k^$ymp(SR1DEbQgr8s*^dCI8vV*CH-k>9{ z5kAx?6iQ2FaWMlIU9D5v>fX@O}zTkuQE^bbF-1iQ6MZn@u!U>8zczEgc)!?@`;mK7){*SyM?#9tIMm`_zQ&Dc-GHjRGc#Q zB@TV_xUf9_N=o+zR_NbZGO1)DvpiyfITW$L`fsN6xriQhioC0?i7!7X>wkhipt+V zU5-LW)pG%*q4JC6Fe!?gu`fs`M*un^r_vl%)H;SP zcf?a^&SG&fXZjy3sGC(+P~?v-Db6>ISUY;;qDeWynrSsb+{RQjRxN56J7&B;BU@v& zn~tX@xkk?}FKVAwU6P@pblS`Wnb!d`2f8QZ%}gv!WRfj;7A83Wv5?_Y(oLycv>+GA= zdojbD#?Nn?RVp+xZ_McxK8D#*!c?&_bO+jm3PK4QHFHXnESQqZ=#x`u~E~*^A{z&v4Ng zgr0at?g1Gl@h2yi@Av$BO#b+`kkG>{lodTF+;MK)y$?S(heX5FFafYTKLt6-M5U-9 zlxt%7g5w5*^|;qthO&f_yJvnO6(n4Xc(rjPA)x!X#EQ$~6`Ws`#=X1iRy`Gar@*4#Nb zi}-l0(91irN0E!%P!HKTwOP%$&#TprjPsUs?z|%v<9Nd{pD&OiKNc@ZDRpU}U--UA zCX6Kqlci{IBo0Te3>*eqiF+KO9rHtby?5RMhD(}XQruML%C28tQM0NctFU9|^uW|J zc_R(>%!K&#B!g`CZk>M94u3&%MeB%B-IH?*I(E%k`pm{kl`yq#qNEX8TU!TaOE>0EAC=;3=owqpTb~`Ay)7j!!)`1uj8C^4jE+nu zs59cn6c&vclY90ouN&pd zEi20njJ)!5=8daYQ7_xWoZ;VPKQ}oA=OB&UZ{13*82PgwKhYa zuhUvz+@My;RUI3{%x3ABZ-7}VwDu0OoTZewLA@rx?F4PFg=5S62Gph2gi7BmmUZ6(@(Jx5TiOnorX zZ+K3oekRXs4j}??6p{l3<0cDtkdHOV4r1Q5FkLol7cm( z2~fGdva1?^khyk6t&X?a3o2`CD+}yaUMKgq{fz5}p}D#Kr^~(AOAgCHMUkCo`kygq zfCbw|nQVeLL>jbI+zz+rUS`a;(D%p49!U>$ z|2vKZrzM57cq^k6<3RNTaiBr$8yp47{B9r$l;gj-%-laH3bYSad}&+)@}jJeEn$mU zrNSx6Td>N^vdQ|rv4&)FF^w7(TQL@0&0^>v2)2X|M~0DpsJ_b>=Ey`DWDGRJ2#wL8Wysw?$p_)1buoTpK^7uHZy|G%MRI66*0c8i7{J29KiwBX7qXF+P${8 zuv<_pN+u-^&hth`v!x6;I2=8)^o9d5=^BZ(Hc!o{@W;pHRAgq1@x|kkakm^^)_e5U zaqh|mJC7`%xx$;fq@rQ-%sf`^-@9<;?Ja(MX2Cj7S-mgNRFRq-npWBQ+}24A2mW$k z@f(NkSvC5gQB=hWrgmm{N*mn87AudGa)zRwXi zZXb!clpICkeqWS!#QsNxS~93ssO8E*%ehc4=mx9OtRovkN=W|FHr6hM&F^IC^zE5^d>nkt4?WTtgF}#0w>-4)jOKQG% zWXX!7o5l(+wN1^f&W&xGmQj_LgjXLEesyM9Tq5QjneYF)s$%r&pLBE`-cT{)vC9d| zH+x4n1()`C${N6XkaRS|YmOu0Oi>-tc{bWnNvzqvF3bEytGJxXs4I6^uFm^46`W$f66^JRsSz8cTL99o2l4y@%|;QVw7!mwId$r9yaiA(a0@^cxdlKk0mO)x z0QM&)%FKOwd3K*HVs;2hng3WZ|CK=997^3_C`rbvbtGi0PRH^(UT2u3ZP7AXVt7Q# z68xL#PEWJpwBhtn>ytCc`n0p3TsQQ8sP&ooS6QFnQ0o&TMf?BHG(STk{Yyhm2ii)* zhe@2jTy8P!*ZOmCPL3?OFJ7*SlC@@Hih@3aNS1$;kbW3Xr8J9(1t1J-FRJg=4Ed%0MxR=w9C*Rrf>3yrz6X|a>@(<8NDkakX^ z4B(UYOitCLeQZo(f%0)dL6pWdWBfK#d8H2DyLRqbVldwOv+ygd0ZZ`}-m>z?O(%(s zc>m}(0=ZLn7w{s5+J*(8@_Z96g*-3;PGSOBOT;Y1iIyNep*Vp_u&ZKJx)?vyBt`_q zZgJ|cPM7Qv=@cOQ@XZ8ma8a8jtf_}c%X9rSHt@eP7I%rpLR^4+XJavNTa4_gR)$i+ zLU{E!Pe($RF|U;E)9dAItVYfwq?Bt6EVGSe&3c(nihThqfyz&pi_t{^N!GAvGQeI0 zF%4)o=5g(GWx`Cyg^vkEye>^RjThov;SHSo8hhWBRZLBCjgX9A9uZ|Ttl&RR3}qJ@ zaf%u9w*5+_C8B`TXHf*zHS&}|uSuLJ-rG-MjDJ3U>Wp#U8#_+;#iR#nJKF0X zjMm>)m}Lzif2s)=8F3+p<;wj@NvvLyfH)iY3P3}6LC(i)aXPWnnT+DMYQ)GaP(U=w z;Ubj-(fJa^K$=cep?hiY7?lHeba?rF%l98RMD+NR7jXRV&SRr+SUC3tcGNHEoL)bF zu>%zM@84kV`0B*R*djbA92GVSleu?q>s-8U<@DvdiI;!%KbUjuJaPB7{|Hh(jmgjQ zluLWI2s0_9lHglD=YO# zTy|+s6yAJ?Z5Q`qrBX`-AMk6K6ZGAZaJy`{&zh^BF_+j5ao-in)Xy*&CD2!gw7h-j zNP#s9m=XKAAd-XaDhp|`Tw&xn8A2vb#y*Fagj7q78;p$6DAV#k!>urdWVnMwB8V)+ zRMEuPii7^#be!sv!%R`*9GvRWVL8j~7akcS>>VRKitom&Yo_WnfTUhm_uJoc!TuFk zpIMY>E65ctky*44@Q4RINHlF4nsZQPlRt+$55~tE;Onq61*fEB*j&%y`5_hY@cr0JCPsfj?}Yzp!%Y#Pqa@ z%c_9oU#|P*j#_ql|N5LMH&3kUx+xQg0T{3yfPosd!fIB*aZVJHZgf!;X!L^eIlMGv zo5W)W@8h4~f6jB;`ThKV@+{9|89|Q$^i&khD4us+9Jmbzej|}kqst;Cwxhp*c|zEZ z8-$;>kg9Za40;hDiu*2nWrPv6&lzN3j(V}1#AdE|&al2VV z48cGPY)b^Dv6N}$;=!XxCE~t=jsw=|@VD@;pfKN)@8a5~{buv_kAFO+4s+%KS2hOz5Q{&346p#eV|+3YqHqQ#vwFM2baj%-t^>7gh+z@kqQC z{vHz=xuDRDA3$R7_+99oMF~d$od1lI{NBX#q;=AEIi`|AgHPTiEkIRxEBoq2hDe_V z`RQ9BwNr&vDxDtORS>||gFLTzK0;G)yTZ3N{JEIKG|+gNe4~pw`oBM(J9X@o!?+AT zdhX+-ul<*p<&tc*Li;k5|8!*H#n2061G2>&1uQxG+l5qiB6BS~dbYK{6vq2~E_me$ zX{@qOpj8j5J)~A8CE0-53qne_jKMf1&SE7`TBpqq8cAkIVr}kNG88oi>FJ1sG2w7n zWH3lhca1@j*m(toRCBsmqC-I~5d=(jYzvOWg(jEm6XB#xCRdx}XM{ighBs?K$Ff*B zk6(IPYn98?3985O>r6?0cX^=R*1v|?s+&-jR+8(t_rCd;MJpO?(Ne3`aVXBh?`lK19f*Nr8r7hQLnpA|p7S~Z1xtCz>nNSKEbp+{Q zwrQQ7jh-Ez-+4HXCpAu-e=>)xMaIg^F96e2FzxK{jihN8rI%#aJr|EeMKJ3(p4nC3 z(0A^8>;LVpn;Q1~W<}}Da+j-oT2aaLk&acSNjqL$wc)MZ4U=}9x_SMZch|E$zNxFL zC#;^Foz=KE!c@ps*Y=L>sa#y!%wrL6$>3vb-FQ>58k zO0!t-J@YBeo=!{4vIC_K$*eXriVIW86GbJWlf>->vKcvuPQ09#+vrWT8&Rt!Ipag& z@$cuP+=yn?o`my1a)utgEODLeJB|nr{PoXQR%8 zv9W1XkI1oH?sF2Zo58^Q^&vgu&||$*pC;!r%_I`+kjhYnG50)(Kqj7dcxmhg5+$8P zp3T4;qTHIvN2XEK4b72l4q`V7jdmOfsKt?hT5|J@7vpI$jq&ofjQ`2hnbTv7TdKC) zGGWuhEwg@DW*=8w?V8+T2{x8*+jr@cIZvcxuCO4O8S8O+6Y?MGYFu5LY_@!9N;E0` z>88X)r!Dx%Ee||wCpy9d`tvOH4a*OU+p35mqcpM(nGfuV%t`hW6iO^R3c|$$XIN3T z19S_znQpMc$VhM=U2?kEv%*QRA}85{Y~7V7*}9LQm+!-@Z-HL4k`;Jbt=7va`{|Z} zMn)90GU5-F2cl3P%v8d`N-4^#?TF6vIYdupDV_@hLte4M7UMhDr~_GFDo^yjMZyS zaKUd*gDz`xl-c4+G8pp1isawq=3j*VTxe{_p^3qXiSig$>yo1RM6NqtO|F_!ou$CG3Amp~5VumcJ-$7yg24S8z&3#%PtN zao&qEm5gOnvW)~?W>LZjcS@P9|878hjcK$usoc$M?(Z=ddy~dEnGF)fbT9%Pj6lyj zz$VL7tj<9G#SSV3pw0CLBN%MVv8+z^e1!cpOjkUF2#|3UlYx*CfDA~Oli*gJup2~S zKW_OUqf>Kg-A=${f^Z97!yFMFm1TPi?RXlYWB{b_bLyj3J`2JIa>kQQX(PDM;QpyO zPLCbrES)3Xvy75b5i#eI_bl%2ga1rI=+bdM`6Vd}Q1tUFqnJd&!0zn7z$ENvp8DwC z{%W#jqW+BRO~$La0uYaWTVzM-r!aQ}FGF6GnNRQ{;b<-N_X!F^NsQ`8YL=D%h{v3c z4apUwRdRN{BBaqO)?f8!;`ms@#nS=tJAix?EfR=EVkKSqL8B+1X<4&PYK_t&ofW7$s|;WV6v({LJ2 z!)Z7Tr{Of5hSPBR2TFIx{K+&UD*eE;)3n$0fax*QAxJNnUNyaGIv15LnvvOL_L@r| z)tXz)E6iJm({LJ2|8=swJe-Epa2ihkjLC|u>DC_WX`2$#Qrms81+lwge-!&r>`!A4 z#U6w7O6=*_v$5~TS>np$cE^1cUkd4=_zx0RB>a1#J#lj4gGrjC$&j8-dfz_9{+#_) z`&s)(_Rk#%lHQTz$aaiyY;;_7mO9ruPdHDwoURtv8rLI`&bo`-x47T+BzjhOew|#M zye|347EW#WM{pw6>C744_(*g?1$Za>%J_+VfqG>CIdC2EY z&q*+cVoe7qEGPJz-jra#+4KU16(pM5^aly%klpkSg_SViSmrAU7U>|uA{|6nq=N`^ zQLsn{5fT9C-q6zcmVdO*sVbR3Jm6`u}D3nv;4&uvgba$6}S29Hr}XQ?z&C+(#d zO6Sn=hAF%f-tD3}y-=&2QqBqa^J(5hG#+pw)aj(}Eupk6rSH$BHRhtl&?ljEJN(m+z zPm7?nDRd0ok$&=_%>wuwc!Si>j?|BCNu*gTr2vt)b~-*np@o!|9fN3dt+dXg&%H3t zaBaf*#qdm|pp#M}=kF%t-2cs=>*rZT#WVl3j`L2>J$ylA3tI;rHZrt}fV(-YxQxHidKN+pF* zl1S=YDhKVf-ZF`oS#(YK5>D(i| zA#%Oznw*Zv7_z?8EM7*R+u@x#@SG*_oXjn;->gVKLr2g_`MZ+RX%3wQ*Q41=X{4QW zek`IhAv|k`(w@Ath(c*lKYftgUB7h^hrgA!(NaxXng@AZRE~Qn=jKG@_MtfulqelvLqo&BxfI#N;gS_es$IE$A`pW>)QxR=f?QL7Ma z!`uwFLuxLfn)};jRMfyrB+d-99-bkc5|z8Cp6jIcsz>52@j@CUDtA!Zvxtr|Oy$8+ zokcm*O5t`%4zATsLuW!-M2CnPWG>aNq>qJE2hF8iZG}8Sp?OdvT;`M7Y#E~Q(xuru zpe?#16bobX*VvTrsKcF!L)xebx8Y2RNb>^76ZsUDnz_{eEs}KqfOOx;E`_D?+ier! zTwP@5bVvCXBELl`m@D-q>ft34-?QkLyCj(5h%7 zmP90_6%E+tq5ACq0WTsHYNcZ*bnBFKeY-SQ=RoU=r8zR-uaF+dj22}kEsW#0^A_NS z!PXhLogPJ_c4}o74bn5$j`0TVQSIAF-wW5izIMwRqTRx@ANn?-ny62s#~sFNz;hay zH3OC?%)>0I@0ZeEIwH?=qaJsr#a&xkF4bC zp=1g?RX}b9p?5`Hy5S_<>Y@EAsdN;yJ)X8l@F)FOQn)sPXQhPcC`u#JGHG)RU{ph&NbY3#u7i3F zwEt0b%p$h6bPSbHE{=sz6R=|@-Af~|NL!mK^87`nucLawC$X&s3n{k;8 z%A1(uC4OL$B4{5JQ$B>Dl#v%$D!jxZ=LRl$u#1D*pBOUC9n5=~k1+2Ck{d^Rq@z7j z62f-0M@qXMDP)9jv{yPbd!>-r8||5n_Dn~6rlUPm^wNB^cZ%9Og@w*&4|TMMI@&`W zd_7byJblzm9DP(!s}NKIm4TGKV~{986RtV7ZQHhO+qP}vjD5zo=ZtOJwrz9g+uhiW zdn3LZ_x7Ls(OucqRaqS!UHLw_p+nl62%sFp-MXXTTI>TcOh*Mku-G+YcVgK z=Ou$`Xt0&GkGET20i&^QkShKRh?c2&sClVTrJ1EUsX?QGqhX`jsY&xMZ6CHibPhoS z$|wmq#Q{`c#h5WyF<=j|fvFB<1kLSj){Wic3LAL9pWnbU0+&I^5_ZqgW^BQcUTSLDv4&=R&XHyu)JgdvNj*;U($NxATm)Vd8D5A@+`mQgV z%<0@K0O@1#4loQ1gd_qaz$5~H1Ofse&4q+O4k1c$sLVmYbP9A3QTjmd2FdEMcoY#I zm0eIBb#)KdXOI!TI%x)KvIARh%zfWB{T-0Hoa!2`Khl z3U(1{_Dvz5Bxh$1ynxsLBkf(ya5RpRwk`BNQ&6XsDs|K_kfV(e z{KCEKeruIvHsk-c{fBzP55V-39-%B1nbgpM0}2-l*m=KRw7+&_DjnTW*A1}IK^~K> z$aCMJIg{UId+WD;xG!n!t6NRC`^*b7Yhv-1e8${godsW1tvd& zk5fhPS-(2^RpJv}5J?|`-`BXmffLESJZF)CoeDHpU z+Ix+8Bf!j;_e^=@?b_MOIv!ZzzgPDcpo13h6)P3vjazS^6Y3xJ^AG)eysxFzd`$pl zf6<=}^}^gf0|pHAzBI1(f3~eTtzkDpPpa#TH|pnW9k=GQ^F1*y8_(+Z+Rwke#&|OL z#N1eAW59^MK#xWQjj%MU9-Z+#mZ?EiG< zZf7XPkA53NhkApq^u!B~{nyQRTh33_t=5_wC-2HbD`xbMTFr^?*gj&gqpwrjjeRY8 zO^Pl51MZV6w;kBQ%ivRIss@Z9LydgR$=AR>Sg_+)pttz1dq23wtEHdh9P8rD|GTfl zaeeNWWy8&TD+1WL);8D_7UJKvi~4gtl_PHNm5s*RwTnHztnWXyw;#8*e(uH_0*2jR z6BdH32p@E|2I6EX!*#{~dhg&Yeq*6Fz&ZVn`bqszdv)3;#Vz_P<-JS2@CWMMAINyO z`Nsr58ow|lG!H_YPT&9Q>x0LtHnIOsdctoH^ZVptSA^s%Pe-{0>~ zgRGz2m*;H<#vsY(OgIV!ZMHMnnct-YvzHq6&Zs<4fX4s zhYVl0dGrjr3YsJFoK$Ohl$-{=0%}B8LH|+;q%mjb0toamK1|V9iDoeR1w#5YNB+Yu zEB3zLfG+@;&2t}EF#p3ez_(n@o51|Q(L}btRs$zb zH~GR87Z^h(=hVG~*E5O3ZSt(n!4Aj$y9~S|v<8gUKX~kYWw(Xz0}1wolxgj&2edo0 zuMLe@u&FkfPmR@McoW=UNc)WTrAp?;{eeE3!l4)RtZzV0M%S3g`(zslW@zd;Kuh!L zFeZ|rj^+YiSinhPSUCUPzRz{O3ej%ia`G!Ml zVey5Q4$IUYNK|fKRxoVhg+gWLSQi{3Zst?CD>~3Ddo5)~yZ+p6hW!iY=mR?u&Xt8= zl`)Ghq>Eckz_OMfKFc|hYap6TimTS>*ch1Nj1$*8zR=uZu+*UV(qDm&OKY$+5lf`e zG_!`P=4-S8k;2%ltbl2b4WAORj8iu0a2Y;+9UGqS6k?36g2qj?d)>T@>)>8yR8#@21G4g2zj zTkfz!@PY2oL#GJ)g1*);7y8KH(e2BEGIhBLHcWe2k3;5T(uG{&kI~-o27oqH65fVq-hRBR3=+nZ$fq(5<41CJ10Z&uRP=l`xngculG2$ANDLaElh&*< zE(aY<8T88;9}J5?e|_?dAei6&9#E~ke==Cp<<&6K~TKfBj1(KcOf6K z=o`)5yH*i8NPp)#DE|+%4rx(oyuaQ$Qj)O{o}emL{p9oi5axM9J#bYB*eZKyX*#nK zydA!u^^DB?k?Jp5hMy*p`u-tDlZ!aao0%^NhQRzQhKK!UAh!(Wm%!1D7@8E8R1RW0ER&YnB>2f=Nr;&QWTfg89@cd_9{7WDR9zTIf8q0)}?Ua_a5n9lK-< zI0{;)Y~PCnOe=tT#2xVuJApZiv139Gu8}N@51W-ea~y=RwE%*7nYsj9IpmG* zS{>BwzxOQNF-oyN=Q#ypjQzZNFlbSA{ap=H+q2_X(9x9ln9^OvL&Q)b-5A)HAbgbG zI^C-z?DiOFhUyfe2b(T!4TsRWJnqjN?hrSY8$_L64W|V^Wt}dYt3>ByMWdOauI)LX z(!Acf1+WV?bLYsitCK7*H*|c-xZK;a_QLtac8<&$8+psZwWlEeEW9W-qPp_yFClqP z6JP0RGB0B|i|_YA)KNNyK#j>Ly45@Dw|{sEqbxqBgDZnCg5}5I#Y*ZMEr3`(g&1+o zoNVt4a=J?B3wi{&b3W9EbrSZB(pJ-b5T&gZuenr7_C`lSN$oIK!l+MZA ztC`#icR`L%sRcf!z|QDuc$s4B6I$@Y?QlljsV(Y?6pIrV*Qiubs4F4p(Rb~%+p}_o zj4C<0hkxDq`tHruS_k#0p+%+VIOajo)8Dmg1=|XIcOBY!x;76YQw$Q$o{Bnnmiyn? zJo(je*UV4vPG4MdLupE9*@(qRQajLL=~*#QbqYwc?UWl$Bml32k=D$Qps(Zl$~Hya zq4d*|dHozrf@ZOa;e-#idnG8T?mSNMv=os;7(IyTFf{TuI}D>Mv4Z^YYjhE-*R=Hy zaD=SU7FTpUI!B|dQ8T$;)qUFY`NOO9GCLadbNo3s|3-R0I7aW3M*Y^$a@z1lyQQN` zJka5pI`hToW*WrE{Updnj!qVr!p*Lm@-2Fm;^I+O7t}u$WJ*xhYLE+R& zLkF2pEm?E`FGD7?mB=ne-PFqe(pvp`4|;Y0y@m!Se47?b`v79Ie6_k$`yQI8A^AG; zl4xBW4tG56f_~D-7rSb*<8pvM`+4&de~Z;atVX&A0r4JsP_G*dch}cGw{p)mSGvOa zypqvo^EyLXA0Ov&^^9}^>>4J~G&mgf^53qdo2H*2t9WaUC@+*d+emv5uSYNJcrgxb zap>c)tUW<$UbB@Pb&LBIBoIx!HE5eaH+?xFL8|4&1Vr+pgH(EPck}?0ASLv;>9}RT zY>R2xXp}Z8unAzR1feT?d!tTb2N}*VggXLpp|}cpj6fei*#m0(+`+q1$F@pjU298g zUQrqstt(~D@OoCFkfOIBA=?>d+D^OBy@uvvjRYyhwjINns4n+A-Q1|BFt^H|o{WB> zA&)mZ%Ob#MTSQn3MW^8MXr6$EU{%gVv`^j0lKB#PMOI*IgLrqgYjmr|D#_rb0!qqK zjNst=PC)6-vnTjMx@sK}*Gpw7R+mGux88JpBqgcgpoD0W!chyE@Ps`RkP`L; zAf-Q+e3(LE<45eOBV=hE9b>Zb5l$$f;ouT{$M;FcD95{00^B&Y5ok99viJgEqJDd5fb`D(`+skX_}8T9I_F3uv4ey zF4jNH8P74wZgWScdbWsm9B-k$On0Q^x>D=A6BUJ&*HTZiLm55puf5G6Z|yffVTSTGl+)7}|miO-h0K~C*@y@PU<7W#tr#r7o0 z6W>*mLU#FG+NUut-El4ElS}$K{qAJB{qHGnJ}#A~-FLvYTM&=7VT0@kytZGac!O>( zyj8jzUQT_6UL3kV6tBC(f7QNi=D0T(U9k_gLgoFR>#jlexO@%dovDYa9Xi<^;t7C7 z{MYoq|6tkot==VmtH^H~NBJ%3w!3W$zb9Y^>)&+;+gJEZ2vg}>K;CdWhflXS@ZD|s zg^#;~Z_{fF`A92X>-4`-DWK6K`dpLJYPq=;a~gAVW|zxpiBmfZ69~$HC&$oA z8kszq(ox@P;F|6=ztchc0h_@z;NSuCQBMP>-qrK~o(^6Y&B!ofy(23n9X3J6AsZzq zr<*4$bQPP3K8!xbjKI8(Hp8rmUWG9aqaDb~pHMKr#f(o#O_UeWraL@-LAU~0=;Iwk z(YJ%W!6O0lX)Bf?~kG#;JKPl;qaB!hEWJjCtlGUyrXbr`9|^I-K57ImlB=?QDkwHGtD0qnzU zVvO2Byu2KrS#LdBa7onZ(cp7#!T?YvCj?{@UrR8m4r&N=ys~G$e(-p`uZo5H9X>CV z;dghTvV`g2fICq7YTg@oC8zt$y#kR~mR)+-h?uV*F3iaTU~R~Etk$nX5yjGts(W&h z9(n&r|MbM%2{Y4+obajqD)~dWN^+tfvUN)#(>iO1y{-~*ChWjJJw&w%bU_%hOdAjh zw$7&09G5gG#pWEfhtT;@@Jb({X(sN@>?tqZXP_NTgs4a8Uc_e-)wXJ8_w zb5ZJf;VI1x3>!Lt7KHn4WOlPrc$mXFL)2WYL-zy2D3 z-tkOhi{D)-8@22~qDzh!kJx4KwPal1UC`W$JaehPNkSG-X0&dgHka>V-LU>ue%|7X zPEL4}ByizsQ5w^Aq_W_egI_Hxy^JE&2OT>J70Dlj@&{ai!ArFy56LO@I6(Aj4 z8R#ma>b5Hw7viSLTk&;()pebn!1G$P^wFbwXU{R7NZ`*7a&@`vNuAtij6tEMfT+qejqQ3Q;Vo9HMh9hv1|br zXAU+o_rmhDNikrw2s#yaTPd2vO3@oT*LyEisHzo5oV9LCO-c;po71MRBKX71&W17) z=K)Vp{XIKNRwLd$Eiar0)mvIGmCtUIOa{x5H&K?xoMlyy*HJ&KoXu6qt?_rG9FNFC z<0|>ooH06#dvP02r#Z46kC{8~ss`vr7su@|+IpdWrQtJGly!Z`T>q zH)wr{aS6chTrfrFiyJ#gB)uN9)gk2X;pdDK(l;kSi-G4?lr*=bE8>$$Z2fE0X9{BvZ0_>^{8V<+CCyztFVY@U=>Un*~eND(4Y)J%clp5wA3H zYmcWZ9Pq)J;X!6=;6#LZu;j7sipsC8{rot7;$J>5NeqRrhL08*f##vw(I&C?u1bQ6c>ku-l$WF1I%N4rG-pyCTNQaWl#1=x=!=TF#1OJ#lLfH&Yum?&;g3{##O#R08@bLN@wbO|I-F==&h@Eg=*$!QU87o^Pw6W`y2N+V=2nuvy{l@F@WvdC1k8cW*G z>S@_+y}#cZuhQ4F-P==XFxv06WiNC+vee1zLBZRO&rNd#I9s-`vfoIH&ndscBeBuW1KvrL&PsD`}p)iOUXR8_}3W4U@6>#nA;AP@*% z>V_LEblbQ4m=h7@#?2s!>#VmTtbF!d!tUVPEUdTP;YfU0B{`B^cY%X8;Yu$Ki}6SiEPsc_ba{ zr0=*1;8W;`7E66H?WAEnOq=%hy=X~Xnxodwc-{B)od%%0$ijWiN4N6QZlA28Eeq15 zpiCUY*&|3%$hUyB6LrQxF3CW$Dre3h#;Tky!`MrjKhg3h!d+}cRD5J#iFLtpx&0vf zxk+~OFWFy>hKRx48u_uw$;RCxg}1xu)ItLpD6cNv?aK(Prm&v)5smnQvt*<{g82(2 z-GyGV3!Oo({)}n(ReB2~wRQKid@M~|dy`@E>*4yX4OD-%UBs9F@MVI#RbEWdW+X8e z%yczzht?Nw==-|biq_sGBtS_2YT6~B*#M^lf&VOLHgXlhg%26abuHU4rbXn4RZdP| z;QVU}^ju{5hGi);``SVA?%rxPf?j7TeGyLhuKa5rqwI5$#sKQgZZKKo=>2a1(O7R1 zd!>?g`3b>Sax<2LRZMs{1=n1<$sxmidiKxPGo|H3vN<2=v^l@4{}bJrfZI=xdr|Pb zKp!Qqo1Rw^OgSlKZ|I!>p-nH|8Q%q-3=2(ctlQqV0w5y99%xQOnbC?BZRZ-)v#a7< z7WARwkH=|3U+#5$Nwg*&OU7S|levyN*E88qqj5SVt*yrzTH%}81U5^b%Wdmaa+fiTNVZFfOb<9*bO&bZDUoTv#+8@rz?q>VfRf8&}rj9$|;w#}S}MjRYtsY*3#b@54WP9_&91HYa&Ksr?0 z`7G9IJ1Kd5f~&9OuF}k2N{UyNJ^bpm+n?B0X7?wRnqHb2=gF5_x9*SOeO;>pnn zF>Y%2En3N(vD?dlHs${mh=r)O#y@$uqy6N%Zp2n-f%6dzzlU0$cdyG>P&=E{LG^_+ zo|IAC?*B+$aR_#=a}f5qI@lC*zxwp}9&Sgq%eRrb+M2LCvey%HpMQ2>zNTH`^{|Tr zGFK>#oJWq4#NWS*#t`^rP33ouLnkmdF9c3Zc0DyeGEjPSymtwAOlJ|aB>KKGEB9z& zxg19)w`e^fE@=g7;rEoO#%VQWF&6bR?}Ju*Ov+thaGD_}{yf(R->CM;LKU6JovI_> zO=8v?H|c2+no3~yn>;$s3t|n?tG579Teu;?zP`*I_(z!xvB6%8db|AM#csFv4sMAB zrlJ)r#9~;^Pe+=HXio^~FMeJ*bC!4F^-}ph_TyTOpo9l~F6TeWyB zD#yZcY9ze(C7*7&t=Ml(H}gXqWu-iTdsMf8cf!sDwPjoy=c-mJap?+&JbF#6N@^f; zeYJcAik&#YSO-p&fxZ{c9^+H5Tjr7J%;rpSv%-{{EbMNQ|85e|a+M(G*zn-&6d7!- z=a%#I`~^y#wP^l+tFf^23S2!c2$vbrbv2IABH$KE+6A%|mPbypQRkXwG`bB}^Q!TZ zUg4o=bvBPA-Na@%I{jIvVok!^zB_G&T$*21Zjtf0@2#}&Ve%U!!Z077rlg#UuE~>~^bi$ZMAQ!zp(n^=UeJt`0 z@hY?b-5AYn_y5>ZIyryaLX+(_-Ea;@OX_@k1g_)njQ>&lf-Sq<+V5|Yg3MqQsU@6x z3}Sp9Xl*rPYgcFnR;!$S6mC}td=G_sJ^OzC__~S+i&Y`ke}jHju;!7=S%0vNXn!d? zzK~Ys6rF-U*OHcp_saL@wnW`&cHV;Bq^?*uljXD0dRGW~Fj<&i*Hs=5lO+D;D&FrH zx9_0Uk=WMwqlbpNJ&>#D4<>udixaRc$bJ1=|6R6`u0nUC8B5&BsW*ntmw|N1zm9p` zwAgJ7FS%%Mwk1issIga}w9}dKvT0UiWOsb^%u*0?BwOXwvffzptlH`9FIo*ZKF=S$9c z5w|O@ZaJ*ddD7xy(){SkkKK?(@pbJ;{2(`Hy!Pho0s4FTa=gHjS*Vre*~z?fa)_{3 z4{K*GDE=*&#q3kKV&#ZjI@;HWG%y>SaMGzT^5s(!8i#pcYx0g5f6J*W_)^<6jz^jD z7SnJ*-4Tu?slNz*JG9E@-=5wx$=`C$BgYY&==1F@xtE;uul-&|$6BN-t|>X$c&Bd8 zdtvMn_vS?lvHZArp99t9@jsQ`h2C@9iIK!yZjFYZ>(LhMy7Eq7G5j1t9eg@J=QJbu z4nrR@BTOZ7&#W02&6j+so0^kGIO#KxzK(*u$}yYB#jyrp-y(Qtd-3c>?O;}l;qB?N zC68zQ+K#i5I*a{xqg|xDs;^-!qka4Ycr8<#{;<^jk^T*H+2cuytstzqq8>@!NfYE$ zsriV5NnkI^fQ+00V)p?1YLR|)IuRk+-SBuXv=%$q=MpL?`8gUD{!ngAVouigeQq+O z5mspZl;%XlTDvaK>&?uTZCSiS4x$9x_lme8tux~@`}w!H3IV=^War8y)_St-G7-o7 z1B`C1^>%s1hPdcmT-QVvDeWgj#e`#$1PFXp%%VL9Q8#A>s!#MOxTVV7uxA#aHG7*S zDG$-&`!qhA_n)=5``eO=>aT|BWV4)bHp$FJSz&UnB4%OWVud_fg*vsoVxr_eCKQu; z7*G)b%F&{LKLmMslS!Z;b4mzJ1w<57<6T4!DO5q~#j1aZt*g71KWds@))5FC3>V4#OZGjY=YmqjI2;%yK2;nRP{8Q~Vyc2s@2s-t2wJJ0 z&F0`9w{9%Tk>7Q>yuJ9na?cVw4u=*#!eKdFQB*G6`cL%*t{??c<#OFk<>aI@zcpfs z)5I)3KRT)&gqy2EIsRxd^8@IL_2egs%h~%q<0@=*s$|^{bMFjhwFT5ndb(&?;MIvw zUlVx2S?JMYjmHg+{`C@|O_GEmGz&V`dKe=Jl~T-8nNM6N_{TBmkpBEn!Rr^Dp%p=a z$1t}$C?#S@3W&Z!Bi_3_owN!gzf{C@V#_$Wme|KU3ubS@lMU{9%FIH6Z@vtUe}1gy zxg1mZy(@zVg2TBKPLIL(itK{SYA05+1Wj!)IDDiW=EHKbm2qA;!InM&WovdlUN#46;Pp5m3D>&Gz?TE8$&cxSe@A9 z*y*VVcFhG`*Z{cCr4gn1b}Iho$L+eo0+#Bodmh&-=o)IUf<8I&%)mCf_Ogq`nucwxhUolSE?OAVbZn5>1q z8O49$!|^=)v{_+L%~-;A5w{}_^yNX7iMNy{+o}YO{()48u*SEn7{ptTaZjuRSrfSD z>exXiEDAj1MTK&KU~(k!H|tl70|I}$y>H)9_3on@v&TH=hbdq*^DSssp`A$e3MD~` zgU3vWaJ9L9BWf6aGbR`rXU(F@<&&NUpi~R+cj-yL47p_j@)L%(KpLBlB^kp76FPOH zatVQ@5hz}ET@I~2GxEs%l8R0Nv;xQ+(ivArVJGmI-(V3~t~c;kXukvY~=ZS~wJn)uT$oJoco?8v+f?GY&q?CA6r)H)}9F>r?iLf}ehaNvm< zcayWgIAwm2s%fzsU^`dr4rGasfnZ~g46MfNi1F6Cy>jCh_cp->8-t3YW0#g17CYFZX?wg>HzupMl}yUa!RaTs}uho;k3nzppA4jqQD~?@o6nOR@Mdbj8<%9W` zob4o3rHy91!MvK|SmkUxF6KEBB=7IA9Lz z{wYLzxCBep$CArR!Xbi)l6^T}$$+D@dnsehqIE6DhHYpAs+2Vz={C6?U?=18)NWpf zbR~ojli6xKT?R*FHqlv-&z$3Daask9i$`~v_Uy3N8#&b&spqN~3e~CgYX%65#T9s0nW#1EpV39u<&8-LgPb0T!=6tNh&sE5*?{!6}LgUkKzIVQl?oPtt`Q+ zgvr-8CITfV+aSeSZ2}yCWL=~M89o-NM1_Jxm>WqJpoztb z^!W`K#SBu5l+dxDpqK;(PGycE1Plp$2o^{WoxKq(K%SQAJ7~k&Gsg^cWMw_+%^IY- zp;&Qaju0gTPUFm_UEk>d!0wQ!Xw4m{%f-3dqZ~&sz;!A4Pd#fbqVE)aFWd&)hZ9eV zNU@@CIkjEkv=QX;=+Iu;nOB-c7-KmrR_H%x*v6d=*(KUeu=&k_8@F`;roQE9+t3t=nhSxE6rOK&fVOeD|;{ZqqIH}dOL3I@sZ~~`NZmliO(6am3)MJQxXruWN~;LlZ6g3 zmw10y*|bjx-UkP5`@ZPTh_oAxU-;(0Wi7?xv2AfTm`D`~%5lMGoqQWD{vCogqH#0Cf(*AwH z+`P^#RSY*I4lnP!CgH^YXH{S6O7n;@b!X5!B6=syJZ_+IdKx;w72qayIZQW@e{w(E zIwZsJu5%M3ac^T72}bWfvJj}d_~6@^GIo!HIRv|-gTQ(z(G!>bp@x%*^E621a@h4k zP|4_`D8mq4Sv8TxN@_n+ftX@p@GO8+K9FhtN9`V)p}lbg^8%-3vSxO*Izu642?tf^ zQ^^QA2HrKCDL(=3a>*MB|gL3X)<_P})Q?6wa94zvbj$`3qT$#f7a1DGVU`ftlW6qwN6K%A&Z_8Xv4d5kSVkeH4jIZEau@zUco%f;1siJ3q|8<#BRt<@x4b$_7ck~2 zh_7{DP!6`fz0D|oM}dt(996T^@UZzjmH(@s;A2RfIm=XKzc~-@hM+%&%}Y)e&_KR3 z2UjrKLDlZqvAKxlCxBF#@nod!LTqFqm!fW&&AECDkVPmJYMDwrQ+c@*P)uZz+}bMj zv#TRHsey&eS|)Pt9vS&NnV=E|9|yvDbI4(c7~)8hc;bPCwGRS_CXp4vSoNgKqhqu) z1Dy9SOlZSsj8oH0CO6HIQ6_rL2ocgB4FRkC;xN*Ygc0z)=5_KLq-8iONk9#=_&h5F zAyZbon_T(a@b9-RZAC5F;H|yWka5$qFe_BI+~>d)avuvi42^_9#7Gj0M$b zk<}mN>;XBRqM}wI*))w?Wqh%Fw;%YyO3u&0l+1xq<9DR(0FD=1k=}@`9G`6eyVmzN z9eYk>zENbQQm^h7chs*D0WGik$D(j9MXxM5$PXx|CrS&&g_v9D*-RWq-i&*-g(T%m zYof$6XnNM8f8Lq*X^-R64!%L|E+=>`zY@&u9BuGj@`{XPJ>K_V4=a^=%m%*!{=DftMZS1Ku@Xj>RnHv$z(=ZYq{K&0T{Vy^0Cl9=e|0#k7Z zCm|@Jti7a3IrHiK!UCDjA(3t>SjZ3=n6y&hbb-D$WO)Sg*ykMN)$tJx+BW`XVsmtv zlm0MbS8uD3UcL+!!nvX50?KNJ9Rq+*+;2%2>f6bHsi79XnczhFQ&N5RD>gGHTZs4M za`7s@NVEur58(q%7Fw?I*qm;=(MUWV?~ATa@hVeSh2Gd4-e&om6oM_$_|)<;XRHP$Qc3`&T_wgBFcE)~mN~qY{H*Zv1+J6qC&tfFuQ6^h-Y}k5XKT{a zMX!jsOHbfq67=QbT#B?{xfH8}5V`A(!{Lq?UH=t%ks`NZU_u%sl9X+;mtw2uhQ%TK ziubpCVuJr{mbY(o4knCY>n#c~8oHJ8DyE?jUJ~EJug19DZ@-)9&|+K~f$+2L_pq$v zu0ET9iKa!{N|GquIL6Xn_?oz5GH*T@X#&1$LF(j~<0o;O)?X!T=eW3)oAbN}8_z_{ zsw0dQ%J&WxD&M-zcAj7fqw|;gf5pWcnrqDF>1)K#58)24az8`d@VMGc&O#CMIl)ez zC){~>XylMOX^Bp*Dq1RPCR}%SogP4fdN!9yo?aAfKh$?;G?FNx9peBS=lEIeo)(Nq zcTvx^x$lHhwAZpc85aI?*&U2*#5+Drz8%b|sd8Hj`xR}D%ANHTKh=c}W)66hnhtdw z2qDo*T4qy5mdtz1A09qM)TarrcWD3iH4!@= z_l*Y@=AZ8g-4=%4E(3{`0~Fu&vZr5W08N|&SFU2t<6q|s1~QX=uxqC04{=esEWxCz z!Aqquv}(RV^Bb)O%BdngVdtk?2Um7nHr${^JaAa0Uj9S**$w|-TP>t9B{?9MeH?l6 zyWZTe$!R7zl`h$ctrw%3r@8~}3Y=dZ4~{Pbs`IQ!u1H!0+FXy`?=2U`S8g`Bis~Fj zm$MJ`E_vqo{4l#ym#X7;opcnj^Gr2k)IuAOoRFI;12-kC8S33KiAk4=PdKygxdyVw zLL2M@a0+gP1+Rl^*bB@SeW1VUQ}ma;3KPTe>H66FB@#Ax;M6C;Z?m&h&{Sn$T}CV; z!Cojv8?2*Wn^vc>-)LGcOq9%|=60h$;f7Z`;V30#96z3YX87P4fiEKe?Te`wT)26O z>}Q*ZI~LK&y_iY_d0P-KQsLCmAx(B_nJ!`s5IHD>B^+U;C~NF6V!&FVo{G?F`ex!N z0|4l2o!@ss^=)BY%)E?GX?=LOtjIn07l==gcMbNeo*j{orH6zu{#Il==z$zRlm^yQ_fS!6ibYZ}8J~Qk=dgXHMN8?Hk*bJ7&k}@^E{~ zjmJ)_QkdW4%uRex!d!UbyS5t3ZDg8UcXeF4Yv8g5?+-FQ{#3k;lo5=JnkscUK4EU~ zF}CVzICSI~)~K+>K{H9!NW$JfN1Xe_Od(DU=DL`+u{cqVJY6nQHkH;5hs5Z~U*4Fz z_sdlaV%}KL#wXsGOYuvegG!SLU%24usRvsUR7x8);Z+Bu_(D4B69C-M_+6t<@ z!bQ$9Z-Z$;CmAwTzkEvwI#WtVWqk@r$x^;3Cu`80_)t4I-pMcxlXSp78dfv5eQ!X^ zB1nS^XCJ2E+tt?C8=N)R!()Y-HCAOQ_p1)vsg^>kt5R^lm7=8ejH>n>lU%U47sMI0 z=QGQqcc<9A0?Mq?C-yxKP$Mk{!s2tDYD~0$YqA9ExI!?CF2-_ywU}%<+{gi#L0Mw- z*1yxy=%mCTG#!|K^J+HStReM^y|ThV)H9i<0l5L_6Xy|ykpiOXS{+Z?lmt*dRP~iE zGX#t3zIo+q(}@(QSb4U|nC*JxFo9jb{4F#)FIy{H!cqzIAx<~8PhYdkW>9UBYaS7{ zXl2GR|Hj!fAl@?#md3r7V08czu59aB0P2OIn_L6j@+#o})PgkV%~k_K2{qjw9*kW4 zq?D2`ZcE`x~SQYrSh2wHqjDG(vv^7^*OSaW+aC=Y^6m&6vsVwfGR=I zYvVWberdV_&Vz@(0%Q(V13U)Oy|{X8;DGWd5y8#f$jDYUYmpN0=z0klISh&B zsefBu@9L9<5z$V~!_l@-WyHjYGzl@mTJMfLh=hHJ+^uUqKakR*q};k-GwQ8~BCH}x zQqmt49r(ka5^a0cDTdG@30A}B#7jDdQ_SH&vMBgCFF&W+Yj8Dt5A?>_E<5)3;Rwzj zeqz6OnUAfFxEK0znEgr5Jn-$0cbRxDB7@Mm4>m5BfRa?2*INo03_dJdQU1JY@8$5x zCgdNxOy8r9rHtp*=yXg>%d2&A1Zy$mon_J7=<~93k9y@&5aabD3Z16L52n7A!G**) zXy`4W{v+xPogc++Q7&H=AwhZ~-Q89%R5TNbmzm(|_c5@;DgP&R^(Lxhx}vukYz0Se z4Bz9e;l~4n0PBjM#pKL6XV*gXzG3;Pt&bTo<~ebTlVs0eLYF<{gAZG;&$g6kFGJi9I#uVcKK^H3m+pXlcM^EJDW|NzOMT<$k1Ua-{F6? z{z#$ETzB|?o{v4r+vowpo#u;H&erf+mrOrKDTFC08FGj@hLmV1H!f4yCReG|9628m zAc-nA?E-to#CPn(Dllc!c>uw2XEDw@z<;%QuSUe0K2QFjXa?u)-=cMxlVMYYBf4Ym z#@SypA)?nA1e%k)r&ee+`x6%#blpwJ_?PHjEl}o8j^UNyA^Ud->b>Jjl{e=$s1UE`#zVx{-y(>#RPl{RgWe zmr0FmfF>x@lwTUyH49WH=ZSuE}4qEg;IG72#6}N!vcK z4geGkmTPsoTcbIMS}Mq}Y>xMa4~E$R+R=BS_iA{U3XLLWCS-gK>^gcAa!=9?YHxik zZjU1G?PclH{pCb`!&o|UR98;{$z5}B+G)3f@^8ChCCWGxARqyv6$=VVOWmyr{R0Wm zn`H%Z!Ggp?X-n%W0NROpJj=MuWer1BWt7~2T1|~(Exyvuc~}Z#>Yk1Mo#Sd zZp~=FbN{p6{neowS?#?o@O419zj1z$UF^R7A`U#?^M5Kd)dkCiO6Pv_n)pYd-1mbX z)8qL>!?h>;DHC-Qs2^0^QgjA6rp&q)YX3$fzsrT>*~R#SryFiHOi6P7B5fO2*D z)nuD|jO z6xon*LkvFnX#H3Ge{uHCLAEzbn`oQ6y?5KTZQHhO+qP}nwr$(CvD?$GMCjKq>en0fqFbG*qDPn3LdKbVGbRF))!{K#7JyUNNVXFEBeo0@@bvktD zR9uogAG3V9x>2#Uds%so!FthAAVvD;Tsi%)8JCJc|IpV0N;w~%*E`m z_m%va%b<06+JI(o2{DF8_C;1N`z2DYs{^PC2k?C9w%Dk5$>oj3lFOgjDJaVJ+?xl_9^ywbo2d#;b}q1XxCy0S}}YX@|n!cFEiLCzFiR`}&b z(Q~JqLTU_0?t~>zX0pRTkyv3geUJf!$`-K9u`F#T3ASl^C(U$tvcvDJ9H8gmei{Lu z)s#kpoJqNNO+V@ut~8G$Pl2~hbPH92VzW7-b#P%^($VrTwu}#9x>wy^25N-2#fJ;c z7M+KrMS)vO9Nb{_rFzlHXDGpH@%mB^A{5d`h^|O_QOH9BM>9xtTseo-2~#B2`1G4b z*_^ug$OlyC-^_R}cIa*olSGg06@g;R@g(4OJx89X*eO5rT3D*4KCokZ&%oApw(d@f zj5^pJe^|l)`fko$OA(o>?>6_=Bk=ktsi8JHzlWO83DAwSaWRC=N8A+tQvzDgqhr1g z#AwfE#SVoFg&R-u*6t+M7Sz`UnhnZy36k6gKCuS^av z9PHhG3lHMyj?EPZlQZ`V83k+d%vhLfcB$M2?|r>`sBMX$c-z(V0o9#+Ntm19&wa6W zdCK?@W7_Ac#Uf&ae&76J_2c8l{NLKtFk4+dQc8$jC?WWxkx!3jV@zq!JlMRt*m^Lg z0<nFujjiSU*Ax`gd zS9QoXa(swt@u0D94q!=gsA)L!CNgfZ*|TDXO9Lr_w3z*Fo^WNh-86@uq_|$8u4Zem z8yLm!N7XUdv&a+OUR@rX6#1)CM)DBcQg)f5dham>KeuSDpqm!3te=b8**7U*OfPgFUE>3)``Aq0~ zrCDY$A8KO8L&D?GwcOAMC`qHcUmu}n*q`^~iKP0v@cH{Q*NhV6>4$4~5~W_peSRgf zwn&kzW*{CovhT~!J4JWi3Ici{A>k{3I5D8)bu8VZ<(Hh-}JLjUAWJcND824quJ~0= z_{2&}bCWs@3Jo?L0qkB^z&*SzhfGUa4p!3kjX+7k?TA1JuLm`e_NtEtstHaa?D=&n zRW-|ds_M3q5|8m@ypRC4@~D~KIPVs@ocgk_C=w4Ef&4jJR$olkHE2~w!9*p6<{7V7#{=4^7un1y zh<4b_5E?g5WN8yNcFxf5Th`%Q>2jz_@5x2#X(bQQ*18s;_@WQdQ?A3f8s_byjI0$` zg`lvQAa{{~deKj9)_1>=VDbiXufLXIi_8gBzr0Gdn*{4p4#+`{nw&gVH}uiZmb)DFiJ zy5bucweQkmd-C|!xQ7}b+7a+lgDy13^CImVf6xbEzX#%uM+jo~jp>Kt`v8((^o88@ zK8FpH=i_|1J>trOxY1e^o?s{ z>FFHS2uq?2k%}=%gn7^>#`q^?g`#*VN0+#j2b$OlqQu^$tax>#_ap9yDgVl75?{aC zbvq+=3-=U>kVxwcDaKMZed~}pxUdYdx_Pl@*2rI$?YouPa%DCULSoj;aJw{}13riS z+`l;`F*YJ5ZPc$3D>)qW<+Wd=sLYqab>CnMRo0ML!<~1FzNF9*-sK!!<~Fy)@5f52 z=es8-Vsn2U!QH<{*Q{o+z$a>UV8piMLbUk_da{)?0kNb%Jr?c*-)L&3*qLdNqkg&= zym-J50RcP5ONkJ2m$jF7&!0*a#qZFg8OlS;AiS4%qH<8VZgfk8El6FYfF87p#Tj*>gKh&Vz*C& z;6eU4f&Iax%ReBk4!|Xag1|q89=sz1n$Bfl<>pBNH0I??w0kv{mG5*&xpoY}<<@cR zZTrx1kyhFAxL&(%Q);PzTlcnlW-_I9e_jh$(CABFSuB`5Ua8(xGITu+d_F4s_BL^X z|J>gz?x@}hkTh*}J}Y72c_5n4I@gBtdwp1-kPL~;NgyY1J;|#aR$gtwpg-$yZb*GB zYp$eBG#48I;&1otGUxqR+Xbv_g^-GJrGOwJn!&8F(>dJ_>ozN8=5+7RtRso|wa}Dr zRdutHyNpqR=cBz%j;;)++E)8bW1`G8%ZgiirQPv-VX(fv+ul~1@%@E{!Tf8H8w9c= z(|ha@{J{F2$`*1HMW9)7Y`j5raKGED0=UkQLyVX(~op1DPK( zt)cNHHZYUC`ZKH9^~+c^@ae3h{j|djrxI0O^U=N*@QME9IJ0<%NC%(Cj_o%M@*b!AfQ&bHf{`+3&C)`J zBvNF8?)0yUI&^sjr(|mQ>ofSxVo3%!fN@KDBlXJUW5;B29Ucay?7M|A&N*73B|}c1-ExBtTM4FT*H4NCCy-yG{#0ln3fwno2Z=vPA{9Vmpp2 z%!Y@Ag3&IPy}HCb#+&gzS!nW(Ni<@BQ=aw_7eu#e1214PXfzcN&B<1v}ny2t~X;N3#Vux2r&RUWVs)_mNv@S;)k6W@o!u>=#lBhZM$mfVQ zE;Q7xFQ4>SMr^gRbIOo&RxF4^cX#JM5l5sm$PY>1m4W zW?PKDa>y6ZYyX#P#5d9;kqj%!xV!WU1%)jp*L%jaf}4BQ9Yt^wP|*@G$|YcM>&~H^ z4UNq|tkOkE(fGb7gD-{xy!ZFO2ItT)riFI3cL%e|d&V;{dU&NN8@b@oI`!3!&)exk zOcTlX0h7dTsBfH7@r%0E5Ix0tE8Q8GZK34HshU%^`7iEtY{EN|I-xMw7mA> z3TlBAywylzyb3lUc!fzY)paQ<#hC*^nU9A=^7~(SVleTrj8l|;DNBZwpnG6RvEaAY zv&l7~fAF*Hts-2kFVffD9f7zCnK}bHOOK;bnv~Q9U+5@F^z?}@=#Iy)gg=&LsT%r)5Hlu2_Yq#1>*J)ao5ims8N! z$-=z633?v7&9MZoaZrXg!G@8j6>B_i$Fx5`Gb7DP^toFu? zKf6AWqCDxg0>;}4yo%F(cX$J5s}yUUFaHW+vN_8ZR0VgG$xKbzqB}JwCwfLyF5U3d?j99YESc0Ap1ylbwx1AKBGndVPQ7dfoTgw89Bu(W|00LA3QIFM z8uzBSKiE#C0 zFBjmDY??Uc12)1-g3FiFO+iyVU2NRoxRC)0c4*SCOM=0{DJKg3`=NZ^No8f)s@rw@ zNkn!n+e>-|x+Gg?O~sRPARoi(mOZ<;NVwTqgwU3e-eexi=}1K8Er?Bdo5b-D^E@PMj=Xu+^K>c5C~rfMo7 z(ayw0?I?MyXNj)|h%^K|H{4prS{I*dKoSo9fD@$zGc@4S?LPMB(CoG++$9b|EX0Cu zG;R%TEsU+c(Z!e&KdMOH*s}caTzh_d^SdvMMRunJ*5?Zh{dN;6$IK(ggTK>aOE|In zW?_WIT;%)j-2L+`|;!$Y*Fw&F@kJSLVZwx15r_*A$$ zcVPXLbiq(OMJ{_aMRGl-u>+=dnZ~ReoObmKb4Hr<^@1BeEmAAB3Y(APru?@@;>7y9 z?cRpXNro4i*V~i z90dLCV62+BorGFpPv2BpxGJ)Uop|q@7UZ-N?7Hq?YmJKkHD;d}8Q5~o%pIt4$!H}6 zT5GI&)rU{`P|M4Q|(L zp~!imcFB$vIN%J9lI5|j>EbqVjYz99FV87&Dqu!K&tMObZGl7*X&Aq@EP;`=Vdq!maeTrfTV zi$%FCf4UqAbwjfL4@puibjj+ByL!*;+a99xkSPR(o(Zbcx!%>_qFtUxV~uZvz;|I; zjU7d@M*(0&7uuk8*x1(O;c&vKQ>=z)tOt=fvPXDZUAuEl^Yzm2&xDLQrFC)5S7{CZ zqvakj`x_H`7K661RVqd6{^YT!_#e{gi?w1jK-#&jKwrz94-fkdfbvSm-neLIfh1w#;&l8 z1TXh2K?C;HtPgVU8ZD&+6aKPNTqc2?0uKj1KH=%WOUndqFLB}fXT#;%N``W`^wEcm zvG=560!X8z>yo0B)951<7PwrFn2W zXP-_EwPf?A^IIE~=4X$l%F3R^ii=xs4m%P0yXN#u>2vo3eX-`kpI!5^zuAX{tIS09 zyHjHl6Hyf>(>z8p>**gNmJ;^J9SL9M{+3eR5!zp61Lay3OlHuJFIu%836C%O$(4}J zi^dtL$-%^-VIB#Ex3OW?Wdo;O>*jDqkF`5xR_0S=f-d-thw6!3u}L`W>B`SIAR^aqT;8wzs+-(d-RuQxGqisTjv&UkcHvBTiDLrO)F~ zt{c(Ec{Fokjj|TzpC%V#eDLm0px0#AIWEIv%_O z8;Jo865#kV(E|!QXd5?ar+vVZ6~63HFmlPN?2!2#8z?>WX9vh-zm+7Q8W$aYT8CzGa(amX-kH^wc$_#3_@!x}`kP>z`u&t& zsHf5U6UkPo=Yj(g129K75zZW(2yzC9yRx*p)lZK}s3_0g@#te5%eNp&q@uk1n0`~M zDd50=fW-dACg|?o^S|L74UOI6HN)!co&QaAb-TeJXT=F_zM)43{(mbYJun#+J4d_! z$X`2Nc#x7WxZ7%^TOM$?5k^GHL!@G%K7G%eId(o~Ym-LpQ{&AM(|}kT&T-R%*(pN$ zbwWW&&`4%zqv8?NEc{583$!frOk^AisZ`_aLDLA_3>7+dEtiVdnaFAQ&g3*)yiXOY zwINeNR4N@h_1}@pc#+GHugi$S7eS5{lcoW>bzg~d!mQlUbHsYBPUr^ptu zY&VnnObMEMtVj#`j+^QEGe+;mB8Nvt;MXOiMNp$+I3Tn7KP1e~b;K3E<ADq+tl3kJG64rek}lAgE$iM>rd_siSHk=zy><;( zWIqLIZU_W6BYx4)p>KFHCXUodrL~6ZKS2~W;ASNDK;T}XM}Nrkq7Z!#iX6WBOl2nd zyO_DF;Nbsp4Dw0^dG*h`yLr&FOF1^soG)0#CzlusyN^0B&=)>9MIp4eZjLu75Z6s* zHx!(-M;6jV7)slhP%_wnx)0{0|1bf{N6C~6ZX0XX9{=O1_eA)V3@}K8>^5CQooTp? z_TVN+CVn?y8Pgcgb@Xav8WT6`SH#Gw_s8%s0f{LO6YPCqgaT@GGGhGm1 z$?q(FPs>^X3-a(ZL=x}?K;b+2zH%CqQ0_r6qc@vlJt$PVOuFOQQ}SOP8Z0Y~&CxC} zPF4!Pv+<%|g5rdAsp`<|9qMyo4I1;=H`0YE+oc(I=n%FFW+7rAfbZ=z@*X@E3Wyj6J(`NpuYrH#IQ>^N2jVU= z;qD%B>NK;^b3pJIV1b1V-;ReS(*jqWaK?=#18Jjn7 zH@y$~nyGibm`1c&#+EpLHbi_JJ|zL`!TdV}I9wd#aFNsoZe|t1eXyA42tB{Pw_Iol z&@8NoN?|}6#zeLiLqVKc<~Y3JcJ5uE)giuiZkiI2d(&Nb72wqYqw&Hs-8wH}3sSVA zK1x{CASdcYLHyn2Ae3soaD92BPDOAIg3Ezw;X(4kDmqfbk?t-XgmTv)_8&2>>1Jyo z(MiegAOEzB86ixwTKMk8bd3`F(h9trX zonM?~E}XY#^v16Ug4jWZ*p+6$aYA?%AkEbonUMY@@Fm;X@kI!``#nY}Z%2;g z4=Omb$i_r6?Xbpslq~0;wgJ5^Enz~n`sVB=4h|Yue5=F59NGvnmG|QNGhW2m8Hxs$;9M}>M4ZZq?@3IRvK~LN>)bbY=-}~j=BH& z7)C8xdG$U{W4^9K+t*VbzB?echzMD0t6!++(;zOzcV`__%1(JKv^f1}l5f)7(n&w9 z3jx~mWx$Vu4fOYmMZ5#~NSYU|QAxkFYa`Gzt4CKBcu*8M5?n$u|0SATTPXUlC`;fC zE#Of@{t5)kbePf~&O^y(5u*^!2&Oca7tBT7a~_KiIChj)A|9?If3mTJi!FHPjzQF+ z5@aAwTS|^MWTR39U|ScWxTHf(rdP%X%C=iGLIWy*?Nca^j?xDN;u|p20Km!tjCZQQ z_b!U3Was)(Enc=IoO>qR` z^!R?!P01cT0wq2%^!Kx0tGOuDK<=Ks{q)?aiYGP)_k|KaHS5`JV1RZ}9CJSXVwpH2 z(19P{CT@!Y;GaF4L6|PiUS&{Vk;T{E{sWb;?1Q9Sph9vcSA1(T`(E&8$cpfpir~6K zSHl*>d(aQ;d?*azJN*kbU%*mLKBkm@z9HDnIPEd(j94n;8qPhIt0Zl zT@G5x+83cuY>qHZdP`dMlc&HfLU_|oQh8EY6c~~H>7hNb%sB{uVDQ@Ck*9EiTGp7A zU6qss1O$p`hAReg`4v1sRU7(2 zVJJ>OHUc3;0{Ch|Cb>8XOhEE?n}o@rq)YfKi2W(3QW0dj2HrDR0X3{3GznlHFoJqb*yXGO(B_ratP@(` zz7AeTvE!Bu6~X<*n|*VA6EClUC8>0Ei224SBAOagge=<=9Tfm-vI5xTnzjI`4qBbSR*xJZ$=f(5WJ&bgQXIo@-n;JIKRRgC+ zwa#^1$wb2vOoBZLR{ZBZ^65KJisiRB!s)0lrx z|ER*zMkw;)uw?TfN4FpwN>mxsgp0pp0}2lyyF!!>08F1lHkXq!@kIS7daPbXCqm(? zs5dkvE4XJHy1E?X`hG7A0ehWEjR)E~C-m}LM`y_6204x&a?7X>qXtHf7a+BgNOyO zaoXKx<0UN3^&T^hcufZ!uc=zT>Y$i)nlqVB*ZUUz(I$EXZ7-}2$ymBCihhRcf@M6ob2 z{iFT_F|#uKOJ)5DVrHWIM`hK(Wny9dm&*1N%S6kB%S_AsV`BWr#H@i!&&2$rGSdEd z*_eL3bgZ~ctZe^^`p3-lGauc*CSasx`B??akB5%sUqd?jpLEO&|4ONatA+bdMK=28 zFi>=Cj73G+kf@{pX)ye{FCjc{Qs8q2ZjHz{6O(D{x2x}+xr8; zzqS8{!H@N){GacCSN`v)|EKW(DEnVI{(*p#lSbIg($UDCM%Yr%(MZt9z{b$%-|RQI z^bG%%MgyaHp{VAN32f&E3ynq45klNvM64$_Q^4h(; zmoSpCYM;w43EUmBR6r!jX^nm+OG9|!%q$cq(B(8oxg(Z{XnuOmON;)Z7X^4J;QN3K zi+n6t5)9!^g!?GU_y-2e?smVY+M&Mz&~G3~rW&=ZceyB7I#2$%(9V}sFIwv{lOJr{ zFQK{N)iZjMwXMQdv5h%$jDJ+1rx;WyW;cAioQj9XJT1nrLr9z}Iugtq&aE5DZ{c_UZ8Vm?J@p$Pd&^3FWgw@80r5PgAgMV3;ll* z2yJmdI${nbDQzum6)dz9NvvMqsn%OYF|t#R#n;psjfLpfQejA7@^LXxNfo4><(U|Y z#lkyq)T<@#8loUh1MJa9T8SDa!|&^ktX;+*TEQYB;f4Vd@^Rj1L{s9L`6xNfL|Udz z)vsA@JGZraEB$nh-IQZ<5k$g|2dBU+X)hjC*Ld7L0`Ri}6rjBGiwnL^3h)I60--*< zIgcEYY{qZ`L2J@3ucMs7b=^*fv-0oL!nfx0u+G1f5S4rd%5qnxxC58(`&?A3sQWEz z$Yuc1#-`+81FJ{m_K?Dd!{|7+v7)@q5DeZxoO2tkMZh5P7m?^)3W}md-%4-11K5Cg zvK0;|e(rq5VdNdn@b@rR1}-AKblHRQqeSveMV`*BK0+Oayw)IogysoTzisQM%J_uM ziU=zEbzF@pT)}D5nH+UI({td@1c2M*;9tpTr&aQsnp?b8$YVJ&ka4@^CY={I<0sbP zzJQGu)@G43d8Ulqa0qddlc82g6^58t-(YTS-?4f=^3a+g#RtBV&D7ToHNg z)wHbaj1#bZeUDLUhr`CZce|aLoZ^;!2T-vx^h3kTpld=Y36?H+$8YqxJNgQ$b6`zG7Hk%F&nbMhM6E|uh|d#46{DWr>zv1Ag~|MzVq-r zoIgHh?(n-2l$cImIB4^TsEjUjcDktv{E#kn6t62aIf@msbxjy}+CrSL3 zDQ0i7&zMM~lj5L@gP1|2?0&u$5=*JJhnpbOh$&w5w)0n!4o4GX5?ay1UK4;Y+1S6( zmw0`;3fQU!;rZR76|lWf{0LY{w$s`2Qwj9lraMA?2elBX!5@$@Ys$lEw8S}u%z+nx zOe)NJ>eib$w$CCDNAIL%(bm^tBHY!ta_vI`RNZ!3!QJwZb{eWOo{SEuI3hW(%d=Tm zB#g6LjG`o2tIcP|Jtm4{I8{*T7Rm%ye+;<1 zIhFoYsWy?WRH-(N9>xS@!Mcna1HP`q`$@K#Aln1}1hRM_+XMMTRw|Oq4fv#8suRc# zwA54Aja!9VC)PoW|%J#<)xn5Uq-1AJGi7|>`UXGj8}2F5t1MuDU~AK9lL){I)NRj; zM3HBaWB1||z$I`m7p&CIm$`r?FrgG1&9M{E3vByhE{FH$tZ7`*DD;DNFE{L!dFlh? zVMWX=tMALgbHk}{?x)Qr!ZoT(@LmE?oh~qE6_NHCQ}Poqx5*nUu})zD=9tRR-AD$yAsC~ zEs%8}&&p(cw4?$fTqTanIvCgI0*bk%Mor)&hTMsZIj&P}M;vz$EdH6?n^>+nvPUR) zoJIz4sJIHWmR&7b_gvJ!>YfCr20G$xe|-Mn^vwYH@bvN=A^R>?g7CQyAHi&9Z7OWS zwfY=uA4xm-?0!Xwc%u7&-W(Nt1bh^Hz`f$EGp}DaZJBtiJ=gmNu`VfQtKw=?UkB9d zh$ny*VieJcx`^$F*6_i{65x)R>>~1rS2;tBE1a5wKGXKkxzb!S{vg6P^Rm zVYIHiro7?2P7S^$vnsu@4I*I=M3V>|#ZQsw3y)m==NZx^Ktu)tNuPL0JUf-98r}xs z1|cT22cD#ezf4peqDZ(rp}jD-QNvx4ovKUEhttX`J=wUhW47QH>v5_f|HbU~`o=yb z!dfw0#*amFXalVBY$Ja%V#377prYAF5d9TKY@QOz=Eu8$fzz&jtlZ9!8tuasbZ30yiI~ z6Q(OjZh%tN-&uZ==hz!Q|`kp0E zSTU4djz}G%o4S{U@Rjs%^oH>RJJcH+7NW!?`VqpTtD=Of*er>piIMqE<^Z9h%XIafB5kit<)F&xDbn)DJqo1QZP?Jh+w&;vE6$KG0qVa8R#iWtSI6P z8B?wewnG|0IGaNuU)`7nCo0^NQ&XjbALJpNXQg{9(_|UHA0F!eCZ(<6Oq=yhT{P66 zSgES1Dt78g87n&puzk%ccj}!7!1>rXWO7}qF?RlKw!)G>sWs8y+Hw5NA=~7U-wLXDo}HTe zomzd?vyaT8E-)3#@VX7s2mIOcb7fS=g?U|LtNz`7_^?r~-Mt=_n7$sLogAHvq->3%O|GoP?HRbL>i!<`CuhSR;6di|G zBj!mo&{qsgm1zpBuA_m7WE5nr$-DV17jAdEzjU4Cz8lwv-%shHPxWx)=gU-U?zts) z(A~E#=_3vYi|J66%S%i5pC~FdmaUE7IL$)s?fuR!c5=hRMrUXWHx4^>OfuHCt5^0a z>znOe9@QI5%@(_Z>qh!pMhP^_8&;);e1`9*$H7@RT}~VA?c?Jp;LKlhFmQsGeP;^K z9JuP_a(~MGMzw;|``jyLwX)Cai6pd|m|d{PC#f|wl@wHVYAFjkTkFi+Cc=~QLmARF zR3Pu4hK^QFj{bCrbxxu%9Jg6OYAZb4Coe}1pA$(`C|7C{wf~L0Wc)(&M9?I>;6jVA znW#=X30G1vVZlCf&Szv{!de`2kydD^3kCRE{Z*%KZD)@escbqy#XB8TN>|cZSC)nr zqgs$QCr0IR+L4hHDJ4~ctvoHO=NMq+RwwM6Zl%ZqqvxU6+K2+wR zo&83#2{PbvMKwiv+4Gd04sMj^c{gri{=%IY#dDPEj$D(&9yEa>`6=(1BGuJ(xS}v~ zxDQ>-oe^O`cz`7cKDfYmK*g)VZ8bqbSubX>aJL07YIHjdB!$2lfy8N6>N|sg*FK-q zM`g;bZKpaqp_Tz?3#sh~RR<*qa)0be_~cvA16&494h@(uD4H%9=F~J570s`CYU=1q zQ4s77@^$TNop3Y+K6D(TEOR{|5^}d`Fmk)8$I0Dx(`~@A^^pY(4r_~50AAg8z?RAK z^z7iG>7dJadlH#m zzDv;YPLJ>RNLvP%8m3Nf7;`j=RlY6(0Z}SNZ)$_yHrT--Wn0t%=v;8Lek)wNPDr5N za;J3H8FF6n_}5w{ign#eq9P;!>pW`+Ftm&}Es?DP2QfpN&tML5OTZX(tBi~c3G1qF zH<5Pm?8B&l_gGU+9qJ8OuzG?Lkj>7#RB}`*f4f~xHalO|97lKCgSinqj z-S6a(ru%6^X%c#XR!3VTia)iXBo1jjpGU|t!BoB98;B$2wAG6s9Y{NLdmtZ5%XC)* zt;kq`$jMy$1BDuEcLO0MQ2+c)=&Yz_+INPwWmXSqg6ks}4QX=c5uyKEn#6PZGqfKq zaAw{S%A`2*1b$nR6=%0|ULFdia5r(Ti5hA~0!>G7Ik}p!wu_W4+wA&1R8vP|gV1Kq zGZ=g6{fA({TF_A-%*?%2SR3Ql_(szgFD1E+N)#gnIdeZwNtt4z& zF!}pZ=`xP;XT6KyHDhCGryN}HVrgaIr@aO*oj*X$!rM|VH=%`ITXj)U@-(2V3V}(H zNfFXK8Hkg>#Y(?8Eh~Nk5BB?!49pv255CR)*gWy=01)J1L@~ zfH^Dih;MouelhF_sZpB@q!}-qD&c}0uEm{|parjJdz=Kb;?}83|N2s)05k1kZn>Zz z_^?}7rJzD$@@z;%d=%)frFcU9(+;K{atiuV+`$c%0VVnhkoPZ&MkQd zD}%4C%LiTCsDP`Wr7aBlTzu}%MW$;bsD~rV1+U>pEsJ9bG8(#B2_@-}=TwG%_YcVR zb~wPJLXPcX@8qQphAGD%j9&+pF!RdouZ0^7gM9-^^bs&Ho`1q!@C4A7+vk8<6T5~( z{F5pvJSw_aB2>VRFkON8*8<`nt?T4TJ%lLEd$5U!%4eQ>tbDKQ56j);mJ>p zdnc9K`R0E)U11M79z(qeUctViX=3EJ< z1q7-lEcQA#`Ouc4R^2C8E2rPn1V@Elqg$9?Aet@_tBW`K)-jzML%FK<2!j9)hia7L z4WR<4=@J)hu)M4BD@s|`Bh`nCKR88V!C2$wF2H!c>7oV_l1s&}(jm^3=|qC)*NIka za4|9}BGngL;0kZi8Ne&z$Zai-U*ko%xWtP)(jr141|cS*w~62cTGI0);?ow6I70Lbn3v{8DJ(cMNP)jm&ZsEX_Su7zjj`6buuV%#|sIL{j%pG6bIn z`Oc*QQw}6hA`lZ|LB#OQ55|Q8BFls!3u`=*v9Af)!z^1&9yK48kc{Ug(f*|S`3Ih! z*XtLmq6Rq1teZ@4R+Wohx~Pl7svAlNWADj-4+HKr#G~L5o^*Z`DD~8bdML|!6`Be{ zk_$$_zy#G2c^eug{VRWtfg#r|tY9&hc0SIJUzCq;F-U(lI1XnUtP_WieiO(dj}fpD z)NB;|fIXc53Rn}ZX>JMOO<7kEm^9K{*O+P+n!f{U_)QMrIKQ!kzXIsl+VvgK0erHI zwgLLK-}j6~!+%SptS(8w@lW5Q0(zi%>U?Y*N>pzL(lJwb2f{KaA92!is$k#>KoW&% zbWH)H;^_siR`L6IDQpvOnUvay@Oi1C8flht#KjuhA{ohNVm|*9?_UDj(ZjzArtpqs za#9nfNWFp5zuQWWf0ZBMHQ3zsRT|88>C@6IDB;a=$A!wmDr5{wZW~`C1k~xV+uTXw z_Qx6Dk2IQAMW=6OSJ~A2M462h3I@vHbHsJ#*jMINATcC^fGssceU_GmC}yoFOrE-N zUTJ>Y7THRu^M6`q2$CjkDMFJM(PU`D=c^9tfCDC&?P|{8dk&Why_2>iXQfgiyhW#{ zn|Knr=`ZWO6IvB1tRwqGS`RK(Sieaidc>|z*P*M&9 zH{|iXU;|JhQ&k5heJqj_raNb>dZQlzFH+ZmfCin*79$EvRj4%}v~R~R7`=Vc20>)Q z5jqoj+Ju_Zr=HFbTj4~ZO|1AY+WcA|_@vzjK8sJ*MWk?)BA0Zemt?xme>Y#uA8UO9 zj0W4BSi<0><79MXxZ-9{={G7JQ2a8J=o%^yF?*St0pFlP zZZ))sa$w24V?ltY}Kc>k_15M^@F zkkAjQD2-0sV7fkYrLl7&kr~9MIeie|PUe*|W9pg?Ph8;>RmyA;{7uR$rvfl3yU4Gh zF(r}NG@F_-T-6#vZrh(MbIA0XphUw*{BowSSYE=^_pAW>s^sMNgLXi5?P;ARYGHb9 zVV!*>|J9U!Z@uKa`q(PLhwE8uQV+r6Lw?xD&@`+wbDe`4lMH7BItC8o%v&!TngzwA zIm5jjIgYmiQdvVV+E`&16lnz{ELfQ{rCF6}8du45vRInWMVOPxNTE|Sg>m8QRKovY z?VW=w>%M;9V8^y?+qT^?J2pG^j%_C$can}ew%xI9+t$tV{0{E>-a2*uxqH>DIrr3> zd(~XK)~e5UjPdB>6`M`AIwl?dp5abouDM>cYVneh=zRHy`yu0nq!pTy{IO*1K9LHc zCdGA8&U#&`uyc}MBHjFbZg;NkhfO8%Pd?*~nQ$|{v5K~=n}TV6F4n%P{#SI_@kkP; zeJ*JyH8N3-ck``^HjL$-)^YN>hpOO7EuCxy7nNC{%*R9r&)saBN_Z^JoXsANlf^Ua zwa`Gjdb4~~Qk#tb-}m@+uvd%W)VXZqjVbfnz;pIqNGm^fWja!>O2!qPrne}C2>LD? zfNX=K5MP?kz4n~Bkgk@g4b8GVi;I>}PE3a1w$ex{?RYHYc$1g$_*tFrQP-`$v1bDY z72kMUWTtahZ2nv|WYb9CPtw4+gWRtd(os2!U1KOMM$y~q6edZ_AN?Tq5G(fKII7l1 z3_b@ZxVQMOv%ZiD)l}LGIjE!dw;S=l-5)F3F)|=)I|Y}=x#X4H_uCUGCr2}yyheG;oPN*ZQMZNFI`EBVV&;GdSdkH(7M?Xl z|FOy-ccl|$R~zm3hwj=Cmn;*(D%f+NvzArL|Hyu^fot2;#qJ7yX4cQ2QX7aHu4d7;-|J#$Do1K`8^Pe&&&wpw- zc)rf|H4i%%*FOmVf6d3i@?Ym>|3dU%X!>i-94udIfPYr{1;776>l|NrpOxjGb+EH@ zeXaW6_5XwXS^m@a3uS+`vVW0#HfHvJd$Y6s^Gn#jK>b(gzg{4Yf9CnWBW)HIW-hM( z#b#MKSU5QUE1Ny@f${h@zkJ2>xS`FuY>t{JjCp{V1V0)KK&>SijZYz`CxIIyr*Fx~ zAP1K*Z)StZf(9euhBa0J78t3ZG|a=$0`1m+H>z(tlsD$S_^VrgHh$TKG+L*O`CRfm zDyH{aHq1YK{v7f?*zlh4-ng|t^xbrs@CAb=3*Oo8AsM|1U2D(m%Junjc8`-+i4YTo zd#Wy^C~3LQZ)s?EiOHXtYtI8zo)PS(X?T40=yy zl8k-iyc&{BfU_w!ydx}Kc#g^GJ!fwxc&7`Rd--M6B<9cb!Y69O2Fh6@b>t@Kd1EFd z$|1~loi}uT9}-*0e{=}lDfPpP|2iMJf$vPyEh>a{SuSrXvkz!TfITVPVhpmR{e}mH(F| zF-2>n>+UF;=XR7~Ec}`7?ySm*P*&&8mQd<-d2_Q%;r`A-LBV9Ng+JH^-+?N6p08o8 zmf>HBZB~xjaekrJcWo?h7!KcORA1O?p}5H?wiqOf&zJd;!Q?`2HzZac9U-ishv3sE zlD$ChNiBS^&-S;aEUCDm%lvX7q)Vq)wNGCcNEbFzxH`Lfy)!b)Vx4CG*@RGjc%Y~Tk)cX;; z7rsD@MIEi*;*dOb@bF@{)i8Y=U67NUk)8m7MHv1}ka)f47`OajO?7vr#U+9O#b_FA z6FBz>R%{Qh8`ukXJ@uUpzK3@eD~KwVs8mg~@CMu-9tqr)KBUi3%hKYKp;Lq&*DL0$ z#e+gJVy0q{3g#RbD`MX1G|3OZJ7!1JM`U534XNUwS`E(Oc1tsi?zQz<|0#>9rrda? z6eJST+4*Lj_hJK|yI$S1`yQz{SstDuh%09D;Mjunq-F{U*2ZlT`C8 z*ZIG{217AiN7ESeRdv-mntwZI8k9%;9Tc0+WHrf9V`IZZuqw#M6=1`IN;U(3`3CarpAUNx5kTZpv$cE3F%6411oa+ zCU?R_c${Pd`m16Zx0GFsu0UU6m27;#q_wk=YOe{kcwO4zkHN<(fX#W_$r;bH!d4ekptecFGW( zzIJe2wS%L3)l)EUjJ0uI`#luIp5xcZxfh)lJe-wZ&~*2zt%aCU37Tyos3lA3kKypg zO6=M#Uxe|6ulS(5zA+24@aBJY3p5eX5jwZcDECY@E|D5A$f*Bm?F?mGLc;R(|KjfFOKkFFLyB5#e10<`YiqQYdHG!)M{jCPFX_Z zr3#WUvuy}V&?N;Nv?=VI;y_E2W9doJdgT+9M8cFB_JAaca!qWyrwGQb^(9C`%d$GR zqJ~vK9>E{%5D*J`1-u<)n*LF7cv^M%d^7W@N=zTemX<0AU@~^lirE;Dbm z(f6nUrhpZz_Vv_*rscAM@BHDR=H_%&rc^vUEaV4uXXjVkqlJwcCRqUDX&%f47R)I` ztpsKhgzr+D>7DN!gRoFW@w$!xtt)Qu%Re%VK_`|QPv6M#1N-~3Rd@W()weNIb*BPy zg{D|qmw9F?$ld9*7^H4eKrBdqT5tdsN+4Qo4^Yra{?x@h-s+H%9CY-2^^@9lN9er8jYKxxPtMWK55`>uD~jX z6N=#yDR*Z%V1>IR)az0mt3kC8834OL2T4(dtw1pSOKT3OW zg{}O$rir?VjWsBU!9CT4t$tH7J$a5v_P``bKV1WpVk-eoWv3u6EkOSE+l0HYMXEN=H#HMmO@pAnkrScE`l}=}3i5f!y6&l&Mq*MfGnQ#?t zz!$U6rJ1rL)G7Si3YIU_q%EqU_M2F{gF_ihQe~Rx8)qiCye!KP)O{y`J)~Ggbe5l_ z<+x)upw+Tuh0h?fmMJA+vDK7fv%P4P2;k5PZKm4n!TT|(dnxI($4sFg1+`!&^yx<+ zP^{AHv;`9wQ~|uu3^Cu!niIj4p)}gp#4xN<@bprXPRJR;_+@hcs31r0De~cY{YG>) zEl*hcidItnD|#4Oc7+Lr@<26l;#!`>CDCtsPg6lX9AI;#Bwzeo zxDS6L;S*}fLo8K{?>vd zl$gND35nXVxp5MYY5j+lRxwMeQBsz7TIGlRtF*OsJ?#uPo-2-;QIht9@$s?+;qj)p zu_{JmQRdyV6fZ{d8s!L={7v0t1)+Pg;rnxX+5R%T__SbRjQq)@`G73iH!=lH1TvMX zgd2dcf?HQ^QDZ)b6S=5~JZ}J1fF%X7X#_pR(t$N{aqJ%rHE280=CW|^nR+t`u`o=> z+*Cb2T;2xa@mVWW%(saik%CG5!PICFXPa7bp|rOB=|p#X*3~=>nF|f!GV&&TnQ7XAsqlo54Q|nd`cOysv%nU12uJp79p*(nYbCUBSi8?Pk_y%lXjovk z>G=I?Vc&CZ(WlFvkr-Fn@BtAVv~AdPKuat^my`e|u3XOz{ZMQ>j4~pWf;Mq$^qJxC z3c3V7G1P(ktBdnQ{%QntpE5Gcfb@~Lv9~%mMf3P}&G)v3+4$5ihlrdyP2kB|Cp@)@ z0OocKO7NE1@MCJOon8C7_UUy+b9XF?rqQum#wClC?@M+)qQ|6i7)pQUDKq!p{%kwJ zfQ^gYVY8t;sNS2p!&8A2rVias@gFmrCQsu0fppYf@U)`fG*0)3Lj$kjR4g+{ihC#KDC;5qf<0)s3L;5N#j4}--WA63Q|5}=O;v8;z!0KQ&}&oG!s%cJ2DY) zW^B4v|AV_w-)gW3%^htblu(gss2Ih5wRcT?OOp13xh=p~&%S@uF>24|s&EGhgS4i|XgOHCN(~Xe2b}=W7Cki&xwH8SCTZg=@qV%<_L905-^oK& z)U=>n@T5AE{^am0W}Ms|iEoWxNhh_~9F}?T9R$wdz01tx>Fuo8OZy$v zU7bb5OZM6GOU816-{4)t3;k9~Mkc3KgHxo0P>4cK{YpHq;pAjcq@Qz`-_2dbNI9FT z=*!(+ykMo#%vx$h$cT%sDuZj$Ptg;Zq$=49TSa;q%b66*EL2+^U0WIXq=I0povqlK z0jxm|i8Ra1Zxnxjac2$wswdI?7SS3JV$cv%V})WGx=Nez5&!#Uk>CF z&Xgmb3Lg*buP^A_+?p{#?^8gf|EFKFiVhz4l99kTX=$%wB8~2Mf}JJsMpaWu^E#Z7 z5RLuDb_ttMtB7R-bQ^;ziUH5EQ`%2=Af3L=?p6UR*v<4sh=x z38d1jL6uP|h0CXKyO+Yb zUqViJBoK^M_+`b}RH`UkC1G=U)e}anD4W@{HL{WtGSb6wP|75f1(jZXelijfn(K?o zj#Mn;xkBnMpsV#{_rA676~V}ch*)(0>MiK)1@chtqMIeMtQD%#s-L;^$Yj)+o0%W% zLtxdwF$x9c=#9L!gxu5NEqW^IwVhh(Yu5y-&H4N|7+)J3({tXO5O8^Z_tLa?Q{Pq} zt#n;|)bGfjU>VZW4L}zAc=<9FX3G=BO*W61ceE}>4XnWba-d88Yoy=F;utcWXZWa02hCCprTN zWmAMOH$|0~+$BbAkG5EIqJO$gW9nkPvzdO(f-+P|CPezUOVJDx65wpU&dKj~5HDCJ zeqLqBBZ#5YHb%GR*a`6Ymd;;8X_jCbe<{-F*_?3=Ph@I@i3o*fkC=%RcKpUQ6+wy# zJDWgYNuMIp=-eD;h5f;quk3I6ggMd+i%Fj?VXi)T>qHG|n~mF8Q&l9MMr5@=GKNiu zg^2?TZv;tkyA#zTXLPcMb#CFHjpa-E`+4DBD%al1^WdRl)7lug$dHDTC2 zfP`twJzaOVvLCh~#QM|}G$HkB?<9c!cA8g&R0ZLyg?@V!PAMMYv%W>vA7Yx53x*F7 z$p_9|VaovnCw~t;TTcDHTL%(Noa5RS^<7Guri?%J&ZNSUE~m7a4~)lICXI0rrPb844)_I(0Ub z0n3VgMCn&(hd3wUZEwidr9(5QQu7t6V*7UJ7SRNe?~J+k4YlhO$`Cxj|7k|92Ma8$ z^SWod2MLkj#pvn^YE!t@{Q_h>k%X6(-bsaqMn)zaYJ7*RgF0W_dEPV=+vou`hJGwp z1d5r)1sn4E&!x;}4A-}&6op#BMtU<57tbs0Y|Xls-=CRVNEpQ&LsiSq&_wzTql7-t zSQXcp@IsSs%^tqzgErlr63F>#Jzy=CwGdgEM4pvHWdSr&3&JFV!|g zW*3{Cx4$5o5Z6A&PSzbLwYt1L`WD*XVq3qQBJ|a}LbZ0d&vE@+VSI2~s@Ab*nXnXS zcU=Uhiy-QD%JEG+s1}z?mSv#D2{jA%X!UW#7m>BswG?@!1o&7|}u9{)U;VmHmUFX+w0v3v!pWVl7`f03h{?G_$I)sjvW}Mp zU?c%y~Mo`P_A<>vAd2sYrPnlyHUs&s+C$c46u#QFjg~BOVFr9RU7qH4+P)*|xb;+;bZPS@bar|yZLGh)%xYRbSQ^+ExAo9E^t|00F^uGB3b$$NB)VGf zsI?HgBpB`0;1O}dL!QUMw9A%^mN2$vcT}2-#ip3FB^(fdfG6Y(Vx))iQ{iv$IuG(a zb;$Hww3}{`O67r)*IukzZEfKCzRPscd1>cxt4euNNQL+%0$psucF^DUc}eJYH-(Aq zX)huLk2tS4MMt6ug+|sOGUm%C_fH0pcO$TOho3A7hZs@fdm3oH?)8)y4vqaGz;dW_ zSnA*CgGGXrctdHMU2Wsb|NLC{7+vN2{K4YqHP^aZ$>=@AK!?5B8N}6#-yg_x0HjDX zLflD*LDR}njh^owloZ3l{sWAyVjcv(0eRrk-`>az+)>+q1fo$Y7h9wUp;~Q0Pr-Fz5NRBzkA1Fmk(PB--pm&}BmX?BHYCfJT#74%$ z!)JXU|1B@L2$N{TLXTL_HGWz4C@6S`bOcsHA`!<3v1mWN)r54MU4lk+L4hXn3Omt; z+|;x4SFcwpyF^4TK7ZZLFEX#k)y>cOtf7}WUwv>4^-l79s*=u@GE0MBt}+FW6EC5= zoeJ*s)oq27D|J2Qx3+`(X4;D_vfe=OC@xLTa~Zmo>8`_0hDvp|1EuMCtO=VQ4889S zf)=h`D)I(81%jZL2EP5R2huLL2^`}=48}@}gZ4`9N?d-%+bhm){*X)lNPCfZJs)Vq zn*EmA#j^d-oFur`u(*e&BT42&n2c6VD#s7mV}hOM3msHybbnVI((|ba{QRqK*WUZM zm~CiV58wv+=0*jOO{37&e+d2dmGApr%wLIRT5H>H?lRedP!}0xu|JVBYS5fLbdNQj zt|D$PBWY{SBu(d*9xDEQvID?}4tuMb=?FXbZOx>o&4{nUGo6*gFr7np;ohxvRkp5Q zszw%*CRtqHRcjsKnX=G>iKbzh7hCO3x)es_$+!d^bvyesU^IO-^i)V}D?eg5wv`Ls zfW1UUja+0G(=LTvWqSTb?$dsmx#sOs$!7Do$}?}aHq**v>-un*prPs4dqR_2{{l1N zb9k`&_*1@|*402LsKe2t>h}6|P^*LHj_QHup)!FWNOmq%%<;#P~0zz# zN?F;`Zun^Ge|EzO8+HS_C(|?zd1m~;RnfJpqg^D=xrnttYPaJpwz-fh44cL~4BPFr z6FU5tX96e66>V+oANKB-y%FapT+ib;7~573tg3Wsn%B}b=GTo-FmYIIxaRq?Fq0J- z*p=k<={XmFsAKQFL#p-p;`u+M$>d;UQ8zfsyP-Un&OC}23TFoS9-^_0i zv`{Ioy&ei3>MRDCu(E(Vbn-C!WN=empH01<35Iix@NpRPLz!}rohH`P$`C51iFoSw zKH|51eA7_~F}b|+?i$IsobtIOpXKu@Xuth^fO>GZ-`+<-Ae{4NCe(&eN;lF8R3{!7 zW>1J=m6iu0`H5axf}A?;y!Y%P?+Te%=uLntsr4KYFzY~kjO(HnCgXnD*qhDa?-a-& zE(SNPu_rsJ7z=8A2mcv)i>8)GN&mdHy=AiBv&k&e)5OrjhUDK2Xkuw4ZRbkYL)Hr< z$_(mUYNBa%SgKpV@#$uU+vG7M`# z)QzL%>VGBP=oC^y!hK}eyaXHBK5nizfwuT#U%KW6(VNNxHzJFEG}t2syAWMX^;nUZ z$H|ll#GC8|yN-w&*FoqC{MtZw)K_pZ!S>*yP^Hd6cLzV6x1p01F3eDK7OFYp6D1hDF7=+sWC&Wr4U+s}_B3 z!guANa;n-gYD$#-1EH)mFmKRStOR$k5Hjy?Ny!s~_9`~AT&b6SkNqnHaw|wRhxU4| zCbNF?+3zi`i`WJ}rI{H#B_<=G2(#(E>ig=W@2k%3Roh6dhiMLaosL4fZN~Ox^k{A2 zKi_9m)(UkvoQq3EQp3-O(-|a}pnitDS@F?4taq7@zx%G{EZfC&AVRUJd6>RVNa==1 zx!d}SFF7BkzT|MY8+7a|qF#^o=s3`t=dstK#l}inSBmy0QRZWN`O)NOiFjFuzoE1D z;)Bs!@%Y)fq*)9F+C4T3x;joSFSG^@ZV8MvJ#4+UcAeX9`l?MXu*Gte^v9}&{SIPU zmp3l}^XUAY-b1sDafyb*Df;?&CNbrjNI{7yK_LvLq>uuZ`J@Z{VXxgSjT#*;OreaE z$hqTCb(y)cVRN48JDE8I`SVF+JfYJa`?4Wjd#=%1!*%rSA>?OL`DJI7)n?;OU{*Mw zc0o2i;3X7prOTKJD6T6+j+!v33Qj)^o_@@+lbUOAlY6|>+cn&0k`LWy9j{&;3tdA4Q`XD2yPDZ1Lvab^cUYc`peRST zryIB*QkV1XIC{_sRP^CckI@Yh0V(!-PoaE!0c3&PEpsrYIHrsRWvGve4E0~l-rAga z;N!yc!Q}0N;bN1Mh1As%!k=LI_EW{|kfg^>WO}d1l)U?T)5XFk3swdSXBwKy(B5Dm z&)D4C9^l3)RAt_Nqq%&y)$8)jv-4$Z8tXdl;|W&KbA{;5`>M%(9mhw&!zw@;Ll&~^ zCmw_PfQ5{!4C)Ctr;O>@Z@4o(W(!oRsxbPWqF>-~eRWfTdEuRNd$T1ZRc8`h8{N6&`hC zq0k?pt<>pDxD~c=GmLCGP_UWF2!y>LFb^p{Iz7QyJ_lnzU$rafvY_H?IXxj4_zCp> z%LHeEM01ATh;%S+(Y;;*r{Dl52bzgLZu^gcWYK-wPJj5i9RzNFFc)zLnFL+-$o@e* z7i)S)+i#$Q__Zs`;vc9Aw?9SoS0K00hpIpiS3lkAQ*@a)jcO>Ft2bo7vpEEc;{XTQ{#NroOG`VhcJf&|>t`-4pJj_KBT+QN@3DlL ztCmRa-`T1i562P$&v40=C}vE_4yAD-&vxGi7xzzZT%UW*=DWTv#Hhtat6kuiWaE~! zvnW2#3#oiCD|&uLVa6z`6_n+DnVgSqsF*1;ZqB~3>J_L@FMsB-zcbPAe1`3JW6@K6 zbU-`=&0baaeOjQ(edNS{8=}V4(fU|arfn3hs-q6oCtYlT#)p`x(P*iP?pDc1U7%Pr zxvo2dX(0?7i*#$Ll88jXC%Dofo@WV5j?CI?1*1U^auzs={(LV zGjwoLA&!^2&eI#B<}k0-vryKPuhFxZ?oXF(nUL6`o=Q${aMs5OEEF{!Q*5b{go(WT zdrzHAc#G9S7=vrFyXOU;iLpw#XtL~Evl)NtWLeCpUS*SD9{dZ@G>c@u2a$z0PEV6K z=EAy#&{e|kPanox`IPv&L5m>LAYohFWL64SnBhrnlznyE`cPVnM4T?V52L#hVpnN- zRJFV7kC%3zj@eW6*X&sQ&YIZ~rR6Pj?_XDf`IVz1ZL6M!C8MKFZQed_ls%(-*}fBu zO+&|9`T}21h`v76i}SNRaP5nWr%Sy}cH3C@-2LD_X4M_Dqix_%(a+FT&=wz8KMsrUXavC+8M>!!6aH0fTwWE)>3 zp43K~Az<*V#~$2BH?_1;Di;5?26)z>9p_sv)EsDiLdJN}&oz)F}VL*gEc8aF&CQ61Ef2QAo zNGjIcHadTv$fJBKdkZb@-H`{Hz?OCC#;13_cV1-e>9yLbw=rS6u}xaE>g5Y^hnly( zEG8L9*kYgX$lJpb0EFB7)oPFsyMxR~Xsn!TOZwMct)$Jnp0eM{>-$N2jw0{iHe`}Y z>}if0Q6Tc2o4aP3H=4@$#f4LIxa3C596|`Edv4NiQU#m1Rj5Q+RODChD*4}Q`{(Gw zcbp}*Od}E@(01az>!(4U?t#Z7=+tdBItTPOPiqF9Yy0;?nJ95bKm+DHq&Gw#m7hdAF1@v{Ftg4RN>)OVT z!-b(>b14`kN@VbJhr8fW){WE~juqdN zG-zH;Kr%8@MoS12ga~NPTL^N_vp_ik_7-{txaKJy-Oi+ZoVJ;YJe})M~-U4PLPRCK3$BUI5*=LL^SEgmUzC zE%DW{1rKv!8p87dG#K@%lORx6g*`1 zM)h>yC%l)o!B2`v7sSwqtn|V`h`VL6@jPpySa`tB9bu`I%Gs_tO7&Y}9c@K;nR!_H z+tRmP$7^!Lf*#XJ*2X!jPin5o5QXJs>6(EhakHSUyRUACYMPlD!JDfq`M!sZaVR|~ zW|^?>=b9DJ_E(c4cG}Cbfj*9AXqP_o`hKW3|F0j$gjIt2&NOeJi+bT~Ga}e$+#Pb< z++ev+tZ?OhbOP^9wFjoc<^X3>{+ZzGD!^sYpt@X?e7(c=nDo-4f@l7Lhp+`o(Mr1N zL^3e-09)0T|o)bSr!{gi)3_JASs6c+g8b_qaG0J*;xdmwSSk3oew0 zIz2D~IaiaQnzkeQ<`QkfsPP}wRWvO317(uizZs-_GA|-?^XttnKH=L z!7;nC13tns1!iT={yppa&L37zW++Q<0 zt1LMVmvzgMnR70j`MlSwlGX4ke?)7%vN)X|xg^n0>7IHtEL_^Uc&`~~p3iS2IKvjx zIE-!TkKOSJ*w38H@R%9a(3Y{uG)=BAq^Zsl{p`nzv@YIpR8a_<_Vcdg$~iw-%c)W% z&+aK3QSJ5gW6dQ};tq>Cf3f{FRn>Jxg`k3GVXS~9LZ`Ym)P?LFUn8eHa9d&~8_xSn zX9lx2b~)7+{PTuiM zDp$q5^u~0|1D|qE*bcx;o{m|+u7DKs5`VP z)OWCU`LsaIW7;dO7lLNt_=JzVuE5VJg)LGM)mDX1(90J5{~>*5W&N)r;r}j1{{QPcI|u8REcpL)aIk#I zioX*3mt^_h{LAMS+n3+5FJbdnEi2o9#{H9X@qCG*|Ly&cH2EK)G8_AsEcr{?%=SM7 z(p>-g-ue?F|%$neFA-@k^N~D^C7s)5z;fkySX2~w~ulR?WKKvGghAe)1DB8>?13_el z#kG_m$hu>#k??ap^}gN@?So)UmquLac|9QHkwH*wGV?&H08^YsZD6U9ksxiL$$2Ul zYN>f6@S@jd&7vR(&?B-U$mlvE*NoUwHpHhs)>uX|QRLTiRIoQ9zF}KZJ!tLnKJr!v z0urZ#P7X_QSDyl920{Cuk#7Bbj%M#+2~XEYVutmxqM$K5BwFr&YYDaZM?MI(Zd%?f zfzKuNO}=^)A3v;fVD=AYQ(!K$SCCR*alf7wx0CHIgC6|nHol?e5a6(dCRt8?QA^Y6iJ62Fs%?Sl%eZV#W`iqA&_hOiF40)J|#_ZVFfD` zru-h2q~nN-)1XC+X;n`%eqoWHB&dAjzgJ%s%H1flw8mRY-C1|aSb2Z8Gx;pvwR$-5 zc=>VXUr=ZrauRW#vlj)I>X&*h^KxA1A6F7GM74@Bd)>|lL35cwk985GkYxLT$w||w zkeU;ljJZ@~0Lc0#^y%|rn4B!;_+GZRlh*SfaRy!8*A$%Fcy;J;H|g)n_Je;h(`R)&H{8d=%jbsBx3K^{D zpP%9^ytKNkMhI1lpuST`SxPhDb0%+>;!>ZGt<8M4B)YsS5Oo{g-#y-|dHqH{XVTyP zMhm!*5XmZ?48U)|IpsfLQ2sGBH@2b=GONR|#aQibtU0&kYKzqGvo~t00U5Qp)yB~U z&^~CkTo{@#M5BR|JT#q@yhYv1WFk8}y9~ZYsjLUzo%nAJ1{;_lzB0%Sy~J9zJl5XP z>{)zPd%RAPU*DEpPrtoMYBL>~y$#CE3*CwNXbivxPHGzqUZ_U5P!SqCeXl^Q<=>Gr z9vdp781(t_dX3XG8?hF0Y}#*coEo|$HpYtV9r1i5Ld2pQ*c_`xIO%8H2CWWt=Jr@0W$*3E?j1aCHvA_H$D18z}FNby1Wmh=5=CXo%@W{}M#|iZU zTotwEJKv5({}}#DE{8!+mDP|@k6&8i0D7$ zk?W<%(K+N7BBal2GugG-!ZSP6*n^62@Mldatr*9~M^jEZRQE!7tJ(WC*qgq;tnfN$ zMZ%9BQ#k8vr?EkfdGKqA{dRwtmqA%zoR`9Fd_ieL3N4B~uu;yLV-bqoN0*uWTElX3eZ`P!{0WgB_fPVPe;8BN zmbAp&p#EqrK&FQdCKKgj@?cXZ%r)R4%p zMlUk_<6)voFqS|7e4~{&QrAY8Tq`WXNUEaxJ}3mDbaOg3M{B5WY7LX-%061FgQF+_ zEF!L_HI=hPwnC?02QToUN~=;@#FyYv?l+NTH5pV3gM-T|3N?p&mUm!2cRvR8ypcW~dG;Rd1AD_X0$e#ri^p5P5p9K zrQ(URPrB8!;~`l(z_WzxI1r{jF`0I2vJ9aXiMKmoaIx4e{74)wD43!jB(F$qQ;jH< z3emeEZP9(Y?RT(`Xf1qcWmi4WuoAGE)0E#wmr)cN7@I#WkOLmnv(-KL^3VyZhXuYd zcme7lx2l(R_IA^_UUloSO7kb2!MajJ4QvkHYkA|Khj?|hw%|M*Mk%(V(oQ81rs14p zyN90Mh7WjXubc|2_cw%}>>9qQ9-j?Yd()L1`i~T&`Y;&JCP%+;s?`oFq`nx~i2Pi< zp*?lDl<#6ZP!{N92l1Dkd{t~^nZ*tvHQi&RF8~T=I7B?C8ytU*HYn3bRhbDJ08fJ@ zp>o4~Ldn8iVF7u7E1orKc8$EsmX7{|Ac27)&gw!$fpL|MQf#ti1t7LW=*rK&5i}Lq z*yknudV|Jc&Am z&Qn5{oF*VFYo-bL{=mgv>iTW?XBFZFRPc(2enWK)UGyodJ+eA3nT#a~jX5X>?jEmC z$M<5!Y#Rato(SVL-iKhaZ4ifgJAEyK>R-_GR~q8q{A$bYZbM;v!D%*(J#Tv&s_yki zNML+}QaKZwnWJJtXr!$Lyf*d+3aZ>94y56#%y{YR858feepX*S4p+E-{dc>|-5tZP zNUI9s_A@D+-aP*-yesSb?rbojkE7PzsDMJ?wU>+hR|_H<5tGB&@XDK_^{;yFj(KL7 zQHwj3ea@QIaw2XN8Kj{J)KB|whGD1<+U>QW4#3v*m_l;(+n=W_7tIv#F@$#)H}b@5 zd{4(iheXY>TcROX-QPq^&4`&a+0?D$2f)E``^xB)+u1`|l0$&iQMs_;KD{Hi<86-0 zTDb8EBiw(cqAbF;cB3`%QLtjAP7qxfel*H#3@DcOQ&L}p>u?GhWui^iXvKy)5!bpo zH#*R-cH>kBcKWmm7*RbjM%C@vY8DY4n(Bqbg|HK6v||{2#M4b4uEqATH4;1S?E37E znkl8tEkw-XBXHIuvBO`DT4_qr8`Y$e9zs%P^keimuH=zygGdE(6j}oE%X#(Y?efPTF1U}ySo~7Vd~<09CpQ<(&yn_%PilBDsP4waHeN*Y(93q zky-@l%B;3VG9n)XrvX=e2C?rfzgkm%YMZbe5{t~0NaUX*U>y67jO)o59V*Q-GK67u zu5Q673J=`nE(|8}7?mY)DOG7yD=vz4VO0n;2jCVOsIo{J zYz_QfYQrK*(W3|C0bl?a0Q;tO(MFs&bQI|l%t^MX$mnVvq(D(17|;jE&zdSX5B|*o zGG!mx6iuE=K`1be))d8~%z)C$3z{5^O9WEHi`|ZK4LaN{2_p%u zIE=AWlKdLH#ognN_Lj5d0Pv6D)kXdgy>gmcj=Zt}ngEDUe57fKklU4dzXOF(+NG|f zRG-0nE@Awn%(^I^5PI4GU6d)Gq)!+ynKpZN+=oRxkpD43 z&sB7}dhJwnk$O8zE3vjUfYr!rqK<4mX)yMrPpWeZfsSO$?SZxiN}SbX&8hN+Vi;AF z*u>-I(q;~Gn4-;z(fT5Tj8x6h>`WANY0CFeFb~Lj;*KOe_CPr32`X+T>pp>u^8!q_ z#A5=$YFUWg-lztUVQ$0xcV~nVSq~)81!e*54lP?upC@ZYS858YA%(Pp;wVOkN#rO( z=XvcsR)LlM4h#qB4!FB3kDP*_^H*6+W0* zM0c)0f;(v|x)dVL6Ejlh%EzMeYu}9)V)7qoyUYQh_-shEFcr29m|}jh6VsDu$@hNk zVwtZyCBVp!9b!^pL74WQyn?JWCi9SNPJG-)Wg;qb6&a}Ff}PK6Z4js|p^U?EyUd$r zgeU?b;yH&eOdXZ!f?_T;z7Jgts4Fnvn3A_H4bJ1XK0u)-rH;<@B!+{&8A;;@>N(R0 zGmaAvlcd$c{7ORe10xc_3{0anP5c$6mpBZ=)sQ9#lhJ5U)$4kF;S2vaXOf${VKmP39`s&$XpP zKZ0kDJmxxu{|Q}2`3?&BX=Q_^z9G9 z9Tl;vS8r->+*u`@g|?tVCEN)&q3>FUerr>Qe(-XH9Ox}XB7WG<;eJWp(p}5%@qSUS zBJUcH;KPq(M1wx)PROpL!&JArp zv@N9AX5F@RoA~iIc4!-`+r|pFF#)!jwn^JW{npUt(3V4+L$JAN^PbI-&5AjZ&F^d$ zU^CMWjXrsJvn!(kF?i)>gQ;OtXhUe@p$(yPd)J4~MhDlGtqt`ZS{v#u>kjoC>JBA$ z7jz3Z7kX5wh8qg*w_^yGKn!@CInG~ zI`=c1yFq-E@n1|Tfw3C~TU!EwMMLV*<%=Skrj-%4H{xsI&tUV4h-z;HLMv9b4Kj9J zSpLCd#L9niEaxx3_S!)^tAX^IMUnKDwy1dEKzdDhQDhHK2ZM5Yl&1kz!XRe`?NAdA ztlqM1OQ0=Sr2+Fh<`2!H?FrLMCLuYQB`1$23&CXUPO{N$6!>G*CB=w;0&E8Xv2-Yz@d?%&iWy zZ9E^~V*cH-74!VFP0mAL67lMswoDXlBcp4!AZ?8cw+8-a68m>M@E=ajHT)O#>N@~N zZkqIu1e)M%*aCa-a|K)rH^CF|3+RMPF|`j4z`gKIh`>|uLwF7Ti8QiHxgPZ5L!bf+ z!07SO;gNfhhm^(%lAADRQAp#GQPb%AQ)KUt+%#$$8B(QyR<3IheuC0JvlFAog=(H3 zE#-OPN=zrqH9k_`G4kD!gOl7@2#cW=LU0D031L_UOOczP8J55*SOXo<1>MjCy|5Pg zU>(Nm9O#Gja4vE$Y=Dih2{vO4x575qj_Iv23FUXfE;tW%$MAf(0Monhd7hlQ5H7;V zUp$7FjN!QCQn(!XGJIYESHfPn3Xwl2%O>Xr;A*%A$MZV4ek^_cDWyDp1Kf;!BYX)* z{mYoX703QIxE;PKOK*Z(;45-&KirAsw@lLIW#jr^gF8^`0DK)a@50%0aEdP1+z*e! zV>qXtfyZ&SJ%OpG;RvRmhF`)v@Gkrgeh+_O0anW9!!h_6Uc%`2V$^xeH_Fd-_*^>{ z@f{f3cw{fch)s^e_E;Ik^Ab5u@vjnWNb`5Coa?%}4Q3$@-DzVvRFmG&T&2?&_6{_EQ`>j=Pzx4v*3#{O+;a7)E zCte*+DK9T5D8f6IF7OG`^iimQZK zGxG&+rV-gcYi5-&yGkr6&Jbi((v+pB%%$QRpRN>_olptqyX((gnkBehMyp=QB&FM- zsa%$CN%qXj&JGs1)moLH)TlH$6?K_)t1Hq*9uUI{s_(`pz|C29^MKjkfFIC>E)d&ie>QR@&H>bgq8jvi>7L(qnwAfQrYD222B0#Aj} z82&8vc$Wg>wQ!VuMo}JEigf#^Ke(}SU28>}s8Z_;Nv6X2oiz>TF3R>-HMcZXO|RN~ zXLsS54aF%M#kVy!N2*1imY(LTZVKeqlol43FX{+}Zr(7@=Juqes_bd0HiP7orq`}0 z$*V2R=f(4u4fM@5Ib11tQ4&TU8a*yvgF9a)_~CLsra?m{I2}H{!LQSLvkZ?2YH)y7 zs0^ln!|(e@=S|n^Q__1<`jmYbj`M{JViP%~ydb6g=!vIU!7CWu)PfRRMDjPKoG+jh zzuxyz|7X+=Jk8gET@ITteY!`@=fB@yI-Ak1=1_Z?N4!cDQ~Vxxrb)?Wj0E>64Nl** z46k0T7qV5!Y1wXXZmO1DFO0m$`sU((rBJAKn&J17a9%5o(`@4Rbw;%)YK;0lBU=71 zI~(zF5O0ndkOQT#Uygw`tFXvhRAlqoXFMX*$o~L57|d|nlv%I3!7irSW@yE1Qz0uX zO!2;v+FkU1%GwFt!KsG*flUENIj-(uoV>4`cxAW%_Y%|YD~}%K;mA-HX1&@!W()14 zdf(_z?M^9rzkiY~{Gct_P#`wR1a*dJ<8#fE>7Q-Eo!!ItgPDG>SL9PnHug!g>{#WJUIc~A3 zIJ~gjtn$pPosl1Iswm~<{7F2w3 zvV!5GjWGfFGN)iaWH8l~1?nYFZiX4}=Bv!r1A#dmf3 z>Z-~zjpC5Xn&z?@r+KH9v~1XQUTJmvyiAug&0x@aeICoSw3MQb8`mto`)dR1<|bj* z%Kv5cVgQ8|=basVu!hI&2ug98InpzX28Yq0Nk3-p&N!wyX=d@=@P(4%SNKjCG;>XJ z`mug}elede6CK z5vifS{hB+j>AkqCKF=!Lx$vvET+uT}WlS~m=}^*n-Pz?G4gOEx&tJA~>v?=0EWwqu z4SSReyX93RC0T76n@!{Q>79Bf_>w;K=lHBvN%K)ox9ub8g`cc5xfudyPpW?Nw~84evTSqh@4Z zJv(USX@lm(AN3Z4QgK8*JykI2k`$ua=CoUNBhP1OtWJB1ZsZ=9%9iT1=+((i6Ay<8 z`#&G|($(01KkShEpCR{OBiY=NUJvf1W0KeAwp!CPAA7sgChdQ6=i|LEC@@dlDy-I| zWBsw3Ud_k-Q|ks|bx+mv`28W)>D7WFiFbO(Jht8@D)DsDjNBL!bhb=>VNeNAsdDV> zQ!RE^V|O|%`jPu3wawwc?zZ9{s!(WjYVk*&^knL*Vga5T1#q|ASG!kl$i$D+k)_l6 z3c#mz%;?GT;u;Owbp^gmry?D+28ZIb+rPZU9X)XruVk;_?B=~^P7|i$fw&*->1BhC z{x4uLaCFk;$}{m!#n*x8vCw&p$qNKM4@E|bN?17}t>l4m@(ULG5!2Z`JgH_a?48ym zTb9%5Nl`He-irD8qGr#GRK(NbpH-AnjdZd*;%SN*dmLkCgGM=K$zaoIbv7+1l%}4^ z{-fut;F)6i?x{Pi3U+MvlCd=mpu34U{I z6${s)m($=(x(_&0jbLyZ4Wh=>mdW9u5&1RI>+w<{Ge0s4NJ#H91u6z~O zT?O1OdprxY6*_&9p|Geh-&x>D^`&L`vYZZ`wzS(}NXybfL1C&>ugfp;RhZn_-R{1V zW)F81C!$Q|68em%CJp__1Ai?1FDsEA=eNh5>M!Rcuf=@usM=X4q}6 z6b-vy7!;DM9%pI>4)W8gK-#*r>C;kFw<_2(CdrrQ?n`xR#s_@IrdsaB4H@dPo(!uR@^TGs ze@Ue-HM2XlPqB9Ls-v(SEjE|nd^lP_bHe`lD)JcNn~(hJlP^y98b$Tw_}Cqm4AD_i zC63RVy-7J~J!u)bZ|YMWPOYFaCL7gTnZ}Y~cj8Nr@I8#qZl@>dR()!!Lno+{lTDf) zmXzXl*r#FeYBHttEJ5dMYH9ZSmo8h9dE)Vj@o`HdS^nncX8-i&<;!QVk+G$Wr+544 z`-)~oG2V>}Ak1U+1WMM1vv3AdK`D};LHq#KMv(VSMkYVU*FJ8teSNvpur)~;K+itkUWSUGR``70~4Osl?oSaA29H*KmdZXf8Ieb&6Jx$Wog-VrEUIWMzf&CUyV z@ZRy0Y(K6jH{`*t_}!#B=#nhinxyIYv0Adm6I8jW%K2aayz=}xm}V*594<#b=M zYO>$&kJWTc|Dbv(kx_|7tyWg5SzxS#$Z)p^Cc2BB9vMBK!n<4!* zvnD-%@$B?yaiJyOa%0oprF~T{(UaSL*7C}%ksJ9qi}+-_3+wbs<;eP? z#j9fxxD_K%1XXZQUJEJZ=^17C$#H1xdc6{|HN`_16E`T!-^hL$2i%cl&&bxRy*at* z>E5yra=X2K=E+;Zu>6{Xa~)O%_-ny%K>`0!Ly5dvCcGP@m%q_J*<5bf2mPlo7>FAj ze>bq(9S*xa_U?%PfbU4ZmB6-P-qXu{RgNbg(xCkJU5=-GJxO--x95BSZqYuyWe zo*h&-sRgzESZy!9nX4bjF3e+j#rzle?uo1A#49|aG2lPGnf&vDpqX1!FZg-Cx>kRz zzqU6oOFo_Q+}sqt*-u(|M`h+#PXAJ`nDSDu7<;KV2`W{RPNmB#onM%@aAvxOP})c=fWIb#|BC zl|RRmSv2E+@%Am?aaH%7_x+y7o%j2x8O=k|j5Lx)8jYlptjB09S+*rxeqtGHZ0zfY zjJ-CH00Bd?u`vV#X%Yei6VoImAqx%8lF~1Yl5e4L2rZ@EuPxc`ElJa^zkbWK1fCZG$Nn4Rg@bdfRC{=Qb}`y4hgM1jl29VeZz#13X5pV+!8tXEqOeyMWP!zL zmKP}O7a*nvc(d7!!tWm_+uVCat=4HXYZ(|#pa1YOwH5fHEb^rC9xa+WAp{(G$d*O2 zEzLncF!;PJy*suW;jEfuu(^&GvbL5`!mqCx5CRXQ#Fj9od>4dPqEde?`|}$kwCK-) z7ccwsuo_63jirJ`>667m(Zm5#=ZJZIQ9FmGv4!)b=#B!#wz23gj4;&s+yOnY218Gh zyd~^$x^-kPhCWL0=Ag^t7f8+nG87!AwLJFgD;hz|V6cRNziGA$AX?XOzyBJBZ)7zL zPS67T`xh~M0|)+x)H*HDuRjbh@xK5s>yVuaFC8`n5l~*>y}Nl-Kx~>itAnKsyQ!rS zCiLczMa3e{b%#S#lmUT^HY3+T6A1sbXkA zP>pRby}RRISS)C?U-XCMuO+`{F=HY+iB{wC!_}GPd-f(CICP#--}M%0t!4 zSgghRJxv3*S5d%7;|)Yz%;eAm@|uC|N4nPD(PK3yR_{B#dGmcOMj{+BIrRkk*NFoI z?Nh6oy*l389#0>dE*R{h7I2pRx^FZW>)3X*yW`9grw^^l_ioi|aYms3&){Hca{rNo z4Z*?AV7K)6Ccx=#!0DfoGaw@9NB(X(r*j5gbbGwMV7jBz)#);HiUtJo*wrL*ogD#! zPR-XBTn3RRwALZ*Xm&0~kCiI33Un?hyngpmDf`vVs{a{Kh2xHuQ&CIs>iGK9yi_@Z z&dy0-$|CcNz>TZ?SIvF6URgT{m(&=>p|tXmC`MpF6c!7N!0?}1nhX0+O>Mcq#emgE zVlD#ZFc!E?kVO*cT2iaiQToB{2RpJGvmq1n66a1gwI7~dE&3DEKId8%cUJTQ>J??~CafmS8ou?D)3kuRLpRS##v6osmLco14bh7{Y#wyUx?LK{~i6 zyl0;;>eFcjf6!yEa~ofHzWZ}$Kf6DtvG^SZMCBv(KgkowX%tZ`q#Z#qoQlO8PB)xR zf3kNl-Edp`VWZpN*#!BiKb+3UrwtyXyS;&KJ~_Pi0xIVG5&g7p8k^qQe|dCt-PX$o z#+paTIA8+#vmnCrP16wak<(nU0_r7%eI2WFmsvaPoO2pL%h=T`+ z>t_`U6mNmzD1jXWJXB>0R$6LY{7x}PV3If4OQ(Zo4g>e#1L_0v-a{lKxZ>WngFs)_!gVd1-3!vT-v~Z#;s9`Bz@6X}!)sZM zr)juj5f-^PfCb5DSbcVlf{W%+>Cr9rMgz}@(SbduZ>i6xLj-|g_{8L#zyfo_=A~4hc*Qu{z4gK`lNiu60^iY&iA!_lV|d9C^5EY?yfOP9vcc> zPFL#MC8fX$%-rm|Eozxv4+B0$$Mv(;PFUtJbe7AG`pS&0VfxHTSyFD*=X_tPxY=EM z=A^sE!2P7Lp>*i7l&-d`amA?i&d#=|#dtMlgfOZ`O>Ny@ikjjF2uWHU0dqr&sxhg! z=4~u4iKkM;Q4$~N@7d61vzaN1)|dp1yKx18X%bC_aQD=mBWM1IBE_HUSd3yh9s7%2 zI2~_x)O*YZF1gK$SjR!pcs{;3gQLU zX0@s*vafim;uBm|!(GXF$yLy1YKB9_Y0Dy_a^7Vvm4MJvNMunXqDH(fW_IXF%%?;| zT~l2lGi^z(-gjzKe6*+4d^^gSfO+v6NNnLf5E!*>7-;tC`$sCnqCfVp?u~j|2S*Ct z%wwNBwZGr!Z?dBcv<9w^Yv?Pt4(6NJ@0&T;v~y2(-{Vs-4jlu2_{$&;Z36kq8_T)= zomfknA`tchrp>WIQSjg)8x!Zka{DXj(J2;Xn7}A5Pp{Pj8!aIL&Z#7f`O4z z(gqQzRf&g;E10El-Ik`_kcvZNE$>LNf=Bq7!wB7zyIM9syt%>NzVZ0ew@w~g9r)VXLf@{jw0Qd+k8B8H z9}FH`6Z7{tckMG;j2eM+xgD%vH42f5PfYeb`S`=P_r&_wrBl6)qq{pCjagtZKkQyO zi#G!=y#bl65$zZ}qW5+51CR-b=m)vrNH(7v>B@~*EF-xt0*MLonqf~??()_d^7(c- zS2tc_*sPKO!_u5;3zZHKWgSwD_Knw{sxnmmAcf&5+UyEj9@WiW+o2~ zHg#O^9ZzNnlvUk)G__ zq7!+W)vV`!|0k38tgF{jq`(nIH~`0SFrW)>(HMXWv>5nLuD@q(J;@3bX+SV2C#oID z=~Kv4s8d-J)`z+J3+T(aMB?b)J;(MGdb(G4uin#rEZLku61;Hg^dsCO9P&tFk8~{2 zk0AYtW6~bVwebOHqMBTAWGcxa%-Rn5?%~2-x#wv9R(b7sY&20He&n>CGCwvK9Q*XV zxj+t8T9Tpx0zcu(lA2*$N*GijC#o_HJ^Z0`{pc4xUWVAkzi16KEz!_nn&B{Hc_ls0XQ|jzoWru@vo!XCr+ZJN&$Of!DwSj+VKw zQgHR|I&-U~H=Cqz9Q}LN-O-eW!Cau};6Q4_DvlmyhsnE;H;}(Zl~vnUo+zAM4Xwx?B~w>n@dngqyD&R1RXyF89J2JK;k(ZO9e_^=wLp1BRS#NL$r5}{`r`5= zTQPmJ0Q=xc%eqiA>Ap7Ps}b*Cxh9yajIDq1g7vydK66+NAU1!h*?`waqHf~UoKArxPHq0s5AdpuVO2 z`ckoBuvaNI5I+J+r5gLKWuq8qOIt^najTYdKNt$xBuJ6E`YHC~iWOh;84o}>@ zE~0t?4tNrqvE)g{p&mvQJp{^r6^(CLrl07C-i5Q|exRR^qpYHxC$kTBzmEP6nL-`} z+PPbG`InK5;_}BH?q5HS=chL9+P1H*Eg2((qupQ^PCQ?@hu(zp5rylTQ3;8Hp~pCMg+DB@No}+ZejmJO|MG(Cjd8<)V~do^X=isUXUf_4xa^9M!CoBCuHgN@%(0h zq~-UyrenStMExgtYK&RS&}zX@!Ng%88E1o9FdWBObFpB!)LR1t0^8z5W%4{ArN(&h#x=O$$-H$1J(w@TBQoL-k{k|jvP5|O2) zR3LBxZXNm`tF5jOvMrWHcz$He6<2hNm+`-Hio`b;4cap+#RkZ&Cl3x-8|oY+NnixY z@Dy#Z`z_I~D9F^Y2T8pv=Jtd{jHL9gsK--h!0^{x*55x_k~eO?z7UIkilaz9hbuy) zXvM&7MPXHd_~6{82v%F-gub-QJ0-EeY1mXbry zDuiv)v#}f`9rMVNLY%V661AjGqS~aQbW4V*yuf^OmSo9=nxLtsUJVKKTOXHo=mJzA zLMReL2^eKDzy?`jnV4G;G1@8O-(0j~UtZXM4U2^jk|IP=$bgcR=!|*XA%LfwG6PGn zWi@I_*mBycPb;N47;LhJ$^wbu8Z{ zN5}D{W&^}f2Bb4??Yx4#dnw)v@fHU2g-!2B!h{II=Q544K3M`(qFu7Il#UubsdVDV zEcmLT()_W-NuxwGX7`DIun5Q@>OjQB5VIdwOjC?=9|!i~1>|`}HucXA_1E3f%YKm> z7Ujo>AChN=`f|Y?^6697{UD$i9?!_pHA{uGEO3ERYF?!DIFQrh!!r-bl0t3&4p~y@ z4TA_}cs!Z`0$a1ZLt;sgvSNw-;o=bT(?m>>@UjTwdi8*~=i{sg)Q&LVV#dc3Gu%Xq zU)1*B0d4;@@|3zO$gEf>3HumQv$>-JIlKx*%C5rUD5NTWmAE=2GHKqej6c@jILZ zaVPup-2@eDan`%d49h}}G5&bMlAcUEF_Of0FC4w0(tTst1A(D958B`i+G5=eZb6Tp zj-$NEuXK=O@t^BB{OrnB5?5+FKs2LZ000Q&FpB z`=&qpvty%8d+~KI%TEtKD&I4-x&Y*NhYUpbgV( zLfNsBB`gnv3@;1J&l^~7txz0k+&LMS8lqWjm870+4ai!VJF;=W0!i^Fa)lCwP70*+a z8lCF!PUF0^Y%Rx)FP^3E};*OQOQ;_ujo!Z1#QaI%5?Ev&BIq9QB%199F?v$4}y7u}o5(8Z6n7 zh5izR4zf?uDz9i2i|7~e?=9{m zGb3;(8Nv~yexw=!>P|8hWBgTz)YwV(^QtFQa$oR-_QmI6coxT5o+&=huYhitk$p9E zLl2%V$03}V2lpN-0$O=4M-lw|@{5WPD!;$#1Eb3yxDu82a`MXzp&=KV7J-_a36jmTYRD`ejKXe~Pk3x5@0(5oka+xa~k^ zc4OLsn})VY9jmr<*s5%WyVa2!?cRTOCxOvi%-=bl z2#)r~!u^|Cg9CMCn+>F#L0+mM<#4mZ;S3X69MPdBT&E40=X33akW))Ibj@MlH%EN1 zSXya*(Znnir@FsQm80eQv(%2*cJsVcW8gAtU90eVP2u1#GxQ7qe92PNWNY_QJ6*;9 zfm>#}A=k0@0G}$0j^2!=d-XM$99;!_!Pk6v34aIh74Clf#B$EU-D2Jxi`euw%!u3S z;Bq%Fxc|dgh{_cW+n0*1^-9r*TYgz#o5tw=56M`dqw>-v<&|uZ!{2drZaV(??bH8t zQ_Pu}Qa){tebd}L-jTg^tTSY=G_UFC-U&ZpcNV_*=)Je3n>O9QuJFY(_uZ0CY`T9- z%i6RjK62}!V;wDPJ3R5it%r{y*oSiqPvAcV?;k^Yk)PB+md4-KE@;{`Z8nY7rnbSy ztwMX7pP-ZT;eu6T^AQH;h+({QC2jB`ssPQgasp}xygELdoR=zR(48yjfQP$TDmIN( zfUQOYys|dlSmU3hZys`JYh;W_ZkhkA% zRH;f!hE@Bh3?Op-Ygq^@u03cmRW64S>p0gol#&pB)F0I0D8ukL1OsSz)vKn}hQLNV@b zDOZU3=B1c3@xJ7&v8!Nl_g<;H81CL9%G)BVldy^nd{7quM)5jU@F!O_H4HS_+SYC# zZ%glad`n_tRZ_#y7^R$B6-ck|PLH?RTgSJJx3%tgXkByHlHZ$jPxQffd#m=>XtPV}d_-c#)j^qEtS9ldM1fj;%vUDMNd zJ$8z2phisVj>+qf?i;wjXYjuKrn!A%56eA6XMXVcr@xPcgj7MCclzEJDp_~sU1duG z{GlY6Pg=+OrZMI2w9K zHzo`X29|H#{lxUC&y%G71Ep^qq~^caMUc@J*f$Q#KCo}xA5B<0COVur>>EG9^Q2(Z zp3qTvp)b23ZP)8*94IeOX?#U2V&7gFq?*Ws6_#}tK~hn5!G4HQrHWoW>5RB7%+f6Zu%h=#UZ4b{=H7Bejzn*yBBx4ZNj+j_ z;Vk(gc>;N$*pU)AcyO;E-!ptHe>9)*+#+{vpXl(`?alYiO^l`Fx^Y8(X_3BMS1oQ$ zhg^;UD)$JoRHC!@7FjA$n&_L8CdTSgu%)@0T9Kn_&8)aDeMOB*SY>_e2H9WPq4c7< zx=NYdA!|c-+#`r@3UHA{(9&#GY5H!d~wZ|q7xk~tB(X2bLk zww>G%)oEBG?F%@RLKW;fx=}&H;#9e-8tNQznoJ-C;pDuEIJbFfo&qC3R{plMfl^q@}aty@*4d9-r0! zI9`30&W%c}#X=jam)1`zVUBY8&@&5(8S$-at|MMrBn#V+D*Sqc{b^ zQ}!3TY8IC#)2ats==%r?_2;Q#{|-nRQa4ZyzEP>7D5IWl$t-+mQSB$g1N-?Z@?-UU zfwRw@eeMxp=mhzt;TQAg^Iyz=A;066OsD5TdHVxh)5M8K^0&{O7`wVXRW@)I*Cu*Z zo7!1EzMZSGBgrouQgys|_< z)214mRMZa9)QE;9I2}hD9X_MlAi5C$Lt_nnx43||GE+{QZ^)G23_L5%zH0ZWUje)S z3FI;4JjCjEPUNNh{`_fZ#oZ6=Xif_J201aQX(0+ncJIh{%oWCJxq(Z)7fS|6Y1-+9 z>+-Luv>s51g(Q{Qjt#O@qLQk_Sh7dZLG>=P=|i||wX8;S`7BuQu?H_n{x3*8y!F7n zdD`p@m>oegyK3PbQtzmDxgvI92jH5~?{L7LnIQt*KyU_+708f53uM!_jblD|?4QHt z)sy&Fc`I|^XaD#&xA6jv5sa3@p15*|*TKVTv>ZOgij)966i#c{D>jzJ{)N%NLskt3-Uq7|* zECcXL3MMVui60V7G_UYX%Uuafz53lh+X*#80Cw%`*bi}$bRq$yO+7L6wLlP|+nmAp z1@tR9yGS8)ye;T-1z6mBIDF1FlRPgR#qR{~^eOCtiZn*u?vzTTif8$_swUdP=Oo*V zkUTFfoxFJLihAO9%~Mw_#Y0!H@}Vo(^SC<@u;L;U@50oBT=mQ%PpD@wa&Awmwao>78N}EH^!c0<;o4ebK9WwH56u`{%JC)# zw0CxVl|EYWid8k`OU2XJlRqm<-!VJ89z1C1*_M!`19k4@VFU6{ioIOB0gZIVm|4Hl3Hk)vSq^ zCSB_+ldAI!lrrO22u{m#CQoA^oQb(aCfyckkJx#d#3`2M!p&XY0|zv|*21nnXLH=g zv&1`s*J%{ZqPr=Z?J&2u8?6Q{$Jm_~nltOT-M59NHm&asGg>3d6}4-C5|J>HMjlsC zB+v=OS)XLuSLyXiICPe<}eZ ztv|+oi2XCLNR3Dra#lS(O%Pe5F@R9*P3-IFUBFf~p~rJPB8o!um!j=oh*0n!b<(&3 zd5UsJXM|_m)qsKrfyd*D-A+Iiyrk^Fgs1i?%(DVI(dI8nRQnesg@9XlMsiof3vSDY z`}1pU&A-mheC(g&n@??Dg<{=<(N!%0TEJ+IWuqPaf$Y{EpBPAw@9ED>wAntBYzSrJ zUN)Ou-)ts69UX4R;`%R@j05?xx?c*}4v*JY7Zi${^OsfzoeI&;UgkLoknBu6F9D*i=vSmF zlBFF}3bC@L0$!Et#Msg_scNqrR@tG2ol=xE;7BHU;Vzb;SS@?k4!*u~tT~vXDV*jQ z)?>8=fD_v>#xMk{<<@BUaOdiT=yREI0w;e%*_~!>d$x@gSdYWFP}erz>fmUKqZ}?1 zs{x@T`W~-goKE8a;JY0sX@cNkeD^H&m)Ng>cj!Vst9Ix{V`hsrVvYE$2=%@U#!3=a6E@_MxG$G2dc%VzEkOq_^S@8@M&dH zq7m>2s_dRC2@3n)@PuI;{^jC$U|vb}iHKW)J)KhjWq@2V*Vx!;^&?!OqhPTFrugw0 zG4kTzOakGo{*FdVfS<}0I<=|n;nbb3C3sUK5T&Ok1^+FDL~6EWwk1(~fdHU17g;#U zxmPdCj*|k*%sO8zoqO&%-{b#%=R4=>ULEBySsKgk{)+0>iY%$#(%x5L*;ADvlP5;H zwoGrXH19py_S1M>Mya99oKz<%&}g-qlev}(Q9)^g!~|va^~VLoFBxv1LTy3yiAH+$3Rv6p6U#RJRXCLGlNr`D=WJWH~&|$PEv?V z0zRgi){-1cj<8OW0WKM+3>~Ap(IVzal!*#pnXOZ27O*)_8s>^WowBgLMmI#Fdt@1* zl_BRz-Y~}&e>!#LT$h=!ldL$iu+51J9I4D$xoddJ@&2XigC96?cIksHT`ewKZi}PE z)tD>WXE}CgsLdSkb=^1T44iJ+-TWSRee3R>qi&qn7MSZ&Iq1Iw?Gf$->B^d#wYnx< z6Mgyw%qXtQ(>6ENp)v(){an?Y@GwXybG~(x>xFdBpp=Sis;saKPGH2gZsCf-DydEw zTFFn9R3$xBBB$32g|_N4T_dB)D1wBjlQAEIiw9$lR?cMMgLOaNllYv#R5x|CUJ0N)~cW5 zH|-IBIwW0+5wXdID}~b%@+`KxBrmVEsaBOZ3X01q9){Wmdwy<}QYO10%gigt)@y4V z6PBdRfXzRaU(aR1dIan}2W#CKu(y-u=5HY#6G6?Wo>_7jvYUYrSFg+8wfE5)IbP!C z<`p{S>PL6Yl{{8+x$;MqlFA*Q$WL^5d=KWjv`>H(Vs7%ikMiPPuqbCo5J@s;^I zKEWq(+35KVMe^et@sF`vQXbxzkt#K;%EZ+b+1t#pyfRnxdOFM6t);9I|9*ukzr4As z-C?$OG?~lx-m$x&p{7{L%3fpfR>V4OtvR>Ygqv9QwUny#Mpmh33ktG~nFecBUJ0DB zSJ(767c0~{CH_T+=K#YI`IB&+evz)lGBc~uu6oeXyi38h0a?w}yMk@jrg}yBr&)7B zeNgw=g48Pnd}EH@`@Yg(PuhX+#SD54YN9+Giu!U$FPKe%?z4PB>UF}dx+{sdv?cMI zLM_6jg7}kgE$dgcIplu!h+Jh*-@j8T&o3=4!{3uu%5{6pmAk8Quy*O$Yk(x zH(sf{BzZwLD$hm(6t}PLsKq}WU(nWii8=m^-k`T!V$L|!EpQ3aqA!r5n&+5BRD$+0 zpK@fNo={_GN1H*KQx0QFwSKPYB$ruqcMkFi7_6fvNr(%9b4&50jE zW~KQMQZ_1;Hr#tuU2irO8QIz|%QQJ<`2}1S%j}iN^hKuJ0vM=u(&uGLg9)$iIN-HM^3YB8*xI)2vTA`xz z+S&=Fvf9gsTSwA28BShpJjyTa!Lu6hB{-{6;3vv3DKV z^`xq#pn^O>ViSuspX$R#!qE$T!OCE-_ z?HKmXOBr;hCRnEnlS)Q%H%AHX_zga_XI+8VHF4b~ezcPQry-xh4;kjpSW>NVwRmC7`#{bH3{agpHZvJbDopzK^g=z+}FgNV~{8@+os31 zZQHhO+qOM(#RHRhV?&}cz4A+4&!sTHl0J8o7S^~&WdRZLE_y6pbe~)u z)5H~%G%!}ayNY;)?gniU2rV?Y%vWU3N$5qT#5VbUVU8pakd zLgGvzanmuAp>R>KoCB7;1qZAc^0Tb(I>xAQ6nA(t|9rqw&u5&?Nwwb zEg~IByHItD7mJy5Sebkq(&ur|ko!tvv9=qs znn9pq@#r~oIo%ju^NW4!jOx6?RPA*+usQr3>Q*}ckx%7Ii|f^lUsBiF@&t zlkP=7Pw8Q96FjMT|Ngb^;{C=^9bZ;(sG>>~(X!j!*fyy{+iePdn+PQ zcTS3Z)%EF>{u&h~u`|Vv`USB7{9ICrR*@v3w(AaYCwXts9 zqD~(@Jrz6k^l`d@`}zR0`zD~1#1BQs#;N&kuBfH4nTShWcOif-3suazWT{0(*^0_PI;%WJEoY7*7;i10kKF0a77 zYtKxoSZ(p+rnir4>Fz#Oz3S!NTY;6-4fko>5owbm&3o&!=`(ACmaYYAp{sk|;<+)Q z^-O8IUAlRvljq7DH{WPB*EO?A(@H69V_n*^qmk+rD-plNguH$krf#0Q8tuk$*j(YVmaq+3`6Zs5+=X<&z=)HZt zVK+Tr_KFa3YHsSQHs1Cd>xjtw@p|mt895n2&3I24@yzW0imWxRk-eD%A=mZ-|1eNh zXnj#^^tOWMlFKEk-+QLwDNw5RjDz9Yc5cYT8-e!s@(u229xKP zg&n0{yM9X}fZ!SJAgz0i`Q>%mplhw=ZENekEba1>{--N zH)Ca;s~kHN+7EPZRHl#JKM$d3Ok<~WQec~FmQq$js0KkN*$2>S>X9DZ9uv36B?Ku? zWP_WB%|72o!k@@X=`RaJEfvh~94p~R;HmQu?eUGFS(kQ^YaGaM*qAZjG;XzWQq>0l zeA8=w*&B~9*Z?nH+s}pLpZ`U}VxjK;XH2#?LH`vL4=W>)4@1&FA?=3>{tk=IQ>Svi zK63kElu6zExpr4~W##+!rF*qChqIIB%e(H9N!xuVzpApQtf#WlzHx{tJ*_I)Uq;hl zlEDOX^Ty2DRW_=s=AynxsFckrWh2DK&ri+G?`2o_G<0)wwP1Dhp7#_dh!2_xCK|gj z>jtMY;3u(GUyPJAHs_$o{Z)cH)^*&(dDj@PIA>`_HT@xy%GGmBmscD-tqvbc%g5P4 z-8J!-GmUE!vPyVr?Oj+nDC*7I zzvi3!O%)F#^{nn8xdg*F2dLZxrWV`iYKV^BP@GnSyn(jnNj#cuE11nySo8F*mojwA z84~zG-Lj27K~jm$!B}%uL$CJ))}lmTswt%UY2%q#+wHZ}R}LldIEMW3k!gy$(yn*o zI@5lqHJOEMytg5)psqmOQl_1N?1f*?%YGsRI?nglXhN9FC4t}B%kn~p;+W4jlUv_y zcISOr@S>o#^(gG0@H-=}_Ms%tQ{}@7bPxSPFkJL0Dq?qIXH>Omo6!c-+TnH>n@)1D8&YuyB}{H#c|9_CcetxQ=pF>|*@m@c6oe zx06jI;rm0au6icZq8O2;G_GR^!Mq5W>djTqt(wsdnRG<6qswEv(vA-o%p`T*)r6cS0_*+p^{L1qW=>d`HOA;}H4St-z*pr}Lo5GP4K8@k4^- z`88OQ06Q@!tb zjlGE%_7dFg@gPa`9qsR~j1L)-7~O{HQ`M9Azm2lX=6p;qsL|*0ynRlHrO)KD`DP#W zbw!}@=I&o{#Gy$&zdi3R@N0H-_decN!anD+d)=Qekn!DeaWk;#D(dgtId`kq(>DA~ zRQUpo1_)xUoVwt{2346RbPAMZd8G7uk)SbgNLJwe{Zht=_W;$rm*ujCu4 zc}@rDBw$UrOCr}wU99n3xQfKS!6?|EOBfa?k)a^r?~RkLmA_GEnm=~X_x1S^2$#fH zJW=)Zl-j+<62WfND!!O%nikcFJaBlZs4YNP6KLk>Y;PmmPibg3cERY^TvAQSxclEK zgSGI8)1FO2HBRITdpybqEm*{#cKgEhQ9~KadklHw&H@Bfxy0;Wmb_9XDaeX21CC)t zUJ*=33#Y?ucM0CK25fRsv2>2}l>)lJf1hxN*$uMuv9j`QO}pP62XVBwmy`_c66cl% z;BGW&h-Q#sQ+^GN=?+!h06$l~f167VivaVTT#6`{Dod4$W`6|R3oJ=D6-Ok188QW= zn|}VK+T)AY@0&b(6^GOZ#-D+CV@j#&?%yIY;V$}nVg_TE3b2iDbEUL^I1z{YO$+LA z<$1FDO8V_hb$GWXH}#{PX)CeT8~NRuGTpF3E57#waeyJyHbfB-%Z7ye6cJuJyuQvt zwhBHZRuGQ`E?VIjzxwI#v-T^Q^F8)R{Yu4xL6OvrD%VJEllP~cm69^ZDG+FiS;bTA(!f?Cm0(|5qKDxU7P&+E|L3*%> z&AtQl;wC2D83(@mu@%GaB8$oD(YL~&McCWgfAV#1Vg9&Xv70j{#~MO*G66~LMM{lRF)skz7hIz=5?FFNsRX~mBBh;M~Pq3UvPfmx%UrujyoPU=1bh( z0nX3yuDpxiVeL=v=iTk~QYMS2XeMv@$hb-yPq)`x|5s&~zd@a)%X8A*5>+hMYn%&w znw~ulk-BS+dggdOs*e|`;jWZi0;Rgk$tzFybPe z_KIN3IZZ^J%&fuq)C%>~q?7dwjS_}4HNB)-ui_|Hu_ma(M^$w_84YZmzXKLI7`INs zfv(p1w^gIF+DR(cSl?%o=w4Mx;nV?85Fhbyyb>MtRBE!yYG!dk3;Ft@QLO?KdLoMI zN_w$BVI5P;S*l5e>C*JAjkc@1AR=`~>C8Bz)b*Xtszr>JVw zcohvBad7VEBf)8}Ho4>*yjb5>crpAW7ScJQl#?>nhe9?AYp@XIQ!j}Zr`$D?-!Pe& zyS;#Qx{7{bF<+{{-bOY{FUW@@l_h^Y;>D=TFA{msi~%zqGv3rV>N)ro29g*2k^W(az)SnTsWQ065IDy=??!z`o-H# zZr87Xi+%RXWUFP?e|HzZ12}FLzaxH@SCb&wh+jpPC>l@_g*BV8N%`6SWunHgP2qz2)i&YttEX(Q_y99d5R{B zwhM6~%?Kx_S7=jIrc>+S#!SqZiN*ZRFQI~JQO@^oA0Q-Ygz!Lm5 z9yCZ1PV|>Oq)=fExP$>JL7jd1tpG(pjbkaqg8(i@aEB%Hk29jvagaNHvtEEYee*IQ zc`{kSXc$_-2!z8UU>sz#h!l-&%LMBAOeOYUFhTO@*t{ob1ReLJAHK!G zFf&0iu?=ZGPC?=ZTJcNb;WEE@(I>raI3GSJt+xVm5QTHX)wc-JpLATix2zC66=AEm ztnqyi{m(zdr1#+hv_h0pUkHGoWChd6IfEe3Hg))VWuV0rYZMI;lQ0NTJR(Z~ z2}p!~SR{HGfmk?kk01jO2Uo~G2jpyuG(;p+MExtY!_+St66NS6(?IyS`^ZSmFak3) z2~wV75K4})^}`4aA+fNC+Lhe$g<#@?(Fh$HRhkx8VDE}fCAB-A&QydZ5Y0QgozE`%k+jwutw1z z;dPG3p+>6;xMd-1h#Z~D`*@(#dQM3g1H=Yw6LgG^9s*$0RZT(baZfq-`CNQFdMfw+u4AWIbu%?kf*WY98vT&yL)d`&bkAv~(gHH`);{cTcw zZz8jh(1+)}9X89wI^WAi8Mx$J#Pn*b36d?m3Lf#~xV#l%u3d5?YPdz+Dpwj8 zl9kePK>Xo}NYnN$;wXZ9GNJc1~*>wtZC z=mt)jX}-gMNXLv)Q2r=KnIkHa>X7na0?nkZh#aHhc1535`5AM65dC2Ur+>d8?feMW zyh9o;5myfY3#|{cFUYB%AtGc2$6|b;PwtOB@w#=h0utB{E(slZY%=g8_3y)Lmdx3u zrQDDk> z66nfEUL)gm1bta4*K_=4UG4W59Hu`YA{GG-`6=PWUTn}?Y>F}rW;4#=&5w)5I@|zy z;D@*!iTI&6WLR;_*qnzwE~oMp0;bxa+LYWd@PUUguZwH&qbqDz(gprWvOpfI1K$-F zbe{GHn3apiGy?H@L6RPW^zsEVTh~J8jMNt8T@kJxC^v%fD&PU}2WGq;9j9I~rTL@H zNbf*dp)^Dz62i7l+ubSc+GKs3ETTk_atsjHozIgnmUY zT8_$?L=c$@{*z4+ow2e*b`;`-D3_nW!;6;=rc%Yv95+1Bt2Yt@j_~#`e#gKVf*)Q;pB`rr83Cwr;~ zB|FZ^$6@pCfM;M{3FCF2!CV_zJ!DUdb~`-_e#Sx0y&w50J9N``AOqkm`&FzyI|9=` z_z3x326RZL%|G$gdz*(`BA87OVNx{k(J(G<=#s8;h|i91|2d@NJUR{=D|=tZFODAJ z{^pd35C1GH=gG5&kA7@PYxXM2WAF!oEpGhpN1+`*e#52LcDFy%^_bB1whaPDAb~pp zkj>x^rQIa&)md7*sJ}~S)U>>qCq6n{pn<;uR&!vf;vUTtj0fN!hko=}jgA2d_7i9E zv!PxH^p`)FKNRDCMQC(PR$=?Swh1YY=$amVmhpj7|GaDJV`z!_C=L<~h71ZifUBXm zKl(T%WC6Nx{@RS+L^%BbppO^?nazVn!vs|Cqp)A(kwsVJm*2^taDB>uR%aWSxdvys zf~RuK@w_Ep#@s^#Od7JUBfW?-6!X2(u;ULJ1st&~i+s5YJz5~ZX!VnIaQ^M5NeL+$ zV?KflGU}~oMN_;fl&J^b@<-?&IB(Oqp&iWd@*%5n{pH}(#>#znGop+vLQ^*u;MqScpBwc2 zPCyW0a;UkkZI7b>_-f`jdYvY*XoV2^288E_47MB*?@8RTa8Wj3QdyA4s(un^8O?4H7f?6okH#cIjso#; zAiaU^Q{GFMk6zyv7K}Xmei4|3r;r3)%f22GnhA{o+eMRMC(Vm-K?ro)8)WFa3WCkx ze1G~O;Sgeb(j#do6Q%K`OVK(fB2#j|T|hs04?#U3W?e`Yl<>=tFbLQ&%X%~;SapBV zd=9jn&?>Zn!ZwL}k3QEjwNDb>1>k zOg9O&5`VF+_yg^~eP7t45bQL(?^*7`I7%8B>lktx1%NO`)`g&FFMcS$ZixeePY3eH zVKD3ay`1picOhy~3PEUW0EUS9vMYlK`Dd!JE2Y4B!i$5%1TrZaIFPeD??c}y&nUZIE5#UdT3n1aqi zB=r}^UCA-9Mh}S?hIc8&GV{mY;Z>~-%yG9S% zHwSUCvK?Y^()aU6G}itOBia?`U19MJ-r(chwmA5PiI07Zj&&q3+BsM(v#x`?1`YAn z0`~+B0qd|oVdMRQ^g|FMV#vWbs2BLNVz9?y#rMKa2>y#?QeR?fC+{ zL}%A*ZDUk_7Eom!jm^uz#>KP?e(3$@=I_44FNVYg_9b?1K!rQTWqWUsLw^i+mku3K z?IG3dYLOB^FMjLyxYoF0gO$8iWHT z@eIff9OtJ5>iAXQFE4Ts@z8p7Zo)wXBS&*UiZOCSZ5Y_tCymb9`aTC(vA+$-x-mz= z7=$6vcjzYtIt**tF``9a9DMZai0j48l@nl{&MzW)1h?*0O@ zKdpC&Usv7Y0zGZMc?O?+124XTH=iIC8$O?Uf)71Fh&eZ(pj)rdt#{~O8$0v?4V0qi zqx?g8kh%gFKa&5{V2H}VcZ3g5zh=K)CHPBLm=;4kjVmu)xOVi4b}c;v0-JdoR^CMk z&A-oTTjnPFFN;Ikws|R_HwU-}_Kf2a-k4t}f#L{Uu}&C}Ow3>^a~O);$^jqgNGxC$ zy=k109;ZDP5s-z@(>x!q(?B0I&g>sh&iEf>j{sh|9pQe{Jdt{ay-`02o_IZ^J7e{W zaf}=JN{WpX?Rq)>}gy3%&0j0NBe!sdMiq(GG>x4dw(6+4iW#xX+* zXF8njjU*_|lcB_albJ#qhb&l}aQ@8- ze;`D=S>h{K!3v(>$0X?Rm5+yGOQq7BxQkW2K z>cZh}3b-FtRYx0|#;!R&OHQk{G=4cgp?vUo0oE80qdw@BIlCk~2LK_JL{ExODP@RI z;^X=XRhT7bCZ+AfzH*G>;OqK1c!EM07lj)Z8KBsR-@T{&g9Si|jQ|A=>2dh*0^&Fc zktHpdL7rQzV^ax`gUJJhrKF^g_^2R>iQY@XBd7(r5s$R)KAx!yNfn?iZ$J=~L=Tve z6E*`GIsl;A_J9zAij9LoRFEL01R#V+gb*rOVy474ZHS4>$MP|b!#aJoKgK@7p+>3L zBw#WmPR!;RqQX>N_jBHyBlC8=_*614zvb{*x4tH4pdHldh$u&7H4f zTXg`Sjz)H6kAqK_0uT!FwLt7=`F zIlJFso=2`E;qys$P#{F%+5`7hnM6y?I@TfokTd$vc#Z+bf)j{QxTM2x?d)u68w2x( z3(e5U_HI8TSipGQ<~QNCY4S@XT2zOB5}eBT$egKAI=f z6sg?Y-1eU3KEjK%&=jc}hPunRxx44}IYENOAkDiVaI{EqOff`@*u;KPad&q4_jUXH zL<@QfV}mCXWe(nbc>)TP7?r0mZDN#?JX>Oz!l)ps6&8&L;^6>wkF1+^#+ao>h0^N`|jK0dG0=SOI8VKr2uB6-lI!zDj+Tr zqoE}zY4Gias7Q&G+&+2q{(j%-`&tT?nYdVG&A2fk-1qlY{r+`EohnZjO(Lfs>Z3My zq2idMF-|O$YY%*w#>GVRe0eZEsNQDOF}jE2&3O&0jR7MVcUqhwX_} zBGv1uOk(89m>;2JKDnsNtj*MG>@oSgBah38*2(R<)&nz9 zrQ+c=Ca4VH0@!1#zar_3c5xCbW5|$UtK{tT(VUfXnXITl*VB;HC^}^A9G(I%4RMkU zP8E0Tpyt7@ci@#a+#Q5{3oM(k#?Tw$qd3wYK$|^@1#8`m9XAcPd87Vx|C=kjLZRKb zqs&&PaMQlu{Wmn$kW_wKnGIAm2`SW)W!(j8Wdd4mG|c}}BG$$k$~EWkx7GdRK*9aS zpY1a<2g4fjfZG@|5+T8tTwCUa2Wb>(WEw?NXhR5P<0JwpgrqUJ(M)z6Pbz^X;g!2Y zNq+A0=e~FD`D^#}L)TeX-#PE(C)YXe(`WXZ^K2S4G60E@fr4lUuOG;}t;9iJ{IEk% zJD%?&uZ@O>&z>l;wH+>=58#qK1fmznxk=_MdWZ#_$D3nPakLAO?Cjsq~3NS(>fdE1zSUyo$ z7SVWyVd*G^nE|+DzDX(Dm{(VOuEVHjwg4m0Q?Uq?85FTNxO*Hj90f_gtW<%S+4o5c z%`%<=J0pi(W-iC0sAq8P^$8N5M$j8_X#8Ci4YV}#s&&O^Ps6N~2x#}nM0^tWR zE9Podc~tFTcE~4JnTHOG2syT5*(~Fk(r|XI8&JJGj#ENSc^!iIfs#ky(}ixMutnz4XR_B=88Zx=Y@!U2a&ikq_W;ah(m6U1S^-%(O0f_5 zc@zhZeqpI%@p?jyW++bMIfTa^Lpfiym+y|J*9QA*KxCyCxL~^coDxWj{9!=G#ejJR zXkUB;S^BX(33iYtc`iRpG_cKxQRCy9GXH_tR0`OM7gR`^O zDs>L8Z{;11fYfEP_*i=)gZ+=Eqpy&p?ge+EegyS>-8@hAkNDhR(}>A@yWlO{$7_Q; zPOXH=w8;A@lew}(8jVw9qLoMBd-yrFr;UFyJLr%bf0QsGzAk)ix+W?)KFn?>o@>B`uopXcfyg0d8Id;t=ENTR(2`f~A@64u4{==HyO1F;A%Y59;? z0KNGU|IoLSKZ+(3M)-5n z{r;1QiryJGOm;Ne*#toqI zwx~>6jAbVE#6@w*7C3|S+$Y{|W!d0wN5wzP9HrAn$fR}+TL;3M&w>xzt_x^3S z%cuSGN(~hI2MrSpW1^yU)lH28=t*dt?d_8k&e5-`A4qtfsDf}bFOE)ykO}~{f($sY zm<+|>jqP;;faC29JoxIzU=@kkcjqHrI?U)xv}$)1CAQNa{Xn1(v-S7flQZ4gn%?e^q6mz_y&%J1L<3_-LvnsS0c?2`)}v zJ!j7WiJr}!|5d{U6E9Zy?m@t1kbd&@ZZnP+O~l(eizNRi@qU%E?5M3t50WpJ-++#z zU#H#E**Bq|s}w+iBFkxN7I*|R7;lL3m3Rr>^1R3s{riJJ6+GuI zJwKzb{~slJrj0I}VjmM8b3UF6EosF?a&i^9LMQonorJ+R-d`Q0tzDO&Oovn_Ii>); z3gOPkoMo>lAv;#xZ%FDdcRZKT^nhtUahe0@1<42v&D^cOUaRU|!p#k-DC|*VLc|%1 zhUmiXdQT0;6!0XtqGoq=a*J8TiV$09ee+Qn*G3nZ)nO4Okh^E)4go*kd$pkk1L;B; zo~Vf{Xn1w3!C&|QyHEC^=e*F5EesK^f^-mW?N}L5@ddjw3Ipk0X%-4E18+KNg7+RG zAku(+Xhl)&#;nqp(RC_aj=}w52RK75ibZYV6O~@K9!lp>WQ8rY95hmBiL$2sj2{nD z+92$?=V!9+J^a%rd1{0}h>&BW^1Qoz66##-o4RV8sz;Ad#val=)!>qhDRoRejl0sl zhP}wcZKbJ0G3U|wB81uu$e&c+#j>>3LWdP!_BBVGk^AdGqTS)~zx}cqnFGaO7$`sDc2dEa ziAz4Xa$@nhNCj5;wkZQJp!0ccDtS%$p~C(H!gZxN@JX%TPYw>V+;fG3@tXUl6JZvF zE`d{+@1j^k*f0!E*IfMKH$>pfSO6V3;H99Zvj^c;CTsEJ>XXC1WzRtaS_m|F2viz>*;s#4ZD1tp3#wSgp``^vDUHT~f&E?&6NdIIG_zdG~4hT*b&2EBzcUkS6=|z03~fxS)Gm>qEfs zW|B)tR#4P_wrxZA&FuWNn%&fzo}vct;4?^j2~%#Zg5d@yL<}{ zCb)?!fK?QwnKV=7n|34cU6vyJ z8h1Zbv(TlR5x3j9J0Z8=@;d=dx~!+5a+7AH>n9x5%906im^xs2I7u>FAMP}`T{yL2 z(}A+7aKURQjG#MT&s*88V!LKNt&$Rc@(v{y9yNMY`C9r98NAHvzO|d zdk@d*RHSBHnM$Ws;__p&N@cLPxsJs^dZ?#tj8wrY?$*IPIIFtB^~G1ciQTvdq8aX? zjh^ZW)^5)j<4by81eHE;?(lsEto@8xEc@lTf?OUJTJ2jt=R7OXr4rtj{@SrX#o}{# z@jDnT`%__kBk%A(-ss!dDf~nRH%XBz>TQUpBHQg3(MR8y=AlpS7IpHl#`6u#Pq?{S zJO#jRvrx2}Diw>Dh|l(VlvM}x3Mn-bn0lW{&O90{ebD`^LY zt$4n8A6nL3p{t#3x%>P0JHJB4LfNuT&QA*th)q-1R7urCBi-T$n`@_85>;Qfpt05L zOGc;A|7B#aoe{i$^`Zdr0LdPNZ*L1W&$C5~aH>V(KXVhInn=A&vdH?@Yz>i@3f`{X zN$5_~T9OYgi(c4h$S3;iiD&;2x-THOXr6*n6EmZZ1P7%= z@^BAk<`=5s!Snp~^Co|BDipl&{5+|x)mfz+t!h*fz_3h4Oin7*&C}}P53@#Xx;T0 z%Mg#yoQ$6CAG_8z%pu6Q&4%sE19dO+6GcrFXIYi)+CYMoe;=p&_z5Am9F1kKw#U(k zsN`L3S15pj_3|bF@4cjvK`O)2|MpOQLLRl0WQEFU51vcKRM7gZ{O~KUcF%vk*vvVZ z7FDX0KK~Q7f=njOh^=wqOWykQHd{c_wnusC{-C6y?MF4nQ{6qLX4n75%t(&XOhU!@L&MJJ zV8WZb6k?Bja*|3NtY(9~Mm?@^iUcyl^5_(viSOUCJUa-z{_F;oLp=$;64wa`C6clJ zUJ}p9{q;QkOSawhj{;7B!vffHNJxt2o=|i0QH}6z`YnNO9#7aB(r!a7lJ^Q5BCX1Y zblXX1=M(iit)v_}y>%Wxnm5rNw3(8fq6g<}t=t#OKVP?TO3ZcC)u4HjJbnxOV?B?i zmsE3|I{IIqp*EMp^VOAAI_!wxbGy_d`iSvI)H|#P3~gV%T;sb&=)wWP-5qzXb3hLe zp$@H3Hn*{<$$VZhC_cWQOWQB+%;tN&+jo+zHbK%z`NME1*aWJjbZPu8)7G$eWLqP$$)AS(~2_?>u-V5Z>oPv*M#eRsQ7PEq^pweJ@yqUSKWXE*ErmeX`1H!Q7$z1stRkzOjq=cO& zC3o$)g~%A?)9eVC8RSW)cXW|Rf{Lp#;(d2bv6+LRmrN!J2Dt!jY7np$TRnV2A= zVVE45r;!l$4c5DC*8UAI?IaKX=tDMug>=%=3? zs9@L>ep0nVNB;o|M7L)n#uFeP*Ml4Mxd@pf%wguqriq%itnX>=+pnw_KNZJXZ+y2L zsKx|NI`S5;Y7igpHov~vt;N!>?&v`q7g0Z<)9N37OQl=GuX(U!^UGCTofxJhP7MeLQz=SVQU>&|qlgbg+Ax%ObEvIL#SUc|S0IZyx(-b{Oo;djj$j*#aLz&iX}#dw4gsy7tzG zOA(tN+wD3oB!FF)LG}9dv(dj8+G{#t?FEh+y6!cF#Z@fIn_Ot&c^K*ix@t+Z(o`K? zO7UF8WTVF_ay?O~YtP+Vm4t?w*rEkuUA>_(q=DxxEz?iwF#J**!~6n{~oMN9RF1U7EVS2X2$l|<&71fuwIbVCPJef(7B+HCx62cw< z2*`$h%gfudHvVsaKj%c|J?}YM=R3}`omZqp02lz7H=>}{&dbfzHv23O7=}-9fCuW! z%Cco2@6*emekD6#gfTh$S$ZwsC0{#$Rygq%R~oxJI{TOPAA=**YN;Tulp4Pv27!mcCAc^8EZwZ|`wO@Ld{>7rDLb__tCZ`#2%lYO z?ll&DFNfb_z>n1fACsgvQC)*!d^n)>udV@swmZ^kb>Zpz^6hz#9>2Gyx;v6DqUylY z761~H0JqSh&mS$WJ>F+n)V(1ls16->O-t^Mz28Hwao75u=RPy8m6!y9SRe!gj!+Q5 zTNNA4{wMtIhTQek2I=SO4}55}Jb+~50}Vh-_?z`3A$QaURTS1Jx8R)R$7xehj#A)? zK6tmN0-%A4l;KPnV)4EJp%Sdcd180a3@sZcK+zL`m^FeOihnx-c!#%!ah-toC}-_B zy0KnxzVgsTF{J#iSijVWvM@GY___8(6?nSoYJXjOQG?f}%HI@BEfNWPMc<${uab6(%_P&6@Be*V2ZKfsed zv+R00CQpl4b7JGLNon}4-xP}5AJ=a`saPL)zBC>G^-`EGbLXbJf!Dq3A`KwEjrBbI zI9t>{me=qf(*$?$sX=JsGgRi#TQ_2npLL0@zZ}z;3wD8=jkLtJ{Nzsj(~2*JWBA&sjD(1_!PNe(wussHeI2R4`XW5YeD5`D2uc63zR!uiFifNOfmPMR zJ(d62^Wq&6bpzf0(XJyTV~miLF+%zu@ggSdi5txY`Bn71+P|8`|0O!lhVI(NnTuC|Mz|WXA*bX>nDBBQ2#5<|Je3g#ueW0tV);mvDNy?)GX+oD|D-Ry5Po%5G~PoUrv3w z8s;GDZA9?<`Dh+!1&+Pj!9M+lz(u$Wp3J+z(fZbYZau<(Xu%y|dO8W5hbwh`Rt`<> znNkOFXp(46d9O)YBXfpkjnNyaHQ1(%kvB9}A)sDzSPr|+v%^9T?9SU<{U6*t#h-!) zUO(M+KC4Pz)?AGjxh%(&E;KG&E$%c@-G22okNm}l^=}75#2?q>Cr^Xq4k71Mc}M*1 zxA?jd1wJ}ZYPa)h%O6tOB}IQeZ!C+IhReiK#wv1DB1Oq5r3Kv*m~v|#B}*u1iBgPQ zfhe^jb)q{#rg+CoifvFEvy#P;>#!v;e?MuaBsW6FQHzy|*+o&;=Aeoq?`-LbRjD1k zt(3kc$5)DN-~-&zD{!{p04S%#n3Ph(P$W8j;lqn(nd^d75QpyY%bCl-aR`wGx+Q~$!9EM*t4R&YQ$=k zsE(Nw4dRv0D(sy@d~69b=9cE;r>=6{SeoIPn?rOgD)BeSkFAnAJH%d|jOX6PpPrQE ze--4-oKyuw?P9BDkDzX9pW8n+s!It{=jxuDJB5IiJS$aF--{#hsO{Ke9ac2aS38BO zXH?NE`7I6Yb+u_{+f=J6?w4IGotzD-#G*uLQ-v~eZ)<3p5+y+io9wpL09CwxS_v1l z*LE>87f`CJS~_-W5@D^1JA@)LW+%yw^gfHwtLvZ7Hsn;j7zEY87J3TIrH+1}3n~;d%g}Cwj=@s$RAGN4&xK@GULl zv{3Yx+WMn>qJ-@RUj~@=HyuLS`P;JUPPYB{r-!60WR>GD>C(-wfc^d4tR*atXt}|( zk$}2QXAGw1|FXqpg;mzlet0elSzFBTsN2DL>3=*OlDBpV71r76jS0=Z)auFG(!SS_ zVmz!F4ea6VSnsR``dshrhGuCD@64mXoOpK%-{)Fg27sZ*4HTZ{vygDnpy(q9w#J^9 zEBNWs>ZeuJw$-Gfjh{WRfVK%cn#`>trP*pTCJRvOi&Hd!1szsh!Me@Db8gw>q~|^A z3TAO1+l#)ocm?X#@JQh)Q&_|I=4g9~TcX_FgzpCByw9fSrBG9>53AwPvb0~`k0|T@ zfhB`UQ#nDbsdWI&fCcM1=o0b%yBO|SPvm8d<&iWVw#u@;U1OK%-$0`6BI{%?!D>T? zj1{^na`)IIU9{^Xs9D=tyJ-lG!&t%7*?(@s-y`?uljviVLuh1ZgJGS->wZ!+D_}{2 z3{SL*8iZL#P(H0}C5ZDl5AoRhs5kX+YyH~NCKENe5O*dq6_M2nU%CaMz2RT>%LZ_( z=38JxR4e3C&jnUPh%-rGS-L$`^2W~edE3Z22s$312c@XJk~e3uG1LRnO?dL`^1fYT zrcNubt*_#%(^or}udi-vEwngeXMbfbub)}Kscjau%)!(*Bb$?|2z*!oP40tFlCM9_~Mwa+e(4>)^V4ehn5 z``QT*g(LE4hIvvDka$wGGxFy{SaNGG<5!huZdAAR{x#Tb)QpT8M8ao(nJe06g3eIL z{>kN{l@yPaJ3ojMQuDprZ1Y!QD%@Z$s|_S_V$A!txiLRwk2gb4BMMk?Z+vhOARZc| z?uuj8WVQw%8>WimvCI|3&HM457cp{UIm&^Jg8-99>jwUP+t%f*S$&ocidD(8r3fq@ zqlW92avgDfivIwt*<}))Z1+m@9&1kJj<)kSBvG(cZ)P>eBqea_y9WcMv25sG+F-ad z>6b34RyHOVgT#ubSBWadQEWhaspl(~tc0$3a^ZR1)iXzF#oJXjwk0FdEiDUhZ@Z=O zXzItmgE$u41&xU-m%KXz$)x$|4^jevc5i^86?n>NvKP-AtXmjfW z15|!u7Ddk2BvpxbI$?h3J+$8mSv+O!VUl*SVS6|pMuE26WNghZc$N?|v$HdbxRxu@ zr@MM7KV{(YeJUS>h5rqhKxe-ZwyMQ`;krIsiL+n0vM*&c;sV05zT{HGiG*&#F@4rD z#B9PWf~PO39FazF6I=u*!9lPSQVGcf8^KCQ>PxJ5_Otg0dkF6m-XXkA_#5FZ!kdIQ z2(J@fBfLs@iSP>HWx|Vu7YNT2o+a!i>>@lvc$)AO;Yq?1gvSXx36ByUAv{dDw=aR? zxxRz|VmqOqa1Y_`zJyN1U4%Oc+X#Jx$0Ud)ea>7&F`pm84}|Xt-x0ngd_(w}@D<_BzSLsG8-&*huMu7$yi9nBu$|VTqjbB6@FL*_ z!rg>B3H_9c*AlKFY$Du6*hqMl@K?gsl&$9x&L^Bh3HB$dolRIuDSR$rEnzX?1j6xz z<7jw*&`JmrjwT#M=p{50ng~}BrV-W=W)P+mrV^$|5RFuuOlTw|N=YOn5S9>T655h5^kYQ-%PlP za3kRc!u5o|lS3{gTtc{ru%57iQvYJYsf1GqD+wnPE+m{p=pn2iEGNvPt79%<4&hir zJE4T4QcNf!6cP#uZG?P69wC>IO&CSUBKQbiLOLOnkU?3?h_<}G%_?++=;Zwq1!Y71}2_F$YBz#Nwfbe(1`;?!#lyy0TY{Do)79o?6LGThh zgfxPi;3Q}$h1CQVK}k?h3jc#Lav$MK!WV=A!smof33~~j5T2uqe3tMT;d#Pt!Y)e1 zrwLCHo}>%bN3}jm#Smc&;SRzTgv$wkAv{C4Re~s|EW#SX8HCk@KM=Yo6}J%< z5f)Ou%qMgbwi4_fg+N-J_f4d<=Cb>Z7QSpgxSc1N9;8 zQO*ZZ??l~(+K0LoHH5ka^$yhAQEx-tjCw2TEvPr6-h_H1>J6yZqh5!4jb@>96YABd z8&R)9{VVE~s8^s~j`|nW%TWJ}da3$k=S8R&qOM210Cl_AEY9$2j&h!lmGjhH&IxL9 zrZ@u@f>UfFvTOS+MY!o}2%GxixC^c(Ttv9A&+JF6CtN@{pKu=GTtYA59Kt%nTEaBK z)IM}>Kbt~mBupkuA~X;t66y(cgxWr19ioO%O|TPE2{u9sA(>$9!&vsSBtjw~fe=ry z5aRkU(*4ZrKN|TB>er}Wq5cDPAL^H=Utq-FMSTbLZPdS^zJ>ZG>Khon*HIrpy&v^n z)a|I(Vw5hyK=iZA$=QD)EF#A&BrG7zCv*`y2_1xagmyw3VKkwH+*C{`A`}t|2>FCO zLN56yhoB@V2y%|?;&gFZU%9j7A#obiqPC!lksWBv%BkNj72*=>``PV%mUtX=Tc5>- z*i5*!&*DMcLb#c56K(uP!VQG$3D*%WBm9|gDd7^z#|?yw33CZ^X#d9&jv>q@%p$ZB zf`p?9M-c*q7D6*&CZUNigD{eHxCp+1TF1nT3c{iyd~3g3--7ivG-LJ_%xu#s>T;ja{tD+yN+{zN#t&zy(& zBYE#E!kL6K2x|zd34b80BAiY*jc_XA6v9fv$%K;#J%km6<%DH~6A9gfrGzDf#e@?G z69|3^S{0#^FrH9BC?|{~lo7@fN-2b62quD&U?AuTI)au?Bn?4LQ2Fzb0~nFlP+vuT z1@&drmr!3seF61(jM4@?Y%Z1#oa4#)$N87wKF$`s&OeHI&a+sa^UQ`dfipI*39N2d z75KyERRQg)@>PwiMC~dY;^L zBR9Kxw1)Z>4a)+{H!lmwmZdLiStge4TgC+cGS;@NdzpZpwk=D~tmmC=%Mw%SUCaE- zW-Jp=Y*-rT-n=xhq+xO3%f-wzK_dphh59_I2u865){8CvhyW*apCG7@!`&{*TM$^d zc|l-)UT2_db7#QWS=A|YMO5?b?ufunKc zQF$$az~+`fb6!(m=H{lr^t@?-X=tCC*BF?xxiK&~uOTpLb3wLHm@-Y1!lkbdGj8#49uI%f^og^YU388INdnc_@yyolx;DxEry2-&l$w& zhPj5N2GMB1x<6nLO@2dOVZBlB)aUEPihO;Qe!5;q6dU{_1a<6;iAVL15PG;8w;iXx++$nwC&J|AxF&Kl}Xi!Cu`MvNs3& z#7&#*)vb-8HN5QiOXUbJ19oZ6p0m7Xd3JX8^6cd+@O8zU~xbk=Toy+fSh3vOp!2fBn&gFmBUbztH5;Vb^52~5cnSSrim+=Zd@<<7 z9iV_DfXM#H-taAvy?9y}hFLaXElK7(Y>C8029C6aH-!7c&nmQFlE#{ZXVAKj4Mg?} zRlFVG-p8mxjpz-m|nXQ4;_ z1Z&|Od_51&hYMgmTm%=x2Dk(+g+Ie(@E5oou7E4in^(a`wEr3F8>Lo|S~kJ8a3kCd zx5903JKO=+VEsC{9&Uh}(0U8nH)H)KsmJDMpN(j_5pB0bM{R)+Y>l>2xevC%ofy3> zN7V0ue%KCoM|m&Y2lvAR@E}HY2gdo4=qt4hxBvWzUGOOEgva1h&)6doMc2NANNB-wOlq#jr8d|8Lmq6Zj6k$DCKO6lP}zW`S?v2dwK^ zBDU;jYAm@~2Fqo6ET5II(X5TGN z`x?gg)u9=7;(Fi1u`gm=UX*(AsJ(&8`#gocZo~F>qLKRqKEr77n0<=1kFk8ebTWO2 zE9SBMd$esAw(P_6>Klygm+%iPeT`-Q@i1DxLj3}*U*bD_jmrCchU?mgEBYK`{1rz1 zdu;h9mcN68`0)*{Xg?gl5^s4ETfUR(2Ot7rh~TNnn7~A|N2CXxgVM+Qa0piu#-3q( zBs#=ICSwXbKUJ7H8m47B%pX2dvd}D;RRZ?nZ7Rtk^@ksZ`Wx}d%FN=Jg~j7JoQSg; z&=$w6(H8Y!3rj+qVOakJ0Lhlje`bz3@cGOQ&*Dk$fbTHBQ!&F`EDc))#(!q-73RUr z&SY7vfEBaRI3k^S@!fc)SF$SRL5r99Scdd-Yhj-8tO8pmuv%7!tr3>P#^Ci($?AXV z%oi@lD?k!Fzh9Rdm>kdlM}%px66>#F4sL=O5QI5!oct4E7d|*bc)7R-PjwNLP!0h& z3Z~zco0yxZs+gb=#=#^|vJeR15&%@_$F2T2ncyu|h)p)Vxx0xq)hdM+sCxUIw~u}2 z?cK=TEdT9+R|iaoULA-lE6dL>C}d{0S<-lepj0Xpp0qrnv~8Tcik-Pt+;eccSbr#8ILTGJu)!hbdJ~;-N|r45q-gW2GvoC3 ze2;HjR*FKUlqobyRYqxbTHS)$wD2=Bl|gODcBOhO3Yprd)n~a=(k#lbPj1-%mE3UP zXj$!n`$hAZu4%=JQ}kLvu2$XTwmAyQ9r0efS#Q)E49Zkzs!|ze)Of}>9onc)b=fs~ zgW8m!)7qU5jX|d}CLVHQik3w7E9L0Vaggdaj&91;#*3zmCR@N1kO!a&B`&F~s-Vzo z5G6lYJdE$tmmzw@K@<9bZ#T(O%%Vl5!Y1nMMc#~p6s7Q@aOf^wUDbp#_7~wLL2obg z`3h20;z#lXXJ*p%IhC0SvQ=_+e|%oZ2G%66PVdudJn8!Tgr)dw zpb=i#21!0|KePGuT8~|)i?esdEtD_JyjQFh>mZn&%{N?@A6K^X&?7AW{~g5BBTL8ksUND^0xIWYNfEnuNF;!c+Lq#unps z(TrC@B6y)}J6hiGYm)2^gFeZiSK0Y@GR>V1{(Vi=f?<0YsN%U?#_}I8E_!(YGdkWN z^SGs0VP?8%OxB!I(Xrvli^4k%$#Dw#-O54_vz@)|l*;foDdoq`JpNC| z1(qCD?lTLU8aG~gcE>oS*`6R?>`O10ck$^3Gs|6v+B0fqb@Cst<^Q*tcqy(n2WI=t z>i7gzg39Mj@an8OD|prYEZML1WqC7A@hm>xrQ+Xt&FW0xaQ$fY`EX)3I(&fT@8nmd zx!Cl0k!jW1ojV72qjVP~Nd?helyJoU62(hJrA8m839rdxbxBNAsts7VuY{eMC@M4t zv*yrareu>`cDFL$EsWJ`WTMiZp6;}Kkgj&5c~axTVYk|m?sdee<5DervvIh)T+FYN zad$pw^c!h+t^}t`rvoSM&3=!|li-YxPr-dnywlT}G9sz?j>-o2!?%MQI$}4piJ^-s zx{;IdU@*jK!`BqE8Y^zfVAh5om?9e8#Xeu5O)Wg6D0B&_TCGe}xx8MNC7h|Wr=>gM z!e?m={CY8H#QS{dCZP4RLwJ28fX{D)1g%D!paGfO)HO2y@p@(J8 z+$COLVTww4QZTxTeBMI4hB-9`wM>S2Ebdk7)tJ$GbtD2-eAcd$-z@l~|4m9E_^i_OgCXCE@sPlVZd~vQJ-kGEH=^e_kU5)wtJloUQ*y#35nLgFao*ZoBXY9<#r?QJ=6?lKhhk}RD@(oxa9ba`|$E38( z&*HhMTr~2CV)+9@M=Ra-WyOOBYnnlp5bqGA)Ab^IW#@$ttXzEK(lXoljth32w*02W zCE+;)=&m7%1MzuNyD#rp;}`HO!W(_6 zN_apuI-4bCHl&Si^?Sl!rl*-kB`ltBTxBz!V+nbk?ZN7d@Pk9yiBVA~HKQg3r==I; zNfo{;%ReK!uP$5{NxN>U~2baKd474-|>`;$Rlrb<#LIx=-iPgaiI z?iriY=~-wVd0Fn3?&O%9yYUzmm71`9xCATlLwhoUfzmCib2?wIfZo|L&OO6ONj zFH8{g%a03ITa3XOFUH%nD!r2XLi@3=EW;9BJ>;4PeCeqb$1X@nw;IA9W!&z%rO&|Uo$szdQDNhOng;kPfJTR z$0x_fdvcR)nI5+t#|j2vYejh zWzs$O8BwLhXN2&Lc)Kh1`U-3s;iiKId_vP1%xV#IYMG#M`MeIx!AFNeHr`^viKT4DU`#8d&LHE5-x&&8#@r(rnajb{X+JgcrBHy_>TaAudrXZ#jmrd z%QNh_A<;c)6#s|Cl*wcIS<791!&GrfX12AeDrJD*6U)l@U2)*$w+Hw}2FzvnP-^pQ zfBoQs!dCC#7d5ndigIF7^vf0{!>j!85hj$1owCyL&J3$kNHtc^T0CyXaekY%XxifQ zTbtJun6S-}nWPfJFL(lDN7awXvgy^xO1!0utA+x z%AICR$Vn43>d~kMmBLWKx1KtA+>f`;?@&_G58&fhanY)^27dk9{DyyT{EvJ$bcG}h zJtPe}FOhuLHRwB=2ck-PV>pW$NfwbfN&|k-g$m zn1Ojv0oz9U@a|DXr3x9S`-KgDwa2V;hYjGUdbEImc!X@FdLVUqz!OsSImLQc8ONhYC$O-%TG->=cS8}k;z()tzI;}M5ogzv}Uc&KdXCO+xoVG z>2yZqlZ_Y`|wKUDNBv}kbb56ETqqD~AGiR0$dKiUr;f5p*nXy6@D^ow#l2UQA-)fwl?PqV6w z*BW)AN@uWWufNJ%KI^n;CG{G)OjM|~2DJjsM&3((S+`D)U#OTY`Xv@q?xK6jmw*khv>fMKLoN(c=_oSsctj~qF~9a$`$sRtr}Ol z*KX-(S#wmjT&+{cO)!TzI$omB zfe~;I{ov&ZB7z5DSg)gR&t>jgGd#o;Mz)Rbyw%^Bim(%Rwq@UY;(q0QrjeZ!*%SAf zO!uA0PV5}vK>>7(xU!NpNJtm&@4XX#J$Gxqy{&c|#QM4S-m4!k45M3Xh8od64gdPE zD100Yc3r)C^#=UcMO+1ph4n;&f)I6R0s-0u`qZ06nHEL+HnOS|m8VLCrbQ)atSHt~ zy1~8=cHasW7Oepa%`DSAg@$2Rw2$iAN6&6(+o+Jkhm>lWRBN>9uw);eyZo5Gee{kE zO&e4!i;7UoR3Q&8;L(!Qb-Iq7w-4DeF&C72wGOGM0fP>ef$y^%+sxU0Q0N@T>7Z5& ziCS?(x%Hmy39V9Q;%j}dtCesPq&4*Gzn|N7??|0a$!gR@T~s*#SE90P-SY0ObwpWI zLeWIwy2rNMJp%7QpQ!^hvSZ0pP>XheDbRl@t}|_h@_jzn8&2Iy-Fk&Oe|c|Kt4ToV zU)}+-1sF~TFPnyB17&i@Vuw=Ke)l@q6~j|5P?T`|RtzetMYV*rRmw^jCJMJDT+qdR zn%20|0e{jaqtDGf_lafNU&oHy*V|J;J1fXb%4=%udRLv>EY;8tO3lHxXtdGF@Vq&c zjm9!|hWV1$_xn%EHE8ZYBd1?^d+QWnm2<34$vM365m*_PB_$7JTq>0-6Y!_qYPCBJ z2=3g!Lfk(FE`S3sf`_P3PVt`gCkLo^IUkj96UfLm_O3&+Nae$+XQ*eOES`TN`mwWj zfLdgWhi~bR7A)v7Zm7Zt1rscagLK-+7g9GX2G6257L;;j>6J31{&{&Wa~a07H|OaLCD`g|Fag?gvb}kKPBtou=up?Usn^#Hwc?U_u+WA~ zG&00gn<(lJg*j{?bTg3eo9-FS;*`Z>lD4i;+99W3XOuGD;!k^%xu{L5c~}LVsX}8= zoL_D~nVUGb&$hNB1;>Llt*)&P`cu%*{YE2)X1woZr7Q0>_ie$wrV2V)4#to?iWCW! z+#AsTo(9`;iYM}G{JXnkk8!;S&5IxDeJ|?xj_12`zCFm;K6t(?NG>s}OmkkX#Bz~8^3jr2z#c(U zW)%<3U4Ex5wPXAv-{P?nv;F;izf#XhnS6@M*@1h_d)pe!X5cr`k@dfkq{M7f`9wM^N*ZAS=f*J)uDAL zc+IR|Sd>_pSFZ}PEE@F6Mf%QL_7W<<&q#P^(oh8$2~q*8UM7`Gl~4uz^({yRTr`Y* zw#{8xGOm3mJ7;TsMARRZ6n4%Iy(i%@%dq~aaSXRY{aKM)SXoakg*~-SCHB;;A<`MG zP&pa|-+Gg-W7h)%h=4Y% zxxW4usM~U2iYvUM>({laGo5{z0mp#QG_o{ggCQ7N9YgCwa5Q{Xmq|lbuqs@-iK5Dw zH8eFf3X?$05?P|V5c~=GGS+ZB`vk3lz@T7@IV|CP@$lB64%J4IiIBUMWBqkvrYPM@ zw8|c+Q)}mrlx5bN>sl)_ znRm%GXh}*Vf5_LD4Y->7WBx)m5bD|0v~_n z>v~_n>w4achW^ME%6BQpi<6Mzk{$$P;rnH?YKt!S0eg1zuBQ)9JhU%WO3nRV7wV`> zZ|F+Ys!J*QMB&j7-!;~f9DVQB!lUQz-iuNPqup^!XwAsp{qg7;m|8nBwhxY)e=v6* za~1_%)$@)ym8Y>uscKX;T2y8WK-1!~m|5A>=#lWLE7azkD%fvUS=X3UkVM z!onp}R4(VB6@|%f zN}4)dA+wZrXu3y_W(Oy`opU!7){rAUx}j6$5NFC&^gZ2=Jp6$}omyweGk_9io@P9!J?E9(+oIOg{UE{(>e7H;B;t|E@e{5s2JrH zYEMp^i}&jty0A0EnZ14HqWgsypy_L5SK^XCo~>Q-jp{kt#k`e?QA(srIGB{_O*Wl( zFyE})P~Ow1MGJCRx_So!8kgP3am;6Ue=1Yw;Ca4b%kj>+WAhE?fmorjR>H|x4*d$_ zTW>Ht#3B#wuEgSHprOxzHqbzy&lyZ@kbqCqkhAx^&dT4&^}DZ7;Q46sw>dk}g~b*a z?K$Q0-V*2jON)_`;?ito1X;Eoi9q6cI1W(x(re?sX1^gbux%inJ@&+SYNRKnl=2KO zQ>vwEZ_`j)q$6yo?;q)}Z#wkw?&wfgQm$Z5DU&Im!K~N2q83*)5N_YvJ#hE#Ms-hW6o!Pth%(?sdI!VXcmGyd9>OCKQSAPz z5X+0hvf^q2o{AR!&mgftx=NP9wZd}v+kuUj3Gp2=0^rKW^-B&8g#D5*+Anq-@M&{J zWKT^mM{LgYy1|WMtxuy;HXi%r%!SJmPWff601aNVt?v#BoD z99tumb<4V&WwBVQ+1zXfsWpY>?sjP%nz(@@zor5j=3UBpN{ei**VETp(N>*n$TIb< z#cgOr{`TjWTY~7jmM!$M0UP9rNA3)Y3XR#l*5a5Q4%i&xfNkUm7M1>R7>5veIxPHU z-Ll6_1mVijGuS=%5c_rZGMEc0SaQ0HE*})H5V-Qyo3D$jH&$_Bj;!85P@j5C*8xYl z*~{b92X5h9>N(!*qAl#&6{q z7hYK@W_~ZVp?bm`dk%KD=LZ*` z*E8dZAnjG%@@IfG#Z=`FXzqt&K%`OuReg1!ZN9qonQPZs{F@L1tvg+05o zt+n@H=dMs;MLzE4^=Fd znQ3He(QZc2^Mcn0_(r=gc7^&*&Z^@8A8Yj49bOsZnhsvD98Y~tIm^sIdG<56RLB$U za?K<&cmPU{=`6U#&&2aVAp#d%0R2@ano77Cl`PVl4`%W)gT|fd9nCgua!HxGM8d=T z*pPDhGF~mKvgpj|L_kWvrq*cG>kSdF$(vnY7uvCHW2Zk9iK*2p%>|n$-m}rKvDc_v z4f&A3-vLemf}j~}$tn3Hu!ou*An0gLA|~ySNk>q^c#gvCB+n|Nkj?Z$Y~qc0nA5A` zK0ckEYF&)q%3XQ1xGRtF>w^47A-|3Jm`>w?{I=E)7@KH?CFpPjYIthyUk&vxZ^o;0 zxGW6`A1|^T_L=-0gOTu#Z5ulLUK^$1>y!Qcg4Q$qF<^*^Ds6Vxj?3()D5-1+e5o4(XUH#IryAB!AUKH;1#X_z=k&N0a*dL=WY#x_cWxi<4A|=0 zV@8|79k(fsHrV?y)Gz2qI2*`=qq(NmWFnhTn#>BbIibiVGFh!Qn@LE3Ct-Fdvfh=A$`L?&I`CRP*rku*ey+4lu5uVd<_{pd#nCBU-SbuK znWD>=py)@S&y`7?HD13|u}3cD6b9w)ZSru(mgYzc&#^L4Vw8J1yxA@zrxia<1_RLR4U+PS{;`euim=ajNQ*vZQcE)(^PN-GbBovoRn zCOgCO5*GcD4{(nD3iWGfBL)xxjX85oZO8@Wu3Ges7E6B3`lqcG=1^K$xke_PDwjbG5jJw?t*h*GcTZdATrzwRwwlDlR{zg z-LUftUIK$No;Jb{My-a@{Sa*J&p9P*Z8WDdD1clc2Xcc#!m5w56|E#qtZbk-CrE9i z6qXRQHX~0zLB(5~(CldXN4y+W2aQUrQbW7q(b(-l`YV$6LrWR~dvguBc%miV+HW#> z&7KjmCZW4DbUb{i=Qxm?JuQj2$*UO2^|z`s?bDeV$4q6Dgb7PD<4dN(@yZ1Boby^K z&T;cgW?`3FvAAHa;dn_0tuzN6P6#g5MN7=4np83S3OZH`QD?E9rWl~rZ6I2!V$ zJld>Qsni=xQBRHD9kZZsOSHvfjN=jU1N2uID@3&go%)HH%pQ}s1>)&}aHb%X94u35RJ#jmJXJ$oBXX z-4Q*-NlN-bwW}ObtF5*%AO3-uM_YIW#|Ru-qFFcQlm?%Gp4bmL)d3Hve;M-r9iRs` z>bp6WTyNuzPic-j|B|2Qb6YEp`H0?wZz%6g7{4}<-F&R~efNd7pS$(G`@R;bkF^JM zkyNZ5y3KXb(UGC7@A%=|pPlHRJ{?b{3d8z^hHFn9F{NkiMUuA%TG{oLPn3HD$YTO-K z>jJe3sIZoh)9Hu0d0rArnq4}M(kUWsJ;C~XUCn=UI?b6xfLG{~ZgZ&Cq~RsEM0RZ7 z*b$IxjLLs0O64ao*5?%bP))>ZbhoT;_k~=IJ;7G1yT%`HXe9PcpT#|8Q_kYoXl)uh zu=(YG6FH8O5@YSOvD&S4UB3qVfTHRV5zV(vkxi4?M4v^g`zoozZZyZkF21O1(C+9^ z%3Q1CXpJ@;Pnl~xJj>D&t2gMXk-Ib9p6`_#6k=u28mravJPX@?mVTMO6Slnzoy}2E z*FXb^Q?KUSH4Tt}JFc>}c7BwVf3)>@?c?FU3;ZxZ2cjRhmdo$PtFV7t^lXkW9nMwG zhL;9$O_g)u^qq`MEtA;;$y$HJn`z5<1ARyG{*IJ~ld*EOOzH?`ymcveswL%iuNm)g zHrKg%Uh*36@miHCrPHD}8?FAPaAK&>8cg21tJGXFT|*`& zuO`!_uAH)HuZeRHunXsf2&YL1aK!WWP0h^<<>$JYcfGSk;Q<4Rr=Vc(L{|^9wrJlT`sTnUjfb@N|x(GQD+DG)0rF6VG z*b)w>Z4#cdz*Hz>lg#~^jd@eGDphUDD}4VmjwRpvIsMn{Az%ba(3Yz)!k$@S_nE?y zSS{YGpk?8J;pxk@gW7!gSntL+bmmqeP^k3L;x@*Gf4txyX^kW1az{*3`f*z4Z3=}m zPAT)66b{f0Z3#G(l5^@BwJ947!BG|UDRJeE`5=6NL&NyrJ)lq3$5aM`!sM#aCev}X zNvATqAt!gg^#;9FGKD#5L1z~SFUjRT<4g2E00l77Z(j5vR{r90?WFcV`5~?w-@xuz z--_*Gd2BqxsO(XfD+Jj%L#sWF!BE;EqhIErENik+Z=F>ReV4MPHSDRg%c(;$G6a;- z-<2VTlv>&E_h_Qgpu9$}G&*#ex>#6gfJqmU$WNGY<|FJW9I>@`D?knPzd$W;(P@Bw z4dZnn2L?KmlPN;1)!(b_Etksou2RWwUjH8c-H9q*OnlWP6 z9G7*0UN8jXt3BW#I0jCEyTCVdQyUH)*?gqs^x5{a;py4BS@+&?|G2a;pd0|Xb&_@3 z6!dUM&d!bxtZQgkH!wbX_6YCTw$tM1KXKdo+t%EEXa3Igty4`?wjH}`ck73@nzqu} zPOeiPO{f#M-8r>;YiArYjwt$Y`&nm;Rv88~T;Jf!vAD z+t`pvhlFo~@NE{p#ru5Kb@g}kecn`g9jGc_tdDs$)zFZ77=8REQ=h5#qtsk;8vb`7 zQ(vE(3j%4F() z057PI!o*fo+8ywN`eHiSc%uMQ=ToT$+ATaZ$HT-=&}-jrNHrv20_wKqtv8sbm~VkJ zj7)NuG96OOOY}$JRWtqI#ehzFh4w!WGFQxIrSl3!y%6uuzM&js20)iERz>bEc@-)+ zKHyS3G$(wcgYL~u#a~i^*W%ej77g1th-T8r?z0*zy{WBm3mGi4SfxYv+En_x96rX>(W8zE+n}E0L-dz1g+?zN3ZV znLck*v@2TU@H(23Ca>MBwD~i;?;HO6-nFe=O%13gQ_Y>nXS-U#x{G$5;|l%oWj{0+ z9Zb9s3HXyq;8&ns=b2u65S16mIZD%DwaPyZv^*J_Wuw9L1sl`39qGfWxW&p&R<#N3>M zZ7_SR7PZD;5GE}(%}wFoech&JWEz#ES!dBSH-`8B^{3H%B3`lH^46Ox=5*js#pyYb z(+@9`(;ErGDg8BN5G>85QACWOWJvIgc&nZUpYg^XiMfZemYoWJ& zC~WElUDvuYT^Yz}y6c*7M!bwSPmu#-)t&iVdzRwAli{Q+r<958qy3}ai=VJH#9W*L zhNlB$vscfxCyYMz>>1ap_>D}>H_S%fJftMz(R0!-awpSi%w6ui=mj#aDF20hAM zU#%w93bXaopCK^P2sM0KstarayK>4{W7Oj{7#gGAX#W-Ztrv1Gv)crsDx@;4y&klH ze7PYtL=B-SYFUrL&`<~rIgkQ%WwhVFzDp~p(W~ieX|yd=3&)UnV?r6;rL#6*kE8^m%W9;Yrp9h?*SU>S4fWdr6*(JINJ-AkU0%qbo_*Yuh(P?Qqf&FIHC8$s zg$~KES((%8RcrJt%Njymv4I|Pq@|{Yer3L~U64o>ocsg9G@9#82TQAS2+LuN<+_}{ z49WQzK3|So8D#GWV1Fn?H-iSzBz*qsAh-jZ$|*PP8t&8e>vj$I51)XVl+zz-Z|KMj zcc!|!3MqYW>J)|i(B-jwU*~3IsOp`kj;2z&orS?QL#+c*c<)(cvT*#1Y*zdIYg%Nt z*LOjr(yeH>X>uVQt8`ZjnDmlZu0RbtE1jHKhOE2@VWj|EM%fYqSkT^!Zjt%Rh4eL2 z?kl@RAy}6qw`vJ)6I|+<1@)Qx7?$Y1oV84z6@sjkqI^*aV(C>1?@uMVKbf%p7;+K( z3OXg%1J>m99BAWvf~kN*@6@N9fm|LRKX2-FgwW<5ebPOIgS8}fD{$bQ5g~pxoxUdg zd=G+dd7Zj2y;3|F_i;%}Uw=yS6Qxq!wNDp>?0hglfn)u+ZEw^cTM%dSg zwyD>^|0M6%EE&+CQ!_>tCnx*(wQ`|<=iY!Q90mJxHV#biN5k79+tTfk`q1{E(@<;J zUK>1=M_%^go?djO`*JQHc4qL>={7@Kq0U2)DJo+nJTTRoUI3<>4Fjr!2#<)R$t*_1 zKN7%XmE00&E*%dn5Nn92Gc3)v_LhPEK2EwY>Wjq(wu)FokP5@G2BUDg0L5JBtl3_W zxtIh4=$uk#@5ruQL9QNYm%PB;th-(r;7mF?jW?t^kDXBG=Fd9-%E2 z*Or4e@3@t5`NCLn^y|L#xG9BxD}p2VMj@u|8h$>)%NN{=qGard>Mc?&;Pe(Buk(AYF%=VbTwyj} zgx2&DvqhK(1JE&bW$=7n26c|FUQ1{2xtfk-rnK%)j-LlZ3?p0@e`Zej0XAN;g9)`X z`k2YNZ?YP*&zcU=8zz}ZQ~Z{8O%<`j0`B>fe=4Et9@Mi0)W`{(K(2T17u7C&pJs zpOHk$=-x%>eMYR zTBTK5rBzy`Ra&K0TBTK5rBzy`Ra&K0TBTL`&rbk=IF0s)G5GI(Yw=Do2A|1M<13V= zfl2aBA)W%1Oz2t71AuQNPZ@yIpAj{LYfD+v0))C1yS}hLRtpgyjYH$ezI7X z0&L~~PDm?3R2mf0Dm5qFAf(lxA3j5ozfexeOk0IC1$grwAx#5?P)N(E4aK??AZBe6(n?^ojtOZM z&sc90(rOTZ&oF?Jpg(V_XFnmN3C<)vm<0R532+R|z<&q8EX-RAQzyVQ{v3lj zlQ1;}67WtpI0DHHhGE`8a0uR;!B-RTdjdXv8~hxHPpUuxruM;{32+KNF$7DSfMsk3 zXK>0524Kl&V7Vu8jYnYWAa02p{yPSrIRoDn>u?v_oB|n`3Kp-LK^?At43;nrpLN4} z$6!6EjQ!xS@N7T4Is|jk-IK6=Gev$j!~99i!;wYXa{%Mu25aE;K6nS^j$srkc_if= z6F7C_T28{d`!T;Fx~Jf~CveV5_|!N?%?;aJ>MZ7o)H#JY z+K*d0g=?9?a_YlUIRJBzKAyw~&fsz<1X)aCo(L8*SSw~=sbhk^B8g24`C=_cVL3-I zKGQ-gr(n)eTq`Ma1|wB!0jhBt^FnMx#Fn)E2-X^;35NvDMXfptpB;ns&*G~oENfA( z31*}gBF8C#uVWb7efY^zi_1AesGY{|5v~uz>jbvla%qNeX-9DhXD|*Y1uHGbThzWO zL6Z^xL@p<=Hi$Ypfn|*}ce=<8Y2!iRnHhL>yHNTpYx9g@y`RWCHp}b+hjzz?*_eC zD~{oo%|b%nEen#6#xb_&&7*tFXVE5O@&d5fSA|t**n88N=yuAVy==ey-XQ!c~4@0{iJxIR2Q#(nnGq zgLw#{gYXIQUQ#G?PnGYC2-aKj7NyuhY|Tn~r)BmAZbwxa17aC&XHlDPg?U6yqSlaD z=7`XXl(c)P9!}KC#d|pWM@d)&X%WhsJE;^+cJ5Oykko5v*^A%6eGR>V3E^6GBgQvM9@PUqWP< z6eK=_t>j3t4WeCF>eBL2E$`t8m*qW8rB0WSIE8UMdXsV#dxMjBEJ~1>C~Ltu{zP?_ zaJdyevA?YEm|emj6VE@6IS_liY=svm(b#P`y-?IWh5HDxmnk33iT%VvKBe-l8SE>F zto8|fFWl#jEh5nqMeb*?mQLZ)i51NsC*Q0Fi2Yju^x(TgAP=ubU~f5$bNXPO8+y@U zcxNlTS_gC2!JH6$Vv}$`ge5i9okNf&K(OcA#x5wwJZIpQ#Gthn_n!xwp=IeJliEd&vgYOhQ)xCg}@HyYrGDeuCdz%Fk`dr(yA#CnVlya%TcY=9{{3GF2DhTW`EZ~S5wx&-(u@0A0Lq zs4c|_tQai1O0x=M^6HcSzWucZu9H|cdBFmRi~c;fz{F?A!V7f)i~`r1%GB=-$%WUw zhqGjh&cE&6mq3?(FEz19h=YQ`kd(rZVk)l%$B_K-N4F3HsY4Y4i(^&%i7Ba!J`@3Y zo^L4Z=3--o1;6q`9>N?#fJuU0n6#C-nl&jye*|V{SgOs!JT;ic&_uk| zoRLSk@^1l{14&Mh<6t}j6+ie;9Fth1z}KN=kZ3JrJQ=G$-QFLru^9lFENUKT1O(1h zSkhohUSJF-Zyh@RR4mpFmo;elE)1)oe#H17993B4-d=HCk+w3i1Q+xZb3OSFkkvfiSwA5vf;BGIPx( z!=JIhWST;49O}bBTyL(Mol$G~w7-a)x>5RTmtL?Up+YH*3n)!L9m!sLof zt>9Q#Gmu~oxakl}BCkTQ8Kh#bB+4-W09g=KZXt|&xQ98ffC6NtDcNx`(12MW%__`t zp)o#BsQKr=^?FMz+Z^7*d&d>oPe=}d_6d%wLdwK_t00CX52G&$0owFXA&L%3D?i-@ zOOHatkSW9IAp2SsJD&dFZVaR0(_@nPE4HHK_X)MaYhU1Lvko-B)Ot21FdQhlf~k!r zQ|w2SWo{5ugztdCZcU;D@%{F$o}gFn!|6>%gy_ltQmj+YCQFer4!XQV8^lY?s}E;$@nSDf{ZPC6B+hk&}(tK#ThVvognNW zD>Eb_9r)jv&6O`>KnOqtO4A=YEugFo3u2_&s0%A&V)sJR*NWd9kPM|L26D=f{b)er z){3oS#|XwP1-}}QLwAHd2!WulrjSh-#1QA!LTAQ+Xh_F%gVAfUkAJ!K=E|^Pv@1JSvtlH-q%%L zD^CZ9ceHMCt95!&A4-B~=gDo>8xKX3W^{a6GCEgnfWQ zvp2wmU{|N;gF2KTM%3V9vj5t z2gD+)oBbX5?bysca0jWM2FhtjX)`M>b5%`H8vpZG62YSH%fCR`?cOGS|D-6IZR>;0 z02u#ZSvp4yxr$zge~=~0F7DdSSl0AFPaAcRIC}11T8SooP;T7-23?%3vT)Ry83Oba zhuciLAU<9#+5pBZH0&&bo3r8ZQ#*sh+2%x$B8H3#rorJTapC4$}L4VV@MEY zyzLXYOvx8u0qNcX`tm>JflXu#1Hg9x9R>K)l-*;5&nbeTIg22*5szMGEuCGq5j0 z4o-r}tz<+uD-D2qh#c$_`XKQJ%RS}eW#s&eVHFeuV;r)VN(!<7KzxqThkW}D=_QuC ztAMg=5a-*wg{3e2Ph#{N1gqyqk36P!kZ>OIV`L~4F3t`A^iLd~7t# z1G0V|s6k)1?+n)lGTA)=!9|HFq~t4v7j)=KZub`P)|YR&hJin79?85o7TQk98JO?Z z&G`Tv0{qb84J^Egh~PX_W0ZcATr_OdL&L8wQZQ17pr}7E;O-lljHJ?#VE00w3qM=S zW@QOLQ9JQ5PM<|E^#rc4aytjY8bSvES)LuSE2lm(%2x>h(`!wtbI5h}f zc3lIYwmA^G?XbPK8DF?F{I*$7IxS{Qv#tTq+Z;&Uc6cA_Hh8^jgWu4(kBA>>sE)AP zZ^V{cCzM1legsjfpJu%|pD*#r=Vv5>LB`)Io>0OfdhcqdkB<(XBu{FmhzQCL4d2v0 zDfHBDZ#|NB#t;uTGQHme0hRe9-$nx<+CqYVAdCv3K}9BDoArNj81wcKqM+sf5bqJE z{uL@sYE0r0%uAM2i=ZK{9#%B_-i4w@_;-u=4OFM0ka(95b^D0Kw6M@xIwBZcS6Che)nR4+9K^tf&UxY0crmX zVoSB73bsbq+q#XDlDZ7q!n5-Pu5H%)2&Ij=;|QV#)!OFYfo;DGb`|UI1!4~bX~CVr z1=*J{(~i#vx0UO~2Wj>72Y|Nn{>K(H{5x>%TfnaPd+DGzEPJbR8+)@8URJ-5+p<^-&pb^cvT3o8;(zhsI;m|C955ln%a__RmM()u2*Rk z0!|}8yILgIylrR*6pcDfkbH!1q+{QlELc?4fhaLKUi^2us)7QF3?T2cFmYV6sHm){ zrQXg&FDyvt*H7i94`*tj62+fA%c5axl9cCZz6xPcGZNUv3S#q?%h0cyg!(hZ$eGQj z1^*P8;FXPYi}O^i{IIAkLa@~ZV`3A zD|xS!@scES=XgC14>33(*H{DDqkofFq$|S(L`2?nH?n5^vYK7WKRfeGFMsSmYZ`;F zsn=xE#+GTAR8htUQ&E#o#~cYN$VV4Y&V(rA)fEv5IokkVNmMJen%692O(Bkn!P`{9BWMs+55@66E7$!Q?_gHAYW@*6;%#g|`Ih)mVZY+IkFV4=kl*#d{ zDnm-k6&~iU82^!Iy69JBX$q|ppy1IUs=^@8)*z!2p>GMTQbM60a;;LXD5x^i^w0)z zyj)x^sRoxXJY@7+40(3ejm7ES9?f~784n2;F>f}^*g-bC+FD|@RbDh^B#CD2z%Frcd4cst|Ll z3IBCaGieL6N@fTJH4_*e@ZT+wfJK?@f|6eC9TNN9Tld4xyZKkjd%3eY3m6>$N60uP z0(bw+*BYi?WdPcKd^2lGa{Ur5^VVUi*FZE7BC1_7`g&Ftd#YT+)JX@6-6pHA^ixN z04wPwb~9}_gJfc)h%~q~@^vAu0%sIh;`85*qLkDa=l!+^v} zVILw=NvdGvcwNF-bQLm0&bL8p>{zd-so}%c$Oc`Bz=wWYfyRM-ezAA8yu@s~`eKLW zPN%^L>fQ31(zg}xQR&w21nZOeG-Y%}GCr&h?# z=&UNP3M767U8U4`U=PIj=5DBt)p=7#V6CT6?PrW~Jcg&S3m4c@!u|VSL&Hj9{LtV}Nt=LNyMr^b`)Ki_EKIZ_y`NE@`f z2$y2Fe3L{t=+?%}7OVlVgh9E?Y{<#U-OAIU#naZx-NtQ%$!SSgPqjqXasGJ}u7sq4 zD!QEzdgZgJwKcNqJMT)1OIb@4X3*REvvyQqS?(SROpN;FtO-Mcnee)4xf6t>0eXxm zlsJ&sopP_wDza_Okls}=IND+!@7HLaIwR)7((s?QY+OtW3yW>TzN9azX1w_!lhC`O zB!t5SweyryvN`fsbR@(&B!i+clI) zdw}MkHg@-9k#2eJh(9S|;CWJ@$^6$(r@n&fv@f=QqP(soX*{P{l67O-gGRNo-~zx_ zacsx8`Ea8DUVZ$C7Lo!LAHkRQqO#lGVS!s;wQ!De2U8h2`CDi~hLb~YCZo%ilPX8n?U6us%C`#C$G;E) zFR8`ZIvE*+QG-`O7H@$g;^qF1ZGDymX_*jA0lb^^!0 zbmgvEI5CD79&ia?T$hPD($m5WyS5lMjQDhXr#zqkq99I-K@f24)=j13pSn;}^NYUm z-wFyWoIbtC08(UE*ooeSCaasG3%fGUbabZi1XxOXT&*!5B`UV&t%Z;E2V}%Zhr3sm z)dbWii7wBizj1@W50Ry^C$o$z*yyXhr*rEn-cw~BtWIVZwJ$uoJB*$RJO3gkxMw~D z;$G}2Mm8g?fMB)-;mDt)TXirAh5jUS7Wdnp5Z+v;bS95?nQVfMD>v)nhp>}|&MA`{ zHgIJ6d}^u*iQB1A3a#(}`1tk>Jnru$l!wx5a6V}sO3o{NFC#!Zz$?J_m5&M0HzUP- z>)~7>*B+`*;cA;FW;UP$HKGn_%{gN5VS!_Pq0Mz9B%7&zqtxEUxo4NcUO6}7?-2B{ zRX;{A;}3+a)!&^-j*PGTpGY7EY*h2l4BmdXMxtA>>oMnIl&xa!HQU9k=5_g|IQ8}M z9mp^lfR|*Rv9tL2xi^`x_)NMU-aX4!1z9IEuvvGyUF_8bvLMQ8*&ST;SjcjEu4;4^ zFwq!UXp-KJM~*aM2~B#{FXv#-myFzh(A^e%pjsg65*$HZ*QHUIZG_ph7q@gg_YOy& zzq}?xV%+sZpMUu1irO+Pj=X5lrM%|}F?GBlH667l>JLoI;B%i1Q#|`OR9h22sv1Av zXVlco;dSu%Wcd2rl^3a%AYwPMFqkXfO7^Ac(FS^++_va;cr6 zISdq6F4U>S;Y6BNm$i8tl}@}SjmTB%pnN4rN<}5>W^WhSitIszeaKa_RM=9RR%fg5 zQI$gZ{1(yt2}POe#8!Kj*cF6hu23E8@$_Ei7@1RT($i9yKJFpzyh># z(Vg()&eRd$}vR&OiJZa0h7a{MunykEci_(+#c8%K~M87xSfon6PBSgC1w2Miz z*>G9rz3%+A`A}2GmrOP!!m9JAr;x~Zk>((qeth;OK2NaQwUJ!Se9VQb(Uws-?O2Au z$K|k`k@pq%eg?2RsSQJFZ(b>$bBQ{x-JLLm2VV<6SsZzbAr#SOq1vyPaM`>izb{jI zD|)dlkZ$)Y`jE{@0-~Ep7cmhk;X3Ue5eC(MhRr_`Zk@T65=A(=?pcVTjXI+$wHSqi z#d}+vGCtPE6bz?+ri2?8ljF#Esxn}|qa8h1s-F&`5pbQ}--jXqTj+aoIA~brFQ#^f zQtiS{+oiE4%1W)8cdxg1HO!JX3oaLT8@H=YYpMl}$%WLD{N7zvUR}2;Be)~^g)?(V zVt>|n*2eIN;8C|eCiKhKyyH6#1TQ5#qg&BQHa{m#xY6Lu%$pR*x3oq|m*6rXk#cgX zNmC-Q;$HZ1AN7kKI<#|LCXVebjWy68*e+x|<9e~V1sCo2#|I@>yyn+CmK+j@#!xi)>|Lxt^JfPnTzNZ1sN2;0;>|KB~ zIi<1|Axfd~L$&d5O5wRqgW+IpVb2ReEu{?+TLIneZ@7-OmeVm$B~oYvORmzR8|2Z4 zt1BcUMn`rO51mA(BF+*xVA+S3>ZIU=q>hxcdt`?&B1-i??ihCTj?>`8m%1LC1%oOo zz%L{j11J1VBoxWj$?dWE(aG7h&ZJ$4X$|?jK=+TS9+8GO@iM#O6sF{i_+!Pch$Nq0 zE3ywb#!D3g1}CbRNDc#1DbJhwqde)=dB$9sUnB}^dR&yJkJ4VvnH|M^_-Txnl#U+{ zQ(F3wUsmkbVe}<|Y4d7P${_{=2_E0+{T3%yY@7T?zbhw)`&N*W6V20?<0Z7!6>^dr zCEk_qg1y0t4&C-%s4to;?o{klhk?@pXt;TOedjYW{J#*6-i4BrZ?%}rn1*Weh02Xp z-hj&N2=Uy-uM4jd!b=XFSC79N8<+F(2C-QO8r(SzvX6QWsyx*#9;AlYy&R?jwR+8u zI~2R(bimB0n=Vf;-)`N$eMF^r*hqV=% z3SqczYqNLuMaxZ9Mwi!C+o5Z1SK~D-Cex`spu;2S^?%?|5Tz3$x zxs^F0v2`q2QNbY2WV`A1WfD-BWa#|<09;+Nqo>D+%`&OqcAcEBPa#aFfBb%UEBPXs z4ckOxE^Hy5pGh0Ud3;{;c`(Iov6}r}F5l_yhyMW1n{a zCOH?pDy^ztOsCd-MYgW8sPnfk3q5trx+3?e)P9yDM4r}c?2NQNoJ9Lgg&6tlB@mw6Cj8u6(%CIIro$#5B zj0Sh!yyT4d$u?lW@ru@cj%Mx>4~VLq))c!_n0D>~OUy5F5^=-#Jv)`~U{(Fkoc zDSy|G>+sVI^kZT3Vd&#Y+7T&7#Z$W%D1|H8%HfM}XzA>pp`i?6b)F1$=^E-Fv@3TX z;Pq5EzgkL;W$M3Lxk5APY)H83^tj>u96hD8dS~^*xb6LY?Xh@-94#X7s;o5qd(OEY= zx~se0&hff+I^J?jfi_6WwB4OdfRz)^POtTY=jNt+`aq9dfD=N)CuYrHyS~Pudq3|b zoW^bt;r&wN5N@mgV@cvxqh&nM8S}B{{HxGQ9?onsajQR}f}`^JC6&!)wJ_u~BRIuR z=QB^OLF+Pp`4G^Qa)?Q&vA$1vcXRswY+6(AEd2arCGCE9^;jn@Yc23O=6c0ccCIA( z)9K;99pBjQ%F)-PD*Jo4#qVeGKBlzE?Vy1t3bM$Mz*4_|UviMEzo8*O=jAJ38dqD|$4)6nN% zxhSLk0bebntm`O%X#N(Q*j&l zHNPni4}LKFc^``BHbf>t^DmHXw%c-fyviMqib)^?vN`@L;`o^TZ5yI88@bxhX+9g` zoJN1<=bMWvQC{VB$7$?O6zy{Jx=5S|AY}pYv%gM_%mjfFwqPGM;$8wAGwPBZNOY{; zL!wVhR_K3$2NAv}2HW__@1wY$_&gU&MP47Ki=PqLoYyU6l#wyzh89-jx9{XUo)9M2 z;^)v(#SvACjfhD_$xdVWK0llo>#Y~LO-JD~bw1CB7Sa`#(x=!6OA0~jIc>NrX6Ca5 zMIL%zfCx649r5-%66kY1*JhF$Cz`kJjzXnv-qrbLxTOlz^QW{uIGzVOP&{;?fo<8W zj`8^)qJIHsL+k)ZiO;9}?s&0prL&y}Phnz_xEBq{-Q1`w4u_-3PHb&-%jtDB)lM(M z47*I_16sRz!{!e|MQ3kh9#icO1GHAEoz`uE&Q`50Jx7Ci=I@>i9ORczWkeRhWH;sa zcMpaX-@6SzfCigHn&;0G>mibgcg&DeJI&8J!EDCu+sU(Pjic9KG}3$$2EJ6MofHYP zu9t|HuK@~eJGOFfW1BTppAzdi0+GoN?-tPR6vWiWw3-zqS+IxX}*|i&wj;-|r&xooWPf712IkH=#o#TjYcp zw4d+;B+f-|)mOmRa=?SD|cw1_yk{)1n}NW{VRU$JHE z9RJ<&zw|S){ufBtf1t(w&yX-CMot#4{|O0WVrAoGW&AIcFdr{><;BJ4wc`o8F|sr* z+o(}k;eHcT3NlC7->_uAhys6rQS6W>q)9NRPDG`FK>Zf{WuA*6qA;r}pm(jwC*K5W zr(BjoT~+m{s73SVtqFr#u_=P_b!qGPAarJp|MK3~uW~!K>zVt#{Ylg6+KGZ+4juty zj)_HZAhSIEo)`^VJfXW^^E?FJd#EW=M-IG}=C+M^<|uYin{x`e(jCpeleD%|*rWLN zm?mIS5i}~MSlwwo#_b-hmm&&8+@razslnpAAUUM>=nA}6dj|CmT1P`FWmo$jMccd& zZhiOO-oX`#Ki1shy!Gzv?BVm}1F1G&OsfFY?=Zg{IY7r4+V_mMSWCOriM+*%7l zuv9(JZnt^1WtuuSczP*@cOi*7kP)M~OL+I!Ew(x2ZbjM3dKIl^e*_7l04O{&4HrWU zf0<87uI?FC#IhBB5HxOg!f)cy#Sw9Ra6;DHG^`?C8cXAQqq%u~h)9R9ItV!R?4JyO zuLEsQIWYe!(n778i^m~A3!Z7bDas+A9qoW0)5@b~a$v1Z784|Zvc++*irXK*+wEU0 z;~?K=1rCw0ixK^Rfmnrf3B6Cd_tT2KhI4{MI4&w9pg*l*c`|n~3#_X5b^!0>_g`CF{|AlgWxxp-C%x10m^?_HeZRb8qt9$o7RBLM=Mv&Ck zRXZB}=9MN=O7}G$QVQQbHv(dG_2o`WYjxPL#p*hdecZX%4|BIR;+sGtJP0-JFPLA8 zO$332oX0{+309b_4E9;jyQ1s1Fm9{oMBYlG^uhmb7icM^x#fX5CmWufyS6E`nYAly zM4OyeQ^5n<5yL+h4!WRq2+LwWc-9|T{v4V~`>SVl!5XTyU4_ydwbO^usCH=Pb@5+v z4pO!^_cM1`(b0OXb)l(loWEgnm$YpKPyNFr|0+5AAUye)NkXDoZvBF(psfzCJsX+A zt~_(yfUMAU#0yio&U%Er~qkpZYKz)6T{mMJI|5qK&$*%K-N z&6oCk@EmmZThJ|)ZfQHoT3H-@RXIF_f$LE*!uA=9X$UPk2j1we2M1daEj@=TP;M{U z`@1o?$9g+q5(6?f15jodq4LbM>ieAtxXDSFg248%?VzHb7CmSMxlr(Yy_^hCwFyTZ zxGZ>z9`I#jxwE+9ZRQ@yNTmzVK~}wj*=p8^(aSkZ7+}MLuuTr2PyA>Q<8xhG9QqSjFN|jW#G_x z#pcwaY$@@8EOOPDbrdxSEV;^5Z9#=j#fchMxuRswNJ;s8qrl0VnscL#phI!5f?>g{ zOtc1W%5ssd#+EWsu3SxKOQ~Z*<&by1P8*MRq)NFgl=tH}?Gm}X!1BzIueoKz=kk$L z6kkyxCF5MRi1&j7KI3NFx(8L+=DwDHxoUAj(LfhpZj+Btx?eIiQ7hI%CdPngs%E?7S{3@+Gk~Op|kmYp}rXei?rz#&Qv;VE>EcFA#;mo!25I8Vlp*%YN0W8 z(0njgiV}SpxSC!nL!PupUJ8gYO*W4bh-78foS+J=p?Sq7ZzpiLY{^DIGv~WjyVsK~ z&I$x)rJAEv`69XfPPk=5B?({k#Yk;gRHO@j5q~Bf=!6hxt=v^H9#pYwtRhw7l=AYn zL6PsED$iNs-Jqwi%uc^(INejk@#WNEUH%Bven5JI7K;dIrwT%pY8#jO^v+O`N~)eD zu3Mxtw8E~DT%424ei4lFRsU0fwXD+QUjBwP7+pYgoW;$~p*DGY7oek~qAlY0qiI=r zIMny^HO<}&=S(Rtc{u{iG6dOv$kETFOSi~PeIo2OIduH(O?&csMTPCyhBfB#r;fL% zQ})^2n&Y#<`c{A7S$cc9WXnnywaP-47umWG#NnBT&mt}0-T5`9l?|Z6aHBlEoS$37 zVO6?_RJ(BOaZ&z^)o?ZKdM)M=Y9=bIwu}(VTu_k*+}>C(#ghW0HbnWB}KJ>a@)qCMdmdUN?X}A1xv7@`Xt&k`;iNCTn6Un+rc9w7iYD+%tJ*pI& zdJGBLqIHsYSQ8w H2$4@b0jUDbOInU0)C8|0+v`dZ##`fT3A?YmL7T2s>~X;9Qa zcS;Q<(VNNi4|neKjhzfyce47tL_*%)wc3-Mw>#^^`Jioc zY9eSjUu5+qtgr|Z34Lp)IYaOCxoMoj3REm=v^T4e6fSCoI@<)V=0YAkPU^e#QN6gl zw>ei`M)JgEtTE46aJ#WOU%=Vg@@PE1@457hMP$vrZx{d4~)HHw%@SZiT1g@G>Q;qoIVSP6m_nO2_BVVKWMlnd= zut1hcERh51HSxpf#Uv^S3|qiA_D3D=zKczl=JjFZQphVrL|_g%3txhYQa5`EQx3yH z#kHe*#88#(xKhGB`yC0a%f4Geslz@gy=o0UUIPXjvU@GnOm40U!Vh)%urSh`Zz)$R zHe&BK+&f_s@{UK*nLuuGHVqkEpdOAXaY@t=>}^h4x2}>dugwC_&Kf%#B-=QlzN8O` zCUl0WgU-#isB)6qCr*y3FUNv=^`KE-5++MporcV0#^DH$ARs4@EnA{1$bmkxbkFHx z-g46WSoKy%V|~-9r-a1~1P-3}CBAYW6vFl+ktXb|T8U}% z#@wAwd`qX6<`eERHodW;n?|zzD2)dV`7+q zOXmeknS3LbB*82{nA8`q_Bh7A(`{PKS=^ng2||Mm(AW4z`ocSn<9EJ z{&`{q_1p_d+(Tdtpwe!x38%{F9&$X_H0SbS^vCYHT}Q*VuIt>js3=7iKw1?a`X@=v zaO~LOe40z$F*;0~Uc7&fzG&ZBmv_)2pHGKDscx{Wi1mW<{&BTVXO*jHzPZ*&eL&3k z+$34o)Nt%MHGo{NFPwa;m%xfuF2#+<-1+!YbYMjX2gqBNEs;2jDJcI!!ev_5OB+IG~%@JwB?V<2wzRX=S+ zkOiWA{1D2_!?jj~)wd#@wqpK2MeUG6r>Ui zKY$c_F>OYl%1XBwti@OWimMLUOs)w>C%DgB>bzm%#-uty3+p8UygbF+x{%_>PuV z>d`S?SJoJ9oPpO0yVJx=irUY0t6?sOAL?3$u%V_0;#w{BE9MklT5rqtfq;wFYx_Ic zCva$2&g6QVAM%<>`Y>l5zsT=%VdwLq^n%YbvhN)s0UK@203!F*GkcCuY99xDimFX_)yj;@ zKP-Q#2p{%>R;u|cnVn(36bcM>1)1`ZE?B!zUwti{DJ}1y!4*L-UJk?Gj+NUsmyB;u zW-mQNkMOh?Rg||EHK`Z~9A%H&o}QI6`q>JOv6#z!X5coqb{F(TKJr~k@6o5Lv2&ou$Rtc`5N1f?y-}F|H6hGBRhM`w8_R9byZ{zI>;hPot$g zde45F+40L-UU8X!(6kmhc_IP5dP6>ua-M4LxKU#@RW0I0=;(gZLB@~-VB}p*?|%^tqIIAw4cP5+ z;)QDMTu*S?6U1?hKO1b@YCl6MY|`DC&B%&{6!wGr>)B0!jL0tw^e%JGpWo1T!pQY^ ztsH|_dci;K(&$rPd81yvOy7vTAo3!$)Mff@27dpT*N0Lb;8ll-++~Il!Y26~oIJ;**^Z4O*1AF!XxmFN{qmC-YQ?%`8Z+c|B zYW)*1C0Y;09wXD6qQup`V%h*79d=6&HH`mKzUT3@BV#xL*YWtFM|a(ZaxY-u9D8&O z{w{1N=V#~bD#_v%Gs?Cz=quKpK@6Q0OSwb((p0)t#IYUI(FNEFRx!)m`DtaMvTgIP z%qem>Tw{pX==@F7aXop&43P0gQiTpwL&xofsaG?j|K4dasY@bGsWV+mFBox^N$A zmt-b!roNn{B$0_CR*0nG7l6XZV4JnBra7qo5H>Bfgiuo4Py!Dwt zseAHpFVxKu)bVS=587K?-)8#PBIoMcncKY3i3BI|$BcntValz)@UucG4|t3+>=G~8 zWBvw*?B@mveZJV45*0etl@E*c*D$hv5XA&(p2pg73ZNZ`jw1BPBfKsD@Erw%R^ehR z9oFQ4X-l;1EI)DY{)lZ89JtUE@h5N#>AlmzYt*=e9*$&kddbct^=QIRU03{P$=EccWrB zanjxKSPCInkxWrBiL!i(XOH>xrpZ=QS)-1WxOy4h{XcV*-lAKSWiuO-aFKmnNKWq= z4r>IC-x)5s^gB`ZsSxeT!w(1Mh}g(CeQAe61CkOR%b3uX#buM*I((ihF-A1wnc*6w9w!-UbWUHwpJMT)Gq_7HPP57V@Yp}0GV-Z454_`0t)hU1z ztnJ^Sx*Y2h5gP1(*kWT%W+Gr4Kc$&EMM90tJw6q^XqId;I@b06n-0l`BPv0~Je!wym*nr{$l&`(W6sWyT({P}smjRx;g~IkBX0lC`ji zvS>dmb7ERLB90K(D;(KdsigbZ2StVgi2`?Q!f1%s;GZix&tCR!dPD3=h`ed0hiY&=pMzoXsbua!wu^~UmSkl+9KQ|yykn(wY}bzVg4wIH~vfa*YL!2 zQ4TxWG;*?kk*05EF#JVXRQYf8G_c`*Zm=e}GQsJsCOGo8KGh?t>-!x#rVh39_tpF2 zSkAq;51}rz6vY=jAM{*~xKq)sfYr-WQu1E*ePSodo*^S{t$xI3X58xrP$Ml=3ylUf zhkVOye$~7=rl>)|9jkMI-S@+DPu}n`K(G6u&rF>!X0gkSbvDf%qb5!&?Rwz4Myk`* z9;j*SqDtkO9C7Wc=V7Xe+iHv>O`kFwSff(_d1=D(w6=ZRa36^R*-@KD!oqWf&SA-t zaj^H#9Tqzc6fBC`mfCP2B=~fa>(=LOEd65m3hWFv8yEVB{`k2i1Jt<8Sgwahea`ge zxgBBytQI+yY?fO&7YiRrc4B27Qc+078?%ohV1N>Cy@|LCP`%&0ubd^TJO+#zC0)5>+9pKXEvQ4 zBrf8}zN0R$xFU$B3Uaaca|hMR?PA5$Rli=GC}e*s)HC1y#JRuu8GQh1)4!P}=KI-! zFQ6=B4M((zl3u3W-QMFeU{~er9IE+^4S(Kc4MuPrO>AE!P;k#52np|r$z921 zIPU1O?^TE8tfjbfF{Quiwi$kjNcLw!Z0yYehFywdU-ZC%^S9C^ALL`niN>MbqoQj2 zR8*K|!GOSbuR_uR6Xt4(&Yc}f_ep@Aa4gY~yraKVH^n}%0nmIErA^bNOTh>ulKFNstTy;k1nT_JtRcm^%uxg&0) zCTVG2sNs1>`$TV|<)R6!qIH9_MrdAhc)K;ozkE`9K%ZsBq6ylH4Pv`>=vXt2^C}q5 zQc!y)ghz9j3zx>zQ&kd}?)rJVb%^ykM|-@eQGu-)&t|)|KbTqh z-)MD#L62^FfPP|w@+d{68&|(-4-^mSzDS$JM&u*vcC??Z1TKmLto8G8IyC0jz zeGP@x*P`)cPkQC6S_0d*W&M$!%+g22So;6QNKXl`)l~xAQ0+l=gj+iKN756B&D(j0vPZLTklkAlkbw!RcJJB>DJPUG%HEojcY)wDOlEtP7m`Ipf%5yEOd$m#VJ1B=zqsOd1^_ znSIaMk7@M#TMbCCTnX#c>jgmbiVFnd;~PFxy;5N7$c2TFt5b$?&8$hI#1n=P!T58k zPY=COr^z&zX{={ z%*6jI8T3sH`k@8s#14PQ%BrS@5CSqH4`!Y-@kkIGYz9f;kC9~{Qe}l;8NMOOvylvT z5lqxjvc*hHXo7YQM^nSNU+xH^Dg)Av-9(TF!;mXdc?W@`>d@k^`FMD3*R|~I{$+XytFAP6s z4ZBoW><5-2J_}|1>DsERGAuUrF_vGUrLg3Io@AXtiZ=W-A)!V`>EVUbboSyf$T$+Y zOlx^@@pC?LSj=m=`8nGN6Pfk=?$rDTp+^^hstO<3=6)bH6hr!E?JZZ8uU9ka^}Ipi zx=e9_OR$sF*Kr&9X<3K0z&6vV%{h7;QH!{pg$anbv69+eX;o*UCUGcIZxEiS`lHRm zVq+*Bb|am@uU4^==1S4zu`hI7+P&R}GB(m=xDHnr*=N=*B7hbo=hGAG@z8i;M#reH zM!Xy13-7o7)`f|0{_g)5;Ia+*$VYe1bNr!g(R>-bTlyzm*Uk#1mn}jcep`tphUSM` zJR$w{dJQIrW~IGWWBC1iSq&x%&uNd*n_P=uFCPjTjmrs#kW$W*jbUi*Oru-!*XD3- zlfnrA>vq$N6roe^qhDCzVx*vApOv!Z`RPIcC#!vk4d1YxqtShj-4auG#&+rNirTk! z*R{XWe&cd+$?yqWo`>K>sl^7Zq16uG3J(R@5=z&wr$`1?l<4unY(7z%&K#$o>iyLbE?ii zb+Dhkvvxfh`ubNt)SPOMv-7*r`Bl&v4Alp*viSOSN_?g1#83o^&0S`S^WA1B#Nt|Q zF~qK494gcF8{A*YZ3f}Y=qG5}+K%h!S?$6v16LBH`}#${=+3d z63Bm=&l#gOk#29#ZUVzT7n|MSlj%k)bPuQd&b$6y9nsf&*oV%i zMj%^DahWX=#1;)_Bhz2vXqaQ$piNsIn+^XiXSof($83DJHhD8323S}8b4ov}y@!8E zBR^5WMnysGm$^MwLs+x-H9RonZ4>M(+UCvd%D1^OVs4p)Z^^eN=MPk8g|BuE4VdBY zM1X98vtZ*x*1F5h<^}pq|5g#o&F4*yeTmlj3zV3uNB1yWv5jp1>t+7F{p zNxS*G_M@40x%{{>oX*r3Gmjb#8(S#R;zP7^TG~nJc8<~#I%P0}A{S#Ky>*VlJCBp4 zsL^yjChn!331;@^TewQA`MnCBqG4}j_7I*S8Hv%88j>)R$bn4HRdeT6T-#F3Kb&qz1MwP4; z0d&ZNIIDeh_J_shywNoCL(~@}zRdU*gcb8mfr*O>5)!2ZybXCn7bHd8=rD~EDTDSa z=J334WI}a64J!G=d5?I4{FUuA99!x*$kSUrF2cJ-!kY8i@?0pQBZlBawQJdSZQ-EY ztSY)Yaqt3m+`eg0%baJO%;8^BoVPv9V=?F3M`EZ{s8yeEH*Y8ESKss1BbRL0R}SeftH zHMn);QD;Q)H~ksRuuLJO*e>T)M^X0eXG0Z=E7m|#vVG1lSSdrZos%Zi7AG$8G-_Cr zcm^+ABInnEmu>@sRuTU^W*>;`7%2#YVPN|QDWzfFk5xp3h`DBlh(It>hr#+flc=g4 zw+Lu(2EF%Ro(=Zj(Jxc2e0)J{Jc{<2J6{~8&UyAKif+wp{^;fYy8+NyRA?qZZVRg! z$RdkH%JiJYKdab=xK!H9yPyDJtt^)C97FQ1`)hnR#mXD;0 zEL0&GCibR)+>7~fnYFTIt&HVz_?hWB={m`OG|tafi%zc9lrozNq{W0fu7{>xNhD#= zWUo1aiDHpkX}Suq7LWTz46dXJH{h$T{c2h>$dLN$w}SSD%n5(Gc)VxxX$_b0KvfYi z?z~?ZA4kytL{vnpp=`Hroy!kj-M_^{bP}K4h&tnPfb_T zxN+XJxacK7G?ADp)?0u9S*IMGxd2-QqaGBqUoMHpz-%QA8#v?C1WI~j0xX^khz&Z7 zy)bx#jSty)>LlnNPY;z{Q6(*UzU~hhX4~#>Y3T>nhbPSJG)q}j_A~}@phw&&X@K_+ z35l4Xl2+LGGs}6v0NBUWHSi3qet{xueip079=IDyrRt%MR7Gw!ZQD=07R1Nn7^PLn zRBK!1AMEp);!_;)@H{Pt|7hwMugKEQ)eJ#bAE~W8JC03nxJ$Me8__x&=_*4ure6?B z><6VfYn7~#krgkXF>PARm)ub!AvVJU4X%wTjydVU{}BAsla+==+bR# zYK$TzMU>SS-a}}GIogMz3h%ZL?^;qzXl>gGEl&`4x~vzaw{%xkx{i(dd=5)W9R|iV>pmv2W_WPLA0h0(j!;s2p9K0f8y7*{XKT4ddT0X#p>hTn0*~t`v+Dv z>I!zP-b|ENI32b3CGMT0m;N@EZk^vC?K+F#(4$4uf=+1y#duCAVv2Ec2IrI>H0i}x zGp2jyXN0nGqh^9VUY3{O1S(f0y6BrDkVa=s&Y?)%U^Vw_c)7;exLQP zPt`5@u-p)=tU2X-7~CIcBjNfvyf;c{49A%oOFyP;!fDQhhag`Ps zhAm8BFC6vy9Vw4WT4^|hft6yfnLA!rg&s&aKe@zq@+eO$GMZ2LwDjlX?7HkL_C zd&Y@>n#I$B+ZqCCI^Au=Ju^GWTwAIVIG<_#}u`J^*hZ~5ImSP3nU%m z6%kX$h$$vuR6^kf3;|WO2?)jb_mIBw0Z(`LY;s0bp+j!V@Z&1h4zY92SoNYioM6{{ z?}qCrRWS8KkIh9L&ShoUF|v(@Zw+pY{yM8e60(vxt03b*+>-7Gbr!9oj zNz%}DV-+5+JN=4cRWqY*&fw1_;#SVc_z1ydLOU~t*wM(o!S^}j?xV@(8t4KQVi7|$ z{*j`b3(A!StR`d?h#Sjb?sq=U23@q1wgI2YPS-IH%CkFO^Azj&+S&9FXnTa_8|0!c5(y#QB zWcn9%siZGs4PT<0EmCaGZCwDIk)j%Ehe*U{Mcu#f`J}n7+mQOX;jPY!g8l?S01icNMjAs>^0))V=B#p_rp@T-)B!kCbC4X9DSD1|+!v zjAcFfH&^qfFyw|zAo^D8T7Dxx@Q@;s~)NUe^%>eJr=QRHi34@faOc0SRi+S;h{RIF$-6*Nz z_vOPlLm=dmYk+Of(n92^m_UA3Izh;Mkb6`Wm3;EM-_yvwIrAmEnrhQV+dm) z@6`051i>EKRfyQE+v8L9{bIyoeQB(XX@@?vI^05>>~3qqapyyxg>gkr2XL{ooaOyZ zrisc7xrpo1*en1*c(!=5NaeYt4I9;lWWm{t3n5qMCcj{NUl?h8)nvbQ6EH_JeAc^%3Zv&=AAk%=a19MDq*^j3`L4W+lE5nd=RR@} z_5ZW^P6c|$BGbbjSIlHdCCf~Ao8|QUb^;^P6_SSi!gyE{h4fTIz&b3*$NArmd@);y zdODagLjJEF-?#iKf>x|qD+j!q-yLbPV!56jX+{(*Z%eHukx7lh|xec0@} zP67mvZkLV<1d)JTd@lX5IU$<(f9~ddcAjX|w_Ls62d{Vmh=2LvP|f~AUh)#x5u})A`Cc`DDcIr-3iuDAz5Nd|+50Tu3PIEVr$A zEX!8%mUz%znESCik?{^ReLX!ZmMcrs;kVcgyxF6r8y&2lWuf4Tdc?%Sz})w|b#Po? zDX0&OOCt+5D=cYM%8E|hH;{T90N3`)4dDAjyF?!ezj*Y zLBjkhL;+TVfOn$)f)RB~W=eYA=7kC{^^GQ_adovY0

    ?iCU53vB4ey$&iIwZLrTS7Q;t7kf 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

    75*hi~__22lUJ2BCTXTdgaUHWDFuQ6tJG($=&Xz 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�j+6 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 z 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 z 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�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 z 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�d<)`Gn4NL8p6tJ>*r(MbId#*T;5Dfu7mXAvPy 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 Q-(10vlTwyMh#Lm{KU9c+tpET3 literal 0 HcmV?d00001 diff --git a/docs/code-docs/source/index.rst b/docs/code-docs/source/index.rst index 67d5aa5fe9fb..93ebccaf0de2 100644 --- a/docs/code-docs/source/index.rst +++ b/docs/code-docs/source/index.rst @@ -71,7 +71,7 @@ Optimizers optimizers Learning Rate Schedulers --------------------- +------------------------ .. toctree:: :maxdepth: 2 diff --git a/docs/code-docs/source/inference-engine.rst b/docs/code-docs/source/inference-engine.rst index 00a745fd7078..67df1e9c314d 100644 --- a/docs/code-docs/source/inference-engine.rst +++ b/docs/code-docs/source/inference-engine.rst @@ -1,5 +1,5 @@ Inference API -============ +============= :func:`deepspeed.init_inference` returns an *inference engine* of type :class:`InferenceEngine`. diff --git a/docs/code-docs/source/initialize.rst b/docs/code-docs/source/initialize.rst index 492c42fe9ef6..dd69a5dec4d2 100644 --- a/docs/code-docs/source/initialize.rst +++ b/docs/code-docs/source/initialize.rst @@ -38,7 +38,7 @@ Example usage: .. autofunction:: deepspeed.initialize Distributed Initialization ------------------------ +-------------------------- Optional distributed backend initialization separate from ``deepspeed.initialize()``. Useful in scenarios where the user wants to use torch distributed calls before calling ``deepspeed.initialize()``, such as when using model parallelism, pipeline parallelism, or certain data loader scenarios. .. autofunction:: deepspeed.init_distributed diff --git a/docs/code-docs/source/model-checkpointing.rst b/docs/code-docs/source/model-checkpointing.rst index 85f7c7947a60..ac72d368c9d3 100644 --- a/docs/code-docs/source/model-checkpointing.rst +++ b/docs/code-docs/source/model-checkpointing.rst @@ -52,5 +52,5 @@ Parallelism techniques such as ZeRO data parallelism (DP), Tensor parallelism (T optimizer states make it difficult to resume training with a checkpoint that was created on a different number of GPUs. DeepSpeed provides the Universal Checkpoint mechanism to address this problem. Universal Checkpoints give users the flexibility of changing the number of GPUs when training with 3D (TP, PP, and DP) parallelism, and enables more efficient use of elastic training hardware. The easiest way to get started with -using Universal Checkpoints is to consult the `Megatron-DeepSpeed `_ +using Universal Checkpoints is to consult the `Megatron-DeepSpeed `_ and `BLOOM `_ examples. diff --git a/docs/code-docs/source/moe.rst b/docs/code-docs/source/moe.rst index 10634a27b949..097a4b0bc27d 100644 --- a/docs/code-docs/source/moe.rst +++ b/docs/code-docs/source/moe.rst @@ -1,5 +1,5 @@ Mixture of Experts (MoE) -==================== +======================== Layer specification -------------------- diff --git a/docs/code-docs/source/monitor.rst b/docs/code-docs/source/monitor.rst index d286af23f09e..b185ed433c1c 100644 --- a/docs/code-docs/source/monitor.rst +++ b/docs/code-docs/source/monitor.rst @@ -9,15 +9,15 @@ overview of what DeepSpeed will log automatically. :header: "Field", "Description", "Condition" :widths: 20, 20, 10 - `Train/Samples/train_loss`,The training loss.,None - `Train/Samples/lr`,The learning rate during training.,None - `Train/Samples/loss_scale`,The loss scale when training using `fp16`.,`fp16` must be enabled. - `Train/Eigenvalues/ModelBlockParam_{i}`,Eigen values per param block.,`eigenvalue` must be enabled. - `Train/Samples/elapsed_time_ms_forward`,The global duration of the forward pass.,`flops_profiler.enabled` or `wall_clock_breakdown`. - `Train/Samples/elapsed_time_ms_backward`,The global duration of the forward pass.,`flops_profiler.enabled` or `wall_clock_breakdown`. - `Train/Samples/elapsed_time_ms_backward_inner`,The backward time that does not include the gradient reduction time. Only in cases where the gradient reduction is not overlapped, if it is overlapped then the inner time should be about the same as the entire backward time.,`flops_profiler.enabled` or `wall_clock_breakdown`. - `Train/Samples/elapsed_time_ms_backward_allreduce`,The global duration of the allreduce operation.,`flops_profiler.enabled` or `wall_clock_breakdown`. - `Train/Samples/elapsed_time_ms_step`,The optimizer step time,`flops_profiler.enabled` or `wall_clock_breakdown`. + `Train/Samples/train_loss`,"The training loss.",None + `Train/Samples/lr`,"The learning rate during training.",None + `Train/Samples/loss_scale`,"The loss scale when training using `fp16`.",`fp16` must be enabled. + `Train/Eigenvalues/ModelBlockParam_{i}`,"Eigen values per param block.",`eigenvalue` must be enabled. + `Train/Samples/elapsed_time_ms_forward`,"The global duration of the forward pass.",`flops_profiler.enabled` or `wall_clock_breakdown`. + `Train/Samples/elapsed_time_ms_backward`,"The global duration of the forward pass.",`flops_profiler.enabled` or `wall_clock_breakdown`. + `Train/Samples/elapsed_time_ms_backward_inner`,"The backward time that does not include the gradient reduction time. Only in cases where the gradient reduction is not overlapped, if it is overlapped then the inner time should be about the same as the entire backward time.",`flops_profiler.enabled` or `wall_clock_breakdown`. + `Train/Samples/elapsed_time_ms_backward_allreduce`,"The global duration of the allreduce operation.",`flops_profiler.enabled` or `wall_clock_breakdown`. + `Train/Samples/elapsed_time_ms_step`,"The optimizer step time.",`flops_profiler.enabled` or `wall_clock_breakdown`. TensorBoard ----------- @@ -29,6 +29,11 @@ WandB .. _WandbConfig: .. autopydantic_model:: deepspeed.monitor.config.WandbConfig +Comet +----- +.. _CometConfig: +.. autopydantic_model:: deepspeed.monitor.config.CometConfig + CSV Monitor ----------- .. _CSVConfig: diff --git a/docs/code-docs/source/schedulers.rst b/docs/code-docs/source/schedulers.rst index 5bc23ffb0acf..1bbe9594f77a 100755 --- a/docs/code-docs/source/schedulers.rst +++ b/docs/code-docs/source/schedulers.rst @@ -1,7 +1,7 @@ Learning Rate Schedulers -=================== +================================= -DeepSpeed offers implementations of ``LRRangeTest``, ``OneCycle``, ``WarmupLR``, ``WarmupDecayLR`` learning rate schedulers. When using a DeepSpeed's learning rate scheduler (specified in the `ds_config.json` file), DeepSpeed calls the `step()` method of the scheduler at every training step (when `model_engine.step()` is executed). When not using a DeepSpeed's learning rate scheduler: +DeepSpeed offers implementations of ``LRRangeTest``, ``OneCycle``, ``WarmupLR``, ``WarmupDecayLR``, ``WarmupCosineLR`` learning rate schedulers. When using a DeepSpeed's learning rate scheduler (specified in the `ds_config.json` file), DeepSpeed calls the `step()` method of the scheduler at every training step (when `model_engine.step()` is executed). When not using a DeepSpeed's learning rate scheduler: * if the schedule is supposed to execute at every training step, then the user can pass the scheduler to `deepspeed.initialize` when initializing the DeepSpeed engine and let DeepSpeed manage it for update or save/restore. * if the schedule is supposed to execute at any other interval (e.g., training epochs), then the user should NOT pass the scheduler to DeepSpeed during initialization and must manage it explicitly. @@ -23,3 +23,8 @@ WarmupLR WarmupDecayLR --------------------------- .. autoclass:: deepspeed.runtime.lr_schedules.WarmupDecayLR + + +WarmupCosineLR +--------------------------- +.. autoclass:: deepspeed.runtime.lr_schedules.WarmupCosineLR diff --git a/docs/code-docs/source/zero3.rst b/docs/code-docs/source/zero3.rst index 2a6a48ca91db..d97e05b367fa 100644 --- a/docs/code-docs/source/zero3.rst +++ b/docs/code-docs/source/zero3.rst @@ -10,7 +10,7 @@ communication efficiency. #. **ZeRO Stage 1**: The optimizer states (e.g., for `Adam optimizer `_, 32-bit weights, and the first, and second moment estimates) are partitioned across the processes, so that each process updates only its partition. -#. **ZeRO Stage 2**: The reduced 32-bit gradients for updating the model weights are also partitioned such that each process retains only the gradients corresponding to its portion of the optimizer states. +#. **ZeRO Stage 2**: The reduced 16-bit gradients for updating the model weights are also partitioned such that each process retains only the gradients corresponding to its portion of the optimizer states. #. **ZeRO Stage 3**: The 16-bit model parameters are partitioned across the processes. ZeRO-3 will automatically collect and partition them during the forward and backward passes. @@ -310,6 +310,7 @@ DeepSpeed can automatically detect the following external parameter scenarios: .. `Module.apply `_ + Overriding Module.apply =============================== A convenient mechanism for customizing model initialization is `Module.apply `_. @@ -369,13 +370,13 @@ These routines can be used in a training loop as shown in the following snippet. from deepspeed.utils import safe_get_full_fp32_param, safe_get_full_grad, safe_get_full_optimizer_state for n, lp in model.named_parameters(): # 1. Access the full states - # 1) gradient lookup + # 1.1) gradient lookup # For zero1 and zero2, gradient lookup must be called after `backward` and before `step` # For zero3, gradient lookup must be called after `backward` hp_grad = safe_get_full_grad(lp) - # 2) fp32 and optim states can probably be called anywhere in the training loop, but will be updated after `step` + # 1.2) fp32 and optim states can probably be called anywhere in the training loop, but will be updated after `step` hp = safe_get_full_fp32_param(lp) exp_avg = safe_get_full_optimizer_state(lp, "exp_avg") exp_avg_sq = safe_get_full_optimizer_state(lp, "exp_avg_sq") @@ -396,34 +397,39 @@ These routines can be used in a training loop as shown in the following snippet. Modifying Partitioned States ---------------------------- -Sometimes, a user may want to modify parameters or optimizer states outside of the regular training loop. This is currently difficult in ZeRO training because of partitioning. To overcome that, DeepSpeed provides the following routines for modifying the fp32 master parameters and the fp32 optimizer states. +Sometimes, a user may want to modify parameters, gradients, or optimizer states outside of the regular training loop. This is currently difficult in ZeRO training because of partitioning. To overcome that, DeepSpeed provides the following routines for modifying the fp32 master parameters and the fp32 optimizer states. .. autofunction:: deepspeed.utils.safe_set_full_fp32_param .. autofunction:: deepspeed.utils.safe_set_full_optimizer_state +.. autofunction:: deepspeed.utils.safe_set_full_grad + .. autofunction:: deepspeed.utils.safe_set_local_fp32_param +.. autofunction:: deepspeed.utils.safe_set_local_grad + .. autofunction:: deepspeed.utils.safe_set_local_optimizer_state -These routines can be used at any point after initialization of the DeepSpeed engine (i.e., ``deepspeed.initialize()``) as shown in the following snippet. +The routines for modifying parameters and optimizer states can be used at any point after initialization of the DeepSpeed engine (i.e., ``deepspeed.initialize()``) as shown in the following snippet. .. code-block:: python [...] + from deepspeed.runtime.zero.utils import is_zero_param from deepspeed.utils import safe_set_full_fp32_param, safe_set_full_optimizer_state from deepspeed.utils import safe_set_local_fp32_param, safe_set_local_optimizer_state # Here is an example to zero all the fp32 parameters and optimizer states. for n, lp in model.named_parameters(): - # 1. For zero stage 1 or 2, set the full fp32 and their full optim states - zero_tensor = torch.zeros_like(lp) + # 1. For zero stage 1, 2, or 3 set the full fp32 and their full optim states + zero_tensor = torch.zeros(lp.ds_shape) if is_zero_param(lp) else torch.zeros(lp.shape) safe_set_full_fp32_param(lp, zero_tensor) safe_get_full_optimizer_state(lp, zero_tensor, "exp_avg") safe_get_full_optimizer_state(lp, zero_tensor, "exp_avg_sq") # 2. For zero stage 3, each process sets its local fp32 parameters and their local optimizer states individually - zero_tensor_local = torch.zeros_like(lp.ds_tensor.shape) + zero_tensor_local = torch.zeros(lp.ds_tensor.shape) safe_set_local_fp32_param(lp, zero_tensor_local) safe_set_local_optimizer_state(lp, zero_tensor_local, "exp_avg") @@ -432,6 +438,31 @@ These routines can be used at any point after initialization of the DeepSpeed en [...] +The routines for modifying gradients can be used after ``backward`` but before ``step`` as shown in the following snippet. + +.. code-block:: python + + backward(loss) + [...] + from deepspeed.runtime.zero.utils import is_zero_param + from deepspeed.utils import safe_set_full_grad, safe_set_local_grad + # Here is an example of how to zero all the gradients. + for n, lp in model.named_parameters(): + # 1. For zero stage 1, 2, or 3 set the full gradient. + zero_tensor = torch.zeros(lp.ds_shape) if is_zero_param(lp) else torch.zeros(lp.shape) + + safe_set_full_grad(lp, zero_tensor) + + # 2. For zero stage 3, each process sets its local gradient partition. + zero_tensor_local = torch.zeros_like(lp.ds_tensor.shape) + + safe_set_local_grad(lp, zero_tensor_local) + + [...] + optimizer.step() + + + GPU Memory Management --------------------- @@ -456,3 +487,72 @@ The following code snippet illustrates this functionality. # Free GPU memory consumed by model parameters ds_engine.empty_partition_cache() + + +Offload States +-------------- + +The DeepSpeed engine maintains a set of states in device memory (e.g., CUDA memory). The following API allows you to offload these states to a different device (currently, only CPU memory is supported), reducing the memory footprint on the device. + +.. code-block:: python + + def offload_states(self, + include: Container[OffloadStateTypeEnum] = None, + device: OffloadDeviceEnum = OffloadDeviceEnum.cpu, + pin_memory: bool = True, + non_blocking: bool = False) -> None: + """Offload the engine's states to the specified device. + + Arguments: + include: Optional. The set of states to offload. If not provided, all states are offloaded. + device: Optional. The device to move the ZeRO optimizer buffers to. Currently only `OffloadDeviceEnum.cpu` is supported. + pin_memory: Optional. Whether to pin the memory of the offloaded states. + non_blocking: Optional. Whether to offload the states asynchronously. + """ + +You can selectively offload specific states by specifying the ``OffloadStateTypeEnum`` in the include argument. ``OffloadStateTypeEnum`` is an enum that defines the states that can be offloaded. The following states are supported: + +* ``OffloadStateTypeEnum.optim_states``: Optimizer states. Currently, only states of DeepSpeed's FusedAdam optimizer are supported. +* ``OffloadStateTypeEnum.hp_params``: FP32 parameters. +* ``OffloadStateTypeEnum.lp_params``: BF16/FP16 parameters. +* ``OffloadStateTypeEnum.lp_grads``: BF16/FP16 gradients. +* ``OffloadStateTypeEnum.contiguous_grad_buffer``: The contiguous gradient buffer for reduce operations. + +Note that offloading states comes with a trade-off between memory savings and computational overhead. This API allows states to be reloaded back into device memory when needed. + +.. code-block:: python + + def reload_states(self, non_blocking: bool = False) -> None: + """Reload the engine states to the original device. + + Arguments: + non_blocking: Optional. Whether to offload the states asynchronously. + """ + +Below is an example code snippet demonstrating how to offload FP32 parameters and optimizer states to CPU memory: + +.. code-block:: python + + # Offload after forward, backward, and step + ds_engine.offload_states(include=[OffloadStateTypeEnum.hp_params, OffloadStateTypeEnum.optim_states]) + + # Do something requiring a lot of device memory + ... + # Load states back to device memory + ds_engine.reload_states() + +``deepspeed.runtime.zero.offload_states.get_state_devices`` returns devices of the specified state. + +.. code-block:: python + + def get_state_devices(model, state: OffloadStateTypeEnum) -> Set[torch.device]: + """Retrieve the devices of the specified state of the model. + + Args: + model (DeepSpeedEngine): The model whose device allocations are to be checked. + state (OffloadStateTypeEnum): The specific state for which the devices should be retrieved. + + Returns: + Set[torch.device]: A set of devices of the specified state. + + """ diff --git a/docs/contributing.md b/docs/contributing.md index 7e55a183c75a..a1fa352e550a 100644 --- a/docs/contributing.md +++ b/docs/contributing.md @@ -27,7 +27,7 @@ and then repeat the previous `git commit` command. ## Testing DeepSpeed tracks two types of tests: unit tests and more costly model convergence tests. The model convergence tests train -[DeepSpeedExamples](https://github.com/microsoft/DeepSpeedExamples/) and measure +[DeepSpeedExamples](https://github.com/deepspeedai/DeepSpeedExamples/) and measure end-to-end convergence and related metrics. Unit tests are found in `tests/unit/` and the model convergence tests are found in `tests/model/`. @@ -44,10 +44,10 @@ tests. Note that [pytest-forked](https://github.com/pytest-dev/pytest-forked) an ### Model Tests Model tests require four GPUs and training data downloaded for -[DeepSpeedExamples](https://github.com/microsoft/DeepSpeedExamples/). +[DeepSpeedExamples](https://github.com/deepspeedai/DeepSpeedExamples/). To execute model tests, first [install DeepSpeed](/getting-started/#installation). The -[DeepSpeedExamples](https://github.com/microsoft/DeepSpeedExamples/) repository is cloned +[DeepSpeedExamples](https://github.com/deepspeedai/DeepSpeedExamples/) repository is cloned as part of this process. Next, execute the model test driver: ```bash cd tests/model/ diff --git a/docs/index.md b/docs/index.md index 2c18c80c6dae..6ce7e6251cbf 100755 --- a/docs/index.md +++ b/docs/index.md @@ -5,24 +5,28 @@ toc_label: "Contents" title: "Latest News" --- - DeepSpeed empowers ChatGPT-like model training with a single click, offering 15x speedup over SOTA RLHF systems with unprecedented cost reduction at all scales; [learn how](https://github.com/microsoft/DeepSpeed/tree/master/blogs/deepspeed-chat). + DeepSpeed empowers ChatGPT-like model training with a single click, offering 15x speedup over SOTA RLHF systems with unprecedented cost reduction at all scales; [learn how](https://github.com/deepspeedai/DeepSpeed/tree/master/blogs/deepspeed-chat). -* [2023/11] [DeepSpeed ZeRO-Offload++: 6x Higher Training Throughput via Collaborative CPU/GPU Twin-Flow](https://github.com/microsoft/DeepSpeed/tree/master/blogs/deepspeed-offloadpp) -* [2023/11] [DeepSpeed-FastGen: High-throughput Text Generation for LLMs via MII and DeepSpeed-Inference](https://github.com/microsoft/DeepSpeed/tree/master/blogs/deepspeed-fastgen) [[English](https://github.com/microsoft/DeepSpeed/tree/master/blogs/deepspeed-fastgen)] [[中文](https://github.com/microsoft/DeepSpeed/tree/master/blogs/deepspeed-fastgen/chinese/README.md)] [[日本語](https://github.com/microsoft/DeepSpeed/tree/master/blogs/deepspeed-fastgen/japanese/README.md)] -* [2023/10] [DeepSpeed-VisualChat: Improve Your Chat Experience with Multi-Round Multi-Image Inputs](https://github.com/microsoft/DeepSpeed/tree/master/blogs/deepspeed-visualchat/10-03-2023/README.md) [[English](https://github.com/microsoft/DeepSpeed/tree/master/blogs/deepspeed-visualchat/10-03-2023/README.md)] [[中文](https://github.com/microsoft/DeepSpeed/blob/master/blogs/deepspeed-visualchat/10-03-2023/README-Chinese.md)] [[日本語](https://github.com/microsoft/DeepSpeed/blob/master/blogs/deepspeed-visualchat/10-03-2023/README-Japanese.md)] -* [2023/09] Announcing the DeepSpeed4Science Initiative: Enabling large-scale scientific discovery through sophisticated AI system technologies [[DeepSpeed4Science website](https://deepspeed4science.ai/)] [[Tutorials](https://www.deepspeed.ai/deepspeed4science/)] [[White paper](https://arxiv.org/abs/2310.04610)] [[Blog](https://www.microsoft.com/en-us/research/blog/announcing-the-deepspeed4science-initiative-enabling-large-scale-scientific-discovery-through-sophisticated-ai-system-technologies/)] [[中文](https://github.com/microsoft/DeepSpeed/blob/master/blogs/deepspeed4science/chinese/README.md)] [[日本語](https://github.com/microsoft/DeepSpeed/blob/master/blogs/deepspeed4science/japanese/README.md)] -* [2023/08] [DeepSpeed ZeRO-Inference: 20x faster inference through weight quantization and KV cache offloading](https://github.com/microsoft/DeepSpeedExamples/blob/master/inference/huggingface/zero_inference/README.md) +* [2024/12] [DeepSpeed Domino: Communication-Free LLM Training Engine](https://github.com/deepspeedai/DeepSpeed/blob/master/blogs/deepspeed-domino/README.md) + +* [2024/08] [DeepSpeed on Windows](https://github.com/deepspeedai/DeepSpeed/blob/master/blogs/windows/08-2024/README.md)[[日本語](https://github.com/deepspeedai/DeepSpeed/blob/master/blogs/windows/08-2024/japanese/README.md)] [[中文](https://github.com/deepspeedai/DeepSpeed/blob/master/blogs/windows/08-2024/chinese/README.md)] + +* [2024/08] [DeepNVMe: Improving DL Applications through I/O Optimizations](https://github.com/deepspeedai/DeepSpeed/blob/master/blogs/deepspeed-gds/README.md)[[日本語](https://github.com/deepspeedai/DeepSpeed/blob/master/blogs/deepspeed-gds/japanese/README.md)] [[中文](https://github.com/deepspeedai/DeepSpeed/blob/master/blogs/deepspeed-gds/chinese/README.md)] +* [2024/07] [DeepSpeed Universal Checkpointing: Efficient and Flexible Checkpointing for Large Scale Distributed Training](https://github.com/deepspeedai/DeepSpeed/tree/master/blogs/deepspeed-ucp/README.md)[[日本語](https://github.com/deepspeedai/DeepSpeed/tree/master/blogs/deepspeed-ucp/japanese/README.md)] +* [2024/03] [DeepSpeed-FP6: The Power of FP6-Centric Serving for Large Language Models](https://github.com/deepspeedai/DeepSpeed/tree/master/blogs/deepspeed-fp6/03-05-2024/README.md) [[English](https://github.com/deepspeedai/DeepSpeed/tree/master/blogs/deepspeed-fp6/03-05-2024/README.md)] [[中文](https://github.com/deepspeedai/DeepSpeed/tree/master/blogs/deepspeed-fp6/03-05-2024/README-Chinese.md)] @@ -62,15 +66,15 @@ In line with Microsoft's mission to solve humanity's most pressing challenges, t ## DeepSpeed Library - The [DeepSpeed](https://github.com/microsoft/deepspeed) library implements and packages the innovations and technologies in DeepSpeed Training, Inference and Compression Pillars into a single easy-to-use, open-sourced repository. It allows for an easy composition of a multitude of features within a single training, inference or compression pipeline. The DeepSpeed Library is heavily adopted by the DL community, and has been used to enable some of the most powerful models (see [DeepSpeed Adoption](#deepspeed-adoption)). + The [DeepSpeed](https://github.com/deepspeedai/deepspeed) library implements and packages the innovations and technologies in DeepSpeed Training, Inference and Compression Pillars into a single easy-to-use, open-sourced repository. It allows for an easy composition of a multitude of features within a single training, inference or compression pipeline. The DeepSpeed Library is heavily adopted by the DL community, and has been used to enable some of the most powerful models (see [DeepSpeed Adoption](#deepspeed-adoption)). ## Model Implementations for Inference (MII) - [Model Implementations for Inference (MII)](https://github.com/microsoft/deepspeed-mii) is an open-sourced repository for making low-latency and high-throughput inference accessible to all data scientists by alleviating the need to apply complex system optimization techniques themselves. Out-of-box, MII offers support for thousands of widely used DL models, optimized using DeepSpeed-Inference, that can be deployed with a few lines of code, while achieving significant latency reduction compared to their vanilla open-sourced versions. + [Model Implementations for Inference (MII)](https://github.com/deepspeedai/deepspeed-mii) is an open-sourced repository for making low-latency and high-throughput inference accessible to all data scientists by alleviating the need to apply complex system optimization techniques themselves. Out-of-box, MII offers support for thousands of widely used DL models, optimized using DeepSpeed-Inference, that can be deployed with a few lines of code, while achieving significant latency reduction compared to their vanilla open-sourced versions. ## DeepSpeed on Azure - DeepSpeed users are diverse and have access to different environments. We recommend trying DeepSpeed on Azure as it is the simplest and easiest method. The recommended method to try DeepSpeed on Azure is through AzureML [recipes](https://github.com/Azure/azureml-examples/tree/main/python-sdk/workflows/train/deepspeed). The job submission and data preparation scripts have been made available [here](https://github.com/microsoft/Megatron-DeepSpeed/tree/main/examples_deepspeed/azureml). For more details on how to use DeepSpeed on Azure, please follow the [Azure tutorial](https://www.deepspeed.ai/tutorials/azure/). + DeepSpeed users are diverse and have access to different environments. We recommend trying DeepSpeed on Azure as it is the simplest and easiest method. The recommended method to try DeepSpeed on Azure is through AzureML [recipes](https://github.com/Azure/azureml-examples/tree/main/python-sdk/workflows/train/deepspeed). The job submission and data preparation scripts have been made available [here](https://github.com/deepspeedai/Megatron-DeepSpeed/tree/main/examples_deepspeed/azureml). For more details on how to use DeepSpeed on Azure, please follow the [Azure tutorial](https://www.deepspeed.ai/tutorials/azure/). # DeepSpeed Adoption @@ -90,8 +94,8 @@ DeepSpeed has been integrated with several different popular open-source DL fram | | Documentation | | ---------------------------------------------------------------------------------------------- | -------------------------------------------- | -| | [Transformers with DeepSpeed](https://huggingface.co/docs/transformers/main/main_classes/deepspeed) | -| | [Accelerate with DeepSpeed](https://huggingface.co/docs/accelerate/main/en/deepspeed) | +| | [Transformers with DeepSpeed](https://huggingface.co/docs/transformers/deepspeed) | +| | [Accelerate with DeepSpeed](https://huggingface.co/docs/accelerate/usage_guides/deepspeed) | | | [Lightning with DeepSpeed](https://pytorch-lightning.readthedocs.io/en/stable/api/pytorch_lightning.strategies.DeepSpeedStrategy.html) | | | [MosaicML with DeepSpeed](https://docs.mosaicml.com/en/latest/trainer/using_the_trainer.html?highlight=deepspeed#deepspeed-integration) | @@ -127,15 +131,15 @@ comments. 3. Minjia Zhang, Yuxiong He. (2020) Accelerating Training of Transformer-Based Language Models with Progressive Layer Dropping. [arXiv:2010.13369](https://arxiv.org/abs/2010.13369) and [NeurIPS 2020](https://proceedings.neurips.cc/paper/2020/hash/a1140a3d0df1c81e24ae954d935e8926-Abstract.html). 4. Jie Ren, Samyam Rajbhandari, Reza Yazdani Aminabadi, Olatunji Ruwase, Shuangyan Yang, Minjia Zhang, Dong Li, Yuxiong He. (2021) ZeRO-Offload: Democratizing Billion-Scale Model Training. [arXiv:2101.06840](https://arxiv.org/abs/2101.06840) and [USENIX ATC 2021](https://www.usenix.org/conference/atc21/presentation/ren-jie). [[paper]](https://arxiv.org/abs/2101.06840) [[slides]](https://www.usenix.org/system/files/atc21_slides_ren-jie.pdf) [[blog]](https://www.microsoft.com/en-us/research/blog/deepspeed-extreme-scale-model-training-for-everyone/) 5. Hanlin Tang, Shaoduo Gan, Ammar Ahmad Awan, Samyam Rajbhandari, Conglong Li, Xiangru Lian, Ji Liu, Ce Zhang, Yuxiong He. (2021) 1-bit Adam: Communication Efficient Large-Scale Training with Adam's Convergence Speed. [arXiv:2102.02888](https://arxiv.org/abs/2102.02888) and [ICML 2021](http://proceedings.mlr.press/v139/tang21a.html). -6. Samyam Rajbhandari, Olatunji Ruwase, Jeff Rasley, Shaden Smith, Yuxiong He. (2021) ZeRO-Infinity: Breaking the GPU Memory Wall for Extreme Scale Deep Learning. [arXiv:2104.07857](https://arxiv.org/abs/2104.07857) and [SC 2021](https://dl.acm.org/doi/abs/10.1145/3458817.3476205). [[paper]](https://arxiv.org/abs/2104.07857) [[slides]](https://github.com/microsoft/DeepSpeed/blob/master/docs/assets/files/SC21-ZeRO-Infinity.pdf) [[blog]](https://www.microsoft.com/en-us/research/blog/zero-infinity-and-deepspeed-unlocking-unprecedented-model-scale-for-deep-learning-training/) +6. Samyam Rajbhandari, Olatunji Ruwase, Jeff Rasley, Shaden Smith, Yuxiong He. (2021) ZeRO-Infinity: Breaking the GPU Memory Wall for Extreme Scale Deep Learning. [arXiv:2104.07857](https://arxiv.org/abs/2104.07857) and [SC 2021](https://dl.acm.org/doi/abs/10.1145/3458817.3476205). [[paper]](https://arxiv.org/abs/2104.07857) [[slides]](https://github.com/deepspeedai/DeepSpeed/blob/master/docs/assets/files/SC21-ZeRO-Infinity.pdf) [[blog]](https://www.microsoft.com/en-us/research/blog/zero-infinity-and-deepspeed-unlocking-unprecedented-model-scale-for-deep-learning-training/) 7. Conglong Li, Ammar Ahmad Awan, Hanlin Tang, Samyam Rajbhandari, Yuxiong He. (2021) 1-bit LAMB: Communication Efficient Large-Scale Large-Batch Training with LAMB's Convergence Speed. [arXiv:2104.06069](https://arxiv.org/abs/2104.06069) and [HiPC 2022](https://hipc.org/advance-program/). 8. Conglong Li, Minjia Zhang, Yuxiong He. (2021) The Stability-Efficiency Dilemma: Investigating Sequence Length Warmup for Training GPT Models. [arXiv:2108.06084](https://arxiv.org/abs/2108.06084) and [NeurIPS 2022](https://openreview.net/forum?id=JpZ5du_Kdh). 9. Yucheng Lu, Conglong Li, Minjia Zhang, Christopher De Sa, Yuxiong He. (2022) Maximizing Communication Efficiency for Large-scale Training via 0/1 Adam. [arXiv:2202.06009](https://arxiv.org/abs/2202.06009). -10. Samyam Rajbhandari, Conglong Li, Zhewei Yao, Minjia Zhang, Reza Yazdani Aminabadi, Ammar Ahmad Awan, Jeff Rasley, Yuxiong He. (2022) DeepSpeed-MoE: Advancing Mixture-of-Experts Inference and Training to Power Next-Generation AI Scale [arXiv:2201.05596](https://arxiv.org/abs/2201.05596) and [ICML 2022](https://proceedings.mlr.press/v162/rajbhandari22a.html). [[pdf]](https://arxiv.org/abs/2201.05596) [[slides]](https://github.com/microsoft/DeepSpeed/blob/master/docs/assets/files/ICML-5mins.pdf) [[blog]](https://www.microsoft.com/en-us/research/blog/deepspeed-advancing-moe-inference-and-training-to-power-next-generation-ai-scale/) +10. Samyam Rajbhandari, Conglong Li, Zhewei Yao, Minjia Zhang, Reza Yazdani Aminabadi, Ammar Ahmad Awan, Jeff Rasley, Yuxiong He. (2022) DeepSpeed-MoE: Advancing Mixture-of-Experts Inference and Training to Power Next-Generation AI Scale [arXiv:2201.05596](https://arxiv.org/abs/2201.05596) and [ICML 2022](https://proceedings.mlr.press/v162/rajbhandari22a.html). [[pdf]](https://arxiv.org/abs/2201.05596) [[slides]](https://github.com/deepspeedai/DeepSpeed/blob/master/docs/assets/files/ICML-5mins.pdf) [[blog]](https://www.microsoft.com/en-us/research/blog/deepspeed-advancing-moe-inference-and-training-to-power-next-generation-ai-scale/) 11. Shaden Smith, Mostofa Patwary, Brandon Norick, Patrick LeGresley, Samyam Rajbhandari, Jared Casper, Zhun Liu, Shrimai Prabhumoye, George Zerveas, Vijay Korthikanti, Elton Zhang, Rewon Child, Reza Yazdani Aminabadi, Julie Bernauer, Xia Song, Mohammad Shoeybi, Yuxiong He, Michael Houston, Saurabh Tiwary, Bryan Catanzaro. (2022) Using DeepSpeed and Megatron to Train Megatron-Turing NLG 530B, A Large-Scale Generative Language Model [arXiv:2201.11990](https://arxiv.org/abs/2201.11990). 12. Xiaoxia Wu, Zhewei Yao, Minjia Zhang, Conglong Li, Yuxiong He. (2022) Extreme Compression for Pre-trained Transformers Made Simple and Efficient. [arXiv:2206.01859](https://arxiv.org/abs/2206.01859) and [NeurIPS 2022](https://openreview.net/forum?id=xNeAhc2CNAl). -13. Zhewei Yao, Reza Yazdani Aminabadi, Minjia Zhang, Xiaoxia Wu, Conglong Li, Yuxiong He. (2022) ZeroQuant: Efficient and Affordable Post-Training Quantization for Large-Scale Transformers. [arXiv:2206.01861](https://arxiv.org/abs/2206.01861) and [NeurIPS 2022](https://openreview.net/forum?id=f-fVCElZ-G1) [[slides]](https://github.com/microsoft/DeepSpeed/blob/master/docs/assets/files/zeroquant_series.pdf) [[blog]](https://www.microsoft.com/en-us/research/blog/deepspeed-compression-a-composable-library-for-extreme-compression-and-zero-cost-quantization/) -14. Reza Yazdani Aminabadi, Samyam Rajbhandari, Minjia Zhang, Ammar Ahmad Awan, Cheng Li, Du Li, Elton Zheng, Jeff Rasley, Shaden Smith, Olatunji Ruwase, Yuxiong He. (2022) DeepSpeed Inference: Enabling Efficient Inference of Transformer Models at Unprecedented Scale. [arXiv:2207.00032](https://arxiv.org/abs/2207.00032) and [SC 2022](https://dl.acm.org/doi/abs/10.5555/3571885.3571946). [[paper]](https://arxiv.org/abs/2207.00032) [[slides]](https://github.com/microsoft/DeepSpeed/blob/master/docs/assets/files/sc22-ds-inference.pdf) [[blog]](https://www.microsoft.com/en-us/research/blog/deepspeed-accelerating-large-scale-model-inference-and-training-via-system-optimizations-and-compression/) +13. Zhewei Yao, Reza Yazdani Aminabadi, Minjia Zhang, Xiaoxia Wu, Conglong Li, Yuxiong He. (2022) ZeroQuant: Efficient and Affordable Post-Training Quantization for Large-Scale Transformers. [arXiv:2206.01861](https://arxiv.org/abs/2206.01861) and [NeurIPS 2022](https://openreview.net/forum?id=f-fVCElZ-G1) [[slides]](https://github.com/deepspeedai/DeepSpeed/blob/master/docs/assets/files/zeroquant_series.pdf) [[blog]](https://www.microsoft.com/en-us/research/blog/deepspeed-compression-a-composable-library-for-extreme-compression-and-zero-cost-quantization/) +14. Reza Yazdani Aminabadi, Samyam Rajbhandari, Minjia Zhang, Ammar Ahmad Awan, Cheng Li, Du Li, Elton Zheng, Jeff Rasley, Shaden Smith, Olatunji Ruwase, Yuxiong He. (2022) DeepSpeed Inference: Enabling Efficient Inference of Transformer Models at Unprecedented Scale. [arXiv:2207.00032](https://arxiv.org/abs/2207.00032) and [SC 2022](https://dl.acm.org/doi/abs/10.5555/3571885.3571946). [[paper]](https://arxiv.org/abs/2207.00032) [[slides]](https://github.com/deepspeedai/DeepSpeed/blob/master/docs/assets/files/sc22-ds-inference.pdf) [[blog]](https://www.microsoft.com/en-us/research/blog/deepspeed-accelerating-large-scale-model-inference-and-training-via-system-optimizations-and-compression/) 15. Zhewei Yao, Xiaoxia Wu, Conglong Li, Connor Holmes, Minjia Zhang, Cheng Li, Yuxiong He. (2022) Random-LTD: Random and Layerwise Token Dropping Brings Efficient Training for Large-scale Transformers. [arXiv:2211.11586](https://arxiv.org/abs/2211.11586). 16. Conglong Li, Zhewei Yao, Xiaoxia Wu, Minjia Zhang, Yuxiong He. (2022) DeepSpeed Data Efficiency: Improving Deep Learning Model Quality and Training Efficiency via Efficient Data Sampling and Routing. [arXiv:2212.03597](https://arxiv.org/abs/2212.03597) [ENLSP2023 Workshop at NeurIPS2023](https://neurips2023-enlsp.github.io/) 17. Xiaoxia Wu, Cheng Li, Reza Yazdani Aminabadi, Zhewei Yao, Yuxiong He. (2023) Understanding INT4 Quantization for Transformer Models: Latency Speedup, Composability, and Failure Cases. [arXiv:2301.12017](https://arxiv.org/abs/2301.12017) and [ICML2023](https://icml.cc/Conferences/2023). @@ -144,13 +148,15 @@ comments. 20. Quentin Anthony, Ammar Ahmad Awan, Jeff Rasley, Yuxiong He, Aamir Shafi, Mustafa Abduljabbar, Hari Subramoni, Dhabaleswar Panda. (2023) MCR-DL: Mix-and-Match Communication Runtime for Deep Learning [arXiv:2303.08374](https://arxiv.org/abs/2303.08374) and will appear at IPDPS 2023. 21. Siddharth Singh, Olatunji Ruwase, Ammar Ahmad Awan, Samyam Rajbhandari, Yuxiong He, Abhinav Bhatele. (2023) A Hybrid Tensor-Expert-Data Parallelism Approach to Optimize Mixture-of-Experts Training [arXiv:2303.06318](https://arxiv.org/abs/2303.06318) and will appear at ICS 2023. 22. Guanhua Wang, Heyang Qin, Sam Ade Jacobs, Xiaoxia Wu, Connor Holmes, Zhewei Yao, Samyam Rajbhandari, Olatunji Ruwase, Feng Yan, Lei Yang, Yuxiong He. (2023) ZeRO++: Extremely Efficient Collective Communication for Giant Model Training [arXiv:2306.10209](https://arxiv.org/abs/2306.10209) and [ML for Sys Workshop at NeurIPS2023](http://mlforsystems.org/) [[blog]](https://www.microsoft.com/en-us/research/blog/deepspeed-zero-a-leap-in-speed-for-llm-and-chat-model-training-with-4x-less-communication/) -23. Zhewei Yao, Xiaoxia Wu, Cheng Li, Stephen Youn, Yuxiong He. (2023) ZeroQuant-V2: Exploring Post-training Quantization in LLMs from Comprehensive Study to Low Rank Compensation [arXiv:2303.08302](https://arxiv.org/abs/2303.08302) and [ENLSP2023 Workshop at NeurIPS2023](https://neurips2023-enlsp.github.io/) [[slides]](https://github.com/microsoft/DeepSpeed/blob/master/docs/assets/files/zeroquant_series.pdf) +23. Zhewei Yao, Xiaoxia Wu, Cheng Li, Stephen Youn, Yuxiong He. (2023) ZeroQuant-V2: Exploring Post-training Quantization in LLMs from Comprehensive Study to Low Rank Compensation [arXiv:2303.08302](https://arxiv.org/abs/2303.08302) and [ENLSP2023 Workshop at NeurIPS2023](https://neurips2023-enlsp.github.io/) [[slides]](https://github.com/deepspeedai/DeepSpeed/blob/master/docs/assets/files/zeroquant_series.pdf) 24. Pareesa Ameneh Golnari, Zhewei Yao, Yuxiong He. (2023) Selective Guidance: Are All the Denoising Steps of Guided Diffusion Important? [arXiv:2305.09847](https://arxiv.org/abs/2305.09847) 25. Zhewei Yao, Reza Yazdani Aminabadi, Olatunji Ruwase, Samyam Rajbhandari, Xiaoxia Wu, Ammar Ahmad Awan, Jeff Rasley, Minjia Zhang, Conglong Li, Connor Holmes, Zhongzhu Zhou, Michael Wyatt, Molly Smith, Lev Kurilenko, Heyang Qin, Masahiro Tanaka, Shuai Che, Shuaiwen Leon Song, Yuxiong He. (2023) DeepSpeed-Chat: Easy, Fast and Affordable RLHF Training of ChatGPT-like Models at All Scales [arXiv:2308.01320](https://arxiv.org/abs/2308.01320). -26. Xiaoxia Wu, Zhewei Yao, Yuxiong He. (2023) ZeroQuant-FP: A Leap Forward in LLMs Post-Training W4A8 Quantization Using Floating-Point Formats [arXiv:2307.09782](https://arxiv.org/abs/2307.09782) and [ENLSP2023 Workshop at NeurIPS2023](https://neurips2023-enlsp.github.io/) [[slides]](https://github.com/microsoft/DeepSpeed/blob/master/docs/assets/files/zeroquant_series.pdf) +26. Xiaoxia Wu, Zhewei Yao, Yuxiong He. (2023) ZeroQuant-FP: A Leap Forward in LLMs Post-Training W4A8 Quantization Using Floating-Point Formats [arXiv:2307.09782](https://arxiv.org/abs/2307.09782) and [ENLSP2023 Workshop at NeurIPS2023](https://neurips2023-enlsp.github.io/) [[slides]](https://github.com/deepspeedai/DeepSpeed/blob/master/docs/assets/files/zeroquant_series.pdf) 27. Zhewei Yao, Xiaoxia Wu, Conglong Li, Minjia Zhang, Heyang Qin, Olatunji Ruwase, Ammar Ahmad Awan, Samyam Rajbhandari, Yuxiong He. (2023) DeepSpeed-VisualChat: Multi-Round Multi-Image Interleave Chat via Multi-Modal Causal Attention [arXiv:2309.14327](https://arxiv.org/pdf/2309.14327.pdf) 28. Shuaiwen Leon Song, Bonnie Kruft, Minjia Zhang, Conglong Li, Shiyang Chen, Chengming Zhang, Masahiro Tanaka, Xiaoxia Wu, Jeff Rasley, Ammar Ahmad Awan, Connor Holmes, Martin Cai, Adam Ghanem, Zhongzhu Zhou, Yuxiong He, et al. (2023) DeepSpeed4Science Initiative: Enabling Large-Scale Scientific Discovery through Sophisticated AI System Technologies [arXiv:2310.04610](https://arxiv.org/abs/2310.04610) [[blog]](https://www.microsoft.com/en-us/research/blog/announcing-the-deepspeed4science-initiative-enabling-large-scale-scientific-discovery-through-sophisticated-ai-system-technologies/) 29. Zhewei Yao, Reza Yazdani Aminabadi, Stephen Youn, Xiaoxia Wu, Elton Zheng, Yuxiong He. (2023) ZeroQuant-HERO: Hardware-Enhanced Robust Optimized Post-Training Quantization Framework for W8A8 Transformers [arXiv:2310.17723](https://arxiv.org/abs/2310.17723) +30. Sam Ade Jacobs, Masahiro Tanaka, Chengming Zhang, Minjia Zhang, Reza Yazdani Aminadabi, Shuaiwen Leon Song, Samyam Rajbhandari, Yuxiong He. (2024) [System Optimizations for Enabling Training of Extreme Long Sequence Transformer Models](https://dl.acm.org/doi/10.1145/3662158.3662806) +31. Xinyu Lian, Sam Ade Jacobs, Lev Kurilenko, Masahiro Tanaka, Stas Bekman, Olatunji Ruwase, Minjia Zhang. (2024) Universal Checkpointing: Efficient and Flexible Checkpointing for Large Scale Distributed Training [arXiv:2406.18820](https://arxiv.org/abs/2406.18820) # Videos 1. DeepSpeed KDD 2020 Tutorial diff --git a/examples/README.md b/examples/README.md index 5dfc26c17613..c7ff01dcd2d4 100644 --- a/examples/README.md +++ b/examples/README.md @@ -2,8 +2,8 @@ If you are looking for examples using DeepSpeed please see the following resources: -1. [DeepSpeedExamples](https://github.com/microsoft/DeepSpeedExamples) -2. [Megatron-DeepSpeed](https://github.com/microsoft/Megatron-DeepSpeed) +1. [DeepSpeedExamples](https://github.com/deepspeedai/DeepSpeedExamples) +2. [Megatron-DeepSpeed](https://github.com/deepspeedai/Megatron-DeepSpeed) 3. [DeepSpeed + AzureML](https://github.com/Azure/azureml-examples/tree/main/v1/python-sdk/workflows/train/deepspeed) -4. [DeepSpeed + Hugging Face Transformers Integration](https://huggingface.co/docs/transformers/main_classes/deepspeed) +4. [DeepSpeed + Hugging Face Transformers Integration](https://huggingface.co/docs/transformers/deepspeed) 5. [DeepSpeed + PyTorch Lightning](https://lightning.ai/docs/pytorch/stable/api/lightning.pytorch.utilities.deepspeed.html) diff --git a/install.sh b/install.sh index 8d56afe40493..8be574c6ec1f 100755 --- a/install.sh +++ b/install.sh @@ -152,7 +152,7 @@ if [ ! -f $hostfile ]; then fi echo "Building deepspeed wheel" -python setup.py $VERBOSE bdist_wheel +python -m build $VERBOSE --wheel --no-isolation if [ "$local_only" == "1" ]; then echo "Installing deepspeed" diff --git a/op_builder/all_ops.py b/op_builder/all_ops.py index 9c41f35eaf1b..ff11ca180072 100644 --- a/op_builder/all_ops.py +++ b/op_builder/all_ops.py @@ -30,3 +30,4 @@ __op_builders__.append(builder) ALL_OPS = {op.name: op for op in __op_builders__ if op is not None} +accelerator_name = get_accelerator()._name diff --git a/op_builder/async_io.py b/op_builder/async_io.py index b55c821910b9..f29f88531a98 100644 --- a/op_builder/async_io.py +++ b/op_builder/async_io.py @@ -3,13 +3,14 @@ # DeepSpeed Team +import os import distutils.spawn import subprocess -from .builder import OpBuilder +from .builder import TorchCPUOpBuilder -class AsyncIOBuilder(OpBuilder): +class AsyncIOBuilder(TorchCPUOpBuilder): BUILD_VAR = "DS_BUILD_AIO" NAME = "async_io" @@ -19,44 +20,57 @@ def __init__(self): def absolute_name(self): return f'deepspeed.ops.aio.{self.NAME}_op' - def sources(self): - return [ - 'csrc/aio/py_lib/deepspeed_py_copy.cpp', 'csrc/aio/py_lib/py_ds_aio.cpp', - 'csrc/aio/py_lib/deepspeed_py_aio.cpp', 'csrc/aio/py_lib/deepspeed_py_aio_handle.cpp', - 'csrc/aio/py_lib/deepspeed_aio_thread.cpp', 'csrc/aio/common/deepspeed_aio_utils.cpp', - 'csrc/aio/common/deepspeed_aio_common.cpp', 'csrc/aio/common/deepspeed_aio_types.cpp', + def lib_sources(self): + src_list = [ + 'csrc/aio/py_lib/deepspeed_py_io_handle.cpp', 'csrc/aio/py_lib/deepspeed_py_aio.cpp', + 'csrc/aio/py_lib/deepspeed_py_aio_handle.cpp', 'csrc/aio/py_lib/deepspeed_aio_thread.cpp', + 'csrc/aio/common/deepspeed_aio_utils.cpp', 'csrc/aio/common/deepspeed_aio_common.cpp', + 'csrc/aio/common/deepspeed_aio_types.cpp', 'csrc/aio/py_lib/deepspeed_cpu_op.cpp', + 'csrc/aio/py_lib/deepspeed_aio_op_desc.cpp', 'csrc/aio/py_lib/deepspeed_py_copy.cpp', 'csrc/aio/py_lib/deepspeed_pin_tensor.cpp' ] + return src_list + + def sources(self): + return self.lib_sources() + ['csrc/aio/py_lib/py_ds_aio.cpp'] def include_paths(self): - return ['csrc/aio/py_lib', 'csrc/aio/common'] + import torch + if self.build_for_cpu: + CUDA_INCLUDE = [] + elif not self.is_rocm_pytorch(): + CUDA_INCLUDE = [os.path.join(torch.utils.cpp_extension.CUDA_HOME, "include")] + else: + CUDA_INCLUDE = [ + os.path.join(torch.utils.cpp_extension.ROCM_HOME, "include"), + os.path.join(torch.utils.cpp_extension.ROCM_HOME, "include", "rocrand"), + os.path.join(torch.utils.cpp_extension.ROCM_HOME, "include", "hiprand"), + ] + return ['csrc/aio/py_lib', 'csrc/aio/common'] + CUDA_INCLUDE def cxx_args(self): # -O0 for improved debugging, since performance is bound by I/O - CPU_ARCH = self.cpu_arch() - SIMD_WIDTH = self.simd_width() - import torch # Keep this import here to avoid errors when building DeepSpeed wheel without torch installed + args = super().cxx_args() + import torch TORCH_MAJOR, TORCH_MINOR = map(int, torch.__version__.split('.')[0:2]) - if TORCH_MAJOR >= 2 and TORCH_MINOR >= 1: - CPP_STD = '-std=c++17' - else: - CPP_STD = '-std=c++14' - return [ - '-g', - '-Wall', - '-O0', - CPP_STD, - '-shared', - '-fPIC', - '-Wno-reorder', - CPU_ARCH, - '-fopenmp', - SIMD_WIDTH, - '-laio', - ] + if not (TORCH_MAJOR >= 2 and TORCH_MINOR >= 1): + args.remove('-std=c++17') + args.append('-std=c++14') + args += ['-Wall', '-O0', '-shared', '-fPIC', '-Wno-reorder'] + return args def extra_ldflags(self): - return ['-laio'] + if self.build_for_cpu: + return ['-fopenmp'] + + import torch.utils.cpp_extension + CUDA_HOME = torch.utils.cpp_extension.CUDA_HOME + if CUDA_HOME is None: + ldflags = ['-laio'] # the ROCM case + else: + CUDA_LIB64 = os.path.join(CUDA_HOME, "lib64") + ldflags = [f'-L{CUDA_HOME}', f'-L{CUDA_LIB64}', '-laio', '-lcuda', '-lcudart'] + return ldflags def check_for_libaio_pkg(self): libs = dict( @@ -70,8 +84,8 @@ def check_for_libaio_pkg(self): flag, lib, tool = data path = distutils.spawn.find_executable(pkgmgr) if path is not None: - cmd = f"{pkgmgr} {flag} {lib}" - result = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True) + cmd = [pkgmgr, flag, lib] + result = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) if result.wait() == 0: found = True else: @@ -79,13 +93,13 @@ def check_for_libaio_pkg(self): break return found - def is_compatible(self, verbose=True): + def is_compatible(self, verbose=False): # Check for the existence of libaio by using distutils # to compile and link a test program that calls io_submit, # which is a function provided by libaio that is used in the async_io op. # If needed, one can define -I and -L entries in CFLAGS and LDFLAGS # respectively to specify the directories for libaio.h and libaio.so. - aio_compatible = self.has_function('io_pgetevents', ('aio', )) + aio_compatible = self.has_function('io_submit', ('aio', )) if verbose and not aio_compatible: self.warning(f"{self.NAME} requires the dev libaio .so object and headers but these were not found.") diff --git a/op_builder/builder.py b/op_builder/builder.py index 3613791c938d..9b721e110fcc 100644 --- a/op_builder/builder.py +++ b/op_builder/builder.py @@ -4,6 +4,7 @@ # DeepSpeed Team import os +import re import sys import time import importlib @@ -60,13 +61,20 @@ def installed_cuda_version(name=""): def get_default_compute_capabilities(): compute_caps = DEFAULT_COMPUTE_CAPABILITIES + # Update compute capability according to: https://en.wikipedia.org/wiki/CUDA#GPUs_supported import torch.utils.cpp_extension - if torch.utils.cpp_extension.CUDA_HOME is not None and installed_cuda_version()[0] >= 11: - if installed_cuda_version()[0] == 11 and installed_cuda_version()[1] == 0: - # Special treatment of CUDA 11.0 because compute_86 is not supported. - compute_caps += ";8.0" - else: - compute_caps += ";8.0;8.6" + if torch.utils.cpp_extension.CUDA_HOME is not None: + if installed_cuda_version()[0] == 11: + if installed_cuda_version()[1] >= 0: + compute_caps += ";8.0" + if installed_cuda_version()[1] >= 1: + compute_caps += ";8.6" + if installed_cuda_version()[1] >= 8: + compute_caps += ";9.0" + elif installed_cuda_version()[0] == 12: + compute_caps += ";8.0;8.6;9.0" + if installed_cuda_version()[1] >= 8: + compute_caps += ";10.0;12.0" return compute_caps @@ -75,7 +83,8 @@ def get_default_compute_capabilities(): cuda_minor_mismatch_ok = { 10: ["10.0", "10.1", "10.2"], 11: ["11.0", "11.1", "11.2", "11.3", "11.4", "11.5", "11.6", "11.7", "11.8"], - 12: ["12.0", "12.1", "12.2", "12.3"], + 12: ["12.0", "12.1", "12.2", "12.3", "12.4", "12.5", "12.6", + "12.8"], # There does not appear to be a CUDA Toolkit 12.7 } @@ -107,7 +116,10 @@ def assert_no_cuda_mismatch(name=""): class OpBuilder(ABC): _rocm_version = None + _rocm_gpu_arch = None + _rocm_wavefront_size = None _is_rocm_pytorch = None + _is_sycl_enabled = None _loaded_ops = {} def __init__(self, name): @@ -135,6 +147,9 @@ def sources(self): def hipify_extension(self): pass + def sycl_extension(self): + pass + @staticmethod def validate_torch_version(torch_info): install_torch_version = torch_info['version'] @@ -186,6 +201,22 @@ def is_rocm_pytorch(): OpBuilder._is_rocm_pytorch = _is_rocm_pytorch return OpBuilder._is_rocm_pytorch + @staticmethod + def is_sycl_enabled(): + if OpBuilder._is_sycl_enabled is not None: + return OpBuilder._is_sycl_enabled + + _is_sycl_enabled = False + try: + result = subprocess.run(["c2s", "--version"], capture_output=True) + except: + pass + else: + _is_sycl_enabled = True + + OpBuilder._is_sycl_enabled = _is_sycl_enabled + return OpBuilder._is_sycl_enabled + @staticmethod def installed_rocm_version(): if OpBuilder._rocm_version: @@ -193,22 +224,68 @@ def installed_rocm_version(): ROCM_MAJOR = '0' ROCM_MINOR = '0' + ROCM_VERSION_DEV_RAW = "" if OpBuilder.is_rocm_pytorch(): from torch.utils.cpp_extension import ROCM_HOME - rocm_ver_file = Path(ROCM_HOME).joinpath(".info/version-dev") + rocm_ver_file = Path(ROCM_HOME).joinpath(".info/version") if rocm_ver_file.is_file(): with open(rocm_ver_file, 'r') as file: ROCM_VERSION_DEV_RAW = file.read() elif "rocm" in torch.__version__: ROCM_VERSION_DEV_RAW = torch.__version__.split("rocm")[1] + if ROCM_VERSION_DEV_RAW != "": + ROCM_MAJOR = ROCM_VERSION_DEV_RAW.split('.')[0] + ROCM_MINOR = ROCM_VERSION_DEV_RAW.split('.')[1] else: + # Look in /usr/include/rocm-version.h + rocm_ver_file = Path("/usr/include/rocm_version.h") + if rocm_ver_file.is_file(): + with open(rocm_ver_file, 'r') as file: + for ln in file.readlines(): + if "#define ROCM_VERSION_MAJOR" in ln: + ROCM_MAJOR = re.findall(r'\S+', ln)[2] + elif "#define ROCM_VERSION_MINOR" in ln: + ROCM_MINOR = re.findall(r'\S+', ln)[2] + if ROCM_MAJOR == '0': assert False, "Could not detect ROCm version" - assert ROCM_VERSION_DEV_RAW != "", "Could not detect ROCm version" - ROCM_MAJOR = ROCM_VERSION_DEV_RAW.split('.')[0] - ROCM_MINOR = ROCM_VERSION_DEV_RAW.split('.')[1] + OpBuilder._rocm_version = (int(ROCM_MAJOR), int(ROCM_MINOR)) return OpBuilder._rocm_version + @staticmethod + def get_rocm_gpu_arch(): + if OpBuilder._rocm_gpu_arch: + return OpBuilder._rocm_gpu_arch + rocm_info = Path("/opt/rocm/bin/rocminfo") + if (not rocm_info.is_file()): + rocm_info = Path("rocminfo") + rocm_gpu_arch_cmd = str(rocm_info) + " | grep -o -m 1 'gfx.*'" + try: + result = subprocess.check_output(rocm_gpu_arch_cmd, shell=True) + rocm_gpu_arch = result.decode('utf-8').strip() + except subprocess.CalledProcessError: + rocm_gpu_arch = "" + OpBuilder._rocm_gpu_arch = rocm_gpu_arch + return OpBuilder._rocm_gpu_arch + + @staticmethod + def get_rocm_wavefront_size(): + if OpBuilder._rocm_wavefront_size: + return OpBuilder._rocm_wavefront_size + + rocm_info = Path("/opt/rocm/bin/rocminfo") + if (not rocm_info.is_file()): + rocm_info = Path("rocminfo") + rocm_wavefront_size_cmd = str( + rocm_info) + " | grep -Eo -m1 'Wavefront Size:[[:space:]]+[0-9]+' | grep -Eo '[0-9]+'" + try: + result = subprocess.check_output(rocm_wavefront_size_cmd, shell=True) + rocm_wavefront_size = result.decode('utf-8').strip() + except subprocess.CalledProcessError: + rocm_wavefront_size = "32" + OpBuilder._rocm_wavefront_size = rocm_wavefront_size + return OpBuilder._rocm_wavefront_size + def include_paths(self): ''' Returns list of include paths, relative to root of deepspeed package (i.e., DeepSpeed/deepspeed) @@ -227,7 +304,7 @@ def cxx_args(self): ''' return [] - def is_compatible(self, verbose=True): + def is_compatible(self, verbose=False): ''' Check if all non-python dependencies are satisfied to build this op ''' @@ -236,7 +313,7 @@ def is_compatible(self, verbose=True): def extra_ldflags(self): return [] - def has_function(self, funcname, libraries, verbose=False): + def has_function(self, funcname, libraries, library_dirs=None, verbose=False): ''' Test for existence of a function within a tuple of libraries. @@ -292,7 +369,8 @@ def has_function(self, funcname, libraries, verbose=False): compiler.link_executable(objs, os.path.join(tempdir, 'a.out'), extra_preargs=self.strip_empty_entries(ldflags), - libraries=libraries) + libraries=libraries, + library_dirs=library_dirs) # Compile and link succeeded return True @@ -334,8 +412,8 @@ def cpu_arch(self): try: cpu_info = get_cpu_info() except Exception as e: - self.warning(f"{self.name} attempted to use `py-cpuinfo` but failed (exception type: {type(e)}, {e}), " - "falling back to `lscpu` to get this information.") + self.warning(f"{self.name} attempted to use py-cpuinfo but failed (exception type: {type(e)}, {e}), " + "falling back to lscpu to get this information.") cpu_info = self._backup_cpuinfo() if cpu_info is None: return "-march=native" @@ -345,10 +423,11 @@ def cpu_arch(self): return '-mcpu=native' return '-march=native' - def is_cuda_enable(self): + def get_cuda_compile_flag(self): try: - assert_no_cuda_mismatch(self.name) - return '-D__ENABLE_CUDA__' + if not self.is_rocm_pytorch(): + assert_no_cuda_mismatch(self.name) + return "-D__ENABLE_CUDA__" except MissingCUDAException: print(f"{WARNING} {self.name} cuda is missing or is incompatible with installed torch, " "only cpu ops can be compiled!") @@ -362,7 +441,7 @@ def _backup_cpuinfo(self): "to detect the CPU architecture. 'lscpu' does not appear to exist on " "your system, will fall back to use -march=native and non-vectorized execution.") return None - result = subprocess.check_output('lscpu', shell=True) + result = subprocess.check_output(['lscpu']) result = result.decode('utf-8').strip().lower() cpu_info = {} @@ -392,8 +471,8 @@ def simd_width(self): try: cpu_info = get_cpu_info() except Exception as e: - self.warning(f"{self.name} attempted to use `py-cpuinfo` but failed (exception type: {type(e)}, {e}), " - "falling back to `lscpu` to get this information.") + self.warning(f"{self.name} attempted to use py-cpuinfo but failed (exception type: {type(e)}, {e}), " + "falling back to lscpu to get this information.") cpu_info = self._backup_cpuinfo() if cpu_info is None: return '-D__SCALAR__' @@ -412,7 +491,8 @@ def command_exists(self, cmd): cmds = [cmd] valid = False for cmd in cmds: - result = subprocess.Popen(f'type {cmd}', stdout=subprocess.PIPE, shell=True) + safe_cmd = ["bash", "-c", f"type {cmd}"] + result = subprocess.Popen(safe_cmd, stdout=subprocess.PIPE) valid = valid or result.wait() == 0 if not valid and len(cmds) > 1: @@ -433,9 +513,10 @@ def deepspeed_src_path(self, code_path): def builder(self): from torch.utils.cpp_extension import CppExtension + include_dirs = [os.path.abspath(x) for x in self.strip_empty_entries(self.include_paths())] return CppExtension(name=self.absolute_name(), sources=self.strip_empty_entries(self.sources()), - include_dirs=self.strip_empty_entries(self.include_paths()), + include_dirs=include_dirs, extra_compile_args={'cxx': self.strip_empty_entries(self.cxx_args())}, extra_link_args=self.strip_empty_entries(self.extra_ldflags())) @@ -443,8 +524,9 @@ def load(self, verbose=True): if self.name in __class__._loaded_ops: return __class__._loaded_ops[self.name] - from deepspeed.git_version_info import installed_ops, torch_info - if installed_ops.get(self.name, False): + from deepspeed.git_version_info import installed_ops, torch_info, accelerator_name + from deepspeed.accelerator import get_accelerator + if installed_ops.get(self.name, False) and accelerator_name == get_accelerator()._name: # Ensure the op we're about to load was compiled with the same # torch/cuda versions we are currently using at runtime. self.validate_torch_version(torch_info) @@ -474,8 +556,8 @@ def jit_load(self, verbose=True): from torch.utils.cpp_extension import load start_build = time.time() - sources = [self.deepspeed_src_path(path) for path in self.sources()] - extra_include_paths = [self.deepspeed_src_path(path) for path in self.include_paths()] + sources = [os.path.abspath(self.deepspeed_src_path(path)) for path in self.sources()] + extra_include_paths = [os.path.abspath(self.deepspeed_src_path(path)) for path in self.include_paths()] # Torch will try and apply whatever CCs are in the arch list at compile time, # we have already set the intended targets ourselves we know that will be @@ -495,9 +577,12 @@ def jit_load(self, verbose=True): nvcc_args.append("-DBF16_AVAILABLE") nvcc_args.append("-U__CUDA_NO_BFLOAT16_OPERATORS__") nvcc_args.append("-U__CUDA_NO_BFLOAT162_OPERATORS__") + nvcc_args.append("-U__CUDA_NO_BFLOAT16_CONVERSIONS__") if self.is_rocm_pytorch(): cxx_args.append("-D__HIP_PLATFORM_AMD__=1") + os.environ["PYTORCH_ROCM_ARCH"] = self.get_rocm_gpu_arch() + cxx_args.append('-DROCM_WAVEFRONT_SIZE=%s' % self.get_rocm_wavefront_size()) op_module = load(name=self.name, sources=self.strip_empty_entries(sources), @@ -534,8 +619,8 @@ def compute_capability_args(self, cross_compile_archs=None): - `TORCH_CUDA_ARCH_LIST` may use ; or whitespace separators. Examples: - TORCH_CUDA_ARCH_LIST="6.1;7.5;8.6" pip install ... - TORCH_CUDA_ARCH_LIST="6.0 6.1 7.0 7.5 8.0 8.6+PTX" pip install ... + TORCH_CUDA_ARCH_LIST="6.1;7.5;8.6;9.0;10.0" pip install ... + TORCH_CUDA_ARCH_LIST="6.0 6.1 7.0 7.5 8.0 8.6 9.0 10.0+PTX" pip install ... - `cross_compile_archs` uses ; separator. @@ -557,7 +642,7 @@ def compute_capability_args(self, cross_compile_archs=None): if cross_compile_archs_env is not None: if cross_compile_archs is not None: print( - f"{WARNING} env var `TORCH_CUDA_ARCH_LIST={cross_compile_archs_env}` overrides `cross_compile_archs={cross_compile_archs}`" + f"{WARNING} env var TORCH_CUDA_ARCH_LIST={cross_compile_archs_env} overrides cross_compile_archs={cross_compile_archs}" ) cross_compile_archs = cross_compile_archs_env.replace(' ', ';') else: @@ -573,9 +658,9 @@ def compute_capability_args(self, cross_compile_archs=None): args = [] self.enable_bf16 = True for cc in ccs: - num = cc[0] + cc[2] + num = cc[0] + cc[1].split('+')[0] args.append(f'-gencode=arch=compute_{num},code=sm_{num}') - if cc.endswith('+PTX'): + if cc[1].endswith('+PTX'): args.append(f'-gencode=arch=compute_{num},code=compute_{num}') if int(cc[0]) <= 7: @@ -588,7 +673,7 @@ def filter_ccs(self, ccs: List[str]): Prune any compute capabilities that are not compatible with the builder. Should log which CCs have been pruned. """ - return ccs + return [cc.split('.') for cc in ccs] def version_dependent_macros(self): # Fix from apex that might be relevant for us as well, related to https://github.com/NVIDIA/apex/issues/456 @@ -603,7 +688,7 @@ def version_dependent_macros(self): version_ge_1_5 = ['-DVERSION_GE_1_5'] return version_ge_1_1 + version_ge_1_3 + version_ge_1_5 - def is_compatible(self, verbose=True): + def is_compatible(self, verbose=False): return super().is_compatible(verbose) def builder(self): @@ -618,20 +703,27 @@ def builder(self): from torch.utils.cpp_extension import CppExtension as ExtensionBuilder else: from torch.utils.cpp_extension import CUDAExtension as ExtensionBuilder - + include_dirs = [os.path.abspath(x) for x in self.strip_empty_entries(self.include_paths())] compile_args = {'cxx': self.strip_empty_entries(self.cxx_args())} if self.build_for_cpu else \ {'cxx': self.strip_empty_entries(self.cxx_args()), \ 'nvcc': self.strip_empty_entries(self.nvcc_args())} if not self.build_for_cpu and self.enable_bf16: compile_args['cxx'].append("-DBF16_AVAILABLE") + compile_args['nvcc'].append("-DBF16_AVAILABLE") if self.is_rocm_pytorch(): compile_args['cxx'].append("-D__HIP_PLATFORM_AMD__=1") + #cxx compiler args are required to compile cpp files + compile_args['cxx'].append('-DROCM_WAVEFRONT_SIZE=%s' % self.get_rocm_wavefront_size()) + #nvcc compiler args are required to compile hip files + compile_args['nvcc'].append('-DROCM_WAVEFRONT_SIZE=%s' % self.get_rocm_wavefront_size()) + if self.get_rocm_gpu_arch(): + os.environ["PYTORCH_ROCM_ARCH"] = self.get_rocm_gpu_arch() cuda_ext = ExtensionBuilder(name=self.absolute_name(), sources=self.strip_empty_entries(self.sources()), - include_dirs=self.strip_empty_entries(self.include_paths()), + include_dirs=include_dirs, libraries=self.strip_empty_entries(self.libraries_args()), extra_compile_args=compile_args, extra_link_args=self.strip_empty_entries(self.extra_ldflags())) @@ -682,11 +774,25 @@ def nvcc_args(self): '-DROCM_VERSION_MINOR=%s' % ROCM_MINOR ] else: - cuda_major, _ = installed_cuda_version() + try: + nvcc_threads = int(os.getenv("DS_NVCC_THREADS", "")) + if nvcc_threads <= 0: + raise ValueError("") + except ValueError: + nvcc_threads = min(os.cpu_count(), 8) + + cuda_major, cuda_minor = installed_cuda_version() + if cuda_major > 10: + if cuda_major == 12 and cuda_minor >= 5: + std_lib = '-std=c++20' + else: + std_lib = '-std=c++17' + else: + std_lib = '-std=c++14' args += [ - '-allow-unsupported-compiler' if sys.platform == "win32" else '', '--use_fast_math', - '-std=c++17' if cuda_major > 10 else '-std=c++14', '-U__CUDA_NO_HALF_OPERATORS__', - '-U__CUDA_NO_HALF_CONVERSIONS__', '-U__CUDA_NO_HALF2_OPERATORS__' + '-allow-unsupported-compiler' if sys.platform == "win32" else '', '--use_fast_math', std_lib, + '-U__CUDA_NO_HALF_OPERATORS__', '-U__CUDA_NO_HALF_CONVERSIONS__', '-U__CUDA_NO_HALF2_OPERATORS__', + f'--threads={nvcc_threads}' ] if os.environ.get('DS_DEBUG_CUDA_BUILD', '0') == '1': args.append('--ptxas-options=-v') @@ -705,25 +811,32 @@ def libraries_args(self): class TorchCPUOpBuilder(CUDAOpBuilder): + def get_cuda_lib64_path(self): + import torch + if not self.is_rocm_pytorch(): + CUDA_LIB64 = os.path.join(torch.utils.cpp_extension.CUDA_HOME, "lib64") + if not os.path.exists(CUDA_LIB64): + CUDA_LIB64 = os.path.join(torch.utils.cpp_extension.CUDA_HOME, "lib") + else: + CUDA_LIB64 = os.path.join(torch.utils.cpp_extension.ROCM_HOME, "lib") + return CUDA_LIB64 + def extra_ldflags(self): if self.build_for_cpu: return ['-fopenmp'] if not self.is_rocm_pytorch(): - return ['-lcurand'] + ld_flags = ['-lcurand'] + if not self.build_for_cpu: + ld_flags.append(f'-L{self.get_cuda_lib64_path()}') + return ld_flags return [] def cxx_args(self): - import torch args = [] if not self.build_for_cpu: - if not self.is_rocm_pytorch(): - CUDA_LIB64 = os.path.join(torch.utils.cpp_extension.CUDA_HOME, "lib64") - if not os.path.exists(CUDA_LIB64): - CUDA_LIB64 = os.path.join(torch.utils.cpp_extension.CUDA_HOME, "lib") - else: - CUDA_LIB64 = os.path.join(torch.utils.cpp_extension.ROCM_HOME, "lib") + CUDA_LIB64 = self.get_cuda_lib64_path() args += super().cxx_args() args += [ @@ -735,7 +848,7 @@ def cxx_args(self): CPU_ARCH = self.cpu_arch() SIMD_WIDTH = self.simd_width() - CUDA_ENABLE = self.is_cuda_enable() + CUDA_ENABLE = self.get_cuda_compile_flag() args += [ CPU_ARCH, '-fopenmp', diff --git a/op_builder/cpu/__init__.py b/op_builder/cpu/__init__.py index 0ecf2caf65ae..7084db8469f1 100644 --- a/op_builder/cpu/__init__.py +++ b/op_builder/cpu/__init__.py @@ -4,7 +4,8 @@ # DeepSpeed Team '''Copyright The Microsoft DeepSpeed Team''' -from .comm import CCLCommBuilder +from .comm import CCLCommBuilder, ShareMemCommBuilder from .fused_adam import FusedAdamBuilder from .cpu_adam import CPUAdamBuilder from .no_impl import NotImplementedBuilder +from .async_io import AsyncIOBuilder diff --git a/op_builder/cpu/async_io.py b/op_builder/cpu/async_io.py new file mode 100644 index 000000000000..493ef174566e --- /dev/null +++ b/op_builder/cpu/async_io.py @@ -0,0 +1,91 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import distutils.spawn +import subprocess + +from .builder import CPUOpBuilder + + +class AsyncIOBuilder(CPUOpBuilder): + BUILD_VAR = "DS_BUILD_AIO" + NAME = "async_io" + + def __init__(self): + super().__init__(name=self.NAME) + + def absolute_name(self): + return f'deepspeed.ops.aio.{self.NAME}_op' + + def lib_sources(self): + src_list = [ + 'csrc/aio/py_lib/deepspeed_py_io_handle.cpp', 'csrc/aio/py_lib/deepspeed_py_aio.cpp', + 'csrc/aio/py_lib/deepspeed_py_aio_handle.cpp', 'csrc/aio/py_lib/deepspeed_aio_thread.cpp', + 'csrc/aio/common/deepspeed_aio_utils.cpp', 'csrc/aio/common/deepspeed_aio_common.cpp', + 'csrc/aio/common/deepspeed_aio_types.cpp', 'csrc/aio/py_lib/deepspeed_cpu_op.cpp', + 'csrc/aio/py_lib/deepspeed_aio_op_desc.cpp', 'csrc/aio/py_lib/deepspeed_py_copy.cpp', + 'csrc/aio/py_lib/deepspeed_pin_tensor.cpp' + ] + return src_list + + def sources(self): + return self.lib_sources() + ['csrc/aio/py_lib/py_ds_aio.cpp'] + + def include_paths(self): + return ['csrc/aio/py_lib', 'csrc/aio/common'] + + def cxx_args(self): + # -O0 for improved debugging, since performance is bound by I/O + args = super().cxx_args() + import torch + TORCH_MAJOR, TORCH_MINOR = map(int, torch.__version__.split('.')[0:2]) + if not (TORCH_MAJOR >= 2 and TORCH_MINOR >= 1): + args.remove('-std=c++17') + args.append('-std=c++14') + args += ['-Wall', '-O0', '-shared', '-fPIC', '-Wno-reorder'] + return args + + def extra_ldflags(self): + return ['-laio', '-fopenmp'] + + def check_for_libaio_pkg(self): + libs = dict( + dpkg=["-l", "libaio-dev", "apt"], + pacman=["-Q", "libaio", "pacman"], + rpm=["-q", "libaio-devel", "yum"], + ) + + found = False + for pkgmgr, data in libs.items(): + flag, lib, tool = data + path = distutils.spawn.find_executable(pkgmgr) + if path is not None: + cmd = [pkgmgr, flag, lib] + result = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + if result.wait() == 0: + found = True + else: + self.warning(f"{self.NAME}: please install the {lib} package with {tool}") + break + return found + + def is_compatible(self, verbose=False): + # Check for the existence of libaio by using distutils + # to compile and link a test program that calls io_submit, + # which is a function provided by libaio that is used in the async_io op. + # If needed, one can define -I and -L entries in CFLAGS and LDFLAGS + # respectively to specify the directories for libaio.h and libaio.so. + aio_compatible = self.has_function('io_submit', ('aio', )) + if verbose and not aio_compatible: + self.warning(f"{self.NAME} requires the dev libaio .so object and headers but these were not found.") + + # Check for the libaio package via known package managers + # to print suggestions on which package to install. + self.check_for_libaio_pkg() + + self.warning( + "If libaio is already installed (perhaps from source), try setting the CFLAGS and LDFLAGS environment variables to where it can be found." + ) + return super().is_compatible(verbose) and aio_compatible diff --git a/op_builder/cpu/builder.py b/op_builder/cpu/builder.py index f6a71c7d1971..d881842ad0b1 100644 --- a/op_builder/cpu/builder.py +++ b/op_builder/cpu/builder.py @@ -3,6 +3,8 @@ # DeepSpeed Team +import os + try: # is op_builder from deepspeed or a 3p version? this should only succeed if it's deepspeed # if successful this also means we're doing a local install and not JIT compile path @@ -16,19 +18,23 @@ class CPUOpBuilder(OpBuilder): def builder(self): from torch.utils.cpp_extension import CppExtension as ExtensionBuilder - + include_dirs = [os.path.abspath(x) for x in self.strip_empty_entries(self.include_paths())] compile_args = {'cxx': self.strip_empty_entries(self.cxx_args())} cpp_ext = ExtensionBuilder(name=self.absolute_name(), sources=self.strip_empty_entries(self.sources()), - include_dirs=self.strip_empty_entries(self.include_paths()), + include_dirs=include_dirs, libraries=self.strip_empty_entries(self.libraries_args()), extra_compile_args=compile_args) return cpp_ext def cxx_args(self): - return ['-O3', '-g', '-Wno-reorder'] + args = ['-O3', '-g', '-Wno-reorder'] + CPU_ARCH = self.cpu_arch() + SIMD_WIDTH = self.simd_width() + args += [CPU_ARCH, '-fopenmp', SIMD_WIDTH] + return args def libraries_args(self): return [] diff --git a/op_builder/cpu/comm.py b/op_builder/cpu/comm.py index ec908eb0622b..fec960b63b2e 100644 --- a/op_builder/cpu/comm.py +++ b/op_builder/cpu/comm.py @@ -19,7 +19,7 @@ def absolute_name(self): return f'deepspeed.ops.comm.{self.NAME}_op' def sources(self): - return ['csrc/cpu/comm/ccl.cpp'] + return ['csrc/cpu/comm/ccl.cpp', 'csrc/cpu/comm/shm.cpp'] def include_paths(self): includes = ['csrc/cpu/includes'] @@ -28,17 +28,44 @@ def include_paths(self): def cxx_args(self): return ['-O2', '-fopenmp'] - def is_compatible(self, verbose=True): + def is_compatible(self, verbose=False): # TODO: add soft compatibility check for private binary release. # a soft check, as in we know it can be trivially changed. return super().is_compatible(verbose) def extra_ldflags(self): ccl_root_path = os.environ.get("CCL_ROOT") - if ccl_root_path == None: + if ccl_root_path is None: raise ValueError( "Didn't find CCL_ROOT, install oneCCL from https://github.com/oneapi-src/oneCCL and source its environment variable" ) return [] else: return ['-lccl', f'-L{ccl_root_path}/lib'] + + +class ShareMemCommBuilder(CPUOpBuilder): + BUILD_VAR = "DS_BUILD_SHM_COMM" + NAME = "deepspeed_shm_comm" + + def __init__(self, name=None): + name = self.NAME if name is None else name + super().__init__(name=name) + + def absolute_name(self): + return f'deepspeed.ops.comm.{self.NAME}_op' + + def sources(self): + return ['csrc/cpu/comm/shm_interface.cpp', 'csrc/cpu/comm/shm.cpp'] + + def include_paths(self): + includes = ['csrc/cpu/includes'] + return includes + + def cxx_args(self): + return ['-O2', '-fopenmp'] + + def is_compatible(self, verbose=False): + # TODO: add soft compatibility check for private binary release. + # a soft check, as in we know it can be trivially changed. + return super().is_compatible(verbose) diff --git a/op_builder/cpu_adagrad.py b/op_builder/cpu_adagrad.py index d3f163f7464a..c05f71488950 100644 --- a/op_builder/cpu_adagrad.py +++ b/op_builder/cpu_adagrad.py @@ -3,7 +3,6 @@ # DeepSpeed Team -import os from .builder import TorchCPUOpBuilder @@ -18,26 +17,11 @@ def absolute_name(self): return f'deepspeed.ops.adagrad.{self.NAME}_op' def sources(self): - if self.build_for_cpu: - return ['csrc/adagrad/cpu_adagrad.cpp'] - - return ['csrc/adagrad/cpu_adagrad.cpp', 'csrc/common/custom_cuda_kernel.cu'] + return ['csrc/adagrad/cpu_adagrad.cpp'] def libraries_args(self): args = super().libraries_args() - if self.build_for_cpu: - return args - - if not self.is_rocm_pytorch(): - args += ['curand'] return args def include_paths(self): - import torch - if self.build_for_cpu: - CUDA_INCLUDE = [] - elif not self.is_rocm_pytorch(): - CUDA_INCLUDE = [os.path.join(torch.utils.cpp_extension.CUDA_HOME, "include")] - else: - CUDA_INCLUDE = [] - return ['csrc/includes'] + CUDA_INCLUDE + return ['csrc/includes'] diff --git a/op_builder/cpu_adam.py b/op_builder/cpu_adam.py index 7c34c4ce43a1..7f4c0847a8c4 100644 --- a/op_builder/cpu_adam.py +++ b/op_builder/cpu_adam.py @@ -3,7 +3,6 @@ # DeepSpeed Team -import os from .builder import TorchCPUOpBuilder @@ -18,27 +17,11 @@ def absolute_name(self): return f'deepspeed.ops.adam.{self.NAME}_op' def sources(self): - if self.build_for_cpu: - return ['csrc/adam/cpu_adam.cpp', 'csrc/adam/cpu_adam_impl.cpp'] - - return ['csrc/adam/cpu_adam.cpp', 'csrc/adam/cpu_adam_impl.cpp', 'csrc/common/custom_cuda_kernel.cu'] + return ['csrc/adam/cpu_adam.cpp', 'csrc/adam/cpu_adam_impl.cpp'] def libraries_args(self): args = super().libraries_args() - if self.build_for_cpu: - return args - - if not self.is_rocm_pytorch(): - args += ['curand'] - return args def include_paths(self): - import torch - if self.build_for_cpu: - CUDA_INCLUDE = [] - elif not self.is_rocm_pytorch(): - CUDA_INCLUDE = [os.path.join(torch.utils.cpp_extension.CUDA_HOME, "include")] - else: - CUDA_INCLUDE = [] - return ['csrc/includes'] + CUDA_INCLUDE + return ['csrc/includes'] diff --git a/op_builder/cpu_lion.py b/op_builder/cpu_lion.py index 5c16d10ebb44..9a60d99773b3 100644 --- a/op_builder/cpu_lion.py +++ b/op_builder/cpu_lion.py @@ -3,7 +3,6 @@ # DeepSpeed Team -import os from .builder import TorchCPUOpBuilder @@ -18,31 +17,11 @@ def absolute_name(self): return f'deepspeed.ops.lion.{self.NAME}_op' def sources(self): - if self.build_for_cpu: - return ['csrc/lion/cpu_lion.cpp', 'csrc/lion/cpu_lion_impl.cpp'] - - return ['csrc/lion/cpu_lion.cpp', 'csrc/lion/cpu_lion_impl.cpp', 'csrc/common/custom_cuda_kernel.cu'] + return ['csrc/lion/cpu_lion.cpp', 'csrc/lion/cpu_lion_impl.cpp'] def libraries_args(self): args = super().libraries_args() - if self.build_for_cpu: - return args - - if not self.is_rocm_pytorch(): - args += ['curand'] - return args def include_paths(self): - import torch - if self.build_for_cpu: - CUDA_INCLUDE = [] - elif not self.is_rocm_pytorch(): - CUDA_INCLUDE = [os.path.join(torch.utils.cpp_extension.CUDA_HOME, "include")] - else: - CUDA_INCLUDE = [ - os.path.join(torch.utils.cpp_extension.ROCM_HOME, "include"), - os.path.join(torch.utils.cpp_extension.ROCM_HOME, "include", "rocrand"), - os.path.join(torch.utils.cpp_extension.ROCM_HOME, "include", "hiprand"), - ] - return ['csrc/includes'] + CUDA_INCLUDE + return ['csrc/includes'] diff --git a/op_builder/evoformer_attn.py b/op_builder/evoformer_attn.py index 6e7721f94e01..7f68ccf87290 100644 --- a/op_builder/evoformer_attn.py +++ b/op_builder/evoformer_attn.py @@ -41,29 +41,50 @@ def nvcc_args(self): args.append(f"-DGPU_ARCH={major}{minor}") return args - def is_compatible(self, verbose=True): + def is_compatible(self, verbose=False): try: import torch except ImportError: - self.warning("Please install torch if trying to pre-compile kernels") + if verbose: + self.warning("Please install torch if trying to pre-compile kernels") return False if self.cutlass_path is None: - self.warning("Please specify the CUTLASS repo directory as environment variable $CUTLASS_PATH") + if verbose: + self.warning("Please specify the CUTLASS repo directory as environment variable $CUTLASS_PATH") return False - with open(f'{self.cutlass_path}/CHANGELOG.md', 'r') as f: - if '3.1.0' not in f.read(): - self.warning("Please use CUTLASS version >= 3.1.0") + if os.path.exists(f'{self.cutlass_path}/CHANGELOG.md'): + with open(f'{self.cutlass_path}/CHANGELOG.md', 'r') as f: + if '3.1.0' not in f.read(): + if verbose: + self.warning("Please use CUTLASS version >= 3.1.0") + return False + else: + # pip install nvidia-cutlass package + try: + import cutlass + except ImportError: + if verbose: + self.warning("Please pip install nvidia-cutlass if trying to pre-compile kernels") return False + cutlass_major, cutlass_minor = cutlass.__version__.split('.')[:2] + cutlass_compatible = (int(cutlass_major) >= 3 and int(cutlass_minor) >= 1) + if not cutlass_compatible: + if verbose: + self.warning("Please use CUTLASS version >= 3.1.0") + return False + cuda_okay = True if not self.is_rocm_pytorch() and torch.cuda.is_available(): #ignore-cuda sys_cuda_major, _ = installed_cuda_version() torch_cuda_major = int(torch.version.cuda.split('.')[0]) cuda_capability = torch.cuda.get_device_properties(0).major #ignore-cuda if cuda_capability < 7: - self.warning("Please use a GPU with compute capability >= 7.0") + if verbose: + self.warning("Please use a GPU with compute capability >= 7.0") cuda_okay = False if torch_cuda_major < 11 or sys_cuda_major < 11: - self.warning("Please use CUDA 11+") + if verbose: + self.warning("Please use CUDA 11+") cuda_okay = False return super().is_compatible(verbose) and cuda_okay diff --git a/op_builder/fp_quantizer.py b/op_builder/fp_quantizer.py new file mode 100644 index 000000000000..df4d967ea09a --- /dev/null +++ b/op_builder/fp_quantizer.py @@ -0,0 +1,120 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +try: + from packaging import version as pkg_version +except ImportError: + pkg_version = None + +from .builder import CUDAOpBuilder, installed_cuda_version + + +class FPQuantizerBuilder(CUDAOpBuilder): + BUILD_VAR = "DS_BUILD_FP_QUANTIZER" + NAME = "fp_quantizer" + + def __init__(self, name=None): + name = self.NAME if name is None else name + super().__init__(name=name) + + def absolute_name(self): + return f'deepspeed.ops.fp_quantizer.{self.NAME}_op' + + def is_compatible(self, verbose=False): + try: + import torch + except ImportError: + if verbose: + self.warning("Please install torch if trying to pre-compile inference kernels") + return False + + cuda_okay = True + if not self.is_rocm_pytorch() and torch.cuda.is_available(): #ignore-cuda + sys_cuda_major, _ = installed_cuda_version() + torch_cuda_major = int(torch.version.cuda.split('.')[0]) + cuda_capability = torch.cuda.get_device_properties(0).major #ignore-cuda + if cuda_capability < 8: + if verbose: + self.warning("NVIDIA Inference is only supported on Ampere and newer architectures") + cuda_okay = False + if cuda_capability >= 8: + if torch_cuda_major < 11 or sys_cuda_major < 11: + if verbose: + self.warning("On Ampere and higher architectures please use CUDA 11+") + cuda_okay = False + + try: + import triton + except ImportError: + if verbose: + self.warning( + f"please install triton==2.3.0, 2.3.1 or 3.0.0 if you want to use the FP Quantizer Kernels") + return False + + # triton 2.3.{0,1} and 3.0.0 are ok. + allowed_versions = ("2.3", "3.0") + if pkg_version: + allowed = (pkg_version.parse(v) for v in allowed_versions) + installed_triton = pkg_version.parse(triton.__version__) + triton_mismatch = all(installed_triton.major != a.major or installed_triton.minor != a.minor + for a in allowed) + else: + installed_triton = triton.__version__ + major, minor, _ = installed_triton.split(".") + allowed = (v.split(".") for v in allowed_versions) + triton_mismatch = all(major != v[0] or minor != v[1] for v in allowed) + + if triton_mismatch: + if verbose: + self.warning( + f"FP Quantizer is using an untested triton version ({installed_triton}), only 2.3.{0,1} and 3.0.0 are known to be compatible with these kernels" + ) + return False + + return super().is_compatible(verbose) and cuda_okay + + def filter_ccs(self, ccs): + ccs_retained = [] + ccs_pruned = [] + for cc in [cc.split('.') for cc in ccs]: + if int(cc[0]) >= 8: + ccs_retained.append(cc) + else: + ccs_pruned.append(cc) + if len(ccs_pruned) > 0: + self.warning(f"Filtered compute capabilities {ccs_pruned}") + return ccs_retained + + def sources(self): + return [ + "csrc/fp_quantizer/fp_quantize.cu", + "csrc/fp_quantizer/fp_quantize.cpp", + ] + + def extra_ldflags(self): + if not self.is_rocm_pytorch(): + return ['-lcurand'] + else: + return [] + + def include_paths(self): + return ['csrc/fp_quantizer/includes', 'csrc/includes'] + + @staticmethod + def get_default_quant_dtype(): + import torch + return torch.uint8 + + @staticmethod + def get_quant_range(q_bits=None): + if q_bits == 8: + return 480 + elif q_bits == 6: + return 28. + elif q_bits == 12: + return 510. + else: + assert (0), \ + "Please specify the right quantization range for the selected precision!" diff --git a/op_builder/gds.py b/op_builder/gds.py new file mode 100644 index 000000000000..d815ccea387a --- /dev/null +++ b/op_builder/gds.py @@ -0,0 +1,66 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import os +from .async_io import AsyncIOBuilder + + +class GDSBuilder(AsyncIOBuilder): + BUILD_VAR = "DS_BUILD_GDS" + NAME = "gds" + + def __init__(self): + super().__init__() + + def absolute_name(self): + return f'deepspeed.ops.gds.{self.NAME}_op' + + def lib_sources(self): + src_list = ['csrc/gds/py_lib/deepspeed_py_gds_handle.cpp', 'csrc/gds/py_lib/deepspeed_gds_op.cpp'] + return super().lib_sources() + src_list + + def sources(self): + return self.lib_sources() + ['csrc/gds/py_lib/py_ds_gds.cpp'] + + def cxx_args(self): + return super().cxx_args() + ['-lcufile'] + + def include_paths(self): + import torch + CUDA_INCLUDE = [os.path.join(torch.utils.cpp_extension.CUDA_HOME, "include")] + return ['csrc/aio/py_lib', 'csrc/aio/common'] + CUDA_INCLUDE + + def extra_ldflags(self): + return super().extra_ldflags() + ['-lcufile'] + + def is_compatible(self, verbose=False): + if self.is_rocm_pytorch(): + if verbose: + self.warning(f'{self.NAME} is not compatible with ROCM') + return False + + try: + import torch.utils.cpp_extension + except ImportError: + if verbose: + self.warning("Please install torch if trying to pre-compile GDS") + return False + + CUDA_HOME = torch.utils.cpp_extension.CUDA_HOME + if CUDA_HOME is None: + if verbose: + self.warning("Please install torch CUDA if trying to pre-compile GDS with CUDA") + return False + + CUDA_LIB64 = os.path.join(CUDA_HOME, "lib64") + gds_compatible = self.has_function(funcname="cuFileDriverOpen", + libraries=("cufile", ), + library_dirs=( + CUDA_HOME, + CUDA_LIB64, + ), + verbose=verbose) + + return gds_compatible and super().is_compatible(verbose) diff --git a/op_builder/hpu/__init__.py b/op_builder/hpu/__init__.py new file mode 100644 index 000000000000..5ad1b9a7f891 --- /dev/null +++ b/op_builder/hpu/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2023 Habana Labs, Ltd. an Intel Company +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team +'''Copyright The Microsoft DeepSpeed Team''' + +from .cpu_adam import CPUAdamBuilder +from .fused_adam import FusedAdamBuilder +from .transformer_inference import InferenceBuilder +from .no_impl import NotImplementedBuilder diff --git a/op_builder/hpu/builder.py b/op_builder/hpu/builder.py new file mode 100644 index 000000000000..11e710a8ee48 --- /dev/null +++ b/op_builder/hpu/builder.py @@ -0,0 +1,38 @@ +# Copyright (c) 2023 Habana Labs, Ltd. an Intel Company +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import os + +try: + # is op_builder from deepspeed or a 3p version? this should only succeed if it's deepspeed + # if successful this also means we're doing a local install and not JIT compile path + from op_builder import __deepspeed__ # noqa: F401 # type: ignore + from op_builder.builder import OpBuilder +except ImportError: + from deepspeed.ops.op_builder.builder import OpBuilder + + +class CPUOpBuilder(OpBuilder): + + def builder(self): + from torch.utils.cpp_extension import CppExtension as ExtensionBuilder + include_dirs = [os.path.abspath(x) for x in self.strip_empty_entries(self.include_paths())] + compile_args = {'cxx': self.strip_empty_entries(self.cxx_args())} + + cpp_ext = ExtensionBuilder(name=self.absolute_name(), + sources=self.strip_empty_entries(self.sources()), + include_dirs=include_dirs, + libraries=self.strip_empty_entries(self.libraries_args()), + extra_compile_args=compile_args) + + return cpp_ext + + def cxx_args(self): + args = ['-O3', '-g', '-Wno-reorder'] + return args + + def libraries_args(self): + return [] diff --git a/op_builder/hpu/cpu_adam.py b/op_builder/hpu/cpu_adam.py new file mode 100644 index 000000000000..58eea2698ebb --- /dev/null +++ b/op_builder/hpu/cpu_adam.py @@ -0,0 +1,28 @@ +# Copyright (c) 2023 Habana Labs, Ltd. an Intel Company +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from .builder import CPUOpBuilder + + +class CPUAdamBuilder(CPUOpBuilder): + BUILD_VAR = "DS_BUILD_CPU_ADAM" + NAME = "cpu_adam" + + def __init__(self): + super().__init__(name=self.NAME) + + def absolute_name(self): + return f'deepspeed.ops.adam.{self.NAME}_op' + + def sources(self): + return ['csrc/adam/cpu_adam.cpp', 'csrc/adam/cpu_adam_impl.cpp'] + + def libraries_args(self): + args = super().libraries_args() + return args + + def include_paths(self): + return ['csrc/includes'] diff --git a/op_builder/hpu/fp_quantizer.py b/op_builder/hpu/fp_quantizer.py new file mode 100644 index 000000000000..c74affb55045 --- /dev/null +++ b/op_builder/hpu/fp_quantizer.py @@ -0,0 +1,86 @@ +# Copyright (c) 2024 Habana Labs, Ltd. an Intel Company +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import torch +try: + # is op_builder from deepspeed or a 3p version? this should only succeed if it's deepspeed + # if successful this also means we're doing a local install and not JIT compile path + from op_builder import __deepspeed__ # noqa: F401 # type: ignore + from op_builder.builder import OpBuilder +except ImportError: + from deepspeed.ops.op_builder.builder import OpBuilder + + +class FPQuantizerBuilder(OpBuilder): + BUILD_VAR = "DS_BUILD_FP_QUANTIZER" + NAME = "fp_quantizer" + + def __init__(self, name=None): + name = self.NAME if name is None else name + super().__init__(name=name) + + def absolute_name(self): + return f'deepspeed.ops.fp_quantizer.{self.NAME}_op' + + def sources(self): + return [] + + def load(self, verbose=True): + return FPQuantizer + + @staticmethod + def get_default_quant_dtype(): + return torch.float8_e4m3fn + + @staticmethod + def get_quant_range(q_bits=None): + import habana_frameworks.torch.utils.experimental as htexp + if htexp._get_device_type() == htexp.synDeviceType.synDeviceGaudi2: + dtype = torch.float8_e4m3fnuz + else: + dtype = torch.float8_e4m3fn + return torch.finfo(dtype).max + + +class FPQuantizer: + CUDA_IMPL = False + + @classmethod + def selective_dequantize(cls, val_q, scales, indexes, group_size, q_mantisa_bits, q_exponent_bits): + assert False, "Selective dequantize isn't implemented for HPU!" + + @classmethod + def dequantize(cls, fp_out, input_q, scale, group_size, q_mantisa_bits, q_exponent_bits): + orig_shape = fp_out.shape + orig_dtype = fp_out.dtype + dequant_out = torch.ops.hpu.cast_from_fp8(input_q, (1.0 / scale), orig_dtype).view(orig_shape) + fp_out.copy_(dequant_out) + return fp_out + + @classmethod + def quantize(cls, out, val, scale, group_size, stochastic_rounding, q_bits, q_mantisa_bits): + assert q_bits == 8, "Quantize on HPU only supports quantization to FP8" + assert q_mantisa_bits == 3, "Quantize on HPU only supports q_mantissa_bits = 3" + assert out.dtype.is_floating_point, "Quantization on HPU is only to float dtypes" + + num_groups, group_size = out.shape + + # Reshape the tensor + val_reshaped = val.view(num_groups, group_size).float() + # Calculate the scale + max_vals = val_reshaped.abs().max(dim=1, keepdim=True)[0] + q_range = torch.finfo(out.dtype).max + tmp_scale = q_range / max_vals + scale.copy_(tmp_scale) + # Copy quantized + quant, _ = torch.ops.hpu.cast_to_fp8_v2(val_reshaped, scale, stochastic_rounding, dtype=out.dtype) + out.copy_(quant) + + return out + + @classmethod + def get_scales(cls, out, num_groups): + return out diff --git a/op_builder/hpu/fused_adam.py b/op_builder/hpu/fused_adam.py new file mode 100644 index 000000000000..5acb121668e3 --- /dev/null +++ b/op_builder/hpu/fused_adam.py @@ -0,0 +1,105 @@ +# Copyright (c) 2023 Habana Labs, Ltd. an Intel Company +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +try: + # is op_builder from deepspeed or a 3p version? this should only succeed if it's deepspeed + # if successful this also means we're doing a local install and not JIT compile path + from op_builder import __deepspeed__ # noqa: F401 # type: ignore + from op_builder.builder import OpBuilder +except ImportError: + from deepspeed.ops.op_builder.builder import OpBuilder + +try: + import torch + import math +except ImportError as e: + pass + + +class HPUFusedAdam: + htcore = None + is_lazy_mode = None + + @staticmethod + def multi_tensor_adam(chunk_size, noop_flag_buffer, tensor_lists, lr, beta1, beta2, epsilon, step, adam_w_mode, + bias_correction, weight_decay, *args): + + if HPUFusedAdam.htcore is None: + from habana_frameworks.torch import core as htcore + from habana_frameworks.torch.utils.internal import is_lazy + HPUFusedAdam.htcore = htcore + HPUFusedAdam.is_lazy_mode = is_lazy() + + htcore = HPUFusedAdam.htcore + + htcore.step_closure._mark_step_if_lazy() + step_size = lr + if bias_correction: + bias_correction1 = 1.0 - pow(beta1, step) + bias_correction2 = 1.0 - pow(beta2, step) + step_size = step_size * math.sqrt(bias_correction2) / bias_correction1 + + neg_step = -step_size + neg_step_t = (torch.tensor([neg_step], dtype=torch.float, + requires_grad=False).to(tensor_lists[1][0].dtype).to(tensor_lists[1][0].device, + non_blocking=True)) + + weight_decay = weight_decay if adam_w_mode else 0 + + # since lr is fed into the kernel as tensor, perform the scalar multiplication of wd here + # NOTE: TODO if lr is updated every step, then we need to convert it as tensor and + # perform weight decay unconditonally. + modified_wd = 1.0 - weight_decay * lr + + if HPUFusedAdam.is_lazy_mode: + torch.ops.hpu.optimizer_adamw( + tensor_lists[0], + tensor_lists[1], + tensor_lists[2], + tensor_lists[3], + neg_step_t, + beta1, + beta2, + epsilon, + modified_wd, + ) + else: + modified_wd_t = (torch.tensor([modified_wd], dtype=torch.float, requires_grad=False).to( + tensor_lists[1][0].dtype).to(tensor_lists[1][0].device, non_blocking=True)) + torch.ops.hpu.optimizer_adamw( + tensor_lists[0], + tensor_lists[1], + tensor_lists[2], + tensor_lists[3], + neg_step_t, + beta1, + beta2, + epsilon, + modified_wd_t, + modified_wd != 1.0, + ) + + htcore.step_closure._mark_step_if_lazy() + + +class FusedAdamBuilder(OpBuilder): + BUILD_VAR = "DS_BUILD_FUSED_ADAM" + NAME = "fused_adam" + + def __init__(self): + super().__init__(name=self.NAME) + + def absolute_name(self): + return f'deepspeed.ops.adam.{self.NAME}_op' + + def sources(self): + return [] + + def include_paths(self): + return [] + + def load(self, verbose=True): + return HPUFusedAdam diff --git a/op_builder/hpu/no_impl.py b/op_builder/hpu/no_impl.py new file mode 100644 index 000000000000..140d65b48def --- /dev/null +++ b/op_builder/hpu/no_impl.py @@ -0,0 +1,24 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from .builder import CPUOpBuilder + + +class NotImplementedBuilder(CPUOpBuilder): + BUILD_VAR = "DS_BUILD_NOT_IMPLEMENTED" + NAME = "deepspeed_not_implemented" + + def __init__(self, name=None): + name = self.NAME if name is None else name + super().__init__(name=name) + + def absolute_name(self): + return f'deepspeed.ops.comm.{self.NAME}_op' + + def load(self, verbose=True): + raise ValueError("This op had not been implemented on HPU backend.") + + def sources(self): + return [] diff --git a/op_builder/hpu/transformer_inference.py b/op_builder/hpu/transformer_inference.py new file mode 100644 index 000000000000..e397c99200ec --- /dev/null +++ b/op_builder/hpu/transformer_inference.py @@ -0,0 +1,39 @@ +# Copyright (c) 2023 Habana Labs, Ltd. an Intel Company +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 +import importlib + +# DeepSpeed Team + +try: + # is op_builder from deepspeed or a 3p version? this should only succeed if it's deepspeed + # if successful this also means we're doing a local install and not JIT compile path + from op_builder import __deepspeed__ # noqa: F401 + from op_builder.builder import OpBuilder +except ImportError: + from deepspeed.ops.op_builder.builder import OpBuilder + + +class InferenceBuilder(OpBuilder): + BUILD_VAR = "DS_BUILD_TRANSFORMER_INFERENCE" + NAME = "transformer_inference" + + def __init__(self, name=None): + name = self.NAME if name is None else name + super().__init__(name=self.NAME) + + def absolute_name(self): + return f"deepspeed.ops.transformer.inference.{self.NAME}_op" + + def sources(self): + return [] + + def load(self, verbose=True): + if self.name in __class__._loaded_ops: + return __class__._loaded_ops[self.name] + + from deepspeed.git_version_info import installed_ops # noqa: F401 + if installed_ops.get(self.name, False): + op_module = importlib.import_module(self.absolute_name()) + __class__._loaded_ops[self.name] = op_module + return op_module diff --git a/op_builder/inference_core_ops.py b/op_builder/inference_core_ops.py index 229b500bebda..b6665ebb7618 100755 --- a/op_builder/inference_core_ops.py +++ b/op_builder/inference_core_ops.py @@ -19,11 +19,12 @@ def __init__(self, name=None): def absolute_name(self): return f'deepspeed.inference.v2.kernels{self.NAME}' - def is_compatible(self, verbose=True): + def is_compatible(self, verbose=False): try: import torch except ImportError: - self.warning("Please install torch if trying to pre-compile inference kernels") + if verbose: + self.warning("Please install torch if trying to pre-compile inference kernels") return False cuda_okay = True @@ -32,18 +33,20 @@ def is_compatible(self, verbose=True): torch_cuda_major = int(torch.version.cuda.split('.')[0]) cuda_capability = torch.cuda.get_device_properties(0).major #ignore-cuda if cuda_capability < 6: - self.warning("NVIDIA Inference is only supported on Pascal and newer architectures") + if verbose: + self.warning("NVIDIA Inference is only supported on Pascal and newer architectures") cuda_okay = False if cuda_capability >= 8: if torch_cuda_major < 11 or sys_cuda_major < 11: - self.warning("On Ampere and higher architectures please use CUDA 11+") + if verbose: + self.warning("On Ampere and higher architectures please use CUDA 11+") cuda_okay = False return super().is_compatible(verbose) and cuda_okay def filter_ccs(self, ccs): ccs_retained = [] ccs_pruned = [] - for cc in ccs: + for cc in [cc.split('.') for cc in ccs]: if int(cc[0]) >= 6: ccs_retained.append(cc) else: @@ -60,13 +63,15 @@ def sources(self): sources = [ "inference/v2/kernels/core_ops/core_ops.cpp", "inference/v2/kernels/core_ops/bias_activations/bias_activation.cpp", - "inference/v2/kernels/core_ops/bias_activations/bias_activation.cu", + "inference/v2/kernels/core_ops/bias_activations/bias_activation_cuda.cu", "inference/v2/kernels/core_ops/cuda_layer_norm/layer_norm.cpp", - "inference/v2/kernels/core_ops/cuda_layer_norm/layer_norm.cu", + "inference/v2/kernels/core_ops/cuda_layer_norm/layer_norm_cuda.cu", "inference/v2/kernels/core_ops/cuda_rms_norm/rms_norm.cpp", - "inference/v2/kernels/core_ops/cuda_rms_norm/rms_norm.cu", + "inference/v2/kernels/core_ops/cuda_rms_norm/rms_norm_cuda.cu", "inference/v2/kernels/core_ops/gated_activations/gated_activation_kernels.cpp", - "inference/v2/kernels/core_ops/gated_activations/gated_activation_kernels.cu", + "inference/v2/kernels/core_ops/gated_activations/gated_activation_kernels_cuda.cu", + "inference/v2/kernels/core_ops/cuda_linear/linear_kernels.cpp", + "inference/v2/kernels/core_ops/cuda_linear/linear_kernels_cuda.cu", ] prefix = self.get_prefix() @@ -83,6 +88,7 @@ def include_paths(self): 'inference/v2/kernels/core_ops/cuda_layer_norm', 'inference/v2/kernels/core_ops/cuda_rms_norm', 'inference/v2/kernels/core_ops/gated_activations', + 'inference/v2/kernels/core_ops/cuda_linear', 'inference/v2/kernels/includes', ] diff --git a/op_builder/inference_cutlass_builder.py b/op_builder/inference_cutlass_builder.py index 51f7931d9435..a4a607288ca8 100644 --- a/op_builder/inference_cutlass_builder.py +++ b/op_builder/inference_cutlass_builder.py @@ -18,11 +18,12 @@ def __init__(self, name=None): def absolute_name(self): return f'deepspeed.inference.v2.kernels.cutlass_ops.{self.NAME}' - def is_compatible(self, verbose=True): + def is_compatible(self, verbose=False): try: import torch except ImportError: - self.warning("Please install torch if trying to pre-compile inference kernels") + if verbose: + self.warning("Please install torch if trying to pre-compile inference kernels") return False cuda_okay = True @@ -31,18 +32,20 @@ def is_compatible(self, verbose=True): torch_cuda_major = int(torch.version.cuda.split('.')[0]) cuda_capability = torch.cuda.get_device_properties(0).major #ignore-cuda if cuda_capability < 6: - self.warning("NVIDIA Inference is only supported on Pascal and newer architectures") + if verbose: + self.warning("NVIDIA Inference is only supported on Pascal and newer architectures") cuda_okay = False if cuda_capability >= 8: if torch_cuda_major < 11 or sys_cuda_major < 11: - self.warning("On Ampere and higher architectures please use CUDA 11+") + if verbose: + self.warning("On Ampere and higher architectures please use CUDA 11+") cuda_okay = False return super().is_compatible(verbose) and cuda_okay def filter_ccs(self, ccs): ccs_retained = [] ccs_pruned = [] - for cc in ccs: + for cc in [cc.split('.') for cc in ccs]: if int(cc[0]) >= 8: # Only support Ampere and newer ccs_retained.append(cc) diff --git a/op_builder/mlu/__init__.py b/op_builder/mlu/__init__.py new file mode 100644 index 000000000000..db12afbbf20e --- /dev/null +++ b/op_builder/mlu/__init__.py @@ -0,0 +1,12 @@ +# Copyright (c) Microsoft Corporation. +# Copyright (c) 2024 Cambricon Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team +'''Copyright The Microsoft DeepSpeed Team''' + +# MLU related operators will be added in the future. +from .no_impl import NotImplementedBuilder +from .cpu_adagrad import CPUAdagradBuilder +from .cpu_adam import CPUAdamBuilder +from .fused_adam import FusedAdamBuilder diff --git a/op_builder/mlu/builder.py b/op_builder/mlu/builder.py new file mode 100644 index 000000000000..17b9723ffcc1 --- /dev/null +++ b/op_builder/mlu/builder.py @@ -0,0 +1,35 @@ +# Copyright (c) Microsoft Corporation. +# Copyright (c) 2024 Cambricon Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +try: + # is op_builder from deepspeed or a 3p version? this should only succeed if it's deepspeed + # if successful this also means we're doing a local install and not JIT compile path + from op_builder import __deepspeed__ # noqa: F401 # type: ignore + from op_builder.builder import OpBuilder +except ImportError: + from deepspeed.ops.op_builder.builder import OpBuilder + + +class MLUOpBuilder(OpBuilder): + + def builder(self): + from torch.utils.cpp_extension import CppExtension as ExtensionBuilder + + compile_args = {'cxx': self.strip_empty_entries(self.cxx_args())} + + cpp_ext = ExtensionBuilder(name=self.absolute_name(), + sources=self.strip_empty_entries(self.sources()), + include_dirs=self.strip_empty_entries(self.include_paths()), + libraries=self.strip_empty_entries(self.libraries_args()), + extra_compile_args=compile_args) + + return cpp_ext + + def cxx_args(self): + return ['-O3', '-g', '-Wno-reorder'] + + def libraries_args(self): + return [] diff --git a/op_builder/mlu/cpu_adagrad.py b/op_builder/mlu/cpu_adagrad.py new file mode 100644 index 000000000000..68b7bbe514ee --- /dev/null +++ b/op_builder/mlu/cpu_adagrad.py @@ -0,0 +1,24 @@ +# Copyright (c) Microsoft Corporation. +# Copyright (c) 2024 Cambricon Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from .builder import MLUOpBuilder + + +class CPUAdagradBuilder(MLUOpBuilder): + BUILD_VAR = "DS_BUILD_CPU_ADAGRAD" + NAME = "cpu_adagrad" + + def __init__(self): + super().__init__(name=self.NAME) + + def absolute_name(self): + return f'deepspeed.ops.adagrad.{self.NAME}_op' + + def sources(self): + return ['csrc/adagrad/cpu_adagrad.cpp'] + + def include_paths(self): + return ['csrc/includes'] diff --git a/op_builder/mlu/cpu_adam.py b/op_builder/mlu/cpu_adam.py new file mode 100644 index 000000000000..b3c8e476bf39 --- /dev/null +++ b/op_builder/mlu/cpu_adam.py @@ -0,0 +1,28 @@ +# Copyright (c) Microsoft Corporation. +# Copyright (c) 2024 Cambricon Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from .builder import MLUOpBuilder + + +class CPUAdamBuilder(MLUOpBuilder): + BUILD_VAR = "DS_BUILD_CPU_ADAM" + NAME = "cpu_adam" + + def __init__(self): + super().__init__(name=self.NAME) + + def absolute_name(self): + return f'deepspeed.ops.adam.{self.NAME}_op' + + def sources(self): + return ['csrc/adam/cpu_adam.cpp', 'csrc/adam/cpu_adam_impl.cpp'] + + def libraries_args(self): + args = super().libraries_args() + return args + + def include_paths(self): + return ['csrc/includes'] diff --git a/op_builder/mlu/fused_adam.py b/op_builder/mlu/fused_adam.py new file mode 100644 index 000000000000..2343e55568c4 --- /dev/null +++ b/op_builder/mlu/fused_adam.py @@ -0,0 +1,43 @@ +# Copyright (c) Microsoft Corporation. +# Copyright (c) 2024 Cambricon Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from .builder import MLUOpBuilder + +try: + import torch +except ImportError as e: + pass + + +class MLUFusedAdam: + + @staticmethod + def multi_tensor_adam(chunk_size, noop_flag_buffer, tensor_lists, lr, beta1, beta2, epsilon, step, adam_w_mode, + bias_correction, weight_decay, *args): + + torch.ops.torch_mlu.fused_adam(noop_flag_buffer, tensor_lists[0], tensor_lists[1], tensor_lists[2], + tensor_lists[3], lr, beta1, beta2, epsilon, step, adam_w_mode, bias_correction, + weight_decay) + + +class FusedAdamBuilder(MLUOpBuilder): + BUILD_VAR = "DS_BUILD_FUSED_ADAM" + NAME = "fused_adam" + + def __init__(self): + super().__init__(name=self.NAME) + + def absolute_name(self): + return f'deepspeed.ops.adam.{self.NAME}_op' + + def sources(self): + return [] + + def include_paths(self): + return [] + + def load(self, verbose=True): + return MLUFusedAdam diff --git a/op_builder/mlu/no_impl.py b/op_builder/mlu/no_impl.py new file mode 100644 index 000000000000..375c148b4a5e --- /dev/null +++ b/op_builder/mlu/no_impl.py @@ -0,0 +1,34 @@ +# Copyright (c) Microsoft Corporation. +# Copyright (c) 2024 Cambricon Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from .builder import MLUOpBuilder + + +class NotImplementedBuilder(MLUOpBuilder): + BUILD_VAR = "DS_BUILD_NOT_IMPLEMENTED" + NAME = "deepspeed_not_implemented" + + def __init__(self, name=None): + name = self.NAME if name is None else name + super().__init__(name=name) + + def absolute_name(self): + return f'deepspeed.ops.comm.{self.NAME}_op' + + def load(self, verbose=True): + raise ValueError("This op had not been implemented on MLU backend.") + + def sources(self): + return [] + + def cxx_args(self): + return [] + + def extra_ldflags(self): + return [] + + def include_paths(self): + return [] diff --git a/op_builder/npu/__init__.py b/op_builder/npu/__init__.py index 6ad9124d36f0..e512e25a2a29 100644 --- a/op_builder/npu/__init__.py +++ b/op_builder/npu/__init__.py @@ -5,7 +5,9 @@ '''Copyright The Microsoft DeepSpeed Team''' from .fused_adam import FusedAdamBuilder +from .async_io import AsyncIOBuilder from .no_impl import NotImplementedBuilder from .cpu_adam import CPUAdamBuilder from .cpu_adagrad import CPUAdagradBuilder from .cpu_lion import CPULionBuilder +from .inference import InferenceBuilder diff --git a/op_builder/npu/async_io.py b/op_builder/npu/async_io.py new file mode 100644 index 000000000000..76d495b8106f --- /dev/null +++ b/op_builder/npu/async_io.py @@ -0,0 +1,103 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import distutils.spawn +import subprocess + +from .builder import NPUOpBuilder + + +class AsyncIOBuilder(NPUOpBuilder): + BUILD_VAR = "DS_BUILD_AIO" + NAME = "async_io" + + def __init__(self): + super().__init__(name=self.NAME) + + def absolute_name(self): + return f'deepspeed.ops.aio.{self.NAME}_op' + + def sources(self): + return [ + 'csrc/aio/py_lib/deepspeed_py_copy.cpp', 'csrc/aio/py_lib/py_ds_aio.cpp', + 'csrc/aio/py_lib/deepspeed_py_aio.cpp', 'csrc/aio/py_lib/deepspeed_py_aio_handle.cpp', + 'csrc/aio/py_lib/deepspeed_aio_thread.cpp', 'csrc/aio/common/deepspeed_aio_utils.cpp', + 'csrc/aio/common/deepspeed_aio_common.cpp', 'csrc/aio/common/deepspeed_aio_types.cpp', + 'csrc/aio/py_lib/deepspeed_pin_tensor.cpp' + ] + + def include_paths(self): + args = super().include_paths() + args += ['csrc/aio/py_lib', 'csrc/aio/common'] + return args + + def cxx_args(self): + args = super().cxx_args() + # -O0 for improved debugging, since performance is bound by I/O + CPU_ARCH = self.cpu_arch() + SIMD_WIDTH = self.simd_width() + import torch # Keep this import here to avoid errors when building DeepSpeed wheel without torch installed + TORCH_MAJOR, TORCH_MINOR = map(int, torch.__version__.split('.')[0:2]) + if TORCH_MAJOR >= 2 and TORCH_MINOR >= 1: + CPP_STD = '-std=c++17' + else: + CPP_STD = '-std=c++14' + return args + [ + '-g', + '-Wall', + '-O0', + CPP_STD, + '-shared', + '-fPIC', + '-Wno-reorder', + CPU_ARCH, + '-fopenmp', + SIMD_WIDTH, + '-laio', + ] + + def extra_ldflags(self): + args = super().extra_ldflags() + return args + ['-laio'] + + def check_for_libaio_pkg(self): + libs = dict( + dpkg=["-l", "libaio-dev", "apt"], + pacman=["-Q", "libaio", "pacman"], + rpm=["-q", "libaio-devel", "yum"], + ) + + found = False + for pkgmgr, data in libs.items(): + flag, lib, tool = data + path = distutils.spawn.find_executable(pkgmgr) + if path is not None: + cmd = [pkgmgr, flag, lib] + result = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + if result.wait() == 0: + found = True + else: + self.warning(f"{self.NAME}: please install the {lib} package with {tool}") + break + return found + + def is_compatible(self, verbose=False): + # Check for the existence of libaio by using distutils + # to compile and link a test program that calls io_submit, + # which is a function provided by libaio that is used in the async_io op. + # If needed, one can define -I and -L entries in CFLAGS and LDFLAGS + # respectively to specify the directories for libaio.h and libaio.so. + aio_compatible = self.has_function('io_pgetevents', ('aio', )) + if verbose and not aio_compatible: + self.warning(f"{self.NAME} requires the dev libaio .so object and headers but these were not found.") + + # Check for the libaio package via known package managers + # to print suggestions on which package to install. + self.check_for_libaio_pkg() + + self.warning( + "If libaio is already installed (perhaps from source), try setting the CFLAGS and LDFLAGS environment variables to where it can be found." + ) + return super().is_compatible(verbose) and aio_compatible diff --git a/op_builder/npu/fused_adam.py b/op_builder/npu/fused_adam.py index fc1bc83c7cc7..d32103db7055 100644 --- a/op_builder/npu/fused_adam.py +++ b/op_builder/npu/fused_adam.py @@ -16,8 +16,8 @@ class NPUFusedAdam: @staticmethod def multi_tensor_adam(chunk_size, noop_flag_buffer, tensor_lists, lr, beta1, beta2, epsilon, step, adam_w_mode, bias_correction, weight_decay, *args): - bias_correction1 = beta1**step - bias_correction2 = beta2**step + bias_correction1 = beta1**(step - 1) + bias_correction2 = beta2**(step - 1) # iteration group['params'] for i in range(len(tensor_lists[0])): diff --git a/op_builder/npu/inference.py b/op_builder/npu/inference.py new file mode 100644 index 000000000000..46f28c0d4011 --- /dev/null +++ b/op_builder/npu/inference.py @@ -0,0 +1,307 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from enum import IntEnum +from .builder import NPUOpBuilder + +try: + import torch + import torch_npu +except ImportError as e: + pass + + +class ActivationFuncType(IntEnum): + UNKNOWN = 0 + GELU = 1 + ReLU = 2 + GATED_GELU = 3 + GATED_SILU = 4 + + +class InferenceContext: + _workspace = None + + _seed = 42 + _curr_offset = 0 + _stream = 0 + _free_memory_size = 0 + _num_tokens = 1 + _attention_unfused_workspace_offset = 0 + _workSpaceSize = 0 + + workSpaceSize = 0 + kv_caches = None + + @staticmethod + def reset_tokens(initial_tokens=1): + InferenceContext._num_tokens = initial_tokens + + @staticmethod + def current_tokens(): + return InferenceContext._num_tokens + + @staticmethod + def GetWorkSpace(): + return InferenceContext._workspace + + +class NPUInference: + + @staticmethod + def layer_norm(inputs, gamma, beta, epsilon): + return torch.nn.functional.layer_norm(inputs, [inputs.shape[-1]], gamma, beta, eps=epsilon) + + @staticmethod + def _qkv_gemm(inputs, weight, q_scale, bias, gamma, beta, eps, add_bias, q_int8, transpose): + inp_norm = torch.nn.functional.layer_norm(inputs, (inputs.shape[2], ), gamma, beta, eps) + weight = weight.t() if transpose else weight + tmp = torch.matmul(inp_norm, weight) + if add_bias: + tmp += bias + output = [tmp, inp_norm] + return output + + @staticmethod + def qkv_gemm_fp16(inputs, weight, q_scale, bias, gamma, beta, eps, add_bias, q_int8, transpose): + return NPUInference._qkv_gemm(inputs, weight, q_scale, bias, gamma, beta, eps, add_bias, q_int8, transpose) + + @staticmethod + def qkv_gemm_bf16(inputs, weight, q_scale, bias, gamma, beta, eps, add_bias, q_int8, transpose): + return NPUInference._qkv_gemm(inputs, weight, q_scale, bias, gamma, beta, eps, add_bias, q_int8, transpose) + + @staticmethod + def qkv_gemm_fp32(inputs, weight, q_scale, bias, gamma, beta, eps, add_bias, q_int8, transpose): + return NPUInference._qkv_gemm(inputs, weight, q_scale, bias, gamma, beta, eps, add_bias, q_int8, transpose) + + @staticmethod + def _bias_add_transform_0213(vals, bias, hidden_dim, seq_length, seq_offset, heads, num_kv, rotary_dim, + rotate_half, rotate_every_two, rope_theta): + bsz, _, _ = vals.shape + q = vals[..., :hidden_dim].reshape(bsz, seq_length, heads, -1) + k = vals[..., hidden_dim:hidden_dim + num_kv * (hidden_dim // heads)].reshape(bsz, seq_length, num_kv, -1) + v = vals[..., hidden_dim + num_kv * (hidden_dim // heads):] + + if rotary_dim > 0 and rotate_every_two: + # sin, cos may use cache + seq_id = torch.arange(0, seq_length).to("npu") + inv_freq = torch.arange(0, rotary_dim, 2) / rotary_dim + inv_freq = inv_freq.to("npu") + inv_freq = 1.0 / torch.pow(rope_theta, inv_freq) + inv_freq = torch.outer(seq_id, inv_freq) + sin = inv_freq.sin() + cos = inv_freq.cos() + # shape: [bsz=1, seq_len, heads=1, rotary_dim] + sin = sin.view(-1, seq_length, 1, rotary_dim // 2).repeat_interleave(2, dim=-1) + cos = cos.view(-1, seq_length, 1, rotary_dim // 2).repeat_interleave(2, dim=-1) + + q_pos, q_pass = q[..., :rotary_dim], q[..., rotary_dim:] + k_pos, k_pass = k[..., :rotary_dim], k[..., rotary_dim:] + + q_pos = torch_npu.npu_rotary_mul(q_pos, cos, sin) + q = torch.cat([q_pos, q_pass], dim=-1) + k_pos = torch_npu.npu_rotary_mul(k_pos, cos, sin) + k = torch.cat([k_pos, k_pass], dim=-1) + + output = q.reshape(bsz, seq_length, -1).contiguous() # [b, s, H] + k_cache = k.reshape(bsz, seq_length, heads, -1).transpose(1, 2).contiguous() # [b, n, s, d] + v_cache = v.reshape(bsz, seq_length, heads, -1).transpose(1, 2).contiguous() # [b, n, s, d] + return output, k_cache, v_cache + + @staticmethod + def _softmax_context(query_key_value, attn_mask, rotary_dim, rotate_half, rotate_every_two, heads, num_kv, + norm_factor, triangular_masking, local_attention, window_size, no_masking, layer_id, + num_layers, alibi, rope_theta): + bsz, seq_len, k = query_key_value.size() + k = k // (heads + 2 * (num_kv if num_kv > 0 else heads)) + hidden_dim = heads * k + + is_promt = seq_len > 1 + if not InferenceContext.kv_caches: + InferenceContext.kv_caches = [[None, None] for _ in range(num_layers)] + if is_promt: + InferenceContext.reset_tokens(seq_len) + InferenceContext.kv_caches[layer_id] = [None, None] + + soft_len = InferenceContext.current_tokens() + workspace = InferenceContext.GetWorkSpace() + seq_offset = 0 if is_promt else soft_len - 1 + + q, k, v = NPUInference._bias_add_transform_0213(vals=query_key_value, + bias=None, + hidden_dim=hidden_dim, + seq_length=seq_len, + seq_offset=seq_offset, + heads=heads, + num_kv=num_kv if num_kv > 0 else heads, + rotary_dim=rotary_dim, + rotate_half=rotate_half, + rotate_every_two=rotate_every_two, + rope_theta=rope_theta) + + if not is_promt: + k_cache, v_cache = InferenceContext.kv_caches[layer_id] + if k_cache is not None: + k = torch.cat([k_cache, k], dim=2) + v = torch.cat([v_cache, v], dim=2) + InferenceContext.kv_caches[layer_id] = [k, v] + seq_len = k.shape[2] + + layer_scale = max(1, layer_id) if len(alibi.size()) > 1 else 1.0 + alpha = norm_factor * norm_factor / layer_scale + + output = torch_npu.npu_fusion_attention(q, + k.transpose(1, 2).reshape(bsz, seq_len, -1).contiguous(), + v.transpose(1, 2).reshape(bsz, seq_len, -1).contiguous(), + heads, + "BSH", + pse=None, + padding_mask=None, + atten_mask=attn_mask.bool(), + scale=alpha, + pre_tockens=65536, + next_tockens=65536, + keep_prob=1, + inner_precise=0)[0] + + return output, k, v + + @staticmethod + def softmax_context_fp16(query_key_value, attn_mask, rotary_dim, rotate_half, rotate_every_two, heads, num_kv, + norm_factor, triangular_masking, local_attention, window_size, no_masking, layer_id, + num_layers, alibi, rope_theta): + return NPUInference._softmax_context(query_key_value, attn_mask, rotary_dim, rotate_half, rotate_every_two, + heads, num_kv, norm_factor, triangular_masking, local_attention, + window_size, no_masking, layer_id, num_layers, alibi, rope_theta) + + @staticmethod + def softmax_context_bf16(query_key_value, attn_mask, rotary_dim, rotate_half, rotate_every_two, heads, num_kv, + norm_factor, triangular_masking, local_attention, window_size, no_masking, layer_id, + num_layers, alibi, rope_theta): + return NPUInference._softmax_context(query_key_value, attn_mask, rotary_dim, rotate_half, rotate_every_two, + heads, num_kv, norm_factor, triangular_masking, local_attention, + window_size, no_masking, layer_id, num_layers, alibi, rope_theta) + + @staticmethod + def softmax_context_fp32(query_key_value, attn_mask, rotary_dim, rotate_half, rotate_every_two, heads, num_kv, + norm_factor, triangular_masking, local_attention, window_size, no_masking, layer_id, + num_layers, alibi, rope_theta): + return NPUInference._softmax_context(query_key_value, attn_mask, rotary_dim, rotate_half, rotate_every_two, + heads, num_kv, norm_factor, triangular_masking, local_attention, + window_size, no_masking, layer_id, num_layers, alibi, rope_theta) + + @staticmethod + def _vector_matmul(input, weight, async_op, q_scale, q_int8, transposed_mode): + if transposed_mode: + return torch.matmul(input, weight.t()) + return torch.matmul(input, weight) + + @staticmethod + def vector_matmul_fp16(input, weight, async_op, q_scale, q_int8, transposed_mode): + return NPUInference._vector_matmul(input, weight, async_op, q_scale, q_int8, transposed_mode) + + @staticmethod + def vector_matmul_bf16(input, weight, async_op, q_scale, q_int8, transposed_mode): + return NPUInference._vector_matmul(input, weight, async_op, q_scale, q_int8, transposed_mode) + + @staticmethod + def vector_matmul_fp32(input, weight, async_op, q_scale, q_int8, transposed_mode): + return NPUInference._vector_matmul(input, weight, async_op, q_scale, q_int8, transposed_mode) + + @staticmethod + def _mlp_gemm(input, residual, input_bias, weight_interm, weight_out, bias, gamma, beta, eps, pre_layer_norm, + mlp_after_attn, interm_scale, out_scale, dtype, mlp_act_func_type, transpose): + if mlp_after_attn: + residual_add = torch.nn.functional.layer_norm(input + residual + input_bias, (input.shape[-1], ), gamma, + beta, eps) + else: + residual_add = torch.nn.functional.layer_norm(input, (input.shape[-1], ), gamma, beta, eps) + + weight_interm = weight_interm.t() if transpose else weight_interm + tmp = torch.matmul(residual_add, weight_interm) + if mlp_act_func_type == ActivationFuncType.GELU: + tmp = torch.nn.functional.gelu(tmp + bias) + elif mlp_act_func_type == ActivationFuncType.ReLU: + tmp = torch.nn.functional.relu(tmp + bias) + else: + raise Exception('Unsupported ActivationFuncType {}'.format(mlp_act_func_type)) + output = torch.matmul(tmp, weight_out.t()) + return output, residual_add + + @staticmethod + def mlp_gemm_fp16(input, residual, input_bias, weight_interm, weight_out, bias, gamma, beta, eps, pre_layer_norm, + mlp_after_attn, interm_scale, out_scale, dtype, mlp_act_func_type, transpose): + return NPUInference._mlp_gemm(input, residual, input_bias, weight_interm, weight_out, bias, gamma, beta, eps, + pre_layer_norm, mlp_after_attn, interm_scale, out_scale, dtype, + mlp_act_func_type, transpose) + + @staticmethod + def mlp_gemm_bf16(input, residual, input_bias, weight_interm, weight_out, bias, gamma, beta, eps, pre_layer_norm, + mlp_after_attn, interm_scale, out_scale, dtype, mlp_act_func_type, transpose): + return NPUInference._mlp_gemm(input, residual, input_bias, weight_interm, weight_out, bias, gamma, beta, eps, + pre_layer_norm, mlp_after_attn, interm_scale, out_scale, dtype, + mlp_act_func_type, transpose) + + @staticmethod + def mlp_gemm_fp32(input, residual, input_bias, weight_interm, weight_out, bias, gamma, beta, eps, pre_layer_norm, + mlp_after_attn, interm_scale, out_scale, dtype, mlp_act_func_type, transpose): + return NPUInference._mlp_gemm(input, residual, input_bias, weight_interm, weight_out, bias, gamma, beta, eps, + pre_layer_norm, mlp_after_attn, interm_scale, out_scale, dtype, + mlp_act_func_type, transpose) + + @staticmethod + def _residual_add_bias(hidden_state, residual, attention_output, attention_bias, final_bias, mp_size, + mlp_after_attn, add_bias, pre_layer_norm): + if mlp_after_attn: + if pre_layer_norm: + tmp = (residual.float() + attention_output.float() + attention_bias.float() + + final_bias.float()) / mp_size + hidden_state.float() + else: + tmp = residual.float() + hidden_state.float() + final_bias.float() + else: + if add_bias: + residual += attention_bias.float() + tmp = hidden_state.float() + attention_output.float() + (residual.float() + final_bias.float()) / mp_size + + input_dtype = hidden_state.dtype + residual.set_(tmp.to(input_dtype)) + + @staticmethod + def residual_add_bias_fp16(hidden_state, residual, attention_output, attention_bias, final_bias, mp_size, + mlp_after_attn, add_bias, pre_layer_norm): + return NPUInference._residual_add_bias(hidden_state, residual, attention_output, attention_bias, final_bias, + mp_size, mlp_after_attn, add_bias, pre_layer_norm) + + @staticmethod + def residual_add_bias_bf16(hidden_state, residual, attention_output, attention_bias, final_bias, mp_size, + mlp_after_attn, add_bias, pre_layer_norm): + return NPUInference._residual_add_bias(hidden_state, residual, attention_output, attention_bias, final_bias, + mp_size, mlp_after_attn, add_bias, pre_layer_norm) + + @staticmethod + def residual_add_bias_fp32(hidden_state, residual, attention_output, attention_bias, final_bias, mp_size, + mlp_after_attn, add_bias, pre_layer_norm): + return NPUInference._residual_add_bias(hidden_state, residual, attention_output, attention_bias, final_bias, + mp_size, mlp_after_attn, add_bias, pre_layer_norm) + + +class InferenceBuilder(NPUOpBuilder): + BUILD_VAR = "DS_BUILD_TRANSFORMER_INFERENCE" + NAME = "transformer_inference" + + def __init__(self): + super().__init__(name=self.NAME) + + def absolute_name(self): + return f'deepspeed.ops.transformer.inference.{self.NAME}_op' + + def sources(self): + return [] + + def include_paths(self): + return [] + + def load(self, verbose=True): + return NPUInference diff --git a/op_builder/quantizer.py b/op_builder/quantizer.py index fd765b743de0..0b5348e5af96 100644 --- a/op_builder/quantizer.py +++ b/op_builder/quantizer.py @@ -32,4 +32,7 @@ def include_paths(self): return ['csrc/includes'] def extra_ldflags(self): - return ['-lcurand'] + if not self.is_rocm_pytorch(): + return ['-lcurand'] + else: + return [] diff --git a/op_builder/ragged_ops.py b/op_builder/ragged_ops.py index 13d71b476b5a..0df28cc2282a 100644 --- a/op_builder/ragged_ops.py +++ b/op_builder/ragged_ops.py @@ -19,11 +19,12 @@ def __init__(self, name=None): def absolute_name(self): return f'deepspeed.inference.v2.kernels.ragged_ops.{self.NAME}' - def is_compatible(self, verbose=True): + def is_compatible(self, verbose=False): try: import torch except ImportError: - self.warning("Please install torch if trying to pre-compile inference kernels") + if verbose: + self.warning("Please install torch if trying to pre-compile inference kernels") return False cuda_okay = True @@ -32,18 +33,20 @@ def is_compatible(self, verbose=True): torch_cuda_major = int(torch.version.cuda.split('.')[0]) cuda_capability = torch.cuda.get_device_properties(0).major #ignore-cuda if cuda_capability < 6: - self.warning("NVIDIA Inference is only supported on Pascal and newer architectures") + if verbose: + self.warning("NVIDIA Inference is only supported on Pascal and newer architectures") cuda_okay = False if cuda_capability >= 8: if torch_cuda_major < 11 or sys_cuda_major < 11: - self.warning("On Ampere and higher architectures please use CUDA 11+") + if verbose: + self.warning("On Ampere and higher architectures please use CUDA 11+") cuda_okay = False return super().is_compatible(verbose) and cuda_okay def filter_ccs(self, ccs): ccs_retained = [] ccs_pruned = [] - for cc in ccs: + for cc in [cc.split('.') for cc in ccs]: if int(cc[0]) >= 8: # Blocked flash has a dependency on Ampere + newer ccs_retained.append(cc) @@ -63,18 +66,18 @@ def sources(self): "inference/v2/kernels/ragged_ops/atom_builder/atom_builder.cpp", "inference/v2/kernels/ragged_ops/blocked_flash/blocked_flash.cpp", "inference/v2/kernels/ragged_ops/embed/embed.cpp", - "inference/v2/kernels/ragged_ops/embed/embed.cu", + "inference/v2/kernels/ragged_ops/embed/embed_cuda.cu", "inference/v2/kernels/ragged_ops/linear_blocked_kv_rotary/blocked_kv_rotary.cpp", - "inference/v2/kernels/ragged_ops/linear_blocked_kv_rotary/blocked_kv_rotary.cu", + "inference/v2/kernels/ragged_ops/linear_blocked_kv_rotary/blocked_kv_rotary_cuda.cu", "inference/v2/kernels/ragged_ops/logits_gather/logits_gather.cpp", - "inference/v2/kernels/ragged_ops/logits_gather/logits_gather.cu", + "inference/v2/kernels/ragged_ops/logits_gather/logits_gather_cuda.cu", "inference/v2/kernels/ragged_ops/moe_scatter/moe_scatter.cpp", - "inference/v2/kernels/ragged_ops/moe_scatter/moe_scatter.cu", + "inference/v2/kernels/ragged_ops/moe_scatter/moe_scatter_cuda.cu", "inference/v2/kernels/ragged_ops/moe_gather/moe_gather.cpp", - "inference/v2/kernels/ragged_ops/moe_gather/moe_gather.cu", + "inference/v2/kernels/ragged_ops/moe_gather/moe_gather_cuda.cu", "inference/v2/kernels/ragged_ops/ragged_helpers/ragged_kernel_helpers.cpp", - "inference/v2/kernels/ragged_ops/top_1_gating/top_1_gating.cpp", - "inference/v2/kernels/ragged_ops/top_1_gating/top_1_gating.cu", + "inference/v2/kernels/ragged_ops/top_k_gating/top_k_gating.cpp", + "inference/v2/kernels/ragged_ops/top_k_gating/top_k_gating_cuda.cu", ] prefix = self.get_prefix() @@ -101,12 +104,13 @@ def include_paths(self): 'inference/v2/kernels/ragged_ops/atom_builder', 'inference/v2/kernels/ragged_ops/blocked_flash', 'inference/v2/kernels/ragged_ops/embed', + 'inference/v2/kernels/ragged_ops/includes', 'inference/v2/kernels/ragged_ops/linear_blocked_kv_rotary', 'inference/v2/kernels/ragged_ops/logits_gather', 'inference/v2/kernels/ragged_ops/moe_gather', 'inference/v2/kernels/ragged_ops/moe_scatter', 'inference/v2/kernels/ragged_ops/ragged_helpers', - 'inference/v2/kernels/ragged_ops/top_1_gating', + 'inference/v2/kernels/ragged_ops/top_k_gating', ] prefix = self.get_prefix() diff --git a/op_builder/ragged_utils.py b/op_builder/ragged_utils.py index 89450e1fd30d..208c9f833ebe 100755 --- a/op_builder/ragged_utils.py +++ b/op_builder/ragged_utils.py @@ -19,11 +19,12 @@ def __init__(self, name=None): def absolute_name(self): return f'deepspeed.inference.v2.{self.NAME}' - def is_compatible(self, verbose=True): + def is_compatible(self, verbose=False): try: import torch except ImportError: - self.warning("Please install torch if trying to pre-compile inference kernels") + if verbose: + self.warning("Please install torch if trying to pre-compile inference kernels") return False cuda_okay = True @@ -32,18 +33,20 @@ def is_compatible(self, verbose=True): torch_cuda_major = int(torch.version.cuda.split('.')[0]) cuda_capability = torch.cuda.get_device_properties(0).major #ignore-cuda if cuda_capability < 6: - self.warning("NVIDIA Inference is only supported on Pascal and newer architectures") + if verbose: + self.warning("NVIDIA Inference is only supported on Pascal and newer architectures") cuda_okay = False if cuda_capability >= 8: if torch_cuda_major < 11 or sys_cuda_major < 11: - self.warning("On Ampere and higher architectures please use CUDA 11+") + if verbose: + self.warning("On Ampere and higher architectures please use CUDA 11+") cuda_okay = False return super().is_compatible(verbose) and cuda_okay def filter_ccs(self, ccs): ccs_retained = [] ccs_pruned = [] - for cc in ccs: + for cc in [cc.split('.') for cc in ccs]: if int(cc[0]) >= 6: ccs_retained.append(cc) else: diff --git a/op_builder/sdaa/__init__.py b/op_builder/sdaa/__init__.py new file mode 100755 index 000000000000..2a6eb8bbfa2c --- /dev/null +++ b/op_builder/sdaa/__init__.py @@ -0,0 +1,36 @@ +# Copyright (c) Microsoft Corporation. + +# SPDX-License-Identifier: Apache-2.0 + +# BSD 3- Clause License Copyright (c) 2023, Tecorigin Co., Ltd. All rights +# reserved. +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# Redistributions of source code must retain the above copyright notice, +# this list of conditions and the following disclaimer. +# Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# Neither the name of the copyright holder nor the names of its contributors +# may be used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +# STRICT LIABILITY,OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY +# WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY +# OF SUCH DAMAGE. + +# DeepSpeed Team +'''Copyright The Microsoft DeepSpeed Team''' + +from .no_impl import NotImplementedBuilder +from .cpu_adam import CPUAdamBuilder +from .fused_adam import FusedAdamBuilder diff --git a/op_builder/sdaa/builder.py b/op_builder/sdaa/builder.py new file mode 100755 index 000000000000..81f0e98c0768 --- /dev/null +++ b/op_builder/sdaa/builder.py @@ -0,0 +1,60 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# BSD 3- Clause License Copyright (c) 2023, Tecorigin Co., Ltd. All rights +# reserved. +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# Redistributions of source code must retain the above copyright notice, +# this list of conditions and the following disclaimer. +# Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# Neither the name of the copyright holder nor the names of its contributors +# may be used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +# STRICT LIABILITY,OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY +# WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY +# OF SUCH DAMAGE. + +# DeepSpeed Team + +try: + # is op_builder from deepspeed or a 3p version? this should only succeed if it's deepspeed + # if successful this also means we're doing a local install and not JIT compile path + from op_builder import __deepspeed__ # noqa: F401 # type: ignore + from op_builder.builder import OpBuilder +except ImportError: + from deepspeed.ops.op_builder.builder import OpBuilder + + +class SDAAOpBuilder(OpBuilder): + + def builder(self): + from torch.utils.cpp_extension import CppExtension as ExtensionBuilder + + compile_args = {'cxx': self.strip_empty_entries(self.cxx_args())} + + cpp_ext = ExtensionBuilder(name=self.absolute_name(), + sources=self.strip_empty_entries(self.sources()), + include_dirs=self.strip_empty_entries(self.include_paths()), + libraries=self.strip_empty_entries(self.libraries_args()), + extra_compile_args=compile_args) + + return cpp_ext + + def cxx_args(self): + return ['-O3', '-g', '-Wno-reorder'] + + def libraries_args(self): + return [] diff --git a/op_builder/sdaa/cpu_adam.py b/op_builder/sdaa/cpu_adam.py new file mode 100755 index 000000000000..b38a71a6275d --- /dev/null +++ b/op_builder/sdaa/cpu_adam.py @@ -0,0 +1,53 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# BSD 3- Clause License Copyright (c) 2023, Tecorigin Co., Ltd. All rights +# reserved. +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# Redistributions of source code must retain the above copyright notice, +# this list of conditions and the following disclaimer. +# Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# Neither the name of the copyright holder nor the names of its contributors +# may be used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +# STRICT LIABILITY,OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY +# WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY +# OF SUCH DAMAGE. + +# DeepSpeed Team + +from .builder import SDAAOpBuilder + + +class CPUAdamBuilder(SDAAOpBuilder): + BUILD_VAR = "DS_BUILD_CPU_ADAM" + NAME = "cpu_adam" + + def __init__(self): + super().__init__(name=self.NAME) + + def absolute_name(self): + return f'deepspeed.ops.adam.{self.NAME}_op' + + def sources(self): + return ['csrc/adam/cpu_adam.cpp', 'csrc/adam/cpu_adam_impl.cpp'] + + def libraries_args(self): + args = super().libraries_args() + return args + + def include_paths(self): + return ['csrc/includes'] diff --git a/op_builder/sdaa/fused_adam.py b/op_builder/sdaa/fused_adam.py new file mode 100755 index 000000000000..73a2dff41459 --- /dev/null +++ b/op_builder/sdaa/fused_adam.py @@ -0,0 +1,67 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# BSD 3- Clause License Copyright (c) 2023, Tecorigin Co., Ltd. All rights +# reserved. +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# Redistributions of source code must retain the above copyright notice, +# this list of conditions and the following disclaimer. +# Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# Neither the name of the copyright holder nor the names of its contributors +# may be used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +# STRICT LIABILITY,OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY +# WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY +# OF SUCH DAMAGE. + +# DeepSpeed Team + +from .builder import SDAAOpBuilder + +try: + import torch +except ImportError as e: + pass + + +class SDAAFusedAdam: + + @staticmethod + def multi_tensor_adam(chunk_size, noop_flag_buffer, tensor_lists, lr, beta1, beta2, epsilon, step, adam_w_mode, + bias_correction, weight_decay, *args): + g_tensor_lis, p_tensor_lis, m_tensor_lis, v_tensor_lis = tensor_lists + torch.ops.sdaa.fused_adam(g_tensor_lis, p_tensor_lis, m_tensor_lis, v_tensor_lis, [], beta1, beta2, epsilon, + lr, weight_decay, adam_w_mode, step, bias_correction) + + +class FusedAdamBuilder(SDAAOpBuilder): + BUILD_VAR = "DS_BUILD_FUSED_ADAM" + NAME = "fused_adam" + + def __init__(self): + super().__init__(name=self.NAME) + + def absolute_name(self): + return f'deepspeed.ops.adam.{self.NAME}_op' + + def sources(self): + return [] + + def include_paths(self): + return [] + + def load(self, verbose=True): + return SDAAFusedAdam diff --git a/op_builder/sdaa/no_impl.py b/op_builder/sdaa/no_impl.py new file mode 100755 index 000000000000..10a8b8f48652 --- /dev/null +++ b/op_builder/sdaa/no_impl.py @@ -0,0 +1,59 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# BSD 3- Clause License Copyright (c) 2023, Tecorigin Co., Ltd. All rights +# reserved. +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# Redistributions of source code must retain the above copyright notice, +# this list of conditions and the following disclaimer. +# Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# Neither the name of the copyright holder nor the names of its contributors +# may be used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +# STRICT LIABILITY,OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY +# WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY +# OF SUCH DAMAGE. + +# DeepSpeed Team + +from .builder import SDAAOpBuilder + + +class NotImplementedBuilder(SDAAOpBuilder): + BUILD_VAR = "DS_BUILD_NOT_IMPLEMENTED" + NAME = "deepspeed_not_implemented" + + def __init__(self, name=None): + name = self.NAME if name is None else name + super().__init__(name=name) + + def absolute_name(self): + return f'deepspeed.ops.comm.{self.NAME}_op' + + def load(self, verbose=True): + raise ValueError("This op had not been implemented on SDAA backend.") + + def sources(self): + return [] + + def cxx_args(self): + return [] + + def extra_ldflags(self): + return [] + + def include_paths(self): + return [] diff --git a/op_builder/sparse_attn.py b/op_builder/sparse_attn.py index 188d257ff4ef..b8e5e8a6fd9a 100644 --- a/op_builder/sparse_attn.py +++ b/op_builder/sparse_attn.py @@ -27,45 +27,50 @@ def sources(self): def cxx_args(self): return ['-O2', '-fopenmp'] - def is_compatible(self, verbose=True): + def is_compatible(self, verbose=False): # Check to see if llvm and cmake are installed since they are dependencies #required_commands = ['llvm-config|llvm-config-9', 'cmake'] #command_status = list(map(self.command_exists, required_commands)) #deps_compatible = all(command_status) if self.is_rocm_pytorch(): - self.warning(f'{self.NAME} is not compatible with ROCM') + if verbose: + self.warning(f'{self.NAME} is not compatible with ROCM') return False try: import torch except ImportError: - self.warning(f"unable to import torch, please install it first") + if verbose: + self.warning(f"unable to import torch, please install it first") return False # torch-cpu will not have a cuda version if torch.version.cuda is None: cuda_compatible = False - self.warning(f"{self.NAME} cuda is not available from torch") + if verbose: + self.warning(f"{self.NAME} cuda is not available from torch") else: major, minor = torch.version.cuda.split('.')[:2] cuda_compatible = (int(major) == 10 and int(minor) >= 1) or (int(major) >= 11) if not cuda_compatible: - self.warning(f"{self.NAME} requires CUDA version 10.1+") + if verbose: + self.warning(f"{self.NAME} requires CUDA version 10.1+") TORCH_MAJOR = int(torch.__version__.split('.')[0]) TORCH_MINOR = int(torch.__version__.split('.')[1]) torch_compatible = (TORCH_MAJOR == 1 and TORCH_MINOR >= 5) if not torch_compatible: - self.warning( - f'{self.NAME} requires a torch version >= 1.5 and < 2.0 but detected {TORCH_MAJOR}.{TORCH_MINOR}') - + if verbose: + self.warning( + f'{self.NAME} requires a torch version >= 1.5 and < 2.0 but detected {TORCH_MAJOR}.{TORCH_MINOR}') try: import triton except ImportError: # auto-install of triton is broken on some systems, reverting to manual install for now - # see this issue: https://github.com/microsoft/DeepSpeed/issues/1710 - self.warning(f"please install triton==1.0.0 if you want to use sparse attention") + # see this issue: https://github.com/deepspeedai/DeepSpeed/issues/1710 + if verbose: + self.warning(f"please install triton==1.0.0 if you want to use sparse attention") return False if pkg_version: @@ -76,7 +81,9 @@ def is_compatible(self, verbose=True): triton_mismatch = installed_triton != "1.0.0" if triton_mismatch: - self.warning(f"using untested triton version ({installed_triton}), only 1.0.0 is known to be compatible") + if verbose: + self.warning( + f"using untested triton version ({installed_triton}), only 1.0.0 is known to be compatible") return False return super().is_compatible(verbose) and torch_compatible and cuda_compatible diff --git a/op_builder/spatial_inference.py b/op_builder/spatial_inference.py index 59caf57f938d..d6c5fa661156 100644 --- a/op_builder/spatial_inference.py +++ b/op_builder/spatial_inference.py @@ -17,11 +17,12 @@ def __init__(self, name=None): def absolute_name(self): return f'deepspeed.ops.spatial.{self.NAME}_op' - def is_compatible(self, verbose=True): + def is_compatible(self, verbose=False): try: import torch except ImportError: - self.warning("Please install torch if trying to pre-compile inference kernels") + if verbose: + self.warning("Please install torch if trying to pre-compile inference kernels") return False cuda_okay = True @@ -31,7 +32,8 @@ def is_compatible(self, verbose=True): cuda_capability = torch.cuda.get_device_properties(0).major if cuda_capability >= 8: if torch_cuda_major < 11 or sys_cuda_major < 11: - self.warning("On Ampere and higher architectures please use CUDA 11+") + if verbose: + self.warning("On Ampere and higher architectures please use CUDA 11+") cuda_okay = False return super().is_compatible(verbose) and cuda_okay diff --git a/op_builder/transformer_inference.py b/op_builder/transformer_inference.py index 5ee902289448..642aed56a192 100755 --- a/op_builder/transformer_inference.py +++ b/op_builder/transformer_inference.py @@ -17,11 +17,12 @@ def __init__(self, name=None): def absolute_name(self): return f'deepspeed.ops.transformer.inference.{self.NAME}_op' - def is_compatible(self, verbose=True): + def is_compatible(self, verbose=False): try: import torch except ImportError: - self.warning("Please install torch if trying to pre-compile inference kernels") + if verbose: + self.warning("Please install torch if trying to pre-compile inference kernels") return False cuda_okay = True @@ -30,18 +31,20 @@ def is_compatible(self, verbose=True): torch_cuda_major = int(torch.version.cuda.split('.')[0]) cuda_capability = torch.cuda.get_device_properties(0).major if cuda_capability < 6: - self.warning("NVIDIA Inference is only supported on Pascal and newer architectures") + if verbose: + self.warning("NVIDIA Inference is only supported on Pascal and newer architectures") cuda_okay = False if cuda_capability >= 8: if torch_cuda_major < 11 or sys_cuda_major < 11: - self.warning("On Ampere and higher architectures please use CUDA 11+") + if verbose: + self.warning("On Ampere and higher architectures please use CUDA 11+") cuda_okay = False return super().is_compatible(verbose) and cuda_okay def filter_ccs(self, ccs): ccs_retained = [] ccs_pruned = [] - for cc in ccs: + for cc in [cc.split('.') for cc in ccs]: if int(cc[0]) >= 6: ccs_retained.append(cc) else: diff --git a/op_builder/xpu/__init__.py b/op_builder/xpu/__init__.py new file mode 100755 index 000000000000..093f90b30234 --- /dev/null +++ b/op_builder/xpu/__init__.py @@ -0,0 +1,13 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from .cpu_adam import CPUAdamBuilder +from .cpu_adagrad import CPUAdagradBuilder +from .fused_adam import FusedAdamBuilder +from .async_io import AsyncIOBuilder +from .inference import InferenceBuilder +from .flash_attn import FlashAttentionBuilder +from .no_impl import NotImplementedBuilder +from .packbits import PackbitsBuilder diff --git a/op_builder/xpu/async_io.py b/op_builder/xpu/async_io.py new file mode 100644 index 000000000000..2da963ae64aa --- /dev/null +++ b/op_builder/xpu/async_io.py @@ -0,0 +1,106 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import distutils.spawn +import subprocess + +from .builder import OpBuilder + + +class AsyncIOBuilder(OpBuilder): + BUILD_VAR = "DS_BUILD_AIO" + NAME = "async_io" + + def __init__(self): + super().__init__(name=self.NAME) + + def absolute_name(self): + return f'deepspeed.ops.aio.{self.NAME}_op' + + def sources(self): + return [ + 'csrc/aio/py_lib/deepspeed_py_copy.cpp', + 'csrc/aio/py_lib/py_ds_aio.cpp', + 'csrc/aio/py_lib/deepspeed_py_aio.cpp', + 'csrc/aio/py_lib/deepspeed_py_aio_handle.cpp', + 'csrc/aio/py_lib/deepspeed_aio_thread.cpp', + 'csrc/aio/common/deepspeed_aio_utils.cpp', + 'csrc/aio/common/deepspeed_aio_common.cpp', + 'csrc/aio/common/deepspeed_aio_types.cpp', + 'csrc/aio/py_lib/deepspeed_pin_tensor.cpp', + 'csrc/aio/py_lib/deepspeed_py_io_handle.cpp', + 'csrc/aio/py_lib/deepspeed_cpu_op.cpp', + 'csrc/aio/py_lib/deepspeed_aio_op_desc.cpp', + ] + + def include_paths(self): + return ['csrc/aio/py_lib', 'csrc/aio/common'] + + def cxx_args(self): + import torch + # -O0 for improved debugging, since performance is bound by I/O + CPU_ARCH = self.cpu_arch() + SIMD_WIDTH = self.simd_width() + TORCH_MAJOR, TORCH_MINOR = map(int, torch.__version__.split('.')[0:2]) + if TORCH_MAJOR >= 2 and TORCH_MINOR >= 1: + CPP_STD = '-std=c++17' + else: + CPP_STD = '-std=c++14' + return [ + '-g', + '-Wall', + '-O0', + CPP_STD, + '-shared', + '-fPIC', + '-Wno-reorder', + CPU_ARCH, + '-fopenmp', + SIMD_WIDTH, + '-laio', + ] + + def extra_ldflags(self): + return ['-laio'] + + def check_for_libaio_pkg(self): + libs = dict( + dpkg=["-l", "libaio-dev", "apt"], + pacman=["-Q", "libaio", "pacman"], + rpm=["-q", "libaio-devel", "yum"], + ) + + found = False + for pkgmgr, data in libs.items(): + flag, lib, tool = data + path = distutils.spawn.find_executable(pkgmgr) + if path is not None: + cmd = [pkgmgr, flag, lib] + result = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + if result.wait() == 0: + found = True + else: + self.warning(f"{self.NAME}: please install the {lib} package with {tool}") + break + return found + + def is_compatible(self, verbose=False): + # Check for the existence of libaio by using distutils + # to compile and link a test program that calls io_submit, + # which is a function provided by libaio that is used in the async_io op. + # If needed, one can define -I and -L entries in CFLAGS and LDFLAGS + # respectively to specify the directories for libaio.h and libaio.so. + aio_compatible = self.has_function('io_pgetevents', ('aio', )) + if verbose and not aio_compatible: + self.warning(f"{self.NAME} requires the dev libaio .so object and headers but these were not found.") + + # Check for the libaio package via known package managers + # to print suggestions on which package to install. + self.check_for_libaio_pkg() + + self.warning( + "If libaio is already installed (perhaps from source), try setting the CFLAGS and LDFLAGS environment variables to where it can be found." + ) + return super().is_compatible(verbose) and aio_compatible diff --git a/op_builder/xpu/builder.py b/op_builder/xpu/builder.py new file mode 100644 index 000000000000..81b15f197f43 --- /dev/null +++ b/op_builder/xpu/builder.py @@ -0,0 +1,131 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import os +import time +import importlib + +try: + # is op_builder from deepspeed or a 3p version? this should only succeed if it's deepspeed + # if successful this also means we're doing a local install and not JIT compile path + from op_builder import __deepspeed__ # noqa: F401 # type: ignore + from op_builder.builder import OpBuilder +except ImportError: + from deepspeed.ops.op_builder.builder import OpBuilder + + +class SYCLOpBuilder(OpBuilder): + + def builder(self): + try: + from intel_extension_for_pytorch.xpu.cpp_extension import DPCPPExtension + except ImportError: + from intel_extension_for_pytorch.xpu.utils import DPCPPExtension + include_dirs = [os.path.abspath(x) for x in self.strip_empty_entries(self.include_paths())] + print("dpcpp sources = {}".format(self.sources())) + dpcpp_ext = DPCPPExtension(name=self.absolute_name(), + sources=self.strip_empty_entries(self.sources()), + include_dirs=include_dirs, + extra_compile_args={ + 'cxx': self.strip_empty_entries(self.cxx_args()), + }, + extra_link_args=self.strip_empty_entries(self.fixed_aotflags())) + return dpcpp_ext + + def version_dependent_macros(self): + try: + from op_builder.builder import TORCH_MAJOR, TORCH_MINOR + except ImportError: + from deepspeed.ops.op_builder.builder import TORCH_MAJOR, TORCH_MINOR + # Fix from apex that might be relevant for us as well, related to https://github.com/NVIDIA/apex/issues/456 + version_ge_1_1 = [] + if (TORCH_MAJOR > 1) or (TORCH_MAJOR == 1 and TORCH_MINOR > 0): + version_ge_1_1 = ['-DVERSION_GE_1_1'] + version_ge_1_3 = [] + if (TORCH_MAJOR > 1) or (TORCH_MAJOR == 1 and TORCH_MINOR > 2): + version_ge_1_3 = ['-DVERSION_GE_1_3'] + version_ge_1_5 = [] + if (TORCH_MAJOR > 1) or (TORCH_MAJOR == 1 and TORCH_MINOR > 4): + version_ge_1_5 = ['-DVERSION_GE_1_5'] + return version_ge_1_1 + version_ge_1_3 + version_ge_1_5 + + def cxx_args(self): + cxx_flags = [ + '-fsycl', '-fsycl-targets=spir64_gen', '-g', '-gdwarf-4', '-O3', '-std=c++17', '-fPIC', '-DMKL_ILP64', + '-fno-strict-aliasing' + ] + if os.environ.get('USE_MKL_GEMM'): + cxx_flags.append('-DUSE_MKL_GEMM') + return cxx_flags + + def extra_ldflags(self): + return [ + '-fPIC', '-fsycl', '-fsycl-targets=spir64_gen', '-fsycl-max-parallel-link-jobs=8', + '-Xs "-options -cl-poison-unsupported-fp64-kernels,cl-intel-enable-auto-large-GRF-mode"', + '-Xs "-device pvc"', '-Wl,-export-dynamic' + ] + + def fixed_aotflags(self): + return [ + '-fsycl', '-fsycl-targets=spir64_gen', '-fsycl-max-parallel-link-jobs=8', '-Xs', + "-options -cl-poison-unsupported-fp64-kernels,cl-intel-enable-auto-large-GRF-mode", '-Xs', "-device pvc" + ] + + def load(self, verbose=True): + from deepspeed.git_version_info import installed_ops, torch_info, accelerator_name # noqa: F401 + from deepspeed.accelerator import get_accelerator + if installed_ops.get(self.name, False) and accelerator_name == get_accelerator()._name: + return importlib.import_module(self.absolute_name()) + else: + return self.jit_load(verbose) + + def jit_load(self, verbose=True): + if not self.is_compatible(verbose): + raise RuntimeError( + f"Unable to JIT load the {self.name} op due to it not being compatible due to hardware/software issue. {self.error_log}" + ) + try: + import ninja # noqa: F401 + except ImportError: + raise RuntimeError(f"Unable to JIT load the {self.name} op due to ninja not being installed.") + + self.jit_mode = True + from intel_extension_for_pytorch.xpu.cpp_extension import load + + start_build = time.time() + # Recognize relative paths as absolute paths for jit load + + sources = [self.deepspeed_src_path(path) for path in self.sources()] + extra_include_paths = [self.deepspeed_src_path(path) for path in self.include_paths()] + + # Torch will try and apply whatever CCs are in the arch list at compile time, + # we have already set the intended targets ourselves we know that will be + # needed at runtime. This prevents CC collisions such as multiple __half + # implementations. Stash arch list to reset after build. + ''' + torch_arch_list = None + if "TORCH_CUDA_ARCH_LIST" in os.environ: + torch_arch_list = os.environ.get("TORCH_CUDA_ARCH_LIST") + os.environ["TORCH_CUDA_ARCH_LIST"] = "" + ''' + + op_module = load( + name=self.name, + sources=self.strip_empty_entries(sources), + extra_include_paths=self.strip_empty_entries(extra_include_paths), + extra_cflags=self.strip_empty_entries(self.cxx_args()), + # extra_cuda_cflags=self.strip_empty_entries(self.nvcc_args()), + extra_ldflags=self.strip_empty_entries(self.extra_ldflags()), + verbose=verbose) + + build_duration = time.time() - start_build + if verbose: + print(f"Time to load {self.name} op: {build_duration} seconds") + ''' + # Reset arch list so we are not silently removing it for other possible use cases + if torch_arch_list: + os.environ["TORCH_CUDA_ARCH_LIST"] = torch_arch_list + ''' + return op_module diff --git a/op_builder/xpu/cpu_adagrad.py b/op_builder/xpu/cpu_adagrad.py new file mode 100644 index 000000000000..18f80848e1b8 --- /dev/null +++ b/op_builder/xpu/cpu_adagrad.py @@ -0,0 +1,23 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from .builder import SYCLOpBuilder + + +class CPUAdagradBuilder(SYCLOpBuilder): + BUILD_VAR = "DS_BUILD_CPU_ADAGRAD" + NAME = "cpu_adagrad" + + def __init__(self): + super().__init__(name=self.NAME) + + def absolute_name(self): + return f'deepspeed.ops.adagrad.{self.NAME}_op' + + def sources(self): + return ['csrc/xpu/adagrad/cpu_adagrad.cpp', 'csrc/xpu/common/custom_cuda_kernel.dp.cpp'] + + def include_paths(self): + return ['csrc/xpu/includes'] diff --git a/op_builder/xpu/cpu_adam.py b/op_builder/xpu/cpu_adam.py new file mode 100644 index 000000000000..9d5fdcd3e8ab --- /dev/null +++ b/op_builder/xpu/cpu_adam.py @@ -0,0 +1,27 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from .builder import SYCLOpBuilder + + +class CPUAdamBuilder(SYCLOpBuilder): + BUILD_VAR = "DS_BUILD_CPU_ADAM" + NAME = "cpu_adam" + + def __init__(self): + super().__init__(name=self.NAME) + + def absolute_name(self): + return f'deepspeed.ops.adam.{self.NAME}_op' + + def sources(self): + return ['csrc/adam/cpu_adam.cpp', 'csrc/adam/cpu_adam_impl.cpp'] + + def libraries_args(self): + args = super().libraries_args() + return args + + def include_paths(self): + return ['csrc/includes'] diff --git a/op_builder/xpu/flash_attn.py b/op_builder/xpu/flash_attn.py new file mode 100644 index 000000000000..c8c2674d5d27 --- /dev/null +++ b/op_builder/xpu/flash_attn.py @@ -0,0 +1,53 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team +from .builder import SYCLOpBuilder + + +class FlashAttentionBuilderObject(): + + def __init__(self): + pass + + # general functions + def flash_attn_func_v2(self, q, k, v, dropout_p, softmax_scale, is_causal): + try: + import torch + import intel_extension_for_pytorch # noqa + return torch.nn.functional.scaled_dot_product_attention(q, + k, + v, + dropout_p=dropout_p, + is_causal=is_causal, + scale=softmax_scale) + except ImportError: + raise ImportError( + "Please install pytorch and intel_extension_for_pytorch to include scaled dot product attention.") + + +class FlashAttentionBuilder(SYCLOpBuilder): + BUILD_VAR = "DS_BUILD_FlashAttention" + NAME = "flash_attn" + + def __init__(self, name=None): + name = self.NAME if name is None else name + super().__init__(name=name) + + def absolute_name(self): + return f'deepspeed.ops.{self.NAME}_op' + + def sources(self): + return + + def include_paths(self): + return [] + + def extra_ldflags(self): + return [] + + def cxx_args(self): + return [] + + def load(self): + return FlashAttentionBuilderObject() diff --git a/op_builder/xpu/fused_adam.py b/op_builder/xpu/fused_adam.py new file mode 100644 index 000000000000..0e0f1a66f8e6 --- /dev/null +++ b/op_builder/xpu/fused_adam.py @@ -0,0 +1,26 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team +from .builder import SYCLOpBuilder + + +class FusedAdamBuilder(SYCLOpBuilder): + BUILD_VAR = "DS_BUILD_FUSED_ADAM" + NAME = "fused_adam" + + def __init__(self): + super().__init__(name=self.NAME) + + def absolute_name(self): + return f'deepspeed.ops.adam.{self.NAME}_op' + + def sources(self): + return ['csrc/xpu/adam/fused_adam_frontend.cpp', 'csrc/xpu/adam/multi_tensor_adam.dp.cpp'] + + def include_paths(self): + return ['csrc/xpu/includes', 'csrc/xpu/adam'] + + def cxx_args(self): + args = super().cxx_args() + return args + self.version_dependent_macros() diff --git a/op_builder/xpu/inference.py b/op_builder/xpu/inference.py new file mode 100644 index 000000000000..a9ac4f84c2ca --- /dev/null +++ b/op_builder/xpu/inference.py @@ -0,0 +1,39 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team +from .builder import SYCLOpBuilder + + +class InferenceBuilder(SYCLOpBuilder): + BUILD_VAR = "DS_BUILD_TRANSFORMER_INFERENCE" + NAME = "transformer_inference" + + def __init__(self, name=None): + name = self.NAME if name is None else name + super().__init__(name=name) + + def absolute_name(self): + return f'deepspeed.ops.transformer.inference.{self.NAME}_op' + + def sources(self): + return + + def include_paths(self): + return [] + + def extra_ldflags(self): + return [] + + def cxx_args(self): + return [] + + def load(self): + try: + import intel_extension_for_pytorch + if hasattr(intel_extension_for_pytorch, "deepspeed"): + return intel_extension_for_pytorch.deepspeed.transformer_inference.transformer_inference + else: + return intel_extension_for_pytorch.xpu.deepspeed + except ImportError: + raise ImportError("Please install intel-extension-for-pytorch >= 2.1.30 to include DeepSpeed kernels.") diff --git a/op_builder/xpu/no_impl.py b/op_builder/xpu/no_impl.py new file mode 100644 index 000000000000..8b294f70c279 --- /dev/null +++ b/op_builder/xpu/no_impl.py @@ -0,0 +1,33 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from .builder import SYCLOpBuilder + + +class NotImplementedBuilder(SYCLOpBuilder): + BUILD_VAR = "DS_BUILD_NOT_IMPLEMENTED" + NAME = "deepspeed_not_implemented" + + def __init__(self, name=None): + name = self.NAME if name is None else name + super().__init__(name=name) + + def absolute_name(self): + return f'deepspeed.ops.{self.NAME}_op' + + def load(self, verbose=True): + raise ValueError("This op had not been implemented on XPU backend.") + + def sources(self): + return [] + + def cxx_args(self): + return [] + + def extra_ldflags(self): + return [] + + def include_paths(self): + return [] diff --git a/op_builder/xpu/packbits.py b/op_builder/xpu/packbits.py new file mode 100644 index 000000000000..cf5b5ebc59e4 --- /dev/null +++ b/op_builder/xpu/packbits.py @@ -0,0 +1,26 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team +from .builder import SYCLOpBuilder + + +class PackbitsBuilder(SYCLOpBuilder): + BUILD_VAR = "DS_BUILD_PACK_BITS" + NAME = "pack_bits" + + def __init__(self): + super().__init__(name=self.NAME) + + def absolute_name(self): + return f'deepspeed.ops.{self.NAME}_op' + + def sources(self): + return ['csrc/xpu/packbits/packing.cpp'] + + def include_paths(self): + return ['csrc/xpu/includes'] + + def cxx_args(self): + args = super().cxx_args() + return args + self.version_dependent_macros() diff --git a/release/release.sh b/release/release.sh index a83fafcb9b1f..cc3ee2feae62 100644 --- a/release/release.sh +++ b/release/release.sh @@ -38,7 +38,7 @@ if [ $? != 0 ]; then exit 1 fi -DS_BUILD_STRING="" python setup.py sdist +DS_BUILD_STRING="" python -m build --sdist if [ ! -f dist/deepspeed-${version}.tar.gz ]; then echo "prepared version does not match version given ($version), bump version first?" diff --git a/requirements/requirements-dev.txt b/requirements/requirements-dev.txt index 105dd094f995..71ad3f0b262b 100644 --- a/requirements/requirements-dev.txt +++ b/requirements/requirements-dev.txt @@ -1,20 +1,21 @@ accelerate -clang-format==16.0.2 -coverage -deepspeed-kernels +clang-format==18.1.3 +comet_ml>=3.41.0 +deepspeed-kernels ; sys_platform == 'linux' docutils<0.18 future importlib-metadata>=4 mup -pre-commit>=2.20.0 -pytest +pre-commit>=3.2.0 +pytest>=7.2.0 pytest-forked pytest-randomly pytest-xdist +qtorch==0.3.0 recommonmark sphinx sphinx-rtd-theme tensorboard torchvision -transformers +transformers>=4.39.0 wandb diff --git a/requirements/requirements-inf.txt b/requirements/requirements-inf.txt index 848a7f7a485d..b7fd13787e8b 100644 --- a/requirements/requirements-inf.txt +++ b/requirements/requirements-inf.txt @@ -1,5 +1,7 @@ google lm-eval==0.3.0 protobuf -transformers -transformers[sentencepiece] +qtorch +safetensors +sentencepiece +transformers>=4.32.1 diff --git a/requirements/requirements-readthedocs.txt b/requirements/requirements-readthedocs.txt index 1a2ad18611e7..a48a47e4428d 100644 --- a/requirements/requirements-readthedocs.txt +++ b/requirements/requirements-readthedocs.txt @@ -1,10 +1,10 @@ -autodoc_pydantic +autodoc_pydantic>=2.0.0 docutils<0.18 hjson packaging psutil py-cpuinfo -pydantic<2.0.0 +pydantic>=2.0.0 recommonmark sphinx_rtd_theme torch diff --git a/requirements/requirements-sd.txt b/requirements/requirements-sd.txt index cb679ae3771d..0b2ce8c2b56f 100644 --- a/requirements/requirements-sd.txt +++ b/requirements/requirements-sd.txt @@ -1,2 +1,2 @@ -diffusers +diffusers>=0.25.0 triton>=2.1.0 diff --git a/requirements/requirements-triton.txt b/requirements/requirements-triton.txt index f43a7e19e242..3b382f83f2ae 100644 --- a/requirements/requirements-triton.txt +++ b/requirements/requirements-triton.txt @@ -1 +1 @@ -triton>=2.1.0 +triton==2.1.0 diff --git a/requirements/requirements.txt b/requirements/requirements.txt index 80c9f9b3287a..1af4c69c5807 100755 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -1,10 +1,11 @@ +einops hjson +msgpack ninja numpy packaging>=20.0 psutil py-cpuinfo -pydantic -pynvml +pydantic>=2.0.0 torch tqdm diff --git a/scripts/check-extraindexurl.py b/scripts/check-extraindexurl.py new file mode 100755 index 000000000000..01b506dc939d --- /dev/null +++ b/scripts/check-extraindexurl.py @@ -0,0 +1,42 @@ +#!/usr/bin/env python3 +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from __future__ import annotations +'''Copyright The Microsoft DeepSpeed Team''' +""" +Checks each file in sys.argv for the string "--extra-index-url". +Modified from https://github.com/jlebar/pre-commit-hooks/blob/master/check_do_not_submit.py +""" + +import subprocess +import sys + + +def err(s: str) -> None: + print(s, file=sys.stderr) + + +print(*sys.argv[1:]) + +# There are many ways we could search for the string "--extra-index-url", but `git +# grep --no-index` is nice because +# - it's very fast (as compared to iterating over the file in Python) +# - we can reasonably assume it's available on all machines +# - unlike plain grep, which is slower and has different flags on MacOS versus +# Linux, git grep is always the same. +res = subprocess.run( + ["git", "grep", "-Hn", "--no-index", "-e", r"--extra-index-url", *sys.argv[1:]], + capture_output=True, +) +if res.returncode == 0: + err('Error: The string "--extra-index-url" was found.\nPlease replace all calls to --extra-index-url with "--index-url"' + ) + err(res.stdout.decode("utf-8")) + sys.exit(1) +elif res.returncode == 2: + err(f"Error invoking grep on {', '.join(sys.argv[1:])}:") + err(res.stderr.decode("utf-8")) + sys.exit(2) diff --git a/setup.py b/setup.py index d9aed9b47bd8..0ad54bb99403 100755 --- a/setup.py +++ b/setup.py @@ -5,8 +5,8 @@ """ DeepSpeed library -To build wheel on Windows: -1. Install pytorch, such as pytorch 1.12 + cuda 11.6. +To build wheels on Windows: +1. Install pytorch, such as pytorch 2.3 + cuda 12.1. 2. Install visual cpp build tool. 3. Include cuda toolkit. 4. Launch cmd console with Administrator privilege for creating required symlink folders. @@ -18,13 +18,16 @@ The wheel will be located at: dist/*.whl """ +import pathlib import os +import shutil import sys import subprocess from setuptools import setup, find_packages from setuptools.command import egg_info import time import typing +import shlex torch_available = True try: @@ -35,9 +38,11 @@ 'Please visit https://pytorch.org/ to see how to properly install torch on your system.') from op_builder import get_default_compute_capabilities, OpBuilder -from op_builder.all_ops import ALL_OPS +from op_builder.all_ops import ALL_OPS, accelerator_name from op_builder.builder import installed_cuda_version +from accelerator import get_accelerator + # Fetch rocm state. is_rocm_pytorch = OpBuilder.is_rocm_pytorch() rocm_version = OpBuilder.installed_rocm_version() @@ -88,13 +93,17 @@ def get_env_if_set(key, default: typing.Any = ""): 'triton': fetch_requirements('requirements/requirements-triton.txt'), } +# Only install pynvml on nvidia gpus. +if torch_available and get_accelerator().device_name() == 'cuda' and not is_rocm_pytorch: + install_requires.append('nvidia-ml-py') + # Add specific cupy version to both onebit extension variants. -if torch_available and torch.cuda.is_available(): +if torch_available and get_accelerator().device_name() == 'cuda': cupy = None if is_rocm_pytorch: rocm_major, rocm_minor = rocm_version - # XXX cupy support for rocm 5 is not available yet. - if rocm_major <= 4: + # cupy support for rocm>5.0 is not available yet. + if (rocm_major == 5 and rocm_minor == 0) or rocm_major <= 4: cupy = f"cupy-rocm-{rocm_major}-{rocm_minor}" else: cuda_major_ver, cuda_minor_ver = installed_cuda_version() @@ -118,8 +127,8 @@ def get_env_if_set(key, default: typing.Any = ""): # For any pre-installed ops force disable ninja. if torch_available: - from accelerator import get_accelerator - cmdclass['build_ext'] = get_accelerator().build_extension().with_options(use_ninja=False) + use_ninja = is_env_set("DS_ENABLE_NINJA") + cmdclass['build_ext'] = get_accelerator().build_extension().with_options(use_ninja=use_ninja) if torch_available: TORCH_MAJOR = torch.__version__.split('.')[0] @@ -128,7 +137,7 @@ def get_env_if_set(key, default: typing.Any = ""): TORCH_MAJOR = "0" TORCH_MINOR = "0" -if torch_available and not torch.cuda.is_available(): +if torch_available and not get_accelerator().device_name() == 'cuda': # Fix to allow docker builds, similar to https://github.com/NVIDIA/apex/issues/486. print("[WARNING] Torch did not find cuda available, if cross-compiling or running with cpu only " "you can ignore this message. Adding compute capability for Pascal, Volta, and Turing " @@ -149,10 +158,12 @@ def get_env_if_set(key, default: typing.Any = ""): def command_exists(cmd): if sys.platform == "win32": - result = subprocess.Popen(f'{cmd}', stdout=subprocess.PIPE, shell=True) + safe_cmd = shlex.split(f'{cmd}') + result = subprocess.Popen(safe_cmd, stdout=subprocess.PIPE) return result.wait() == 1 else: - result = subprocess.Popen(f'type {cmd}', stdout=subprocess.PIPE, shell=True) + safe_cmd = shlex.split(f"bash -c type {cmd}") + result = subprocess.Popen(safe_cmd, stdout=subprocess.PIPE) return result.wait() == 0 @@ -167,19 +178,16 @@ def op_enabled(op_name): return int(get_env_if_set(env_var, BUILD_OP_DEFAULT)) -compatible_ops = dict.fromkeys(ALL_OPS.keys(), False) install_ops = dict.fromkeys(ALL_OPS.keys(), False) for op_name, builder in ALL_OPS.items(): op_compatible = builder.is_compatible() - compatible_ops[op_name] = op_compatible - compatible_ops["deepspeed_not_implemented"] = False # If op is requested but not available, throw an error. if op_enabled(op_name) and not op_compatible: env_var = op_envvar(op_name) if not is_env_set(env_var): - builder.warning(f"One can disable {op_name} with {env_var}=0") - abort(f"Unable to pre-compile {op_name}") + builder.warning(f"Skip pre-compile of incompatible {op_name}; One can disable {op_name} with {env_var}=0") + continue # If op is compatible but install is not enabled (JIT mode). if is_rocm_pytorch and op_compatible and not op_enabled(op_name): @@ -194,13 +202,13 @@ def op_enabled(op_name): print(f'Install Ops={install_ops}') # Write out version/git info. -git_hash_cmd = "git rev-parse --short HEAD" -git_branch_cmd = "git rev-parse --abbrev-ref HEAD" +git_hash_cmd = shlex.split("bash -c \"git rev-parse --short HEAD\"") +git_branch_cmd = shlex.split("bash -c \"git rev-parse --abbrev-ref HEAD\"") if command_exists('git') and not is_env_set('DS_BUILD_STRING'): try: - result = subprocess.check_output(git_hash_cmd, shell=True) + result = subprocess.check_output(git_hash_cmd) git_hash = result.decode('utf-8').strip() - result = subprocess.check_output(git_branch_cmd, shell=True) + result = subprocess.check_output(git_branch_cmd) git_branch = result.decode('utf-8').strip() except subprocess.CalledProcessError: git_hash = "unknown" @@ -209,28 +217,23 @@ def op_enabled(op_name): git_hash = "unknown" git_branch = "unknown" - -def create_dir_symlink(src, dest): - if not os.path.islink(dest): - if os.path.exists(dest): - os.remove(dest) - assert not os.path.exists(dest) - os.symlink(src, dest) - - if sys.platform == "win32": - # This creates a symbolic links on Windows. - # It needs Administrator privilege to create symlinks on Windows. - create_dir_symlink('..\\..\\csrc', '.\\deepspeed\\ops\\csrc') - create_dir_symlink('..\\..\\op_builder', '.\\deepspeed\\ops\\op_builder') - create_dir_symlink('..\\accelerator', '.\\deepspeed\\accelerator') + shutil.rmtree('.\\deepspeed\\ops\\csrc', ignore_errors=True) + pathlib.Path('.\\deepspeed\\ops\\csrc').unlink(missing_ok=True) + shutil.copytree('.\\csrc', '.\\deepspeed\\ops\\csrc', dirs_exist_ok=True) + shutil.rmtree('.\\deepspeed\\ops\\op_builder', ignore_errors=True) + pathlib.Path('.\\deepspeed\\ops\\op_builder').unlink(missing_ok=True) + shutil.copytree('.\\op_builder', '.\\deepspeed\\ops\\op_builder', dirs_exist_ok=True) + shutil.rmtree('.\\deepspeed\\accelerator', ignore_errors=True) + pathlib.Path('.\\deepspeed\\accelerator').unlink(missing_ok=True) + shutil.copytree('.\\accelerator', '.\\deepspeed\\accelerator', dirs_exist_ok=True) egg_info.manifest_maker.template = 'MANIFEST_win.in' # Parse the DeepSpeed version string from version.txt. version_str = open('version.txt', 'r').read().strip() # Build specifiers like .devX can be added at install time. Otherwise, add the git hash. -# Example: DS_BUILD_STRING=".dev20201022" python setup.py sdist bdist_wheel. +# Example: `DS_BUILD_STRING=".dev20201022" python -m build --no-isolation`. # Building wheel for distribution, update version file. if is_env_set('DS_BUILD_STRING'): @@ -279,11 +282,10 @@ def create_dir_symlink(src, dest): fd.write(f"git_hash='{git_hash}'\n") fd.write(f"git_branch='{git_branch}'\n") fd.write(f"installed_ops={install_ops}\n") - fd.write(f"compatible_ops={compatible_ops}\n") + fd.write(f"accelerator_name='{accelerator_name}'\n") fd.write(f"torch_info={torch_info}\n") print(f'install_requires={install_requires}') -print(f'compatible_ops={compatible_ops}') print(f'ext_modules={ext_modules}') # Parse README.md to make long_description for PyPI page. @@ -291,6 +293,14 @@ def create_dir_symlink(src, dest): with open(os.path.join(thisdir, 'README.md'), encoding='utf-8') as fin: readme_text = fin.read() +if sys.platform == "win32": + scripts = ['bin/deepspeed.bat', 'bin/ds', 'bin/ds_report.bat', 'bin/ds_report'] +else: + scripts = [ + 'bin/deepspeed', 'bin/deepspeed.pt', 'bin/ds', 'bin/ds_ssh', 'bin/ds_report', 'bin/ds_bench', 'bin/dsr', + 'bin/ds_elastic', 'bin/ds_nvme_tune', 'bin/ds_io' + ] + start_time = time.time() setup(name='deepspeed', @@ -303,20 +313,17 @@ def create_dir_symlink(src, dest): url='http://deepspeed.ai', project_urls={ 'Documentation': 'https://deepspeed.readthedocs.io', - 'Source': 'https://github.com/microsoft/DeepSpeed', + 'Source': 'https://github.com/deepspeedai/DeepSpeed', }, install_requires=install_requires, extras_require=extras_require, packages=find_packages(include=['deepspeed', 'deepspeed.*']), include_package_data=True, - scripts=[ - 'bin/deepspeed', 'bin/deepspeed.pt', 'bin/ds', 'bin/ds_ssh', 'bin/ds_report', 'bin/ds_bench', 'bin/dsr', - 'bin/ds_elastic' - ], + scripts=scripts, classifiers=[ - 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', - 'Programming Language :: Python :: 3.10' + 'Programming Language :: Python :: 3.10', 'Programming Language :: Python :: 3.11', + 'Programming Language :: Python :: 3.12' ], license='Apache Software License 2.0', ext_modules=ext_modules, diff --git a/tests/model/BingBertSquad/BingBertSquad_test_common.py b/tests/model/BingBertSquad/BingBertSquad_test_common.py index ef42f85cc945..b47ddfe0c649 100755 --- a/tests/model/BingBertSquad/BingBertSquad_test_common.py +++ b/tests/model/BingBertSquad/BingBertSquad_test_common.py @@ -7,6 +7,7 @@ import subprocess import os import time +import shlex class BaseTestCase(unittest.TestCase): @@ -40,9 +41,9 @@ def ensure_directory_exists(self, filename): os.makedirs(dirname) def clean_test_env(self): - cmd = "dlts_ssh pkill -9 -f /usr/bin/python" + cmd = shlex.split("dlts_ssh pkill -9 -f /usr/bin/python") print(cmd) - subprocess.run(cmd, shell=True, check=False, executable='/bin/bash') + subprocess.run(cmd, check=False, executable='/bin/bash') time.sleep(20) def run_BingBertSquad_test(self, test_config, output): @@ -50,8 +51,8 @@ def run_BingBertSquad_test(self, test_config, output): other_args = " " + test_config["other_args"] if "other_args" in test_config else " " cmd = "./run_BingBertSquad_sanity.sh -e 1 -g {0} {1} {2}".format(test_config["gpus"], other_args, ds_flag) - + cmd = shlex.split(cmd) self.ensure_directory_exists(output) with open(output, "w") as f: print(cmd) - subprocess.run(cmd, shell=True, check=False, executable='/bin/bash', stdout=f, stderr=f) + subprocess.run(cmd, check=False, executable='/bin/bash', stdout=f, stderr=f) diff --git a/tests/model/BingBertSquad/run_BingBertSquad.sh b/tests/model/BingBertSquad/run_BingBertSquad.sh index fcfdf5e66361..4d06bb1230a4 100755 --- a/tests/model/BingBertSquad/run_BingBertSquad.sh +++ b/tests/model/BingBertSquad/run_BingBertSquad.sh @@ -93,7 +93,7 @@ done # Validate path to BingBertSquad script if [ -z "${BingBertSquad_DIR+x}" ]; then - export BingBertSquad_DIR=../../../../DeepSpeedExamples/BingBertSquad + export BingBertSquad_DIR=../../../../DeepSpeedExamples/training/BingBertSquad echo "BingBertSquad_DIR environment variable not set; trying default: ${BingBertSquad_DIR}" fi validate_folder ${BingBertSquad_DIR} "BingBertSquad_DIR" @@ -160,8 +160,11 @@ run_cmd="deepspeed.pt \ --master_port ${master_port} ${BingBertSquad_script} ${other_args} ${squad_args}" -echo ${run_cmd} -eval ${run_cmd} +# Sanitize input before running eval() +safe_cmd=$(printf '%q' "$run_cmd") + +echo ${safe_cmd} +eval ${safe_cmd} set +x diff --git a/tests/model/BingBertSquad/run_BingBertSquad_sanity.sh b/tests/model/BingBertSquad/run_BingBertSquad_sanity.sh index 1b49a37b783f..8b6ad942ba59 100755 --- a/tests/model/BingBertSquad/run_BingBertSquad_sanity.sh +++ b/tests/model/BingBertSquad/run_BingBertSquad_sanity.sh @@ -94,7 +94,7 @@ done # Validate path to BingBertSquad script if [ -z "${BingBertSquad_DIR+x}" ]; then - export BingBertSquad_DIR=../../../DeepSpeedExamples/BingBertSquad + export BingBertSquad_DIR=../../../DeepSpeedExamples/training/BingBertSquad echo "BingBertSquad_DIR environment variable not set; trying default: ${BingBertSquad_DIR}" fi validate_folder ${BingBertSquad_DIR} "BingBertSquad_DIR" diff --git a/tests/model/BingBertSquad/run_tests.sh b/tests/model/BingBertSquad/run_tests.sh index eef93ef98796..2a69fdf01c79 100755 --- a/tests/model/BingBertSquad/run_tests.sh +++ b/tests/model/BingBertSquad/run_tests.sh @@ -31,7 +31,7 @@ validate_folder() { # Validate path to BingBertSquad script if [ -z "${BingBertSquad_DIR+x}" ]; then - export BingBertSquad_DIR=../../../DeepSpeedExamples/BingBertSquad + export BingBertSquad_DIR=../../../DeepSpeedExamples/training/BingBertSquad echo "BingBertSquad_DIR environment variable not set; trying default: ${BingBertSquad_DIR}" fi validate_folder ${BingBertSquad_DIR} "BingBertSquad_DIR" diff --git a/tests/model/BingBertSquad/test_e2e_squad.py b/tests/model/BingBertSquad/test_e2e_squad.py index 9312dc67a193..9f03b89d0829 100644 --- a/tests/model/BingBertSquad/test_e2e_squad.py +++ b/tests/model/BingBertSquad/test_e2e_squad.py @@ -10,11 +10,11 @@ import pytest import json -sys.path.append("../../../DeepSpeedExamples/BingBertSquad") +sys.path.append("../../../DeepSpeedExamples/training/BingBertSquad") import evaluate as eval squad_dir = "/data/BingBertSquad" -base_dir = "../../../DeepSpeedExamples/BingBertSquad" +base_dir = "../../../DeepSpeedExamples/training/BingBertSquad" script_file_name = "run_squad_deepspeed.sh" model_file_name = "training_state_checkpoint_162.tar" diff --git a/tests/model/Megatron_GPT2/run_checkpoint_test.py b/tests/model/Megatron_GPT2/run_checkpoint_test.py index d97a28ff1ad5..824f8269a972 100755 --- a/tests/model/Megatron_GPT2/run_checkpoint_test.py +++ b/tests/model/Megatron_GPT2/run_checkpoint_test.py @@ -10,6 +10,7 @@ import subprocess import os import re +import shlex from .test_common import BaseTestCase LAYERS = 2 @@ -18,9 +19,9 @@ def remove_file(test_id, filename): - cmd = f"if [ -f {filename} ] ; then rm -v {filename}; fi" + cmd = shlex.split(f"if [ -f {filename} ] ; then rm -v {filename}; fi") print(f"{test_id} cmd: {cmd}") - subprocess.run(cmd, shell=True, check=False, executable='/bin/bash') + subprocess.run(cmd, check=False, executable='/bin/bash') def grep_loss_from_file(file_name): @@ -451,9 +452,9 @@ def run_test(self, test_config, r_tol): checkpoint_name = test_config["checkpoint_name"] #---------------remove old checkpoint---------------# try: - cmd = f"rm -rf {checkpoint_name}" + cmd = shlex.split(f"rm -rf {checkpoint_name}") print(f"{self.id()} cmd: {cmd}") - subprocess.run(cmd, shell=True, check=False, executable='/bin/bash') + subprocess.run(cmd, check=False, executable='/bin/bash') except: print("No old checkpoint") @@ -474,8 +475,8 @@ def run_test(self, test_config, r_tol): # remove previous test log try: - cmd = f"rm {base_file}" - subprocess.run(cmd, shell=True, check=False, executable='/bin/bash') + cmd = shlex.split(f"rm {base_file}") + subprocess.run(cmd, check=False, executable='/bin/bash') except: print(f"{self.id()} No old logs") @@ -489,9 +490,9 @@ def run_test(self, test_config, r_tol): # set checkpoint load iteration try: - cmd = f"echo {checkpoint_interval} > {checkpoint_name}/latest_checkpointed_iteration.txt" + cmd = shlex.split(f"echo {checkpoint_interval} > {checkpoint_name}/latest_checkpointed_iteration.txt") print(f"{self.id()} running cmd: {cmd}") - subprocess.run(cmd, shell=True, check=False, executable='/bin/bash') + subprocess.run(cmd, check=False, executable='/bin/bash') except: print(f"{self.id()} Failed to update the checkpoint iteration file") return False @@ -506,8 +507,8 @@ def run_test(self, test_config, r_tol): # remove previous test log try: - cmd = f"rm {test_file}" - subprocess.run(cmd, shell=True, check=False, executable='/bin/bash') + cmd = shlex.split(f"rm {test_file}") + subprocess.run(cmd, check=False, executable='/bin/bash') except: print(f"{self.id()} no previous logs for") self.run_gpt2_test(test_config, test_file) diff --git a/tests/model/Megatron_GPT2/test_common.py b/tests/model/Megatron_GPT2/test_common.py index 1bcd891e31d5..4eb84ac7eeee 100755 --- a/tests/model/Megatron_GPT2/test_common.py +++ b/tests/model/Megatron_GPT2/test_common.py @@ -7,6 +7,7 @@ import subprocess import os import time +import shlex class BaseTestCase(unittest.TestCase): @@ -46,9 +47,9 @@ def ensure_directory_exists(self, filename): os.makedirs(dirname) def clean_test_env(self): - cmd = "dlts_ssh pkill -9 -f /usr/bin/python" + cmd = shlex.split("dlts_ssh pkill -9 -f /usr/bin/python") print(cmd) - subprocess.run(cmd, shell=True, check=False, executable='/bin/bash') + subprocess.run(cmd, check=False, executable='/bin/bash') time.sleep(20) def run_gpt2_test(self, test_config, output): @@ -60,8 +61,8 @@ def run_gpt2_test(self, test_config, output): test_config["mp"], test_config["gpus"], test_config["nodes"], test_config["bs"], test_config["steps"], test_config["layers"], test_config["hidden_size"], test_config["seq_length"], test_config["heads"], ckpt_num, other_args, ds_flag) - + cmd = shlex.split(cmd) self.ensure_directory_exists(output) with open(output, "w") as f: print(cmd) - subprocess.run(cmd, shell=True, check=False, executable='/bin/bash', stdout=f, stderr=f) + subprocess.run(cmd, check=False, executable='/bin/bash', stdout=f, stderr=f) diff --git a/tests/onebit/README.md b/tests/onebit/README.md new file mode 100644 index 000000000000..d62c25421d00 --- /dev/null +++ b/tests/onebit/README.md @@ -0,0 +1,31 @@ +# One-Bit tests + +In this folder, you can test the functionality and performance of different backend for doing compressed allreduce, which is the main algorithm in one-bit optimizers like [One-Bit Adam](https://www.deepspeed.ai/tutorials/onebit-adam/), [One-Bit Lamb](https://www.deepspeed.ai/tutorials/onebit-lamb/) and [Zero-One Adam](https://www.deepspeed.ai/tutorials/zero-one-adam/). + +## How to run + +### NCCL and MPI backend + +Basically it requires your environment have relative communication backend installed, the NCCL backend of PyTorch distributed or Message Passing Interface (MPI) like MVAPICH2-GDR and OpenMPI. [Detailed Pre-requisites](https://www.deepspeed.ai/tutorials/zero-one-adam/#12-pre-requisites-for-01-adam). + +To test accuracy and performance of NCCL backend: +```bash +python test_nccl_backend.py +python test_nccl_perf.py +``` +Similarly, for MPI backend: +```bash +python test_mpi_backend.py +python test_mpi_perf.py +``` + +### Compressed backend + +This backend provides an approach to abstract the generic part of one-bit optimizers and implements accelerator dependent part with DeepSpeed custom op builder. To use this `CompressedBackend` and test it, you should make sure that your current accelerator supports `PackbitsBuilder`, so that it could be loaded to do high performance packing and unpacking between float and Byte datatype. +An example can be found in `Deepspeed/op_builder/xpu/packbits.py`. + +The test usage is same as others: +```bash +python test_compressed_backend.py +python test_compressed_perf.py +``` diff --git a/tests/onebit/test_compressed_backend.py b/tests/onebit/test_compressed_backend.py new file mode 100644 index 000000000000..f6919a09a54b --- /dev/null +++ b/tests/onebit/test_compressed_backend.py @@ -0,0 +1,96 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import torch +import deepspeed.comm as dist +import numpy as np +import argparse +import deepspeed +import os + +from deepspeed.runtime.comm.compressed import CompressedBackend +from deepspeed.accelerator import get_accelerator + +parser = argparse.ArgumentParser() +parser.add_argument('--local_rank', type=int, default=-1) +args = parser.parse_args() + +deepspeed.init_distributed(dist_backend=get_accelerator().communication_backend_name()) +args.local_rank = int(os.environ['LOCAL_RANK']) + +get_accelerator().set_device(args.local_rank) +device = torch.device(get_accelerator().device_name(), args.local_rank) + +size = dist.get_world_size() +rank = dist.get_rank() + +backend = CompressedBackend() +local_rank = args.local_rank + + +# A simulated compression function using deepspeed.comm +def torch_sim(a): + a_sign = a.sign().add_(1).bool().float().add_(-0.5).mul_(2.0) + scale = a.norm() / np.sqrt(a.numel()) + a_compressed = scale * a_sign + a_sign = None + worker_error = a - a_compressed + dist.all_reduce(a_compressed) + a_compressed.mul_(1 / dist.get_world_size()) + a_server_sign = a_compressed.sign().add_(1).bool().float().add_(-0.5).mul_(2.0) + a_list = torch.chunk(a_compressed, chunks=dist.get_world_size()) + server_scale = [chunk_a.norm() / np.sqrt(chunk_a.numel()) for chunk_a in a_list] + a_sign_list = torch.chunk(a_server_sign, dist.get_world_size()) + a_server_compressed = torch.cat([server_scale[i] * a_sign_list[i] for i in range(dist.get_world_size())]) + rank = dist.get_rank() + server_error = a_list[rank] - server_scale[rank] * a_sign_list[rank] + get_accelerator().synchronize() + dist.barrier() + return a_server_compressed, worker_error, server_error + + +tensor_size = 300 * 2**20 +server_size = int(tensor_size / size) +if tensor_size % (8 * size) != 0: + right_tensor_size = tensor_size + (8 * size - (tensor_size % (8 * size))) +else: + right_tensor_size = tensor_size +right_server_size = right_tensor_size // size + +# Adding bias to the initialization of the gradient we are communicating +# In order to get rid of the case where some elements in the gradient are too small +a = (torch.rand(tensor_size, device=device) - 0.5) + 0.01 * rank + +worker_error = torch.zeros(right_tensor_size, device=device) +server_error = torch.zeros(right_server_size, device=device) + +a_torch, worker_error_torch, server_error_torch = torch_sim(a) +get_accelerator().empty_cache() + +a_after = backend.compressed_allreduce(a, worker_error, server_error, local_rank) + +print(a_torch.cpu()) +print(a_after.cpu()) + +threshold = 1e-6 +magnitude_threshold = 1e-6 +diff_mask = (a_after - a_torch) > threshold +diff_server_mask = torch.chunk(diff_mask, size)[rank] +mpi_server = torch.chunk(a_after, size)[rank] + server_error +torch_server = torch.chunk(a_torch, size)[rank] + server_error_torch + +test_correctness = True + +# If the number in the compensated_server_m is too small (e.g 1e-8), then calling sign() might be problematic +# The test would skip those numbers that are too small in compensated_server_m +if test_correctness: + if torch.sum(diff_server_mask) == 0: + print('Successfully passed the test for Compressed Backend at Rank {}'.format(rank)) + else: + check_mag_mask = mpi_server[diff_server_mask] > magnitude_threshold + if torch.sum(check_mag_mask) == 0: + print('Successfully passed the test for Compressed Backend at Rank {}'.format(rank)) + else: + print('Fails at {} of positions'.format(torch.sum(check_mag_mask))) diff --git a/tests/onebit/test_compressed_perf.py b/tests/onebit/test_compressed_perf.py new file mode 100644 index 000000000000..a686af0f6b8d --- /dev/null +++ b/tests/onebit/test_compressed_perf.py @@ -0,0 +1,97 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import torch +import deepspeed.comm as dist +import numpy as np +import argparse +import deepspeed +import os + +from deepspeed.runtime.comm.compressed import CompressedBackend +from deepspeed.utils.timer import SynchronizedWallClockTimer +from deepspeed.accelerator import get_accelerator +from statistics import mean + +timers = SynchronizedWallClockTimer() + +parser = argparse.ArgumentParser() +parser.add_argument('--local_rank', type=int, default=-1) +args = parser.parse_args() + +deepspeed.init_distributed(dist_backend=get_accelerator().communication_backend_name()) +args.local_rank = int(os.environ['LOCAL_RANK']) + +get_accelerator().set_device(args.local_rank) +device = torch.device(get_accelerator().device_name(), args.local_rank) + +size = dist.get_world_size() +rank = dist.get_rank() + +backend = CompressedBackend() +local_rank = args.local_rank + +# Setting tensor_size (BERT-Large) +tensor_size = 300 * 2**20 +server_size = int(tensor_size / size) +if tensor_size % (8 * size) != 0: + right_tensor_size = tensor_size + (8 * size - (tensor_size % (8 * size))) +else: + right_tensor_size = tensor_size +right_server_size = right_tensor_size // size + +# Adding bias to the initialization of the gradient we are communicating +# In order to get rid of the case where some elements in the gradient are too small +a = (torch.rand(tensor_size, device=device) - 0.5) + 0.01 * rank + +worker_error = torch.zeros(right_tensor_size, device=device) +server_error = torch.zeros(right_server_size, device=device) + +warmup = 10 +iters = 10 + +# Warmup +for i in range(warmup): + backend.compressed_allreduce(a, worker_error, server_error, local_rank) + +time_list = [] + +a_sign = a.sign().add_(1).bool().float().add_(-0.5).mul_(2.0) +scale = a.norm() / np.sqrt(a.numel()) +a_compressed = scale * a_sign + +print("Shape of the compressed buffer:", a_compressed.shape) if rank == 0 else None + +for i in range(iters): + timers('compressed_allreduce').start() + backend.compressed_allreduce(a, worker_error, server_error, local_rank) + #deepspeed.comm.all_reduce(a_compressed) + timers('compressed_allreduce').stop() + time_list.append(timers('compressed_allreduce').elapsed()) + +#timer_names = ['compressed_allreduce'] +#timers.log(names=timer_names, normalizer=1, memory_breakdown=None) + +places = 2 +convert = 1e3 +float_size = 4 + +if rank == 0: + for i in range(iters): + lat = time_list[i] + print("latency = ", lat * convert) + +minlat = round(min(time_list) * convert) +maxlat = round(max(time_list) * convert) +meanlat = round(mean(time_list) * convert, places) +print("min, max, and mean = {} ms, {} ms, {} ms".format(minlat, maxlat, meanlat)) if rank == 0 else None +#print("tensor shape", a.shape) +duration = meanlat / 1e3 +tput = ((tensor_size * 4) / duration) +print("algo throughput: %f Bytes/s, %f GB/s" % (tput, tput / 1e9)) if rank == 0 else None +size = tensor_size * 4 +n = dist.get_world_size() +busbw = (size / duration) * (2 * (n - 1) / n) +print("busbw: %f GB/s" % (busbw / 1e9)) if rank == 0 else None diff --git a/tests/perf/adam_test1.py b/tests/perf/adam_test1.py index b35477afb4fe..bde1d53e5179 100755 --- a/tests/perf/adam_test1.py +++ b/tests/perf/adam_test1.py @@ -6,12 +6,10 @@ import torch from deepspeed.ops.adam import DeepSpeedCPUAdam import time -from deepspeed.accelerator import get_accelerator device = 'cpu' model_size = 1 * 1024**3 param = torch.nn.Parameter(torch.ones(model_size, device=device)) -param_fp16 = torch.nn.Parameter(torch.ones(model_size, dtype=torch.half, device=get_accelerator().device_name(0))) optimizer = DeepSpeedCPUAdam([param]) #torch.set_num_threads(128) @@ -19,7 +17,7 @@ avg = 0 for i in range(100): start = time.time() - optimizer.step(fp16_param_groups=[param_fp16]) + optimizer.step() stop = time.time() avg += (stop - start) param.grad = torch.ones(model_size, device=device) * 2 diff --git a/tests/pytest.ini b/tests/pytest.ini index 8d043c8b3f9d..f841c47afc0c 100644 --- a/tests/pytest.ini +++ b/tests/pytest.ini @@ -1,12 +1,13 @@ [pytest] -addopts = -m "not sequential and not nightly and not inference and not seq_inference and not inference_ops and not inference_v2 and not inference_v2_ops and not stable_diffusion" +addopts = -m "not sequential and not nightly and not inference and not seq_inference and not inference_ops and not inference_v2 and not inference_v2_ops and not stable_diffusion and not evaluation" markers = sequential:Tests that need to be run sequentially inference:Inference model tests inference_ops:Individual inference operator tests - inference_v2: Inference tests for the v2 stack - inference_v2_ops: Op tests for the v2 stack + inference_v2:Inference tests for the v2 stack + inference_v2_ops:Op tests for the v2 stack seq_inference:Inference model tests to run sequentially nightly:Tests that should be run nightly world_size:Change world size of individual tests in a class stable_diffusion:Tests that run Stable Diffusion + evaluation:Tests that evaluate model correctness diff --git a/tests/torch_compile/ds_config_z2.json b/tests/torch_compile/ds_config_z2.json new file mode 100644 index 000000000000..30e1237c558c --- /dev/null +++ b/tests/torch_compile/ds_config_z2.json @@ -0,0 +1,40 @@ +{ + "train_batch_size": 8, + "steps_per_print": 2000, + "optimizer": { + "type": "Adam", + "params": { + "lr": 0.001, + "betas": [ + 0.8, + 0.999 + ], + "eps": 1e-8, + "weight_decay": 3e-7 + } + }, + "scheduler": { + "type": "WarmupLR", + "params": { + "warmup_min_lr": 0, + "warmup_max_lr": 0.001, + "warmup_num_steps": 1000 + } + }, + "gradient_clipping": 1.0, + "prescale_gradients": false, + "bf16": { + "enabled": true, + "loss_scale": 0, + "loss_scale_window": 500, + "hysteresis": 2, + "min_loss_scale": 1, + "initial_scale_power": 15 + }, + "wall_clock_breakdown": false, + "zero_optimization": { + "stage": 2, + "overlap_comm": false, + "contiguous_gradients": false + } +} diff --git a/tests/torch_compile/ds_config_z3.json b/tests/torch_compile/ds_config_z3.json new file mode 100644 index 000000000000..361bc115eaee --- /dev/null +++ b/tests/torch_compile/ds_config_z3.json @@ -0,0 +1,41 @@ +{ + "train_batch_size": 8, + "steps_per_print": 2000, + "optimizer": { + "type": "Adam", + "params": { + "lr": 0.001, + "betas": [ + 0.8, + 0.999 + ], + "eps": 1e-8, + "weight_decay": 3e-7 + } + }, + "scheduler": { + "type": "WarmupLR", + "params": { + "warmup_min_lr": 0, + "warmup_max_lr": 0.001, + "warmup_num_steps": 1000 + } + }, + "gradient_clipping": 1.0, + "prescale_gradients": false, + "bf16": { + "enabled": true, + "loss_scale": 0, + "loss_scale_window": 500, + "hysteresis": 2, + "min_loss_scale": 1, + "initial_scale_power": 15 + }, + "wall_clock_breakdown": false, + "zero_optimization": { + "stage": 3, + "reduce_scatter": true, + "overlap_comm": false, + "contiguous_gradients": false + } +} diff --git a/tests/torch_compile/test_compile.py b/tests/torch_compile/test_compile.py new file mode 100644 index 000000000000..adbf6eaa947a --- /dev/null +++ b/tests/torch_compile/test_compile.py @@ -0,0 +1,98 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import argparse +import deepspeed +from deepspeed.accelerator import get_accelerator +from deepspeed import comm + +import torch +import intel_extension_for_pytorch # noqa: F401 # type: ignore +from torch.utils.data import Dataset, DataLoader + +torch._dynamo.config.cache_size_limit = 100 + + +def get_dynamo_stats(): + return torch._dynamo.utils.counters["graph_break"] + + +class RandomDataset(Dataset): + + def __init__(self, size, length): + self.len = length + self.data = torch.randn(length, size).to(torch.bfloat16) + + def __getitem__(self, index): + return self.data[index] + + def __len__(self): + return self.len + + +data_size = 1024 +data_length = 100 +rand_loader = DataLoader(dataset=RandomDataset(data_size, data_length), batch_size=1, shuffle=False) + + +class MyModule(torch.nn.Module): + + def __init__(self, *args, **kwargs) -> None: + super().__init__(*args, **kwargs) + self.fc0 = torch.nn.Linear(1024, 256, bias=False) + self.fc1 = torch.nn.Linear(256, 256, bias=False) + self.dropout = torch.nn.Dropout(0.5) + + def forward(self, data, residual): + output = residual + self.fc1(self.fc0(self.dropout(data))) * 0.5 + return output + + +model = MyModule() +params = model.parameters() + +parser = argparse.ArgumentParser() +parser.add_argument('--local_rank', type=int, default=-1, help='local rank passed from distributed launcher') +parser.add_argument('--deepspeed_config', + type=str, + default='ds_config_z3.json', + help='path to DeepSpeed configuration file') +cmd_args = parser.parse_args() + +# initialize the DeepSpeed engine +model_engine, optimizer, _, _ = deepspeed.initialize(args=cmd_args, model=model, model_parameters=params) +model_engine.compile() + +residual = torch.rand(256, 256, dtype=torch.float).to(get_accelerator().current_device_name()) + +start_stats = get_dynamo_stats() + +if comm.get_rank() == 0: + #print(dynamo_stats['graph_breaks']) + for item in start_stats.items(): + print(item) + +for step, batch in enumerate(rand_loader): + if step % 10 == 0 and comm.get_rank() == 0: + print(f'step={step}') + # forward() method + loss = model_engine(batch.to(get_accelerator().current_device_name()), residual).sum() + # runs backpropagation + model_engine.backward(loss) + # weight update + model_engine.step() + +dynamo_stats = get_dynamo_stats() + +if comm.get_rank() == 0: + # print break down of graph break stats with markdown, print in table format, start with reason, then count + # print a tag 'dynamo_output' before each line to allow post processing + print("dynamo_output | Reason | Count |") + print("dynamo_output | ------ | ----- |") + for item in dynamo_stats.items(): + # replace '|' in item[0] with a literal '|' to avoid mess with table format + item = (item[0].replace('|', r'\|'), item[1]) + print(f"dynamo_output | {item[0]} | {item[1]} |") + print(f"dynamo_output | Total | {sum(dynamo_stats.values())} |") diff --git a/tests/unit/accelerator/test_accelerator.py b/tests/unit/accelerator/test_accelerator.py new file mode 100644 index 000000000000..964cf2b24f4e --- /dev/null +++ b/tests/unit/accelerator/test_accelerator.py @@ -0,0 +1,59 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import pytest + +import os +import sys +import importlib +import re + +import deepspeed + +DS_ACCEL_PATH = "deepspeed.accelerator" +IGNORE_FILES = ["abstract_accelerator.py", "real_accelerator.py"] + + +@pytest.fixture +def accel_class_name(module_name): + class_list = [] + mocked_modules = [] + + # Get the accelerator class name for a given module + while True: + try: + module = importlib.import_module(module_name) + break + except ModuleNotFoundError as e: + # If the environment is missing a module, mock it so we can still + # test importing the accelerator class + missing_module = re.search(r"\'(.*)\'", e.msg).group().strip("'") + sys.modules[missing_module] = lambda x: None + mocked_modules.append(missing_module) + for name in dir(module): + if name.endswith("_Accelerator"): + class_list.append(name) + + assert len(class_list) == 1, f"Multiple accelerator classes found in {module_name}" + + yield class_list[0] + + # Clean up mocked modules so as to not impact other tests + for module in mocked_modules: + del sys.modules[module] + + +@pytest.mark.parametrize( + "module_name", + [ + DS_ACCEL_PATH + "." + f.rstrip(".py") for f in os.listdir(deepspeed.accelerator.__path__[0]) + if f.endswith("_accelerator.py") and f not in IGNORE_FILES + ], +) +def test_abstract_methods_defined(module_name, accel_class_name): + module = importlib.import_module(module_name) + accel_class = getattr(module, accel_class_name) + accel_class.__init__ = lambda self: None + _ = accel_class() diff --git a/tests/unit/alexnet_model.py b/tests/unit/alexnet_model.py index e3be2be4894d..6fe84edf4eda 100644 --- a/tests/unit/alexnet_model.py +++ b/tests/unit/alexnet_model.py @@ -11,8 +11,10 @@ import deepspeed import deepspeed.comm as dist import deepspeed.runtime.utils as ds_utils +from deepspeed.utils.torch import required_torch_version from deepspeed.accelerator import get_accelerator from deepspeed.runtime.pipe.module import PipelineModule, LayerSpec +from .util import no_child_process_in_deepspeed_io class AlexNet(nn.Module): @@ -82,7 +84,7 @@ def cast_to_half(x): def cifar_trainset(fp16=False): torchvision = pytest.importorskip("torchvision", minversion="0.5.0") - import torchvision.transforms as transforms + from torchvision import transforms transform_list = [ transforms.ToTensor(), @@ -99,20 +101,25 @@ def cifar_trainset(fp16=False): dist.barrier() if local_rank != 0: dist.barrier() - data_root = os.getenv("TEST_DATA_DIR", "/tmp/") - trainset = torchvision.datasets.CIFAR10(root=os.path.join(data_root, "cifar10-data"), - train=True, - download=True, - transform=transform) + if os.getenv("CIFAR10_DATASET_PATH"): + data_root = os.getenv("CIFAR10_DATASET_PATH") + download = False + else: + data_root = os.path.join(os.getenv("TEST_DATA_DIR", "/tmp"), "cifar10-data") + download = True + trainset = torchvision.datasets.CIFAR10(root=data_root, train=True, download=download, transform=transform) if local_rank == 0: dist.barrier() return trainset def train_cifar(model, config, num_steps=400, average_dp_losses=True, fp16=True, seed=123): - with get_accelerator().random().fork_rng(devices=[get_accelerator().current_device_name()], - device_type=get_accelerator().device_name()): + if required_torch_version(min_version=2.1): + fork_kwargs = {"device_type": get_accelerator().device_name()} + else: + fork_kwargs = {} + with get_accelerator().random().fork_rng(devices=[get_accelerator().current_device_name()], **fork_kwargs): ds_utils.set_random_seed(seed) # disable dropout @@ -121,22 +128,11 @@ def train_cifar(model, config, num_steps=400, average_dp_losses=True, fp16=True, trainset = cifar_trainset(fp16=fp16) config['local_rank'] = dist.get_rank() - # deepspeed_io defaults to creating a dataloader that uses a - # multiprocessing pool. Our tests use pools and we cannot nest pools in - # python. Therefore we're injecting this kwarg to ensure that no pools - # are used in the dataloader. - old_method = deepspeed.runtime.engine.DeepSpeedEngine.deepspeed_io - - def new_method(*args, **kwargs): - kwargs["num_local_io_workers"] = 0 - return old_method(*args, **kwargs) - - deepspeed.runtime.engine.DeepSpeedEngine.deepspeed_io = new_method - - engine, _, _, _ = deepspeed.initialize(config=config, - model=model, - model_parameters=[p for p in model.parameters()], - training_data=trainset) + with no_child_process_in_deepspeed_io(): + engine, _, _, _ = deepspeed.initialize(config=config, + model=model, + model_parameters=[p for p in model.parameters()], + training_data=trainset) losses = [] for step in range(num_steps): diff --git a/tests/unit/checkpoint/common.py b/tests/unit/checkpoint/common.py index d6dda2f14cbe..001c08f1a99f 100644 --- a/tests/unit/checkpoint/common.py +++ b/tests/unit/checkpoint/common.py @@ -14,6 +14,7 @@ from deepspeed.runtime.zero.stage3 import DeepSpeedZeroOptimizer_Stage3 from deepspeed.runtime.zero.partition_parameters import ZeroParamStatus +from unit.common import preferred_dtype from unit.simple_model import * from unittest.mock import MagicMock, patch @@ -85,15 +86,33 @@ def compare_model_states(saved_model, loaded_model, compare_optimizer=True, load def compare_state_dicts(state0, state1, expected_mismatch_keys=[]): - for (k0, s0), (k1, s1) in zip(state0.items(), state1.items()): - assert k0 == k1, f'failure due to key mismatch {k0} != {k1}' - if k0 in expected_mismatch_keys: + key_set0 = set(k for k in state0.keys() if k not in expected_mismatch_keys) + key_set1 = set(k for k in state1.keys() if k not in expected_mismatch_keys) + assert key_set0 == key_set1, f'failure due to key mismatch {key_set0} != {key_set1}' + + for k in key_set0: + s0 = state0[k] + s1 = state1[k] + if k in expected_mismatch_keys: continue if isinstance(s0, torch.Tensor) and isinstance(s1, torch.Tensor): assert id(s0) != id(s1), f'Comparing optimizer state tensor against itself: {id(s0)} <====> {id(s1)}' assert torch.equal(s0.to('cpu'), s1.to('cpu')) else: - assert s0 == s1, f'failures with keys = {k0}, {k1}, values = {type(s0[0])} and {type(s1[0])}' + assert s0 == s1, f'failures with keys = {k}, {k}, values = {s0} and {s1}' + + +def compare_opt_state_dicts(state0, state1, expected_mismatch_keys=[]): + for param_group0, saved_param_group1 in zip(state0['param_groups'], state1['param_groups']): + compare_state_dicts(param_group0, saved_param_group1, expected_mismatch_keys) + + assert "state" in state0 + assert "state" in state1 + assert len([state0["state"].keys()]) == len([state1["state"].keys()]) + + for (k0, s0), (k1, s1) in zip(state0["state"].items(), state1["state"].items()): + assert k0 == k1, f'failure due to key mismatch {k0} != {k1}' + compare_state_dicts(s0, s1, expected_mismatch_keys) def compare_optimizer_states(saved_model, loaded_model, hidden_dim, fp16=True): @@ -150,13 +169,15 @@ def checkpoint_correctness_verification(config_dict, tmpdir, load_optimizer_states=False, load_lr_scheduler_states=False, - fp16=True, train_batch=False, base_optimizers=[None, None], empty_tag=False, seq_dataloader=False, - load_module_only=False): - dtype = torch.half if fp16 else torch.float32 + load_module_only=False, + dtype=None): + if dtype == None: + dtype = preferred_dtype() + ds_model = create_deepspeed_model(config_dict=config_dict, model=models[0], base_optimizer=base_optimizers[0]) if seq_dataloader: @@ -197,7 +218,7 @@ def checkpoint_correctness_verification(config_dict, for root, _, files in os.walk(save_folder): for f in files: if "_expert_" in f and "_model_states" in f: - expert = torch.load(os.path.join(root, f)) + expert = torch.load(os.path.join(root, f), weights_only=False) needed, storages = 0, {} for name, tensor in expert.items(): needed += tensor.size().numel() @@ -228,7 +249,7 @@ def checkpoint_correctness_verification(config_dict, load_module_only=load_module_only) if load_optimizer_states: - compare_optimizer_states(trained_model, loaded_model, hidden_dim, fp16) + compare_optimizer_states(trained_model, loaded_model, hidden_dim, dtype == torch.float16) if load_lr_scheduler_states: compare_lr_scheduler_states(trained_model, loaded_model) diff --git a/tests/unit/checkpoint/test_convert_checkpoint.py b/tests/unit/checkpoint/test_convert_checkpoint.py new file mode 100644 index 000000000000..68fdecb32e16 --- /dev/null +++ b/tests/unit/checkpoint/test_convert_checkpoint.py @@ -0,0 +1,60 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import torch +import torch.nn as nn + +import deepspeed +from deepspeed.utils.zero_to_fp32 import convert_zero_checkpoint_to_fp32_state_dict +from unit.common import DistributedTest + + +class ModelWithSharedWeights(nn.Module): + + def __init__(self): + super().__init__() + self.layer0 = nn.Linear(100, 100) + self.layer1 = nn.Linear(200, 200) + self.layer2 = nn.Linear(300, 300) + # tie layer 1 and layer 2 + self.layer1.weight = self.layer2.weight + + +class TestCheckpointConvert(DistributedTest): + world_size = 2 + + def test_convert_zero_checkpoint_to_fp32_state_dict(self, tmpdir): + config = { + "train_micro_batch_size_per_gpu": 2, + "zero_allow_untested_optimizer": True, + "zero_optimization": { + "stage": 3 + }, + } + model = ModelWithSharedWeights() + optimizer = torch.optim.Adam(model.parameters()) + + deepspeed_engine, _, _, _ = deepspeed.initialize( + config=config, + model=model, + optimizer=optimizer, + ) + ds_save_dir = tmpdir / "checkpoint_ds" + deepspeed_engine.save_checkpoint(ds_save_dir, tag="checkpoint") + + model = ModelWithSharedWeights() + + # save checkpoint + fp32_save_dir = tmpdir / "checkpoint_fp32" + convert_zero_checkpoint_to_fp32_state_dict(ds_save_dir, fp32_save_dir) + + # load state_dict from fp32 checkpoint + state_dict = torch.load(fp32_save_dir / 'pytorch_model.bin') + + # check shared tensor + assert id(state_dict['layer1.weight']) == id(state_dict['layer2.weight']) + + # load state_dict into model + model.load_state_dict(state_dict, strict=True) diff --git a/tests/unit/checkpoint/test_latest_checkpoint.py b/tests/unit/checkpoint/test_latest_checkpoint.py index 41ce2278680f..5d795c4dadcf 100644 --- a/tests/unit/checkpoint/test_latest_checkpoint.py +++ b/tests/unit/checkpoint/test_latest_checkpoint.py @@ -38,8 +38,8 @@ def test_existing_latest(self, tmpdir): tmpdir=tmpdir, load_optimizer_states=True, load_lr_scheduler_states=False, - fp16=False, - empty_tag=True) + empty_tag=True, + dtype=torch.float) def test_missing_latest(self, tmpdir): config_dict = { diff --git a/tests/unit/checkpoint/test_lr_scheduler.py b/tests/unit/checkpoint/test_lr_scheduler.py index c4c6773cd474..89c4dd1b49f7 100644 --- a/tests/unit/checkpoint/test_lr_scheduler.py +++ b/tests/unit/checkpoint/test_lr_scheduler.py @@ -5,6 +5,7 @@ import deepspeed from deepspeed.ops.op_builder import CPUAdamBuilder +from deepspeed.accelerator import get_accelerator from unit.common import DistributedTest from unit.simple_model import * @@ -22,6 +23,8 @@ class TestLRSchedulerCheckpoint(DistributedTest): def test_checkpoint_lr_scheduler(self, tmpdir, zero_stage, use_cpu_offload): if use_cpu_offload and not deepspeed.ops.__compatible_ops__[CPUAdamBuilder.NAME]: pytest.skip("cpu-adam is not compatible") + if get_accelerator().device_name() == 'cpu': + pytest.skip("CPU accelerator does not support this test.") config_dict = { "train_batch_size": 2, @@ -35,9 +38,6 @@ def test_checkpoint_lr_scheduler(self, tmpdir, zero_stage, use_cpu_offload): "weight_decay": 3e-7 } }, - "fp16": { - "enabled": True - }, "zero_optimization": { "stage": zero_stage, "cpu_offload": use_cpu_offload @@ -51,6 +51,10 @@ def test_checkpoint_lr_scheduler(self, tmpdir, zero_stage, use_cpu_offload): } } } + if get_accelerator().is_fp16_supported(): + config_dict["fp16"] = {"enabled": True} + elif get_accelerator().is_bf16_supported(): + config_dict["bf16"] = {"enabled": True} hidden_dim = 10 if zero_stage == 3: @@ -71,6 +75,8 @@ def test_checkpoint_lr_scheduler(self, tmpdir, zero_stage, use_cpu_offload): def test_checkpoint_no_lr_scheduler(self, tmpdir, zero_stage, use_cpu_offload): if use_cpu_offload and not deepspeed.ops.__compatible_ops__[CPUAdamBuilder.NAME]: pytest.skip("cpu-adam is not compatible") + if get_accelerator().device_name() == 'cpu': + pytest.skip("CPU accelerator does not support this test.") config_dict = { "train_batch_size": 2, @@ -81,9 +87,6 @@ def test_checkpoint_no_lr_scheduler(self, tmpdir, zero_stage, use_cpu_offload): "lr": 1e-5 } }, - "fp16": { - "enabled": True - }, "zero_optimization": { "stage": zero_stage, "cpu_offload": use_cpu_offload @@ -97,6 +100,10 @@ def test_checkpoint_no_lr_scheduler(self, tmpdir, zero_stage, use_cpu_offload): } }, } + if get_accelerator().is_fp16_supported(): + config_dict["fp16"] = {"enabled": True} + elif get_accelerator().is_fp16_supported(): + config_dict["bf16"] = {"enabled": True} hidden_dim = 10 if zero_stage == 3: diff --git a/tests/unit/checkpoint/test_mics_optimizer.py b/tests/unit/checkpoint/test_mics_optimizer.py index 3f853cd5c13a..9e56bf3446fa 100644 --- a/tests/unit/checkpoint/test_mics_optimizer.py +++ b/tests/unit/checkpoint/test_mics_optimizer.py @@ -8,7 +8,7 @@ import deepspeed -from deepspeed.runtime.utils import required_torch_version +from deepspeed.utils.torch import required_torch_version from unit.common import DistributedTest from unit.simple_model import * from unit.checkpoint.common import * diff --git a/tests/unit/checkpoint/test_moe_checkpoint.py b/tests/unit/checkpoint/test_moe_checkpoint.py index 0706b7327ce8..89878b5d8fa9 100644 --- a/tests/unit/checkpoint/test_moe_checkpoint.py +++ b/tests/unit/checkpoint/test_moe_checkpoint.py @@ -4,7 +4,7 @@ # DeepSpeed Team from deepspeed.moe.utils import split_params_into_different_moe_groups_for_optimizer -from deepspeed.runtime.utils import required_torch_version +from deepspeed.utils.torch import required_torch_version from unit.common import DistributedTest from unit.simple_model import * @@ -33,10 +33,10 @@ def test_checkpoint_moe(self, tmpdir, ep_size): tmpdir=tmpdir, load_optimizer_states=True, load_lr_scheduler_states=False, - fp16=config_dict["fp16"]["enabled"], empty_tag=True, base_optimizers=optimizers, - seq_dataloader=True) + seq_dataloader=True, + dtype=torch.float16) @pytest.mark.parametrize("ep_size, load_optim_states", [(4, True), (4, False), (2, True), (2, False)]) def test_checkpoint_moe_and_zero(self, tmpdir, ep_size, load_optim_states): @@ -77,7 +77,7 @@ def test_checkpoint_moe_and_zero(self, tmpdir, ep_size, load_optim_states): tmpdir=tmpdir, load_optimizer_states=load_optim_states, load_lr_scheduler_states=False, - fp16=config_dict["fp16"]["enabled"], empty_tag=True, base_optimizers=optimizers, - seq_dataloader=True) + seq_dataloader=True, + dtype=torch.float16) diff --git a/tests/unit/checkpoint/test_other_optimizer.py b/tests/unit/checkpoint/test_other_optimizer.py index 9cb8c4286880..bcff7f5e3072 100644 --- a/tests/unit/checkpoint/test_other_optimizer.py +++ b/tests/unit/checkpoint/test_other_optimizer.py @@ -19,6 +19,8 @@ class TestOtherOptimizerCheckpoint(DistributedTest): @pytest.mark.skipif(not deepspeed.ops.__compatible_ops__[FusedLambBuilder.NAME], reason="lamb is not compatible") def test_checkpoint_unfused_optimizer(self, tmpdir): + #if not get_accelerator().is_fp16_supported(): + # pytest.skip("fp16 is not supported") config_dict = { "train_batch_size": 2, "steps_per_print": 1, @@ -29,9 +31,6 @@ def test_checkpoint_unfused_optimizer(self, tmpdir): } }, "gradient_clipping": 1.0, - "fp16": { - "enabled": True - }, "scheduler": { "type": "OneCycle", "params": { @@ -49,6 +48,10 @@ def test_checkpoint_unfused_optimizer(self, tmpdir): } } } + if get_accelerator().is_fp16_supported(): + config_dict["fp16"] = {"enabled": True} + elif get_accelerator().is_fp16_supported(): + config_dict["bf16"] = {"enabled": True} args = args_from_dict(tmpdir, config_dict) hidden_dim = 10 @@ -69,6 +72,8 @@ def test_checkpoint_unfused_optimizer(self, tmpdir): load_optimizer_states=False) def test_checkpoint_fused_optimizer(self, tmpdir): + if get_accelerator().device_name() == "cpu": + pytest.skip("CPU accelerator does not support this test") config_dict = { "train_batch_size": 2, "steps_per_print": 1, @@ -81,10 +86,11 @@ def test_checkpoint_fused_optimizer(self, tmpdir): "weight_decay": 3e-7 } }, - "fp16": { - "enabled": True - } } + if get_accelerator().is_fp16_supported(): + config_dict["fp16"] = {"enabled": True} + elif get_accelerator().is_bf16_supported(): + config_dict["bf16"] = {"enabled": True} args = args_from_dict(tmpdir, config_dict) hidden_dim = 10 @@ -129,4 +135,4 @@ def test_checkpoint_fp32_optimizer(self, tmpdir): models=models, hidden_dim=hidden_dim, tmpdir=tmpdir, - fp16=False) + dtype=torch.float32) diff --git a/tests/unit/checkpoint/test_pipeline.py b/tests/unit/checkpoint/test_pipeline.py index 99f1ba2ec433..c6c228ccada7 100644 --- a/tests/unit/checkpoint/test_pipeline.py +++ b/tests/unit/checkpoint/test_pipeline.py @@ -58,10 +58,10 @@ def test_checkpoint_pipe_engine(self, zero_stage, tmpdir): models=models, hidden_dim=models[0].hidden_dim, tmpdir=tmpdir, - fp16=config_dict['fp16']['enabled'], load_optimizer_states=True, load_lr_scheduler_states=True, - train_batch=True) + train_batch=True, + dtype=torch.float16 if zero_stage > 0 else torch.float32) @pytest.mark.parametrize( "base_topo,test_topo", diff --git a/tests/unit/checkpoint/test_universal_checkpoint.py b/tests/unit/checkpoint/test_universal_checkpoint.py new file mode 100644 index 000000000000..46d4294bdd0d --- /dev/null +++ b/tests/unit/checkpoint/test_universal_checkpoint.py @@ -0,0 +1,227 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import deepspeed +from types import SimpleNamespace +from torch.utils._pytree import tree_map + +from deepspeed.utils.torch import required_torch_version +from deepspeed.checkpoint import UNIVERSAL_CHECKPOINT_INFO +from deepspeed.checkpoint.ds_to_universal import main as convert_to_universal + +from unit.common import DistributedTest, DistributedFixture +from unit.simple_model import * +from unit.util import bf16_required_version_check + +from unit.checkpoint.common import compare_opt_state_dicts, compare_state_dicts + +import pytest +import deepspeed.comm as dist + + +def get_expected_mismatch_keys(): + # torch 1.2.* stores raw tensor id numbers in checkpoint state which leads to + # false positive mismatches in checkpoint state comparisons. + # Newer torch versions store tensor ids as 0, 1, 2, ... + return [] if required_torch_version(min_version=1.4) else ['params'] + + +def maybe_step(t): + return not torch.is_tensor(t) or (t.device.type == 'cpu' and t.numel() == 1) + + +def gather_opt_state(optimizer_state): + + def gather_tensor(t): + + if maybe_step(t): + return t + else: + buffer = [torch.zeros_like(t.flatten()) for _ in range(dist.get_world_size())] + dist.all_gather(buffer, t.flatten()) + return torch.cat(buffer) + + return tree_map(gather_tensor, optimizer_state) + + +def remove_pad_in_opt_state(optimizer_state, num_params): + + def remove_pad(t): + if maybe_step(t): + return t + else: + return t[:num_params] + + return tree_map(remove_pad, optimizer_state) + + +CP_TAG = "test_tag" + + +def init_ds_engine(model, ds_config, use_torch_adam): + + if use_torch_adam: + ds_optimizer = torch.optim.Adam(model.parameters(), lr=0.1) + del ds_config["optimizer"] + model, _, _, _ = deepspeed.initialize(config=ds_config, model=model, optimizer=ds_optimizer) + else: + model, _, _, _ = deepspeed.initialize(config=ds_config, model=model, model_parameters=model.parameters()) + + return model + + +def train_save_convert(ds_config, hidden_dim, load_optim, use_torch_adam, dtype, tmpdir): + if dtype == torch.bfloat16 and not bf16_required_version_check(): + return + + test_step = 8 + + model = SimpleModel(hidden_dim) + model = init_ds_engine(model, ds_config, use_torch_adam) + data_loader = random_dataloader(model=model, + total_samples=test_step, + hidden_dim=hidden_dim, + device=model.device, + dtype=dtype) + for batch in data_loader: + loss = model(batch[0], batch[1]) + model.backward(loss) + model.step() + + if ds_config["zero_optimization"]["stage"] == 3: + model.optimizer._set_fp32_optimizer_param_groups() + sd = model.optimizer.optimizer.state_dict() if load_optim else None + model.optimizer._clear_fp32_optimizer_param_groups() + else: + sd = model.optimizer.optimizer.state_dict() if load_optim else None + + client_state = {} + client_state[UNIVERSAL_CHECKPOINT_INFO] = {} + client_state['iteration'] = test_step + model.save_checkpoint(tmpdir, tag=CP_TAG, client_state=client_state) + + cp_dir = os.path.join(tmpdir, CP_TAG) + univ_cp_dir = f"{cp_dir}_universal" + + args = SimpleNamespace(input_folder=cp_dir, + output_folder=univ_cp_dir, + num_extract_workers=1, + num_merge_workers=1, + keep_temp_folder=False, + strict=True, + inject_missing_state=False) + + dist.barrier() + if dist.get_rank() == 0: + convert_to_universal(args) + + model_state = model.state_dict() + optimizer_state = None + if load_optim: + if ds_config["zero_optimization"]["stage"] == 3: + model.optimizer._set_fp32_optimizer_param_groups() + optimizer_state = gather_opt_state(model.optimizer.optimizer.state_dict()) + model.optimizer._clear_fp32_optimizer_param_groups() + else: + optimizer_state = gather_opt_state(model.optimizer.optimizer.state_dict()) + + if dist.get_rank() == 0: + torch.save((model_state, optimizer_state), os.path.join(tmpdir, "baseline_state.pt")) + + dist.barrier() + model.destroy() + + +@pytest.fixture +def ds_config(zero_stage, dtype): + ds_config = { + "train_batch_size": 8, + "optimizer": { + "type": 'Adam' + }, + "zero_optimization": { + "stage": zero_stage, + } + } + if dtype == torch.float16: + ds_config["fp16"] = {"enabled": True, "initial_scale_power": 8} + elif dtype == torch.bfloat16: + ds_config["bf16"] = {"enabled": True} + return ds_config + + +class _baseline(DistributedFixture): + world_size = None + + def run(self, tmpdir, ds_config, zero_stage, dtype, load_optim, use_torch_adam): + hidden_dim = 10 + train_save_convert(ds_config, hidden_dim, load_optim, use_torch_adam, dtype, tmpdir) + + +class baseline_ws2(_baseline): + world_size = 2 + + +class baseline_ws4(_baseline): + world_size = 4 + + +@pytest.mark.parametrize('dtype', [torch.bfloat16, torch.float16, torch.float32]) +@pytest.mark.parametrize("zero_stage", [1, 3]) +@pytest.mark.parametrize("use_torch_adam", [False, True]) +@pytest.mark.parametrize("load_optim", [False, True]) +class TestZeROUniversalCheckpointDP(DistributedTest): + + def _run_test(self, tmpdir, dtype, ds_config, load_optim, use_torch_adam): + if dtype == torch.bfloat16 and not bf16_required_version_check(): + pytest.skip( + " DeepSpeed BFloat16 tests need torch >= 1.10, NCCL >= 2.10.3, CUDA > =11.0 and HW support for BFloat16 to run correctly" + ) + + hidden_dim = 10 + loaded_model_state, loaded_optimizer_state = torch.load(f"{tmpdir}/baseline_state.pt", weights_only=False) + + ds_config["checkpoint"] = {"load_universal": True} + univ_model = SimpleModel(hidden_dim) + univ_model = init_ds_engine(univ_model, ds_config, use_torch_adam) + univ_model.load_checkpoint(tmpdir, tag=f"{CP_TAG}_universal", load_optimizer_states=load_optim) + + model_state = univ_model.state_dict() + compare_state_dicts(model_state, loaded_model_state) + + if load_optim and ds_config["zero_optimization"]["stage"] != 3: + optimizer_state = gather_opt_state(univ_model.optimizer.optimizer.state_dict()) + # padding sizes may differ when dp sizes are different + param_count = sum(p.numel() for p in univ_model.parameters()) + optimizer_state = remove_pad_in_opt_state(optimizer_state, param_count) + loaded_optimizer_state = remove_pad_in_opt_state(loaded_optimizer_state, param_count) + + compare_opt_state_dicts(optimizer_state, loaded_optimizer_state, get_expected_mismatch_keys()) + + # Run training again to verify that the optimizer has necessary states + test_step = 8 + data_loader = random_dataloader(model=univ_model, + total_samples=test_step, + hidden_dim=hidden_dim, + device=univ_model.device, + dtype=dtype) + for batch in data_loader: + loss = univ_model(batch[0], batch[1]) + univ_model.backward(loss) + univ_model.step() + + univ_model.destroy() + + @pytest.mark.world_size(2) + def test_dp_world_size_2to2(self, baseline_ws2, tmpdir, dtype, ds_config, load_optim, use_torch_adam): + self._run_test(tmpdir, dtype, ds_config, load_optim, use_torch_adam) + + @pytest.mark.world_size(2) + def test_dp_world_size_4to2(self, baseline_ws4, tmpdir, dtype, ds_config, load_optim, use_torch_adam): + self._run_test(tmpdir, dtype, ds_config, load_optim, use_torch_adam) + + @pytest.mark.world_size(4) + def test_dp_world_size_2to4(self, baseline_ws2, tmpdir, dtype, ds_config, load_optim, use_torch_adam): + self._run_test(tmpdir, dtype, ds_config, load_optim, use_torch_adam) diff --git a/tests/unit/checkpoint/test_zero_optimizer.py b/tests/unit/checkpoint/test_zero_optimizer.py index f2237341ef68..44966b331d0f 100644 --- a/tests/unit/checkpoint/test_zero_optimizer.py +++ b/tests/unit/checkpoint/test_zero_optimizer.py @@ -8,7 +8,7 @@ from deepspeed.ops.op_builder import CPUAdamBuilder from deepspeed.checkpoint.utils import clone_tensors_for_torch_save, get_model_ckpt_name_for_rank from deepspeed.accelerator import get_accelerator -from deepspeed.runtime.utils import required_torch_version +from deepspeed.utils.torch import required_torch_version from unit.common import DistributedTest, DistributedFixture from unit.simple_model import * @@ -28,15 +28,15 @@ def test_pipeline_checkpoint_loading(self, tmpdir, zero_stage): "optimizer": { "type": 'Adam' }, - "fp16": { - "enabled": True, - "initial_scale_power": 8 - }, "zero_optimization": { "stage": zero_stage, "pipeline_loading_checkpoint": True, } } + if get_accelerator().is_fp16_supported(): + config_dict["fp16"] = {"enabled": True, "initial_scale_power": 8} + elif get_accelerator().is_bf16_supported(): + config_dict["bf16"] = {"enabled": True} hidden_dim = 10 with deepspeed.zero.Init(): @@ -64,16 +64,16 @@ def test_load_optimizer_state(self, tmpdir, zero_stage, use_cpu_offload, adam_op "weight_decay": 3e-7 } }, - "fp16": { - "enabled": True, - "initial_scale_power": 8 - }, "wall_clock_breakdown": True, "zero_optimization": { "stage": zero_stage, "cpu_offload": use_cpu_offload } } + if get_accelerator().is_fp16_supported(): + config_dict["fp16"] = {"enabled": True, "initial_scale_power": 8} + elif get_accelerator().is_bf16_supported(): + config_dict["bf16"] = {"enabled": True} hidden_dim = 10 if zero_stage == 3: @@ -104,14 +104,15 @@ def test_not_load_optimizer_state(self, tmpdir, zero_stage, use_cpu_offload, ada "weight_decay": 3e-7 } }, - "fp16": { - "enabled": True - }, "zero_optimization": { "stage": zero_stage, "cpu_offload": use_cpu_offload } } + if get_accelerator().is_fp16_supported(): + config_dict["fp16"] = {"enabled": True} + elif get_accelerator().is_bf16_supported(): + config_dict["bf16"] = {"enabled": True} hidden_dim = 10 if zero_stage == 3: @@ -134,11 +135,11 @@ def test_hybrid_optimizer_state(self, tmpdir, zero_stage): "stage": zero_stage }, "zero_allow_untested_optimizer": True, - "fp16": { - "enabled": True, - "initial_scale_power": 8 - } } + if get_accelerator().is_fp16_supported(): + config_dict["fp16"] = {"enabled": True, "initial_scale_power": 8} + elif get_accelerator().is_bf16_supported(): + config_dict["bf16"] = {"enabled": True} hidden_dim = 10 models = [SimpleModel(hidden_dim=hidden_dim) for _ in range(2)] optimizers = [HybridStateOptimizer(model.parameters()) for model in models] @@ -152,19 +153,21 @@ def test_hybrid_optimizer_state(self, tmpdir, zero_stage): @pytest.mark.parametrize('zero_stage', [0, 1, 2, 3]) def test_load_module_only(self, tmpdir, zero_stage): + if zero_stage == 0 and get_accelerator().device_name() == "cpu": + pytest.skip("CPU Accelerator does not support this test") config_dict = { "train_batch_size": 2, "optimizer": { "type": 'Adam' }, - "fp16": { - "enabled": True, - "initial_scale_power": 8 - }, "zero_optimization": { "stage": zero_stage, } } + if get_accelerator().is_fp16_supported(): + config_dict["fp16"] = {"enabled": True, "initial_scale_power": 8} + elif get_accelerator().is_bf16_supported(): + config_dict["bf16"] = {"enabled": True} hidden_dim = 10 if zero_stage == 3: @@ -185,15 +188,15 @@ def run(self, class_tmpdir, elastic_save, load_optim): "optimizer": { "type": 'Adam' }, - "fp16": { - "enabled": True, - "initial_scale_power": 8 - }, "zero_optimization": { "stage": 2, "elastic_checkpoint": elastic_save } } + if get_accelerator().is_fp16_supported(): + ds_config["fp16"] = {"enabled": True, "initial_scale_power": 8} + elif get_accelerator().is_bf16_supported(): + ds_config["bf16"] = {"enabled": True} hidden_dim = 10 model = SimpleModel(hidden_dim) @@ -221,15 +224,15 @@ def test_elastic_checkpoint_fixed_dp(self, tmpdir, elastic_save, elastic_load, l "optimizer": { "type": 'Adam' }, - "fp16": { - "enabled": True, - "initial_scale_power": 8 - }, "zero_optimization": { "stage": 2, "elastic_checkpoint": elastic_save } } + if get_accelerator().is_fp16_supported(): + ds_config["fp16"] = {"enabled": True, "initial_scale_power": 8} + elif get_accelerator().is_bf16_supported(): + ds_config["bf16"] = {"enabled": True} hidden_dim = 10 # torch 1.2.* stores raw tensor id numbers in checkpoint state which leads to @@ -240,13 +243,18 @@ def test_elastic_checkpoint_fixed_dp(self, tmpdir, elastic_save, elastic_load, l model, _, _, _ = deepspeed.initialize(config=ds_config, model=models[0], model_parameters=models[0].parameters()) - data_loader = random_dataloader(model=model, total_samples=8, hidden_dim=hidden_dim, device=model.device) + run_steps = 8 + data_loader = random_dataloader(model=model, + total_samples=run_steps, + hidden_dim=hidden_dim, + device=model.device) for n, batch in enumerate(data_loader): loss = model(batch[0], batch[1]) model.backward(loss) model.step() if load_optim: - torch.save(model.optimizer.optimizer.state_dict(), os.path.join(tmpdir, 'opt-state-dict')) + opt_state_dict_file = f'opt-state-dict_rank{dist.get_rank()}' + torch.save(model.optimizer.optimizer.state_dict(), os.path.join(tmpdir, opt_state_dict_file)) model.save_checkpoint(tmpdir) ds_config["zero_optimization"]["elastic_checkpoint"] = elastic_load @@ -256,10 +264,9 @@ def test_elastic_checkpoint_fixed_dp(self, tmpdir, elastic_save, elastic_load, l model.load_checkpoint(tmpdir, load_optimizer_states=load_optim) if load_optim: - saved_sd = torch.load(os.path.join(tmpdir, 'opt-state-dict')) + saved_sd = torch.load(os.path.join(tmpdir, opt_state_dict_file), weights_only=False) curr_sd = model.optimizer.optimizer.state_dict() - for curr_param_group, saved_param_group in zip(curr_sd['param_groups'], saved_sd['param_groups']): - compare_state_dicts(curr_param_group, saved_param_group, expected_mismatch_keys) + compare_opt_state_dicts(curr_sd, saved_sd, expected_mismatch_keys) data_loader = random_dataloader(model=model, total_samples=8, hidden_dim=hidden_dim, device=model.device) for n, batch in enumerate(data_loader): @@ -274,15 +281,15 @@ def test_elastic_checkpoint_change_dp(self, ws4_model_checkpoint, class_tmpdir, "optimizer": { "type": 'Adam' }, - "fp16": { - "enabled": True, - "initial_scale_power": 8 - }, "zero_optimization": { "stage": 2, "elastic_checkpoint": elastic_load } } + if get_accelerator().is_fp16_supported(): + ds_config["fp16"] = {"enabled": True, "initial_scale_power": 8} + elif get_accelerator().is_bf16_supported(): + ds_config["bf16"] = {"enabled": True} hidden_dim = 10 model = SimpleModel(hidden_dim) @@ -305,14 +312,14 @@ def test_immediate_save_load(self, tmpdir, zero_stage): "optimizer": { "type": 'Adam' }, - "fp16": { - "enabled": True, - "initial_scale_power": 8 - }, "zero_optimization": { "stage": zero_stage, } } + if get_accelerator().is_fp16_supported(): + config_dict["fp16"] = {"enabled": True, "initial_scale_power": 8} + elif get_accelerator().is_bf16_supported(): + config_dict["bf16"] = {"enabled": True} hidden_dim = 10 model = SimpleModel(hidden_dim) @@ -325,30 +332,27 @@ def test_immediate_save_load(self, tmpdir, zero_stage): @pytest.mark.parametrize('zero_stage', [0, 1, 2, 3]) def test_load_immediate_save(self, tmpdir, zero_stage): + if zero_stage == 0 and get_accelerator().device_name() == "cpu": + pytest.skip("CPU Accelerator does not support this test") config_dict = { "train_batch_size": 4, "optimizer": { "type": 'Adam' }, - "fp16": { - "enabled": True, - "initial_scale_power": 8 - }, "zero_optimization": { "stage": zero_stage, } } + if get_accelerator().is_fp16_supported(): + config_dict["fp16"] = {"enabled": True, "initial_scale_power": 8} + elif get_accelerator().is_bf16_supported(): + config_dict["bf16"] = {"enabled": True} hidden_dim = 10 model = SimpleModel(hidden_dim) # 1. pretrain a model and save it - dtype = torch.half ds_model = create_deepspeed_model(config_dict=config_dict, model=model, base_optimizer=None) - data_loader = random_dataloader(model=ds_model, - total_samples=1, - hidden_dim=hidden_dim, - device=ds_model.device, - dtype=dtype) + data_loader = random_dataloader(model=ds_model, total_samples=1, hidden_dim=hidden_dim, device=ds_model.device) for _, batch in enumerate(data_loader): loss = ds_model(batch[0], batch[1]) ds_model.backward(loss) @@ -371,10 +375,6 @@ def test_save_before_accum_grad_is_done(self, tmpdir, zero_stage): "optimizer": { "type": 'Adam' }, - "fp16": { - "enabled": True, - "initial_scale_power": 8 - }, "zero_optimization": { "stage": zero_stage, "stage3_gather_fp16_weights_on_model_save": True, @@ -383,6 +383,10 @@ def test_save_before_accum_grad_is_done(self, tmpdir, zero_stage): "train_micro_batch_size_per_gpu": 1, "train_batch_size": 4, } + if get_accelerator().is_fp16_supported(): + config_dict["fp16"] = {"enabled": True, "initial_scale_power": 8} + elif get_accelerator().is_bf16_supported(): + config_dict["bf16"] = {"enabled": True} hidden_dim = 10 model = SimpleModel(hidden_dim) @@ -391,11 +395,7 @@ def test_save_before_accum_grad_is_done(self, tmpdir, zero_stage): # So we config grad_accum=2 and step only once and save_16bit_model ds_model = create_deepspeed_model(config_dict=config_dict, model=model, base_optimizer=None) - data_loader = random_dataloader(model=ds_model, - total_samples=2, - hidden_dim=hidden_dim, - device=ds_model.device, - dtype=torch.half) + data_loader = random_dataloader(model=ds_model, total_samples=2, hidden_dim=hidden_dim, device=ds_model.device) batch = next(iter(data_loader)) loss = ds_model(batch[0], batch[1]) @@ -429,15 +429,15 @@ def test_load_optimizer_state(self, tmpdir, zero_stage): "weight_decay": 3e-7 } }, - "fp16": { - "enabled": True, - "initial_scale_power": 8 - }, "wall_clock_breakdown": True, "zero_optimization": { "stage": zero_stage } } + if get_accelerator().is_fp16_supported(): + config_dict["fp16"] = {"enabled": True, "initial_scale_power": 8} + elif get_accelerator().is_bf16_supported(): + config_dict["bf16"] = {"enabled": True} hidden_dim = 10 with deepspeed.zero.Init(enabled=zero_stage == 3): @@ -460,13 +460,14 @@ def test_not_load_optimizer_state(self, tmpdir, zero_stage): "weight_decay": 3e-7 } }, - "fp16": { - "enabled": True - }, "zero_optimization": { "stage": zero_stage } } + if get_accelerator().is_fp16_supported(): + config_dict["fp16"] = {"enabled": True} + elif get_accelerator().is_bf16_supported(): + config_dict["bf16"] = {"enabled": True} hidden_dim = 10 with deepspeed.zero.Init(enabled=zero_stage == 3): @@ -481,14 +482,14 @@ def test_load_module_only(self, tmpdir, zero_stage): "optimizer": { "type": 'Adam' }, - "fp16": { - "enabled": True, - "initial_scale_power": 8 - }, "zero_optimization": { "stage": zero_stage, } } + if get_accelerator().is_fp16_supported(): + config_dict["fp16"] = {"enabled": True, "initial_scale_power": 8} + elif get_accelerator().is_bf16_supported(): + config_dict["bf16"] = {"enabled": True} hidden_dim = 10 with deepspeed.zero.Init(enabled=zero_stage == 3): @@ -504,14 +505,14 @@ def test_save_exclude_frozen_weights(self, tmpdir, zero_stage): "optimizer": { "type": 'Adam' }, - "fp16": { - "enabled": True, - "initial_scale_power": 8 - }, "zero_optimization": { "stage": zero_stage, } } + if get_accelerator().is_fp16_supported(): + config_dict["fp16"] = {"enabled": True, "initial_scale_power": 8} + elif get_accelerator().is_bf16_supported(): + config_dict["bf16"] = {"enabled": True} hidden_dim = 10 model = SimpleFrozenModel(hidden_dim, empty_grad=False) @@ -522,7 +523,7 @@ def test_save_exclude_frozen_weights(self, tmpdir, zero_stage): all_ckpt_folder = os.path.join(tmpdir, 'all_params') ds_engine.save_checkpoint(all_ckpt_folder) all_params_ckpt_file = get_model_ckpt_name_for_rank(os.path.join(all_ckpt_folder, 'global_step0'), '00') - loaded_all_param_model = torch.load(all_params_ckpt_file)['module'] + loaded_all_param_model = torch.load(all_params_ckpt_file, weights_only=False)['module'] all_param_names = set([n for n, p in model.named_parameters()]) assert set(loaded_all_param_model.keys()) == all_param_names @@ -535,7 +536,7 @@ def test_save_exclude_frozen_weights(self, tmpdir, zero_stage): # Excluding frozen parameters should reduce checkpoint size assert os.path.getsize(all_params_ckpt_file) > os.path.getsize(trainable_ckpt_file) - loaded_trainable_param_model = torch.load(trainable_ckpt_file)['module'] + loaded_trainable_param_model = torch.load(trainable_ckpt_file, weights_only=False)['module'] frozen_param_names = set([n for n, p in model.named_parameters() if not p.requires_grad]) loaded_trainable_param_names = set(loaded_trainable_param_model.keys()) overlap_names = set.intersection(loaded_trainable_param_names, frozen_param_names) @@ -552,14 +553,14 @@ def test_save_exclude_custom_frozen_weights(self, tmpdir, zero_stage): "optimizer": { "type": 'Adam' }, - "fp16": { - "enabled": True, - "initial_scale_power": 8 - }, "zero_optimization": { "stage": zero_stage, } } + if get_accelerator().is_fp16_supported(): + config_dict["fp16"] = {"enabled": True, "initial_scale_power": 8} + elif get_accelerator().is_bf16_supported(): + config_dict["bf16"] = {"enabled": True} hidden_dim = 10 model = SimpleFrozenModel(hidden_dim, empty_grad=False) @@ -574,7 +575,7 @@ def test_save_exclude_custom_frozen_weights(self, tmpdir, zero_stage): custom_state_dict_ckpt_file = get_model_ckpt_name_for_rank( os.path.join(custom_state_dict_ckpt_folder, 'global_step0'), '00') - loaded_custom_state_dict_param_model = torch.load(custom_state_dict_ckpt_file)['module'] + loaded_custom_state_dict_param_model = torch.load(custom_state_dict_ckpt_file, weights_only=False)['module'] loaded_custom_state_dict_param_names = set(loaded_custom_state_dict_param_model.keys()) custom_state_dict_param_names = set([k for k, v in model.state_dict().items()]) @@ -617,7 +618,8 @@ def test_save_tensor_clone(self, tmpdir, zero_stage, use_cpu_device): clone_ckpt_file = os.path.join(tmpdir, 'clone_ckpt.pt') torch.save(clone_state_dict, clone_ckpt_file) - compare_state_dicts(torch.load(ref_ckpt_file), torch.load(clone_ckpt_file)) + compare_state_dicts(torch.load(ref_ckpt_file, weights_only=False), + torch.load(clone_ckpt_file, weights_only=False)) class TestZeRONonDistributed(DistributedTest): diff --git a/tests/unit/comm/test_dist.py b/tests/unit/comm/test_dist.py index a40805bf0a75..861ba5c7be1a 100644 --- a/tests/unit/comm/test_dist.py +++ b/tests/unit/comm/test_dist.py @@ -127,13 +127,22 @@ def test(self): assert torch.all(x == result) +@pytest.mark.parametrize("dtype", [torch.float32, torch.bfloat16, torch.float16]) class TestDistInferenceAllReduce(DistributedTest): - world_size = 4 + device_count = get_accelerator().device_count() + if device_count >= 4: + world_size = [1, 2, 4] + elif device_count >= 2: + world_size = [1, 2] + else: + world_size = [1] - def test(self): + def test(self, dtype): x = torch.ones(1, 3).to(get_accelerator().device_name()) * (dist.get_rank() + 1) sum_of_ranks = (dist.get_world_size() * (dist.get_world_size() + 1)) // 2 result = torch.ones(1, 3).to(get_accelerator().device_name()) * sum_of_ranks + result = result.to(dtype) + x = x.to(dtype) dist.inference_all_reduce(x) assert torch.all(x == result) diff --git a/tests/unit/common.py b/tests/unit/common.py index cdeca54b01ee..1498b0400ee1 100644 --- a/tests/unit/common.py +++ b/tests/unit/common.py @@ -23,7 +23,7 @@ from _pytest.fixtures import FixtureLookupError, FixtureFunctionMarker # Worker timeout for tests that hang -DEEPSPEED_TEST_TIMEOUT = 600 +DEEPSPEED_TEST_TIMEOUT = int(os.environ.get('DS_UNITTEST_TIMEOUT', '600')) def is_rocm_pytorch(): @@ -58,6 +58,20 @@ def get_master_port(base_port=29500, port_range_size=1000): raise IOError('no free ports') +def _get_cpu_socket_count(): + import shlex + p1 = subprocess.Popen(shlex.split("cat /proc/cpuinfo"), stdout=subprocess.PIPE) + p2 = subprocess.Popen(["grep", "physical id"], stdin=p1.stdout, stdout=subprocess.PIPE) + p1.stdout.close() + p3 = subprocess.Popen(shlex.split("sort -u"), stdin=p2.stdout, stdout=subprocess.PIPE) + p2.stdout.close() + p4 = subprocess.Popen(shlex.split("wc -l"), stdin=p3.stdout, stdout=subprocess.PIPE) + p3.stdout.close() + r = int(p4.communicate()[0]) + p4.stdout.close() + return r + + def set_accelerator_visible(): cuda_visible = os.environ.get("CUDA_VISIBLE_DEVICES", None) xdist_worker_id = get_xdist_worker_id() @@ -81,16 +95,26 @@ def set_accelerator_visible(): match = re.search('Device Type.*GPU', line) if match: num_accelerators += 1 + elif get_accelerator().device_name() == 'hpu': + try: + hl_smi = subprocess.check_output(['hl-smi', "-L"]) + num_accelerators = re.findall(r"Module ID\s+:\s+(\d+)", hl_smi.decode()) + except FileNotFoundError: + sim_list = subprocess.check_output(['ls', '-1', '/dev/accel']) + num_accelerators = re.findall(r"accel(\d+)", sim_list.decode()) + num_accelerators = sorted(num_accelerators, key=int) + os.environ["HABANA_VISIBLE_MODULES"] = ",".join(num_accelerators) elif get_accelerator().device_name() == 'npu': npu_smi = subprocess.check_output(['npu-smi', 'info', '-l']) num_accelerators = int(npu_smi.decode('utf-8').strip().split('\n')[0].split(':')[1].strip()) else: assert get_accelerator().device_name() == 'cpu' - cpu_sockets = int( - subprocess.check_output('cat /proc/cpuinfo | grep "physical id" | sort -u | wc -l', shell=True)) - num_accelerators = cpu_sockets + num_accelerators = _get_cpu_socket_count() - cuda_visible = ",".join(map(str, range(num_accelerators))) + if isinstance(num_accelerators, list): + cuda_visible = ",".join(num_accelerators) + else: + cuda_visible = ",".join(map(str, range(num_accelerators))) # rotate list based on xdist worker id, example below # wid=0 -> ['0', '1', '2', '3'] @@ -113,6 +137,7 @@ class DistributedExec(ABC): set_dist_env = True requires_cuda_env = True reuse_dist_env = False + non_daemonic_procs = False _pool_cache = {} exec_timeout = DEEPSPEED_TEST_TIMEOUT @@ -120,16 +145,13 @@ class DistributedExec(ABC): def run(self): ... - def __call__(self, request=None): + def __call__(self, request): self._fixture_kwargs = self._get_fixture_kwargs(request, self.run) world_size = self.world_size if self.requires_cuda_env and not get_accelerator().is_available(): pytest.skip("only supported in accelerator environments.") - if isinstance(world_size, int): - world_size = [world_size] - for procs in world_size: - self._launch_procs(procs) + self._launch_with_file_store(request, world_size) def _get_fixture_kwargs(self, request, func): if not request: @@ -145,18 +167,15 @@ def _get_fixture_kwargs(self, request, func): pass # test methods can have kwargs that are not fixtures return fixture_kwargs - def _launch_procs(self, num_procs): - # Verify we have enough accelerator devices to run this test - if get_accelerator().is_available() and get_accelerator().device_count() < num_procs: - pytest.skip( - f"Skipping test because not enough GPUs are available: {num_procs} required, {get_accelerator().device_count()} available" - ) - - # Set start method to `forkserver` (or `fork`) - mp.set_start_method('forkserver', force=True) - + def _launch_daemonic_procs(self, num_procs, init_method): # Create process pool or use cached one master_port = None + + if get_accelerator().device_name() == 'hpu': + if self.reuse_dist_env: + print("Ignoring reuse_dist_env for hpu") + self.reuse_dist_env = False + if self.reuse_dist_env: if num_procs not in self._pool_cache: self._pool_cache[num_procs] = mp.Pool(processes=num_procs) @@ -167,7 +186,7 @@ def _launch_procs(self, num_procs): master_port = get_master_port() # Run the test - args = [(local_rank, num_procs, master_port) for local_rank in range(num_procs)] + args = [(local_rank, num_procs, master_port, init_method) for local_rank in range(num_procs)] skip_msgs_async = pool.starmap_async(self._dist_run, args) try: @@ -176,19 +195,93 @@ def _launch_procs(self, num_procs): # Shortcut to exit pytest in the case of a hanged test. This # usually means an environment error and the rest of tests will # hang (causing super long unit test runtimes) - pytest.exit("Test hanged, exiting", returncode=0) - - # Tear down distributed environment and close process pools - self._close_pool(pool, num_procs) + pytest.exit("Test hanged, exiting", returncode=1) + finally: + # Regardless of the outcome, ensure proper teardown + # Tear down distributed environment and close process pools + self._close_pool(pool, num_procs) # If we skipped a test, propagate that to this process if any(skip_msgs): assert len(set(skip_msgs)) == 1, "Multiple different skip messages received" pytest.skip(skip_msgs[0]) - def _dist_run(self, local_rank, num_procs, master_port): - skip_msg = '' - if not dist.is_initialized(): + def _launch_non_daemonic_procs(self, num_procs, init_method): + assert not self.reuse_dist_env, "Cannot reuse distributed environment with non-daemonic processes" + + master_port = get_master_port() + skip_msg = mp.Queue() # Allows forked processes to share pytest.skip reason + processes = [] + prev_start_method = mp.get_start_method() + mp.set_start_method('spawn', force=True) + for local_rank in range(num_procs): + p = mp.Process(target=self._dist_run, args=(local_rank, num_procs, master_port, init_method, skip_msg)) + p.start() + processes.append(p) + mp.set_start_method(prev_start_method, force=True) + + # Now loop and wait for a test to complete. The spin-wait here isn't a big + # deal because the number of processes will be O(#GPUs) << O(#CPUs). + any_done = False + start = time.time() + while (not any_done) and ((time.time() - start) < self.exec_timeout): + for p in processes: + if not p.is_alive(): + any_done = True + break + time.sleep(.1) # So we don't hog CPU + + # If we hit the timeout, then presume a test is hanged + if not any_done: + for p in processes: + p.terminate() + pytest.exit("Test hanged, exiting", returncode=1) + + # Wait for all other processes to complete + for p in processes: + p.join(self.exec_timeout) + + failed = [(rank, p) for rank, p in enumerate(processes) if p.exitcode != 0] + for rank, p in failed: + # If it still hasn't terminated, kill it because it hung. + if p.exitcode is None: + p.terminate() + pytest.fail(f'Worker {rank} hung.', pytrace=False) + if p.exitcode < 0: + pytest.fail(f'Worker {rank} killed by signal {-p.exitcode}', pytrace=False) + if p.exitcode > 0: + pytest.fail(f'Worker {rank} exited with code {p.exitcode}', pytrace=False) + + if not skip_msg.empty(): + # This assumed all skip messages are the same, it may be useful to + # add a check here to assert all exit messages are equal + pytest.skip(skip_msg.get()) + + def _launch_procs(self, num_procs, init_method): + # Verify we have enough accelerator devices to run this test + if get_accelerator().is_available() and get_accelerator().device_count() < num_procs: + pytest.skip( + f"Skipping test because not enough GPUs are available: {num_procs} required, {get_accelerator().device_count()} available" + ) + + if get_accelerator().device_name() == 'xpu': + self.non_daemonic_procs = True + self.reuse_dist_env = False + + # Set start method to `forkserver` (or `fork`) + mp.set_start_method('forkserver', force=True) + + if self.non_daemonic_procs: + self._launch_non_daemonic_procs(num_procs, init_method) + else: + self._launch_daemonic_procs(num_procs, init_method) + + def _dist_run(self, local_rank, num_procs, master_port, init_method, skip_msg=""): + if dist.is_initialized(): + if get_accelerator().is_available(): + # local_rank might not match the rank in the previous run if you are reusing the environment + get_accelerator().set_device(dist.get_rank()) + else: """ Initialize deepspeed.comm and execute the user function. """ if self.set_dist_env: os.environ['MASTER_ADDR'] = '127.0.0.1' @@ -211,19 +304,41 @@ def _dist_run(self, local_rank, num_procs, master_port): get_accelerator().set_device(local_rank) if self.init_distributed: - deepspeed.init_distributed(dist_backend=self.backend) + deepspeed.init_distributed(dist_backend=self.backend, + init_method=init_method, + rank=local_rank, + world_size=num_procs) dist.barrier() try: self.run(**self._fixture_kwargs) except BaseException as e: if isinstance(e, Skipped): - skip_msg = e.msg + if self.non_daemonic_procs: + skip_msg.put(e.msg) + else: + skip_msg = e.msg else: raise e return skip_msg + def _launch_with_file_store(self, request, world_size): + tmpdir = request.getfixturevalue("tmpdir") + dist_file_store = tmpdir.join("dist_file_store") + assert not os.path.exists(dist_file_store) + init_method = f"file://{dist_file_store}" + + if isinstance(world_size, int): + world_size = [world_size] + for procs in world_size: + try: + self._launch_procs(procs, init_method) + finally: + if os.path.exists(dist_file_store): + os.remove(dist_file_store) + time.sleep(0.5) + def _dist_destroy(self): if (dist is not None) and dist.is_initialized(): dist.barrier() @@ -367,13 +482,9 @@ def __call__(self, request): world_size = mark.args[0] break else: - world_size = self.world_size + world_size = self._fixture_kwargs.get("world_size", self.world_size) - if isinstance(world_size, int): - world_size = [world_size] - for procs in world_size: - self._launch_procs(procs) - time.sleep(0.5) + self._launch_with_file_store(request, world_size) def _get_current_test_func(self, request): # DistributedTest subclasses may have multiple test methods @@ -384,3 +495,13 @@ def _get_current_test_func(self, request): def get_test_path(filename): curr_path = Path(__file__).parent return str(curr_path.joinpath(filename)) + + +# fp16 > bf16 > fp32 +def preferred_dtype(): + if get_accelerator().is_fp16_supported(): + return torch.float16 + elif get_accelerator().is_bf16_supported(): + return torch.bfloat16 + else: + return torch.float32 diff --git a/tests/unit/compression/test_compression.py b/tests/unit/compression/test_compression.py index c6e5031349cb..1802c09f33b5 100644 --- a/tests/unit/compression/test_compression.py +++ b/tests/unit/compression/test_compression.py @@ -14,7 +14,7 @@ from deepspeed.compression.basic_layer import LinearLayer_Compress, ColumnParallelLinear_Compress, RowParallelLinear_Compress from deepspeed.compression.helper import convert_conv1d_to_linear from deepspeed.accelerator import get_accelerator -from deepspeed.runtime.utils import required_torch_version +from deepspeed.utils.torch import required_torch_version from unit.common import DistributedTest pytestmark = pytest.mark.skipif(not required_torch_version(min_version=1.5), diff --git a/tests/unit/compression/test_dequantization.py b/tests/unit/compression/test_dequantization.py index 692f4cef97d7..8446904754b3 100644 --- a/tests/unit/compression/test_dequantization.py +++ b/tests/unit/compression/test_dequantization.py @@ -7,8 +7,9 @@ import os import torch +import pytest from unit.common import DistributedTest -from deepspeed.ops.op_builder import InferenceBuilder +import deepspeed from deepspeed.accelerator import get_accelerator @@ -18,7 +19,11 @@ def init(self): local_rank = int(os.getenv("LOCAL_RANK", "0")) self.device = torch.device(get_accelerator().device_name(local_rank)) - self.dequantize_func = InferenceBuilder().load().dequantize_fp16 + from deepspeed.ops.op_builder import InferenceBuilder + if not deepspeed.ops.__compatible_ops__[InferenceBuilder.NAME]: + pytest.skip("InferenceBuilder is not implemented") + else: + self.dequantize_func = InferenceBuilder().load().dequantize_fp16 def run_dequantize_test(self, M, N, num_groups): weight = torch.randint(-255, 255, (M, N)).to(dtype=torch.int8, device=self.device) diff --git a/tests/unit/elasticity/test_elastic.py b/tests/unit/elasticity/test_elastic.py index a49ec595a420..1f7cbbbca214 100644 --- a/tests/unit/elasticity/test_elastic.py +++ b/tests/unit/elasticity/test_elastic.py @@ -9,10 +9,10 @@ from deepspeed.git_version_info import version as ds_version import os from unit.simple_model import SimpleModel -from deepspeed.ops.op_builder import FusedAdamBuilder +from deepspeed.ops.op_builder import FusedAdamBuilder, FusedLambBuilder if not deepspeed.ops.__compatible_ops__[FusedAdamBuilder.NAME]: - pytest.skip("This op had not been implemented on this system.", allow_module_level=True) + pytest.skip("This op has not been implemented on this system.", allow_module_level=True) @pytest.fixture @@ -150,6 +150,8 @@ def test_proper_mbsz(ds_config): class TestNonElasticBatchParams(DistributedTest): world_size = 2 + @pytest.mark.skipif(not deepspeed.ops.__compatible_ops__[FusedLambBuilder.NAME], + reason="FusedLambBuilder has not been implemented on this system.") def test(self): config_dict = { "train_batch_size": 2, @@ -182,6 +184,8 @@ def test(self): class TestNonElasticBatchParamsWithOverride(DistributedTest): world_size = 2 + @pytest.mark.skipif(not deepspeed.ops.__compatible_ops__[FusedLambBuilder.NAME], + reason="FusedLambBuilder has not been implemented on this system.") def test(self): config_dict = { "train_batch_size": 2, @@ -213,6 +217,8 @@ def test(self): class TestElasticConfigChanged(DistributedTest): world_size = 2 + @pytest.mark.skipif(not deepspeed.ops.__compatible_ops__[FusedLambBuilder.NAME], + reason="FusedLambBuilder has not been implemented on this system.") def test(self): config_dict = { "train_batch_size": 2, diff --git a/tests/unit/hybrid_engine/test_he_lora.py b/tests/unit/hybrid_engine/test_he_lora.py index ea27239ed55e..5f53a237c340 100644 --- a/tests/unit/hybrid_engine/test_he_lora.py +++ b/tests/unit/hybrid_engine/test_he_lora.py @@ -15,6 +15,7 @@ import numpy.testing as npt from unit.common import DistributedTest from deepspeed.ops.op_builder import InferenceBuilder +from deepspeed.accelerator import get_accelerator if not deepspeed.ops.__compatible_ops__[InferenceBuilder.NAME]: pytest.skip("This op had not been implemented on this system.", allow_module_level=True) @@ -125,7 +126,8 @@ def get_model(self, model_name): model_config.dropout = 0.0 model = AutoModelForCausalLM.from_pretrained(model_name, config=model_config) model = model.half() - model = model.to(f'cuda:{local_rank}') + device = get_accelerator().device_name() + model = model.to(f'{device}:{local_rank}') return model def get_tokenizer(self, model_name): @@ -190,7 +192,8 @@ def test_lora(self, batch_size, model_name, zero_stage, offload_device): model.train() batch = tokenizer(train_sentences, max_length=16, padding="max_length", truncation=True, return_tensors="pt") - batch = to_device(batch, f'cuda:{local_rank}') + device = get_accelerator().device_name() + batch = to_device(batch, f'{device}:{local_rank}') batch["labels"] = batch["input_ids"] outputs = model(**batch, use_cache=False) loss = outputs.loss diff --git a/tests/unit/inference/quantization/test_intX_quantization.py b/tests/unit/inference/quantization/test_intX_quantization.py index 56df2b232d15..77b51fcd5814 100644 --- a/tests/unit/inference/quantization/test_intX_quantization.py +++ b/tests/unit/inference/quantization/test_intX_quantization.py @@ -11,7 +11,7 @@ from deepspeed.inference.quantization.quantization import _init_group_wise_weight_quantization from deepspeed.inference.quantization.utils import Quantizer, DeQuantizer from deepspeed.inference.quantization.layers import QuantizedLinear -from deepspeed.runtime.utils import required_torch_version +from deepspeed.utils.torch import required_torch_version from transformers.models.opt.modeling_opt import OPTDecoderLayer from transformers import AutoConfig, OPTConfig, AutoModel import pytest @@ -55,7 +55,7 @@ def quantization_test_helper(pre_quant_type: torch.dtype, num_bits: int): def zero3_post_init_quantization_test_helper(cpu_offload: bool, nvme_offload: bool, bits: int): import deepspeed - from transformers.deepspeed import HfDeepSpeedConfig + from transformers.integrations.deepspeed import HfDeepSpeedConfig def get_zero3_ds_config(hf_config: OPTConfig, cpu_offload: bool, nvme_offload: bool, bits: int) -> Dict: GB = 1 << 30 @@ -172,7 +172,7 @@ def get_zero3_ds_config(hf_config: OPTConfig, cpu_offload: bool, nvme_offload: b def zero3_quantized_initialization_test_helper(cpu_offload: bool, nvme_offload: bool, bits: int): import deepspeed - from transformers.deepspeed import HfDeepSpeedConfig + from transformers.integrations.deepspeed import HfDeepSpeedConfig def get_zero3_ds_config(hf_config: OPTConfig, cpu_offload: bool, nvme_offload: bool, bits: int) -> Dict: GB = 1 << 30 diff --git a/tests/unit/inference/test_checkpoint_sharding.py b/tests/unit/inference/test_checkpoint_sharding.py index 564b3fab6bf4..f1e37ee26536 100644 --- a/tests/unit/inference/test_checkpoint_sharding.py +++ b/tests/unit/inference/test_checkpoint_sharding.py @@ -14,6 +14,7 @@ from huggingface_hub import snapshot_download from transformers.utils import is_offline_mode from deepspeed.ops.op_builder import InferenceBuilder +from deepspeed.accelerator import get_accelerator if not deepspeed.ops.__compatible_ops__[InferenceBuilder.NAME]: pytest.skip("This op had not been implemented on this system.", allow_module_level=True) @@ -44,6 +45,8 @@ def model_name(request): @pytest.fixture(params=[torch.float16, torch.int8], ids=["fp16", "int8"]) def dtype(request): + if request.param not in get_accelerator().supported_dtypes(): + pytest.skip(f"{request.param} not supported by {get_accelerator().device_name()}.") return request.param @@ -110,7 +113,7 @@ def write_checkpoints_json(model_name, class_tmpdir): cached_repo_dir = snapshot_download( model_name, local_files_only=is_offline_mode(), - cache_dir=os.getenv("TRANSFORMERS_CACHE", None), + cache_dir=os.getenv("HF_HOME", None), ignore_patterns=["*.safetensors", "*.msgpack", "*.h5"], ) file_list = [str(entry) for entry in Path(cached_repo_dir).rglob("*.[bp][it][n]") if entry.is_file()] diff --git a/tests/unit/inference/test_human_eval.py b/tests/unit/inference/test_human_eval.py new file mode 100644 index 000000000000..2525aeb5aa0e --- /dev/null +++ b/tests/unit/inference/test_human_eval.py @@ -0,0 +1,73 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import pytest +import os +import torch +from deepspeed.accelerator import get_accelerator + + +@pytest.mark.evaluation +@pytest.mark.parametrize("model_name", ["codellama/CodeLlama-7b-Python-hf"]) +def test_human_eval(model_name): + import mii + import numpy + from transformers import pipeline + from human_eval.data import write_jsonl, read_problems + from human_eval.evaluation import evaluate_functional_correctness + + def generate_base_completion(pipe, problem_prompt: str) -> str: + return pipe(problem_prompt, do_sample=True)[0]["generated_text"] + + def generate_mii_completion(pipe, problem_prompt: str) -> str: + return pipe(problem_prompt, max_new_tokens=512)[0].generated_text + + def generate_samples(pipe, generation_function): + samples = [ + dict(task_id=task_id, completion=generation_function(pipe, problems[task_id]["prompt"])) + for task_id in problems for _ in range(num_samples_per_task) + ] + return samples + + # Loading Problems + problems = read_problems("../../human-eval/data/HumanEval.jsonl.gz") + num_samples_per_task = 20 + + # Initializing HuggingFace Pipeline + local_rank = os.getenv("LOCAL_RANK", "0") + device = torch.device(get_accelerator().device_name(local_rank)) + base_pipe = pipeline(model=model_name, + device=torch.device(get_accelerator().device_name(local_rank)), + max_length=512, + return_full_text=False) + + # Generating Base Samples + base_samples = generate_samples(base_pipe, generate_base_completion) + + # Base Pipeline Teardown + del base_pipe + get_accelerator().empty_cache() + + # Initializing DeepSpeed-MII Pipeline + mii_pipe = mii.pipeline(model_name) + + # Generating MII Samples + mii_samples = generate_samples(mii_pipe, generate_mii_completion) + + # MII Pipeline Teardown + mii_pipe.destroy() + + # Writing Samples + write_jsonl("base_samples.jsonl", base_samples) + write_jsonl("mii_samples.jsonl", mii_samples) + + # Evaluating Samples + base_results = evaluate_functional_correctness("base_samples.jsonl") + mii_results = evaluate_functional_correctness("mii_samples.jsonl") + + # Executing Assertions + for key in base_results.keys(): + assert numpy.allclose(base_results[key], mii_results[key], rtol=0.10), \ + f"Base result: {base_results[key]}, MII result: {mii_results[key]}, outside of rtol." diff --git a/tests/unit/inference/test_inference.py b/tests/unit/inference/test_inference.py index 6b5588d8a1f7..df85ed232a2e 100644 --- a/tests/unit/inference/test_inference.py +++ b/tests/unit/inference/test_inference.py @@ -3,52 +3,63 @@ # DeepSpeed Team -import os -import time -import torch import pytest + import itertools +import pickle +import os +import time +import requests +import fcntl + +from dataclasses import dataclass +from typing import List + import deepspeed -from deepspeed.git_version_info import torch_info -from unit.common import DistributedTest +import torch + +from huggingface_hub import HfApi from packaging import version as pkg_version -from deepspeed.ops.op_builder import OpBuilder -from transformers import pipeline, AutoTokenizer +from torch import nn +from transformers import pipeline from transformers.models.t5.modeling_t5 import T5Block from transformers.models.roberta.modeling_roberta import RobertaLayer -from huggingface_hub import HfApi -from deepspeed.model_implementations import DeepSpeedTransformerInference -from torch import nn + from deepspeed.accelerator import get_accelerator +from deepspeed.git_version_info import torch_info +from deepspeed.model_implementations import DeepSpeedTransformerInference from deepspeed.ops.op_builder import InferenceBuilder +from deepspeed.ops.op_builder import OpBuilder + +from unit.common import DistributedTest rocm_version = OpBuilder.installed_rocm_version() if rocm_version != (0, 0): pytest.skip("skip inference tests on rocm for now", allow_module_level=True) _bert_models = [ - "bert-base-cased", - "bert-base-uncased", - "bert-large-cased", - "bert-large-uncased", - "bert-base-multilingual-cased", - "bert-base-multilingual-uncased", + "google-bert/bert-base-cased", + "google-bert/bert-base-uncased", + "google-bert/bert-large-cased", + "google-bert/bert-large-uncased", + "google-bert/bert-base-multilingual-cased", + "google-bert/bert-base-multilingual-uncased", "deepset/minilm-uncased-squad2", "cross-encoder/ms-marco-MiniLM-L-12-v2", "dslim/bert-base-NER", - "bert-large-uncased-whole-word-masking-finetuned-squad", - "distilbert-base-cased-distilled-squad", + "google-bert/bert-large-uncased-whole-word-masking-finetuned-squad", + "distilbert/distilbert-base-cased-distilled-squad", ] _roberta_models = [ - "roberta-large", - "roberta-base", + "FacebookAI/roberta-large", + "FacebookAI/roberta-base", "deepset/roberta-base-squad2", "j-hartmann/emotion-english-distilroberta-base", "Jean-Baptiste/roberta-large-ner-english", ] _gpt_models = [ - "gpt2", - "distilgpt2", + "openai-community/gpt2", + "distilbert/distilgpt2", "Norod78/hebrew-bad_wiki-gpt_neo-tiny", "EleutherAI/gpt-j-6b", "EleutherAI/pythia-70m-deduped", @@ -64,10 +75,73 @@ "text2text-generation", "summarization", "translation" ] + +@dataclass +class ModelInfo: + id: str + pipeline_tag: str + tags: List[str] + + +def _hf_model_list() -> List[ModelInfo]: + """ Caches HF model list to avoid repeated API calls """ + + cache_dir = os.getenv("HF_HOME", "~/.cache/huggingface") + cache_file_path = os.path.join(cache_dir, "DS_model_cache.pkl") + num_days = os.getenv("HF_CACHE_EXPIRY_DAYS", 1) + cache_expiration_seconds = num_days * 60 * 60 * 24 + + # Load or initialize the cache + model_data = {"cache_time": 0, "model_list": []} + if os.path.isfile(cache_file_path): + with open(cache_file_path, 'rb') as f: + try: + fcntl.flock(f, fcntl.LOCK_SH) + model_data = pickle.load(f) + except Exception as e: + print(f"Error loading cache file {cache_file_path}: {e}") + finally: + fcntl.flock(f, fcntl.LOCK_UN) + + current_time = time.time() + + # Update the cache if it has expired + if ((model_data["cache_time"] + cache_expiration_seconds) < current_time) or os.getenv("FORCE_UPDATE_HF_CACHE", + default=False): + api = HfApi() + while True: + try: + model_list = [] + for model in _test_models: + model_list.extend(api.list_models(model_name=model)) + model_data["model_list"] = [ + ModelInfo(id=m.id, pipeline_tag=m.pipeline_tag, tags=m.tags) for m in model_list + ] + break # Exit the loop if the operation is successful + except requests.exceptions.HTTPError as e: + if e.response.status_code == 429: + print("Rate limit exceeded. Retrying in 60 seconds...") + time.sleep(60) + else: + raise # Re-raise the exception if it's not a 429 error + model_data["cache_time"] = current_time + + # Save the updated cache + os.makedirs(cache_dir, exist_ok=True) + with open(cache_file_path, 'wb') as f: + try: + fcntl.flock(f, fcntl.LOCK_EX) + pickle.dump(model_data, f) + finally: + fcntl.flock(f, fcntl.LOCK_UN) + + return model_data["model_list"] + + # Get a list of all models and mapping from task to supported models -_hf_models = list(HfApi().list_models()) -_hf_model_names = [m.modelId for m in _hf_models] -_hf_task_to_models = {task: [m.modelId for m in _hf_models if m.pipeline_tag == task] for task in _test_tasks} +_hf_models = _hf_model_list() +_hf_model_names = [m.id for m in _hf_models] +_hf_task_to_models = {task: [m.id for m in _hf_models if m.pipeline_tag == task] for task in _test_tasks} # Get all combinations of task:model to test _model_w_tasks = [(m, t) for m, t in itertools.product(*[_test_models, _test_tasks]) if m in _hf_task_to_models[t]] @@ -114,6 +188,11 @@ def enable_triton(request): return request.param +@pytest.fixture(params=[1, 2], ids=["ws1", "ws2"]) +def world_size(request): + return request.param + + """ Fixtures for running query """ @@ -227,6 +306,12 @@ def verify_injection(module): verify_injection(model) +# Used to Get Device name +def getDeviceId(local_rank): + device = torch.device(f"{get_accelerator().device_name(local_rank)}") + return device + + # Verify that test is valid def validate_test(model_w_task, dtype, enable_cuda_graph, enable_triton): model, task = model_w_task @@ -246,17 +331,19 @@ def validate_test(model_w_task, dtype, enable_cuda_graph, enable_triton): msg = f"Not enough GPU memory to run {model} with dtype {dtype}" elif ("bloom" in model) and (dtype != torch.half): msg = f"Bloom models only support half precision, cannot use dtype {dtype}" - elif ("bert" not in model.lower()) and enable_cuda_graph: + elif (model not in _bert_models + _roberta_models) and enable_cuda_graph: msg = "Non bert/roberta models do no support CUDA Graph" elif enable_triton and not (dtype in [torch.half]): msg = "Triton is for fp16" elif enable_triton and not deepspeed.HAS_TRITON: msg = "triton needs to be installed for the test" - elif ("bert" not in model.lower()) and enable_triton: + elif (model not in _bert_models + _roberta_models) and enable_triton: msg = "Triton kernels do not support Non bert/roberta models yet" # These should be removed once we fix several inference tests failing - if model in ["EleutherAI/pythia-70m-deduped", "distilbert-base-cased-distilled-squad", "EleutherAI/gpt-j-6b"]: + if model in [ + "EleutherAI/pythia-70m-deduped", "distilbert/distilbert-base-cased-distilled-squad", "EleutherAI/gpt-j-6b" + ]: msg = "Test is currently broken" return msg @@ -280,6 +367,12 @@ def test( if invalid_test_msg: pytest.skip(invalid_test_msg) + if dtype not in get_accelerator().supported_dtypes(): + pytest.skip(f"Acceleraor {get_accelerator().device_name()} does not support {dtype}.") + + if not deepspeed.ops.__compatible_ops__[InferenceBuilder.NAME]: + pytest.skip("This op had not been implemented on this system.", allow_module_level=True) + model, task = model_w_task local_rank = int(os.getenv("LOCAL_RANK", "0")) @@ -388,7 +481,7 @@ def test( @pytest.mark.inference -@pytest.mark.parametrize("model_w_task", [("gpt2", "text-generation")], ids=["gpt2"]) +@pytest.mark.parametrize("model_w_task", [("openai-community/gpt2", "text-generation")], ids=["gpt2"]) class TestLowCpuMemUsage(DistributedTest): world_size = 1 @@ -405,8 +498,8 @@ def test( pytest.skip(f"Acceleraor {get_accelerator().device_name()} does not support {dtype}.") local_rank = int(os.getenv("LOCAL_RANK", "0")) - - pipe = pipeline(task, model=model, model_kwargs={"low_cpu_mem_usage": True}, device=local_rank, framework="pt") + device = getDeviceId(local_rank) + pipe = pipeline(task, model=model, model_kwargs={"low_cpu_mem_usage": True}, device=device, framework="pt") bs_output = pipe(query, **inf_kwargs) pipe.model = deepspeed.init_inference(pipe.model, mp_size=self.world_size, @@ -419,46 +512,6 @@ def test( assert assert_fn(bs_output, ds_output) -@pytest.mark.seq_inference -@pytest.mark.parametrize("model_w_task", [("tiiuae/falcon-7b", "text-generation")], ids=["falcon"]) -class TestAutoTP(DistributedTest): - world_size = 1 - - def test( - self, - model_w_task, - query, - inf_kwargs, - assert_fn, - ): - # TODO: enable this test for H100 tests - pytest.skip("Not enough GPU memory for this on V100 runners") - model, task = model_w_task - dtype = torch.bfloat16 - local_rank = int(os.getenv("LOCAL_RANK", "0")) - - # We have to load these large models on CPU with pipeline because not - # enough GPU memory - tokenizer = AutoTokenizer.from_pretrained(model, use_fast=True) - pipe = pipeline(task, - model=model, - tokenizer=tokenizer, - torch_dtype=dtype, - trust_remote_code=True, - device=torch.device("cpu"), - framework="pt") - #bs_output = pipe(query, **inf_kwargs) - - pipe.model = deepspeed.init_inference(pipe.model, mp_size=self.world_size, replace_with_kernel_inject=False) - # Switch device to GPU so that input tensors are not on CPU - pipe.device = torch.device(get_accelerator().device_name(local_rank)) - ds_output = pipe(query, **inf_kwargs) - - #print(local_rank, "baseline", bs_output) - print(local_rank, "deepspeed", ds_output) - #assert assert_fn(bs_output, ds_output) - - @pytest.mark.seq_inference @pytest.mark.parametrize( "model_w_task, injection_policy", @@ -466,7 +519,7 @@ def test( (("google/t5-v1_1-small", "text2text-generation"), { T5Block: ('SelfAttention.o', 'EncDecAttention.o', 'DenseReluDense.wo') }), - (("roberta-large", "fill-mask"), { + (("FacebookAI/roberta-large", "fill-mask"), { RobertaLayer: ('output.dense') }), ], @@ -474,36 +527,25 @@ def test( ) @pytest.mark.parametrize("dtype", [torch.float], ids=["fp32"]) class TestInjectionPolicy(DistributedTest): - world_size = [1, 2] - def test( - self, - model_w_task, - injection_policy, - query, - inf_kwargs, - assert_fn, - dtype, - ): + def test(self, model_w_task, injection_policy, query, inf_kwargs, assert_fn, dtype, world_size): invalid_test_msg = validate_test(model_w_task, dtype, enable_cuda_graph=False, enable_triton=False) if invalid_test_msg: pytest.skip(invalid_test_msg) model, task = model_w_task local_rank = int(os.getenv("LOCAL_RANK", "0")) - world_size = int(os.getenv("WORLD_SIZE", "2")) - # We have to load these large models on CPU with pipeline because not - # enough GPU memory - pipe = pipeline(task, model=model, device=torch.device("cpu"), framework="pt") + pipe = pipeline(task, + model=model, + device=torch.device(get_accelerator().device_name(local_rank)), + framework="pt") bs_output = pipe(query, **inf_kwargs) pipe.model = deepspeed.init_inference(pipe.model, mp_size=world_size, dtype=dtype, injection_policy=injection_policy) - # Switch device to GPU so that input tensors are not on CPU - pipe.device = torch.device(get_accelerator().device_name(local_rank)) ds_output = pipe(query, **inf_kwargs) print(local_rank, "baseline", bs_output) @@ -512,6 +554,7 @@ def test( @pytest.mark.seq_inference +@pytest.mark.parametrize('keep_module_on_host', [True, False]) @pytest.mark.parametrize( "model_w_task", [("Helsinki-NLP/opus-mt-en-de", "translation"), ("Salesforce/codegen-350M-mono", "text-generation")], @@ -528,36 +571,43 @@ def test( inf_kwargs, assert_fn, dtype, + keep_module_on_host, ): invalid_test_msg = validate_test(model_w_task, dtype, enable_cuda_graph=False, enable_triton=False) if invalid_test_msg: pytest.skip(invalid_test_msg) - if dtype not in get_accelerator().supported_dtypes(): - pytest.skip(f"Acceleraor {get_accelerator().device_name()} does not support {dtype}.") - - # TODO: enable this test after torch 2.1 stable release - if dtype == torch.bfloat16 and model_w_task[0] == "Salesforce/codegen-350M-mono": - pytest.skip("Codegen model(bf16) need to use torch version > 2.0.") - model, task = model_w_task local_rank = int(os.getenv("LOCAL_RANK", "0")) world_size = int(os.getenv("WORLD_SIZE", "2")) - # We have to load these large models on CPU with pipeline because not - # enough GPU memory - pipe = pipeline(task, model=model, device=torch.device("cpu"), framework="pt") + if dtype not in get_accelerator().supported_dtypes(): + pytest.skip(f"Acceleraor {get_accelerator().device_name()} does not support {dtype}.") + + if model == "Salesforce/codegen-350M-mono": + pytest.skip("Disable Codegen model due to slight result difference") + #TODO: re-enable this test once we have a fix for the slight result difference + + pipe = pipeline(task, + model=model, + device=torch.device(get_accelerator().device_name(local_rank)), + framework="pt") bs_output = pipe(query, **inf_kwargs) - pipe.model = deepspeed.init_inference(pipe.model, mp_size=world_size, dtype=dtype) - # Switch device to GPU so that input tensors are not on CPU - pipe.device = torch.device(get_accelerator().device_name(local_rank)) + pipe.model = deepspeed.init_inference(pipe.model, + mp_size=world_size, + dtype=dtype, + keep_module_on_host=keep_module_on_host) ds_output = pipe(query, **inf_kwargs) print(local_rank, "baseline", bs_output) print(local_rank, "deepspeed", ds_output) assert assert_fn(bs_output, ds_output) + if keep_module_on_host: + for name, param in model.named_parameters(): + assert param.device == torch.device('cpu'), f"keep_module_on_host is on but param {name} is not on cpu" + @pytest.mark.world_size(3) def test_odd_world_size( self, @@ -566,6 +616,7 @@ def test_odd_world_size( inf_kwargs, assert_fn, dtype, + keep_module_on_host, ): invalid_test_msg = validate_test(model_w_task, dtype, enable_cuda_graph=False, enable_triton=False) if invalid_test_msg: @@ -583,13 +634,20 @@ def test_odd_world_size( framework="pt") bs_output = pipe(query, **inf_kwargs) - pipe.model = deepspeed.init_inference(pipe.model, mp_size=world_size, dtype=dtype) + pipe.model = deepspeed.init_inference(pipe.model, + mp_size=world_size, + dtype=dtype, + keep_module_on_host=keep_module_on_host) ds_output = pipe(query, **inf_kwargs) print(local_rank, "baseline", bs_output) print(local_rank, "deepspeed", ds_output) assert assert_fn(bs_output, ds_output) + if keep_module_on_host: + for name, param in model.named_parameters(): + assert param.device == torch.device('cpu'), f"keep_module_on_host is on but param {name} is not on cpu" + @pytest.mark.nightly @pytest.mark.parametrize( @@ -597,7 +655,7 @@ def test_odd_world_size( ( ["gpt2", "EleutherAI/gpt-neo-2.7B"], #["gpt2", "EleutherAI/gpt-j-6b"], # Causing OOM for this test - ["gpt2", "gpt2-xl"], + ["gpt2", "openai-community/gpt2-xl"], ), ) @pytest.mark.parametrize("task", ["lambada_standard"]) @@ -639,8 +697,15 @@ def no_pool_bootstrap_stderr(f, xs, iters): setattr(lm, model_family, getattr(lm, model_family).half().to(device)) lm._device = device else: - lm = lm_eval.models.get_model(model_family).create_from_arg_string( - f"pretrained={model_name}", {"device": get_accelerator().device_name()}) + if get_accelerator().device_name() == 'hpu': + #lm_eval not supporting HPU device, so get model with CPU and move it to HPU. + lm = lm_eval.models.get_model(model_family).create_from_arg_string(f"pretrained={model_name}", + {"device": "cpu"}) + setattr(lm, model_family, getattr(lm, model_family).to(device)) + lm._device = device + else: + lm = lm_eval.models.get_model(model_family).create_from_arg_string( + f"pretrained={model_name}", {"device": get_accelerator().device_name()}) get_accelerator().synchronize() start = time.time() diff --git a/tests/unit/inference/test_inference_config.py b/tests/unit/inference/test_inference_config.py index 375563abf65b..39d62d17372c 100644 --- a/tests/unit/inference/test_inference_config.py +++ b/tests/unit/inference/test_inference_config.py @@ -15,7 +15,7 @@ class TestInferenceConfig(DistributedTest): world_size = 1 def test_overlap_kwargs(self): - config = {"replace_with_kernel_inject": True} + config = {"replace_with_kernel_inject": True, "dtype": torch.float32} kwargs = {"replace_with_kernel_inject": True} engine = deepspeed.init_inference(torch.nn.Module(), config=config, **kwargs) @@ -37,7 +37,7 @@ def test_kwargs_and_config(self): assert engine._config.dtype == kwargs["dtype"] def test_json_config(self, tmpdir): - config = {"replace_with_kernel_inject": True} + config = {"replace_with_kernel_inject": True, "dtype": "torch.float32"} config_json = create_config_from_dict(tmpdir, config) engine = deepspeed.init_inference(torch.nn.Module(), config=config_json) diff --git a/tests/unit/inference/test_model_profiling.py b/tests/unit/inference/test_model_profiling.py index 23e49f89025b..319055d0ea55 100644 --- a/tests/unit/inference/test_model_profiling.py +++ b/tests/unit/inference/test_model_profiling.py @@ -16,6 +16,9 @@ if not deepspeed.ops.__compatible_ops__[InferenceBuilder.NAME]: pytest.skip("This op had not been implemented on this system.", allow_module_level=True) +if torch.half not in get_accelerator().supported_dtypes(): + pytest.skip(f"fp16 not supported, valid dtype: {get_accelerator().supported_dtypes()}", allow_module_level=True) + @pytest.mark.inference @pytest.mark.parametrize("use_cuda_events", [True, False]) diff --git a/tests/unit/inference/test_stable_diffusion.py b/tests/unit/inference/test_stable_diffusion.py index ac39b7ab12fa..775a02c2e878 100644 --- a/tests/unit/inference/test_stable_diffusion.py +++ b/tests/unit/inference/test_stable_diffusion.py @@ -20,14 +20,14 @@ class TestStableDiffusion(DistributedTest): def test(self): from diffusers import DiffusionPipeline from image_similarity_measures.quality_metrics import rmse - generator = torch.Generator(device=get_accelerator().current_device()) + dev = get_accelerator().device_name() + generator = torch.Generator(device=dev) seed = 0xABEDABE7 generator.manual_seed(seed) prompt = "a dog on a rocket" model = "prompthero/midjourney-v4-diffusion" local_rank = int(os.getenv("LOCAL_RANK", "0")) - device = torch.device(f"cuda:{local_rank}") - + device = torch.device(f"{dev}:{local_rank}") pipe = DiffusionPipeline.from_pretrained(model, torch_dtype=torch.half) pipe = pipe.to(device) baseline_image = pipe(prompt, guidance_scale=7.5, generator=generator).images[0] diff --git a/tests/unit/inference/v2/kernels/ragged_ops/test_blocked_kv_copy.py b/tests/unit/inference/v2/kernels/ragged_ops/test_blocked_kv_copy.py index 90fe26eb4490..5a99422ba9ff 100644 --- a/tests/unit/inference/v2/kernels/ragged_ops/test_blocked_kv_copy.py +++ b/tests/unit/inference/v2/kernels/ragged_ops/test_blocked_kv_copy.py @@ -13,11 +13,11 @@ @pytest.mark.inference_v2_ops @pytest.mark.parametrize("n_tokens, history_size", [(1, 0), (17, 0), (33, 8), (63, 1)]) -def test_single_sequence_single_block(n_tokens: int, history_size: int): +@pytest.mark.parametrize("head_size", [64, 80, 96, 128]) +def test_single_sequence_single_block(n_tokens: int, history_size: int, head_size: int): """ Validate that the copy works correctly """ - head_size = 64 n_heads_q = 16 n_heads_kv = 16 kv_block_size = 64 @@ -46,11 +46,11 @@ def test_single_sequence_single_block(n_tokens: int, history_size: int): @pytest.mark.inference_v2_ops @pytest.mark.parametrize("n_tokens, history_size", [(128, 0), (177, 0), (169, 8), (117, 88)]) -def test_single_sequence_multiple_blocks(n_tokens: int, history_size: int): +@pytest.mark.parametrize("head_size", [64, 80, 96, 128]) +def test_single_sequence_multiple_blocks(n_tokens: int, history_size: int, head_size: int): """ Validate that the copy works correctly """ - head_size = 64 n_heads_q = 16 n_heads_kv = 16 kv_block_size = 64 @@ -78,8 +78,8 @@ def test_single_sequence_multiple_blocks(n_tokens: int, history_size: int): @pytest.mark.inference_v2_ops -def test_multi_sequence() -> None: - head_size = 64 +@pytest.mark.parametrize("head_size", [64, 80, 96, 128]) +def test_multi_sequence(head_size: int) -> None: n_heads_q = 16 n_heads_kv = 16 kv_block_size = 64 diff --git a/tests/unit/inference/v2/kernels/ragged_ops/test_blocked_rotary_emb.py b/tests/unit/inference/v2/kernels/ragged_ops/test_blocked_rotary_emb.py index 618c2d3b87ec..33dd0a4c2700 100644 --- a/tests/unit/inference/v2/kernels/ragged_ops/test_blocked_rotary_emb.py +++ b/tests/unit/inference/v2/kernels/ragged_ops/test_blocked_rotary_emb.py @@ -21,13 +21,19 @@ """ -def rotary_pos_embs(q: torch.Tensor, k: torch.Tensor, seq_descs: List[DSSequenceDescriptor], batch: RaggedBatchWrapper, - head_size: int): +def rotary_pos_embs(q: torch.Tensor, + k: torch.Tensor, + seq_descs: List[DSSequenceDescriptor], + batch: RaggedBatchWrapper, + head_size: int, + rotary_dim: int = -1) -> Tuple[torch.Tensor, torch.Tensor, torch.Tensor]: + + rotary_dim = rotary_dim if rotary_dim >= 0 else head_size def make_cos_sin_emb(seq_len: int) -> Tuple[torch.Tensor, torch.Tensor]: t = torch.arange(seq_len, dtype=torch.float32, device=get_accelerator().current_device()) inv_freq = (1.0 / (10000.0**(torch.arange( - 0, head_size, 2, dtype=torch.float32, device=get_accelerator().current_device()) / head_size))).half() + 0, rotary_dim, 2, dtype=torch.float32, device=get_accelerator().current_device()) / rotary_dim))).half() freqs = torch.einsum("i,j->ij", t, inv_freq) emb = torch.cat((freqs, freqs), dim=-1) @@ -57,11 +63,17 @@ def rotate_half(x: torch.Tensor) -> torch.Tensor: k_src = k[start_idx:start_idx + n_tokens].reshape(n_tokens, n_heads_kv, head_size).float() freq_start_offset = seq_desc.seen_tokens + q_src_rot = q_src[:, :, :rotary_dim] + k_src_rot = k_src[:, :, :rotary_dim] + cos_chunk = cos[range(freq_start_offset, freq_start_offset + n_tokens)] sin_chunk = sin[range(freq_start_offset, freq_start_offset + n_tokens)] - q_emb = q_src * cos_chunk + rotate_half(q_src) * sin_chunk - k_emb = k_src * cos_chunk + rotate_half(k_src) * sin_chunk + q_rot = q_src_rot * cos_chunk + rotate_half(q_src_rot) * sin_chunk + k_rot = k_src_rot * cos_chunk + rotate_half(k_src_rot) * sin_chunk + + q_emb = torch.cat((q_rot, q_src[:, :, rotary_dim:]), dim=-1) + k_emb = torch.cat((k_rot, k_src[:, :, rotary_dim:]), dim=-1) q_out[start_idx:start_idx + n_tokens] = q_emb.reshape(n_tokens, n_heads_q * head_size).to(q_out.dtype) k_out[start_idx:start_idx + n_tokens] = k_emb.reshape(n_tokens, n_heads_kv * head_size).to(k_out.dtype) @@ -72,11 +84,11 @@ def rotate_half(x: torch.Tensor) -> torch.Tensor: @pytest.mark.inference_v2_ops @pytest.mark.parametrize("n_tokens, history_size", [(1, 0), (17, 0), (33, 15), (1, 63)]) @pytest.mark.parametrize("trained_emb", [False, True]) -def test_single_sequence_single_block(n_tokens: int, history_size: int, trained_emb: bool): +@pytest.mark.parametrize("head_size", [64, 80, 96]) +def test_single_sequence_single_block(n_tokens: int, history_size: int, trained_emb: bool, head_size: int): """ Validate that the copy works correctly """ - head_size = 64 n_heads_q = 16 n_heads_kv = 16 kv_block_size = 64 @@ -106,7 +118,7 @@ def test_single_sequence_single_block(n_tokens: int, history_size: int, trained_ copy_impl = BlockedTrainedRotaryEmbeddings(head_size, n_heads_q, n_heads_kv, torch.float16) copy_impl(kv_cache, qkv, batch, freqs) else: - copy_impl = BlockedRotaryEmbeddings(head_size, n_heads_q, n_heads_kv, torch.float16) + copy_impl = BlockedRotaryEmbeddings(head_size, n_heads_q, n_heads_kv, torch.float16, head_size, 10000.0) copy_impl(kv_cache, qkv, batch) assert allclose(qkv[:, :head_size * n_heads_q], q_ref) @@ -116,11 +128,11 @@ def test_single_sequence_single_block(n_tokens: int, history_size: int, trained_ @pytest.mark.inference_v2_ops @pytest.mark.parametrize("n_tokens, history_size", [(128, 0), (177, 0), (169, 8), (117, 88)]) @pytest.mark.parametrize("trained_emb", [False, True]) -def test_single_sequence_multiple_blocks(n_tokens: int, history_size: int, trained_emb: bool): +@pytest.mark.parametrize("head_size", [64, 80, 96]) +def test_single_sequence_multiple_blocks(n_tokens: int, history_size: int, trained_emb: bool, head_size: int): """ Validate that the copy works correctly """ - head_size = 64 n_heads_q = 16 n_heads_kv = 16 kv_block_size = 64 @@ -150,7 +162,7 @@ def test_single_sequence_multiple_blocks(n_tokens: int, history_size: int, train copy_impl = BlockedTrainedRotaryEmbeddings(head_size, n_heads_q, n_heads_kv, torch.float16) copy_impl(kv_cache, qkv, batch, freqs) else: - copy_impl = BlockedRotaryEmbeddings(head_size, n_heads_q, n_heads_kv, torch.float16) + copy_impl = BlockedRotaryEmbeddings(head_size, n_heads_q, n_heads_kv, torch.float16, head_size, 10000.0) copy_impl(kv_cache, qkv, batch) assert allclose(qkv[:, :head_size * n_heads_q], q_ref) @@ -159,8 +171,8 @@ def test_single_sequence_multiple_blocks(n_tokens: int, history_size: int, train @pytest.mark.inference_v2_ops @pytest.mark.parametrize("trained_emb", [False, True]) -def test_multi_sequences(trained_emb: bool) -> None: - head_size = 64 +@pytest.mark.parametrize("head_size", [64, 80, 96]) +def test_multi_sequences(trained_emb: bool, head_size: int) -> None: n_heads_q = 16 n_heads_kv = 16 kv_block_size = 64 @@ -196,8 +208,51 @@ def test_multi_sequences(trained_emb: bool) -> None: copy_impl = BlockedTrainedRotaryEmbeddings(head_size, n_heads_q, n_heads_kv, torch.float16) copy_impl(kv_cache, qkv, batch, freqs) else: - copy_impl = BlockedRotaryEmbeddings(head_size, n_heads_q, n_heads_kv, torch.float16) + copy_impl = BlockedRotaryEmbeddings(head_size, n_heads_q, n_heads_kv, torch.float16, head_size, 10000.0) copy_impl(kv_cache, qkv, batch) assert allclose(qkv[:, :head_size * n_heads_q], q_ref) validate_kv_cache(kv_cache, k, v, seq_descs, batch, exact=False) + + +@pytest.mark.inference_v2_ops +@pytest.mark.parametrize("head_size", [80, 96]) +def test_rotary_dim(head_size: int) -> None: + trained_emb = False + rotary_dim = 64 + n_heads_q = 16 + n_heads_kv = 16 + kv_block_size = 64 + device = get_accelerator().current_device() + + batch_config = [ + (128, 0), + (177, 0), + (169, 8), + (117, 88), + (1, 293), + (1, 733), + (1, 33), + ] + + batch, state_manager, seq_descs = build_batch_and_manager(batch_config, head_size, n_heads_kv, kv_block_size) + + qkv = torch.randn((batch.current_tokens, (n_heads_q + 2 * n_heads_kv) * head_size), + device=device, + dtype=torch.float16) + qkv_ref = qkv.clone() + + q = qkv_ref[:, :head_size * n_heads_q] + k = qkv_ref[:, head_size * n_heads_q:head_size * (n_heads_q + n_heads_kv)] + v = qkv_ref[:, head_size * (n_heads_q + n_heads_kv):] + + q_ref, k, freqs = rotary_pos_embs(q, k, seq_descs, batch, head_size, rotary_dim=rotary_dim) + freqs = freqs.half() + + kv_cache = state_manager.get_cache(0) + + copy_impl = BlockedRotaryEmbeddings(head_size, n_heads_q, n_heads_kv, torch.float16, rotary_dim, 10000.0) + copy_impl(kv_cache, qkv, batch) + + assert allclose(qkv[:, :head_size * n_heads_q], q_ref) + validate_kv_cache(kv_cache, k, v, seq_descs, batch, exact=False) diff --git a/tests/unit/inference/v2/kernels/ragged_ops/test_moe_gather.py b/tests/unit/inference/v2/kernels/ragged_ops/test_moe_gather.py index 5fa375b49c19..3907fc3e3a4b 100644 --- a/tests/unit/inference/v2/kernels/ragged_ops/test_moe_gather.py +++ b/tests/unit/inference/v2/kernels/ragged_ops/test_moe_gather.py @@ -11,18 +11,28 @@ from deepspeed.inference.v2.kernels.ragged_ops import ( MoEGather, MoEScatter, - RaggedTop1Gating, + RaggedTopKGating, ) from .ragged_testing_utils import build_simple_batch """ -For simplicity's sake, these tests do rely on ``RaggedTop1Gating`` and +For simplicity's sake, these tests do rely on ``RaggedTopKGating`` and ``MoEScatter`` to produce correct inputs. If either of these kernels is broken these tests will fail, so double check the unit test results there before debugging here. """ +TEST_CASES = [ + # (n_tokens, n_experts, n_top_k) + (13, 64, 1), + (278, 64, 1), + (1977, 64, 1), + (13, 8, 2), + (278, 8, 2), + (1977, 8, 2), +] -def build_inputs(n_tokens, n_experts, do_padding): + +def build_inputs(n_tokens: int, n_experts: int, n_top_k: int, do_padding: bool): assert n_tokens <= 2048, "This test will break if n_tokens > 2048" @@ -39,22 +49,28 @@ def build_inputs(n_tokens, n_experts, do_padding): device=get_accelerator().current_device()).repeat_interleave(4096, dim=0).reshape( batch.tensor_toks, 4096).contiguous() - gate = RaggedTop1Gating(DtypeEnum.fp16) + gate = RaggedTopKGating(DtypeEnum.fp16) # Gating outputs expert_counts = torch.zeros((n_experts, ), dtype=torch.int32, device=get_accelerator().current_device()) - scores = torch.empty((batch.tensor_toks, ), dtype=torch.float32, device=get_accelerator().current_device()) - expert_assignment = torch.empty((batch.tensor_toks, ), + scores = torch.empty((batch.tensor_toks, n_top_k), dtype=torch.float32, device=get_accelerator().current_device()) + expert_assignment = torch.empty((batch.tensor_toks, n_top_k), dtype=torch.int32, device=get_accelerator().current_device()) - expert_offset = torch.empty((batch.tensor_toks, ), dtype=torch.int32, device=get_accelerator().current_device()) + expert_offset = torch.empty((batch.tensor_toks, n_top_k), + dtype=torch.int32, + device=get_accelerator().current_device()) gate(expert_counts, scores, expert_assignment, expert_offset, logits, batch) # Scatter outputs - moe_input = torch.empty((batch.tensor_toks, 4096), dtype=torch.float16, device=get_accelerator().current_device()) + moe_input = torch.empty((batch.tensor_toks * n_top_k, 4096), + dtype=torch.float16, + device=get_accelerator().current_device()) expert_cumsum = torch.empty((n_experts, ), dtype=torch.int64, device=get_accelerator().current_device()) - mapped_slots = torch.empty((batch.tensor_toks, ), dtype=torch.int32, device=get_accelerator().current_device()) + mapped_slots = torch.empty((batch.tensor_toks, n_top_k), + dtype=torch.int32, + device=get_accelerator().current_device()) scatter = MoEScatter(DtypeEnum.fp16, 4096) scatter(moe_input, expert_cumsum, mapped_slots, hidden_states, expert_counts, expert_assignment, expert_offset) @@ -63,11 +79,12 @@ def build_inputs(n_tokens, n_experts, do_padding): @pytest.mark.inference_v2_ops -@pytest.mark.parametrize("n_tokens, n_experts", [(13, 64), (278, 64), (1977, 64)]) -@pytest.mark.parametrize("do_padding", [True, False]) -def test_moe_gather(n_tokens, n_experts, do_padding): +@pytest.mark.parametrize("n_tokens, n_experts, n_top_k", TEST_CASES) +@pytest.mark.parametrize("do_padding", [False]) +def test_moe_gather(n_tokens: int, n_experts: int, n_top_k: int, do_padding: bool): + get_accelerator().manual_seed(0xC0FFEE) - batch, moe_input, scores, mapped_slots, expert_counts = build_inputs(n_tokens, n_experts, do_padding) + batch, moe_input, scores, mapped_slots, expert_counts = build_inputs(n_tokens, n_experts, n_top_k, do_padding) output = torch.randn((batch.tensor_toks, 4096), dtype=torch.float16, device=get_accelerator().current_device()) @@ -75,9 +92,31 @@ def test_moe_gather(n_tokens, n_experts, do_padding): gather(output, moe_input, scores, mapped_slots, expert_counts) for token_idx in range(n_tokens): + effective_score = scores[token_idx].sum().item() assert torch.equal( output[token_idx], torch.full((4096, ), - token_idx * scores[token_idx], + token_idx * effective_score, dtype=torch.float16, device=get_accelerator().current_device())) + + +@pytest.mark.inference_v2_ops +def test_moe_gather_normalize_scales(): + get_accelerator().manual_seed(0xC0FFEE) + + n_tokens = 72 + n_experts = 8 + n_top_k = 2 + do_padding = False + + batch, moe_input, scores, mapped_slots, expert_counts = build_inputs(n_tokens, n_experts, n_top_k, do_padding) + output = torch.randn((batch.tensor_toks, 4096), dtype=torch.float16, device=get_accelerator().current_device()) + + gather = MoEGather(DtypeEnum.fp16, 4096, normalize_scores=True) + gather(output, moe_input, scores, mapped_slots, expert_counts) + + for token_idx in range(n_tokens): + assert torch.equal( + output[token_idx], + torch.full((4096, ), token_idx, dtype=torch.float16, device=get_accelerator().current_device())) diff --git a/tests/unit/inference/v2/kernels/ragged_ops/test_moe_scatter.py b/tests/unit/inference/v2/kernels/ragged_ops/test_moe_scatter.py index 4ca051410c1c..aae459f06a6f 100644 --- a/tests/unit/inference/v2/kernels/ragged_ops/test_moe_scatter.py +++ b/tests/unit/inference/v2/kernels/ragged_ops/test_moe_scatter.py @@ -8,19 +8,28 @@ from deepspeed.accelerator import get_accelerator from deepspeed.inference.v2.inference_utils import DtypeEnum -from deepspeed.inference.v2.kernels.ragged_ops import MoEScatter, RaggedTop1Gating +from deepspeed.inference.v2.kernels.ragged_ops import MoEScatter, RaggedTopKGating from .ragged_testing_utils import build_simple_batch """ -For simplicity's sake, these tests do rely on ``RaggedTop1Gating`` to produce correct -inputs. If ``RaggedTop1Gating`` is broken, these tests will fail, so double check +For simplicity's sake, these tests do rely on ``RaggedTopKGating`` to produce correct +inputs. If ``RaggedTopKGating`` is broken, these tests will fail, so double check the unit test results there before debugging here. """ +TEST_CONFIGS = [ + (13, 64, 1), + (278, 64, 1), + (1977, 64, 1), + (13, 8, 2), + (278, 8, 2), + (1977, 8, 2), +] + @pytest.mark.inference_v2_ops -@pytest.mark.parametrize("n_tokens, n_experts", [(13, 64), (278, 64), (1977, 64)]) -@pytest.mark.parametrize("do_padding", [True, False]) -def test_moe_scatter(n_tokens, n_experts, do_padding): +@pytest.mark.parametrize("n_tokens, n_experts, n_top_k", TEST_CONFIGS) +@pytest.mark.parametrize("do_padding", [False, True]) +def test_moe_scatter(n_tokens, n_experts, n_top_k, do_padding): # Sequence composition shouldn't matter here batch = build_simple_batch([n_tokens], padding=do_padding) @@ -35,40 +44,52 @@ def test_moe_scatter(n_tokens, n_experts, do_padding): device=get_accelerator().current_device()).repeat_interleave(4096, dim=0).reshape( batch.tensor_toks, 4096).contiguous() - gate = RaggedTop1Gating(DtypeEnum.fp16) + gate = RaggedTopKGating(DtypeEnum.fp16) # Gating outputs expert_counts = torch.zeros((n_experts, ), dtype=torch.int32, device=get_accelerator().current_device()) - scores = torch.empty((batch.tensor_toks, ), dtype=torch.float32, device=get_accelerator().current_device()) - expert_assignment = torch.empty((batch.tensor_toks, ), + scores = torch.empty((batch.tensor_toks, n_top_k), dtype=torch.float32, device=get_accelerator().current_device()) + expert_assignment = torch.empty((batch.tensor_toks, n_top_k), dtype=torch.int32, device=get_accelerator().current_device()) - expert_offset = torch.empty((batch.tensor_toks, ), dtype=torch.int32, device=get_accelerator().current_device()) + expert_offset = torch.empty((batch.tensor_toks, n_top_k), + dtype=torch.int32, + device=get_accelerator().current_device()) gate(expert_counts, scores, expert_assignment, expert_offset, logits, batch) # Scatter outputs - moe_input = torch.empty((batch.tensor_toks, 4096), dtype=torch.float16, device=get_accelerator().current_device()) + moe_input = torch.empty((batch.tensor_toks * n_top_k, 4096), + dtype=torch.float16, + device=get_accelerator().current_device()) expert_cumsum = torch.empty((n_experts, ), dtype=torch.int64, device=get_accelerator().current_device()) - mapped_slots = torch.empty((batch.tensor_toks, ), dtype=torch.int32, device=get_accelerator().current_device()) + mapped_slots = torch.empty((batch.tensor_toks, n_top_k), + dtype=torch.int32, + device=get_accelerator().current_device()) scatter = MoEScatter(DtypeEnum.fp16, 4096) scatter(moe_input, expert_cumsum, mapped_slots, hidden_states, expert_counts, expert_assignment, expert_offset) + get_accelerator().synchronize() assert torch.equal(expert_cumsum, torch.cumsum(expert_counts, dim=0).to(torch.int64)) + if not do_padding: + assert torch.unique(mapped_slots).size(0) == n_top_k * n_tokens + for token_idx in range(batch.tensor_toks): if token_idx < n_tokens: - expert_idx = expert_assignment[token_idx].item() - if expert_idx == 0: - expert_cumsum_val = 0 - else: - expert_cumsum_val = expert_cumsum[expert_idx - 1] - offset = expert_offset[token_idx] - total_offset = offset + expert_cumsum_val - - assert total_offset == mapped_slots[token_idx].item() - assert torch.equal(moe_input[total_offset], hidden_states[token_idx]) + for k in range(n_top_k): + expert_idx = expert_assignment[token_idx][k].item() + if expert_idx == 0: + expert_cumsum_val = 0 + else: + expert_cumsum_val = expert_cumsum[expert_idx - 1] + offset = expert_offset[token_idx][k] + total_offset = offset + expert_cumsum_val + + assert total_offset == mapped_slots[token_idx][k].item() + assert torch.equal(moe_input[total_offset], hidden_states[token_idx]) else: - assert mapped_slots[token_idx].item() == -1 + for k in range(n_top_k): + assert mapped_slots[token_idx][k].item() == -1 - assert expert_cumsum[-1] == n_tokens + assert expert_cumsum[-1] == n_tokens * n_top_k diff --git a/tests/unit/inference/v2/kernels/ragged_ops/test_top_1_gating.py b/tests/unit/inference/v2/kernels/ragged_ops/test_top_k_gating.py similarity index 51% rename from tests/unit/inference/v2/kernels/ragged_ops/test_top_1_gating.py rename to tests/unit/inference/v2/kernels/ragged_ops/test_top_k_gating.py index 6ff2508bf320..5fa0c8a079f0 100644 --- a/tests/unit/inference/v2/kernels/ragged_ops/test_top_1_gating.py +++ b/tests/unit/inference/v2/kernels/ragged_ops/test_top_k_gating.py @@ -9,9 +9,52 @@ from deepspeed.accelerator import get_accelerator from deepspeed.inference.v2.inference_utils import DtypeEnum -from deepspeed.inference.v2.kernels.ragged_ops import RaggedTop1Gating +from deepspeed.inference.v2.kernels.ragged_ops import RaggedTopKGating from .ragged_testing_utils import build_simple_batch -from ....v2.inference_test_utils import allclose +from ...inference_test_utils import allclose + + +def _top_k_gating_testing_helper(n_tokens: int, n_experts: int, n_top_k: int, seed: int = 0xC0FFEE) -> None: + + torch.manual_seed(seed) + logits = torch.randn((n_tokens, n_experts), dtype=torch.float16, device=get_accelerator().current_device()) + batch = build_simple_batch([n_tokens], padding=False) + gate = RaggedTopKGating(DtypeEnum.fp16) + + expert_counts = torch.zeros((n_experts, ), dtype=torch.int32, device=get_accelerator().current_device()) + scores = torch.empty((n_tokens, n_top_k), dtype=torch.float32, device=get_accelerator().current_device()) + expert_assignment = torch.empty((n_tokens, n_top_k), dtype=torch.int32, device=get_accelerator().current_device()) + expert_offset = torch.empty((n_tokens, n_top_k), dtype=torch.int32, device=get_accelerator().current_device()) + + gate(expert_counts, scores, expert_assignment, expert_offset, logits, batch) + + ref_weights = F.softmax(logits, dim=-1, dtype=torch.float32) + ref_scores, ref_indices = torch.topk(ref_weights, n_top_k, dim=-1) + + assert allclose(scores, ref_scores), f"expected {ref_scores}, got {scores}" + assert torch.equal(expert_assignment, + ref_indices.to(torch.int32)), f"expected {ref_indices}, got {expert_assignment}" + assert expert_counts.sum( + ) == n_tokens * n_top_k, f"expected {n_tokens * n_top_k} tokens, got {expert_counts.sum()}" + + # Ensure that the expert offsets are unique + for i in range(n_experts): + expert_idxs = torch.where(expert_assignment == i, expert_offset, 0) + if expert_counts[i] > 0: + assert expert_idxs.unique().shape[0] == expert_counts[ + i], f"expected {expert_counts[i]} unique offsets, got {expert_idxs.unique().shape[0]}" + assert expert_idxs.max( + ) == expert_counts[i] - 1, f"expected max offset {expert_counts[i] - 1}, got {expert_idxs.max()}" + else: + # Should have all 0's so one unique value + assert expert_idxs.unique().shape[0] == 1 + assert expert_idxs.max() == 0 + + +@pytest.mark.inference_v2_ops +@pytest.mark.parametrize('n_tokens', [1, 17, 32, 89, 433]) +def test_top_2_e_8_gating(n_tokens: int) -> None: + _top_k_gating_testing_helper(n_tokens=n_tokens, n_experts=8, n_top_k=2) def _test_single_mapping_helper(n_tokens: int, @@ -19,6 +62,8 @@ def _test_single_mapping_helper(n_tokens: int, assigned_expert: int, logit_fill: float = 0.0, match_fill: float = 1.0) -> None: + + n_top_k = 1 logits = torch.full((n_tokens, n_experts), logit_fill, dtype=torch.float16, @@ -26,12 +71,12 @@ def _test_single_mapping_helper(n_tokens: int, logits[:, assigned_expert] = match_fill - gate = RaggedTop1Gating(DtypeEnum.fp16) + gate = RaggedTopKGating(DtypeEnum.fp16) expert_counts = torch.zeros((n_experts, ), dtype=torch.int32, device=get_accelerator().current_device()) - scores = torch.empty((n_tokens, ), dtype=torch.float32, device=get_accelerator().current_device()) - expert_assignment = torch.empty((n_tokens, ), dtype=torch.int32, device=get_accelerator().current_device()) - expert_offset = torch.empty((n_tokens, ), dtype=torch.int32, device=get_accelerator().current_device()) + scores = torch.empty((n_tokens, n_top_k), dtype=torch.float32, device=get_accelerator().current_device()) + expert_assignment = torch.empty((n_tokens, n_top_k), dtype=torch.int32, device=get_accelerator().current_device()) + expert_offset = torch.empty((n_tokens, n_top_k), dtype=torch.int32, device=get_accelerator().current_device()) batch = build_simple_batch([n_tokens], padding=False) gate(expert_counts, scores, expert_assignment, expert_offset, logits, batch) @@ -39,7 +84,7 @@ def _test_single_mapping_helper(n_tokens: int, assert expert_counts[assigned_expert] == n_tokens assert torch.all(expert_assignment == assigned_expert) assert torch.unique(expert_offset).shape[0] == n_tokens - assert allclose(scores, F.softmax(logits.float(), dim=1)[:, assigned_expert]) + assert allclose(scores, F.softmax(logits.float(), dim=1)[:, assigned_expert].reshape(-1, n_top_k)) @pytest.mark.inference_v2_ops @@ -72,6 +117,7 @@ def test_determinism(): n_tokens = 512 n_experts = 64 + n_top_k = 1 logits = torch.zeros((n_tokens, n_experts), dtype=torch.float16, device=get_accelerator().current_device()) batch = build_simple_batch([n_tokens], padding=False) @@ -79,13 +125,15 @@ def test_determinism(): logits[:, 19] = 1.0 logits[:, 26] = 1.0 - gate = RaggedTop1Gating(DtypeEnum.fp16) + gate = RaggedTopKGating(DtypeEnum.fp16) for _ in range(1024): expert_counts = torch.zeros((n_experts, ), dtype=torch.int32, device=get_accelerator().current_device()) - scores = torch.empty((n_tokens, ), dtype=torch.float32, device=get_accelerator().current_device()) - expert_assignment = torch.empty((n_tokens, ), dtype=torch.int32, device=get_accelerator().current_device()) - expert_offset = torch.empty((n_tokens, ), dtype=torch.int32, device=get_accelerator().current_device()) + scores = torch.empty((n_tokens, n_top_k), dtype=torch.float32, device=get_accelerator().current_device()) + expert_assignment = torch.empty((n_tokens, n_top_k), + dtype=torch.int32, + device=get_accelerator().current_device()) + expert_offset = torch.empty((n_tokens, n_top_k), dtype=torch.int32, device=get_accelerator().current_device()) batch = build_simple_batch([n_tokens], padding=False) gate(expert_counts, scores, expert_assignment, expert_offset, logits, batch) @@ -94,7 +142,7 @@ def test_determinism(): assert expert_counts[26] == 0 assert torch.all(expert_assignment == 19) assert torch.unique(expert_offset).shape[0] == n_tokens - assert allclose(scores, F.softmax(logits.float(), dim=1)[:, 19]) + assert allclose(scores, F.softmax(logits.float(), dim=1)[:, 19].reshape(-1, 1)) @pytest.mark.inference_v2_ops @@ -105,16 +153,19 @@ def test_score_accuracy(n_tokens: int, n_experts: int) -> None: """ logits = torch.randn((n_tokens, n_experts), dtype=torch.float16, device=get_accelerator().current_device()) batch = build_simple_batch([n_tokens], padding=False) + n_top_k = 1 - gate = RaggedTop1Gating(DtypeEnum.fp16) + gate = RaggedTopKGating(DtypeEnum.fp16) expert_counts = torch.zeros((n_experts, ), dtype=torch.int32, device=get_accelerator().current_device()) - scores = torch.empty((n_tokens, ), dtype=torch.float32, device=get_accelerator().current_device()) - expert_assignment = torch.empty((n_tokens, ), dtype=torch.int32, device=get_accelerator().current_device()) - expert_offset = torch.empty((n_tokens, ), dtype=torch.int32, device=get_accelerator().current_device()) + scores = torch.empty((n_tokens, n_top_k), dtype=torch.float32, device=get_accelerator().current_device()) + expert_assignment = torch.empty((n_tokens, n_top_k), dtype=torch.int32, device=get_accelerator().current_device()) + expert_offset = torch.empty((n_tokens, n_top_k), dtype=torch.int32, device=get_accelerator().current_device()) ref_scores = F.softmax(logits.float(), dim=1).max(dim=1).values + ref_scores = ref_scores.reshape(-1, 1) gate(expert_counts, scores, expert_assignment, expert_offset, logits, batch) + assert allclose(scores, ref_scores) assert expert_counts.sum() == n_tokens diff --git a/tests/unit/inference/v2/model_implementations/parameters/test_parameter_list.py b/tests/unit/inference/v2/model_implementations/parameters/test_parameter_list.py index 260236562ee9..06ff9047d648 100644 --- a/tests/unit/inference/v2/model_implementations/parameters/test_parameter_list.py +++ b/tests/unit/inference/v2/model_implementations/parameters/test_parameter_list.py @@ -26,7 +26,7 @@ def __init__(self, experts_per_rank: int) -> None: self._num_experts = experts_per_rank @property - def num_experts(self) -> int: + def n_experts(self) -> int: return self._num_experts @on_device diff --git a/tests/unit/inference/v2/modules/test_blocked_attn.py b/tests/unit/inference/v2/modules/test_blocked_attn.py index 215ad64636b1..6556aa460a44 100644 --- a/tests/unit/inference/v2/modules/test_blocked_attn.py +++ b/tests/unit/inference/v2/modules/test_blocked_attn.py @@ -12,7 +12,7 @@ from deepspeed.accelerator import get_accelerator from deepspeed.inference.v2.modules import ConfigBundle -from deepspeed.inference.v2.modules.configs import DSSelfAttentionConfig, PositionalEmbeddingType +from deepspeed.inference.v2.modules.configs import DSSelfAttentionConfig, PositionalEmbeddingType, RotateHalfConfig from deepspeed.inference.v2.modules.interfaces import DSSelfAttentionRegistry, DSSelfAttentionBase from ..kernels.ragged_ops.ragged_testing_utils import build_batch_and_manager @@ -37,13 +37,10 @@ def _blocked_flash_testing_helper(head_size: int, """ if trained_freqs is None: embed_type = PositionalEmbeddingType.none - embed_args = {} + embed_args = None else: embed_type = PositionalEmbeddingType.rotate_half - if trained_freqs: - embed_args = {'trained_freqs': True} - else: - embed_args = {'trained_freqs': False} + embed_args = RotateHalfConfig(use_trained_freqs=trained_freqs) attn_config = DSSelfAttentionConfig(max_tokens=2048, n_heads_q=n_heads_q, @@ -51,7 +48,7 @@ def _blocked_flash_testing_helper(head_size: int, head_size=head_size, max_sequences=32, positional_embedding_type=embed_type, - positional_embedding_args=embed_args) + positional_embedding_config=embed_args) config = ConfigBundle(name='dense_blocked_attention', config=attn_config) attn_module: DSSelfAttentionBase = DSSelfAttentionRegistry.instantiate_config(config) diff --git a/tests/unit/inference/v2/modules/test_cutlass_moe.py b/tests/unit/inference/v2/modules/test_cutlass_moe.py index e21170c9ed8f..b14ba127c6be 100644 --- a/tests/unit/inference/v2/modules/test_cutlass_moe.py +++ b/tests/unit/inference/v2/modules/test_cutlass_moe.py @@ -212,3 +212,117 @@ def test_in_out_channels(in_channels: int, out_channels: int) -> None: dtype=DtypeEnum.fp16, activation_type=ActivationType.IDENTITY, use_bias=True) + + +def _mixtral_moe_baseline(hidden_states: torch.Tensor, + gate_weight: torch.Tensor, + mlp_w1: torch.Tensor, + mlp_w2: torch.Tensor, + mlp_w3: torch.Tensor, + force_float: bool = False) -> torch.Tensor: + """ + Baseline implementation for mixtral MoE module. + + Based on transformers implementation: https://github.com/huggingface/transformers/blob/main/src/transformers/models/mixtral/modeling_mixtral.py + """ + output_dtype = hidden_states.dtype + if force_float: + hidden_states = hidden_states.float() + gate_weight = gate_weight.float() + mlp_w1 = mlp_w1.float() + mlp_w2 = mlp_w2.float() + mlp_w3 = mlp_w3.float() + + router_logits = torch.nn.functional.linear(hidden_states, gate_weight) + routing_weights = torch.nn.functional.softmax(router_logits, dim=-1, dtype=torch.float) + routing_weights, selected_experts = routing_weights.topk(k=2, dim=-1) + routing_weights /= routing_weights.sum(dim=-1, keepdim=True) + + # NOTE(cmikeh2): This is a difference implementation, ours will preserve the original scale + # as float32 and perform in-kernel fused FP16->FP32->FP16 conversion. + routing_weights = routing_weights.to(hidden_states.dtype) + + final_hidden_states = torch.zeros_like(hidden_states) + + expert_mask = torch.nn.functional.one_hot(selected_experts, num_classes=gate_weight.shape[0]).permute(2, 1, 0) + get_accelerator().synchronize() + + for expert_idx in range(gate_weight.shape[0]): + exp_mlp_w1 = mlp_w1[expert_idx] + exp_mlp_w2 = mlp_w2[expert_idx] + exp_mlp_w3 = mlp_w3[expert_idx] + + idx, top_x = torch.where(expert_mask[expert_idx]) + + if top_x.shape[0] == 0: + continue + + top_x_list = top_x.tolist() + idx_list = idx.tolist() + + current_state = hidden_states[top_x_list] + + linear = torch.nn.functional.linear + intermediate = torch.nn.functional.silu(linear(current_state, exp_mlp_w1)) * linear(current_state, exp_mlp_w3) + output = linear(intermediate, exp_mlp_w2) * routing_weights[top_x_list, idx_list].unsqueeze(-1) + final_hidden_states.index_add_(0, top_x, output.to(final_hidden_states.dtype)) + + return final_hidden_states.to(output_dtype) + + +@pytest.mark.inference_v2_ops +def test_mixtral_moe_config(): + + experts = 8 + n_top_k = 2 + in_channels = 4096 + intermediate_dim = 2048 + dtype = DtypeEnum.bf16 + + # Parameters + gate_weight = torch.randn( + (experts, in_channels), dtype=dtype.value, device=get_accelerator().current_device()) * .1 + + mlp_w1 = torch.randn( + (experts, intermediate_dim, in_channels), dtype=dtype.value, device=get_accelerator().current_device()) * .1 + mlp_w3 = torch.randn( + (experts, intermediate_dim, in_channels), dtype=dtype.value, device=get_accelerator().current_device()) * .1 + mlp_w2 = torch.randn( + (experts, in_channels, intermediate_dim), dtype=dtype.value, device=get_accelerator().current_device()) * .1 + + n_tokens = 256 + hidden_states = torch.randn( + (n_tokens, in_channels), dtype=dtype.value, device=get_accelerator().current_device()) * .1 + + baseline = _mixtral_moe_baseline(hidden_states, gate_weight, mlp_w1, mlp_w2, mlp_w3) + + mlp_w13_fused = torch.cat([mlp_w1, mlp_w3], dim=-1).reshape(experts, 2 * intermediate_dim, in_channels) + + config = DSMoEConfig(max_tokens=4096, + model_dim=in_channels, + intermediate_features=intermediate_dim, + n_experts=experts, + activation=ActivationType.SiGLU, + input_dtype=dtype, + output_dtype=dtype, + top_k=n_top_k, + normalize_scores=True) + + implementation_config = {"weight_dtype": DtypeEnum(dtype)} + + bundle = ConfigBundle(name='cutlass_multi_gemm_moe', config=config, implementation_config=implementation_config) + moe_module = DSMoERegistry.instantiate_config(bundle) + + batch = build_simple_batch([n_tokens]) + + gate_ds = moe_module.transform_gate_param(gate_weight) + mlp_w1_ds = moe_module.transform_moe_mlp_1_param(mlp_w13_fused) + mlp_w2_ds = moe_module.transform_moe_mlp_2_param(mlp_w2) + + output = moe_module(hidden_states, batch, gate_ds, mlp_w1_ds, mlp_w2_ds) + + # NOTE(cmikeh2): These are higher than the other tests for reasons that aren't quite + # clear to me. My best guess is that the SiGLU activation is causing larger numerical + # divergence. The thresholds chosen here is based on the observed error between the + # float and bfloat16 reference implementations. + assert allclose(output, baseline.to(dtype.value), tolerances=(5e-2, 5e-2)) diff --git a/tests/unit/inference/v2/modules/test_quantized_linear_module.py b/tests/unit/inference/v2/modules/test_quantized_linear_module.py new file mode 100644 index 000000000000..050f21c3bf3a --- /dev/null +++ b/tests/unit/inference/v2/modules/test_quantized_linear_module.py @@ -0,0 +1,183 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from typing import Optional + +import pytest +import torch + +from deepspeed.accelerator import get_accelerator +from deepspeed.inference.v2.inference_utils import ActivationType, DtypeEnum, is_gated +from deepspeed.inference.v2.modules import ConfigBundle +from deepspeed.inference.v2.modules.configs import DSLinearConfig +from deepspeed.inference.v2.modules.interfaces import DSLinearRegistry +from ...v2.inference_test_utils import allclose + + +def reference_implementation(hidden_states: torch.Tensor, weight: torch.Tensor, bias: Optional[torch.Tensor], + act_type: ActivationType) -> torch.Tensor: + dtype = hidden_states.dtype + out_states = torch.nn.functional.linear(hidden_states, weight, bias) + out_states.float() + + if is_gated(act_type): + act_func_map = { + ActivationType.ReGLU: torch.nn.functional.relu, + ActivationType.GEGLU: lambda x: torch.nn.functional.gelu(x, approximate="tanh"), + ActivationType.SiGLU: torch.nn.functional.silu, + } + + act_act = out_states[..., ::2] + act_linear = out_states[..., 1::2] + + act_act = act_func_map[act_type](act_act) + out_states = act_act * act_linear + else: + act_func_map = { + ActivationType.RELU: torch.nn.functional.relu, + ActivationType.GELU: torch.nn.functional.gelu, + ActivationType.SILU: torch.nn.functional.silu, + ActivationType.IDENTITY: lambda x: x, + } + + out_states = act_func_map[act_type](out_states) + return out_states.to(dtype) + + +def _fp6_quant_dequant_weights(weight: torch.Tensor) -> torch.Tensor: + from deepspeed.inference.v2.modules.implementations.linear.quantized_linear import fp_quantize + weight_quantized_fake_fp6, scales = fp_quantize(weight, num_bits=6, exp_bits=3) + return weight_quantized_fake_fp6 * scales + + +def quant_dequant_implementation(hidden_states: torch.Tensor, weight: torch.Tensor, bias: Optional[torch.Tensor], + act_type: ActivationType) -> torch.Tensor: + dtype = hidden_states.dtype + weight_dequantized = _fp6_quant_dequant_weights(weight) + out_states = torch.nn.functional.linear(hidden_states, weight_dequantized, bias) + out_states.float() + + if is_gated(act_type): + act_func_map = { + ActivationType.ReGLU: torch.nn.functional.relu, + ActivationType.GEGLU: lambda x: torch.nn.functional.gelu(x, approximate="tanh"), + ActivationType.SiGLU: torch.nn.functional.silu, + } + + act_act = out_states[..., ::2] + act_linear = out_states[..., 1::2] + + act_act = act_func_map[act_type](act_act) + out_states = act_act * act_linear + else: + act_func_map = { + ActivationType.RELU: torch.nn.functional.relu, + ActivationType.GELU: torch.nn.functional.gelu, + ActivationType.SILU: torch.nn.functional.silu, + ActivationType.IDENTITY: lambda x: x, + } + + out_states = act_func_map[act_type](out_states) + return out_states.to(dtype) + + +def _fp6_quantized_linear_helper(tokens: int, + in_channels: int, + out_channels: int, + dtype: DtypeEnum, + act_fn: ActivationType, + use_bias: bool = True, + expect_failure: bool = False) -> None: + # The current FP6 kernel only supports NVIDIA Ampere GPUs. + if not 'cuda' in get_accelerator().current_device_name(): + return + major, _ = torch.cuda.get_device_capability() #ignore-cuda + if major != 8: + return + + # Input vals + hidden_states = torch.randn( + (tokens, in_channels), dtype=dtype.value, device=get_accelerator().current_device_name()) * .01 + + weight_out_channels = 2 * \ + out_channels if is_gated(act_fn) else out_channels + weight = torch.randn( + (weight_out_channels, in_channels), dtype=dtype.value, device=get_accelerator().current_device_name()) * .01 + if use_bias: + bias = torch.randn( + (weight_out_channels), dtype=dtype.value, device=get_accelerator().current_device_name()) * .01 + else: + bias = None + + # quantize and dequantize output + ref_quant_dequant_output = quant_dequant_implementation(hidden_states, weight, bias, act_fn) + + linear_config = DSLinearConfig(max_tokens=2048, + in_channels=in_channels, + out_channels=out_channels, + activation=act_fn, + input_dtype=dtype, + output_dtype=dtype) + bundle = ConfigBundle(name='quantized_wf6af16_linear', config=linear_config) + fp6_linear_module = DSLinearRegistry.instantiate_config(bundle) + weight_fp6 = fp6_linear_module.transform_param(weight.clone().cpu()).to(get_accelerator().current_device_name()) + + if expect_failure: + with pytest.raises(ValueError) as excinfo: + ds_output = fp6_linear_module(hidden_states, weight_fp6, bias) + assert "The out and in channel should be multiple of 256 and 64 respectively." in str(excinfo.value) + else: + ds_output = fp6_linear_module(hidden_states, weight_fp6, bias) + # The current FP6 kernel uses FP16 Tensor Core. + tolerances = (3e-2, 2e-3) # tolerances for fp16 + + # Check DeepSpeed implementation + assert allclose(ds_output, ref_quant_dequant_output, tolerances=tolerances) + + +all_acts = [ + ActivationType.RELU, + ActivationType.GELU, + ActivationType.SILU, + ActivationType.GEGLU, + ActivationType.ReGLU, + ActivationType.SiGLU, +] +all_tokens = [37] +all_in_out_channels = [ + (4096, 4096), +] + + +@pytest.mark.inference_v2_ops +@pytest.mark.parametrize("tokens", all_tokens) +@pytest.mark.parametrize("in_channels, out_channels", all_in_out_channels) +@pytest.mark.parametrize("act_fn", all_acts) +@pytest.mark.parametrize("use_bias", [True, False]) +def test_fp6_quantized_linear_act_fn(tokens: int, in_channels: int, out_channels: int, act_fn: ActivationType, + use_bias: bool) -> None: + _fp6_quantized_linear_helper(tokens=tokens, + in_channels=in_channels, + out_channels=out_channels, + dtype=DtypeEnum.fp16, + act_fn=act_fn, + use_bias=use_bias) + + +# Other shapes, not supported by FP6 kernels. Will raise ValueError. +@pytest.mark.inference_v2_ops +@pytest.mark.parametrize("tokens", all_tokens) +@pytest.mark.parametrize("in_channels, out_channels", [(4608, 1728)]) +@pytest.mark.parametrize("act_fn", all_acts) +@pytest.mark.parametrize("use_bias", [True, False]) +def test_fp6_quantized_linear_act_fn_fail(tokens: int, in_channels: int, out_channels: int, act_fn: ActivationType, + use_bias: bool) -> None: + _fp6_quantized_linear_helper(tokens=tokens, + in_channels=in_channels, + out_channels=out_channels, + dtype=DtypeEnum.fp16, + act_fn=act_fn, + use_bias=use_bias, + expect_failure=True) diff --git a/tests/unit/launcher/test_ds_arguments.py b/tests/unit/launcher/test_ds_arguments.py index a2d06e7601ab..ee6d4ce6b7be 100644 --- a/tests/unit/launcher/test_ds_arguments.py +++ b/tests/unit/launcher/test_ds_arguments.py @@ -40,7 +40,7 @@ def test_no_ds_arguments(): assert args.deepspeed == False assert hasattr(args, 'deepspeed_config') - assert args.deepspeed_config == None + assert args.deepspeed_config is None def test_no_ds_enable_argument(): @@ -74,7 +74,7 @@ def test_no_ds_config_argument(): assert args.deepspeed == True assert hasattr(args, 'deepspeed_config') - assert args.deepspeed_config == None + assert args.deepspeed_config is None def test_no_ds_parser(): diff --git a/tests/unit/launcher/test_multinode_runner.py b/tests/unit/launcher/test_multinode_runner.py index ec0459ab0a6f..801d4223afce 100644 --- a/tests/unit/launcher/test_multinode_runner.py +++ b/tests/unit/launcher/test_multinode_runner.py @@ -19,6 +19,14 @@ def runner_info(): return env, hosts, world_info, args +@pytest.fixture +def mock_mpi_env(monkeypatch): + # Provide the 3 required MPI variables: + monkeypatch.setenv('OMPI_COMM_WORLD_LOCAL_RANK', '0') + monkeypatch.setenv('OMPI_COMM_WORLD_RANK', '0') + monkeypatch.setenv('OMPI_COMM_WORLD_SIZE', '1') + + def test_pdsh_runner(runner_info): env, resource_pool, world_info, args = runner_info runner = mnrunner.PDSHRunner(args, world_info) @@ -27,11 +35,85 @@ def test_pdsh_runner(runner_info): assert env['PDSH_RCMD_TYPE'] == 'ssh' -def test_openmpi_runner(runner_info): +def test_openmpi_runner(runner_info, mock_mpi_env): env, resource_pool, world_info, args = runner_info runner = mnrunner.OpenMPIRunner(args, world_info, resource_pool) cmd = runner.get_cmd(env, resource_pool) assert cmd[0] == 'mpirun' + assert 'eth0' in cmd + + +def test_btl_nic_openmpi_runner(runner_info, mock_mpi_env): + env, resource_pool, world_info, _ = runner_info + args = parse_args(['--launcher_arg', '-mca btl_tcp_if_include eth1', 'test_launcher.py']) + runner = mnrunner.OpenMPIRunner(args, world_info, resource_pool) + cmd = runner.get_cmd(env, resource_pool) + assert 'eth0' not in cmd + assert 'eth1' in cmd + + +def test_btl_nic_two_dashes_openmpi_runner(runner_info, mock_mpi_env): + env, resource_pool, world_info, _ = runner_info + args = parse_args(['--launcher_arg', '--mca btl_tcp_if_include eth1', 'test_launcher.py']) + runner = mnrunner.OpenMPIRunner(args, world_info, resource_pool) + cmd = runner.get_cmd(env, resource_pool) + assert 'eth0' not in cmd + assert 'eth1' in cmd + + +def test_setup_mpi_environment_success(): + """Test that _setup_mpi_environment correctly sets environment variables when MPI variables exist.""" + os.environ['OMPI_COMM_WORLD_LOCAL_RANK'] = '0' + os.environ['OMPI_COMM_WORLD_RANK'] = '1' + os.environ['OMPI_COMM_WORLD_SIZE'] = '2' + + args = parse_args(['--launcher_arg', '--mca btl_tcp_if_include eth1', 'test_launcher.py']) + + runner = mnrunner.OpenMPIRunner(args, None, None) + # Set up the MPI environment + runner._setup_mpi_environment() + + assert os.environ['LOCAL_RANK'] == '0' + assert os.environ['RANK'] == '1' + assert os.environ['WORLD_SIZE'] == '2' + + # Clean up environment + del os.environ['OMPI_COMM_WORLD_LOCAL_RANK'] + del os.environ['OMPI_COMM_WORLD_RANK'] + del os.environ['OMPI_COMM_WORLD_SIZE'] + del os.environ['LOCAL_RANK'] + del os.environ['RANK'] + del os.environ['WORLD_SIZE'] + + +def test_setup_mpi_environment_missing_variables(): + """Test that _setup_mpi_environment raises an EnvironmentError when MPI variables are missing.""" + + # Clear relevant environment variables + os.environ.pop('OMPI_COMM_WORLD_LOCAL_RANK', None) + os.environ.pop('OMPI_COMM_WORLD_RANK', None) + os.environ.pop('OMPI_COMM_WORLD_SIZE', None) + + args = parse_args(['--launcher_arg', '--mca btl_tcp_if_include eth1', 'test_launcher.py']) + + with pytest.raises(EnvironmentError, match="MPI environment variables are not set"): + mnrunner.OpenMPIRunner(args, None, None) + + +def test_setup_mpi_environment_fail(): + """Test that _setup_mpi_environment fails if only partial MPI variables are provided.""" + os.environ['OMPI_COMM_WORLD_LOCAL_RANK'] = '0' + os.environ.pop('OMPI_COMM_WORLD_RANK', None) # missing variable + os.environ['OMPI_COMM_WORLD_SIZE'] = '2' + + args = parse_args(['--launcher_arg', '--mca btl_tcp_if_include eth1', 'test_launcher.py']) + + with pytest.raises(EnvironmentError, match="MPI environment variables are not set"): + runner = mnrunner.OpenMPIRunner(args, None, None) + + # Clean up environment + del os.environ['OMPI_COMM_WORLD_LOCAL_RANK'] + del os.environ['OMPI_COMM_WORLD_SIZE'] def test_mpich_runner(runner_info): diff --git a/tests/unit/launcher/test_user_args.py b/tests/unit/launcher/test_user_args.py new file mode 100644 index 000000000000..b86be4dfe74c --- /dev/null +++ b/tests/unit/launcher/test_user_args.py @@ -0,0 +1,66 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import pytest +import subprocess + +from deepspeed.accelerator import get_accelerator + +if not get_accelerator().is_available(): + pytest.skip("only supported in accelerator environments.", allow_module_level=True) + +user_arg_test_script = """import argparse +parser = argparse.ArgumentParser() +parser.add_argument("--prompt", type=str) +parser.add_argument("--local_rank", type=int, default=0) +parser.add_argument("--world_size", type=int, default=1) +args = parser.parse_args() +print("ARG PARSE SUCCESS") +""" + + +@pytest.fixture(scope="function") +def user_script_fp(tmpdir): + script_fp = tmpdir.join("user_arg_test.py") + with open(script_fp, "w") as f: + f.write(user_arg_test_script) + return script_fp + + +@pytest.fixture(scope="function") +def cmd(user_script_fp, prompt, multi_node): + if multi_node: + cmd = ("deepspeed", "--force_multi", "--num_nodes", "1", "--num_gpus", "1", user_script_fp, "--prompt", prompt) + else: + cmd = ("deepspeed", "--num_nodes", "1", "--num_gpus", "1", user_script_fp, "--prompt", prompt) + return cmd + + +@pytest.mark.parametrize("prompt", [ + '''"I am 6' tall"''', """'I am 72" tall'""", """'"translate English to Romanian: "'""", + '''I'm going to tell them "DeepSpeed is the best"''' +]) +@pytest.mark.parametrize("multi_node", [True, False]) +def test_user_args(cmd, multi_node): + if multi_node and get_accelerator().device_name() == "cpu": + pytest.skip("CPU accelerator does not support this test yet") + p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + out, err = p.communicate() + assert "ARG PARSE SUCCESS" in out.decode("utf-8"), f"User args not parsed correctly: {err.decode('utf-8')}" + + +def test_bash_string_args(tmpdir, user_script_fp): + bash_script = f""" + ARGS="--prompt 'DeepSpeed is the best'" + echo ${{ARGS}}|xargs deepspeed --num_nodes 1 --num_gpus 1 {user_script_fp} + """ + + bash_fp = tmpdir.join("bash_script.sh") + with open(bash_fp, "w") as f: + f.write(bash_script) + + p = subprocess.Popen(["bash", bash_fp], stdout=subprocess.PIPE, stderr=subprocess.PIPE) + out, err = p.communicate() + assert "ARG PARSE SUCCESS" in out.decode("utf-8"), f"User args not parsed correctly: {err.decode('utf-8')}" diff --git a/tests/unit/linear/test_ctx.py b/tests/unit/linear/test_ctx.py new file mode 100644 index 000000000000..e03d13fd6ce2 --- /dev/null +++ b/tests/unit/linear/test_ctx.py @@ -0,0 +1,106 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import torch +import deepspeed +import pytest +from unit.common import DistributedTest + +import deepspeed.comm as dist +from deepspeed.linear import LoRAConfig, init_lora +from deepspeed.linear.optimized_linear import LoRAOptimizedLinear +from unit.simple_model import random_dataloader, SimpleModel + +try: + import transformers +except ImportError: + transformers = None + +if transformers is None: + pytest.skip("transformers is required for this test", allow_module_level=True) + + +def injection_assert(model): + # pick out random linear that should have been replaced and initialized + q_proj = model.model.layers[1].self_attn.q_proj + + assert isinstance(q_proj, LoRAOptimizedLinear), "injection did not happen" + assert q_proj._initialized, "lora was not initialized properly" + assert isinstance(q_proj.lora_weight_1, torch.nn.Linear) + assert isinstance(q_proj.lora_weight_2, torch.nn.Linear) + + +class TestEngine(DistributedTest): + world_size = 2 + + def test_model(self): + lora_config = LoRAConfig(lora_r=16, lora_alpha=16, base_weight_sharding=2) + quant_config = None + hidden_dim = 64 + nlayers = 4 + + with deepspeed.linear.Init(lora_config=lora_config, quant_config=quant_config): + model = SimpleModel(hidden_dim=hidden_dim, nlayers=nlayers) + + init_lora(model) + + model_norms = [model.linears[i].weight.norm().item() for i in range(nlayers)] + + ds_config = { + "train_batch_size": 2, + "steps_per_print": 1, + "bf16": { + "enabled": True + }, + "optimizer": { + "type": "Adam", + "params": { + "lr": 0.00015 + } + }, + "zero_optimization": { + "stage": 1 + } + } + model, *_ = deepspeed.initialize(config=ds_config, model=model, model_parameters=model.parameters()) + + engine_norms = [model.module.linears[i].weight.norm().item() for i in range(nlayers)] + + # Ensure that sharded weights are not broadcast during engine init + assert engine_norms == model_norms, f"{dist.get_rank()=} base weight norms are not the same after engine init, {engine_norms=} != {model_norms=}" + + data_loader = random_dataloader(model=model, + total_samples=50, + hidden_dim=hidden_dim, + device=model.device, + dtype=torch.bfloat16) + for n, batch in enumerate(data_loader): + loss = model(batch[0], batch[1]) + model.backward(loss) + model.step() + + +class TestInitTransformers(DistributedTest): + world_size = 2 + + def test_pretrained_init(self): + lora_config = LoRAConfig(lora_r=16, lora_alpha=16, base_weight_sharding=2) + quant_config = None + + with deepspeed.linear.Init(lora_config=lora_config, quant_config=quant_config): + model = transformers.AutoModelForCausalLM.from_pretrained("llamafactory/tiny-random-Llama-3") + + injection_assert(model) + + def test_config_init(self): + lora_config = LoRAConfig(lora_r=16, lora_alpha=16, base_weight_sharding=2) + quant_config = None + + config = transformers.AutoConfig.from_pretrained("llamafactory/tiny-random-Llama-3") + + with deepspeed.linear.Init(lora_config=lora_config, quant_config=quant_config): + model = transformers.AutoModelForCausalLM.from_config(config) + + injection_assert(model) diff --git a/tests/unit/linear/test_linear.py b/tests/unit/linear/test_linear.py new file mode 100644 index 000000000000..2058791dba4a --- /dev/null +++ b/tests/unit/linear/test_linear.py @@ -0,0 +1,123 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import pytest +import torch +import deepspeed +import deepspeed.comm as dist + +from deepspeed.accelerator import get_accelerator +from deepspeed.linear import OptimizedLinear, LoRAConfig, QuantizationConfig +from unit.common import DistributedTest + +from deepspeed.ops.op_builder import FPQuantizerBuilder + +if not deepspeed.ops.__compatible_ops__[FPQuantizerBuilder.NAME]: + pytest.skip("FPQuantizer op is not available on this system", allow_module_level=True) + + +class TestBasicLinear(DistributedTest): + world_size = 2 + + def test(self): + lora_config = None + quantization_config = None + + input_features = 64 # Number of input features + output_features = 64 # Number of output features + batch_size = 1 # Number of samples in a batch + + linear_layer = OptimizedLinear(input_dim=input_features, + output_dim=output_features, + lora_config=lora_config, + quantization_config=quantization_config, + dtype=torch.bfloat16) + + dummy_input = torch.rand(batch_size, input_features, dtype=torch.bfloat16) + output = linear_layer(dummy_input) + assert output.shape == (batch_size, output_features) + + +@pytest.mark.parametrize("base_weight_sharding", [1, 2]) +class TestLoRALinear(DistributedTest): + world_size = 2 + + def test(self, base_weight_sharding): + rank = dist.get_rank() + quantization_config = None + + input_features = 64 # Number of input features + output_features = 64 # Number of output features + batch_size = 5 # Number of samples in a batch + + lora_config = LoRAConfig(lora_r=16, lora_alpha=16, base_weight_sharding=base_weight_sharding) + + linear_layer = OptimizedLinear(input_dim=input_features, + output_dim=output_features, + lora_config=lora_config, + quantization_config=quantization_config, + dtype=torch.bfloat16) + device = get_accelerator().current_device_name() + linear_layer = linear_layer.to(device) + if rank == 0: + for n, p in linear_layer.named_parameters(): + print(f"{n}, {p.shape}") + + dummy_input = torch.rand(batch_size, input_features, device=device, dtype=torch.bfloat16) + + output = linear_layer(dummy_input) + assert output.shape == (batch_size, output_features) + + +@pytest.mark.parametrize("q_bits", [8, 6]) +class TestQuantLinear(DistributedTest): + world_size = 2 + + def test(self, q_bits): + input_features = 64 # Number of input features + output_features = 64 # Number of output features + batch_size = 5 # Number of samples in a batch + + lora_config = None + quantization_config = QuantizationConfig(q_bits=q_bits) + quantization_config.q_dtype = FPQuantizerBuilder.get_default_quant_dtype() + + linear_layer = OptimizedLinear(input_dim=input_features, + output_dim=output_features, + lora_config=lora_config, + quantization_config=quantization_config, + dtype=torch.bfloat16) + device = get_accelerator().current_device_name() + linear_layer = linear_layer.to(device) + dummy_input = torch.rand([batch_size, input_features], device=device, dtype=torch.bfloat16) + + output = linear_layer(dummy_input) + assert output.shape == (batch_size, output_features) + + +@pytest.mark.parametrize("base_weight_sharding", [1, 2], ids=['bws1', 'bws2']) +@pytest.mark.parametrize("q_bits", [8, 6], ids=['qbit8', 'qbit6']) +class TestOptimizedLinear(DistributedTest): + world_size = 2 + + def test(self, base_weight_sharding, q_bits): + input_features = 64 # Number of input features + output_features = 64 # Number of output features + batch_size = 5 # Number of samples in a batch + + lora_config = LoRAConfig(lora_r=16, lora_alpha=16, base_weight_sharding=base_weight_sharding) + quantization_config = QuantizationConfig(q_bits=q_bits) + quantization_config.q_dtype = FPQuantizerBuilder.get_default_quant_dtype() + + linear_layer = OptimizedLinear(input_dim=input_features, + output_dim=output_features, + lora_config=lora_config, + quantization_config=quantization_config, + dtype=torch.bfloat16) + device = get_accelerator().current_device_name() + linear_layer = linear_layer.to(device) + dummy_input = torch.rand([batch_size, input_features], device=device, dtype=torch.bfloat16) + output = linear_layer(dummy_input) + assert output.shape == (batch_size, output_features) diff --git a/tests/unit/linear/test_quant_param.py b/tests/unit/linear/test_quant_param.py new file mode 100644 index 000000000000..283d81b4bf36 --- /dev/null +++ b/tests/unit/linear/test_quant_param.py @@ -0,0 +1,60 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import pytest +import torch +import deepspeed + +from deepspeed.accelerator import get_accelerator +from deepspeed.linear.quantization import QuantizedParameter +from deepspeed.linear.config import QuantizationConfig + +from deepspeed.ops.op_builder import FPQuantizerBuilder + +from unit.common import DistributedTest + +if not deepspeed.ops.__compatible_ops__[FPQuantizerBuilder.NAME]: + pytest.skip("FPQuantizer op is not available on this system", allow_module_level=True) + + +class TestQuantParam(DistributedTest): + world_size = 1 + + @pytest.mark.parametrize('dtype', [torch.half, torch.float]) + def test_unsupported_dtypes(self, dtype): + device = get_accelerator().current_device_name() + data = torch.rand(5, 5, device='cpu', dtype=dtype) + qp = QuantizedParameter(data) + with pytest.raises(AssertionError): + qp.to(device) + + def test_requires_grad(self): + data = torch.rand(5, 5, dtype=torch.bfloat16) + with pytest.raises(ValueError): + QuantizedParameter(data, requires_grad=True) + + def test_move_to_accelerator(self): + device = get_accelerator().current_device() + data = torch.rand(5, 5, device='cpu', dtype=torch.bfloat16) + quantization_config = QuantizationConfig() + quantization_config.q_dtype = FPQuantizerBuilder.get_default_quant_dtype() + qp = QuantizedParameter(data, quantization_config=quantization_config) + assert qp.device == torch.device('cpu') + qp = qp.to(get_accelerator().current_device_name()) + assert qp.device == torch.device(device) + assert qp.dtype == quantization_config.q_dtype + + def test_hf_clone(self): + device = get_accelerator().current_device_name() + data = torch.rand(5, 5, device=device, dtype=torch.bfloat16) + + quantization_config = QuantizationConfig(q_bits=6) + qp = QuantizedParameter(data, quantization_config=quantization_config) + + # should be able to clone parameter via dict, HF expects this to work + qp_copy = QuantizedParameter(qp.data, **qp.__dict__) + + assert all(qp.data == qp_copy.data) + assert qp.quantization_config == qp_copy.quantization_config diff --git a/tests/unit/model_parallelism/test_autotp_training.py b/tests/unit/model_parallelism/test_autotp_training.py new file mode 100644 index 000000000000..7680b28ce6b5 --- /dev/null +++ b/tests/unit/model_parallelism/test_autotp_training.py @@ -0,0 +1,574 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import pytest +import deepspeed.comm as dist +import torch +import math +from copy import deepcopy + +from unit.common import DistributedTest, preferred_dtype +import deepspeed +from deepspeed.accelerator import get_accelerator +from unit.simple_model import SimpleModel, random_dataloader +from deepspeed.utils import groups +from contextlib import contextmanager +from torch import nn +from deepspeed.module_inject.layers import LinearAllreduce, LinearLayer, set_autotp_mode +from unit.checkpoint.common import compare_lr_scheduler_states, compare_optimizer_states +import os + + +def skip_on_device(): + if get_accelerator().device_name() == 'xpu': + pytest.skip(f"XPU requires a higher version for test") + + +class SequentialLinearModel(torch.nn.Module): + + def __init__(self, hidden_dim, empty_grad=False, nlayers=1): + super(SequentialLinearModel, self).__init__() + self.linears = torch.nn.ModuleList( + [torch.nn.Linear(hidden_dim, hidden_dim, bias=None) for i in range(nlayers)]) + if empty_grad: + self.linear2 = torch.nn.Linear(hidden_dim, hidden_dim, bias=None) + self.cross_entropy_loss = torch.nn.CrossEntropyLoss() + self.empty_grad = empty_grad + + def forward(self, x, y): + if len(self.linears) == 1: + x = self.linears[0](x) + else: + for i, l in enumerate(self.linears): + x = self.linears[i](x) + return self.cross_entropy_loss(x, y) + + +@contextmanager +def should_assert_with_msg(expected_message): + try: + yield + except AssertionError as e: + if dist.get_rank() == 0: + print(expected_message) + print(str(e)) + if str(e) == expected_message: + pass + else: + raise e + + +@pytest.mark.parametrize("tp_size", [2, 4]) +class TestTpParallelStates(DistributedTest): + world_size = 4 + + def test(self, tp_size: int): + skip_on_device() + set_autotp_mode(training=True) + + dp_size = 4 / tp_size + hidden_dim = 128 + config_dict = { + "train_micro_batch_size_per_gpu": 1, + "tensor_parallel": { + "autotp_size": tp_size + }, + "zero_optimization": { + "stage": 0 + } + } + model = SimpleModel(hidden_dim=hidden_dim) + model, _, _, _ = deepspeed.initialize(model=model, model_parameters=model.parameters(), config=config_dict) + assert groups.get_tensor_model_parallel_world_size() == tp_size + assert groups.get_data_parallel_world_size() == dp_size + + +@pytest.mark.parametrize("tp_size", [2, 4]) +class TestTpDataloaderCorrectness(DistributedTest): + world_size = 4 + reuse_dist_env = True + + def test(self, tp_size: int): + skip_on_device() + hidden_dim = 128 + set_autotp_mode(training=True) + config_dict = { + "train_micro_batch_size_per_gpu": 1, + "steps_per_print": 1, + "optimizer": { + "type": "Adam", + "params": { + "lr": 1e-6 + } + }, + "tensor_parallel": { + "autotp_size": tp_size + }, + "zero_optimization": { + "stage": 0, + } + } + if preferred_dtype() is torch.float16: + config_dict["fp16"] = {"enabled": True} + elif preferred_dtype() is torch.bfloat16: + config_dict["bf16"] = {"enabled": True} + + model = SimpleModel(hidden_dim=hidden_dim) + model, _, _, _ = deepspeed.initialize(model=model, model_parameters=model.parameters(), config=config_dict) + data_loader = random_dataloader(model=model, + total_samples=3, + hidden_dim=hidden_dim, + device=model.device, + dtype=preferred_dtype()) + dist.barrier() + with should_assert_with_msg( + "Data inconsistency within the TP group. Please check the Dataloader implementation to ensure consistency." + ): + for batch in data_loader: + # batch[0].requires_grad = requires_grad + batch[0] += dist.get_rank() + model(batch[0], batch[1]) + + model = SimpleModel(hidden_dim=hidden_dim) + model, _, _, _ = deepspeed.initialize(model=model, model_parameters=model.parameters(), config=config_dict) + data_loader = random_dataloader(model=model, + total_samples=3, + hidden_dim=hidden_dim, + device=model.device, + dtype=preferred_dtype()) + for batch in data_loader: + dist.broadcast(batch[0], + src=groups.get_tensor_model_parallel_src_rank(), + group=groups.get_tensor_model_parallel_group()) + dist.broadcast(batch[1], + src=groups.get_tensor_model_parallel_src_rank(), + group=groups.get_tensor_model_parallel_group()) + model(batch[0], batch[1]) + + +def process_linear_layer(hidden_dim, input): + torch.manual_seed(42) + torch_linear = nn.Linear(hidden_dim, + hidden_dim, + dtype=preferred_dtype(), + device=get_accelerator().current_device(), + bias=None) + torch_out = torch_linear(input) + torch_loss = torch_out.sum() + torch_loss.backward() + return torch_linear, torch_out + + +@pytest.mark.sequential +@pytest.mark.parametrize("tp_size", [2, 4]) +class TestTpLayerFwdBwd(DistributedTest): + world_size = 4 + reuse_dist_env = True + + def testRowParallel(self, tp_size: int): + skip_on_device() + hidden_dim = 128 + batch_size_per_device = 1 + set_autotp_mode(training=True) + config_dict = { + "train_micro_batch_size_per_gpu": 1, + "steps_per_print": 1, + "optimizer": { + "type": "Adam", + "params": { + "lr": 1e-6 + } + }, + "tensor_parallel": { + "autotp_size": tp_size + }, + "zero_optimization": { + "stage": 0, + } + } + if preferred_dtype() is torch.float16: + config_dict["fp16"] = {"enabled": True} + elif preferred_dtype() is torch.bfloat16: + config_dict["bf16"] = {"enabled": True} + model = SequentialLinearModel(hidden_dim=hidden_dim) + model, _, _, _ = deepspeed.initialize(model=model, model_parameters=model.parameters(), config=config_dict) + input = torch.randn(batch_size_per_device, + hidden_dim, + dtype=preferred_dtype(), + requires_grad=True, + device=get_accelerator().current_device()) + + dist.broadcast(input, + groups.get_tensor_model_parallel_src_rank(), + group=groups.get_tensor_model_parallel_group()) + + torch_linear, torch_out = process_linear_layer(hidden_dim, input) + linear = LinearAllreduce(deepcopy(torch_linear), groups.get_tensor_model_parallel_group()) + + input_ = torch.chunk(input, tp_size, dim=-1)[groups.get_tensor_model_parallel_rank()] + out = linear(input_.to(get_accelerator().current_device())) + loss = out.sum() + loss.backward() + + torch_grad = torch.chunk(torch_linear.weight.grad, tp_size, dim=1)[groups.get_tensor_model_parallel_rank()] + assert torch.allclose(linear.weight.grad, torch_grad.to(get_accelerator().current_device()), atol=1e-3) + assert torch.allclose(out, torch_out.to(get_accelerator().current_device()), atol=1e-3) + + def testColumnParallel(self, tp_size: int): + skip_on_device() + hidden_dim = 128 + batch_size_per_device = 1 + set_autotp_mode(training=True) + config_dict = { + "train_micro_batch_size_per_gpu": 1, + "steps_per_print": 1, + "optimizer": { + "type": "Adam", + "params": { + "lr": 1e-6 + } + }, + "tensor_parallel": { + "autotp_size": tp_size + }, + "zero_optimization": { + "stage": 0, + } + } + if preferred_dtype() is torch.float16: + config_dict["fp16"] = {"enabled": True} + elif preferred_dtype() is torch.bfloat16: + config_dict["bf16"] = {"enabled": True} + + model = SequentialLinearModel(hidden_dim=hidden_dim) + model, _, _, _ = deepspeed.initialize(model=model, model_parameters=model.parameters(), config=config_dict) + input = torch.randn(batch_size_per_device, + hidden_dim, + dtype=preferred_dtype(), + requires_grad=True, + device=get_accelerator().current_device()) + dist.broadcast(input, + groups.get_tensor_model_parallel_src_rank(), + group=groups.get_tensor_model_parallel_group()) + + torch_linear, torch_out = process_linear_layer(hidden_dim, input) + + linear = LinearLayer(deepcopy(torch_linear), groups.get_tensor_model_parallel_group()) + + out = linear(input.to(get_accelerator().current_device())) + loss = out.sum() + loss.backward() + + cur_device_out = torch.chunk(torch_out, tp_size, dim=-1)[groups.get_tensor_model_parallel_rank()] + torch_grad = torch.chunk(torch_linear.weight.grad, tp_size, dim=0)[groups.get_tensor_model_parallel_rank()] + assert torch.allclose(linear.weight.grad, torch_grad.to(get_accelerator().current_device()), atol=1e-3) + assert torch.allclose(cur_device_out.to(get_accelerator().current_device()).contiguous(), + out.contiguous(), + atol=1e-3) + + +@pytest.mark.sequential +class TestParamsGather(DistributedTest): + world_size = 4 + reuse_dist_env = True + + @pytest.mark.parametrize("layer_type", ["linear", "linearallreduce"]) + def test(self, layer_type): + skip_on_device() + tp_size = 4 + hidden_dim = 128 + set_autotp_mode(training=True) + config_dict = { + "train_micro_batch_size_per_gpu": 1, + "optimizer": { + "type": "Adam", + "params": { + "lr": 1e-6 + } + }, + "tensor_parallel": { + "autotp_size": tp_size + }, + "zero_optimization": { + "stage": 0, + } + } + if preferred_dtype() is torch.float16: + config_dict["fp16"] = {"enabled": True} + elif preferred_dtype() is torch.bfloat16: + config_dict["bf16"] = {"enabled": True} + + torch.manual_seed(42) + model = SequentialLinearModel(hidden_dim=hidden_dim) + model, _, _, _ = deepspeed.initialize(model=model, model_parameters=model.parameters(), config=config_dict) + + torch_linear = nn.Linear(hidden_dim, hidden_dim, dtype=preferred_dtype(), device="cpu", bias=None) + total_params = sum(p.numel() for p in torch_linear.parameters()) + + tp_layer = None + if layer_type == "linear": + tp_layer = LinearLayer(torch_linear, groups.get_tensor_model_parallel_group()) + elif layer_type == "linearallreduce": + tp_layer = LinearAllreduce(torch_linear, groups.get_tensor_model_parallel_group()) + else: + raise ValueError(f"Invalid linear type: {config_dict['linear_type']}") + + tp_params = sum(p.numel() for p in tp_layer.parameters()) + + assert total_params // tp_size == tp_params + for name, param in tp_layer.named_parameters(recurse=False): + param.gather_params([param]) + + is_same_weights = all( + torch.equal(param1, param2) for param1, param2 in zip(tp_layer.parameters(), torch_linear.parameters())) + + assert is_same_weights + + params1 = sum(p.numel() for p in tp_layer.parameters()) + assert total_params == params1 + + for name, param in tp_layer.named_parameters(recurse=False): + param._tp_partition([param]) + + tp_params2 = sum(p.numel() for p in tp_layer.parameters()) + + assert total_params // tp_size == tp_params2 + + +def dummy_init_engine(config): + # This is a dummy initialization function for the DeepSpeed engine. + # We only need to use the config to initialize the distributed settings for the test. + model = SequentialLinearModel(hidden_dim=8) + model, _, _, _ = deepspeed.initialize(model=model, model_parameters=model.parameters(), config=config) + + +def prepare_tp_model(hidden_dim, nlayers, linear_indices, allreduce_indices, group, return_global_copy=False): + model = SequentialLinearModel(hidden_dim=hidden_dim, nlayers=nlayers).to(preferred_dtype()) + base_model = None + if return_global_copy: + base_model = deepcopy(model) + for i in linear_indices: + layer = LinearLayer(model.linears[i], group) + model.linears[i] = layer + + for i in allreduce_indices: + layer = LinearAllreduce(model.linears[i], group) + model.linears[i] = layer + + return model, base_model + + +@pytest.mark.parametrize("zero_stage", [0, 1, 2]) +@pytest.mark.parametrize("tp_size", [2, 4]) +class TestSave(DistributedTest): + + world_size = 4 + reuse_dist_env = True + + def test_save_original_weight(self, tp_size: int, zero_stage: int): + skip_on_device() + hidden_dim = 64 + set_autotp_mode(training=True) + config_dict = { + "train_micro_batch_size_per_gpu": 1, + "steps_per_print": 1, + "optimizer": { + "type": "Adam", + "params": { + "lr": 1e-6 + } + }, + "tensor_parallel": { + "autotp_size": tp_size + }, + "zero_optimization": { + "stage": zero_stage, + } + } + if preferred_dtype() is torch.float16: + config_dict["fp16"] = {"enabled": True} + elif preferred_dtype() is torch.bfloat16: + config_dict["bf16"] = {"enabled": True} + dummy_init_engine(config_dict) + torch.manual_seed(42) + + model, base_model = prepare_tp_model(hidden_dim, + 8, [2, 5], [3, 6], + groups.get_tensor_model_parallel_group(), + return_global_copy=True) + model, _, _, _ = deepspeed.initialize(model=model, model_parameters=model.parameters(), config=config_dict) + + cur_params_numel = sum(p.numel() for p in model.parameters()) + base_params_numel = sum(p.numel() for p in base_model.parameters()) + assert cur_params_numel < base_params_numel + + tp_state_dict = model._consolidated_16bit_state_dict() + + def compare_state_dicts(state_dict1, state_dict2): + if state_dict1.keys() != state_dict2.keys(): + print("The state_dicts have different keys!") + return False + + for key in state_dict1: + if not torch.allclose(state_dict1[key], state_dict2[key], atol=1e-3): + assert state_dict1[key].device == "cpu" + print(f"Parameters for {key} are different!") + return False + + return True + + base_state_dict = base_model.state_dict() + if dist.get_rank() == 0: + # we should consider the case when zero3 is used in the future. + assert compare_state_dicts(base_state_dict, tp_state_dict), f"State_dict is not the same!" + else: + assert tp_state_dict is None, f"noly rank0 should have the state_dict" + + def test_ckpt_save(self, tmpdir, tp_size: int, zero_stage: int): + skip_on_device() + hidden_dim = 64 + set_autotp_mode(training=True) + config_dict = { + "train_micro_batch_size_per_gpu": 1, + "steps_per_print": 1, + "optimizer": { + "type": "Adam", + "params": { + "lr": 1e-3 + } + }, + "zero_optimization": { + "stage": zero_stage, + }, + "tensor_parallel": { + "autotp_size": tp_size + }, + "scheduler": { + "type": "WarmupLR", + "params": { + "warmup_min_lr": 0, + "warmup_max_lr": 0.001, + "warmup_num_steps": 1000 + } + } + } + + if preferred_dtype() is torch.float16: + config_dict["fp16"] = {"enabled": True} + elif preferred_dtype() is torch.bfloat16: + config_dict["bf16"] = {"enabled": True} + + dummy_init_engine(config_dict) + + trained_model, _ = prepare_tp_model(hidden_dim, 8, [2, 5], [3, 6], groups.get_tensor_model_parallel_group()) + loaded_model, _ = prepare_tp_model(hidden_dim, 8, [2, 5], [3, 6], groups.get_tensor_model_parallel_group()) + + trained_model, _, _, _ = deepspeed.initialize(model=trained_model, + model_parameters=trained_model.parameters(), + config=config_dict) + torch.manual_seed(42) + + data_loader = random_dataloader(model=trained_model, + total_samples=3, + hidden_dim=hidden_dim, + device=trained_model.device, + dtype=preferred_dtype()) + ckpt_path = os.path.join(tmpdir, 'tp_saved_checkpoint') + for i, batch in enumerate(data_loader): + batch[0].requires_grad = True + loss = trained_model(batch[0], batch[1]) + loss = loss + trained_model.backward(loss) + trained_model.step() + trained_model.save_checkpoint(ckpt_path) + + loaded_model, _, _, _ = deepspeed.initialize(model=loaded_model, + model_parameters=loaded_model.parameters(), + config=config_dict) + loaded_model.load_checkpoint(ckpt_path, load_optimizer_states=True, load_lr_scheduler_states=True) + compare_optimizer_states(trained_model, loaded_model, hidden_dim, fp16=(preferred_dtype() == torch.float16)) + compare_lr_scheduler_states(trained_model, loaded_model) + + +@pytest.mark.parametrize("zero_stage", [0, 1, 2]) +@pytest.mark.parametrize("tp_size", [2, 4]) +class TestTpGradNorm(DistributedTest): + + world_size = 4 + reuse_dist_env = True + + def test(self, tp_size: int, zero_stage: int): + skip_on_device() + hidden_dim = 64 + set_autotp_mode(training=True) + config_dict = { + "train_micro_batch_size_per_gpu": 1, + "steps_per_print": 1, + "optimizer": { + "type": "Adam", + "params": { + "lr": 1e-6 + } + }, + "tensor_parallel": { + "autotp_size": tp_size + }, + "zero_optimization": { + "stage": zero_stage, + } + } + if preferred_dtype() is torch.float16: + config_dict["fp16"] = {"enabled": True} + elif preferred_dtype() is torch.bfloat16: + if zero_stage == 0: + pytest.skip( + "This test has an overflow data and needs to implement an overflow skip mechanism in BF16_optimizer" + ) + config_dict["bf16"] = {"enabled": True} + + torch.manual_seed(42) + + dummy_init_engine(config=config_dict) + tp_model, base_model = prepare_tp_model(hidden_dim, + 8, [2, 5], [3, 6], + groups.get_tensor_model_parallel_group(), + return_global_copy=True) + + base_model, base_optimizer, _, _ = deepspeed.initialize(model=base_model, + model_parameters=base_model.parameters(), + config=config_dict) + data_loader = random_dataloader(model=base_model, + total_samples=20, + hidden_dim=hidden_dim, + device=base_model.device, + dtype=preferred_dtype()) + + for i, batch in enumerate(data_loader): + batch[0].requires_grad = True + loss = base_model(batch[0], batch[1]) + loss = loss + base_model.backward(loss) + base_model.step() + + base_norm = base_optimizer._global_grad_norm + + base_model.destroy() + + tp_model, tp_optimizer, _, _ = deepspeed.initialize(model=tp_model, + model_parameters=tp_model.parameters(), + config=config_dict) + for i, batch in enumerate(data_loader): + batch[0].requires_grad = True + loss = tp_model(batch[0], batch[1]) + loss = loss + tp_model.backward(loss) + tp_model.step() + + tp_norm = tp_optimizer._global_grad_norm + + assert math.isclose(base_norm, tp_norm, abs_tol=1e-3) + tp_params_numel = sum(p.numel() for p in tp_model.parameters()) + base_params_numel = sum(p.numel() for p in base_model.parameters()) + assert tp_params_numel < base_params_numel diff --git a/tests/unit/model_parallelism/test_configurable_parallel_mp.py b/tests/unit/model_parallelism/test_configurable_parallel_mp.py index 824ecea5f144..a7b0d3431ee9 100644 --- a/tests/unit/model_parallelism/test_configurable_parallel_mp.py +++ b/tests/unit/model_parallelism/test_configurable_parallel_mp.py @@ -13,7 +13,7 @@ from deepspeed.accelerator import get_accelerator from unit.common import DistributedTest, DistributedFixture from unit.megatron_model import get_gpt2_model, get_megatron_version -from deepspeed.runtime.utils import required_torch_version +from deepspeed.utils.torch import required_torch_version pytestmark = pytest.mark.skipif(not required_torch_version(min_version=1.5, max_version=1.13), reason='Megatron-LM package requires Pytorch version >=1.5 and <=1.13') @@ -170,7 +170,7 @@ def test(self, baseline_mp2, inputs, class_tmpdir): test = model(inputs[0].to(device_name), inputs[1].to(device_name), inputs[2].to(device_name)) if dist.get_rank() == 0: load_path = os.path.join(class_tmpdir, "output.pt") - baseline = torch.load(load_path) + baseline = torch.load(load_path, weights_only=False) test = test.cpu() assert torch.allclose( baseline, test, diff --git a/tests/unit/model_parallelism/test_configurable_parallel_pp.py b/tests/unit/model_parallelism/test_configurable_parallel_pp.py index b500b9d857a5..df469044e186 100644 --- a/tests/unit/model_parallelism/test_configurable_parallel_pp.py +++ b/tests/unit/model_parallelism/test_configurable_parallel_pp.py @@ -15,7 +15,7 @@ from unit.megatron_model import MockGPT2ModelPipe as GPT2ModelPipe from deepspeed.utils import RepeatingLoader from deepspeed.accelerator import get_accelerator -from deepspeed.runtime.utils import required_torch_version +from deepspeed.utils.torch import required_torch_version pytestmark = pytest.mark.skipif(not required_torch_version(min_version=1.5, max_version=1.13), reason='Megatron-LM package requires Pytorch version >=1.5 and <=1.13') @@ -225,7 +225,7 @@ def _test(self, inputs, class_tmpdir, checkpoint_tag, mp_size, pp_size, mp_resiz assert torch.is_tensor(test[0][0]) test = test[0][0].cpu() load_path = os.path.join(class_tmpdir, f"output-{checkpoint_tag}.pt") - baseline = torch.load(load_path) + baseline = torch.load(load_path, weights_only=False) assert torch.allclose( baseline, test, atol=1e-03), f"Baseline output {baseline} is not equal to save-then-load output {test}" diff --git a/tests/unit/moe/test_moe.py b/tests/unit/moe/test_moe.py index 310a0df16381..c67a907c6785 100644 --- a/tests/unit/moe/test_moe.py +++ b/tests/unit/moe/test_moe.py @@ -7,10 +7,50 @@ import deepspeed import pytest import gc +import random from unit.common import DistributedTest from unit.simple_model import SimplePRMoEModel, SimpleMoEModel, sequence_dataloader +import deepspeed.comm as dist +from deepspeed import get_accelerator +from deepspeed.moe.sharded_moe import top1gating, topkgating from deepspeed.moe.utils import split_params_into_different_moe_groups_for_optimizer, is_moe_param -from deepspeed.runtime.utils import required_torch_version +from deepspeed.utils.torch import required_torch_version + + +@pytest.mark.parametrize("zero_stage", [0, 1, 2]) +class TestSimpleMoE(DistributedTest): + world_size = 2 + + def test(self, zero_stage): + if not required_torch_version(min_version=1.8): + pytest.skip("DeepSpeed MoE tests need torch 1.8 or higher to run correctly") + + config_dict = { + "train_micro_batch_size_per_gpu": 1, + "steps_per_print": 1, + "optimizer": { + "type": "Adam", + "params": { + "lr": 0.00015 + } + }, + "fp16": { + "enabled": True + }, + "zero_optimization": { + "stage": zero_stage + } + } + # should automatically create moe param groups in deepspeed backend + hidden_dim = 16 + model = SimpleMoEModel(hidden_dim=hidden_dim, ep_size=1) + model, optimizer, _, _ = deepspeed.initialize(config=config_dict, model=model) + data_loader = sequence_dataloader(model=model, total_samples=50, hidden_dim=hidden_dim, device=model.device) + + for n, batch in enumerate(data_loader): + loss = model(batch[0], batch[1]) + model.backward(loss) + model.step() @pytest.mark.parametrize("ep_size", [2, 4]) @@ -53,7 +93,8 @@ def strict_average_tensor(tensor): process_group = optimizer.dp_process_group curr_size = 0 pg_offsets = [] - for i, param, param_id in optimizer.params_in_ipg_bucket: + for i, param_idx, param_id in optimizer.params_in_ipg_bucket: + param = optimizer.bit16_groups[i][param_idx] process_group = optimizer.dp_process_group if optimizer.ipg_bucket_has_moe_params: process_group = optimizer.expert_dp_process_group[param.group_name] if is_moe_param( @@ -132,3 +173,181 @@ def test(self, ep_size, use_residual): loss = model(batch[0], batch[1]) model.backward(loss) model.step() + + +class TestTopk(DistributedTest): + world_size = 2 + + def test(self): + device = get_accelerator().current_device_name() + if dist.get_rank() == 0: + logits = torch.rand(2, 2, device=device) + elif dist.get_rank() == 1: + logits = torch.rand(10, 2, device=device) + + output = top1gating(logits=logits, + capacity_factor=1, + min_capacity=0, + used_token=None, + noisy_gate_policy=None, + drop_tokens=False, + use_rts=True, + use_tutel=False) + + +class TestTopkGate(DistributedTest): + + def test(self): + + def check_equal(logits, cap, sparse_truth, res): + m, n = logits.shape + dispatch_mask_truth = torch.zeros(m, n, cap) + i, j, k = sparse_truth.t() + dispatch_mask_truth[i, j, k] = 1 + assert (torch.equal(dispatch_mask_truth, res)) + + #s=4 e=4 topk=2 cap=2(s*topk/e) + logits = torch.tensor([[0.11, 0.2, 0.1, 0.3], [0.3, 0.4, 0.11, 0.1], [0.11, 0.1, 0.6, 0.5], + [0.1, 0.11, 0.7, 0.8]]) + logits *= dist.get_rank() + 1 + probs_dispatch_res = topkgating(logits, 2, 1, min_capacity=1, drop_policy='probs')[2] + probs_sec_sparse = torch.tensor([[0, 1, 0], [1, 0, 0], [1, 1, 1], [2, 2, 0], [2, 3, 0], [3, 2, 1], [3, 3, 1]]) + check_equal(logits, 2, probs_sec_sparse, probs_dispatch_res) + + position_sec_sparse = torch.tensor([[0, 1, 0], [0, 3, 0], [1, 0, 0], [1, 1, 1], [2, 2, 0], [2, 3, 1], + [3, 2, 1]]) + position_dispatch_res = topkgating(logits, 2, 1, min_capacity=1, drop_policy='position')[2] + check_equal(logits, 2, position_sec_sparse, position_dispatch_res) + + #s=4 e=6 topk=3 cap=2(s*topk/e) + logits2 = torch.tensor([[0.5858, 0.4801, 0.6269, 0.5397, 0.9722, 0.7034], + [0.5445, 0.6332, 0.4519, 0.6308, 0.0519, 0.6450], + [0.4874, 0.8110, 0.7467, 0.8474, 0.0277, 0.3068], + [0.8570, 0.6714, 0.5310, 0.3274, 0.4836, 0.9892]]) + logits2 *= dist.get_rank() + 1 + + #top3 full mask #prob_mask #postion_mask + #0 0 1 0 1 1 #0 0 1 0 1 1 #0 0 1 0 1 1 + #0 1 0 1 0 1 #0 0 0 1 0 0 #0 1 0 1 0 1 + #0 1 1 1 0 0 #0 1 1 1 0 0 #0 1 1 1 0 0 + #1 1 0 0 0 1 #1 1 0 0 0 1 #1 0 0 0 0 0 + probs_dispatch_res = topkgating(logits2, 3, 1, min_capacity=1, drop_policy='probs')[2] + probs_sec_sparse = torch.tensor([[0, 2, 0], [0, 4, 0], [0, 5, 0], [1, 3, 0], [2, 1, 0], [2, 2, 1], [2, 3, 1], + [3, 0, 0], [3, 1, 1], [3, 5, 1]]) + check_equal(logits2, 2, probs_sec_sparse, probs_dispatch_res) + + position_sec_sparse = torch.tensor([[0, 2, 0], [0, 4, 0], [0, 5, 0], [1, 1, 0], [1, 3, 0], [1, 5, 1], + [2, 1, 1], [2, 2, 1], [2, 3, 1], [3, 0, 0]]) + position_dispatch_res = topkgating(logits2, 3, 1, min_capacity=1, drop_policy='position')[2] + check_equal(logits2, 2, position_sec_sparse, position_dispatch_res) + + +class TestExpertWeightGradWithZero(DistributedTest): + world_size = 2 + + @pytest.mark.parametrize("zero_stage", [0, 1, 2]) + def test(self, zero_stage): + + if not required_torch_version(min_version=1.8): + pytest.skip("DeepSpeed MoE tests need torch 1.8 or higher to run correctly") + + def seed_everything(seed=11): + random.seed(seed) + torch.manual_seed(seed) + get_accelerator().manual_seed(seed) + get_accelerator().manual_seed_all(seed) + torch.backends.cudnn.deterministic = True + torch.backends.cudnn.benchmark = False + + def get_state_dict_ep2(state_dict): + """ + convert state_dict from EP=1 to EP=2 + """ + rank = int(deepspeed.comm.get_rank()) + ep_state_dict = dict() + dst_sub_key = f"deepspeed_moe.experts.deepspeed_experts.0" + src_sub_key = f"deepspeed_moe.experts.deepspeed_experts.{rank}" + for moe_layer in ["moe_1", "moe_2"]: + for mlp_in_moe in [0, 1]: + dst_key = f"{moe_layer}.{dst_sub_key}.{mlp_in_moe}" + src_key = f"{moe_layer}.{src_sub_key}.{mlp_in_moe}" + ep_state_dict[f"{dst_key}.weight"] = state_dict[f"{src_key}.weight"].detach().clone() + ep_state_dict[f"{dst_key}.bias"] = state_dict[f"{src_key}.bias"].detach().clone() + + for key in state_dict.keys(): + if "deepspeed_moe.experts.deepspeed_experts" not in key: + ep_state_dict[key] = state_dict[key].detach().clone() + return ep_state_dict + + def get_models(hidden_dim): + model_ep1 = SimpleMoEModel(hidden_dim=hidden_dim, num_experts=2, ep_size=1, use_rts=False) + model_ep2 = SimpleMoEModel(hidden_dim=hidden_dim, num_experts=2, ep_size=2, use_rts=False) + + state_dict_ep1 = model_ep1.state_dict() + state_dict_ep2 = get_state_dict_ep2(state_dict_ep1) + model_ep2.load_state_dict(state_dict_ep2) + + model_ep1, _, _, _ = deepspeed.initialize(config=config_dict, model=model_ep1) + model_ep2, _, _, _ = deepspeed.initialize(config=config_dict, model=model_ep2) + + return model_ep1, model_ep2 + + def extract_expert_grad(model, expert_id): + + def _get_weight_bias(experts): + return ([deepspeed.utils.safe_get_full_grad(expert[0].weight) + for expert in experts][expert_id].detach().clone(), + [deepspeed.utils.safe_get_full_grad(expert[0].bias) + for expert in experts][expert_id].detach().clone(), + [deepspeed.utils.safe_get_full_grad(expert[1].weight) + for expert in experts][expert_id].detach().clone(), + [deepspeed.utils.safe_get_full_grad(expert[1].bias) + for expert in experts][expert_id].detach().clone()) + + return (*_get_weight_bias(model.moe_1.deepspeed_moe.experts.deepspeed_experts), + *_get_weight_bias(model.moe_2.deepspeed_moe.experts.deepspeed_experts)) + + seed_everything() + + config_dict = { + "train_micro_batch_size_per_gpu": 1, + "steps_per_print": 1, + "optimizer": { + "type": "Adam", + "params": { + "lr": 0.1, + } + }, + "zero_optimization": { + "stage": zero_stage + } + } + + hidden_dim = 4 + total_samples = 2 + rank = deepspeed.comm.get_rank() + model_ep1, model_ep2 = get_models(hidden_dim) + + data_loader = sequence_dataloader(model=model_ep1, + total_samples=total_samples, + hidden_dim=hidden_dim, + device=model_ep1.device, + dtype=torch.float32) + expert_weight_grad_ep1 = [] + expert_weight_grad_ep2 = [] + for batch in data_loader: + loss_ep1 = model_ep1(batch[0], batch[1]) + loss_ep2 = model_ep2(batch[0], batch[1]) + + model_ep1.backward(loss_ep1) + model_ep2.backward(loss_ep2) + + expert_weight_grad_ep1.extend(extract_expert_grad(model_ep1, rank)) + expert_weight_grad_ep2.extend(extract_expert_grad(model_ep2, 0)) + + model_ep1.step() + model_ep2.step() + + assert len(expert_weight_grad_ep1) == len(expert_weight_grad_ep2) + for grad_from_ep1, grad_from_ep2 in zip(expert_weight_grad_ep1, expert_weight_grad_ep2): + assert torch.allclose(grad_from_ep1, grad_from_ep2, atol=0, rtol=1e-4) diff --git a/tests/unit/moe/test_moe_tp.py b/tests/unit/moe/test_moe_tp.py index 0069c674690c..eb4668015c01 100644 --- a/tests/unit/moe/test_moe_tp.py +++ b/tests/unit/moe/test_moe_tp.py @@ -7,7 +7,7 @@ import deepspeed import pytest from unit.common import DistributedTest -from deepspeed.runtime.utils import required_torch_version +from deepspeed.utils.torch import required_torch_version from deepspeed.moe.layer import MoE diff --git a/tests/unit/monitor/test_monitor.py b/tests/unit/monitor/test_monitor.py index 3e04bebfb6c1..d4b3cf43921d 100644 --- a/tests/unit/monitor/test_monitor.py +++ b/tests/unit/monitor/test_monitor.py @@ -7,10 +7,14 @@ from deepspeed.monitor.wandb import WandbMonitor from deepspeed.monitor.csv_monitor import csvMonitor from deepspeed.monitor.config import DeepSpeedMonitorConfig +from deepspeed.monitor.comet import CometMonitor from unit.common import DistributedTest +from unittest.mock import Mock, patch from deepspeed.runtime.config import DeepSpeedConfig +import deepspeed.comm as dist + class TestTensorBoard(DistributedTest): world_size = 2 @@ -97,3 +101,66 @@ def test_empty_csv_monitor(self): assert csv_monitor.enabled == defaults.enabled assert csv_monitor.output_path == defaults.output_path assert csv_monitor.job_name == defaults.job_name + + +class TestCometMonitor(DistributedTest): + world_size = 2 + + def test_comet_monitor(self): + import comet_ml + mock_experiment = Mock() + mock_start = Mock(return_value=mock_experiment) + + config_dict = { + "train_batch_size": 2, + "comet": { + "enabled": True, + "samples_log_interval": 42, + "workspace": "some-workspace", + "project": "some-project", + "api_key": "some-api-key", + "experiment_name": "some-experiment-name", + "experiment_key": "some-experiment-key", + "mode": "get_or_create", + "online": True + } + } + + ds_config = DeepSpeedConfig(config_dict) + + with patch.object(comet_ml, "start", mock_start): + comet_monitor = CometMonitor(ds_config.monitor_config.comet) + + assert comet_monitor.enabled is True + assert comet_monitor.samples_log_interval == 42 + + # experiment should be initialized via comet_ml.start only if rank == 0 + if dist.get_rank() == 0: + mock_start.assert_called_once_with( + api_key="some-api-key", + project="some-project", + workspace="some-workspace", + experiment_key="some-experiment-key", + mode="get_or_create", + online=True, + ) + + mock_experiment.set_name.assert_called_once_with("some-experiment-name") + assert comet_monitor.experiment is mock_experiment + else: + mock_start.assert_not_called() + + def test_empty_comet(self): + import comet_ml + mock_start = Mock() + + config_dict = {"train_batch_size": 2, "comet": {}} + ds_config = DeepSpeedConfig(config_dict) + + with patch.object(comet_ml, "start", mock_start): + comet_monitor = CometMonitor(ds_config.monitor_config.comet) + + defaults = DeepSpeedMonitorConfig().comet + assert comet_monitor.enabled == defaults.enabled + assert comet_monitor.samples_log_interval == defaults.samples_log_interval + mock_start.assert_not_called() diff --git a/tests/unit/multi_output_model.py b/tests/unit/multi_output_model.py index e84215fb4e95..d7a5f9a46b97 100644 --- a/tests/unit/multi_output_model.py +++ b/tests/unit/multi_output_model.py @@ -4,6 +4,7 @@ # DeepSpeed Team import torch +from .common import preferred_dtype class MultiOutputModel(torch.nn.Module): @@ -28,8 +29,11 @@ def multi_output_dataloader(model, total_samples, hidden_dim, device, inputs, ta batch_size = model.train_micro_batch_size_per_gpu() train_data = [ - torch.full(size=(total_samples, hidden_dim), fill_value=x, device=device, dtype=torch.half, requires_grad=True) - for x in inputs + torch.full(size=(total_samples, hidden_dim), + fill_value=x, + device=device, + dtype=preferred_dtype(), + requires_grad=True) for x in inputs ] train_label = [torch.empty(total_samples, device=device, dtype=torch.long).fill_(y) for y in targets] diff --git a/tests/unit/ops/accelerators/test_accelerator_backward.py b/tests/unit/ops/accelerators/test_accelerator_backward.py index 43f7b471e2ae..4b1b392e933a 100644 --- a/tests/unit/ops/accelerators/test_accelerator_backward.py +++ b/tests/unit/ops/accelerators/test_accelerator_backward.py @@ -9,17 +9,15 @@ import random import copy import os +import deepspeed from torch import nn from deepspeed import DeepSpeedTransformerLayer, DeepSpeedTransformerConfig from deepspeed.accelerator import get_accelerator from unit.modeling import BertConfig, BertLayerNorm, BertEncoder as BertEncoderPostln from unit.modelingpreln import BertEncoder as BertEncoderPreln from unit.common import DistributedTest, is_rocm_pytorch +from deepspeed.ops.op_builder import TransformerBuilder -#if not deepspeed.ops.__installed_ops__['transformer']: -#pytest.skip( -# "transformer kernels are temporarily disabled because of unexplained failures", -# allow_module_level=True) if torch.half not in get_accelerator().supported_dtypes(): pytest.skip(f"fp16 not supported, valid dtype: {get_accelerator().supported_dtypes()}", allow_module_level=True) @@ -261,6 +259,8 @@ class TestCUDABackward(DistributedTest): #This is to flush denorms in forward pass. Please refer to https://github.com/pytorch/pytorch/blob/main/docs/source/notes/numerical_accuracy.rst#reduced-precision-fp16-and-bf16-gemms-and-convolutions-on-amd-instinct-mi200-devices os.environ['ROCBLAS_INTERNAL_FP16_ALT_IMPL'] = '1' + @pytest.mark.skipif(not deepspeed.ops.__compatible_ops__[TransformerBuilder.NAME], + reason="TransformerBuilder has not been implemented on this system.") def test_backward(self, is_preln, use_fp16, batch_size, hidden_size, seq_len, heads, num_layers, atol): # Only run fp16 test cases on devices with FP16 capability. if not get_accelerator().is_fp16_supported() and (use_fp16 is True or is_preln is False): diff --git a/tests/unit/ops/accelerators/test_accelerator_forward.py b/tests/unit/ops/accelerators/test_accelerator_forward.py index ee9464f63aa1..e2f4ac177f1b 100644 --- a/tests/unit/ops/accelerators/test_accelerator_forward.py +++ b/tests/unit/ops/accelerators/test_accelerator_forward.py @@ -8,12 +8,14 @@ import pytest import random import copy +import deepspeed from torch import nn from unit.modelingpreln import BertEncoder as BertEncoderPreln from unit.modeling import BertLayerNorm, BertConfig, BertEncoder as BertEncoderPostln from deepspeed import DeepSpeedTransformerLayer, DeepSpeedTransformerConfig from deepspeed.accelerator import get_accelerator from unit.common import DistributedTest +from deepspeed.ops.op_builder import TransformerBuilder if torch.half not in get_accelerator().supported_dtypes(): pytest.skip(f"fp16 not supported, valid dtype: {get_accelerator().supported_dtypes()}", allow_module_level=True) @@ -260,6 +262,8 @@ def test_forward(self, batch_size, hidden_size, seq_len, heads, num_layers, is_p class TestCUDAForwardSmallBatchSize(DistributedTest): world_size = 1 + @pytest.mark.skipif(not deepspeed.ops.__compatible_ops__[TransformerBuilder.NAME], + reason="TransformerBuilder has not been implemented on this system.") def test_forward_with_small_bsz(self, batch_size, small_bsz, hidden_size, seq_len, heads, num_layers, is_preln, use_fp16): # Only run fp16 test cases on devices with FP16 capability. diff --git a/tests/unit/ops/adagrad/test_cpu_adagrad.py b/tests/unit/ops/adagrad/test_cpu_adagrad.py index 99e934e2efda..0c675ecd6a85 100644 --- a/tests/unit/ops/adagrad/test_cpu_adagrad.py +++ b/tests/unit/ops/adagrad/test_cpu_adagrad.py @@ -18,8 +18,8 @@ def check_equal(first, second, atol=1e-2, verbose=False): - x = first.detach().numpy() - y = second.detach().numpy() + x = first.detach().float().numpy() + y = second.detach().float().numpy() if verbose: print("x = {}".format(x.flatten())) print("y = {}".format(y.flatten())) diff --git a/tests/unit/ops/adam/test_cpu_adam.py b/tests/unit/ops/adam/test_cpu_adam.py index 9a6ff6689446..851485440428 100644 --- a/tests/unit/ops/adam/test_cpu_adam.py +++ b/tests/unit/ops/adam/test_cpu_adam.py @@ -11,7 +11,7 @@ import deepspeed from deepspeed.accelerator import get_accelerator from deepspeed.ops.adam import FusedAdam -from deepspeed.ops.op_builder import CPUAdamBuilder +from deepspeed.ops.op_builder import CPUAdamBuilder, FusedAdamBuilder from unit.common import DistributedTest if not deepspeed.ops.__compatible_ops__[CPUAdamBuilder.NAME]: @@ -21,8 +21,8 @@ def check_equal(first, second, atol=1e-2, verbose=False): - x = first.detach().numpy() - y = second.detach().numpy() + x = first.detach().float().numpy() + y = second.detach().float().numpy() print("ATOL", atol) if verbose: print("x = {}".format(x.flatten())) @@ -43,7 +43,7 @@ def _compare_optimizers(model_size, param1, optimizer1, param2, optimizer2): check_equal(param1.float().norm(), param2.float().cpu().norm(), atol=tolerance, verbose=True) -@pytest.mark.parametrize('dtype', [torch.half, torch.float], ids=["fp16", "fp32"]) +@pytest.mark.parametrize('dtype', [torch.half, torch.bfloat16, torch.float], ids=["fp16", "bf16", "fp32"]) @pytest.mark.parametrize('model_size', [ (64), @@ -62,7 +62,12 @@ class TestCPUAdam(DistributedTest): set_dist_env = False @pytest.mark.skipif(not get_accelerator().is_available(), reason="only supported in CUDA environments.") + @pytest.mark.skipif(not deepspeed.ops.__compatible_ops__[FusedAdamBuilder.NAME], + reason="FusedAdam is not compatible") def test_fused_adam_equal(self, dtype, model_size): + if dtype not in get_accelerator().supported_dtypes(): + pytest.skip(f"dtype {dtype} not supported in current accelerator") + if ("amd" in pytest.cpu_vendor) and (dtype == torch.half): pytest.skip("cpu-adam with half precision not supported on AMD CPUs") @@ -89,6 +94,8 @@ def test_fused_adam_equal(self, dtype, model_size): def test_torch_adamw_equal(self, dtype, model_size): if get_accelerator().is_available(): + if dtype == torch.half: + pytest.skip("torch.optim.AdamW with half precision inf/nan output.") if ("amd" in pytest.cpu_vendor) and (dtype == torch.half): pytest.skip("cpu-adam with half precision not supported on AMD CPUs") ref_param_device = get_accelerator().device_name() @@ -97,20 +104,20 @@ def test_torch_adamw_equal(self, dtype, model_size): pytest.skip("torch.optim.AdamW with half precision only supported in CUDA environments.") ref_param_device = 'cpu' - from deepspeed.ops.adam import DeepSpeedCPUAdam + from deepspeed.ops.adam import DeepSpeedCPUAdam - cpu_data = torch.randn(model_size, device='cpu').to(dtype) - cpu_param = torch.nn.Parameter(cpu_data) - ref_param = torch.nn.Parameter(cpu_data.to(ref_param_device)) + cpu_data = torch.randn(model_size, device='cpu').to(dtype) + cpu_param = torch.nn.Parameter(cpu_data) + ref_param = torch.nn.Parameter(cpu_data.to(ref_param_device)) - cpu_optimizer = DeepSpeedCPUAdam([cpu_param]) - ref_optimizer = torch.optim.AdamW([ref_param]) + cpu_optimizer = DeepSpeedCPUAdam([cpu_param]) + ref_optimizer = torch.optim.AdamW([ref_param]) - _compare_optimizers(model_size=model_size, - param1=cpu_param, - optimizer1=cpu_optimizer, - param2=ref_param, - optimizer2=ref_optimizer) + _compare_optimizers(model_size=model_size, + param1=cpu_param, + optimizer1=cpu_optimizer, + param2=ref_param, + optimizer2=ref_optimizer) class TestCPUAdamGPUError(DistributedTest): diff --git a/tests/unit/ops/adam/test_hybrid_adam.py b/tests/unit/ops/adam/test_hybrid_adam.py index c7ef4890b322..652090d5b9d5 100644 --- a/tests/unit/ops/adam/test_hybrid_adam.py +++ b/tests/unit/ops/adam/test_hybrid_adam.py @@ -12,7 +12,7 @@ import deepspeed from deepspeed.accelerator import get_accelerator from deepspeed.ops.adam import FusedAdam, DeepSpeedCPUAdam -from deepspeed.ops.op_builder import CPUAdamBuilder +from deepspeed.ops.op_builder import CPUAdamBuilder, FusedAdamBuilder from unit.common import DistributedTest if not deepspeed.ops.__compatible_ops__[CPUAdamBuilder.NAME]: @@ -22,8 +22,8 @@ def check_equal(first, second, atol=1e-2, verbose=False): - x = first.detach().numpy() - y = second.detach().numpy() + x = first.detach().float().numpy() + y = second.detach().float().numpy() print("ATOL", atol) if verbose: print("x = {}".format(x.flatten())) @@ -32,7 +32,7 @@ def check_equal(first, second, atol=1e-2, verbose=False): np.testing.assert_allclose(x, y, err_msg="param-update mismatch!", atol=atol) -@pytest.mark.parametrize('dtype', [torch.half, torch.float], ids=["fp16", "fp32"]) +@pytest.mark.parametrize('dtype', [torch.half, torch.bfloat16, torch.float], ids=["fp16", "bf16", "fp32"]) @pytest.mark.parametrize('model_size', [8, 16]) class TestHybridAdam(DistributedTest): world_size = 1 @@ -43,6 +43,8 @@ class TestHybridAdam(DistributedTest): set_dist_env = False @pytest.mark.skipif(not get_accelerator().is_available(), reason="only supported in CUDA environments.") + @pytest.mark.skipif(not deepspeed.ops.__compatible_ops__[FusedAdamBuilder.NAME], + reason="FusedAdam is not compatible") def test_hybrid_adam_equal(self, dtype, model_size): if ("amd" in pytest.cpu_vendor) and (dtype == torch.half): pytest.skip("cpu-adam with half precision not supported on AMD CPUs") diff --git a/tests/unit/ops/aio/test_aio.py b/tests/unit/ops/aio/test_aio.py index f6d175ce67bc..1aa5f647a8aa 100644 --- a/tests/unit/ops/aio/test_aio.py +++ b/tests/unit/ops/aio/test_aio.py @@ -23,12 +23,10 @@ pytest.skip('Skip tests since async-io is not compatible', allow_module_level=True) -def _skip_for_invalid_environment(use_cuda_device=True, use_cuda_pinned_tensor=True): - if not get_accelerator().is_available(): - if use_cuda_device: - pytest.skip("GPU tensors only supported in CUDA environments.") +def _skip_for_invalid_environment(use_cuda_pinned_tensor=True): + if get_accelerator().device_name() != 'cuda': if use_cuda_pinned_tensor: - pytest.skip("CUDA-pinned tensors only supported in CUDA environments.") + pytest.skip("torch.pin_memory is only supported in CUDA environments.") def _get_local_rank(): @@ -37,28 +35,33 @@ def _get_local_rank(): return 0 -def _do_ref_write(tmpdir, index=0): +def _do_ref_write(tmpdir, index=0, file_size=IO_SIZE): file_suffix = f'{_get_local_rank()}_{index}' ref_file = os.path.join(tmpdir, f'_py_random_{file_suffix}.pt') - ref_buffer = os.urandom(IO_SIZE) + ref_buffer = os.urandom(file_size) with open(ref_file, 'wb') as f: f.write(ref_buffer) return ref_file, ref_buffer +def _get_file_path(tmpdir, file_prefix, index=0): + file_suffix = f'{_get_local_rank()}_{index}' + return os.path.join(tmpdir, f'{file_prefix}_{file_suffix}.pt') + + def _get_test_write_file(tmpdir, index): file_suffix = f'{_get_local_rank()}_{index}' return os.path.join(tmpdir, f'_aio_write_random_{file_suffix}.pt') -def _get_test_write_file_and_cuda_buffer(tmpdir, ref_buffer, index=0): +def _get_test_write_file_and_unpinned_tensor(tmpdir, ref_buffer, index=0): test_file = _get_test_write_file(tmpdir, index) test_buffer = get_accelerator().ByteTensor(list(ref_buffer)) return test_file, test_buffer -def _get_test_write_file_and_cpu_buffer(tmpdir, ref_buffer, aio_handle=None, index=0): +def _get_test_write_file_and_pinned_tensor(tmpdir, ref_buffer, aio_handle=None, index=0): test_file = _get_test_write_file(tmpdir, index) if aio_handle is None: test_buffer = get_accelerator().pin_memory(torch.ByteTensor(list(ref_buffer))) @@ -73,7 +76,7 @@ def _get_test_write_file_and_cpu_buffer(tmpdir, ref_buffer, aio_handle=None, ind def _validate_handle_state(handle, single_submit, overlap_events): assert handle.get_single_submit() == single_submit assert handle.get_overlap_events() == overlap_events - assert handle.get_thread_count() == IO_PARALLEL + assert handle.get_intra_op_parallelism() == IO_PARALLEL assert handle.get_block_size() == BLOCK_SIZE assert handle.get_queue_depth() == QUEUE_DEPTH @@ -89,12 +92,15 @@ class TestRead(DistributedTest): init_distributed = False set_dist_env = False - def test_parallel_read(self, tmpdir, use_cuda_pinned_tensor, single_submit, overlap_events): - _skip_for_invalid_environment(use_cuda_device=False, use_cuda_pinned_tensor=use_cuda_pinned_tensor) + @pytest.mark.parametrize("use_unpinned_tensor", [True, False]) + def test_parallel_read(self, tmpdir, use_cuda_pinned_tensor, single_submit, overlap_events, use_unpinned_tensor): + _skip_for_invalid_environment(use_cuda_pinned_tensor=use_cuda_pinned_tensor) h = AsyncIOBuilder().load().aio_handle(BLOCK_SIZE, QUEUE_DEPTH, single_submit, overlap_events, IO_PARALLEL) - if use_cuda_pinned_tensor: + if use_unpinned_tensor: + aio_buffer = torch.empty(IO_SIZE, dtype=torch.uint8, device=get_accelerator().device_name()) + elif use_cuda_pinned_tensor: aio_buffer = get_accelerator().pin_memory(torch.empty(IO_SIZE, dtype=torch.uint8, device='cpu')) else: aio_buffer = h.new_cpu_locked_tensor(IO_SIZE, torch.empty(0, dtype=torch.uint8)) @@ -102,7 +108,7 @@ def test_parallel_read(self, tmpdir, use_cuda_pinned_tensor, single_submit, over _validate_handle_state(h, single_submit, overlap_events) ref_file, _ = _do_ref_write(tmpdir) - read_status = h.sync_pread(aio_buffer, ref_file) + read_status = h.sync_pread(aio_buffer, ref_file, 0) assert read_status == 1 with open(ref_file, 'rb') as f: @@ -112,14 +118,14 @@ def test_parallel_read(self, tmpdir, use_cuda_pinned_tensor, single_submit, over if not use_cuda_pinned_tensor: h.free_cpu_locked_tensor(aio_buffer) - @pytest.mark.parametrize("cuda_device", [True, False]) - def test_async_read(self, tmpdir, use_cuda_pinned_tensor, single_submit, overlap_events, cuda_device): - _skip_for_invalid_environment(use_cuda_device=cuda_device, use_cuda_pinned_tensor=use_cuda_pinned_tensor) + @pytest.mark.parametrize("use_unpinned_tensor", [True, False]) + def test_async_read(self, tmpdir, use_cuda_pinned_tensor, single_submit, overlap_events, use_unpinned_tensor): + _skip_for_invalid_environment(use_cuda_pinned_tensor=use_cuda_pinned_tensor) use_cpu_locked_tensor = False h = AsyncIOBuilder().load().aio_handle(BLOCK_SIZE, QUEUE_DEPTH, single_submit, overlap_events, IO_PARALLEL) - if cuda_device: + if use_unpinned_tensor: aio_buffer = torch.empty(IO_SIZE, dtype=torch.uint8, device=get_accelerator().device_name()) elif use_cuda_pinned_tensor: aio_buffer = get_accelerator().pin_memory(torch.empty(IO_SIZE, dtype=torch.uint8, device='cpu')) @@ -130,7 +136,7 @@ def test_async_read(self, tmpdir, use_cuda_pinned_tensor, single_submit, overlap _validate_handle_state(h, single_submit, overlap_events) ref_file, _ = _do_ref_write(tmpdir) - read_status = h.async_pread(aio_buffer, ref_file) + read_status = h.async_pread(aio_buffer, ref_file, 0) assert read_status == 0 wait_status = h.wait() @@ -155,20 +161,23 @@ class TestWrite(DistributedTest): init_distributed = False set_dist_env = False - def test_parallel_write(self, tmpdir, use_cuda_pinned_tensor, single_submit, overlap_events): - _skip_for_invalid_environment(use_cuda_device=False, use_cuda_pinned_tensor=use_cuda_pinned_tensor) + @pytest.mark.parametrize("use_unpinned_tensor", [True, False]) + def test_parallel_write(self, tmpdir, use_cuda_pinned_tensor, single_submit, overlap_events, use_unpinned_tensor): + _skip_for_invalid_environment(use_cuda_pinned_tensor=use_cuda_pinned_tensor) ref_file, ref_buffer = _do_ref_write(tmpdir) h = AsyncIOBuilder().load().aio_handle(BLOCK_SIZE, QUEUE_DEPTH, single_submit, overlap_events, IO_PARALLEL) + if use_unpinned_tensor: + aio_file, aio_buffer = _get_test_write_file_and_unpinned_tensor(tmpdir, ref_buffer) if use_cuda_pinned_tensor: - aio_file, aio_buffer = _get_test_write_file_and_cpu_buffer(tmpdir, ref_buffer) + aio_file, aio_buffer = _get_test_write_file_and_pinned_tensor(tmpdir, ref_buffer) else: - aio_file, aio_buffer = _get_test_write_file_and_cpu_buffer(tmpdir, ref_buffer, h) + aio_file, aio_buffer = _get_test_write_file_and_pinned_tensor(tmpdir, ref_buffer, h) _validate_handle_state(h, single_submit, overlap_events) - write_status = h.sync_pwrite(aio_buffer, aio_file) + write_status = h.sync_pwrite(aio_buffer, aio_file, 0) assert write_status == 1 if not use_cuda_pinned_tensor: @@ -179,25 +188,25 @@ def test_parallel_write(self, tmpdir, use_cuda_pinned_tensor, single_submit, ove filecmp.clear_cache() assert filecmp.cmp(ref_file, aio_file, shallow=False) - @pytest.mark.parametrize("cuda_device", [True, False]) - def test_async_write(self, tmpdir, use_cuda_pinned_tensor, single_submit, overlap_events, cuda_device): - _skip_for_invalid_environment(use_cuda_device=cuda_device, use_cuda_pinned_tensor=use_cuda_pinned_tensor) + @pytest.mark.parametrize("use_unpinned_tensor", [True, False]) + def test_async_write(self, tmpdir, use_cuda_pinned_tensor, single_submit, overlap_events, use_unpinned_tensor): + _skip_for_invalid_environment(use_cuda_pinned_tensor=use_cuda_pinned_tensor) ref_file, ref_buffer = _do_ref_write(tmpdir) h = AsyncIOBuilder().load().aio_handle(BLOCK_SIZE, QUEUE_DEPTH, single_submit, overlap_events, IO_PARALLEL) use_cpu_locked_tensor = False - if cuda_device: - aio_file, aio_buffer = _get_test_write_file_and_cuda_buffer(tmpdir, ref_buffer) + if use_unpinned_tensor: + aio_file, aio_buffer = _get_test_write_file_and_unpinned_tensor(tmpdir, ref_buffer) elif use_cuda_pinned_tensor: - aio_file, aio_buffer = _get_test_write_file_and_cpu_buffer(tmpdir, ref_buffer) + aio_file, aio_buffer = _get_test_write_file_and_pinned_tensor(tmpdir, ref_buffer) else: - aio_file, aio_buffer = _get_test_write_file_and_cpu_buffer(tmpdir, ref_buffer, h) + aio_file, aio_buffer = _get_test_write_file_and_pinned_tensor(tmpdir, ref_buffer, h) use_cpu_locked_tensor = True _validate_handle_state(h, single_submit, overlap_events) - write_status = h.async_pwrite(aio_buffer, aio_file) + write_status = h.async_pwrite(aio_buffer, aio_file, 0) assert write_status == 0 wait_status = h.wait() @@ -214,7 +223,7 @@ def test_async_write(self, tmpdir, use_cuda_pinned_tensor, single_submit, overla @pytest.mark.sequential @pytest.mark.parametrize("use_cuda_pinned_tensor", [True, False]) -@pytest.mark.parametrize("cuda_device", [True, False]) +@pytest.mark.parametrize("use_unpinned_tensor", [True, False]) class TestAsyncQueue(DistributedTest): world_size = 1 requires_cuda_env = False @@ -223,8 +232,8 @@ class TestAsyncQueue(DistributedTest): set_dist_env = False @pytest.mark.parametrize("async_queue", [2, 3]) - def test_read(self, tmpdir, async_queue, use_cuda_pinned_tensor, cuda_device): - _skip_for_invalid_environment(use_cuda_device=cuda_device, use_cuda_pinned_tensor=use_cuda_pinned_tensor) + def test_read(self, tmpdir, async_queue, use_cuda_pinned_tensor, use_unpinned_tensor): + _skip_for_invalid_environment(use_cuda_pinned_tensor=use_cuda_pinned_tensor) ref_files = [] for i in range(async_queue): @@ -236,7 +245,7 @@ def test_read(self, tmpdir, async_queue, use_cuda_pinned_tensor, cuda_device): h = AsyncIOBuilder().load().aio_handle(BLOCK_SIZE, QUEUE_DEPTH, single_submit, overlap_events, IO_PARALLEL) use_cpu_locked_tensor = False - if cuda_device: + if use_unpinned_tensor: aio_buffers = [ torch.empty(IO_SIZE, dtype=torch.uint8, device=get_accelerator().device_name()) for _ in range(async_queue) @@ -254,7 +263,7 @@ def test_read(self, tmpdir, async_queue, use_cuda_pinned_tensor, cuda_device): _validate_handle_state(h, single_submit, overlap_events) for i in range(async_queue): - read_status = h.async_pread(aio_buffers[i], ref_files[i]) + read_status = h.async_pread(aio_buffers[i], ref_files[i], 0) assert read_status == 0 wait_status = h.wait() @@ -270,8 +279,8 @@ def test_read(self, tmpdir, async_queue, use_cuda_pinned_tensor, cuda_device): h.free_cpu_locked_tensor(t) @pytest.mark.parametrize("async_queue", [2, 3]) - def test_write(self, tmpdir, use_cuda_pinned_tensor, async_queue, cuda_device): - _skip_for_invalid_environment(use_cuda_device=cuda_device, use_cuda_pinned_tensor=use_cuda_pinned_tensor) + def test_write(self, tmpdir, use_cuda_pinned_tensor, async_queue, use_unpinned_tensor): + _skip_for_invalid_environment(use_cuda_pinned_tensor=use_cuda_pinned_tensor) ref_files = [] ref_buffers = [] @@ -287,21 +296,21 @@ def test_write(self, tmpdir, use_cuda_pinned_tensor, async_queue, cuda_device): aio_files = [] aio_buffers = [] for i in range(async_queue): - if cuda_device: - f, buf = _get_test_write_file_and_cuda_buffer(tmpdir, ref_buffers[i], i) + if use_unpinned_tensor: + f, buf = _get_test_write_file_and_unpinned_tensor(tmpdir, ref_buffers[i], i) elif use_cuda_pinned_tensor: - f, buf = _get_test_write_file_and_cpu_buffer(tmpdir, ref_buffers[i], None, i) + f, buf = _get_test_write_file_and_pinned_tensor(tmpdir, ref_buffers[i], None, i) else: - f, buf = _get_test_write_file_and_cpu_buffer(tmpdir, ref_buffers[i], h, i) + f, buf = _get_test_write_file_and_pinned_tensor(tmpdir, ref_buffers[i], h, i) aio_files.append(f) aio_buffers.append(buf) - use_cpu_locked_tensor = not (cuda_device or use_cuda_pinned_tensor) + use_cpu_locked_tensor = not (use_unpinned_tensor or use_cuda_pinned_tensor) _validate_handle_state(h, single_submit, overlap_events) for i in range(async_queue): - read_status = h.async_pwrite(aio_buffers[i], aio_files[i]) + read_status = h.async_pwrite(aio_buffers[i], aio_files[i], 0) assert read_status == 0 wait_status = h.wait() @@ -316,3 +325,79 @@ def test_write(self, tmpdir, use_cuda_pinned_tensor, async_queue, cuda_device): filecmp.clear_cache() assert filecmp.cmp(ref_files[i], aio_files[i], shallow=False) + + +@pytest.mark.parametrize("use_cuda_pinned_tensor", [True, False]) +@pytest.mark.parametrize('file_partitions', [[1, 1, 1], [1, 1, 2], [1, 2, 1], [2, 1, 1]]) +class TestAsyncFileOffset(DistributedTest): + world_size = 1 + + def test_offset_write(self, tmpdir, file_partitions, use_cuda_pinned_tensor): + + _skip_for_invalid_environment(use_cuda_pinned_tensor=use_cuda_pinned_tensor) + ref_file = _get_file_path(tmpdir, '_py_random') + aio_file = _get_file_path(tmpdir, '_aio_random') + partition_unit_size = BLOCK_SIZE + file_size = sum(file_partitions) * partition_unit_size + + h = AsyncIOBuilder().load().aio_handle(BLOCK_SIZE, QUEUE_DEPTH, True, True, IO_PARALLEL) + + if use_cuda_pinned_tensor: + data_buffer = torch.ByteTensor(list(os.urandom(file_size))).pin_memory() + else: + data_buffer = h.new_cpu_locked_tensor(file_size, torch.empty(0, dtype=torch.uint8)) + + file_offsets = [] + next_offset = 0 + for i in range(len(file_partitions)): + file_offsets.append(next_offset) + next_offset += file_partitions[i] * partition_unit_size + + ref_fd = open(ref_file, 'wb') + for i in range(len(file_partitions)): + src_buffer = torch.narrow(data_buffer, 0, file_offsets[i], file_partitions[i] * partition_unit_size) + + ref_fd.write(src_buffer.numpy().tobytes()) + ref_fd.flush() + + assert 1 == h.sync_pwrite(buffer=src_buffer, filename=aio_file, file_offset=file_offsets[i]) + + filecmp.clear_cache() + assert filecmp.cmp(ref_file, aio_file, shallow=False) + + ref_fd.close() + + if not use_cuda_pinned_tensor: + h.free_cpu_locked_tensor(data_buffer) + + def test_offset_read(self, tmpdir, file_partitions, use_cuda_pinned_tensor): + + _skip_for_invalid_environment(use_cuda_pinned_tensor=use_cuda_pinned_tensor) + partition_unit_size = BLOCK_SIZE + file_size = sum(file_partitions) * partition_unit_size + ref_file, _ = _do_ref_write(tmpdir, 0, file_size) + h = AsyncIOBuilder().load().aio_handle(BLOCK_SIZE, QUEUE_DEPTH, True, True, IO_PARALLEL) + + if use_cuda_pinned_tensor: + data_buffer = torch.zeros(file_size, dtype=torch.uint8, device='cpu').pin_memory() + else: + data_buffer = h.new_cpu_locked_tensor(file_size, torch.empty(0, dtype=torch.uint8)) + + file_offsets = [] + next_offset = 0 + for i in range(len(file_partitions)): + file_offsets.append(next_offset) + next_offset += file_partitions[i] * partition_unit_size + + with open(ref_file, 'rb') as ref_fd: + for i in range(len(file_partitions)): + ref_fd.seek(file_offsets[i]) + bytes_to_read = file_partitions[i] * partition_unit_size + ref_buf = list(ref_fd.read(bytes_to_read)) + + dst_tensor = torch.narrow(data_buffer, 0, 0, bytes_to_read) + assert 1 == h.sync_pread(dst_tensor, ref_file, file_offsets[i]) + assert dst_tensor.tolist() == ref_buf + + if not use_cuda_pinned_tensor: + h.free_cpu_locked_tensor(data_buffer) diff --git a/tests/unit/ops/aio/test_gds.py b/tests/unit/ops/aio/test_gds.py new file mode 100644 index 000000000000..d97eff452eb5 --- /dev/null +++ b/tests/unit/ops/aio/test_gds.py @@ -0,0 +1,341 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import pytest +import os +import filecmp +import torch +import deepspeed +import deepspeed.comm as dist +from deepspeed.accelerator import get_accelerator +from deepspeed.ops.op_builder import GDSBuilder +from unit.common import DistributedTest + +KILO_BYTE = 1024 * 256 +BLOCK_SIZE = KILO_BYTE +QUEUE_DEPTH = 2 +IO_SIZE = 4 * BLOCK_SIZE +IO_PARALLEL = 2 + +if not deepspeed.ops.__compatible_ops__[GDSBuilder.NAME]: + pytest.skip('Skip tests since gds is not compatible', allow_module_level=True) + + +def _get_local_rank(): + if get_accelerator().is_available(): + return dist.get_rank() + return 0 + + +def _do_ref_write(tmpdir, index=0, file_size=IO_SIZE): + file_suffix = f'{_get_local_rank()}_{index}' + ref_file = os.path.join(tmpdir, f'_py_random_{file_suffix}.pt') + ref_buffer = os.urandom(file_size) + with open(ref_file, 'wb') as f: + f.write(ref_buffer) + + return ref_file, ref_buffer + + +def _get_file_path(tmpdir, file_prefix, index=0): + file_suffix = f'{_get_local_rank()}_{index}' + return os.path.join(tmpdir, f'{file_prefix}_{file_suffix}.pt') + + +def _get_test_write_file(tmpdir, index): + file_suffix = f'{_get_local_rank()}_{index}' + return os.path.join(tmpdir, f'_gds_write_random_{file_suffix}.pt') + + +def _get_test_write_file_and_device_buffer(tmpdir, ref_buffer, gds_handle, index=0): + test_file = _get_test_write_file(tmpdir, index) + test_buffer = get_accelerator().ByteTensor(list(ref_buffer)) + gds_handle.pin_device_tensor(test_buffer) + return test_file, test_buffer + + +def _validate_handle_state(handle, single_submit, overlap_events): + assert handle.get_single_submit() == single_submit + assert handle.get_overlap_events() == overlap_events + assert handle.get_intra_op_parallelism() == IO_PARALLEL + assert handle.get_block_size() == BLOCK_SIZE + assert handle.get_queue_depth() == QUEUE_DEPTH + + +@pytest.mark.parametrize("single_submit", [True, False]) +@pytest.mark.parametrize("overlap_events", [True, False]) +class TestRead(DistributedTest): + world_size = 1 + reuse_dist_env = True + if not get_accelerator().is_available(): + init_distributed = False + set_dist_env = False + + def test_parallel_read(self, tmpdir, single_submit, overlap_events): + + h = GDSBuilder().load().gds_handle(BLOCK_SIZE, QUEUE_DEPTH, single_submit, overlap_events, IO_PARALLEL) + + gds_buffer = torch.empty(IO_SIZE, dtype=torch.uint8, device=get_accelerator().device_name()) + h.pin_device_tensor(gds_buffer) + + _validate_handle_state(h, single_submit, overlap_events) + + ref_file, _ = _do_ref_write(tmpdir) + read_status = h.sync_pread(gds_buffer, ref_file, 0) + assert read_status == 1 + + with open(ref_file, 'rb') as f: + ref_buffer = list(f.read()) + assert ref_buffer == gds_buffer.tolist() + + h.unpin_device_tensor(gds_buffer) + + def test_async_read(self, tmpdir, single_submit, overlap_events): + + h = GDSBuilder().load().gds_handle(BLOCK_SIZE, QUEUE_DEPTH, single_submit, overlap_events, IO_PARALLEL) + + gds_buffer = torch.empty(IO_SIZE, dtype=torch.uint8, device=get_accelerator().device_name()) + h.pin_device_tensor(gds_buffer) + + _validate_handle_state(h, single_submit, overlap_events) + + ref_file, _ = _do_ref_write(tmpdir) + read_status = h.async_pread(gds_buffer, ref_file, 0) + assert read_status == 0 + + wait_status = h.wait() + assert wait_status == 1 + + with open(ref_file, 'rb') as f: + ref_buffer = list(f.read()) + assert ref_buffer == gds_buffer.tolist() + + h.unpin_device_tensor(gds_buffer) + + +@pytest.mark.parametrize("single_submit", [True, False]) +@pytest.mark.parametrize("overlap_events", [True, False]) +class TestWrite(DistributedTest): + world_size = 1 + reuse_dist_env = True + if not get_accelerator().is_available(): + init_distributed = False + set_dist_env = False + + def test_parallel_write(self, tmpdir, single_submit, overlap_events): + + ref_file, ref_buffer = _do_ref_write(tmpdir) + h = GDSBuilder().load().gds_handle(BLOCK_SIZE, QUEUE_DEPTH, single_submit, overlap_events, IO_PARALLEL) + + gds_file, gds_buffer = _get_test_write_file_and_device_buffer(tmpdir, ref_buffer, h) + + _validate_handle_state(h, single_submit, overlap_events) + + write_status = h.sync_pwrite(gds_buffer, gds_file, 0) + assert write_status == 1 + + h.unpin_device_tensor(gds_buffer) + + assert os.path.isfile(gds_file) + + filecmp.clear_cache() + assert filecmp.cmp(ref_file, gds_file, shallow=False) + + def test_async_write(self, tmpdir, single_submit, overlap_events): + ref_file, ref_buffer = _do_ref_write(tmpdir) + + h = GDSBuilder().load().gds_handle(BLOCK_SIZE, QUEUE_DEPTH, single_submit, overlap_events, IO_PARALLEL) + gds_file, gds_buffer = _get_test_write_file_and_device_buffer(tmpdir, ref_buffer, h) + + _validate_handle_state(h, single_submit, overlap_events) + + write_status = h.async_pwrite(gds_buffer, gds_file, 0) + assert write_status == 0 + + wait_status = h.wait() + assert wait_status == 1 + + h.unpin_device_tensor(gds_buffer) + + assert os.path.isfile(gds_file) + + filecmp.clear_cache() + assert filecmp.cmp(ref_file, gds_file, shallow=False) + + +@pytest.mark.sequential +class TestAsyncQueue(DistributedTest): + world_size = 1 + if not get_accelerator().is_available(): + init_distributed = False + set_dist_env = False + + @pytest.mark.parametrize("async_queue", [2, 3]) + def test_read(self, tmpdir, async_queue): + + ref_files = [] + for i in range(async_queue): + f, _ = _do_ref_write(tmpdir, i) + ref_files.append(f) + + single_submit = True + overlap_events = True + h = GDSBuilder().load().gds_handle(BLOCK_SIZE, QUEUE_DEPTH, single_submit, overlap_events, IO_PARALLEL) + + gds_buffers = [ + torch.empty(IO_SIZE, dtype=torch.uint8, device=get_accelerator().device_name()) for _ in range(async_queue) + ] + for buf in gds_buffers: + h.pin_device_tensor(buf) + + _validate_handle_state(h, single_submit, overlap_events) + + for i in range(async_queue): + read_status = h.async_pread(gds_buffers[i], ref_files[i], 0) + assert read_status == 0 + + wait_status = h.wait() + assert wait_status == async_queue + + for i in range(async_queue): + with open(ref_files[i], 'rb') as f: + ref_buffer = list(f.read()) + assert ref_buffer == gds_buffers[i].tolist() + + for t in gds_buffers: + h.unpin_device_tensor(t) + + @pytest.mark.parametrize("async_queue", [2, 3]) + def test_write(self, tmpdir, async_queue): + ref_files = [] + ref_buffers = [] + for i in range(async_queue): + f, buf = _do_ref_write(tmpdir, i) + ref_files.append(f) + ref_buffers.append(buf) + + single_submit = True + overlap_events = True + h = GDSBuilder().load().gds_handle(BLOCK_SIZE, QUEUE_DEPTH, single_submit, overlap_events, IO_PARALLEL) + + gds_files = [] + gds_buffers = [] + for i in range(async_queue): + f, buf = _get_test_write_file_and_device_buffer(tmpdir, ref_buffers[i], h, i) + gds_files.append(f) + gds_buffers.append(buf) + + _validate_handle_state(h, single_submit, overlap_events) + + for i in range(async_queue): + read_status = h.async_pwrite(gds_buffers[i], gds_files[i], 0) + assert read_status == 0 + + wait_status = h.wait() + assert wait_status == async_queue + + for t in gds_buffers: + h.unpin_device_tensor(t) + + for i in range(async_queue): + assert os.path.isfile(gds_files[i]) + + filecmp.clear_cache() + assert filecmp.cmp(ref_files[i], gds_files[i], shallow=False) + + +@pytest.mark.parametrize("use_new_api", [True, False]) +class TestLockDeviceTensor(DistributedTest): + world_size = 2 + reuse_dist_env = True + if not get_accelerator().is_available(): + init_distributed = False + set_dist_env = False + + def test_pin_device_tensor(self, use_new_api): + + h = GDSBuilder().load().gds_handle(BLOCK_SIZE, QUEUE_DEPTH, True, True, IO_PARALLEL) + + unpinned_buffer = torch.empty(IO_SIZE, dtype=torch.uint8, device=get_accelerator().device_name()) + if use_new_api: + pinned_buffer = h.new_pinned_device_tensor(unpinned_buffer.numel(), unpinned_buffer) + else: + pinned_buffer = torch.empty_like(unpinned_buffer) + h.pin_device_tensor(pinned_buffer) + + assert unpinned_buffer.device == pinned_buffer.device + assert unpinned_buffer.dtype == pinned_buffer.dtype + assert unpinned_buffer.numel() == pinned_buffer.numel() + + if use_new_api: + h.free_pinned_device_tensor(pinned_buffer) + else: + h.unpin_device_tensor(pinned_buffer) + + +@pytest.mark.parametrize('file_partitions', [[1, 1, 1], [1, 1, 2], [1, 2, 1], [2, 1, 1]]) +class TestAsyncFileOffset(DistributedTest): + world_size = 1 + + def test_offset_write(self, tmpdir, file_partitions): + ref_file = _get_file_path(tmpdir, '_py_random') + aio_file = _get_file_path(tmpdir, '_aio_random') + partition_unit_size = IO_SIZE + file_size = sum(file_partitions) * partition_unit_size + + h = GDSBuilder().load().gds_handle(BLOCK_SIZE, QUEUE_DEPTH, True, True, IO_PARALLEL) + + gds_buffer = torch.empty(file_size, dtype=torch.uint8, device=get_accelerator().device_name()) + h.pin_device_tensor(gds_buffer) + + file_offsets = [] + next_offset = 0 + for i in range(len(file_partitions)): + file_offsets.append(next_offset) + next_offset += file_partitions[i] * partition_unit_size + + ref_fd = open(ref_file, 'wb') + for i in range(len(file_partitions)): + src_buffer = torch.narrow(gds_buffer, 0, file_offsets[i], + file_partitions[i] * partition_unit_size).to(device='cpu') + + ref_fd.write(src_buffer.numpy().tobytes()) + ref_fd.flush() + + assert 1 == h.sync_pwrite(buffer=src_buffer, filename=aio_file, file_offset=file_offsets[i]) + + filecmp.clear_cache() + assert filecmp.cmp(ref_file, aio_file, shallow=False) + + ref_fd.close() + + h.unpin_device_tensor(gds_buffer) + + def test_offset_read(self, tmpdir, file_partitions): + partition_unit_size = BLOCK_SIZE + file_size = sum(file_partitions) * partition_unit_size + ref_file, _ = _do_ref_write(tmpdir, 0, file_size) + h = GDSBuilder().load().gds_handle(BLOCK_SIZE, QUEUE_DEPTH, True, True, IO_PARALLEL) + + gds_buffer = torch.empty(file_size, dtype=torch.uint8, device=get_accelerator().device_name()) + h.pin_device_tensor(gds_buffer) + + file_offsets = [] + next_offset = 0 + for i in range(len(file_partitions)): + file_offsets.append(next_offset) + next_offset += file_partitions[i] * partition_unit_size + + with open(ref_file, 'rb') as ref_fd: + for i in range(len(file_partitions)): + ref_fd.seek(file_offsets[i]) + bytes_to_read = file_partitions[i] * partition_unit_size + ref_buf = list(ref_fd.read(bytes_to_read)) + + dst_tensor = torch.narrow(gds_buffer, 0, 0, bytes_to_read) + assert 1 == h.sync_pread(dst_tensor, ref_file, file_offsets[i]) + assert dst_tensor.tolist() == ref_buf + + h.unpin_device_tensor(gds_buffer) diff --git a/tests/unit/ops/fp_quantizer/test_fp8_gemm.py b/tests/unit/ops/fp_quantizer/test_fp8_gemm.py new file mode 100644 index 000000000000..d068a05b77bb --- /dev/null +++ b/tests/unit/ops/fp_quantizer/test_fp8_gemm.py @@ -0,0 +1,46 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import pytest +import torch +import deepspeed + +from deepspeed.ops.op_builder import FPQuantizerBuilder + +if not deepspeed.ops.__compatible_ops__[FPQuantizerBuilder.NAME]: + pytest.skip("FPQuantizer op is not available on this system", allow_module_level=True) + +from deepspeed.ops.fp_quantizer import FP_Quantize, matmul_fp8 + +from deepspeed import get_accelerator +from deepspeed.linear import QuantizationConfig + + +@pytest.mark.parametrize("dtype", [torch.bfloat16], ids=["bf16"]) +@pytest.mark.parametrize("q_bits", [8], ids=[ + "qbits8", +]) +@pytest.mark.parametrize("M", [1, 2, 4, 8, 32, 64, 128, 256, 512, 1024, 2048]) +def test_fp_quant(dtype, q_bits, M): + device_name = get_accelerator().device_name() + quantization_group_size = 128 + quant_config = QuantizationConfig(q_dtype=FPQuantizerBuilder.get_default_quant_dtype(), + group_size=quantization_group_size) + fpq = FP_Quantize(quantization_config=quant_config) + + N = 8192 + H = 4096 + + x = torch.randn(M, H, dtype=dtype, device=device_name) + weight_bf16 = torch.randn(H, N, dtype=dtype, device=device_name) + + weight, _ = fpq.quantize(weight_bf16.data, q_bits=q_bits, return_meta_tensor=True) + scale = fpq.get_scales() + out = matmul_fp8(x, weight, scale, quantization_group_size, fpq) + + out_q = torch.matmul(x, fpq.dequantize(weight, scale=fpq.scale)) + + error = ((out - out_q).abs() / (out.abs() + 1e-5)).sum() / out.numel() + assert 0.004 > error, f"failed on batch-size {M} with error {error}" diff --git a/tests/unit/ops/fp_quantizer/test_fp_quant.py b/tests/unit/ops/fp_quantizer/test_fp_quant.py new file mode 100644 index 000000000000..e9baf016310e --- /dev/null +++ b/tests/unit/ops/fp_quantizer/test_fp_quant.py @@ -0,0 +1,134 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import pytest +import torch +from deepspeed.linear import QuantizationConfig + +import deepspeed + +from deepspeed.ops.fp_quantizer import FP_Quantize +from deepspeed.ops.op_builder import FPQuantizerBuilder +from deepspeed.accelerator import get_accelerator + +if not deepspeed.ops.__compatible_ops__[FPQuantizerBuilder.NAME]: + pytest.skip("FPQuantizer op is not available on this system", allow_module_level=True) + +# warning: this import silently JIT builds a set of kernels and may take a minute +from qtorch.quant import float_quantize + + +def qtorch_quantize(input, exp_bits=4, man_bits=3, rounding="nearest", group_size=1024): + ori_dt = input.dtype + ori_shape = input.shape + last_dim = group_size + input = input.view(-1, last_dim) + + q_bits = exp_bits + man_bits + 1 + q_range = FPQuantizerBuilder.get_quant_range(q_bits) + input_to_float = input.float() + input_max = input_to_float.abs().amax(dim=-1, keepdim=True) + + return ((float_quantize(input_to_float / input_max * q_range, exp_bits, man_bits, rounding=rounding) * \ + input_max / q_range).to(ori_dt)).reshape(ori_shape) + + +@pytest.mark.parametrize("dtype", [torch.bfloat16], ids=["bf16"]) +def test_fp_quant_meta(dtype): + device_name = get_accelerator().device_name() + group_size = 128 + q_bits = 8 + exp_bits = 4 + man_bits = 3 + + quant_config = QuantizationConfig() + quant_config.q_dtype = FPQuantizerBuilder.get_default_quant_dtype() + quant_config.group_size = group_size + fpq = FP_Quantize(quantization_config=quant_config) + + for i in range(10): + x = torch.rand(4, 1024, dtype=dtype) + + ds_x = x.clone().to(device_name) + x_quantized, meta_tensor = fpq.quantize(ds_x, q_bits=q_bits, return_meta_tensor=True) + x_dequantized = fpq.dequantize(x_quantized, q_bits=q_bits, scale=meta_tensor) + + qtorch_out = qtorch_quantize(x, exp_bits=exp_bits, man_bits=man_bits, group_size=group_size) + qtorch_error = (qtorch_out - x).abs().sum() / x.numel() + ds_error = (x_dequantized - x).abs().sum() / x.numel() + + assert 0.0004 > abs(qtorch_error.item() - ds_error.item()), f"failed on iteration {i}" + + +@pytest.mark.parametrize("dtype", [torch.bfloat16], ids=["bf16"]) +def test_fp_quant_selective(dtype): + group_size = 128 + q_bits = 8 + exp_bits = 4 + man_bits = 3 + + device_name = get_accelerator().device_name() + + quant_config = QuantizationConfig() + quant_config.q_dtype = FPQuantizerBuilder.get_default_quant_dtype() + quant_config.group_size = group_size + fpq = FP_Quantize(quantization_config=quant_config) + + indexes = torch.zeros(2, dtype=torch.int32, device=device_name) + indexes[0] = 1 + indexes[1] = 3 + for i in range(10): + x = torch.rand(4, 1024, dtype=dtype, device=device_name) + + x = x.reshape(4, 1, x.shape[-1]) + ds_x = x.clone() + x_quantized = fpq.quantize(ds_x, q_bits=q_bits) + x_dequantized = fpq.selective_dequantize(x_quantized, indexes, q_bits=q_bits) + + qtorch_out = qtorch_quantize(x.index_select(0, indexes), + exp_bits=exp_bits, + man_bits=man_bits, + group_size=group_size) + qtorch_error = (qtorch_out - x.index_select(0, indexes)).abs().sum() / x.numel() + ds_error = (x_dequantized - x.index_select(0, indexes)).abs().sum() / x.numel() + + assert 0.0004 > abs(qtorch_error.item() - ds_error.item()), f"failed on iteration {i}" + + +@pytest.mark.parametrize("dtype", [torch.bfloat16], ids=["bf16"]) +@pytest.mark.parametrize("q_bits", [8, 6, 12], ids=["qbits8", "qbits6", "qbits12"]) +def test_fp_quant(dtype, q_bits): + device_name = get_accelerator().device_name() + + quant_config = QuantizationConfig() + quant_config.q_dtype = FPQuantizerBuilder.get_default_quant_dtype() + quant_config.group_size = 128 + fpq = FP_Quantize(quantization_config=quant_config) + + for i in range(10): + x = torch.rand(4, 1024, dtype=dtype) + + ds_x = x.clone().to(device_name) + x_quantized = fpq.quantize(ds_x, q_bits=q_bits) + x_dequantized = fpq.dequantize(x_quantized, q_bits=q_bits) + + if q_bits == 8: + exp_bits = 4 + man_bits = 3 + elif q_bits == 6: + exp_bits = 3 + man_bits = 2 + elif q_bits == 12: + exp_bits = 4 + man_bits = 7 + else: + raise ValueError(f"unknown {q_bits=}") + + qtorch_out = qtorch_quantize(x, exp_bits=exp_bits, man_bits=man_bits, group_size=quant_config.group_size) + + qtorch_error = (qtorch_out - x).abs().sum() / x.numel() + ds_error = (x_dequantized - x).abs().sum() / x.numel() + + assert 0.0004 > abs(qtorch_error.item() - ds_error.item()), f"failed on iteration {i}" diff --git a/tests/unit/ops/lion/test_cpu_lion.py b/tests/unit/ops/lion/test_cpu_lion.py index 61a069af3257..dce027e286fb 100644 --- a/tests/unit/ops/lion/test_cpu_lion.py +++ b/tests/unit/ops/lion/test_cpu_lion.py @@ -14,15 +14,12 @@ from deepspeed.ops.op_builder import CPULionBuilder from unit.common import DistributedTest -if not deepspeed.ops.__compatible_ops__[CPULionBuilder.NAME]: - pytest.skip("cpu-lion is not compatible", allow_module_level=True) - pytest.cpu_vendor = get_cpu_info()["vendor_id_raw"].lower() def check_equal(first, second, atol=1e-2, verbose=False): - x = first.detach().numpy() - y = second.detach().numpy() + x = first.detach().float().numpy() + y = second.detach().float().numpy() print("ATOL", atol) if verbose: print("x = {}".format(x.flatten())) @@ -43,7 +40,7 @@ def _compare_optimizers(model_size, param1, optimizer1, param2, optimizer2): check_equal(param1.float().norm(), param2.float().cpu().norm(), atol=tolerance, verbose=True) -@pytest.mark.parametrize('dtype', [torch.half, torch.float], ids=["fp16", "fp32"]) +@pytest.mark.parametrize('dtype', [torch.half, torch.bfloat16, torch.float], ids=["fp16", "bf16", "fp32"]) @pytest.mark.parametrize('model_size', [ (64), @@ -62,6 +59,8 @@ class TestCPULion(DistributedTest): set_dist_env = False @pytest.mark.skipif(not get_accelerator().is_available(), reason="only supported in CUDA environments.") + @pytest.mark.skipif(not deepspeed.ops.__compatible_ops__[CPULionBuilder.NAME], + reason="CPULionBuilder has not been implemented on this system.") def test_fused_lion_equal(self, dtype, model_size): if ("amd" in pytest.cpu_vendor) and (dtype == torch.half): pytest.skip("cpu-lion with half precision not supported on AMD CPUs") @@ -84,6 +83,8 @@ def test_fused_lion_equal(self, dtype, model_size): class TestCPULionGPUError(DistributedTest): + @pytest.mark.skipif(not deepspeed.ops.__compatible_ops__[CPULionBuilder.NAME], + reason="CPULionBuilder has not been implemented on this system.") def test_cpu_lion_gpu_error(self): model_size = 64 from deepspeed.ops.lion import DeepSpeedCPULion diff --git a/tests/unit/ops/lion/test_lion.py b/tests/unit/ops/lion/test_lion.py index b2c3ac2f52df..507ff72ea51a 100644 --- a/tests/unit/ops/lion/test_lion.py +++ b/tests/unit/ops/lion/test_lion.py @@ -12,6 +12,7 @@ from unit.common import DistributedTest from unit.simple_model import SimpleModel from deepspeed.accelerator import get_accelerator +from deepspeed.ops.op_builder import CPULionBuilder if torch.half not in get_accelerator().supported_dtypes(): pytest.skip(f"fp16 not supported, valid dtype: {get_accelerator().supported_dtypes()}", allow_module_level=True) @@ -27,6 +28,7 @@ class TestLionConfigs(DistributedTest): world_size = 1 reuse_dist_env = True + @pytest.mark.skipif(not deepspeed.ops.__compatible_ops__[CPULionBuilder.NAME], reason="CPULionBuilder has not been implemented on this system.") def test(self, optimizer, zero_offload, diff --git a/tests/unit/ops/transformer/inference/inference_test_utils.py b/tests/unit/ops/transformer/inference/inference_test_utils.py index 9c7b428c0e68..d63c51267e51 100644 --- a/tests/unit/ops/transformer/inference/inference_test_utils.py +++ b/tests/unit/ops/transformer/inference/inference_test_utils.py @@ -3,6 +3,8 @@ # DeepSpeed Team +from typing import Tuple + import torch from deepspeed.accelerator import get_accelerator @@ -23,10 +25,10 @@ def get_tolerances(): DTYPES = None -def get_dtypes(): +def get_dtypes(include_float=True): global DTYPES if DTYPES is None: - DTYPES = [torch.float16, torch.float32] + DTYPES = [torch.float16, torch.float32] if include_float else [torch.float16] try: if get_accelerator().is_bf16_supported(): DTYPES.append(torch.bfloat16) @@ -35,31 +37,10 @@ def get_dtypes(): return DTYPES -def allclose(x, y): +def allclose(x, y, tolerances: Tuple[int, int] = None): assert x.dtype == y.dtype - rtol, atol = get_tolerances()[x.dtype] + if tolerances is None: + rtol, atol = get_tolerances()[x.dtype] + else: + rtol, atol = tolerances return torch.allclose(x, y, rtol=rtol, atol=atol) - - -def assert_almost_equal(x, y, decimal=2, err_msg=''): - import numpy.testing as npt - if isinstance(x, torch.Tensor): - if x.dtype == torch.bfloat16: - x = x.float() - x = x.cpu().detach().numpy() - if isinstance(y, torch.Tensor): - if y.dtype == torch.bfloat16: - y = y.float() - y = y.cpu().detach().numpy() - npt.assert_array_almost_equal(x, y, err_msg=err_msg, decimal=decimal) - - -def max_diff(a, b): - a = a.to(torch.float32).flatten() - b = b.to(torch.float32).flatten() - diff = torch.abs(a - b) - max_diff_indices = torch.argsort(diff)[-1] - print("Max difference indices:", max_diff_indices) - print("Max difference values:", diff[max_diff_indices]) - print(f"{a[max_diff_indices]} vs {b[max_diff_indices]}") - return max_diff_indices diff --git a/tests/unit/ops/transformer/inference/test_attention.py b/tests/unit/ops/transformer/inference/test_attention.py index 13abe8b915c7..cae201d747a3 100644 --- a/tests/unit/ops/transformer/inference/test_attention.py +++ b/tests/unit/ops/transformer/inference/test_attention.py @@ -7,7 +7,7 @@ import torch import deepspeed from deepspeed.accelerator import get_accelerator -from .inference_test_utils import assert_almost_equal +from .inference_test_utils import allclose # reference timplementation @@ -27,27 +27,27 @@ def ref_torch_attention(q, k, v, mask, sm_scale): @pytest.mark.parametrize("causal", [True, False]) @pytest.mark.parametrize("use_flash", [True, False]) def test_attention(BATCH, H, N_CTX, D_HEAD, causal, use_flash, dtype=torch.float16): - if not deepspeed.HAS_TRITON: - pytest.skip("triton has to be installed for the test") + if not deepspeed.get_accelerator().is_triton_supported(): + pytest.skip("triton is not supported on this system") minus_inf = -65504.0 - + dev = deepspeed.accelerator.get_accelerator().device_name() # skip autotune in testing from deepspeed.ops.transformer.inference.triton.matmul_ext import fp16_matmul fp16_matmul.skip_autotune() from deepspeed.ops.transformer.inference.triton.attention import _triton_attention, _triton_packed_flash torch.manual_seed(20) - q = torch.empty((BATCH, H, N_CTX, D_HEAD), dtype=dtype, device="cuda").normal_(mean=0, std=.5) - k = torch.empty((BATCH, H, N_CTX, D_HEAD), dtype=dtype, device="cuda").normal_(mean=0, std=.5) - v = torch.empty((BATCH, H, N_CTX, D_HEAD), dtype=dtype, device="cuda").normal_(mean=0, std=.5) + q = torch.empty((BATCH, H, N_CTX, D_HEAD), dtype=dtype, device=dev).normal_(mean=0, std=.5) + k = torch.empty((BATCH, H, N_CTX, D_HEAD), dtype=dtype, device=dev).normal_(mean=0, std=.5) + v = torch.empty((BATCH, H, N_CTX, D_HEAD), dtype=dtype, device=dev).normal_(mean=0, std=.5) sm_scale = 0.3 # reference implementation p = torch.matmul(q, k.transpose(2, 3)) * sm_scale score = p - mask = torch.zeros((BATCH, H, N_CTX, N_CTX), dtype=dtype, device="cuda") - M = torch.tril(torch.ones((N_CTX, N_CTX), device="cuda")) + mask = torch.zeros((BATCH, H, N_CTX, N_CTX), dtype=dtype, device=dev) + M = torch.tril(torch.ones((N_CTX, N_CTX), device=dev)) if causal: for z in range(BATCH): for h in range(H): @@ -58,7 +58,7 @@ def test_attention(BATCH, H, N_CTX, D_HEAD, causal, use_flash, dtype=torch.float context = ref_out # adjust it to expected tensor format and run test - qkv = torch.randn((BATCH, N_CTX, 3 * H * D_HEAD), dtype=dtype, device='cuda', requires_grad=False) + qkv = torch.randn((BATCH, N_CTX, 3 * H * D_HEAD), dtype=dtype, device=dev, requires_grad=False) qkv[:, :, :H * D_HEAD] = q.permute(0, 2, 1, 3).contiguous().reshape((BATCH, N_CTX, H * D_HEAD)) qkv[:, :, 1 * H * D_HEAD:2 * H * D_HEAD] = k.permute(0, 2, 1, 3).contiguous().reshape((BATCH, N_CTX, H * D_HEAD)) qkv[:, :, 2 * H * D_HEAD:] = v.permute(0, 2, 1, 3).contiguous().reshape((BATCH, N_CTX, H * D_HEAD)) @@ -66,12 +66,12 @@ def test_attention(BATCH, H, N_CTX, D_HEAD, causal, use_flash, dtype=torch.float if use_flash: if not get_accelerator().is_triton_supported(): pytest.skip("triton flash attention is supported when the compute capability > 8.0") - triton_mask = torch.zeros((BATCH, 1, 1, N_CTX), dtype=dtype, device="cuda") + triton_mask = torch.zeros((BATCH, 1, 1, N_CTX), dtype=dtype, device=dev) if not causal: - lengths = torch.randint(N_CTX - 8, N_CTX, (BATCH, 1), device='cuda') + lengths = torch.randint(N_CTX - 8, N_CTX, (BATCH, 1), device=dev) for i, l in enumerate(lengths): triton_mask[i, ..., l:] = minus_inf - mask = torch.zeros((BATCH, H, N_CTX, N_CTX), dtype=dtype, device="cuda") + mask = torch.zeros((BATCH, H, N_CTX, N_CTX), dtype=dtype, device=dev) for b in range(BATCH): mask[b, :, :, lengths[b]:] = minus_inf ref_out = ref_torch_attention(q, k, v, mask, sm_scale) @@ -88,4 +88,4 @@ def test_attention(BATCH, H, N_CTX, D_HEAD, causal, use_flash, dtype=torch.float use_triton_flash=False, use_ds_attention=False) tri_out = tri_out.reshape((BATCH, N_CTX, H, D_HEAD)).permute(0, 2, 1, 3) - assert_almost_equal(ref_out, tri_out) + assert (allclose(ref_out, tri_out)) diff --git a/tests/unit/ops/transformer/inference/test_bias_add.py b/tests/unit/ops/transformer/inference/test_bias_add.py index 843c9b889c2b..eb283924f73c 100644 --- a/tests/unit/ops/transformer/inference/test_bias_add.py +++ b/tests/unit/ops/transformer/inference/test_bias_add.py @@ -8,29 +8,21 @@ import deepspeed from deepspeed.accelerator import get_accelerator from deepspeed.ops.op_builder import InferenceBuilder +from deepspeed.ops.transformer import DeepSpeedInferenceConfig +from deepspeed.ops.transformer.inference.op_binding.bias_add import BiasAddOp from .inference_test_utils import allclose, get_dtypes if not deepspeed.ops.__compatible_ops__[InferenceBuilder.NAME]: pytest.skip("Inference ops are not available on this system", allow_module_level=True) -inference_module = None -torch_minor_version = None - def run_bias_add_reference(activations, bias): return activations + bias def run_bias_add_ds(activations, bias): - global inference_module - if inference_module is None: - inference_module = InferenceBuilder().load() - if activations.dtype == torch.float16: - return inference_module.bias_add_fp16(activations, bias) - elif activations.dtype == torch.bfloat16: - return inference_module.bias_add_bf16(activations, bias) - else: - return inference_module.bias_add_fp32(activations, bias) + config = DeepSpeedInferenceConfig(dtype=activations.dtype) + return BiasAddOp(config)(activations, bias) @pytest.mark.inference_ops diff --git a/tests/unit/ops/transformer/inference/test_bias_geglu.py b/tests/unit/ops/transformer/inference/test_bias_geglu.py index d5ab13964974..c995d2a8c46d 100644 --- a/tests/unit/ops/transformer/inference/test_bias_geglu.py +++ b/tests/unit/ops/transformer/inference/test_bias_geglu.py @@ -8,15 +8,13 @@ import deepspeed from deepspeed.ops.op_builder import InferenceBuilder from deepspeed.accelerator import get_accelerator +from deepspeed.ops.transformer.inference.op_binding.gated_activation import GatedActivationOp from deepspeed.utils.types import ActivationFuncType from .inference_test_utils import allclose, get_dtypes if not deepspeed.ops.__compatible_ops__[InferenceBuilder.NAME]: pytest.skip("Inference ops are not available on this system", allow_module_level=True) -inference_module = None -torch_minor_version = None - def run_bias_geglu_reference(activations, bias): # Expected behavior is that of casting to float32 internally @@ -27,10 +25,7 @@ def run_bias_geglu_reference(activations, bias): def run_bias_geglu_ds(activation, bias): - global inference_module - if inference_module is None: - inference_module = InferenceBuilder().load() - return inference_module.gated_activation(activation, bias, ActivationFuncType.GATED_GELU) + return GatedActivationOp()(activation, bias, ActivationFuncType.GATED_GELU) @pytest.mark.inference_ops @@ -56,17 +51,14 @@ def run_gated_silu_reference(activations, bias): def run_gated_silu_ds(activation, bias): - global inference_module - if inference_module is None: - inference_module = InferenceBuilder().load() - return inference_module.gated_activation(activation, bias, ActivationFuncType.GATED_SILU) + return GatedActivationOp()(activation, bias, ActivationFuncType.GATED_SILU) @pytest.mark.inference_ops @pytest.mark.parametrize("batch", [1, 2]) @pytest.mark.parametrize("sequence", [1, 128, 255]) @pytest.mark.parametrize("channels", [512, 1232, 4096]) -@pytest.mark.parametrize("dtype", [torch.float16, torch.float32]) +@pytest.mark.parametrize("dtype", get_dtypes()) def test_gated_silu(batch, sequence, channels, dtype): activation = torch.randn((batch, sequence, channels * 2), dtype=dtype, device=get_accelerator().device_name()) bias = torch.randn((channels * 2), dtype=dtype, device=get_accelerator().device_name()) diff --git a/tests/unit/ops/transformer/inference/test_bias_gelu.py b/tests/unit/ops/transformer/inference/test_bias_gelu.py index fd82da51380c..f0a09245e890 100644 --- a/tests/unit/ops/transformer/inference/test_bias_gelu.py +++ b/tests/unit/ops/transformer/inference/test_bias_gelu.py @@ -8,15 +8,14 @@ import deepspeed from deepspeed.accelerator import get_accelerator from deepspeed.ops.op_builder import InferenceBuilder +from deepspeed.ops.transformer import DeepSpeedInferenceConfig +from deepspeed.ops.transformer.inference.op_binding.bias_gelu import BiasGeluOp +from deepspeed.utils.torch import required_torch_version from .inference_test_utils import allclose, get_dtypes -from packaging import version as pkg_version if not deepspeed.ops.__compatible_ops__[InferenceBuilder.NAME]: pytest.skip("Inference ops are not available on this system", allow_module_level=True) -inference_module = None -torch_minor_version = None - def run_bias_gelu_reference(activations, bias): # Expected behavior is that of casting to float32 internally and using the tanh approximation @@ -25,15 +24,8 @@ def run_bias_gelu_reference(activations, bias): def run_bias_gelu_ds(activations, bias): - global inference_module - if inference_module is None: - inference_module = InferenceBuilder().load() - if activations.dtype == torch.float16: - return inference_module.bias_gelu_fp16(activations, bias) - elif activations.dtype == torch.bfloat16: - return inference_module.bias_gelu_bf16(activations, bias) - else: - return inference_module.bias_gelu_fp32(activations, bias) + config = DeepSpeedInferenceConfig(dtype=activations.dtype) + return BiasGeluOp(config)(activations, bias) @pytest.mark.inference_ops @@ -42,7 +34,7 @@ def run_bias_gelu_ds(activations, bias): @pytest.mark.parametrize("channels", [512, 1232, 4096]) @pytest.mark.parametrize("dtype", get_dtypes()) def test_bias_gelu(batch, sequence, channels, dtype): - if pkg_version.parse(torch.__version__) < pkg_version.parse("1.12"): + if not required_torch_version(min_version=1.12): pytest.skip("gelu implementation matches only after torch 1.12") activations_ds = torch.randn((batch, sequence, channels), dtype=dtype, device=get_accelerator().device_name()) diff --git a/tests/unit/ops/transformer/inference/test_bias_relu.py b/tests/unit/ops/transformer/inference/test_bias_relu.py index 881af78e92cf..69078f9f7646 100644 --- a/tests/unit/ops/transformer/inference/test_bias_relu.py +++ b/tests/unit/ops/transformer/inference/test_bias_relu.py @@ -8,14 +8,13 @@ import deepspeed from deepspeed.accelerator import get_accelerator from deepspeed.ops.op_builder import InferenceBuilder +from deepspeed.ops.transformer import DeepSpeedInferenceConfig +from deepspeed.ops.transformer.inference.op_binding.bias_relu import BiasReluOp from .inference_test_utils import allclose, get_dtypes if not deepspeed.ops.__compatible_ops__[InferenceBuilder.NAME]: pytest.skip("Inference ops are not available on this system", allow_module_level=True) -inference_module = None -torch_minor_version = None - def run_bias_relu_reference(activations, bias): # Expected behavior is that of casting to float32 internally @@ -23,15 +22,8 @@ def run_bias_relu_reference(activations, bias): def run_bias_relu_ds(activations, bias): - global inference_module - if inference_module is None: - inference_module = InferenceBuilder().load() - if activations.dtype == torch.float16: - return inference_module.bias_relu_fp16(activations, bias) - elif activations.dtype == torch.bfloat16: - return inference_module.bias_relu_bf16(activations, bias) - else: - return inference_module.bias_relu_fp32(activations, bias) + config = DeepSpeedInferenceConfig(dtype=activations.dtype) + return BiasReluOp(config)(activations, bias) @pytest.mark.inference_ops diff --git a/tests/unit/ops/transformer/inference/test_gelu.py b/tests/unit/ops/transformer/inference/test_gelu.py index de924848bfb4..a58abfdb100c 100644 --- a/tests/unit/ops/transformer/inference/test_gelu.py +++ b/tests/unit/ops/transformer/inference/test_gelu.py @@ -7,13 +7,13 @@ import torch import deepspeed from deepspeed.ops.op_builder import InferenceBuilder +from deepspeed.ops.transformer import DeepSpeedInferenceConfig +from deepspeed.ops.transformer.inference.op_binding.bias_gelu import BiasGeluOp +from deepspeed.utils.torch import required_torch_version if not deepspeed.ops.__compatible_ops__[InferenceBuilder.NAME]: pytest.skip("Inference ops are not available on this system", allow_module_level=True) -inference_module = None -torch_minor_version = None - def allclose(x, y): assert x.dtype == y.dtype @@ -22,14 +22,11 @@ def allclose(x, y): def version_appropriate_gelu(activations): - global torch_minor_version - if torch_minor_version is None: - torch_minor_version = int(torch.__version__.split('.')[1]) - # If torch version = 1.12 - if torch_minor_version < 12: - return torch.nn.functional.gelu(activations) - else: + # gelu behavior changes (correctly) in torch 1.12 + if required_torch_version(min_version=1.12): return torch.nn.functional.gelu(activations, approximate='tanh') + else: + return torch.nn.functional.gelu(activations) def run_gelu_reference(activations): @@ -42,15 +39,11 @@ def run_gelu_ds(activations, use_triton_ops=False): from deepspeed.ops.transformer.inference.triton import gelu return gelu(activations) + device = deepspeed.accelerator.get_accelerator().device_name() channels = activations.shape[-1] - bias = torch.zeros((channels), dtype=activations.dtype, device='cuda') - global inference_module - if inference_module is None: - inference_module = InferenceBuilder().load() - if activations.dtype == torch.float16: - return inference_module.bias_gelu_fp16(activations, bias) - else: - return inference_module.bias_gelu_fp32(activations, bias) + bias = torch.zeros((channels), dtype=activations.dtype, device=device) + config = DeepSpeedInferenceConfig(dtype=activations.dtype) + return BiasGeluOp(config)(activations, bias) @pytest.mark.inference_ops @@ -60,11 +53,12 @@ def run_gelu_ds(activations, use_triton_ops=False): @pytest.mark.parametrize("dtype", [torch.float16]) @pytest.mark.parametrize("use_triton_ops", [True, False]) def test_gelu(batch, sequence, channels, dtype, use_triton_ops): - activations_ds = torch.randn((batch, sequence, channels), dtype=dtype, device='cuda') + device = deepspeed.accelerator.get_accelerator().device_name() + activations_ds = torch.randn((batch, sequence, channels), dtype=dtype, device=device) activations_ref = activations_ds.clone().detach() - if not deepspeed.HAS_TRITON and use_triton_ops: - pytest.skip("triton has to be installed for the test") + if not deepspeed.get_accelerator().is_triton_supported(): + pytest.skip("triton is not supported on this system") ds_out = run_gelu_ds(activations_ds, use_triton_ops) ref_out = run_gelu_reference(activations_ref) assert (allclose(ds_out, ref_out)) diff --git a/tests/unit/ops/transformer/inference/test_layer_norm.py b/tests/unit/ops/transformer/inference/test_layer_norm.py index 711a35213015..4a84add16046 100644 --- a/tests/unit/ops/transformer/inference/test_layer_norm.py +++ b/tests/unit/ops/transformer/inference/test_layer_norm.py @@ -8,7 +8,8 @@ import pytest from deepspeed.accelerator import get_accelerator from deepspeed.ops.op_builder import InferenceBuilder -from .inference_test_utils import allclose, get_dtypes, assert_almost_equal +from deepspeed.ops.transformer.inference.op_binding.layer_norm import LayerNormOp +from .inference_test_utils import allclose, get_dtypes try: import triton # noqa: F401 # type: ignore from deepspeed.ops.transformer.inference.triton import ( @@ -21,8 +22,6 @@ if not deepspeed.ops.__compatible_ops__[InferenceBuilder.NAME]: pytest.skip("Inference ops are not available on this system", allow_module_level=True) -inference_module = None - def ref_implementation(vals, gamma, beta, epsilon, channels, dtype): vals_f = vals.to(torch.float32) @@ -32,10 +31,7 @@ def ref_implementation(vals, gamma, beta, epsilon, channels, dtype): def ds_implementation(vals, gamma, beta, epsilon): - global inference_module - if inference_module is None: - inference_module = InferenceBuilder().load() - return inference_module.layer_norm(vals, gamma, beta, epsilon) + return LayerNormOp()(vals, gamma, beta, epsilon) def ds_triton_implementation(vals, gamma, beta, epsilon): @@ -49,8 +45,8 @@ def ds_triton_implementation(vals, gamma, beta, epsilon): @pytest.mark.parametrize("dtype", get_dtypes()) @pytest.mark.parametrize("use_triton_ops", [False, True]) def test_layer_norm(batch, seq_len, channels, dtype, use_triton_ops): - if not deepspeed.HAS_TRITON and use_triton_ops: - pytest.skip("triton has to be installed for the test") + if not deepspeed.get_accelerator().is_triton_supported(): + pytest.skip("triton is not supported on this system") vals = torch.randn((batch, seq_len, channels), dtype=dtype, device=get_accelerator().current_device_name()) gamma = torch.randn((channels), dtype=dtype, device=get_accelerator().current_device_name()) @@ -83,10 +79,7 @@ def residual_ref_implementation(vals, bias, res, gamma, beta, epsilon, channels, def residual_ds_implementation(vals, bias, res, gamma, beta, epsilon): - global inference_module - if inference_module is None: - inference_module = InferenceBuilder().load() - return inference_module._layer_norm_residual(vals, bias, res, gamma, beta, epsilon) + return LayerNormOp.layer_norm_residual(vals, bias, res, gamma, beta, epsilon) def residual_ds_triton_implementation(vals, bias, res, gamma, beta, epsilon): @@ -100,8 +93,8 @@ def residual_ds_triton_implementation(vals, bias, res, gamma, beta, epsilon): @pytest.mark.parametrize("dtype", get_dtypes()) @pytest.mark.parametrize("use_triton_ops", [False, True]) def test_layer_norm_residual(batch, seq_len, channels, dtype, use_triton_ops): - if not deepspeed.HAS_TRITON and use_triton_ops: - pytest.skip("triton has to be installed for the test") + if not deepspeed.get_accelerator().is_triton_supported(): + pytest.skip("triton is not supported on this system") vals = torch.randn((batch, seq_len, channels), dtype=dtype, device=get_accelerator().current_device_name()) residual = torch.randn((batch, seq_len, channels), dtype=dtype, device=get_accelerator().current_device_name()) @@ -137,10 +130,7 @@ def residual_store_ref_implementation(vals, bias, res, gamma, beta, epsilon, cha def residual_store_ds_implementation(vals, bias, res, gamma, beta, epsilon): - global inference_module - if inference_module is None: - inference_module = InferenceBuilder().load() - return inference_module.layer_norm_residual_store_pre_ln_res(vals, bias, res, gamma, beta, epsilon) + return LayerNormOp.layer_norm_residual_store_pre_ln_res(vals, bias, res, gamma, beta, epsilon) @pytest.mark.inference_ops @@ -173,21 +163,22 @@ def test_layer_norm_residual_store_pre_ln_res(batch, seq_len, channels, dtype): @pytest.mark.parametrize("residual", [True, False]) @pytest.mark.parametrize("input_bias", [True, False]) def test_triton_layer_norm(M, N, dtype, residual, input_bias, eps=1e-5, device='cuda'): - if not deepspeed.HAS_TRITON: - pytest.skip("triton has to be installed for the test") + if not deepspeed.get_accelerator().is_triton_supported(): + pytest.skip("triton is not supported on this system") + dev = get_accelerator().device_name() torch.manual_seed(0) # create data x_shape = (M, N) w_shape = (x_shape[-1], ) - weight = torch.rand(w_shape, dtype=dtype, device='cuda', requires_grad=False) - bias = torch.rand(w_shape, dtype=dtype, device='cuda', requires_grad=False) - x_bias = torch.rand(w_shape, dtype=dtype, device='cuda', requires_grad=False) - x = -2.3 + 0.5 * torch.randn(x_shape, dtype=dtype, device='cuda') + weight = torch.rand(w_shape, dtype=dtype, device=dev, requires_grad=False) + bias = torch.rand(w_shape, dtype=dtype, device=dev, requires_grad=False) + x_bias = torch.rand(w_shape, dtype=dtype, device=dev, requires_grad=False) + x = -2.3 + 0.5 * torch.randn(x_shape, dtype=dtype, device=dev) dy = .1 * torch.randn_like(x) if residual: - res = torch.rand(x_shape, dtype=dtype, device='cuda', requires_grad=False) + res = torch.rand(x_shape, dtype=dtype, device=dev, requires_grad=False) else: - res = torch.zeros(x_shape, dtype=dtype, device='cuda', requires_grad=False) + res = torch.zeros(x_shape, dtype=dtype, device=dev, requires_grad=False) x.requires_grad_(True) # forward pass if residual or input_bias: @@ -197,4 +188,4 @@ def test_triton_layer_norm(M, N, dtype, residual, input_bias, eps=1e-5, device=' y_ref = torch.nn.functional.layer_norm(x + res + (x_bias if input_bias else 0), w_shape, weight, bias, eps).to(dtype) # compare - assert_almost_equal(y_tri, y_ref) + assert (allclose(y_tri, y_ref)) diff --git a/tests/unit/ops/transformer/inference/test_matmul.py b/tests/unit/ops/transformer/inference/test_matmul.py index 804a85750a3a..6f5173bbc827 100644 --- a/tests/unit/ops/transformer/inference/test_matmul.py +++ b/tests/unit/ops/transformer/inference/test_matmul.py @@ -11,9 +11,6 @@ if not deepspeed.ops.__compatible_ops__[InferenceBuilder.NAME]: pytest.skip("Inference ops are not available on this system", allow_module_level=True) -inference_module = None -torch_minor_version = None - def allclose(x, y): assert x.dtype == y.dtype @@ -42,8 +39,8 @@ def run_matmul_ds(a, b, use_triton_ops=False): @pytest.mark.parametrize("dtype", [torch.float16]) @pytest.mark.parametrize("use_triton_ops", [True]) def test_matmul_4d(B, H, M, K, N, dtype, use_triton_ops): - if not deepspeed.HAS_TRITON and use_triton_ops: - pytest.skip("triton has to be installed for the test") + if not deepspeed.get_accelerator().is_triton_supported(): + pytest.skip("triton is not supported on this system") # skip autotune in testing from deepspeed.ops.transformer.inference.triton.matmul_ext import fp16_matmul diff --git a/tests/unit/ops/transformer/inference/test_moe_res_matmult.py b/tests/unit/ops/transformer/inference/test_moe_res_matmult.py index e1c8127a83ac..dcf9f16baaf1 100644 --- a/tests/unit/ops/transformer/inference/test_moe_res_matmult.py +++ b/tests/unit/ops/transformer/inference/test_moe_res_matmult.py @@ -8,24 +8,20 @@ import deepspeed from deepspeed.accelerator import get_accelerator from deepspeed.ops.op_builder import InferenceBuilder +from deepspeed.ops.transformer.inference.op_binding.moe_res_matmul import MoEResMatmulOp from .inference_test_utils import allclose, get_dtypes if not deepspeed.ops.__compatible_ops__[InferenceBuilder.NAME]: pytest.skip("Inference ops are not available on this system", allow_module_level=True) -inference_module = None - def run_moe_res_matmul_reference(residual, coef1, coef2, output): return residual * coef1 + output * coef2 def run_moe_res_matmul_ds(residual, coef, output): - global inference_module - if inference_module is None: - inference_module = InferenceBuilder().load() coef_t = coef.transpose(-1, -2).contiguous() - return inference_module.moe_res_matmul(residual, coef_t, output) + return MoEResMatmulOp()(residual, coef_t, output) @pytest.mark.inference_ops diff --git a/tests/unit/ops/transformer/inference/test_residual_add.py b/tests/unit/ops/transformer/inference/test_residual_add.py index c2952f74ff2d..cab64d1d0555 100644 --- a/tests/unit/ops/transformer/inference/test_residual_add.py +++ b/tests/unit/ops/transformer/inference/test_residual_add.py @@ -8,6 +8,8 @@ import deepspeed from deepspeed.accelerator import get_accelerator from deepspeed.ops.op_builder import InferenceBuilder +from deepspeed.ops.transformer import DeepSpeedInferenceConfig +from deepspeed.ops.transformer.inference.op_binding import ResidualAddOp from .inference_test_utils import get_dtypes if not deepspeed.ops.__compatible_ops__[InferenceBuilder.NAME]: @@ -36,11 +38,6 @@ def allclose(x, y): return torch.allclose(x, y, rtol=rtol, atol=atol) -@pytest.fixture(scope="module") -def inference_module(): - return InferenceBuilder().load() - - def res_add_bias_ref(hidden_state, residual, attn_output, attn_bias, final_bias, mp_size=1, pre_attn_norm=True): if pre_attn_norm: hidden_state += (residual + final_bias + attn_output + attn_bias) / mp_size @@ -75,10 +72,10 @@ def run_residual_add_reference(hidden_state, residual, attn_output, attn_bias, f @pytest.mark.parametrize("mp_size", [1, 2]) @pytest.mark.parametrize("pre_attn_norm", [True, False]) @pytest.mark.parametrize("use_triton_ops", [True, False]) -def test_residual_add(inference_module, batch, sequence, hidden_dim, dtype, mlp_after_attn, add_bias, mp_size, - pre_attn_norm, use_triton_ops): - if not deepspeed.HAS_TRITON and use_triton_ops and dtype == torch.float16: - pytest.skip("triton has to be installed for the test") +def test_residual_add(batch, sequence, hidden_dim, dtype, mlp_after_attn, add_bias, mp_size, pre_attn_norm, + use_triton_ops): + if not deepspeed.get_accelerator().is_triton_supported(): + pytest.skip("triton is not supported on this system") ds_out = torch.randn((batch, sequence, hidden_dim), dtype=dtype, device=get_accelerator().device_name()) residual = torch.randn((batch, sequence, hidden_dim), dtype=dtype, device=get_accelerator().device_name()) attn_output = torch.randn((batch, sequence, hidden_dim), dtype=dtype, device=get_accelerator().device_name()) @@ -96,19 +93,9 @@ def test_residual_add(inference_module, batch, sequence, hidden_dim, dtype, mlp_ if use_triton_ops: from deepspeed.ops.transformer.inference.triton import residual_add_bias ds_out = residual_add_bias(*res_add_args) - if dtype == torch.float16: - ds_out = inference_module.residual_add_bias_fp16(*res_add_args) - elif dtype == torch.float32: - ds_out = inference_module.residual_add_bias_fp32(*res_add_args) - elif dtype == torch.bfloat16: - ds_out = inference_module.residual_add_bias_bf16(*res_add_args) else: - if dtype == torch.float16: - ds_out = inference_module.residual_add_bias_fp16(*res_add_args) - elif dtype == torch.float32: - ds_out = inference_module.residual_add_bias_fp32(*res_add_args) - else: - raise ValueError(f"Unsupported dtype: {dtype}") + config = DeepSpeedInferenceConfig(dtype=dtype) + ds_out = ResidualAddOp(config).residual_add_func(*res_add_args) if not allclose(ds_out, ref_out): print((ds_out - ref_out).abs().max()) diff --git a/tests/unit/ops/transformer/inference/test_rms_norm.py b/tests/unit/ops/transformer/inference/test_rms_norm.py index 508a40e12e8d..fde9c9510771 100644 --- a/tests/unit/ops/transformer/inference/test_rms_norm.py +++ b/tests/unit/ops/transformer/inference/test_rms_norm.py @@ -8,13 +8,13 @@ import pytest from deepspeed.accelerator import get_accelerator from deepspeed.ops.op_builder import InferenceBuilder # type: ignore +from deepspeed.ops.transformer.inference.op_binding.pre_rms_norm import PreRMSNormOp +from deepspeed.ops.transformer.inference.op_binding.rms_norm import RMSNormOp from .inference_test_utils import allclose, get_dtypes if not deepspeed.ops.__compatible_ops__[InferenceBuilder.NAME]: pytest.skip("Inference ops are not available on this system", allow_module_level=True) -inference_module = None - def ref_implementation(vals, gamma, epsilon): variance = vals.to(torch.float32).pow(2).mean(-1, keepdim=True) @@ -27,10 +27,7 @@ def ref_implementation(vals, gamma, epsilon): def ds_implementation(vals, gamma, epsilon): - global inference_module - if inference_module is None: - inference_module = InferenceBuilder().load() - return inference_module.rms_norm(vals, gamma, epsilon) + return RMSNormOp()(vals, gamma, epsilon) @pytest.mark.inference_ops @@ -51,10 +48,7 @@ def test_rms_norm(batch, seq_len, channels, dtype): def pre_ds_implementation(vals, residual, gamma, epsilon): - global inference_module - if inference_module is None: - inference_module = InferenceBuilder().load() - return inference_module.pre_rms_norm(vals, residual, gamma, epsilon) + return PreRMSNormOp()(vals, residual, gamma, epsilon) def pre_ref_implementation(vals, residual, gamma, epsilon): diff --git a/tests/unit/ops/transformer/inference/test_rope.py b/tests/unit/ops/transformer/inference/test_rope.py new file mode 100644 index 000000000000..1f0ca0578e04 --- /dev/null +++ b/tests/unit/ops/transformer/inference/test_rope.py @@ -0,0 +1,38 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import pytest +import torch +import deepspeed +from deepspeed.ops.op_builder import InferenceBuilder +from deepspeed.accelerator import get_accelerator + +if not deepspeed.ops.__compatible_ops__[InferenceBuilder.NAME]: + pytest.skip("Inference ops are not available on this system", allow_module_level=True) + + +@pytest.mark.inference_ops +@pytest.mark.parametrize("num_heads", [64, 32, 16, 8]) +def test_rope_warp_size_alignment(num_heads): + if get_accelerator().device_name() != "cuda": + pytest.skip("This test runs only on GPU") + + batch = 1 + head = 8 + seq_len = 1024 + head_dim = 32 + rotary_dim = 32 + offset = 8 + rotate_half = False + rope_theta = 2 + + cuda0 = torch.device('cuda:0') + query = torch.randn(batch, head, seq_len, head_dim, device=cuda0) + key = torch.randn(batch, head, seq_len, head_dim, device=cuda0) + + inference = InferenceBuilder().load() + # For num_heads values of 64, 32, 16, 8 + # corresponding threads_per_head (defined in apply_rotary_pos_emb.cu) values are 4, 8, 16, 32 + inference.apply_rotary_pos_emb(query, key, rotary_dim, offset, num_heads, rotate_half, rope_theta) diff --git a/tests/unit/ops/transformer/inference/test_softmax.py b/tests/unit/ops/transformer/inference/test_softmax.py index 76046f31e01a..83785ac38ebb 100644 --- a/tests/unit/ops/transformer/inference/test_softmax.py +++ b/tests/unit/ops/transformer/inference/test_softmax.py @@ -11,9 +11,6 @@ if not deepspeed.ops.__compatible_ops__[InferenceBuilder.NAME]: pytest.skip("Inference ops are not available on this system", allow_module_level=True) -inference_module = None -torch_minor_version = None - def allclose(x, y): assert x.dtype == y.dtype @@ -41,9 +38,11 @@ def run_softmax_ds(input, use_triton_ops=False): @pytest.mark.parametrize("dtype", [torch.float16, torch.float32]) @pytest.mark.parametrize("use_triton_ops", [True]) def test_softmax(batch, sequence, channels, dtype, use_triton_ops): - if not deepspeed.HAS_TRITON and use_triton_ops: - pytest.skip("triton has to be installed for the test") - input_ds = torch.randn((batch, sequence, channels), dtype=dtype, device='cuda') + if not deepspeed.get_accelerator().is_triton_supported(): + pytest.skip("triton is not supported on this system") + + device = deepspeed.accelerator.get_accelerator().device_name() + input_ds = torch.randn((batch, sequence, channels), dtype=dtype, device=device) input_ref = input_ds.clone().detach() ds_out = run_softmax_ds(input_ds, use_triton_ops) diff --git a/tests/unit/pipe/test_pipe_module.py b/tests/unit/pipe/test_pipe_module.py index 05c6a82ef55a..2a8a4b9b7d82 100644 --- a/tests/unit/pipe/test_pipe_module.py +++ b/tests/unit/pipe/test_pipe_module.py @@ -60,9 +60,12 @@ def batch_input(): class TestPipeModuleSequential(DistributedTest): world_size = 2 + # needs to be set for torch.compile: running torch.compile with daemonic process causes an error + non_daemonic_procs = True @pytest.mark.parametrize("activation_checkpoints", [False, True]) - def test(self, sequential_model, simple_config, batch_input, activation_checkpoints): + @pytest.mark.parametrize("use_compile", [False, True]) + def test(self, sequential_model, simple_config, batch_input, activation_checkpoints, use_compile): base_model = copy.deepcopy(sequential_model) base_input = batch_input.clone().detach() base_output = base_model(base_input) @@ -71,7 +74,8 @@ def test(self, sequential_model, simple_config, batch_input, activation_checkpoi pipe_model = copy.deepcopy(sequential_model) pipe_model = PipelineModule(layers=pipe_model, num_stages=2) - + if (use_compile): + pipe_model.compile() # Ensure all parameters are accounted for. my_params = sum(p.numel() for p in pipe_model.parameters()) total_pipe_params = torch.LongTensor([my_params]).to(get_accelerator().device_name()) diff --git a/tests/unit/profiling/flops_profiler/test_flops_profiler.py b/tests/unit/profiling/flops_profiler/test_flops_profiler.py index bbcb01b489f4..c72deecf287f 100644 --- a/tests/unit/profiling/flops_profiler/test_flops_profiler.py +++ b/tests/unit/profiling/flops_profiler/test_flops_profiler.py @@ -9,7 +9,7 @@ from deepspeed.profiling.flops_profiler import get_model_profile from unit.simple_model import SimpleModel, random_dataloader from unit.common import DistributedTest -from deepspeed.runtime.utils import required_torch_version +from deepspeed.utils.torch import required_torch_version from deepspeed.accelerator import get_accelerator if torch.half not in get_accelerator().supported_dtypes(): diff --git a/tests/unit/runtime/activation_checkpointing/test_activation_checkpointing.py b/tests/unit/runtime/activation_checkpointing/test_activation_checkpointing.py index 0232457a4f9c..dd3bcd7fb6bd 100644 --- a/tests/unit/runtime/activation_checkpointing/test_activation_checkpointing.py +++ b/tests/unit/runtime/activation_checkpointing/test_activation_checkpointing.py @@ -8,6 +8,7 @@ import pytest import torch import deepspeed +from deepspeed.pipe import PipelineModule, LayerSpec from deepspeed.accelerator import get_accelerator from copy import deepcopy from unit.common import DistributedTest @@ -62,6 +63,8 @@ def _match_outputs(ref, tgt): def _test_activation_checkpoint(module, *inputs): + if get_accelerator().device_name() == "cpu": + pytest.skip("CPU accelerator does not support this test yet") # Move to device module.to(get_accelerator().device_name()) @@ -82,6 +85,8 @@ def _test_activation_checkpoint(module, *inputs): def _test_activation_checkpoint_ordering(module, expected_ordering, *inputs): + if get_accelerator().device_name() == "cpu": + pytest.skip("CPU accelerator does not support this test yet") # Move to device module.to(get_accelerator().device_name()) @@ -255,3 +260,52 @@ def test_ckpt_non_tensor_output_ordering(self, non_tensor_output): else: ordering += [torch.is_tensor(non_tensor_output)] _test_activation_checkpoint_ordering(module, ordering, inputs) + + +class TestCheckpointableLayersConfig(DistributedTest): + world_size = 1 + + def test_gpt2_checkpointable_layers(self): + if get_accelerator().device_name() == "cpu": + pytest.skip("CPU accelerator does not support this test yet") + + # Create a simple topology for testing + from deepspeed.runtime.pipe.topology import PipeModelDataParallelTopology + topo = PipeModelDataParallelTopology(num_pp=1, num_mp=1, num_dp=1) + + # Create test classes that we want to checkpoint + class TestTransformerLayer(torch.nn.Module): + + def forward(self, x): + return x + + class ParallelTransformerLayerPipe(TestTransformerLayer): + pass + + class GMLPBlock(TestTransformerLayer): + pass + + # Create a mock GPT2 model with different layer types + class TestGPT2ModelPipe(PipelineModule): + + def __init__(self): + self.layers_spec = [ + LayerSpec(ParallelTransformerLayerPipe), + LayerSpec(GMLPBlock), + LayerSpec(torch.nn.Linear, 10, 10), # Should not be checkpointed + ] + + super().__init__(layers=self.layers_spec, + topology=topo, + checkpointable_layers=["GMLPBlock", "ParallelTransformerLayerPipe"]) + + model = TestGPT2ModelPipe() + model.to(get_accelerator().device_name()) + + # Build layers manually for testing + layers = [spec.build() for spec in model.layers_spec] + + # Test that _is_checkpointable returns correct values + assert model._is_checkpointable([layers[0]]) == True # ParallelTransformerLayerPipe + assert model._is_checkpointable([layers[1]]) == True # GMLPBlock + assert model._is_checkpointable([layers[2]]) == False # Linear layer diff --git a/tests/unit/runtime/comm/test_coalesced_collectives.py b/tests/unit/runtime/comm/test_coalesced_collectives.py index 8e736c1eaaa6..2d5db192f2ca 100644 --- a/tests/unit/runtime/comm/test_coalesced_collectives.py +++ b/tests/unit/runtime/comm/test_coalesced_collectives.py @@ -7,9 +7,11 @@ """ import torch +import deepspeed import deepspeed.comm as dist -from deepspeed.runtime.comm.coalesced_collectives import reduce_scatter_coalesced +from deepspeed.runtime.comm.coalesced_collectives import reduce_scatter_coalesced, all_to_all_quant_reduce from deepspeed.accelerator import get_accelerator +import pytest from unit.common import DistributedTest @@ -59,3 +61,101 @@ def test(self): assert torch.allclose(output, torch.zeros_like(output)) elif dist.get_rank() == 1: assert output.shape == (0, ) + + +# Currently we cannot test all_to_all_quant_reduce in non-fallback cases because we don't support multinodes tests. +class TestAllToAllQuantReduceFallback(DistributedTest): + world_size = 2 + + def test_1d_tensor(self): + # case 1: 1D tensor + input = torch.zeros((10, ), dtype=torch.half, device=get_accelerator().current_device_name()) + from deepspeed.ops.op_builder import QuantizerBuilder + if not deepspeed.ops.__compatible_ops__[QuantizerBuilder.NAME]: + pytest.skip("QuantizerBuilder is not implemented") + output = all_to_all_quant_reduce([input], {})[0] + + if dist.get_rank() == 0: + assert output.shape == (5, ) + assert torch.allclose(output, torch.zeros_like(output)) + elif dist.get_rank() == 1: + assert output.shape == (5, ) + assert torch.allclose(output, torch.zeros_like(output)) + + def test_non_divisible(self): + # case 2: tensor size not divisible by global_world_size + input = torch.zeros((7, 7), dtype=torch.half, device=get_accelerator().current_device_name()) + from deepspeed.ops.op_builder import QuantizerBuilder + if not deepspeed.ops.__compatible_ops__[QuantizerBuilder.NAME]: + pytest.skip("QuantizerBuilder is not implemented") + output = all_to_all_quant_reduce([input], {})[0] + + if dist.get_rank() == 0: + assert output.shape == (25, ) + assert torch.allclose(output, torch.zeros_like(output)) + elif dist.get_rank() == 1: + assert output.shape == (24, ) + assert torch.allclose(output, torch.zeros_like(output)) + + +class TestLocoQuantized(DistributedTest): + + world_size = 1 + + @pytest.mark.parametrize("num_bits", [4, 8]) + @pytest.mark.parametrize("tensor_size", [(16, 16), (64, 64)]) + @pytest.mark.parametrize("devices_per_node", [4, 8]) + def test_loco_quantized_reduction(self, num_bits, tensor_size, devices_per_node): + from deepspeed.ops.op_builder import QuantizerBuilder + if not deepspeed.ops.__compatible_ops__[QuantizerBuilder.NAME]: + pytest.skip("QuantizerBuilder is not implemented") + + quantizer_module = QuantizerBuilder().load() + + tensor = torch.randn(tensor_size, device='cuda', dtype=torch.half) + + num_nodes = 2 # Fake world size + total_elements = tensor.numel() + total_devices = devices_per_node * num_nodes + num_groups = max(tensor.shape[0], tensor.shape[1], total_devices) + + # Initialize error_feedback tensor + error_feedback = torch.randn(tensor_size, device=tensor.device, dtype=tensor.dtype) + error_feedback_ori = error_feedback.clone() + # Swizzle the original tensor + tensor_reshaped = tensor.reshape(num_nodes, devices_per_node, total_elements // total_devices) + swizzled_tensor = tensor_reshaped.permute(1, 0, 2).reshape(tensor.size()) + + # Perform loco_swizzle_quant + output, scales = quantizer_module.loco_swizzle_quant(tensor, error_feedback, 0.0, num_groups, num_bits, + quantizer_module.Symmetric, 1, num_nodes, + devices_per_node) + + # Compare swizzled_tensor with the output of loco_swizzle_quant + dequantized = quantizer_module.dequantize(output, scales, scales.numel(), num_bits, + quantizer_module.Symmetric).view(tensor.size()) + + assert torch.allclose(swizzled_tensor + error_feedback_ori, dequantized + error_feedback) + + # Calculate elements per group and groups per partition + elements_per_group = total_elements // num_groups + groups_per_partition = num_groups // devices_per_node + + # Reshape dequantized data to match the grouping in loco_quantized_reduction + dequantized_reshaped = dequantized.view(devices_per_node, groups_per_partition, elements_per_group) + + # Perform reduction across devices_per_node dimension + reduced_dequantized = dequantized_reshaped.cumsum(dim=0)[-1] + # Initialize error_feedback tensor + error_feedback = torch.randn(reduced_dequantized.shape, device=tensor.device, dtype=dequantized.dtype) + error_feedback_ori = error_feedback.clone() + + # perform loco_quantized_reduction + output, scales = quantizer_module.loco_quantized_reduction(output, scales, error_feedback, 0.0, num_groups, + num_groups // devices_per_node, num_bits, + quantizer_module.Symmetric, devices_per_node) + + dequantized_reduced = quantizer_module.dequantize(output, scales, scales.numel(), num_bits, + quantizer_module.Symmetric).view(error_feedback.size()) + + assert torch.allclose(reduced_dequantized + error_feedback_ori, dequantized_reduced + error_feedback) diff --git a/tests/unit/runtime/compile/test_compile_zero.py b/tests/unit/runtime/compile/test_compile_zero.py new file mode 100644 index 000000000000..ca80eef8b31e --- /dev/null +++ b/tests/unit/runtime/compile/test_compile_zero.py @@ -0,0 +1,68 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import pytest +import torch + +from deepspeed.runtime.zero.offload_config import OffloadDeviceEnum +from deepspeed.utils.torch import required_torch_version +from deepspeed.accelerator import get_accelerator + +from unit.runtime.compile.util import compare_loss +from unit.common import DistributedTest +from unit.util import bf16_required_version_check, skip_on_arch + +pytestmark = pytest.mark.skipif(not required_torch_version(min_version=2.1), + reason="Compile tests requires Pytorch version 2.1 or above") + + +class TestZeRO(DistributedTest): + world_size = 2 + non_daemonic_procs = True + + @pytest.mark.parametrize('dtype', [torch.bfloat16, torch.float16, torch.float32]) + @pytest.mark.parametrize('zero_stage', [1, 2, 3]) + @pytest.mark.parametrize('offload_device', [OffloadDeviceEnum.none, OffloadDeviceEnum.cpu, OffloadDeviceEnum.nvme]) + def test_compile_zero(self, tmpdir, zero_stage, dtype, offload_device): + if dtype == torch.bfloat16: + skip_on_arch(min_arch=8) + if dtype == torch.bfloat16 and not bf16_required_version_check(): + pytest.skip( + "DeepSpeed BFloat16 tests need NCCL >= 2.10.3, CUDA >=11.0, and HW support for BFloat16 to run correctly" + ) + if get_accelerator().device_name() == "cpu": + pytest.skip("CPU does not support this test yet") + + if offload_device == OffloadDeviceEnum.nvme: + if zero_stage != 3: + pytest.skip(f"Nvme offload not supported for zero stage {zero_stage}") + + config_dict = { + "train_micro_batch_size_per_gpu": 1, + "steps_per_print": 1, + "optimizer": { + "type": "Adam", + "params": { + "lr": 0.00015 + } + }, + "zero_optimization": { + "stage": zero_stage, + } + } + + if offload_device == OffloadDeviceEnum.cpu: + config_dict["zero_optimization"]["offload_optimizer"] = {"device": offload_device} + elif offload_device == OffloadDeviceEnum.nvme: + config_dict["zero_optimization"]["offload_optimizer"] = { + "device": offload_device, + "nvme_path": str(tmpdir) + } + if dtype == torch.float16: + config_dict["fp16"] = {"enabled": True, "initial_scale_power": 8} + elif dtype == torch.bfloat16: + config_dict["bf16"] = {"enabled": True} + + compare_loss(self, config_dict, dtype) diff --git a/tests/unit/runtime/compile/util.py b/tests/unit/runtime/compile/util.py new file mode 100644 index 000000000000..d53886a81429 --- /dev/null +++ b/tests/unit/runtime/compile/util.py @@ -0,0 +1,124 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import random +import os +import numpy as np +from copy import deepcopy + +import torch + +import deepspeed +from deepspeed.accelerator import get_accelerator +from deepspeed.runtime.zero import GatheredParameters + +from unit.simple_model import SimpleModel +from typing import Callable, Any + + +class EnableDeterminism: + + def __init__(self, seed: int): + local_rank = int(os.getenv("LOCAL_RANK", "0")) + + self.seed = seed + local_rank + self.saved_random_state = None + self.saved_np_random_state = None + self.saved_cuda_launch_blocking = None + self.saved_cublas_workspace_config = None + self.saved_deterministic_algorithms = None + + def __enter__(self): + self.saved_random_state = random.getstate() + self.saved_np_random_state = np.random.get_state() + self.saved_acc_rng_state = get_accelerator().get_rng_state() + self.saved_cuda_launch_blocking = os.environ.get("CUDA_LAUNCH_BLOCKING", "") + self.saved_cublas_workspace_config = os.environ.get("CUBLAS_WORKSPACE_CONFIG", "") + self.saved_deterministic_algorithms = torch.are_deterministic_algorithms_enabled() + + random.seed(self.seed) + np.random.seed(self.seed) + get_accelerator().manual_seed(self.seed) + get_accelerator().manual_seed_all(self.seed) + + os.environ["CUDA_LAUNCH_BLOCKING"] = "1" + os.environ["CUBLAS_WORKSPACE_CONFIG"] = ":16:8" + torch.use_deterministic_algorithms(True) + + def __exit__(self, type, value, traceback): + random.setstate(self.saved_random_state) + np.random.set_state(self.saved_np_random_state) + get_accelerator().set_rng_state(self.saved_acc_rng_state) + os.environ["CUDA_LAUNCH_BLOCKING"] = self.saved_cuda_launch_blocking + os.environ["CUBLAS_WORKSPACE_CONFIG"] = self.saved_cublas_workspace_config + torch.use_deterministic_algorithms(self.saved_deterministic_algorithms) + + +def enable_determinism(seed: int): + + def decorator(func: Callable) -> Callable: + + def wrapper(*args: Any, **kwargs: Any): + with EnableDeterminism(seed): + return func(*args, **kwargs) + + return wrapper + + return decorator + + +@enable_determinism(123) +def compare_loss(self, config, dtype): + iteration = 5 + hidden_dim = 10 + RTOL = 5e-1 + ATOL = 1e-2 + + device = torch.device(get_accelerator().current_device_name()) + model = SimpleModel(hidden_dim) + + i = get_accelerator().current_device() + baseline_model = deepcopy(model) + baseline_config = deepcopy(config) + baseline_config["zero_optimization"]["stage"] = 0 + baseline_config["zero_optimization"]["offload_optimizer"] = {} + baseline_engine, baseline_optimizer, _, _ = deepspeed.initialize(config=baseline_config, + model=baseline_model, + model_parameters=baseline_model.parameters()) + + if config["zero_optimization"]["stage"] == 3: + with deepspeed.zero.Init(config_dict_or_path=config): + target_model = SimpleModel(hidden_dim) + with GatheredParameters(target_model.parameters(), modifier_rank=0): + for p1, p2 in zip(target_model.parameters(), model.parameters()): + p1.data.copy_(p2.data) + else: + target_model = deepcopy(model) + + target_engine, target_optimizer, _, _ = deepspeed.initialize(config=config, + model=target_model, + model_parameters=target_model.parameters()) + target_engine.compile() + + train_batch_size = config["train_micro_batch_size_per_gpu"] + + xs = [torch.randn(train_batch_size, hidden_dim, device=device, dtype=dtype) for _ in range(iteration)] + ys = [torch.randn_like(x) for x in xs] + + for x, y in zip(xs, ys): + baseline_loss = baseline_engine(x, y) + target_loss = target_engine(x, y) + + assert torch.allclose(baseline_loss, target_loss, rtol=RTOL, atol=ATOL) + + baseline_engine.backward(baseline_loss) + target_engine.backward(target_loss) + + baseline_optimizer.step() + target_optimizer.step() + + with GatheredParameters(target_engine.parameters()): + for p1, p2 in zip(baseline_engine.parameters(), target_engine.parameters()): + assert torch.allclose(p1.to(dtype), p2, rtol=RTOL, atol=ATOL) diff --git a/tests/unit/runtime/half_precision/onebit/test_onebit.py b/tests/unit/runtime/half_precision/onebit/test_onebit.py index ba795a853be0..1be2d73ef4c0 100644 --- a/tests/unit/runtime/half_precision/onebit/test_onebit.py +++ b/tests/unit/runtime/half_precision/onebit/test_onebit.py @@ -17,7 +17,7 @@ from unit.common import DistributedTest from unit.simple_model import SimpleModel, random_dataloader from unit.alexnet_model import AlexNetPipe, train_cifar -from deepspeed.runtime.utils import required_torch_version +from deepspeed.utils.torch import required_torch_version from deepspeed.accelerator import get_accelerator PipeTopo = PipeDataParallelTopology @@ -33,12 +33,18 @@ pytest.skip("NCCL-based 1-bit compression is not yet supported w. ROCm 5 until cupy supports ROCm 5", allow_module_level=True) +if get_accelerator().device_name() == 'hpu': + pytest.skip("1-bit compression is not supported by HPU.", allow_module_level=True) + @pytest.mark.parametrize("dtype", [torch.float32, torch.float16], ids=["fp32", "fp16"]) class TestOneBitAdamBasic(DistributedTest): world_size = 2 def test(self, dtype): + if not get_accelerator().is_fp16_supported(): + pytest.skip("fp16 is not supported") + config_dict = { "train_batch_size": 2, "steps_per_print": 1, @@ -80,6 +86,8 @@ class TestOneBitAdamExpAvgMask(DistributedTest): world_size = 2 def test(self): + if not get_accelerator().is_fp16_supported(): + pytest.skip("fp16 is not supported") config_dict = { "train_batch_size": 2, "steps_per_print": 1, @@ -144,6 +152,8 @@ class TestOneBitAdamCheckpointing(DistributedTest): world_size = 2 def test(self, tmpdir): + if not get_accelerator().is_fp16_supported(): + pytest.skip("fp16 is not supported") config_dict = { "train_batch_size": 2, "steps_per_print": 1, @@ -293,6 +303,8 @@ def test(self, tmpdir): assert optimizer_3.optimizer.adam_freeze_key is False def test_overflow(self, tmpdir): + if not get_accelerator().is_fp16_supported(): + pytest.skip("fp16 is not supported") config_dict = { "train_batch_size": 2, "steps_per_print": 1, @@ -343,6 +355,8 @@ class TestOneBitAdamFP16Pipeline(DistributedTest): world_size = 4 def test(self, topo_config): + if not get_accelerator().is_fp16_supported(): + pytest.skip("fp16 is not supported") config_dict = { "train_batch_size": 4, "grandient_accumulation_steps": 1, @@ -388,6 +402,8 @@ class TestZeroOneAdamBasic(DistributedTest): world_size = 2 def test(self, dtype): + if not get_accelerator().is_fp16_supported(): + pytest.skip("fp16 is not supported") config_dict = { "train_batch_size": 2, "steps_per_print": 1, @@ -432,6 +448,8 @@ class TestZeroOneAdamExpAvgMask(DistributedTest): world_size = 2 def test(self): + if not get_accelerator().is_fp16_supported(): + pytest.skip("fp16 is not supported") config_dict = { "train_batch_size": 2, "steps_per_print": 1, @@ -499,6 +517,8 @@ class TestZeroOneAdamCheckpointing(DistributedTest): world_size = 2 def test(self, tmpdir): + if not get_accelerator().is_fp16_supported(): + pytest.skip("fp16 is not supported") config_dict = { "train_batch_size": 2, "steps_per_print": 1, @@ -647,6 +667,8 @@ def test(self, tmpdir): assert "server_error" not in v, f"Incorrect server error" def test_overflow(self, tmpdir): + if not get_accelerator().is_fp16_supported(): + pytest.skip("fp16 is not supported") config_dict = { "train_batch_size": 2, "steps_per_print": 1, @@ -700,6 +722,8 @@ class TestZeroOneAdamFP16Pipeline(DistributedTest): world_size = 4 def test(self, topo_config): + if not get_accelerator().is_fp16_supported(): + pytest.skip("fp16 is not supported") config_dict = { "train_batch_size": 4, "grandient_accumulation_steps": 1, @@ -748,6 +772,8 @@ class TestOneBitLambBasic(DistributedTest): world_size = 2 def test(self, dtype): + if not get_accelerator().is_fp16_supported(): + pytest.skip("fp16 is not supported") config_dict = { "train_batch_size": 2, "steps_per_print": 1, @@ -795,6 +821,8 @@ class TestOneBitLampExpAvgMask(DistributedTest): world_size = 2 def test(self): + if not get_accelerator().is_fp16_supported(): + pytest.skip("fp16 is not supported") config_dict = { "train_batch_size": 2, "steps_per_print": 1, @@ -864,6 +892,8 @@ class TestOneBitLambCheckpointing(DistributedTest): world_size = 2 def test(self, tmpdir): + if not get_accelerator().is_fp16_supported(): + pytest.skip("fp16 is not supported") config_dict = { "train_batch_size": 2, "steps_per_print": 1, @@ -1030,6 +1060,8 @@ def test(self, tmpdir): assert optimizer_3.optimizer.lamb_freeze_key is False def test_overflow(self, tmpdir): + if not get_accelerator().is_fp16_supported(): + pytest.skip("fp16 is not supported") config_dict = { "train_batch_size": 2, "steps_per_print": 1, @@ -1086,6 +1118,8 @@ class TestOneBitLambFP16Pipeline(DistributedTest): world_size = 4 def test(self, topo_config): + if not get_accelerator().is_fp16_supported(): + pytest.skip("fp16 is not supported") config_dict = { "train_batch_size": 4, "grandient_accumulation_steps": 1, @@ -1131,6 +1165,8 @@ class TestCompressedAllReduceBasic(DistributedTest): world_size = 2 def test(self, tmpdir): + if not get_accelerator().is_fp16_supported(): + pytest.skip("fp16 is not supported") from deepspeed.runtime.comm.nccl import NcclBackend size = dist.get_world_size() diff --git a/tests/unit/runtime/half_precision/test_bf16.py b/tests/unit/runtime/half_precision/test_bf16.py index 3f551fb0fd4a..0af14abc3be5 100644 --- a/tests/unit/runtime/half_precision/test_bf16.py +++ b/tests/unit/runtime/half_precision/test_bf16.py @@ -12,6 +12,7 @@ from unit.simple_model import SimpleModel, SimpleOptimizer, random_dataloader from unit.util import bf16_required_version_check from deepspeed import comm as dist +from deepspeed.accelerator import get_accelerator class TestAdamBF16ZeroOneCycleCompatibility(DistributedTest): @@ -287,8 +288,8 @@ def test(self, stage=2): model.step() -@pytest.mark.parametrize("comp_type", [torch.float16, torch.bfloat16, torch.float], ids=["fp16", "bfp16", "fp32"]) -@pytest.mark.parametrize("comm_type", [torch.float16, torch.bfloat16, None], ids=["fp16", "bfp16", "default"]) +@pytest.mark.parametrize("comp_type", [torch.float16, torch.bfloat16, torch.float], ids=["fp16", "bf16", "fp32"]) +@pytest.mark.parametrize("comm_type", [torch.float16, torch.bfloat16, None], ids=["fp16", "bf16", "default"]) class TestZeroDtypeCocktail(DistributedTest): world_size = 2 @@ -299,7 +300,11 @@ def test(self, comp_type, comm_type): " DeepSpeed BFloat16 tests need torch >= 1.10, NCCL >= 2.10.3, CUDA > =11.0 and HW support for BFloat16 to run correctly" ) - type_str = {torch.float16: "fp16", torch.bfloat16: "bfp16"} + if comp_type == torch.float16 or comm_type == torch.float16: + if not get_accelerator().is_fp16_supported(): + pytest.skip("fp16 is not supported") + + type_str = {torch.float16: "fp16", torch.bfloat16: "bf16"} config_dict = { "train_micro_batch_size_per_gpu": 2, diff --git a/tests/unit/runtime/half_precision/test_dynamic_loss_scale.py b/tests/unit/runtime/half_precision/test_dynamic_loss_scale.py index 2a58fd6b4a57..4b263172261c 100644 --- a/tests/unit/runtime/half_precision/test_dynamic_loss_scale.py +++ b/tests/unit/runtime/half_precision/test_dynamic_loss_scale.py @@ -5,9 +5,12 @@ import torch import deepspeed +from deepspeed.accelerator import get_accelerator +import pytest import numpy as np from unit.common import DistributedTest from unit.simple_model import SimpleModel +from deepspeed.ops.op_builder import FusedLambBuilder def run_model_step(model, gradient_list): @@ -22,6 +25,9 @@ class TestFused(DistributedTest): world_size = 1 def test_no_overflow(self): + if not get_accelerator().is_fp16_supported(): + pytest.skip("fp16 is not supported") + config_dict = { "train_batch_size": 1, "steps_per_print": 1, @@ -57,6 +63,8 @@ def test_no_overflow(self): expected_loss_scale *= 2 def test_all_overflow(self): + if not get_accelerator().is_fp16_supported(): + pytest.skip("fp16 is not supported") config_dict = { "train_batch_size": 1, "steps_per_print": 1, @@ -90,6 +98,8 @@ def test_all_overflow(self): assert optim.cur_iter == (i + 1) def test_some_overflow(self): + if not get_accelerator().is_fp16_supported(): + pytest.skip("fp16 is not supported") config_dict = { "train_batch_size": 1, "steps_per_print": 1, @@ -143,10 +153,14 @@ def test_some_overflow(self): assert optim.cur_iter == expected_iteration +@pytest.mark.skipif(not deepspeed.ops.__compatible_ops__[FusedLambBuilder.NAME], + reason="FusedLambBuilder has not been implemented on this system.") class TestUnfused(DistributedTest): world_size = 1 def test_no_overflow(self): + if not get_accelerator().is_fp16_supported(): + pytest.skip("fp16 is not supported") config_dict = { "train_batch_size": 1, "steps_per_print": 1, @@ -181,6 +195,8 @@ def test_no_overflow(self): expected_loss_scale *= 2 def test_all_overflow(self): + if not get_accelerator().is_fp16_supported(): + pytest.skip("fp16 is not supported") config_dict = { "train_batch_size": 1, "steps_per_print": 1, @@ -217,6 +233,8 @@ def test_all_overflow(self): assert optim.cur_iter == (i + 1) def test_some_overflow(self): + if not get_accelerator().is_fp16_supported(): + pytest.skip("fp16 is not supported") config_dict = { "train_batch_size": 1, "steps_per_print": 1, diff --git a/tests/unit/runtime/half_precision/test_fp16.py b/tests/unit/runtime/half_precision/test_fp16.py index 3d5e18b46502..dba15a969459 100644 --- a/tests/unit/runtime/half_precision/test_fp16.py +++ b/tests/unit/runtime/half_precision/test_fp16.py @@ -10,9 +10,10 @@ from deepspeed.ops.adam import FusedAdam from unit.common import DistributedTest from unit.simple_model import SimpleModel, SimpleOptimizer, random_dataloader, SimpleMoEModel, sequence_dataloader -from deepspeed.runtime.utils import required_torch_version +from deepspeed.utils.torch import required_torch_version from deepspeed.accelerator import get_accelerator -from deepspeed.ops.op_builder import CPUAdamBuilder +from deepspeed.ops.op_builder import CPUAdamBuilder, FusedLambBuilder +from deepspeed.moe.utils import split_params_into_different_moe_groups_for_optimizer try: from apex import amp # noqa: F401 # type: ignore @@ -21,11 +22,18 @@ _amp_available = False amp_available = pytest.mark.skipif(not _amp_available, reason="apex/amp is not installed") +if torch.half not in get_accelerator().supported_dtypes(): + pytest.skip(f"fp16 not supported, valid dtype: {get_accelerator().supported_dtypes()}", allow_module_level=True) + class TestLambFP32GradClip(DistributedTest): world_size = 2 + @pytest.mark.skipif(not deepspeed.ops.__compatible_ops__[FusedLambBuilder.NAME], + reason="FusedLambBuilder has not been implemented on this system.") def test(self): + if not get_accelerator().is_fp16_supported(): + pytest.skip("fp16 is not supported") config_dict = { "train_batch_size": 2, "steps_per_print": 1, @@ -55,7 +63,11 @@ def test(self): class TestLambFP16(DistributedTest): world_size = 2 + @pytest.mark.skipif(not deepspeed.ops.__compatible_ops__[FusedLambBuilder.NAME], + reason="FusedLambBuilder has not been implemented on this system.") def test__basic(self): + if not get_accelerator().is_fp16_supported(): + pytest.skip("fp16 is not supported") config_dict = { "train_batch_size": 2, "steps_per_print": 1, @@ -80,7 +92,11 @@ def test__basic(self): model.backward(loss) model.step() + @pytest.mark.skipif(not deepspeed.ops.__compatible_ops__[FusedLambBuilder.NAME], + reason="FusedLambBuilder has not been implemented on this system.") def test_empty_grad(self): + if not get_accelerator().is_fp16_supported(): + pytest.skip("fp16 is not supported") config_dict = { "train_batch_size": 2, "steps_per_print": 1, @@ -143,6 +159,8 @@ class TestAdamwFP16Basic(DistributedTest): world_size = 1 def test(self): + if not get_accelerator().is_fp16_supported(): + pytest.skip("fp16 is not supported") config_dict = {"train_batch_size": 1, "steps_per_print": 1, "fp16": {"enabled": True}} hidden_dim = 10 @@ -160,6 +178,8 @@ class TestFP16OptimizerForMoE(DistributedTest): world_size = 2 def test_unfused_gradnorm(self, monkeypatch): + if not get_accelerator().is_fp16_supported(): + pytest.skip("fp16 is not supported") if not required_torch_version(min_version=1.8): pytest.skip("DeepSpeed MoE tests need torch 1.8 or higher to run correctly") @@ -188,6 +208,8 @@ def mock_unscale_and_clip_grads(total_norm, apply_scale=True): engine.step() def test_fused_gradnorm(self, monkeypatch): + if not get_accelerator().is_fp16_supported(): + pytest.skip("fp16 is not supported") if not required_torch_version(min_version=1.8): pytest.skip("DeepSpeed MoE tests need torch 1.8 or higher to run correctly") @@ -203,8 +225,10 @@ def mock_unscale_and_clip_grads(grads_groups_flat, total_norm, apply_scale=True) # initialize MoE model = SimpleMoEModel(hidden_dim, ep_size=2) + param_group = {'params': [p for p in model.parameters()], 'name': 'random-unique-name'} + params = split_params_into_different_moe_groups_for_optimizer(param_group) # optimizer = torch.optim.AdamW(params=model.parameters()) - optimizer = FusedAdam(params=model.parameters()) + optimizer = FusedAdam(params=params) engine, optimizer, _, _ = deepspeed.initialize(config=config_dict, model=model, optimizer=optimizer, @@ -217,7 +241,11 @@ def mock_unscale_and_clip_grads(grads_groups_flat, total_norm, apply_scale=True) engine.step() @pytest.mark.parametrize("fused_lamb_legacy", [(False), (True)]) + @pytest.mark.skipif(not deepspeed.ops.__compatible_ops__[FusedLambBuilder.NAME], + reason="FusedLambBuilder has not been implemented on this system.") def test_lamb_gradnorm(self, monkeypatch, fused_lamb_legacy: bool): + if not get_accelerator().is_fp16_supported(): + pytest.skip("fp16 is not supported") if not required_torch_version(min_version=1.8): pytest.skip("DeepSpeed MoE tests need torch 1.8 or higher to run correctly") @@ -262,6 +290,8 @@ class TestAdamwFP16EmptyGrad(DistributedTest): world_size = 1 def test(self): + if not get_accelerator().is_fp16_supported(): + pytest.skip("fp16 is not supported") config_dict = {"train_batch_size": 1, "steps_per_print": 1, "fp16": {"enabled": True}} hidden_dim = 10 @@ -281,6 +311,8 @@ class TestAdamFP16ZeroOneCycleCompatibility(DistributedTest): world_size = 1 def test(self, zero_stage, use_cpu_offload): + if not get_accelerator().is_fp16_supported(): + pytest.skip("fp16 is not supported") if use_cpu_offload and not deepspeed.ops.__compatible_ops__[CPUAdamBuilder.NAME]: pytest.skip("cpu-adam is not compatible") @@ -332,6 +364,8 @@ class TestZeroStaticScale(DistributedTest): world_size = 1 def test(self, zero_stage, use_cpu_offload, hidden_dim=4): + if not get_accelerator().is_fp16_supported(): + pytest.skip("fp16 is not supported") if use_cpu_offload and not deepspeed.ops.__compatible_ops__[CPUAdamBuilder.NAME]: pytest.skip("cpu-adam is not compatible") @@ -375,6 +409,8 @@ class TestZeroAllowUntestedOptimizer(DistributedTest): world_size = 1 def test(self, zero_stage, use_cpu_offload): + if not get_accelerator().is_fp16_supported(): + pytest.skip("fp16 is not supported") if use_cpu_offload and not deepspeed.ops.__compatible_ops__[CPUAdamBuilder.NAME]: pytest.skip("cpu-adam is not compatible") @@ -408,6 +444,8 @@ class TestZeroEmptyPartition(DistributedTest): world_size = 3 def test(self, zero_stage, use_cpu_offload): + if not get_accelerator().is_fp16_supported(): + pytest.skip("fp16 is not supported") if use_cpu_offload and not deepspeed.ops.__compatible_ops__[CPUAdamBuilder.NAME]: pytest.skip("cpu-adam is not compatible") @@ -454,6 +492,8 @@ class TestAmp(DistributedTest): world_size = 2 def test_adam_basic(self): + if not get_accelerator().is_fp16_supported(): + pytest.skip("fp16 is not supported") config_dict = {"train_batch_size": 2, "steps_per_print": 1, "amp": {"enabled": True}} hidden_dim = 10 @@ -466,7 +506,11 @@ def test_adam_basic(self): model.backward(loss) model.step() + @pytest.mark.skipif(not deepspeed.ops.__compatible_ops__[FusedLambBuilder.NAME], + reason="FusedLambBuilder has not been implemented on this system") def test_lamb_basic(self): + if not get_accelerator().is_fp16_supported(): + pytest.skip("fp16 is not supported") config_dict = { "train_batch_size": 2, "steps_per_print": 1, @@ -492,6 +536,8 @@ def test_lamb_basic(self): model.step() def test_adam_O2(self): + if not get_accelerator().is_fp16_supported(): + pytest.skip("fp16 is not supported") config_dict = { "train_batch_size": 2, "steps_per_print": 1, @@ -518,6 +564,8 @@ def test_adam_O2(self): model.step() def test_adam_O2_empty_grad(self): + if not get_accelerator().is_fp16_supported(): + pytest.skip("fp16 is not supported") config_dict = { "train_batch_size": 2, "steps_per_print": 1, @@ -550,6 +598,8 @@ class TestZeroSupportedClientOptimizer(DistributedTest): world_size = 1 def test(self, zero_stage, optimizer_constructor): + if not get_accelerator().is_fp16_supported(): + pytest.skip("fp16 is not supported") config_dict = { "train_batch_size": 2, "steps_per_print": 1, @@ -571,6 +621,8 @@ class TestZero2ReduceScatterOff(DistributedTest): world_size = 2 def test(self): + if not get_accelerator().is_fp16_supported(): + pytest.skip("fp16 is not supported") config_dict = { "train_batch_size": 2, "steps_per_print": 1, @@ -610,6 +662,8 @@ class TestFP16AdamTypes(DistributedTest): world_size = 1 def test(self, adam_type, torch_impl): + if not get_accelerator().is_fp16_supported(): + pytest.skip("fp16 is not supported") config_dict = { "train_batch_size": 1, "steps_per_print": 1, @@ -642,6 +696,8 @@ class TestZero3LazyScatter(DistributedTest): world_size = 1 def test(self): + if not get_accelerator().is_fp16_supported(): + pytest.skip("fp16 is not supported") config_dict = { "train_batch_size": 1, "steps_per_print": 1, @@ -677,6 +733,8 @@ class TestZeroEmptyGrad(DistributedTest): world_size = 1 def test(self, stage): + if not get_accelerator().is_fp16_supported(): + pytest.skip("fp16 is not supported") config_dict = { "train_batch_size": 1, "steps_per_print": 1, diff --git a/tests/unit/runtime/pipe/test_pipe.py b/tests/unit/runtime/pipe/test_pipe.py index 88e26290b650..f198762c5fcc 100644 --- a/tests/unit/runtime/pipe/test_pipe.py +++ b/tests/unit/runtime/pipe/test_pipe.py @@ -7,12 +7,15 @@ import torch.nn as nn import pytest +import torch + +import deepspeed import deepspeed.comm as dist from deepspeed.runtime.pipe.topology import PipeDataParallelTopology from deepspeed.runtime.pipe.module import PipelineModule from unit.alexnet_model import AlexNetPipe, train_cifar from unit.common import DistributedTest -from unit.util import skip_on_arch +from unit.util import skip_on_arch, no_child_process_in_deepspeed_io PipeTopo = PipeDataParallelTopology @@ -155,3 +158,95 @@ def test_pipe_use_reentrant(self, topo_config): # the following check could passed on higher version docker: nvcr.io/nvidia/pytorch:23.07-py3(torch2.1.0 cuda12.1) # Check if models have same weights after training # self._check_model_params_equal(base_model, test_model) + + +class DynamicShapeTestLayer(nn.Module): + + def __init__(self, hidden_size): + super().__init__() + self.fc = nn.Linear(hidden_size, hidden_size) + self.shapes = set() + + def forward(self, x): + self.shapes.add(x.shape) + y = self.fc(x) + return y + + +class DynamicShapeTestModel(nn.Module): + + def __init__(self, n_layers, hidden_size): + super().__init__() + self.layers = nn.ModuleList([DynamicShapeTestLayer(hidden_size) for _ in range(n_layers)]) + + +@pytest.mark.parametrize('topo_config', [ + { + "num_pp": 1, + "num_dp": 4 + }, + { + "num_pp": 2, + "num_dp": 2 + }, + { + "num_pp": 4, + "num_dp": 1 + }, +]) +class TestPipeDynamicShape(DistributedTest): + world_size = 4 + + def test_pipe_base(self, topo_config): + """This test checks if the pipeline engine can handle dynamic shapes correctly. + We pass inputs of different shapes to the pipeline engine. + """ + + n_iter = 10 + n_layers = 4 + n_samples = 1024 + batch_size = 4 + channel_dims = [8, 16, 32, 64] + hidden_size = 16 + + topo = PipeTopo(**topo_config) + + model = DynamicShapeTestModel(n_layers, hidden_size) + model = PipelineModule(layers=model.layers, topology=topo, loss_fn=nn.MSELoss(), dynamic_shape=True) + + # Each batch has different channel dim but we use the same channel dim in the same batch + xs = [ + torch.randn(channel_dims[(i // batch_size) % len(channel_dims)], hidden_size, dtype=torch.float32) + for i in range(n_samples) + ] + ys = [torch.randn_like(x) for x in xs] + + class CustomDataset(torch.utils.data.Dataset): + + def __init__(self, xs, ys): + self.xs = xs + self.ys = ys + + def __len__(self): + return len(self.xs) + + def __getitem__(self, idx): + return self.xs[idx], self.ys[idx] + + dataset = CustomDataset(xs, ys) + + config_dict["train_batch_size"] = batch_size + + with no_child_process_in_deepspeed_io(): + engine, _, _, _ = deepspeed.initialize(config=config_dict, + model=model, + model_parameters=[p for p in model.parameters()], + training_data=dataset) + + for _ in range(n_iter): + _ = engine.train_batch() + + # Check if all layers have seen different shapes + for layer in model.modules(): + if isinstance(layer, DynamicShapeTestLayer): + assert len(layer.shapes) > 1 diff --git a/tests/unit/runtime/sparse_tensor/test_averaging_sparse_gradients.py b/tests/unit/runtime/sparse_tensor/test_averaging_sparse_gradients.py index 92da2257bdb0..badd0bcee549 100644 --- a/tests/unit/runtime/sparse_tensor/test_averaging_sparse_gradients.py +++ b/tests/unit/runtime/sparse_tensor/test_averaging_sparse_gradients.py @@ -4,9 +4,14 @@ # DeepSpeed Team import torch +import pytest import deepspeed from unit.common import DistributedTest from unit.util import skip_on_arch +from deepspeed.accelerator import get_accelerator + +if get_accelerator().device_name() == 'hpu': + pytest.skip("sparse_gradients not supported by HPU.", allow_module_level=True) class Model(torch.nn.Module): diff --git a/tests/unit/runtime/sparse_tensor/test_sparse_grads.py b/tests/unit/runtime/sparse_tensor/test_sparse_grads.py index 0689adc08670..6338a16b8dbb 100644 --- a/tests/unit/runtime/sparse_tensor/test_sparse_grads.py +++ b/tests/unit/runtime/sparse_tensor/test_sparse_grads.py @@ -4,11 +4,15 @@ # DeepSpeed Team import torch +import pytest import deepspeed from unit.common import DistributedTest - +from deepspeed.accelerator import get_accelerator import deepspeed.utils.groups as groups +if get_accelerator().device_name() == 'hpu': + pytest.skip("sparse_gradients not supported by HPU.", allow_module_level=True) + class Model(torch.nn.Module): diff --git a/tests/unit/runtime/test_data_efficiency.py b/tests/unit/runtime/test_data_efficiency.py index b9bd9c3aa56e..87fb49aad830 100644 --- a/tests/unit/runtime/test_data_efficiency.py +++ b/tests/unit/runtime/test_data_efficiency.py @@ -7,6 +7,7 @@ import os import deepspeed from deepspeed.accelerator import get_accelerator +import pytest from unit.common import DistributedTest from unit.simple_model import Curriculum_SimpleModel, SimpleModel, random_dataloader, random_dataset @@ -53,6 +54,8 @@ class TestDataEfficiency(DistributedTest): world_size = 2 def test_curriculum_learning(self): + if get_accelerator().device_name() == "cpu": + pytest.skip("CPU accelerator does not support this test yet") config_dict = { "train_batch_size": 2, "steps_per_print": 1, @@ -64,11 +67,6 @@ def test_curriculum_learning(self): } }, "gradient_clipping": 1.0, - "fp16": { - "enabled": True, - "loss_scale": 0, - "initial_scale_power": 16 - }, "data_efficiency": { "enabled": True, "seed": 1234, @@ -98,6 +96,10 @@ def test_curriculum_learning(self): } } } + if get_accelerator().is_fp16_supported(): + config_dict["fp16"] = {"enabled": True, "loss_scale": 0, "initial_scale_power": 16} + elif get_accelerator().is_bf16_supported(): + config_dict["bf16"] = {"enabled": True} def data_post_process(data, data_sampler_state_dict): assert 'dummy_metric' in data_sampler_state_dict['current_difficulties'] @@ -105,7 +107,7 @@ def data_post_process(data, data_sampler_state_dict): hidden_dim = 10 model = SimpleModel(hidden_dim) - dataset = random_dataset(20, hidden_dim, torch.device('cpu'), dtype=torch.half) + dataset = random_dataset(20, hidden_dim, torch.device('cpu')) model, _, data_loader, _ = deepspeed.initialize(config=config_dict, model=model, training_data=dataset, @@ -128,6 +130,8 @@ class TestLegacyCurriculumScheduler(DistributedTest): world_size = 2 def test_fixed_discrete(self): + if get_accelerator().device_name() == "cpu": + pytest.skip("CPU accelerator does not support this test yet") config_dict = { "train_batch_size": 2, "steps_per_print": 1, @@ -139,11 +143,6 @@ def test_fixed_discrete(self): } }, "gradient_clipping": 1.0, - "fp16": { - "enabled": True, - "loss_scale": 0, - "initial_scale_power": 16 - }, "curriculum_learning": { "enabled": True, "curriculum_type": "seqlen", @@ -156,6 +155,10 @@ def test_fixed_discrete(self): } } } + if get_accelerator().is_fp16_supported(): + config_dict["fp16"] = {"enabled": True, "loss_scale": 0, "initial_scale_power": 16} + elif get_accelerator().is_bf16_supported(): + config_dict["bf16"] = {"enabled": True} hidden_dim = 10 ground_truths = {1: 1, 2: 1, 3: 2, 4: 2, 5: 3, 6: 3, 7: 4, 8: 4} @@ -172,6 +175,8 @@ def test_fixed_discrete(self): assert seqlen == true_seqlen, f"Incorrect curriculum schedule" def test_fixed_linear(self): + if get_accelerator().device_name() == "cpu": + pytest.skip("CPU accelerator does not support this test yet") config_dict = { "train_batch_size": 2, "steps_per_print": 1, @@ -183,11 +188,6 @@ def test_fixed_linear(self): } }, "gradient_clipping": 1.0, - "fp16": { - "enabled": True, - "loss_scale": 0, - "initial_scale_power": 16 - }, "curriculum_learning": { "enabled": True, "curriculum_type": "seqlen", @@ -200,6 +200,10 @@ def test_fixed_linear(self): } } } + if get_accelerator().is_fp16_supported(): + config_dict["fp16"] = {"enabled": True, "loss_scale": 0, "initial_scale_power": 16} + elif get_accelerator().is_bf16_supported(): + config_dict["bf16"] = {"enabled": True} hidden_dim = 10 ground_truths = {1: 2, 2: 4, 3: 4, 4: 6, 5: 6, 6: 8, 7: 8, 8: 10, 9: 10, 10: 10} diff --git a/tests/unit/runtime/test_ds_config_dict.py b/tests/unit/runtime/test_ds_config_dict.py index 6cd01644fad5..d06b35e208fe 100644 --- a/tests/unit/runtime/test_ds_config_dict.py +++ b/tests/unit/runtime/test_ds_config_dict.py @@ -47,9 +47,6 @@ def base_config(): "lr": 0.00015 } }, - "fp16": { - "enabled": True - } } return config_dict @@ -70,13 +67,11 @@ def _batch_assert(status, ds_config, batch, micro_batch, gas, success): if not success: assert not status - print("Failed but All is well") return assert ds_config.train_batch_size == batch assert ds_config.train_micro_batch_size_per_gpu == micro_batch assert ds_config.gradient_accumulation_steps == gas - print("All is well") #Tests different batch config provided in deepspeed json file @@ -90,7 +85,7 @@ class TestBatchConfig(DistributedTest): def test(self, num_ranks, batch, micro_batch, gas, success): assert dist.get_world_size() == num_ranks, \ - 'The test assumes a world size of f{num_ranks}' + f'The test assumes a world size of {num_ranks}' ds_batch_config = get_test_path('ds_batch_config.json') ds_config = DeepSpeedConfig(ds_batch_config) @@ -163,11 +158,19 @@ class TestConfigLoad(DistributedTest): world_size = 1 def test_dict(self, base_config): + if get_accelerator().is_fp16_supported(): + base_config["fp16"] = {"enabled": True} + elif get_accelerator().is_bf16_supported(): + base_config["bf16"] = {"enabled": True} hidden_dim = 10 model = SimpleModel(hidden_dim) model, _, _, _ = deepspeed.initialize(config=base_config, model=model, model_parameters=model.parameters()) def test_json(self, base_config, tmpdir): + if get_accelerator().is_fp16_supported(): + base_config["fp16"] = {"enabled": True} + elif get_accelerator().is_bf16_supported(): + base_config["bf16"] = {"enabled": True} config_path = os.path.join(tmpdir, "config.json") with open(config_path, 'w') as fp: json.dump(base_config, fp) @@ -176,6 +179,10 @@ def test_json(self, base_config, tmpdir): model, _, _, _ = deepspeed.initialize(config=config_path, model=model, model_parameters=model.parameters()) def test_hjson(self, base_config, tmpdir): + if get_accelerator().is_fp16_supported(): + base_config["fp16"] = {"enabled": True} + elif get_accelerator().is_bf16_supported(): + base_config["bf16"] = {"enabled": True} config_path = os.path.join(tmpdir, "config.json") with open(config_path, 'w') as fp: hjson.dump(base_config, fp) @@ -188,6 +195,10 @@ class TestDeprecatedDeepScaleConfig(DistributedTest): world_size = 1 def test(self, base_config, tmpdir): + if get_accelerator().is_fp16_supported(): + base_config["fp16"] = {"enabled": True} + elif get_accelerator().is_bf16_supported(): + base_config["bf16"] = {"enabled": True} config_path = create_config_from_dict(tmpdir, base_config) parser = argparse.ArgumentParser() args = parser.parse_args(args='') @@ -209,6 +220,10 @@ class TestDistInit(DistributedTest): world_size = 1 def test(self, base_config): + if get_accelerator().is_fp16_supported(): + base_config["fp16"] = {"enabled": True} + elif get_accelerator().is_bf16_supported(): + base_config["bf16"] = {"enabled": True} hidden_dim = 10 model = SimpleModel(hidden_dim) @@ -227,6 +242,12 @@ class TestInitNoOptimizer(DistributedTest): world_size = 1 def test(self, base_config): + if get_accelerator().is_fp16_supported(): + base_config["fp16"] = {"enabled": True} + elif get_accelerator().is_bf16_supported(): + base_config["bf16"] = {"enabled": True} + if get_accelerator().device_name() == "cpu": + pytest.skip("This test timeout with CPU accelerator") del base_config["optimizer"] hidden_dim = 10 @@ -246,6 +267,10 @@ class TestArgs(DistributedTest): world_size = 1 def test_none_args(self, base_config): + if get_accelerator().is_fp16_supported(): + base_config["fp16"] = {"enabled": True} + elif get_accelerator().is_bf16_supported(): + base_config["bf16"] = {"enabled": True} model = SimpleModel(hidden_dim=10) model, _, _, _ = deepspeed.initialize(args=None, model=model, config=base_config) data_loader = random_dataloader(model=model, total_samples=5, hidden_dim=10, device=model.device) @@ -253,6 +278,10 @@ def test_none_args(self, base_config): loss = model(batch[0], batch[1]) def test_no_args(self, base_config): + if get_accelerator().is_fp16_supported(): + base_config["fp16"] = {"enabled": True} + elif get_accelerator().is_bf16_supported(): + base_config["bf16"] = {"enabled": True} model = SimpleModel(hidden_dim=10) model, _, _, _ = deepspeed.initialize(model=model, config=base_config) data_loader = random_dataloader(model=model, total_samples=5, hidden_dim=10, device=model.device) @@ -264,6 +293,10 @@ class TestNoModel(DistributedTest): world_size = 1 def test(self, base_config): + if get_accelerator().is_fp16_supported(): + base_config["fp16"] = {"enabled": True} + elif get_accelerator().is_bf16_supported(): + base_config["bf16"] = {"enabled": True} model = SimpleModel(hidden_dim=10) with pytest.raises(AssertionError): model, _, _, _ = deepspeed.initialize(model=None, config=base_config) diff --git a/tests/unit/runtime/test_ds_config_model.py b/tests/unit/runtime/test_ds_config_model.py index 87ea747cf423..4d184b2858a8 100644 --- a/tests/unit/runtime/test_ds_config_model.py +++ b/tests/unit/runtime/test_ds_config_model.py @@ -4,18 +4,25 @@ # DeepSpeed Team import pytest -import os import json -from typing import List -from deepspeed.pydantic_v1 import Field, ValidationError +import os +from typing import List, Optional + +from pydantic import Field, ValidationError + from deepspeed.runtime import config as ds_config from deepspeed.runtime.config_utils import DeepSpeedConfigModel class SimpleConf(DeepSpeedConfigModel): param_1: int = 0 - param_2_old: str = Field(None, deprecated=True, new_param="param_2", new_param_fn=(lambda x: [x])) - param_2: List[str] = None + param_2_old: Optional[str] = Field(None, + json_schema_extra={ + "deprecated": True, + "new_param": "param_2", + "new_param_fn": (lambda x: [x]) + }) + param_2: Optional[List[str]] = None param_3: int = Field(0, alias="param_3_alias") diff --git a/tests/unit/runtime/test_ds_initialize.py b/tests/unit/runtime/test_ds_initialize.py index 8ec9f05a0a17..a30f81cedde9 100644 --- a/tests/unit/runtime/test_ds_initialize.py +++ b/tests/unit/runtime/test_ds_initialize.py @@ -17,7 +17,10 @@ from deepspeed.ops.adam import FusedAdam from deepspeed.runtime.lr_schedules import WARMUP_LR, WarmupLR from deepspeed.runtime.config import ADAM_OPTIMIZER -from deepspeed.runtime.utils import see_memory_usage, required_torch_version +from deepspeed.runtime.utils import see_memory_usage +from deepspeed.utils.torch import required_torch_version +from deepspeed.accelerator import get_accelerator +from deepspeed.ops.op_builder import FusedAdamBuilder @pytest.mark.parametrize('zero_stage', [0, 3]) @@ -30,9 +33,6 @@ def test(self, zero_stage): ds_config = { 'train_batch_size': self.world_size, - 'fp16': { - 'enabled': True - }, 'zero_optimization': { "stage": zero_stage, "offload_param": { @@ -40,6 +40,10 @@ def test(self, zero_stage): } } } + if get_accelerator().is_fp16_supported(): + ds_config["fp16"] = {"enabled": True} + elif get_accelerator().is_bf16_supported(): + ds_config["bf16"] = {"enabled": True} # 20B test #hidden_dim = 16 * 1024 hidden_dim = 4 @@ -49,11 +53,7 @@ def test(self, zero_stage): see_memory_usage('pre-init', force=True) model, _, _, _ = deepspeed.initialize(model=model, config=ds_config) see_memory_usage('post-init', force=True) - data_loader = random_dataloader(model=model, - total_samples=50, - hidden_dim=hidden_dim, - device=model.device, - dtype=torch.half) + data_loader = random_dataloader(model=model, total_samples=50, hidden_dim=hidden_dim, device=model.device) for batch in data_loader: model(batch[0], batch[1]) see_memory_usage('post-fwds', force=True) @@ -68,6 +68,9 @@ def test(self, optimizer_type): def _optimizer_callable(params) -> Optimizer: return AdamW(params=params) + if (optimizer_type is None) and (not deepspeed.ops.__compatible_ops__[FusedAdamBuilder.NAME]): + pytest.skip("FusedAdam is not compatible") + hidden_dim = 10 model = SimpleModel(hidden_dim) @@ -96,6 +99,8 @@ def _optimizer_callable(params) -> Optimizer: class TestConfigOptimizer(DistributedTest): world_size = 1 + @pytest.mark.skipif(not deepspeed.ops.__compatible_ops__[FusedAdamBuilder.NAME], + reason="FusedAdam is not compatible") def test(self, client_parameters): ds_config = {"train_batch_size": 1, "optimizer": {"type": "Adam", "params": {"lr": 0.001}}} @@ -120,6 +125,9 @@ class TestOptimizerImplementation(DistributedTest): reuse_dist_env = True def test(self, optimizer_extension, model_dtype, grad_accum_dtype): + if not get_accelerator().is_fp16_supported(): + if model_dtype == 'fp16' or grad_accum_dtype == 'fp16': + pytest.skip("fp16 is not supported") if optimizer_extension == 'zero1': zero_stage = 1 elif optimizer_extension == 'zero2': @@ -297,3 +305,132 @@ def _lr_scheduler_callable(optimizer) -> _LRScheduler: assert ds_lr_scheduler == client_scheduler else: assert isinstance(ds_lr_scheduler, LambdaLR) + + +@pytest.mark.parametrize("scheduler_type", [None, _LRScheduler, Callable]) +class TestClientLrSchedulerInit(DistributedTest): + world_size = 1 + + def test_same_lrscheler_and_callable(self, scheduler_type): + """ + Expect behavior + + if lr scheduler is defined in code and passed into initialize as arg, + it will be used even this is a lr scheduler has been defined in config. + + Initialize lr scheduler from config when no lr scheduler is defined in code. + """ + + def _my_lambda(epoch): + return epoch // 10 + + def _lr_scheduler_callable(optimizer) -> _LRScheduler: + return LambdaLR(optimizer, _my_lambda) + + config_dict = {'train_batch_size': 1} + + hidden_dim = 10 + model = SimpleModel(hidden_dim) + + client_optimizer = torch.optim.Adam(model.parameters(), lr=0.01) + + if scheduler_type is None: + config_dict['scheduler'] = {'type': WARMUP_LR, 'params': {}} + client_scheduler = None + elif scheduler_type == _LRScheduler: + client_scheduler = LambdaLR(client_optimizer, _my_lambda) + else: + client_scheduler = _lr_scheduler_callable + + _, _, _, ds_lr_scheduler = deepspeed.initialize(config=config_dict, + model=model, + model_parameters=list(model.parameters()), + optimizer=client_optimizer, + lr_scheduler=client_scheduler) + if scheduler_type is None: + # in this case, we initialize from config + assert not isinstance(ds_lr_scheduler, LambdaLR) + assert isinstance(ds_lr_scheduler, WarmupLR) + else: + # in this case, we initialize from passed-in scheduler + assert isinstance(ds_lr_scheduler, LambdaLR) + assert not isinstance(ds_lr_scheduler, WarmupLR) + + def test_diff_lrscheler_and_callable(self, scheduler_type): + """ + In this test, + the LambdaLR will be used for lrscheduler type + and the StepLR will be used for callable type + """ + + from torch.optim.lr_scheduler import StepLR + + def _my_lambda(epoch): + return epoch // 10 + + def _lr_scheduler_callable(optimizer) -> _LRScheduler: + return StepLR(optimizer, step_size=30) + + config_dict = {'train_batch_size': 1} + + hidden_dim = 10 + model = SimpleModel(hidden_dim) + + client_optimizer = torch.optim.Adam(model.parameters(), lr=0.01) + + if scheduler_type is None: + config_dict['scheduler'] = {'type': WARMUP_LR, 'params': {}} + client_scheduler = None + elif scheduler_type == _LRScheduler: + client_scheduler = LambdaLR(client_optimizer, _my_lambda) + else: + client_scheduler = _lr_scheduler_callable + + _, _, _, ds_lr_scheduler = deepspeed.initialize(config=config_dict, + model=model, + model_parameters=list(model.parameters()), + optimizer=client_optimizer, + lr_scheduler=client_scheduler) + if scheduler_type is None: + assert isinstance(ds_lr_scheduler, WarmupLR) + elif scheduler_type == _LRScheduler: + assert isinstance(ds_lr_scheduler, LambdaLR) + else: + # callable + assert isinstance(ds_lr_scheduler, StepLR) + + def test_diff_lrscheler_and_callable_onecyclelr_steplr(self, scheduler_type): + + from deepspeed.runtime.lr_schedules import OneCycle, ONE_CYCLE, CYCLE_MIN_LR, CYCLE_MAX_LR + from torch.optim.lr_scheduler import OneCycleLR, StepLR + + def _lr_scheduler_callable(optimizer) -> _LRScheduler: + return OneCycleLR(optimizer, max_lr=0.01, total_steps=200) + + config_dict = {'train_batch_size': 1} + + hidden_dim = 10 + model = SimpleModel(hidden_dim) + + client_optimizer = torch.optim.Adam(model.parameters(), lr=0.01) + + if scheduler_type is None: + config_dict['scheduler'] = {'type': ONE_CYCLE, 'params': {CYCLE_MIN_LR: 0, CYCLE_MAX_LR: 0.1}} + client_scheduler = None + elif scheduler_type == _LRScheduler: + client_scheduler = StepLR(client_optimizer, step_size=30) + else: + client_scheduler = _lr_scheduler_callable + + _, _, _, ds_lr_scheduler = deepspeed.initialize(config=config_dict, + model=model, + model_parameters=list(model.parameters()), + optimizer=client_optimizer, + lr_scheduler=client_scheduler) + if scheduler_type is None: + assert isinstance(ds_lr_scheduler, OneCycle) + elif scheduler_type == _LRScheduler: + assert isinstance(ds_lr_scheduler, StepLR) + else: + # callable + assert isinstance(ds_lr_scheduler, OneCycleLR) diff --git a/tests/unit/runtime/test_lr_schedulers.py b/tests/unit/runtime/test_lr_schedulers.py index bcfc485f2b8f..47734c0cd864 100644 --- a/tests/unit/runtime/test_lr_schedulers.py +++ b/tests/unit/runtime/test_lr_schedulers.py @@ -37,6 +37,9 @@ def _verify_staircase_increase(values, step_size): (WARMUP_DECAY_LR, { WARMUP_NUM_STEPS: 10, TOTAL_NUM_STEPS: 20 + }), (WARMUP_COSINE_LR, { + WARMUP_NUM_STEPS: 10, + TOTAL_NUM_STEPS: 20 }), (ONE_CYCLE, { CYCLE_MIN_LR: 0, CYCLE_MAX_LR: 0.1 @@ -71,6 +74,11 @@ def test(self, scheduler_type, params): hidden_dim=hidden_dim, device=model.device, dtype=torch.float) + + true_lrs = lr_scheduler.get_lr() + for group, true_lr in zip(model.optimizer.param_groups, true_lrs): + assert group['lr'] == true_lr, f"True lr {true_lr}, optimizer lr {group['lr']}" + for n, batch in enumerate(data_loader): # get lr before training starts lr_scheduler.get_lr() diff --git a/tests/unit/runtime/test_multi_output_model.py b/tests/unit/runtime/test_multi_output_model.py index d9aba419b158..cda0d4f054d3 100644 --- a/tests/unit/runtime/test_multi_output_model.py +++ b/tests/unit/runtime/test_multi_output_model.py @@ -5,8 +5,9 @@ import torch import deepspeed +from deepspeed.accelerator import get_accelerator from pytest import approx -from unit.common import DistributedTest +from unit.common import DistributedTest, preferred_dtype from unit.multi_output_model import MultiOutputModel, multi_output_dataloader @@ -28,10 +29,11 @@ def test(self, tmpdir): "lr": 0.00015 } }, - "fp16": { - "enabled": True - } } + if get_accelerator().is_fp16_supported(): + config_dict["fp16"] = {"enabled": True} + elif get_accelerator().is_bf16_supported(): + config_dict["bf16"] = {"enabled": True} hidden_dim = 10 weight_value = 0.1 @@ -53,7 +55,7 @@ def test(self, tmpdir): inputs, targets = batch[:midpoint], batch[midpoint:] loss_tuple = model(inputs, targets) - expected_loss = torch.tensor(2.302734375, dtype=torch.half, device=model.device) + expected_loss = torch.tensor(2.302734375, dtype=preferred_dtype(), device=model.device) for loss in loss_tuple: assert loss.shape == torch.Size([]) assert loss.item() == approx(expected_loss.item()) @@ -84,10 +86,11 @@ def test(self, tmpdir): "lr": 0.00015 } }, - "fp16": { - "enabled": True - } } + if get_accelerator().is_fp16_supported(): + config_dict["fp16"] = {"enabled": True} + elif get_accelerator().is_bf16_supported(): + config_dict["bf16"] = {"enabled": True} hidden_dim = 10 weight_value = 0.1 @@ -111,7 +114,7 @@ def test(self, tmpdir): loss_tuple = model(inputs, targets) assert len(loss_tuple) == 3 - expected_loss = torch.tensor(2.302734375, dtype=torch.half, device=model.device) + expected_loss = torch.tensor(2.302734375, dtype=preferred_dtype(), device=model.device) for loss in loss_tuple: assert loss.shape == torch.Size([]) diff --git a/tests/unit/runtime/test_mup_optimizers.py b/tests/unit/runtime/test_mup_optimizers.py index ebecf73d416f..7666fa9d1c1f 100644 --- a/tests/unit/runtime/test_mup_optimizers.py +++ b/tests/unit/runtime/test_mup_optimizers.py @@ -10,6 +10,7 @@ from unit.common import DistributedTest from unit.simple_model import SimpleModel, random_dataloader from mup.shape import set_base_shapes +from deepspeed.accelerator import get_accelerator @pytest.mark.parametrize("optimizer, expected_opt_class", [("MuAdam", torch.optim.Adam), @@ -31,14 +32,15 @@ def test(self, optimizer, expected_opt_class, zero_offload): } }, "gradient_clipping": 1.0, - "fp16": { - "enabled": True - }, "zero_optimization": { "stage": 2, "cpu_offload": zero_offload } } + if get_accelerator().is_fp16_supported(): + config_dict["fp16"] = {"enabled": True} + elif get_accelerator().is_bf16_supported(): + config_dict["bf16"] = {"enabled": True} hidden_dim = 10 model = SimpleModel(hidden_dim) set_base_shapes(model, None) diff --git a/tests/unit/runtime/test_no_sync_ctxt.py b/tests/unit/runtime/test_no_sync_ctxt.py new file mode 100644 index 000000000000..8c6497013809 --- /dev/null +++ b/tests/unit/runtime/test_no_sync_ctxt.py @@ -0,0 +1,197 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import pytest + +from contextlib import nullcontext +import torch + +from unit.simple_model import SimpleModel, random_dataloader +from unit.common import DistributedTest + +import deepspeed +import deepspeed.comm as dist +from deepspeed.utils import safe_get_full_grad + + +class TestNoSyncCtxt(DistributedTest): + world_size = 2 + + @pytest.mark.parametrize("dtype", [torch.float16, torch.bfloat16, torch.float32]) + @pytest.mark.parametrize("zero_stage", [0, 1, 2, 3]) + def test_zero_stage(self, zero_stage, dtype): + config_dict = { + "train_micro_batch_size_per_gpu": 1, + "gradient_accumulation_steps": 1, + "steps_per_print": 1, + "optimizer": { + "type": "Adam", + "params": { + "lr": 1e-3 + } + }, + "zero_optimization": { + "stage": zero_stage, + }, + } + + invalid_cfg = zero_stage > 1 + if dtype == torch.bfloat16: + config_dict["bf16"] = {"enabled": True} + elif dtype == torch.float16: + config_dict["fp16"] = {"enabled": True, "initial_scale_power": 8} + + hidden_dim = 64 + total_samples = 32 + model = SimpleModel(hidden_dim) + model, _, _, _ = deepspeed.initialize(model=model, model_parameters=model.parameters(), config=config_dict) + data_loader = random_dataloader(model=model, + total_samples=total_samples, + hidden_dim=hidden_dim, + device=model.device, + dtype=dtype) + dist.barrier() + + with pytest.raises(AssertionError) if invalid_cfg else nullcontext() as assertinfo: + with model.no_sync(): + for _, batch in enumerate(data_loader): + loss = model(batch[0], batch[1]) + model.backward(loss) + if invalid_cfg: + assert ("no_sync context manager is incompatible" in str(assertinfo)) + + @pytest.mark.parametrize("dtype", [torch.float16, torch.bfloat16, torch.float32]) + @pytest.mark.parametrize("zero_stage", [0, 1]) + def test_engine_step(self, zero_stage, dtype): + config_dict = { + "train_micro_batch_size_per_gpu": 1, + "gradient_accumulation_steps": 1, + "steps_per_print": 1, + "optimizer": { + "type": "Adam", + "params": { + "lr": 1e-3 + } + }, + "zero_optimization": { + "stage": zero_stage, + }, + } + + if dtype == torch.bfloat16: + config_dict["bf16"] = {"enabled": True} + elif dtype == torch.float16: + config_dict["fp16"] = {"enabled": True, "initial_scale_power": 8} + + hidden_dim = 64 + total_samples = 32 + model = SimpleModel(hidden_dim) + model, _, _, _ = deepspeed.initialize(model=model, model_parameters=model.parameters(), config=config_dict) + data_loader = random_dataloader(model=model, + total_samples=total_samples, + hidden_dim=hidden_dim, + device=model.device, + dtype=dtype) + dist.barrier() + + with model.no_sync(): + for _, batch in enumerate(data_loader): + loss = model(batch[0], batch[1]) + model.backward(loss) + with pytest.raises(AssertionError) as assertinfo: + model.step() + assert ("It is illegal to call Engine.step() inside no_sync context manager" in str(assertinfo)) + + @pytest.mark.parametrize("dtype", [torch.float16, torch.bfloat16, torch.float32]) + @pytest.mark.parametrize("zero_stage", [0, 1]) + def test_multiple_ctxts(self, zero_stage, dtype): + config_dict = { + "train_micro_batch_size_per_gpu": 1, + "gradient_accumulation_steps": 1, + "steps_per_print": 1, + "optimizer": { + "type": "Adam", + "params": { + "lr": 1e-3 + } + }, + "zero_optimization": { + "stage": zero_stage, + }, + } + + if dtype == torch.bfloat16: + config_dict["bf16"] = {"enabled": True} + elif dtype == torch.float16: + config_dict["fp16"] = {"enabled": True, "initial_scale_power": 8} + + hidden_dim = 64 + total_samples = 32 + model = SimpleModel(hidden_dim) + model, _, _, _ = deepspeed.initialize(model=model, model_parameters=model.parameters(), config=config_dict) + data_loader = random_dataloader(model=model, + total_samples=total_samples, + hidden_dim=hidden_dim, + device=model.device, + dtype=dtype) + dist.barrier() + + param_list = list(model.parameters()) + first_losses = [] + first_grad_norms = [] + with model.no_sync(): + for _, batch in enumerate(data_loader): + loss = model(batch[0], batch[1]) + first_losses.append(loss.item()) + model.backward(loss) + grad_norm = sum([safe_get_full_grad(p).norm() for p in param_list]) + first_grad_norms.append(grad_norm.item()) + + second_losses = [] + second_grad_norms = [] + + model.zero_grad() + with model.no_sync(): + for _, batch in enumerate(data_loader): + loss = model(batch[0], batch[1]) + second_losses.append(loss.item()) + model.backward(loss) + grad_norm = sum([safe_get_full_grad(p).norm() for p in param_list]) + second_grad_norms.append(grad_norm.item()) + + assert len(first_losses) == len(second_losses) + for x, y in zip(first_losses, second_losses): + assert x == y + + assert len(first_grad_norms) == len(second_grad_norms) + for x, y in zip(first_grad_norms, second_grad_norms): + assert x == y + + def test_reentry(self): + config_dict = { + "train_micro_batch_size_per_gpu": 1, + "gradient_accumulation_steps": 1, + "steps_per_print": 1, + "optimizer": { + "type": "Adam", + "params": { + "lr": 1e-3 + } + }, + "zero_optimization": { + "stage": 1, + }, + } + + hidden_dim = 64 + model = SimpleModel(hidden_dim) + model, _, _, _ = deepspeed.initialize(model=model, model_parameters=model.parameters(), config=config_dict) + dist.barrier() + + with model.no_sync(): + with pytest.raises(AssertionError) as assertinfo: + with model.no_sync(): + pass + assert ("no_sync context manager reentry is unsupported" in str(assertinfo)) diff --git a/tests/unit/runtime/test_pld.py b/tests/unit/runtime/test_pld.py index 1f602db73b2f..f6da992d5e11 100644 --- a/tests/unit/runtime/test_pld.py +++ b/tests/unit/runtime/test_pld.py @@ -10,6 +10,7 @@ from unit.common import DistributedTest from unit.simple_model import SimpleModel, PLD_SimpleModel, random_dataloader +from deepspeed.accelerator import get_accelerator @pytest.mark.parametrize('theta', [0, 0.1, 0.9, 1.0]) @@ -39,15 +40,16 @@ def test_pld_model(self, theta): "lr": 0.0001 } }, - "fp16": { - "enabled": True - }, "progressive_layer_drop": { "enabled": True, "theta": theta, "gamma": gamma } } + if get_accelerator().is_fp16_supported(): + config_dict["fp16"] = {"enabled": True} + elif get_accelerator().is_bf16_supported(): + config_dict["bf16"] = {"enabled": True} hidden_dim = 10 model = PLD_SimpleModel(hidden_dim, empty_grad=False) @@ -80,15 +82,16 @@ def test_non_pld_model(self): "lr": 0.0001 } }, - "fp16": { - "enabled": True - }, "progressive_layer_drop": { "enabled": True, "theta": theta, "gamma": gamma } } + if get_accelerator().is_fp16_supported(): + config_dict["fp16"] = {"enabled": True} + elif get_accelerator().is_bf16_supported(): + config_dict["bf16"] = {"enabled": True} hidden_dim = 10 model = SimpleModel(hidden_dim, empty_grad=False) diff --git a/tests/unit/runtime/test_runtime_utils.py b/tests/unit/runtime/test_runtime_utils.py index 5d8478b249be..6fdeb2074246 100644 --- a/tests/unit/runtime/test_runtime_utils.py +++ b/tests/unit/runtime/test_runtime_utils.py @@ -26,10 +26,10 @@ def test_call_to_str(): assert c2s('hello', 1138, val=3) == 'hello(1138, val=3)' -class TestClibGradNorm(DistributedTest): +class TestClipGradNorm(DistributedTest): world_size = 2 - def test(self): + def test_gather(self): param1 = torch.nn.Parameter(torch.Tensor([0])) param1.grad = torch.Tensor([1]) param2 = torch.nn.Parameter(torch.Tensor([0])) @@ -50,6 +50,27 @@ def test(self): assert gathered_norm[0] == gathered_norm[1], "norm at rank 0 does not match the norm at rank 1" + def test_clipped_val(self): + max_norm = 0.1 + + def test_params(): + param1 = torch.nn.Parameter(torch.Tensor([0])) + param1.grad = torch.Tensor([1]) + param2 = torch.nn.Parameter(torch.Tensor([0])) + param2.grad = torch.Tensor([1]) + return [param1, param2] + + # This assumes gradients are same on all the ranks and doesn't consider multiple ranks + params_expected = test_params() + torch.nn.utils.clip_grad_norm_(params_expected, max_norm) + + params_actual = test_params() + ds_utils.clip_grad_norm_(params_actual, max_norm=max_norm) + + # This can be allclose + assert torch.equal(params_expected[0].grad, params_actual[0].grad) + assert torch.equal(params_expected[1].grad, params_actual[1].grad) + @pytest.mark.parametrize("check_using_norm", [(False), (True)]) class TestCheckOverflow(DistributedTest): diff --git a/tests/unit/runtime/utils/test_partition.py b/tests/unit/runtime/utils/test_partition.py index e7085ee2c4bd..8f7768d0d730 100644 --- a/tests/unit/runtime/utils/test_partition.py +++ b/tests/unit/runtime/utils/test_partition.py @@ -22,7 +22,6 @@ class TestPartitionedTensor(DistributedTest): def test(self): world = dist.get_world_size() - rank = dist.get_rank() group = dist.new_group(ranks=list(range(world))) @@ -40,12 +39,32 @@ def test(self): assert torch.equal(full, reconstructed) +class TestPartitionedTensorUnEven(DistributedTest): + world_size = 4 + + def test(self): + world = dist.get_world_size() + + group = dist.new_group(ranks=list(range(world))) + + rows = world * 4 - 1 + cols = world + 1 + + full = torch.rand(rows, cols).to(get_accelerator().device_name()) + dist.broadcast(full, src=0, group=group) + part = PartitionedTensor(full, group=group) + + assert len(part.local_size()) == 1 + + reconstructed = part.full() + assert torch.equal(full, reconstructed) + + class TestPartitionedTensorMeta(DistributedTest): world_size = 4 def test(self): world = dist.get_world_size() - rank = dist.get_rank() group = dist.new_group(ranks=list(range(world))) diff --git a/tests/unit/runtime/zero/test_ignore_unused_parameters.py b/tests/unit/runtime/zero/test_ignore_unused_parameters.py index aade488fde42..b1d341486e55 100644 --- a/tests/unit/runtime/zero/test_ignore_unused_parameters.py +++ b/tests/unit/runtime/zero/test_ignore_unused_parameters.py @@ -9,6 +9,7 @@ from deepspeed.ops.op_builder import CPUAdamBuilder import deepspeed +from deepspeed.accelerator import get_accelerator @pytest.mark.parametrize('ignore_unused_parameters', [False, True]) @@ -36,11 +37,11 @@ def test(self, ignore_unused_parameters): "lr": 1e-3 } }, - "fp16": { - "enabled": True, - "initial_scale_power": 8 - } } + if get_accelerator().is_fp16_supported(): + config_dict["fp16"] = {"enabled": True, "initial_scale_power": 8} + else: + config_dict["bf16"] = {"enabled": True} hidden_dim = 4 model = UnusedParametersModel(hidden_dim=hidden_dim) diff --git a/tests/unit/runtime/zero/test_nvme_checkpointing.py b/tests/unit/runtime/zero/test_nvme_checkpointing.py new file mode 100644 index 000000000000..01a75aa64b4e --- /dev/null +++ b/tests/unit/runtime/zero/test_nvme_checkpointing.py @@ -0,0 +1,146 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import os +import pytest +import deepspeed.comm as dist +import torch + +from unit.common import DistributedTest +from unit.simple_model import random_dataloader, SimpleModel + +import deepspeed +from deepspeed.runtime.zero.offload_config import OffloadDeviceEnum +from deepspeed.runtime.zero.partition_parameters import Init +from deepspeed.ops.aio import AsyncIOBuilder +from deepspeed.accelerator import get_accelerator + + +class TestNVMeCheckpointing(DistributedTest): + world_size = 1 + + @pytest.mark.parametrize('param_offload_device, optim_offload_device', + [(OffloadDeviceEnum.none, OffloadDeviceEnum.nvme), + (OffloadDeviceEnum.cpu, OffloadDeviceEnum.nvme), + (OffloadDeviceEnum.nvme, OffloadDeviceEnum.none), + (OffloadDeviceEnum.nvme, OffloadDeviceEnum.cpu), + (OffloadDeviceEnum.nvme, OffloadDeviceEnum.nvme)]) + def test_nvme_checkpointing(self, tmpdir, param_offload_device, optim_offload_device): + zero_dir, ckpt_dir = os.path.join(tmpdir, "zero"), os.path.join(tmpdir, "checkpoint") + + first_stage_steps, second_stage_steps = 2, 2 + + if not get_accelerator().is_fp16_supported(): + pytest.skip("fp16 is not supported") + + if not deepspeed.ops.__compatible_ops__[AsyncIOBuilder.NAME]: + pytest.skip('Skip tests since async-io is not compatible') + + torch.manual_seed(123) + + config_dict = { + "train_micro_batch_size_per_gpu": 1, + "steps_per_print": 1, + "optimizer": { + "type": "Adam", + "params": { + "lr": 0.00015, + } + }, + "fp16": { + "enabled": True, + "initial_scale_power": 8 + }, + "zero_optimization": { + "stage": 3, + "offload_param": { + "device": param_offload_device, + "nvme_path": str(zero_dir) + }, + "offload_optimizer": { + "device": optim_offload_device, + "nvme_path": str(zero_dir) + }, + "sub_group_size": 100, + "stage3_max_live_parameters": 100, + "stage3_param_persistence_threshold": 0, + }, + "aio": { + "block_size": 1048576 # Minimum AIO bytes, anything smaller than this will not be offloaded + } + } + + hidden_dim, nlayers = 2048, 2 + with deepspeed.zero.Init(config_dict_or_path=config_dict): + model = SimpleModel(hidden_dim, nlayers=nlayers, empty_grad=False) + + model, _, _, _ = deepspeed.initialize(model=model, model_parameters=model.parameters(), config=config_dict) + model.empty_partition_cache() + + assert first_stage_steps > 0 + + data_loader = random_dataloader(model=model, + total_samples=first_stage_steps, + hidden_dim=hidden_dim, + device=model.device, + dtype=torch.float16) + dist.barrier() + for n, batch in enumerate(data_loader): + loss = model(batch[0], batch[1]) + model.backward(loss) + model.step() + + dist.barrier() + model.save_checkpoint(ckpt_dir) + + if second_stage_steps > 0: + second_stage_batches = list( + random_dataloader(model=model, + total_samples=second_stage_steps, + hidden_dim=hidden_dim, + device=model.device, + dtype=torch.float16)) + dist.barrier() + for n, batch in enumerate(second_stage_batches): + loss = model(batch[0], batch[1]) + model.backward(loss) + model.step() + dist.barrier() + + final_batch = next( + iter( + random_dataloader(model=model, + total_samples=1, + hidden_dim=hidden_dim, + device=model.device, + dtype=torch.float16))) + dist.barrier() + loss_before = float(model(final_batch[0], final_batch[1])) + + # Needed in ZeRO 3. Not doing so can give memory leak + model.destroy() + + # TODO: This should be on the engine? There needs to be a better way. + Init.param_id = 0 + + with deepspeed.zero.Init(config_dict_or_path=config_dict): + model = SimpleModel(hidden_dim, nlayers=nlayers, empty_grad=False) + + model, _, _, _ = deepspeed.initialize(model=model, model_parameters=model.parameters(), config=config_dict) + + model.load_checkpoint(ckpt_dir) + + if second_stage_steps > 0: + dist.barrier() + for n, batch in enumerate(second_stage_batches): + loss = model(batch[0], batch[1]) + model.backward(loss) + model.step() + dist.barrier() + + dist.barrier() + loss_after = float(model(final_batch[0], final_batch[1])) + + assert loss_before == loss_after diff --git a/tests/unit/runtime/zero/test_offload_states.py b/tests/unit/runtime/zero/test_offload_states.py new file mode 100644 index 000000000000..44bff480e27b --- /dev/null +++ b/tests/unit/runtime/zero/test_offload_states.py @@ -0,0 +1,135 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import pytest + +import deepspeed.comm as dist +from deepspeed.accelerator import get_accelerator +import torch + +from unit.common import DistributedTest +from unit.simple_model import random_dataloader, SimpleModel + +import deepspeed +from deepspeed.runtime.zero.offload_config import OffloadDeviceEnum, OffloadStateTypeEnum +from deepspeed.utils import safe_get_local_fp32_param, safe_get_local_optimizer_state +from deepspeed.runtime.zero.offload_states import get_state_devices + + +def validate_device(model, device: torch.device, include) -> None: + + def compare_device(state) -> bool: + devices = get_state_devices(model, state) + return len(devices) == 1 and device in devices + + for state in OffloadStateTypeEnum: + if include is None or state in include: + if state == OffloadStateTypeEnum.contiguous_grad_buffer and device == torch.device("cpu"): + assert len(get_state_devices(model, + state)) == 0, f"State {state} must be removed after offload_states()" + else: + assert compare_device(state), f"State {state} is not on device {device}" + + +def run_model(model, param_groups, config_dict, hidden_dim, dtype, include, pin_memory, non_blocking): + # Currently we only support OffloadDeviceEnum.cpu + offload_device = OffloadDeviceEnum.cpu + + model, _, _, _ = deepspeed.initialize(model=model, model_parameters=param_groups, config=config_dict) + data_loader = random_dataloader(model=model, + total_samples=10, + hidden_dim=hidden_dim, + device=model.device, + dtype=dtype) + dist.barrier() + for batch in data_loader: + loss = model(batch[0], batch[1]) + model.backward(loss) + model.step() + + hp_params_expected = [safe_get_local_fp32_param(p).clone() for p in model.parameters()] + lp_params_expected = [p.ds_tensor.clone() for p in model.parameters()] + lp_grads_expected = model.optimizer.grad_partitions_flat_buffer.clone() + adam_exp_avg_expected = [safe_get_local_optimizer_state(p, "exp_avg").clone() for p in model.parameters()] + adam_exp_avg_sq = [safe_get_local_optimizer_state(p, "exp_avg_sq").clone() for p in model.parameters()] + + # Start offloading + alloc_before_offload = get_accelerator().memory_allocated() + model.offload_states(include=include, device=offload_device, pin_memory=pin_memory, non_blocking=non_blocking) + alloc_after_offload = get_accelerator().memory_allocated() + assert alloc_after_offload < alloc_before_offload, f"Allocated memory should decrease after offload" + + validate_device(model, torch.device(offload_device.value), include) + + # Reload states + model.reload_states() + assert alloc_after_offload < get_accelerator().memory_allocated( + ), f"Allocated memory should increase after offload back" + + # Verify restored states + hp_param_restored = [safe_get_local_fp32_param(p) for p in model.parameters()] + for hp_param_expected, hp_param_restored in zip(hp_params_expected, hp_param_restored): + assert torch.equal(hp_param_expected, hp_param_restored) + + lp_param_restored = [p.ds_tensor for p in model.parameters()] + + for lp_param_expected, lp_param_restored in zip(lp_params_expected, lp_param_restored): + assert torch.equal(lp_param_expected, lp_param_restored) + + assert torch.equal(lp_grads_expected, model.optimizer.grad_partitions_flat_buffer) + + adam_exp_avg_restored = [safe_get_local_optimizer_state(p, "exp_avg") for p in model.parameters()] + for adam_exp_avg_expected, adam_exp_avg_restored in zip(adam_exp_avg_expected, adam_exp_avg_restored): + assert torch.equal(adam_exp_avg_expected, adam_exp_avg_restored) + + adam_exp_avg_sq_restored = [safe_get_local_optimizer_state(p, "exp_avg_sq") for p in model.parameters()] + for adam_exp_avg_sq_expected, adam_exp_avg_sq_restored in zip(adam_exp_avg_sq, adam_exp_avg_sq_restored): + assert torch.equal(adam_exp_avg_sq_expected, adam_exp_avg_sq_restored) + + validate_device(model, torch.device(get_accelerator().current_device_name()), include) + + # Needed in ZeRO 3. Not doing so can give memory leak + model.destroy() + + +@pytest.mark.parametrize("included_state", [ + OffloadStateTypeEnum.hp_params, OffloadStateTypeEnum.lp_params, OffloadStateTypeEnum.optim_states, + OffloadStateTypeEnum.lp_grads, OffloadStateTypeEnum.contiguous_grad_buffer, None +]) +@pytest.mark.parametrize("pin_memory", [False, True]) +@pytest.mark.parametrize("non_blocking", [False, True]) +class TestOffloadStates(DistributedTest): + # Need multiple gpus to test possible hanging + world_size = 2 + + def test_offload_states(self, included_state, pin_memory, non_blocking): + hidden_dim = 1024 + + config_dict = { + "train_micro_batch_size_per_gpu": 1, + "optimizer": { + "type": "Adam", + "params": { + "lr": 1e-6 + } + }, + "zero_optimization": { + "stage": 3, + } + } + config_dict["bf16"] = {"enabled": True} + + with deepspeed.zero.Init(config_dict_or_path=config_dict): + model = SimpleModel(hidden_dim, nlayers=4) + + param_groups = [{ + "params": [p for n, p in model.named_parameters() if not 'bias' in n], + "weight_decay": 0.1 + }, { + "params": [p for n, p in model.named_parameters() if 'bias' in n], + "weight_decay": 0.0 + }] + include = None if included_state is None else [included_state] + run_model(model, param_groups, config_dict, hidden_dim, torch.bfloat16, include, pin_memory, non_blocking) diff --git a/tests/unit/runtime/zero/test_unwrap_model.py b/tests/unit/runtime/zero/test_unwrap_model.py new file mode 100644 index 000000000000..d75519b67f68 --- /dev/null +++ b/tests/unit/runtime/zero/test_unwrap_model.py @@ -0,0 +1,67 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import deepspeed +from deepspeed.runtime.zero import unwrap_model_for_generation +from deepspeed.accelerator import get_accelerator + +from unit.common import DistributedTest +from unit.simple_model import SimpleModel + +config = { + "train_batch_size": 2, + "steps_per_print": 1, + "optimizer": { + "type": "Adam", + "params": { + "lr": 0.00015 + } + }, + "zero_optimization": { + "stage": 3, + "stage3_param_persistence_threshold": 1, + "offload_param": { + "device": "cpu", + "pin_memory": True + } + } +} + +if get_accelerator().is_fp16_supported(): + config["fp16"] = {"enabled": True, "loss_scale": 138.} +elif get_accelerator().is_bf16_supported(): + config["bf16"] = {"enabled": True} + + +class TestUnwrapModel(DistributedTest): + # gather across more than 1 gpu + world_size = 2 + + def test(self): + + def hooks_exist(engine): + if engine.optimizer is not None and hasattr(engine.optimizer, "parameter_offload"): + optimizer_offload = engine.optimizer.parameter_offload + elif engine.optimizer is not None: + optimizer_offload = engine.optimizer + + hooks = 0 + for hook in optimizer_offload.forward_hooks: + hooks += 1 + if hooks > 0: + return True + return False + + model = SimpleModel(hidden_dim=100) + engine, _, _, _ = deepspeed.initialize(args=None, model=model, config=config) + + with unwrap_model_for_generation(engine): + # assert no hooks + assert not hooks_exist(engine) + # assert parameters gathered + assert model.linears[0].weight.numel() != 0, "GatheredParameters should give a non-0-sized tensor" + + # assert hooks + assert hooks_exist(engine) diff --git a/tests/unit/runtime/zero/test_zero.py b/tests/unit/runtime/zero/test_zero.py index db81a0578160..2ae2755086f8 100644 --- a/tests/unit/runtime/zero/test_zero.py +++ b/tests/unit/runtime/zero/test_zero.py @@ -14,8 +14,9 @@ from torch.nn.modules.container import ModuleList from torch.nn.modules.loss import L1Loss from torch.nn.parameter import Parameter +from torch.nn.utils import skip_init -from unit.common import DistributedTest +from unit.common import DistributedTest, preferred_dtype from unit.simple_model import SimpleModel, random_dataloader import deepspeed @@ -70,11 +71,11 @@ def test(self, zero_stage): "lr": 1e-3 } }, - "fp16": { - "enabled": True, - "initial_scale_power": 8 - }, } + if get_accelerator().is_fp16_supported(): + config_dict["fp16"] = {"enabled": True, "initial_scale_power": 8} + elif get_accelerator().is_bf16_supported(): + config_dict["bf16"] = {"enabled": True} hidden_dim = 4 model = SimpleModel(hidden_dim=hidden_dim) @@ -84,12 +85,19 @@ def test(self, zero_stage): run_unbalanced_gradients(model, data_loader) -# testing the fix https://github.com/microsoft/DeepSpeed/pull/1227 +# testing the fix https://github.com/deepspeedai/DeepSpeed/pull/1227 +@pytest.mark.parametrize("mics_enabled", [True, False]) class TestZero3RepeatForwardLoop(DistributedTest): world_size = 1 - def test(self, zero_stage=3): + def test(self, mics_enabled, zero_stage=3): + if mics_enabled and get_accelerator().device_name() == "cpu": + pytest.skip("CPU accelerator does not support this test yet") # force all params to be partitioned by forcing threshold=0 + mics_shard_size = -1 + if mics_enabled: + mics_shard_size = self.world_size + config_dict = { "train_micro_batch_size_per_gpu": 2, "gradient_accumulation_steps": 2, @@ -97,6 +105,7 @@ def test(self, zero_stage=3): "zero_optimization": { "stage": zero_stage, "stage3_param_persistence_threshold": 0, + "mics_shard_size": mics_shard_size, }, "optimizer": { "type": "Adam", @@ -104,11 +113,11 @@ def test(self, zero_stage=3): "lr": 1e-3 } }, - "fp16": { - "enabled": True, - "initial_scale_power": 8 - }, } + if get_accelerator().is_fp16_supported(): + config_dict["fp16"] = {"enabled": True, "initial_scale_power": 8} + elif get_accelerator().is_bf16_supported(): + config_dict["bf16"] = {"enabled": True} hidden_dim = 4 class AlbertLikeModel(torch.nn.Module): @@ -135,8 +144,8 @@ def forward(self, x, y): model.step() -# testing the fix https://github.com/microsoft/DeepSpeed/pull/1227 -# also reproduces the https://github.com/microsoft/DeepSpeed/pull/1372 +# testing the fix https://github.com/deepspeedai/DeepSpeed/pull/1227 +# also reproduces the https://github.com/deepspeedai/DeepSpeed/pull/1372 @pytest.mark.parametrize("zero_stage", [2, 3]) @pytest.mark.parametrize("freeze_params", [True, False]) class TestZeroToFP32(DistributedTest): @@ -159,17 +168,17 @@ def test_1_param_group(self, tmpdir, zero_stage, freeze_params): "lr": 1e-3 } }, - "fp16": { - "enabled": True, - "initial_scale_power": 8 - }, } + if get_accelerator().is_fp16_supported(): + config_dict["fp16"] = {"enabled": True, "initial_scale_power": 8} + elif get_accelerator().is_bf16_supported(): + config_dict["bf16"] = {"enabled": True} class MyModel(torch.nn.Module): def __init__(self, hidden_dim, n_layers, freeze_params): super().__init__() - # to reproduce https://github.com/microsoft/DeepSpeed/pull/1372 it is important that + # to reproduce https://github.com/deepspeedai/DeepSpeed/pull/1372 it is important that # the number of total elements is uneven: # (1) 4 layers of 3*(3+1)=12 elements each, 48 in total self.ll = torch.nn.ModuleList(torch.nn.Linear(hidden_dim, hidden_dim) for i in range(n_layers)) @@ -253,11 +262,11 @@ def test_2_param_groups(self, tmpdir, zero_stage, freeze_params): "lr": 1e-3 } }, - "fp16": { - "enabled": True, - "initial_scale_power": 8 - }, } + if get_accelerator().is_fp16_supported(): + config_dict["fp16"] = {"enabled": True, "initial_scale_power": 8} + elif get_accelerator().is_bf16_supported(): + config_dict["bf16"] = {"enabled": True} class MyModel(torch.nn.Module): @@ -359,11 +368,11 @@ def test(self, allgather_bucket_size, zero_stage=2): "lr": 1e-3 } }, - "fp16": { - "enabled": True, - "initial_scale_power": 8 - }, } + if get_accelerator().is_fp16_supported(): + config_dict["fp16"] = {"enabled": True, "initial_scale_power": 8} + elif get_accelerator().is_bf16_supported(): + config_dict["bf16"] = {"enabled": True} hidden_dim = 4 model = SimpleModel(hidden_dim=hidden_dim) @@ -394,11 +403,11 @@ def test(self, zero_stage=2): "lr": 1e-3 } }, - "fp16": { - "enabled": True, - "initial_scale_power": 8 - }, } + if get_accelerator().is_fp16_supported(): + config_dict["fp16"] = {"enabled": True, "initial_scale_power": 8} + elif get_accelerator().is_bf16_supported(): + config_dict["bf16"] = {"enabled": True} hidden_dim = 4 model = SimpleModel(hidden_dim=hidden_dim) @@ -618,6 +627,8 @@ def test_param_persistence_threshold(self, param_persistence_threshold): @pytest.mark.parametrize("fp16_enabled", [True, False]) def test_fp16_enabled(self, fp16_enabled): + if not get_accelerator().is_fp16_supported(): + pytest.skip("fp16 is not supported") self._test(fp16_enabled=fp16_enabled) @pytest.mark.parametrize("contiguous_gradients", [True, False]) @@ -683,11 +694,11 @@ def _test( "lr": 1.0 } }, - "fp16": { - "enabled": fp16_enabled, - "loss_scale": 1.0, - }, } + if get_accelerator().is_fp16_supported(): + cfg["fp16"] = {"enabled": True, "loss_scale": 1.0} + elif get_accelerator().is_bf16_supported(): + cfg["bf16"] = {"enabled": True} if offload_optimizer: cfg["zero_optimization"]["offload_optimizer"] = { @@ -852,11 +863,11 @@ def forward(self, x: Tensor) -> Tensor: "lr": 1.0 } }, - "fp16": { - "enabled": True, - "loss_scale": 1.0, - }, } + if get_accelerator().is_fp16_supported(): + ds_config["fp16"] = {"enabled": True, "loss_scale": 1.0} + elif get_accelerator().is_bf16_supported(): + ds_config["bf16"] = {"enabled": True} with deepspeed.zero.Init(mem_efficient_linear=False, enabled=init_context_manager): model = LargeParamModel() ds_engine = _ds_initialize_for_param_partitioning_testing(model, ds_config) @@ -931,24 +942,24 @@ def forward(self, x: Tensor) -> Tensor: "lr": 1.0 } }, - "fp16": { - "enabled": True, - "loss_scale": 1.0, - }, } + if get_accelerator().is_fp16_supported(): + ds_cfg["fp16"] = {"enabled": True, "loss_scale": 1.0} + elif get_accelerator().is_bf16_supported(): + ds_cfg["bf16"] = {"enabled": True} with deepspeed.zero.Init(config=ds_cfg, mem_efficient_linear=False, enabled=init_context_manager): model = ManyParamModel() ds_engine = _ds_initialize_for_param_partitioning_testing(model, ds_cfg) + dtype = preferred_dtype() for _ in range(3): # test multiple iterations to cover prefetching - activations: List[Tensor] = ds_engine( - torch.ones((param_sz, ), dtype=torch.float16, device=ds_engine.device)) + activations: List[Tensor] = ds_engine(torch.ones((param_sz, ), dtype=dtype, device=ds_engine.device)) assert len(activations) == n_layers partition_sz = math.ceil(param_sz / self.world_size) - expected_activations = torch.empty(param_sz, dtype=torch.float16, device=ds_engine.device) + expected_activations = torch.empty(param_sz, dtype=dtype, device=ds_engine.device) for start_idx in range(0, param_sz, partition_sz): expected_activations[start_idx:start_idx + partition_sz] = dist.get_rank() @@ -1000,11 +1011,11 @@ def __init_weights(self, module): "lr": 1.0 } }, - "fp16": { - "enabled": True, - "loss_scale": 1.0, - }, } + if get_accelerator().is_fp16_supported(): + ds_cfg["fp16"] = {"enabled": True, "loss_scale": 1.0} + elif get_accelerator().is_bf16_supported(): + ds_cfg["bf16"] = {"enabled": True} with deepspeed.zero.Init(config=ds_cfg, mem_efficient_linear=False, enabled=True): model = ModelWhereParentInitializesChildWeights() @@ -1187,6 +1198,83 @@ def create_tensor(vals): _assert_partition_status(ds_engine, {ZeroParamStatus.NOT_AVAILABLE}) +class TestParamPartitioningSkipInit(DistributedTest): + world_size = 2 + + def test(self): + config_dict = { + "train_batch_size": 4, + "steps_per_print": 1, + "optimizer": { + "type": "Adam", + "params": { + "lr": 1e-4 + } + }, + "zero_optimization": { + "stage": 3 + }, + } + if get_accelerator().is_fp16_supported(): + config_dict["fp16"] = {"enabled": True} + elif get_accelerator().is_bf16_supported(): + config_dict["bf16"] = {"enabled": True} + hidden_dim = 10 + + class SubModel(torch.nn.Module): + + def __init__(self, input_size, output_size, dropout_prob=0.5, device=None): + super(SubModel, self).__init__() + self.linear = torch.nn.Linear(input_size, output_size, device=device) + self.dropout = torch.nn.Dropout(dropout_prob) + self.module_list = torch.nn.ModuleList([torch.nn.Linear(input_size, output_size, device=device)]) + + def forward(self, x): + x = self.linear(x) + x = self.dropout(x) + x = self.module_list[0](x) + return x + + class MyModel(torch.nn.Module): + + def __init__(self, hidden_dim): + super(MyModel, self).__init__() + self.l1 = skip_init(Linear, hidden_dim, hidden_dim) + self.l2 = skip_init(SubModel, hidden_dim, hidden_dim) + self.l3 = torch.nn.Linear(hidden_dim, hidden_dim) + self.cel = torch.nn.CrossEntropyLoss() + self.l4 = skip_init(SubModel, hidden_dim, hidden_dim) + + def forward(self, x, y): + x = self.l1(x) + x = self.l2(x) + x = self.l3(x) + x = self.l4(x) + loss = self.cel(x, y) + val = [x, loss] + return val + + with deepspeed.zero.Init(config=config_dict): + model = MyModel(hidden_dim) + world_size = dist.get_world_size() + ds_tensor_numel = math.ceil(hidden_dim * hidden_dim / world_size) + assert model.l1.weight.ds_tensor.numel() == ds_tensor_numel + assert model.l2.linear.weight.ds_tensor.numel() == ds_tensor_numel + assert model.l2.module_list[0].weight.ds_tensor.numel() == ds_tensor_numel + assert model.l3.weight.ds_tensor.numel() == ds_tensor_numel + assert model.l4.linear.weight.ds_tensor.numel() == ds_tensor_numel + assert model.l4.module_list[0].weight.ds_tensor.numel() == ds_tensor_numel + + model, _, _, _ = deepspeed.initialize(model=model, model_parameters=model.parameters(), config=config_dict) + data_loader = random_dataloader(model=model, total_samples=50, hidden_dim=hidden_dim, device=model.device) + dist.barrier() + for n, batch in enumerate(data_loader): + loss = model(batch[0], batch[1]) + loss = loss[1] + model.backward(loss) + model.step() + + class TestZeroOffloadStage1(DistributedTest): world_size = 2 @@ -1201,9 +1289,6 @@ def test(self): "lr": 1e-4 } }, - "fp16": { - "enabled": True - }, "zero_optimization": { "stage": 1, "offload_optimizer": { @@ -1211,6 +1296,10 @@ def test(self): } }, } + if get_accelerator().is_fp16_supported(): + config_dict["fp16"] = {"enabled": True} + elif get_accelerator().is_bf16_supported(): + config_dict["bf16"] = {"enabled": True} hidden_dim = 10 model = SimpleModel(hidden_dim) @@ -1228,6 +1317,8 @@ class TestZero3DictFwd(DistributedTest): world_size = 1 def test(self, return_type): + if get_accelerator().device_name() == "cpu": + pytest.skip("CPU accelerator does not support this test yet") config_dict = { "train_batch_size": 4, "steps_per_print": 1, @@ -1237,13 +1328,14 @@ def test(self, return_type): "lr": 1e-4 } }, - "fp16": { - "enabled": True - }, "zero_optimization": { "stage": 3 }, } + if get_accelerator().is_fp16_supported(): + config_dict["fp16"] = {"enabled": True} + elif get_accelerator().is_bf16_supported(): + config_dict["bf16"] = {"enabled": True} hidden_dim = 10 class MyModel(torch.nn.Module): @@ -1287,6 +1379,11 @@ class TestZeroAdamOptimizerStepCount(DistributedTest): world_size = 1 def test(self, zero_stage): + # We verify trhee conditions: + # 1. global_steps starts at 0 + # 2. All subgroups have the same step count + # 3. The global step count is the same as the step count of the first subgroup + # force all params to be partitioned by forcing threshold=0 config_dict = { "train_micro_batch_size_per_gpu": 2, @@ -1303,11 +1400,11 @@ def test(self, zero_stage): "lr": 1e-3 } }, - "fp16": { - "enabled": True, - "initial_scale_power": 8 - }, } + if get_accelerator().is_fp16_supported(): + config_dict["fp16"] = {"enabled": True, "initial_scale_power": 8} + elif get_accelerator().is_bf16_supported(): + config_dict["bf16"] = {"enabled": True} hidden_dim = 4 model = SimpleModel(hidden_dim=hidden_dim, nlayers=12) @@ -1316,24 +1413,31 @@ def test(self, zero_stage): model_parameters=model.parameters()) data_loader = random_dataloader(model=model, total_samples=16, hidden_dim=hidden_dim, device=model.device) - for i, batch in enumerate(data_loader): + assert model.global_steps == 0 + + for batch in data_loader: loss = model(batch[0], batch[1]) model.backward(loss) + + is_gradient_accumulation_boundary = model.is_gradient_accumulation_boundary() model.step() - step_counts = [] - if zero_stage == 3: - for sub_group_id, _ in enumerate(optimizer.fp16_groups): - fp32_param = optimizer.fp32_partitioned_groups_flat[sub_group_id] - state = optimizer.optimizer.state[fp32_param] - step_counts.append(state["step"]) - assert all(step == step_counts[0] for step in step_counts) - elif zero_stage == 1 or zero_stage == 2: - for param_group in optimizer.optimizer.param_groups: - for param in param_group["params"]: - state = optimizer.optimizer.state[param] + if is_gradient_accumulation_boundary: + step_counts = [] + + if zero_stage == 3: + for sub_group_id, _ in enumerate(optimizer.fp16_groups): + fp32_param = optimizer.fp32_partitioned_groups_flat[sub_group_id] + state = optimizer.optimizer.state[fp32_param] step_counts.append(state["step"]) + elif zero_stage == 1 or zero_stage == 2: + for param_group in optimizer.optimizer.param_groups: + for param in param_group["params"]: + state = optimizer.optimizer.state[param] + step_counts.append(state["step"]) + assert all(step == step_counts[0] for step in step_counts) + assert model.global_steps == step_counts[0] @pytest.mark.parametrize("zero_stage", [1, 2, 3]) @@ -1350,13 +1454,14 @@ def test(self, zero_stage): "lr": 1e-4 } }, - "fp16": { - "enabled": True - }, "zero_optimization": { "stage": zero_stage }, } + if get_accelerator().is_fp16_supported(): + config_dict["fp16"] = {"enabled": True} + elif get_accelerator().is_bf16_supported(): + config_dict["bf16"] = {"enabled": True} hidden_dim = 10 class MyModel(torch.nn.Module): @@ -1402,9 +1507,6 @@ def test(self, force_ds_optim): "train_batch_size": 4, "gradient_accumulation_steps": 2, "steps_per_print": 1, - "fp16": { - "enabled": True - }, "zero_optimization": { "stage": 1, "offload_optimizer": { @@ -1413,6 +1515,10 @@ def test(self, force_ds_optim): }, "zero_force_ds_cpu_optimizer": force_ds_optim, } + if get_accelerator().is_fp16_supported(): + config_dict["fp16"] = {"enabled": True} + elif get_accelerator().is_bf16_supported(): + config_dict["bf16"] = {"enabled": True} hidden_dim = 10 model = SimpleModel(hidden_dim) @@ -1434,15 +1540,15 @@ def test_training_partition_cache(self, training): hidden_dim = 10 config_dict = { "train_batch_size": 2, - "fp16": { - "enabled": True, - "initial_scale_power": 8 - }, "zero_optimization": { "stage": 3, "stage3_param_persistence_threshold": hidden_dim, }, } + if get_accelerator().is_fp16_supported(): + config_dict["fp16"] = {"enabled": True, "initial_scale_power": 8} + elif get_accelerator().is_bf16_supported(): + config_dict["bf16"] = {"enabled": True} if training: config_dict["optimizer"] = {"type": "Adam"} @@ -1451,13 +1557,11 @@ def test_training_partition_cache(self, training): model, _, _, _ = deepspeed.initialize(model=model, config=config_dict) - dtype = torch.half data_loader = random_dataloader( model=model, total_samples=6, hidden_dim=hidden_dim, device=model.device, - dtype=dtype, ) for _, batch in enumerate(data_loader): @@ -1481,6 +1585,8 @@ class TestEmptyParameterGroup(DistributedTest): world_size = 1 def test_empty_param_groups(self, dtype, use_client_optimizer, empty_weight_group): + if dtype == torch.float16 and not get_accelerator().is_fp16_supported(): + pytest.skip("fp16 is not supported") model = SimpleModel(hidden_dim=4, nlayers=4) param_groups = [ { @@ -1509,7 +1615,7 @@ def test_empty_param_groups(self, dtype, use_client_optimizer, empty_weight_grou } if use_client_optimizer: - optimizer = deepspeed.ops.adam.FusedAdam(param_groups, lr=0.1) + optimizer = torch.optim.AdamW(param_groups, lr=0.1) model_parameters = model.parameters() else: config_dict["optimizer"] = {"type": "adamw"} @@ -1522,3 +1628,82 @@ def test_empty_param_groups(self, dtype, use_client_optimizer, empty_weight_grou optimizer=optimizer, config=config_dict, ) + + +class TestZero3SwitchModes(DistributedTest): + world_size = 2 + + @pytest.mark.parametrize("prefetch_ratio", [0.0, 0.5, 1.0]) + def test(self, prefetch_ratio, zero_stage=3): + + hidden_dim = 10 + model = SimpleModel(hidden_dim) + + prefetch_bucket_size = int(sum([p.numel() for p in model.parameters(recurse=True)]) * prefetch_ratio) + config_dict = { + "train_micro_batch_size_per_gpu": 2, + "gradient_accumulation_steps": 2, + "zero_optimization": { + "stage": zero_stage, + "stage3_prefetch_bucket_size": prefetch_bucket_size + }, + "optimizer": { + "type": "Adam", + "params": { + "lr": 1e-3 + } + }, + "fp16": { + "enabled": True, + "initial_scale_power": 8 + } + } + + model, _, _, _ = deepspeed.initialize(config=config_dict, model=model, model_parameters=model.parameters()) + data_loader = random_dataloader(model=model, total_samples=16, hidden_dim=hidden_dim, device=model.device) + + for _ in range(3): + model.train() + for batch in data_loader: + loss = model(batch[0], batch[1]) + model.backward(loss) + model.step() + + model.eval() + with torch.no_grad(): + for batch in data_loader: + loss = model(batch[0], batch[1]) + + +# Avoid overwriting client module id +# https://github.com/deepspeedai/DeepSpeed/issues/6772 +class TestZero3ClientModuleID(DistributedTest): + world_size = 2 + + def test_client_module_id(self): + config_dict = { + "train_micro_batch_size_per_gpu": 1, + "steps_per_print": 1, + "optimizer": { + "type": "Adam", + }, + "zero_optimization": { + "stage": 3 + }, + } + + class MyModel(torch.nn.Module): + + def __init__(self): + super().__init__() + self.id = 3 # ID arbitrary client usage, e.g. GPU placement + self.fc = Linear(128, 128) + + def forward(self, x): + return self.fc(x) + + model = MyModel() + pre_init_m_id = model.id + model, _, _, _ = deepspeed.initialize(model=model, model_parameters=model.parameters(), config=config_dict) + post_init_m_id = model.id + assert pre_init_m_id == post_init_m_id diff --git a/tests/unit/runtime/zero/test_zero_config.py b/tests/unit/runtime/zero/test_zero_config.py index db9fd6516034..8b20eca8c7d2 100644 --- a/tests/unit/runtime/zero/test_zero_config.py +++ b/tests/unit/runtime/zero/test_zero_config.py @@ -48,12 +48,12 @@ def test_zero_config_overlapcomm(): def test_zero_config_offload_configs(): config = DeepSpeedZeroConfig() - assert config.offload_param == None - assert config.offload_optimizer == None + assert config.offload_param is None + assert config.offload_optimizer is None config = DeepSpeedZeroConfig(**{"offload_param": None, "offload_optimizer": None}) - assert config.offload_param == None - assert config.offload_optimizer == None + assert config.offload_param is None + assert config.offload_optimizer is None config = DeepSpeedZeroConfig(**{"offload_param": {}, "offload_optimizer": {}}) assert isinstance(config.offload_param, DeepSpeedZeroOffloadParamConfig) diff --git a/tests/unit/runtime/zero/test_zero_context.py b/tests/unit/runtime/zero/test_zero_context.py index aabe7f0b7f15..1d4fcd60022c 100644 --- a/tests/unit/runtime/zero/test_zero_context.py +++ b/tests/unit/runtime/zero/test_zero_context.py @@ -6,11 +6,13 @@ from types import SimpleNamespace import torch +import pytest import deepspeed from deepspeed.runtime.zero.partition_parameters import ZeroParamStatus, partitioned_param_data_shape import deepspeed.comm as dist +from deepspeed.accelerator import get_accelerator -from unit.common import DistributedTest +from unit.common import DistributedTest, preferred_dtype from unit.simple_model import SimpleModel from utils import setup_serial_env @@ -47,16 +49,17 @@ def forward(self, x): "lr": 0.00015 } }, - "fp16": { - "enabled": True, - "loss_scale": 138. - }, "zero_optimization": { "stage": 3, "stage3_param_persistence_threshold": 1, } } +if get_accelerator().is_fp16_supported(): + config["fp16"] = {"enabled": True, "loss_scale": 138.} +elif get_accelerator().is_bf16_supported(): + config["bf16"] = {"enabled": True} + class TestZeroGatheredParametersFree(DistributedTest): world_size = 1 @@ -81,6 +84,29 @@ def __init__(self, hidden_dim): assert model.l1.weight.numel() == 0, "outside of GatheredParameters the param should go back to be 0-sized" +class TestMiCSGatheredParametersFree(DistributedTest): + world_size = 1 + + def test(self): + config_dict = {"train_batch_size": 1, "zero_optimization": {"stage": 3, "mics_shard_size": 1}} + hidden_dim = 10 + + class MyModel(torch.nn.Module): + + def __init__(self, hidden_dim): + super(MyModel, self).__init__() + self.l1 = torch.nn.Linear(hidden_dim, hidden_dim) + + with deepspeed.zero.MiCS_Init(config_dict_or_path=config_dict): + model = MyModel(hidden_dim) + + with deepspeed.zero.GatheredParameters(list(model.parameters())): + assert model.l1.weight.numel() != 0, "GatheredParameters should give a non-0-sized tensor" + + # on exit from `GatheredParameters` the gathered params should be freed and not leak memory + assert model.l1.weight.numel() == 0, "outside of GatheredParameters the param should go back to be 0-sized" + + class TestSerialContext(DistributedTest): world_size = 1 init_distributed = False @@ -101,6 +127,8 @@ def test_scattered_init_dist(self): assert dist.is_initialized() def test_scatter_halftype(self): + if not get_accelerator().is_fp16_supported(): + pytest.skip("fp16 is not supported") setup_serial_env() with deepspeed.zero.Init(): @@ -190,9 +218,9 @@ def test_throughput_calculation(self): engine.tput_timer.stop(global_step=global_step) duration = engine.tput_timer.end_time - engine.tput_timer.start_time # step elapsed time is reset after gradient accumulation steps - assert engine.tput_timer.step_elapsed_time == ( - 0 if engine.tput_timer.global_step_count != engine.tput_timer.start_step else current_duration + - duration) + assert engine.tput_timer.step_elapsed_time == (0 if engine.tput_timer.global_step_count + != engine.tput_timer.start_step else current_duration + + duration) assert engine.tput_timer.total_elapsed_time == total_duration + duration def test_ext_param_getattr(self): @@ -225,7 +253,7 @@ def forward(self, input): with deepspeed.zero.GatheredParameters(net.linear1.weight): assert net.linear1.weight.numel() == net.dim**2 - input = torch.rand(net.dim).to(engine.device).half() + input = torch.rand(net.dim).to(engine.device).to(preferred_dtype()) loss = engine(input) engine.backward(loss) engine.step() diff --git a/tests/unit/runtime/zero/test_zero_context_ancestry.py b/tests/unit/runtime/zero/test_zero_context_ancestry.py index 21955f5df152..77a8744ab5bc 100644 --- a/tests/unit/runtime/zero/test_zero_context_ancestry.py +++ b/tests/unit/runtime/zero/test_zero_context_ancestry.py @@ -32,7 +32,7 @@ # test that sub-classes get params that aren't prematurely partitioned and thus requiring gathering -# fixed by https://github.com/microsoft/DeepSpeed/pull/1202 +# fixed by https://github.com/deepspeedai/DeepSpeed/pull/1202 class GrandPa(torch.nn.Module): def __init__(self, *args): diff --git a/tests/unit/runtime/zero/test_zero_context_return.py b/tests/unit/runtime/zero/test_zero_context_return.py index 874a8ea3b676..9d49b6d3ba88 100644 --- a/tests/unit/runtime/zero/test_zero_context_return.py +++ b/tests/unit/runtime/zero/test_zero_context_return.py @@ -8,9 +8,10 @@ import pytest import deepspeed from deepspeed.runtime.zero.partition_parameters import ZeroParamStatus +from deepspeed.accelerator import get_accelerator from utils import setup_serial_env -from unit.common import DistributedTest +from unit.common import DistributedTest, preferred_dtype class DanglingBias(torch.nn.Linear): @@ -119,16 +120,17 @@ def forward(self, input): "lr": 0.00015 } }, - "fp16": { - "enabled": True, - "loss_scale": 138. - }, "zero_optimization": { "stage": 3, "stage3_param_persistence_threshold": 1, } } +if get_accelerator().is_fp16_supported(): + config["fp16"] = {"enabled": True, "loss_scale": 138.} +elif get_accelerator().is_bf16_supported(): + config["bf16"] = {"enabled": True} + class TestReturnParam(DistributedTest): world_size = 1 @@ -142,7 +144,7 @@ def test_ext_param_return(self): engine, _, _, _ = deepspeed.initialize(args=args, model=net, model_parameters=net.parameters(), config=config) for _ in range(5): - input = torch.rand(net.dim).to(engine.device).half() + input = torch.rand(net.dim).to(engine.device).to(preferred_dtype()) loss = engine(input) engine.backward(loss) engine.step() @@ -158,7 +160,7 @@ def test_ext_param_returnobj(self): engine, _, _, _ = deepspeed.initialize(args=args, model=net, model_parameters=net.parameters(), config=config) for _ in range(5): - input = torch.rand(net.dim).to(engine.device).half() + input = torch.rand(net.dim).to(engine.device).to(preferred_dtype()) loss = engine(input) assert len(net._external_params) == 1 assert len(net.dangler._external_params) == 0 @@ -176,7 +178,7 @@ def test_stage_3_output_type(self, output_type): engine, _, _, _ = deepspeed.initialize(args=args, model=net, model_parameters=net.parameters(), config=config) for _ in range(1): - input = torch.rand(net.dim).to(engine.device).half() + input = torch.rand(net.dim).to(engine.device).to(preferred_dtype()) loss = engine(input) if loss is not None: if isinstance(loss, dict): diff --git a/tests/unit/runtime/zero/test_zero_leaf_module.py b/tests/unit/runtime/zero/test_zero_leaf_module.py new file mode 100644 index 000000000000..74c709883645 --- /dev/null +++ b/tests/unit/runtime/zero/test_zero_leaf_module.py @@ -0,0 +1,262 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import pytest +import deepspeed.comm as dist +import torch + +from unit.common import DistributedTest, preferred_dtype +from unit.simple_model import random_dataloader + +import deepspeed +from deepspeed.utils import set_z3_leaf_modules, unset_z3_leaf_modules, get_z3_leaf_modules, z3_leaf_module +from deepspeed.accelerator import get_accelerator +from torch import nn +import time + + +class ChooseModuleByCounter(torch.nn.Module): + + def __init__(self, hidden_dim): + super(ChooseModuleByCounter, self).__init__() + self.linears = torch.nn.ModuleList( + [torch.nn.Linear(hidden_dim, hidden_dim, bias=False), + torch.nn.Linear(hidden_dim, hidden_dim, bias=False)]) + self.act = torch.nn.ReLU() + self.cel = torch.nn.CrossEntropyLoss() + self.counter = 0 + + def forward(self, x, y): + # This fails without setting this module as a leaf module. + # See the comment in `set_z3_leaf_modules()`. + x = self.linears[self.counter % len(self.linears)](x) + x = self.act(x) + loss = self.cel(x, y) + self.counter += 1 + return x, loss + + +class ChooseModuleByRankModel(torch.nn.Module): + + def __init__(self, hidden_dim): + super(ChooseModuleByRankModel, self).__init__() + self.linears = torch.nn.ModuleList( + [torch.nn.Linear(hidden_dim, hidden_dim, bias=False), + torch.nn.Linear(hidden_dim, hidden_dim, bias=False)]) + self.act = torch.nn.ReLU() + self.cel = torch.nn.CrossEntropyLoss() + + def forward(self, x, y): + # Each rank runs only one of the linear layers + x = self.linears[dist.get_rank() % len(self.linears)](x) + x = self.act(x) + loss = self.cel(x, y) + return x, loss + + +class MLPBlock(nn.Module): + + def __init__(self, hidden_dim): + super(MLPBlock, self).__init__() + self.gate_proj = nn.Linear(hidden_dim, hidden_dim, bias=False) + self.up_proj = nn.Linear(hidden_dim, hidden_dim, bias=False) + self.down_proj = nn.Linear(hidden_dim, hidden_dim, bias=False) + self.act_fn = nn.GELU() + + def forward(self, x): + return self.down_proj(self.act_fn(self.gate_proj(x)) * self.up_proj(x)) + + +class FineGrainedBlock(nn.Module): + + def __init__(self, hidden_dim, num_block): + super(FineGrainedBlock, self).__init__() + self.num_block = num_block + self.mlp_layers = torch.nn.ModuleList([MLPBlock(hidden_dim=hidden_dim) for _ in range(self.num_block)]) + + def forward(self, x): + for i in range(self.num_block): + x = self.mlp_layers[i](x) + return x + + +class modelWithFineGrainedBlock(nn.Module): + + def __init__(self, hidden_dim, num_block): + super(modelWithFineGrainedBlock, self).__init__() + self.coarse_grained_layer1 = nn.Linear(hidden_dim, 8 * hidden_dim) + self.coarse_grained_layer2 = nn.Linear(8 * hidden_dim, hidden_dim) + self.fine_grained_layer = FineGrainedBlock(hidden_dim, num_block) + self.cel = torch.nn.CrossEntropyLoss() + + def forward(self, x, y): + x = self.coarse_grained_layer1(x) + x = self.coarse_grained_layer2(x) + x = self.fine_grained_layer(x) + loss = self.cel(x, y) + return x, loss + + +def run_model(model, config_dict, hidden_dim, dtype, requires_grad): + model, _, _, _ = deepspeed.initialize(model=model, model_parameters=model.parameters(), config=config_dict) + data_loader = random_dataloader(model=model, + total_samples=10, + hidden_dim=hidden_dim, + device=model.device, + dtype=dtype) + dist.barrier() + for batch in data_loader: + batch[0].requires_grad = requires_grad + loss = model(batch[0], batch[1]) + loss = loss[1] + model.backward(loss) + model.step() + + # Needed in ZeRO 3. Not doing so can give memory leak + model.destroy() + + +class TestSetZ3LeafModule(DistributedTest): + # Need multiple gpus to test possible hanging + world_size = 2 + reuse_dist_env = True + + def _test_set_z3_leaf_modules(self, cls, requires_grad): + hidden_dim = 128 + + # `stage3_max_reuse_distance` is set to 0 to cause an error if the module is not set as a leaf module + config_dict = { + "train_micro_batch_size_per_gpu": 1, + "steps_per_print": 1, + "optimizer": { + "type": "Adam", + "params": { + "lr": 1e-6 + } + }, + "zero_optimization": { + "stage": 3, + "stage3_prefetch_bucket_size": hidden_dim**2, + "stage3_param_persistence_threshold": 0, + "stage3_max_reuse_distance": 0, + } + } + if preferred_dtype() is torch.float16: + config_dict["fp16"] = {"enabled": True} + elif preferred_dtype() is torch.bfloat16: + config_dict["bf16"] = {"enabled": True} + + model = cls(hidden_dim) + + assert not z3_leaf_module(model) + set_z3_leaf_modules(model, [cls]) + assert z3_leaf_module(model) + + run_model(model, config_dict, hidden_dim, preferred_dtype(), requires_grad) + + def test_choose_module_by_counter(self): + self._test_set_z3_leaf_modules(ChooseModuleByCounter, True) + + def test_choose_module_by_rank(self): + self._test_set_z3_leaf_modules(ChooseModuleByRankModel, True) + + def test_no_grad_input_error(self): + try: + self._test_set_z3_leaf_modules(ChooseModuleByCounter, False) + raise AssertionError( + "Expected RuntimeError: inputs with requires_grad=False is not supported for a leaf module") + except RuntimeError as e: + pass + + def test_set_unset_leaf_modules(self): + hidden_dim = 128 + model = ChooseModuleByCounter(hidden_dim) + assert len(set_z3_leaf_modules(model, [torch.nn.ModuleList])) == 1, \ + "Expected only one module to be set as a leaf module" + assert len(get_z3_leaf_modules(model)) == 1, "Expected there is only one leaf module" + + assert len(unset_z3_leaf_modules(model, [torch.nn.ModuleList])) == 1, \ + "Expected only one module to be unset as a leaf module" + assert len(get_z3_leaf_modules(model)) == 0, "Expected there is no leaf module" + + def test_set_no_match_class(self): + hidden_dim = 128 + model = ChooseModuleByCounter(hidden_dim) + try: + set_z3_leaf_modules(model, [torch.nn.Conv2d]) + raise AssertionError("Expected error that no module is set as a leaf module") + except ValueError as e: + pass + + +@pytest.mark.parametrize("module_granularity_threshold", [0, 100, 12100, 10000000]) +class TestZ3LeafOptimization(DistributedTest): + world_size = 2 + reuse_dist_env = True + + def test_finegrained_optimization(self, module_granularity_threshold: int): + hidden_dim = 128 + num_block = 16 + config_dict = { + "train_micro_batch_size_per_gpu": 1, + "steps_per_print": 1, + "optimizer": { + "type": "Adam", + "params": { + "lr": 1e-6 + } + }, + "zero_optimization": { + "stage": 3, + "stage3_prefetch_bucket_size": hidden_dim**2, + "stage3_param_persistence_threshold": 0, + "stage3_max_reuse_distance": 0, + } + } + if preferred_dtype() is torch.float16: + config_dict["fp16"] = {"enabled": True} + elif preferred_dtype() is torch.bfloat16: + config_dict["bf16"] = {"enabled": True} + + def bench_loss_and_time(config): + warm_up_step = 10 + model = modelWithFineGrainedBlock(hidden_dim, num_block) + model, _, _, _ = deepspeed.initialize(model=model, model_parameters=model.parameters(), config=config) + data_loader = random_dataloader(model=model, + total_samples=20, + hidden_dim=hidden_dim, + device=model.device, + dtype=preferred_dtype()) + dist.barrier() + loss_list = [] + + for i, batch in enumerate(data_loader): + if i == warm_up_step: + dist.barrier() + get_accelerator().synchronize() + start_time = time.time() + batch[0].requires_grad = True + loss = model(batch[0], batch[1]) + loss = loss[1] + loss_list.append(loss) + model.backward(loss) + model.step() + get_accelerator().synchronize() + end_time = time.time() + duration = end_time - start_time + model.destroy() + return loss_list, duration + + baseline_loss_list, baseline_exec_time = bench_loss_and_time(config_dict) + + config_dict["zero_optimization"]["stage3_module_granularity_threshold"] = module_granularity_threshold + loss, duration = bench_loss_and_time(config_dict) + + if dist.get_rank() == 0: + print(f"baseline exec time:", baseline_exec_time) + print( + f"finegrained optimziation exec time: {duration},granularity threshold:{module_granularity_threshold} " + ) + assert baseline_loss_list == loss, f"incorrect loss value with threshold:{module_granularity_threshold}" diff --git a/tests/unit/runtime/zero/test_zero_multiple_run.py b/tests/unit/runtime/zero/test_zero_multiple_run.py new file mode 100644 index 000000000000..d4eb3a578cc9 --- /dev/null +++ b/tests/unit/runtime/zero/test_zero_multiple_run.py @@ -0,0 +1,53 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import deepspeed +import torch +from unit.common import DistributedTest, preferred_dtype +from unit.simple_model import SimpleModel, random_dataloader + + +class TestZ3MultipleModelCall(DistributedTest): + world_size = 1 + + def test_z3_multiple_model_call(self): + config_dict = { + "train_micro_batch_size_per_gpu": 1, + "gradient_accumulation_steps": 1, + "steps_per_print": 1, + "zero_optimization": { + "stage": 3 + }, + "optimizer": { + "type": "Adam", + "params": { + "lr": 1e-3 + } + }, + } + if preferred_dtype() is torch.float16: + config_dict["fp16"] = {"enabled": True, "initial_scale_power": 8} + elif preferred_dtype() is torch.bfloat16: + config_dict["bf16"] = {"enabled": True} + hidden_dim, nlayers = 2048, 3 + model = SimpleModel(hidden_dim=hidden_dim, nlayers=nlayers) + model_engine, _, _, _ = deepspeed.initialize(config=config_dict, + model=model, + model_parameters=model.parameters()) + data_loader = iter( + random_dataloader(model=model_engine, total_samples=10, hidden_dim=hidden_dim, device=model_engine.device)) + + for n, batch in enumerate(data_loader): + loss1 = model_engine(batch[0], batch[1]) + with torch.no_grad(): + loss2 = model_engine(batch[0], batch[1]) + loss = loss1 + loss2 + model_engine.backward(loss) + for name, submodule in model_engine.module.linears._modules.items(): + assert hasattr(submodule, "ds_grads_remaining"), \ + f"linears.{name} does not have variable ds_grads_remaining" + assert submodule.ds_grads_remaining == 0, \ + f"ds_grads_remaining of linears.{name} is not 0 ({submodule.ds_grads_remaining})" + model_engine.step() diff --git a/tests/unit/runtime/zero/test_zero_nesting_init.py b/tests/unit/runtime/zero/test_zero_nesting_init.py index 143e7e997b13..15d82fd8be00 100644 --- a/tests/unit/runtime/zero/test_zero_nesting_init.py +++ b/tests/unit/runtime/zero/test_zero_nesting_init.py @@ -8,7 +8,7 @@ from unit.common import DistributedTest from transformers import VisionEncoderDecoderModel -from transformers.deepspeed import HfDeepSpeedConfig +from transformers.integrations.deepspeed import HfDeepSpeedConfig import deepspeed diff --git a/tests/unit/runtime/zero/test_zero_offloadpp.py b/tests/unit/runtime/zero/test_zero_offloadpp.py index c376686f8052..8ae99e2237e2 100644 --- a/tests/unit/runtime/zero/test_zero_offloadpp.py +++ b/tests/unit/runtime/zero/test_zero_offloadpp.py @@ -39,9 +39,11 @@ class TestZeroPartialOffloadConfigSweep(DistributedTest): world_size = 4 def test(self, h_dim: int, n_layers: int) -> None: + config_dict = { "train_batch_size": 256, "steps_per_print": 1, + "gradient_clipping": 1.0, "optimizer": { "type": "Adam", "params": { diff --git a/tests/unit/runtime/zero/test_zero_tensor_fragment.py b/tests/unit/runtime/zero/test_zero_tensor_fragment.py index e50b03035bad..2e3a652668ed 100644 --- a/tests/unit/runtime/zero/test_zero_tensor_fragment.py +++ b/tests/unit/runtime/zero/test_zero_tensor_fragment.py @@ -7,52 +7,45 @@ import deepspeed.comm as dist import torch -from unit.common import DistributedTest +from unit.common import DistributedTest, preferred_dtype from unit.simple_model import random_dataloader, SimpleModel from unit.util import bf16_required_version_check import deepspeed from deepspeed.utils import safe_get_full_fp32_param, safe_get_full_grad, safe_get_full_optimizer_state -from deepspeed.utils import safe_set_full_fp32_param, safe_set_full_optimizer_state +from deepspeed.utils import safe_set_full_fp32_param, safe_set_full_grad, safe_set_full_optimizer_state from deepspeed.utils import safe_get_local_fp32_param, safe_get_local_grad, safe_get_local_optimizer_state -from deepspeed.utils import safe_set_local_fp32_param, safe_set_local_optimizer_state +from deepspeed.utils import safe_set_local_fp32_param, safe_set_local_grad, safe_set_local_optimizer_state from deepspeed.runtime.zero.offload_config import OffloadDeviceEnum from deepspeed.ops.aio import AsyncIOBuilder +from deepspeed.accelerator import get_accelerator WEIGHT_KEY = 'weight' FIRST_ORDER_KEY = 'exp_avg' SECOND_ORDER_KEY = 'exp_avg_sq' +GRADIENT_KEY = 'gradient' -def validate_full_tensors(model): +def validate_tensor(model, api_type, opt_states): + assert api_type in ["full", "local"] for _, lp in model.named_parameters(): - hp = safe_get_full_fp32_param(lp) - exp_avg = safe_get_full_optimizer_state(lp, 'exp_avg') - exp_avg_sq = safe_get_full_optimizer_state(lp, 'exp_avg_sq') - hp_grad = safe_get_full_grad(lp) - param_list = [hp, hp_grad, exp_avg, exp_avg_sq] - if lp.requires_grad: - assert all([p is not None for p in param_list]) + param_list = [] + if opt_states: + param_list.append( + safe_get_full_optimizer_state(lp, 'exp_avg') if api_type == + "full" else safe_get_local_optimizer_state(lp, 'exp_avg')) + param_list.append( + safe_get_full_optimizer_state(lp, 'exp_avg_sq') if api_type == + "full" else safe_get_local_optimizer_state(lp, 'exp_avg_sq')) else: - assert all([p is None for p in param_list]) - - -def validate_local_tensors(model): - for _, lp in model.named_parameters(): - hp = safe_get_local_fp32_param(lp) - exp_avg = safe_get_local_optimizer_state(lp, 'exp_avg') - exp_avg_sq = safe_get_local_optimizer_state(lp, 'exp_avg_sq') - hp_grad = safe_get_local_grad(lp) - param_list = [hp, hp_grad, exp_avg, exp_avg_sq] + param_list.append(safe_get_full_fp32_param(lp) if api_type == "full" else safe_get_local_fp32_param(lp)) + param_list.append(safe_get_full_grad(lp) if api_type == "full" else safe_get_local_grad(lp)) if lp.requires_grad: assert all([p is not None for p in param_list]) else: assert all([p is None for p in param_list]) -validate_funcs_mapping = {"full": validate_full_tensors, "local": validate_local_tensors} - - class MyModel(torch.nn.Module): def __init__(self, hidden_dim, frozen_weights): @@ -71,12 +64,10 @@ def forward(self, x, y): for l in self.linears: x = l(x) x = self.act(x) - loss = self.cel(x, y) - val = (x, loss) - return val + return self.cel(x, y) -def run_fragmented_model(model, config_dict, hidden_dim, dtype, validate_func): +def run_fragmented_model(model, config_dict, hidden_dim, dtype, validate_after_bwd, validate_after_step): model, _, _, _ = deepspeed.initialize(model=model, model_parameters=model.parameters(), config=config_dict) data_loader = random_dataloader(model=model, total_samples=10, @@ -86,10 +77,10 @@ def run_fragmented_model(model, config_dict, hidden_dim, dtype, validate_func): dist.barrier() for n, batch in enumerate(data_loader): loss = model(batch[0], batch[1]) - loss = loss[1] model.backward(loss) - validate_func(model) + validate_after_bwd(model) model.step() + validate_after_step(model) # Needed in ZeRO 3. Not doing so can give memory leak model.destroy() @@ -123,14 +114,14 @@ def test_zero_fragments(self, tmpdir, api_type, zero_stage, offload_device, froz "lr": 1e-6 } }, - "fp16": { - "enabled": True, - "initial_scale_power": 2 - }, "zero_optimization": { "stage": zero_stage, } } + if get_accelerator().is_fp16_supported(): + config_dict["fp16"] = {"enabled": True, "initial_scale_power": 2} + elif get_accelerator().is_bf16_supported(): + config_dict["bf16"] = {"enabled": True} if offload_device == OffloadDeviceEnum.cpu: config_dict["zero_optimization"]["offload_optimizer"] = {"device": offload_device} @@ -147,15 +138,19 @@ def test_zero_fragments(self, tmpdir, api_type, zero_stage, offload_device, froz else: model = MyModel(hidden_dim, frozen_weights) - validate_func = validate_funcs_mapping[api_type] + validate_after_bwd = lambda model: validate_tensor(model, api_type, opt_states=False) + validate_after_step = lambda model: validate_tensor(model, api_type, opt_states=True) - run_fragmented_model(model, config_dict, hidden_dim, torch.float16, validate_func) + run_fragmented_model(model, config_dict, hidden_dim, preferred_dtype(), validate_after_bwd, + validate_after_step) def test_bf16_fragments(self, frozen_weights): + if get_accelerator().device_name() == "cpu": + pytest.skip("CPU accelerator does not support this test yet.") if frozen_weights: pytest.skip("TODO: Frozen weights not currently supported by BF16 Optimizer") - if not bf16_required_version_check(accelerator_check=False): + if not bf16_required_version_check(): pytest.skip( " DeepSpeed BFloat16 tests need torch >= 1.10, NCCL >= 2.10.3, CUDA > =11.0 and HW support for BFloat16 to run correctly" ) @@ -178,16 +173,22 @@ def test_bf16_fragments(self, frozen_weights): hidden_dim = 128 model = MyModel(hidden_dim, frozen_weights) - run_fragmented_model(model, config_dict, hidden_dim, torch.bfloat16, validate_full_tensors) + + api_type = "full" + validate_after_bwd = lambda model: validate_tensor(model, api_type, opt_states=False) + validate_after_step = lambda model: validate_tensor(model, api_type, opt_states=True) + + run_fragmented_model(model, config_dict, hidden_dim, torch.bfloat16, validate_after_bwd, validate_after_step) -def create_random_values(model, key_list, group, use_cuda=True): +def create_random_values(model, key_list, group, grad_dtype, use_cuda=True): param_values = {} for n, lp in model.named_parameters(): param_shape = lp.ds_shape if hasattr(lp, 'ds_id') else lp.shape param_values[n] = {} for key in key_list: - rand_value = torch.rand(param_shape, dtype=torch.float32, device=model.device) + dtype = grad_dtype if key == GRADIENT_KEY else torch.float32 + rand_value = torch.rand(param_shape, dtype=dtype, device=model.device) dist.broadcast(rand_value, src=0, group=group) param_values[n][key] = rand_value return param_values @@ -196,7 +197,9 @@ def create_random_values(model, key_list, group, use_cuda=True): def set_param_values_with_dict(model, value_dict): for n, lp in model.named_parameters(): for key, value_tensor in value_dict[n].items(): - if key == WEIGHT_KEY: + if key == GRADIENT_KEY: + safe_set_full_grad(lp, value_tensor) + elif key == WEIGHT_KEY: safe_set_full_fp32_param(lp, value_tensor) else: safe_set_full_optimizer_state(lp, value_tensor, key) @@ -205,21 +208,25 @@ def set_param_values_with_dict(model, value_dict): def validate_param_values_with_dict(model, value_dict): for n, lp in model.named_parameters(): for key, expected_tensor in value_dict[n].items(): - if key == WEIGHT_KEY: + if key == GRADIENT_KEY: + actual_tensor = safe_get_full_grad(lp) + elif key == WEIGHT_KEY: actual_tensor = safe_get_full_fp32_param(lp) else: actual_tensor = safe_get_full_optimizer_state(lp, key) + assert torch.equal(expected_tensor, actual_tensor) -def create_random_values_for_local(model, key_list, group, use_cuda=True): +def create_random_values_for_local(model, key_list, group, grad_dtype, use_cuda=True): param_values = {} for n, lp in model.named_parameters(): param_shape = lp.ds_tensor.shape param_values[n] = {} for key in key_list: device = model.device if use_cuda else "cpu" - rand_value = torch.rand(param_shape, dtype=torch.float32, device=device) + dtype = grad_dtype if key == GRADIENT_KEY else torch.float32 + rand_value = torch.rand(param_shape, dtype=dtype, device=device) # dist.broadcast(rand_value, src=0, group=group) param_values[n][key] = rand_value return param_values @@ -229,7 +236,9 @@ def set_local_param_values_with_dict(model, value_dict): for n, lp in model.named_parameters(): for key, value_tensor in value_dict[n].items(): - if key == WEIGHT_KEY: + if key == GRADIENT_KEY: + safe_set_local_grad(lp, value_tensor) + elif key == WEIGHT_KEY: safe_set_local_fp32_param(lp, value_tensor) else: safe_set_local_optimizer_state(lp, value_tensor, key) @@ -238,10 +247,13 @@ def set_local_param_values_with_dict(model, value_dict): def validate_local_param_values_with_dict(model, value_dict): for n, lp in model.named_parameters(): for key, expected_tensor in value_dict[n].items(): - if key == WEIGHT_KEY: + if key == GRADIENT_KEY: + actual_tensor = safe_get_local_grad(lp) + elif key == WEIGHT_KEY: actual_tensor = safe_get_local_fp32_param(lp) else: actual_tensor = safe_get_local_optimizer_state(lp, key) + assert torch.equal(expected_tensor, actual_tensor) @@ -307,6 +319,8 @@ def test_zero_fragments(self, tmpdir, api_type, zero_stage, offload_device, dtyp } if dtype == torch.float16: + if not get_accelerator().is_fp16_supported(): + pytest.skip("fp16 is not supported") config_dict["fp16"] = {"enabled": True, "initial_scale_power": 8} elif dtype == torch.bfloat16: config_dict["bf16"] = {"enabled": True} @@ -315,23 +329,29 @@ def test_zero_fragments(self, tmpdir, api_type, zero_stage, offload_device, dtyp if zero_stage == 3: config_dict["zero_optimization"]["param_persistence_threshold"] = hidden_dim with deepspeed.zero.Init(config_dict_or_path=config_dict): - model = SimpleModel(hidden_dim, nlayers=4) + model = SimpleModel(hidden_dim) else: - model = SimpleModel(hidden_dim, nlayers=4) + model = SimpleModel(hidden_dim) - model, _, _, _ = deepspeed.initialize(model=model, model_parameters=model.parameters(), config=config_dict) world = dist.get_world_size() group = dist.new_group(ranks=list(range(world))) dist.barrier() - optim_keys = [WEIGHT_KEY, FIRST_ORDER_KEY, SECOND_ORDER_KEY] - helper_funcs = helper_funcs_mapping[api_type] - optim_state_values = helper_funcs["create_random_values"](model, - optim_keys, - group, - use_cuda=offload_device == OffloadDeviceEnum.none) - helper_funcs["set_param_values_with_dict"](model, optim_state_values) - helper_funcs["validate_param_values_with_dict"](model, optim_state_values) - - # Needed in ZeRO 3. Not doing so can leak memory. - model.destroy() + + def after_bwd_validate_func(model): + state_keys = [WEIGHT_KEY, GRADIENT_KEY] + helper_funcs = helper_funcs_mapping[api_type] + optim_state_values = helper_funcs["create_random_values"]( + model, state_keys, group, grad_dtype=dtype, use_cuda=offload_device == OffloadDeviceEnum.none) + helper_funcs["set_param_values_with_dict"](model, optim_state_values) + helper_funcs["validate_param_values_with_dict"](model, optim_state_values) + + def after_step_validate_func(model): + state_keys = [WEIGHT_KEY, FIRST_ORDER_KEY, SECOND_ORDER_KEY] + helper_funcs = helper_funcs_mapping[api_type] + optim_state_values = helper_funcs["create_random_values"]( + model, state_keys, group, grad_dtype=dtype, use_cuda=offload_device == OffloadDeviceEnum.none) + helper_funcs["set_param_values_with_dict"](model, optim_state_values) + helper_funcs["validate_param_values_with_dict"](model, optim_state_values) + + run_fragmented_model(model, config_dict, hidden_dim, dtype, after_bwd_validate_func, after_step_validate_func) diff --git a/tests/unit/runtime/zero/test_zeropp.py b/tests/unit/runtime/zero/test_zeropp.py index 27ec7269afc6..7a05c2a8001b 100644 --- a/tests/unit/runtime/zero/test_zeropp.py +++ b/tests/unit/runtime/zero/test_zeropp.py @@ -14,6 +14,12 @@ from deepspeed.runtime.zero.config import DeepSpeedZeroConfig import torch.nn as nn +import torch + +from transformers import AutoModelForCausalLM, AutoTokenizer +from torch.utils.data import DataLoader + +import numpy as np class NNModel(nn.Module): @@ -40,9 +46,16 @@ def _assert_no_secondary_tensor_group(model: Module) -> None: assert param.ds_zero_param_process_group is None -def _assert_secondary_tensor_size(model: Module) -> None: +def _check_secondary_tensor_existence(model: Module) -> None: for _, param in model.named_parameters(): - assert param.ds_secondary_tensor is not None + if param.ds_secondary_tensor is not None: + return True + return False + + +def _assert_secondary_tensor_size(model: Module) -> None: + for name, param in model.named_parameters(): + assert param.ds_secondary_tensor is not None, f"param {param.ds_id}:{name} does not have secondary tensor" assert param.ds_secondary_tensor.size()[0] % param.ds_tensor.size()[0] == 0 @@ -50,7 +63,7 @@ def _assert_secondary_tensor_size(model: Module) -> None: #Assert when zpg=1 that secondary group and tensors are invalid @pytest.mark.sequential @pytest.mark.parametrize("h_dim", [1024]) -@pytest.mark.parametrize("n_layers", [4, 9]) +@pytest.mark.parametrize("n_layers", [9]) @pytest.mark.parametrize("zpg", [1, 2, 4]) class TestZeroPPConfigSweep(DistributedTest): world_size = 4 @@ -92,3 +105,172 @@ def test(self, h_dim: int, n_layers: int, zpg: int) -> None: loss = model(batch[0], batch[1]) model.backward(loss) model.step() + + def test_eval(self, h_dim: int, n_layers: int, zpg: int) -> None: + # in this test case, we are testing that hpz should be enabled when eval mode is on + config_dict = { + "train_micro_batch_size_per_gpu": 1, + "zero_optimization": { + "stage": 3, + "stage3_max_reuse_distance": 0, + "zero_hpz_partition_size": zpg, + "contiguous_gradients": True, + "overlap_comm": True, + }, + "optimizer": { + "type": "Adam", + "params": { + "lr": 1. + } + }, + "fp16": { + "enabled": True, + "loss_scale": 1., + } + } + + model = NNModel(h_dim, n_layers) + model, _, _, _ = deepspeed.initialize(model=model, model_parameters=model.parameters(), config=config_dict) + data_loader = random_dataloader(model=model, total_samples=20, hidden_dim=h_dim, device=model.device) + dist.barrier() + if zpg == 1: + _assert_no_secondary_tensor_group(model) + + for n, batch in enumerate(data_loader): + if zpg != 1: + # here we check that the hpz is enabled when the previous iteration does not update the model + _assert_secondary_tensor_size(model) + with torch.no_grad(): + loss = model(batch[0], batch[1]) + + def test_gradient_accumulation(self, h_dim: int, n_layers: int, zpg: int) -> None: + # in this test case, we are testing that hpz should be enabled for the intermediate gradient accumulation steps + # In this test, we should disable loss_scale + config_dict = { + "train_micro_batch_size_per_gpu": 1, + "gradient_accumulation_steps": 3, + "zero_optimization": { + "stage": 3, + "stage3_max_reuse_distance": 0, + "zero_hpz_partition_size": zpg, + "contiguous_gradients": True, + "overlap_comm": True, + }, + "optimizer": { + "type": "Adam", + "params": { + "lr": 1. + } + }, + "fp16": { + "enabled": True, + "loss_scale": 0., + } + } + + model = NNModel(h_dim, n_layers) + model, _, _, _ = deepspeed.initialize(model=model, model_parameters=model.parameters(), config=config_dict) + data_loader = random_dataloader(model=model, total_samples=20, hidden_dim=h_dim, device=model.device) + dist.barrier() + if zpg == 1: + _assert_no_secondary_tensor_group(model) + + for n, batch in enumerate(data_loader): + if n == 0 and zpg != 1: + _assert_secondary_tensor_size(model) + # here we cannot assert that secondary tensor does not exist because the gradient is likely overflowed as we use random data + if n > 0 and n % 3 != 0 and zpg != 1: + # if the previous iteration does not update the model, then the hpz should be enabled + assert _check_secondary_tensor_existence(model), f"n={n}" + loss = model(batch[0], batch[1]) + model.backward(loss) + model.step() + + +@pytest.mark.nightly +@pytest.mark.parametrize("model_name", ["gpt2"]) +class TestZeroPPConvergence(DistributedTest): + world_size = 4 + + def load_and_prepare_data(self, model_name): + """Load model, tokenizer and dataset, and prepare data loader.""" + from datasets import load_dataset + + # Load model and tokenizer + model = AutoModelForCausalLM.from_pretrained(model_name) + tokenizer = AutoTokenizer.from_pretrained(model_name) + tokenizer.pad_token = tokenizer.eos_token + + # Load and tokenize dataset + dataset = load_dataset("wikitext", 'wikitext-103-raw-v1', split='train[:1%]').filter(lambda x: x["text"]) + + def tokenize_function(examples): + # Tokenize and ensure 'labels' are the same as 'input_ids' + tokenized_output = tokenizer(examples["text"], padding="max_length", truncation=True, return_tensors='pt') + tokenized_output["labels"] = tokenized_output["input_ids"].clone() + return tokenized_output + + tokenized_dataset = dataset.map(tokenize_function, batched=True) + tokenized_dataset.set_format('torch', columns=['input_ids', 'attention_mask', 'labels']) + + # Create data loader + data_loader = DataLoader(tokenized_dataset, batch_size=1, shuffle=False) + return model, data_loader + + def get_loss(self, model, data_loader, config_dict, step=500): + """Train the model and calculate average loss.""" + # Initialize DeepSpeed + model, _, _, _ = deepspeed.initialize(model=model, model_parameters=model.parameters(), config=config_dict) + dist.barrier() + model.train() + + # Training loop + losses = [] + for n, batch in enumerate(data_loader): + if n >= step: + break + batch = {k: v.to(model.device) for k, v in batch.items()} + outputs = model(**batch) + loss = outputs.loss + model.backward(loss) + model.step() + losses.append(loss.item()) + + return np.nanmean(losses[-100:]) + + def get_config_dict(self, use_quantized_weights=False, use_hpz=False): + """Generate the configuration dictionary for DeepSpeed.""" + config = { + "train_micro_batch_size_per_gpu": 1, + "zero_optimization": { + "stage": 3, + "stage3_max_reuse_distance": 0, + "contiguous_gradients": True, + "overlap_comm": True, + }, + "optimizer": { + "type": "Adam", + "params": { + "lr": 1e-5 + } + }, + "fp16": { + "enabled": True + } + } + if use_quantized_weights: + config["zero_optimization"]["zero_quantized_weights"] = True + if use_hpz: + config["zero_optimization"]["zero_hpz_partition_size"] = self.world_size // 2 + return config + + def test(self, model_name): + torch.manual_seed(0) + model, data_loader = self.load_and_prepare_data(model_name) + zeropp_loss = self.get_loss(model, data_loader, self.get_config_dict(use_quantized_weights=True, use_hpz=True)) + model, data_loader = self.load_and_prepare_data(model_name) + baseline_loss = self.get_loss(model, data_loader, self.get_config_dict()) + + # Output and assert + print(f"zeropp_loss={zeropp_loss}, baseline_loss={baseline_loss}") + assert zeropp_loss < baseline_loss * 1.1, f"zeropp_loss={zeropp_loss}, baseline_loss={baseline_loss}" diff --git a/tests/unit/sequence_parallelism/test_ulysses.py b/tests/unit/sequence_parallelism/test_ulysses.py new file mode 100644 index 000000000000..bd20900a3d1e --- /dev/null +++ b/tests/unit/sequence_parallelism/test_ulysses.py @@ -0,0 +1,257 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import pytest +import torch +import torch.nn.functional as F +import deepspeed.comm as dist +from deepspeed import initialize +from transformers import AutoModel +from unit.common import DistributedTest +from deepspeed.sequence.layer import _SeqAllToAll +from deepspeed.sequence.fpdt_layer import _FPDTGPUOffloadingAttentionImpl_, FPDT_InputConstruct +from unit.util import skip_on_arch +from unit.simple_model import * +from deepspeed.utils import groups +from deepspeed.module_inject.tp_shard import get_shard_size_list +#Use mesh device to create data and sequence parallel group + + +class TestUlyssesUtils(DistributedTest): + world_size = 4 + + def test_mesh_device_creation(self) -> None: + skip_on_arch(min_arch=8) + model = AutoModel.from_pretrained('bert-base-uncased') + sp_size = 2 + dp_size = 2 + ds_engine, _, _, _ = initialize( + model=model, + config_params={ + "train_batch_size": 8, + "data_parallel_size": dp_size, + "sequence_parallel_size": sp_size + }, + ) + assert ds_engine.seq_parallel_group is not None + assert ds_engine.data_parallel_group is not None + assert dist.get_world_size(group=ds_engine.seq_parallel_group) == sp_size + assert dist.get_world_size(group=ds_engine.data_parallel_group) == dp_size + assert dist.get_world_size() == sp_size * dp_size + + +#Sweep b,s,h,d to test all2all consistency +@pytest.mark.parametrize("d0", [2, 4]) #batch or sequence dimension +@pytest.mark.parametrize("d1", [4, 8]) #batch or sequence dimension +@pytest.mark.parametrize("num_heads", [4, 8]) +@pytest.mark.parametrize("head_dim", [16, 32]) +class TestUlyssesAll2All(DistributedTest): + world_size = 4 + + def test_alltoall_output_consistency(self, d0: int, d1: int, head_dim: int, num_heads: int) -> None: + skip_on_arch(min_arch=8) + model = AutoModel.from_pretrained('bert-base-uncased') + ds_engine, _, _, _ = initialize(model=model, config_params={"train_batch_size": 8}, mesh_param=(2, 2)) + #4D tensor : b,s,h,d or s,b,h,d + input_tensor = torch.randn(d0, d1, num_heads, head_dim, device=ds_engine.device) + scatter_idx = 2 + batch_dim_idx = 0 + outputs = [] + seq_dims = [0] #seq first API + #TODO: Add support for batch first (that seq_dims=[0,1]) after PR for bs>1 issue with batch first is fixed + ## See discussion in : https://github.com/deepspeedai/DeepSpeed/issues/5808 + for seq_dim in seq_dims: + gather_idx = seq_dim + #first all2all: sequence parallel to head parallel + s2h_tensor = _SeqAllToAll.apply(ds_engine.seq_parallel_group, input_tensor, scatter_idx, gather_idx, + batch_dim_idx) + + #No op + # second all2all: head parallel to sequence parallel + h2s_tensor = _SeqAllToAll.apply(ds_engine.seq_parallel_group, s2h_tensor, gather_idx, scatter_idx, + batch_dim_idx) + print( + f'[{dist.get_rank()}] s={seq_dim} input: {input_tensor.shape} s2h: {s2h_tensor.shape} h2s_tensor: {h2s_tensor.shape}' + ) + outputs.append(h2s_tensor) + + # Check outputs are the same as input + for i in range(1, len(outputs)): + assert torch.allclose(input_tensor, outputs[i]), f"Outputs differ for sequence dim {seq_dims[i]}" + + +@pytest.mark.parametrize("d0", [2, 4]) #batch or sequence dimension +@pytest.mark.parametrize("d1", [4, 8]) #batch or sequence dimension +@pytest.mark.parametrize("num_heads", [3, 7]) +@pytest.mark.parametrize("head_dim", [16]) +class TestUlyssesAll2All_odd(DistributedTest): + world_size = 4 + + def test_alltoall_output_consistency(self, d0: int, d1: int, head_dim: int, num_heads: int) -> None: + + data_parallel_size = 2 + seq_parallel_size = self.world_size // data_parallel_size + skip_on_arch(min_arch=8) + + def seq_batch_heads_hash(d0, d1, h, offset_d0=0, offset_d1=0, offset_h=0): + d0 += offset_d0 + d1 += offset_d1 + h += offset_h + return d0 * 10 + h + d1 * 0.1 + + hidden_dim = 10 + model = SimpleModel(hidden_dim) + ds_engine, _, _, _ = initialize(model=model, + config_params={"train_batch_size": 8}, + mesh_param=(data_parallel_size, seq_parallel_size)) + + scatter_idx = 2 + outputs = [] + inputs = [] + batch_dims = [0, 1] + seq_dims = [1, 0] + + for idx, seq_dim in enumerate(seq_dims): + gather_idx = seq_dim + batch_dim_idx = batch_dims[idx] + + #4D tensor : b,s,h,d or s,b,h,d + #create a hash tensor from pos_id, head_id, and batch_id + d0_indices = torch.arange(d0).reshape(-1, 1, 1, 1) + d1_indices = torch.arange(d1).reshape(1, -1, 1, 1) + h_indices = torch.arange(num_heads).reshape(1, 1, -1, 1) + input_tensor = torch.randn(d0, d1, num_heads, head_dim, device=ds_engine.device) + if batch_dim_idx == 1: #seq_len_dim : 0(d0) + input_tensor[:] = seq_batch_heads_hash(d0_indices, d1_indices, h_indices, + d0 * groups._get_sequence_parallel_rank(), 0) + elif batch_dim_idx == 0: #seq_len_dim : 1(d1) + input_tensor[:] = seq_batch_heads_hash(d0_indices, d1_indices, h_indices, 0, + d1 * groups._get_sequence_parallel_rank()) + inputs.append(input_tensor) + + ### first all2all: sequence parallel to head parallel + s2h_tensor = _SeqAllToAll.apply(ds_engine.seq_parallel_group, input_tensor, scatter_idx, gather_idx, + batch_dim_idx) + + # s2h_tensor check for the first all2all: compare with the expected ground truth + d0_indices = torch.arange(s2h_tensor.shape[0]).reshape(-1, 1, 1, 1) + d1_indices = torch.arange(s2h_tensor.shape[1]).reshape(1, -1, 1, 1) + h_indices = torch.arange(s2h_tensor.shape[2]).reshape(1, 1, -1, 1) + shard_list = get_shard_size_list(num_heads, groups._get_sequence_parallel_world_size()) + head_offset = sum(shard_list[:groups._get_sequence_parallel_rank()]) + s2h_truth = torch.zeros_like(s2h_tensor) + s2h_truth[:] = seq_batch_heads_hash(d0_indices, d1_indices, h_indices, 0, 0, head_offset) + + assert torch.allclose(s2h_truth, + s2h_tensor), f"s2h_tensor differs from the expected for sequence dim: {seq_dim}" + #No op + ### second all2all: head parallel to sequence parallel + h2s_tensor = _SeqAllToAll.apply(ds_engine.seq_parallel_group, s2h_tensor, gather_idx, scatter_idx, + batch_dim_idx) + print( + f'[{dist.get_rank()}] s={seq_dim} input: {input_tensor.shape} s2h: {s2h_tensor.shape} h2s_tensor: {h2s_tensor.shape}' + ) + outputs.append(h2s_tensor) + + # Check outputs for the second all2all + for i in range(0, len(outputs)): + assert torch.allclose(inputs[i], + outputs[i]), f"[{dist.get_rank()}]Outputs differ for sequence dim {seq_dims[i]}" + + +@pytest.mark.parametrize("d0", [4, 1]) #batch dimension +@pytest.mark.parametrize("d1", [2048, 8192]) #sequence dimension +@pytest.mark.parametrize("chunk_size", [128, 256]) #size of chunk +@pytest.mark.parametrize("num_heads", [8, 4]) +@pytest.mark.parametrize("head_dim", [32]) +class TestFPDTAttention(DistributedTest): + + def test_FPDT_attention_offloading_output_consistency(self, d0: int, d1: int, chunk_size: int, head_dim: int, + num_heads: int) -> None: + skip_on_arch(min_arch=8) + world_size = 2 + + try: + from flash_attn.flash_attn_interface import _flash_attn_forward, _flash_attn_backward + except ImportError: + _flash_attn_forward = None + _flash_attn_backward = None + + if _flash_attn_forward is None or _flash_attn_backward is None: + pytest.skip("Flash Attention is not available.") + + model = AutoModel.from_pretrained('bert-base-uncased') + ds_engine, _, _, _ = initialize( + model=model, + config_params={ + "train_batch_size": 8, + "data_parallel_size": 1, + "sequence_parallel_size": world_size + }, + ) + #3D tensor : l, b, d + dim = head_dim * num_heads + + seed = 42 + torch.manual_seed(seed) + get_accelerator().manual_seed_all(seed) + + input_tensor = torch.randn(d1, d0, dim, device=ds_engine.device, dtype=torch.half) # l, b, d + spg = ds_engine.seq_parallel_group + + dist.broadcast(input_tensor, src=0, group=spg) + + class args: + + def __init__(self): + self.ds_sequence_parallel_fpdt_chunk_size = chunk_size + + fpdt_input_tensor = FPDT_InputConstruct(input_tensor.permute(1, 0, 2), None, None, None, None, args(), + world_size, dist.get_rank()).generate()[0].permute(1, 0, 2) + + if dist.get_rank() == 0: + qkv_linear_weight = torch.nn.Parameter( + torch.empty(dim + 2 * dim, dim, device=dist.get_rank(), dtype=torch.half)) + torch.nn.init.normal_(qkv_linear_weight, mean=0.0, std=0.02) + + qkv_linear_bias = torch.nn.Parameter(torch.empty(dim + 2 * dim, device=dist.get_rank(), dtype=torch.half)) + torch.nn.init.normal_(qkv_linear_bias, mean=0.0, std=0.02) + else: + qkv_linear_weight = torch.nn.Parameter( + torch.empty(dim + 2 * dim, dim, device=dist.get_rank(), dtype=torch.half)) + qkv_linear_bias = torch.nn.Parameter(torch.empty(dim + 2 * dim, device=dist.get_rank(), dtype=torch.half)) + + dist.broadcast(qkv_linear_weight, src=0, group=spg) + dist.broadcast(qkv_linear_bias, src=0, group=spg) + + num_chunks_attn = fpdt_input_tensor.shape[0] * dist.get_world_size(spg) // chunk_size + fpdt_output = _FPDTGPUOffloadingAttentionImpl_.apply(fpdt_input_tensor, None, None, None, spg, 2, 0, dim, dim, + head_dim, dim, qkv_linear_weight, qkv_linear_bias, 0, + num_chunks_attn, True) + + # baseline + qkv = torch.matmul(input_tensor, qkv_linear_weight.t()) + qkv_linear_bias + q = qkv[:, :, :dim].contiguous().reshape(qkv.shape[0], qkv.shape[1], -1, head_dim).permute(1, 2, 0, + 3).contiguous() + k = qkv[:, :, dim:dim * 2].contiguous().reshape(qkv.shape[0], qkv.shape[1], -1, + head_dim).permute(1, 2, 0, 3).contiguous() + v = qkv[:, :, dim * 2:dim * 3].contiguous().reshape(qkv.shape[0], qkv.shape[1], -1, + head_dim).permute(1, 2, 0, + 3).contiguous() # b, nhead, l, d + + scores = torch.matmul(q, k.transpose(-2, -1)) / torch.sqrt(torch.tensor(dim, dtype=torch.half)) + + causal_mask = torch.triu(torch.ones(d1, d1, device=ds_engine.device), diagonal=1).bool() + causal_mask = causal_mask.unsqueeze(0).unsqueeze(0) + scores = scores.masked_fill(causal_mask, float('-inf')) + attn_weights = F.softmax(scores, dim=-1) + output = torch.matmul(attn_weights, v).permute(0, 2, 1, 3) + + baseline_output_shuffled = FPDT_InputConstruct(output, None, None, None, None, args(), world_size, + dist.get_rank()).generate()[0] # b, l, n, d + + assert torch.allclose( + fpdt_output, baseline_output_shuffled, rtol=0.01, atol=0.1 + ), f"rank {dist.get_rank()}, sp size: {dist.get_world_size(spg)}, input_tensor: {input_tensor.shape}, fpdt_input_tensor: {fpdt_input_tensor.shape}, fpdt_output: {fpdt_output.shape}, baseline_output_shuffled: {baseline_output_shuffled.shape},{torch.max(torch.abs(fpdt_output - baseline_output_shuffled))}" diff --git a/tests/unit/simple_model.py b/tests/unit/simple_model.py index 01ce3d2fe4c9..a5538a8c6e68 100644 --- a/tests/unit/simple_model.py +++ b/tests/unit/simple_model.py @@ -14,6 +14,7 @@ from deepspeed.accelerator import get_accelerator import deepspeed.comm as dist +from .common import preferred_dtype class SimpleModel(torch.nn.Module): @@ -78,7 +79,7 @@ def forward(self, x, y, **kwargs): class SimpleMoEModel(torch.nn.Module): - def __init__(self, hidden_dim, num_experts=4, ep_size=1, use_residual=False): + def __init__(self, hidden_dim, num_experts=4, ep_size=1, use_residual=False, use_rts=True): super(SimpleMoEModel, self).__init__() self.linear1 = torch.nn.Linear(hidden_dim, hidden_dim) expert = torch.nn.Sequential(torch.nn.Linear(hidden_dim, hidden_dim), torch.nn.Linear(hidden_dim, hidden_dim)) @@ -88,7 +89,8 @@ def __init__(self, hidden_dim, num_experts=4, ep_size=1, use_residual=False): ep_size=ep_size, use_residual=use_residual, num_experts=num_experts, - k=1) + k=1, + use_rts=use_rts) # interleaving MoE modules with dense to create an opportunity # for gradients to be merged in ZeRO stage 2 average_tensor reduce bucket self.linear2 = torch.nn.Linear(hidden_dim, hidden_dim) @@ -97,7 +99,8 @@ def __init__(self, hidden_dim, num_experts=4, ep_size=1, use_residual=False): ep_size=ep_size, use_residual=use_residual, num_experts=num_experts, - k=1) + k=1, + use_rts=use_rts) self.linear3 = torch.nn.Linear(hidden_dim, hidden_dim) self.cross_entropy_loss = torch.nn.CrossEntropyLoss() @@ -262,21 +265,21 @@ def forward(self, x, y, **kwargs): return hidden_dim -def random_dataset(total_samples, hidden_dim, device, dtype=torch.half): +def random_dataset(total_samples, hidden_dim, device, dtype=preferred_dtype()): train_data = torch.randn(total_samples, hidden_dim, device=device, dtype=dtype) train_label = torch.empty(total_samples, dtype=torch.long, device=device).random_(hidden_dim) train_dataset = torch.utils.data.TensorDataset(train_data, train_label) return train_dataset -def random_dataloader(model, total_samples, hidden_dim, device, dtype=torch.half): +def random_dataloader(model, total_samples, hidden_dim, device, dtype=preferred_dtype()): batch_size = model.train_micro_batch_size_per_gpu() train_dataset = random_dataset(total_samples, hidden_dim, device, dtype=dtype) train_loader = torch.utils.data.DataLoader(train_dataset, batch_size=batch_size) return train_loader -def sequence_dataloader(model, total_samples, hidden_dim, device, seq_len: int = 32, dtype=torch.half): +def sequence_dataloader(model, total_samples, hidden_dim, device, seq_len: int = 32, dtype=preferred_dtype()): batch_size = model.train_micro_batch_size_per_gpu() train_data = torch.randn(total_samples, seq_len, hidden_dim, device=device, dtype=dtype) train_label = torch.empty(total_samples, dtype=torch.long, device=device).random_(hidden_dim) diff --git a/tests/unit/util.py b/tests/unit/util.py index 13eab3ef3a72..dba29ed27a4c 100644 --- a/tests/unit/util.py +++ b/tests/unit/util.py @@ -5,9 +5,10 @@ import pytest import torch + +import deepspeed from deepspeed.accelerator import get_accelerator, is_current_accelerator_supported from deepspeed.git_version_info import torch_info -from packaging import version as pkg_version def skip_on_arch(min_arch=7): @@ -39,7 +40,7 @@ def bf16_required_version_check(accelerator_check=True): # Sometimes bf16 tests are runnable even if not natively supported by accelerator if accelerator_check: - accelerator_pass = torch_info['bf16_support'] + accelerator_pass = get_accelerator().is_bf16_supported() else: accelerator_pass = True @@ -47,32 +48,43 @@ def bf16_required_version_check(accelerator_check=True): cuda_version_available = CUDA_MAJOR >= 11 nccl_version_available = NCCL_MAJOR > 2 or (NCCL_MAJOR == 2 and NCCL_MINOR >= 10) npu_available = get_accelerator().device_name() == 'npu' + hpu_available = get_accelerator().device_name() == 'hpu' + xpu_available = get_accelerator().device_name() == 'xpu' if torch_version_available and cuda_version_available and nccl_version_available and accelerator_pass: return True elif npu_available: return True + elif hpu_available: + return True + elif xpu_available: + return True else: return False -def required_torch_version(min_version=None, max_version=None): - assert min_version or max_version, "Must provide a min_version or max_version argument" - - torch_version = pkg_version.parse(torch.__version__) - - if min_version and pkg_version.parse(str(min_version)) > torch_version: - return False - - if max_version and pkg_version.parse(str(max_version)) < torch_version: - return False - - return True - - def required_amp_check(): from importlib.util import find_spec if find_spec('apex') is None: return False else: return True + + +class no_child_process_in_deepspeed_io: + + def __enter__(self): + # deepspeed_io defaults to creating a dataloader that uses a + # multiprocessing pool. Our tests use pools and we cannot nest pools in + # python. Therefore we're injecting this kwarg to ensure that no pools + # are used in the dataloader. + self.old_method = deepspeed.runtime.engine.DeepSpeedEngine.deepspeed_io + + def new_method(*args, **kwargs): + kwargs["num_local_io_workers"] = 0 + return self.old_method(*args, **kwargs) + + deepspeed.runtime.engine.DeepSpeedEngine.deepspeed_io = new_method + + def __exit__(self, *_): + deepspeed.runtime.engine.DeepSpeedEngine.deepspeed_io = self.old_method diff --git a/tests/unit/utils/test_groups.py b/tests/unit/utils/test_groups.py index d8f12be4f3c6..5cd35baf3510 100644 --- a/tests/unit/utils/test_groups.py +++ b/tests/unit/utils/test_groups.py @@ -18,7 +18,7 @@ def test_get_expert_parallel_ranks(): expert_data_parallel_group = [0,8],[2,10],[4,12],[6,14], [1,9],[3,11],[5,13],[7,15] """ expert_parallel_groups, expert_data_parallel_groups = _get_expert_parallel_ranks(world_size=16, - model_parallel_size_=2, + tensor_parallel_size_=2, expert_parallel_size_=4) assert expert_parallel_groups == [ [0, 2, 4, 6], diff --git a/tests/unit/utils/test_partition_balanced.py b/tests/unit/utils/test_partition_balanced.py new file mode 100644 index 000000000000..e7285e478c53 --- /dev/null +++ b/tests/unit/utils/test_partition_balanced.py @@ -0,0 +1,25 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from deepspeed.runtime import utils as ds_utils + + +def check_partition(weights, num_parts, target_diff): + result = ds_utils.partition_balanced(weights=weights, num_parts=num_parts) + + parts_sum = [] + for b, e in zip(result[:-1], result[1:]): + parts_sum.append(sum(weights[b:e])) + + assert max(parts_sum) - min( + parts_sum + ) == target_diff, f"ds_utils.partition_balanced(weights={weights}, num_parts={num_parts}) return {result}" + + +def test_partition_balanced(): + check_partition([1, 2, 1], 4, target_diff=2) + check_partition([1, 1, 1, 1], 4, target_diff=0) + check_partition([1, 1, 1, 1, 1], 4, target_diff=1) + check_partition([1, 1, 1, 1, 0, 1], 4, target_diff=1) diff --git a/version.txt b/version.txt index e01e0ddd8e8b..19270385eaf7 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -0.12.4 +0.16.5 From d0f75b35aa8680532da77ad23c6cc5083961f734 Mon Sep 17 00:00:00 2001 From: Kyle1668 Date: Sun, 9 Mar 2025 22:21:49 -0500 Subject: [PATCH 15/20] Update launcher for prime intellect infra --- deepspeed/launcher/multinode_runner.py | 30 ++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/deepspeed/launcher/multinode_runner.py b/deepspeed/launcher/multinode_runner.py index cee9efbc1622..972a7f7394ba 100644 --- a/deepspeed/launcher/multinode_runner.py +++ b/deepspeed/launcher/multinode_runner.py @@ -174,15 +174,37 @@ def get_cmd(self, environment, active_resources): btl_tcp_opt = [] break + # TODO: mpirun --allow-run-as-root -np 32 -x PATH -x LD_LIBRARY_PATH --bind-to none -mca btl tcp,self -mca coll_hcoll_enable 0 -x NCCL_IB_AR_THRESHOLD=0 -x NCCL_IB_PCI_RELAXED_ORDERING=1 -x NCCL_IB_SPLIT_DATA_ON_QPS=0 -x NCCL_IB_QPS_PER_CONNECTION=2 -x CUDA_DEVICE_ORDER=PCI_BUS_ID -mca plm_rsh_args "-p 2222" --hostfile /root/hostfile ./build/all_reduce_perf -b 8 -e 8G -f 2 -g 1 mpirun_cmd = [ 'mpirun', - '-n', + '--allow-run-as-root', + '-np', f'{total_process_count}', '-hostfile', f'{self.args.hostfile}', - '--mca', - 'btl', + '-mca', + 'btl tcp,self', + '-mca', + 'coll_hcoll_enable 0', + '-mca', + 'plm_rsh_args "-p 2222"' '^openib', + '-x', + 'PATH', + '-x', + 'LD_LIBRARY_PATH', + '-x', + 'NCCL_IB_AR_THRESHOLD=0', + '-x', + 'NCCL_IB_PCI_RELAXED_ORDERING=1', + '-x', + 'NCCL_IB_SPLIT_DATA_ON_QPS=0', + '-x', + 'NCCL_IB_QPS_PER_CONNECTION=2', + '-x', + 'CUDA_DEVICE_ORDER=PCI_BUS_ID', + '--bind-to', + 'none', ] + btl_tcp_opt + launcher_args export_cmd = [] @@ -470,7 +492,7 @@ def get_cmd(self, environment, active_resources): if self.args.include != "": srun_cmd.append('--nodelist') - srun_cmd.append(self._pdsh_include_to_nodelist(self.args.include)) + srun_cmd.append(self._pdsh_include_to_nodelist(self.args.include)) if self.args.num_nodes > 0: srun_cmd.append('--nodes') From 5ab1fe46c46319d9a317e4d13c4d1bee6d4bd0e2 Mon Sep 17 00:00:00 2001 From: Kyle1668 Date: Sun, 9 Mar 2025 22:49:33 -0500 Subject: [PATCH 16/20] Remove ssh check when starting --- deepspeed/launcher/runner.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deepspeed/launcher/runner.py b/deepspeed/launcher/runner.py index b4932b2d8381..648dc930822e 100755 --- a/deepspeed/launcher/runner.py +++ b/deepspeed/launcher/runner.py @@ -481,7 +481,7 @@ def main(args=None): ssh_check_cmd += f"-p {args.ssh_port} " ssh_check_cmd += f"{first_host} hostname" safe_ssh_cmd = shlex.split(ssh_check_cmd) - subprocess.check_call(safe_ssh_cmd, stderr=subprocess.DEVNULL, stdout=subprocess.DEVNULL) + # subprocess.check_call(safe_ssh_cmd, stderr=subprocess.DEVNULL, stdout=subprocess.DEVNULL) except subprocess.CalledProcessError: raise RuntimeError( f"Using hostfile at {args.hostfile} but host={first_host} was not reachable via ssh. If you are running with a single node please remove {args.hostfile} or setup passwordless ssh." From 2d991ba352b73e1bdc3d754a245bb85d61f0eb6e Mon Sep 17 00:00:00 2001 From: Kyle1668 Date: Sun, 9 Mar 2025 23:14:35 -0500 Subject: [PATCH 17/20] Set default deepspeed ssh to 2222 --- deepspeed/launcher/runner.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deepspeed/launcher/runner.py b/deepspeed/launcher/runner.py index 648dc930822e..b75098e6489f 100755 --- a/deepspeed/launcher/runner.py +++ b/deepspeed/launcher/runner.py @@ -219,7 +219,7 @@ def parse_args(args=None): "numbers and range. i.e. 1,3-5,7 => [1,3,4,5,7]. When not " "specified, all cores on system would be used rank binding") - parser.add_argument("--ssh_port", type=int, default=None, help="SSH port to use for remote connections") + parser.add_argument("--ssh_port", type=int, default=2222, help="SSH port to use for remote connections") return parser.parse_args(args=args) From 06ae7e07d40bb0220faa7fc11af803b2c258c16e Mon Sep 17 00:00:00 2001 From: Kyle1668 Date: Mon, 10 Mar 2025 00:56:40 -0500 Subject: [PATCH 18/20] Comment out _setup_mpi_environment --- deepspeed/launcher/multinode_runner.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/deepspeed/launcher/multinode_runner.py b/deepspeed/launcher/multinode_runner.py index 972a7f7394ba..389d1bfa9a3a 100644 --- a/deepspeed/launcher/multinode_runner.py +++ b/deepspeed/launcher/multinode_runner.py @@ -137,7 +137,8 @@ def validate_args(self): super().validate_args() # Validate and set MPI environment variables - self._setup_mpi_environment() + # Quentin suggestion + # self._setup_mpi_environment() #TODO: Allow for include/exclude at node-level but not gpu-level if self.args.include != "" or self.args.exclude != "": From ba81813673ad34322fb97dcd31ef60411b28def2 Mon Sep 17 00:00:00 2001 From: Kyle1668 Date: Mon, 10 Mar 2025 00:59:34 -0500 Subject: [PATCH 19/20] Fix concat with 2222 --- deepspeed/launcher/multinode_runner.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deepspeed/launcher/multinode_runner.py b/deepspeed/launcher/multinode_runner.py index 389d1bfa9a3a..264cf90bf310 100644 --- a/deepspeed/launcher/multinode_runner.py +++ b/deepspeed/launcher/multinode_runner.py @@ -188,7 +188,7 @@ def get_cmd(self, environment, active_resources): '-mca', 'coll_hcoll_enable 0', '-mca', - 'plm_rsh_args "-p 2222"' + 'plm_rsh_args "-p 2222"', '^openib', '-x', 'PATH', From f5368de63b6aac4b6e413ee8ac4136ec77b0e275 Mon Sep 17 00:00:00 2001 From: Kyle1668 Date: Mon, 10 Mar 2025 01:02:44 -0500 Subject: [PATCH 20/20] Remove openib --- deepspeed/launcher/multinode_runner.py | 1 - 1 file changed, 1 deletion(-) diff --git a/deepspeed/launcher/multinode_runner.py b/deepspeed/launcher/multinode_runner.py index 264cf90bf310..e72d47f904ac 100644 --- a/deepspeed/launcher/multinode_runner.py +++ b/deepspeed/launcher/multinode_runner.py @@ -189,7 +189,6 @@ def get_cmd(self, environment, active_resources): 'coll_hcoll_enable 0', '-mca', 'plm_rsh_args "-p 2222"', - '^openib', '-x', 'PATH', '-x',
    More news

    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%0ArB~OLLPvlNDjj48}hafD?MQ%2BR#h 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�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

    OU(W9>KK428*nf=)%dPM+$v8l9Y6s}r8m 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℘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%0A<>~FPJ0?2SsIo_!fAfvcm1JA%my;9D>D_77jDx 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

    ~;-`IRl>)4`|u3E?|-~ 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

    os@s&bR|8;=%me*4uV}WNL&X zWp-?-Qj0y5aoH)VQu;X=*S&q&mc>8r0wY!Qa_#s8D#5o18eu@M?Q$$-Ru`*)`y(`p zsf4gPH}ZkF3Q|AlSelsm*G!tvfbGIW=Q@5}w|3$#z3|YvN+wcd=pbCcSY6O~nHC`9 zZMWD{Eyw@vl}`p|$ip1dujD+&r$Z1}s@PA_$bIb6^s#kDE?7sKZw4kH9)C6CS+zF^vU zu-Hi%3i<8J-bR0fBe7sPRep|sG8|ZZ!=^_rt|#Dy#DR;PcAm~F9>DCmEnI`r?fAWf zKUQMegWqCn5#8Tup=;KvIcbdj%?LkWCjV0myqkMi>$b(o2n7f;jf=)jgVA_sy!4dt zOasa)og%0XMrKRPz&URCEx+!IWMdkMi4n-i~5+YLS4}E;=1(cClS=2ZtRV zC6n@;UNG98qjjkUV35P)QY;>4m2hgs+`5q`;<~uR@6(}d*-#oUjWKvX(@19VVn;~o zs%z0v^}b%`a`&^q^PT5TO-DBwaR;2vXO2O6qR9HRvpgl0a;yWAn5Dbz2cYbdp4^Tc zAvohEf5efsY_ggg{C#hAA_11LGk7^xvKEtiKIKrFqDWDqs2sV^19IW4u4-BkF9TA& zsqZ==dMM^Cv^ox1aFlH1nE7YULoEfMkw3QV=fWRda5{#b_q;diZm`3%L>&KxIJu8` z#ki6oR2stE{kIBQ5!Ll+p>kb-cTm6??DUi=8$nB7lzrM3Ikz;-bv%L*wlA5ytry!m zF{`QA)Ai?0f32J!%dJP83KCtc4^v3|8h7NX4Z$~FrvxCG=b@R?r>E2}jS7yO1)R>i zV;swQ*ohAkIJ@|PzO=;tFT6HRU=!8UK~Lc&$Q=L9m?;jL72nDw!9!Ofis|>6(6iYh zG=5sP4CwbWx(+v9WdgBV;FaZn(6gzbSfupMyjs}xx5O|vd4=QW1uAJgK?vKQvTa4) z)?`C+6Lv_S;l`0u7$riiCZyWN6>YBN>y`_r7W?O9qXxc=tvG?5L@=-KQa0(^#@@SH z!w!cSr)!-do;URf)gcl`++}QFNg)87PHG~I{f&^x0L8Z&8%8$&^l|+qG?VY@y_de? z7%tY*tl%D0cDxBm!)E0lthWdOrjL?Bd!lIs^&^sq0|U~dgZM&*@`))#Vd6GRlMK~Q zE-SLNl=$k3JzKoV>&F_XX9cRK53CZ^vFo1znsnXG;2L3_Y&;=@s;|Mq_J>r`OROd| zQd|#^32#qGW=+g=ovE!}mNiq@3?s2G6E<)C>(!BJAdE0%ey?Si_Ham6xJ9AyqU~R% zgmw+k{4ToL{*dIElbriL-!bNp`Fqce?7~-z#sIKW3e#z7L(ky-KFXuLxAmFlEzc7t z$*w;XdqZVEf=dY-(ZsLBCqyw29st^yU_?jFwQ!xHdW3Os6>n0(#Q<=8!!_}N^Qi9WuUT6O0WMzx{(gLdf(;1w-q#(?!&utyFMjN%CXjDw8s_M zL}HVlmcqZRzO~Oej)=H+#CT(t<_uj`XIYsi$VL_FW3to7q*`7>$@|x0(7r*Ny@_SI z-63>xm;weGWsm8L^guY$fyKJvQ3|4|D!JBvB|%{{`c+w=Bocf@+W8i7l;1` e4kS^)A-nJwp#Bfl-hY_rFCDGhsPbzz5&r{9mKclx literal 0 HcmV?d00001 diff --git a/blogs/ulysses-offload/media/image3.png b/blogs/ulysses-offload/media/image3.png new file mode 100644 index 0000000000000000000000000000000000000000..7777b1b245dde404dc71e6641a929fb6816320c6 GIT binary patch literal 187041 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�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 {XDp$tK@ql`(3N7_B^!w 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 literal 0 HcmV?d00001 diff --git a/blogs/ulysses-offload/media/image4.png b/blogs/ulysses-offload/media/image4.png new file mode 100644 index 0000000000000000000000000000000000000000..05226922851b4b57166def9182a2bda6a745da39 GIT binary patch literal 319690 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