-
Notifications
You must be signed in to change notification settings - Fork 3.4k
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
[Tracking][Vulkan] Extending topi/relay tests to run on Vulkan #8903
Comments
…lures - Parametrized topi modules - test_topi_conv1d_transpose_ncw.py - test_topi_conv2d_nhwc.py - test_topi_correlation.py - test_topi_loss.py - test_topi_math.py - test_topi_reduce.py - test_topi_softmax.py - test_topi_sort.py - test_topi_unique.py - test_topi_vision.py - Unit Tests fixed - `test_topi_loss::test_nll_loss`, failure due to `supports_float64` not being passed from the target to the codegen. - Known Vulkan failures (tracked in apache#8903) - test_topi_math.py::test_ewise, ["tan", "erf", "isnan", "isfinite", "isinf"] Unimplemented CallNode operations - test_topi_reduce.py::test_reduce_map, ["sum", "any", "all"] Fails during codegen, unexpected size of data type. - test_topi_vision.py::test_proposal Marked test_proposal as xfail on vulkan, currently has a type error between bool/int8. - test_topi_conv1d_transpose_ncw.py::test_conv1d_transpose_ncw Incorrect numeric output, a few elements outside of allowed tolerance, only occurs on vulkan backend. - test_softmax.py::test_softmax Marked float64 operations as xfail in vulkan, because GLSL.std.450 only supports 16/32-bit floats.
@mbrookhart Regarding your comments that several of the failing unit tests had run correctly on vulkan in the past, the main breaking point was in #8127, which reads the device parameters from the physical device when the target is That said, at some point I want to ensure all tests either run correctly or have an appropriate |
…lures - Parametrized topi modules - test_topi_conv1d_transpose_ncw.py - test_topi_conv2d_nhwc.py - test_topi_correlation.py - test_topi_loss.py - test_topi_math.py - test_topi_reduce.py - test_topi_softmax.py - test_topi_sort.py - test_topi_unique.py - test_topi_vision.py - Unit Tests fixed - `test_topi_loss::test_nll_loss`, failure due to `supports_float64` not being passed from the target to the codegen. - Known Vulkan failures (tracked in apache#8903) - test_topi_math.py::test_ewise, ["tan", "erf", "isnan", "isfinite", "isinf"] Unimplemented CallNode operations - test_topi_reduce.py::test_reduce_map, ["sum", "any", "all"] Fails during codegen, unexpected size of data type. - test_topi_vision.py::test_proposal Marked test_proposal as xfail on vulkan, currently has a type error between bool/int8. - test_topi_conv1d_transpose_ncw.py::test_conv1d_transpose_ncw Incorrect numeric output, a few elements outside of allowed tolerance, only occurs on vulkan backend. - test_softmax.py::test_softmax Marked float64 operations as xfail in vulkan, because GLSL.std.450 only supports 16/32-bit floats.
…lures - Parametrized topi modules - test_topi_conv1d_transpose_ncw.py - test_topi_conv2d_nhwc.py - test_topi_correlation.py - test_topi_loss.py - test_topi_math.py - test_topi_reduce.py - test_topi_softmax.py - test_topi_sort.py - test_topi_unique.py - test_topi_vision.py - Unit Tests fixed - `test_topi_loss::test_nll_loss`, failure due to `supports_float64` not being passed from the target to the codegen. - Known Vulkan failures (tracked in apache#8903) - test_topi_math.py::test_ewise, ["tan", "erf", "isnan", "isfinite", "isinf"] Unimplemented CallNode operations - test_topi_reduce.py::test_reduce_map, ["sum", "any", "all"] Fails during codegen, unexpected size of data type. - test_topi_vision.py::test_proposal Marked test_proposal as xfail on vulkan, currently has a type error between bool/int8. - test_topi_conv1d_transpose_ncw.py::test_conv1d_transpose_ncw Incorrect numeric output, a few elements outside of allowed tolerance, only occurs on vulkan backend. - test_softmax.py::test_softmax Marked float64 operations as xfail in vulkan, because GLSL.std.450 only supports 16/32-bit floats.
This result is on a NV driver, or do they also fail on AMD? |
…ilures (#8904) * [Pytest] Fixed TestTargetAutoParametrization in cases where LLVM is disabled. * [UnitTests][Vulkan] Improved robustness of test_tir_intrin::test_clz Previously, would fail during build since support for Int64 primitives wasn't declared in the `"vulkan"` target. Now, uses `"vulkan -from_device=0"` target and marks the test as xfail if the current target doesn't support Int64. * [UnitTest][Topi] Parametrized several unit tests, identify vulkan failures - Parametrized topi modules - test_topi_conv1d_transpose_ncw.py - test_topi_conv2d_nhwc.py - test_topi_correlation.py - test_topi_loss.py - test_topi_math.py - test_topi_reduce.py - test_topi_softmax.py - test_topi_sort.py - test_topi_unique.py - test_topi_vision.py - Unit Tests fixed - `test_topi_loss::test_nll_loss`, failure due to `supports_float64` not being passed from the target to the codegen. - Known Vulkan failures (tracked in #8903) - test_topi_math.py::test_ewise, ["tan", "erf", "isnan", "isfinite", "isinf"] Unimplemented CallNode operations - test_topi_reduce.py::test_reduce_map, ["sum", "any", "all"] Fails during codegen, unexpected size of data type. - test_topi_vision.py::test_proposal Marked test_proposal as xfail on vulkan, currently has a type error between bool/int8. - test_topi_conv1d_transpose_ncw.py::test_conv1d_transpose_ncw Incorrect numeric output, a few elements outside of allowed tolerance, only occurs on vulkan backend. - test_softmax.py::test_softmax Marked float64 operations as xfail in vulkan, because GLSL.std.450 only supports 16/32-bit floats.
Thank you for checking, and all except the |
This commit allows the relay test suite to be run targeting Vulkan with `TVM_TEST_TARGETS="vulkan -from_device=0" pytest tests/python/relay`. All tests that require a specific environment are skipped if that environment isn't present. All tests that are known to fail when running on Vulkan are marked as expected failure, and will be tracked in apache#8903. - Failures during code generation - Type mismatches, boolean vs int8 - tests/python/relay/test_any.py::test_any_reduce - tests/python/relay/test_op_level3.py::test_sparse_reshape - tests/python/relay/test_op_level4.py::test_reduce_functions - tests/python/relay/test_vm.py::test_cond - tests/python/relay/test_vm.py::test_simple_if - Incorrect strategy selection, picks NCHWc implemenation for NHWC layout - tests/python/relay/test_op_level2.py::test_conv2d_run - Unresolved CallNode operation - tests/python/relay/test_op_level1.py::test_unary_op[erf/tan/atan] - tests/python/relay/test_op_level3.py::test_scatter_add - tests/python/relay/test_op_level3.py::test_segment_sum - Generates 64-bit calls to GLSL that have only 16-/32-bit support - tests/python/relay/test_op_grad_level1.py::test_log_softmax_grad - tests/python/relay/test_op_grad_level1.py::test_softmax_grad - tests/python/relay/test_op_grad_level1.py::test_unary_op - tests/python/relay/test_op_grad_level10.py::test_cross_entropy_grad - Codegen raises error for variable size - tests/python/relay/test_any.py::test_any_batch_matmul - tests/python/relay/test_any.py::test_any_conv2d_NCHWc - tests/python/relay/test_any.py::test_any_dense - Failures when running - Numeric differences (observed on GTX 1650 with NVIDIA driver) - tests/python/relay/test_op_level3.py::test_take - tests/python/relay/test_op_level5.py::TestCropAndResize - tests/python/relay/test_op_level5.py::TestResize1D - tests/python/relay/test_op_level5.py::TestResize2D
This commit allows the relay test suite to be run targeting Vulkan with `TVM_TEST_TARGETS="vulkan -from_device=0" pytest tests/python/relay`. All tests that require a specific environment are skipped if that environment isn't present. All tests that are known to fail when running on Vulkan are marked as expected failure, and will be tracked in apache#8903. - Failures during code generation - Type mismatches, boolean vs int8 - tests/python/relay/test_any.py::test_any_reduce - tests/python/relay/test_op_level3.py::test_sparse_reshape - tests/python/relay/test_op_level4.py::test_reduce_functions - tests/python/relay/test_vm.py::test_cond - tests/python/relay/test_vm.py::test_simple_if - Incorrect strategy selection, picks NCHWc implemenation for NHWC layout - tests/python/relay/test_op_level2.py::test_conv2d_run - Unresolved CallNode operation - tests/python/relay/test_op_level1.py::test_unary_op[erf/tan/atan] - tests/python/relay/test_op_level3.py::test_scatter_add - tests/python/relay/test_op_level3.py::test_segment_sum - Generates 64-bit calls to GLSL that have only 16-/32-bit support - tests/python/relay/test_op_grad_level1.py::test_log_softmax_grad - tests/python/relay/test_op_grad_level1.py::test_softmax_grad - tests/python/relay/test_op_grad_level1.py::test_unary_op - tests/python/relay/test_op_grad_level10.py::test_cross_entropy_grad - Codegen raises error for variable size - tests/python/relay/test_any.py::test_any_batch_matmul - tests/python/relay/test_any.py::test_any_conv2d_NCHWc - tests/python/relay/test_any.py::test_any_dense - Failures when running - Numeric differences (observed on GTX 1650 with NVIDIA driver) - tests/python/relay/test_op_level3.py::test_take - tests/python/relay/test_op_level5.py::TestCropAndResize - tests/python/relay/test_op_level5.py::TestResize1D - tests/python/relay/test_op_level5.py::TestResize2D
This commit allows the relay test suite to be run targeting Vulkan with `TVM_TEST_TARGETS="vulkan -from_device=0" pytest tests/python/relay`. All tests that require a specific environment are skipped if that environment isn't present. All tests that are known to fail when running on Vulkan are marked as expected failure, and will be tracked in apache#8903. - Failures during code generation - Type mismatches, boolean vs int8 - tests/python/relay/test_any.py::test_any_reduce - tests/python/relay/test_op_level3.py::test_sparse_reshape - tests/python/relay/test_op_level4.py::test_reduce_functions - tests/python/relay/test_vm.py::test_cond - tests/python/relay/test_vm.py::test_simple_if - Incorrect strategy selection, picks NCHWc implemenation for NHWC layout - tests/python/relay/test_op_level2.py::test_conv2d_run - Unresolved CallNode operation - tests/python/relay/test_op_level1.py::test_unary_op[erf/tan/atan] - tests/python/relay/test_op_level3.py::test_scatter_add - tests/python/relay/test_op_level3.py::test_segment_sum - Generates 64-bit calls to GLSL that have only 16-/32-bit support - tests/python/relay/test_op_grad_level1.py::test_log_softmax_grad - tests/python/relay/test_op_grad_level1.py::test_softmax_grad - tests/python/relay/test_op_grad_level1.py::test_unary_op - tests/python/relay/test_op_grad_level10.py::test_cross_entropy_grad - Codegen raises error for variable size - tests/python/relay/test_any.py::test_any_batch_matmul - tests/python/relay/test_any.py::test_any_conv2d_NCHWc - tests/python/relay/test_any.py::test_any_dense - Failures when running - Numeric differences (observed on GTX 1650 with NVIDIA driver) - tests/python/relay/test_op_level3.py::test_take - tests/python/relay/test_op_level5.py::TestCropAndResize - tests/python/relay/test_op_level5.py::TestResize1D - tests/python/relay/test_op_level5.py::TestResize2D
Following #8947 , added the failing relay tests to the tracking issue. |
This commit allows the relay test suite to be run targeting Vulkan with `TVM_TEST_TARGETS="vulkan -from_device=0" pytest tests/python/relay`. All tests that require a specific environment are skipped if that environment isn't present. All tests that are known to fail when running on Vulkan are marked as expected failure, and will be tracked in apache#8903. - Failures during code generation - Type mismatches, boolean vs int8 - tests/python/relay/test_any.py::test_any_reduce - tests/python/relay/test_op_level3.py::test_sparse_reshape - tests/python/relay/test_op_level4.py::test_reduce_functions - tests/python/relay/test_vm.py::test_cond - tests/python/relay/test_vm.py::test_simple_if - Incorrect strategy selection, picks NCHWc implemenation for NHWC layout - tests/python/relay/test_op_level2.py::test_conv2d_run - Unresolved CallNode operation - tests/python/relay/test_op_level1.py::test_unary_op[erf/tan/atan] - tests/python/relay/test_op_level3.py::test_scatter_add - tests/python/relay/test_op_level3.py::test_segment_sum - Generates 64-bit calls to GLSL that have only 16-/32-bit support - tests/python/relay/test_op_grad_level1.py::test_log_softmax_grad - tests/python/relay/test_op_grad_level1.py::test_softmax_grad - tests/python/relay/test_op_grad_level1.py::test_unary_op - tests/python/relay/test_op_grad_level10.py::test_cross_entropy_grad - Codegen raises error for variable size - tests/python/relay/test_any.py::test_any_batch_matmul - tests/python/relay/test_any.py::test_any_conv2d_NCHWc - tests/python/relay/test_any.py::test_any_dense - Failures when running - Numeric differences (observed on GTX 1650 with NVIDIA driver) - tests/python/relay/test_op_level3.py::test_take - tests/python/relay/test_op_level5.py::TestCropAndResize - tests/python/relay/test_op_level5.py::TestResize1D - tests/python/relay/test_op_level5.py::TestResize2D
This commit allows the relay test suite to be run targeting Vulkan with `TVM_TEST_TARGETS="vulkan -from_device=0" pytest tests/python/relay`. All tests that require a specific environment are skipped if that environment isn't present. All tests that are known to fail when running on Vulkan are marked as expected failure, and will be tracked in apache#8903. - Failures during code generation - Type mismatches, boolean vs int8 - tests/python/relay/test_any.py::test_any_reduce - tests/python/relay/test_op_level3.py::test_sparse_reshape - tests/python/relay/test_op_level4.py::test_reduce_functions - tests/python/relay/test_vm.py::test_cond - tests/python/relay/test_vm.py::test_simple_if - Incorrect strategy selection, picks NCHWc implemenation for NHWC layout - tests/python/relay/test_op_level2.py::test_conv2d_run - Unresolved CallNode operation - tests/python/relay/test_op_level1.py::test_unary_op[erf/tan/atan] - tests/python/relay/test_op_level3.py::test_scatter_add - tests/python/relay/test_op_level3.py::test_segment_sum - Generates 64-bit calls to GLSL that have only 16-/32-bit support - tests/python/relay/test_op_grad_level1.py::test_log_softmax_grad - tests/python/relay/test_op_grad_level1.py::test_softmax_grad - tests/python/relay/test_op_grad_level1.py::test_unary_op - tests/python/relay/test_op_grad_level10.py::test_cross_entropy_grad - Codegen raises error for variable size - tests/python/relay/test_any.py::test_any_batch_matmul - tests/python/relay/test_any.py::test_any_conv2d_NCHWc - tests/python/relay/test_any.py::test_any_dense - Failures when running - Numeric differences (observed on GTX 1650 with NVIDIA driver) - tests/python/relay/test_op_level3.py::test_take - tests/python/relay/test_op_level5.py::TestCropAndResize - tests/python/relay/test_op_level5.py::TestResize1D - tests/python/relay/test_op_level5.py::TestResize2D
This commit allows the relay test suite to be run targeting Vulkan with `TVM_TEST_TARGETS="vulkan -from_device=0" pytest tests/python/relay`. All tests that require a specific environment are skipped if that environment isn't present. All tests that are known to fail when running on Vulkan are marked as expected failure, and will be tracked in apache#8903. - Failures during code generation - Type mismatches, boolean vs int8 - tests/python/relay/test_any.py::test_any_reduce - tests/python/relay/test_op_level3.py::test_sparse_reshape - tests/python/relay/test_op_level4.py::test_reduce_functions - tests/python/relay/test_vm.py::test_cond - tests/python/relay/test_vm.py::test_simple_if - Incorrect strategy selection, picks NCHWc implemenation for NHWC layout - tests/python/relay/test_op_level2.py::test_conv2d_run - Unresolved CallNode operation - tests/python/relay/test_op_level1.py::test_unary_op[erf/tan/atan] - tests/python/relay/test_op_level3.py::test_scatter_add - tests/python/relay/test_op_level3.py::test_segment_sum - Generates 64-bit calls to GLSL that have only 16-/32-bit support - tests/python/relay/test_op_grad_level1.py::test_log_softmax_grad - tests/python/relay/test_op_grad_level1.py::test_softmax_grad - tests/python/relay/test_op_grad_level1.py::test_unary_op - tests/python/relay/test_op_grad_level10.py::test_cross_entropy_grad - Codegen raises error for variable size - tests/python/relay/test_any.py::test_any_batch_matmul - tests/python/relay/test_any.py::test_any_conv2d_NCHWc - tests/python/relay/test_any.py::test_any_dense - Failures when running - Numeric differences (observed on GTX 1650 with NVIDIA driver) - tests/python/relay/test_op_level3.py::test_take - tests/python/relay/test_op_level5.py::TestCropAndResize - tests/python/relay/test_op_level5.py::TestResize1D - tests/python/relay/test_op_level5.py::TestResize2D
* [UnitTest] Added ids argument to tvm.testing.parameters This matches the usage in `tvm.testing.parameter`, and allows for parameter sets to be referred to by a single name. * [Pytest] Fixed ordering issue of tvm.testing.parametrize_targets and known_failing_targets If an explicit list of targets is given, then the `known_failing_targets` decorator would fail to apply. This commit resolves the issue, and cleans up all target-specific marks to apply in `tvm.testing.plugin._add_target_specific_marks`. * [UnitTest][Vulkan] Runnable relay unit tests on Vulkan This commit allows the relay test suite to be run targeting Vulkan with `TVM_TEST_TARGETS="vulkan -from_device=0" pytest tests/python/relay`. All tests that require a specific environment are skipped if that environment isn't present. All tests that are known to fail when running on Vulkan are marked as expected failure, and will be tracked in #8903. - Failures during code generation - Type mismatches, boolean vs int8 - tests/python/relay/test_any.py::test_any_reduce - tests/python/relay/test_op_level3.py::test_sparse_reshape - tests/python/relay/test_op_level4.py::test_reduce_functions - tests/python/relay/test_vm.py::test_cond - tests/python/relay/test_vm.py::test_simple_if - Incorrect strategy selection, picks NCHWc implemenation for NHWC layout - tests/python/relay/test_op_level2.py::test_conv2d_run - Unresolved CallNode operation - tests/python/relay/test_op_level1.py::test_unary_op[erf/tan/atan] - tests/python/relay/test_op_level3.py::test_scatter_add - tests/python/relay/test_op_level3.py::test_segment_sum - Generates 64-bit calls to GLSL that have only 16-/32-bit support - tests/python/relay/test_op_grad_level1.py::test_log_softmax_grad - tests/python/relay/test_op_grad_level1.py::test_softmax_grad - tests/python/relay/test_op_grad_level1.py::test_unary_op - tests/python/relay/test_op_grad_level10.py::test_cross_entropy_grad - Codegen raises error for variable size - tests/python/relay/test_any.py::test_any_batch_matmul - tests/python/relay/test_any.py::test_any_conv2d_NCHWc - tests/python/relay/test_any.py::test_any_dense - Failures when running - Numeric differences (observed on GTX 1650 with NVIDIA driver) - tests/python/relay/test_op_level3.py::test_take - tests/python/relay/test_op_level5.py::TestCropAndResize - tests/python/relay/test_op_level5.py::TestResize1D - tests/python/relay/test_op_level5.py::TestResize2D
@Lunderberg Are these two test cases any different? One has tvm/tests/python/relay/test_op_level2.py Line 199 in 548675f
tvm/tests/python/relay/test_op_level2.py Line 360 in 548675f
|
@Lunderberg The last three items in They don't work on gpu targets since we don't support dynamic height or width in conv2d, for example. |
…ilures (apache#8904) * [Pytest] Fixed TestTargetAutoParametrization in cases where LLVM is disabled. * [UnitTests][Vulkan] Improved robustness of test_tir_intrin::test_clz Previously, would fail during build since support for Int64 primitives wasn't declared in the `"vulkan"` target. Now, uses `"vulkan -from_device=0"` target and marks the test as xfail if the current target doesn't support Int64. * [UnitTest][Topi] Parametrized several unit tests, identify vulkan failures - Parametrized topi modules - test_topi_conv1d_transpose_ncw.py - test_topi_conv2d_nhwc.py - test_topi_correlation.py - test_topi_loss.py - test_topi_math.py - test_topi_reduce.py - test_topi_softmax.py - test_topi_sort.py - test_topi_unique.py - test_topi_vision.py - Unit Tests fixed - `test_topi_loss::test_nll_loss`, failure due to `supports_float64` not being passed from the target to the codegen. - Known Vulkan failures (tracked in apache#8903) - test_topi_math.py::test_ewise, ["tan", "erf", "isnan", "isfinite", "isinf"] Unimplemented CallNode operations - test_topi_reduce.py::test_reduce_map, ["sum", "any", "all"] Fails during codegen, unexpected size of data type. - test_topi_vision.py::test_proposal Marked test_proposal as xfail on vulkan, currently has a type error between bool/int8. - test_topi_conv1d_transpose_ncw.py::test_conv1d_transpose_ncw Incorrect numeric output, a few elements outside of allowed tolerance, only occurs on vulkan backend. - test_softmax.py::test_softmax Marked float64 operations as xfail in vulkan, because GLSL.std.450 only supports 16/32-bit floats.
…ilures (apache#8904) * [Pytest] Fixed TestTargetAutoParametrization in cases where LLVM is disabled. * [UnitTests][Vulkan] Improved robustness of test_tir_intrin::test_clz Previously, would fail during build since support for Int64 primitives wasn't declared in the `"vulkan"` target. Now, uses `"vulkan -from_device=0"` target and marks the test as xfail if the current target doesn't support Int64. * [UnitTest][Topi] Parametrized several unit tests, identify vulkan failures - Parametrized topi modules - test_topi_conv1d_transpose_ncw.py - test_topi_conv2d_nhwc.py - test_topi_correlation.py - test_topi_loss.py - test_topi_math.py - test_topi_reduce.py - test_topi_softmax.py - test_topi_sort.py - test_topi_unique.py - test_topi_vision.py - Unit Tests fixed - `test_topi_loss::test_nll_loss`, failure due to `supports_float64` not being passed from the target to the codegen. - Known Vulkan failures (tracked in apache#8903) - test_topi_math.py::test_ewise, ["tan", "erf", "isnan", "isfinite", "isinf"] Unimplemented CallNode operations - test_topi_reduce.py::test_reduce_map, ["sum", "any", "all"] Fails during codegen, unexpected size of data type. - test_topi_vision.py::test_proposal Marked test_proposal as xfail on vulkan, currently has a type error between bool/int8. - test_topi_conv1d_transpose_ncw.py::test_conv1d_transpose_ncw Incorrect numeric output, a few elements outside of allowed tolerance, only occurs on vulkan backend. - test_softmax.py::test_softmax Marked float64 operations as xfail in vulkan, because GLSL.std.450 only supports 16/32-bit floats.
Summary
Currently, some unit tests fail when running on the Vulkan runtime. PRs #8903 and #8947 parametrized the tests that are currently failing, so that the vulkan target can be marked as xfail without impacting any other runtimes. The Vulkan runtime should be improved so that these unit tests can pass on vulkan as well.
Status
The text was updated successfully, but these errors were encountered: