ndav-ort_value 0.0.2 → 0.0.4

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: eda5c49be2368e38bb4ce8d836942ae2932537aa08aa3946775f57a745c4ce3b
4
- data.tar.gz: 2baa6174a4d6797358cdd527507c75f6342ee0a913f006030e74c53dd10dbdb9
3
+ metadata.gz: 304532f2da38f6bfb85d3cee934fc353485321481f2765cd574c20896243d9cc
4
+ data.tar.gz: 95fb3f89d47cb3188ceab7f32c7373e0d8245c1e983147b615687ef6701fe8d0
5
5
  SHA512:
6
- metadata.gz: ed06686bd9ca80142c3c2551dfb232f3e1e189f961ebd2aa606c6cc2aeb48a2a7e1412836279e98cf44ef3d7ecc18d026f4f5f607f3210033f3cfaa3e5a12708
7
- data.tar.gz: 3f7087cc91385fa0419562ae65a1b9d7bcd5023dc0292ba298b0f38cab46cf6dfb4bbd02b9cf30ba76a605d46449c2aec0f5f8e3dcf8d78bf44b102956d8dcb5
6
+ metadata.gz: 61550a33ec5ebb7c5d0cedf8fe992e09d67948bb91dae9ebf4625287fb29438a852eb716c78da069cd3f9e282ab45c1b0e29c39662c2f2baadeaed158665606b
7
+ data.tar.gz: '0837dfb4b3e1f38112fb87495ed4f57b1f775303a428872c97a03e5f10eabfdd42a9831a4e61a28ac90ad6efeedb525a2c7978e3853fd28e2dc5f9fe1fc0cfb5'
data/README.md CHANGED
@@ -1,11 +1,32 @@
1
1
  OnnxRuntime::OrtValue::NDAV
2
2
  ===========================
3
3
 
4
- MemoryView and pointer support for [ONNX Runtime Ruby][].
4
+ [NDAV][] bridge for [ONNX Runtime Ruby][].
5
+
6
+ SYNOPSIS
7
+ --------
8
+
9
+ ```ruby
10
+ require "ndav/ort_value"
11
+
12
+ ort_value = OnnxRuntime::OrtValue.from_array([1.0, 2.0, 3.0], element_type: :float) # => OnnxRuntime::OrtValue
13
+ ndav = ort_value.to_ndav # => NDAV
14
+ ort_value = ndav.to_ort_value # => OnnxRuntime::OrtValue
15
+
16
+ memory_view = Fiddle::MemoryView.new(ort_value) # => Fiddle::MemoryView, now it may export a MemoryView
17
+
18
+ ndav = NDAV.from_ort_value(ort_value) # => NDAV
19
+ ort_value = OnnxRuntime::OrtValue.from_ndav(ndav) # => OnnxRuntime::OrtValue
20
+
21
+ include NDAV::Converter
22
+ ndav = NDAV(ort_value) # => NDAV
23
+ ort_value = OrtValue(ndav) # => OnnxRuntime::OrtValue
24
+ ```
5
25
 
6
26
  LICENSE
7
27
  ------
8
28
 
9
29
  MIT license. See LICENSE.txt file.
10
30
 
31
+ [NDAV]: https://kitaitimakoto.gitlab.io/ndav/
11
32
  [ONNX Runtime Ruby]: https://github.com/ankane/onnxruntime-ruby
@@ -83,66 +83,42 @@ class NDAV
83
83
  end
84
84
  end
85
85
 
86
- module ToNDAV
87
- def to_ndav
86
+ module MemoryViewable
87
+ def ndav_descriptor(**)
88
88
  item_size = TYPE_SIZES[element_type]
89
- Utils.unsupported_type("NDAV", element_type) unless item_size
89
+ unless item_size
90
+ warn "unsupported type: #{element_type}"
91
+ return false
92
+ end
93
+
90
94
  byte_size = shape.reduce(item_size, :*)
91
95
 
