Merged
Conversation
14689c8 to
27cd682
Compare
4bcf1c6 to
0a3243f
Compare
ee0e150 to
0c5c207
Compare
Added first run to auto scheduler. This run is necessary for checking that the generated kernel is correct. When we just run time evaluator with incorrect kernel then it is possible that our application on iOS device will be added to ignore list because of big number of committed incorrect kernels. One run before running auto scheduling helps us to avoid this problem. Added complete handlers to all command buffers in Metal runtime. It helps to handle GPU errors and report about this error to the host application. In case when error happened, we have to create a new stream. Added mechanism for error handling and streams creating from python interface.
0c5c207 to
932c2cd
Compare
tqchen
requested changes
Apr 13, 2021
tqchen
requested changes
Apr 14, 2021
Member
|
also cc @masahi @csullivan @ZihengJiang please help to review this PR |
masahi
reviewed
Apr 15, 2021
masahi
reviewed
Apr 15, 2021
Member
|
@echuraev please kick CI again |
Member
|
@tqchen blocked by your change request |
tqchen
approved these changes
Apr 16, 2021
masahi
approved these changes
Apr 16, 2021
Member
mehrdadh
pushed a commit
to mehrdadh/tvm
that referenced
this pull request
Apr 22, 2021
* [METAL] Fix issue with GPU fails Added first run to auto scheduler. This run is necessary for checking that the generated kernel is correct. When we just run time evaluator with incorrect kernel then it is possible that our application on iOS device will be added to ignore list because of big number of committed incorrect kernels. One run before running auto scheduling helps us to avoid this problem. Added complete handlers to all command buffers in Metal runtime. It helps to handle GPU errors and report about this error to the host application. In case when error happened, we have to create a new stream. Added mechanism for error handling and streams creating from python interface. * Try to fix QEMU build * Apply comment * Apply comments and fix build * Apply comments and fix lint * Fix CI
Member
|
hmm it seems this commit broke auto scheduling on vulkan. Removing the change in |
Member
|
@masahi this could due to the stream management introduced in this PR(explicit call of set stream and new stream/free stream). I believe in vk we should always allocate and return an indicator of default stream |
Member
|
ok I see tvm/src/runtime/vulkan/vulkan.cc Lines 397 to 399 in 46e0634 |
Member
|
We can let new stream return nullptr, and implement setstream/freestream for nullptr(nop) |
Lunderberg
added a commit
to Lunderberg/tvm
that referenced
this pull request
May 3, 2021
…rations rpc_runner_run interacts with stream handlers following PR apache#7819. Vulkan currently executes adds everything into a single command buffer per CPU thread, so there isn't a corresponding concept of streams. Therefore, added no-op implementations for these DeviceAPI methods.
masahi
pushed a commit
that referenced
this pull request
May 4, 2021
…rations (#7969) rpc_runner_run interacts with stream handlers following PR #7819. Vulkan currently executes adds everything into a single command buffer per CPU thread, so there isn't a corresponding concept of streams. Therefore, added no-op implementations for these DeviceAPI methods. Co-authored-by: Eric Lunderberg <elunderberg@octoml.ai>
umangyadav
pushed a commit
to umangyadav/tvm
that referenced
this pull request
May 5, 2021
…rations (apache#7969) rpc_runner_run interacts with stream handlers following PR apache#7819. Vulkan currently executes adds everything into a single command buffer per CPU thread, so there isn't a corresponding concept of streams. Therefore, added no-op implementations for these DeviceAPI methods. Co-authored-by: Eric Lunderberg <elunderberg@octoml.ai>
trevor-m
pushed a commit
to trevor-m/tvm
that referenced
this pull request
May 6, 2021
* [METAL] Fix issue with GPU fails Added first run to auto scheduler. This run is necessary for checking that the generated kernel is correct. When we just run time evaluator with incorrect kernel then it is possible that our application on iOS device will be added to ignore list because of big number of committed incorrect kernels. One run before running auto scheduling helps us to avoid this problem. Added complete handlers to all command buffers in Metal runtime. It helps to handle GPU errors and report about this error to the host application. In case when error happened, we have to create a new stream. Added mechanism for error handling and streams creating from python interface. * Try to fix QEMU build * Apply comment * Apply comments and fix build * Apply comments and fix lint * Fix CI
trevor-m
pushed a commit
to trevor-m/tvm
that referenced
this pull request
May 6, 2021
…rations (apache#7969) rpc_runner_run interacts with stream handlers following PR apache#7819. Vulkan currently executes adds everything into a single command buffer per CPU thread, so there isn't a corresponding concept of streams. Therefore, added no-op implementations for these DeviceAPI methods. Co-authored-by: Eric Lunderberg <elunderberg@octoml.ai>
trevor-m
pushed a commit
to trevor-m/tvm
that referenced
this pull request
May 6, 2021
* [METAL] Fix issue with GPU fails Added first run to auto scheduler. This run is necessary for checking that the generated kernel is correct. When we just run time evaluator with incorrect kernel then it is possible that our application on iOS device will be added to ignore list because of big number of committed incorrect kernels. One run before running auto scheduling helps us to avoid this problem. Added complete handlers to all command buffers in Metal runtime. It helps to handle GPU errors and report about this error to the host application. In case when error happened, we have to create a new stream. Added mechanism for error handling and streams creating from python interface. * Try to fix QEMU build * Apply comment * Apply comments and fix build * Apply comments and fix lint * Fix CI
trevor-m
pushed a commit
to trevor-m/tvm
that referenced
this pull request
May 6, 2021
…rations (apache#7969) rpc_runner_run interacts with stream handlers following PR apache#7819. Vulkan currently executes adds everything into a single command buffer per CPU thread, so there isn't a corresponding concept of streams. Therefore, added no-op implementations for these DeviceAPI methods. Co-authored-by: Eric Lunderberg <elunderberg@octoml.ai>
trevor-m
pushed a commit
to trevor-m/tvm
that referenced
this pull request
May 6, 2021
* [METAL] Fix issue with GPU fails Added first run to auto scheduler. This run is necessary for checking that the generated kernel is correct. When we just run time evaluator with incorrect kernel then it is possible that our application on iOS device will be added to ignore list because of big number of committed incorrect kernels. One run before running auto scheduling helps us to avoid this problem. Added complete handlers to all command buffers in Metal runtime. It helps to handle GPU errors and report about this error to the host application. In case when error happened, we have to create a new stream. Added mechanism for error handling and streams creating from python interface. * Try to fix QEMU build * Apply comment * Apply comments and fix build * Apply comments and fix lint * Fix CI
trevor-m
pushed a commit
to trevor-m/tvm
that referenced
this pull request
May 6, 2021
…rations (apache#7969) rpc_runner_run interacts with stream handlers following PR apache#7819. Vulkan currently executes adds everything into a single command buffer per CPU thread, so there isn't a corresponding concept of streams. Therefore, added no-op implementations for these DeviceAPI methods. Co-authored-by: Eric Lunderberg <elunderberg@octoml.ai>
trevor-m
pushed a commit
to neo-ai/tvm
that referenced
this pull request
May 11, 2021
* [METAL] Fix issue with GPU fails Added first run to auto scheduler. This run is necessary for checking that the generated kernel is correct. When we just run time evaluator with incorrect kernel then it is possible that our application on iOS device will be added to ignore list because of big number of committed incorrect kernels. One run before running auto scheduling helps us to avoid this problem. Added complete handlers to all command buffers in Metal runtime. It helps to handle GPU errors and report about this error to the host application. In case when error happened, we have to create a new stream. Added mechanism for error handling and streams creating from python interface. * Try to fix QEMU build * Apply comment * Apply comments and fix build * Apply comments and fix lint * Fix CI
trevor-m
pushed a commit
to neo-ai/tvm
that referenced
this pull request
May 11, 2021
…rations (apache#7969) rpc_runner_run interacts with stream handlers following PR apache#7819. Vulkan currently executes adds everything into a single command buffer per CPU thread, so there isn't a corresponding concept of streams. Therefore, added no-op implementations for these DeviceAPI methods. Co-authored-by: Eric Lunderberg <elunderberg@octoml.ai>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Added first run to auto scheduler. This run is necessary for checking
that the generated kernel is correct. When we just run time evaluator
with incorrect kernel then it is possible that our application on iOS
device will be added to ignore list because of big number of committed
incorrect kernels. One run before running auto scheduling helps us to
avoid this problem.
Added complete handlers to all command buffers in Metal runtime. It
helps to handle GPU errors and report about this error to the host
application.
In case when error happened, we have to create a new stream. Added
mechanism for error handling and streams creating from python interface.
Thanks for contributing to TVM! Please refer to guideline https://tvm.apache.org/docs/contribute/ for useful information and tips. After the pull request is submitted, please request code reviews from Reviewers by @ them in the pull request thread.