Skip to content

Commit

Permalink
feat: Remove device information in image class (#735)
Browse files Browse the repository at this point in the history
Closes #524 

### Summary of Changes

feat: removed device from `Image`
feat: all internal pytorch objects now use the specified device
feat: auto selection of default device (defaults to `cuda` if `cuda` is
available)
test: added tests with `cuda` device

---------

Co-authored-by: megalinter-bot <129584137+megalinter-bot@users.noreply.github.com>
  • Loading branch information
Marsmaennchen221 and megalinter-bot committed May 7, 2024
1 parent 6cad203 commit d783caa
Show file tree
Hide file tree
Showing 82 changed files with 999 additions and 502 deletions.
4 changes: 3 additions & 1 deletion src/safeds/_config/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,17 @@
import apipkg

if TYPE_CHECKING:
from ._device import _get_device
from ._device import _get_device, _init_default_device

apipkg.initpkg(
__name__,
{
"_get_device": "._device:_get_device",
"_init_default_device": "._device:_init_default_device",
},
)

__all__ = [
"_get_device",
"_init_default_device",
]
24 changes: 23 additions & 1 deletion src/safeds/_config/_device.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,29 @@
from torch.types import Device


_default_device: Device | None = None


def _get_device() -> Device:
import torch

return torch.device("cuda") if torch.cuda.is_available() else torch.device("cpu")
return torch.get_default_device()


def _init_default_device() -> None:
import torch

global _default_device

if _default_device is None:
_default_device = torch.device("cuda") if torch.cuda.is_available() else torch.device("cpu")

torch.set_default_device(_default_device)


def _set_default_device(device: Device) -> None:
# This changes all future tensors, but not any tensor that already exists
global _default_device

_default_device = device
_init_default_device()

0 comments on commit d783caa

Please sign in to comment.