-
Notifications
You must be signed in to change notification settings - Fork 46
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
WPT tests tracker #265
Comments
@BruceDai, thanks for your contributions to conformance testing. I added webnn-baseline to today's agenda including discussion on ULP tolerances to unblock your work on this (I'm not expecting presentation, just discussion). The webnn-baseline is identified as a CR requirement, so high priority. @wchao1115 @huningxin your feedback is welcome in this issue to unblock this proposed work. Since we have a busy agenda today, we may need to defer to GH discussion. |
I'm sorry to report status late. According to testing ULP tolerances between actual output by WebNN operations with expected data/baseline by WebNN-Baseline on some different HW devices with WebNN-Native DML backend and OpenVINO backend, we observed there're majority ULP tolerances with normal input data and some large ULP distance with some special input data. Here I want to propose following majority ULP tolerances to WG. @wchao1115 Please also take a look, and I hope that you would share your pervious operations ULP tolerances of DML, thanks.
I‘ve firstly submitted a PR web-platform-tests/wpt#34287 of adding tests of 8 operations (clamp / concat / relu / reshape / slice / split / squeeze / transpose ) which have 0ULP distance between actual output with expected data/baseline. |
Link to #288 |
[Piggy-packing on this issue with a more generic w-p-t question.] @BruceDai, could you give us an update on where we are in terms of test coverage for WebNN API w-p-t tests? Our plan is to migrate the mocha tests to wpt/webnn to satisfy CR readiness criteria tracked in #240. Looking at the relevant wpt PRs it looks like the migration is in progress. Do you foresee other blockers besides ULP tolerances discussed in this issue? Thanks for your contributions to w-p-t! |
Hi @anssiko, sorry for late response due to the holidays. Current WebNN API Spec defines 56 operations, WebNN-Baseline has already implemented 42 first wave ops, and WebNN-Polyfill has implemented mostly of them (50/56 including 42 first wave ops). I'm starting to add operation level tests from above listed 8/42 first wave ops. Here's a implemented tests table, please have a look, thanks.
Note:
On my opinion, there isn't any other blocker except ULP tolerances which we're working on. I plan to add first wave operations tests into WPT project firstly, then add tests for others operations which are under implementing on WebNN-Polyfill and WebNN-Baseline. Any suggestion, thanks. |
@BruceDai thank you for this update, your plan sounds good to me. Your wpt contributions play an important role in the CR readiness. Please bring any further blockers to the attention of the WG so we can help you address them in a timely manner. |
@BruceDai I'll make this a meta issue for WPT tests tracking and rename the issue to reflect that. Please link the relevant issues and PRs into this meta issue to keep the WG informed of the progress (not everyone is watching the huge wpt repo). We'll review your test plan #265 (comment) on our upcoming call. Thank you! |
Hi BruceDai, here's the initial list...
Let me know if you have any questions. 🧐 (UPDATE: More continued here: #338 (comment)) |
Big thanks to @fdwr for your contribution. @BruceDai Please note that the proposed tolerances are all relative to an ideal baseline. In our WebML call earlier in the week, I believe we've agreed that the WPT test must be relative to a framework-agnostic reference implementation of WebNN. I think we'll need a new repo under the webmachinelearning GitHub organization specifically to host the ref implementation for our WPT tests @anssiko and @huningxin Do you have any objection to that? This is something we can help too. |
Thanks much @fdwr , that's a significant contribution! @wchao1115 , I agreed we should host the reference implementation that generates the ideal baseline results. I think that's the reason we created webnn-baseline repo and implemented the first-wave ops. These ops are implemented in JavaScript double precision calculation and follows the straightforward algorithms, such as conv2d. |
Thanks much @fdwr and @wchao1115 !
|
@wchao1115 I'll put @fdwr on the agenda for our next 6 Oct call, working title "Recommended tolerances for WPT tests". |
Thanks @fdwr ! |
Feng discussed with @fdwr about move test data onto separated JSON files which would make maintain tests easily later. now PR web-platform-tests/wpt#36782 was submitted for reviewing, others tests would add soon. |
@BruceDai thanks for your continued work on WebNN WPT. Can you help answer the following questions:
I'm trying to identify opportunities to broaden our WPT contributor base. I'm aware of participants who are eager to get our remaining CR tasks completed and may be able to help in various capacities. |
The opened issues cover rest of ops which are unimplemented in WebNN-Baseline, if they're fixed, we could leverage these pure JavaScript implementations to get baseline test data for contributing op tests onto wpt.
Current I have none open about tests, I'm still focusing on refining and adding first wave operations tests onto wpt.
Since I've been refining test JSON files of wpt WebNN tests PRs according to feedbacks, those open PRs of WebNN-Basline are also updating, once finished I would ask @huningxin and @fdwr to help review.
Thanks @anssiko. Looking forward more contributors, hope we fix CR tasks ASAP :) |
@BruceDai @fdwr, others, with your continued contributions we are able to not just meet but exceed the test coverage expectations for the Candidate Recommendation maturity level. Thanks for your contributions and congratulation on reaching this major wpt milestone! This is pioneering work for wpt due to domain-specific requirements of this API. I'll close this tracker now and we continue track the remaining work in #338 focusing on two remaining ops. |
Thanks @fdwr's great efforts for reviewing and @Honry's approvals and helps, our WPT WebNN tests PRs have been all landed after previous blocker of syncing updated WebNN IDL interfaces on web-platform-tests/wpt#36908 being resolved by my fixing CI failure PR.
Now there're such 432 WPT WebNN operations tests covered total 40 ops for first wave models after convTranspose2d tests web-platform-tests/wpt#38100 being landed.
We could run these tests on https://wpt.live/webnn/, eg:
Bruce is ongoing to add tests of remaining ops #338 closely co-working with @fdwr.
WPT WebNN Tests:
1. WebNN API IDL Tests:
2. WebNN API JavaScript Tests (testharness.js) for operations tests:
The text was updated successfully, but these errors were encountered: