libinephany 0.15.2__tar.gz → 0.15.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. libinephany-0.15.4/CODE_VERSION.cfg +1 -0
  2. {libinephany-0.15.2/libinephany.egg-info → libinephany-0.15.4}/PKG-INFO +1 -1
  3. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany/observations/observation_utils.py +26 -5
  4. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany/observations/statistic_trackers.py +6 -2
  5. {libinephany-0.15.2 → libinephany-0.15.4/libinephany.egg-info}/PKG-INFO +1 -1
  6. libinephany-0.15.2/CODE_VERSION.cfg +0 -1
  7. {libinephany-0.15.2 → libinephany-0.15.4}/LICENSE +0 -0
  8. {libinephany-0.15.2 → libinephany-0.15.4}/MANIFEST.in +0 -0
  9. {libinephany-0.15.2 → libinephany-0.15.4}/README.md +0 -0
  10. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany/__init__.py +0 -0
  11. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany/aws/__init__.py +0 -0
  12. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany/aws/s3_functions.py +0 -0
  13. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany/observations/__init__.py +0 -0
  14. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany/observations/observer_pipeline.py +0 -0
  15. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany/observations/observers/__init__.py +0 -0
  16. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany/observations/observers/base_observers.py +0 -0
  17. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany/observations/observers/global_observers.py +0 -0
  18. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany/observations/observers/local_observers.py +0 -0
  19. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany/observations/observers/observer_containers.py +0 -0
  20. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany/observations/pipeline_coordinator.py +0 -0
  21. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany/observations/post_processors/__init__.py +0 -0
  22. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany/observations/post_processors/postprocessors.py +0 -0
  23. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany/observations/statistic_manager.py +0 -0
  24. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany/pydantic_models/__init__.py +0 -0
  25. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany/pydantic_models/configs/__init__.py +0 -0
  26. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany/pydantic_models/configs/hyperparameter_configs.py +0 -0
  27. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany/pydantic_models/configs/observer_config.py +0 -0
  28. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany/pydantic_models/configs/outer_model_config.py +0 -0
  29. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany/pydantic_models/schemas/__init__.py +0 -0
  30. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany/pydantic_models/schemas/agent_info.py +0 -0
  31. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany/pydantic_models/schemas/inner_task_profile.py +0 -0
  32. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany/pydantic_models/schemas/observation_models.py +0 -0
  33. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany/pydantic_models/schemas/request_schemas.py +0 -0
  34. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany/pydantic_models/schemas/response_schemas.py +0 -0
  35. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany/pydantic_models/schemas/tensor_statistics.py +0 -0
  36. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany/pydantic_models/states/__init__.py +0 -0
  37. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany/pydantic_models/states/hyperparameter_states.py +0 -0
  38. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany/utils/__init__.py +0 -0
  39. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany/utils/agent_utils.py +0 -0
  40. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany/utils/asyncio_worker.py +0 -0
  41. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany/utils/backend_statuses.py +0 -0
  42. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany/utils/constants.py +0 -0
  43. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany/utils/directory_utils.py +0 -0
  44. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany/utils/dropout_utils.py +0 -0
  45. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany/utils/enums.py +0 -0
  46. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany/utils/error_severities.py +0 -0
  47. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany/utils/exceptions.py +0 -0
  48. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany/utils/import_utils.py +0 -0
  49. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany/utils/optim_utils.py +0 -0
  50. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany/utils/random_seeds.py +0 -0
  51. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany/utils/samplers.py +0 -0
  52. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany/utils/standardizers.py +0 -0
  53. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany/utils/torch_distributed_utils.py +0 -0
  54. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany/utils/torch_utils.py +0 -0
  55. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany/utils/transforms.py +0 -0
  56. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany/utils/typing.py +0 -0
  57. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany/web_apps/__init__.py +0 -0
  58. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany/web_apps/error_logger.py +0 -0
  59. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany/web_apps/web_app_utils.py +0 -0
  60. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany.egg-info/SOURCES.txt +0 -0
  61. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany.egg-info/dependency_links.txt +0 -0
  62. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany.egg-info/requires.txt +0 -0
  63. {libinephany-0.15.2 → libinephany-0.15.4}/libinephany.egg-info/top_level.txt +0 -0
  64. {libinephany-0.15.2 → libinephany-0.15.4}/pyproject.toml +0 -0
  65. {libinephany-0.15.2 → libinephany-0.15.4}/setup.cfg +0 -0
