@@ -10,7 +10,6 @@ Then, the user passes <em>tensor</em> inputs to the <em>graph</em>, computes the
10
10
<li >Imports:
11
11
<ul >
12
12
<
li >interface <
a href =
" #wasi_nn_tensor_0_2_0_rc_2024_06_25 " ><
code >wasi:nn/
[email protected] </
code ></
a ></
li >
13
- <
li >interface <
a href =
" #wasi_nn_errors_0_2_0_rc_2024_06_25 " ><
code >wasi:nn/
[email protected] </
code ></
a ></
li >
14
13
<
li >interface <
a href =
" #wasi_nn_inference_0_2_0_rc_2024_06_25 " ><
code >wasi:nn/
[email protected] </
code ></
a ></
li >
15
14
<
li >interface <
a href =
" #wasi_nn_graph_0_2_0_rc_2024_06_25 " ><
code >wasi:nn/
[email protected] </
code ></
a ></
li >
16
15
</ul >
@@ -90,94 +89,13 @@ containing a single value, use <code>[1]</code> for the tensor dimensions.</p>
90
89
<ul >
91
90
<li ><a name =" method_tensor_data.0 " ></a > <a href =" #tensor_data " ><a href =" #tensor_data " ><code >tensor-data</code ></a ></a ></li >
92
91
</ul >
93
- <
h2 ><
a name =
" wasi_nn_errors_0_2_0_rc_2024_06_25 " ></
a >Import interface wasi:nn/
[email protected] </
h2 >
94
- <p >TODO: create function-specific errors (https://github.com/WebAssembly/wasi-nn/issues/42)</p >
95
- <hr />
96
- <h3 >Types</h3 >
97
- <h4 ><a name =" error_code " ></a ><code >enum error-code</code ></h4 >
98
- <h5 >Enum Cases</h5 >
99
- <ul >
100
- <li >
101
- <p ><a name =" error_code.invalid_argument " ></a ><code >invalid-argument</code ></p >
102
- <p >Caller module passed an invalid argument.
103
- </li >
104
- <li >
105
- <p ><a name =" error_code.invalid_encoding " ></a ><code >invalid-encoding</code ></p >
106
- <p >Invalid encoding.
107
- </li >
108
- <li >
109
- <p ><a name =" error_code.timeout " ></a ><code >timeout</code ></p >
110
- <p >The operation timed out.
111
- </li >
112
- <li >
113
- <p ><a name =" error_code.runtime_error " ></a ><code >runtime-error</code ></p >
114
- <p >Runtime Error.
115
- </li >
116
- <li >
117
- <p ><a name =" error_code.unsupported_operation " ></a ><code >unsupported-operation</code ></p >
118
- <p >Unsupported operation.
119
- </li >
120
- <li >
121
- <p ><a name =" error_code.too_large " ></a ><code >too-large</code ></p >
122
- <p >Graph is too large.
123
- </li >
124
- <li >
125
- <p ><a name =" error_code.not_found " ></a ><code >not-found</code ></p >
126
- <p >Graph not found.
127
- </li >
128
- <li >
129
- <p ><a name =" error_code.security " ></a ><code >security</code ></p >
130
- <p >The operation is insecure or has insufficient privilege to be performed.
131
- e.g., cannot access a hardware feature requested
132
- </li >
133
- <li >
134
- <p ><a name =" error_code.unknown " ></a ><code >unknown</code ></p >
135
- <p >The operation failed for an unspecified reason.
136
- </li >
137
- </ul >
138
- <h4 ><a name =" error " ></a ><code >resource error</code ></h4 >
139
- <hr />
140
- <h3 >Functions</h3 >
141
- <h4 ><a name =" constructor_error " ></a ><code >[constructor]error: func</code ></h4 >
142
- <h5 >Params</h5 >
143
- <ul >
144
- <li ><a name =" constructor_error.code " ></a ><code >code</code >: <a href =" #error_code " ><a href =" #error_code " ><code >error-code</code ></a ></a ></li >
145
- <li ><a name =" constructor_error.data " ></a ><code >data</code >: <code >string</code ></li >
146
- </ul >
147
- <h5 >Return values</h5 >
148
- <ul >
149
- <li ><a name =" constructor_error.0 " ></a > own< ; <a href =" #error " ><a href =" #error " ><code >error</code ></a ></a >> ; </li >
150
- </ul >
151
- <h4 ><a name =" method_error_code " ></a ><code >[method]error.code: func</code ></h4 >
152
- <p >Return the error code.</p >
153
- <h5 >Params</h5 >
154
- <ul >
155
- <li ><a name =" method_error_code.self " ></a ><code >self</code >: borrow< ; <a href =" #error " ><a href =" #error " ><code >error</code ></a ></a >> ; </li >
156
- </ul >
157
- <h5 >Return values</h5 >
158
- <ul >
159
- <li ><a name =" method_error_code.0 " ></a > <a href =" #error_code " ><a href =" #error_code " ><code >error-code</code ></a ></a ></li >
160
- </ul >
161
- <h4 ><a name =" method_error_data " ></a ><code >[method]error.data: func</code ></h4 >
162
- <p >Errors can propagated with backend specific status through a string value.</p >
163
- <h5 >Params</h5 >
164
- <ul >
165
- <li ><a name =" method_error_data.self " ></a ><code >self</code >: borrow< ; <a href =" #error " ><a href =" #error " ><code >error</code ></a ></a >> ; </li >
166
- </ul >
167
- <h5 >Return values</h5 >
168
- <ul >
169
- <li ><a name =" method_error_data.0 " ></a > <code >string</code ></li >
170
- </ul >
171
92
<
h2 ><
a name =
" wasi_nn_inference_0_2_0_rc_2024_06_25 " ></
a >Import interface wasi:nn/
[email protected] </
h2 >
172
93
<p >An inference " ; session" ; is encapsulated by a <a href =" #graph_execution_context " ><code >graph-execution-context</code ></a >. This structure binds a
173
94
<a href =" #graph " ><code >graph</code ></a > to input tensors before <code >compute</code >-ing an inference:</p >
174
95
<hr />
175
96
<h3 >Types</h3 >
176
- <h4 ><a name =" error " ></a ><code >type error</code ></h4 >
177
- <p ><a href =" #error " ><a href =" #error " ><code >error</code ></a ></a ></p >
178
- <p >
179
- #### <a name =" tensor " ></a >` type tensor `
180
- [ ` tensor ` ] ( #tensor )
97
+ <h4 ><a name =" tensor " ></a ><code >type tensor</code ></h4 >
98
+ <p ><a href =" #tensor " ><a href =" #tensor " ><code >tensor</code ></a ></a ></p >
181
99
<p >
182
100
#### <a name =" tensor_data " ></a >` type tensor-data `
183
101
[ ` tensor-data ` ] ( #tensor_data )
@@ -197,7 +115,7 @@ e.g., cannot access a hardware feature requested
197
115
</ul >
198
116
<h5 >Return values</h5 >
199
117
<ul >
200
- <li ><a name =" method_graph_execution_context_set_input.0 " ></a > result< ; _, own & lt ; < a href = " #error " >< a href = " #error " >< code >error </code ></ a ></ a > & gt ; > ; </li >
118
+ <li ><a name =" method_graph_execution_context_set_input.0 " ></a > result< ; _, < code >string </code >> ; </li >
201
119
</ul >
202
120
<h4 ><a name =" method_graph_execution_context_compute " ></a ><code >[method]graph-execution-context.compute: func</code ></h4 >
203
121
<p >Compute the inference on the given inputs.</p >
@@ -210,7 +128,7 @@ https://github.com/WebAssembly/wasi-nn/issues/43.</p>
210
128
</ul >
211
129
<h5 >Return values</h5 >
212
130
<ul >
213
- <li ><a name =" method_graph_execution_context_compute.0 " ></a > result< ; _, own & lt ; < a href = " #error " >< a href = " #error " >< code >error </code ></ a ></ a > & gt ; > ; </li >
131
+ <li ><a name =" method_graph_execution_context_compute.0 " ></a > result< ; _, < code >string </code >> ; </li >
214
132
</ul >
215
133
<h4 ><a name =" method_graph_execution_context_get_output " ></a ><code >[method]graph-execution-context.get-output: func</code ></h4 >
216
134
<p >Extract the outputs after inference.</p >
@@ -221,18 +139,15 @@ https://github.com/WebAssembly/wasi-nn/issues/43.</p>
221
139
</ul >
222
140
<h5 >Return values</h5 >
223
141
<ul >
224
- <li ><a name =" method_graph_execution_context_get_output.0 " ></a > result< ; own< ; <a href =" #tensor " ><a href =" #tensor " ><code >tensor</code ></a ></a >> ; , own & lt ; < a href = " #error " >< a href = " #error " >< code >error </code ></ a ></ a > & gt ; > ; </li >
142
+ <li ><a name =" method_graph_execution_context_get_output.0 " ></a > result< ; own< ; <a href =" #tensor " ><a href =" #tensor " ><code >tensor</code ></a ></a >> ; , < code >string </code >> ; </li >
225
143
</ul >
226
144
<
h2 ><
a name =
" wasi_nn_graph_0_2_0_rc_2024_06_25 " ></
a >Import interface wasi:nn/
[email protected] </
h2 >
227
145
<p >A <a href =" #graph " ><code >graph</code ></a > is a loaded instance of a specific ML model (e.g., MobileNet) for a specific ML
228
146
framework (e.g., TensorFlow):</p >
229
147
<hr />
230
148
<h3 >Types</h3 >
231
- <h4 ><a name =" error " ></a ><code >type error</code ></h4 >
232
- <p ><a href =" #error " ><a href =" #error " ><code >error</code ></a ></a ></p >
233
- <p >
234
- #### <a name =" tensor " ></a >` type tensor `
235
- [ ` tensor ` ] ( #tensor )
149
+ <h4 ><a name =" tensor " ></a ><code >type tensor</code ></h4 >
150
+ <p ><a href =" #tensor " ><a href =" #tensor " ><code >tensor</code ></a ></a ></p >
236
151
<p >
237
152
#### <a name =" graph_execution_context " ></a >` type graph-execution-context `
238
153
[ ` graph-execution-context ` ] ( #graph_execution_context )
@@ -274,7 +189,7 @@ graph IR in parts (e.g., OpenVINO stores its IR and weights separately).</p>
274
189
</ul >
275
190
<h5 >Return values</h5 >
276
191
<ul >
277
- <li ><a name =" method_graph_init_execution_context.0 " ></a > result< ; own< ; <a href =" #graph_execution_context " ><a href =" #graph_execution_context " ><code >graph-execution-context</code ></a ></a >> ; , own & lt ; < a href = " #error " >< a href = " #error " >< code >error </code ></ a ></ a > & gt ; > ; </li >
192
+ <li ><a name =" method_graph_init_execution_context.0 " ></a > result< ; own< ; <a href =" #graph_execution_context " ><a href =" #graph_execution_context " ><code >graph-execution-context</code ></a ></a >> ; , < code >string </code >> ; </li >
278
193
</ul >
279
194
<h4 ><a name =" load " ></a ><code >load: func</code ></h4 >
280
195
<p >Load a <a href =" #graph " ><code >graph</code ></a > from an opaque sequence of bytes to use for inference.</p >
@@ -286,7 +201,7 @@ graph IR in parts (e.g., OpenVINO stores its IR and weights separately).</p>
286
201
</ul >
287
202
<h5 >Return values</h5 >
288
203
<ul >
289
- <li ><a name =" load.0 " ></a > result< ; own< ; <a href =" #graph " ><a href =" #graph " ><code >graph</code ></a ></a >> ; , own & lt ; < a href = " #error " >< a href = " #error " >< code >error </code ></ a ></ a > & gt ; > ; </li >
204
+ <li ><a name =" load.0 " ></a > result< ; own< ; <a href =" #graph " ><a href =" #graph " ><code >graph</code ></a ></a >> ; , < code >string </code >> ; </li >
290
205
</ul >
291
206
<h4 ><a name =" load_by_name " ></a ><code >load-by-name: func</code ></h4 >
292
207
<p >Load a <a href =" #graph " ><code >graph</code ></a > by name.</p >
@@ -299,5 +214,5 @@ range from simple to complex (e.g., URLs?) and caching mechanisms of various kin
299
214
</ul >
300
215
<h5 >Return values</h5 >
301
216
<ul >
302
- <li ><a name =" load_by_name.0 " ></a > result< ; own< ; <a href =" #graph " ><a href =" #graph " ><code >graph</code ></a ></a >> ; , own & lt ; < a href = " #error " >< a href = " #error " >< code >error </code ></ a ></ a > & gt ; > ; </li >
217
+ <li ><a name =" load_by_name.0 " ></a > result< ; own< ; <a href =" #graph " ><a href =" #graph " ><code >graph</code ></a ></a >> ; , < code >string </code >> ; </li >
303
218
</ul >
0 commit comments