Skip to content

Commit d3b54aa

Browse files
authored
Update builds to support MLDeviceType enum (cpu, gpu,npu) and numThreads (tensorflow#10)
* Update tensorflow_lite_webnn_delegate.patch * Update builds to support MLDeviceType enum (cpu, gpu, npu)
1 parent a718554 commit d3b54aa

File tree

77 files changed

+46532
-36549
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

77 files changed

+46532
-36549
lines changed

tensorflow_lite_support/web/tflite_model_runner/cc/tflite_model_runner.cc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ TfLiteStatus TFLiteWebModelRunner::InitFromBuffer(
105105
TfLiteWebNNDelegateOptions options =
106106
TfLiteWebNNDelegateOptionsDefault();
107107
options.deviceType = options_.webnn_device_preference;
108+
options.numThreads = options_.webnn_num_threads;
108109
auto webnn_delegate = TfLiteWebNNDelegateCreate(&options);
109110
auto delegate_ptr = tflite::Interpreter::TfLiteDelegatePtr(webnn_delegate, [](TfLiteDelegate* delegate) {
110111
TfLiteWebNNDelegateDelete(delegate);

tensorflow_lite_support/web/tflite_model_runner/cc/tflite_model_runner.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,11 @@ struct TFLiteWebModelRunnerOptions {
3737

3838
bool enable_webnn_delegate = false;
3939

40-
// 0 - default, 1 - gpu, 2 - cpu
40+
// 0 - cpu, 1 - gpu, 2 - npu
4141
int webnn_device_preference = 0;
4242

43+
int webnn_num_threads = 0;
44+
4345
// TODO(jingjin): Add more as needed.
4446
};
4547

tensorflow_lite_support/web/tflite_model_runner/cc/tflite_model_runner_wasm.cc

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,9 @@ EMSCRIPTEN_BINDINGS(tf_lite_web_model_runner_structs) {
9797
.field("enableWebNNDelegate",
9898
&tfweb::generic::TFLiteWebModelRunnerOptions::enable_webnn_delegate)
9999
.field("webNNDevicePreference",
100-
&tfweb::generic::TFLiteWebModelRunnerOptions::webnn_device_preference);
100+
&tfweb::generic::TFLiteWebModelRunnerOptions::webnn_device_preference)
101+
.field("webNNNumThreads",
102+
&tfweb::generic::TFLiteWebModelRunnerOptions::webnn_num_threads);
101103
class_<tfweb::generic::TFLiteWebModelRunnerTensorInfo>(
102104
"TFLiteWebModelRunnerTensorInfo")
103105
.function("data", &GetRawBufferFromTFLiteWebModelRunnerTensorInfo)

tensorflow_lite_support/web/tflite_model_runner/demo/dist/builtin_delegate_worker.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ onmessage = async (message) => {
3636
),
3737
enableWebNNDelegate: message.data.enableWebNNDelegate,
3838
webNNDevicePreference: parseInt(message.data.webNNDevicePreference),
39+
webNNNumThreads: 0,
3940
}
4041
);
4142

tensorflow_lite_support/web/tflite_model_runner/demo/dist/external_delegate_worker.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
'use strict';
22

33
// tfjs-tflite + webnn external delegate
4-
importScripts('https://cdn.jsdelivr.net/npm/@webmachinelearning/webnn-polyfill/dist/webnn-polyfill.js');
4+
// importScripts('https://cdn.jsdelivr.net/npm/@webmachinelearning/webnn-polyfill/dist/webnn-polyfill.js');
55
importScripts("https://cdn.jsdelivr.net/npm/@tensorflow/tfjs-core");
66
importScripts("https://cdn.jsdelivr.net/npm/@tensorflow/tfjs-backend-cpu");
77
importScripts('./tfjs-tflite/tf-tflite.js');
@@ -25,7 +25,7 @@ onmessage = async (message) => {
2525
const webNNDevicePreference = parseInt(message.data.webNNDevicePreference);
2626

2727
if (enableWebNNDelegate) {
28-
options.delegatePath = './webnn_external_delegate_wasm.wasm';
28+
options.delegatePath = '../webnn_external_delegate_wasm.wasm';
2929
}
3030

3131
tflite.setWasmPath('./tfjs-tflite/');

tensorflow_lite_support/web/tflite_model_runner/demo/dist/index.html

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,9 @@ <h1>TFLite Web API Model Runner Demo</h1>
6363
Use WebNN delegate: <input type="checkbox" id="webnnDelegate" />
6464
Device preference:
6565
<select id="webnnDevice">
66+
<option value="0">cpu</option>
6667
<option value="1">gpu</option>
67-
<option value="2">cpu</option>
68+
<option value="2">npu</option>
6869
</select>
6970
</div>
7071
<div>
@@ -75,7 +76,7 @@ <h1>TFLite Web API Model Runner Demo</h1>
7576
<img src="wine.jpeg" alt="wine" />
7677
<div class="result"></div>
7778
</div>
78-
<script src="./tflite_model_runner_cc_simd.js"></script>
79+
<!-- <script src="./tflite_model_runner_cc_simd.js"></script> -->
7980
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs/dist/tf.min.js"></script>
8081
<script src="./script.js"></script>
8182
</body>

tensorflow_lite_support/web/tflite_model_runner/demo/dist/tfjs-tflite/tf-tflite.es2017.js

Lines changed: 2506 additions & 1970 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tensorflow_lite_support/web/tflite_model_runner/demo/dist/tfjs-tflite/tf-tflite.es2017.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tensorflow_lite_support/web/tflite_model_runner/demo/dist/tfjs-tflite/tf-tflite.es2017.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tensorflow_lite_support/web/tflite_model_runner/demo/dist/tfjs-tflite/tf-tflite.es2017.min.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)