From 227a60c0c412ddf4619401b5d8d9d1674aee17b5 Mon Sep 17 00:00:00 2001 From: Masahiro Tanaka <81312776+tohtana@users.noreply.github.com> Date: Tue, 15 Apr 2025 21:33:53 -0700 Subject: [PATCH] DeepCompile for enhanced compiler integration (#7154) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR introduces *DeepCompile*, a new feature that efficiently integrates compiler optimizations with other DeepSpeed features. DeepCompile utilizes torch's dynamo to capture the computation graph and modifies it to incorporate DeepSpeed’s optimizations seamlessly. Currently, DeepCompile supports ZeRO-1 and ZeRO-3, with enhancements such as proactive prefetching and selective unsharding to improve performance. (More details will be added later.) --------- Signed-off-by: Masahiro Tanaka Signed-off-by: Olatunji Ruwase Co-authored-by: zafarsadiq Co-authored-by: Logan Adams <114770087+loadams@users.noreply.github.com> Co-authored-by: Olatunji Ruwase --- .github/workflows/nv-pre-compile-ops.yml | 2 +- .github/workflows/nv-torch-latest-v100.yml | 2 +- README.md | 1 + blogs/deepcompile/README.md | 168 +++++ blogs/deepcompile/media/opt_loop.png | Bin 0 -> 363425 bytes blogs/deepcompile/media/perf_offload.png | Bin 0 -> 64212 bytes blogs/deepcompile/media/perf_summary.png | Bin 0 -> 197560 bytes blogs/deepcompile/media/perf_zero1.png | Bin 0 -> 119820 bytes blogs/deepcompile/media/perf_zero3.png | Bin 0 -> 132266 bytes blogs/deepcompile/media/workflow.png | Bin 0 -> 87417 bytes build_win.bat | 1 + csrc/compile/deepcompile.cpp | 188 ++++++ csrc/compile/init.cpp | 99 +++ csrc/compile/util.cpp | 89 +++ csrc/compile/z1.cpp | 141 +++++ csrc/compile/z1.h | 18 + csrc/compile/z3.cpp | 544 +++++++++++++++++ csrc/compile/z3.h | 48 ++ csrc/includes/deepcompile.h | 576 ++++++++++++++++++ deepspeed/comm/comm.py | 11 + deepspeed/comm/torch.py | 7 + deepspeed/compile/__init__.py | 4 + deepspeed/compile/backend.py | 279 +++++++++ deepspeed/compile/config.py | 46 ++ deepspeed/compile/fx.py | 139 +++++ deepspeed/compile/graph_param.py | 84 +++ deepspeed/compile/inductor.py | 214 +++++++ deepspeed/compile/init_z1.py | 82 +++ deepspeed/compile/init_z3.py | 94 +++ deepspeed/compile/list_schedule.py | 431 +++++++++++++ deepspeed/compile/partitioner.py | 158 +++++ deepspeed/compile/passes/__init__.py | 48 ++ .../compile/passes/offload_activation.py | 116 ++++ .../compile/passes/offload_adam_states.py | 546 +++++++++++++++++ .../compile/passes/offload_parameters.py | 54 ++ deepspeed/compile/passes/prefetch.py | 174 ++++++ deepspeed/compile/passes/selective_gather.py | 146 +++++ deepspeed/compile/passes/zero1_compile.py | 55 ++ deepspeed/compile/passes/zero3_compile.py | 186 ++++++ deepspeed/compile/patch_compiled_func.py | 93 +++ deepspeed/compile/patch_fake_tensor.py | 53 ++ deepspeed/compile/profilers/__init__.py | 23 + deepspeed/compile/profilers/comm_profile.py | 171 ++++++ deepspeed/compile/profilers/graph_profile.py | 295 +++++++++ deepspeed/compile/util.py | 429 +++++++++++++ deepspeed/ops/compile/__init__.py | 6 + deepspeed/runtime/config.py | 3 + deepspeed/runtime/engine.py | 72 ++- deepspeed/runtime/zero/parameter_offload.py | 10 +- .../runtime/zero/partition_parameters.py | 5 +- deepspeed/runtime/zero/stage3.py | 3 +- op_builder/dc.py | 32 + requirements/requirements-deepcompile.txt | 1 + setup.py | 1 + .../unit/runtime/compile/test_compile_zero.py | 46 ++ tests/unit/runtime/compile/util.py | 10 +- 56 files changed, 5989 insertions(+), 15 deletions(-) create mode 100644 blogs/deepcompile/README.md create mode 100644 blogs/deepcompile/media/opt_loop.png create mode 100644 blogs/deepcompile/media/perf_offload.png create mode 100644 blogs/deepcompile/media/perf_summary.png create mode 100644 blogs/deepcompile/media/perf_zero1.png create mode 100644 blogs/deepcompile/media/perf_zero3.png create mode 100644 blogs/deepcompile/media/workflow.png create mode 100644 csrc/compile/deepcompile.cpp create mode 100644 csrc/compile/init.cpp create mode 100644 csrc/compile/util.cpp create mode 100644 csrc/compile/z1.cpp create mode 100644 csrc/compile/z1.h create mode 100644 csrc/compile/z3.cpp create mode 100644 csrc/compile/z3.h create mode 100644 csrc/includes/deepcompile.h create mode 100644 deepspeed/compile/__init__.py create mode 100644 deepspeed/compile/backend.py create mode 100644 deepspeed/compile/config.py create mode 100644 deepspeed/compile/fx.py create mode 100644 deepspeed/compile/graph_param.py create mode 100644 deepspeed/compile/inductor.py create mode 100644 deepspeed/compile/init_z1.py create mode 100644 deepspeed/compile/init_z3.py create mode 100644 deepspeed/compile/list_schedule.py create mode 100644 deepspeed/compile/partitioner.py create mode 100644 deepspeed/compile/passes/__init__.py create mode 100644 deepspeed/compile/passes/offload_activation.py create mode 100644 deepspeed/compile/passes/offload_adam_states.py create mode 100644 deepspeed/compile/passes/offload_parameters.py create mode 100644 deepspeed/compile/passes/prefetch.py create mode 100644 deepspeed/compile/passes/selective_gather.py create mode 100644 deepspeed/compile/passes/zero1_compile.py create mode 100644 deepspeed/compile/passes/zero3_compile.py create mode 100644 deepspeed/compile/patch_compiled_func.py create mode 100644 deepspeed/compile/patch_fake_tensor.py create mode 100644 deepspeed/compile/profilers/__init__.py create mode 100644 deepspeed/compile/profilers/comm_profile.py create mode 100644 deepspeed/compile/profilers/graph_profile.py create mode 100644 deepspeed/compile/util.py create mode 100755 deepspeed/ops/compile/__init__.py create mode 100644 op_builder/dc.py create mode 100644 requirements/requirements-deepcompile.txt diff --git a/.github/workflows/nv-pre-compile-ops.yml b/.github/workflows/nv-pre-compile-ops.yml index fc810bc19..53e2aad85 100644 --- a/.github/workflows/nv-pre-compile-ops.yml +++ b/.github/workflows/nv-pre-compile-ops.yml @@ -36,7 +36,7 @@ jobs: #python -c "import torch; print('CUDA available:', torch.cuda.is_available())" - name: Compile DeepSpeed Ops run: | - 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 . + 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 DS_BUILD_DEEP_COMPILE=0 pip3 install . - name: DS Report run: | ds_report diff --git a/.github/workflows/nv-torch-latest-v100.yml b/.github/workflows/nv-torch-latest-v100.yml index eba35ba72..ab6da53ac 100644 --- a/.github/workflows/nv-torch-latest-v100.yml +++ b/.github/workflows/nv-torch-latest-v100.yml @@ -44,7 +44,7 @@ jobs: - name: Install deepspeed run: | - pip install .[dev,1bit,autotuning] + pip install .[dev,1bit,autotuning,deepcompile] ds_report - name: Python environment diff --git a/README.md b/README.md index 836047520..282a0ed0d 100755 --- a/README.md +++ b/README.md @@ -15,6 +15,7 @@ ## 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/deepspeedai/DeepSpeed/tree/master/blogs/deepspeed-chat). +* [2025/04] [DeepCompile: Unlocking Compiler Optimization for Distributed Training](https://github.com/deepspeedai/DeepSpeed/blob/master/blogs/deepcompile/README.md) * [2025/03] [DeepSpeed-AutoTP: Automatic Tensor Parallel Training of Hugging Face models](https://github.com/deepspeedai/DeepSpeed/blob/master/blogs/huggingface-tp/README.md) * [2024/12] [Ulysses-Offload: Democratizing Long Context LLM Training ](https://github.com/deepspeedai/DeepSpeed/blob/master/blogs/ulysses-offload/README.md) * [2024/12] [DeepSpeed-Domino: Communication-Free LLM Training Engine](https://github.com/deepspeedai/DeepSpeed/blob/master/blogs/deepspeed-domino/README.md) diff --git a/blogs/deepcompile/README.md b/blogs/deepcompile/README.md new file mode 100644 index 000000000..9a3048381 --- /dev/null +++ b/blogs/deepcompile/README.md @@ -0,0 +1,168 @@ +
+ +# DeepCompile: Unlocking Compiler Optimization for Distributed Training + +
+ +# Introduction + +
+ + + +
+ +Distributed training has become essential for scaling today’s massive deep learning models. While deep learning compilers like PyTorch compiler dramatically improved single-GPU training performance through optimizations like kernel fusion and operator scheduling, they fall short when it comes to distributed workloads. +Existing distributed training frameworks such as DeepSpeed and FSDP have made large-scale model training feasible through advanced parallelization strategies. While powerful, their optimizations are implemented at the PyTorch framework level, which limits the ability to apply compiler-style techniques like dependency analysis or operator scheduling. + +DeepCompile addresses this gap by enabling compiler-level optimizations for distributed training. It takes a standard single-GPU model implementation and transforms it into an optimized multi-GPU training graph without requiring changes to the model code. Unlike existing approaches, DeepCompile automatically applies parameter sharding, communication scheduling, and memory-aware execution at the compiler IR level, enabling global analysis and optimization that are difficult to express in traditional frameworks. Furthermore, during training, DeepCompile employs profile-guided optimization techniques to dynamically tune these parallelization strategies and improve training performance. + +Our evaluation demonstrates that DeepCompile improves training performance over ZeRO-3 baselines, achieving up to 1.5x speedup when sufficient GPU resources are available, and up to 7x speedup in GPU-constrained settings that require offloading. DeepCompile is available in DeepSpeed versions >= [0.16.6](https://github.com/deepspeedai/DeepSpeed/releases/tag/v0.16.6). + +# Design Overview + +DeepCompile extends the capabilities of deep learning compilers to support distributed training. It starts from a standard single-GPU model implementation, such as those available on the Hugging Face model hub, and automatically transforms it by inserting necessary distributed training operations such as parameter sharding and communication primitives. Users are not required to embed any distributed logic into the model code. + +The process begins by compiling the model into an intermediate representation (IR), which forms a computation graph. DeepCompile then applies a sequence of *optimization passes*, each responsible for a specific transformation of the computation graph or a targeted performance improvement, to incrementally introduce distributed behavior and optimize the graph. These include operations such as all-gather for sharded parameters or offloading of optimizer states, all while preserving the original computation semantics (Fig. 1). + +
+ + + +*Figure 1: Workflow of compilation and optimization with DeepCompile.* + +
+ +At its core, DeepCompile builds on two key capabilities: + +- **Automatic parallelization**: DeepCompile allows optimization passes to rewrite the single-GPU computation graph into a distributed multi-GPU version, incorporating strategies such as ZeRO, FSDP, and more. This eliminates the need for manual implementation of distributed training logic, drastically reducing engineering effort. +- **Profile-guided performance tuning**: At runtime, DeepCompile collects profiling data such as operator-level memory usage and execution latency. It uses this information to dynamically schedule computation and communication operators. This enables effects such as an improved overlap between communication and computation, and an avoidance of memory bottlenecks. Fine-grained tuning through these optimization passes often leads to better performance than even manually engineered implementations. + +Figure 2 illustrates the optimization cycle employed by DeepCompile. After the initial computation graph is generated by the compiler, DeepCompile profiles its behavior by measuring operator execution time, communication overhead, and memory usage throughout the forward and backward passes. + +
+ + + +*Figure 2. Optimization cycle.* + +
+ +Based on the collected profiling data, DeepCompile applies a sequence of optimization passes. These passes modify the computation graph by inserting, removing, or reordering operators to improve overall efficiency. The modified graph is then re-profiled, and this cycle of profiling and optimization is repeated. + +Once a stable set of optimizations has been applied, the graph is deployed for the remaining training iterations. During execution, memory usage and other runtime characteristics may change. In such cases, DeepCompile can resume the profiling and optimization cycle according to the predefined schedule of passes, allowing the graph to adapt and maintain high performance. + +# Optimizations + +DeepCompile is designed as a general compiler framework for applying and optimizing a wide range of parallelization strategies. In the following, we describe several optimizations that have been implemented as optimization passes within DeepCompile. + +## ZeRO3 + +As an initial step, we have used DeepCompile to implement and enhance ZeRO-3-style optimizations at the compiler level. ZeRO-3 partitions model parameters, gradients, and optimizer states across devices, reducing memory usage and enabling large-scale training. + +In conventional ZeRO-3 implementations, operations such as all-gather, reduce-scatter, and buffer release are typically inserted using Python hooks at runtime. DeepCompile replaces this approach by injecting these operations directly into the computation graph during compilation. This allows the compiler to determine their placement precisely, guided by both the static structure of the graph and runtime profiling information. + +One of the key optimizations is **proactive prefetching**, which launches all-gather operations earlier in the computation based on memory usage profiling. This reordering increases the overlap between communication and computation thereby improving throughput, while avoiding OOMs. In addition, small communication operations are often fused to reduce launch latency and improve efficiency. + +Another optimization is **selective unsharding**, which keeps certain parameters in an unsharded form during the forward and backward passes when memory conditions permit. This reduces the frequency of all-gather operations and avoids redundant communication, particularly in scenarios where gradient accumulation is enabled. + +## Offloading + +DeepCompile also supports **adaptive offloading**, which offloads optimizer states to reduce GPU memory pressure. Unlike approaches that offload all the optimizer states, adaptive offloading identifies only the portions that exceed the memory limit—such as momentum and variance used by the Adam optimizer—and schedules data transfers to overlap with computation. This selective and asynchronous strategy minimizes overhead and enables efficient training even in memory-constrained environments. + +## ZeRO1 + +ZeRO-1 differs from ZeRO-3 in that it shards only the optimizer states across devices, while keeping parameters and gradients fully replicated. This approach reduces memory usage with minimal changes to computation flow, making it a lightweight alternative for certain training scenarios. +DeepCompile implements ZeRO-1-style optimization by inserting reduce-scatter operations directly into the computation graph. By avoiding Python-level hooks, this graph-level integration reduces overhead and improves execution efficiency. + +# Performance Improvements + +## ZeRO-3 + +We evaluated DeepCompile on Llama-3-70B and Mixtral 8x7B using parameter sharding on top of Hugging Face model implementations. +Figure 3 shows training throughput (TFLOPs/GPU) across different gradient accumulation steps, using 32 H100 GPUs with a sequence length of 1024. +We compare DeepCompile against two DeepSpeed ZeRO-3 baselines: (i) an eager-mode version without compiler support (labelled ZeRO3+Eager), and (ii) a compiled version using PyTorch compiler (labelled ZeRO3+Compile). For DeepCompile, we enabled both proactive prefetching and selective unsharding to demonstrate the combined effect of these optimization passes. + +
+ +*Figure 3. Achieved throughputs for ZeRO3 training of Llama-3 70B and Mixtral 8x7B models.* + +
+Across both models, DeepCompile consistently delivers higher throughput. The benefit becomes more pronounced at higher accumulation steps, where the reduced frequency of parameter updates makes selective unsharding more effective. DeepCompile with proactive prefetching and selective unsharding achieves up to 1.28× speedup over ZeRO-3 on Llama-3-70B and 1.54× on Mixtral 8x7B. + +Meanwhile, enabling the PyTorch compiler with ZeRO-3, i.e., ZeRO3+Compile introduces minor overheads in some settings. This is because ZeRO-3 includes many conditional branches for runtime features such as prefetching. When the compiler encounters branches that cannot be statically resolved, it splits the computation into multiple graph segments. These fragmented segments can reduce optimization opportunities and introduce additional overheads during execution. + +## Offloading + +Training models as large as Llama-3 70B with ZeRO-3 typically requires 32 GPUs with 80GB of memory. +DeepSpeed addresses this challenge by offering offloading capabilities, which transfer optimizer states and optionally model parameters to CPU memory to reduce GPU memory usage. DeepCompile also supports offloading through a dedicated optimization pass, but with a few key differences in design. + +Unlike the traditional approach of offloading both optimizer computation and memory, DeepCompile offloads only optimizer memory (e.g., momentum, variance, and master weights of Adam optimizer) while the optimizer computation remains on GPU. DeepCompile profiles memory usage during both forward and backward passes to identify when offloading is necessary, and transfers only the required data. This fine-grained approach avoids unnecessary overhead and helps maintain high computational throughput. +Furthermore, DeepCompile overlaps data transfers with computation whenever possible, dynamically adjusting the timing based on observed memory usage patterns. This asynchronous behavior is a crucial aspect of DeepCompile’s offloading strategy, allowing it to reduce GPU memory pressure without stalling execution. + +We evaluated DeepCompile's offloading using Llama-3 70B on 16xH100-80GB (half the required GPU counts) and present the results in Figure 4. + +
+ + + +*Figure 4. Achieved throughput of optimizer offloading for Llama-3 70B on 16x80GB GPUs* + +
+ +We compare against two ZeRO-3 offloading baselines: (i) an eager-mode version without compiler support (ZeRO3+Eager), and (ii) a compiled version using PyTorch compiler (ZeRO3+Compile). As shown by the results, DeepCompile significantly improves offloading efficiency and provides up to 7× speedup over ZeRO3+Eager. In contrast, we see that ZeRO3+Compile achieves similar performance as ZeRO3+Eager. + + +## ZeRO-1 + +We also evaluated DeepCompile with ZeRO-1 using the Llama-3-8B model. We compare DeepCompile against two ZeRO-1 baselines: (i) an eager-mode version without compiler support (ZeRO1+Eager), and (ii) a compiled version using PyTorch compiler (ZeRO1+Compile). In our experiment with 8 GPUs and a batch size of 2, DeepCompile achieved consistent throughput improvements across different sequence lengths, as shown in Figure 5. + +
+ + + +*Figure 5. Achieved throughput of ZeRO-1 training of Llama-3 8B* + +
+ +The most significant speedup was observed with batch size 1 and sequence length 512, where DeepCompile outperformed ZeRO1+Eager by up to 1.9×, and ZeRO1+Compile by up to 2.5×. + +While compiler-based approaches can be effective for large batch sizes and long sequences by replacing suboptimal operations with more efficient kernels, they may also introduce overheads in ZeRO-1-style training in the form of *graph breaks* around the communication operations. These overheads become more pronounced with smaller batch sizes and sequence lengths, thus hurting performance compared to the non-compiled execution. In contrast, DeepCompile inserts communication operators directly into the computation graph during compilation, avoiding graph fragmentation and minimizing associated overhead. This makes DeepCompile more robust to small-scale workloads, while still benefiting from compiler-level optimizations. + +## Additional Results and Analysis + +Please refer to our [arXiv paper](https://arxiv.org/abs/2504.09983) for additional results, such as detailed comparisons across different batch sizes, sequence lengths, and memory usage. + +# Looking Ahead + +DeepCompile brings the power of compiler-based optimizations to distributed deep learning. By transforming computation graphs and applying profile-guided optimization passes, it enables more efficient training without requiring changes to model code. + +This release is just the beginning. We’re actively working on expanding the set of optimization passes and improving integration with a broader range of distributed training strategies. Future directions include automated parallelization (sequence/tensor parallelisms), smarter memory management, and dynamic adaptation to runtime behavior. + +We invite the community to try DeepCompile, explore its capabilities, and contribute to its evolution. Let’s build the next generation of scalable deep learning together. + +# Contributors + +This project is the result of a close collaboration between Microsoft and the University of Virginia. The contributors are: Masahiro Tanaka, Du Li, and Umesh Chand, Olatunji Ruwase (Microsoft); and Ali Zafar and Haiying Shen (University of Virginia). + +# Appendix + +## Examples and Benchmarks + +Our DeepSpeedExamples repository provides [example code](https://github.com/deepspeedai/DeepSpeedExamples/tree/master/benchmarks/deepcompile) to enable DeepCompile. + +## Optimization Passes + +The following optimization passes are currently available in DeepCompile: + +- All-gather & reduce-scatter insertion (ZeRO3) +- Proactive prefetching (ZeRO3) +- Selective unsharding (ZeRO3) +- Reduce-scatter insertion (ZeRO1) +- Adaptive offloading + +We used the following combinations of passes in the experiments presented above: + +- Improved communication scheduling for ZeRO-3: All-gather & reduce-scatter → Proactive prefetching → Selective unsharding +- Offloading optimizer states for ZeRO3: Adding all-gather & reduce-scatter → Adaptive offloading +- Reduced overhead and improved overlap for ZeRO-1: Adding reduce-scatter diff --git a/blogs/deepcompile/media/opt_loop.png b/blogs/deepcompile/media/opt_loop.png new file mode 100644 index 0000000000000000000000000000000000000000..a3a4ca33a684de8d76368294ee6a11906fbf9cbf GIT binary patch literal 363425 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%0A@Kk|7l~4}-(wPHU%p1!ODohcG)hTH$prA~Jz?m~ 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≤l2jKK^5xhWB~Ys9Ra*U7YL5Q~Ka9 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%0A&1d@g$1Hm)GrUUls^FTAJRO6D|9veB;J64b8G ztY>M_k!R7a&${wEIqEeGsWNQ#+eneJU9DevSUq#hUpRjK+!{c(Nqh@6n9iF59L9lM zl+$kGO}(Z^bjsmzt_qB3059%dzm^O{zKzR!ScSwkdeLx|2b+kAD8evX*S2E>S zYduwbF=8a2i;%92yl=Jm#L;P3aa`ZJ9`MS3J8}Q{BN!XCOiw5$W&;WbJ_O|o)a%gg zx021gkK^-i{}B0VE!BEw;O_0Kf#Kfs&H1rsBa|FfTo^WQdaX*y=^~`^#I->%5#D^jD%tz}7W#(ImShr$E!& zMTqQioLTHBK}0}-Ii#ODxI4zm(Cz$ERkw0$0;6T5LUOfu59$uIiXSJnko zbRhIL7|CzD_WdV0ImXz$kux4A1$c?LqJd~P6;17KQ=--pVAy#y|LT*QiFaA!t17{I(7C){*AuEc5n@Sxo{N=S%ro>^FLlV@`1BPXII64zbH(wh>J^85>p3&qW$lS1p4=9il?3lZfMZ_km{Ed^`GBY zR-yO8kdSILK6-@s@^1r#Zd6&%jy)tnTl8R~TTD4U#u%&f&`H09UIdiX zkln`X`3CGtTU*HMb0fz(b0j3{V1|=X9lbzY^ z!VEa4i}yqlA-7Rxcys_il0Lw(WJ(!o33~CV474uZ_!Y77DD0piQa^70T?Sg~l0#`V zO*}@9NrMu)b~WWN(Dh475>)<_GoTox{74s+$BSn^^YjXeR3vN#Vzbl}h9e{*k_AFV z9ClD3WH8WocNsBfzKv`@bXsM^jd~Td#)xZ^$o&A#4;uT`+jX3a6@=j2N-NKVKW!+S zXa-6-ulnUA0}iyniH+i-wbzE+cA6dJ^6*T!wX&q$q78K+IkJ)Q>=vHdL@buO-Qq>d zr`(tM(w)=IhNwGVc6@G4U9F|8ra?1a;gcSU?I~PWS2r3CMyK&PCX-Q@nSg*mBf&2Q zc!UT$n`NsA0=`e?{pPMKvhDcqor4d<<3U?$SX=i}08 zU5|)X{wvL86OqV_K|1H9-r%wI!ZOX59FFf+;!^7n*}Jo+J8sN6ceL&5IK zF;6&sC_cV(y4-PCwXLzz7y(bf>}x@OOIcvgU4xY&=o{gt%s`jdMM)kFYHoefUS_is zIbT1v#h$B;zah{|-uoEwt@nY}SoT=j{k+Ie@pb+};LY~kjQ}RCqO_nV-DNe~&hK_zH+zA8S;8kbpj_f7A%Z#b%ih62?bJ)P3;BDV7 zm>6A}4*G+HUH+t#U@_~~U%sS4YOIDO)-2{pvs#{y%vOL#10rcS-CX!JIm))dyV(0; zFJc=qS$T?~je1(+Oru7N2#DjF4ACwsj~ttlt=j zU$1QEB0VT6|FFGT;X^uJ9@vfTZO#box#KFCs@hkk{volph87Yc`JRR=S$u-ta3c}U z%R>2a!E@P%DD!U$1jGsUSFi@VbcGn&*T?|;TKG16)Uk0hd>-pY32pufC2vk)@G>qK zg9ds{0oblEyJ>%a|M!@ow}ABpHbvC&kxn|Z z(`rFB8l2QH*+<@lpFf^Fe3t<=D;(v@X9*BR3jt&FPY!m?5C;{`msjXJ4Z=gmL zd)60)ukeplp^j7L>NxE z(kCCc+*`%dstefJG27Lrf{S@=eH{)S-TF+BL9 z;B_{sTb<#=g;7f5nVCd{^F(C6pR)@K!y9=XnrVJ`NPeIU+rwQCmy0>_0I1@fRkD~9pX5pgx5gG!+$=y zu3>YPVpfO=nW=sJ?D+;7YUYsr>Ts!jPnK^b7I}HAZAlv>A7xI|7&7j71{qds0QqQE zWz&y|0LoE|`Dlq;e^H?{j;a-~3lDDGLakX|`1s`Hn(9}ntJgnhPkGhE7zQDaPR;pt zS{<`bS=B0Ps}C1;K+nx-K)r!OJbz8#R_T5}?QzyV-!cRxBm#j(Sb+=G_WUHJQwoNk zPEbvA8lMOE8$$9+4{XqoLC4Q*C_=5~`UXl0rJ}0+Ag9T{awFfbAFB2-;9oISoC0j< zyg$gg%4E~->Uin1wk2o)p1TV30^PpLg4~`O+>}WXJvo#yCfk=PX-vP27gCt>{_+>R!eTpL!B@*H`Qi~Q~%WGT41dW_p?^yg>)Am>&y z9(%7Je}=Dn3m=V)tkd9eMKm#o;ZkSxkvypE*c@2A19y*k-HQ&N}%e8^3j< ziYeWlJUa0hct?61GqMi{MNW;YH5y*gc^D%P0Es(AFrjzvgbd39#qN4IH_d!$3)0dYFttaT3En1S22_?x0lT&kp(&r=8M~2IP}f4rkqUUWP&)PdFa&mue_eHZdxh0a*(_jmnh2_@9A z>xN*@jXoThE4*(NdH#WE`=bfzZN^mwmKHfy`w|+FM<*sBT5qG(!V2u;OXm-JzOrYJ znL!-$fNfch_wy5Pym<60vo~UYK4rcA39xMd8F5cP-5#Oq%Tsmm;s_BC5R_?lKl;rkwyzAc&H{iqGr#l!MV&5d>(-jMOBXH`+Ivcb+)9I zmX?1fCoA+jUjq)fh<4huG`9IC#%RHOlyv^~`&4?25Cv%)H+ndhU!+cJ0$tiBSXaK@%-sw`$WW6dz(}pS-kt4mlZls&cv9X%cZ2e!^2L;Bz|-x|GN-h zP{&CGM&O2Ot?If>9y+;73|!iH&+a-X=xTOmcwN75Y*`Ha{A+)T0aNk~JQ4*BMf}dp z$1KD3;Nb5RAJzN@P1Bk{HNND1jxptR#}sc5!-J2+-7QRcdvDmfIoh(AIAl6d_(F_K z0kq#sy`d4|q$JGW+kWb`hUKnJ1T;OZ*?(R9-7?bdTL!KRwWlMzlBW&9kFmC;awyo? zLV9wHKA+pE&`qZe4vHEoQ|WZejC-e39xMHzaQD6xmL5I^ItwYWhKO(L8s>3){@lKS zNZ9kxt$JA(p7ycZ8H*vUCe51NyMMja`%SaV{ybvZad*=7dqyhkIE}@1>y^s2iKfTB zR`vT?N?sHA%kDDk+S9$(^t_$FaMmeO6ryEv?^UUy(z98Qm(rHcW~{xsC%o@TLHlNK zoC-w|_owOp-b9 zcgt#3B!AoZX6=Ej4_H)Y2P?PU4*}Bq(+(eEokjHYP@?6>mX1x0ltAQ|Tq|mvBb%~E z&6?+u`}(GpG1{x)P$n)b~|WvutdvHe2PT_7*s+M2TD6N1wvqxFr#;teQyAYi~| zpOe!fw_gl$de6e>{VOM3fUnCt!~=sPsS@?7*V$uY9v(apkHdD~S2=lkcSnIV^sg*5 z(Q=7+2l}zRMFH?>bIn|JB~X}!3UHhk5aE`hEN?fYu>gux#w01RT!mJI(%@A^0I|mY z+@K|skd2S&H2V2vk^48%vR|i5jlTp?zCn~D5W}}nEQYPJ#-lY5ca)!%l{N5=7uw+d z9hVs^7vKuLs;1=H8BYMF@?wS?JOeN4LilOtuc!d!V;Lo-8{$fS@WGG1Rf!{6i zvC;WLEuDskIi~UG84<6Aw{Oama;D)JW?=g3R*UFU^pAF;_T$rp}2C5Ux%R z8}z^cD3i3u=CRb-_P!a}4ty}Xbr>z{>jYgLuU26kD{6Sm)rJP%ae?eAkCbMT>@0DK z`kS^9kl(1?kCovC_#5F8xm#P@N0%+g_Lw@K?OIuv^+(CMHy&$sE)N^b9_{UL_`cwG ziiT(FY6M!>s)F~}oiB68KEXiO+4x*P^?S^Gp8BKRXzgtl7&RG<#Yr|F&&Cv6pAf7~ z%BgnF|9VQv4nj_4VL1pgIbbYbd#s(gJY+wflhE$puq$i5l;P94uD-sn|FT~D@O0`O z#bM;HJEad^W%=uDA1I3sr|5T*{+Vn3d&h5pJDv)Ig<7S%3!5$T`|+-6v6zs{6HJ!q zh(Hm1j`@g)O!JxdOgPtq3@jaNjR6%mx8{ieHR-y1uZu6OTXVW;hG#smBMtENh5jKy zE-o%EBz()TVh%Rjqt3~DdvBd z5x_};B6&v=f(~%x%rkVE(2zkqZ^>a#*>@~fgvnt%z6!86#^Tx~V!8h9tMDR1R3Qpi zp3<)&_0Su7jCz6gwuJ{B7Q6*3EZ&DI84x)_)O?<-D@Vn}9|L4PF730Wjg`=gj{hrUAPZBh-#nyEJ*L;g@AC5iO z7N3ttT01h*JqU$OUG;R`(&FQYn&KM5%ko&~Gcg%!7$?Fny~CPj$V{xOhtj1r zV~nXnDuXwJ|KZR)Fp@AxA@}TP+o`dT>ci@~&Qt@c!!@t=XM}%?+&3`G;c76SnVGV) ze}sKk^0ek?4_6l6k&Mtcx99-it$E@0;Nsh${%;do{D#%PHi)BP$c(eXf`OIg_}{-> z0N3f!c3$kJt6k_gAK@SAkA1?brZ0X4M(YFmo#t$YCDZ}Kp`*utlr#g&Zm496;glUn zpuqV5M?ymO#BRf~8j6ovnE)nsSX~uuV6&j)eMs|PuWIO&nr^)R!`52|MFF;LyogFD zA|WNcbeD8VcL*pTC=#Mbx3rSdAl)J$A_xL14I- zPxv4klJ=n816#Rk2cxMr^mUy7IrmM!hI@@)85El&&+kzDXYk7+cv$1^_uV`ne*&im z*l_!%mW&XBB8(9e^)e_Oj{ZS`ft>;zJh8DEJZ5N?IBN;)Uj)`GWVpu=AYInXA#; zAq^cT_R=M;xpYjQj`H9EMMYIccCnAWKkQJ?Xx-}h%vQL`f2{rdX=n4V8q7*}f`lkV zC)HHjy}KsJLR+`1u7u*m3m>i{>cox-IbB}!b2F`hQmosN+qHKe_3?lh9Dkxxh@i`_ zLl%x~y0CVrjMiLOP8UkFwNm}LsPhU#4dRXW74-Buc<{=G(umRPj%1?ttVtJ`ho@wb zAHwEl6|Vl?DVu7FGR{&|Ryx?qh)-`@SS{7_{HFyVL2cEXgNTK#Wz%BykLfKq2}9^@ z#I(fWjnX9!M!I}SRP}JgE+7%j!e_qs$CjFov!3sLK3i#9>#pl_g>m8F)s`Ws&wm#Q z^!87zB!rU?+?T)Xoy~q}Mo5J}`h6oq7J8`6iLpPO;td_I-_Jl6fkOS|n=ce7siipC z53!&v`=8Yw%XbRxm-|phsr?%(d(AcyFfhlm^DpjK4VgmA zD6cumU(M%=16v1r#?x7&OEF(Ea#~6G_YLOe1xHfsR12DCmPq zM((M}T+=NRBQ-ebA_4&;!MBy*y!Ih823xW7A@L_Ec3s4pvHfebltQ9}i@%mDM*%tC zqe0|kG1w7di?19g#~iG!5`9|= z)hWe04;vi*=dfYdqfec;nuJ5iGgekX9?s|=ZQ6Vm=kj?k&_&~AH)}_S`!nX+t3QSg zyBKEzu7vnR4KuTJUMbhOT~;it3XZHLilA0W6mi5Iz3zZD^xCuP5p!&|xf!qXlGQXP znh1{jn|wB}lpYou8mwPq+95|lLleEdrWPXaq)ud##7v(=lCh#eVU0u16PVNCJqt|& zNA2sFN5~y`mjivu8QRS zF!s7ms$d=E*KdXLR`tc>Wvcb?qx(Ab--52HfQL`EScVZNi=Y)leAM4dz$2!b`hNG% ztexf)E&mITQ){oxvGK8yDoc;Zm_H^a^JJ24$+nJyw<>(0<@;IdEJ6SG_@<6-{Mk#A zTa|lPmaP9h%E4#Y*!YzmXT6$*swf_@K8x5iA|IUAeF2c@ ztA70E?{`=se6M|P93=dw>ua$eZqVp@>djtKoub&Au{ZA4+*4sB7 zV7+ei!Y2{rtcv?mlk)ZX6;+&3wbDR(xX^d=zZl_+U-&fVCzsqW1>L52O`3bIm)*|) z4Q2Cn^^}{SorCP(=WUXKY@mr}!%}UhH~)LyZ91XaU!9_q>_Lbx!<2;;dN_Hrst~$< zm!da+cH519PfU3OUEnVkNX9p{o*CbM**-dHGI+2xg=Qm&4IKh_ZZIitFbc0qwxhqr zUxIdLZRDObW(3V_Nls%}2C^&AVT?VI+_IO1x@pr6FERE#`^v_Kda+If;=$VIj(@>& zc!g0>BwuK_bfl`EhDbZuw-BHv@=S{f?|lnvi$m+cZf6Pg46%A$^4b;WGxrYpTanZa zo4a*N1p~hw=SGaD&0$FW+_VM_ZRJ2jokDc(Na$JF=6LPr?4ScfwB(dzW)c0BanI*~ zOX85mBB6TCO?^yZzZ2{&g^gA zmq0ysMqbwY7O&*bb6{}Qmn&)a2q!7h6X25(sabg{I1NIvh zOlPZG2>TwAgz{%2cQ#3W z4n=m@G)(Bo3{0uTet-MEoonhL^n_fps2=Nx)swj?E+_*Jh%b3?ORK0nXn&oG{$(F! zqgqAk2U^1DZ+<+2k4+1T8g+El_bxepQjV{lX->BKHGCiyd+(n#9PQF|fl?l{h_8H6 zkGDirhC3(Xj5u)!eZO3kI&FtS!{+Pf%@y^v--X$0p=HdlFvexnsTRW$ef(~rxO(tkTGgUKW_R{9d~#cgnR28s}F_15&yf5-l5bZSgnzb_=>w4xko z{H8#Pj7USTdxgqRk3o4ZLrx|U>#FHW;boIwPq|mb z*Dp^*oL+EUd7s)YPfocn8VR{GUmNeAXiTS^J{BkA#)`MZOVi)_%HJ+c<@bIx4nS0vdN6h+rw-}&Xw2V`d8Y;_9E5U=ERK4u{ zgELSo55YObx3l6oM;L>BYqy6vi|?%4s`7YxC?RChMqzkrYQBPvO=9!t*@m^HrRB~f zrKtkuxPbKv4>P@x%Kv9G6+pzLm)OpKe!PD>HuGZ$r$8V2yX|Uw`tIuZ?TKROb=OX! z0YCDBd8;A}>y>ix>ey?^;)H>si{LreEA{amaVX_Uc>&S*Ds@E~N^3HVE zMLS-VnoS>)TIgPd`~=~1Zi5`)AjHSxX*4_G4d_eEt<7(U2R(|+{2Vn_^u!LrXFhRp z{CT+->lMZP??%oNp1{fkgKqY>htin13hdD)!)5*DXDV;%p1v-R(ul-RHaTU5MDA+ixv&nL6Aybg2%08Ec+X2sR(PJ~b!?L}DzfOA{o zUt}{8+$^Cm7HfjAy2zCJCsNvKH+dYkeB!UUic7(-fzR)NLGbcuG)BOS{B$ns1A`VY z^72&u;%}Xc=@D4bDy?_4xka>;s-GfaT?t`XtJm;_s^#bLgNWO$t=6`dIncu{BYQWr z#0cw_!_@bc1?&luA76}N!{e`sm9s1;+7tEGFwk#1VLI}pmNnsF{Z-lX9y3Wburqgm zm<;-U4+I8J1bmQBlgTYCZ1$}&XapqQw|=cvi;ZTxheHt?X}D!1&}H%q?56%5ufh|r zoRxtX`I&%iDv2+j_5QOqlV?h%iu`jU0oroM9sfTl_V_=`?<)p9PIJX_-#q&_CHxM9 zACZSK0_?8r!HzZv&y{Sd4)Gb6BO&cOe>NRVYzlK6Hd820_tc>8<5B7WZxiU69`YC0 zfVKE2bcXS9X)=sgthvZ4aok41$mw40<^+j^O~UPj2KD)^I}|>L*V-k#>s_&EFM{wz zek{8mK5Kh0+t^c19IdK;Q0ba?zCpB~bF;SLRFo@sNl6%MY z!jvn@5%#CylBHLIp~CwkcYvlOGPO=ZYT^ZBcem1+te8!w*Vn2jjshHI&-X&a)P%}FyfoUAB{ zms>IHs|-nEGyf4LbOdynZ`wPKoKfAl=Xu3jaz=Q6sjfTnVejL+y1)NhjH15t6hj0; zT(5cmEk7NC$e*QlyyvN!IaQmZEu;H{*feJ+$FIZ`cTUqsRjYKj(km0zxXwHLQA3uI zZn&&M*Ca2@e|0$Ofi2m!G=1q;E0Vz21f;!YB$2-@J^$;-prj#!`Cw{n@*p&gad!CV7bWjFud%>>LFLz zt$qnVZUNd(r~T;3cdev8Yi73HS5;hkk=>4@Iu6!UM)4;)*&mtX1_isBPy?hsQaRUp z`Ja!tpA@prTgA)?M{vsf?yVdjm%y1bLh^)%p3=zo8Gq+nMou=LOfN|ctp4;oX?mqf zCGn|cvv$1bXi^SUD|wZ%nf>SBh1&5IXwVl-@QYblOtW;t!nN>=;-Bv)OPb`Re)7J) zQg)2XYje&4;svx)&}?!E^M9XM(KKy-u^)Di5O==2m{A)BQU|W1!qIhflL~_9pSGn! zJyBoLKfo3M4G}_#V=D_@JK+CUzH-(Z?-sp8x`?n`Y+JBOc(nm%7=&9kP$w_(j!`@z zYJ;}6>rxic=x}o_kzV7Z;<@?7bF5%PrH3Yr*rkO`?i+?cByLbXO&zMm^ls$6$z!^_ z&vM2H(<9SQo^Dkvfuw!$$9##t*!zqyF?!`VBY~lS5H01_yV~6JhEie5z6({9>i-c+ zRoX}Tq?GzBL~u^2ItugtU0b+A7PyaI;=ROK?F%x?nyB^F`4M?-ka+I8P3J-tKYcF6&xcJR1yi;jW%dbDlc z>6}`~wAaUZE-~31kE>5_HVvSz2v+krH1|_vmxq={`(IJ0FEWRR3Hp6VVcNH%`+8NK zcIp_xCV|!e@D2|lF(TfpY_u!$7Ip(&T-XOqg8YvN!uBcv;^1DBxl!U88{o}h z4Oa9{f9!m@4 z9|Jjk>|gvabi50QZv$Eb6~V#rbH$u~DoNX`@Pa3|)xr;8?7S%`YI?n2B!q@XMC7OC zY(Kh{pr!dEP|8ilUCb4{TENv!FHxn5d3PeK++JT%;ZlzTO)gQh-%EA2*KPcNH?uH# zPDUo3Zhumu>(UGUthEMY9Kb2>Xcy6#jNFqo!3HA@y)scWT`pm|B$c!3$1;l4qV02R zX1aOL6s`~Knlf)M-)a?AC&1tUPPp&Uv#^G*4PUIKKpq*Q8@Cv{VCeD?m@U!ArW8Vl z)5qL%^m}W^-ptbC`l?>E1fh@QnzOLN{~E9T0o?Ru8Hkh&7E`=PV!?x3gCvQQ^zaCO zx%mg=7NWmHp?8m3o(9UU*#N^E#?SBoIW654c$7E(`xS-TH* zyREWIF^TboP43V7F}c{*J+!`AWx+KODJB#)6XrR+C4nDG^N^L1L9@C1HIeCO9ohVB ztlAT+g2@evf#dlK?XS@f74h?O(Pf$)iCVDAEImuTMr%VLs1Yl=pliZOZ5ysm;qO*^7CCVP~ zmmK8Z@vNM?exH2J?wF#A39clD-e!7ujoBHRe_-GM*QDg1FCc0%3Q(yj0w(soOD#5m zxKGmvXcRRAgWDdi-s|wTelYrbTaZWwFE7iFPc?6CPR~dvxV;2M!Oen)=p_TGXk~&A zaVUeVd=sE-@3ivPhK{`8R{9mEr_<&|&{;iQUO4rNxCZ5_@Q+uywvLe!MkmqJM|%xr zMy3O&J;i#RwGB6)Vg1LV_@6q%C!8iJ(JDOEzK=D~pRLw$8yqnyz&bpVZ-lWUt?-x! z^oBV`E=KMg$^Pe@-_T?DJUFCWGGp=W_YEAFcudV<_pNj$39Ngjcy&08#jqmzh2g(2|$;?a!EYbNZ(q zSTve(uLCs%OGj+nJ?E*3bBly3d@OGqxJ0EnPz1!4FiMQN&Ccns^DVf0T}$EBdt;#m z=PSq>ESAu-F7fG6XJ4AK#c?IYp^$WGMD75V!82YrrE2Zm zbM1#CiSJUEElj;_IEVak`rqi4&>_!RV+{0y~Y|vd|OPEsC{DD!d zA&>V^TSlBq{EXhndxtFGrUIZB(&JN0u9qn(_l1G|T9>?v?E+Eh;8&oW?8o>dIYZCS zz(+pfv9F2GU=woqU|VLjaZo*uQp=S`e{MO#PwKQw=6UtrcF*Vgmu3vqJA~G1uf;DR zuXfQYLr$kL7m1T?%BSwF@!*lfA>+9fr@T3SP}2+T&P@gt92y$#AH(c_;3^S;??!%o zBYl>ifL;N~u~Bz@_}EKQ@cUKj$Isecw`?xC_O5Qz{!dg4W1&ZA`I&X9V7<^Q_qEHp zk)-ETZ+Rue!MNX~&rNt9=}629O|!U+OB+Mk)n_O9HGJRMyIDV#eXVM@7y0hgMl_5d zmYVgG#4biq0Dt~|;5r`G96_a$x*s>Niv8f2s_a(|S?H*z6oXOiZCIrYEN=(h-CEp> z>p0m?8$Ri{67NKA)y1^$@=ni^G?_gpaUFKKJV{WfI2e8;{UE@ ztOP)#f!u&gezqwOAeY?IjHc|b7hNptC*QyC8Fc%!_02C$r*Ba;RliG5I-IL_c5k0A zUQwCDE$%DMBGa?z^;cqPg=ve(+WKx=xCd+4rOtY|Y#araOt^PRdpoz>@jS0LsKM|8 zXixi9_bf@BXQFq_4Of6}71es^xm)Wdth7zVQGNQ>%nQ!7BS6>=F9Z94w^Kg)giU@&C zuBduD7FpPH6t?E$NYa-&er24bU1>;o236VC z2DbQIy(n5oSIXAnOsR@uE39fO>tJIPh$y%wtoV|5niJSDvxD|XA!r_B)Zmu3?Mc8_ zyD!4=l0j}`x-=$+>Ad5(&5ZZ+XH&&>hTh}puMMAG!AE#J5A@5B+Bz(7+qFiFrkHT2 z%Er{r9q3!TN51Sga}aKjkC4i#bpp?hV%Xp-@glyT*56Z^h59!qTrN1s@$eMo57D5D zUZ^kaIoEx|`)AYD!GSC?Hx#t!(_=W>l?I!ARP{3QJa){zNtNilgIq52l zdKfIbbE|(Q4qsm2Sn3w-Z_d?EUj&cdj>jW&-pN6pe*69_V3aVhzt8y3q64@O?S-EK z7#=K`;IrjA>%((-FgVRDmF;CK*Oo`CZ5M{rbb-+x3$psu7UVf!azW1A7^q>=y;nH`!%6)_ zX6F2A(Cd31|9`x#Qm_8Vv&Qs|?~_1a#iR|=x%q+&N862KVvH-oos#3mKXyk62svDo+Tu7-ivOY$?NBpc!@@h}M zNN{|$GeYF2&)vHdZhRbFm)G9$fl-_wn6y}L&NX9b(ZM&Wy=1Tn#Ir_e9?Bb#u zTI7U1HL5mKc#Q-~WfCZE@3+;$dr{l1A@${DLqdY~ul9tf-!M<79UK&WMIDs}fX!a_ zaNTLGDeD{Qt=Y&>q?i7V`(os4v7!BBxNOtgcC)fyKQ;C2{OK@{iY?CsC|s@zrjGsT z)6a)3amXYHD$f62|0#JB63UJwPWO>Riq9W=n_&-9+gZi&tG*_VBM;~(O;&f zPv{75TE0&IzjA@p%mjaw_7-EyH!|uh1VgWnz-O-9CfTN3F6}aBB3M}raYez(NdDTs z>REYO`jyMmu#r1Y7c!#(z7N;?@*lrD*XIW#70_0M@<3+2FKuN1`;1FWMn(^zhFCpZ z1=;}SHMis0py0?zOmGEifXy5{n*+9eX<_c}9M_bRNQm~YVJV8G)YIR_m7#RCuMg&% zz{L#Ql{QQxIh6^*eF@Qmt&0xGrW!qVdCmkrn+YKYM{zzQITP%V-q+9vmBYWk=p~LQ zCVgy00P7O~)3w^Yn4eDm5Qja^#a8d4br`ufy#?A(R8BMxk9^ZM*3Cz(#naz^yM-1l z^wo(qUDTaikIC)%Yqs&nY-0wX_t)b+b=%IiE}o?U@S&UXxj|!N&WqgOZnBSFjQ8?2K7^9-lDURL(yKv{W^b*AF!0fKNTH+%|Lf(miJ% zQ~9hJg;DTbtD1}$Sl#z5^sIXgA&VlVQs0Sh6Ngr`beWePyuDtLA69TV;XYiHDD2wj zb`^nn^Clk{i2`w`1EfdA$(sPrnHp+8v`#s>@N?bUhWIJe-=h}qhIZhpkNafAF}z@_ zBop(z2fcXDDm1Lyp)XpuA1y51m78-M7+ZA$fWJqVeCRDTa<%Y?Jmonq>?eVC zE5P?WlkT{IuqP^g)G>*_^2TAoldGP0UFPDidYSTlaO=vEv|qYY9lQ59i9?l?S6fm8 zbdO!6mfdWvEzHk;7rmX&S*}Jl)r(hgr>Mf)|EQ&v1W`BhjB4V`rdMSSB58WxiHCe@ z`_H^Ne2{9uK8F4?S=|vG=i>02mb|<>xTcbFlaTbDs`=IX+OFOc;o)^BFlX@D)-If+ z`cxgTJxxxjHbt>mfsrPyA0FMXtV~F8shT7Wr$iMPOqbi_$fLcTX~|Yh+nVk>>2S5-knvTs zksrqF2EW5{R1$dK3^Jp(Zc5jQ`f$N1#W!zQAvwiSn?Eol1~gkN0XyHHF5_`aveaj#vwc4ME{K$4pq&w07v1(4>7>|bi^B#A&|FRpA9 zRcDW*yNkPCvfN}L@q@_J8T(o=ng2d@$b&z1X5n1;cr=7OLaJ>Gdi;LU;_E6(9>-Au z0SZ8A3c-iIMI2U~s3t^tDVT9OH-9ue7y6j(YvHaLK0|J{!*s)y!qxiJlZxm@ka%grz(P|M2zoy<0bTg4@K7)(5p&I?BF)` zic|L`j@o{%xBo~?8C7RXD$-Sr6FQU}P5oZglr>|(@yC0V_*EkVJ+I0BTMV4`qs?79 z5W_HUpq3mek6r!3@X-NP5nwT~;iATC% zCdLCjf$chdEeA=Pnlo?P8Bl;P0JSa7%}Z-Xq~fIP8QuPxeC3sLcC+CW))d z@{);u1y_W(q-8!Es9kIJ;RQdou^2Tnnl_Kb-mMW}R(QX5siHJk_Fy0m#XhD|9)9*w z!%v!1fl)MOXa4U*1GW19dPpq@lF$#D$}2_De6;dSt%?jv*Ld$q2rg|hUjMG(>c;2g z;NYNF>BNF!2X&3S_*LTBjaU0~CVZ|gIx{3QMn?2N3R+rvYUsii-H`iy_tRZ*vsN5( zfiOrGiiwJPXUM7W{YgxGe6#P(+lneG*Z=foHt2X*4C(X{Z?z0AEGFA+hPt=acyNJSY+UM>n(uM%{?H&0RSDl=YzlkY zQKt+Q&HkB6Bi*kl>N5SM$IKzol-n_#Q(59Wo7Ehh9KE`E_ZF`CT9|Mvk;CEUSohZE z_}8NRRhKa8ROE(s#NNNT>!oSB#16YwC_EQ$Q04aX1 z_x46YmqDj3m4|PB{8Z;iaLmPJU`9t0*=5;;8#S~JHHt>jm-&F=(w(-u9a{8M`KkGD zTUWtr@1lTA5R`kyak|nnjXM15XAe7LtTXF&d@>Hh5VmBcX@H zZ+hryQ+0NYQ8i8K;loe1u0^l~hus&AUXP!wf2?9_-k7-4$n+lH1(&M!pvHi0aG9L4DxtrEty=_Dlt1uCs?XMpThlWMW z?&cT0S}ifcyEjqxOL{L5XMU-hH|)Mz>(TBwmtxlJ>C3uL0Ltln3pJ2@{lZ3Kc*;q% zW2-unmQMc6iBG(tmpHJ`mXQpkJ~kUJRf39)1ff`(EL7uBUtOc(;$4#$x{ ze;&dGNt*fp?hzBiB^bdlTdD3TFMP15z3ZVQ)G7b1_AOyh8=4IX%AK(`nD?$q%NpK8;zGo? zfpRNi;9d~XAEKi0;HUE@p;9GXwkFyPY-^edpFs)G1HMdJDUaO8M>Ov7yQIBRz@MrTyrYwxh(-doXBhrSOshi6%OA~5I=L{2yVNm zyz5ZKLlzF4Ha86E3cnyi%Jn>=D^t)=MyfnS0kipIQ^x1h_81t;)6eFSx4U^)oZ$ku zC#c+(MH|XB+~s#)5{>H*)ZY0`|LUK)#j74JSJm(aoy?>91 zP>4dgXRRc3{6M@-e!tvW>ri3%fPbje;^My3*rAOVYg}?BT}xDq;EjOKXQwCuzThpg z%f|Xu_P)yU7tt+RalYF%>MG!tg7iXzrBFqB1ehkg^H#%1`O*V)4Lde&Cd5Sl^JtSq z^Lq|~j_Yt~;_jITJ|y$~>{ue8Bpf$YdJ35oPO21Id12*^^l(UzYFmH|c6M{evf`{} zH8UU&ecg}MNPyCQDo>0b{piMxoA`v}k&N{Bf^|avnQR?aFF4!;75m0b%aw%q`W1UZ zRN^1sGP~Ha+lg@BeH;prCx2#r(ap42?0Fs;mc0&K20|h5e>Pd}ofldS~Yi ztL1u|qS|5~=GH4c@AU0?6{u;u8-im*UJ;3I8lAXYd}3^WMaU8%)!uaRl>}w_qAMF$ zE3WUpG-qSL5EV&@`SKYZSF#o-|2Ou8&2#rvhQf-a`w#A4>AOOz3TnfJBw2KzDn>r> z;9NEs)HZNpr~D4^^Qp!)RU_jJ3O_^EWf)!VCO{gbE4eP*3P%?y_7`q{1ezI;)1--@ zt4Zt50J|zfy<|(_^I?PH)u)dFTV{TeO3^cJCZ9o25vDAH!ko?|567N*-Kxs!$=EHI zNBiA`q?VB1w~?Kl&22v?3#kz@R#xl~Dvt`bg>z{pvJ(SeMgA1r$`^qgwe~;vBl71z4)N1ZHT1M>B=Pv%ef=uY*aj1od zC2=QJQ6F>AwS=MMse`|gSM6Z8HWnb$ckkdTM`li+;jR*}!6oFw(7^Nqg?E~ES|1((Ek2#t zI8805kk2tpmEy}$y>>n2*GcMWJk2gqM#`*j*&a_&jV;V+yky z>|ylc`I0eTy7t*Lj-HKfy3|gcGl1)sCq)fb=e~)-8PTwv81ecqAfv$&@*z}XpK>=X z_FmfDpY$~NC}!=1m_^(^k0&dG3>TIn6dpVH03KJh=^+7GhgPHI>9)T;SI6a^Tv3>J z>i>zFtXresh5pyu#*E^g+; z(Y*w2i?NqqMLLKw9@#D6g_?(L4!Jb1*vGs@4%|UY@3C=X5v`q4g?1GZ#4~BAyirS` z`vmwZwm*!Bu?(1r34e(~h;N%2;F85dW5w!_4J zWySv{?jw)P?px$&9Ra@km)a<6w9TR>+}DLoA%f~~PqTV!K!wUWa6m zR|d_|)~m^U)O`Mro_ra-bdh48D3U1V#_Kv^k6CKoCH?)0D`&);1xQ<(h08PN8-odf z4+u`FPK5lrMw>w}P#_45^n~eiyQEQ~)!yQnKMv`8G3I;E`tUo$;Vc|ZXE~ZhLu~q0 zD43Nu{oV0kZCs^emHntS#nrG3VW~Mc+?xg%{_p3W23@v=B-08;q7@DXM#X7r4a@ppe$2W3v@B|Vl0;G!OA>(If zWIAIH=CYvcE*3QHUyK#Fp-fy*k=DDmx(QQ2cd_F?$xUucNVMwX!&^{j4$iCgXMCJj zxLay>N{VJvv#x9C)xbgGsjV`D%)euV3K*X4t%cVRj7EvwqO!0!*SdOPg9k=@)pAB* zdm7nWY+8M^!(=s586Gu5!-rrjLC~J;rXsFg`H~*zI+&jYYQu}|3 zMPA4gB~t1fGbs}^x;bfV_3qtx;gMP|(SU#e?>g&A8$pBLR+&G4-b2%W!F_EfZyD#g zCy7ZOh1$@IMu(oTUhDDSJE$A)Mqgz-($vwUMYY@2UW) zWS^mhJC+0?9VVOUOXbIezzfDw?WA#7p+_g+^Td4kN?r$yF921noiG2{JhZVX>o~ij zWW4@weX8DgkPt5;1kvd8U6=ALv326Ixgv5qOHq3H+d;Dr{>9u|o5pm{b@}ZK{q3thuwhF57!H zH8vBHOpA*ycY4=|ZzU~1HZtgFkDNNd@Ive7E5*ja+8-|(cU+xK6kpw}DaU(uguJ9m z6<3GiD>-V9D`bis>G5yT?eL)DbZdQG)yOEKN!SQE+OnoJd^F~oaobHTU2fD;v8UY} z1ovZ?46iT=3e?VwnzJpR|E*dKyM4RgnysZpFc+oBsr0pZ{UZejg1wRaxOmKJQ1HLm z&!~sj_XH^}u#EHP7~P1G4}UmTp?Um8E#*J=eVlEUv9Pga!G(=rcfC9;t3!REc5AV@ z`@WFI=k}WZAGu`X%d%67iz-5;>>KoEcn|`k^=sMnsNN6LZ6z~^RMK0FkV$=Er-eEf z_JU6}4`@g&UT}}aoQ*moomh42LN-m%B{?xq`%Q(|83Ekq798qzal*va#vB_6s!3^B zsd&A5J1EcZw`mpg*}^pBmp+njiV^c6v(TMVcsnJe)2Bp3kQt#y>$&~5zsT#|hA0&i zyRBIBH^g*hpiOo35LqDe6__V-nax9;*eP44pW&Sm(!JeMp6C(~5XirAKYF;062ccZhxy=RCsw8Iki7J?U%UyY zWE9h0Yx^{f%KDYCWs<70gD3mPZp&Vk#gDP>Y=vLv+7hPc(jFUqit1R+NNV%AI?>Ir zGzH^F{T1u~1v&lHvleJ?Z+|4P6=BHPV#eDyGNNc|O7|q6 zNdFTC#B16_V+Bh$ZPyiUW4z+L38}Af`9?AZPX6!8z4e?qoOIHgzgX{3t}%R6jQ(~V zzvCX{YhG*hT989vXsqlxmXeQI08#N-@X8k=DTy}oXl(|5&-{dx1R@%XOAh+33VdhP zBj=z>heVOy1Y*sze-40cH(9LFIQ2r@+k`BHq@u#fpYUt#w4XV;I7J=~0s z8}vM>MbcK`D`mr$tC(IEwo>c}ARhWmi2=`0ymp;65l2vM^B3C|3!XU_Av~oVIDy+$ zKpr(}s4@_Y*In5Z*@ z_f}T1pPcUVmV>f$---GLPuHENzs|*fTN$=&oTw!7ypk~TJmuj!pXY))?Y~h3;&<@~ z?hjdKB(EvE*j^=D8(BXbA8Iad8)&5#p?J3z;!r!beG_~#VQJg}FJfmoAjaA~}*y|Q9H9b4xBLw&D28DmB&Q26G z^1cS2Ngm&_UDGc?9!L$Gp3LNXvAa0db8Ozhh)l)<@xV?bZDag^gF!AA3#b2w^?>^l zdu6JT_-@c1=e?~C^HRtF$uLHC+uBtaqRzfkQM0XPydfGyB_|!Ilq>(h09ONY1W0fo zhw1H1kwa$#LU}}RFd!N7Nm5ue-XOSnyXsNiXL<-d#> zhsu=|?zcTX)lItKl7h98k%Nv9(p!NIc(04MFrj<{3MXa9&BEI{B0@~xo!Qjg$RqKKvtBgbUxyjo`_0M68X2h@m-#S@!{S_&wPQB9x(a4_yeNl;Ua_@ zWVj;h&FBx{27V9yV%dCB>hA~+MfDGcyJ>zBuvL75R7%KBM(Ki|Uf3p8LD1OG&CS}X zx0|Ofy0M8Z)kL47i zIV__yaVI88*p;?HA+ll7sl#vglyI}6BoU%q_~JN!)yGVn1aGOS19 zGKwVqlnrP>vc#00za2%!s3($1CINI}H(D*n9H$JkdSSl}eR}fRNZl(Y+nQaj!>x(# z5p3;5?w2B^B<#j>v1G75C4rk6CDne+tfFWSvRshntJFn(ffa~+KyBR*av>?le zr3uBIgchxNR+F)ppWpXBX}vQ3r6&Z~Mb&THJ)5(mt?bO&c<5-)C6n9I=@CM=iR1ly zsfD|g5lvQ0er3<)*og@fqEJ~xPx5b?2Gt)~^p5pIL_q$@%%(16sX8w9r?gS?rhAEz&S?K^v)ZS1fq#AJ;IREMIbG>RRN%XJ5235v>D8lFqEXDkUXI zl*!e!bfkh7w?HyfSKoROCQoPd{mQpSwD!PD1o+cTYulS}GYcUe-iNl=3#jC;8qqoi z4!#u7T6te+QsGvmLEs)F4%iD()CT>>-3y)3zCl3&Ep6S%%!UuroOA-LzMbA}Q{M;^ z+8MCVZ+!cg&Bzdyiia}nz2>!_X?@g59E#NZUz>+XjWLGLsquAT#m*CAqhGQ3SuN3! zyA6RPh~gU+j1*UW=AfkF9Q6D!e z9qc}@OM>v?1>?)xLQ$6d*qdcB50>SnO9J01`j0PuD&w~iVO2L4eC?IuvG6mQhyRHQ zvt;o2BA8*MrAvYkk1<##MSN{`$^h*%r@9eb>_|46C&C|5h))fOvo$6!PUhpivJw@;n;?jIx?mu(nNr4b-3ZF7`S{? zo6|c6Hz!XxAVLoY&R>{=_yqR@8&+pl>Ms(*PV zN{$%4j)4zZz^a^}%_qhV;(RuN+f8hw>50L(?I9J%4Ggaf@;n|OO;iMM9+^IBE?){) z+_;HJ7t{73T;s+0!YafWeAdcSg4QTxZP>MV-L-Gva7BeX5gU1l|0kxffJyJ0CM(!+ zEWQ@W6%F$^Exd+kM+N0KB9Nv`D(>x2w%j)~_V>#{258I6Xq`q5M5wlxl_z?C_b}un z`T1wxgOjEvb8HxeC@MpK!9n=FloV<wj8qu4NSoZZ+0cEZ-3MNHV3~*sFxP z@aMN6?3kVrTYa#RDp2!zgOWoTCkHX2=mh;Al7759Ue(2q?VomiospPg3G*?0$t#7M zU&m!VhWYV_oLw91TAjXN+3-{;u=KW;Uk+zKccX5*Z9@yG2`DdV?HOIYcz~i$7@b90tuOS*S@35*zm7I7XX(gCOKZGOy?`wc++>14WJM|GKq4v9UHsYV&rPsq zc!4Q`Ow^bcniY+}5kJ?Gg}UiUe!yUus>$43%^A?T)t0L;b74xfb_(CdirkK^TW5VB z=KHC8CiI_q4%o#FW^!Ra`<3DKmn5U`VV=%TsFAqzQ*(h^0VN%e&KYvDA%0-S;94%#Su@q*md=|CtVu1PnGHM0PQ3J)4*qv$XPq zVYYSuWqW&kMYX(z>D{pX$P~ExpAYy=c-?*b(ZE9kS7o85mAttR@7Xdps1>Q7MwKfG7Y(1UWY- ziCTh(ELey6CHsGcnA~|CC6+sCYH0pJf!w@YEv~H$_HF2rEIY+!xjDd`{TSb*5Vc27 zdmcHks893wf6`lplA@}4^Ty4IlMaRBMY_6IO9gH)fQwyM>_pRQ8|+2XAhPK|cpFTt zV6*4eNzJxjc2}Odz+|A7n5@86BS(W?$73gS$Urzqw5N+^!|v{6qM@bK*JMU0^#}^9 z-FXa$&vJ@ot`@6-U!T|{d==pir#V!JKa6*o!LLb>!si*35i|KIXYtRI`z{4JS>IaA z$b(@yb=mr(p^FG+A|(>`yx(VPPAG0Ja1lSDG(~r1-0Q~`Rk3lD&0Zd!?e_n$_m^Q+ zt=$_q3Zj63Al)D>0#eclN+Ttrlr%_(bh8wckOq|oDUp(rP`W`%q`N_s?q2_~-0%C_ z@43$R|M_y}<(Cbcx#oK2c*Zm09{1gat*p>K`7i`V3ebQY)vgjyw^{~@07GJ6U|3vS zd_MF<3$;-^EXJ(zm3S&EeH;=lflut{q{T}SYQiF*4tYR(PsJ7Fqk8I^QDadsveZG% zm;5s2)M{c}`|$YITFT41f(sF5W-q=pAYKB*!O}58JOY%{fQ_2R*!Smo<3%flL=`X0(u@*Gs#kVPZ1%6%7#0d@wU-&q&xjbBr7+T+l7Hyo6;W7CW z(k0aK5pCLQzUK0*Y^>PzeGN&7%%`E3e*91Rk^vbn^H`a4z@m?dmpywTp1-$-&Je`K zHC|t#5G$KQrAHN&+xyGh36+btV20JZYxT+dxJR0gWR&$TIg{znIWzy~?4XZpwMHEu z%fp&2CWO((>3Gz4ez=eR-2{&P>Sj6nOm~E_VH`t430F3I$;Bl(#rR+Fs@@eW8w#GA zaW5L~W%21mj$y%ZA??WklifuuBfX%!1rx@fPQ6H9BToc!49+pu*$z*ygp^@I7*2}%~%j-$V4;dRr7Jy`OL z1d#OS-cDyg_5$9_;^IL5qrPC=l{iD`$15iS;M1V!H|ruCrI3v}`MWPtL)*a1rCv8G{%$>{CwTDG(Vb-;ZyBOJQuC5=RUCB z(HBd)q?B*B^4J(1l1-RO#s0qupT{&BT8fzT?4I%okXKP+^`hAhg ztP6?M_Rm^=Ia*5fVq#Q_dY;{c892U#f~TJ1P@@H|caT~H%|l?8qfy05Hzou(zlE8k zr^wO5tGO|7|AufiC88KFd%N{t?USE3gZv_;U;Gx>DBVoFztek5Vp}l9a(udoUPZ zCe-E)3Obh4l?lMLVwA`6N8tK$=h5o9+#Vv9D`|MnMIiah~4L8$Cn!aFtF&H?yQz8uyM@Rfcm6p^vGS~7C6kB3# zE|k{4XA70M&UDgMQrlN|xmVqreJ60EeUsnW-20?e$TtZ00+*J9bFWQ_$RvaE?YmX6 z#h9;IFVo^Xp6_6JS(^?VOO3z&m+__k1%Op<+=xNnDJB+LC&UUs_(rMm)267!2)k&n(UB!PjT!K&;Ce>di4Z+%;zI|BiZEa8TZMVozP*|RP( z7m1OZz&PmxQa{tKb|wqN=l*1IO}WJFiYk43?`<%m9%KRI{cNqVAL~L6ya=cZoAOb9 zMG7GRUr;YZ0kuYU4)&&g9WoB!b%ZMK2matP-wAVv8K9-Rd}=0qe2arU<8wt~aj*hk zDVA3NDX=_RSy=-a12EvJ)bHWV=+}ZuL^C4wxcac3A2=TFenv5R@R9Dkt;UrIN@Ex+nu|xG;SV0HKrY?8C(L%f&mH?qgf6 z7C$JD{_>LTO2h$a9zch2at0J(P-c3^T%R%=bK2+l3NYNkSfRO8G zOn%W}7qhiU-?2!uai#Nb8FUC#;N3zeil#>3Tt{Y)#H)iJiky7&2SNt+4-kzVEoj&ixkW>d` z*62)MUJfgqnuIOOk2| zvpMsZbPFI0`Wg`NUE}d*&lDi7PPd=PxkEqde=x`}j_cO%X3O?5@zJEcR@{fdFYPn z3rJiXnX0CU$|@=0wnx%iw7wy&+3gjZCb9tnLm8O^y0=x@Ik>pRx|~zr-93lpuHKtW z=m%1JDIG;Ztb;YP^ObxU6k(v$!FZV4``Iybz>1wqBuO8DIe7C#F&~_L=~E7DE5-n5 zcAa#<8*}vHt{Bk8Hky|c(Ge|9v{p1ea&@!t<(9-TNYth@6%{>HmhJ;@19Hu?76Te(brrcZDX z)!z%@F6(Tmd@5vI5>Lr3*Usa}o(Ky*PCMQsHw>@#Gt9t^oOe-Q5zRncD`tw?~`HjsSEM5qF% z>^}{N#z^p7&U-Caanw@UjP5WJg(!rD8b5T~B+jqPSE4$)`Y=~PP1Q`s9^a%S7(X+b z*85Ohb1wIk z8^}*jJI}Qzk{l0<<3(QFVhsTbx63*E2Kf0xJF`4ZPVGRrLIt#qTkk{4te&EzCC^9l zb0-eiQKH>tn&S&Ca{XwQcDT8j06%O9hhDq|UbS zM~Q9@AApz%iaEury6L-t$6rCyLS{xfSLmyZ%%c}?t&TC``R%BH9v9*(99&$KLfi2l zL*#dQw@tvE2r62aLvLRJWuWMQ(_%52so~q`*J0?QmCb8H zg_Zc!ZPRGs+YstyfU(z8AACbvY}PIO`P_98S>M|`?Om=o9`=!A%6s4^-*?+*!7o0L zs*_yamV0?BcRokvKw@_5)0+N=?uswjp}j5^o3$%r^^%FH)gtV{VG&z?JHIfTCDJy9 zEUqMNp6ZPZjZ4j?V^D<4{S35-;$^gHc#T}h##fRwe%Hz?R_TylR{=s|mThYB-Gd3v zJ~l82nOR#K4j?+BSdFV!X(y+*GP&qW?RMov$0Gw($nxKP#f`%opBNhJjFy(q@A=pr zukyQiFY^4ci~5|gA$3{DCyJl^SV*Z!*y&b|3;fn?*LX_3VuIE7#qPj5E2{&-IAO=?YuuyZ?duHeEaAXSa_MA6pLSv2 z%X4>#9A*I|YwyahOti5u^LUOoymw5~)b!!L{=nD@8VjW>q1Ym>w#y$C92By=BGvVYx#Z&;=W|;Rsl~NX^V=AA`|m) z5~+Se{_^TopmBLh)z9b1>8S#Q!?kCvuYX7euyY7GJlq2DnZ1xAf^%bAD11E?^1bJv zMxgPr&tz|O`|=ff-@ftF6XA!&)HwrJ8=$ob0_YnbM6f~HhlEx{0hDdj`%CcpD0q$Z zWn^R)AO9|!&^aF#8yp^i;fM|e6=OYBvXbbu$(ZBaBdGxTfW~`HJ~VOMh7Vr!1U4Fd zm~FW42JJo#rBI|BAzab?u3w2!1RVn!G%&irDZYF|#yeiT~nSO!H{nXPiqcd&o<)&_paatR~ju)~tf@Eq}?u?q*s$?N+2@#m^}oZIzh zPGp?g_a6O3>L&{(a=o$$XS2GHeU%k)_PB8Ef;JXiic2oWzuPS6X#$O@slC(l>zf!22s{w=@WMI8;3K zzv3ZNp3%#Il7d_~U1+E6$HMX}-ZKru{&bZ|C*xEoQXJtmjNxAd4lo|*0lWpHUwt`J zQse_vq1LJIN@`FP^s0sV5(XBgC8X_bfnL*|y8^)f8uA;_2Q3dj6Y6R;A|Mgaw5J>S zd?Eo-v&THVs}b0(cR>s8^b-zz27boQ*JbF-h3vXB>BU{y7r zUtE<*p4}HqZJu69%H4B>GSTZG{NjTt0T)*{qU$6wAfp%((ixyT>+0%u0z*}X^oa2N z@|wN1df=>AP7w)e?doM)ulip4`7{2s@2SO+7`Y2UPI>e}BixyY;{m zxh~|fKZbbZw|E2SrM`T*^HD9WH;j@W=s{Q*=YP>q1~k6tCwn0vP9=>@#&cE>9!3`T zBuOeM2s>)TMY(MZ$tE*5~VEQjd#l|-8j~MoGBaW3W&Q>J(ZH5cb+r6jk z$0OG=*0O^>>Fp9Ex_!>c-@D-(KIEbAX2RObX1pwNxrN!p!LDU`T;ch1p5x==Nk|gT zR@D&mb*CE(5n>xgFaXxlMpw&Y|7A3oN+`6z#_xfLn}l5b*p0OJ=-51z!6gYD*yU05 z&rIEXZYXK^3rn)Z=a!(iU?nP23nnYwu7BgqUG+9BT7IJH3g#8#a^0&SMk9DTwIEqN z8L>T5wfDy1`li;^9Z%01101)_8@??H^J>r2>2BQNqzP^H`XZ~PM&8w1fAs1J6O{F6 zrVa1Oda`2%yeuvbMsJL2wPxY@g&c2kb$2~BpQKrEthTbUUv88d!uw)2|(;tf81MpjkShYvv&b${aY&I_r(o>7lP^D^RwK6`#8ynW$gStf=9 zqFmp}di-j0IwB`GeR||p?~=<;K*L?s0{g)b`LFd2R#$D&e;Bf2qu;3jq8$R)Dm{4) zXX`u;)F?)+gjF*?=9PH6!b01zJ@med1>REmrIO#Lm3(#w;!RBv74mkcSLqfvVicUltBBs25t*-CS+-8K!sZB|d zwknq-f2-`#c;X~*PO=c{;l zEq@#rey=jR?UDGK5*1$#B8*N^liBFkp-&6yw`Owebt?V*HJ~`Gzb-H1?OT$%{Xz#v z2*hIJ;^dz{-)i@pFR0E7{w|a{yOnwPd@;m3*JoET(cSJtQEuSdvZ5Pi+7a9}o!#Aw zfz8d-A;GE=hTwl77!gB-J-@yd41p4-TFaf?!td6jOuPg*5YF%7g|_1ovgOZWrp9ymk%!h8S%O1U_#GpOh`e2io)Yc&@1qgD89yZF^8RH8*U9Tl{D-?&&vwfw$?VOo2l!SuQ{=SfrU=n;xtF0h04bhu{x!JTx$yd!1 zRZYKQtMpVKyouP_O`C3$q(=mQF<#}=bHb-&Dm$x8eQ0P%e|oUdwCVyujG`*#LGJPs z$}qVCL2A(CrNF}+t~+HFtFZf+SDM@$bg&ECW~YH3Aq@o9Fs#c0`y?oXI&PQyRKfvZJr+Ks_3B}E!l5I_m)K+ ze1bvEin31x9BS*yBHIHx&E}Jj%M$LGlT>hTxknI-Y&*E6X*_>;W5nQFax&rS<#AgV z*TZ6G2XuO$Pim8YkG>xywA5YYGskqm6+-wZC|jf08!P*qp9e%Pzs|qmINFXxDC_D{ z!FYt8OTVnoir9?ta(CtvTFe`5<|c#wOJ@38DvYJ7;y*6RaA;GdjijiSUt|v52nh*E zcAxgVn2?CBEl*vZqQ2?7eg9y}9rsFoeMrm-Qd!N8(j!unf|-?-4{_mxl!nNWK~j<) zt!P3~tCdh(H3(UuW+q4xT#-OQZ?#bK#i&kzFU%nf`x%6JiucV8f9yKK)a8m{O^n#a zu|VYAU8=s?k_h=!uY`%s3k2s~WX65|2X)x{<>hB1JwiXGhaV{R6Y4%qIt{^wP#qtuAzG4(Y8Alj z(ZELLE2xVW4wC9xg9~W<4nk*~8nfflif=8}gla~`c)18FH*Tby9j;3njU|UnIyDOb z<9_MykMxkWyUbk7Mm>}>TXBM4qf!zUhqeC0=MeQTwO^5x$EP&{TkfBj5HpeppIDlQ zo#N%~jTWq?a5nm3Exw|H3_z!SWymvXZ#Q2V6Q?)aGzwrm87wP!qsSk~iwLE-9*eoR z;_tbW8R?1zAoLl^y*?s0T2)(E$NBxOli)0RCC$sf zt}ZkE;WJsv`inHNs&(&?x#Edq1j6IRHZdFVb)Mp%d1aX?85f75_u7IB&>{KSOgO(% zz4`|kwc2a<)MKX~E0>ddVL0vFr@;V~7R45R$?zANF;sH4p*ARrdo^m=D``WQS*EJj zdM11F$e;dX;z@zH1+P`7JmRIWo?dq~wZw;o%XgDedrqd;2a}Tw*K~(%yK+U7-|9Es zOlt=SufOLul=zU*X2cVfl+=|h;v6wOyZ__q)823n?pb%q3m84)OR_3KXTF@sgSh|l z6;ek+B$4_nc_Bt_<@9%%*{ANy8@n8THI@W2DacPv-(*cL^=Ms#k3E zo-Y9E<9FDwaQ0h`pu}ifB;fW(`q-4%_8#Q^jGpKEt)GF}3)>#hC7yLB5bv!;oN!Pw zm12oIG%}=v08}LMct1_yf$DaltXw-@{KWjeS3>3UtIo^ZjB{0EYLKo-pW^=dvuZpS z<1BnSiHjvp-cBtj9y@5fiZ*Hsjfb9N__~guv^Gpr=HrO}5t)J>uoN?M$d9f7L9&rZYukDsQ z?T!E-%9LPIUd^4H$yx4PzAVpVVZQ1xk^oANCQVIE+aBTo#f+xESiHRfkE-`&2M5kq zN(kgG7IT?dv#-+vw6Rq77jy~ufB!IGKQOyocbaXVv!QR2a&ZKkScDMsg;TDKq&e3z%C>mVIcV3nfxL;`9(~8?;EnL{yVwkK33k0cSK#AwUe{+ai^MJ(@6b= z>&!`I-98tc-_aa;J53*?TSj^~jh&R2bHZ-iVTx=RHM=!(7SLw5Y2;vMHs2C5>A8}U zjJP<)h?uJN7D8O?rg<(#%kv}_LWRL}j{vD)G}#~eRj#?;^Ddz#Q?wv)v?ddwCb7CE zakL=QoF)^4In#Y}rZ(=|na7Wyi~CSt=f1N>0Fnp|RyQjvn~?MzLB90I+UB_^Evzol zxa7jCizu_x@NLRct(F9v+JPp$8^T zI4}(#(1eeGde@!7k)MO3_rRV2r?VJFC9Pl?zuDvknbFV_QkO54v5A7oEelfMv?>J# zN7NsAP(WSi!T571)L}jGfYf_yKQzv9an`SHyKu8~=erGso1T$N4T^{+?-t8L5q z6B&NcT#bG0+OwZoih4i=qns+9kd?)3|813(&Ua58*^C{m!pI5gIAQ&$jld&FX(NL- z9894+jFva;nFuM-hq661b#?Xb)VoR44mHsrISNSuJ3IT_@k-jt*Ok=FtgOqcR9^#=O)cXDioiMSsw-vhaMAUEC##gIiC^!U9VY zxqgl+8(`yH)E~=A>p0FCL-Yc*R!a8fpNd+u)v9P{p|2HX?mvE@$|8814zyBrtO&DP zU&DmiPtfnKEs6~PGtK1vm~Q)Oh@N9lB~*nUAvIF@>W{|kY7TyuUB(J3p8sxhbZ}_D zJ%dUy`Lal9#5e|HqNPZ|U4F54}WMAcUMM&RUq(mJ<67T34@09Q1l>6z-kt_}Y zZhB^ZQrh8VMV%E-waov?%k`;dBW|6H}p`RVL(w4KX0c_+q58oQ0V z2;)<5hgL5nX>Unr&%bzCTHa)mk1!kjq>gcm=*^oq9*}pARoGFp#)eGxo9fi8`D8@o zlkreA*osrVc%>6AgB7oU%@_OY)Ra-AL)ob~;jIz>)tBZb7~L{^S{;`Y!?nXOl`%2m zIY%cFf7um$%&C3-?VISWTeoh)B;$tzpmYqi|k^%%@93$bXm?klF?$&l23j)>aO*j z%(k#*Bc5XKcDD!`RE)+6^~=+eAs)7g8M+fg7&2D6$jVLjZe(FbC|66MBDC~R1*I`@ z28e+2B*FgCL1k?Pp0b?9-KnA?W)=WZA-pHKC*tVOpm0M;C#U8>pZ#v=i@O^Np3=3% z$if~HT+GvL?%Sj%Q%5Q>P7D9++QFPK3=fUmBG~-%JX5b&tPUiZcwaEQZpYg=A>i<^y!FaGEr|C}ZH~8v9=ea^UB6Ur zk1O>(0*&6RTz+k*jVo!R57gioGyAmVRr{r)a(9OsDh8*U8c#HoAhjfxUvXL(sc$P# zTqsFyp;=TS@Ixaq$qd0G$j+_}$k=%RaM+;G(5u(3GKlcL+$u)?A>d-%d6F?JFJtzr zRJRbOHy-JE#P>$vfA8wDvata}0UK{dap!;%Y%_{KCqWrHwvOxWb!u|U3I)S`evK0* zcdop|JP2UmKRq zmOK!O@=}G5Ub=*R4cEfV?KadngO!S^-ptNM-QU$Vv)uI(hj0dv&dT!gV&-L6@_PcC z?N=J=rp~sfk#hyky(=}iTGwe$$IKU#L+FmX=*PAx9F32v7A+k#VdlhwHfRTR5)ju=+`XMv_CB>ssNR=J zt3X@P-i1eJZWtXQ7pMajXdccMsRvvA-!m4sZnTAeXF)VE`%5>MT%jqn#R0+}4xva- z+&**2j+gvNbI+T!7sM3M+RAwApg zTnPyYJ(P4&;E-^N2Nd@FJaI>w@Vl*Gg)lh`%;tvrIL}%GaXJD}Z1OhbM()NYK@r&$ zdV-35G$KZuxwDSd$Ge*dS;*d%6C`4@R}7VZ7tj6EUkD`O{$Ww6p{>`%ec?f0?z->s za*kcm=iJ}9YVJGfMNl#cX3@wgZ>C|r2d(~;?POi(6Zf;^z-2OV1MWFvW1n^ZC7<)3 zN+A-80pU=zA-A6#tl}75^l3+|W+mF_%N6jV^RpE#K9*U`|4>vJ*F!zLePoD?BM>Us zH^jWb%bwuOt=EXE7^WK=2i!jJ)2X2&P|YC@YK{PG&bpf^4+ZQIc@EwJ&F(Z~x*YhS zapi)O2n_Y3QG~O0lksbYl7 z>?Yk-`VwHI)qEFmQ70C=K2a7bdA_`2tBa&l%x#Vra7QOEtcd|n0{Itox@aa18>aQ? zw-+-BqGCjo>CcWVloLf4-d46c3$M{kYBdnl`H}))*K8?lKG6XY2~CFYhss zqP@4)`|AR7N=d_+|8`|kaPh;>NFXeKzJ&9LNUbL*QPp}2GDb^lyM^q^>6M)NQ+_+z z6sX0;5EE$&TL{J_yWeKw=Q|@HCZsI=>*QSx;G`0%LU7w?)_2cgoPvr#)9Q1S5UjZ- zer!&US))!Dz(h4k!|<%^D?_0Hwo$Xs`rr*d@pTFX`)O?eJ4jE*Z)as&_^{+Ro_Ki! z*M3IUFKpn8c^mf*hFCHE{gInr;TEi-toQ-wf!Ux*cqRj^gNhJn3JbR&-?FJd*BABi zVh%M@YVJbW=SW{%Y;5M+3@-tW5oi%MD|9G1kNAXI1InV3+>rgG%B}7$?lR;SAs8nb zs!;c*-i>fU{+X#nh_i2mI|Q6)ae#i+z(x3+rHSwVrut2l1h2bAMwZuAN+K>5K}Xyc z(Q3wbOn-}!Z}H|4A>pz0uRrVA-@f?|e`E!Mt}3xQo@i!$w}=#4SQk3#`EiBR83z(h`(+nKU41PV-vpF zfqY09%^=$t3Cs2O>PRr1NtdqKztEkYD1I5Ug9B}cxpW53RQ>>t_uQtxkNRZ-gO2Il z9wlr*Tdexr;j9#@B=Z?eoytlKJU3o^PNf?c6@_>&Bja0O+p@WTfIl_?E>nYfv!%F* zZ?7yARJjdAYu6upJvfU~&71oeeVJN{Cj&YC=D$xs)Awh8{<-Lw`_>Kax(m_G0zoCs|yJ7m`_;IuJ^?4;VQg*1v5sB zF@(Q0e{^JrTS6eam{ zlv#y^6zq%;e} z88i%$r>!7IrqvB?K0uCic?`bG;*jG+eR=8{^*Le>;AnQpE>~uMC{UKuK54PT= zqOZYURF6dOtGmFjCZNg4%%{$51nylXQN9>;oiR=^8-@W^RpxmT0tF&MQ09X8?mt(u zgd6GFLW=93u?ib<(xD;f1s_SJ73>+qo1yFKOYDkYi~ehae!9Yi@L7@V(i%3@q(kKe zQ#*t zjHalxA{FCxtL=1oTsghHMSESqC@nr(lazFDXb1y?U_@5S<-qJL9&v$pP;$v)Wdn-u zb2T>jeD(kNe5aw|5ee&kc z7C&e}(ZPXRe`*Srbzo>p#n}cooAe!6+CxnpS$Iq^yEaPG&yth-1LJOP6e!*_dOllgleV zCgD|Amywk_YNF2{dV^9s;4^OEnLP~-PF6MuAouoQvr8boP-1)15^Bslax zhSQPI`Dfq6eY8Z32Ht^}_o?OPuMc0dU$-rj0XCC8zu-fDHFf0#1}awjfilG8Ume&m zo1Y-!D6X{JZRFy%OgW~%7IxJyV#Vd_sPh)j#KD@yY3lhJH|NKaukSXd4ZOTgp9`lX zza&tSsq z_h|Vq)0GC}5#soPcmC(9)5gU3F|*!fgoc3$coPad3cM(2=e~8!Ob~NrMA5#PJ4i5BpeSP=#4(41| zFXaR$>;CUYQ9%Fy!wWS3OBfLsVmDvJcVIsvCRR{+a6^DM^-I>}QocZ9O0scDsy6>t z@h{5;1R=BSh7M^d2GuDN)wI=9_tU0S)0$sStT!%f&$@X(_ZH7PBaGJQHQoAQVmEhh z@jfy;)>^sCvMI%wqLvlO@?Uoo%^%ol*+U3TDp0^!-)L|GQyPVmh_e|9MQX z8lP6wN&D|b$@o8h2!8+nvE;Duf!J5zv;MuLUqO-R-z%Cy>R;Cnf8KFD9TKE}FSFo> z|89D?3!e-{jX}`}QVv@4B9jI}uWPewew+m&e=54_tX;_(k13|;Mj6u%yGZTr#1yVQ zuam8edXqGJJc<&^LS}7K-ru_pf1if$70OSGy#5xTLN^5XM&)EX2a z!vSLAR8?z_&&eWMC8j8@$w{d&gyDa0v*kJFPUG#y^xM zZ2domU)O}%FUeBi>=yI8mt6bTtg}1EqzW^mF)fJKKjVM9TRVE!4Y|%}XocQ}=CATn zCcY`StR>1aoN1g$HjD))^FP~PBmz||)=+@m-=RL0YCx6JGblp!sbWNZ)3#;9(dbaL z_t&i((S6@vpvN`_4_UUF7sptJvyD-y`3po)IFsD}cn>N4&tANTx<_s{s<2Xw?@stAPpeE;v$ z7)@Uw^bCZ0dNpsY4Lugk%dHq0SlT$4xy_gLDnVMYqV4oj8in&6xqz3Z$bXK}GclC! zS7ktXx-?jng)PxvyL;*@wi)9FO5vF=L7D14!Dao&HkWR;;;R^{*~3{CD&62^5aJd*UT@43;L_vZ_&+AEM>iJ z5yAk^_<^?pQT=!IJILiw@1H#j-v46g%7NFfgT06ApEBDFG%S+tx5G1q6oas8Bw30WSa8{H&QZ&_l%p1?v) zx}#xLt_ohU^7|(RO&0vWZ7-vGx4Qj)PIaiJmRR^_^Srfkmnu;!clY@%;VnzXA6oAT zF$6Qic{Fa$E%Q7o*ly9z2)PqPY>v}t{pE!IpE$tj`~Q4Ni5ia*Z<;%zNmfo350^e= zj}1MDt4^YGr&lfaKmA@z#R*G zE&nR^$^Fiwg-S|?W*Mde~PAxR#-}=DN9*myf|7OUDrHx22Lm-veMtu7{1=u8f z_rEKp`t;xTmm`@oBAcHde#@JS^nePSz@FzCxY(L=B!tT^&;j^*mH4F`b+avd)+mu; zISZjN{s@x$Z>HQqiOOXEV~pLijiK#-8dqH({jvR!QIz;V{@S$&^AmC3i-{#XLNh$( zUMlH4foPJaL|_Zb6ucB+6hpoLxY^!^|2~cd8Mi^Q0XcqTfT}xrc?4!2t?Qr&wWV9d z{DIdQLG-}G8iByeN;I9rm*)#hUL{DKOw{O{RsNH>Cp-T8-g@=mD3FLuu~#F2XeW=h z{El#Wc|21{KFRoQ$x$bw=Va34&Ld(J>)aZQ;u;{>+n&R=~ z3NZil|eId`K~Tsp7|bZVQPa; z&w$*%2#foK;~4Q<+ck2`h;fiaDn=j`&J$SvjP7Xoi2u5{I--AGv6^QiCa~e1&+nQ^B4)}@_zdEk2k8DhdcO$K^^>HeWLy1 z{M2)&lP&ktryDFRuR+JH*m~#|9JFa6C?{H!YC4DV$<0%;DVfo?yt?8&y*kN?{7?Us8f`cy)tvuCR8;SNDW2F z<4DxzKDKuDo*J#i_nP!|fj9DHDihy) z^$w;H|LEY)f6Tunaup_s>L!qF8m;SY0}~TU(5<5P*+M@(+|2p(DR_3)Xt^(~4~U05 zdwW@Vc%n*6`6_J3nj&b$ZgO&F<>Um_)QBTB-kh~V8E~x1k%>U!=tg>aI*KG*#Cdsk z-)pS&8E$xZIH&HHU|!RYH)b z9Wi3z)7)TSn9HiESYKcF*=ocR-}@oGHd+#3c>Y^UIZYx3md?w|t5};8^&Bip@2^u) z{YF&zsM7oH5jxZzvrbglWtNr2?(MlCxuj7s8X-E6oN8q z{^5=B;qp%tAkC_gt|CotHDdiqqzXqHA$oHs&I2}nBVnrw<_xZAaNm2#C;vDQWSbS~ z85)3|1FuoHB?{Qwn-i={C4Aa;IUPKw>VPrLb(2@ zm0Q?j>jo|v=M7%oZ6$==;l@;#Y2@8D;N)s=dX4*a={>02Mpo3l2?;T7dUaJf@s478 zpM}fT?0vo4Bkd9hwY&Qyh_eNHPiUW)Xmcj}9*kW)4WvQ2K_^BqiiaB5{mTj_h5a%K z%~$zfo7|z`rBpUT|Nq_7DH4x#(O#MCS_k&~Mnf`aLcuDc=aa=2hN5!kxxk>{K2 zTwMEx2a2ky=CC-x%W|EVc%fdLS*K7lCN`E*$eu<-L7ge0_aw$G?R1BnidB z2!EI zZXkgwQO(VW)$u(A1Y_EGWXNV!Z_Ebk;_J3}jMGHY@T-9)RvvC2ObuzaC_4; zf*Mvu=}iVIuWOeruSAW69^UzUNp$>Y?~5@bRtT&T1wy{OFhhlF6n6iO7#8`3*CnJ@ zTtvspZOEbViUyJdQSaX`*RO|Z>F9LMT)^y}?PvqovqVLnqG~Gqpt9y*+-7lQ#d$S5 z?u5I`VsL1v6~#aWu1-l$Z&J%d?j2M>;Nv;CkHYfv~_XX1+<%m2(9KmyVaHCCuYx@}IYsHqX0B>|~a-Wz~Z z{Bj`N?{V-WPFmkXX3YX!bk+I61WE+ZQ8Y!*sgva!h2IkFGI zHYw>({S%3Rm>43zy-fP;q?xloxE&0rp}yQ%B~*tx5FLNhG)S;oNVZ*I7TCM58 z#l?jJQm>7}WCbys6VO^a_liI(7-Kfodt(k1inBg`4D9Y!hJ!)^BBZd^9YmT_!KY8N zKud4D&=wAxVyn=>_s^@s*^`r#s^jIP)nC7i#=lr`>Xg0$q`}GXGy>@hy(dyqQUHMQ zS^Z=tyRC0LCen0hM)f& z7-&wH4uV$J*;bI`UZK|G$6JFMYU&Rk-ZL{}9{8xT@P^|v#q)^s(?cNJr*c~#msM8A z6PkREK}ks&-;*}EvkFFI(wBOdM#SmW@88xl>nkblbhzZV&y;tABkrco&ztD#>SE*K zGI4W9!f|(W0Gr`wfB$`Xc`SGYPzG}P^@Cxf_RwHPFMfDf6W%!L`vOHgtQil0(sy=t zzzOAi`&;!>24KV&vyfDIFb378Vu~a&nBQ)YRVY1b*McYOqL@7o!n%34W5V z$qVX{Qc_Zuc6QlczPwFLq=Esue66D8_fPE^*x0aML`2}Da3yr!YrJT35j34kafTb- z1Q;&v?zX&gM)Mw zVu9u$0=Bz%Q$Q(6(0;Px_fY;=r33v$r9)0h31QJlSB>Ycf~qPj2S+GMjt`z}#wQwKU&KXgR z%!$11E(B>hMEiF{o?1Fp{8%YTdn@={4sSF}5E9Rp_)LWgmg{yA%n*V`vCn=fgr*Sc zqP(RHZ|!jELMZhXa0WFsNuk~}ocUFYF-j5#O?zUSHO(LcdjI}?ba;1qj;*Ai=P2?j zCMIYV2L$H^P%wK_`MHoO-xO(UQ>ZbD9|l`!}YWxDmwbUpPvNW zWo^1P35(9-MVx^b>X0e3pAvf#r zXv96D;Fv8fEmcrfZUJnT+q!P5&yHfM?|}~BmgM1$0#FxxbXu_&j3#O5>-V5Mxx~>d z#w`vG-lQHFlLEHz4w%+bv9sfvo0|g<3CPxY#2exrgg7cN+gBiBsiPb#;N(zmJvbN}e2vF?`H07S2%E=3xDYCgYi(_XzXwT45NB<- zuN;`3j%c2{!NnC0i#sqpET^eSR%X#>-W|`&%*@Q=wx%s5EzL_6N!I@VQ1;&OT(@ob zI4LbrNj6E*w3V$Q4Vt!Wg(x#pHYu`F$zGKd3E5@umKhrM&R&)6cU-!k@Ar@IUq7$s zzMs4B`Mf{x_jR4;aUADyo|h_8dbQ-(I1I+t*x=YHK3|MWf8D@=U?pG=U=FeG-$z77 zveDdq7NdKRkFT#$U9VSfd5&?cV4iQNImM*EI_h(z_#^xX%uB3?EqYR17x&jlP5JS^ z{QU7_*LY`X9*((ueJMLYUH6t3vDIPk@x2?^2|TB8<;rdXAOmIQ_VDM8uUfNa4VDf) zE2|=g#~BzHeEs@$e7fP>RCeK_KeBlg&@E1^Jaz6IHluTqxwX=zOROZNk7T$1k(LF{ zDXXZcudO|TX&TqBU(Z8TdjTT`c49`CpC65fhli=TIe;p>AV(2k5PfhzJdr5o5@)v3 z)4xhd=?9&m!Y#>Lnj0cJR7Fiq$gpgk@t5#k*AR+<;o+W+V$avQ`QZsMF5xdkF%b$~ zC-7sP=o)(P+K*e0`t80Cibkoxs^GZ=mKojb<+zxLFQ&We+0H&Z=>FNQvxnM$7x#|f z%a?Wni2p~?4OW2G&dD{B$#2H(Zr;Qa;b<9sR_M*~{^Yskgn4r_vpswEbi7K4CXKU3 z$R3w3UnYsoy49{Z=;6bz_eYk=;+Y#tX+Y4nu@S=XIAju-Fr6BiD*+5xSXp7=uhsJk z3JvwH?2b!H@UbM|QB$UI z=f2NjrP#>McpE9SFoBP0+kd~Z(8DX+iNET>vE;kO#hDWte2VppE(@i(EZ(MN6D!KG z?xxPDnsks75fMR;+pEMx!%t5RB4a-c3p<7GHOIfBy%SF|D5aS~LCbJx-U<5Iq+(G#8=2Ij1k& zd6$s{c9G*h#`-t;P2{Rg%ve5`>iAhOVVZ0(Dk0-h-=l_UDoo%0gmX-Ac z$N6E&79shO{F$8WFKXU2-gL>*K!hbs!fqdW!vMQ4XluhUw{|+4TALhY*>;N;|0Imr zv5MR5!nWE?{zi7Dn2s=SuR9=g9lsJ{`p`DL5zz(t@LuqKb(^2pvnL+KEUXL|#>eKk zJ;24`&_OvkIOy~@GbIJ5rQ>Ac=efCIKy65lA3l95HOqW!-pnVnFfIqf;a-0J%AwyE z)zwen7V7BeVBH&L|8!PW`u_bp=2Ki$RV~L6(X$<%bQpID#7+C?gFH4kVpB#|77iBt zfKvyn%~SI4Hkw_*&cm;~b)L8XGuk@jXc5@l)>aMw+^ylX%9-&}I%d!cf>5$s?ODl( z16YrL`qV>qX(DjtAThndXe48$7ta`Nfh#^GswU+CC$C?(j-msZsk1M_vX88f!K4%( zNlDgwrIheQ7&X7q8UCJr4}c4e=`tNlYz+X@*tVE=uvCJWrq05`f?oArbhmbp->#Hh z5@gi2qKt})T9^ze>;Z;&k)O{#=URQ~(xt1Gmb^kj4@u_08Dd*lSWd&?eCEs);T&y@WDStty!hUug z-BID@4)F?->f2SqOq`LGJr5?7XqZ8ks3Cn|>t@=}uVig;pR-9F3HkX^zlWOV`JPBd zodr-pV4*_B;6MbXAuJHibVoR%xq(fRQVL)!oBv6rmH3}BL(U*ZKRk8D{f+C_Gpmd= z0A|8OiarO@YKVpZ^chY8+-Ownu|{gLihBVq_`HV>ZFfTwLNtYJ(nEGpT%5b5%Txq; zE(dh;LW_!uDEnn~9UUd{D{^6|>%{HnhAc-T(f5!`aDR@}t^zjj9ES5q^Gt zl-FN?!V+ksTGl_um1pY$UCKP^WUBD^Y2C^VN#`XfDRiT6 zxwgFA3Vt0VYY-+{g&lM45aB+Kn*!05apT5~8IF`M##3t;D);Z--;L98`s40#JjEs_ zhj5Nzf^b1TY5qieO{C*!F1#JU)!z^rfte_JdV424ITzgUje9tY7Dk&7n4_>~k2j(e zQG$@uW#_-wfcfsiI>e$zXB0U>I=jVYV~CDD^Tfmi%tn0ghlQ{PzhhY-yAlBh%rRpB zo1Bv7CwyF7l+Ws_2*?;p&JLAvmiXJ|$e*N^ymRl~4~!l&LxY2c&{7r_$6QSi{0oX~ zAc3u3yOwGuF}3NnrW}AzU0ogYFw-Nf<)fn(I4?!)#=vISB-44oRnw6A0+!Q3^eB{`}_Yd*zHeH@18V z;jiqpA{e0I>(|vsz-jiYz3u>!>jBQ6P&F#As4x@?`-aA(vAii-3i8qEWEaTD2PzjC zFvDtjY8uGMr|3=^9jjt8zH`RVY{0?BL*b#m5BKM7_rI7fe(m(z!hPsju$A(j^-UTI zYy2Tu$!E8W`c+0hEweG@*+R+z4t@>+m6HhK=NRe{wJ9Z&2L*?xf|c# zuE88OWP+;dYL1MhGWv71O-*;p4T;QDR$iWF+kY0$46>$?ae4Xp0>G-!dJKfgOXHSh z*5Qx-FybJDz*nUAf!~%)B~JHT7<|&kw^s1K(CRtDC_#qZ%}R?@t*5L zR564`dfCJTw(GL0AntSD`mO`fv_K|&91>y+gp@|a_JdT|Fv3O^en-c;pFZ8$=Fq(f zMxsLz{=>u9N=m5d!u~i&4Y$4zdGm&E6&2MfMMc(W77EZ8EAX)iOa~HnS#UsbZI2x9 z=LL?%g4Qv2PZlR(2-pqm zsj`xi^LNr+DHQx!%AcQlbn@iMSZI@AmnEg8xgZ5=Rd%s80Q+z*jjttu1N3j-KC_~C zP~-4A1-a7bwrxyOS4IxN6Q81V3}h2O24RoHT#t=>OsNX4y;W)A5_lee^!|t!jI^q% z>l{COHeh-CKp~ThQ=(u8LO3qi-It3k=wg{z*PzhbSiU=)PLA}CdkhbCA5%b4QNmzjj)tNL z{(z;rU2$ih(C!;jdz)5&zU$sN{g1rZm_;2bKBuVo$*qGI+5xf%LL{U-BZR10*B}SH z8*u-emguZ7+^XKhupW zX^CcmY)+k-JvV?JO90_@|MWu4M4Aamdh@3518+D8-F z!un|Mc@jiKI6h!KnP;ZwCsXp6$I;mI^7v<(C?$m= zfn%SGnFL)1|5*LEf+r&nsS8C!M0_uFEgTy{6;kig8w{bLyk3aQP`Gp{!g8z<%0le( z=XapIwo64B3EKwjJ#b(;Q~KGml@8AEF8yDriJK{1f;zGcyzE zSHPyHiqf0{OU@W^3z8!C?OBa2^2azp>Y7@bh7hw-3d~%KnmN;%K8c0 zN(pruqRieboM(qFygyL-4-+^;i(RwM0)`k}nI5R~Jmz-J9Jm3J$h`4FWL4TBOLlg4 zd?sbcP#A2a`R>LqH+zRl4^Cu#;3Fp7dbj4R?CcQFwR9Kt^hhHkKfmRX-OB11#{nS; z`aJY7zWnKnd^sH+N5|s2!MF8(in*Q$U?W05K1Y{Lu131?CV&ENl+9d+cHpzHp`eDW z$#XWcYGHON3>8#>=-Oosl6Qa*0Bm2p;6c=?#CM&Kz9{YNz}`U?=&}+6s1-xrs9n}3 z+T#!Nl)4{3K6aJ+$_j?IK)r)j%)4`^2MPn585l%&FcD-#j#b4+h>hKW1%ID%$~gdW zr(nM4hQui)B`Jg5?L=|K&3nXirt7IMAIo(5O{tJizte)%rq`aS+?NMRj)_l~7iK1? zbk~BBAVU#Sx_|$tzfvf$(5NcVXlzpZ=Ym2N@v_B?$deNX4bFa3dF!dL*(iYL+qN4S z>@B~h%>M(pGve1>jLc0<$5q!t9Q6agqEzJt)hsyjEIyt{cVI)dEzHyiKrfJ1LPMF5 z`jl?mn07Pskaqk-R0~STEvR06h*h&9`d3R%ow_K2UuYpkUpMcrU6+g6aK0E3?bH)_O8(`@z-&TfwBwwtqV-72&rb@11(&gAU2r!W*?0^a1*)Y{A( zNnLB}v=p;1hG{DsajX**4mIiZ7^7oY9VrfgZB{!!AdfN-(fBbt4{)8B6;cgKooejx zN$=5d{u!|}H#Y*AqWUocbbw#?X|?#9%pM`vh?NGh_{fw_$KMyGT$07G^Z zQ9gb8lDJ(ZK&E-eg4cQ;=48$l^LD)_MJB*D6xKL+=^--U#qEApwtAh zbJyX+Ay7wY!yD}KP+%bfWqUK$H~{T@Q$RlTwCp+T9wVS&s(lZkYeK?{hYbKw%4PWV zUecIcby;BRwGF8Bej0aE={lIUnwd(_`Sb99W^VEP$nAyscJ}rl`Nv__KzUxe2uva%<9ra*MS&b8Jic_s^J4arh;JhOMnII+LGR zT71m7+5qcAn;S*Z(C@c+F3?0$zh48JMy7o-~AYg6gD@i;W$OIH+Wn}^=@ql=tu@415V?YeZCA8tM zlr=O?0-i#>fXc2f!h&slxh2P%h$7@LFHpZHFl^Ah%$hwX&PHoL{Ou_4X?}jbAG_oq zBa@tKt?z=V*3weIUhxqH?~|ubvz-6Z(As(iF#w1kl?N#I-;Nr%mv+V$6tpoepsp~x zYSmnl{-NtX?zCEf5stP~i$ML;$0Y$O2tdIhlXg0sL`6lhsWxL;#_ih@P=rQfn}_6~ zYC;)(3i*b_ymQe~dzh|USp1RZr9hE{M_Aal$axf!H|858U@=3Cp>+t%%E%a>{KOBc zr6ktxQZOj~(+^-j1S~>D8-T2M+jsc*N^^Eg}QOI9-R%HJH#u zAT;DcDqUWnV4wvjRTU`co=ZQi@&GPTFZ_<7qv)UO{S@*jIJkFy7UvQhVU-muVpkhN z4Ti!$XE8J~as||};DJ4o2QjoX5&ZS<>#PZH0gL0q#-^sZV{BL;GZWow*RYex4dJ4` zfQQ((#1T|b;8GObO>{5_oPg`yNq5D!+XE^R!E@MN5=A>?HZ(;rLy?a4oku<*9}}ob zNJvN{&9FT7kTNFiH0wJ0BPU>?uH>ZOM)>RlBO|*}dcm@Dm z%y#02;wenNZ(j^xwa9Tt6*SFhc9K$65f_5acNB1)7}#ReK;Mac4TToJ4gNSopY`ck zq0JyL3vLm4W3nhr`II080J#E?Vu2%{GktY=gM0*jrYD)dg);`A zaF~hh4pay9A*Jkn`$$m*&nn%j^OzpPDb(YTS>sUsg#!blXeZA}wNC`7UZ%tqq#Kss zKRRWD&-fku6v6HF>jUHhcI3fCKr}p(ED>RGdCmtLVc%KdGuug_2RmT1273yGUs6S3 zm$awY%*N(a^57+EQYijGLA;I@>X-R?5)R{H|@m9U&N4M6!$R`}6kKfZ@cgQKv*Eqxb#<$8>NT7_*yI>r`N%oy-Z5t2C+ooq2xM- zx@p9r>rY?4Tz9Y39lc62GA>7k_Rp0DL#l-2hvL7s?H5tr*F8`TS9Vi&He^J_+qdUp z#kmPKMbR7B56=mNY&&oWDhiaI{pRN8U?+E%HY3qmBP<(b|6F@#FDj!@goy(V$q>(F z`irA@-!~evM6k<0A7|7NdFiZWV88{WOjOYDa72Z<*m-%^-tsi@qrABDS1m01z+d%Y z7y}BMx15#7i;`Mmb8~-ED)iw3{h?44Orb?g*SNm}-uv+JBg^?>dDli2d{*o>r=d&j zJH^Btiqas+e*AcvOmV?a?^l1bP^KvfS3-tBaK#$M8Le9oT@bu-b91Q@BO=cxSW=${<|G~;p(!}L8LXw)j|>W{+1KY~-hUxAsC zv-|o7mcztc-T+c;hrkKhOs}?^Uq)uhD9Q5OyLY7MI@2$^j7sU0w0fn>3skH2@bf3Y zf0mjm0H*zfJ}Z4_bkrCk27Z_4Ot`$0(*kcBfl~jzf*L;TrE>v61|TQ*nG_AjFfNd) zFN2ML#|}3{$(dtum|#K_y5;M&vX=3v6k+7dieNQ@?G7RC0n`Ez9kLe>9eP4ejRbXS zvB>71CZ+=*Zt5aa5u3W>jGGc^W0y2Omdb3+1yBoYZdgDgv-vJ%iu(%NkXwmMys@e?3-(r~dGlKoW&z!1!S+T9y?*@AI<2VKNx!cTDHArHB7Fg? z#ox_XG^dg78yg#`{?skEq0m_{KWvlxG9|?XW-?L-f@+FUttU^N;(|6ASSh@tR`b36 zK?s^VWn`l9I592*F>tuOFb4jD_5%D%kLij~806m-A*@?G%YHal%06ZR9!3Jc@CY%w zTp#OuMVl(g9Qm0&pXg4iCn!O}y(2k#;6x4C2_Pxpy~GSf!+OXME(zD4S{MJ9BISE- zSbg-20SE;cTCkLf8y~kKqhM!$q%kluDqpzJS-8oKRO?Z*-ptM}9s7d}WHP|O*8>`< zZr6WiO@Kmgf$RyE`3*sJ8Fe8nLl5{WNKMx`T@Y1AdNtDwfCUt2Y8x85BVwjL?oSyf z^T&z`z!hri>q~%ctE#HV*cNC4l~jKyh#o~s zK~1g6jd?f5@R=OxJ#+D5{raR}f-H#D2l&w2$7e#vThz8*2%2q=nEYJVj_K8?5AbPL;(lEOV@JQeDX+!=HK?MzHnQ1Ws{vVLNtd0VcCPx=-p+IuF-A|(-J6ZDHvL(ZRC zkU1_H1k4sdOjX#JkhQB&Z(}9Ky3PrQnZ^{CHH#^l7cXuFStX8xN)E@*>YLO6MnT%G zt*wcGjkE?`a_%UXvbD7!v0K1SLd0zt;x1}wN$Bg5SgLL7pVDfes@k~TwGR~Q^P_Vz zA5a`3S^^P;;9KB4&#Zdk!cn{it{19(@14%eh#!P<;{~rayg(h4TzA?2l)SD&)&INT zGH#sqi~;Q;^8E~7;(we;iX(7YZ6HMk(?xd6%Elmi5~~wRz&XoH^Uele1ObjARuIF> z+^>Y$pY2N(pjIDoK}>>%tHBrWO}La`0waRn6)Zm7Jy=m_7N?G&uI!6KGY)F=Ox!bI z$(d$VE>PI{KhxghmV)j_Oii`5we;0D zX2mSB9gmpjU^|YZB%rLNbs9_GEuWZ}zzlf~9vm?;p}+#a00IoTAM2n6ZZ1;5ARzQd zCcC2r6%`dxqE8(=RuVhU2G2cM`X6DnWM92bYA!K$KuIzKs<6ajC@DMm{|j_LZU?Nw6rv6mv3Qh zfrU+M=yf{C`*h}gUsSvf9^8aka2gs+$_Zz83kx@>A2i7R2`>vKBR(KCIkPniu3pCt z4R`W9`f#%VlB@vO042jQB6(~%P;UOvSwZV;dZ!{yj5-LW! z*KbfbxP$$hhpvEx6_|M&;r0RYPw235g3^I4A%2q_TFty|n>?IASj4Dq&WmTTwv*1airiFq;;NB7 zaUZ4HmzVy|qU(XcMQ2s_O3>$cFeuF7t(IM0pf5N_wQ7~OzkfN#@jiG^gtQzAK_PZl z@1H(R{++PDp%o6%>}7vF9t;8j!vva!{6H#J`1B-t!FOy379y{p@bK|td3*amv8i~$ z%~%bm$>1v`14vf|VFHMk2pd$s>yX4DC^5r;LACEFOx>W4ShA#oMr2L$31WBc z*|QEFFT4Y6!dvhu#5 zVqb$fn0Q)94P(?6?s}{fVlW1ihYwEpWjr&f%HX!(FR@9{=A$=I`}J!Xo~34?OMXiD zEDOW@ar#*p{rO1*59RL~dN=p9BR&Z5(2Qc$Y!QT);t-xy90jL1W3_?c@ zraTje3F^}YiLblYP*bA>aSVhG$%>@ZB}waH6GvA3H9qN02Q zeLIfb-XCd8YZ7JG6dO~>AI`{+W>nfg(P9HKniZ@2H(St_UuI(S#$x!7v4@p*NY_2T z5yUl25;)Sn)Y42hk>d&xm=pURC|CTi$K%A$bTBrA35&-DGuOQ(l56;=sz}rN@%Xj=M1n)CY7bXJ&zmw zIMD)K+__U`pIDK5iDBa4;MJ=`vCq;mL*^HOT|FDG2u7^mxQT1u&dBFE8VdfO_3J|~ z_1Q-eu*I|JMyG$o!R3rJ5#rg#Ft0%#Z|K=STf*4k4Kl*~%(vN9Any>$FN^ zNDb!e%sF9xO(c!(Slz9s_V+w7+$vn_=gXI`p1pkS@ph2KY>*WNKlwXeTeqP}G>1I> zD#p_cvO>EuQOyPm*L9h_g0PFVw;jn2c>qXvuu!Mx@rClhD%UqJ;)4Flwp1uu=GVMn zcf`ycsvW!bJh=0X=^=fWcfdN#=XyX9vFXt%q9-}!wph?P+plfS&(FxnR90?3c}9-A zRXQKq;?tcap%NA}j0eJMy1t`v%loga*S~A|KMm_WvJKzrKYp@I>7D4;HJEQ(glT2f zYqg7ywlZNTP+BfGbI7CPx6Op=g0|f8T5Xi6v2YH}{gYlc5;`|-+-zw1p>WIYpd%f- zK}|9Du#DB6$w8Le^TT-Wiax)d9}J9Ezuu;M`vy$P`u}@lGHYd}Ik~3+G#TSqhi~Fu$Pdh2Af=BxpN481*t&m(;^lJX*`0~M@ z>a+ONVWk&ydfz4GOnO|wz${$(vfRoRkzxG3GRm|e`qPMUO|e|dd{OtX>_wU*m*tuI z`9e#%|F(U|+|PG@03RiRA)@hPFk@t?r|k0HkjVT8p;ad-?te38KcK2dyhnD*ZC zKWB4H1nEWGB0ggGcY5-ZtgM2L96iN^;00}$wu>%*@`sqC!-orTcvw#c&MP>nQZ1VWjx>QZfN^;8hOJVuur@WD3(to|tF~0vU zFIiM1b22bQy`ibir?T5%^4o<-X-l44+`@tpXI9?*tfcWHpJBhwNa>qA4ZMD(L%-`A z8%l+f+Mgz7wf!4uP}NU{gaUtF!m8T#L_O8+uS^RE9ar(u0}-+jS7(hd$8wx(e48H| zXi^0Yl=v{>>x8M50EOfRTC3+7k#9yh&=^d}u3Z<+%6MzOY#{OO9UlDU=kWq| z3rrWcb}f=V@yI`0jf_I0WuFB7dc{Oj`@OXkqcguA;)pUpnG?(H_`eZ63CS3_^oLDq zc>Xp%R+++ans0c5HatG-=!~?MG>RyS3b>DdJ@ju3N)Z1_?kah7n75UYNlI)5&NIl=D(U6Nr z=xt#gD+cA(HJkkXxqIbzzLPd(46T0hbL2(M=(sccHvQ6TLMyLm!z0M-zj`h8Ou=Zn zq}96?sz2n)yq!4yyR=@YOc01t&hR|4_2OVNVd^~eT`4DN$)^;kgd<*N`0Zwg%J6I8|V|LdvbC)g3@8I z@o?_olbG3pwuv9geqWfy^)bAmD(pqxySu|)jF=-uG1LCu(xj0g8($|F-n4`pSJ)q1iLmv}gc1^}BX6{bgW0894ZGf_BCjHf9Kif2_s{V=TY#0J73pDU z=s@9g@Ocn<(xwC@^uJzm6#7#E%t@0WRAO2Av#W4D_^Jx|Kf@k+K5ud%YVttbJ)+?p zmy`2co=kXxep>)jCLmZqe9~Np0wk=L0!$(|hdy;cUQ9|dA~4D0E|JM*zgSK}Cs$!C zJNFdk-9XvJU+0J|bxASiC!pO7VFO^eW4Oq1LVZZ%0;#HIuU)&Aq&3p;Q*Owd%A+Uq zzvon6$wXrESrmb3Cq4_;jN|nmLnsbKOWYJh4#HPtVy1dcVIA_}jYfaaPgfsEq@8emu4Uu4dGQWpT?4*z5axoP^G}GK2%%n?>|;=evm)D3MhbL+41kl>vvsSm#?qv*?;3G$k?H( zS{fI0b%ugZLMvrNs~lBRKsKZgU|`o&mN>c?i3`I5WC&7`?LHwphjORi zxUAAy;gxVL-}C9Y+RDf`y;X3{fp;JvaL)JRzV(Njzd=Jy<+4@G-MiH28eOp5K6@H( z#42p)Wo2siOFBAdAgbBF2O1t&E`S-qGvF1xIO*vP zf1RZ{=uo3W5gnlsHtgRcNf>00Erh>W(xJSK&ky~g!03{e)ac{SW@}XBE|? z*P%b-my-5cwBlRsOP@Ep4NFfCKlMoST=T2`lRyy#Rn1tSx^a{VH4fw{j2V(}{hT{C zr6lPmcDO(Ctx$5Maw~_7lXqTT9t-Cqt>h+Vs>>G=8{XrpNMIypAy|q6vg9^zmQgiJxNnX- zIOJ4ovd%3aQqG{)%^&6;>vb|RGNEYyLVVs!YXB3eMy}27v(Zxc!_vYmlazx%xX9I= zv{xY+86hgppr^TaU zWA-jWmYCz8*Dp-F2L{M|6nJ8YrkfexCF9{FuI$J*9#Fub02PTL=Ja!2rKyZfeS z2q}f9V$0^u6jE~@i;!U9deXgO#(PNJ&<&_nRhP35 zs-PG>ff!ZX-p;A3tJ@WK?jSmGP|!be*I>LmR>NSd2BZ-$YQ zLQGQ9T&MfEL%o`1jPoDnyL6mC;us zDSFM3n;P?O*+QCGZrd~Q=x=y=fg5#v z%D}ewM?I;fn`_FGim<%!HE^ZtJ|{x#(`KceL8uNdr(E&aF|g>t7`U{dATN&%t2#jy zB{i`(;XBryPimAf!WKmLrpR&XG&J+DjHxH9$!%WUQsB&rds2qc4daV{+qs2=wt@qP z=izR%iCIy=OmVQsMw~RSV!ur2PzH{synd}Tl=e%xVG13@wYLr?sxNxme){;)EKi2R zpFZ%GlQ!xhZ*=qThY6b)!hQ1%1u{6*;22E`E<{tH6Q&js^;9iIH`$I85|KuZ6&Es$ zJB$t7`}S=>JJRt}r+kbT;H?=4zUjtvgA&Bkc+sV+bI4inU@ z&c?|2Ll!s088D$x!%zw5F3`@8w=7U8j6sBeu3iR95@{S~Cvh1t<%U1Fc7Xh)%SA-Gc@y7%c9@#Bh>}Ykhx{n~Upc|3swZO#hB4udw5k;H6c%9-Ca4UlaGoab&RMM*HA z!@3e)s7#v_+$#Y9xh@4}R62oDq!Y9>(g+yL3QxVhzqT;LQT*NzN~ z-un&E`%BSWX}7_2B>`D(SZo&{;pjqCM^~2z#(La;Ka_!nMWeR7TQj(wL60Bbfj*dg zuw#5+<4vz)?ud9;*ao95xv2NXRBwo!laIg1g;qeAIx9)7d8p|ilw7%2Do-;qRQ6}b z#!^6c&vBU8iHGY6C(Y4hHL?>(#mQx1;siW&rdg%?`S_Yx^i)*tU?FMe-)2C8a(`cS z)JCskaly)uaAWmxJ?M%(;pCLpw|HS+u*7lxqnqLX_5sTu`TfD-3bX{#3n5()f3Cq@`pZYfc8kS zTa&x$Ij+m@iSFMQyaAvJ^B`85yfCMz<(-}4nC&)2)Ky^76-3#Q4aJR$nypeUj z&e}LR*bBDYGrxfqiJ$F2`%2gO{Mhq*tVUbJF)D(N_gplLrGv^*=8zumBk}_q(ZC&2 zQ6H~pjZOx*nBb9-k9_kC0fCM~stEl9en>$tIV3|AV#uOseP>s*u%z;-y1D{#b1EG1 z&^c92cB{&v2iyZi$sJNsY=F#3)}rAWy1E>wfm`=|W{yg32QMu6*@cYfiyrxjqjbcVMRI{DMo2xVv=#~`_?nzBJR-S#YVh7p`Q}7Qb zysr8PX1PcSyA7~%HSfKAACpP0_I<;)h?$c~+`DZ9S)=d;qDsq&u>4iOe;<)(gJcdY zkky{AfP|OhH2b!1IHFQqLZYOyvOhlZ)#O{UUGc5(e(pyfI{NxvT;0BXdlwfAR>~2q zyc||qT3SfsM^2tx2W)C4^}h7u#|>~nH1?<-rlX?^1psN#dx_#U9`r`!yvEnYseois zmPmUOoBdl_wArL@ZzH)FbGQNkJv-{AUU7^K57YR_@8sAZrDctZ$sK&(v|`W}8|fPQ z08wghmTY%&auT>Pa31x@H6(h#6k1#8>WYCS$IKagF1{*5WJtrf7wrP4*;gC1Yq;Su zK~1h0ZiVRF)*Nd&r`&{x!NFdrdR)!AE(}j}cxC371ng{B($gzSv``sD$?+}<71ry( zSC~+Nm6`3KPd;Q?yF*M&%(SghM`<$riAt_Ts*>hGw|7e~vhS6|(_ zuC1+Y7MXN9ek&ZRPF>xw#psEaD+%)Q@)9rr8tZ5L20OlT;Oi@TnoXO~yG&0{hQh(9 zaMUDt1ruG6;~{M|h1+j#-BOptb>v9&JBn<@<*_20r-y_5<3yc4Yx%yXq&VC)W>6Ef z=gWw-+}e`5YMf_khmQ0U=n2K{Nt)XIA}DA}_+iTcm&LhXi;9czoS}OkU7D0w> zkE=x~$ef>}h@>5ZgZpSH1FJo9tvWs0lKs#i+c`9pWNSL#jhgHhdU{X9HD5W?)_0;3 z_QT$o%i%4Td-c@zNhZnK__5ob(Ex?T4QKvXi;e?6;NKo>{jMLHA!r!V=c*CK_~T1OxB`ziA<_kw|>35 zHs1+2&S0kn!d)MHIzD|a_U+q?>62u+!Y?>bAHNZ94(eQOT24+*jZ2s0;xEP_TK6kn z^O0YrtgL)v@ay`ltT|T&wbvT%*qT?9`5v8)PtDH8+0X*SeuS=04!OHDN1<~}z{$e^ zj4E*W@Cg)gwr%k0bJ-8z@UzwqNutT4t-)cugA(`a_x7d7r+2^6D-3|w$HZc3X=xn| z%{IM@-N2BU(V7^2v_V~69S+T>Xvq)1)sk^lnTd%hHYZ0T{r8V(v+b`QXvq}@jLFN-$E^hkNlK5u1e5}| z{O0Z3sj-)%V$#4kU^gaC#T@7PEVa*NWvj`7ShxR<`h!90104*s7s{gj&xcRvT~Slh zc4Pv$xteaDL)DM~S~wI->g%^&e5Eq;`Hn4;?zx^_8)@sEDGescE3~{b3~edr&^iqyM5qk=PP}I^-+`Q^Rv}#j&dH0?2hi z0&Dh*K|%)PB;NCU6B(dOL#PxI<*TK_193CZs-0bJ@b|@w7vy%s&hG&yOlfPY&VHVd zPq2+0AUwge{<%++258!uh(lcB;+mEd&kBSO9lD#HeOP8`#t6hj#hk;kEsxo@@AJ_k zN8B8k#!Yv(L!K&crEn8AsqR2S#|o@J!WS}hu;te6+lEySxJ-Yly%&IcHvk(qe=)&>i1aNFZVR2+Bi->=x>4<14SmgVP)3To1m z4%4D9e9-2LO5oF7P`g-((g%CqF`h?P{V^toOe&1N{fXR(oloZiyjD;+<7=D|Sh&0- zi8RtNGLqbYh>)gVyb9?-rJrr{E0qlhjwC%}uX|$Xgj(JkY(O#&gZvb^;cRy!B3S4C zjs;>J-Ix2Vi%KiH1?~gXK0Oi0k&5ot`-d%Bm{5;RNgLQ5e0mETn;!=C(0WpDs=w5M zXH+d5GyDAFtIZr7Z*Dps#@oRtD?4#5l zwciwaM=erazntT24&?oJ6b14sAk^n=mJW=LB%WGq({eU^ROT?m00 zT*u1FO2a0$8A+%Vg9|PV9lCC(3Lq({Uqm5d-lW7BdG14WDA+XtmREIUmAd*NsRMdSR}NvXB?aQm4QP6@~O-+wb(rH zSnxsVs62U>|28%^XSXqYUil!p8NADVE5%NJ9Uv0|{y#@aGFDet3y6w3C-RFAu?Pzb zhlYjyx|TUD_DV&|Jg?y4hs&vHX|Jr;c+2l}M^eM(B;0Ha#2@_qztHQko;!C=OhV%R zd-GlER>9%^`;7=0)dHTp!h|qrH7U(`wl^flW$~SZ7)1x>)Eu?3d7JaTP5AKPlr(Sk zGy8%|0ESz1o`HQ}xQx$x_Y)?gU;hX%cNA0QCuQl1!Yn3&WyHh7lPS~2E6tfUcq{Q7 zdR0(8r;EDvDrFH%65ZUJ^;S{94&_drE3p!{P7eQar6={Dry)Fh_pT>?DXa%8%$0&n za$otSdum3;SMje)nn;0PbIeY10zX4=J%*hww`bqJ5}YeIsgnGn>n!l9VpIwrA0Lsy zF>!6?^N8zGziU~DV=}fZj2lMQhbeYo@DJpemSpSsKiAQRZ~psK{6&Xbw~9g7k_u%I zVsVK_u3U*1yMva71t=sl04H{R@i`D(k}H}8L6pX7C<#KmAXi#K#;IRme-IhzhYCI! zdqKP*;H2j@H1?e3zHJPG=rA+R1$JD<^|H|niAGx0F|0i52hx5V(g)~jnQ%4^D)r(2 ztEGAA68DZB6bH33Hs9OK%VtDTw!?2H|- zILu(e2t1{mmh2=hP|+hWK-95548LI@Vx9p~CUJ%nodmS98q|+5EtKuBz=~VrBK^Cuo5SssKE$ zU7PDR8W|dTKnv@)KmzVkRNjOrKqB7o@Bvx_B!ijx_T>P0MS;>?$SlN(-Vi;~1_#98 zuJ$HAemA*>X^cE6E?lapsIad`VT|(U6d`_8Rju3VBhTiMl(ZlBW4Yzvo;@d>t|lG_`4hD6 zDr2eX%LNA{=gis-HDL?}3piJJsLDPsqlWmBi#;NFU|DR6GHZFsY3ND$p?yY$YWn z0iYl!m@$czgqY$@KIRWp?8e7jmsvrPj$=0=*u%TJqu^S;iN3xYK5}tQ4V|&Eu~r&F zNTjsm_H4^`7sDVSK0aD>@79GSKqn#|&Ft!3Bd$tulOTP|8-PzGWk*gg5>M=dmuGfH>UH8B=N`L-jMPBUsB)SLp7*84; z-Am0C4Gz%HAR-5__&!DqB)UdhzN0my&Zt|rr~1w$r=yaJFBT!6agm{3AMb(qm&X|1 zezcu9F>%J)d%(X_-_)04qaIdiM~Jr^lgx--_)o!k7k4DG~oaSuqS`L;b`I1?eZL^)+EA>CW>x4}Ir&sKt{DTr4kGYY#N zDBw|ona2K|1<{~KQ-W;mvlDdIC%XYCiL6AHwDr2Swl+xKOdyS-&OpZ?NX^&m)Gl81 z0FS0&5m|@+#z22+%u^u0jLxhJV;jP-3Z9~0ugiks2v)WAuln8A*#Qt3;YB!RvR`K7 z#*Hn7uFF12;^dQ}_4SnH(ea)SkHFb{u_6TQ230UCNylX9h>yGne(f3Np*{H23z>n6 zg1{O{NmeMb8kh|S$|YKUzw!*`gv7Ya?Uj;VUa0AV4vkJh8>~!kISQh`0QLF4kGY?o zF6`myiB67Pw4I;$3(L^fPQn!~)BygyE{lTzmF1XsXEo7v+Z zBGD~b>Z)_`N)&hAMvHZt;rr1%txNB}t{KVN!yWW+%K{8al?qe#2bnKNk+ zcp+CY__K)C-*5ag+Xqbuq7xhX@*DQnN{!-X4t@TJglt=;C=z%{3Gn6TfNvmi1%*<6kvf$ci3(dEJq2gHYg+Gw*ND2Z;4% zqQ_+`aQ*>EBkL$K!m&Sy9FJs$w}Q^&mV$iVmX1R#pN98Y_(j!R&e=Z{KjOoq>&_+Uk^gUTScco;jOZV?wnQHH ztk$3?fq}K`7x_5jzzQ1>hb3mu!3)rGM>qfWdNe7Me#QeJOiJiQ_P}&mE{vP=89Te# zEX)!N^O(H+9SEUia%PK8wpKVX^Ptvr*-scZ7U0*O@)K+&elN0367*W5*Gb;4ckm zHD8H}s7JwKx|L`vh{^Y1gom|0zR5O!@DX}*RybAj03s$D?4ym}0J6~|`!v1RiAzfp zBsB+L^_ z1hg-SOOcK0xG6J`6YEm+3j4zo@P7CU;!2RXF+c&rYrTOyp9`M<;Nt~$eM?KdA?Cdp z8JA->^dyHB)QrruM;-f$ z2*O%H3KK3aE|E#()=evPS{9Q3uq$fV=7NrlvepMs5Zm&^Nrx<9Cx~D~@Pqu#Qwc2$ zR*VW%Fj7tHb~>R?$`oaS0|yUsJ^GOGMqRJ!vJh0oE|BL^1aCpql?b$M+x}K}H?j`+ zk^x?goOtkrPv<_uNE`wgNogO0KU@a(K)=$+1h|tC?8oFTQqwR|NJ>g3Yu}bwo~?03 zo5d>h0bKp<=;+u@bP#mQd7)rwmWh|@M8BN^`kpf?q(*@KKT?blu}CnpE|8i!n2laYBIxgAZU zyGE%gzWw-70*>C)bsp#j_xC|q7&<*@UaIV)aC`M?FDmP+5UI&ewY6~of)zcp)giU_ zcUw^%poVygSM?!vmtrh{2jSuSXp0*f=m85P*4(K?2PLW^Qz5F~a7($G`f{H{?J_!B?{ zc3>Pj>?@F8Yb9zbq3DqU3$&MO*RFMpj=q`ln)k(Mi~y9M(ZPF)?Y70)vuDRACfp$g zirvAz>%^e3&CrDqhs~sAH&WEs*OTOS`N|a^IsDvFTvNszksGnaJAoipfM!>CLIN*F zMZKB*E{Mh?mXJq}Jc%OD!_x(@Po_j-f>wqNg+53cX$wH~5OEg$au}SL^nh8}*wj05 zs3eU{eSsWKYTsB!H!7t0P~kvHy!pG!S#UaFbMRW{7wK^v%TCHkjTlz!cJbBMvZVe* zs5ryJ!w|^-DmA+{KCG{=d*>*NHY!RAH79ARZdoR9dP1h=lvl{qQ;8%#Mkr3vjcYlb z+)(T_zc1sUa*`Q73lt>hRo2w}S3M+2>>ha3OAEsln&+*{WAR&IWpPe#Kr^KogEPeu z=qnJTfIqYrMFoX~60LW~g@tKG>GmQc;VXsuUueXC5yv|u0d#-3Lt?bn@I4lHL|dDU zPy#N9LdE6fywQWiSIp zGGx)!z?>BzIhk)LDR7$_9Ro<C2Hg zC?K#ICD<~Q{L17gDbTYEcS3AV1VKjLZAbo<)bMJnP;eLk)rBxqPV#SDYU*Yfcj4~6FDO8l6{TU)wPl=x8%G3-wVNF6mXicA_Ys7Shqo`Mj3U3*Rcew;bbXD zWI%0Oum(!tL8wJV08NrtdskkjF5=WqaL!Rez!EpQ_=w%oVWltYtoXMQ{`jKmA zq9r^*#B2aEz>StUs1#r^3MhUN^2kns8aOF`pd#`NOBk@4C=M{2XpXqxa>;EjM=m}EwwF_Mh!NS(pH3h3?Q*rllTpvE5!VqdLc!8<-vuCMmtW8Ll&!*>5VR+a)P&tsaz3S8Z~(;6jHP1 zEIWCHc^TvP1*_2_jXFQwxBrBKeO6zVYPW)bs9+uLH@P_+|J|I%ZzZcN&Yls?wrt4_ zbUGgN-!Glt-aR-X8E!kI9WGY#&YIhr<=c*K4)vdzk!b3Hx>7<|8y>sh^D`{d;ST@xcwuk87?6F?hy2Ypd ztq>E-$J!TOtZo0_Uf-1Um3?#MB_xDeA-=oJ!^4x1oZ7i^ar?o8=fs*66ik)5_rJ4l zsb7D;Y04L#j{=~eQr1=GUR`&u@9ggHikg2Ffx#8J*zHHo9S)Py4b6>=|D*jthU!oI z0-Un_7X_(|r-SC~RyONinL5?O@3cdnBcsTvB$eg%E=f^VDM6ZZW?LNyP!r|{E^DaL z)w+@;V=vuXdb>RN{>R`Q^XD`Hlc0rp;Q@E%Lk3^|@8$OHb_4ET?Pv#&LE4IU9yt3E z7$_^|?U+5IXa4s$$Im$*FZk|g#KWVKk&@TSXx4}8QowZM-NVCs z@yI=~eQRw${&(8F$o)BRfbLfJWl)j-s=hmUVeJQMB0f?>~U(N>R%sW0yu~|bR|V@v^Sp;85w>S^@0(T;xto zNdbjNLVhx{`SfKU@^7=nTCpr}ww9NWmUPrIZE#T%pYM1IF9prrXVM=earqWt5&VrE+u(Uan-6d9{6)$ z(*}IyhC;b@9e}{Qu3Sl4=&KR#D}VKdTGx zz0+H@YW|MYMNws2t-)p+$E#CIvt#v|sWbXbgR(rUb6eKwZKB$Lu!b|F!9%Df3RwE&u(u)2`J~|9wX#%m3#WAHV9q zH2eAI&z})-aqhFTwnvU0y>cRd;zcE|6h(n`&#(*4qm!@Sym^$HEA~1nN=j1ld{k8m zZR+dyadF2_ow^jQc-rt6tDvA@ll!LJW4l*JnbvZ1bH5A?mA!Onea&0hqXGi^{VsQF z$xL^+b115*6@~CyqztDGWX&*ko|L69rKP3)EGvtC|NgnZKaC9Y?#t1;L_|b7Iy&gM zZ|}&;%A(z~j-Q@td}2aMUOpx@HC6R~yz+@Ftb1k`7P#(IGj()!YS!JoeLEr|;{NN` zNATM?>9%d#&;9hrkBf_oi(O8i8i#)U`t|8vtFXGd`lkltRjhlq{4zYd!S%uN(n86? za28|01vxpYTeogKdiTA}n-N&i3 zYH4Anu%>4BV=+-#+3gZu4AEIxVQPu`JNNAQHDJ+FTYE`Gg@&J>U&Es8EE5w`TYrDQ zV$bDI>hXAVg)3J?@7_HnD=WJSf5mwtcU?wiX0xid8XHYBAf z+_{tK*s+}l4-RD&uTN|oqCaQtF*s-}aPFKplaz1;0|Udl_3KaDj_T;%yg4>LZmzxb zkU!fZG&J-!_kKKRv%7}x)Ifcr{gk18c}USgo2Ca|US1B~?z*3^z5Do)SwtlK?_a~T z^zfPMd1}#!lFJ_3Eq< zjkB|J=0hqQo?y>|=d3^J=5I-@YnO?SkLNynwkq4jMayyQ60>|5+lpjBKtQ5VJ-hXA zlhoC#d$&AZBSn#vlx*|AZqgoP^zkq^_nuXW4Knuj0u_Q2+pziwxRRU~6U>Zz_vW8U zZp!_7r)Cp1wM~Q9NO8OA=y3Xod0*w>w=#jbN4*5aE?ijaB|OjSx?y|ASRtdq_xr2a z2P7#M9URU{yr4gP_N<=|i+pu;^}|}j^*Bxu^#jkaIMr{YNC5o!@uSU@@3xUqCw`RW z=+U(t931?c{FyfUUC#ghU~OvWi*s}$&VtL!%k=!_k8E1(+&+9@6Q1uo`egfoy11U0 zZ{Pf*r31#RBp5%Nwu_l$PN_U}b=54^FrhG2H8qviYrDu^zP#n?)vE}uLsGjE^~*X^ zd&7<%Ig;yic9npDz|Zn>{iXS-5CN;_SYswBu~_Bedi$0PyWu!ZPWSxW#(UXi5{yod znoSB@TeY3fTROiL_n^zcxu!d7xCcjeI5_2yN}OLv2>lCselb&1PCR1_!f1TD@!mwi zfqSE)dDIg>cFVVojErb?J+!j2G8^xb%9`sr@a4;wzQMsC?WPep<8ieJveU-DIT>6Q z&F~8N!eC2g@V%_L4VhXM78OD>p)D(y&jgpTX=jD}`lVc4QW6^%muJjF@+l^yCqZvxtZnFQ||NIQM%FbIiO}j8%wLX5I5VysIXLN$Qmhb5Kyw(-$xF z3q1Cf2J?DdH%Wc`^ywzNL2gIByOgwadc;Ju@(JX>wioAy+uGe2dm`N!C;<+`sctw1 zHZgXF}c=2cNuiM;TEPCbqIke@pv>0v{c-&ZCoFgeI(_v;DTk7NQ|0G}6yS2oa zN9p=?cjOM8Wk5wOvdBrEiMQEuH?o!Ee1DAN@?39-u+#j9-bt}*@hXUrYu}9bwK`6CE|k!g zsTr+kqCA{9abk9HqC)M9-sXb`4>GZ^aJeiy_LK(Z^;JcoR&;fBRpK>Vv^G#PlrGJ* zRxHj2F`(%ToQsE>k{@Z#R+~qlbr0Vly)}zg%OZAO`+4Hb#?g#8=J)%24v!UnVzJRUJ?z<;(bBCZ8gvp_a_+&!0W>9?qDMJAUlg zr568YlK}PW*Q4DS>?OBQQwM0-wy%%<@Il6TNwHzbnmn0xx~72B{8vkyQb`ipZ+w0C z#Ky)-&Cd@cM30V|_SeXZ`28IiIF{bb9xk8Qz}DT{EA7K9OF=4U5n5TCP(&h6FuKLP zKN@*l@?Q4Rx34%4jdGYV_W16RDkvXU*({VchD{rc*zBA@7&FL(5} zt}G`jYin~1wPtGv2|0Y*vv=>Yg94U)AHpY4qWc34!n`d7Lci)2?TY>OO~ttk&#kGc zsc2*r_Y2{Y^zB>N#Kf)SM$H#V98_)>$W~G@2(pIqnTfqmNC?n!n!0+Y^wsHVM3hT; z#qS~?mS}w9jH0b=%2(SlUGlolB6vTel6H-qd)3Sl}=@i_;lk0S|K?V#Y`Xrxhz{bvn*E$cOHq{_<56fG3diX{yrVB^tr*9ytr>b0Lxik-jc$5pRc_^zKl&wRB~o?&p(oslvGq` z-P0jR)jJaAgGiNO_Hm@Tjvy#6m&3yUyj9NTa60^4Y%lLoAtBA;q9X4TCr?Jpi!3Q4 zkSHb@W8zrkx^DX|BJ{7HT$#O+c#SPY(2jDe#D6S%Wg%N|w#`)#=WMZ)aYbikc`4H{ z5l3luvPOOmUy(!|4h#%joU3rr&w03ham>p_ukqVmV6mH@ud%YS>LB?4{q%f&wtjc9 zA4*$_u{?!o%hs)GpLN$G3hAkZCU=nh;xb`#&qb=eY4JjRBmquRNd-o#V6bL3Yc=jJS(5>Ep+>kZ@_oTVG`730{nI;SB zwHvne)vkM6)1NZ^$7rsh!nxpVy+-GFP)%SxfW!_4hVse&n$_<5lvh;T z1&m>9YdfiSfmv!7u=ikVc6fW9+XOO9>ZHNd6Mp0`-`6g&(^I)gd&a59zjawz{!vh% z%e}uJhb6(a*(B!kXK!H2iQKImqd$*&jkdW`j}InRd@=97jC$Mk1<1^Cs#eu;ajcL4 zj6YS}-ve3FX9+2JjU?W3Y5leVi=1j{`US8D} zUKY1JQGoN30FK_zg$$jj%N@0<+Q&FJsC|mMv@!w^$B4!L;bDD1EWoQ2%N#&hx@{Xa zP|^2Q3mp>@3e9(?ov6Ehuc)_sv^`I7X|krtt~azaTtr(7y$U3>x%z^>S{|H8;kkL zJKyfLmXkf4s1T9AbLY5zVqkN+&BWihgz=n>jGr84OqNI8L`*09t{C$iD133S6BxM@ zdmWRNrRBVWaPntU%N_47!I2k_R=n}~+VA9hjPgQLdqy%QsG_5z4F<>NQddm(dy1pc zYQW)WZf<5@dxHIOtsz+)B+Fg9cF_she=Qj}cI?(KP z9Pj#nwVNuat3PLwTDM`tH2=#EF=bWN2_U62Ms;i-(}x9|mj<*g@Q`)!*9)CynhQ~e z=Vm*-fZ95di`&07nvj139$%$;Pespn-^+`7H;de$#g9z&c=3e#s9HmgKF9C|O|ifG z-kHS?TAy>HX6%{k4e#~jZHb7CTMdSV$E9`&jdI747&6zW2?AL1!E1&RNTqX$w$Fg3ae8Rk^_Y3kogW#>t z*AynV?K(rZZFX+1sJEoGl@b2~Y?73fjZRD3kLSv3kNEWIC9Rh2gP3sVpePA1-Q>nQ zMn*TM{?-bj@&X0s-V%`u704G^nUi;(iqrmlw~;5HejcA8H*2PFN+ZQIa)EJu`+|a! z(gh^u{QUeT%NkiGW@aSOX7{4HkDAg-O1nD?y$pVTy7A6lJbsN#sDR&rdl}ySH8EUv z<9cZCZ{NPH)0*WZ^NRDq_wVPq_isl*qZhDziVP4@bvp&nmoz%Bgq;M?s@KHGTXg;0 zi6ceFV@wB#%FCr+dPqPZsG~y{q4(_Bv%{xP@3c43T7|dK2k=8#b~XB#`s7NK_?4?y zFPWIIS5;Nv!u@@OkYn;{0 zp!FS&F)3Umc2l3^0@niog7?_RrN2$-txW&f6jroyU%s5d`@G`3@i3!|G$)~Q5-0^| zH}Ds7VS+`7_J*%_e44_|kpY~vdMC^_tQHm)-gbb;1CQ_M==h4~?tc8b9MlT{HuN8P zAJh`*PV25aD)B<^=gY&S99_Hi(~Z#?jlm{r;n_o{G@H4(t=O z^G`5redj)P-gdy&6f?+`ME1=$=p={5#Ij zdsJ!{2n#&}gWY@f{FtiO_R7&QJ+1_*=c8sipYtN$>eZ`B(lHhmHPmin*I$;uQShik-h0Adh~NKz6bmjwU+vbLm?shB6ker#upyCfMd-{wTu**c7R<|qyg8h`;!JkM z_qfugty`l$eDFZGkA9mx#^q=VV(gnq^W_^i4(C1DeiLEOzF;Yg*h35V#bw1Ac*dfq zG^eH}v0~(nsTCUG#dmfN4i*z-|9&~MT*%ML$P4>~9r*}V$Il;#MgoDM5hS{I%X%P@ z2WvN;K`jPjQi^a$nd=Eg100c+#o$x)Bg1aum4MZWqN1WE^O92@bf+Hzu6#*M?7n*^ zN&REyw7Ol_=%*WbbOM&F_~o5x10SPeW1nSY2nM{(+lpT3j)}=zL;-jx@K~mN^coIB zNjMbSGPOoPU!Aj`WJRsHC?Ub6`(snU`8vHbH@Np}1{GAisUN5snEGwZ1F}zJgZMk; z6C_s|ggX_Ge5K_)cZ(o%2e%Q5I{PwwY0!WiA$)v^t2B@bSVbJe6#AP61}qz?8M<7lg>@Rf+#-j8 z;1@l8eO;d5ZgcDizy`X6pFwAhy55#0x7fSiEPQbquRz!t0|irIbQr(t>u)AD(4Dhp zQ;LzhmHTM3ObDMhp5)BkKipu_K=8^XD4s z$IHdzYAL?HKh{zUo(IHSm>KB>hUy}SB|1P$cdR4dacQa^ty*ZZe`{-Nc;p4QGbT-Z zc*nvBQCGYl&gYKZyYqnlO0a=fPWbKFvj-in7;+=w+`w-Mk=H>|WzkXfX$OyD$C=Ls7J;{#^4Gns?Ze3AV|64sH5vkBN zFi--VS^jYSR@*LbiIj!mbdsb2)7T4Z{`?_lz0iv>fUq=SQ~IZ*c8N!MUvQ(UYG{yB zRHSGq{q6dYdG5LetMI-DHhFn@yX<(ClkdZJ&KQ{Y zT+qn0KWkL~u^Zdx8?0VoYzxQ^*CSMz!YK# z5hf)oi}vpnHuR?^Ylv+3q@zBTG6i&R>PXfC9iM5$LJ#}a^yU|!8g)PGe7;83!fvuk z!Vc>)+s)xpbT_#fa7JgKE*_0*IPa^}9rl?FE-o%}TzeT9P-9qUf2eq=&ZlRlCajFS&|{Sa)=_4OX&M>kT@wsg-O^#4+-+rs^gPP#z_q9ltrAwzChwmWWggQbBII=E5yJ8?A zyPR@N`X3{fWVm;rKB2cQ$JN}kI*@mdz2T9jiPa<^+S?z*#Kbs8Su0L$duO`gsobek zr;MA^{E}OpgGsAJ$hQw#nL)L2supeESEDSS-tP(M4~-^9F0>=cOSl6`5dEBR8;;`5 zh3TPRb#=v!>$?8D=C|ni*XRM;b0MYim^A%F^Fhejc2iSyGX($RoXz2fui=DfyDXhW z(aU_%fc^oH5?V-0OAAplcJ1m=6pvSd#(?^8Ext~R*DU_cJvVXCD*Vl1N6 zOYJgD3W|t01Xb*rmzM!DBcWXXQ53^XspF|aiBjnt<>#B#>i7@c`SEn8`IZPm)`Jo8 zjlZ634$3KZ0K^SC6DRSY$ z%>!JvpP8gO-UgfKw&y<10E$~2&|c~AQ`Ksxc9~s^M<+FDuqjoE;ZwWgA$8EA0H(~0 zPLn$kc6vj9k_LZ&c75_>1GFyjsIiCBWr1F(MI9Ej!e|w|IE#8 zBTw+q!!?3Q>au{ffI|lO%*CY>Kf7izLZYa&)R*ynXsZ)i6vEB^{(N)u)~yyU*V|bx zuJg$CQUM>kZ{NO*$!ck36_qm7I+r?lh-}2E)R}Ci5{VvB4O{*8=d4)aV@7jYvV!5fN<}XQ?71 zBZ>L~74Y+&8fJ7A;A*&ecqmXZ4GmAYQ622SAwr!Gv$FiwY{GK#q&v_%X^Z(xbrKpb z3JM7U73S3W9IaU@=rN{11)$sZL`$}AzvqT{6?dRNB#U($H*%SGNisN1UO`ReH}Bd6 zPQGvNQ>}MFLHo(6U|b&ExV+dak_b)`kI;~6!QxKK(bFBEt&c>BTr);`em9ZD2i+wB zC2PHq(g1oNxw+N+`gKuB$){xP{p@TJ9N}{-vxOqIWBIg!fN1D8Bu$jI{TZ?r6BD!T zi*&Q?_EVj$&tA@deaU?mf?dgvXS>Iyr~OOf>^CS&QhuF0Z)MI$kNEe!d<>+(vJL9E z%Up@}Y(9sxsDi@FkVOXs0h?x;@8Y84jI8Drgq*E|Llkr@)Iq2cA+*}s+R$vkDzYD? zWN*a^Bq#IYIS|r2_w6g%&fE08*{0RANRO=Q9vYesQ$9$H`k?WQ8^3vCVU#t<>yWKl6z%2i2legG)XVY4S zn2Dv?@DVE(gP{TfOwdLe3}?=012sw~$)U5&%*j zJ#=Ulr~p(IX67g0k3P!99L3UO*)M;TbwE==WK1+7s2hKrlvI_0INICWZzrj<8AyqlBsU@) zptx;aHrCiQGqd`syL%pVp@IVOxpUs(;T513QwKh#&z5K}=c2q6qYEbeKe)5pl9IUk zZ}VF^$SE5if1Q{(@qzk=s`SN+>qz5_UxL16Zl+BGitqs*W1ZUfS3%NDG`24Li@I(| z{q@SwUY~b-dYbvfiRb4=GL(ipOnc5iBBJ>Ca12cCb*7(Rj^6#~WT~2kMON@|!|x$$ zG;vJT6Sc`K@i1}u+MCX{#Is^oQMt!T2Gg{w7rSk`>=gRA?{yd z5+V}!%^LF(r3bRqyLazQ0~>$a4L2qCJD1jl@w+N1DFIoNzP^_}UjU7P-NiQ!AM?@G zfmy)u;WPSf#}1zXR649(`41JGn-WL!(s->#;nM(cZ^Vku3M z_7x8cd+kS41_YGE>gx{q^$^t&9&xIm*lrbuWvu2$hrq$ z2bhg;{~{vVTI1v6tZZzMJM+8W_Ajp3XKKl{e{o*2$C@#FJzqweYDh7QlAb#W8e=sG zX%r18K+4L>FMWLS7Dlowddh-1{%-sl9sO9yVS2Ru+=%IDnc?9g zMyk-{A@I>pq`YHUgto%p`UhnZX{*0BWRTl_^0v4agY2za$HJYa14DKd@N*=g8leP} zKu>s{uNw&+PtG4*rYxA2k?a*=Y|!LLYxtu_>y(9#dxO@n?T-$yMVjHa>{Cd{ks3x3 z!O;f6)7IDT!>{*q2TV0+t3W+>4h@yPI(>5!6%{iQ4N`i5MK`{LPSFlhHS5WfouGSq zk?=YJV(_X8=x(lD+1cv6a0+e~=vTi?p8etwhXnvl@GYR451Q%zgz@z7*!KSYd)5;t zbOGHnR+bkK?WY~4jluDNnaBS=p#}@jb?tt^Aaohz6&Nj&6yX*DBGV`t5Tpe;bi`$$ zv6auf>*<0?h+mn0)W?r69zI-yeZq=*CupNj0^IlY_b+}xQH*6mp287A+!dhc@qt|c zH9Xjy9ss@-t=DB#IM$FV#@5;(UF=lh9Nw@Fb zJ%(S0(}AoAEe}gaIQZ$2R(ZTV+A=-lKq6dQT3e@SNPw0O4`)PV<5>ut05=MzAJK(g z{}tFNG-YH79LI}T%!7hKkie5t)RO5?v5=a14c`e~$c?bIWZ_U25R(Y3!@Rr!Rs(gY z@Y)dytb~Z!;MyJ%UI8xvaUOuC0BLFfoCk`k=xicXZEOc}7hX~yE*w0{_)PXn=ul&_ zlCtteE332UPmP;WywQAlL5NC?lZT>$E{xp;q&=`)!a`%XlBQU zaEq~?I@Jx((bdxfR#X(tw+t*ZV0w{m(Qu{$$;00e4Za933|5m6A&|aa&cs0B3{$lM zuPhV9Ekz_-@4!GQYik~)N&=ZHcYpOqYaAXfk1hf{V>{pl4tNl(91xA40;gk1dS$Ju zTUz8mIi6Jc(1z0m%H$K&W#R>bHOAA^lknC5sNf$zG)%wu4K_|ea59C@fx&T9wBW@- zhw^oQ&}o9|MKh27eLRc!zJRC+Rfncj+}M~6N?Lle9MqZvye4lzbfFK06o=O10F+Cd zhl9kP1+jfNYrzDCsQYaWsx$Ge7#bM`f)d7&r?u38pMj945Wz`H1>)o);u!*?`%J-YP=A6f7BLK)51GGrQS|FG?7+1hSz!M`LRi&V+N;Hvc+0H@$TVD&IgSWv0@QV654e2cp7vskiA1r9XfT&6GsG8 zRF|kaWVD7vgA!`Zo-n&guY>2r;n#7P9&AT4BRKWoK~JD2u%H0BplT%L{vr z`Cyl@z!hYdKHqc;>2D(i91O`J*v|YeUqbVORR(2dl0L)(%rgfLZw{Oup-kb@#K+GG znxI$5UIBA&-oD+>$NsuQ&u?K63+PmIE5d~EnAe?cvFJ=to57Ky&=8peob-5Gz}C;u z|5ZL*%K=ZvXW6#{YYr)02_ggb7?u4P6Vt_QZ{}9-Bz8_>LwMF&SXda%pF8(;kiM)D zJ~|{JRCqnSAJmf9wT3vYeiBgv!3F3rh&v6K`eM8am*cD{P7CRN{KM2}fhAsX-`RzX zIllbcp}GaY5XEeW5_FNm1Y;JsJv9AABF`Z^LkNH-R2Oz7zdS<^9A#c!p6lTYPdH%* zgD10VDAY6YS{V#@2*6#zt2mB%moC2iU4(nxT@ek z6foExg;K!D`4aXJH2KKv@Dzc_Bl!hgQ+kt#PuP-m-I}@id1zUmud$8K!Re{@>)n+m zv%-TUE8quH^;5wl>^-T%i2{lPFQu&fYrT~`XK)!vsHl;^kDP!`fGBWE5Iy~YNdiI>E3$b<<7lKutk?oCd*m-ZV((e7fML=kr3z130) z^#CfDu3e*pJJvzoa6f#c=*2+*_5eocfm;|)@?+Y3z2d35Ti$~ryvX@H&W|Q!#UQ3=MPZe0T|K!p<*um*)V`^N;-e z)8<`2h1VXwB~L>f4ReA5*-GU-%OJ7|vjPJXPOP_~XaV<|84!nsK$&0N)7dk`%MfuBtHt4U&_0Lra()>s;9OsKOGm zGmaW!VRn9=^77?*Wo2JSwi`EYfWCQGF~Q`Ry{FpGIAQlAVWL#2s@jw@eWNg;c!}!i zF#)^+370roV==lTs)75jUOnbjJPB?V@JosUyp#)?1~G&R${8pF!j051OUtj)f42sg zG55-B+p@)cE|Ov|zK@58r=z?3lCklJ#h_Y4;y1>|VBvuD%qe}4jVA4dfK+=wRGsqy zc7j!n${Bx+ZlB77L+`*aJ=I2(9y|`nH>7vd*f~Dh-Yk3~%pIT#n2#J;1JWin);ny- z#@f1=|4;eg*0+O!&Zl4qxF5!UGZf8d18QA`@B$n814?wr?{A+58_ia14_pRsIETuR~9yBe~@PIu>d*Qw&%}4O+t3noQ z&IOk@!(SCp;mRZh7f*4LsKJK!AjHAV^rbe0aj-`9{*HV99zSsDZ@>JYph~aRVAQ@RNCkO|fYaw-cM90oI}1>rA~9W9S2C{nw5 zfPrDSnsK_+DmW;JfX$hbxn}s^-XJ#vW+TmY-8>syMocxTs%{O&sGm?QE+{DMC=T0M zP2+wk%lcbb)eq>RAcRT^mEfub0L#hA0XLsE7+h=E4TO!H4Mw@bKC^;p%H#b#6BB=< zjR&bV!WN0vb~in}hpK#-1WT{)Gf>a0ZQH#f3nNi;HvRKBG&h z0f#oJUb=bnD2QZ(<}@od^{-FSY)qxiZ546G_7Uz;EK-4-D!_qmt&2MzF|GzB{m}F( zFm9>}hk(F*Mv`2vmk*kgFJE>c1xQLhwPnS(9sl=jwO|!e)nsP-&3W!=->%6#v`It| z=J0i*JMhmu)0%<_SW(eq5{%6xwM+izzZrll||DN%hlu+U`%@gD`|BY+>Kj$`1U!E5Xi9#U71@hj5iBIYrJ=H&( z`_efp_Py)ctN$Bc0IB#`tbO?l9@piVPZ7a{ut-iH^Q6$M?zGd8`F=aO@pPaJ7(5tA z7fK!;a-`m~Wj(4#rk0mV+}=d4%?}Sfy+2l*UU~ltg$V-!Fh_|;Dn$G^u=8}Zw;wj#zg~1Ufn`m>$w9HT;=s0u3B#oQt~vL`qs*`%xif^SfTbB! z9|-(+wT3fC@Y*X^vy8s8{xM|V4Z=w*5;nD`!9IsHZk4M$BWJxG$3~}YyZGHUknf}+ zeE7GQcRh+LD2&MzH{eJj_&7_ z1ZOR<04TcwLr5^1m2l1G8uLIi6~p&}9Rm)A>$%xoOx_L)2G|b!)vwyxs^7mQRaNV+ z#z%f>9K!cZ*@ZPWHs(KdMD(>k-|ebZ-YK>*6Lkp88|2X+_{*hRLFsIkL3e*26!EBu zuVLLhS=|wtHEXZ|Y9SCE8D~jMOjP}|>#^8_W)moSI~W-&i1hmWx%qJmVKk-0=mHVJ z_i}X8uMyae!I$hiqqhmX+`!pg&6qaP(kdsm!;>eY5)*f?A_FmEJ(8FLpm^D5E_>Ldni^PNO}RESG(_Mk@T)OTaETpe2w+A)Y9RIHJ%~w2O=7ECG0lmR-RQcKrll2o(#!0?|jN4~R95lW6#NLn`os zcHm4gV!#Z;PNFa+%!$F88=z}K7kknTZ!%8+-YRSu&#o}sOkrG^l>j>|cmDh;6hZd0VMwCzrk@5Uh)keSw{(wXjW{Ae715W=uKIm; z4vdgIZ?*o{*J(kkkLn~!GhLb;{dv~x;(FUOT7C{G3cP+4i{?-@hqo$mgxF8W7~g^d zN-SRMx6=GPYgyi-YhZ5C`_ml$2F2?sL>RQ|J-7<;56%YSb%a@{E>kibtc-0>puxNM?>oFD7~1hf zBejbk>Ib?lYjN^v z&b@md!$(gq)79M#a^aa=OeYLr00(rgIp1MHU_E~PFx*LSt^G5(gc4B?f*vt%EJJiT zgJv5OTBk9FM$h*Wo+Hv$!5KO_Hs-yS58Cwn%!qup^U^5J8^9cBddOqHGwird_&vuC zhfLgP*8up^cADC|3bKA?pZ*;BNd)VQ24ns4t|E{9XDZfdS1Ay}q8wp0zgEwCJN_X7TzIk8|yVs(ssjqaCutlS)ZR-9UE?yNDa$ zN#Eu$RG&F8^#vsy*)kw)a1z0TWX*PLC5~GkA0O8uJ#&YE74A&)0^fU+lTns+-=ruP z)ztQp_5)}WmQB(N1Y~((1&Naj2E$cgT5f}GN{&;E?HXSNbG+WITUB*+;(B^rYDS(M zj~4jT_86GtIhkSZg4oc(6u-iRV;}!LoU4q*@sf_cYJ2%EfZ-HGfukV|iav5V?Bt*p;AU}GiMvE$!uEi{p+-slr@O=3gX%+g_$j>;&2T zL-+G1SU0nl=Z#QE?Lf2=>l4h3B&uP;v%o~fX%OF_THw|1#>d0^#k)9YAVQA5SWL|r zk((Vc9RvT~I9Xk&5UcK^@!hr|Z-(+)i(6{z!?uqlfAat2Ci#B#J2aNJ*$I<#an)yz z>+VvTmlcgoIb&tlnj|$}Jm@#74KL4Q7+pu9OQW&R7n*6xgYCRqr^;>uRw*txF@XMY zF2M6f#>Q@rHTW?SCggDY&K*$-6L1`QAN6GD@CYD1A_bw5|)Kmh|H(~P6^KPu7_qcEZ5fX_zo z(Rhkq0P;fpfo~Gt9gJ?Wu&`_dY=o!}<931WXVami`ZJJ|$oL>oNlN>Z1MoOrh*UT< zRa&B~Xn5Wkxs8blRvkDU13#Ek#pM)Srtf1^)fB9qo}Nzl2Y7eiykXMS z)$N+$Q_}Y9p)jQyw@O7SynOZQCz%$7P39;0LsVc4MuXkM>W6>!YXMY(8b>T|B!&B( zRQ-ZX491(^X`VaXX2gFb3*)%p$33cUTeiwz4#^c2gZMFFp4apzenpfRkXjgRM(z5H zC@1r@Bz>wRXqCbCR#Z|Fg&{k1|EMZZ6VUaw_x2WoJ=Ij)0EgvH1_ltkqJR50UW0lA zx|%2sIOg!sf5Mao3`HC>R+fD9eD)jupi#r2!esVK>6NRZJ08W!Mk_3}(Ikm^UXCA36|!^!lJ(}q3r)Trhot~OH z#>uJR+zhJo*ukn)KGy`)W78U0-qY~mfe zUMrvIe$-ojr4+M};G6kV@4uY)^A!Fa9%@5GyIr z`8W>*H832nWZr7!ByoMR@xL0YY`zL-!ID6$;=*=~WsHE0_eFWZzq`rc*Jzpx6-a_d zj2vjO1AZ9uAZ@pPLJ9-tON=ejU>cg-hDy=dxS~bcu#N6KW&r?a%uR$1cE9CP`{rQr zWx=Jepn&8dP>sPncTr<@f?!ov-h+9>*AQ+X*D5G0Gx2&~reNr~7mPhUpXsW{VmavP zx>gnPr_Gd(Bj(}0gTz#Mn;VuSceyh29-i#220j@Jc0v|tXfR5P7?(q`g>D3S7=#bJ zKbTq(ZCL@7M9l?W>G~C`1Uhz3V9(yYu(3a>x_uF$+TSmQg-3)Dxf16%HN)ayaG7<> zeH9QSvu5PZ1*s6H9ZBk^Fw31=QQ?I$swE9QO+0ERIJ)Itm*tI^+a{Jk=m=!y1sNSi zIATnM;w*%AvZ?ib0LW)zwT4LrXf$zghFBBt)V%c$3M$^pk?|coF3b!OV7`&0#*?#` zJR$#?p_wyB`;ogZbyqef)i9lcJRg&i@=7z^nv9=AjU|-->C>lae?4+cJ#N1t6Nyg= z9rwWEw{PDtW;_Zq5tAG!XfQxYK>2{)(}|H`N`<$@ij}~@dM$@j2nk|EL`qVCe(QZy zg4hPJi{lP3>p?S~Lr}M3|EDVTS252itVc5}8XHYzXsDgnXDw!In>Xio%g8JqL~AJ*-XFuQ%Ouobe8p4+YsRC{)V&(=ff}_1@(tSub;G7N6jbC#dClT}!SSS#3NFNx{5R)s!2NFh%jElg|JTB}K{*U-Px07>u(^_$4 zCLlUuKjPsbO#kR8QLTtE^r$50a*S(&nE{o|-pba`Uj+j!;ux&&WA%9J%{u?18PL#F zS5~e%54j451m1`cuHR;98mn(!xxg|tq|e5)vDdETq#WgYz0w8Ur@UH!+$-F1mjK8T zl)nI@b~y?YA_uKIJFhVq!&n13-QFpS@DT(kywhC~KQj4$gPG*s4|&e~%t;e5Xb|0^g#lcmq%Yx*k*Qn*nxWUI7Gwn3>sWj4?fW z^ysHF;KT;kNYzuyh?wiiCbtMpC1ANJN!?RDo*9F2xP^oy5GcDEbvqxe&=5ufY$Q61 zU}7o(B}Jd4UPcB%;kbACn)4bIx#^tK$XO4pJ2azh_mSzLq20%?%Td4)UW- zrg_`pHzihjsMlUX)Bh$6K{=7lE=EZ2c6UP>j$t4s8JX!A4T-@@c83yAx0<9kasustjh^~ zcVp4Jmh*Np{>Z4%ZMd9bjVHD!!{Lg0eJgmvWfO)O;hNp;V=+R0F3g@wB(7DFX zKjylsqN1p!^&&?{2g?0;#HLFX+~%7%Z^qN3P~SE*6zGjugU>Y=HjPz2VaKm3n~psh zZ5?{Q&cmRSUK2B}&!A(&&Mg<+v8@LugiO7H!R#jU*yInH#s!tu=Qo-f8TkO7Jcwa% zkXYNvMl0^5qkEd86M^0rNIjsw;!WSa&40CA?RYx$PZBjnMB@cxn~3!wpXnj9TPHt; z_~{4ybr{LBWk)|e_$SHTAk6LwYS;4eOtw!*h=*KEp57U6nCoDs#V8)&_YtXGXlqG> zgW3xdo$cV~!mb<+kX~(og+C0F#&P=$CoFUUGmUVX5KlbdEE%!@_9+pK%-2O4egGT? zlN<>w3e#x}zd?oT&fzn_l^w`WVD>ICii@TcgNwlAF#6C*`z5uSQultHp>nkhI!^(#sBU3ZVCt}~fCk7AWmW+MDWd#J_K#j*l9A5Yd z=FPU=Cqrl8!BR4MVIs2wI)iT9L1r{CMPUB@H~N23(baJKka z^JK&JCAp;gy&Z#pRW&q9|JKH-rI@yRap-XG_k=@d95IpTv|vrFQMk270^BG2JC!y_ zoP@t7@4VPSo83l^_k#xyK4@o$k+*=BLMC+K<pc^ za9|w~zc79P?Eh3VqQis|ZiNEy#gX2m8px$H*w+V2xbva2G~n_bu0I~eC!57@8FW*B zd19vgleOT9XJ*G)50JpKW9vOIZ4H8Hl-!<#%t;z;X^zZ`wzjkDSH2(c6vwb-F;2at zoLmolO-yIbP~f1Oz<_A=pFhP2M2E7@bYvZ3s>Z`T?=#?54ta~p_ z_utPwe*753Rac?6O0Nvuoy3QaDWTK28jM`T0#_kB-?cX^Gp{jC60Mjj6G;Qg4`Tty zs(=2p)K;LuhtSnNH00^!Rly&3KRWDAPq|8*Epsf(kk_G2PUjkJx{Y1Z=|BG9f#5f$ z7&hkhcjKhjuI{}RTjw-g3=-78UjyMuwg(uCSkS)cO^s$9;c`+^=#a8Nq@#fsF!;_I63Qe6VqwsFL5&vnmAv*@IYxz=X5A8d~*#bB3W`@}k4d6zCa=>x?S_y$L8=*m?t@HF8C^Q}CMG8FM&1U1g$LNT zzfymOLpCmwo5*;0zNtox4E}P!)C#e~0=$7EhZzEwbW}Xryc@EjSoHkL)n()|M@%i4 z%gOzB9UK_Ot|tdfbO7@ZW&tyE!dBMSgoq~f9iBPDCqkU0r!OTlz>oy-13zkNYMg2r zL*POsJQ5~fXIod6w8=aGETtHEpvM8h6rL9rHYLHj>W2&mK@(h=j>&;q%7FVCeanR> zaY@n`M1?VoomN#=-iM10C<9CzMgzrQu*A$~;cf2Xqc4Cii1NYcvUnOe8oCAMICH@| z{?2kb2dLEKyfB1m3n7^Cii)117sO|SXCNM0lr;Pn1NZ{bSerLn)t|oCB8VY|CL1N9 z$e%cYsVrCc2Vtjbaz9_edMB{~sDgi?ES72g^O^HkH~i`myIX!${Y#|4*0kX799sm- zcQt9<#~1+!ZzNN2G@ZS@Zt(3QC&7pZm$x|3KEy(qz%!5G5}A>mJPsot?lwV%{f-5M z3lH~k!Kp8XWQ`*>IZ$75D;<(F=!2g*A5bKSgOD|f)M}{b}_Ct?6X^MuPGm~a{`xxTu2m=43R(-T>oa=j%$>10c09}Mtx_=kmhsvU0owS4aPla0f}*!;Hp=z`m+99vZ&L5h=*H{ zO4gzRuY|H$Z&ll_#=S3il`|*cg?cP=3rEm_R)!nPOLS$NixEOE$_BMQk%mSMdYSJ(olhM zAk6`aFW5CHWGOOK2#-k^S76wFB`|^*^Ou9u96`*CDFKi&pb*9;CT`+_K-zf6o{`C8Vr@4_L0!A+Pkh;JMO4h+=G^o_Oa{ z(gRW<5SB)BCS!!AKG^3&Bbd6o|c+T!n^7wa8v(XN;y2S1x)r z*eg1Ls(_#2HtYH$1wIfh8o(~fLZVI%v6RB8Kv>iNyupwyZvOdtr*gLjF4FM88*n-= z+LC(@`Z(J7H1QN$7rDtc(MXV-&s@b@~7-+^g)oNU$#4H%_h z!5|7Sx<>D?FhY;v{6QWg=ECEvV0SKnri8=lx4V}Spc5G%gcO)I!u#OfCB!nh+y$o) z{Yg6nH}NQ3FXoOpCEPRkj7f@^&EcfRa1^fM*n?&R%Zm`gbva~e(%)ZPO>G~n$FM=- z`q1Bq8{8UrOy_?@CS1G;m-=~e@eRPC_`qV(-qbas#3t1yx6VW4%l#{87vP$~@Cji@ za8yT7^@6Ig4_W>u9rZ8M`gK%(Q;(mgo@=`a5>?mk;zP$LC8sCXa88? zU1gBwxVqEq_NleOb0VURSG!jw?0A~-_5PSKNO^P(Ns$J`X$L@h2W zPFYLS*J0{Jl8(R?A8=n|Fr-Ue5CYeKMr|xAiKIDKB;PVb4{-<_KQ2W@ck;vuTU2D! z6I>+~j;)_b%R-9*qaC51An+0Mnlxn!(g4sRad$)LLhgsDom^W2AnI$x#DP2efQlLZ z8x;m0Z_ZI21Gg7K;2WpT_f-tGZL2Xe(d>@ZCng>pP90pX0T~n8$1UUyUq8Pp+%Svn zfa>NSJmci#gm#Iz@0VJLttoG@q@`gF!U#YD=&#IhX`qsV|FaVvn# z#{tZW(5YxQ)k$pV%CGWyj%x_XosCA*iKR4M<^1y^%*;Ix=UIYen8_WtxR(Hf9dD46Neq)~4lp`Ap5D6j0wG3oO8p{K0os1T7cDh*J5G4Mk! zRU>7eR94(~NUkj0IwFto|4`u>!tshKM zrC~zBun0`6xyx4c4FYeV8W;WiKkU5;RL^_+_iG-*HYHP;+w3G1m6UndD%-Hh&`by+ zDN+erh9YyMgeXJ-T9b-VXo zq<+8e@B6(z*Y%#R+r4PZa1D{5cP=a}m=Bifae&+&iVedO^Y^#Z+YDcH@Al=J%u@;; zf%p>6!s%`;-FQ!3abPf{if7;mPa(s>iO^7EV^`SmB;Irs_Zhe-aUa7l9METCS+|x5 zCbDbJ%)|`P3HCD?6%(CH!C{M+uyDO~bh^?40kjK}!%rzFEClO)U{+WqS|4$ufp1tQ zdO*e+^PqCj(E5n_o=_8heuC|l=rDDWLpDSh8`qKfi59Mcj|w;JE18@*8q~Ln{S}an zNAmzG74Fb`VQyc3*-$Atb$klor3}qFg+$->13)}x7rj$7Z@^9*2}PMSQkA!BjFP+IM0N!=Ir+=xwd@eN+~sU@q7f1 z=7|AS^5x*U1-P7Rwqct&Q+`>l0XfAw+WOrO{n}qO+#q+T4l&k1Ps}iVXpiHX4LbCz z^0f>~&-n3MpDzr-+|sU{WTu54(o#}@@8qF04SGBK>%Bv84bW=pH+;#9E_!$Jx1S5_ z`hiD-ebVSJj2l8N76CS#HXnR^?T?QlV|kr^mmwWWoFs~C{ffK59ftN0>hK;ZR7a2A z5vqu`O(cZ!(Kp+Ay_UdE*|pNA_}P_2_aoBwG;#wm+Q~( z0T=HiM;M2c%r1iA>eW=_6P3tt(?@l~oX@AzIS@b?zjfWAWB%>)=l72{C1z&&P;#WJ zp-w#fW6P|jihkz1;bmk1^xHSd zszcO@Y;xm1Gw!ZQfisSes=T+HOyvhf4$zCdKo_-N&pcfGX!w#Qx!hWFH!UpeHT2Hl zsLH2T^Q(^yPk3Kk?N8LIg`|tsP($B1#aH=PZ;&L;+qfs!L-I#ZxW56+T_{sxi|C=W(bK=%qSzXhiy0HM$of znDg@U$MYdl>|LAbrEMNumr-OWnJn;(=<|c72c$`OmBA)`0lsu}qS9^b=Bu;Ka9vINpi1Ni6Da3Iy&1mDYf6{mg;zGf{Sy1-W8+9ns#E9H zZEd1|LZ1x)g~fu<2k9ty&Z1oA-~dh`B1F|YPEl?=HM#Ll(@}_Uj{?QdmoR3Sn%FH9 zooz4hRCXmJ3Z7GZd7^A?|62SCj~;z~ci@fk36T!qh{MN(P=q726YqguQwUSQ4UTY0 zBxk-USSdWfl5}N}k%WbX>5Vho-w#}01ai%PtB)ne!zgwD4JGH-8V-dQ_GQ>!QNMe% zv0j=>&QbldLnMig0ZJek&@H$n9*4u}Q_*rDl3`=ORtzOv6dIP(xNzwa83^||fA@Y< zSV%fzDq<5(+BGd-JWnq@gHpxb%7J+txD^RAa5#05mf4}}z876C&Jj~TSdzSD3U@|M z&hC1Q+q4HfwR$~?TbNn(L49G@{htFIMm%h{G-?9xS4`EQy!S~+Vk~0r<~3halY~eb zc_t%>l0;LdoNZ=dg)pv*=_gRQ$rVB)lOjwm7qO{UEF8yvlssUxSx~#Uo~VU<+k1Qy zL~L&)m`BWv`YuNhXNp)#q&83-lE*3rrq{mrL@dQjEZ>)>RELNeF(f4I>MZl8pPwOT z%l96SH>#%vWlw9lf&(O~Szq8G(IG;e-%0rsvxD$2=x@YS%vcJ4|{dVDJ7Q1}hptNa) z`U2(T=#I5VEhk>8T~cFn=KDLf^T$uW)VKU;Xg7zr4;!7$KpP=|z-kEjI7LH(KD-R; zn1ontkTH_8c*3MfVv*wG;_ZQ2gfkWhz)H3%SgDWR@O$XH3T(0{E8JWnZqqxm<@ngH zf^ifU;zmy8Y1)omOK;R(Oz@*ei=A06y)^8gDg|OeMf}@YDmE-{J;kdZIk@%s5OP z$fP-$Zd+zw49fQQCEUFtWR++;0mQIwq7|?J{?My>f0@adT2F*#FBEl9nABF9kVGOv zcm)tmdUyBm+Tp^${RHg$kQ0L!>sXI0pF@Z6UEQU7cs*8U$^Hq-LR9Y1^U59EE^wTE z*r1;l!a@sJ4+bFy6rJ*yNB^-t=xv-_ojmKlS!2i6wMT7V+wQBm{I&?ORAI@SivJCUw+M+HTT!{4Lf_b7f}$Hf9v&6w^CAuqa#3UNy-2cs=Yow z+b^l6dTv~6L%=GPhzcjNtEkVen#WQJ16cj)R!a&Bqh*=q7Py_*M$SuSzN6%9NbmyJ zmW#%P;e_>ztgKkUH5HK_iXS2ByLEfVjsc1s@Fn~KJsb%OTj+qGwfQ&+p3fil`|(G^ z17$#_!@?e7ORH{#gExtC9kS`r^Syy_k)PAo9F9tY06+{S-1F~En8`L5G74SO~^CPzIu z4Zh-N}dyZo}7xF`}Be5T5f8m1-u0=)D*S~QamAU44IwTz9L=y2P z5@Ix~DqdV_XgdYm^R!~6dIRbipi6Z)%|%(o_2=9gTGi;Q#% zdl1U$4T2Dr{J@_JFf0FBb1U?7(5vv!*EdnBVrQmm58OC2&2Qcd{_b4&bpyGV>FHv> zmRjj-)&FL#o2jpx9ssgKKM|WYWb}=rK0b59PUoc+7c1{ro2>h6c-abI*Y~4$COo#) z;yWVusPqe%it{zI*z_uIEXpUP#KbRqbmkfnEzOEswkPWpu7;5xaG>S(#NN{< z76Qo|2UpE79GgknAuJ|kR@y77JH)8qYEWYm5CfkZ6ZZ8$|2O*;;p~r0`yP|pfAHTz zq8sP8cDmZ>;mYDk8+NYMHgDUZ_S}Y6-`XzuwV+d@FPlG1RA=|XV2S6`(&~KR4tAIQ zg-#!sj`~jWvS0$B>*7O7*H!ua7>td6kOv*ShA1<_+<$GWfyOX_W`TI8TRMf8YkH&M zwj_^8g6RaIfIeutds3pvy3n&p4=N^{=X0y>{KvgJ=`lBcm+0CV6}3#N;COTnBE3>* zwsm9s2EcUx*kLkW`X(-VvSj8nvtLb}dZKflyZBtug_Gwmw{kyyqMw5D5`*LA60eP( z?iGNwz-FWx%)gktRC7PfIh>XRUNAP1jjZzg;2KUPnz!R_-w;6l!9y5S4RBixN{^saV$-0edr$2kn~liF1Im#-Mc;mRyHsbw14Bh{b$0gLH_c7Z zYPR#t88>IVqEYeycNN2g7ANMM-}%imINrSWmpSLy@k6^kfTJAgA!9>6g=?-&*dJz0 zp@Yt}I`nGLkiTlLQE>mp%i;xCcRO#!H=Q3Y^%R`gwz&<&FD_b$%pL2N)%Qcka_0Hka>& zWn7LIbqPjWZu#ZQ1M9(dxZwhO?j(vH#0ZZ9euZl*f>EavpG0qo#7IPwyl^ZFVb%|e zzsNm~BDiDw_G`wPHsl^5vqZ!mEEbqH&GYWM4$K!#RA(fvSM~|<7#cq?;9Z)nTHDsY zZo`wf=6A(TwaX5-ebjWA=F+$QGc~RPiP1N32vBDS097!$P$Cf=a94n9N$WzRjsXKz zQ3Hv=;F<~;cVS`Fe$XQ@#GOPtX=|H=?xsLRy#k5ibyApntzQ6~}S zA+w99ckZR~pjHBANvclPrNymr3lL_<$G-Jfe&newOh%XBd{KcbO9nrub;}klgegNi z4%Ea@LHq<&eEZCEr}=VNaLM(&#M&p3Ezw6kF+K~ zp=p66#PI{wA{{>qRgyr>|lh4+sWC%r|g6XL;}LU26(~$W4$v@8`85t(CC+=FOo& z2KxLM+Ci&Mnx*9>3o-3DicBjcQWKNr=o5kP93eQi--qQuQd8ry*Qfkg<;e2YX4trWzeI zVdM@dJNw39hb5p`i*T0l!5Ok-4ZW%q6v-FjdIp0;Le({E(@lbiLgrk2MT1)ACMY7| zDkKN7eyJ~r6|!3*L2uH&&x^9}PpQ8@Yr#Bjc}f`ff2{53^x1H+k~<6Y3lzQ>LAsan z=x&#v-jmN3WS-jMXl^93=^+CEE_U(81I^>zFf20gu_{h@A##(3qYnh1@>g`!GjKCQzJogK?7U!qQ$%rw&}-m;UFbVkXc@|2Mhvx z@BY%M6^N>!c23XNG?$>Wc6y&0fE`GP6A-CTgvuKV+RNV!GWP$KGmW9;P~=O!0pO|Q z#x)XEgk;r{57&ed&>HRo2wxPI>(WweF5_5iO8_Cw>|(To|DaeBIxPq~U;@Z}&fLz_ znHo=VeIOQX0~ZNcPg!G>%!zTbj?4xpJwc6Q#%GY(1`XG0+ZOnfZr!>;y7qzSChv(^ zfivBGZ&rY-`p8*J__wL1yZ8r07NKRG#ZfKcu6+CXn#NL zhM1AOx{ur=xeW;Z>A<6Ye9e|w1a$=8pPb3P{b(j6Ze#e8v_(QgPM9FEG7^mfMZiO` z7?&lLPpmuqM0oxF1_rrjR8H21h#`B~N6U`dPh8ZXN|?P5Fr3|g^f}X+>#&ldQe3rsHp`cxk)D9O8f?}`|%P=a5%d<=V0j;T-Q4hH4|DA=F^{>BD6 z*}X*oA9u^^PGcNnV$*{bsD?Zi8A*MJijSL$bL?@RzYPKYMg=U1!$wR-O@aPVa+5Ik z&%bB`xu)JX<%{!ZT1@-3dZSawU?(?16bRMLctQ zEUr1)PPA+!-=fxj^0Z`L1|vQhXV)yrJD6${bG891b;x>`!7jck=i@?pdh(Vf;EyJYQhTZDytKWWhJxzh5*yQ_TcpmH9{^- zUW$yZL_~kX0w@puhYwgMWn~$NAD58Zibxy#7y9lzgq+{B1kl{-4Sh*Lq6UXN9+YmE z-|vfIy3;wT5`7KF6rCmu4PS2(=MbZ<5_cd6G1NUzj#M#@dZ4x4 zlluB-b=$2T)tYSsNP8h`?HToTrd#qLqS{OVls|Gre9QPp*k$L>T`i%PklagGt#Vq{ z%5KGqMI0)knZ&RG6Sjri6VOPUDR)wwMd{R2_YbNL7bw=YC3c)PRvgE4sY$k1`g|z} ze~!+Gz6-9GLXk6f^e^x?Tu(VHfn^zTDO3f^MHoR^TGa-br?wopEnU?w?X2yr)nE5~ zePqRee*Jpv&p$ud@s6>(y8Fu;i9>YSSwm>?!o+V@^HJUw+e<*Tl47j06&41xsw3hjLCdjXwA=)gOuPv=vgSV*Cng?Dh%KqRaB&A)D2%Z}Z<4;lOd zUd=&5p64AZ)DDWKfk6NV0GE;moR(=XQLhwR$usN9f(^u;zaW6{X`Vm|-|duhGtbds zs#4#%Rp_<3fq-P>^01|qBVUdNI&f|Q6AU#p(;S>XDXm|YF{$RKDSg^O9@|Y&PX2g! z`;5QiD|V%|ioRgF{;b}o(oZ+C6RXav=_~86Uv_=Rr(G7m<@LI*6`J5g1$q5zper8<8J-8$jvv&i6^ox_ewJ6>(V41+GZYX(167^m zp8NQ8;h_h?h%$IKM^+x`6_xYb2QD)2wXJb@^P zF9JW}?iK&+#?kG?_jwnS~(I5`!x4Tb2&(J|9pM^ZuBeD&4Ou{Xy52;q_3l0LJagtc4%Qw7mYK0 z95({Dh~!K}IUYLRAP$O~QYFM&-R|Z?qRgR*rF8z>-0QP~+nOgg=ggkX#0go97;g{n z{ihBc?8jCP+;kSO6rK!WI~{rY_n%ZbxP019YkqgF&#e0k-T(N!wWU)3spEp5tTDZ} z?w*(b&R^FoR$gs1pd(M>bs8(lJfeTPRv)L7Z{O7G<{_qiVGSgAT{e1=|1S6Oha@)# znYv_)8K{0m>MFOj56nN*+6X*#13Py7f`s*p-;Hkia?t7^-^zi2y@f_wB$Z zOM{l&KHQPjZ;#DPFJSybd_hZLaMW66T{l13e z1SZV2Boo~I(F<>Qlb5z4WjG**C%#I`+7kcWuTyT*CLt`NuX7ug(vP28txaFcsKEc; z5*8(Y6Q`*@ww__UINWNYR4#Acddun!EDQ~Jes%+Y971Z2k3@16)~rjb{6#Th$LlI{ z*5m1w@28tuwv%t6-gw`&Dm``0H6zC`D1nl4E8vp2H3qTu@u{OPf8($xcd13omSbsB zd_m|Zy!!C*$h8Gh(1td|h=h3dA-vdQ=XJpiI{i^=Ljnt@Hlw$|dJVY}NM}l{8clNE zGO18vnbLJe?OD1n*005XnSk|Qd}Xw4LpfXl-wOb=M2&RtU?++f(nZn- zzP)O|2Sa`r&jj=eZTNJuVIfUFOk7N7i#$v8cTAof&T9GZ7|ZJ%n-DXK5L zcK?U>-2JIGf#6ueCIO7VB#9o7r&*2&EFXX)n0S#egrUo&6A@iE<9r0FIV_YSheKQ< z3Sv%!aVPg?Mr4+2G za3Giav+|EHOJlKRE+&P$8Eb)cjugLtUqJALICw}UofW$B9xHp9X|dW7tqAeDFB2iz z;%^^v1iln=7q~dBC6)`qYf-!0VY0<4s$RAJ@7?ruV07K1{Plc0s#k613)hsXzbk)N zsr6fyU8TNYo<))A`BRMs4eFNE!lZ+B)Ic+%d$E~E3VaF%bm+J{_N0~fiHI)YmSc-z zhum$nz~tGb*z_ky{g0Mcjd%Qz)+n&W+i`IpT}KaDJU!>A&hXp~X|t$#aw5rGePrY+ zWsz1fl)VGg_Np7OpV{)h=vX08a}kJ=Fp zvLja&lGI>TTl1s(p8-pfuBUJM-Vw%z1#~`eo9~|d37V($@$!)jzCm~*TLACQ+a<4N`$s(u z$445IkU^~0CO1#XV>6vMF*!UY+MOz(k{Yho^%qq|WOgbW4@5%@1>>1Cjt)?SsI<@A z%OcxPFO-NeYBlCJ5UAp$bOESGJ+s7v+uL z+BBU%*yaI8Uze886e)hadP1&dWqDbdtP>Kwn?#ZwVI3Pm&5J;FcuA5F#iGIj_xy_> zLUI#P3x<;um}XGxqINi}Y%QzY0b}Xk(AvnduhlU*vQ~<#ylJvzf)~|r38G?;HjU{L z9%iXBz$UWjvz70Fw#T-%Jl9cMwZ!kh!=fY&g@x)}prA!8RQC`L9(=LbcI-OOgskV! z?=knT2lUoFvRoUOomMe``mS`Z^1|p9v%OFedk8dZLUO9H(!h8^>^!3)0 z6$%>==}PEryldYCG^BB>D=S4E(Y-2-@uY%Ela&=%wdJ#qiRpvDa6l~E*t!GLS-uc;t?aB>eTmv4nMq9vMFP0Ynu>&uL?2cYc(@6DEDi`I%jO5r*@)(Oqlo{wq&{U+O;)+7> z!y%$UPM{10oa8<4H~tx`A~=UaqR4^JxFNSy=Ft@CJf9|^a__>;9{LZ|;1Kcq-bu-O zh=yBX>}gZ=E`sFK?elQgej4Fl>7p-hk=kGMAaHx_x1eP+NrvaQeq=9Mv`Ate;Xha3 zGD}nT-VW$kJ3>FeoBbLZY&~-R^6twO(|i8Ls*DDwP<$f?JnzF1dVAp62RXN|_bjiD zJsmR*yJr8b_@8ejT3ew22oYzPXu0q* z0jvbz^<$Aj9vEv?m0Fqw^w)cIYTn7rfmvOXs~A~=eGxOrHIdIhSks;gD1 z-14FzMi;jxsq@^`l%k)ybje)zWtOjP{jG4`Qg5@C7r-x)zWs1+a2ek7VK46d^_LZk zTdPwxRW}z}h4caDyR;a&W%gwxL@Liop<2{KGp^r1leM;!GcQ!u@NidtSkOGVEsP3R z)WTOReWqPJ>;K?dV-_u)CYg=4$;8AYGfC=*{jO0f^6bJgtF9#Fm*zRftkLzC6jSm( z_`^rN>pz%IKPgdZSal_q2M*l6hk3H83}grw;G55bI%dzGHz2T7+kal^n1pa$*#ow% ziy2C)cH0x%U$ar=$-?Rd0y|V;E00nciPe69%uRakDV%-UaveX<*tOf7!X|A)5>LKJ zH=oO>PnD?7Yi^MDaZ~Lm*^@=+?CoV;6nUH`oSxRkn({$wT+dGbXc%tYIYV=(LSx<| zm?#hiv~Bw?UAp`^scd#oHy*2fvjS|Dyu&<(_LB0wspv>*Qen9zi2KtO4YhWF?}mIS zsGgCtvr!;d^W5~!r4@~=69zBCoSKqq9v`mNHgAifh~5{V~&n{j%RXZX)@ zQB50J(`ixE3Z?&+6-Tm%Ox8nJ%6?xw*!K{0FI&3w?R7phhw(wnUX^ZG`t6ES4F9e+ z@~5i)w0c@JeXPWEq69=toXp50#2+t#hF9WLC0xoL4MDRHuQh`fJnUmX$hP#)-?Ha> zW*2@K5&1&bM4|P-_5-yq?6GsQv;Y2Za8Z6t|DHc7WrAl&>?1w=wc47hsJEv)dC)9b z5+M?CiNL};ez3Xn`d+Jt1P`SW>2xkR`}D?^oYp_D8kAzIqoXn=*JGLQgsi^THrz`6 z?DcMEj@8HLUAL#6Ojz%-d1&5Y2cCHdEx&b7=J{=^spMm#sehXh+)jvk4pKUjywdf$ zt4L$d@sd_bUr)cCSwQ5*&Ka$v`wq7MRcA#|7w?qu5WpblCTiw`uV$A3qDUG!qlH~$ zOu3C*W&3WeTX^+METVg;NVGyxxGU9Wt8xA?nJ8`-4e8ano5$w6udSE^U66j)Tq0YH zNIY2@0=mij)V8Q3+VL;iVDQA^>!YOP>a=Ongm@M1?bgERvfLsMML?nalK)0CQMasv zM-o#E-#~IeehIsN6Va*eM`L+fj2k!HJd|@EaErM?)VGYLl5Zk!+d&tEkFDSP=#1Q7 z1Bub&;2U_p!KwZYwNRQ93?;=Gw2=H>O?UGYO{3c94>6~hb_sZ>d122Ezg_krYmb_1 z2Rsa#x#DoxvjC^&LCZS4+>!UBedNR8^Aq3QcAA{{&M(1o9V4bpD@;QDd3)V`Ad*F| z4VGP)Q(w9A!i|UYj6Lang(a2N=MU8#L9@o^W$BDzF2Sd3N!3Psl3!lgKmy9eJuXsj zvO-S8irQ&z*1b-9r4)2x;sIvJdJ0$Gq&$lA}2z!BaRnX6YP9I-L zMMM+8)g1NjYaYRa!8m|}?izWboE)V?X!a3EbY0?i+YB@P5a%X zq@j3`FH}=gJCV5-n2+Sz+x3lxa<4$364v2o~n`x7E~z#Zm^4`=y7YToQ*;&%rafj;nCjOD%w*Y?wRL{`<%5heP_g+# zYJ`_o5%K55`^Eb4T_6^h;GMa=u`S>p6CbS~ux3|m@iX!aDBx!S!n z9331)t4>?6EnYG7%$cUa8B_U0xP0=obL^MG6_vB;>VD)Zb8&C*QglC7?J&&XNZN)D zs!nS}SgnwQ$VEykT_lG%{KeCrjd$gO?p!d5*n%+#2OczZZ+aEJ?@#Eabqf7h>H4jC zGFk!=ZWHc5FWf@1QN$iesPjxX957{?P7N(6aqd zYOv3LQAuxOnY~7UOr07Tpxq?SMThakn%Zr;r|yaI@2O}_BIr>74^|v#8dTny{;ASM zPOC2FF8gGKrp%uFQ750fNz>iRI?BG))%YGebnW_d-Q3BK9_YM*ka&YSgPS3v`%7{ubI#1ea&ajT%yBCMKl5;u)b~gFtYRQb` zvDi~oAtj^Mc#o1&n?&KC@h5-+>L6i|pc59_S^%^{jqd}-l|LkNW@M|?{#`vbr`n9V zaM4P`!;-LDTmq`{25Udo{xFaQUy`**fp6Q|1&JG#q$3FeV5g1tyk4zMq2Yts0%iaq z*XU}=JCj=dx?|u@Ccz_hEjvY6uB(85r%tsk-t98%Xb_vad+X`-2uK%M(m$JG#jJIs zxymB4xEhXsEpkVei!dMZ4H{MrSJ+A$&vzjCLuZAyN`_{sbL@IO92~HYOxhoUTt1vOr0Jg%3x3;pi=kXY zQuY%QS(;4u{r6Nn%ISj`jAXAcf;@dR#Uw(ccbu-bd6}Nc`&tA{^HF~d=3+sA zuUA`Lj?gE~y!F#3Pm;L;lKDaZ4(ZL1E-MNdP*c{7&g;`h^;lB)>Jz06mQQ;!GkcEb z`(AIZm}sBXv(LVccQoQ!EgpPa@o*25am!{66wI!F$#7Tg z3vDM2*i+!8yu@Xl(Q2!(mWdjmePY7}rnRSj*Nr?^P8jb@cw1h%I%*-P2NQ;j<@NGl z;k}RyrgP_$ZoRRB=gH8}@Lp!KWE{G(_D~K`5X%(m`;W~LQBg;qKVOI}j|l=Z$W|fu zu9yAFWWrE;dckmwpO>rmjTv^V+1$p8o@cUMw0(niCcew_`@D8a3!{p(53}#Yk8Hek z#H#Macc099I`ip887Q+ZjA)kJX3^^EyaSF#4zuG16Uiu#UGNeM1#z9zfXiUD`srey z(kyFlS>i65IX;20uvDxb{F&3Eb(S3|vtnn2hL>zC(ltP`{hqMy3zkdNz+ zZi(Jv*ICIm$osbiKhGK#Tt8)g`6E-qe(Ay@x)RYQlf}F4-sYhv+E`DXqI*bOM8tuy zn)||qdj|fN)N67FC^l#lW9%mJ!in7oOkg#lYhnI!H-bS+8CvpFo)5#9cNT~--ztA_YX!^4*F|3AJXDKJdy4LlRU>f zndzIZO*1m;Pbb05+NxEnMpsMM>*1qAt0QF|bf)3m7~RL?geSPYli6=Bnam<(5{IPZ zceBM5r)%QWm6tQMekku`E@Ho^`NpiLL^GHmWTuo|PSd?>FksRA`Q6ZRZ5dzE83Oso zrWC$F3~C@?NNCAL=<>O~a-}tTvmbG%CG}oph{7}g1H(JX$;XArzhAM_zi@fYi0fuU zU=8GJP>EjRYwBSFf(v$XnPJ4~GDLLAd@9@P1&*RTA%s2&I?2+^(kBa6MUYjEbuL9V z9+DL?;#eE3nsi>+UnCfZ5MAUB!eNtx_grxnBqsQ0O#2ENATCJApMakNd70kL38yfa^s&*SD1J2<*KhD9`7OtI__~?MnKe))Ij=qoI7JV zeGpH$*E+75eDNeA1q}rTc?dWe3KxQh_%Yb>2sC@-;<0U;sBigi2%WG@F;b#rvf{jw z_hz2$HUkjMcw#HBKAYRHDfn`N7TZauBK2oK(^XF_5><>8s}?+WNQDp zYI|bol^cq@MHw9_`9BihF|9jAJ&w9J#4oqRFCf%Pj9Cz zA&}Y^=^Ia}2QxE#1VW)9I>QaeKVy5&wfJ1=GP&pEI?U6!oq2a9w#r!ExL;To> z8LY-O&r_5(V%CED30b7m5$}z;>J@Q@XewwCvPHQ{(W#gXmOt;)T`I zBMzf3GXs|%J#8}(!2Sl`A9yplsPIB)-NOF)i%yRcTIAVBX&7Y~w6S1t5c?l0QM}Rg zIzW)U`uA_j^Dut=_)OFK59Gty%?~sb_>@`Ydj=#9wYJ1_fIUd*;pu{6GR(N8X+-MI zoRBO3@q?B|n8>yPz&FxUWPw9Dm*EmsB~7o~5L6zc9(gu|j(Fop9WWs1KmY3Gr@}IV z-Pph;)UEizR&WNMlp~W9s_htbS0YTH>Uw#3g~rHTuy5A$8IAi&n69W=QiZg`#hfH7 zNF+oxkNvw*Y8p@2C$Q*F2W98Cy$K$OUjwmMPN1Q9A^34v&6g&8 z=ZO3K{^*z~l`V#Xl0hE&G#!w|pjKt^(6o)8HMJ>UQ-U-CVeEz0UqkK*hX?X?8CSODL6cvit zNB}|u<`p1OaB)jto5EE25e1rxb+`zh_F`CCc8fGQmfCFlvw_FgBzFazmbbHUWe*=*ni>2V=Tyy zA8Al=qun*a`6VViUS=3_-S-kCJshr=WmDJPU$g2)nSm&Xd(z)YRqlk~hKcVrC+&fd z1=RlH+&J@lGoFbN$4bJ}h6U>qsVH8k!GjmSxpx%Rr<3W#38%B~TufW+_R{6oW4}hs zi|bZ;YLv$Rd3855RESP_@4yAOZN2!{uz`jpqdSMJvA3W7KO+{}E>C=0S69k?_GCZm znNh>&_1G4%VnO&9JD=2Y+Tsi(N;lCh-`K9Zl?d0wC2|n7l zSu%$-jYHj%2`S9TJZ8DoR^_hca+Fo&)*hEt(ABIlE1*<%mwrnBnqqWl&5-~0*?&H zJa9xCw&TF_?IJjOEm*gGVw;hl%xk}xOQaI3k5~sh76Iu$h-R-|8j7%lNIB?ADg;^s z{TmC}QTTf`HzT~^>*(UpzUYpnw6FnpotBg#6g#mO+wA7pnP}l!ZE$Y2AJUl$CBC|!43zuqqAfdDjq!6VXI5 zXdy#L3$gSaz|WRU1%hDw0Wc-^5;(u{le))#miZV9Lv*?qE~mYcUnp-xFCzOcWXGE5 z8)$n)7q3q+lbKuPVgYMJ^Cfkc(oePg=ds%Cp1^G^+o{Pl=qNNSNv3kLO2UjxydpXg zXp3DJW%M$lyOz%K_qnD?d=d{f%$2*>-dB5tZ319n+URc!1!u6kUOI_LHcnLwbR421 zhkcgBC1lDXC0TDdT{O1S0vX}j* zUh;dGpvs8R7Po>FOuXuJil$Ee>mH+PJVtFvLLt3O2x9cIf|m%u1JE^q93Vz|=7$Q& z;l^bJEVbdE!&rT(MH7@t9J%BJur)3wXAga@Ri$mlo`x~UjvZSQlVduvOZ|bC*{qJw zt^6iP9RG~%>10topxmgwgZibHhI6bLv^Hd2?%8V#)%j1eu*iQ{(GDB}#l@umSfl6w zHUF~wu0&06IMGn7k2QNdLI@ARfAc{R>ohlfv{69p@mEFM6Y%5x5*H*2q~}&{G_L!R zMSXj{oH%)M29hWu1CoKE<7db!@Fo816y=1~(z;Uqp}tU990^+HSRDum3>3+u;C=4u zeN7{{g{j~_y?dW5el^QCqi7KWHm#G$Z-}#s35A6%DVS3@EPl2A8KW~cqg9eH%u-*=K&td*{xv-42QXEQE^iX8~5s6SPM8HYGAVtR8bGm#=>|>7KAYFQK6X zj^UUbRqG2V{=)T}smPn*lM;s26_VJVPcA2EcqQ5m-WY4fC@;IPVq-^J9IfjCUU1LK z=ikS_=THsDisiGt;X7h`qDqB^H0i9Nl}DA5NObmh zfW=nl{_62EV2}(m%Q|X1bf8tVAzzKy?-3UB<_0YzneZM>UONF#P%HqbGNh@;SKCYa z^@S&ixnlrqM3w_TCJG5m)Ep`>KxDfetQ+-dK*5za<*h)AkBmo-(K=$&H;M5~P;1~r zxPi4yFU8K<21acJ_2>UPOqtbKIrou!!_B2ok+P15(u-d}>6*fDg-RYg7HCN+%u@HOi%pENkb1IAf}*cGM~#HbiNzM@C|TyPOJe$0_ySJ zlkIBXwK)qDCH0qcd>H0bS+7E|3~(uHNtw_08lILX+SDa}YbGU>>dvz0v~SkFMuAg$ zHBHWM?bYzhac+S(*b1d@#G&xHyN`Gy$Bk>-+Icdsnvb>)(Z{bN;dCNP>cdxs``&HK zo&7ielo7va6Uh?slFYIO`$^fc+-i^Ip-~>V6=aK0t)V6pqu@=9_@u+83o|a=l$=;x z^~uuJ@Vt`^Z<(1Wr;o3GAO~P2Xpsb}lfmqivVMl^d_Zd_XrK zmyHht1|z?_fjY9k=7}0vAD^e6-x_juWyp{7?OjKnYp&5w>r?!n>1X;)?q{uIAG_^# z%f%M=UoCri_lLQCc#%cqyU(xcq4@s0tsKhU9vE?fnM?L`ORGjLEj}_Twn>v@*)AeY z3$<^R=5ed$-YJQ&h1WR4j}BY>Yi80|*NlYq1g$sv8buQ(EghBT-aqnL13M6Aq}>wY$$29cnP*qf3KYz$vActJ z+%DBn*t+XYEBo{ItE2r*6sAR1uGSp7#-yj;A!o(Xlch=?Cx^VWe>hK}^~&QTMjTpo z>im`S3z|;q*zs7>q}r?+g&o~j&-_q^1S7jd5^7}yLN&Y1M#UvmFtx2lsw^TSJWt+5 zeU#}v(A4xLFS|JU=d-IiD9J}7q&>+*M@buzrbJKgdAuGfBS}S+90$2+41G0)I~fKW zK?a4)sM;T|m-CkCX5}q|4T^nTezV%z=wZ2ki z?nG2n*We5^!Kx$$7h3^fj>w+7>Jpu(XVNQ`gy*(b&T~>ZWLudiXe4MFx_E>w=-jbm zhDQAPi9_SM*wnY*32U*;m;!#+SThST@^Db-uWgp@_3wJHM%r&!sKlx zg}WlGJBOcH=8I^VV;IYJb4mk`s@qC2X7b-}y#}WAWe%eD&{jw|*~N>g@%Qpe5hz)BLwtHnB=REEl4U<3O8`4GvgltDfMeYvinR9Toq3tD*O2U?2OCHb$>)ZoYC0n zf< z=0{phK^~ZNWkx!zZYs(l2}-WS)Gk&Vcyd;2bdXmda1ib2G`bult2Ts;%1|Q#FY=9< zHq@ivo^o%iDZOBa+s=TnIgd-dVbn<`E`r__)@osS6YyoyhQ(Pf54{|+jC}*yuMXKp zJ0)%m+AYQuJO^z4X@TjVq#MT9nIuX83kq34?jI3rvM5lR4Srs=)?wZbMh~J{(r94> zk*0w}^#{Ft7YrtidMM3*X2$2W|3xn~{h3D3+{20QELN16SdFtXes(>ok7-n_-KCIA z=ayaEY;1kdvH1wk-50Xdz9)ShwJb9PT#r#g9$9b(?xyI_4zm;HefgLhfXHA!EP70N z*z{|AEIZNrcvyl8u2R4LX&iWA=ig$UR@NfUl*N3^|FucXgS3P<3d<$=OeRQ?4TEJi z?&gr3lq4CGZiw!N@ozBE{8CZ*N(17?FuDKW!2)x0d5>+oXk18h;?Sa3=al)fJvoh^ z%=Lks00?e$c+FD3Tgb)vO`=2i&F>pERd(Vr;h2O|fTsaVCv)DttM#7be-Q;oF&+cQ zLI<=ja{QNG>!F>N&;b*)`&?Uh>*8mx4?A2xNdIeL=DMY96We8HxZ*&<6o(*aMA`=CQWdle*X4q&+grA zx+&^B+O3Cnn)DlpsU16aR!*|4L*3(q{o$YBw*QwU#>TDH!&(PtPmK*Z-fZsp$bnx% zoqe;9l~%<0R#7<%W`B-VcFu>rbmq&e;+ZpWU%VW`Da!o=9k|$2sP+? zVA6iY4J)>u-qoXBo9BZ&Olj<-lADmz%FBHG=7_5Dqxx~rYx_@Yt9J56&gzHiS62n* zWTzcDIMnct-?-eYI8YTo&42MfjsfSD_T^hxy-NJ{xX0_Du&RUO3m2XGxLDxdnHC2# zJT`B(RFdOrkcXwiu~nCNv$-Ds2PUFUFur5TZ+uh!>2UD>|6{ohWB+$vmPZ3SDiQEu zLcosb3MCGMLwZmAb?iWD^Z#tY(UxA=I!iX>!i;=k29fz(!oX>IXrCL_&+hyDhi#4^ zyj2vrvf~n=!X74$VK~4U% z7j+qiV$7rSLWY+)zJ72BHneC0sB9MNTuSQVVUd{#Rwi*h75U!f!3IBe^1yPEHvmwO z(M}X#=&O&&I|BVMb19uDG4mg(<4Rv-#EviRPY4k~n~Nvp4QeT8=c8 z0gz@#0JR_;df~`}U|5$kTS}j<&Y4DmmP)`vLUbYA0Ex7OJLUB|njS)q#}bqAgcKn$ zzhPDRZu%7yHTGi3js#9bx@^;t0#fcXHa?n=HRG}g6OSyW19V>E_AMs2Zk6ZX7Bp+$ z0X^PzHU0hfZP_IQVCu87vfN#h$f_ZO#Zn1f5fDS8!{V9}i;DJ{s$oM**Cncy-}k=l zbS}oMT~C8Px!Xg-5V%s6Tv5X)9L$BiA`}LasKlMzE>XM3MysNm3TdM46{$ zSsJH(o%eHzK~>kFWnu`F!Bzl$;ocaYtE+4orsQpN(!Y@r9BEQ7UEOB^*B8v6kJL;I z#!Qz$jFS*xBOU9-Qi#zZG3^sI!j%-S&RwY*Ho|+(^x~;8S#fQ=)5m{&`$A!Ak8$3g zl-Iky2o2fcw^}h#bV$brjd+k}`*u#|AIp6I$QpOVZ|Kom;qYzueLh)#dc4srGuN@P zM?>W(^h`B3*&cvQs;HrJK>RDGl z@rXOtcXs@hu;ks9zN!J6OMh>Ze`7J)Q46i;>4T5+mY?3Nu#8vP-(lawi=mmbHfI+n zKK_uj#POJ3GxudC;eXCyk;o?+&u;{g>&Ttg?|)YzHR1on$^!S98AFz1=%|r$2}_TU*DT zy}oJI#eV9?X~xgG=z)16`H>WU)=OQ^m&#(NfU+A;wyHgyH+JQ$QA$t7m)?9<@@vZD`~IQ3(lX!OS>*d>&Eli8 zYR-czA=vnX1BsZeDOitDI#JEhGPR>(P|K$$i~zzr!PhXY3B(p|STI5N>8b{dHTY&% z%xUd-tZB^SXS;VbJ@%!-`DIOv?(h1lNbqpZ8oIf~)jnCxT+WZd&3g$JTUviaBcf>k z;XhY0=7rB9ZcaviiF4+71Z*pV(HCo+fceN)W0aANonA1k?Ux}%Zm&ba*V|4|sT?6c zg_v=Uhjs?l8j|KC*g@T|=WE-oeRIzeP;ns}5*E6Cc}%CcYXB-r}%v2Ew5Qi_fqWc;8$WFX<%*2|2QJ;`*<|{b7@k|5EFZgmd24CLoDGUz6IrErX4Bx_XIHQr`c;#4lRpa_U*gU{%&`Ux>`-$={Uye?rx8?1)Zx~%Q{D8_2A;VV+BD`&)uYPw5qoVPmCY(%@;UN-NGrf2@BwEMDzrK&#TYbA&X{%iZsNo1zbdX6e52&c zx{!poU%UDp$hx<9neq1te~ypb*hTC1y2l#v5qoD&?>Hi`s!40`?!bhKl7Sk7G>*@1 z<&_iAD8K03)7O?8#&%Y5NJ-eSyX9fig|-W(t4wQp-_>kwgChf?+BPo_ygBg7yzq5_ zP8urGC5h*)is&8xlUdKlRsFoLDeh$j7pkUCpm_dGDCC2`E7I z|KYjFdgRN}qmM?!3=CcQ(!%uHz@&8-4?fXCVA=Xh)ybMM-_$OCvH0E~uz0)x&?$FN zLcRY!tZZbIM^bR@l>`?drbwcE2Z^BT(_mRw_(t?xab4f_f@@7ZO&6 zby$N4guneVw0iHO&(+m!`}xh2Po1iB1`;X~|NU_o8rWN;K|+p8)Cr`Jr12nbnmt&^ z+S@byu5Nw+w#m|9!8TFe2|C@cUz55fMTEI9lHxC?g|7E=?|JoSTQB+(JgR#cpNQ%5 zu&nT*i;=w=44R_+(@b?Q8Aa^LV_VoFM^gu@t{5^Rvfi7lxN0{qd|vd*p(_+GjQC|v zOlQy3hq1dJH>&;i@W86SG&B@i&pFm+d1SQu`|Z0rC)$jDe(+@ z-X89M`F@0kM3l^0NT(=Eu3)ny(^PoB?Slhw3?cexC#NWj%hUj!+qOxR_-S}2M4T5E zMDBq+6kt{W{%-2=gA+B*E_b|q;e_w|t!+%=Umw^otU{y3@P!J)zpg&IPU}reXP-!u zxM$wWd{e%x@8-VjX7s1uMtE#{xX48N&V!mG(ua01_@nerK0UW~X#AJlot9%3#CRK3 z6`Pp-W)zco>!DF->yArP{%SF;eaFF1Pj}N&eH&fzF7+RTFU!j9n zv!Ho%GO}m3GTBo#@5j5fH?&$V?)kygXF{+D+MvP@Fs)ff}bXPXEM(QcM-?2C4L(ad3xl%BB0Xd8=r!G5JS}rVI zSSr96St5d#do0KT+?41Nh;ueE$yyVC)M>HO{dZq4#Rna272Nvn&P^9xmg_6LU;oxp z^M3lzH}o0~S;QqL-afyS@N}aoOW)2t_i@26!vj_^yN4ZX6KQGDBPGsQGoYyNP_=!Z z&pMpy`QW>SUNcVd)1ikNUrDWSF*jAs+1#=s{Qg$mVY>(Q+5IFxPTeq}xKwmG`)AE; zG5V3qo9tokx}Mu&9lH-szEe@5qdy{K_t?^{J1#YUQMoTq;l!ng-Ho*dYsQSuc{8n( z`_8dS>fgIJ-#Og(lfV0r8A!`$*k8TMkMMVoaVb&ir2Srd@TAC%s#oVf^qSr~0_6h4h{8e$ijU0dLPK{aCQ<8hJBjo;qe-t=S3^^F^Zn_RrGFwQS|l4{^2 z@812jI+tr_@11|I)O#eJk&8@ZK)-c=WF)tUtOibAR`dVV2?Ph&bQwLxF zoL+czXt^!wrRpo6at~W>xzauUjh_DWO!GSCC9pYMCr zwLBQ<@pzh5U1%LOQeWd*hq^gJ^@gB258a= zzPzdKS^Rd2gRh%;dz}Hys+fngd!*!q&Mk0wP^xoshGFz}J|L{K&R^e4rhx>PiBllI zGJZiXnT~+7VXSGi*F2BhRFEb8KA)Hm`6{8F6KYC`1|dBJesnZ|)b~ceG?GCbJC<_! z#aTK!#@PoKDK%sEkiQ0lBz_c0OvmUAb|qR}PFONkZz4VW-0X)?Fp|rU2424TV90t| zJvd>)A1}NoxD&QU^ckb2X_q_S^8Q?zc>Cm@!J;|l8Xa5L=pt#5JJE;w=x;XhI40dH=y+0 zlVhg}Ey*CgYIgQ36fQ)BM@M&aN5dVcJgs0oaXl(u&2ma>*o@-#XzCD1lp+U?waFY< zu#vc-Q4z$=XtR+QfTE7tBy~o7(<#G@M7m^T)CLVxK>B1HWk|Ky{u6TQt&;!O&FvG= z)-$b&5{6=k$6q8a9Gd3~9}gX7bU;#%P-NhXf3Kny7kJVQx=_5Q7&=(D=LI8%;VI;0xw)pz;_#<@2ZU|MF&kuwDJ~?9%5(iq^Ad;KHUT$d6_Q?%VC&Yn2&M%INxu# zbYI7daA=Iq00!ep1OP~&7(w?ZQhvvP3}zbT-FM_*mdJC&XOd=0_$jE1HHJSl!&L@v z;W~K*h#-54B8eYLmjfduVf};&4_lo#293lPkNExjJD@8|#gD^-@_cn-8+wH4nO=Us z0nZSkTbUcuos?Ol13(5$`0qBkI<0grD6h=I)PidFzcqI5aXH^{8`q4T$l5`n! znaL=0Gc0F03>!uvn?ouq;zLsAhawS`B2V=K@ zhi9R;p~jB;ZjLQ}9JX`UEH}TmIJc5R0 z7GNLL{iWueSWU5p$yj;moDFR`H+9vQjQ3!Sx-#0ukwDusff!3-CPM}J*2VCfr8?S@ zw`=#l2Vu`^JgKRuP(v2A7?+%fTY{mH24Pu~<~J4ht7dbDVAt1Qd+i~sr%m+Zkcj{~ zIA-&&eK@{C+ddKCF1Wpd`+JD#ztSNlS7@5Beh_K}AeXFeJjz%%4YZdF##~M`f9)Bz zgyRzo)twq71^sXWyUAeHxI$f>-0ZpV$isno?@NQnxbp*)cFMi@lV#aY_t?yj&UCxf zyFWD^Xb!Vm^x2y?v%d2TIN}8iAJSoB)J<8%j}aV7XpC*W180sPrOm7?a)%gg5+@n{ zRnd;PVo{_B$44<6=1<=Rawb$SVlqiehh)u;lt=jd$!osWu-o(PH$*Yw2lFp_)y`QO zxuk#Cj|J-&^>*fYu7)s?uH_E6g=pEtlSk=YG;Ow$9FE69xa-Otm5e(e>1ilaidL1+ z%$+sMl@loPw}@I|O30@Hj~knZK*?gtJeg;VSYpqd0UGn9z~n}_wHv3>m6-2!@?PA> z1@(Hhspuf%7Lm$uj!))3Soep99h38*Si|PWm@L7?lU>v%vt5zEvxqIt1m!Kvv0qj(8Ni%QUaERUHxT&7qSkh(S@@n|Y=mQGHScd>) z{&;QVm7rf+!oJD?AY4?(2F>&tB#HfF)! zIr!ZS^zj38HeLO|HFsR<%agGDo&mufZvR^15O_P-nj5&({lpira`QFURTDN%@kvj= zL{ogj1EOy3f>hYdS{R4hp>%NgJcq|6Gvdkz z_4kLC*`%d=1lbS1kyJFq!GE)^uip4PWR8tX|Gg=4Jz4-6u0U9WcrIJWwQC#p9#jK|1! zF-m)d012ax-+_a!ug;w}hR3!J@thbp>vd_wP|Z#XE8d#esB^myxl0r?O2lk-Gsf69 zvu>6LWW9o8WoGe;{ukQNEXXJge;iaouR1xES~lKCfFWHAl?Y?UMz;o%Sn0a(g=Wo0ZNJY!#npaL6LTKQ-HDkrnUN6cAN6cWkGVN# zxKkLSj2W}mXk@ptb)zp}10j4ZOmMr`Uk^EzMMZdbexOx-lOW%;pW*H6Q8gfGTM}Z!3(*eO{su?J19r9w{M4K$l;`SK3yS_$2@0mijYq zr1EmCNEur&{ZaK2-dO4Tr=wF(fe(oF=7i2%j>x=*P+y6a#cX0SUemuu$ zf3`GK+o?5l=6M$-hKdqDn2DX5<56=FuH+EP$e5##UIf?ABg_?2(Xxs@TyBIQ@f0SB z0dC%#Pqa^+L;O)uaw|B!^R3YAxwpbf_UhbH4w)$c4v;x1w-N*X-79`@Nr|E@^X1J( zi&^YDzQw-Xt3Ge#w(g~M>0h7r^SFD}A2`4&J!|^+mn<;)4ylb+f9HoDIZQ{^Fl6t)3j2_TXAnQ-H7b)On6(6$`$>@nB^};5N6GmW zgRj8!&hdd%A6?1O`x5THXq7EdiP&bkD+AnMs+O_3`d4lc&`m7VGc&2q4ik*m$4^Se zlL$=f%G{;dvyWIj zy$2kRT=eN1Whih=WIrCfga^BJv!kW1YsjGo3%?7!buXaadR+uc>3>$cB}OD9Bz(b6 z+a1G~rY0@*auFWJq=j0tD=h1M$7^P(CzeMqag=Kznb)kBj7?s1C|vKf^TH5*y0-0b zKiu!pqek)Y<{$4ocY|z=#FRBWEgnhTVs&Q2tYmDw-JjWP5P*UG8pZs?i4(I7tM=ec*(SO>!Cx<*QIaG zXy0xiPdtYy4;}nW9u(`@3%xnRX3KMsnewmUTy5sMJAnHd1G}g)Bh66nnedQh9^)7ti^M0b5!JB5r`wT#-t9j6=P@!NrqU$p zApGZ%wMj>?Ls(ex_18{8VOJ=AWrbv-K$4@Ra0||7kZE)SG8U_eoa2}V2Zh>QeM(l-;sEf?x@r^W;S*aRvA6S{aq=u zs^F~g(tIkkaI7l-gVnE?CQv$`6v-WDx=X5V<&~pvuZ^p?B2@FtU&Q?9eXJR&(rA6S zXSmEhqZ+{_#s6T?ymg42u%(?d<-26zo5KS6) z$_BE*6nh3Hyed~@{RhFb0X~9(=Ocqgbb%O%$xdH#E1fyH6yd8RSno8E^gSY?=bT#~ ztjRCrYT?Z)l=8V|&el#x-a(N!E~f{?XYznU1<`mNG|DFZc0dmZ6p##;lg%O9YL668 ziOM15_59%J)@kjdBYhWnuAEzP>)9<^+AWyrl+*1fiOb(?mkiLu;c zO*zz5Jgwf}?i=E1>>09eAWr#BoO`dwG-fSJy@--^F(x!wGRYtu%EPu}$MmGhG_&G@ z%ScTVTC@+9RbgcvIQiPwgnmSlGCed1ds-hKpIsU%c|22Dc`)FQ^(PIvZPWg7ORCYP z2KS^PS1?zNL^6)9D`aOcO4r==5X+@Q28fo}Nqks%Ollov490#%41ys(~0)P%D+W{C;HT z&Tohb2iUlVY6zrRJ2at8%hO~&5V0}>X=vA$i|KAScNDh5^chyeBPc4>h6Hf~Kydhg z6cF!Fk@#QSI5;dUF=@O1s8M#Je{h?ma+3d`Resfm6F?Qb2BXxNPmY1v>A69Dk7)sT z##;;x@qIXePaKWs8Jc=@Ykj?&(;b%VTv#55DLv}! z!-}%)xSGHdpoZE~2o>;89Ct-F17!ku6p=2wB1m@Cyi|J%QKI$z z2vgOnjZL`59BT;sL{iZv6~~cO18s;Vf?Nq)x2EA1J`SFkw8^S*%YDi(;RqXu;re{K zg+}MY%R;r>s4c7#o&ZW$U^JT;OXO!+^pm!&o+Nau+Wc8BnZr>B(};Q>9p3)Y+-ujb z15LAVz76m%UIdtNHq6-#8PWk?nxsB4L7(n9t#@P~H)v3V(f?=NXjT;e+p33wV&Wtg zdF-x*d0sg0VEX1SD-IqwKyCiJ<)x44t~iJ@9$ek2%gRSxvL!!le3OIo^ShFW?AExA zZKi?t|H-G_DI4jHKLGB+JU?w+3v2iJEiXF{FL=qp=jn4xLo=^l9YBrb9Q7Oqv={tM zQOV6;dF2nApd@b!Za^r&SQ^Xl3;mbAeSdwx{%JX7`--AT4@ffMiK_%NSNuDm;FQF5 z(})NlZlv@BL}#I|6z6V2h`MbaZP2h!!L?z8revTMXJE)1b|taMD+trE#v@D zvh9)6u9%paq!-+wH?qeHKent76OSRX5UQm&XI)O#Y2MU0YVM)5vs*h38xSeS$%T|f zpMhs+cZGT!;G;tRoq_mG8D`R=!k=ij7u+6uT<*G$!$1o*?&|RaK3F?rVxXY_=;nlU zb=)v(U&-ECb{-Y7b#h#*FD)pdY0FbGJ_KMw4kdFbj(J#B*>Gg6{D6@4?3`>gs}#DF z*YbJdKoHHTT*5;p-2b%QFUW^UC5W~W3N+$jL5QN|%x}GQD)*+csH7|4!qnc+%-YCo zkZrXyC_Q*(K$lko_rSnJjB)`$M}Aq9N2mSvcsYR9ZsP^U2 zy3&^?dhw|SnK?NZm5K1i6d9P<$#Y1AVccCbjiQ)%|chqbA$VgOOR#q zPe1>B0BJ2-Xf6S@=BM0SXn^$FoR3p#NG0O)R3W|enzQT)cZs)#RQe3(LaxzxA@kRw z(A2oOmBoH+zzCZtOxqbZJL?CeG&J4_5V=7d?X_WtLTwR^Ye((Jn7&Ry(YpjPKNsB0wF$*%%_cWY12mbTX_Kd&5z zMxuA8PG#6c;RF{!!7QB*%IQ$tEwdofF_k5&R^$G|p1oeL7#*I6%Xesz;CyeT_8(YIUARlpe zPh(HYiUTrLgYMnCYl#ciVl4p^7z+s2{U~W!9|X}NoKtF2vDc;c7`~RFf*MM-o%=D= zg{1w|<`5V%K5E3`5<`|a76NPG3X0l55%6^GKsFIaIm8}$yF&+$ZC24b8-nf|9R<$A z{=0eeCOrW_5v24JRx3lR+iF7Kn~Zhj$4Z~e)lB6?$;6C_3sMuyqM9XMIuf$iBTC-0 zyyD~IqdpwZ4sBNEVUyNYD>^8>o=$lUsDK(pX-aYIo;N&-yc8+IP_4uZ2PPxdripR3!tZ*Vs+Vkp$N7zfOFRq=J`&z zltEa0pA8O#G@X`(6@Jc`nF3*fGSK=-uM=8!OVZA>ICcu!&G@|^X=^{nRx<=CalMv? z^?mLeIu){`%BTdqZJTaxEEq;D`UGp}|T(*)?l|CUpL6e6Bn80pGAPMHV|8Q1-E%vrGb? z)ECyF=$=L##r|;reM8l81T`EBQ-YAJFovBFc z1$!C$jENDB4XyW`3nu$q7Gy{qP35qYuAbpD)hUHf=#kq~Qtp|m}+zM=Hsc^9*3ynew-5;P(ihN2nDl^`JQcHrxIe-844ds?qSa+n%6XwAX z>TV4s<>}AdM{`cry1YD5XDXRa zcU~9_fAu%En<+rBaL!U87s#tSMhS^jm&6~T9wEtM+tH0>f}j_P=3>|2CRd9G68ZW3 zDMalw&Tjh-9rC0RUyxMmBrUPkcuY?stp?ep0lpK88q6%%ATgD~$YEvPyr_kE3SA*? zSvnUH9%#2P^YsUj)O*uuYZ^rnpd~Hq!9YHVsY>wd4KgYn63L7m$(7OL0j3)0rXrN_ zWzeLNZoH{_2{TJA4N?uuRCNF_1wFbiRU=?8w$6))pRd3*V_v2nK@ z8HAK3GMGj?;7Xu(RWTi1b0g8+Ij#lKb36XTPx1xjxgccj57$Q5tzce#fDj9$VLWrO*Rwj~iUn5$kuD>wD!fCqTOsjd*F(e|+$;*`RODE03i*I;*9Iw9#eInU7 z^rriTdDj}=a33y>PlpaxE3?{v4hnTMn{dGLG}PX_B=7Nh1kuvq3K|7_dv6};X98a8 zg#pJ*waQQ{Xp$)5h#m0%D&lQ=zk+u;pYmx+^V?wQ!b#*(2Ao50dsZQXB9KA}Od$03 z>8{Onzws}WW^5nnVsThCIeKKKdsNN(dbeddE6Rn&omMl9eEaPeqf+Oe zJQ9?|yAql>z^EPL`MO#^41gw8C7mN+GMWy}_8 zqTu94_JKS<>@L9r77X0i@j>V8xb1r{__xNJGB@`_fIjGh9uo5bA47qBkdxo&g6p?S=vyu=FN;XlWqv zVbZedLKN8rvHkWW?TyTbZG_RV?cyfnPz6FcI1#jM9WGtY3!ECC-E47WqL*wz%pK}H zJqL$0Z{GY~`NPlm@L1S}=L7X_%FbMtne|PC<0j7Jl8)%mjI~|pPYI(>va?&PWW%ft zQ09bYP4{g4@yAnEcMu$L&FCQ-{|Fo#1TNB*ee7_1q+xSUTy}%;*(A4hNoUFjB?bUt zfaBOC9lSY*GM9K?&B#4Xn+VEdO^MVMhaX>`$UvgWO5bN!Y@O;EnOhOR_*hQN-a^J~ zhD~?1j}LD(=Z6!X@)z$IEmg*9_UfI&C4RxFJCEl&gonkm2cEH z^s2M-2+|p20(uOm<}K6H(HAe_3x-;|1zvrN(U;mft77il7EJ!G&(?T?$v_G8C30sByX-T;V}eFED$ z?@Y)Y>z(>D8CVGxw3my>=o6(R|D!cLq$^G@uhkBxU`jak^Z-P-ADKfJIvvaG*s)`? zm(F{WJ)vn3$MGL>^zrm`9?sB?ZwPTnZ8YQf3WF_qh-@&*$LHZ*7hHm0Ru=N}`@@(~ z#=8*dU{_EEx&1zElnw*lFgyz8;-*o}69yI(T#5B`4IU=rb1_xQZUYSN+zbnw$t%%K zn+iWdV^yayMO#a;MWaS$o=%PG5bi(WKmOtGfBp4Z ze0HfJhOQL@j`v|ILx16Pu{81olOXzu>4aHPyIj^$t#Tl$naF8m*@9#S8qA@_08Q&A zNMh^58$ZgS?$vmWq)%s$yK-OZDlu<)5UhoJk@`!Va}{q)jM*!La2 z*OJDhuKREGD35B-cbL?Oi~^#IS)G7M8W!;-nIv0_7y58*VHA=+)hFU_Q+ zqaNEaY7488MrLHk;W}bYPG!Mooe|d*T`uR_ zN@yzjJmkP%^pCG(<2o4kG(Nem3_OOHn>RlL>7mXzkvHSfYVv8;P42svmMrY8KJd-{ zE1#_UCT)MWVb{u6r*$RQq3S-!Xn>|)PE$lU$`&zv_&mkec4zq>8|N{$1Wr*3Uy|QQ zh2OxYU#^A&4;#&-`DG}Ote?@M*tdH0u+MaF!IlxINP_((=auf8`l>eD0fh(%zD6s8 z%$bt_D$7ah(7fCc%a(cJisZ59kdCXG%AouYDE#s=IzJW_0#2y0SrH9=^G*}gu8*G_ z@?qbmi2rvR&z($nJMwKk?W%A}4si;G;Owk@TiK>gIYUDy9tSX*8!|1>EubNN z;*yKTkxBghEw(3bYyZ(l+;O5?FTW#W2$Ey~#(ix#cPUIDxs0;UV_ze)+6I~gWREz5 zn~R70>~x|&<}3y64An1ys+&#oke`Cgioqs=DJ_HX`;r}#C-d?EAf)ZK!`AoZ4oNDk zO`sYLQ%^pOo=J_0&QTl5OuV_2~& zEnYgt)bkXXIXTW5wKx3sPi0G5cByw$=J1zt-`h8>*Y0Z%T$*n!={(NlGqRWz*3%9JYx)=63qFiwm;3vq>UPj^r%ls5>5XW{ZUrnju_&anthDzqX<)#3 z!mk%k-LNfbudjFZk&E5G@ZatmdNjPTQ+eIOkjXSu>%-wwI<e%U+S8>)xD0!Xf|?t%Xef3~PmICLq2Q`!9Mr3T77j4?d~$(#la3 zzC{M_On1;>o0wlTB|sq`wdS;6Mb$gy8Hal;O?_x^eT2YjRayrre?hfNc6>Q1u^l}= zp_-dczQ}~x#*CD9N$g0qX%xnCaqkoDdOPFt#9^!JSG-vr<8l+W$1btdkLInOSotoN zJ5@=RK1sE=%NIgc(O?hKtsl9_CjO^^f7beJx3}}yDyrLa$-iO83U=V>d+@ikvv3n= z+QEwWeqPbdaF!K;kUh?l-Q6yxAWM_vWgzUW)N#u+Y38$4^*?W)dJ(3wBtBf+TB1$5Xy?5sC zb=39wUf1=#fA{_WeLg~T3Fsh-h>P;J*1IsmI|fJBgGI;i4hRu{@t2#EyJQlg6v8u4cM&h05RGe{ACKu(omiGn~0C zaIFDRDnn%t$RZ*lnyl+$c#T3%Qu3HJKYRAqpl1_RYWAW6S$>nJIY;u04KyrKYCl$B!RR;F9^F}#&KbY zMB2p5)z$UHdY!zCOsZ~?VU0$NMNhgce5z?gyk8q_iIkUA+UW!;nL^TIk(Ru=uC7;~ zd3uh{%)GcxouglF4o{S|w!S#_^JlX!xuT+uNO-<=gsz?*)zJ6v zZo~~t&CHyjr>CbC#>ot+_^)hk4(QO&zzp;k-sTi^deGOZxxAXuGHE5s!Er)dTzslK z&9ig)<2Sjh!)UYz)tuOL*%cS!ws&?c9?{+|Gb3?cpSh0pcqMbp_@5~cVBz5@)Sz_R z-Q8^plRQp*jtg#+hldB7+xIb1n5?j{P`~}-bAjf2%zAI^*kKA_FkoITnzWqeGcdkg zX?=*^b?GS;jGOal4A1QoY;0_gotzjL8Kv_1)wHxoVLX5Q`gII`ow3N-{NY0eETW~Q zC76}U{<@~-W`+wF@V~#Y_Y4hH_y2x@0%kEa^?c20r>I$9ZurBMVrIW+pW{SlGuIbm zS@`%!;Cf0^=-nC`8oCQ^2^~FlY+C1fdOFF@q@tqY75ClB8$r2c7bVdg!=t&vq?Oc@ z=ZmbYEW_2S281*wLzOo8`1nt>@{VGz2n#b@x^$-C)@zD{nD{_SUbs>ziyooUg#G)C zK15i2%<0popR}|n$jHf!EsZvo3emvjP8%3-t0yKUjgF0_m&055cU*$kU3rlRCE-QG z4cVJ8$gnz^iZvBfRAff#+=!GOA3t_%v{zk%ys?>rlG69l_czg7W;0CkA!aP@(Ml|6 z)(302_V@RX)7h49Z9RsEpD_n(mH7QY3ht)Unt4!sa)Tl`Ep*~EIh|UgcT;0$SAMm} z_XsTs5qkXv~$Lme|`vKCJ=fwbTK~gVde;IAp42<<7fa>l0?XF zS3AfK6yENs_wb+Dx6oCH(3z5TYm_ncW_PK_HlILGu&A>6d7P1n z$@F#b5c6dclAdan+cWw4vkr^H1?yJhth%4)Pxfx6AAEgvpBU!i=@1Ro z;lqc!;ZjPTYgW1b=7;?jyt3nU!k56Dk&y{DJHDf%BW&d3FruHTmd?O5EG=2XK&RUL zd@tw0cSjdXPCh~sPgF{=vOQ(vf}xw&~1t;=t!N=h6hntf1CMRo)q4P7bl zsOQ4%iQK<`|LF1K*qOe(I1zgeS~|M&{*gEK%CjSwV&`>p)t!hbm+LaH{N?QIE-@=M z{QMBgXFsD;;@@)xH;#Yyvbh(k@latI7#Of*9CuM|O6Lm!jIwn>mq@>?+FXyhJNN@i(kK{ zls+pcD2Qz_>xjRsOlaH|#g5HwS&Pn{-&TaI| z7d<{5=CN5@9L_ndcWitT1{;g-wzEMltv?cz{7(LMQ(KGPAZj@jEvVD zkzIQ%?*R1!5w~r-0uM@N4i2UJ0mR-H#Z<9aMi|x1-fXCV`tvJFP#?<8Kii$lsO#aj zQh90ZIpjt`&l!V+;2|jV!+kjB(B?U`f|5@`}_N`_^?S&OP}3b z_)aD*l3@mm-G0L;O=DbiMq#8+@OSWbmpZJ&PFemeE&nuWU-M=q>BZsNW`H@OMU1b7qF)o9`$2ku~dp zA@@+I(PuA#EwY_9k zW@fWNSvfhS&dyGe`TioKqVn1XKoXHqw1^CchKB5tC3tw$ED~^*QA$~MTT905{QO$_ z_3pKu&f}}pF*`wWa&qS7{y{-ed)1ip!lI%UToT_4=t-9>Dm?-huv zKplBVqZnZ~hGC|pjJ?{mFR^Xtt6(JR=0;TIroj;%FCJ3a879j-kfOP{KECak9v4T| z+S;m^bK5;IB_*YQ=X`{V>UM~mO>6B&ceh5#^Qf?}^WQdL_hYrc4ixEdm~INg#cFXx zi_GsqBhNk_>5{Z9em5d{#5!zxU?Qt%gv;@&pI=b)7TxjZtBDNbb@Hn_r=pn^PY@A( zb_%MK&C^lhK#gR5$Q)3BQJNw`rW2%ByruS{>I2o z;o{@dB-EVCE`B2P zBB7*Yb6L2|oTqDm+mo%Dy@#7$nZ@(BJT$e&bmEn&o12+iN`1rWgBt;>`;>yMFAT@U z8?gzyF_h0!d0O3cIA;WZZI_sP3!lRYHMF=HwYe3whFjd9atyDVt&L!w7L&tu`C{E; zTDOXugh%lZaYJ{axStSe_>%^X=8(;Q4g>f;wpf+-ZeH# zPd-MF4{#u7_QcebUvnU3pfQ(znL@rgH90v;b#Pc%nCoOiXXwySFRXdlnf%2sCDPjO zwE#?QrK%g%}&IiwFu-{2tnfRl~T^ z25+rJVyMpzpFfk+iP(jSdAPW^WOy9x>z8~wAG30UBbrLgx$FiZ#(n?yeLk;^`EP*? zL{*y`T@nXpq>uZDhWh5`=XW{{cXbshxDoXD5Yd$F?=@2zneA0yTvJt?8XrGONlA&S zq3dv%C`+1Nh5mQL1-*&y$-24Q_9RU@^QNXH^cj(Fb~v1rnOW|H z)n(Yb7Gk)a65K%2&!0a{JzihyvLVk&V<#HhOsU&E4`paWfB#dKvVDl=wQCpv7CjmA z42q=E6bdGmA0tYS|0t4vZ^b0=(a~h^3TYT zBxkg^E>^APKNgRv-ud3qp<1CHyJ<5fGA{5*W@NTo-pFNrwLRD*f<~D9`TaL!ReN>- z;>?)_)Wc`H{JLhx#u$J9{{3Kmc75K{AVty0P3tW$Ol$*QY}NZvHMx`FGmn$pr*3^lMnU)2@Cuy$SXOwlR}GjogK&)&_~ z%#MjGq8l(EMe4>CM*2G!>I}1zADE4c`;OTvI~S&jh>FgxNiZ=n+1K^<1#US-n;5dK z(dt$?g#F&{6~Y-5E^=@5tnZy7NlD1aZ6^*%Wlfh_U0&{~x+Ne1ocal@F{=LA*CX!I zMTWH}YI-?gtqU|b0}UQC=LT>{#c$$A)n5rv9F|j-?IhOy>eZ_zi~Ag^nwpwR>+7Eb z*rS!!rhDZ%Z=4;MQzxbuH<%r1sm)N=$x)-@JBl&uPJK$%kRNd$L0oU7`BU%h%YhrifgaH~B;i$b2YhAWoW z=skc$dvUUDT2TkWYR5&2Mv=ouj@ZkU!$q9u;vz)++DRO`yGr~eMa~;kxQs!B8N`KH zg5C5P)5pT|EALrZg#rXJZ*E$Za|bG81IV<%_DM!Y#+=`EfM(h`YSW3JmwY#sk2)(N zqFXq^Kp9zWxSD>|X+?%G`h>c=dV$9*jhN*_crl;HzAK*r^VpOY0NtO%dX6?fHpWd!|SfA-LiKkSEP260kSMG$|aUO)P7r`GWF=~I!U@Q4`b z87#^%e@dT;$C4k*)kCQ_U)=+K-Cb&`%*XuAm`?{ts#+CImR6p&4-jcTB}1T^rjZ#= zwLz<;26>B>l~?R$`V=b;*bFc6sH&-{Z2_jV=Xvrg`gK{Fb9nVsL4TGqC10lP@}w!S z1nC4pOS?9=3FtSc3=IvD-h#!ZSL#a}*PD2)D|nku)S>VBzKZ3SVq>gAe_x)q{YLwjy!M3H zjo+MHTq-$T0&d%Dj47)|nV?==dNibGG1!<+T2$}8)*}zFH|Xw%5Pt?jIuRYh2P)6` zWeFJs1#b{iM}HcWxA!++$HB@d@qY*W;^k^Jf>?`=`Um@a>xT5airaMuYi?a6{y@Ld zrNWiP&t0*`z{>d?L}BCT_~Gdhyrz3w(>W1Bq|xCEQ;MOv)GnO$0#O z2))x9K7bi&!?2t4#@tQ5qvNd2t2i5*cTk!UqwjF{_V%7m9QrvnrnG*ludh!Bt#Xh< zaw6v^CVb-J;#_&nV$M|c^x{?*rZW~lJP8gCrsCH_^E|=3xw7)fJflvus*G$4Ubkix z$)?`#a+d+eOIkOzT3TBxCM6}+RIE0ll&3RO+oGlaK7=m+bxP*M!a_)fe5g4$_J9{A z^fypI<=0r{|7jPI94a%*@v!m_c-D9Ucera>&EOgYTs&NH`*H>%caX#9sn7 z9u9Q!IXzh}BQEqPCI;4yR(*@Qj81aXhYuDn%*W}Drq;!rcPz-~LbV8(5})maN{9RP z{2QvTjE>!WW0%)yPhQpBotY;>5(}7GwBAuh<|xu83gWg5wkf1rZs)Y|_Lx0Hk{5sx zyQywT1Jhz8-mJStDVdf`>`_>?X>&yX-uQK^%#6XudSzUZ&qT+tNnB1=)_D3;7HD}r zy9F;KzJbU^mN2V;R09#AA2G6H;!~m_ScBb1X{CW6Q*a1Y1@hteq{*tbmChl!GuhK|@wmtZ7T|1#_jOhR>+p5Yz|`ZNqWy8(1;(E@ zEF*&{TRnxx=jqVN)4cgjSY5HKy448IdCP~e!h*7tV;ev*0&LO!rZ~&6iDpAdY53%W zW87oj534c@wetFc&grsE)6vn9P*M4T_EI8@gjaw_KIJXZ+nxE9S+yDI=_Zj>%>^$2 z^5zMgRZA)+CL)U7BeDaSlN7isBa?|3CEze?9PXK~FJ884Lbl`SYd1;B$-Pg}i6At! zw6cP@-=!Uv;kb4FFW+02^AG4m`3_{LOxU0L}s-vRL@MUWD(KI6X z)VUnN%)rWe9AJ}(TP!HUQ)^j-<@U2T3OoXZE>pznoiZ|+8#qCv8L>k}OZzg!fZAoS@b%K`PWiYtind2&fUnUC@+LH0l7f~q0l8G zA<<-iE@J>=VMnZgv#kOE|KR=|U5|8mM$q&=Mv_SZ=1X!!pld z`Y}GPlUsevsKU<=9|lcsarY-Ib)A(PMTVdV0;i63XE6S~@(ZiL#KY5RwsT^pD&bc| zjkyyqu9bz~C_7)bD1hNw*HEHUYp@~v1!~R#$BxK0a>Hj;BXXxp9MNQ=Z*#ZT=)H|FP`{}&lDuQwElqu4);kElbhR_BEjoZMujWr z{Sw_I?gK@5O%WtvAisc^(=#$Id*pE5c-d`!KX=4^N0l&I5s*uCZJOMI&uJl{*IGM| zGGaYZ?YMN8mqq6c%u$@ME$dmKM?sFmPVxf$phrk;cy00L%4;Nw*ee-$7u9Vm5k})f zA(ySf&neR08*e4!Gr3r$Bp1}ZBLY=4*JOQh#AudwuauWr1_~LpN332T z-v)V~>AVb78`yh({{B5xEi6J>)20Ez!Q|3e?>~HC8yR70W`E8;fCoIKlrmb`bI8^A zf;XxNza({ZqSP8b!H9ykb&Qoe_<7uuqfgdn2kwGGDXSFKc3m;**2)d)vRAKq2j6?2 zqzw4%L7JjG5|NS~lq|P^f6wN$0s_nA;#D*a+Z*$oJ^?Z#%K*)isoDk*E88zvoTz9x zZRM(>q!gjrpWj+L@rNB{Xr0}mA|*{+1;&w(_{rqN;p;*B@mC{JF zz8jMIfHlJyVNR8*qqsQAsg&x1(19b#m>?F4*WWWao9 zZ8~FpF+EJVq5b=XG}hR-`A=DaRQw#g=Je~eDL#b5J&pq2bv;A!A++K1)n^mbCH8b| z$x0FuXdVq!KAoB}D@f3WH4I%uFZ+d4#3&MwJ*lPH(?0!JTrBGKw*}f2)ZJ07o^_c~ zmaG1Dlv9?rwsx~d$r<~#vd2Q)YeTp3F#s`0rCBzlWfy9+c8SL(#wvT9Zn)b$q_IoH+%!oRt{52D6W z_2#JiCL| z|7;F3Z1g3jl*T6}{s2vb1iB!YkFHDa@JihjrODpH#*Mf9bsLoKA0W7jCZ%2pC_9gh z_y!994`w&_@rmMOLCg4u9$!IonB0TnAqD8L9LpOx)Is|A>CT1C+Y}TOJ|s+Xe#SRp zZEtOF&kO~T($YR$5;Ur)vCYoUF(BRaZ4>tQYs-X&PVl5384Q8~fDQvYE5=*ICb!pT zo9~^)-U4V};*XkoFHikmm`eeO8(0CNl7bt(W{;D2Om6GSot#d*cc96^--pJfrUtR45xp6=es`u~6 z*;mv!aY3(2)v4)Mioa`4xviB;xNa3QPfzn+h*qj~lT?ggMs(-H8JR+fNTYh)PraKT zi_|H|$e6y>KTE#Lycxgp&0TZaMKvug4Xe!#ssRob)q_A+cbArV-!~F;pqlOM9;0)) zT;d@YfwX;m7O5jCJM>>wN{!jNgf&*PvG z^u7<9oTcnX~+pyGz;yiqT2YrHh%L0e)!QS?I z=}v~>c!;cuN|2i9xI5mNwX>fCw~`pi$12Ybs;NHY+gqq| zJ{-k|{t-iYTWLxbIj+OMxyI#6qK+;v^dMx#-HRl@)yb|vV`RaBLj!D`M#M3Ah%OV6 z@T@bS*V`-IK=qT`NgG-EBEMSGa?X&0D-x}~t>jW&RrNql7_npr{jgmnxAt{5z|ub! z778zOWS1cW_{tSMPDBy`n5H9{Z7+X!ZQ=VZLIxzi8!4q5EyCb|DShtTIiPZ%gCY|C zHaRZQ2-Q3tESTO{y^1oSm5+^6Q&YLxFUY(vtaA_W9@j|E$Z>OXL&p0no%|a_mV;&C z-zB2%j6C7eppsx}h_*K|J{y9@I(&Rv{&%+UhNTiDx18etqFc%Ne#>Pfz#vZ@~;5tu% zo0~T)JJbJ~xE2~1=ouSJi9Vc{msj;bZNceR*`x1gLHNW{fz~2Yq?xDFwoqU4wa%@Y z>Juj;<6%ijN#wDE>VSzG!`*m6H|AD~#Qv6a&Q&ew_Y)1-kApC&rtL9UsM~&R>~2}Ls~eMlpjLQ$ zQQvC=3B0P%>HdO*d+Y?;$?f1aqVNbaKOHTtNxL+KjM2!2#X8hY$7ZA=t4XeL!_5I; zZUhWi7I7^7?b~Zf2@31c8yiqpl!iipHf`up=*-+IGzuCz`GMv0rjPZqz+(EMUT&+K z1C&1jfW8k$>b|FrPwoC*J*lz_bq4%>Eb#gh$HUj6- z=r!RnsMOe)NT^9nOthZqWB*E{8LSFrpGbVd3D5)x+KoSUk5Tj4C|o9qCcu8)#} z!Udh1WH#)rpTuyB#_o&$v~H&NS8lCv7VtoYa$pa}MMJeF_cll&V(B9$eN756%}7|T>QjhPmR3MuAX$PE7zx~xNsc6~>-Pz#@3yXYtlU~FAIM2{WB1?G<4E0o zEE%Zhqp7+OH#4g}Gn+E=ts<(cWMH%Ef`W~EqrbA^#(}?|Qo;B4qQRHs}u5C(Tu);S6ngtN8n z6_M~O5~`o%eF1LT*G;KCSJ*LG{B+(!_HQDt2>JNRw(m}JK?cIJINzs zb8`lBrOns_rNVJL#h%UAljGx=zjvui>2V(v7Z!zhmxaT-MpE>lCTAx)4F8N88Ie+) z&xoq#20^l*D}QKGaj587h^&c8X6Ixds5#(6wrsknE(mZfAdyx2Tb{pV^WEgIu+&$o z=(C}%z*D-paEso~?5*rarhc^?Xv@gRDK9YJonlNrJuY(0DYk}{a`>B z=d{zpu37_*jkzi^KmN;&h0850!|U8Q%B2;T{f0163Lh>OC;pg(9L1Y&uLfm!Q3%{UO= zzPhK?4M0ck8Xs8fP&P`xv^X|C&J5j?$}VUnz~8^s(MV}b?1r*}!bLNqzQD-H$l<`3 z+uQNKYYpA%)5gy+4e-i|rw~X_!F6%*I6XT5Ct<}A*yLVPm!R@_{E;BHT76>B5oK30 z5|C>H0H5%2wNoh(L|<}r+&tW#fq4r}t^{Hwd(F%B!^bDHpyi3Q-An!!Ty0L3DH-ly|w5K2V2|r*JYE46eklSQQCfDFlLrA!_W2>g)ihx;FTy_ z1a|^anKFe%0q6uI;U!m`Rxz^ahlQRDXG}qi;_s0;K`9rPyMCM^zLsZJpZ=wmVfa{=5MS|Z0^e11B0g(u~V3=1@n69O9>O?#)8D%wxgzo9FdtvIS0X(fc2~J z_b-s+0~I{GoEJul>gwZ*KBws7t?-UI4?DW`eaLlO90vDp^w`xuxw}9A$29u$rzgm$ z1#v(n-iOi`MfxJWm(OM6VZm%0=JeUKFC5QVbI|+~*8A5h)3qq+>4`!4=r~`}0Csgu z!4p~2lW1A}$3rvE*3Pa8?%E{ZX+l0vCuS=uc5TJ_C?u5r<58lpV{S1`|i;6mW^5jVnfYJ?Xo#WSGH~+^&$Iet-a&Pyy?aSNM6recB;&A-TiqE{g zk8N)*h7ypmrrzs_rxLhFSYi3?I1LSr-mP0df3HrOeJy2ywc`VRz!8j=mR7Objss+B z#vo>utCe*^#BK^jvHD(IS9aC^@0;St1*GK!ARl#k$ymU67n8QjGiJRiI+z8 zhX0q(lE5o}{+!x*ZR#lyeCa%$hW>sENFg4Y87K;ck_}Z-z5j(o2C9+R>s?F(_iY`M3W^vc*ME?V->(($+e!-OBQ5n zJK4@A38;`wN}CXCOlSj8qqY2Ma}`3TN8%{yi4% zthl_qd7>lX5GI0obaTW*{#%8m4alTr76WRoO0}ROElu?>sUAkYNA6V!D3@Cd_!JZr zR0jOdN>aE{rJ$i4;RS|q2INf@)YX0c{RzOX!UHg>r>FPBm)`vevm(HE5-n}*64&3j zL@^hNSNA#^fZ#p@A`YQ58c10+4j6e9e1&!As0o?^td~^v6!B7m$+EIb%xrAZSz7O4 z&hFj2x3sz{t)PIq(+mY+#<;L*!Cc@5xfr(s=Q zv70&#{kPa@_1@az2tB-!z9ktM86R$3L8s7w8kCy%P{1x)^mEm03|i=wV7;@ygC*6I zDtQEyNLs7f^_YjxL?Dt0ZMxEamO@2k{}!JZ8yg-7j$k#=!9{4Qo#I0?gn?!A_TxuF zc=-p|7Z=@kAD0lIfB5qVe~F7srKmmF-+@3Q=x5g;;nnmx?xOKw?A^Nnh<(7|*!unZ z-Ovy%OvVwMyr~hySgmT7k7Kde?ibfNZOAZBUcTfqF)=ZlcvEOl#SgN<5ez;70Z9U? zCebud5ti20O#aEx!jKSdj4;&y3S(A`Zz`FBDCO49V!iR*yGJZ6EOd$t=|Il+k`BKe^)tf9NFt z8XxzAOfBd~hogU!^i5AsLyYz9lS4-|fNErBWf?=jD^AezEG!CN_q}a+>S0if%|5>% z2eMWC@GCz;=`gNn5HKJ^9frN|{>M8{KBpCvLIp?K(IA2yxmEFy zL>CQdG!3ofZP>;e#=qL4FJ8VJoy7A;h~a|u8o``qF;EyMaQ~Ews%kSUx@;Ne=-)@z zL1y7I@4JBB9%O@D{c?`8m&~4^J_4FG=AzA*4BAfY?Ciy5Wld1@Lf}(TugZl14->_1 zL%JzW%ta7#(weo-_BAk_aS|Tlu+bQ=TI~NR{^lI@_-+d2ua(Hw!OCbUn z9FcG_%TOrCQatwGLDZx9vuQuDJnOw}`^@ZY*vb$ePX+a^xTK_~3`IsC4c8FBYDL~% z&I(pZ=>#Oc{XT@!H@%hibvNXtsu*_Bnk_&8W;!?dyRJzo)(0x0_Ly1Iz3ztDLH zvYQvMH>oTw2G}c~^L0PWeSNk3p2iA;iHM9WG5^dlH(Yy5;0K6F$H>^!ynwJTJw%g4 zuKPU26H0I@WYQn6f7aE6rPNn=o9424-;=7Us(ZCbNlE?A$SWAXgh4y_vPHiP5S-;U z&Z0By!hbT>nb{f_t_U%qC8GSRL`3C72pxiI@a|}l8M!VW1HIG>g{!%_iL|p-BzynKBdKYb#Fs80ik3*nKGo^WaB;YZy5L=-QBbKu3Uo&5tqc+k=u8s*+2l|5i$6^rK1xRi#XtXf90K*954?X=S6!Ez zDG`Pdaa;&G*qxLpE-ifqh&S63_A*+e235FYus0ts{WugaX!+u%5zO)>^FDmYH^_k2 z%bGmUksws!zUR!PSA6XiaKs<*$yjYP+l(hc9E956w4|&(F_|hTm*|O(oNyfOgq;U% zH}Q(iVOWlofA`}98o`Heg+^Sp3nx;KKY`NPFfc#~TdC6HKz!Kazzs#V6NIeZ*Ep>% zfpBRyI9%gI2C4Q&w8;;4>JJ*@`0jRRtI}`*%j~`P`Nj1wZ|pf?c?H5aS&W$<{O*2hLv#rXmQK7NWG$Kj#}<1Wxc9xhsZG|U4)K6AjSEmKjx2pbEt@WCPq&@ygr~iOv~!wP9ukL)+=#}=Z(EZ(Amo;0IbNvJ>0=!pFsv0+Zw?FLfw%!j*B7CW5y2l7Y{Cl7G2M$xYv~& z423@(mJuwWrk6Kgp_W!KiMrj3ssH+v#e&zvfDg&QJ_v=u__?<^;`^s8gKGUTj_(Mn zFJP~g_aC|j3v#)YE#>XV2t9c9COEW}6pn)n`CpGUssA}Dg6>Jq^!|O@(T1!jicUPp z5Qv;1tv6O40w@Zc@G1AL3co+tr;P|W#$#t^?C#d`7)Kj9uqdcqKS1XHr)GqDi26;S97>@1!I;=>Hthx;O+x z9Om$ijEo>H=$CJJf;Ct9(4WiJA-O1d`{LiNRfB!@W{oN$)qQ20;GDRtAIJ3 z{jPHWD$hfoh5^botQC1i;8D{*uy|x9LYEY!!4J8qhP5=o<0q5y#BnAS7IVaKc1Awnl~s4kmF_47NgnV~&iRJ(B&;PEqvXFz}>keIg{0J#l7ET|iJAc{8Q(Yrp; zHF6_I-RhQAtv4Lb^Cy01JVr!#7vd~jXtVg8^=Ibx0CtrOBBhg*sWE(^+AUC_^3_BBm@t+>0 zMEjqsjHKM9xBM{s8^*4h)@m%{4SZ09nPi zr8zrDl$YB z%PlD3e9WcLlH%gGfM`pgiNT>DDul&F9eE(d=LLj}30P14-bO;Un=wRx#{j3u<8Y;w zZRfMIv!@1%=%Gty+PmhcC7nQ)T9sx5%^tunQ#@tY*uybf0C+i^v?@*v)Xg3L@hkR) zz&&B=2WFS{PIHL%k?BTXiP_?z`lEwrIyIAyWaU({)H%)%nx0{)yUsyA?6&!xl-qX~ zdfv}QVu>cOlAi($!M21k==(1r@{A@gS3;xE|aP=GQ5ZTJZkQTUIDN*I^< zMW!9xIucUSXK=|RpfsVa3Jr)4PC(Uc4!ej5G3@THcInl*3cK&E>wXy=#Ev!j17d3c z{#6Vh6-cU4ub_Yc8SJ74xIyd5PCDch?d@!SfHrgo*xNX3S}fPiXO`b8MxhPh6B0Io zHUja5r?9ot6eC%kl56csATS?o&$W#3u+EtXua92UEh?3sA7yx)V?C^-+iv*Fhnie< zUc*muT_G^0?r znr20h6Q4ZkDV6r*_3PJaxU(4O2tIsw-=7y2rrz0H9MES|B!%(}8_oxh_}m>ZjKB#w zV(2n|87VaR1!*v6_7ROfS{Kd$m!_ts*2vR&yfOE@KVoyU(_?>?9u%5$h}^b>GmTD9 z`$Hu_a6_*Om(}kOdQL0==-$s*BlmX)dm{&q!px40TRkB2cHQZ9Je{5PXLfZYA*@|J;&4M23m}EdExD9A22J8 z0fxn0b>gr4Jwbz_dII|TQOU`tpwvP@ad)j(eG4|k^4hdE;km0+VA5Y(P#A%bW(FMc zb(ZJkJaeM#;aAcY)tQOturLg21hBz?v@}o}xjq#detg8pZ9TewF*NMl>9~z4UyIc#~zSO2z6#{{+q6V);2)Pme$sugv1;9z}1nk z2Xk3a85~RmGLR>%APO`q*_p4I6_2yT3GnkTL5iy5+0e)(SS_d@K~GqQUu9-yUd!Tt z86P8+_7>4D2=d(lz3EGZB@G;M4SLm_R06 z?~3$We^m`MjM7w7Gw~L@`?0FrJ^NB(Fge+)B8M$)blFDZ9Cg~wv*+l2(a!@nJqX3? zkD_O85_dIrs<`l6PLE(zB!$oS1%65f+MU^#Vg>-Uez090@Wg}qG6p?-YN$$pmX`L( zkmx4J3^qvbcHPqW!U1G1y6}KS&@UHT$eI9009=7DAK#i0O^vZ0<_$Ek(tFJ7U^#_7f9?+y<}I8CTs6## z<Dg{%t6nHbYcRT+NO+WRXt{V%R!_`>9R{6szOBxcBcqbNJr`OK>? za(g46?%coUt$lkUBiK^9pfW1j{|iAd=E%auqL$K>ob<0_CodLFUnu0T`Kxj^p#al$ zIc`qQlW<-a0XC5IFIxY&W>D=w1a(IivXF>H!WoSWs3Kse$=18?T?)Mo1iv#;*b|I} zpRg^v2MhIw!%r*6aG?t82WUL719o!@W=8x0%{QOQ*On)=c<6i-O_fWie=(TmciWBf zX1ON{KK$|o*8FiW>c%)YvK{6JjbRs32|kRgJki1}Ob6##AsErnrnK{Z7~t>RV0n9L zcvY5ame%NZ$C1y>j|0b`1wk0%Er@_6;A;IzUF|rGH4(rmwx1nBBTbNs2#?9$OSlZw zX?^CiG>B5rTF8Oo{ed4FiAQ?^6F zLn9c8y)`lj+55vyQvEqO&FxD}{~i>2KTw75!i>WK8IRp%yhkH-1-~6Zcv*%;n*o|F zQ1oZO193PUR47l7AHYU9UityQDkT&`Zg-$BqxuaDt%>z4G-AD1_lO|neG0fQoGUm3 z;SrEBCE>d+;1nFXPeOWe+7XWfF_;oZ^)nzvQRNNTyD zsCg9?@m{@pwdp$VF?pn$MQcLIkDkgk9r@C+6#P9X+6J$Lf8o5;LSoajmtLZppR7uo zD)frX=u94NvZUiP%sKu_`hdETedDw`f!GW*;-`=sM_&fOKALmxW>_q2k9$c_HEbWx z7Q9CD1Aq?sJ_7eXK7k7IB?=bP32V+hk_p3;@LLbVGARA&>sP#`4#9sQ z4Fjb!e)sGcvcka6@dXn>wHlRVV1Zx=Rrmk={OQxDV#uK*d1bL?HKbA>#Nfv(B+V(f<(++AfF+aH>iT3ONW&7!dU`$81V$U60i3OfV315Tnx{v;A-g8<*Sk6~g!c zdBNI6+62&05&Ic0XhbIW?m-&HP=NQggG0rH4agWU76F~!+!*8>BI^NCjfq#CNdJ21 zf>Y@T$nH6ot--u^sK(e9`Y^EmnmBl5s1tWB?V@)>lb3Q`Ap4UDMGaU*tjKGt>3?VCs2(#;uy)6AAI*i_oYKc2|i@U%e_HWMg3&g%Wp> zk53ZVgSYN^^&|yd-eb)~4CmyR<2XQ-AgZ2;V^&1;JA_vF8T4q2iq936w-9s#9w-fo zyL&R5^#}Wb5Kiyd2opWn1WIHx@sS$I`5e(ovsJH3OTp#y$ghGE0l%A(Dyd0r3PqTl zdp-6iheh8`V^vOG89Ts1*owsGu67SKhYqbgg?fv50z4}XglvSyz_q+&2_DrY+f0AZ zivqx`Mc>JTu!5n-o_$}DkrC%R#6#Ywu{AZoETcAUcz=&15~n>o(dKAj-)F8a^J@eF z_n>oP==&EQLv1d${3htSGyht@9VG`~)gdY#6BC0RVr2RP?0X9WpGE)6cX0Egf4|KI zO~tHmpQ3IL)KBC4_kE$hS}1uBfUXJ(3i6s!6@=Q$1Yht1U8@NW?Op^s$Zq=6G3b%K z4<})9A|{WxKd8{BA+r`IWOWXu@6gv)fQm~c?)o_SzF=bAz$1Kbsi)w`K@@$Ob^w6H zD2y-=5`^C%lMM_h5cUuHDj6sTZ||qL`G6!Ym8WBFh!lPVBB0$ifCvP%Td(3F^|13S zHwZC)yoZoW0DEm|e`oOz{S6@JL@*TciUddx0E|^ONO|AG->>Bg9}-t}e2AR0w5!;C zJ3bAs!7=@~AMiaW&8VZnRWSgon(Rz!giJZ#j#VVF0h44yJ=GN z@ksI+;zHWB6rg7YM>X^8q?^=^8Wm%qNzci5{A9d!^0ZhoZU!(y;{|q$$`0t|6g&p_ zkOFkwp3c#42QBoXBLqglb!aItJ9GAI0PK}fIK;cOxhW5A8SG9zutp0?dqCTRvi|9f z@$~|@PKZ%9`;)OPfgk)JA_EzpD98*x0WF9SH1|3a{o%mg`OBBdk*x-BSo76A)eZ-M zYY^K!g+Xly@^{5xW9Z$yX$+eNeiM__HFz4<3;<2uwcH2eA$KaEjX*mBte0b}f><=z z%y3J`koFH*%0f6dDj^|(j#naAs=i(VgvYXMnX_Q8AXQ|*(1i$?lKh=J=aKsgfp~Db z-wq8K^!9_+2tHHeSaTqpiuZ*t7r6t)0-eEzj)^AHVi1Z5HJC!OgSw22{Dvp|U(-id z{x456y7Ja^X!p|A6+VOPH9IqZH@cijQD^;>uM z+#DfXLlC`$p@HcdGXB77_))!B*9fQGz~l=?f);#5Mf|v}v$M!VXHp=N@qob>gYE-O zdkLx0P&|h+U;Zxz^14C}8FqQEaTUMHR!fk9d*$T-%}7NO22)vUOdH|x{Un*~KadEw z9;_vy_Al$_f9aK~d1ji>Ly=nw`nlfC=>sBJ6GEW3OHdC-CsRD+AdS)V+0;iVOA7iv zsM5he#RKyF{elc(G)LjMH>3${J}alW1X3Xs&Q8Q-@%ELW6`#SqFVAlpJCMD0jqH_S zQ58G;M42A&b#tAu%zH zE5kt7rD24Sun3~V$B!x~=Yn!V^&S#`ide3uv@1Rd$@Rb9QS=d0C!QI9wIe;fX<1aP z9QL3n!I$pH0m)kejXfQ{g8)m0yj=9%WZ$cWpk86%1kRr{z;w9dqiJE?#?w %`MB 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ΰ}v{DU;;IX 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≈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 literal 0 HcmV?d00001 diff --git a/blogs/deepcompile/media/perf_zero1.png b/blogs/deepcompile/media/perf_zero1.png new file mode 100644 index 0000000000000000000000000000000000000000..a7256919f9a5da2c7b9bd6f6efdc60f018a2b160 GIT binary patch literal 119820 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 z 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 literal 0 HcmV?d00001 diff --git a/blogs/deepcompile/media/perf_zero3.png b/blogs/deepcompile/media/perf_zero3.png new file mode 100644 index 0000000000000000000000000000000000000000..a93e929312a3233156cab69a22af25a1b8c8b6c9 GIT binary patch literal 132266 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ƴBTx* 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

vVUXZH5m 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%0AekYQyURa@ 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

XG|E(UGb%NL7VvR5b#@nul$ONs5(m>#K*I1w5! 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 literal 0 HcmV?d00001 diff --git a/blogs/deepcompile/media/workflow.png b/blogs/deepcompile/media/workflow.png new file mode 100644 index 0000000000000000000000000000000000000000..72a3584080993bc6473fd40df5a7f1bcab827683 GIT binary patch literal 87417 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 SXP=|s$HscQ6?>Cg)V~3rkCJf! literal 0 HcmV?d00001 diff --git a/build_win.bat b/build_win.bat index 627694dbe..64ba99633 100644 --- a/build_win.bat +++ b/build_win.bat @@ -10,6 +10,7 @@ set DS_BUILD_FP_QUANTIZER=0 set DS_BUILD_GDS=0 set DS_BUILD_RAGGED_DEVICE_OPS=0 set DS_BUILD_SPARSE_ATTN=0 +set DS_BUILD_DEEP_COMPILE=0 python -m build --wheel --no-isolation diff --git a/csrc/compile/deepcompile.cpp b/csrc/compile/deepcompile.cpp new file mode 100644 index 000000000..2eca0a332 --- /dev/null +++ b/csrc/compile/deepcompile.cpp @@ -0,0 +1,188 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 + +// DeepSpeed Team + +#include "deepcompile.h" + +#define USE_C10D_NCCL + +namespace dc { + +std::shared_ptr param_registry; +std::unordered_map> executors; +std::shared_ptr reduce_buckets = nullptr; + +c10::intrusive_ptr process_group = nullptr; +c10::intrusive_ptr symm_mem = nullptr; +ncclComm_t nccl_comm; +bool use_symm_mem; +bool clone_custom_op_output; +bool profile = false; +bool pre_div_reduce = true; + +bool sync_before_reduce; // for debugging +bool sync_after_reduce; // for debugging +bool sync_before_allgather; // for debugging +bool sync_after_allgather; // for debugging + +std::vector sizes_to_int_vector(at::IntArrayRef sizes) +{ + std::vector result; + for (int i = 0; i < sizes.size(); i++) { result.push_back(sizes[i]); } + return result; +} + +void enable_profiling(bool enable) { profile = enable; } + +bool is_profiling() { return profile; } + +c10::intrusive_ptr getSymmMemWorkspace(int64_t size) +{ + c10::Device device = c10::Device(c10::kCUDA, c10::cuda::current_device()); + std::vector sizes = {size}; + std::vector strides = {1}; + at::Tensor sym_mem_ws = c10d::symmetric_memory::empty_strided_p2p( + {size}, {1}, c10::ScalarType::Byte, device, process_group->getGroupName(), std::nullopt); + return c10d::symmetric_memory::rendezvous(sym_mem_ws); +} + +void lazy_init_symm_memory() +{ + if (use_symm_mem && !symm_mem) { + int64_t max_param_size = 0; + for (const auto& it : param_registry->getParams()) { + int64_t size = it.second.getDSTensor().numel() * it.second.getDSTensor().element_size(); + if (size > max_param_size) { max_param_size = size; } + } + symm_mem = getSymmMemWorkspace(max_param_size); + } +} + +ncclDataType_t get_nccl_data_type(at::ScalarType scalar_type) +{ + switch (scalar_type) { + case at::kFloat: return ncclFloat; + case at::kHalf: return ncclHalf; + case at::kDouble: return ncclDouble; + case at::kBFloat16: return ncclBfloat16; + case at::kLong: return ncclInt64; + case at::kInt: return ncclInt; + case at::kChar: return ncclInt8; + default: throw std::runtime_error("Unsupported scalar type"); + } +} + +void reset() +{ + executors.clear(); + // We keep the buckets for memory estimation + // reduce_buckets->clear(); +} + +void cleanup() +{ + reset(); + + ncclCommDestroy(nccl_comm); + process_group = nullptr; + symm_mem = nullptr; +} + +at::Tensor reduce_grad(at::Tensor grad_tensor, long graph_id, long ds_id) +{ + if (sync_before_reduce) { c10::cuda::device_synchronize(); } + + assert(hasKey(executors, graph_id)); + if (!profile) { executors[graph_id]->reduceGrad(grad_tensor, ds_id); } + + if (sync_after_reduce) { c10::cuda::device_synchronize(); } + + return at::Tensor(); +} + +at::Tensor reduce_grad_meta(at::Tensor grad_tensor, long graph_id, long ds_id) +{ + return at::Tensor(); +} + +void free_tensors(std::vector tensors) +{ + int64_t THRESHOLD = 10 * 1024 * 1024; + + if (!profile) { + for (auto& tensor : tensors) { + if (tensor.is_cuda() && tensor.numel() > THRESHOLD) { + tensor.record_stream(at::cuda::getCurrentCUDAStream()); + tensor.set_data(torch::empty({0}, tensor.options())); + } + } + } +} + +void free_tensors_meta(std::vector tensors) {} + +void init(c10::intrusive_ptr pg, + int64_t initial_reduce_bucket_size, + bool enable_double_buffer, + bool _use_symm_mem, + bool _clone_custom_op_output, + bool _sync_before_reduce, + bool _sync_after_reduce, + bool _sync_before_allgather, + bool _sync_after_allgather) +{ + process_group = pg; + + ncclUniqueId ncclID; + ncclGetUniqueId(&ncclID); + + // ProcessGroup doesn't have an API to get the CUDA stream for comm calls. + // So we create a NCCL communicator and call NCCL APIs directly. + auto vec = std::vector(reinterpret_cast(&ncclID), + reinterpret_cast(&ncclID) + NCCL_UNIQUE_ID_BYTES); + auto device = torch::Device(torch::kCUDA); + at::Tensor tensor = torch::from_blob(vec.data(), {static_cast(vec.size())}, torch::kUInt8) + .to(torch::Device(torch::kCUDA)); + std::vector bcast_input = {tensor}; + + process_group->broadcast(bcast_input, c10d::BroadcastOptions())->wait(); + + // create a new nccl communicator + std::memcpy(&ncclID, tensor.to(torch::Device(torch::kCPU)).data_ptr(), NCCL_UNIQUE_ID_BYTES); + ncclCommInitRank(&nccl_comm, process_group->getSize(), ncclID, process_group->getRank()); + + param_registry = std::make_shared(); + reduce_buckets = std::make_shared(initial_reduce_bucket_size, + enable_double_buffer); + use_symm_mem = _use_symm_mem; + clone_custom_op_output = _clone_custom_op_output; + + sync_before_reduce = _sync_before_reduce; + sync_after_reduce = _sync_after_reduce; + sync_before_allgather = _sync_before_allgather; + sync_after_allgather = _sync_after_allgather; +} + +void start_forward() +{ + lazy_init_symm_memory(); + for (auto& it : executors) { it.second->startForward(); } +} + +void end_forward() +{ + for (auto& it : executors) { it.second->endForward(); } +} + +void start_backward(bool update) +{ + for (auto& it : executors) { it.second->startBackward(update); } +} + +// We don't call this +// void end_backward(bool update) +// { +// } + +} // namespace dc diff --git a/csrc/compile/init.cpp b/csrc/compile/init.cpp new file mode 100644 index 000000000..ca2538b5f --- /dev/null +++ b/csrc/compile/init.cpp @@ -0,0 +1,99 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 + +// DeepSpeed Team + +#include "deepcompile.h" +#include "z1.h" +#include "z3.h" + +TORCH_LIBRARY(dc, m) +{ + m.def("allgather_param(Tensor a, int graph_id, int id) -> Tensor"); + m.def("prefetch_params_fused(int graph_id, Tensor[] params, int[] ids) -> ()"); + m.def("wait_allgather(Tensor a, int graph_id, int id) -> Tensor"); + m.def("release_param(Tensor a, int graph_id, int id, int n_users) -> Tensor"); + m.def("reduce_grad(Tensor a, int graph_id, int id) -> Tensor"); + m.def("free_tensors(Tensor[] a) -> ()"); + m.def("offload_tensor(Tensor a, int id, int id) -> Tensor"); + m.def("reload_tensor(Tensor a, int id, int id) -> Tensor"); + m.def("wait_offload(Tensor a, int id, int id) -> Tensor"); + m.def("wait_reload(Tensor a, int id, int id) -> Tensor"); + m.def("offload_parameter(Tensor a, int id, int id) -> ()"); + m.def("reload_parameter(Tensor a, int id, int id) -> ()"); + + m.def("test_call(Tensor a) -> Tensor"); +} + +TORCH_LIBRARY_IMPL(dc, CPU, m) +{ + m.impl("allgather_param", &dc::allgather_param); + m.impl("prefetch_params_fused", &dc::prefetch_params_fused); + m.impl("wait_allgather", &dc::wait_allgather); + m.impl("release_param", &dc::release_param); + m.impl("reduce_grad", &dc::reduce_grad); + m.impl("free_tensors", &dc::free_tensors); + m.impl("offload_tensor", &dc::offload_tensor); + m.impl("reload_tensor", &dc::reload_tensor); + m.impl("wait_offload", &dc::wait_offload); + m.impl("wait_reload", &dc::wait_reload); + m.impl("offload_parameter", &dc::offload_parameter); + m.impl("reload_parameter", &dc::reload_parameter); + + m.impl("test_call", &dc::test_call); +} + +TORCH_LIBRARY_IMPL(dc, CUDA, m) +{ + m.impl("allgather_param", &dc::allgather_param); + m.impl("prefetch_params_fused", &dc::prefetch_params_fused); + m.impl("wait_allgather", &dc::wait_allgather); + m.impl("release_param", &dc::release_param); + m.impl("reduce_grad", &dc::reduce_grad); + m.impl("free_tensors", &dc::free_tensors); + m.impl("offload_tensor", &dc::offload_tensor); + m.impl("reload_tensor", &dc::reload_tensor); + m.impl("wait_offload", &dc::wait_offload); + m.impl("wait_reload", &dc::wait_reload); + m.impl("offload_parameter", &dc::offload_parameter); + m.impl("reload_parameter", &dc::reload_parameter); + + m.impl("test_call", &dc::test_call); +} + +TORCH_LIBRARY_IMPL(dc, Meta, m) +{ + m.impl("allgather_param", &dc::allgather_param_meta); + m.impl("prefetch_params_fused", &dc::prefetch_params_fused_meta); + m.impl("release_param", &dc::release_param_meta); + m.impl("wait_allgather", &dc::wait_allgather_meta); + m.impl("reduce_grad", &dc::reduce_grad_meta); + m.impl("free_tensors", &dc::free_tensors_meta); + m.impl("reload_parameter", &dc::reload_parameter_meta); + m.impl("offload_parameter", &dc::offload_parameter_meta); +} + +PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) +{ + m.def("set_persistent", &dc::set_persistent, "Set persistent flag for a parameter"); + m.def("enable_profiling", &dc::enable_profiling, "Enable profiling"); + m.def("is_profiling", &dc::is_profiling, "Check if profiling is enabled"); + m.def("init", &dc::init, "Set the process group"); + m.def("cleanup", &dc::cleanup, "Cleanup the process group"); + m.def("register_z1_param", &dc::register_z1_param, "Register a parameter"); + m.def("register_graph_z1", + &dc::register_graph_z1, + "Register graph with a list of ds parameter ids"); + m.def("register_z3_param", &dc::register_z3_param, "Register a parameter"); + m.def("register_graph_z3", + &dc::register_graph_z3, + "Register graph with a list of ds parameter ids"); + m.def("start_forward", &dc::start_forward, "Start forward pass"); + m.def("end_forward", &dc::end_forward, "End forward pass"); + m.def("start_backward", &dc::start_backward, "Start backward pass"); + // m.def("end_backward", &dc::end_backward, "End backward pass"); + m.def("cleanup", &dc::cleanup, "Clean up DeepCompile"); + m.def("reset", &dc::reset, "Reset the state"); + m.def("invalidate_gathered_param", &dc::invalidate_gathered_param, "Invalidate gathered param"); + m.def("clear_all_gathered_params", &dc::clear_all_gathered_params, "Clear all gathered params"); +} diff --git a/csrc/compile/util.cpp b/csrc/compile/util.cpp new file mode 100644 index 000000000..948338028 --- /dev/null +++ b/csrc/compile/util.cpp @@ -0,0 +1,89 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 + +// DeepSpeed Team + +#include "deepcompile.h" + +#include + +namespace dc { + +std::string tensorToString(const at::Tensor& t, size_t max_elem, size_t max_str_len) +{ + auto t_cpu = t.flatten() + .slice(0, 0, std::min((int64_t)max_elem, t.numel())) + .to(c10::Device(c10::kCPU), false, true); + + size_t size = std::min(max_elem, productDim(t.sizes())); + + if (t.scalar_type() == c10::ScalarType::Half || t.scalar_type() == c10::ScalarType::BFloat16) { + auto float_ten = t_cpu.to(c10::ScalarType::Float, false, true).contiguous(); + return tensorPtrToString((float*)float_ten.data_ptr(), size, max_str_len); + } else if (t.scalar_type() == c10::ScalarType::Float) { + return tensorPtrToString((float*)t_cpu.data_ptr(), size, max_str_len); + } else if (t.scalar_type() == c10::ScalarType::Double) { + return tensorPtrToString((double*)t_cpu.data_ptr(), size, max_str_len); + } else if (t.scalar_type() == c10::ScalarType::Int) { + int* ptr = static_cast(t_cpu.data_ptr()); + return tensorPtrToString(ptr, size, max_str_len); + } else if (t.scalar_type() == c10::ScalarType::Long) { + long* ptr = static_cast(t_cpu.data_ptr()); + return tensorPtrToString(ptr, size, max_str_len); + } else if (t.scalar_type() == c10::ScalarType::Byte) { + unsigned char* ptr = static_cast(t_cpu.data_ptr()); + std::vector vec; + vec.reserve(size); + for (size_t i = 0; i < size; i++) { + vec.push_back(*ptr); + ptr++; + } + return tensorPtrToString(&vec[0], size, max_str_len); + } else if (t.scalar_type() == c10::ScalarType::Bool) { + bool* ptr = static_cast(t_cpu.data_ptr()); + std::vector vec; + vec.reserve(size); + for (size_t i = 0; i < size; i++) { + vec.push_back(*ptr); + ptr++; + } + return tensorPtrToString(&vec[0], size, max_str_len); + } + std::stringstream ss; + ss << "Failed to convert tensor to string. Invalid type of tensor: " + << toString(t.scalar_type()); + throw std::invalid_argument(ss.str()); +} + +std::string tensorPtrToString(void* ptr, + size_t size, + c10::ScalarType datatype, + size_t max_elem, + size_t max_str_len) +{ + int64_t elem_size = std::min((size_t)max_elem, size); + + if (datatype == c10::ScalarType::Long) { + return tensorPtrToString(static_cast(ptr), elem_size, max_str_len); + } else if (datatype == c10::ScalarType::Int) { + return tensorPtrToString(static_cast(ptr), elem_size, max_str_len); + } else if (datatype == c10::ScalarType::Double) { + return tensorPtrToString(static_cast(ptr), elem_size, max_str_len); + } else if (datatype == c10::ScalarType::Float) { + return tensorPtrToString(static_cast(ptr), elem_size, max_str_len); + } else if (datatype == c10::ScalarType::Half || datatype == c10::ScalarType::BFloat16) { + const auto ten = torch::from_blob(ptr, {(int64_t)elem_size}, datatype); + auto float_ten = ten.to(c10::ScalarType::Float, false, true).contiguous(); + return tensorPtrToString((float*)float_ten.data_ptr(), elem_size, max_str_len); + } + std::stringstream ss; + ss << "Failed to convert tensor ptr to string. Invalid type of tensor: " << toString(datatype); + throw std::invalid_argument(ss.str()); +} + +std::string tensorDimToString(const at::Tensor& t) +{ + const auto dim = t.sizes(); + return join_as_str(dim); +} +} // namespace dc diff --git a/csrc/compile/z1.cpp b/csrc/compile/z1.cpp new file mode 100644 index 000000000..1fc908398 --- /dev/null +++ b/csrc/compile/z1.cpp @@ -0,0 +1,141 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 + +// DeepSpeed Team + +#include "z1.h" +#include "deepcompile.h" + +#define USE_C10D_NCCL + +#include +#include +#include +#include +#include +#include + +#include + +namespace dc { + +class Z1CustomOpExecutor : public CustomOpExecutor { +public: + Z1CustomOpExecutor(c10::intrusive_ptr process_group, + std::shared_ptr param_registry, + std::shared_ptr reduce_buckets, + std::vector ds_ids, + ncclComm_t nccl_comm, + at::cuda::CUDAStream rs_stream, + at::cuda::CUDAStream copy_stream, + bool pre_div_reduce) + : CustomOpExecutor(process_group, + param_registry, + reduce_buckets, + ds_ids, + nccl_comm, + rs_stream, + copy_stream, + pre_div_reduce) + { + } + ~Z1CustomOpExecutor() {} + + void endBackward() override + { + if (param_updated_) { + for (auto& it : has_acc_grad_) { it.second = false; } + } + } + + void flushReduceBucket(at::ScalarType scalar_type) override + { + int rank = process_group_->getRank(); + + if (!hasKey(reduce_tasks_, scalar_type)) { return; } + + int64_t tmp_recv_numel = 0; + for (const ReduceTask& t : reduce_tasks_.at(scalar_type)) { + auto copy_done_event = rs_copy_done_events_.at(t.getDSId()); + copy_done_event->block(rs_stream_); + } + + ncclGroupStart(); + for (const ReduceTask& t : reduce_tasks_.at(scalar_type)) { + ncclRedOp_t op = pre_div_reduce_ ? ncclSum : ncclAvg; + if (pre_div_reduce_) { + at::cuda::CUDAStreamGuard guard(rs_stream_); + t.getSendBuf().div_(process_group_->getSize()); + } + + // inplace + ncclResult_t result = ncclAllReduce(t.getSendBuf().data_ptr(), + t.getSendBuf().data_ptr(), + t.getSendBuf().numel(), + get_nccl_data_type(scalar_type), + op, + nccl_comm_, + rs_stream_); + if (result != ncclSuccess) { throw std::runtime_error("NCCL AllReduce failed"); } + } + ncclGroupEnd(); + + { + at::cuda::CUDAStreamGuard guard(rs_stream_); + for (const ReduceTask& t : reduce_tasks_.at(scalar_type)) { + bool acc_grad = has_acc_grad_.at(t.getDSId()); + auto param = param_registry_->getParam(t.getDSId()); + auto grad_buf = param.getGradBuffer().flatten(); + + if (grad_buf.numel() == 0) { continue; } + + int64_t offset = param.getOffset(); + auto recv_buf = t.getSendBuf().flatten().index( + {torch::indexing::Slice(offset, offset + grad_buf.numel())}); + if (acc_grad) { + grad_buf.add_(recv_buf); + } else { + grad_buf.copy_(recv_buf); + } + has_acc_grad_[t.getDSId()] = true; + } + } + + reduce_buckets_->swap(scalar_type, rs_stream_, copy_stream_); + + // Not very sure if this is necessary + // Want to prevent grad tensor from being released before the copy is done + auto comp_stream = at::cuda::getCurrentCUDAStream(); + for (const ReduceTask& t : reduce_tasks_.at(scalar_type)) { + auto copy_done_event = rs_copy_done_events_.at(t.getDSId()); + copy_done_event->block(comp_stream); + } + reduce_tasks_[scalar_type].clear(); + } +}; + +static at::cuda::CUDAStream rs_stream = at::cuda::getStreamFromPool(true); +static at::cuda::CUDAStream copy_stream = at::cuda::getStreamFromPool(true); + +void register_graph_z1(long graph_id, const std::vector& ds_ids) +{ + executors[graph_id] = std::make_shared(process_group, + param_registry, + reduce_buckets, + ds_ids, + nccl_comm, + rs_stream, + copy_stream, + pre_div_reduce); +} + +void register_z1_param(long ds_id, + const std::vector& ds_shape, + at::Tensor ds_tensor, + at::Tensor grad_buffer, + int64_t offset) +{ + param_registry->registerParam(ds_id, ds_shape, ds_tensor, grad_buffer, false, offset, false); +} + +} // namespace dc diff --git a/csrc/compile/z1.h b/csrc/compile/z1.h new file mode 100644 index 000000000..a2f100565 --- /dev/null +++ b/csrc/compile/z1.h @@ -0,0 +1,18 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 + +// DeepSpeed Team + +#include "deepcompile.h" + +#pragma once + +namespace dc { + +void register_graph_z1(long graph_id, const std::vector& ds_ids); +void register_z1_param(long ds_id, + const std::vector& ds_shape, + at::Tensor ds_tensor, + at::Tensor grad_buffer, + int64_t offset); +} // namespace dc diff --git a/csrc/compile/z3.cpp b/csrc/compile/z3.cpp new file mode 100644 index 000000000..523bcf2c0 --- /dev/null +++ b/csrc/compile/z3.cpp @@ -0,0 +1,544 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 + +// DeepSpeed Team + +#include "z3.h" +#include "deepcompile.h" + +#define USE_C10D_NCCL + +#include +#include +#include +#include +#include +#include + +#include + +namespace dc { + +const size_t TIMEOUT_SYMMETRIC_MEMORY_BARRIER = 60000; + +class Z3CustomOpExecutor : public CustomOpExecutor { +public: + Z3CustomOpExecutor(c10::intrusive_ptr process_group, + std::shared_ptr param_registry, + std::shared_ptr reduce_buckets, + std::vector ds_ids, + ncclComm_t nccl_comm, + at::cuda::CUDAStream ag_stream, + at::cuda::CUDAStream rs_stream, + at::cuda::CUDAStream copy_stream, + at::cuda::CUDAStream offload_stream, + at::cuda::CUDAStream reload_stream, + bool pre_div_reduce) + : CustomOpExecutor(process_group, + param_registry, + reduce_buckets, + ds_ids, + nccl_comm, + rs_stream, + copy_stream, + pre_div_reduce), + ag_stream_(ag_stream), + offload_stream_(offload_stream), + reload_stream_(reload_stream) + { + for (long ds_id : ds_ids_) { + ag_comm_done_events_[ds_id] = + std::make_shared(cudaEventDisableTiming); + ag_comp_done_events_[ds_id] = + std::make_shared(cudaEventDisableTiming); + + param_use_count_[ds_id] = 0; + } + } + ~Z3CustomOpExecutor() {} + + void endBackward() override + { + if (param_updated_) { + for (auto& it : has_acc_grad_) { + it.second = false; + param_registry_->setValid(it.first, false); + } + } + + for (auto& it : reload_buffers_) { + it.second.record_stream(at::cuda::getCurrentCUDAStream()); + } + reload_buffers_.clear(); + } + + void launchAllGather(at::Tensor output_buf, + long ds_id, + c10::intrusive_ptr symm_mem) + { + const DSParam& param = param_registry_->getParam(ds_id); + const at::Tensor& ds_tensor = param.getDSTensor(); + + if (symm_mem == nullptr) { + ncclResult_t result = ncclAllGather(ds_tensor.contiguous().data_ptr(), + output_buf.data_ptr(), + ds_tensor.numel(), + get_nccl_data_type(ds_tensor.scalar_type()), + nccl_comm_, + ag_stream_); + + if (result != ncclSuccess) { throw std::runtime_error("NCCL AllGather failed"); } + } else { + at::cuda::CUDAStreamGuard guard(ag_stream_); + int world_size = process_group_->getSize(); + int rank = process_group_->getRank(); + + at::Tensor local_buf = + symm_mem->get_buffer(rank, ds_tensor.sizes(), ds_tensor.scalar_type(), 0); + local_buf.copy_(ds_tensor, true); + + symm_mem->barrier(0, TIMEOUT_SYMMETRIC_MEMORY_BARRIER); + auto chunks = output_buf.flatten().chunk(world_size); + for (int step = 0; step < world_size; step++) { + int remote_rank = (rank - step + world_size) % world_size; + auto src_buf = symm_mem->get_buffer( + remote_rank, ds_tensor.sizes(), ds_tensor.scalar_type(), 0); + chunks[remote_rank].copy_(src_buf.flatten(), true); + } + symm_mem->barrier(0, TIMEOUT_SYMMETRIC_MEMORY_BARRIER); + } + + param_registry_->registerGatheredParam(ds_id, output_buf); + param_registry_->setValid(ds_id, true); + } + + at::Tensor allgatherParam(long ds_id, + c10::intrusive_ptr symm_mem) + { + if (param_registry_->isValid(ds_id)) { return param_registry_->getGatheredParam(ds_id); } + + const DSParam& param = param_registry_->getParam(ds_id); + const at::Tensor& ds_tensor = param.getDSTensor(); + at::Tensor output_buf = param_registry_->hasGatheredParam(ds_id) + ? param_registry_->getGatheredParam(ds_id) + : torch::empty(param.getShape(), ds_tensor.options()); + + assert(hasKey(ag_comp_done_events_, ds_id)); + ag_comp_done_events_[ds_id]->record(); + ag_comp_done_events_[ds_id]->block(ag_stream_); + + launchAllGather(output_buf, ds_id, symm_mem); + + ag_comm_done_events_[ds_id]->record(ag_stream_); + return output_buf; + } + + void prefetchParamsFused(std::vector ds_ids, + c10::intrusive_ptr symm_mem) + { + std::vector invalid_ds_ids; + for (const auto& ds_id : ds_ids) { + if (!param_registry_->isValid(ds_id)) { invalid_ds_ids.push_back(ds_id); } + } + + std::unordered_map output_bufs; + for (long ds_id : invalid_ds_ids) { + const DSParam& param = param_registry_->getParam(ds_id); + if (param_registry_->hasGatheredParam(ds_id)) { + output_bufs[ds_id] = param_registry_->getGatheredParam(ds_id); + } else { + output_bufs[ds_id] = torch::empty(param.getShape(), param.getDSTensor().options()); + } + } + + for (long ds_id : invalid_ds_ids) { + ag_comp_done_events_[ds_id]->record(); + ag_comp_done_events_[ds_id]->block(ag_stream_); + } + + ncclGroupStart(); + for (long ds_id : invalid_ds_ids) { + assert(hasKey(output_bufs, ds_id)); + launchAllGather(output_bufs.at(ds_id), ds_id, symm_mem); + } + ncclGroupEnd(); + + for (long ds_id : invalid_ds_ids) { ag_comm_done_events_[ds_id]->record(ag_stream_); } + } + + void releaseParam(long ds_id, long n_users) + { + const DSParam& param = param_registry_->getParam(ds_id); + + assert(hasKey(param_use_count_, ds_id)); + if (param_use_count_[ds_id] == 0) { param_use_count_[ds_id] = n_users; } + param_use_count_[ds_id]--; + + if (param_use_count_[ds_id] == 0 && !param.isPersistent()) { + at::Tensor gathered_param = param_registry_->getGatheredParam(ds_id); + + if (gathered_param.defined()) { // gathered param is undefined while profiling + const auto options = gathered_param.options(); + at::Tensor empty_buffer = torch::empty({0}, options); + gathered_param.set_data(empty_buffer); + } + + param_registry_->unregisterGatheredParam(ds_id); + } + } + + at::Tensor waitAllgather(at::Tensor v, long ds_id) + { + assert(hasKey(ag_comm_done_events_, ds_id)); + ag_comm_done_events_[ds_id]->block(at::cuda::getCurrentCUDAStream()); + return v; + } + + void flushReduceBucket(at::ScalarType scalar_type) override + { + if (!hasKey(reduce_tasks_, scalar_type)) { return; } + + int64_t tmp_recv_numel = 0; + for (const ReduceTask& t : reduce_tasks_.at(scalar_type)) { + auto copy_done_event = rs_copy_done_events_.at(t.getDSId()); + copy_done_event->block(rs_stream_); + + if (has_acc_grad_.at(t.getDSId())) { + tmp_recv_numel += param_registry_->getParam(t.getDSId()).getGradBuffer().numel(); + } + } + + at::Tensor tmp_recv_buf = at::Tensor(); + if (tmp_recv_numel > 0) { + at::cuda::CUDAStreamGuard guard(rs_stream_); + tmp_recv_buf = torch::empty({tmp_recv_numel}, + at::TensorOptions().dtype(scalar_type).device(at::kCUDA)); + } + + ncclGroupStart(); + int64_t offset = 0; + for (const ReduceTask& t : reduce_tasks_.at(scalar_type)) { + auto recv_buf = param_registry_->getParam(t.getDSId()).getGradBuffer(); + + bool acc_grad = has_acc_grad_.at(t.getDSId()); + + if (acc_grad) { + recv_buf = + tmp_recv_buf.index({torch::indexing::Slice(offset, offset + recv_buf.numel())}); + } + + ncclRedOp_t op = pre_div_reduce_ ? ncclSum : ncclAvg; + if (pre_div_reduce_) { + at::cuda::CUDAStreamGuard guard(rs_stream_); + t.getSendBuf().div_(process_group_->getSize()); + } + ncclResult_t result = ncclReduceScatter(t.getSendBuf().data_ptr(), + recv_buf.data_ptr(), + recv_buf.numel(), + get_nccl_data_type(scalar_type), + op, + nccl_comm_, + rs_stream_); + if (result != ncclSuccess) { throw std::runtime_error("NCCL ReduceScatter failed"); } + + if (acc_grad) { offset += recv_buf.numel(); } + } + ncclGroupEnd(); + + { + at::cuda::CUDAStreamGuard guard(rs_stream_); + int64_t offset = 0; + for (const ReduceTask& t : reduce_tasks_.at(scalar_type)) { + bool acc_grad = has_acc_grad_.at(t.getDSId()); + + if (acc_grad) { + auto recv_buf = param_registry_->getParam(t.getDSId()).getGradBuffer(); + recv_buf.add_(tmp_recv_buf.index( + {torch::indexing::Slice(offset, offset + recv_buf.numel())})); + offset += recv_buf.numel(); + } + has_acc_grad_[t.getDSId()] = true; + } + } + + reduce_buckets_->swap(scalar_type, rs_stream_, copy_stream_); + + // Not very sure if this is necessary + // Want to prevent grad tensor from being released before the copy is done + auto comp_stream = at::cuda::getCurrentCUDAStream(); + for (const ReduceTask& t : reduce_tasks_.at(scalar_type)) { + auto copy_done_event = rs_copy_done_events_.at(t.getDSId()); + copy_done_event->block(comp_stream); + } + reduce_tasks_[scalar_type].clear(); + + if (tmp_recv_numel > 0) { tmp_recv_buf.record_stream(rs_stream_); } + } + + at::Tensor offloadTensor(at::Tensor tensor, long id) + { + if (!hasKey(offload_events_, id)) { + offload_events_[id] = std::make_shared(cudaEventDisableTiming); + offload_comp_done_events_[id] = + std::make_shared(cudaEventDisableTiming); + + const auto options = at::TensorOptions().pinned_memory(true).device(torch::kCPU); + offload_buffers_[id] = at::empty_like(tensor, options); + } + + offload_comp_done_events_[id]->record(); + offload_comp_done_events_[id]->block(offload_stream_); + { + at::cuda::CUDAStreamGuard guard(offload_stream_); + offload_buffers_.at(id).copy_(tensor, true); + } + + tensor.record_stream(offload_stream_); + + offload_events_[id]->record(offload_stream_); + assert(hasKey(offload_buffers_, id)); + return offload_buffers_.at(id); + } + + at::Tensor reloadTensor(at::Tensor tensor, long id) + { + if (!hasKey(reload_events_, id)) { + reload_events_[id] = std::make_shared(cudaEventDisableTiming); + } + + assert(hasKey(offload_buffers_, id)); + offload_events_[id]->block(reload_stream_); + + at::Tensor ten; + { + at::cuda::CUDAStreamGuard guard(reload_stream_); + + assert(hasKey(offload_buffers_, id)); + at::Tensor buf = offload_buffers_.at(id); + const auto options = at::TensorOptions().device(torch::kCUDA); + ten = at::empty_like(buf, options); + ten.copy_(buf, true); + + reload_buffers_[id] = ten; + } + + reload_events_[id]->record(reload_stream_); + return ten; + } + + at::Tensor waitOffload(at::Tensor tensor, long id) + { + assert(hasKey(offload_events_, id)); + offload_events_[id]->block(at::cuda::getCurrentCUDAStream()); + + assert(hasKey(offload_buffers_, id)); + return offload_buffers_.at(id); + } + + at::Tensor waitReload(at::Tensor tensor, long id) + { + assert(hasKey(reload_events_, id)); + reload_events_[id]->block(at::cuda::getCurrentCUDAStream()); + + assert(hasKey(reload_buffers_, id)); + auto ten = reload_buffers_.at(id); + + // We can't release here because the tensor is still being used + // We will need "freeReloadedTensor" after the last user of the tensor to call + // ".record_stream". As it is a bit complicated, we clear the buffer and do at the end of + // the backward pass for now. reload_buffers_.erase(id); + return ten; + } + + void offloadParameter(at::Tensor tensor, long ds_id) { param_registry_->offload(ds_id); } + void reloadParameter(at::Tensor tensor, long ds_id) { param_registry_->reload(ds_id); } + + bool hasReloadBuffer(long id) { return hasKey(reload_buffers_, id); } + + bool hasParam(long ds_id) const { return hasKey(has_acc_grad_, ds_id); } + +private: + at::cuda::CUDAStream ag_stream_; + at::cuda::CUDAStream offload_stream_; + at::cuda::CUDAStream reload_stream_; + + std::unordered_map> ag_comp_done_events_; + std::unordered_map> ag_comm_done_events_; + + std::unordered_map> offload_events_; + std::unordered_map> offload_comp_done_events_; + std::unordered_map> reload_events_; + std::unordered_map offload_buffers_; + std::unordered_map reload_buffers_; + + std::unordered_map param_use_count_; +}; + +static at::cuda::CUDAStream ag_stream = at::cuda::getStreamFromPool(true); +static at::cuda::CUDAStream rs_stream = at::cuda::getStreamFromPool(true); +static at::cuda::CUDAStream copy_stream = at::cuda::getStreamFromPool(true); +static at::cuda::CUDAStream offload_stream = at::cuda::getStreamFromPool(true); +static at::cuda::CUDAStream reload_stream = at::cuda::getStreamFromPool(true); + +void register_graph_z3(long graph_id, const std::vector& ds_ids) +{ + executors[graph_id] = std::make_shared(process_group, + param_registry, + reduce_buckets, + ds_ids, + nccl_comm, + ag_stream, + rs_stream, + copy_stream, + offload_stream, + reload_stream, + pre_div_reduce); +} + +void register_z3_param(long ds_id, + const std::vector& ds_shape, + at::Tensor ds_tensor, + at::Tensor grad_buffer, + bool persistent) +{ + param_registry->registerParam(ds_id, ds_shape, ds_tensor, grad_buffer, true, 0, persistent); + if (persistent) { param_registry->registerGatheredParam(ds_id, ds_tensor); } +} + +at::Tensor allgather_param(at::Tensor param_tensor, long graph_id, long ds_id) +{ + auto executor = getExecutor(graph_id, executors); + + if (sync_before_allgather) { c10::cuda::device_synchronize(); } + auto ret = executor->allgatherParam(ds_id, symm_mem); + if (sync_after_allgather) { c10::cuda::device_synchronize(); } + return ret; +} + +void set_persistent(long ds_id) +{ + param_registry->setPersistent(ds_id, true); + + // Allocate buffer here + // Memory fragmentation will be more severe if we allocate in forward/backward + for (auto& it : executors) { + if (it.second->hasParam(ds_id)) { + auto executor = getExecutor(it.first, executors); + executor->allgatherParam(ds_id, symm_mem); + } + } +} + +void prefetch_params_fused(long graph_id, + const std::vector params, + const std::vector& ds_ids) +{ + auto executor = getExecutor(graph_id, executors); + executor->prefetchParamsFused(ds_ids, symm_mem); +} + +void prefetch_params_fused_meta(long graph_id, + const std::vector params, + const std::vector& ds_ids) +{ +} + +// for profiling +void invalidate_gathered_param(long ds_id) +{ + const DSParam& param = param_registry->getParam(ds_id); + if (param.isPersistent()) { return; } + + param_registry->unregisterGatheredParam(ds_id); + param_registry->registerGatheredParam(ds_id, at::Tensor()); +} + +void clear_all_gathered_params() +{ + for (const auto& it : param_registry->getParams()) { + long ds_id = it.first; + const DSParam& param = param_registry->getParam(ds_id); + if (param.isPersistent()) { continue; } + if (param_registry->hasGatheredParam(ds_id)) { + param_registry->unregisterGatheredParam(ds_id); + } + } +} + +at::Tensor allgather_param_meta(at::Tensor param_tensor, long graph_id, long ds_id) +{ + const DSParam& param = param_registry->getParam(ds_id); + auto options = param.getDSTensor().options().device(c10::kMeta); + at::Tensor output_buf = torch::empty(param.getShape(), options); + return output_buf; +} + +at::Tensor release_param(at::Tensor dummy, long graph_id, long ds_id, long n_users) +{ + auto executor = getExecutor(graph_id, executors); + executor->releaseParam(ds_id, n_users); + + if (clone_custom_op_output) { return dummy.clone(); } + return dummy; +} + +at::Tensor release_param_meta(at::Tensor dummy, long graph_id, long ds_id, long n_users) +{ + return dummy; +} + +at::Tensor wait_allgather(at::Tensor v, long graph_id, long ds_id) +{ + auto executor = getExecutor(graph_id, executors); + executor->waitAllgather(v, ds_id); + return v; +} + +at::Tensor wait_allgather_meta(at::Tensor v, long graph_id, long ds_id) { return v; } + +at::Tensor offload_tensor(at::Tensor tensor, long graph_id, long id) +{ + auto executor = getExecutor(graph_id, executors); + return executor->offloadTensor(tensor, id); +} + +at::Tensor reload_tensor(at::Tensor tensor, long graph_id, long id) +{ + auto executor = getExecutor(graph_id, executors); + return executor->reloadTensor(tensor, id); +} + +at::Tensor wait_offload(at::Tensor tensor, long graph_id, long id) +{ + auto executor = getExecutor(graph_id, executors); + return executor->waitOffload(tensor, id); +} + +at::Tensor wait_reload(at::Tensor tensor, long graph_id, long id) +{ + auto executor = getExecutor(graph_id, executors); + if (profile && !executor->hasReloadBuffer(id)) { return tensor; } + return executor->waitReload(tensor, id); +} + +at::Tensor test_call(at::Tensor a) +{ + std::cout << "test_call" << std::endl; + return a; +} + +void reload_parameter(at::Tensor tensor, long graph_id, long ds_id) +{ + auto executor = getExecutor(graph_id, executors); + executor->reloadParameter(tensor, ds_id); +} + +void offload_parameter(at::Tensor tensor, long graph_id, long ds_id) +{ + auto executor = getExecutor(graph_id, executors); + executor->offloadParameter(tensor, ds_id); +} +void reload_parameter_meta(at::Tensor param_tensor, long graph_id, long ds_id) {} +void offload_parameter_meta(at::Tensor tensor, long graph_id, long ds_id) {} + +} // namespace dc diff --git a/csrc/compile/z3.h b/csrc/compile/z3.h new file mode 100644 index 000000000..1031f0c84 --- /dev/null +++ b/csrc/compile/z3.h @@ -0,0 +1,48 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 + +// DeepSpeed Team + +#include "deepcompile.h" + +#pragma once + +namespace dc { + +void register_graph_z3(long graph_id, const std::vector& ds_ids); +void register_graph_ops_z3(long graph_id, + const std::vector& op_names, + const std::vector& n_args); +void register_bwd_graph_ops_z3(long graph_id, + const std::vector& op_names, + const std::vector& n_args); +void register_z3_param(long ds_id, + const std::vector& ds_shape, + at::Tensor ds_tensor, + at::Tensor grad_buffer, + bool persistent); +at::Tensor allgather_param(at::Tensor param_tensor, long graph_id, long ds_id); +void set_persistent(long ds_id); +void prefetch_params_fused(long graph_id, + const std::vector params, + const std::vector& ds_ids); +void prefetch_params_fused_meta(long graph_id, + const std::vector params, + const std::vector& ds_ids); +// for profiling +void invalidate_gathered_param(long ds_id); +void clear_all_gathered_params(); +at::Tensor allgather_param_meta(at::Tensor param_tensor, long graph_id, long ds_id); +at::Tensor release_param(at::Tensor dummy, long graph_id, long ds_id, long n_users); +at::Tensor release_param_meta(at::Tensor dummy, long graph_id, long ds_id, long n_users); +at::Tensor wait_allgather(at::Tensor v, long graph_id, const long ds_id); +at::Tensor wait_allgather_meta(at::Tensor v, long graph_id, long ds_id); +at::Tensor offload_tensor(at::Tensor tensor, long graph_id, long id); +at::Tensor reload_tensor(at::Tensor tensor, long graph_id, long id); +at::Tensor wait_offload(at::Tensor tensor, long graph_id, long id); +at::Tensor wait_reload(at::Tensor tensor, long graph_id, long id); +void reload_parameter(at::Tensor tensor, long graph_id, long id); +void offload_parameter(at::Tensor tensor, long graph_id, long id); +void reload_parameter_meta(at::Tensor tensor, long graph_id, long id); +void offload_parameter_meta(at::Tensor tensor, long graph_id, long id); +} // namespace dc diff --git a/csrc/includes/deepcompile.h b/csrc/includes/deepcompile.h new file mode 100644 index 000000000..57c8fb891 --- /dev/null +++ b/csrc/includes/deepcompile.h @@ -0,0 +1,576 @@ +// 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 + +#define USE_C10D_NCCL + +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +namespace dc { + +template +static bool hasKey(const std::unordered_map& map, const K& key) +{ + return map.find(key) != map.end(); +} + +template +inline std::string to_string(const T& v) +{ + std::stringstream ss; + ss << v; + return ss.str(); +} + +template +size_t productDim(const L& dim) +{ + size_t prod = 1; + for (auto d : dim) { prod *= d; } + return prod; +} + +template +std::string join_as_str(const T& v, const char* delim = ",", const size_t maxlen = 0) +{ + std::stringstream ss; + + if (!v.empty()) { + auto it = v.begin(); + ss << to_string(*it); + it++; + for (; it != v.end(); ++it) { + if (delim) ss << delim; + ss << to_string(*it); + } + } + + std::string s = ss.str(); + if (maxlen > 0 && s.length() > maxlen) { s = s.substr(0, maxlen) + " ..."; } + + return "[" + s + "]"; +} + +template +std::string tensorPtrToString(T* ptr, size_t size, size_t str_len = 100) +{ + std::vector vals; + for (size_t i = 0; i < size; i++) { + vals.push_back(*ptr); + ptr++; + } + return join_as_str(vals, ",", str_len); +} + +std::string tensorPtrToString(void* ptr, + size_t size, + c10::ScalarType datatype, + size_t max_elem = 20, + size_t max_str_len = 100); + +std::string tensorToString(const at::Tensor& t, size_t max_elem = 20, size_t max_str_len = 100); + +std::string tensorDimToString(const at::Tensor& t); + +at::Tensor test_call(at::Tensor param); + +extern c10::intrusive_ptr process_group; +extern c10::intrusive_ptr symm_mem; +extern ncclComm_t nccl_comm; +extern bool use_symm_mem; +extern bool clone_custom_op_output; +extern bool profile; +extern bool pre_div_reduce; + +extern bool sync_before_reduce; // for debugging +extern bool sync_after_reduce; // for debugging +extern bool sync_before_allgather; // for debugging +extern bool sync_after_allgather; // for debugging + +std::vector sizes_to_int_vector(at::IntArrayRef sizes); +void enable_profiling(bool enable); +bool is_profiling(); + +c10::intrusive_ptr getSymmMemWorkspace(int64_t size); +void lazy_init_symm_memory(); +ncclDataType_t get_nccl_data_type(at::ScalarType scalar_type); +void cleanup(); + +class ReduceTask { +public: + ReduceTask(long ds_id, at::Tensor grad, at::Tensor send_buf) + : ds_id_(ds_id), grad_(std::move(grad)), send_buf_(std::move(send_buf)) + { + } + + long getDSId() const { return ds_id_; } + at::Tensor getSendBuf() const { return send_buf_; } + +private: + long ds_id_; + at::Tensor grad_; + at::Tensor send_buf_; +}; + +class ReduceBucket { +public: + ReduceBucket(int64_t size, at::ScalarType scalar_type) : size_(size), scalar_type_(scalar_type) + { + buffer_ = torch::empty({size}, at::TensorOptions().dtype(scalar_type).device(at::kCUDA)); + offset_ = 0; + } + + int64_t getSize() const { return size_; } + int64_t getOffset() const { return offset_; } + at::Tensor getBuffer() const { return buffer_; } + at::ScalarType getScalarType() const { return scalar_type_; } + + void reserve(int64_t size) + { + if (size > size_) { + buffer_ = + torch::empty({size}, at::TensorOptions().dtype(scalar_type_).device(at::kCUDA)); + size_ = size; + } + } + + at::Tensor allocate(int64_t numel) + { + if (offset_ + numel > size_) { + throw std::runtime_error("Buffer size exceeds the reduce bucket size"); + } + + at::Tensor result = buffer_.index({torch::indexing::Slice(offset_, offset_ + numel)}); + offset_ += numel; + return result; + } + + bool shouldFlush(int64_t numel) { return offset_ > 0 && offset_ + numel > size_; } + + void reset() { offset_ = 0; } + +private: + int64_t size_; + int64_t offset_; + at::Tensor buffer_; + at::ScalarType scalar_type_; +}; + +class DoubleBufferedReduceBucket { +public: + DoubleBufferedReduceBucket(int64_t initial_bucket_size, bool enable_double_buffer) + : initial_bucket_size_(initial_bucket_size), enable_double_buffer_(enable_double_buffer) + { + } + + void swap(at::ScalarType scalar_type, + at::cuda::CUDAStream rs_stream, + at::cuda::CUDAStream copy_stream) + { + assert(hasKey(current_buffer_, scalar_type)); + assert(hasKey(current_buffer_events_, scalar_type)); + + current_buffer_.at(scalar_type)->reset(); + current_buffer_events_.at(scalar_type)->record(rs_stream); + + if (enable_double_buffer_) { + assert(hasKey(shadow_buffer_, scalar_type)); + assert(hasKey(shadow_buffer_events_, scalar_type)); + + auto tmp = current_buffer_.at(scalar_type); + current_buffer_[scalar_type] = shadow_buffer_.at(scalar_type); + shadow_buffer_[scalar_type] = tmp; + + auto tmp_event = current_buffer_events_.at(scalar_type); + current_buffer_events_[scalar_type] = shadow_buffer_events_.at(scalar_type); + shadow_buffer_events_[scalar_type] = tmp_event; + } + } + + std::shared_ptr getBuffer(at::ScalarType scalar_type) + { + if (!hasKey(current_buffer_, scalar_type)) { + current_buffer_[scalar_type] = + std::make_shared(initial_bucket_size_, scalar_type); + current_buffer_events_[scalar_type] = + std::make_shared(cudaEventDisableTiming); + + if (enable_double_buffer_) { + shadow_buffer_[scalar_type] = + std::make_shared(initial_bucket_size_, scalar_type); + shadow_buffer_events_[scalar_type] = + std::make_shared(cudaEventDisableTiming); + } + } + + return current_buffer_.at(scalar_type); + } + + std::shared_ptr getEvent(at::ScalarType scalar_type) + { + assert(hasKey(current_buffer_events_, scalar_type)); + return current_buffer_events_.at(scalar_type); + } + + void clear() + { + current_buffer_.clear(); + shadow_buffer_.clear(); + current_buffer_events_.clear(); + shadow_buffer_events_.clear(); + } + +private: + int64_t initial_bucket_size_; + bool enable_double_buffer_; + std::unordered_map> current_buffer_; + std::unordered_map> shadow_buffer_; + std::unordered_map> current_buffer_events_; + std::unordered_map> shadow_buffer_events_; +}; + +class DSParam { +public: + DSParam(long id, + std::vector ds_shape, + at::Tensor ds_tensor, + at::Tensor grad_buffer, + bool partitioned, + int64_t offset, // for Z1 + bool persistent // for Z3 + ) + : id_(id), + shape_(std::move(ds_shape)), + ds_tensor_(ds_tensor), + grad_buffer_(grad_buffer), + partitioned_(partitioned), + offset_(offset), + persistent_(persistent), + offload_stream_(at::cuda::getStreamFromPool()), + reload_stream_(at::cuda::getStreamFromPool()) + { + } + + long getId() const { return id_; } + std::vector getShape() const { return shape_; } + at::Tensor getDSTensor() const + { + // If the reload event exists and is complete, return the reloaded tensor (if defined) + if (reload_done_event_) { + if (!reload_done_event_->query()) { + reload_done_event_->block(at::cuda::getCurrentCUDAStream()); + } + if (ds_reload_tensor_.defined()) { return ds_reload_tensor_; } + } + // Otherwise, if an offload event exists, wait for it to complete + if (offload_done_event_) { + if (!offload_done_event_->query()) { + offload_done_event_->block(at::cuda::getCurrentCUDAStream()); + } + } + return ds_tensor_; + } + at::Tensor getGradBuffer() const { return grad_buffer_; } + bool isPartitioned() const { return partitioned_; } + int64_t getOffset() const { return offset_; } + void setPersistent(bool persistent) { persistent_ = persistent; } + bool isPersistent() const { return persistent_; } + + void offload() + { + // If a reloaded tensor exists, offload its data back to ds_tensor_ + if (ds_reload_tensor_.defined()) { + auto comp_stream = at::cuda::getCurrentCUDAStream(); + comp_done_event_ = std::make_shared(cudaEventDisableTiming); + // Record completion and wait on the offload stream + comp_done_event_->record(comp_stream); + comp_done_event_->block(offload_stream_); + offload_done_event_ = std::make_shared(cudaEventDisableTiming); + + { + at::cuda::CUDAStreamGuard guard(offload_stream_); + ds_tensor_.copy_(ds_reload_tensor_, /*non_blocking=*/true); + ds_reload_tensor_.reset(); // Clear the reloaded tensor + offload_done_event_->record(offload_stream_); + } + // Reset the reload event to indicate that no valid reload is present. + if (reload_done_event_) { reload_done_event_.reset(); } + } + } + + void reload() + { + // Reload only if the current ds_tensor_ is on CPU + if (ds_tensor_.device().is_cpu()) { + auto comp_stream = at::cuda::getCurrentCUDAStream(); + comp_done_event_ = std::make_shared(cudaEventDisableTiming); + // Record and wait on the reload stream + comp_done_event_->record(comp_stream); + comp_done_event_->block(reload_stream_); + reload_done_event_ = std::make_shared(cudaEventDisableTiming); + + { + at::cuda::CUDAStreamGuard guard(reload_stream_); + ds_reload_tensor_ = + at::empty_like(ds_tensor_, ds_tensor_.options().device(torch::kCUDA)); + ds_reload_tensor_.copy_(ds_tensor_, /*non_blocking=*/true); + reload_done_event_->record(reload_stream_); + } + // Reset offload_done_event if it exists to clear any stale offload state. + if (offload_done_event_) { offload_done_event_.reset(); } + } + } + +private: + long id_; + std::vector shape_; + at::Tensor ds_tensor_; + at::Tensor ds_reload_tensor_; + at::Tensor grad_buffer_; + bool partitioned_; + int64_t offset_; // for Z1 + bool persistent_; // for Z3 + mutable bool is_reloaded = false; + + at::cuda::CUDAStream offload_stream_; + at::cuda::CUDAStream reload_stream_; + std::shared_ptr comp_done_event_; + std::shared_ptr offload_done_event_; + std::shared_ptr reload_done_event_; +}; + +class DSParamRegistry { +public: + DSParamRegistry() {} + ~DSParamRegistry() {} + + void registerParam(long ds_id, + const std::vector& ds_shape, + at::Tensor ds_tensor, + at::Tensor grad_buffer, + bool partitioned, + int64_t offset, // for Z1 + bool persistent // for Z3 + ) + { + grad_buffer.zero_(); + params_.emplace( + ds_id, + DSParam(ds_id, ds_shape, ds_tensor, grad_buffer, partitioned, offset, persistent)); + valid_[ds_id] = false; + } + + void registerGatheredParam(long ds_id, at::Tensor ds_tensor) + { + gathered_params_.emplace(ds_id, ds_tensor); + } + + void unregisterGatheredParam(long ds_id) + { + assert(hasKey(gathered_params_, ds_id)); + gathered_params_.erase(ds_id); + valid_[ds_id] = false; + } + + const std::unordered_map& getParams() const { return params_; } + + const DSParam& getParam(long ds_id) const { return params_.at(ds_id); } + const size_t getNumParams() const { return params_.size(); } + const at::Tensor& getGatheredParam(long ds_id) const + { + assert(hasKey(gathered_params_, ds_id)); + return gathered_params_.at(ds_id); + } + bool hasGatheredParam(long ds_id) const { return hasKey(gathered_params_, ds_id); } + void setPersistent(long ds_id, bool persistent) { params_.at(ds_id).setPersistent(persistent); } + void offload(long ds_id) { params_.at(ds_id).offload(); } + void reload(long ds_id) { params_.at(ds_id).reload(); } + + void setValid(long ds_id, bool valid) { valid_[ds_id] = valid; } + bool isValid(long ds_id) const + { + assert(hasKey(valid_, ds_id)); + return valid_.at(ds_id); + } + +private: + std::unordered_map params_; + std::unordered_map gathered_params_; + std::unordered_map valid_; +}; + +class CustomOpExecutor { +public: + CustomOpExecutor(c10::intrusive_ptr process_group, + std::shared_ptr param_registry, + std::shared_ptr reduce_buckets, + std::vector ds_ids, + ncclComm_t nccl_comm, + at::cuda::CUDAStream rs_stream, + at::cuda::CUDAStream copy_stream, + bool pre_div_reduce) + : process_group_(process_group), + param_registry_(std::move(param_registry)), + reduce_buckets_(std::move(reduce_buckets)), + ds_ids_(std::move(ds_ids)), + nccl_comm_(nccl_comm), + rs_stream_(rs_stream), + copy_stream_(copy_stream), + pre_div_reduce_(pre_div_reduce) + { + for (long ds_id : ds_ids_) { + has_acc_grad_[ds_id] = false; + + rs_comp_done_events_[ds_id] = + std::make_shared(cudaEventDisableTiming); + rs_copy_done_events_[ds_id] = + std::make_shared(cudaEventDisableTiming); + } + reduce_counter_ = ds_ids_.size(); + } + ~CustomOpExecutor() {} + + virtual void startForward() {} + + virtual void endForward() {} + + virtual void startBackward(bool update) { param_updated_ = update; } + + virtual void endBackward() {} + + at::Tensor reduceGrad(at::Tensor grad_tensor, long ds_id) + { + int world_size = process_group_->getSize(); + const DSParam& param = param_registry_->getParam(ds_id); + const auto scalar_type = grad_tensor.scalar_type(); + std::shared_ptr reduce_bucket = reduce_buckets_->getBuffer(scalar_type); + + auto comp_stream = at::cuda::getCurrentCUDAStream(); + + if (reduce_bucket->shouldFlush(grad_tensor.numel())) { + int rank = process_group_->getRank(); + + flushReduceBucket(scalar_type); + + // reduce_bucket is swapped in flushReduceBucket if double buffering is enabled + reduce_bucket = reduce_buckets_->getBuffer(scalar_type); + } + + if (grad_tensor.numel() > reduce_bucket->getSize()) { + // extend buckets + at::cuda::stream_synchronize(rs_stream_); + reduce_bucket->reserve(grad_tensor.numel()); + } + + at::Tensor reduce_in_buffer = reduce_bucket->allocate(grad_tensor.numel()); + + // This ensures the order of reduce_scatter -> copy + // Without this block, copy may start while reduce_scatter is still running + reduce_buckets_->getEvent(scalar_type)->block(comp_stream); + auto copy_src = grad_tensor.contiguous().view({-1}).detach(); + // keep references to copy src + reduce_tasks_[scalar_type].emplace_back(ds_id, copy_src, reduce_in_buffer); + + // computation must be done before copy + rs_comp_done_events_[ds_id]->record(comp_stream); + rs_comp_done_events_[ds_id]->block(copy_stream_); + { + at::cuda::CUDAStreamGuard guard(copy_stream_); + reduce_in_buffer.copy_(copy_src, true); + rs_copy_done_events_[ds_id]->record(copy_stream_); + } + + reduce_counter_--; + + if (reduce_counter_ == 0) { + flushAllReduceBuckets(); + + reduce_counter_ = ds_ids_.size(); + + // This synchronization ensures all of reduce calls are done before optimizer's step. + at::cuda::stream_synchronize(rs_stream_); + + endBackward(); + } + + return at::Tensor(); + } + + bool hasParam(long ds_id) const { return hasKey(has_acc_grad_, ds_id); } + +protected: + c10::intrusive_ptr process_group_; + std::shared_ptr param_registry_; + std::shared_ptr reduce_buckets_; + std::vector ds_ids_; + ncclComm_t nccl_comm_; + at::cuda::CUDAStream rs_stream_; + at::cuda::CUDAStream copy_stream_; + + std::unordered_map> rs_comp_done_events_; + std::unordered_map> rs_copy_done_events_; + + size_t reduce_counter_ = 0; + bool param_updated_ = false; + std::unordered_map> reduce_tasks_; + std::unordered_map has_acc_grad_; + bool pre_div_reduce_; + + virtual void flushReduceBucket(at::ScalarType scalar_type) = 0; + + void flushAllReduceBuckets() + { + for (const auto& it : reduce_tasks_) { flushReduceBucket(it.first); } + } +}; + +template +std::shared_ptr getExecutor(long graph_id, + const std::unordered_map>& executors) +{ + assert(hasKey(executors, graph_id)); + if (auto executor = std::dynamic_pointer_cast(executors.at(graph_id))) { return executor; } + throw std::runtime_error("Invalid executor type"); +} + +extern std::shared_ptr param_registry; +extern std::unordered_map> executors; +extern std::shared_ptr reduce_buckets; + +at::Tensor reduce_grad(at::Tensor grad_tensor, long graph_id, long ds_id); +at::Tensor reduce_grad_meta(at::Tensor grad_tensor, long graph_id, long ds_id); +void free_tensors(std::vector tensors); +void free_tensors_meta(std::vector tensors); + +void init(c10::intrusive_ptr pg, + int64_t initial_reduce_bucket_size, + bool enable_double_buffer, + bool _use_symm_mem, + bool _clone_custom_op_output, + bool _sync_before_reduce, + bool _sync_after_reduce, + bool _sync_before_allgather, + bool _sync_after_allgather); +void reset(); +void cleanup(); + +void start_forward(); +void end_forward(); +void start_backward(bool update); + +} // namespace dc diff --git a/deepspeed/comm/comm.py b/deepspeed/comm/comm.py index 800bc6078..5a5fc6c42 100755 --- a/deepspeed/comm/comm.py +++ b/deepspeed/comm/comm.py @@ -621,6 +621,17 @@ def initialize_mesh_device(mesh_shape, mesh_dim_names): return mesh_device +def enable_symm_mem_for_group(group_name: str): + global cdb + assert cdb is not None and cdb.is_initialized( + ), 'DeepSpeed backend not set, please initialize it using init_process_group()' + + if hasattr(cdb, 'enable_symm_mem_for_group'): + cdb.enable_symm_mem_for_group(group_name) + else: + raise RuntimeError(f"Backend {cdb.name} does not support symmetric memory initialization") + + # Main DeepSpeed Comms. public API. def init_distributed(dist_backend=None, auto_mpi_discovery=True, diff --git a/deepspeed/comm/torch.py b/deepspeed/comm/torch.py index efa0640fb..d955d56f5 100755 --- a/deepspeed/comm/torch.py +++ b/deepspeed/comm/torch.py @@ -409,6 +409,13 @@ class TorchBackend(Backend): mesh_shape, mesh_dim_names=mesh_dim_names) + def enable_symm_mem_for_group(self, group_name): + if not required_torch_version(min_version=2.5): + raise RuntimeError(f"Torch version must be 2.5 or higher to use symmetric memory. " + f"Current version: {torch.__version__}") + from torch.distributed._symmetric_memory import enable_symm_mem_for_group + return enable_symm_mem_for_group(group_name) + # 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/compile/__init__.py b/deepspeed/compile/__init__.py new file mode 100644 index 000000000..208299fb8 --- /dev/null +++ b/deepspeed/compile/__init__.py @@ -0,0 +1,4 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team diff --git a/deepspeed/compile/backend.py b/deepspeed/compile/backend.py new file mode 100644 index 000000000..ee33447aa --- /dev/null +++ b/deepspeed/compile/backend.py @@ -0,0 +1,279 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from typing import Dict, List, Callable +import time +import gc + +import torch +from torch.fx import Graph, GraphModule + +try: + import torch.utils._pytree as pytree + import torch._dynamo + import torch._inductor.scheduler + from functorch.compile import make_boxed_func + from torch._functorch.aot_autograd import aot_module_simplified + from torch._subclasses.fake_tensor import unset_fake_temporarily +except ImportError: + pass + +from deepspeed.accelerator import get_accelerator + +from .fx import add_free_activations +from .graph_param import DSGraphParamManager +from .profilers import ProfilingResult +from .profilers.graph_profile import MemoryProfilingInterpreter +from .patch_compiled_func import patch_compiled_func, unpatch_compiled_func, get_backward_inputs +from .util import get_input_nodes, get_activation_node_names, get_index_by_graph_id, get_deepcompile_handle, log_rank0 +from .partitioner import get_wrapped_partitioner +from .inductor import register_custom_ops, patch_create_aot_dispatcher_function + +remaining_schedule = None +next_pass_step = -1 +next_passes = None +current_passes = None + +param_manager: Dict[int, DSGraphParamManager] = {} +graph_order = [] +profiling_results: Dict[int, ProfilingResult] = {} +opt_pass_times = [] + +opt_passes = {} + +fwd_real_inputs = [] +remaining_bwd_compile_count = 0 + + +def register_compile_pass(name: str, opt_pass_fn): + opt_passes[name] = opt_pass_fn + + +def init_schedule(schedule): + + assert isinstance(schedule, list), f"schedule should be a list, but got {type(schedule)}" + + for step, passes in schedule: + assert isinstance(step, int), f"Each step in schedule should be an integer, but got {type(step)}" + assert isinstance(passes, list), f"Passes at a certain step should be a list, but got {type(passes)}" + + global remaining_schedule + remaining_schedule = schedule + + +def launch_compile_passes(global_steps: int): + global next_pass_step, next_passes + + if len(remaining_schedule) > 0 and global_steps == remaining_schedule[0][0]: + _, next_passes = remaining_schedule.pop(0) + log_rank0(f"Launching compile passes: global_steps={global_steps} passes={next_passes}", True) + + torch._dynamo.reset() + get_deepcompile_handle().reset() + patch_compiled_func() + graph_order.clear() + profiling_results.clear() + param_manager.clear() + + +def set_time_and_tensor_size(graph_id, graph: Graph, mem, bwd, profiling_results): + node_time = [] + tensor_sizes = [] + + for n in graph.nodes: + node_time.append((n.name, n.meta["device_time"] if "device_time" in n.meta else 0.0, + n.meta["wall_time"] if "wall_time" in n.meta else 0.0)) + tensor_sizes.append((n.name, n.meta["tensor_size"] if "tensor_size" in n.meta else 0)) + + if bwd: + profiling_results[graph_id].bwd_graph = graph + profiling_results[graph_id].bwd_time = node_time + profiling_results[graph_id].bwd_tensor_sizes = tensor_sizes + profiling_results[graph_id].bwd_mem = mem + else: + profiling_results[graph_id].fwd_graph = graph + profiling_results[graph_id].fwd_time = node_time + profiling_results[graph_id].fwd_tensor_sizes = tensor_sizes + profiling_results[graph_id].fwd_mem = mem + + +def run_opt_passes(opt_passes: List[Callable], + gm: GraphModule, + graph_id: int, + graph_order: List[int], + profiling_results, + create_inputs_fn, + mem_budget: float, + param_manager, + bwd: bool, + debug_log=False) -> None: + + with unset_fake_temporarily(): + get_accelerator().synchronize() + gc.collect() + get_accelerator().empty_cache() + + for i, opt_pass_fn in enumerate(opt_passes): + log_rank0(f"Running opt pass {i} for graph {graph_id}. bwd={bwd}", enable=debug_log) + + gm_new = opt_pass_fn(gm, graph_id, graph_order, profiling_results, create_inputs_fn, mem_budget, param_manager, + bwd) + if gm_new is not None: + gm = gm_new + gm.graph.lint() + gm.recompile() + + mem_prof = MemoryProfilingInterpreter(gm, debug_log=debug_log) + mem_prof.run(*create_inputs_fn()) + mem = [(name, current_alloc, delta, peak) for name, current_alloc, delta, peak in mem_prof.mem_record] + + set_time_and_tensor_size(graph_id, gm.graph, mem, bwd, profiling_results) + + with unset_fake_temporarily(): + get_accelerator().synchronize() + gc.collect() + get_accelerator().empty_cache() + + +def make_backend(backend, compile_kwargs={}, free_activation=False, debug_log=False): + + register_custom_ops() + + def backend_fn(gm: GraphModule, real_inputs): + graph_id = id(gm.graph) + needs_backward = pytree.tree_any(lambda x: x.requires_grad if torch.is_tensor(x) else False, real_inputs) + + global graph_order + graph_order.append((graph_id, needs_backward)) + + z3_partition = any(hasattr(v, "ds_id") for v in real_inputs) + if z3_partition: + param_indices = [(i, input_val.ds_id, input_val.ds_shape) for i, input_val in enumerate(real_inputs) + if isinstance(input_val, torch.nn.Parameter)] + else: + assert all(hasattr(v, "param_id") for v in real_inputs + if isinstance(v, torch.nn.Parameter)), "All param inputs should have param_id" + param_indices = [(i, input_val.param_id, input_val.shape) for i, input_val in enumerate(real_inputs) + if isinstance(input_val, torch.nn.Parameter)] + + global fwd_real_inputs + fwd_real_inputs.append(real_inputs) + + global profiling_results + if graph_id not in profiling_results: + profiling_results[graph_id] = ProfilingResult() + profiling_results[graph_id].param_indices = param_indices + profiling_results[graph_id].needs_backward = needs_backward + + def make_fw_graph(gm, sample_inputs): + time_start = time.time() + graph_index = len(graph_order) - 1 + real_inputs = fwd_real_inputs.pop(0) + + param_manager[graph_id] = DSGraphParamManager(gm.graph, real_inputs, param_indices) + + real_inputs_with_rng = real_inputs + sample_inputs[len(real_inputs):] + run_opt_passes( + opt_passes=next_passes, + gm=gm, + graph_id=graph_id, + graph_order=graph_order, + profiling_results=profiling_results, + create_inputs_fn=lambda: real_inputs_with_rng, + mem_budget=.0, # unused + param_manager=param_manager, + bwd=False, + debug_log=debug_log) + + if needs_backward: + global remaining_bwd_compile_count + remaining_bwd_compile_count += 1 + + opt_pass_times.append(("fwd", graph_index, graph_id, time.time() - time_start)) + + log_rank0( + f"Fwd end {graph_index} graph_id={graph_id} alloc_mem={get_accelerator().memory_allocated()} graph={gm.graph}", + enable=debug_log) + + return gm.graph + + def make_bw_graph(gm, sample_inputs): + time_start = time.time() + + graph_index = get_index_by_graph_id(graph_order, graph_id) + log_rank0( + f"Bwd start {graph_index} graph_id={graph_id} alloc_mem={get_accelerator().memory_allocated()} graph={gm.graph}", + enable=debug_log) + + bwd_inputs_stack = get_backward_inputs() + + if len(bwd_inputs_stack) == 0: + # dynamo calls bw compiler ahead of time when symints are saved for backward. See the details for aot_dispatch_autograd in jit_compile_runtime_wrappers. + # As we currently use actually bwd input values in bw compiler, we return None to skip the compilation there. + # This would need be handled properly in the future. + return None + + bwd_real_inputs = bwd_inputs_stack.pop() + run_opt_passes( + opt_passes=next_passes, + gm=gm, + graph_id=graph_id, + graph_order=graph_order, + profiling_results=profiling_results, + create_inputs_fn=lambda: tuple(bwd_real_inputs), + mem_budget=.0, # unused + param_manager=param_manager, + bwd=True, + debug_log=debug_log) + + # assert graph_id in param_manager, f"Graph {graph_id} not found in param_manager" + + if free_activation: + param_nodes_bw, _ = param_manager[graph_id].get_bwd_mapping(gm.graph) + param_names = [n.name for n in param_nodes_bw] + non_param_input_names = [n.name for n in get_input_nodes(gm.graph) if n.name not in param_names] + add_free_activations(graph_id, gm.graph, + get_activation_node_names(gm.graph, param_nodes_bw, non_param_input_names)) + + global remaining_bwd_compile_count + remaining_bwd_compile_count -= 1 + if remaining_bwd_compile_count == 0: + unpatch_compiled_func() + + log_rank0( + f"Bwd end {graph_index} graph_id={graph_id} alloc_mem={get_accelerator().memory_allocated()} graph={gm.graph}", + enable=debug_log) + + gm.recompile() + opt_pass_times.append(("bwd", graph_index, graph_id, time.time() - time_start)) + + return gm.graph + + if backend == "eager": + + def make_compiler_fn(make_graph_fn): + + def compiler_fn(gm, sample_inputs): + return None if make_graph_fn(gm, sample_inputs) is None else make_boxed_func(gm.forward) + + return compiler_fn + + aot_mod = aot_module_simplified(gm, + real_inputs, + fw_compiler=make_compiler_fn(make_fw_graph), + bw_compiler=make_compiler_fn(make_bw_graph), + partition_fn=get_wrapped_partitioner(param_indices)) + return torch._dynamo.optimize(**compile_kwargs)(aot_mod) + elif backend == "inductor": + patch_create_aot_dispatcher_function(graph_id, z3_partition, make_fw_graph, make_bw_graph, real_inputs, + param_indices, param_manager) + from .partitioner import get_wrapped_choose_saved_values_set + torch._functorch.partitioners.choose_saved_values_set = get_wrapped_choose_saved_values_set(param_indices) + + return torch._inductor.compile(gm, real_inputs) + + raise ValueError(f"Unsupported backend {backend}") + + return backend_fn diff --git a/deepspeed/compile/config.py b/deepspeed/compile/config.py new file mode 100644 index 000000000..d88458fc5 --- /dev/null +++ b/deepspeed/compile/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 + + +class CompileConfig(DeepSpeedConfigModel): + """ Configure compile settings """ + + deepcompile: bool = False + """ Turn on/off the DeepCompile mode """ + + free_activation: bool = False + """ Turn on/off the free activation mode """ + + offload_activation: bool = False + """ Turn on/off the activation offloading """ + + offload_opt_states: bool = False + """ Turn on/off the optimizer states offloading """ + + double_buffer: bool = True + """ Turn on/off the double buffering """ + + symmetric_memory: bool = False + """ Turn on/off the symmetric memory """ + + debug_log: bool = False + """ Turn on/off the graph dumping """ + + offload_parameters: bool = False + """ Turn on/off the parameter offloading """ + + sync_before_reduce: bool = False + """ Turn on/off the sync before reduce """ + + sync_after_reduce: bool = False + """ Turn on/off the sync after reduce """ + + sync_before_allgather: bool = False + """ Turn on/off the sync before allgather """ + + sync_after_allgather: bool = False + """ Turn on/off the sync after allgather """ diff --git a/deepspeed/compile/fx.py b/deepspeed/compile/fx.py new file mode 100644 index 000000000..3506aef70 --- /dev/null +++ b/deepspeed/compile/fx.py @@ -0,0 +1,139 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from typing import Callable, Any, List +from collections import defaultdict + +import torch +from torch.fx import Node, Graph + +from .util import get_last_uses + + +def get_output_node(graph: Graph): + for v in graph.nodes: + if v.target == "output": + return v + raise ValueError("No output node found") + + +def move_primals_to_head(graph: Graph): + + # Move primals to the head of the graph + primals = [n for n in graph.nodes if n.op == "placeholder"] + non_primals = [n for n in graph.nodes if n.op != "placeholder"] + all_nodes = primals + non_primals + + new_graph = Graph() + env = {} + for node in all_nodes: + new_node = new_graph.node_copy(node, lambda n: env[n.name]) + env[node.name] = new_node + new_graph.lint() + + return new_graph + + +def add_args_process(graph: Graph, + node: Node, + fn: Callable[..., Any], + extra_args: List[int] = [], + name=None, + meta={}) -> List[Node]: + # Apply fn to all args of node + new_nodes = [] + with graph.inserting_before(node): + target_args = [arg for arg in node.args if isinstance(arg, Node)] + + for arg in target_args: + new_node = graph.create_node('call_function', fn, (arg, ) + tuple(extra_args), name=name) + for k, v in meta.items(): + new_node.meta[k] = v + node.replace_input_with(arg, new_node) + new_nodes.append(new_node) + + return new_nodes + + +def add_postprocess(graph: Graph, + node: Node, + fn: Callable[..., Any], + extra_args: List[int] = [], + name=None, + meta={}) -> Node: + # https://github.com/pytorch/examples/blob/main/fx/wrap_output_dynamically.py + with graph.inserting_after(node): + args = (node, ) + for a in extra_args: # To add ds_id + args += (a, ) + + node_users = node.users.keys() + new_node = graph.create_node('call_function', fn, args, {}, name=name) + users = {} + for u in node_users: + if u != new_node: + users[u] = (node, new_node) + for u, (old_in, new_in) in users.items(): + u.replace_input_with(old_in, new_in) + + for k, v in meta.items(): + new_node.meta[k] = v + + return new_node + + +def _make_node_meta(node: Node, ds_id: int, comm: bool): + meta = {"param_name": node.name, "ds_id": ds_id, "comm": comm} + if "tensor_meta" in node.meta: + meta["tensor_meta"] = node.meta["tensor_meta"] + return meta + + +def add_free_activations(graph_id: int, graph: Graph, activation_node_names: List[str]): + node_to_last_use, _ = get_last_uses(graph) + activation_nodes_set = set([n for n in graph.nodes if n.op == "placeholder" and n.name in activation_node_names]) + + offload_id_to_node = {} + node_to_wait_reload = {} + for node in graph.nodes: + if node.target == torch.ops.dc.reload_tensor.default: + offload_act = node.args[0] + # node_to_offload_id[offload_act] = node.args[2] + offload_id_to_node[node.args[2]] = offload_act + elif node.target == torch.ops.dc.wait_reload.default: + offload_id = node.args[2] + node_to_wait_reload[offload_id_to_node[offload_id]] = node + + activation_nodes_set = set(node_to_wait_reload[n] if n in node_to_wait_reload else n for n in activation_nodes_set) + + last_user_to_uses = defaultdict(list) + for node, last_user in node_to_last_use.items(): + last_user_to_uses[last_user].append(node) + + def _should_free(node: Node) -> bool: + if not hasattr(node, "meta"): + return False + if not "tensor_meta" in node.meta: + return False + return True + + def free_tensors(tensors: List[torch.Tensor]): + for a in tensors: + if a.numel() > 10_000_000: + a.data = torch.empty([0], device=a.device, dtype=a.dtype) + + for last_user, used_nodes in last_user_to_uses.items(): + activation_args = [an for an in used_nodes if an in activation_nodes_set and _should_free(an)] + + if len(activation_args) == 0: + continue + + node_name = f"free_activations_{[n.name for n in used_nodes]}" + with graph.inserting_after(last_user): + args = (activation_args, ) + graph.create_node('call_function', torch.ops.dc.free_tensors.default, args, {}, name=node_name) + + # Python version for debugging + # graph.create_node('call_function', free_tensors, args, {}, name=node_name) diff --git a/deepspeed/compile/graph_param.py b/deepspeed/compile/graph_param.py new file mode 100644 index 000000000..445af9737 --- /dev/null +++ b/deepspeed/compile/graph_param.py @@ -0,0 +1,84 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from dataclasses import dataclass, field +from typing import Any, Dict, List, Tuple +from functools import reduce + +import torch +from torch.fx import Graph, Node + +from .fx import get_output_node +from .util import get_param_nodes + + +@dataclass +class DSGraphParam: + name: str + shape: torch.Size + dtype: torch.dtype + device: torch.device + node: Node + allgather_node: Node + release_node: Node + param: torch.Tensor + numel: int = field(init=False) + + def __post_init__(self): + self.numel = reduce(lambda x, y: x * y, self.shape) + + +class DSGraphParamManager: + + def __init__(self, fw_graph: Graph, sample_inputs: Any, index_to_ds_ids: List[Tuple[int, int, int]]): + self._fw_graph = fw_graph + self._bw_graph = None + self._params: Dict[str, DSGraphParam] = {} + self._param_name_to_grad: Dict[str, Node] = {} + self._ds_ids: Dict[str, int] = {} + + param_nodes = get_param_nodes(fw_graph, index_to_ds_ids) + self._param_names = [pn.name for pn in param_nodes] + self._param_indices = [i for i, _, _ in index_to_ds_ids] + + param_inputs = [sample_inputs[i] for i, _, _ in index_to_ds_ids] + ds_ids = [ds_id for _, ds_id, _ in index_to_ds_ids] + ds_shapes = [ds_shape for _, _, ds_shape in index_to_ds_ids] + + for pn, pi, ds_id, ds_shape in zip(param_nodes, param_inputs, ds_ids, ds_shapes): + self._params[pn.name] = DSGraphParam(name=pn.name, + shape=ds_shape, + dtype=pi.dtype, + device=pi.device, + node=pn, + allgather_node=None, + release_node=None, + param=pi) + self._ds_ids[pn.name] = ds_id + + def get_bwd_mapping(self, bw_graph: Graph): + self._bw_graph = bw_graph + + output_node = get_output_node(bw_graph) + param_nodes_bw = [n for n in self._bw_graph.nodes if n.name in self.param_names] + grad_outputs = [output_node.args[0][i] for i in self._param_indices] + param_name_to_grad = {param_name: grad for param_name, grad in zip(self.param_names, grad_outputs)} + return param_nodes_bw, param_name_to_grad + + @property + def param_names(self) -> List[str]: + return self._param_names + + @property + def params(self) -> Dict[str, DSGraphParam]: + return self._params + + @property + def ds_ids(self) -> Dict[str, int]: + return self._ds_ids + + def get_grad_name(self, param_name) -> str: + assert self._param_name_to_grad is not None, "Backward graph is not added yet" + return self._param_name_to_grad[param_name] diff --git a/deepspeed/compile/inductor.py b/deepspeed/compile/inductor.py new file mode 100644 index 000000000..7ba1c17ee --- /dev/null +++ b/deepspeed/compile/inductor.py @@ -0,0 +1,214 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import torch + +try: + import torch.utils._pytree as pytree + from torch._functorch.aot_autograd import create_aot_dispatcher_function + from torch._inductor.lowering import register_lowering, fallbacks, add_needs_realized_inputs + from torch._inductor.ir import TensorBox, FallbackKernel, Layout, IRNode + from torch._inductor.virtualized import V + from torch._inductor.scheduler import Scheduler + + original_create_aot_dispatcher_function = create_aot_dispatcher_function +except ImportError: + pass + +from .util import get_input_nodes +from .graph_param import DSGraphParamManager + + +def patch_compiler(original_compiler, dc_compiler, z3_partition: bool, graph_id, graph_param_manager, bwd: bool): + + def wrapped_compiler(gm, fake_inputs): + mod_graph = dc_compiler(gm, fake_inputs) + + # For symint case + if mod_graph is None: + return None + + if z3_partition: + # Inductor validates input size estimated by the first trace, where ds tensor is materialized. + # We need to patch the input tensors to avoid the validation error. + patched_inputs = [] + if bwd: + param_nodes_bw, _ = graph_param_manager[graph_id].get_bwd_mapping(gm.graph) + param_names = [n.name for n in param_nodes_bw] + else: + param_names = graph_param_manager[graph_id].param_names + input_nodes = get_input_nodes(gm.graph) + + for in_node, in_v in zip(input_nodes, fake_inputs): + ds_param = in_node.name in param_names + if ds_param: + from torch._subclasses.fake_tensor import is_fake + from torch._dynamo.utils import to_fake_tensor + assert is_fake(in_v), f"Input {in_v} should be fake tensor" + patched_inputs.append( + to_fake_tensor(torch.empty([0], dtype=in_v.dtype, device=in_v.device), in_v.fake_mode)) + else: + patched_inputs.append(in_v) + + patched_inputs = tuple(patched_inputs) + else: + patched_inputs = fake_inputs + + return original_compiler(gm, patched_inputs) + + return wrapped_compiler + + +def wrap_partition_fn(partition_fn, real_inputs, param_indices): + + def wrapped_partition_fn(*args, **kwargs): + + fw_module, bw_module = partition_fn(*args, **kwargs) + + # get parameter names + pm = DSGraphParamManager(fw_module.graph, real_inputs, param_indices) + + def fix_placeholder_meta(graph): + for n in graph.nodes: + if n.op == "placeholder" and n.name in pm.param_names: + n.meta["val"] = torch.empty([0], dtype=n.meta["val"].dtype, device=n.meta["val"].device) + + fix_placeholder_meta(fw_module.graph) + fix_placeholder_meta(bw_module.graph) + + return fw_module, bw_module + + return wrapped_partition_fn + + +def patch_create_aot_dispatcher_function(graph_id: int, z3_partition: bool, make_fw_graph, make_bw_graph, real_inputs, + param_indices, param_manager): + + from torch._dynamo.backends.common import AotAutograd + import functools + + def patch_aotautograd(): + # Unpatch if it was already patched + if hasattr(AotAutograd, "__original_init"): + AotAutograd.__init__ = AotAutograd.__original_init + + original_init = AotAutograd.__init__ + + @functools.wraps(original_init) + def patched_init(self, **kwargs): + kwargs["fw_compiler"] = patch_compiler(kwargs["fw_compiler"], + make_fw_graph, + z3_partition, + graph_id, + param_manager, + bwd=False) + kwargs["bw_compiler"] = patch_compiler(kwargs["bw_compiler"], + make_bw_graph, + z3_partition, + graph_id, + param_manager, + bwd=True) + kwargs["inference_compiler"] = kwargs["fw_compiler"] + + if z3_partition: + kwargs["partition_fn"] = wrap_partition_fn(kwargs["partition_fn"], real_inputs, param_indices) + + original_init(self, **kwargs) + + AotAutograd.__original_init = original_init + AotAutograd.__init__ = patched_init + + patch_aotautograd() + + +def register_custom_ops(): + + def fallback_handler_no_reuse(kernel, + never_reuse_input, + never_reuse_output, + force_free_input, + add_to_fallback_set=True): + if add_to_fallback_set: + fallbacks.add(kernel) + + def handler(*args, **kwargs): + + def wrap_tensors(x): + out = TensorBox.create(x) if isinstance(x, torch._inductor.ir.IRNode) else x + if out is not None and never_reuse_output: + V.graph.never_reuse_buffers.add(out.get_name()) + return out + + class CustomDCKernel(FallbackKernel): + + def __init__(self, op, *args, **kwargs): + super().__init__(op, *args, **kwargs) + + def add_to_never_reuse(x): + if isinstance(x, IRNode): + assert hasattr(x, "get_name"), f"x doesn't have get_name {x.__class__}" + V.graph.never_reuse_buffers.add(x.get_name()) + + if never_reuse_input: + pytree.tree_map(add_to_never_reuse, args) + + def get_var_name_for_arg(self, arg: str): + if arg.isidentifier(): + return arg + + import re + match = re.match(r"reinterpret_tensor\((\w+),", arg) + if match: + return match.group(1) + return None + + def codegen(self, wrapper): + if not force_free_input: + return super().codegen(wrapper) + + kernel = self.op_overload + self.codegen_comment(wrapper) + args = [*self.codegen_args(), *self.codegen_kwargs()] + + V.graph.wrapper_code.generate_fallback_kernel(self, args) + if isinstance(self.layout, Layout): + self.codegen_size_asserts(wrapper) + + var_name = self.get_var_name_for_arg(args[0]) + if var_name: + wrapper.writeline(f"{var_name} = None") + + self.codegen_unbacked_symbol_defs(wrapper) + + kernel_cls = CustomDCKernel if force_free_input else FallbackKernel + return pytree.tree_map(wrap_tensors, kernel_cls.create(kernel, *args, **kwargs)) + + return handler + + def register_fallback_no_reuse(op_overload, + never_reuse_input=False, + never_reuse_output=False, + force_free_input=False): + add_needs_realized_inputs(op_overload) + return register_lowering(op_overload, type_promotion_kind=None)(fallback_handler_no_reuse( + op_overload, + never_reuse_input=never_reuse_input, + never_reuse_output=never_reuse_output, + force_free_input=force_free_input)) + + # Inductor tries to reuse output buffer when possible. We need to disable this behavior for some custom ops. + # -> It seems that memory region is still reused in some cases. So we clone the inputs for some ops. + register_fallback_no_reuse(torch.ops.dc.allgather_param.default, never_reuse_input=False, never_reuse_output=True) + register_fallback_no_reuse(torch.ops.dc.wait_allgather.default, never_reuse_input=True, never_reuse_output=True) + register_fallback_no_reuse(torch.ops.dc.release_param.default, never_reuse_input=True, never_reuse_output=False) + register_fallback_no_reuse(torch.ops.dc.reduce_grad.default, + never_reuse_input=True, + never_reuse_output=True, + force_free_input=True) + register_fallback_no_reuse(torch.ops.dc.free_tensors.default, never_reuse_input=True, never_reuse_output=True) + + if not hasattr(Scheduler, "is_dc_patched") or not Scheduler.is_dc_patched: + Scheduler.is_dc_patched = True + Scheduler.dead_node_elimination = lambda _: None diff --git a/deepspeed/compile/init_z1.py b/deepspeed/compile/init_z1.py new file mode 100644 index 000000000..2591e9db8 --- /dev/null +++ b/deepspeed/compile/init_z1.py @@ -0,0 +1,82 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import copy + +import torch + +from deepspeed.accelerator import get_accelerator +from .passes import zero1_compile, zero3_compile +from .backend import make_backend, launch_compile_passes, init_schedule +from .util import get_deepcompile_handle, add_pre_backward_hook, is_backend_inductor + +WARMUP = 5 + + +def init_z1(engine, backend, compile_config, compile_kwargs, schedule=None): + + optimizer = engine.optimizer + optimizer.contiguous_gradients = False # Avoid creating unnecessary buffer + for hook in optimizer._grad_acc_hooks: + hook.remove() + optimizer._grad_acc_hooks.clear() + + dc = get_deepcompile_handle() + dc.init(engine.data_parallel_group, + engine.zero_reduce_bucket_size(), compile_config.double_buffer, compile_config.symmetric_memory, + is_backend_inductor(backend), compile_config.sync_before_reduce, compile_config.sync_after_reduce, False, + False) + + grad_buffer = {} + + for i, group in enumerate(optimizer.bit16_groups): + + grad_buffer[i] = optimizer.get_flat_partition(optimizer.params_in_partition[i], + optimizer.first_offset[i], + optimizer.partition_size[i], + dtype=optimizer.gradient_accumulation_dtype, + device=get_accelerator().current_device_name(), + return_tensor_list=True) + grad_buffer[i] = [p.clone().detach() for p in grad_buffer[i]] # Maybe not necessary + + index_in_partition = 0 + first_in_partition = True + for p in group: + param_id = optimizer.get_param_id(p) + p.param_id = param_id + in_partition = optimizer.is_param_in_current_partition[param_id] + + if in_partition: + buf = grad_buffer[i][index_in_partition] + offset = optimizer.first_offset[i] if first_in_partition else 0 + # print(f"[r{dist.get_rank()}] Registering group {i} param {param_id} in_partition={in_partition} p={p.shape} buf={buf.shape} partition_offset={offset}") + dc.register_z1_param(p.param_id, p.shape, p, buf, int(offset)) + index_in_partition += 1 + first_in_partition = False + else: + # print(f"[r{dist.get_rank()}] Registering group {i} param {param_id} in_partition={in_partition} p={p.shape} buf=None") + dc.register_z1_param(p.param_id, p.shape, p, torch.empty([0], dtype=p.dtype, device=p.device), 0) + + def set_grad_buffer(): + optimizer.averaged_gradients = copy.copy(grad_buffer) + + add_pre_backward_hook(set_grad_buffer) + + if schedule is None: + schedule = [] + schedule.append((0, [zero1_compile.add_z1_reduce])) + else: + for opt in schedule: + # avoid typical misconfiguration + if zero3_compile.add_z3_gather_release in opt[1]: + raise ValueError("A pass for ZeRO3 is not specified though ZeRO1 is enabled") + + init_schedule(schedule) + + engine.launch_compile_passes = launch_compile_passes + return make_backend(backend, + compile_kwargs=compile_kwargs, + free_activation=False, + debug_log=compile_config.debug_log) diff --git a/deepspeed/compile/init_z3.py b/deepspeed/compile/init_z3.py new file mode 100644 index 000000000..f05de840d --- /dev/null +++ b/deepspeed/compile/init_z3.py @@ -0,0 +1,94 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import torch + +from deepspeed import comm as dist +from deepspeed.accelerator import get_accelerator +from deepspeed.runtime.zero.partition_parameters import InsertPostInitMethodToModuleSubClasses + +from .passes import zero3_compile, prefetch, selective_gather, offload_parameters +from .backend import make_backend, launch_compile_passes, init_schedule +from .patch_fake_tensor import patch_fake_tensor +from .util import get_deepcompile_handle, add_pre_backward_hook, is_backend_inductor + +WARMUP = 5 + + +def init_z3(engine, backend, compile_config, compile_kwargs, schedule=None): + + optimizer = engine.optimizer + if optimizer is not None and hasattr(optimizer, '_DeepSpeedZeroOptimizer_Stage3__ipg_bucket_flat_buffer'): + optimizer._DeepSpeedZeroOptimizer_Stage3__ipg_bucket_flat_buffer = None + get_accelerator().empty_cache() + + dc = get_deepcompile_handle() + dc.init(engine.data_parallel_group, + engine.zero_reduce_bucket_size(), compile_config.double_buffer, compile_config.symmetric_memory, + is_backend_inductor(backend), compile_config.sync_before_reduce, compile_config.sync_after_reduce, + compile_config.sync_before_allgather, compile_config.sync_after_allgather) + + # Unset hooks + for m in engine.module.modules(): + m._parameters = m._original_parameters + optimizer.parameter_offload._remove_module_hooks() + + for hook in optimizer._grad_acc_hooks: + hook.remove() + optimizer._grad_acc_hooks.clear() + + # Unpatch linear + if hasattr(InsertPostInitMethodToModuleSubClasses, "linear_bk"): + torch.nn.functional.linear = InsertPostInitMethodToModuleSubClasses.linear_bk + + if compile_config.symmetric_memory: + group_name = engine.data_parallel_group.group_name + dist.enable_symm_mem_for_group(group_name) + + for p in engine.module.parameters(): + grad_buffer = optimizer._DeepSpeedZeroOptimizer_Stage3__param_id_to_grad_partition[p.ds_id] + + # Disable persistent param + p.ds_persist = False + dc.register_z3_param(p.ds_id, p.ds_shape, p.ds_tensor, grad_buffer, p.ds_persist) + + def set_grad_buffer(): + for i, sub_group in enumerate(optimizer.fp16_groups): + optimizer.averaged_gradients[i] = [ + optimizer._DeepSpeedZeroOptimizer_Stage3__param_id_to_grad_partition[param.ds_id] + if param.requires_grad else torch.zeros_like(param.ds_tensor) for param in sub_group + ] + + add_pre_backward_hook(set_grad_buffer) + + if schedule is None: + schedule = [] + if (compile_config.offload_parameters): + schedule.append((0, [zero3_compile.add_z3_gather_release, offload_parameters.offload_parameter_fwd])) + else: + schedule.append((0, [zero3_compile.add_z3_gather_release])) + schedule.append( + (WARMUP, + [zero3_compile.add_z3_gather_release, prefetch.schedule_prefetch, selective_gather.selective_gather])) + + init_schedule(schedule) + + # offloading opt states need additional setup + from .passes.offload_adam_states import move_opt_states, move_opt_states_sync, init_offload_opt_states + for _, passes in schedule: + if move_opt_states in passes or move_opt_states_sync in passes: + init_offload_opt_states(optimizer, dc) + + engine.launch_compile_passes = launch_compile_passes + + patch_fake_tensor() + free_activation = compile_config.free_activation and not is_backend_inductor(backend) + + torch._inductor.config.size_asserts = False + + return make_backend(backend, + compile_kwargs=compile_kwargs, + free_activation=free_activation, + debug_log=compile_config.debug_log) diff --git a/deepspeed/compile/list_schedule.py b/deepspeed/compile/list_schedule.py new file mode 100644 index 000000000..8df84498a --- /dev/null +++ b/deepspeed/compile/list_schedule.py @@ -0,0 +1,431 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from collections import defaultdict +from typing import List, Dict +from copy import copy +from dataclasses import dataclass + +import torch +from torch.fx import Graph, Node +from torch.fx.node import map_arg + +try: + from torch.utils._pytree import tree_iter +except ImportError: + pass + +from .util import get_last_uses, is_release_node +from .fx import get_output_node + + +def make_graph_from_schedule(scheduled: List[Node]): + new_graph = Graph() + env = {} + for node in scheduled: + new_node = new_graph.node_copy(node, lambda n: env[n.name]) + env[node.name] = new_node + + return new_graph + + +def get_original_args_num(node: Node): + if node.name.startswith("allgather_ds_param") \ + or node.name.startswith("release_ds_param") \ + or node.name.startswith("wait_allgather_ds_param") \ + or node.name.startswith("reduce_ds_param"): + return 1 + + return len(node.args) + + +def flat_nodes_in_args(args: List[Node]): + return [a for a in tree_iter(args) if isinstance(a, Node)] + + +def filter_args(node: Node): + args = node.args[:get_original_args_num(node)] + return flat_nodes_in_args(args) + + +def init_schedule(graph: Graph): + mem_table = create_mem_table(graph) + remaining_users = defaultdict(set) + user_to_producer = {} + + scheduled = [] + unscheduled = [] + edges = defaultdict(list) + for node in graph.nodes: + filtered_args = filter_args(node) + # print(f"Node: {node} args: {node.args}") + if len(filtered_args) == 0: + scheduled.append(node) + + remaining_users[node] = set(node.users.keys()) + for user in node.users.keys(): + user_to_producer[user] = node + else: + unscheduled.append(node) + for a in filtered_args: + for elem_a in tree_iter(a): + if isinstance(elem_a, Node): + if node not in edges[elem_a]: + edges[elem_a].append(node) + + return scheduled, unscheduled, edges, mem_table, remaining_users, user_to_producer + + +def get_runnable_nodes(scheduled: List[Node], unscheduled: List[Node]): + scheduled = set(scheduled) + return [node for node in unscheduled if all(arg in scheduled for arg in filter_args(node))] + + +def choose_next_node(scheduled: List[Node], unscheduled: List[Node], mem_table: Dict[str, int]): + runnable_nodes = get_runnable_nodes(scheduled, unscheduled) + + # sort by memory usage + runnable_nodes = sorted(runnable_nodes, key=lambda n: mem_table[n.name]) + return runnable_nodes[0] + + +def create_mem_table(graph: Graph) -> Dict[str, int]: + mem_table = {} + for node in graph.nodes: + if node.name.startswith("allgather_ds_param"): + mem_table[node.name] = node.meta["tensor_size"] + elif node.name.startswith("release_ds_param") or node.name.startswith("reduce_ds_param"): + mem_table[node.name] = -node.meta["tensor_size"] + else: + mem_table[node.name] = 0 + + return mem_table + + +def list_schedule(graph: Graph) -> Graph: + + scheduled, unscheduled, mem_table = init_schedule(graph) + + while len(unscheduled) > 0: + next_node = choose_next_node(scheduled, unscheduled, mem_table) + scheduled.append(next_node) + unscheduled.remove(next_node) + + return make_graph_from_schedule(scheduled) + + +############################### + + +def get_new_runnable_nodes_with(scheduled: List[Node], edges: Dict[Node, List[Node]], new_scheduled: Node): + scheduled = set(scheduled) + new_runnables = [] + for node in edges[new_scheduled]: + if all(arg in scheduled for arg in filter_args(node) if arg != new_scheduled): + new_runnables.append(node) + + return new_runnables + + +def _do_schedule_without_allgather(scheduled: List[Node], unscheduled: List[Node], edges: Dict[Node, List[Node]], + non_ag_runnable: List[Node]): + + while len(non_ag_runnable) > 0: + next_node = non_ag_runnable.pop() + + new_runnables = get_new_runnable_nodes_with(scheduled, edges, next_node) + non_ag_runnable += [n for n in new_runnables if not n.name.startswith("allgather_ds_param")] + + scheduled.append(next_node) + unscheduled.remove(next_node) + + return scheduled, unscheduled + + +def schedule_without_allgather(scheduled: List[Node], unscheduled: List[Node], edges: Dict[Node, List[Node]]): + runnable = get_runnable_nodes(scheduled, unscheduled) + non_ag_runnable = [n for n in runnable if not n.name.startswith("allgather_ds_param")] + + tmp_scheduled = copy(scheduled) + tmp_unscheduled = copy(unscheduled) + + return _do_schedule_without_allgather(tmp_scheduled, tmp_unscheduled, edges, non_ag_runnable) + + +def try_schedule_with_new_allgather(scheduled: List[Node], unscheduled: List[Node], edges: Dict[Node, List[Node]], + new_scheduled: Node): + new_runnables = get_new_runnable_nodes_with(scheduled, edges, new_scheduled) + non_ag_runnable = [n for n in new_runnables if not n.name.startswith("allgather_ds_param")] + + tmp_scheduled = copy(scheduled) + tmp_unscheduled = copy(unscheduled) + + tmp_scheduled.append(new_scheduled) + tmp_unscheduled.remove(new_scheduled) + + return _do_schedule_without_allgather(tmp_scheduled, tmp_unscheduled, edges, non_ag_runnable) + + +def simple_prefetch(graph: Graph, available_mem: int, output_size: int, debug_log: bool) -> Graph: + + scheduled, unscheduled, edges, mem_table, remaining_users, user_to_producer = init_schedule(graph) + tmp_scheduled, tmp_unscheduled = schedule_without_allgather(scheduled, unscheduled, edges) + + while len(tmp_unscheduled) > 0: + + runnable = get_runnable_nodes(tmp_scheduled, tmp_unscheduled) + ag_with_unblock_time = [] + + for ag_node in runnable: + ag_scheduled, ag_unscheduled = try_schedule_with_new_allgather(tmp_scheduled, tmp_unscheduled, edges, + ag_node) + unblock_time = sum(n.meta["device_time"] for n in ag_scheduled[len(tmp_scheduled) + 1:]) + ag_with_unblock_time.append((ag_node, unblock_time, ag_scheduled, ag_unscheduled)) + + ag_with_unblock_time = sorted(ag_with_unblock_time, key=lambda x: x[1], reverse=True) + best_ag_node = ag_with_unblock_time[0][0] + best_ag_scheduled = ag_with_unblock_time[0][2] + + no_ag_runnables = tmp_scheduled[len(scheduled):] + after_ag_runnables = best_ag_scheduled[len(tmp_scheduled) + 1:] + + scheduled.append(best_ag_node) + unscheduled.remove(best_ag_node) + for n in no_ag_runnables: + scheduled.append(n) + unscheduled.remove(n) + + tmp_scheduled = copy(scheduled) + tmp_unscheduled = copy(unscheduled) + for n in after_ag_runnables: + tmp_scheduled.append(n) + tmp_unscheduled.remove(n) + + return make_graph_from_schedule(tmp_scheduled) + + +############################### + + +def init_schedule_with_placeholders(graph: Graph): + mem_table = create_mem_table(graph) + remaining_users = defaultdict(set) + user_to_producer = {} + + scheduled = [] + unscheduled = [] + edges = defaultdict(list) + for node in graph.nodes: + if node.op == 'placeholder': + scheduled.append(node) + + remaining_users[node] = set(node.users.keys()) + for user in node.users.keys(): + user_to_producer[user] = node + else: + unscheduled.append(node) + + return scheduled, unscheduled, edges, mem_table, remaining_users, user_to_producer + + +def get_node_requirements(target_node: Node, scheduled: List[Node]): + scheduled = set(scheduled) + visited = set() + ordered_nodes = [] + + def dfs(node: Node): + if node in scheduled: + return + if node in visited: + return + visited.add(node) + + args = [] + + def register_arg(n: Node): + args.append(n) + + map_arg(node.args, register_arg) + + for arg in args: + dfs(arg) + ordered_nodes.append(node) + + dfs(target_node) + + return ordered_nodes + + +@dataclass +class AllgatherTask: + node: Node + allgather_cost: float + free_cost: float + allgathered_mem: int + allgather_acc_mem: int + free_acc_mem: int + last_use: Node + n_scheduled_ags: int + schedule_until_ag: List[Node] + schedule_until_free: List[Node] + + +def fast_free_schedule(graph: Graph, available_mem: int, output_size: int, debug_log: bool) -> Graph: + node_to_last_use, user_to_last_uses = get_last_uses(graph) + + # check tensor size + for node in graph.nodes: + if "tensor_size" not in node.meta: + # Our profiler may not visit all nodes because of the control flow. + node.meta["tensor_size"] = 0 + + scheduled, unscheduled, edges, mem_table, remaining_users, user_to_producer = init_schedule_with_placeholders( + graph) + + unscheduled_ags = [n for n in unscheduled if n.target == torch.ops.dc.allgather_param.default] + + release_nodes = defaultdict(list) + for n in unscheduled: + if is_release_node(n): + release_nodes[n.args[2]].append(n) + + ag_nodes_in_path = {} + for ag_node in unscheduled_ags: + last_use = node_to_last_use[ag_node] + required_nodes = get_node_requirements(last_use, scheduled) + ag_nodes_in_path[ag_node] = set(n for n in required_nodes if n.target == torch.ops.dc.allgather_param.default) + + reduce_nodes = [n for n in unscheduled if n.target == torch.ops.dc.reduce_grad.default] + ag_nodes_in_path_to_reduce_nodes = {} + for reduce_node in reduce_nodes: + ag_nodes_in_path_to_reduce_nodes[reduce_node] = set(n for n in get_node_requirements(reduce_node, scheduled) + if n.target == torch.ops.dc.allgather_param.default) + + output_nodes = [ + n for n in get_output_node(graph).args[0] + if isinstance(n, Node) and n.target != torch.ops.dc.reduce_grad.default + ] + ag_nodes_in_path_to_output_nodes = {} + for output_node in output_nodes: + ag_nodes_in_path_to_output_nodes[output_node] = set(n for n in get_node_requirements(output_node, scheduled) + if n.target == torch.ops.dc.allgather_param.default) + + while len(unscheduled_ags) > 0: + + ag_nodes_count = {ag_node: len(nodes) for ag_node, nodes in ag_nodes_in_path.items()} + count_list = sorted(set(ag_nodes_count.values())) + + runnable_ags = [] + for ag_count in count_list: + + target_unscheduled_ags = [ag for ag in unscheduled_ags if ag_nodes_count[ag] == ag_count] + + for node in target_unscheduled_ags: + ds_id = node.args[2] + + schedule_until_ag = get_node_requirements(node, scheduled) + if schedule_until_ag is None: + continue + + last_use = node_to_last_use[node] + + diff_required_nodes = get_node_requirements(last_use, scheduled + schedule_until_ag) + + allgather_cost = sum(n.meta["device_time"] for n in schedule_until_ag) + free_cost = sum(n.meta["device_time"] for n in diff_required_nodes) + allgathered_mem = node.meta["tensor_size"] + allgather_acc_mem = sum(n.meta["tensor_size"] for n in schedule_until_ag + if n.target == torch.ops.dc.allgather_param.default) + free_acc_mem = sum(n.meta["tensor_size"] for n in diff_required_nodes + if n.target == torch.ops.dc.allgather_param.default) + + schedule_until_free = schedule_until_ag + diff_required_nodes + for release_node in release_nodes[ds_id]: + if release_node not in schedule_until_free: + schedule_until_free.append(release_node) + + n_scheduled_ags = len( + [n for n in schedule_until_free if n.target == torch.ops.dc.allgather_param.default]) + + task = AllgatherTask(node, allgather_cost, free_cost, allgathered_mem, allgather_acc_mem, free_acc_mem, + last_use, n_scheduled_ags, schedule_until_ag, schedule_until_free) + + # print(f" ag_count {ag_count} allgather runnable {i}: {node} last_use: {node_to_last_use[node]} t: {t2-t1:.2f}") + runnable_ags.append(task) + + if len(runnable_ags) > 0: + break + + assert len(runnable_ags) > 0, "No runnable allgather nodes" + + # Criteria of the choice: + # We want to choose allgather that does not require additional allgather until releasing the param. + # When we can find such a node, free_acc_mem will be zero. In that case, we choose the one with the smallest cost until free to minimize the period of occupying memory for the gathered param. + # If there is no such node, we choose the one with the smallest free_cost to minimize the period of occupying memory for the gathered param. + ags_with_no_additional_ag = [ag for ag in runnable_ags if ag.free_acc_mem == 0] + if len(ags_with_no_additional_ag) > 0: + sorted_ags = sorted(runnable_ags, key=lambda x: x.free_cost) + next_ag = sorted_ags[0] + nodes_to_schedule = next_ag.schedule_until_free + else: + # sorted_ags = sorted(runnable_ags, key=lambda x: x.allgathered_mem) + sorted_ags = sorted(runnable_ags, key=lambda x: x.free_acc_mem) + next_ag = sorted_ags[0] + nodes_to_schedule = next_ag.schedule_until_ag + + # print(f" next_ag {next_ag}") + for n in nodes_to_schedule: + scheduled.append(n) + unscheduled.remove(n) + + unscheduled_ags.remove(next_ag.node) + + ag_nodes_in_path.pop(next_ag.node) + for ag_node, nodes in ag_nodes_in_path.items(): + if next_ag.node in nodes: + nodes.remove(next_ag.node) + + # Schedule reduce nodes when possible to free memory earlier + reduces_to_schedule = [] + for reduce_node in reduce_nodes: + if next_ag.node in ag_nodes_in_path_to_reduce_nodes[reduce_node]: + ag_nodes_in_path_to_reduce_nodes[reduce_node].remove(next_ag.node) + if len(ag_nodes_in_path_to_reduce_nodes[reduce_node]) == 0: + reduces_to_schedule.append(reduce_node) + + for n in reduces_to_schedule: + need_to_schedule = get_node_requirements(n, scheduled) + for nn in need_to_schedule: + scheduled.append(nn) + unscheduled.remove(nn) + + # Do the same for output nodes + outputs_to_schedule = [] + for output_node in output_nodes: + if next_ag.node in ag_nodes_in_path_to_output_nodes[output_node]: + ag_nodes_in_path_to_output_nodes[output_node].remove(next_ag.node) + if len(ag_nodes_in_path_to_output_nodes[output_node]) == 0: + outputs_to_schedule.append(output_node) + + for n in outputs_to_schedule: + need_to_schedule = get_node_requirements(n, scheduled) + for nn in need_to_schedule: + scheduled.append(nn) + unscheduled.remove(nn) + + # print(f"After ag scheduled: scheduled: {scheduled}") + + scheduled_set = set(scheduled) + for node in graph.nodes: + if node in scheduled_set: + continue + scheduled.append(node) + unscheduled.remove(node) + + assert len(unscheduled) == 0, f"There are unscheduled nodes: {unscheduled}" + + ret_graph = make_graph_from_schedule(scheduled) + ret_graph.lint() + return ret_graph diff --git a/deepspeed/compile/partitioner.py b/deepspeed/compile/partitioner.py new file mode 100644 index 000000000..f60170d0b --- /dev/null +++ b/deepspeed/compile/partitioner.py @@ -0,0 +1,158 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +# This file was copied from PyTorch and modified for DeepSpeed. + +from typing import Tuple, List +import operator + +import torch +from torch.fx import GraphModule, Graph, Node + +try: + from torch._functorch.partitioners import is_sym_node, _is_primal, _is_fwd_seed_offset, _extract_fwd_bwd_outputs, _extract_graph_with_inputs_outputs, _extract_fwd_bwd_modules, has_recomputable_ops, min_cut_rematerialization_partition, choose_saved_values_set +except ImportError: + pass + +from .util import get_no_copy_ops + +_recompute_ops = {torch.ops.aten.t.default} + + +def _find_recompute_nodes(graph: Graph, ds_param_node: Node) -> List[Node]: + """ + Given a graph and a node that represents a parameter that was allgathered, + find all nodes that use the parameter and require recomputation. + """ + no_copy_ops = get_no_copy_ops() + recompute_nodes = set() + for node in graph.nodes: + if node.target in no_copy_ops: + if ds_param_node in node.args: + recompute_nodes.add(node) + if any(a in recompute_nodes for a in node.args): + recompute_nodes.add(node) + + return recompute_nodes + + +def _get_values_from_ds_params(joint_graph, param_indices): + primal_inputs = list(filter(_is_primal, joint_graph.nodes)) + ds_param_inputs = [primal_inputs[arg_idx] for arg_idx, _, _ in param_indices] + + no_copy_ops = get_no_copy_ops() + + ds_param_inputs = set(ds_param_inputs) + ds_param_users = {} + + for node in joint_graph.nodes: + if node.target in no_copy_ops and any((a in ds_param_inputs or a in ds_param_users) for a in node.args): + for a in node.args: + if a in ds_param_inputs: + ds_param_users[node] = a + elif a in ds_param_users: + ds_param_users[node] = ds_param_users[a] + + return ds_param_users + + +def get_wrapped_choose_saved_values_set(param_indices: List[Tuple[int, int, torch.Size]]): + + def ds_choose_saved_values_set(joint_graph: torch.fx.Graph, node_info, memory_budget=1) -> List[Node]: + saved_values = choose_saved_values_set(joint_graph, node_info, memory_budget) + ds_param_users = _get_values_from_ds_params(joint_graph, param_indices) + + new_saved_values = [] + for v in saved_values: + if v in ds_param_users: + ds_val = ds_param_users[v] + if ds_val not in new_saved_values: + new_saved_values.append(ds_val) + else: + new_saved_values.append(v) + + return new_saved_values + + return ds_choose_saved_values_set + + +def get_wrapped_partitioner(param_indices: List[Tuple[int, int, torch.Size]]): + + def partition_recompute_ds_params(joint_module: GraphModule, _joint_inputs, *, + num_fwd_outputs) -> Tuple[GraphModule, GraphModule]: + """ + This is basically the same as the default_partition function, but + it doesn't save the gathered params and values computed from them. + """ + if has_recomputable_ops(joint_module): + return min_cut_rematerialization_partition(joint_module, _joint_inputs, num_fwd_outputs=num_fwd_outputs) + + primal_inputs = list(filter(_is_primal, joint_module.graph.nodes)) + fwd_seed_offset_inputs = list(filter(_is_fwd_seed_offset, joint_module.graph.nodes)) + inputs = primal_inputs + fwd_seed_offset_inputs + fwd_outputs, bwd_outputs = _extract_fwd_bwd_outputs(joint_module, num_fwd_outputs=num_fwd_outputs) + forward_only_graph = _extract_graph_with_inputs_outputs(joint_module.graph, inputs, fwd_outputs, "forward") + forward_node_names = {node.name for node in forward_only_graph.nodes if node.op != "output"} + saved_values = [] + saved_sym_nodes = [] + + fwd_inputs = list(filter(_is_primal, forward_only_graph.nodes)) + ds_param_inputs = [fwd_inputs[arg_idx] for arg_idx, _, _ in param_indices] + ds_param_input_names = {node.name for node in ds_param_inputs} + + ds_param_recompute_nodes = set() + + for node in joint_module.graph.nodes: + if node.name not in forward_node_names: + continue + + if is_sym_node(node): + # Symints must be kept separate from tensors so that PythonFunction only calls + # save_for_backward on tensors and stashes symints in autograd .ctx + saved_sym_nodes.append(node) + elif "tensor_meta" not in node.meta and node.op == "call_function": + # Since we can't save tuple of tensor values, we need to flatten out what we're saving + users = node.users + assert all(user.target == operator.getitem for user in users) + saved_values.extend(users) + else: + backward_usages = [n for n in node.users if n.name not in forward_node_names] + + if "tensor_meta" in node.meta and all(is_sym_node(n) for n in backward_usages): + # If we have a tensor in the forward, where only its sizes/strides are needed in the backward, + # and not the actual tensor data, + # then it will be a lot cheaper to save only the sizes/strides, and not the actual tensor. + # + # Note that saving the tensor could also cause compilation problems: + # If the user mutated an input in the forward and uses its sizes/strides in the backward, + # then we would be obligated to clone the input before saving it to appease autograd. + # (This is how we originally found this bug). + saved_sym_nodes.extend(backward_usages) + + if node.name in ds_param_input_names: + saved_values.append(node) + recompute_nodes = _find_recompute_nodes(joint_module.graph, node) + recompute_nodes = [n for n in recompute_nodes if n.name in forward_node_names] + for recompute_node in recompute_nodes: + ds_param_recompute_nodes.add(recompute_node) + + if len(recompute_nodes) > 0: + saved_values.append(node) + else: + if node not in ds_param_recompute_nodes: + saved_values.append(node) + saved_values = list(dict.fromkeys(saved_values).keys()) + saved_sym_nodes = list(dict.fromkeys(saved_sym_nodes).keys()) + + f_gm, b_gm = _extract_fwd_bwd_modules( + joint_module, + saved_values, + saved_sym_nodes=saved_sym_nodes, + num_fwd_outputs=num_fwd_outputs, + ) + + return f_gm, b_gm + + return partition_recompute_ds_params diff --git a/deepspeed/compile/passes/__init__.py b/deepspeed/compile/passes/__init__.py new file mode 100644 index 000000000..620e99147 --- /dev/null +++ b/deepspeed/compile/passes/__init__.py @@ -0,0 +1,48 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from ..profilers.graph_profile import MemoryProfilingInterpreter + +import deepspeed.comm as dist + + +def run_opt_passes(nz3, + graph_index, + graph_id, + gm, + create_inputs_fn, + opt_passes, + graph_order, + profiling_results, + param_manager, + bwd, + debug_log=False): + profile = profiling_results[graph_id] + rank = dist.get_rank() + + for i, opt_pass in enumerate(opt_passes): + + opt_pass_fn, mem_budget = opt_pass + + graph = opt_pass_fn(gm.graph, graph_id, graph_order, profiling_results, mem_budget, param_manager, bwd) + graph.lint() + gm.graph = graph + gm.recompile() + + if debug_log: + print(f"Prefetching enabled for {'bwd' if bwd else 'fwd'} graph_id={graph_id} {graph}") + + mem_prof = MemoryProfilingInterpreter(nz3, gm) + mem_prof.run(*create_inputs_fn()) + if debug_log and rank == 0: + mem_prof.dump(f"mem_prof_r{rank}_{'bwd' if bwd else 'fwd'}_{graph_index}_{graph_id}_pass_{i}.csv") + + mem = [(name, current_alloc, delta, peak) for name, current_alloc, delta, peak in mem_prof.mem_record] + if bwd: + profile.bwd_mem = mem + else: + profile.fwd_mem = mem + + return gm diff --git a/deepspeed/compile/passes/offload_activation.py b/deepspeed/compile/passes/offload_activation.py new file mode 100644 index 000000000..496e7351f --- /dev/null +++ b/deepspeed/compile/passes/offload_activation.py @@ -0,0 +1,116 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from typing import List, Dict, Set, Tuple +import random +from collections import defaultdict + +import torch +from torch.fx import Graph, Node + +from ..fx import get_output_node, move_primals_to_head +from ..graph_param import DSGraphParamManager + +value_to_id: Dict[int, Dict[str, int]] = defaultdict(dict) +used_ids: Set[int] = set() + + +def get_random_id() -> int: + + def _gen(): + # generate random int + return random.randint(10000, 2**31) + + global used_ids + v = _gen() + while v in used_ids: + v = _gen() + used_ids.add(v) + return v + + +def _should_offload(node: Node) -> bool: + if not hasattr(node, "meta"): + return False + if not "tensor_meta" in node.meta: + return False + + return True + + +def offload_activation_fwd(graph: Graph, graph_id: int, nodes_to_offload_with_names: List[Tuple[str, Node]], + graph_order: List[int], mem_budget: float, param_manager: DSGraphParamManager) -> Graph: + param_names = set(param_manager.param_names) + + import copy + cl_graph = copy.deepcopy(graph) + cl_graph.erase_node(get_output_node(cl_graph)) + + global value_to_id + for name, node in nodes_to_offload_with_names: + if node.name in param_names: + continue + + if not _should_offload(node): + continue + + val_id = get_random_id() + with graph.inserting_after(node): + offload_node = graph.create_node('call_function', + torch.ops.dc.offload_tensor.default, (node, graph_id, val_id), {}, + name=f"offload_{node.name}_{val_id}") + with graph.inserting_after(offload_node): + wait_node = graph.create_node('call_function', + torch.ops.dc.wait_offload.default, (offload_node, graph_id, val_id), {}, + name=f"wait_copy_{node.name}_{val_id}") + + output_node = get_output_node(graph) + output_node.replace_input_with(node, wait_node) + + value_to_id[graph_id][name] = val_id + + graph = move_primals_to_head(graph) + + graph.lint() + return graph + + +def reload_activation_bwd(graph: Graph, graph_id: int, graph_order: List[int], mem_budget: float, + param_manager: DSGraphParamManager) -> Graph: + + graph_value_to_id = value_to_id[graph_id] + name_to_node = {n.name: n for n in graph.nodes} + act_nodes = [name_to_node[n] for n in graph_value_to_id.keys()] + + node_to_first_user = {} + for act in act_nodes: + for node in graph.nodes: + if act in node.args: + node_to_first_user[act] = node + break + + for node in act_nodes: + val_id = graph_value_to_id[node.name] + + with graph.inserting_before(node_to_first_user[node]): + reload_node = graph.create_node('call_function', + torch.ops.dc.reload_tensor.default, (node, graph_id, val_id), {}, + name=f"reload_{node.name}_{val_id}") + with graph.inserting_after(reload_node): + wait_node = graph.create_node('call_function', + torch.ops.dc.wait_reload.default, (reload_node, graph_id, val_id), {}, + name=f"wait_copy_{node.name}_{val_id}") + + # replace all uses of node with wait_node + users = {} + for u in node.users.keys(): + if u != reload_node: + users[u] = (node, wait_node) + for u, (old_in, new_in) in users.items(): + u.replace_input_with(old_in, new_in) + + graph = move_primals_to_head(graph) + graph.lint() + return graph diff --git a/deepspeed/compile/passes/offload_adam_states.py b/deepspeed/compile/passes/offload_adam_states.py new file mode 100644 index 000000000..458d07f39 --- /dev/null +++ b/deepspeed/compile/passes/offload_adam_states.py @@ -0,0 +1,546 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import copy +from typing import List + +import torch +from torch.fx import Graph, GraphModule + +from deepspeed.accelerator import get_accelerator +from deepspeed.runtime.zero.offload_states import _make_offload_state_key + +try: + from torch._subclasses.fake_tensor import unset_fake_temporarily +except ImportError: + # Unsupported torch version + pass + +from ..profilers import ProfilingResult +from ..graph_param import DSGraphParamManager +from ..fx import move_primals_to_head + +import deepspeed.comm as dist + +NAME = "offload_adam_states" + + +def print_r0(msg): + if dist.get_rank() == 0: + print(msg) + + +MARGIN = 0.2 + +copy_stream = None +offload_event = None +reload_event = None + +offload_key_events = {} +reload_key_events = {} + +max_memory = 0 + + +def lazy_init(): + global copy_stream + global offload_event + global reload_event + + if copy_stream is None: + + copy_stream = get_accelerator().Stream() + offload_event = get_accelerator().Event() + reload_event = get_accelerator().Event() + + +optimizer = None +device = None +nz3 = None + + +def move_key(state, key, key_event=None): + offload_buf_key = _make_offload_state_key(key) + if offload_buf_key not in state: + state[offload_buf_key] = get_accelerator().pin_memory(torch.empty_like(state[key], device="cpu")) + + if key not in state: + return + + with get_accelerator().stream(copy_stream): + state[offload_buf_key].copy_(state[key], non_blocking=True) + + if key_event is None: + offload_event.record(stream=copy_stream) + else: + key_event.record(stream=copy_stream) + + +def move_back_key(state, key, key_event=None): + + with get_accelerator().stream(copy_stream): + state[key] = torch.empty_like(state[_make_offload_state_key(key)], device=device) + state[key].copy_(state[_make_offload_state_key(key)], non_blocking=True) + + if key_event is None: + reload_event.record(stream=copy_stream) + else: + key_event.record(stream=copy_stream) + + +def move_hp_param(src_tensor, dest_buf, key_event=None): + with get_accelerator().stream(copy_stream): + dest_buf.copy_(src_tensor, non_blocking=True) + src_tensor.data = dest_buf + + if key_event is None: + reload_event.record(stream=copy_stream) + else: + key_event.record(stream=copy_stream) + + +def move_back_hp_param(src_tensor, dest_buf, key_event=None): + with get_accelerator().stream(copy_stream): + dest_buf.data = torch.empty_like(src_tensor, device=device) + dest_buf.copy_(src_tensor, non_blocking=True) + + if key_event is None: + reload_event.record(stream=copy_stream) + else: + key_event.record(stream=copy_stream) + + +def offload_adam_states_sync(): + + with unset_fake_temporarily(): + + if not hasattr(optimizer, "hp_params_pin_buffers"): + optimizer.hp_params_pin_buffers = [ + get_accelerator().pin_memory(torch.empty_like(t, device="cpu")) + for t in optimizer.fp32_partitioned_groups_flat + ] + + for i, (k, state) in enumerate(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") + + for _, state in optimizer.state.items(): + if "exp_avg" in state: + del state["exp_avg"] + if "exp_avg_sq" in state: + del state["exp_avg_sq"] + + for src_tensor, dest_buf in zip(optimizer.fp32_partitioned_groups_flat, optimizer.hp_params_pin_buffers): + move_hp_param(src_tensor, dest_buf) + + get_accelerator().synchronize() + + +def reload_adam_states_sync(): + + with unset_fake_temporarily(): + # print_r0("Reloading Adam states") + + for _, state in optimizer.state.items(): + if _make_offload_state_key("exp_avg") in state: + move_back_key(state, "exp_avg") + if _make_offload_state_key("exp_avg_sq") in state: + move_back_key(state, "exp_avg_sq") + + for src, dest in zip(optimizer.hp_params_pin_buffers, optimizer.fp32_partitioned_groups_flat): + move_back_hp_param(src, dest) + + get_accelerator().synchronize() + + +def sync_offload_states(event=None): + if nz3.is_profiling(): + offload_adam_states_sync() + else: + if event is None: + offload_event.wait(copy_stream) + else: + event.wait(copy_stream) + + +def sync_reload_states(event=None): + if nz3.is_profiling(): + reload_adam_states_sync() + else: + if event is None: + reload_event.wait(copy_stream) + else: + event.wait(copy_stream) + + +def make_offload_task(task): + + def run_offload_task(): + # if not nz3.is_profiling(): + # print_r0(f"run_offload_task {task[0]} {task[2]} {task[3]} {task[4]}") + + if offload_key_events.get(task[1]) is None: + offload_key_events[task[1]] = get_accelerator().Event() + + if task[2] == "hp_param": + move_hp_param(task[1][0], task[1][1], offload_key_events[task[1][0]]) + else: + assert task[1] in optimizer.state, f"State {task[1]} not found in optimizer" + state = optimizer.state[task[1]] + # if offload_key_events.get(task[1]) is None: + # offload_key_events[task[1]] = get_accelerator().Event() + move_key(state, task[2], offload_key_events[task[1]]) + + return run_offload_task + + +def make_offload_sync(task): + + def run_offload_sync(): + # if not nz3.is_profiling(): + event = offload_key_events[task[1]] + event.synchronize() + + if task[2] != "hp_param": + state = optimizer.state[task[1]] + key = task[2] + if key in state: + del state[key] + # print_r0(f"run_offload_sync {task[0]} {task[2]} alloc_mem={get_accelerator().memory_allocated()}") + + return run_offload_sync + + +def make_reload_task(task): + + def run_reload_task(): + if not nz3.is_profiling(): + if reload_key_events.get(task[1]) is None: + reload_key_events[task[1]] = get_accelerator().Event() + + if task[2] == "hp_param": + move_back_hp_param(task[1][1], task[1][0], reload_key_events[task[1]]) + else: + state = optimizer.state[task[1]] + # print_r0(f"run_reload_task {task[0]} {task[2]} {task[3]} {task[4]}") + move_back_key(state, task[2], reload_key_events[task[1]]) + + return run_reload_task + + +def update_max_memory(name): + + global max_memory + mem = get_accelerator().max_memory_allocated() + max_memory = max(max_memory, mem) + + +def empty_cache(): + get_accelerator().empty_cache() + + +offload_tasks = [] +offload_tasks_remaining = [] +offload_tasks_scheduled = [] +reload_task_remaining = [] +total_reload_mem = 0 + + +def offload_opt_states_inc(graph: Graph, graph_id: int, graph_order: List[int], profiling_results: ProfilingResult, + mem_budget: float, param_manager: DSGraphParamManager, bwd: bool) -> Graph: + + to_remove = [] + for node in graph.nodes: + if node.op == 'call_function' and \ + node.target in [offload_adam_states_sync, sync_offload_states, reload_adam_states_sync, sync_reload_states, update_max_memory]: + to_remove.append(node) + + for node in to_remove: + graph.erase_node(node) + + accelerator = get_accelerator() + total_mem = accelerator.total_memory() * (1 - MARGIN) + print_r0(f"offload_opt_states_inc start graph {graph_id} bwd={bwd} max_memory={max_memory} total_mem={total_mem}") + + mem = profiling_results[graph_id].bwd_mem if bwd else profiling_results[graph_id].fwd_mem + mem_dict = {name: peak for name, alloc_mem, delta, peak in mem} + + current_peak_mem = 0 + peak_mem = {} + + ordered_node = reversed(graph.nodes) if bwd else graph.nodes + for node in ordered_node: + # print(f"Node: {node.name} mem: {mem_dict[node.name]}") + if mem_dict[node.name] > current_peak_mem: + current_peak_mem = mem_dict[node.name] + peak_mem[node.name] = current_peak_mem + + # fwd_max_mem = max(m[3] for m in prof.fwd_mem) + # bwd_max_mem = max(m[3] for m in prof.bwd_mem) if len(prof.bwd_mem) > 0 else 0 + # peak_mem = max(peak_mem, fwd_max_mem, bwd_max_mem) + + global offload_tasks_remaining, reload_tasks_remaining, offload_tasks_scheduled + + if not bwd: + is_first_graph = graph_id == graph_order[0][0] + # print_r0( + # f"offload_opt_states_inc start graph {graph_id} graph_order {graph_order} fwd is_first_graph {is_first_graph}" + # ) + + # At the beginning of the first graph, we schedule offload tasks to launch all offloading + if is_first_graph: + # print_r0( + # f"offload_opt_states_inc fwd before reload graph {graph_id} allocated_mem={get_accelerator().memory_allocated()}" + # ) + + with unset_fake_temporarily(): + offload_adam_states_sync() + reload_adam_states_sync() + sync_reload_states() + + reload_size = 0 + + for i, ((k, state), hp_param, hp_param_cpu) in enumerate( + zip(optimizer.state.items(), optimizer.fp32_partitioned_groups_flat, + optimizer.hp_params_pin_buffers)): + # print_r0( + # f"Checking key for offloading {i} {k.shape} has_key {_make_offload_state_key('exp_avg') in state}") + + if _make_offload_state_key("exp_avg") in state: + key = _make_offload_state_key("exp_avg") + size = state[key].numel() * state[key].element_size() + + # if total_mem < max_memory + reload_size + size: + offload_tasks.append( + (i, k, "exp_avg", state[key].numel() * state[key].element_size(), state[key].dtype)) + # print_r0( + # f"Offloading task {i} exp_avg reload_size={reload_size} size={size} estimated_mem={max_memory + reload_size + size}" + # ) + + if _make_offload_state_key("exp_avg_sq") in state: + key = _make_offload_state_key("exp_avg_sq") + size = state[key].numel() * state[key].element_size() + + # if total_mem < max_memory + reload_size + size: + offload_tasks.append( + (i, k, "exp_avg_sq", state[key].numel() * state[key].element_size(), state[key].dtype)) + # print_r0( + # f"Offloading task {i} exp_avg_sq reload_size={reload_size} size={size} estimated_mem={max_memory + reload_size + size}" + # ) + + hp_param_size = hp_param.numel() * hp_param.element_size() + # if total_mem < max_memory + reload_size + hp_param_size: + offload_tasks.append((i, (hp_param, hp_param_cpu), "hp_param", + hp_param.numel() * hp_param.element_size(), hp_param.dtype)) + # print_r0( + # f"Offloading task {i} hp_param reload_size={reload_size} size={hp_param_size} estimated_mem={max_memory + reload_size + hp_param_size}" + # ) + + # print_r0(f"offload_opt_states_inc fwd graph {graph_id} allocated_mem={get_accelerator().memory_allocated()}") + + for node in graph.nodes: + # print_r0(f"checking sync node insert node: {node.name}") + + if node.name not in peak_mem \ + or node.op == 'placeholder' \ + or "offload_opt_" in node.name: + continue + + to_offload = [] + optim_size = sum([task[3] for task in offload_tasks]) + + # print_r0( + # f" optim_size: {optim_size} total_mem: {total_mem} peak_mem: {peak_mem[node.name]} available: {total_mem - peak_mem[node.name] - optim_size} #tasks={len(offload_tasks)}" + # ) + while total_mem - peak_mem[node.name] - optim_size < 0: + if len(offload_tasks) == 0: + break + + task = offload_tasks.pop(0) + to_offload.append(task) + optim_size = sum([task[3] for task in offload_tasks]) + # print_r0( + # f" scheduled task {task[0]} {task[2]} {task[3]} optim_size: {optim_size} peak_mem: {peak_mem[node.name]} available: {total_mem - peak_mem[node.name] - optim_size} #tasks={len(offload_tasks)}" + # ) + + for task in to_offload: + with graph.inserting_before(node): + graph.create_node('call_function', + make_offload_sync(task), (), {}, + name=f"offload_opt_sync_{task[0]}_{task[2]}") + print_r0(f"Inserting fwd offload_opt_sync_{task[0]}_{task[2]}") + offload_tasks_scheduled.append(task) + + for node in graph.nodes: + # print(f"Node: {node.name} mem: {mem_dict[node.name]}") + if node.op != 'placeholder': + print_r0(f"Inserting all offload tasks before {node.name}") + for task in offload_tasks_scheduled: + name = f"offload_opt_{task[0]}_{task[2]}" + with graph.inserting_before(node): + offload_node = graph.create_node('call_function', make_offload_task(task), (), {}, name=name) + break + + # print_r0(f"offload_opt_states_inc finish graph {graph_id} fwd graph {graph}") + print_r0(f"offload_opt_states_inc finish graph {graph_id}") + else: + + graph_order_with_backward = [g[0] for g in graph_order if g[1]] + is_first_graph = graph_id == graph_order_with_backward[-1] + is_last_graph = graph_id == graph_order_with_backward[0] + + # print_r0( + # f"offload_opt_states_inc bwd graph {graph_id} graph_order_with_backward {graph_order_with_backward} is_first_graph {is_first_graph} is_last_graph {is_last_graph}" + # ) + + if is_first_graph: + inserted_sync = False + for node in graph.nodes: + if node.op != 'placeholder' and not inserted_sync: + # print(f"Inserting offload_sync before {node.name}") + with graph.inserting_before(node): + graph.create_node('call_function', empty_cache, (), {}, name="empty_cache") + + inserted_sync = True + reload_tasks_remaining = copy.copy(offload_tasks_scheduled) + + global total_reload_mem + for node in graph.nodes: + if node.name not in peak_mem \ + or node.op == 'placeholder' \ + or node.op == 'output' \ + or "offload_opt_sync_" in node.name: + continue + + if len(reload_tasks_remaining) > 0: + task = reload_tasks_remaining[0] + next_reload_mem = task[3] + + insert_pos = node + while total_mem > peak_mem[node.name] + total_reload_mem + next_reload_mem: + expected_mem = peak_mem[node.name] + total_reload_mem + print_r0( + f" Inserting reload_opt reload_opt_{task[0]}_{task[2]} after {insert_pos.name} next_inc={next_reload_mem} peak_mem[{node.name}]={peak_mem[node.name]} inc_total={total_reload_mem} expected_mem={expected_mem}" + ) + + with graph.inserting_after(insert_pos): + insert_pos = graph.create_node('call_function', + make_reload_task(task), (), {}, + name=f"reload_opt_{task[0]}_{task[2]}") + + total_reload_mem += next_reload_mem + reload_tasks_remaining.pop(0) + if len(reload_tasks_remaining) == 0: + break + + task = reload_tasks_remaining[0] + next_reload_mem = task[3] + + # prev_node = node + + if is_last_graph: + for node in graph.nodes: + # print(f"Node: {node.name} mem: {mem_dict[node.name]}") + if node.op == 'output': + for task in reload_tasks_remaining: + with graph.inserting_before(node): + graph.create_node('call_function', + make_reload_task(task), (), {}, + name=f"reload_opt_{task[0]}_{task[2]}") + + sync_fn = lambda: copy_stream.synchronize() + with graph.inserting_before(node): + graph.create_node('call_function', sync_fn, (), {}, name="sync_offload_copy_stream") + + print_r0( + f"offload_opt_states_inc graph {graph_id} graph_order {graph_order} bwd is_first_graph {is_first_graph} is_last_graph {is_last_graph}" + ) + + return graph + + +def add_record_max_mem_nodes(graph: Graph): + + nodes = list(graph.nodes) + for node in nodes: + if node.op == "output" or node.op == "placeholder": + continue + + with graph.inserting_after(node): + name = f"update_max_memory_{node.name}" + graph.create_node('call_function', update_max_memory, (name, ), {}, name=name) + + +def insert_offload_opt_states(graph: Graph, graph_id: int, graph_order: List[int], profiling_results: ProfilingResult, + mem_budget: float, param_manager: DSGraphParamManager, bwd: bool) -> Graph: + + if bwd: + graph_order_with_backward = [g[0] for g in graph_order if g[1]] + is_last_graph = graph_id == graph_order_with_backward[0] + + inserted_reload = False + for node in graph.nodes: + # print(f"Node: {node.name} mem: {mem_dict[node.name]}") + if node.op == 'output' and not inserted_reload and is_last_graph: + # print(f"Inserting reload_opt before {node.name}") + with graph.inserting_before(node): + graph.create_node('call_function', reload_adam_states_sync, (), {}, name="reload_opt") + inserted_reload = True + + # add_record_max_mem_nodes(graph) + + else: + is_first_graph = graph_id == graph_order[0][0] + + graph = move_primals_to_head(graph) + + inserted_offload = False + for node in graph.nodes: + # print(f"Node: {node.name} mem: {mem_dict[node.name]}") + if node.op != 'placeholder' and not inserted_offload and is_first_graph: + print(f"Inserting offload_opt before {node.name}") + with graph.inserting_before(node): + graph.create_node('call_function', offload_adam_states_sync, (), {}, name="offload_opt") + inserted_offload = True + + add_record_max_mem_nodes(graph) + + return graph + + +def move_opt_states(gm: GraphModule, graph_id: int, graph_order: List[int], profiling_results, create_inputs_fn, + mem_budget: float, param_manager: DSGraphParamManager, bwd: bool) -> GraphModule: + gm.graph = offload_opt_states_inc(gm.graph, graph_id, graph_order, profiling_results, mem_budget, param_manager, + bwd) + return gm + + +def move_opt_states_sync(gm: GraphModule, graph_id: int, graph_order: List[int], profiling_results, create_inputs_fn, + mem_budget: float, param_manager: DSGraphParamManager, bwd: bool) -> GraphModule: + gm.graph = insert_offload_opt_states(gm.graph, graph_id, graph_order, profiling_results, mem_budget, param_manager, + bwd) + return gm + + +def offload_adam_states_for_init(gm: GraphModule, graph_id: int, graph_order: List[int], profiling_results, + create_inputs_fn, mem_budget: float, param_manager: DSGraphParamManager, + bwd: bool) -> GraphModule: + if not bwd and graph_id == graph_order[0][0]: + with unset_fake_temporarily(): + offload_adam_states_sync() + # returns None, and profiling will be skipped + + +def init_offload_opt_states(adam_optimizer, _nz3): + lazy_init() + + global optimizer + optimizer = adam_optimizer + global device + device = torch.device(get_accelerator().current_device()) + global nz3 + nz3 = _nz3 diff --git a/deepspeed/compile/passes/offload_parameters.py b/deepspeed/compile/passes/offload_parameters.py new file mode 100644 index 000000000..29468f497 --- /dev/null +++ b/deepspeed/compile/passes/offload_parameters.py @@ -0,0 +1,54 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from typing import List + +import torch +from torch.fx import Node, GraphModule +from deepspeed.compile.util import get_last_uses +from ..graph_param import DSGraphParamManager + + +def add_offload_parameter(graph_id: int, gm: GraphModule, node: Node, ds_id: int): + new_node = None + with gm.graph.inserting_after(node): + args = (node, ) + for a in [graph_id, ds_id]: # To add ds_id + args += (a, ) + new_node = gm.graph.create_node('call_function', + torch.ops.dc.offload_parameter.default, + args, {}, + name="offload_parameter") + + return new_node + + +def add_reload_parameter(graph_id: int, gm: GraphModule, node: Node, ds_id: int): + new_node = None + with gm.graph.inserting_after(node): + args = (node, ) + for a in [graph_id, ds_id]: # To add ds_id + args += (a, ) + new_node = gm.graph.create_node('call_function', + torch.ops.dc.reload_parameter.default, + args, {}, + name=f"reload_parameter") + return new_node + + +def get_ds_id(node: Node): + assert node.target == torch.ops.dc.allgather_param.default + return node.args[2] + + +def offload_parameter_fwd(gm: GraphModule, graph_id: int, graph_order: List[int], profiling_results, create_inputs_fn, + mem_budget: float, param_manager: DSGraphParamManager, bwd: bool) -> GraphModule: + node_to_last_use, user_to_last_uses = get_last_uses(gm.graph) + for node in gm.graph.nodes: + if (isinstance(node, Node) and node.target == torch.ops.dc.allgather_param.default): + add_reload_parameter(graph_id, gm, node.args[0], get_ds_id(node)) + add_offload_parameter(graph_id, gm, node_to_last_use[node], get_ds_id(node)) + gm.graph.lint() + return gm diff --git a/deepspeed/compile/passes/prefetch.py b/deepspeed/compile/passes/prefetch.py new file mode 100644 index 000000000..ce0d721f8 --- /dev/null +++ b/deepspeed/compile/passes/prefetch.py @@ -0,0 +1,174 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from typing import List + +import torch +from torch.fx import Graph, Node, GraphModule + +from deepspeed.accelerator import get_accelerator +import deepspeed.comm as dist + +from ..profilers.comm_profile import create_predictor +from ..graph_param import DSGraphParamManager + +NAME = "prefetch" + +FUSE_FACTOR = 0.8 +MARGIN = 0.1 +MAX_FUSE_SIZE = 1e9 +MAX_BUFFERED_SIZE = 4e9 + +run_prefetch_pass = False + + +def print_rank_0(message): + if dist.get_rank() == 0: + print(message) + + +def get_ds_id(node: Node): + assert node.target == torch.ops.dc.allgather_param.default + return node.args[2] + + +def schedule_prefetch(gm: GraphModule, graph_id: int, graph_order: List[int], profiling_results, create_inputs_fn, + mem_budget: float, param_manager: DSGraphParamManager, bwd: bool) -> GraphModule: + + max_mem = get_accelerator().total_memory() * (1 - MARGIN) + vals_to_bcast = torch.tensor([max_mem], device=torch.device(get_accelerator().current_device())) + dist.all_reduce(vals_to_bcast, dist.ReduceOp.MIN) + max_mem = vals_to_bcast[0].item() + + mem = profiling_results[graph_id].bwd_mem if bwd else profiling_results[graph_id].fwd_mem + op_time = profiling_results[graph_id].bwd_time if bwd else profiling_results[graph_id].fwd_time + tensor_sizes = profiling_results[graph_id].bwd_tensor_sizes if bwd else profiling_results[graph_id].fwd_tensor_sizes + + mem_dict = {name: (alloc_mem, peak) for name, alloc_mem, delta, peak in mem} + time_dict = {name: (device_time, wall_time) for name, device_time, wall_time in op_time} + tensor_size_dict = {name: size for name, size in tensor_sizes} + + graph = gm.graph + total_param_size = sum( + [tensor_size_dict[n.name] for n in graph.nodes if n.target == torch.ops.dc.allgather_param.default]) + + print_rank_0( + f"schedule_prefetch graph_id={graph_id} max_mem={max_mem} available_memory={get_accelerator().available_memory()} memory_allocated={get_accelerator().memory_allocated()} max_allocated={get_accelerator().max_memory_allocated()} total_param_size={total_param_size} margin={MARGIN}" + ) + + # Fill missing values + prev_mem = 0 + prev_peak = 0 + for node in graph.nodes: + if node.name in mem_dict: + prev_mem = mem_dict[node.name][0] + prev_peak = mem_dict[node.name][1] + else: + print_rank_0(f"node {node.name} not in mem_dict") + mem_dict[node.name] = (prev_mem, prev_peak) + + comm_predictor = create_predictor() + + order_rev = list(reversed(graph.nodes)) + new_order_rev = [] + prefetch_ags = [] + prefetch_ag_groups = [] + ag_tensor_size_sum = 0 + for i, node in enumerate(order_rev): + # print_rank_0( + # f"Checking node reverse order {node.name} {node.target} ag_tensor_size_sum={ag_tensor_size_sum} max_mem={max_mem}" + # ) + + if node.op != "placeholder": + assert i < len(order_rev) - 1 + assert node.name in mem_dict + next_node = order_rev[i + 1] + next_alloc_mem, next_peak = mem_dict[next_node.name] + + # Free up memory + while next_peak + ag_tensor_size_sum > max_mem or ag_tensor_size_sum > MAX_BUFFERED_SIZE: + if len(prefetch_ag_groups) > 0: + # launch prefetch + fused_ag_nodes = prefetch_ag_groups.pop(0) + total_ag_tensor_size = sum([tensor_size_dict[ag_node.name] for ag_node in fused_ag_nodes]) + ag_tensor_size_sum -= total_ag_tensor_size + new_order_rev.append(fused_ag_nodes) + assert len(fused_ag_nodes) > 0 + # print_rank_0( + # f"Free up memory fused_ag_nodes={fused_ag_nodes} next_alloc_mem={next_alloc_mem} total_ag_tensor_size={total_ag_tensor_size} ag_tensor_size_sum={ag_tensor_size_sum} max_mem={max_mem}" + # ) + elif len(prefetch_ags) > 0: + prefetch_ag_groups.append(prefetch_ags) + prefetch_ags = [] + # print_rank_0( + # f"Free up memory prefetch_ags={prefetch_ag_groups} next_alloc_mem={next_alloc_mem} ag_tensor_size_sum={ag_tensor_size_sum} max_mem={max_mem}" + # ) + else: + break + + if node.target == torch.ops.dc.allgather_param.default: + + current_ag_size = sum([tensor_size_dict[ag_node.name] for ag_node in prefetch_ags]) + pred_time_current = comm_predictor(current_ag_size) + pred_time_next = comm_predictor(tensor_size_dict[node.name]) + pred_time_fused = comm_predictor(current_ag_size + tensor_size_dict[node.name]) + + do_fuse = max(pred_time_current, pred_time_next) * 1.2 > pred_time_fused and ( + current_ag_size + tensor_size_dict[node.name]) < MAX_FUSE_SIZE + # print_rank_0( + # f"found allgather_param do_fuse={do_fuse} current_ag_size={current_ag_size} tensor_size_dict[node.name]={tensor_size_dict[node.name]} pred_time_current={pred_time_current} pred_time_next={pred_time_next} pred_time_fused={pred_time_fused}" + # ) + + if len(prefetch_ags) > 0 and not do_fuse: + # stop fusing here + prefetch_ag_groups.append(prefetch_ags) + prefetch_ags = [] + # print_rank_0( + # f"stop fusing prefetch_ags={prefetch_ag_groups} ag_tensor_size_sum={ag_tensor_size_sum}") + # else: + # print_rank_0( + # f"continue fusing ag_tensor_size_sum={ag_tensor_size_sum} ag_size={tensor_size_dict[node.name]} prefetch_ags={prefetch_ags} prefetch_ag_groups={prefetch_ag_groups}" + # ) + prefetch_ags.append(node) + ag_tensor_size_sum += tensor_size_dict[node.name] + + new_order_rev.append(node) + + if (node.op != "placeholder" + and node.target != torch.ops.dc.reload_parameter) and order_rev[i + 1].op == "placeholder": + for ag_group in prefetch_ag_groups: + assert len(ag_group) > 0 + new_order_rev.append(ag_group) + total_ag_tensor_size = sum([tensor_size_dict[ag_node.name] for ag_node in ag_group]) + ag_tensor_size_sum -= total_ag_tensor_size + if len(prefetch_ags) > 0: + new_order_rev.append(prefetch_ags) + ag_tensor_size_sum -= sum([tensor_size_dict[ag_node.name] for ag_node in prefetch_ags]) + assert ag_tensor_size_sum == 0 + + # print_rank_0( + # f"node={node} next_alloc_mem={next_alloc_mem} pending_ags={len(prefetch_ags)} ag_tensor_size_sum={ag_tensor_size_sum}" + # ) + + assert ag_tensor_size_sum >= 0 + + new_graph = Graph() + env = {} + for node in reversed(new_order_rev): + if isinstance(node, Node): + #print(f"reconstruct {node.name} {node.target}") + new_node = new_graph.node_copy(node, lambda n: env[n.name]) + env[node.name] = new_node + else: + param_nodes = [ag_node.args[0] for ag_node in node] + param_nodes_copy = [env[param_node.name] for param_node in param_nodes] + + ds_ids = [get_ds_id(ag_node) for ag_node in node] + new_graph.call_function(torch.ops.dc.prefetch_params_fused.default, + args=(graph_id, param_nodes_copy, ds_ids)) + new_graph.lint() + gm.graph = new_graph + + return gm diff --git a/deepspeed/compile/passes/selective_gather.py b/deepspeed/compile/passes/selective_gather.py new file mode 100644 index 000000000..83306872c --- /dev/null +++ b/deepspeed/compile/passes/selective_gather.py @@ -0,0 +1,146 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from collections import defaultdict +from typing import List + +import torch +from torch.fx import GraphModule + +import deepspeed.comm as dist +from deepspeed.accelerator import get_accelerator + +from ..util import get_deepcompile_handle +from ..graph_param import DSGraphParamManager + +NAME = "selective_gather" + +max_alloc_mem = 0 +last_optimize_step = 0 + + +def selective_gather(gm: GraphModule, graph_id: int, graph_order: List[int], profiling_results, create_inputs_fn, + mem_budget: float, param_manager: DSGraphParamManager, bwd: bool) -> GraphModule: + + if not bwd: + return gm + + last_backward_graph_id = None + for g_id, needs_bwd in graph_order: + if needs_bwd: + last_backward_graph_id = g_id + break + + # Run only on the last backward graph + if last_backward_graph_id is None or graph_id != last_backward_graph_id: + return gm + + peak_mem = 0 + for graph_id, prof in profiling_results.items(): + # Use peak memory + fwd_max_mem = max(m[3] for m in prof.fwd_mem) + bwd_max_mem = max(m[3] for m in prof.bwd_mem) if len(prof.bwd_mem) > 0 else 0 + peak_mem = max(peak_mem, fwd_max_mem, bwd_max_mem) + if dist.get_rank() == 0: + print( + f"selective_gather graph_id={graph_id} max_mem={peak_mem} fwd_max_mem={fwd_max_mem} bwd_max_mem={bwd_max_mem}" + ) + + persistent_ds_ids = set() + for graph_id, pm in param_manager.items(): + for name, ds_param in pm.params.items(): + if ds_param.param.ds_persist: + persistent_ds_ids.add(pm.ds_ids[name]) + + ds_id_to_size = {} + ds_id_to_time = defaultdict(float) + ds_id_to_prof_dtime = defaultdict(float) + ds_id_to_prof_wtime = defaultdict(float) + + for graph_id, pm in param_manager.items(): + params = pm.params + for param_name, param in params.items(): + ds_id = pm.ds_ids[param_name] + ds_id_to_size[ds_id] = param.numel * param.dtype.itemsize + + profile = profiling_results[graph_id] + for n in profile.fwd_graph.nodes: + if n.target == torch.ops.dc.allgather_param.default: + assert "tensor_size" in n.meta + ds_id_to_size[n.args[2]] = n.meta["tensor_size"] + assert "device_time" in n.meta + ds_id_to_time[n.args[2]] += n.meta["device_time"] + + ds_id_to_prof_dtime[n.args[2]] = n.meta["device_time"] + ds_id_to_prof_wtime[n.args[2]] = n.meta["wall_time"] + + if profile.bwd_graph is not None: + for n in profile.bwd_graph.nodes: + if n.target == torch.ops.dc.allgather_param.default: + assert "tensor_size" in n.meta + ds_id_to_size[n.args[2]] = n.meta["tensor_size"] + assert "device_time" in n.meta + ds_id_to_time[n.args[2]] += n.meta["device_time"] + + ds_ids = [ds_id for ds_id in ds_id_to_size if ds_id not in persistent_ds_ids] + ds_ids.sort(key=lambda ds_id: ds_id_to_time[ds_id] / ds_id_to_size[ds_id], reverse=True) + + # print(f"ds_id_to_size={ds_id_to_size}") + # print(f"ds_id_to_time={ds_id_to_time}") + + # if dist.get_rank() == 0: + # for ds_id in ds_ids: + # dtime_in_sec = ds_id_to_prof_dtime[ds_id] + # wtime_in_sec = ds_id_to_prof_wtime[ds_id] + # size_in_mb = ds_id_to_size[ds_id] / 1024 / 1024 + # print( + # f"ds_id={ds_id} time_per_size={ds_id_to_time[ds_id] / ds_id_to_size[ds_id]:.5f} dtime={dtime_in_sec:.3f} wtime={wtime_in_sec:.3f} size={size_in_mb:.2f}MB bw={size_in_mb/dtime_in_sec:.2f}MB/s" + # ) + + sorted_ds_ids = {ds_id: ds_id_to_size[ds_id] for ds_id in ds_ids} + + accelerator = get_accelerator() + total_mem = accelerator.total_memory() + vals_to_bcast = torch.tensor([total_mem], device=torch.device(get_accelerator().current_device())) + dist.all_reduce(vals_to_bcast, dist.ReduceOp.MIN) + total_mem = vals_to_bcast[0].item() + + MEM_MARGIN = 0.1 + available_mem = total_mem * (1 - MEM_MARGIN) - peak_mem + + if dist.get_rank() == 0: + print( + f"selective_gather max_mem={peak_mem} total_mem={total_mem} MEM_MARGIN={MEM_MARGIN} available_mem={available_mem}" + ) + + ds_id_to_param = {} + for g_id, g_pm in param_manager.items(): + for name, ds_param in g_pm.params.items(): + ds_id_to_param[g_pm.ds_ids[name]] = ds_param.param + + persistent_mem = 0 + nz3 = get_deepcompile_handle() + for ds_id, size in sorted_ds_ids.items(): + if persistent_mem + size > available_mem: + break + persistent_mem += size + + param_obj = ds_id_to_param[ds_id] + + nz3.set_persistent(ds_id) + if dist.get_rank() == 0: + print(f"Set persistent: {ds_id} size: {size} persistent_mem: {persistent_mem} shape: {param_obj.ds_shape}") + + return gm + + +# def make_selective_gather(z3_optimizer, nz3): + +# def selective_gather_wrapper(graph: Graph, graph_id: int, graph_order: List[int], profiling_results, +# mem_budget: float, param_manager, bwd: bool) -> Graph: +# return selective_gather(graph, graph_id, graph_order, profiling_results, mem_budget, param_manager, bwd, +# z3_optimizer, nz3) + +# return selective_gather_wrapper diff --git a/deepspeed/compile/passes/zero1_compile.py b/deepspeed/compile/passes/zero1_compile.py new file mode 100644 index 000000000..fb331cc6b --- /dev/null +++ b/deepspeed/compile/passes/zero1_compile.py @@ -0,0 +1,55 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from typing import List + +import torch +from torch.fx import GraphModule + +from ..util import get_deepcompile_handle +from ..fx import add_postprocess, move_primals_to_head, _make_node_meta + +NAME = "zero1_compile" + + +def add_z1_reduce_fw(gm: GraphModule, graph_id: int, profiling_results, param_manager) -> GraphModule: + + dc = get_deepcompile_handle() + param_indices = profiling_results[graph_id].param_indices + dc.register_graph_z1(graph_id, [v[1] for v in param_indices]) # Need this before profiling + + return gm + + +def add_z1_reduce_bw(gm: GraphModule, graph_id: int, param_manager) -> GraphModule: + + graph = gm.graph + pm = param_manager[graph_id] + _, param_name_to_grad = pm.get_bwd_mapping(graph) + + for param_name in pm.param_names: + + grad_node = param_name_to_grad[param_name] + + assert param_name in pm.ds_ids, f"param_name={param_name} not in ds_ids" + ds_id = pm.ds_ids[param_name] + + new_node = add_postprocess(graph, + grad_node, + torch.ops.dc.reduce_grad.default, + extra_args=[graph_id, ds_id], + name=f"reduce_param_{param_name}", + meta=_make_node_meta(grad_node, param_name, True)) + new_node.meta["val"] = None + + gm.graph = move_primals_to_head(graph) + return gm + + +def add_z1_reduce(gm: GraphModule, graph_id: int, graph_order: List[int], profiling_results, create_inputs_fn, + mem_budget: float, param_manager, bwd: bool) -> GraphModule: + if bwd: + return add_z1_reduce_bw(gm, graph_id, param_manager) + return add_z1_reduce_fw(gm, graph_id, profiling_results, param_manager) diff --git a/deepspeed/compile/passes/zero3_compile.py b/deepspeed/compile/passes/zero3_compile.py new file mode 100644 index 000000000..4a69b42ed --- /dev/null +++ b/deepspeed/compile/passes/zero3_compile.py @@ -0,0 +1,186 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import gc +from typing import List, Dict + +import torch +from torch.fx import Graph, Node, GraphModule + +from ..util import get_input_nodes, get_param_nodes, get_index_by_graph_id, get_deepcompile_handle, get_real_uses +from ..fx import add_postprocess, _make_node_meta, get_output_node, move_primals_to_head +from ..profilers.graph_profile import ProfilingInterpreter +from ..list_schedule import fast_free_schedule + +import deepspeed.comm as dist +from deepspeed.accelerator import get_accelerator + +NAME = "zero3_compile" + + +def add_allgather(graph_id: int, graph: Graph, node: Node, ds_id: int): + new_ag_node = add_postprocess(graph, + node, + torch.ops.dc.allgather_param.default, + extra_args=[graph_id, ds_id], + name=f"allgather_ds_param_{node.target}_{ds_id}", + meta=_make_node_meta(node, ds_id, True)) + new_ag_node.meta["val"] = node.meta["val"] + + # Set the previous node back to output + # We don't want to change the output node to allgather + output_node = get_output_node(graph) + output_node.replace_input_with(new_ag_node, node) + + # Add wait as well + new_wait_node = add_postprocess(graph, + new_ag_node, + torch.ops.dc.wait_allgather.default, + extra_args=[graph_id, ds_id], + name=f"wait_allgather_ds_param__{node.target}_{ds_id}", + meta=_make_node_meta(node, ds_id, False)) + new_wait_node.meta["val"] = node.meta["val"] + + return new_ag_node + + +def add_release(graph_id: int, graph: Graph, node: Node, release_node: Node, ds_id: int, n_users: int): + new_node = add_postprocess(graph, + node, + torch.ops.dc.release_param.default, + extra_args=[graph_id, ds_id, n_users], + name=f"release_ds_param_{release_node.target}_{node.name}_{ds_id}", + meta=_make_node_meta(node, ds_id, False)) + new_node.meta["val"] = None + + +def add_reduce(graph_id: int, graph: Graph, grad_node: Node, param_name: str, ds_id: int): + new_node = add_postprocess(graph, + grad_node, + torch.ops.dc.reduce_grad.default, + extra_args=[graph_id, ds_id], + name=f"reduce_ds_param_{param_name}", + meta=_make_node_meta(grad_node, ds_id, True)) + new_node.meta["val"] = None + + +def add_gather_and_release(graph_id: int, graph: Graph, param_manager, param_nodes: List[Node]) -> Graph: + + node_to_uses = get_real_uses(graph) + for pn in param_nodes: + add_allgather(graph_id, graph, pn, param_manager.ds_ids[pn.name]) + ds_id = param_manager.ds_ids[pn.name] + users = node_to_uses[pn] + for user in users: + add_release(graph_id, graph, user, pn, ds_id, len(users)) + + return move_primals_to_head(graph) + + +def add_gather_and_reduce(graph_id: int, graph: Graph, param_manager, param_nodes_bw: List[Node], + param_name_to_grad: Dict[str, Node]) -> Graph: + + add_gather_and_release(graph_id, graph, param_manager, param_nodes_bw) + + for param_name in param_manager.param_names: + add_reduce(graph_id, graph, param_name_to_grad[param_name], param_name, param_manager.ds_ids[param_name]) + + return move_primals_to_head(graph) + + +def add_z3_gather_release_fw(gm: GraphModule, + graph_id: int, + graph_order: List[int], + profiling_results, + create_inputs_fn, + param_manager, + debug_log=False) -> GraphModule: + + nz3 = get_deepcompile_handle() + + real_inputs = create_inputs_fn() + param_indices = profiling_results[graph_id].param_indices + + gm.graph = add_gather_and_release(graph_id, gm.graph, param_manager[graph_id], + get_param_nodes(gm.graph, param_indices)) + + nz3.register_graph_z3(graph_id, [v[1] for v in param_indices]) # Need this before profiling + + profiler = ProfilingInterpreter(gm, debug_log=debug_log) + profiler.run(*real_inputs) + del profiler + gc.collect() + get_accelerator().empty_cache() + + rank = dist.get_rank() + graph_index = get_index_by_graph_id(graph_order, graph_id) + if rank == 0 and debug_log: + print(f"Fwd before scheduling graph {graph_index} graph_id={graph_id} {gm.graph}") + + for n in gm.graph.nodes: + is_ds_param = n.name in param_manager[graph_id].ds_ids + if "val" in n.meta and is_ds_param: + # Used for Inductor's validation + n.meta["val"] = torch.empty([0], dtype=n.meta['val'].dtype, device=n.meta['val'].device) + + gm.graph = fast_free_schedule( + gm.graph, + get_accelerator().available_memory(), + 0, # unused + debug_log=debug_log) + + if rank == 0 and debug_log: + print(f"Fwd after scheduling graph {graph_index} graph_id={graph_id} {gm.graph}") + + return gm + + +def add_z3_gather_release_bw(gm: GraphModule, + graph_id: int, + graph_order: List[int], + profiling_results, + create_inputs_fn, + param_manager, + debug_log=False) -> GraphModule: + + param_nodes_bw, param_name_to_grad = param_manager[graph_id].get_bwd_mapping(gm.graph) + gm.graph = add_gather_and_reduce(graph_id, gm.graph, param_manager[graph_id], param_nodes_bw, param_name_to_grad) + + input_nodes = get_input_nodes(gm.graph) + real_inputs = create_inputs_fn() + assert len(input_nodes) == len(real_inputs), f"Expected {len(real_inputs)} inputs, got {len(input_nodes)}" + + real_outputs = ProfilingInterpreter(gm, debug_log=debug_log).run(*real_inputs) + + del real_outputs + gc.collect() + get_accelerator().empty_cache() + + rank = dist.get_rank() + graph_index = get_index_by_graph_id(graph_order, graph_id) + if rank == 0 and debug_log: + print(f"Bwd before scheduling graph {graph_index} graph_id={graph_id} {gm.graph}") + + # gm.graph = fast_free_schedule(gm.graph, get_accelerator().available_memory(), 0, debug_log=debug_log) + return gm + + +def add_z3_gather_release(gm: GraphModule, graph_id: int, graph_order: List[int], profiling_results, create_inputs_fn, + mem_budget: float, param_manager, bwd: bool) -> GraphModule: + if bwd: + return add_z3_gather_release_bw(gm, + graph_id, + graph_order, + profiling_results, + create_inputs_fn, + param_manager, + debug_log=False) + return add_z3_gather_release_fw(gm, + graph_id, + graph_order, + profiling_results, + create_inputs_fn, + param_manager, + debug_log=False) diff --git a/deepspeed/compile/patch_compiled_func.py b/deepspeed/compile/patch_compiled_func.py new file mode 100644 index 000000000..c77d529a6 --- /dev/null +++ b/deepspeed/compile/patch_compiled_func.py @@ -0,0 +1,93 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import torch +from deepspeed.utils.torch import required_torch_version + +backward_inputs = [] + +enabled_patched_func = False +original_grad_fn = None +base_meta = type(torch.autograd.Function) + +if required_torch_version(min_version=2.7): + + class FunctionMeta(base_meta): + + def __new__(cls, name, bases, dct): + if name == "CompiledFunction": + original_backward_impl = dct.get("_backward_impl") + + def wrapped_backward_impl(ctx, all_args): + assert original_backward_impl is not None + + if enabled_patched_func: + backward_inputs.append(all_args) + wrapped_backward_impl.owner_class.compiled_bw = None + + return original_backward_impl(ctx, all_args) + + wrapped_backward_impl.owner_class = None + dct["_backward_impl"] = staticmethod(wrapped_backward_impl) + new_class = super().__new__(cls, name, bases, dct) + wrapped_backward_impl.owner_class = new_class + + return new_class + + return super().__new__(cls, name, bases, dct) + +elif required_torch_version(min_version=2.6): + + class FunctionMeta(base_meta): + + def __new__(cls, name, bases, dct): + if name == "CompiledFunction": + original_backward_prologue = dct.get("_backward_prologue") + + def wrapped_backward_prologue(ctx, *grad_outputs): + assert original_backward_prologue is not None + + all_args = original_backward_prologue(ctx, *grad_outputs) + if enabled_patched_func: + backward_inputs.append(all_args) + wrapped_backward_prologue.owner_class.compiled_bw = None + + return all_args + + wrapped_backward_prologue.owner_class = None + dct["_backward_prologue"] = staticmethod(wrapped_backward_prologue) + new_class = super().__new__(cls, name, bases, dct) + wrapped_backward_prologue.owner_class = new_class + + return new_class + + return super().__new__(cls, name, bases, dct) + + +def patch_compiled_func(): + + global enabled_patched_func + enabled_patched_func = True + + class PatchedFunction(torch.autograd.Function, metaclass=FunctionMeta): + pass + + global original_grad_fn + original_grad_fn = torch.autograd.Function + torch.autograd.Function = PatchedFunction + + return backward_inputs + + +def unpatch_compiled_func(): + global enabled_patched_func + enabled_patched_func = False + + global original_grad_fn + torch.autograd.Function = original_grad_fn + + +def get_backward_inputs(): + return backward_inputs diff --git a/deepspeed/compile/patch_fake_tensor.py b/deepspeed/compile/patch_fake_tensor.py new file mode 100644 index 000000000..1924e8861 --- /dev/null +++ b/deepspeed/compile/patch_fake_tensor.py @@ -0,0 +1,53 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import torch + +try: + from torch._subclasses import FakeTensorMode + from torch._subclasses.fake_tensor import unset_fake_temporarily + from torch._dynamo.variables.builder import wrap_to_fake_tensor_and_record +except ImportError: + # Unsupported torch version + pass + + +def wrap_if_ds_param(t): + if hasattr(t, 'ds_id'): + data = torch.rand(t.ds_shape, + dtype=t.dtype, + layout=t.layout, + device=t.device, + pin_memory=t.is_pinned(), + requires_grad=t.requires_grad) + if isinstance(t, torch.nn.Parameter): + t = torch.nn.Parameter(data, requires_grad=t.requires_grad) + else: + t = data + return t + + +def patch_fake_tensor(): + # dynamo tracer uses wrap_to_fake_tensor_and_record + # Wrapping FakeTensorMode.from_tensor is not sufficient as dynamo generates SymbolicContext before calling from_tensor + original_wrap_to_fake_tensor_and_record = wrap_to_fake_tensor_and_record + + def wrap_to_fake_tensor_and_record_wrapper(t, *args, **kwargs): + dummy_tensor = wrap_if_ds_param(t) + ret = original_wrap_to_fake_tensor_and_record(dummy_tensor, *args, **kwargs) + if tracing_context := torch._guards.TracingContext.try_get(): + tracing_context.tensor_to_context[t] = tracing_context.tensor_to_context.pop(dummy_tensor) + return ret + + torch._dynamo.variables.builder.wrap_to_fake_tensor_and_record = wrap_to_fake_tensor_and_record_wrapper + + # aot_module_simplified uses fake_mode.from_tensor to process inputs + original_from_tensor = FakeTensorMode.from_tensor + + def from_tensor_wrapper(self, t, *args, **kwargs): + with unset_fake_temporarily(): + return original_from_tensor(self, wrap_if_ds_param(t), *args, **kwargs) + + FakeTensorMode.from_tensor = from_tensor_wrapper diff --git a/deepspeed/compile/profilers/__init__.py b/deepspeed/compile/profilers/__init__.py new file mode 100644 index 000000000..7adb54f11 --- /dev/null +++ b/deepspeed/compile/profilers/__init__.py @@ -0,0 +1,23 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from typing import List, Tuple +from dataclasses import dataclass, field + +from torch.fx import Graph + + +@dataclass +class ProfilingResult: + fwd_graph: Graph = None + bwd_graph: Graph = None + needs_backward: bool = False + fwd_mem: List[Tuple[str, int, int, int]] = field(default_factory=list) # name, current_alloc, delta, peak + bwd_mem: List[Tuple[str, int, int, int]] = field(default_factory=list) + fwd_time: List[Tuple[str, int, int]] = field(default_factory=list) # name, device_time, wall_time + bwd_time: List[Tuple[str, int, int]] = field(default_factory=list) + fwd_tensor_sizes: List[Tuple[str, int]] = field(default_factory=list) # name, size + bwd_tensor_sizes: List[Tuple[str, int]] = field(default_factory=list) + param_indices: List[Tuple[int, int, Tuple[int, ...]]] = field(default_factory=list) # index, ds_id, ds_shape diff --git a/deepspeed/compile/profilers/comm_profile.py b/deepspeed/compile/profilers/comm_profile.py new file mode 100644 index 000000000..18bd517c1 --- /dev/null +++ b/deepspeed/compile/profilers/comm_profile.py @@ -0,0 +1,171 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import os +import torch + +try: + from torch._subclasses.fake_tensor import unset_fake_temporarily +except ImportError: + # Unsupported torch version + pass + +import deepspeed +import deepspeed.comm as dist +from deepspeed.accelerator import get_accelerator + + +def sync_all(): + get_accelerator().synchronize() + dist.barrier() + + +def get_bw(comm_op, size, duration): + n = dist.get_world_size() + tput = 0 + busbw = 0 + + if duration == 0: + raise ValueError("Error. Duration is 0.") + + if comm_op == "all_to_all": + tput = (size / duration) + busbw = (size / duration) * ((n - 1) / n) + elif comm_op == "all_gather": + size *= n + tput = (size / duration) + busbw = (size / duration) * ((n - 1) / n) + elif comm_op == "all_reduce": + tput = (size * 2 / duration) + busbw = (size / duration) * (2 * (n - 1) / n) + elif comm_op == "pt2pt" or comm_op == "broadcast": + tput = (size / duration) + busbw = tput + else: + raise ValueError("wrong comm_op specified") + + return tput, busbw + + +# Run all_gather and print metrics +def timed_all_gather(device, input, output, start_event, end_event, warmup, trials, async_op): + sync_all() + # Warmups, establish connections, etc. + for i in range(warmup): + dist.all_gather_into_tensor(output, input, async_op=async_op) + sync_all() + + # time the actual comm op trials times and average it + start_event.record() + for i in range(trials): + dist.all_gather_into_tensor(output, input, async_op=async_op) + end_event.record() + sync_all() + duration = start_event.elapsed_time(end_event) / 1000 + + # maintain and clean performance data + avg_duration = duration / trials + size = input.element_size() * input.nelement() * dist.get_world_size() + # tput, busbw = get_bw('all_gather', size, avg_duration) + + avg_duration_ten = torch.tensor([avg_duration], device=device) + if dist.get_world_size() > 1: + dist.all_reduce(avg_duration_ten, dist.ReduceOp.AVG) + + return size, avg_duration_ten.item() + + +def run_all_gather(device, dtype, maxsize, warmup=5, trials=10, async_op=False): + + # Prepare benchmark header + global_rank = dist.get_rank() + world_size = dist.get_world_size() + + start_event = get_accelerator().Event(enable_timing=True) + end_event = get_accelerator().Event(enable_timing=True) + + # Create list of message sizes + M_LIST = [] + for x in (2**p for p in range(1, maxsize)): + m = x // world_size + if m > 0: + M_LIST.append(m) + + results = [(0, 0)] + sync_all() + # loop over various tensor sizes + for M in M_LIST: + global_rank = dist.get_rank() + try: + mat = torch.ones(M, dtype=dtype, device=device) + sync_all() + input = ((mat.mul_(float(global_rank))).view(-1)) + # Delete original mat to avoid OOM + del mat + get_accelerator().empty_cache() + output = torch.zeros(input.nelement() * world_size, dtype=dtype, device=device) + except RuntimeError as e: + if 'out of memory' in str(e): + if dist.get_rank() == 0: + print('WARNING: Ran out of GPU memory. Exiting comm op.') + sync_all() + break + else: + raise e + sync_all() + results.append(timed_all_gather(device, input, output, start_event, end_event, warmup, trials, async_op)) + + return results + + +profile_results = None + + +def create_predictor(): + global profile_results + if profile_results is None: + with unset_fake_temporarily(): + device = get_accelerator().current_device() + profile_results = run_all_gather(device, torch.bfloat16, 31) + if dist.get_rank() == 0: + for size, avg_duration in profile_results: + print(f"size: {size}, avg_duration: {avg_duration}") + + # Extract size and avg_duration from results + sizes = [result[0] for result in profile_results] + durations = [result[1] for result in profile_results] + + try: + from scipy.interpolate import interp1d + except ImportError: + raise RuntimeError("Please install scipy to use communication profiler in DeepCompile") + + predictor = interp1d(sizes, durations, kind='linear', fill_value="extrapolate") + + def f(size): + if size == 0: + return 0 + return predictor(size) + + # Create an interpolation function + return f + + +if __name__ == "__main__": + local_rank = int(os.environ['LOCAL_RANK']) + get_accelerator().set_device(local_rank) + print(f"local_rank={local_rank}") + + deepspeed.init_distributed(dist_backend='nccl') + + # Create predictor function + predictor = create_predictor() + + # Predict time for a specific data size + example_size = 1e9 + predicted_time = predictor(example_size) + print(f"Predicted time for size {example_size}: {predicted_time:.6f} seconds") + + dist.destroy_process_group() diff --git a/deepspeed/compile/profilers/graph_profile.py b/deepspeed/compile/profilers/graph_profile.py new file mode 100644 index 000000000..1a9b12c89 --- /dev/null +++ b/deepspeed/compile/profilers/graph_profile.py @@ -0,0 +1,295 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import time +from typing import Any, Tuple, Dict +import statistics + +import torch +from torch.fx import GraphModule, Interpreter +from torch.fx.node import map_aggregate + +try: + from torch.utils._pytree import tree_all, tree_leaves + from torch._subclasses.fake_tensor import unset_fake_temporarily, is_fake +except ImportError: + # Unsupported torch version + pass + +import deepspeed.comm as dist +from deepspeed.accelerator import get_accelerator +from ..util import is_comm_op, is_release_node, get_deepcompile_handle + + +def _all_real_if_tensor(args): + return tree_all(lambda x: not torch.is_tensor(x) or not is_fake(x), args) + + +def _to(v, device): + if torch.is_tensor(v): + with unset_fake_temporarily(): + return v.to(device) + return v + + +def _args_to_key(v): + + def _tensor_to_key(v) -> str: + if torch.is_tensor(v): + if v.numel() == 1: + return f"{v.dtype}{v.device}{v.item()}" + else: + return f"{v.dtype}{v.device}{v.shape}" + return str(v) + + return map_aggregate(v, _tensor_to_key) + + +def _node_size(out): + return sum([v.element_size() * v.numel() for v in tree_leaves(out) if torch.is_tensor(v)]) + + +def _get_mem_usage_out_of_torch(): + + adjust = 0 + try: + import pynvml + pynvml.nvmlInit() + + current_dev_id = get_accelerator().current_device() + handle = pynvml.nvmlDeviceGetHandleByIndex(current_dev_id) + info = pynvml.nvmlDeviceGetMemoryInfo(handle) + + torch_alloc = get_accelerator().memory_allocated() + adjust = info.used - torch_alloc + except: + # pynvml not available + pass + + return adjust + + +# https://pytorch.org/tutorials/intermediate/fx_profiling_tutorial.html +class ProfilingInterpreter(Interpreter): + + def __init__(self, gm: GraphModule, iteration: int = 10, warmup: int = 5, debug_log=False): + super().__init__(gm) + + self.nz3 = get_deepcompile_handle() + + assert iteration > 0 + assert warmup >= 0 + self.iteration = iteration + self.warmup = warmup + self.device = torch.device(get_accelerator().current_device()) + self.cache: Dict[Tuple, Any] = {} + self.distributed = dist.is_initialized() + self.allgather_mem: Dict[int, int] = {} + self.debug_log = debug_log + self.mem_usage_out_of_torch = 0 + + def run(self, *args) -> Any: + """Run the graph with profiling enabled. + + args: inputs to the graph. Tensors in the inpusts must be real tensors, not fake tensors. args can contain ds parameters. + returns: The output of the graph. Tensor in the output is real tensors. + """ + try: + assert _all_real_if_tensor(args), "Inputs must be real tensors" + self.nz3.enable_profiling(True) + + with unset_fake_temporarily(): + with get_accelerator().random().fork_rng(devices=[self.device]): + self.mem_usage_out_of_torch = _get_mem_usage_out_of_torch() + return_val = super().run(*args) + except Exception as e: + msg = e.msg if "msg" in dir(e) else str(e) + print(f"Profiling error {msg}") + finally: + self.nz3.clear_all_gathered_params() + self.nz3.enable_profiling(False) + return return_val + + def run_node(self, n: torch.fx.Node) -> Any: + + if n.op in {"placeholder", "output"}: + n.meta["device_time"] = 0.0 + n.meta["wall_time"] = 0.0 + n.meta["memory"] = 0 + n.meta["max_memory"] = 0 + n.meta["tensor_size"] = _node_size(n) + return super().run_node(n) + + args, kwargs = self.fetch_args_kwargs_from_env(n) + assert isinstance(args, tuple) + assert isinstance(kwargs, dict) + + def rebuild_param_if_necessary(v): + if hasattr(v, "ds_id"): + v.all_gather(param_list=[v]) + return v + + args = map_aggregate(args, lambda x: rebuild_param_if_necessary(x)) + + args = map_aggregate(args, lambda x: _to(x, self.device)) + kwargs = map_aggregate(kwargs, lambda x: _to(x, self.device)) + + cache_key = (n.target, _args_to_key(args), _args_to_key(kwargs)) + cache_hit = cache_key in self.cache + + cache_hit_flag = torch.tensor([0 if cache_hit else 1], device=self.device, dtype=torch.int) + if self.distributed: + dist.all_reduce(cache_hit_flag, dist.ReduceOp.SUM) + cache_hit = cache_hit_flag.item() == 0 + + if cache_hit: + device_time, wall_time, alloc_mem, max_mem, tensor_size = self.cache[cache_key] + n.meta["device_time"] = device_time + n.meta["wall_time"] = wall_time + n.meta["alloc_memory"] = alloc_mem + n.meta["max_memory"] = max_mem + n.meta["tensor_size"] = tensor_size + + is_release_op = is_release_node(n) + run_only_once = cache_hit or is_release_op + iteration = 1 if run_only_once else self.iteration + accelerator = get_accelerator() + start_events = [accelerator.Event(enable_timing=True) for _ in range(iteration)] + end_events = [accelerator.Event(enable_timing=True) for _ in range(iteration)] + + get_accelerator().reset_peak_memory_stats() + alloc_mem_start = get_accelerator().memory_allocated() + max_mem_start = get_accelerator().max_memory_allocated() + + if not run_only_once: + for i in range(self.warmup): + out = getattr(self, n.op)(n.target, args, kwargs) + + if is_comm_op(n): + assert self.distributed, f"Distributed environment is not initialized but comm operator {n.name} {n.target} is used." + dist.barrier() + + start = time.time() + for i in range(iteration): + start_events[i].record() + out = getattr(self, n.op)(n.target, args, kwargs) + end_events[i].record() + accelerator.synchronize() + walltime_sum = time.time() - start + + if is_comm_op(n): + dist.barrier() + + alloc_mem = get_accelerator().memory_allocated() - alloc_mem_start + self.mem_usage_out_of_torch + max_memory = get_accelerator().max_memory_allocated() - max_mem_start + self.mem_usage_out_of_torch + tensor_size = _node_size(out) + + def partition_param_if_necessary(v): + if hasattr(v, "ds_id") and not v.ds_persist: + v.partition(param_list=[v], has_been_updated=False) + return v + + args = map_aggregate(args, lambda x: partition_param_if_necessary(x)) + + if not cache_hit: + device_time = statistics.mean([s.elapsed_time(e) for s, e in zip(start_events, end_events)]) + wall_time = walltime_sum / iteration * 1000 + + with unset_fake_temporarily(): + vals_to_bcast = torch.tensor([device_time, wall_time, alloc_mem, max_memory, tensor_size], + device=self.device) + if self.distributed: + dist.all_reduce(vals_to_bcast, dist.ReduceOp.AVG) + n.meta["device_time"] = vals_to_bcast[0].item() + n.meta["wall_time"] = vals_to_bcast[1].item() + n.meta["alloc_mem"] = int(vals_to_bcast[2].item()) + n.meta["max_mem"] = int(vals_to_bcast[3].item()) + n.meta["tensor_size"] = int(vals_to_bcast[4].item()) + self.cache[cache_key] = (n.meta["device_time"], n.meta["wall_time"], n.meta["alloc_mem"], + n.meta["max_mem"], n.meta["tensor_size"]) + + if is_release_op: + n.meta["alloc_mem"] = -self.allgather_mem.get(args[2], 0) + + if dist.get_rank() == 0 and self.debug_log: + print( + f"{n.target} {n.meta['device_time']:.2f}ms {n.meta['wall_time']:.2f}ms alloc_mem={n.meta['alloc_mem'] / 1024 / 1024:.2f}MB max_mem={n.meta['max_mem'] / 1024 / 1024:.2f}MB tensor_size={n.meta['tensor_size']}" + ) + + if n.target == torch.ops.dc.allgather_param.default: + out = args[0] + assert hasattr(out, "ds_id") + if not out.ds_persist: + self.nz3.invalidate_gathered_param(args[2]) + self.allgather_mem[out.ds_id] = n.meta["alloc_mem"] + + return out + + +class MemoryProfilingInterpreter(Interpreter): + + def __init__(self, gm: GraphModule, debug_log=False): + super().__init__(gm) + self.nz3 = get_deepcompile_handle() + self.device = torch.device(get_accelerator().current_device()) + self.mem_record = [] + self.last_alloc = get_accelerator().memory_allocated() + + self.node_counter = 0 + self.node_num = len(gm.graph.nodes) + self.debug_log = debug_log + + def run(self, *args) -> Any: + try: + assert _all_real_if_tensor(args), "Inputs must be real tensors" + self.nz3.enable_profiling(True) + self.mem_usage_out_of_torch = _get_mem_usage_out_of_torch() + + with unset_fake_temporarily(): + with get_accelerator().random().fork_rng(devices=[self.device]): + return_val = super().run(*args) + except Exception as e: + print(f"MemoryProfiling error {e}") + finally: + self.nz3.enable_profiling(False) + + return return_val + + def run_node(self, n: torch.fx.Node) -> Any: + get_accelerator().reset_peak_memory_stats() + + if n.op in {"placeholder", "output"}: + ret = super().run_node(n) + else: + args, kwargs = self.fetch_args_kwargs_from_env(n) + args = map_aggregate(args, lambda x: _to(x, self.device)) + kwargs = map_aggregate(kwargs, lambda x: _to(x, self.device)) + ret = getattr(self, n.op)(n.target, args, kwargs) + + del args, kwargs + + current_alloc = get_accelerator().memory_allocated() + self.mem_usage_out_of_torch + max_alloc = get_accelerator().max_memory_allocated() + self.mem_usage_out_of_torch + vals_to_bcast = torch.tensor([current_alloc, max_alloc], device=self.device) + dist.all_reduce(vals_to_bcast, dist.ReduceOp.MAX) + current_alloc = vals_to_bcast[0].item() + max_alloc = vals_to_bcast[1].item() + + self.mem_record.append((n.name, current_alloc, current_alloc - self.last_alloc, max_alloc)) + + self.node_counter += 1 + if self.debug_log and dist.get_rank() == 0: + print( + f"Mem prof Node {self.node_counter}/{self.node_num} {n.name} memory {current_alloc / 1024 / 1024:.2f}MB delta {(current_alloc - self.last_alloc) / 1024 / 1024:.2f}MB" + ) + + self.last_alloc = current_alloc + + return ret + + def dump(self, path): + import pandas as pd + df = pd.DataFrame(self.mem_record, columns=["node", "memory", "delta", "max_mem"]) + df.to_csv(path, index=False) diff --git a/deepspeed/compile/util.py b/deepspeed/compile/util.py new file mode 100644 index 000000000..fdeb5f434 --- /dev/null +++ b/deepspeed/compile/util.py @@ -0,0 +1,429 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +import functools +import operator +from typing import List, Tuple, Dict +from collections import defaultdict + +import torch +from torch.fx import Node, Graph +from torch.fx.node import map_aggregate, Argument, map_arg + +try: + from torch._subclasses.fake_tensor import unset_fake_temporarily +except ImportError: + # Unsupported torch version + pass + +import deepspeed.comm as dist +from deepspeed.accelerator import get_accelerator +from deepspeed.utils.torch import required_torch_version +from deepspeed.ops.op_builder.dc import DeepCompileBuilder + + +def is_deepcompile_supported() -> bool: + return required_torch_version(min_version=2.6, max_version=2.7) and get_accelerator().device_name() == "cuda" + + +dc_handle = None + +if is_deepcompile_supported(): + sym_size_ops = { + operator.ge, + operator.le, + operator.eq, + operator.ne, + operator.gt, + operator.lt, + torch.ops.aten.sym_size.int, + operator.getitem, + } + + +def get_deepcompile_handle(): + global dc_handle + if dc_handle is None: + dc_handle = DeepCompileBuilder().load() + return dc_handle + + +def is_backend_inductor(backend): + return backend == "inductor" + + +backward_started = False +pre_backward_hooks = [] + + +def add_pre_backward_hook(hook): + pre_backward_hooks.append(hook) + + +def deepcompile_backward_prologue(is_gradient_accumulation_boundary): + + for hook in pre_backward_hooks: + hook() + + dc = get_deepcompile_handle() + dc.start_backward(is_gradient_accumulation_boundary) + + +def log_rank0(msg: str, enable: bool = False): + if dist.get_rank() == 0 and enable: + print(msg) + + +def get_no_copy_ops(): + # Need to compile custom ops + get_deepcompile_handle() + return { + torch.ops.aten.t.default, torch.ops.aten.view.default, torch.ops.aten.detach.default, + torch.ops.aten.permute.default, torch.ops.dc.wait_allgather.default + } + + +def get_input_nodes(graph: Graph) -> List[Node]: + return [n for n in graph.nodes if n.op == "placeholder"] + + +def get_param_nodes(graph: Graph, index_to_ds_ids: List[Tuple[int, int]]) -> List[Node]: + all_input_nodes = get_input_nodes(graph) + return [all_input_nodes[i] for i, _, _ in index_to_ds_ids] + + +def is_comm_op(node: Node) -> bool: + return "comm" in node.meta and node.meta["comm"] + + +def exclude_from_act_offload(node: Node) -> bool: + return node.target in sym_size_ops + + +def dtype_to_elem_size(dtype: torch.dtype) -> int: + if dtype == torch.float32: + elem_size = 4 + elif dtype == torch.float64: + elem_size = 8 + elif dtype == torch.float16: + elem_size = 2 + else: + raise ValueError(f"Unsupported dtype: {dtype}") + return elem_size + + +def tensor_meta_size(tensor_meta) -> int: + numel = 1 if len(tensor_meta.shape) == 0 else functools.reduce(operator.mul, tensor_meta.shape) + + dtype = tensor_meta.dtype + if dtype == torch.float32: + elem_size = 4 + elif dtype == torch.float64 or dtype == torch.int64: + elem_size = 8 + elif dtype == torch.float16 or dtype == torch.bfloat16: + elem_size = 2 + elif dtype == torch.bool: + elem_size = 1 + else: + raise ValueError(f"Unsupported dtype: {dtype}") + + return numel * elem_size + + +class NodeValueOffloadHelper: + + def __init__(self, device): + self.device = device + self.env_values: Dict[str, Argument] = {} + self.original_device: Dict[torch.Tensor, torch.device] = {} + + def _to_cpu(self, v): + if torch.is_tensor(v): + with unset_fake_temporarily(): + device = v.device + offloaded = v.to('cpu').detach() + self.original_device[offloaded] = device + return offloaded + return v + + def _from_cpu(self, v): + if torch.is_tensor(v) and v in self.original_device: + return v.to(self.original_device[v]) + return v + + def save(self, name: str, v: Argument, offload) -> None: + self.env_values[name] = map_aggregate(v, lambda x: self._to_cpu(x) if offload else x) + + def load(self, name: str) -> Argument: + return map_aggregate(self.env_values[name], lambda x: self._from_cpu(x)) + + def get_offloaded_value(self, name: str) -> Argument: + return self.env_values[name] + + def has_value(self, name: str) -> bool: + return name in self.env_values + + def clear(self) -> None: + self.env_values.clear() + self.original_device.clear() + + +def materialize_fake(v, device=None): + from torch._subclasses.fake_tensor import is_fake + + def convert(t): + if is_fake(t): + with unset_fake_temporarily(): + if t.is_floating_point(): + return torch.randn(t.shape, + dtype=t.dtype, + device=t.device if device is None else device, + layout=t.layout, + requires_grad=t.requires_grad, + pin_memory=t.is_pinned()) + else: + return torch.zeros(t.shape, + dtype=t.dtype, + device=t.device if device is None else device, + requires_grad=t.requires_grad) + + return t + + return map_aggregate(v, lambda x: convert(x)) + + +def get_last_uses(graph: Graph): + position = {node: i for i, node in enumerate(graph.nodes)} + + node_to_last_use: Dict[Node, Node] = {} + user_to_last_uses: Dict[Node, List[Node]] = {} + no_copy_ops = get_no_copy_ops() + + def register_last_uses(n: Node, user: Node): + update = False + known_last_use = None + + if user.target in no_copy_ops and n in node_to_last_use: + last_user = node_to_last_use[user] + last_use_position = position[last_user] + + known_last_use = node_to_last_use[n] + known_last_use_position = position[known_last_use] + update = last_use_position > known_last_use_position + + if n not in node_to_last_use or update: + if user.target in no_copy_ops: + user = node_to_last_use[user] + + node_to_last_use[n] = user + user_to_last_uses.setdefault(user, []).append(n) + + if known_last_use: + user_to_last_uses[known_last_use].remove(n) + + for node in reversed(graph.nodes): + map_arg(node.args, lambda n: register_last_uses(n, node)) + map_arg(node.kwargs, lambda n: register_last_uses(n, node)) + + return node_to_last_use, user_to_last_uses + + +def get_real_uses(graph: Graph): + node_to_uses: Dict[Node, List[Node]] = defaultdict(list) + no_copy_ops = get_no_copy_ops() + + def register_last_uses(n: Node, user: Node): + if user.target == "output": + return + + if user.target in no_copy_ops: + users = node_to_uses[user] + node_to_uses[n].extend(users) + else: + node_to_uses[n].append(user) + + for node in reversed(graph.nodes): + map_arg(node.args, lambda n: register_last_uses(n, node)) + map_arg(node.kwargs, lambda n: register_last_uses(n, node)) + + return node_to_uses + + +def count_inflight_values(graph: Graph, file_path: str): + position = {node: i for i, node in enumerate(graph.nodes)} + + node_to_last_use, user_to_last_uses = get_last_uses(graph) + + max_inflight_size = 0 + inflight_values = set() + + # Output csv. + csv_filename = file_path + csv_data = [] + header = [ + 'Node', 'tensor_size', 'inflight_size', 'inflight_size_in_output', 'args', 'users', 'node_to_last_use', + 'lifetime', 'user_to_last_uses', 'inflight_values' + ] + csv_data.append(header) + + from .fx import get_output_node + output_node = get_output_node(graph) + values_in_output = set([n for n in output_node.args[0] if isinstance(n, Node)]) + + for node in graph.nodes: + inflight_values.add(node) + if node in user_to_last_uses: + for to_delete in user_to_last_uses[node]: + inflight_values.remove(to_delete) + + assert "tensor_size" in node.meta, f"Node {node} does not have tensor_size" + inflight_size = sum(n.meta["tensor_size"] for n in inflight_values) + inflight_size_in_output = sum(n.meta["tensor_size"] for n in inflight_values if n in values_in_output) + + lifetime = position[node_to_last_use[node]] - position[node] if node in node_to_last_use else 0 + + row = [ + node.name, node.meta["tensor_size"], inflight_size, inflight_size_in_output, + [a.name for a in node.args if isinstance(a, Node)], + list(node.users.keys()), node_to_last_use[node] if node in node_to_last_use else 'NA', lifetime, + user_to_last_uses[node] if node in user_to_last_uses else 'NA', + list(inflight_values) + ] + csv_data.append(row) + + # print( + # f"Node: {node.name} users: {list(node.users.keys())} node_to_last_use: {node_to_last_use[node] if node in node_to_last_use else 'NA'} user_to_last_uses: {user_to_last_uses[node] if node in user_to_last_uses else 'NA'} inflight_values: {inflight_values} inflight_size: {inflight_size}" + # ) + max_inflight_size = max(max_inflight_size, inflight_size) + + import csv + with open(csv_filename, mode='w', newline='') as file: + writer = csv.writer(file) + writer.writerows(csv_data) + + print(f"Max inflight size: {max_inflight_size}") + print(f"Data successfully written to {csv_filename}") + + +def get_activation_node_names(graph: Graph, param_nodes_bw: List[Node], fwd_output_names: List[str]): + + input_nodes = get_input_nodes(graph) + param_node_names = set([n.name for n in param_nodes_bw]) + + activation_node_names = [] + for in_node in input_nodes: + if in_node.name in fwd_output_names: + if in_node.name not in param_node_names: + activation_node_names.append(in_node.name) + + return activation_node_names + + +class TensorOffloadHelper(): + + def __init__(self): + self.devices = {} + self.base_tensors = {} + self.views = {} + self.arg_list = [] + self.offloaded = {} + self.non_tensor = {} + + def offload(self, argument): + + def is_base_tensor(tensor): + return torch.is_tensor(a) and not a._is_view() and not hasattr(tensor, "ds_id") + + base_tensor_ids = set() + for a in argument: + if is_base_tensor(a): + base_tensor_ids.add(id(a)) + + for a in argument: + a_id = id(a) + + if is_base_tensor(a): + # Base tensor + self.devices[a_id] = a.device + self.base_tensors[a_id] = a + # elif torch.is_tensor(a) and not hasattr(a, "ds_id") and id(a._base) in base_tensor_ids: + # # View + # self.views[a_id] = { + # "base_id": id(a._base), + # "size": a.size(), + # "stride": a.stride(), + # "offset": a.storage_offset(), + # } + else: + # other types or ds tensor + self.non_tensor[a_id] = a + + self.arg_list.append(a_id) + + for a in argument: + if is_base_tensor(a): + a.data = a.data.to("cpu") + + def reload(self, in_place): + + loaded_base_tensors = {} + for a_id in self.arg_list: + if a_id in self.base_tensors: + device = self.devices[a_id] + + if in_place: + self.base_tensors[a_id].data = self.base_tensors[a_id].to(device) + loaded_base_tensors[a_id] = self.base_tensors[a_id] + else: + loaded_base_tensors[a_id] = self.base_tensors[a_id].to(device) + + results = [] + for a_id in self.arg_list: + if a_id in self.base_tensors: + results.append(loaded_base_tensors[a_id]) + + # elif a_id in self.views: + # view_info = self.views[a_id] + # # print(f"load_args loading view {a_id} base_id={view_info['base_id']} size={view_info['size']} stride={view_info['stride']} offset={view_info['offset']}") + # base_tensor = loaded_base_tensors[view_info["base_id"]] + # view_tensor = base_tensor.as_strided( + # view_info["size"], view_info["stride"], view_info["offset"] + # ) + # results.append(view_tensor) + + elif a_id in self.non_tensor: + results.append(self.non_tensor[a_id]) + + return results + + +def add_mem_profile_nodes(graph: Graph, prefix: str): + + def show_memory(label: str): + if dist.get_rank() == 0: + print( + f"{prefix} {label} alloc_mem={get_accelerator().memory_allocated()} max_mem={get_accelerator().max_memory_allocated()}" + ) + + nodes = list(graph.nodes) + for node in nodes: + if node.op == "output": + continue + + with graph.inserting_after(node): + msg = f"Mem {node.name}" + name = f"show_memory_{node.name}" + graph.create_node('call_function', show_memory, (msg, ), {}, name=name) + + +def is_release_node(n: Node) -> bool: + return n.target == torch.ops.dc.release_param.default + + +def get_index_by_graph_id(graph_order, target_graph_id): + for index, (graph_id, _) in enumerate(graph_order): + if graph_id == target_graph_id: + return index + return -1 diff --git a/deepspeed/ops/compile/__init__.py b/deepspeed/ops/compile/__init__.py new file mode 100755 index 000000000..e38d56359 --- /dev/null +++ b/deepspeed/ops/compile/__init__.py @@ -0,0 +1,6 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from ..op_builder import DeepCompileBuilder diff --git a/deepspeed/runtime/config.py b/deepspeed/runtime/config.py index 5bdf9e838..56b2e9863 100755 --- a/deepspeed/runtime/config.py +++ b/deepspeed/runtime/config.py @@ -31,6 +31,7 @@ from .activation_checkpointing.config import DeepSpeedActivationCheckpointingCon from ..comm.config import DeepSpeedCommsConfig from ..monitor.config import get_monitor_config from ..inference.config import WeightQuantConfig +from ..compile.config import CompileConfig from deepspeed import comm as dist from deepspeed.runtime.config_utils import DeepSpeedConfigModel @@ -912,6 +913,8 @@ class DeepSpeedConfig(object): self.weight_quantization_config = WeightQuantConfig( **param_dict['weight_quantization']) if 'weight_quantization' in param_dict else None + self.compile_config = CompileConfig(**param_dict.get('compile', {})) + self.timers_config = get_timers_config(param_dict) self.tensor_parallel_config = get_tensor_parallel_config(param_dict) diff --git a/deepspeed/runtime/engine.py b/deepspeed/runtime/engine.py index 6c9577054..036b71ee7 100755 --- a/deepspeed/runtime/engine.py +++ b/deepspeed/runtime/engine.py @@ -107,6 +107,12 @@ from deepspeed.accelerator import get_accelerator from deepspeed.runtime.config import DtypeEnum +from deepspeed.compile.util import is_deepcompile_supported, get_deepcompile_handle, deepcompile_backward_prologue +from deepspeed.compile.backend import register_compile_pass, opt_passes +from deepspeed.compile.passes import zero3_compile, prefetch, selective_gather, offload_adam_states +from deepspeed.compile.init_z1 import init_z1 +from deepspeed.compile.init_z3 import init_z3 + MEMORY_OPT_ALLREDUCE_SIZE = 500000000 DeepSpeedOptimizerCallable = \ @@ -271,8 +277,9 @@ class DeepSpeedEngine(Module): # Configure distributed model self._configure_distributed_model(model) - self.module_forward_pre_hook = self._create_module_forward_pre_hook() - self.module_forward_post_hook = self._create_module_forward_post_hook() + if not self.is_deepcompile_enabled(): + self.module_forward_pre_hook = self._create_module_forward_pre_hook() + self.module_forward_post_hook = self._create_module_forward_post_hook() # 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()} @@ -377,6 +384,12 @@ class DeepSpeedEngine(Module): self.unflatten = _unflatten_dense_tensors self._is_compiled = False + if is_deepcompile_supported(): + # Predefined compile passes + self.register_compile_pass(zero3_compile.NAME, zero3_compile.add_z3_gather_release) + self.register_compile_pass(prefetch.NAME, prefetch.schedule_prefetch) + self.register_compile_pass(selective_gather.NAME, selective_gather.selective_gather) + self.register_compile_pass(offload_adam_states.NAME, offload_adam_states.move_opt_states) def _optimized_linear_offload_setup(self): self.optimized_linear_base_weight_sharding = False @@ -486,6 +499,8 @@ class DeepSpeedEngine(Module): def destroy(self): if self.optimizer is not None and hasattr(self.optimizer, 'destroy'): self.optimizer.destroy() + if self.is_deepcompile_enabled(): + get_deepcompile_handle().cleanup() debug_clear_module_and_param_names() def _get_model_parameters(self): @@ -2032,6 +2047,10 @@ class DeepSpeedEngine(Module): if self.autotuning_profile_model_info(): ma = get_ma_status() + if self.is_deepcompile_enabled() and hasattr(self, "launch_compile_passes"): + # We can't have this in forward prologue as the compiler compiles hooks including the forward prologue. + self.launch_compile_passes(self.global_steps) + loss = self.module(*inputs, **kwargs) if self.autotuning_profile_model_info(): @@ -2104,7 +2123,8 @@ class DeepSpeedEngine(Module): scale_wrt_gas = self.scale_wrt_gas # scale loss w.r.t. gradient accumulation if reduction is not disabled - do_gradient_reduction = self.enable_backward_allreduce and not self.inside_no_sync_ctxt + do_gradient_reduction = self.enable_backward_allreduce and not self.inside_no_sync_ctxt and not self.is_deepcompile_enabled( + ) if do_gradient_reduction and self.gradient_accumulation_steps() > 1 and scale_wrt_gas: loss = self._scale_loss_by_gas(loss.float()) @@ -2121,6 +2141,9 @@ class DeepSpeedEngine(Module): )] self.monitor.write_events(self.summary_events) + if self.is_deepcompile_enabled(): + deepcompile_backward_prologue(self.is_gradient_accumulation_boundary()) + return loss def _backward_epilogue(self): @@ -2128,6 +2151,7 @@ class DeepSpeedEngine(Module): if self.enable_backward_allreduce and not self.inside_no_sync_ctxt: # Traditional code path that allreduces the module parameter grads self.allreduce_gradients() + self._stop_timers(self.engine_timers.backward_reduce_timers) see_memory_usage("Engine after backward", force=self.memory_breakdown()) @@ -3849,7 +3873,7 @@ class DeepSpeedEngine(Module): gc.collect() get_accelerator().empty_cache() - def compile(self, backend=get_accelerator().get_compile_backend(), compile_kwargs={}) -> None: + def compile(self, backend=get_accelerator().get_compile_backend(), compile_kwargs={}, schedule=None) -> None: """Compile the module using the specified backend and kwargs. If a compiler_fn is set, it will be used instead of torch.compile(). """ @@ -3865,10 +3889,50 @@ class DeepSpeedEngine(Module): if 'backend' in compile_kwargs: logger.warning("The `backend` in `compile_kwargs` will be overridden. Use the `backend` argument instead.") + print(f"Compiling deepcompile={self.is_deepcompile_enabled()} backend={backend}") + + if self.is_deepcompile_enabled(): + assert self.zero_optimization_stage() == ZeroStageEnum.optimizer_states \ + or self.zero_optimization_stage() == ZeroStageEnum.weights \ + , "Currently DeepCompile supports stage 1 or 3 only." + + if schedule is not None: + + def passes_name_to_fn(passes): + for p in passes: + assert callable(p) or p in opt_passes, f"Unknown pass {p}" + return [p if callable(p) else opt_passes[p] for p in passes] + + schedule = [(step, passes_name_to_fn(passes)) for step, passes in schedule] + + assert backend in ['inductor', 'eager'], f"Backend {backend} is not supported for DeepCompile." + + compile_config = self._config.compile_config + if (("zero_optimization" in self.config and "offload_optimizer" in self.config["zero_optimization"] + and "offload_param" in self.config["zero_optimization"]) + and self._config.zero_config.offload_param.device == "cpu" + and self._config.zero_config.offload_optimizer.device == "cpu"): + compile_config.offload_parameters = True + if self.zero_optimization_stage() == ZeroStageEnum.optimizer_states: + backend = init_z1(self, backend, compile_config, compile_kwargs, schedule) + elif self.zero_optimization_stage() == ZeroStageEnum.weights: + backend = init_z3(self, backend, compile_config, compile_kwargs, schedule) + # create new dict to avoid modifying original dict self.module.compile(**{**compile_kwargs, 'backend': backend}) + self._is_compiled = True + def get_compile_time(self): + from deepspeed.compile.backend import opt_pass_times + return opt_pass_times + + def register_compile_pass(self, pass_name: str, pass_fn: Callable) -> None: + register_compile_pass(pass_name, pass_fn) + + def is_deepcompile_enabled(self): + return self._config.compile_config.deepcompile + @property def is_compiled(self) -> bool: return self._is_compiled diff --git a/deepspeed/runtime/zero/parameter_offload.py b/deepspeed/runtime/zero/parameter_offload.py index 2706d4474..360f11807 100644 --- a/deepspeed/runtime/zero/parameter_offload.py +++ b/deepspeed/runtime/zero/parameter_offload.py @@ -73,6 +73,8 @@ class ZeROOrderedDict(OrderedDict): def _inject_parameters(module, cls): for module in module.modules(): + module._original_parameters = module._parameters + if cls == ZeROOrderedDict: new_param = cls(parent_module=module) else: @@ -80,6 +82,7 @@ def _inject_parameters(module, cls): for key, param in module._parameters.items(): new_param[key] = param + module._parameters = new_param @@ -232,6 +235,8 @@ class DeepSpeedZeRoOffload(object): for hook in self.backward_hooks: hook.remove() + self.fwd_pre_hook.remove() + print_rank_0(f'Deleted module hooks: forward = {num_forward_hooks}, backward = {num_backward_hooks}', force=False) @@ -244,7 +249,7 @@ class DeepSpeedZeRoOffload(object): self.get_param_coordinator().reset_step() - self.module.register_forward_pre_hook(_start_of_forward_hook) + self.fwd_pre_hook = self.module.register_forward_pre_hook(_start_of_forward_hook) #likely one of them should be enough but just to be safe self._register_deepspeed_module(self.module) @@ -287,7 +292,7 @@ class DeepSpeedZeRoOffload(object): count[0] = count[0] + 1 self._register_deepspeed_module(child, count=count) - @instrument_w_nvtx + @torch.compiler.disable def _pre_forward_module_hook(module, *args): self.pre_sub_module_forward_function(module) @@ -365,6 +370,7 @@ class DeepSpeedZeRoOffload(object): return _apply_forward_and_backward_to_tensors_only(module, _run_before_forward_function, _run_after_backward_hook, inputs) + @torch.compiler.disable def _post_backward_module_hook(module, inputs): if not hasattr(module, "ds_grads_remaining"): module.ds_grads_remaining = 0 diff --git a/deepspeed/runtime/zero/partition_parameters.py b/deepspeed/runtime/zero/partition_parameters.py index b7c624934..e6bb14870 100755 --- a/deepspeed/runtime/zero/partition_parameters.py +++ b/deepspeed/runtime/zero/partition_parameters.py @@ -556,8 +556,9 @@ class InsertPostInitMethodToModuleSubClasses(object): print_rank_0( "nn.functional.linear has been overridden with a more memory efficient version. This will persist unless manually reset.", force=False) - self.linear_bk = torch.nn.functional.linear - torch.nn.functional.linear = zero3_linear_wrap + if not hasattr(InsertPostInitMethodToModuleSubClasses, "linear_bk"): + InsertPostInitMethodToModuleSubClasses.linear_bk = torch.nn.functional.linear + torch.nn.functional.linear = zero3_linear_wrap if self.quantized_initialization: print_rank_0("nn.functional.linear has been overridden with quantized linear version.", force=False) diff --git a/deepspeed/runtime/zero/stage3.py b/deepspeed/runtime/zero/stage3.py index ec0cd92b3..301c4d7ba 100644 --- a/deepspeed/runtime/zero/stage3.py +++ b/deepspeed/runtime/zero/stage3.py @@ -1511,7 +1511,8 @@ class DeepSpeedZeroOptimizer_Stage3(ZeROOptimizer): # free the gradient if not get_accelerator().is_synchronized_device(): - param.grad.record_stream(get_accelerator().current_stream()) + if param.grad is not None: + param.grad.record_stream(get_accelerator().current_stream()) param.grad = None if self.offload_optimizer and self.swap_optimizer: diff --git a/op_builder/dc.py b/op_builder/dc.py new file mode 100644 index 000000000..7cda3d80d --- /dev/null +++ b/op_builder/dc.py @@ -0,0 +1,32 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +from .builder import TorchCPUOpBuilder + + +class DeepCompileBuilder(TorchCPUOpBuilder): + BUILD_VAR = "DS_BUILD_DEEP_COMPILE" + NAME = "dc" + + def __init__(self): + super().__init__(name=self.NAME) + + def absolute_name(self): + return f'deepspeed.ops.{self.NAME}_op' + + def sources(self): + return [ + 'csrc/compile/deepcompile.cpp', 'csrc/compile/init.cpp', 'csrc/compile/z1.cpp', 'csrc/compile/z3.cpp', + 'csrc/compile/util.cpp' + ] + + def libraries_args(self): + args = super().libraries_args() + return args + + def include_paths(self): + import os + import torch + return ['csrc/includes', os.path.join(torch.utils.cpp_extension.CUDA_HOME, "include")] diff --git a/requirements/requirements-deepcompile.txt b/requirements/requirements-deepcompile.txt new file mode 100644 index 000000000..9a635b910 --- /dev/null +++ b/requirements/requirements-deepcompile.txt @@ -0,0 +1 @@ +scipy diff --git a/setup.py b/setup.py index 0ad54bb99..7ae9c7a9c 100755 --- a/setup.py +++ b/setup.py @@ -91,6 +91,7 @@ extras_require = { 'inf': fetch_requirements('requirements/requirements-inf.txt'), 'sd': fetch_requirements('requirements/requirements-sd.txt'), 'triton': fetch_requirements('requirements/requirements-triton.txt'), + 'deepcompile': fetch_requirements('requirements/requirements-deepcompile.txt'), } # Only install pynvml on nvidia gpus. diff --git a/tests/unit/runtime/compile/test_compile_zero.py b/tests/unit/runtime/compile/test_compile_zero.py index ca80eef8b..5f6cd6c6c 100644 --- a/tests/unit/runtime/compile/test_compile_zero.py +++ b/tests/unit/runtime/compile/test_compile_zero.py @@ -66,3 +66,49 @@ class TestZeRO(DistributedTest): config_dict["bf16"] = {"enabled": True} compare_loss(self, config_dict, dtype) + + +class TestDeepCompile(DistributedTest): + world_size = 2 + non_daemonic_procs = True + + @pytest.mark.parametrize('dtype', [torch.bfloat16, torch.float16, torch.float32]) + @pytest.mark.parametrize('zero_stage', [1, 3]) + @pytest.mark.parametrize('deepcompile', [True]) # deepcompile==False is included in test_compile_zero + def test(self, zero_stage, dtype, deepcompile): + if not required_torch_version(min_version=2.6): + pytest.skip("DeepCompile requires PyTorch >= v2.6") + + 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") + + 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, + }, + "compile": { + "deepcompile": deepcompile + } + } + + if dtype == torch.float16: + config_dict["fp16"] = {"enabled": True, "initial_scale_power": 8} + elif dtype == torch.bfloat16: + config_dict["bf16"] = {"enabled": True} + + # Need warmup steps + compare_loss(self, config_dict, dtype, iteration=10) diff --git a/tests/unit/runtime/compile/util.py b/tests/unit/runtime/compile/util.py index d53886a81..f30895d68 100644 --- a/tests/unit/runtime/compile/util.py +++ b/tests/unit/runtime/compile/util.py @@ -70,8 +70,7 @@ def enable_determinism(seed: int): @enable_determinism(123) -def compare_loss(self, config, dtype): - iteration = 5 +def compare_loss(self, config, dtype, iteration=5): hidden_dim = 10 RTOL = 5e-1 ATOL = 1e-2 @@ -116,9 +115,12 @@ def compare_loss(self, config, dtype): baseline_engine.backward(baseline_loss) target_engine.backward(target_loss) - baseline_optimizer.step() - target_optimizer.step() + baseline_engine.step() + target_engine.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) + + baseline_engine.destroy() + target_engine.destroy()