Skip to content
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

[WebGPU] Fix unexpected device lost error when intentional dispose #17250

Merged
merged 1 commit into from
Aug 8, 2024

Conversation

CharlieFRuan
Copy link
Contributor

This PR fixes an issue introduced in #17005. deviceLostIsError was introduced to make sure intentional dispose() (hence webgpu's destroy()) does not cause device lost callback to treat it as an error. However, we cannot set deviceLostIsError immediately to true after calling this.lib.dispose() (which calls device.destroy()) because WebGPU is asynchronous. Otherwise, we would trigger the device lost callback when calling Instance.dispose() to destroy device intentionally.

@CharlieFRuan
Copy link
Contributor Author

@tvm-bot rerun

1 similar comment
@CharlieFRuan
Copy link
Contributor Author

@tvm-bot rerun

@tqchen tqchen merged commit 1fcb620 into apache:main Aug 8, 2024
15 checks passed
CharlieFRuan added a commit to mlc-ai/web-llm that referenced this pull request Aug 8, 2024
No breaking changes. The only diff is the following PR:

- #525
- This PR updates the engine reload() and unload() methods to allow
users to abort an uncompleted reload() by either:
    - call unload() any time before reload() completed
    - call reload() again before the previous reload() completed
- Besides, it fixes the previous issue where `device lost error` is
raised unexpectedly when user simply switches a model

### TVMjs
- To support the above PR, TVMjs is updated and compiled at
apache/tvm@1fcb620
- Difference:
  - Device error lost fix: apache/tvm#17250
  - Add AbortSignal to fetching APIs:
    - apache/tvm#17208
    - apache/tvm#17227
    - apache/tvm#17233
jzhao62 pushed a commit to jzhao62/web-llm that referenced this pull request Dec 8, 2024
No breaking changes. The only diff is the following PR:

- mlc-ai#525
- This PR updates the engine reload() and unload() methods to allow
users to abort an uncompleted reload() by either:
    - call unload() any time before reload() completed
    - call reload() again before the previous reload() completed
- Besides, it fixes the previous issue where `device lost error` is
raised unexpectedly when user simply switches a model

### TVMjs
- To support the above PR, TVMjs is updated and compiled at
apache/tvm@1fcb620
- Difference:
  - Device error lost fix: apache/tvm#17250
  - Add AbortSignal to fetching APIs:
    - apache/tvm#17208
    - apache/tvm#17227
    - apache/tvm#17233
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants