From ea3e0df3e50340fa7a82369885942f031e04cdd2 Mon Sep 17 00:00:00 2001 From: Eric Lunderberg Date: Thu, 23 Sep 2021 08:54:11 -0500 Subject: [PATCH] [UnitTests] Enable minimum testing on Vulkan target in CI - Include the Vulkan runtime in the GPU build. - Run test_target_codegen_vulkan.py as part of the `python3: GPU` CI step. --- Jenkinsfile | 2 +- tests/scripts/task_config_build_gpu.sh | 1 + ...pu_vulkan.sh => task_config_build_gpu_rocm.sh} | 1 - tests/scripts/task_python_integration_gpuonly.sh | 2 +- tests/scripts/task_python_unittest_gpuonly.sh | 15 ++++++++++++++- 5 files changed, 17 insertions(+), 4 deletions(-) rename tests/scripts/{task_config_build_gpu_vulkan.sh => task_config_build_gpu_rocm.sh} (96%) diff --git a/Jenkinsfile b/Jenkinsfile index fa1629205080..ee39455ca056 100755 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -209,7 +209,7 @@ stage('Build') { make(ci_gpu, 'build', '-j2') pack_lib('gpu', tvm_multilib) // compiler test - sh "${docker_run} ${ci_gpu} ./tests/scripts/task_config_build_gpu_vulkan.sh" + sh "${docker_run} ${ci_gpu} ./tests/scripts/task_config_build_gpu_rocm.sh" make(ci_gpu, 'build2', '-j2') } } diff --git a/tests/scripts/task_config_build_gpu.sh b/tests/scripts/task_config_build_gpu.sh index 5f86476c64c7..3a429721709e 100755 --- a/tests/scripts/task_config_build_gpu.sh +++ b/tests/scripts/task_config_build_gpu.sh @@ -26,6 +26,7 @@ cp ../cmake/config.cmake . echo set\(USE_CUBLAS ON\) >> config.cmake echo set\(USE_CUDNN ON\) >> config.cmake echo set\(USE_CUDA ON\) >> config.cmake +echo set\(USE_VULKAN ON\) >> config.cmake echo set\(USE_OPENGL ON\) >> config.cmake echo set\(USE_MICRO ON\) >> config.cmake echo set\(USE_MICRO_STANDALONE_RUNTIME ON\) >> config.cmake diff --git a/tests/scripts/task_config_build_gpu_vulkan.sh b/tests/scripts/task_config_build_gpu_rocm.sh similarity index 96% rename from tests/scripts/task_config_build_gpu_vulkan.sh rename to tests/scripts/task_config_build_gpu_rocm.sh index a5a26a1db0fb..e28272c6e4d1 100755 --- a/tests/scripts/task_config_build_gpu_vulkan.sh +++ b/tests/scripts/task_config_build_gpu_rocm.sh @@ -25,7 +25,6 @@ cp ../cmake/config.cmake . echo set\(USE_OPENCL ON\) >> config.cmake echo set\(USE_ROCM ON\) >> config.cmake -echo set\(USE_VULKAN ON\) >> config.cmake echo set\(USE_MICRO ON\) >> config.cmake echo set\(USE_PROFILER ON\) >> config.cmake echo set\(USE_LIBBACKTRACE OFF\) >> config.cmake diff --git a/tests/scripts/task_python_integration_gpuonly.sh b/tests/scripts/task_python_integration_gpuonly.sh index ac09cb5a14a3..36c3883d4379 100755 --- a/tests/scripts/task_python_integration_gpuonly.sh +++ b/tests/scripts/task_python_integration_gpuonly.sh @@ -16,7 +16,7 @@ # specific language governing permissions and limitations # under the License. -export TVM_TEST_TARGETS="cuda;opencl;metal;rocm;vulkan;nvptx;opencl -device=mali,aocl_sw_emu" +export TVM_TEST_TARGETS="cuda;opencl;metal;rocm;nvptx;opencl -device=mali,aocl_sw_emu" export PYTEST_ADDOPTS="-m gpu $PYTEST_ADDOPTS" export TVM_RELAY_TEST_TARGETS="cuda" export TVM_INTEGRATION_TESTSUITE_NAME=python-integration-gpu diff --git a/tests/scripts/task_python_unittest_gpuonly.sh b/tests/scripts/task_python_unittest_gpuonly.sh index 22f79bc70ec9..ff2daade6e9a 100755 --- a/tests/scripts/task_python_unittest_gpuonly.sh +++ b/tests/scripts/task_python_unittest_gpuonly.sh @@ -16,8 +16,21 @@ # specific language governing permissions and limitations # under the License. -export TVM_TEST_TARGETS="cuda;opencl;metal;rocm;vulkan;nvptx;opencl -device=mali,aocl_sw_emu" +set -euo pipefail + +export TVM_TEST_TARGETS="cuda;opencl;metal;rocm;nvptx;opencl -device=mali,aocl_sw_emu" export PYTEST_ADDOPTS="-m gpu $PYTEST_ADDOPTS" export TVM_UNITTEST_TESTSUITE_NAME=python-unittest-gpu ./tests/scripts/task_python_unittest.sh + +# Kept separate to avoid increasing time needed to run CI, testing +# only minimal functionality of Vulkan runtime. +export TVM_TEST_TARGETS="vulkan -from_device=0" +export PYTEST_ADDOPTS="-m gpu $PYTEST_ADDOPTS" +export TVM_UNITTEST_TESTSUITE_NAME=python-unittest-vulkan + +source tests/scripts/setup-pytest-env.sh + +run_pytest ctypes ${TVM_UNITTEST_TESTSUITE_NAME} tests/python/unittest/test_target_codegen_vulkan.py +run_pytest cython ${TVM_UNITTEST_TESTSUITE_NAME} tests/python/unittest/test_target_codegen_vulkan.py