-
Notifications
You must be signed in to change notification settings - Fork 3.5k
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
[Vulkan][Runtime] Uniform buffer bugfix, minor cleanup #7966
Conversation
Potential reviewers: @masahi @tmoreau89 |
Caused segfault when running on NVidia GPUs, with models that required uniform buffer arguments for constants.
Previously, these tests would show success if USE_VULKAN=OFF. Now, they correctly show that they are skipped instead.
- Explicitly require int64 support at device creation time, since the TVM-generated shaders require it. - Allocate an appropriate pool size for the buffer inputs, including both uniform and storage buffers.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for the bug fix @Lunderberg ! I'll wait for @masahi to do a more thorough pass, but at first glance, the changes LGTM!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great thanks!
I confirmed that this patch works on AMD too. |
…codegen_vulkan.py
Thanks @Lunderberg @tmoreau89 |
* Bugfix, missing decoration on uniform buffer arguments. Caused segfault when running on NVidia GPUs, with models that required uniform buffer arguments for constants. * Updated test_target_codegen_spirv.py to use @tvm.testing.requires_vulkan Previously, these tests would show success if USE_VULKAN=OFF. Now, they correctly show that they are skipped instead. * Minor cleanup on the vulkan runtime. - Explicitly require int64 support at device creation time, since the TVM-generated shaders require it. - Allocate an appropriate pool size for the buffer inputs, including both uniform and storage buffers. * [Vulkan][Tests] Merged test_target_codegen_spirv.py into test_target_codegen_vulkan.py Co-authored-by: Eric Lunderberg <elunderberg@octoml.ai>
* Bugfix, missing decoration on uniform buffer arguments. Caused segfault when running on NVidia GPUs, with models that required uniform buffer arguments for constants. * Updated test_target_codegen_spirv.py to use @tvm.testing.requires_vulkan Previously, these tests would show success if USE_VULKAN=OFF. Now, they correctly show that they are skipped instead. * Minor cleanup on the vulkan runtime. - Explicitly require int64 support at device creation time, since the TVM-generated shaders require it. - Allocate an appropriate pool size for the buffer inputs, including both uniform and storage buffers. * [Vulkan][Tests] Merged test_target_codegen_spirv.py into test_target_codegen_vulkan.py Co-authored-by: Eric Lunderberg <elunderberg@octoml.ai>
* Bugfix, missing decoration on uniform buffer arguments. Caused segfault when running on NVidia GPUs, with models that required uniform buffer arguments for constants. * Updated test_target_codegen_spirv.py to use @tvm.testing.requires_vulkan Previously, these tests would show success if USE_VULKAN=OFF. Now, they correctly show that they are skipped instead. * Minor cleanup on the vulkan runtime. - Explicitly require int64 support at device creation time, since the TVM-generated shaders require it. - Allocate an appropriate pool size for the buffer inputs, including both uniform and storage buffers. * [Vulkan][Tests] Merged test_target_codegen_spirv.py into test_target_codegen_vulkan.py Co-authored-by: Eric Lunderberg <elunderberg@octoml.ai>
* Bugfix, missing decoration on uniform buffer arguments. Caused segfault when running on NVidia GPUs, with models that required uniform buffer arguments for constants. * Updated test_target_codegen_spirv.py to use @tvm.testing.requires_vulkan Previously, these tests would show success if USE_VULKAN=OFF. Now, they correctly show that they are skipped instead. * Minor cleanup on the vulkan runtime. - Explicitly require int64 support at device creation time, since the TVM-generated shaders require it. - Allocate an appropriate pool size for the buffer inputs, including both uniform and storage buffers. * [Vulkan][Tests] Merged test_target_codegen_spirv.py into test_target_codegen_vulkan.py Co-authored-by: Eric Lunderberg <elunderberg@octoml.ai>
* Bugfix, missing decoration on uniform buffer arguments. Caused segfault when running on NVidia GPUs, with models that required uniform buffer arguments for constants. * Updated test_target_codegen_spirv.py to use @tvm.testing.requires_vulkan Previously, these tests would show success if USE_VULKAN=OFF. Now, they correctly show that they are skipped instead. * Minor cleanup on the vulkan runtime. - Explicitly require int64 support at device creation time, since the TVM-generated shaders require it. - Allocate an appropriate pool size for the buffer inputs, including both uniform and storage buffers. * [Vulkan][Tests] Merged test_target_codegen_spirv.py into test_target_codegen_vulkan.py Co-authored-by: Eric Lunderberg <elunderberg@octoml.ai>
spvValidate found the bug that was fixed in apache#7966, along with a few other issues on missing capability/extension declarations. Now that all unit tests pass with it enabled, would like to enable by default.
…ion (apache#8098) spvValidate found the bug that was fixed in apache#7966, along with a few other issues on missing capability/extension declarations. Now that all unit tests pass with it enabled, would like to enable by default. Co-authored-by: Eric Lunderberg <elunderberg@octoml.ai>
…ion (apache#8098) spvValidate found the bug that was fixed in apache#7966, along with a few other issues on missing capability/extension declarations. Now that all unit tests pass with it enabled, would like to enable by default. Co-authored-by: Eric Lunderberg <elunderberg@octoml.ai>
Bugfix, missing decoration on uniform buffer arguments.
Caused segfault when running on NVidia GPUs, with models that required uniform buffer arguments for constants (>128 bytes of constants).
Updated test_target_codegen_spirv.py to use @tvm.testing.requires_vulkan
Previously, these tests would show success if USE_VULKAN=OFF. Now, they correctly show that they are skipped instead.
Explicitly require int64 support at device creation time, since the TVM-generated shaders require it.
Allocate an appropriate descriptor set pool size for the buffer inputs, including both uniform and storage buffers, when not using the push_descriptor extension.