Skip to content

Conversation

@CharlieFRuan
Copy link
Member

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
Member Author

@tvm-bot rerun

1 similar comment
@CharlieFRuan
Copy link
Member Author

@tvm-bot rerun

@tqchen tqchen merged commit 1fcb620 into apache:main Aug 8, 2024
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
jingyi-zhao-01 pushed a commit to jingyi-zhao-01/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
atebites-hub pushed a commit to atebites-hub/web-llm that referenced this pull request Oct 4, 2025
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