92
- ::NDAV.new(
93
- ::Fiddle::Pointer.new(data_ptr.address, byte_size),
94
- shape: shape.dup,
96
+ {
97
+ data: ::Fiddle::Pointer.new(data_ptr.address, byte_size),
98
+ shape:,
99
+ strides: ::NDAV.default_strides(shape:, item_size:),
95
100
  format: TYPE_TO_FORMAT[element_type],
96
- lifetime: self
97
- )
98
- end
99
- end
100
-
101
- module FromOrtValue
102
- def from_ort_value(array)
103
- array.to_ndav
104
- end
105
- end
106
-
107
- module ToOrtValue
108
- def to_ort_value
109
- ::OnnxRuntime::OrtValue.from_ndav(self)
101
+ byte_size:,
102
+ readonly?: true,
103
+ sub_offsets: nil
104
+ }
110
105
  end
111
106
  end
112
107
 
113
108
  module Converter
114
- if defined? ::NDAV::Converter::OrtValue
115
- def OrtValue(array, *, **)
116
- if array.kind_of? ::NDAV
117
- array.to_ort_value
118
- elsif array.respond_to? :to_ort_value
119
- array.to_ort_value
120
- elsif array.respond_to? :to_ndav
121
- array.to_ndav(*, **).to_ort_value
122
- else
123
- super
124
- end
125
- end
126
- else
127
- def OrtValue(array, *, **)
128
- if array.kind_of? ::NDAV
129
- array.to_ort_value
130
- elsif array.respond_to? :to_ort_value
131
- array.to_ort_value
132
- elsif array.respond_to? :to_ndav
133
- array.to_ndav(*, **).to_ort_value
134
- else
135
- ::NDAV.new(array, *, **).to_ort_value
136
- end
109
+ def OrtValue(array, *, **)
110
+ if array.kind_of? ::OnnxRuntime::OrtValue
111
+ array
112
+ elsif array.respond_to? :to_ort_value
113
+ array.to_ort_value
114
+ elsif array.respond_to? :to_ndav
115
+ to_ndav(*, **).to_ort_value
116
+ else
117
+ ::NDAV.new(array, *, **).to_ort_value
137
118
  end
138
119
  end
139
120
  end
140
-
141
- ::OnnxRuntime::OrtValue.extend FromNDAV
142
- ::OnnxRuntime::OrtValue.include ToNDAV
143
- ::NDAV.extend FromOrtValue
144
- ::NDAV.include ToOrtValue
145
- ::NDAV::Converter.singleton_class.prepend Converter
146
- ::NDAV::Converter.prepend Converter
147
121
  end
122
+
123
+ ::NDAV.register ::OnnxRuntime::OrtValue, OrtValue, name: :ort_value
148
124
  end
@@ -1,13 +1,13 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "ndav-ort_value"
3
- s.version = "0.0.2"
3
+ s.version = "0.0.4"
4
4
  s.authors = ["Kitaiti Makoto"]
5
5
  s.summary = "OnnxRuntime extension for MemoryView exporters and pointers"
6
6
  s.licenses = ["MIT"]
7
7
  s.homepage = "https://gitlab.com/KitaitiMakoto/ndav-ort_value"
8
8
 
9
9
  s.add_runtime_dependency "onnxruntime"
10
- s.add_runtime_dependency "ndav"
10
+ s.add_runtime_dependency "ndav", ">= 0.0.5"
11
11
 
12
12
  s.files = Dir.chdir(__dir__) {`git ls-files -z`.split("\x0")}
13
13
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ndav-ort_value
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kitaiti Makoto
@@ -29,14 +29,14 @@ dependencies:
29
29
  requirements:
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: '0'
32
+ version: 0.0.5
33
33
  type: :runtime
34
34
  prerelease: false
35
35
  version_requirements: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - ">="
38
38
  - !ruby/object:Gem::Version
39
- version: '0'
39
+ version: 0.0.5
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: rake
42
42
  requirement: !ruby/object:Gem::Requirement
@@ -164,7 +164,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
164
164
  - !ruby/object:Gem::Version
165
165
  version: '0'
166
166
  requirements: []
167
- rubygems_version: 4.0.6
167
+ rubygems_version: 4.0.16
168
168
  specification_version: 4
169
169
  summary: OnnxRuntime extension for MemoryView exporters and pointers
170
170
  test_files: []