Fix race condition that can corrupt grads under certain conditions.
This commit is contained in:
1 parent
817f3dcbcb
commit
f4e9130547
3 files changed
+53
-15
No files matched your search
@@ -20,6 +20,7 @@ from toolkit.guidance import get_targeted_guidance_loss, get_guidance_loss, Guid
|
||||
from toolkit.image_utils import show_tensors, show_latents
|
||||
from toolkit.ip_adapter import IPAdapter
|
||||
from toolkit.custom_adapter import CustomAdapter
|
||||
from toolkit.memory_management import sync_grad_transfers
|
||||
from toolkit.print import print_acc
|
||||
from toolkit.prompt_utils import PromptEmbeds, concat_prompt_embeds
|
||||
from toolkit.reference_adapter import ReferenceAdapter
|
||||
@@ -2218,6 +2219,9 @@ class SDTrainer(BaseSDTrainProcess):
|
||||
|
||||
|
||||
if not self.is_grad_accumulation_step:
|
||||
# grads of memory-managed (offloaded) params are async D2H copies into
|
||||
# pinned tensors; join them before anything on the CPU reads .grad
|
||||
sync_grad_transfers()
|
||||
# fix this for multi params
|
||||
if self.train_config.optimizer != 'adafactor':
|
||||
if isinstance(self.params[0], dict):
|
||||
|
||||
Reference in new issue
Block a user