ndav-torch-tensor 0.0.2 → 0.0.3

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: 033bbf192b1235b16c2b5fe0f69ca5505764e1473c9c5b4abdf18d81d4b9ec94
4
- data.tar.gz: 02bca7f664f5a1fa8ec84a93202ef117f887a62b172305101c4278fc8c6cfd08
3
+ metadata.gz: 51c99b994468de49aacf7b24673dd7cd4e755b1bc1f5ea858d2aa85093aa299c
4
+ data.tar.gz: 9c0737070ab1b78c0f9ef3908b989060e6693d555380a6c793a3e4f26015dc57
5
5
  SHA512:
6
- metadata.gz: 1b9360bf3dd2fce2780775dcb03d19554a7f4a67960555bec1b8e88aa3300453ea515dd827efeaf292d63f703f46b692fa6ae381ac2fb7236fc18aab2f01f7a0
7
- data.tar.gz: b88c727b786f43319043d874689f8882cbabd4737292d3e663405b1161a1b7b6b904d89b229543f103cad1786310d2ade8a78b930e50c16e82c262e0070ec07b
6
+ metadata.gz: 4d03dcd52b4cc3db70cd26222a6c2c0f2ae8ab6f361aa593227860fd93f4a1ff8c1423040e63e37bc929e7a517f7f2210874af71fe030e84b7bf3b74b212a747
7
+ data.tar.gz: b6cdbdfdac3d49920e23bdbad413d92d97e2343536b9f295d25a5319d1fdf139321e67995f20ac6dec61525e48888c129d351269a36b1d3cea6fcf7cdc6c9a5e
data/README.md CHANGED
@@ -1,11 +1,30 @@
1
1
  NDAV::Torch::Tensor
2
2
  ===================
3
3
 
4
- MemoryView and pointer support for [Torch]::Tensor.
4
+ [NDAV][] bridge for [Torch][]::Tensor.
5
+
6
+ SYNOPSIS
7
+ --------
8
+
9
+ ```ruby
10
+ require "ndav/torch/tensor"
11
+
12
+ torch = Torch.rand(2, 3) # => Torch::Tensor
13
+ ndav = torch.to_ndav # => NDAV
14
+ torch = ndav.to_torch_tensor # => Torch::Tensor
15
+
16
+ ndav = NDAV.from_torch_tensor(torch) # => NDAV
17
+ torch = Torch::Tensor.from_ndav(ndav) # => Torch::Tensor
18
+
19
+ include NDAV::Converter
20
+ ndav = NDAV(torch) # => NDAV
21
+ torch = TorchTensor(ndav) # => Torch::NArray
22
+ ```
5
23
 
6
24
  LICENSE
7
25
  -------
8
26
 
9
27
  MIT license. See LICENSE.txt file.
10
28
 
29
+ [NDAV]: https://kitaitimakoto.gitlab.io/ndav/
11
30
  [Torch]: https://github.com/ankane/torch.rb
@@ -46,13 +46,25 @@ class NDAV
46
46
 
47
47
  TYPE_SIZES = TYPE_TO_FORMAT.transform_values {|format| ITEM_SIZES[format]}
48
48
 
49
- module ToNDAV
50
- def to_ndav
49
+ module MemoryViewable
50
+ def ndav_descriptor(**)
51
51
  format = TYPE_TO_FORMAT[dtype]
52
- raise ArgumentError, "unsupported dtype: #{dtype}, currently supported: #{TYPE_TO_FORMAT.keys}" unless format
52
+ unless format
53
+ warn "unsupported dtype: #{dtype}, currently supported: #{TYPE_TO_FORMAT.keys}"
54
+ return false
55
+ end
56
+
57
+ byte_size = numel * element_size
53
58
 
54
- ptr = Fiddle::Pointer.new(_data_ptr, numel * element_size)
55
- NDAV.new(ptr, shape:, format:, lifetime: self)
59
+ {
60
+ data: ::Fiddle::Pointer.new(_data_ptr, byte_size),
61
+ shape:,
62
+ strides: stride.collect {|s| s * element_size},
63
+ format:,
64
+ byte_size:,
65
+ readonly?: false,
66
+ sub_offsets: nil
67
+ }
56
68
  end
57
69
  end
58
70
 
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "ndav-torch-tensor"
3
- s.version = "0.0.2"
3
+ s.version = "0.0.3"
4
4
  s.authors = ["Kitaiti Makoto"]
5
5
  s.summary = "N-Dimensional Array View for Torch::Tensors"
6
6
  s.licenses = ["MIT"]
@@ -8,7 +8,7 @@ Gem::Specification.new do |s|
8
8
 
9
9
  s.files = Dir.chdir(__dir__) {`git ls-files -z`.split("\x0")}
10
10
 
11
- s.add_runtime_dependency "ndav", ">= 0.0.3"
11
+ s.add_runtime_dependency "ndav", ">= 0.0.5"
12
12
  s.add_runtime_dependency "torch-rb"
13
13
 
14
14
  s.add_development_dependency "rake"
@@ -14,6 +14,15 @@ class TestTorchTensor < Test::Unit::TestCase
14
14
  assert_kind_of ::Torch::Tensor, ::Torch.from_ndav(@ndav)
15
15
  end
16
16
 
17
+ def test_memory_view
18
+ Fiddle::MemoryView.export @torch_tensor do |view|
19
+ assert_equal "s", view.format
20
+ assert_equal [3], view.shape
21
+ assert_equal [2], view.strides
22
+ assert_equal [1, 2, 3].pack("s*"), view.to_s
23
+ end
24
+ end
25
+
17
26
  def test_ndav_to_torch_tensor
18
27
  assert_kind_of ::Torch::Tensor, @ndav.to_torch_tensor
19
28
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ndav-torch-tensor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kitaiti Makoto
@@ -15,14 +15,14 @@ dependencies:
15
15
  requirements:
16
16
  - - ">="
17
17
  - !ruby/object:Gem::Version
18
- version: 0.0.3
18
+ version: 0.0.5
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - ">="
24
24
  - !ruby/object:Gem::Version
25
- version: 0.0.3
25
+ version: 0.0.5
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: torch-rb
28
28
  requirement: !ruby/object:Gem::Requirement
@@ -166,7 +166,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
166
166
  - !ruby/object:Gem::Version
167
167
  version: '0'
168
168
  requirements: []
169
- rubygems_version: 4.0.6
169
+ rubygems_version: 4.0.16
170
170
  specification_version: 4
171
171
  summary: N-Dimensional Array View for Torch::Tensors
172
172
  test_files: []