Skip to content

Commit

Permalink
[torch/multiprocessing] Use multiprocessing.reduction.register Forkin…
Browse files Browse the repository at this point in the history
…gPickler.register to register custom tensor and storage reductions
  • Loading branch information
kiukchung committed Sep 3, 2024
1 parent e7731b3 commit e3b22b0
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 8 deletions.
1 change: 1 addition & 0 deletions test/allowlist_for_publicAPI.json
Original file line number Diff line number Diff line change
Expand Up @@ -550,6 +550,7 @@
"ForkingPickler",
"Union",
"check_serializing_named_tensor",
"register",
"register_after_fork"
],
"torch.multiprocessing.spawn": [
Expand Down
16 changes: 8 additions & 8 deletions torch/multiprocessing/reductions.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
import multiprocessing
import os
import threading
from multiprocessing.reduction import ForkingPickler
from multiprocessing.reduction import register
from multiprocessing.util import register_after_fork
from typing import Union

Expand Down Expand Up @@ -626,22 +626,22 @@ def reduce_storage(storage):


def init_reductions():
ForkingPickler.register(torch.cuda.Event, reduce_event)
register(torch.cuda.Event, reduce_event)

for t in torch._storage_classes:
if t.__name__ == "UntypedStorage":
ForkingPickler.register(t, reduce_storage)
register(t, reduce_storage)
else:
ForkingPickler.register(t, reduce_typed_storage_child)
register(t, reduce_typed_storage_child)

ForkingPickler.register(torch.storage.TypedStorage, reduce_typed_storage)
register(torch.storage.TypedStorage, reduce_typed_storage)

for t in torch._tensor_classes:
ForkingPickler.register(t, reduce_tensor)
register(t, reduce_tensor)

# TODO: Maybe this should be in tensor_classes? :)
ForkingPickler.register(torch.Tensor, reduce_tensor)
register(torch.Tensor, reduce_tensor)

from torch.nn.parameter import Parameter

ForkingPickler.register(Parameter, reduce_tensor)
register(Parameter, reduce_tensor)

0 comments on commit e3b22b0

Please sign in to comment.