torch-ddp 0.1.0 → 0.1.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 01d7ef15d46b7d5ce121a60f0293d96300674a08ad1ae955f9732bd3d60ecdbd
4
- data.tar.gz: f1a67feaa2252260a2b549c4022f0db06cdc816c520ec414a0a1a68b3a26b1e9
3
+ metadata.gz: cf1fe012a13aed095f9eb6aa3bb32713a42d42c984a2df271a2f5571b8405686
4
+ data.tar.gz: 9a44d9cd25ccc0d56b294910dd9b5c349a79b5468ff8e67935405b30284ed2ef
5
5
  SHA512:
6
- metadata.gz: d166257ca64d58ad7783745fdcf8f0606f18bceb8ca07fa01fff12d4acf10976564a6d8764098afffecc0befebc8f38dd88bbaef61984af6bffb7d13493ce056
7
- data.tar.gz: 43d0f74ef949c8c4ac9c37c28ae03df2d2cbba9a4a10442a198a11a520018cdd4bd69992a791e1e9419715816d6b97a1dd07ada5e1d5ed04b6f83dc2227fa4c8
6
+ metadata.gz: 27f09c0880d00540da310ce7904509e1d12c5d087dc8850cc203819e7248ecbe1a1aab5cec33e8dd0415e04932623eb3de7917153a598260a8791c58984bfbb2
7
+ data.tar.gz: 93ff18257628ff81133b30abe12987159f9c7cfe866a91b5b6c161032483ebb087ad5f1c587268fa541f5b18fa6153578efc4333df6cff86883eb0f2692bac55
@@ -100,7 +100,9 @@ module Torch
100
100
 
101
101
  def patch_device_helpers
102
102
  Torch::Device.class_eval do
103
- define_method(:to_s) { _str }
103
+ define_method(:to_s) do
104
+ respond_to?(:_str) ? _str : super()
105
+ end
104
106
  end
105
107
 
106
108
  unless Torch.const_defined?(:DeviceString)
@@ -108,8 +110,26 @@ module Torch
108
110
  :DeviceString,
109
111
  Class.new(String) do
110
112
  def initialize(device)
111
- @device = device
112
- super(device._str)
113
+ @device =
114
+ case device
115
+ when Torch::Device
116
+ device
117
+ when String, Symbol
118
+ Torch::Device.new(device.to_s)
119
+ else
120
+ if device.respond_to?(:_str) && device.respond_to?(:type)
121
+ device
122
+ else
123
+ Torch::Device.new(device.to_s)
124
+ end
125
+ end
126
+ device_str =
127
+ if @device.respond_to?(:_str)
128
+ @device._str
129
+ else
130
+ @device.to_s
131
+ end
132
+ super(device_str)
113
133
  end
114
134
 
115
135
  def type
@@ -124,7 +144,18 @@ module Torch
124
144
  end
125
145
 
126
146
  Torch::Tensor.class_eval do
127
- define_method(:device) { Torch::DeviceString.new(_device) }
147
+ alias_method :_torch_ddp_original_device, :device unless method_defined?(:_torch_ddp_original_device)
148
+
149
+ define_method(:device) do
150
+ device_obj =
151
+ if respond_to?(:_device)
152
+ _device
153
+ else
154
+ _torch_ddp_original_device
155
+ end
156
+
157
+ Torch::DeviceString.new(device_obj)
158
+ end
128
159
  end
129
160
  end
130
161
 
@@ -1,5 +1,5 @@
1
1
  module Torch
2
2
  module DDP
3
- VERSION = "0.1.0"
3
+ VERSION = "0.1.2"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: torch-ddp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ivan Razuvaev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-12-05 00:00:00.000000000 Z
11
+ date: 2025-12-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: torch-rb