Skip to content

Commit e439866

Browse files
a-sullymoz-wptsync-bot
authored andcommitted
Bug 1925437 [wpt PR 48690] - webnn: Deprecate MLTensorUsage in favor of boolean flags, a=testonly
Automatic update from web-platform-tests webnn: Deprecate MLTensorUsage in favor of boolean flags As per the feedback on this thread on the MLTensor explainer PR: webmachinelearning/webnn#754 (comment) This CL includes logic to still support specifying the deprecated MLTensorUsage flags for now, though this logic will only exist for about a milestone to give callers the opportunity to migrate their existing code Bug: 343638938 Change-Id: I56209e68fde3920b8d6c781c8f804ac6fcd35c9a Cq-Include-Trybots: luci.chromium.try​:mac14.arm64-blink-rel,win11-blink-rel Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5933323 Reviewed-by: ningxin hu <[email protected]> Auto-Submit: Austin Sullivan <[email protected]> Commit-Queue: ningxin hu <[email protected]> Cr-Commit-Position: refs/heads/main@{#1370419} -- wpt-commits: ab3cd3a3748943c7ec96b7fdcc7b8e3acebe1396 wpt-pr: 48690
1 parent 2d63550 commit e439866

6 files changed

+64
-40
lines changed

testing/web-platform/tests/webnn/conformance_tests/byob_readtensor.https.any.js

