forked from pytorch/rl
-
Notifications
You must be signed in to change notification settings - Fork 0
/
__init__.py
53 lines (39 loc) · 1.37 KB
/
__init__.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# Copyright (c) Meta Platforms, Inc. and affiliates.
#
# This source code is licensed under the MIT license found in the
# LICENSE file in the root directory of this source tree.
import os
from warnings import warn
import torch
from tensordict import set_lazy_legacy
from torch import multiprocessing as mp
set_lazy_legacy(False).set()
if torch.cuda.device_count() > 1:
n = torch.cuda.device_count() - 1
os.environ["MUJOCO_EGL_DEVICE_ID"] = str(1 + (os.getpid() % n))
from ._extension import _init_extension
try:
from .version import __version__
except ImportError:
__version__ = None
_init_extension()
try:
mp.set_start_method("spawn")
except RuntimeError as err:
if str(err).startswith("context has already been set"):
mp_start_method = mp.get_start_method()
if mp_start_method != "spawn":
warn(
f"failed to set start method to spawn, "
f"and current start method for mp is {mp_start_method}."
)
import torchrl.collectors
import torchrl.data
import torchrl.envs
import torchrl.modules
import torchrl.objectives
import torchrl.trainers
# Filter warnings in subprocesses: True by default given the multiple optional
# deps of the library. This can be turned on via `torchrl.filter_warnings_subprocess = False`.
filter_warnings_subprocess = True
_THREAD_POOL_INIT = torch.get_num_threads()