Skip to content

Commit 86e51e6

Browse files
HollowMan6tohtanaloadams
authored
Add defence for DeepCompile w/o optimizer (#7225)
Similar to #7211 When the optimizer is not specified, the optimizer will be type `DeepSpeedZeRoOffload` instead of `DeepSpeedZeroOptimizer_Stage3` (e.g. for ZeRO-3 pure inference), while `DeepSpeedZeRoOffload` doesn't have `parameter_offload`. https://github.com/deepspeedai/DeepSpeed/blob/56005d2b256eb81a88cba0a1984375f9663a3110/deepspeed/runtime/engine.py#L1684-L1707 ```log File "deepspeed/runtime/engine.py", line 3919, in compile backend = init_z3(self, backend, compile_config, compile_kwargs, schedule) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "deepspeed/compile/init_z3.py", line 36, in init_z3 optimizer.parameter_offload._remove_module_hooks() ^^^^^^^^^^^^^^^^^^^^^^^^^^^ AttributeError: 'DeepSpeedZeRoOffload' object has no attribute 'parameter_offload' ``` --------- Signed-off-by: Hollow Man <[email protected]> Signed-off-by: Logan Adams <[email protected]> Co-authored-by: Masahiro Tanaka <[email protected]> Co-authored-by: Logan Adams <[email protected]>
1 parent 0f224d7 commit 86e51e6

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

deepspeed/runtime/engine.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3896,6 +3896,9 @@ def compile(self, backend=get_accelerator().get_compile_backend(), compile_kwarg
38963896
or self.zero_optimization_stage() == ZeroStageEnum.weights \
38973897
, "Currently DeepCompile supports stage 1 or 3 only."
38983898

3899+
assert not isinstance(self.optimizer,
3900+
DeepSpeedZeRoOffload), "Currently DeepCompile is not supported without an optimizer."
3901+
38993902
if schedule is not None:
39003903

39013904
def passes_name_to_fn(passes):

0 commit comments

Comments
 (0)