From 4a909be2af08c24ccf2a352e2417e29143f710a4 Mon Sep 17 00:00:00 2001 From: mjayasur Date: Thu, 11 Mar 2021 11:40:06 -0800 Subject: [PATCH 1/3] convenience wrapper of torch.set_num_threads --- scvi/_settings.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/scvi/_settings.py b/scvi/_settings.py index dfa7de4292..943685f7fe 100644 --- a/scvi/_settings.py +++ b/scvi/_settings.py @@ -121,6 +121,10 @@ def seed(self) -> int: """Random seed for torch and numpy.""" return self._seed + def set_num_threads(self, num: int): + """Sets number of threads torch will use to `num`.""" + torch.set_num_threads(num) + @seed.setter def seed(self, seed: int): """Random seed for torch and numpy.""" From 785221d97b7f12c0b3b56f15bdeabaab7acb3bab Mon Sep 17 00:00:00 2001 From: mjayasur Date: Thu, 11 Mar 2021 12:30:38 -0800 Subject: [PATCH 2/3] num_threads property and setter --- scvi/_settings.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/scvi/_settings.py b/scvi/_settings.py index 943685f7fe..2340c73a01 100644 --- a/scvi/_settings.py +++ b/scvi/_settings.py @@ -56,6 +56,7 @@ def __init__( self.logging_dir = logging_dir self.dl_num_workers = dl_num_workers self.dl_pin_memory_gpu_training = dl_pin_memory_gpu_training + self._num_threads = None @property def batch_size(self) -> int: @@ -106,6 +107,17 @@ def logging_dir(self) -> Path: def logging_dir(self, logging_dir: Union[str, Path]): self._logging_dir = Path(logging_dir).resolve() + @property + def num_threads(self) -> None: + """Number of threads PyTorch will use.""" + return self._num_threads + + @num_threads.setter + def num_threads(self, num: int): + """Number of threads PyTorch will use.""" + self._num_threads = num + torch.set_num_threads(num) + @property def progress_bar_style(self) -> str: """Library to use for progress bar.""" @@ -121,10 +133,6 @@ def seed(self) -> int: """Random seed for torch and numpy.""" return self._seed - def set_num_threads(self, num: int): - """Sets number of threads torch will use to `num`.""" - torch.set_num_threads(num) - @seed.setter def seed(self, seed: int): """Random seed for torch and numpy.""" From c60d0cd71aeff96f75acfe1f24c52b137ee8186a Mon Sep 17 00:00:00 2001 From: mjayasur Date: Thu, 11 Mar 2021 12:36:32 -0800 Subject: [PATCH 3/3] add example of num_threads setter to ScviConfig docstring --- scvi/_settings.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/scvi/_settings.py b/scvi/_settings.py index 2340c73a01..078d474f2f 100644 --- a/scvi/_settings.py +++ b/scvi/_settings.py @@ -34,6 +34,10 @@ class ScviConfig: >>> import logging >>> scvi.settings.verbosity = logging.INFO + + To set the number of threads PyTorch will use + + >>> scvi.settings.num_threads = 2 """ def __init__(