【发布时间】:2022-08-03 08:37:56
【问题描述】:
描述
嗨,大家好!
我正在研究使用 Tensorflow.js 在具有 WebGPU 功能的 Web 浏览器中运行 DNN。
示例 #1
所以,我首先使用 Tensorflow.js 的MobileNet 示例(Source)作为起点。但是,该示例没有使用 Tensorflow.js 的 WebGPU 后端。所以我修改了index.js的前几行,使用WebGPU后端,如下图:
import * as tf from \'@tensorflow/tfjs\';
import \'@tensorflow/tfjs-backend-webgpu\'
import { IMAGENET_CLASSES } from \'./imagenet_classes\';
tf.setBackend(\'webgpu\');
然后,在npm install 和npm run watch 之后,该示例确实运行并可以执行 DNN 推理。
但是,当我查看 Chrome 的终端输出时,我看到一条警告说
此设备不支持时间戳查询扩展。使用标志 --disable-dawn-features=disallow_unsafe_apis 启动 Chrome 浏览器,然后重试。或者启用分析模式时,内核时间将显示为零。使用 performance.now 不适用于 webgpu,因为它不支持从 GPU 同步读取数据。
示例 #2
我尝试的另一个示例是 Tensorflow.js 的官方 repo 中 WebGPU 和 WebGL 后端之间的性能基准测试。 source
我使用
python3 -m http.server在perf文件夹中运行HTTP 服务器,并运行基准测试。 但是,生成的结果显示 Tensorflow.js 在 WebGPU 上运行基准测试时无法获取执行时间。此外,support timestamp-query extension警告也出现在浏览器的终端中。我的实验的执行环境
我正在使用 MacBook Pro M1 Max(内置 GPU)+ Google Chrome Canary (106.0.5205.0)
我尝试过的努力
为了使
timestamp-query extension工作,按照警告中的说明,我尝试了./Google Chrome Canary --args --disable-dawn-features=disallow_unsafe_apis但是,这个技巧并不需要任何努力。
所以请你们给我一个提示,我可以启用这个功能吗?
标签: javascript google-chrome dotnetnuke tensorflow.js webgpu