@@ -0,0 +1 @@
1
+ 0.15.4
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: libinephany
3
- Version: 0.15.2
3
+ Version: 0.15.4
4
4
  Summary: Inephany library containing code commonly used by multiple subpackages.
5
5
  Author-email: Inephany <info@inephany.com>
6
6
  License: Apache 2.0
@@ -14,7 +14,7 @@ import torch
14
14
  import torch.optim as optim
15
15
 
16
16
  from libinephany.pydantic_models.schemas.tensor_statistics import TensorStatistics
17
- from libinephany.utils import optim_utils, torch_distributed_utils
17
+ from libinephany.utils import optim_utils
18
18
 
19
19
  # ======================================================================================================================
20
20
  #
@@ -167,18 +167,39 @@ def create_one_hot_depth_encoding(agent_controlled_modules: list[str], parameter
167
167
  return create_one_hot_observation(vector_length=3, one_hot_index=one_hot_index)
168
168
 
169
169
 
170
+ def check_if_tensor_is_xpu(tensor: torch.Tensor | None) -> bool:
171
+ """
172
+ :param tensor: Tensor to check whether it is an XPU tensor.
173
+ :return: Whether the tensor is an XPU tensor.
174
+ """
175
+
176
+ try:
177
+ xpu_available = torch.xpu.is_available()
178
+ return xpu_available and tensor.is_xpu
179
+
180
+ except AttributeError:
181
+ return False
182
+
183
+
170
184
  def tensor_on_local_rank(tensor: torch.Tensor | None) -> bool:
171
185
  """
172
186
  :param tensor: Tensor to check whether it is owned by the local rank, partially or entirely.
173
187
  :return: Whether the tensor is owned by the local rank.
174
188
  """
175
189
 
176
- valid_tensor = tensor is not None and tensor.grad is not None and tensor.numel() > 0
190
+ valid_tensor = tensor is not None and tensor.numel() > 0
191
+ device_index = tensor.device.index if valid_tensor else None
192
+
193
+ is_xpu = check_if_tensor_is_xpu(tensor)
194
+ cuda_available = torch.cuda.is_available()
177
195
 
178
- if valid_tensor and tensor.is_cuda:
179
- local_rank = torch_distributed_utils.get_local_rank()
196
+ if valid_tensor and is_xpu:
197
+ current_device = torch.xpu.current_device()
198
+ return device_index == current_device
180
199
 
181
- return tensor.device.index == local_rank
200
+ elif valid_tensor and cuda_available and tensor.is_cuda:
201
+ current_device = torch.cuda.current_device()
202
+ return device_index == current_device
182
203
 
183
204
  return valid_tensor
184
205
 
@@ -403,7 +403,9 @@ class FirstOrderGradients(Statistic):
403
403
  :return: None, TensorStatistics model or a float.
404
404
  """
405
405
 
406
- gradients = [p.grad.view(-1) for p in parameters if observation_utils.tensor_on_local_rank(p)]
406
+ gradients = [
407
+ p.grad.view(-1) for p in parameters if observation_utils.tensor_on_local_rank(p) and p.grad is not None
408
+ ]
407
409
 
408
410
  if not gradients:
409
411
  return None
@@ -495,7 +497,9 @@ class SecondOrderGradients(Statistic):
495
497
  :return: None, TensorStatistics model or a float.
496
498
  """
497
499
 
498
- fo_gradients = [p.grad.view(-1) for p in parameters if observation_utils.tensor_on_local_rank(p)]
500
+ fo_gradients = [
501
+ p.grad.view(-1) for p in parameters if observation_utils.tensor_on_local_rank(p) and p.grad is not None
502
+ ]
499
503
 
500
504
  if not fo_gradients:
501
505
  return None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: libinephany
3
- Version: 0.15.2
3
+ Version: 0.15.4
4
4
  Summary: Inephany library containing code commonly used by multiple subpackages.
5
5
  Author-email: Inephany <info@inephany.com>
6
6
  License: Apache 2.0
@@ -1 +0,0 @@
1
- 0.15.2
File without changes
File without changes
File without changes
File without changes