+4-3
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@ promise_setup(async () => {
3232
mlTensor = await mlContext.createTensor({
3333
dataType: 'int32',
3434
shape: [2, 4],
35-
usage: MLTensorUsage.WRITE | MLTensorUsage.READ,
35+
readable: true,
36+
writable: true,
3637
});
3738
} catch (e) {
3839
throw new AssertionError(
@@ -141,7 +142,7 @@ promise_test(async (t) => {
141142
const tensor = await mlContext.createTensor({
142143
dataType: 'int32',
143144
shape: [2, 2],
144-
usage: MLTensorUsage.READ,
145+
readable: true,
145146
});
146147
const arrayBufferView = new Int32Array(2 * 2);
147148
const arrayBuffer = arrayBufferView.buffer;
@@ -159,7 +160,7 @@ promise_test(async (t) => {
159160
const tensor = await mlContext.createTensor({
160161
dataType: 'int32',
161162
shape: [2, 2],
162-
usage: MLTensorUsage.READ,
163+
readable: true,
163164
});
164165
const arrayBufferView = new Int32Array(2 * 2);
165166
const arrayBuffer = arrayBufferView.buffer;

testing/web-platform/tests/webnn/conformance_tests/inputs-are-not-modified.https.any.js

+6-6
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,10 @@ promise_test(async () => {
3131
mlContext.createTensor({
3232
dataType: 'float32',
3333
shape: [4],
34-
usage: MLTensorUsage.WRITE | MLTensorUsage.READ
34+
readable: true,
35+
writable: true,
3536
}),
36-
mlContext.createTensor(
37-
{dataType: 'float32', shape: [4], usage: MLTensorUsage.READ}),
37+
mlContext.createTensor({dataType: 'float32', shape: [4], readable: true}),
3838
builder.build({'output': outputOperand})
3939
]);
4040

@@ -66,10 +66,10 @@ promise_test(async () => {
6666
mlContext.createTensor({
6767
dataType: 'float32',
6868
shape: [4],
69-
usage: MLTensorUsage.WRITE | MLTensorUsage.READ
69+
readable: true,
70+
writable: true,
7071
}),
71-
mlContext.createTensor(
72-
{dataType: 'float32', shape: [4], usage: MLTensorUsage.READ}),
72+
mlContext.createTensor({dataType: 'float32', shape: [4], readable: true}),
7373
builder.build({'output': outputOperand})
7474
]);
7575

testing/web-platform/tests/webnn/conformance_tests/parallel-dispatch.https.any.js

+18-9
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,8 @@ promise_test(async () => {
3333
const operandDescriptor = {
3434
dataType: 'float32',
3535
shape: [1],
36-
usage: MLTensorUsage.WRITE | MLTensorUsage.READ,
36+
readable: true,
37+
writable: true,
3738
};
3839

3940
const [mlGraph, inputTensor1, inputTensor2, outputTensor] =
@@ -73,7 +74,8 @@ promise_test(async () => {
7374
const operandDescriptor = {
7475
dataType: 'float32',
7576
shape: [1],
76-
usage: MLTensorUsage.WRITE | MLTensorUsage.READ,
77+
readable: true,
78+
writable: true,
7779
};
7880
const mlGraph = await buildMulGraph(mlContext, operandDescriptor, 3);
7981

@@ -101,7 +103,8 @@ promise_test(async () => {
101103
const operandDescriptor = {
102104
dataType: 'float32',
103105
shape: [1],
104-
usage: MLTensorUsage.WRITE | MLTensorUsage.READ,
106+
readable: true,
107+
writable: true,
105108
};
106109
const mlGraph = await buildMulGraph(mlContext, operandDescriptor, 10);
107110

@@ -140,7 +143,8 @@ promise_test(async () => {
140143
const operandDescriptor = {
141144
dataType: 'float32',
142145
shape: [1],
143-
usage: MLTensorUsage.WRITE | MLTensorUsage.READ,
146+
readable: true,
147+
writable: true,
144148
};
145149
const mlGraph = await buildMulGraph(mlContext, operandDescriptor, 9);
146150

@@ -178,7 +182,8 @@ promise_test(async () => {
178182
const operandDescriptor = {
179183
dataType: 'float32',
180184
shape: [1],
181-
usage: MLTensorUsage.WRITE | MLTensorUsage.READ,
185+
readable: true,
186+
writable: true,
182187
};
183188
const mlGraph = await buildMulGraph(mlContext, operandDescriptor, 2);
184189

@@ -211,7 +216,8 @@ promise_test(async () => {
211216
const operandDescriptor = {
212217
dataType: 'float32',
213218
shape: [1],
214-
usage: MLTensorUsage.WRITE | MLTensorUsage.READ,
219+
readable: true,
220+
writable: true,
215221
};
216222

217223
// write/write...
@@ -250,7 +256,8 @@ promise_test(async () => {
250256
const operandDescriptor = {
251257
dataType: 'float32',
252258
shape: [1],
253-
usage: MLTensorUsage.WRITE | MLTensorUsage.READ,
259+
readable: true,
260+
writable: true,
254261
};
255262

256263
// write/write...
@@ -288,7 +295,8 @@ promise_test(async () => {
288295
const operandDescriptor = {
289296
dataType: 'float32',
290297
shape: [1],
291-
usage: MLTensorUsage.WRITE | MLTensorUsage.READ,
298+
readable: true,
299+
writable: true,
292300
};
293301

294302
const graphs = await Promise.all([3, 2].map(async (multiplier) => {
@@ -324,7 +332,8 @@ promise_test(async () => {
324332
const operandDescriptor = {
325333
dataType: 'float32',
326334
shape: [1],
327-
usage: MLTensorUsage.WRITE | MLTensorUsage.READ,
335+
readable: true,
336+
writable: true,
328337
};
329338

330339
const graphs = await Promise.all([2, 3].map(async (multiplier) => {

testing/web-platform/tests/webnn/conformance_tests/tensor.https.any.js

+30-16
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,13 @@ const sizeOfDescriptor = (descriptor) => {
3333
};
3434

3535
const getDescriptorFromTensor = (tensor) => {
36-
return {dataType: tensor.dataType, shape: tensor.shape, usage: tensor.usage};
36+
return {
37+
dataType: tensor.dataType,
38+
shape: tensor.shape,
39+
readable: tensor.readable,
40+
writable: tensor.writable,
41+
importableToWebGPU: tensor.importableToWebGPU,
42+
};
3743
};
3844

3945

@@ -162,7 +168,7 @@ const testWriteTensor = (testName) => {
162168
const tensorDescriptor = {
163169
dataType: 'int32',
164170
shape: [1],
165-
usage: MLTensorUsage.WRITE,
171+
writable: true,
166172
};
167173
let mlTensor = await mlContext.createTensor(tensorDescriptor);
168174

@@ -211,7 +217,7 @@ const testWriteTensor = (testName) => {
211217
const tensorDescriptor = {
212218
dataType: 'int32',
213219
shape: [2, 2],
214-
usage: MLTensorUsage.WRITE,
220+
writable: true,
215221
};
216222
let mlTensor = await mlContext.createTensor(tensorDescriptor);
217223

@@ -228,7 +234,7 @@ const testWriteTensor = (testName) => {
228234
const tensorDescriptor = {
229235
dataType: 'int32',
230236
shape: [2, 3],
231-
usage: MLTensorUsage.WRITE,
237+
writable: true,
232238
};
233239
let mlTensor = await mlContext.createTensor(tensorDescriptor);
234240

@@ -247,7 +253,8 @@ const testWriteTensor = (testName) => {
247253
let mlTensor = await mlContext.createTensor({
248254
dataType: 'int32',
249255
shape: [1],
250-
usage: MLTensorUsage.WRITE | MLTensorUsage.READ,
256+
readable: true,
257+
writable: true,
251258
});
252259

253260
// Initialize the tensor.
@@ -270,7 +277,8 @@ const testWriteTensor = (testName) => {
270277
const tensorDescriptor = {
271278
dataType: 'int32',
272279
shape: [2, 2],
273-
usage: MLTensorUsage.WRITE | MLTensorUsage.READ,
280+
readable: true,
281+
writable: true,
274282
};
275283
let mlTensor = await mlContext.createTensor(tensorDescriptor);
276284

@@ -321,7 +329,7 @@ const testReadTensor = (testName) => {
321329
let mlTensor = await mlContext.createTensor({
322330
dataType: 'int32',
323331
shape: [2, 2],
324-
usage: MLTensorUsage.READ,
332+
readable: true,
325333
});
326334

327335
// Reading a destroyed MLTensor should reject.
@@ -335,7 +343,7 @@ const testReadTensor = (testName) => {
335343
let mlTensor = await mlContext.createTensor({
336344
dataType: 'int32',
337345
shape: [2, 3],
338-
usage: MLTensorUsage.READ,
346+
readable: true,
339347
});
340348

341349
let promise = mlContext.readTensor(mlTensor);
@@ -351,7 +359,7 @@ const testReadTensor = (testName) => {
351359
let mlTensor = await mlContext.createTensor({
352360
dataType: 'int32',
353361
shape: [1024],
354-
usage: MLTensorUsage.READ,
362+
readable: true,
355363
});
356364

357365
await assert_tensor_data_equals(mlContext, mlTensor, new Uint32Array(1024));
@@ -361,7 +369,8 @@ const testReadTensor = (testName) => {
361369
let mlTensor = await mlContext.createTensor({
362370
dataType: 'int32',
363371
shape: [1],
364-
usage: MLTensorUsage.READ | MLTensorUsage.WRITE,
372+
readable: true,
373+
writable: true,
365374
});
366375

367376
// Initialize the tensor.
@@ -377,7 +386,8 @@ const testReadTensor = (testName) => {
377386
let mlTensor = await mlContext.createTensor({
378387
dataType: 'int32',
379388
shape: [1],
380-
usage: MLTensorUsage.WRITE | MLTensorUsage.READ,
389+
readable: true,
390+
writable: true,
381391
});
382392

383393
// Initialize the tensor.
@@ -395,7 +405,8 @@ const testReadTensor = (testName) => {
395405
let mlTensor = await mlContext.createTensor({
396406
dataType: 'int32',
397407
shape: [1],
398-
usage: MLTensorUsage.WRITE | MLTensorUsage.READ,
408+
readable: true,
409+
writable: true,
399410
});
400411

401412
// Initialize the tensor.
@@ -413,7 +424,8 @@ const testReadTensor = (testName) => {
413424
let mlTensor = await mlContext.createTensor({
414425
dataType: 'int32',
415426
shape: [1],
416-
usage: MLTensorUsage.WRITE | MLTensorUsage.READ,
427+
readable: true,
428+
writable: true,
417429
});
418430

419431
// Initialize the tensor.
@@ -431,7 +443,8 @@ const testReadTensor = (testName) => {
431443
let mlTensor = await mlContext.createTensor({
432444
dataType: 'int32',
433445
shape: [1],
434-
usage: MLTensorUsage.WRITE | MLTensorUsage.READ,
446+
readable: true,
447+
writable: true,
435448
});
436449

437450
const inputData = [0xAA, 0xAA, 0xAA, 0xAA];
@@ -448,7 +461,7 @@ const testReadTensor = (testName) => {
448461
const tensorDescriptor = {
449462
dataType: 'int32',
450463
shape: [2, 3],
451-
usage: MLTensorUsage.READ,
464+
readable: true,
452465
};
453466
let mlTensor = await mlContext.createTensor(tensorDescriptor);
454467

@@ -484,7 +497,8 @@ const testDispatchTensor = (testName) => {
484497
const tensorDescriptor = {
485498
dataType: 'float32',
486499
shape: shape,
487-
usage: MLTensorUsage.WRITE | MLTensorUsage.READ,
500+
readable: true,
501+
writable: true,
488502
};
489503
const lhsOperand = builder.input('lhs', tensorDescriptor);
490504
const rhsOperand = builder.input('rhs', tensorDescriptor);

testing/web-platform/tests/webnn/validation_tests/destroyContext.https.any.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ promise_test(async t => {
135135
const tensor = await context.createTensor({
136136
dataType: 'float32',
137137
shape: [1],
138-
usage: MLTensorUsage.READ,
138+
readable: true,
139139
});
140140
context.destroy();
141141
promise_rejects_dom(t, 'InvalidStateError', context.readTensor(tensor));
@@ -146,7 +146,7 @@ promise_test(async t => {
146146
const tensor = await context.createTensor({
147147
dataType: 'float32',
148148
shape: [1],
149-
usage: MLTensorUsage.READ,
149+
readable: true,
150150
});
151151
let promise = context.readTensor(tensor);
152152
context.destroy();
@@ -161,7 +161,7 @@ promise_test(async t => {
161161
const tensor = await context.createTensor({
162162
dataType: 'float32',
163163
shape: [1],
164-
usage: MLTensorUsage.WRITE,
164+
writable: true,
165165
});
166166
let arrayBuffer = new ArrayBuffer(4);
167167
context.destroy();

testing/web-platform/tests/webnn/validation_tests/destroyGraph.https.any.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -110,17 +110,17 @@ promise_test(async t => {
110110
const lhsTensor = await context.createTensor({
111111
dataType: 'float32',
112112
shape: [1],
113-
usage: MLTensorUsage.WRITE,
113+
writable: true,
114114
});
115115
const rhsTensor = await context.createTensor({
116116
dataType: 'float32',
117117
shape: [1],
118-
usage: MLTensorUsage.WRITE,
118+
writable: true,
119119
});
120120
const outputTensor = await context.createTensor({
121121
dataType: 'float32',
122122
shape: [1],
123-
usage: MLTensorUsage.READ,
123+
readable: true,
124124
});
125125
// Initialize inputs
126126
const inputData = new Float32Array(1).fill(2.0);

0 commit comments

Comments
 (0)