diff --git a/Jenkinsfile b/Jenkinsfile index 2b73508da0d3..78071fde4599 100755 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -45,7 +45,7 @@ // 'python3 jenkins/generate.py' // Note: This timestamp is here to ensure that updates to the Jenkinsfile are // always rebased on main before merging: -// Generated at 2022-08-30T15:26:50.100067 +// Generated at 2022-09-01T11:52:42.195970 import org.jenkinsci.plugins.pipeline.modeldefinition.Utils // NOTE: these lines are scanned by docker/dev_common.sh. Please update the regex as needed. --> @@ -1538,7 +1538,7 @@ def shard_run_unittest_GPU_3_of_3() { } -def shard_run_integration_CPU_1_of_10() { +def shard_run_integration_CPU_1_of_4() { if (!skip_ci && is_docs_only_build != 1) { node('CPU-SMALL') { ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/integration-python-cpu") { @@ -1549,7 +1549,7 @@ def shard_run_integration_CPU_1_of_10() { withEnv([ 'PLATFORM=cpu', 'TEST_STEP_NAME=integration: CPU', - 'TVM_NUM_SHARDS=10', + 'TVM_NUM_SHARDS=4', 'TVM_SHARD_INDEX=0', "SKIP_SLOW_TESTS=${skip_slow_tests}"], { sh( @@ -1610,11 +1610,11 @@ def shard_run_integration_CPU_1_of_10() { } } } else { - Utils.markStageSkippedForConditional('integration: CPU 1 of 10') + Utils.markStageSkippedForConditional('integration: CPU 1 of 4') } } -def shard_run_integration_CPU_2_of_10() { +def shard_run_integration_CPU_2_of_4() { if (!skip_ci && is_docs_only_build != 1) { node('CPU-SMALL') { ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/integration-python-cpu") { @@ -1625,7 +1625,7 @@ def shard_run_integration_CPU_2_of_10() { withEnv([ 'PLATFORM=cpu', 'TEST_STEP_NAME=integration: CPU', - 'TVM_NUM_SHARDS=10', + 'TVM_NUM_SHARDS=4', 'TVM_SHARD_INDEX=1', "SKIP_SLOW_TESTS=${skip_slow_tests}"], { sh( @@ -1686,11 +1686,11 @@ def shard_run_integration_CPU_2_of_10() { } } } else { - Utils.markStageSkippedForConditional('integration: CPU 2 of 10') + Utils.markStageSkippedForConditional('integration: CPU 2 of 4') } } -def shard_run_integration_CPU_3_of_10() { +def shard_run_integration_CPU_3_of_4() { if (!skip_ci && is_docs_only_build != 1) { node('CPU-SMALL') { ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/integration-python-cpu") { @@ -1701,7 +1701,7 @@ def shard_run_integration_CPU_3_of_10() { withEnv([ 'PLATFORM=cpu', 'TEST_STEP_NAME=integration: CPU', - 'TVM_NUM_SHARDS=10', + 'TVM_NUM_SHARDS=4', 'TVM_SHARD_INDEX=2', "SKIP_SLOW_TESTS=${skip_slow_tests}"], { sh( @@ -1762,11 +1762,11 @@ def shard_run_integration_CPU_3_of_10() { } } } else { - Utils.markStageSkippedForConditional('integration: CPU 3 of 10') + Utils.markStageSkippedForConditional('integration: CPU 3 of 4') } } -def shard_run_integration_CPU_4_of_10() { +def shard_run_integration_CPU_4_of_4() { if (!skip_ci && is_docs_only_build != 1) { node('CPU-SMALL') { ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/integration-python-cpu") { @@ -1777,7 +1777,7 @@ def shard_run_integration_CPU_4_of_10() { withEnv([ 'PLATFORM=cpu', 'TEST_STEP_NAME=integration: CPU', - 'TVM_NUM_SHARDS=10', + 'TVM_NUM_SHARDS=4', 'TVM_SHARD_INDEX=3', "SKIP_SLOW_TESTS=${skip_slow_tests}"], { sh( @@ -1838,327 +1838,24 @@ def shard_run_integration_CPU_4_of_10() { } } } else { - Utils.markStageSkippedForConditional('integration: CPU 4 of 10') + Utils.markStageSkippedForConditional('integration: CPU 4 of 4') } } -def shard_run_integration_CPU_5_of_10() { - if (!skip_ci && is_docs_only_build != 1) { - node('CPU-SMALL') { - ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/integration-python-cpu") { - try { - docker_init(ci_cpu) - init_git() - timeout(time: max_time, unit: 'MINUTES') { - withEnv([ - 'PLATFORM=cpu', - 'TEST_STEP_NAME=integration: CPU', - 'TVM_NUM_SHARDS=10', - 'TVM_SHARD_INDEX=4', - "SKIP_SLOW_TESTS=${skip_slow_tests}"], { - sh( - script: """ - set -eux - retry() { - local max_retries=\$1 - shift - local n=0 - local backoff_max=30 - until [ "\$n" -ge \$max_retries ] - do - "\$@" && break - n=\$((n+1)) - if [ "\$n" -eq \$max_retries ]; then - echo "failed to update after attempt \$n / \$max_retries, giving up" - exit 1 - fi - - WAIT=\$(python3 -c 'import random; print(random.randint(10, 30))') - echo "failed to update \$n / \$max_retries, waiting \$WAIT to try again" - sleep \$WAIT - done - } - - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/cpu/build/libvta_tsim.so build/libvta_tsim.so - md5sum build/libvta_tsim.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/cpu/build/libtvm.so build/libtvm.so - md5sum build/libtvm.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/cpu/build/libvta_fsim.so build/libvta_fsim.so - md5sum build/libvta_fsim.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/cpu/build/libtvm_runtime.so build/libtvm_runtime.so - md5sum build/libtvm_runtime.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/cpu/build/config.cmake build/config.cmake - md5sum build/config.cmake - """, - label: 'Download artifacts from S3', - ) - - ci_setup(ci_cpu) - sh ( - script: "${docker_run} ${ci_cpu} ./tests/scripts/task_python_integration.sh", - label: 'Run CPU integration tests', - ) - }) - } - } finally { - sh( - script: """ - set -eux - aws s3 cp --no-progress build/pytest-results s3://${s3_prefix}/pytest-results/integration_CPU --recursive - """, - label: 'Upload JUnits to S3', - ) - - junit 'build/pytest-results/*.xml' - } - } - } - } else { - Utils.markStageSkippedForConditional('integration: CPU 5 of 10') - } -} -def shard_run_integration_CPU_6_of_10() { +def shard_run_python_i386_1_of_3() { if (!skip_ci && is_docs_only_build != 1) { node('CPU-SMALL') { - ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/integration-python-cpu") { - try { - docker_init(ci_cpu) - init_git() - timeout(time: max_time, unit: 'MINUTES') { - withEnv([ - 'PLATFORM=cpu', - 'TEST_STEP_NAME=integration: CPU', - 'TVM_NUM_SHARDS=10', - 'TVM_SHARD_INDEX=5', - "SKIP_SLOW_TESTS=${skip_slow_tests}"], { - sh( - script: """ - set -eux - retry() { - local max_retries=\$1 - shift - local n=0 - local backoff_max=30 - until [ "\$n" -ge \$max_retries ] - do - "\$@" && break - n=\$((n+1)) - if [ "\$n" -eq \$max_retries ]; then - echo "failed to update after attempt \$n / \$max_retries, giving up" - exit 1 - fi - - WAIT=\$(python3 -c 'import random; print(random.randint(10, 30))') - echo "failed to update \$n / \$max_retries, waiting \$WAIT to try again" - sleep \$WAIT - done - } - - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/cpu/build/libvta_tsim.so build/libvta_tsim.so - md5sum build/libvta_tsim.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/cpu/build/libtvm.so build/libtvm.so - md5sum build/libtvm.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/cpu/build/libvta_fsim.so build/libvta_fsim.so - md5sum build/libvta_fsim.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/cpu/build/libtvm_runtime.so build/libtvm_runtime.so - md5sum build/libtvm_runtime.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/cpu/build/config.cmake build/config.cmake - md5sum build/config.cmake - """, - label: 'Download artifacts from S3', - ) - - ci_setup(ci_cpu) - sh ( - script: "${docker_run} ${ci_cpu} ./tests/scripts/task_python_integration.sh", - label: 'Run CPU integration tests', - ) - }) - } - } finally { - sh( - script: """ - set -eux - aws s3 cp --no-progress build/pytest-results s3://${s3_prefix}/pytest-results/integration_CPU --recursive - """, - label: 'Upload JUnits to S3', - ) - - junit 'build/pytest-results/*.xml' - } - } - } - } else { - Utils.markStageSkippedForConditional('integration: CPU 6 of 10') - } -} - -def shard_run_integration_CPU_7_of_10() { - if (!skip_ci && is_docs_only_build != 1) { - node('CPU-SMALL') { - ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/integration-python-cpu") { - try { - docker_init(ci_cpu) - init_git() - timeout(time: max_time, unit: 'MINUTES') { - withEnv([ - 'PLATFORM=cpu', - 'TEST_STEP_NAME=integration: CPU', - 'TVM_NUM_SHARDS=10', - 'TVM_SHARD_INDEX=6', - "SKIP_SLOW_TESTS=${skip_slow_tests}"], { - sh( - script: """ - set -eux - retry() { - local max_retries=\$1 - shift - local n=0 - local backoff_max=30 - until [ "\$n" -ge \$max_retries ] - do - "\$@" && break - n=\$((n+1)) - if [ "\$n" -eq \$max_retries ]; then - echo "failed to update after attempt \$n / \$max_retries, giving up" - exit 1 - fi - - WAIT=\$(python3 -c 'import random; print(random.randint(10, 30))') - echo "failed to update \$n / \$max_retries, waiting \$WAIT to try again" - sleep \$WAIT - done - } - - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/cpu/build/libvta_tsim.so build/libvta_tsim.so - md5sum build/libvta_tsim.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/cpu/build/libtvm.so build/libtvm.so - md5sum build/libtvm.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/cpu/build/libvta_fsim.so build/libvta_fsim.so - md5sum build/libvta_fsim.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/cpu/build/libtvm_runtime.so build/libtvm_runtime.so - md5sum build/libtvm_runtime.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/cpu/build/config.cmake build/config.cmake - md5sum build/config.cmake - """, - label: 'Download artifacts from S3', - ) - - ci_setup(ci_cpu) - sh ( - script: "${docker_run} ${ci_cpu} ./tests/scripts/task_python_integration.sh", - label: 'Run CPU integration tests', - ) - }) - } - } finally { - sh( - script: """ - set -eux - aws s3 cp --no-progress build/pytest-results s3://${s3_prefix}/pytest-results/integration_CPU --recursive - """, - label: 'Upload JUnits to S3', - ) - - junit 'build/pytest-results/*.xml' - } - } - } - } else { - Utils.markStageSkippedForConditional('integration: CPU 7 of 10') - } -} - -def shard_run_integration_CPU_8_of_10() { - if (!skip_ci && is_docs_only_build != 1) { - node('CPU-SMALL') { - ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/integration-python-cpu") { - try { - docker_init(ci_cpu) - init_git() - timeout(time: max_time, unit: 'MINUTES') { - withEnv([ - 'PLATFORM=cpu', - 'TEST_STEP_NAME=integration: CPU', - 'TVM_NUM_SHARDS=10', - 'TVM_SHARD_INDEX=7', - "SKIP_SLOW_TESTS=${skip_slow_tests}"], { - sh( - script: """ - set -eux - retry() { - local max_retries=\$1 - shift - local n=0 - local backoff_max=30 - until [ "\$n" -ge \$max_retries ] - do - "\$@" && break - n=\$((n+1)) - if [ "\$n" -eq \$max_retries ]; then - echo "failed to update after attempt \$n / \$max_retries, giving up" - exit 1 - fi - - WAIT=\$(python3 -c 'import random; print(random.randint(10, 30))') - echo "failed to update \$n / \$max_retries, waiting \$WAIT to try again" - sleep \$WAIT - done - } - - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/cpu/build/libvta_tsim.so build/libvta_tsim.so - md5sum build/libvta_tsim.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/cpu/build/libtvm.so build/libtvm.so - md5sum build/libtvm.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/cpu/build/libvta_fsim.so build/libvta_fsim.so - md5sum build/libvta_fsim.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/cpu/build/libtvm_runtime.so build/libtvm_runtime.so - md5sum build/libtvm_runtime.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/cpu/build/config.cmake build/config.cmake - md5sum build/config.cmake - """, - label: 'Download artifacts from S3', - ) - - ci_setup(ci_cpu) - sh ( - script: "${docker_run} ${ci_cpu} ./tests/scripts/task_python_integration.sh", - label: 'Run CPU integration tests', - ) - }) - } - } finally { - sh( - script: """ - set -eux - aws s3 cp --no-progress build/pytest-results s3://${s3_prefix}/pytest-results/integration_CPU --recursive - """, - label: 'Upload JUnits to S3', - ) - - junit 'build/pytest-results/*.xml' - } - } - } - } else { - Utils.markStageSkippedForConditional('integration: CPU 8 of 10') - } -} - -def shard_run_integration_CPU_9_of_10() { - if (!skip_ci && is_docs_only_build != 1) { - node('CPU-SMALL') { - ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/integration-python-cpu") { + ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/integration-python-i386") { try { - docker_init(ci_cpu) + docker_init(ci_i386) init_git() timeout(time: max_time, unit: 'MINUTES') { withEnv([ - 'PLATFORM=cpu', - 'TEST_STEP_NAME=integration: CPU', - 'TVM_NUM_SHARDS=10', - 'TVM_SHARD_INDEX=8', + 'PLATFORM=i386', + 'TEST_STEP_NAME=python: i386', + 'TVM_NUM_SHARDS=3', + 'TVM_SHARD_INDEX=0', "SKIP_SLOW_TESTS=${skip_slow_tests}"], { sh( script: """ @@ -2183,24 +1880,24 @@ def shard_run_integration_CPU_9_of_10() { done } - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/cpu/build/libvta_tsim.so build/libvta_tsim.so - md5sum build/libvta_tsim.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/cpu/build/libtvm.so build/libtvm.so + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/i386/build/libtvm.so build/libtvm.so md5sum build/libtvm.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/cpu/build/libvta_fsim.so build/libvta_fsim.so + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/i386/build/libvta_fsim.so build/libvta_fsim.so md5sum build/libvta_fsim.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/cpu/build/libtvm_runtime.so build/libtvm_runtime.so + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/i386/build/libtvm_runtime.so build/libtvm_runtime.so md5sum build/libtvm_runtime.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/cpu/build/config.cmake build/config.cmake + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/i386/build/config.cmake build/config.cmake md5sum build/config.cmake """, label: 'Download artifacts from S3', ) - ci_setup(ci_cpu) + ci_setup(ci_i386) + cpp_unittest(ci_i386) + python_unittest(ci_i386) sh ( - script: "${docker_run} ${ci_cpu} ./tests/scripts/task_python_integration.sh", - label: 'Run CPU integration tests', + script: "${docker_run} ${ci_i386} ./tests/scripts/task_python_integration_i386only.sh", + label: 'Run i386 integration tests', ) }) } @@ -2208,7 +1905,7 @@ def shard_run_integration_CPU_9_of_10() { sh( script: """ set -eux - aws s3 cp --no-progress build/pytest-results s3://${s3_prefix}/pytest-results/integration_CPU --recursive + aws s3 cp --no-progress build/pytest-results s3://${s3_prefix}/pytest-results/python_i386 --recursive """, label: 'Upload JUnits to S3', ) @@ -2218,23 +1915,23 @@ def shard_run_integration_CPU_9_of_10() { } } } else { - Utils.markStageSkippedForConditional('integration: CPU 9 of 10') + Utils.markStageSkippedForConditional('python: i386 1 of 3') } } -def shard_run_integration_CPU_10_of_10() { +def shard_run_python_i386_2_of_3() { if (!skip_ci && is_docs_only_build != 1) { node('CPU-SMALL') { - ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/integration-python-cpu") { + ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/integration-python-i386") { try { - docker_init(ci_cpu) + docker_init(ci_i386) init_git() timeout(time: max_time, unit: 'MINUTES') { withEnv([ - 'PLATFORM=cpu', - 'TEST_STEP_NAME=integration: CPU', - 'TVM_NUM_SHARDS=10', - 'TVM_SHARD_INDEX=9', + 'PLATFORM=i386', + 'TEST_STEP_NAME=python: i386', + 'TVM_NUM_SHARDS=3', + 'TVM_SHARD_INDEX=1', "SKIP_SLOW_TESTS=${skip_slow_tests}"], { sh( script: """ @@ -2259,32 +1956,32 @@ def shard_run_integration_CPU_10_of_10() { done } - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/cpu/build/libvta_tsim.so build/libvta_tsim.so - md5sum build/libvta_tsim.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/cpu/build/libtvm.so build/libtvm.so + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/i386/build/libtvm.so build/libtvm.so md5sum build/libtvm.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/cpu/build/libvta_fsim.so build/libvta_fsim.so + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/i386/build/libvta_fsim.so build/libvta_fsim.so md5sum build/libvta_fsim.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/cpu/build/libtvm_runtime.so build/libtvm_runtime.so + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/i386/build/libtvm_runtime.so build/libtvm_runtime.so md5sum build/libtvm_runtime.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/cpu/build/config.cmake build/config.cmake + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/i386/build/config.cmake build/config.cmake md5sum build/config.cmake """, label: 'Download artifacts from S3', ) - ci_setup(ci_cpu) + ci_setup(ci_i386) + python_unittest(ci_i386) sh ( - script: "${docker_run} ${ci_cpu} ./tests/scripts/task_python_integration.sh", - label: 'Run CPU integration tests', + script: "${docker_run} ${ci_i386} ./tests/scripts/task_python_integration_i386only.sh", + label: 'Run i386 integration tests', ) + fsim_test(ci_i386) }) } } finally { sh( script: """ set -eux - aws s3 cp --no-progress build/pytest-results s3://${s3_prefix}/pytest-results/integration_CPU --recursive + aws s3 cp --no-progress build/pytest-results s3://${s3_prefix}/pytest-results/python_i386 --recursive """, label: 'Upload JUnits to S3', ) @@ -2294,12 +1991,11 @@ def shard_run_integration_CPU_10_of_10() { } } } else { - Utils.markStageSkippedForConditional('integration: CPU 10 of 10') + Utils.markStageSkippedForConditional('python: i386 2 of 3') } } - -def shard_run_python_i386_1_of_5() { +def shard_run_python_i386_3_of_3() { if (!skip_ci && is_docs_only_build != 1) { node('CPU-SMALL') { ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/integration-python-i386") { @@ -2310,8 +2006,8 @@ def shard_run_python_i386_1_of_5() { withEnv([ 'PLATFORM=i386', 'TEST_STEP_NAME=python: i386', - 'TVM_NUM_SHARDS=5', - 'TVM_SHARD_INDEX=0', + 'TVM_NUM_SHARDS=3', + 'TVM_SHARD_INDEX=2', "SKIP_SLOW_TESTS=${skip_slow_tests}"], { sh( script: """ @@ -2349,7 +2045,6 @@ def shard_run_python_i386_1_of_5() { ) ci_setup(ci_i386) - cpp_unittest(ci_i386) python_unittest(ci_i386) sh ( script: "${docker_run} ${ci_i386} ./tests/scripts/task_python_integration_i386only.sh", @@ -2371,23 +2066,24 @@ def shard_run_python_i386_1_of_5() { } } } else { - Utils.markStageSkippedForConditional('python: i386 1 of 5') + Utils.markStageSkippedForConditional('python: i386 3 of 3') } } -def shard_run_python_i386_2_of_5() { + +def shard_run_test_Hexagon_1_of_8() { if (!skip_ci && is_docs_only_build != 1) { node('CPU-SMALL') { - ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/integration-python-i386") { + ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/test-hexagon") { try { - docker_init(ci_i386) + docker_init(ci_hexagon) init_git() timeout(time: max_time, unit: 'MINUTES') { withEnv([ - 'PLATFORM=i386', - 'TEST_STEP_NAME=python: i386', - 'TVM_NUM_SHARDS=5', - 'TVM_SHARD_INDEX=1', + 'PLATFORM=hexagon', + 'TEST_STEP_NAME=test: Hexagon', + 'TVM_NUM_SHARDS=8', + 'TVM_SHARD_INDEX=0', "SKIP_SLOW_TESTS=${skip_slow_tests}"], { sh( script: """ @@ -2412,32 +2108,31 @@ def shard_run_python_i386_2_of_5() { done } - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/i386/build/libtvm.so build/libtvm.so + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/hexagon/build/libtvm.so build/libtvm.so md5sum build/libtvm.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/i386/build/libvta_fsim.so build/libvta_fsim.so - md5sum build/libvta_fsim.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/i386/build/libtvm_runtime.so build/libtvm_runtime.so + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/hexagon/build/libtvm_runtime.so build/libtvm_runtime.so md5sum build/libtvm_runtime.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/i386/build/config.cmake build/config.cmake + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/hexagon/build/config.cmake build/config.cmake md5sum build/config.cmake + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/hexagon/build/hexagon_api_output build/hexagon_api_output --recursive """, label: 'Download artifacts from S3', ) - ci_setup(ci_i386) - python_unittest(ci_i386) + add_hexagon_permissions() + ci_setup(ci_hexagon) + cpp_unittest(ci_hexagon) sh ( - script: "${docker_run} ${ci_i386} ./tests/scripts/task_python_integration_i386only.sh", - label: 'Run i386 integration tests', + script: "${docker_run} ${ci_hexagon} ./tests/scripts/task_python_hexagon.sh", + label: 'Run Hexagon tests', ) - fsim_test(ci_i386) }) } } finally { sh( script: """ set -eux - aws s3 cp --no-progress build/pytest-results s3://${s3_prefix}/pytest-results/python_i386 --recursive + aws s3 cp --no-progress build/pytest-results s3://${s3_prefix}/pytest-results/test_Hexagon --recursive """, label: 'Upload JUnits to S3', ) @@ -2447,23 +2142,23 @@ def shard_run_python_i386_2_of_5() { } } } else { - Utils.markStageSkippedForConditional('python: i386 2 of 5') + Utils.markStageSkippedForConditional('test: Hexagon 1 of 8') } } -def shard_run_python_i386_3_of_5() { +def shard_run_test_Hexagon_2_of_8() { if (!skip_ci && is_docs_only_build != 1) { node('CPU-SMALL') { - ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/integration-python-i386") { + ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/test-hexagon") { try { - docker_init(ci_i386) + docker_init(ci_hexagon) init_git() timeout(time: max_time, unit: 'MINUTES') { withEnv([ - 'PLATFORM=i386', - 'TEST_STEP_NAME=python: i386', - 'TVM_NUM_SHARDS=5', - 'TVM_SHARD_INDEX=2', + 'PLATFORM=hexagon', + 'TEST_STEP_NAME=test: Hexagon', + 'TVM_NUM_SHARDS=8', + 'TVM_SHARD_INDEX=1', "SKIP_SLOW_TESTS=${skip_slow_tests}"], { sh( script: """ @@ -2488,23 +2183,22 @@ def shard_run_python_i386_3_of_5() { done } - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/i386/build/libtvm.so build/libtvm.so + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/hexagon/build/libtvm.so build/libtvm.so md5sum build/libtvm.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/i386/build/libvta_fsim.so build/libvta_fsim.so - md5sum build/libvta_fsim.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/i386/build/libtvm_runtime.so build/libtvm_runtime.so + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/hexagon/build/libtvm_runtime.so build/libtvm_runtime.so md5sum build/libtvm_runtime.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/i386/build/config.cmake build/config.cmake + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/hexagon/build/config.cmake build/config.cmake md5sum build/config.cmake + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/hexagon/build/hexagon_api_output build/hexagon_api_output --recursive """, label: 'Download artifacts from S3', ) - ci_setup(ci_i386) - python_unittest(ci_i386) + add_hexagon_permissions() + ci_setup(ci_hexagon) sh ( - script: "${docker_run} ${ci_i386} ./tests/scripts/task_python_integration_i386only.sh", - label: 'Run i386 integration tests', + script: "${docker_run} ${ci_hexagon} ./tests/scripts/task_python_hexagon.sh", + label: 'Run Hexagon tests', ) }) } @@ -2512,7 +2206,7 @@ def shard_run_python_i386_3_of_5() { sh( script: """ set -eux - aws s3 cp --no-progress build/pytest-results s3://${s3_prefix}/pytest-results/python_i386 --recursive + aws s3 cp --no-progress build/pytest-results s3://${s3_prefix}/pytest-results/test_Hexagon --recursive """, label: 'Upload JUnits to S3', ) @@ -2522,23 +2216,23 @@ def shard_run_python_i386_3_of_5() { } } } else { - Utils.markStageSkippedForConditional('python: i386 3 of 5') + Utils.markStageSkippedForConditional('test: Hexagon 2 of 8') } } -def shard_run_python_i386_4_of_5() { +def shard_run_test_Hexagon_3_of_8() { if (!skip_ci && is_docs_only_build != 1) { node('CPU-SMALL') { - ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/integration-python-i386") { + ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/test-hexagon") { try { - docker_init(ci_i386) + docker_init(ci_hexagon) init_git() timeout(time: max_time, unit: 'MINUTES') { withEnv([ - 'PLATFORM=i386', - 'TEST_STEP_NAME=python: i386', - 'TVM_NUM_SHARDS=5', - 'TVM_SHARD_INDEX=3', + 'PLATFORM=hexagon', + 'TEST_STEP_NAME=test: Hexagon', + 'TVM_NUM_SHARDS=8', + 'TVM_SHARD_INDEX=2', "SKIP_SLOW_TESTS=${skip_slow_tests}"], { sh( script: """ @@ -2563,23 +2257,22 @@ def shard_run_python_i386_4_of_5() { done } - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/i386/build/libtvm.so build/libtvm.so + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/hexagon/build/libtvm.so build/libtvm.so md5sum build/libtvm.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/i386/build/libvta_fsim.so build/libvta_fsim.so - md5sum build/libvta_fsim.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/i386/build/libtvm_runtime.so build/libtvm_runtime.so + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/hexagon/build/libtvm_runtime.so build/libtvm_runtime.so md5sum build/libtvm_runtime.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/i386/build/config.cmake build/config.cmake + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/hexagon/build/config.cmake build/config.cmake md5sum build/config.cmake + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/hexagon/build/hexagon_api_output build/hexagon_api_output --recursive """, label: 'Download artifacts from S3', ) - ci_setup(ci_i386) - python_unittest(ci_i386) + add_hexagon_permissions() + ci_setup(ci_hexagon) sh ( - script: "${docker_run} ${ci_i386} ./tests/scripts/task_python_integration_i386only.sh", - label: 'Run i386 integration tests', + script: "${docker_run} ${ci_hexagon} ./tests/scripts/task_python_hexagon.sh", + label: 'Run Hexagon tests', ) }) } @@ -2587,7 +2280,7 @@ def shard_run_python_i386_4_of_5() { sh( script: """ set -eux - aws s3 cp --no-progress build/pytest-results s3://${s3_prefix}/pytest-results/python_i386 --recursive + aws s3 cp --no-progress build/pytest-results s3://${s3_prefix}/pytest-results/test_Hexagon --recursive """, label: 'Upload JUnits to S3', ) @@ -2597,23 +2290,23 @@ def shard_run_python_i386_4_of_5() { } } } else { - Utils.markStageSkippedForConditional('python: i386 4 of 5') + Utils.markStageSkippedForConditional('test: Hexagon 3 of 8') } } -def shard_run_python_i386_5_of_5() { +def shard_run_test_Hexagon_4_of_8() { if (!skip_ci && is_docs_only_build != 1) { node('CPU-SMALL') { - ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/integration-python-i386") { + ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/test-hexagon") { try { - docker_init(ci_i386) + docker_init(ci_hexagon) init_git() timeout(time: max_time, unit: 'MINUTES') { withEnv([ - 'PLATFORM=i386', - 'TEST_STEP_NAME=python: i386', - 'TVM_NUM_SHARDS=5', - 'TVM_SHARD_INDEX=4', + 'PLATFORM=hexagon', + 'TEST_STEP_NAME=test: Hexagon', + 'TVM_NUM_SHARDS=8', + 'TVM_SHARD_INDEX=3', "SKIP_SLOW_TESTS=${skip_slow_tests}"], { sh( script: """ @@ -2638,23 +2331,22 @@ def shard_run_python_i386_5_of_5() { done } - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/i386/build/libtvm.so build/libtvm.so + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/hexagon/build/libtvm.so build/libtvm.so md5sum build/libtvm.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/i386/build/libvta_fsim.so build/libvta_fsim.so - md5sum build/libvta_fsim.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/i386/build/libtvm_runtime.so build/libtvm_runtime.so + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/hexagon/build/libtvm_runtime.so build/libtvm_runtime.so md5sum build/libtvm_runtime.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/i386/build/config.cmake build/config.cmake + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/hexagon/build/config.cmake build/config.cmake md5sum build/config.cmake + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/hexagon/build/hexagon_api_output build/hexagon_api_output --recursive """, label: 'Download artifacts from S3', ) - ci_setup(ci_i386) - python_unittest(ci_i386) + add_hexagon_permissions() + ci_setup(ci_hexagon) sh ( - script: "${docker_run} ${ci_i386} ./tests/scripts/task_python_integration_i386only.sh", - label: 'Run i386 integration tests', + script: "${docker_run} ${ci_hexagon} ./tests/scripts/task_python_hexagon.sh", + label: 'Run Hexagon tests', ) }) } @@ -2662,7 +2354,7 @@ def shard_run_python_i386_5_of_5() { sh( script: """ set -eux - aws s3 cp --no-progress build/pytest-results s3://${s3_prefix}/pytest-results/python_i386 --recursive + aws s3 cp --no-progress build/pytest-results s3://${s3_prefix}/pytest-results/test_Hexagon --recursive """, label: 'Upload JUnits to S3', ) @@ -2672,12 +2364,11 @@ def shard_run_python_i386_5_of_5() { } } } else { - Utils.markStageSkippedForConditional('python: i386 5 of 5') + Utils.markStageSkippedForConditional('test: Hexagon 4 of 8') } } - -def shard_run_test_Hexagon_1_of_7() { +def shard_run_test_Hexagon_5_of_8() { if (!skip_ci && is_docs_only_build != 1) { node('CPU-SMALL') { ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/test-hexagon") { @@ -2688,8 +2379,8 @@ def shard_run_test_Hexagon_1_of_7() { withEnv([ 'PLATFORM=hexagon', 'TEST_STEP_NAME=test: Hexagon', - 'TVM_NUM_SHARDS=7', - 'TVM_SHARD_INDEX=0', + 'TVM_NUM_SHARDS=8', + 'TVM_SHARD_INDEX=4', "SKIP_SLOW_TESTS=${skip_slow_tests}"], { sh( script: """ @@ -2727,7 +2418,6 @@ def shard_run_test_Hexagon_1_of_7() { add_hexagon_permissions() ci_setup(ci_hexagon) - cpp_unittest(ci_hexagon) sh ( script: "${docker_run} ${ci_hexagon} ./tests/scripts/task_python_hexagon.sh", label: 'Run Hexagon tests', @@ -2748,11 +2438,11 @@ def shard_run_test_Hexagon_1_of_7() { } } } else { - Utils.markStageSkippedForConditional('test: Hexagon 1 of 7') + Utils.markStageSkippedForConditional('test: Hexagon 5 of 8') } } -def shard_run_test_Hexagon_2_of_7() { +def shard_run_test_Hexagon_6_of_8() { if (!skip_ci && is_docs_only_build != 1) { node('CPU-SMALL') { ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/test-hexagon") { @@ -2763,8 +2453,8 @@ def shard_run_test_Hexagon_2_of_7() { withEnv([ 'PLATFORM=hexagon', 'TEST_STEP_NAME=test: Hexagon', - 'TVM_NUM_SHARDS=7', - 'TVM_SHARD_INDEX=1', + 'TVM_NUM_SHARDS=8', + 'TVM_SHARD_INDEX=5', "SKIP_SLOW_TESTS=${skip_slow_tests}"], { sh( script: """ @@ -2822,11 +2512,11 @@ def shard_run_test_Hexagon_2_of_7() { } } } else { - Utils.markStageSkippedForConditional('test: Hexagon 2 of 7') + Utils.markStageSkippedForConditional('test: Hexagon 6 of 8') } } -def shard_run_test_Hexagon_3_of_7() { +def shard_run_test_Hexagon_7_of_8() { if (!skip_ci && is_docs_only_build != 1) { node('CPU-SMALL') { ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/test-hexagon") { @@ -2837,8 +2527,8 @@ def shard_run_test_Hexagon_3_of_7() { withEnv([ 'PLATFORM=hexagon', 'TEST_STEP_NAME=test: Hexagon', - 'TVM_NUM_SHARDS=7', - 'TVM_SHARD_INDEX=2', + 'TVM_NUM_SHARDS=8', + 'TVM_SHARD_INDEX=6', "SKIP_SLOW_TESTS=${skip_slow_tests}"], { sh( script: """ @@ -2896,11 +2586,11 @@ def shard_run_test_Hexagon_3_of_7() { } } } else { - Utils.markStageSkippedForConditional('test: Hexagon 3 of 7') + Utils.markStageSkippedForConditional('test: Hexagon 7 of 8') } } -def shard_run_test_Hexagon_4_of_7() { +def shard_run_test_Hexagon_8_of_8() { if (!skip_ci && is_docs_only_build != 1) { node('CPU-SMALL') { ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/test-hexagon") { @@ -2911,8 +2601,8 @@ def shard_run_test_Hexagon_4_of_7() { withEnv([ 'PLATFORM=hexagon', 'TEST_STEP_NAME=test: Hexagon', - 'TVM_NUM_SHARDS=7', - 'TVM_SHARD_INDEX=3', + 'TVM_NUM_SHARDS=8', + 'TVM_SHARD_INDEX=7', "SKIP_SLOW_TESTS=${skip_slow_tests}"], { sh( script: """ @@ -2970,23 +2660,24 @@ def shard_run_test_Hexagon_4_of_7() { } } } else { - Utils.markStageSkippedForConditional('test: Hexagon 4 of 7') + Utils.markStageSkippedForConditional('test: Hexagon 8 of 8') } } -def shard_run_test_Hexagon_5_of_7() { + +def shard_run_integration_aarch64_1_of_4() { if (!skip_ci && is_docs_only_build != 1) { - node('CPU-SMALL') { - ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/test-hexagon") { + node('ARM-SMALL') { + ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/ut-python-arm") { try { - docker_init(ci_hexagon) + docker_init(ci_arm) init_git() timeout(time: max_time, unit: 'MINUTES') { withEnv([ - 'PLATFORM=hexagon', - 'TEST_STEP_NAME=test: Hexagon', - 'TVM_NUM_SHARDS=7', - 'TVM_SHARD_INDEX=4', + 'PLATFORM=arm', + 'TEST_STEP_NAME=integration: aarch64', + 'TVM_NUM_SHARDS=4', + 'TVM_SHARD_INDEX=0', "SKIP_SLOW_TESTS=${skip_slow_tests}"], { sh( script: """ @@ -3011,22 +2702,23 @@ def shard_run_test_Hexagon_5_of_7() { done } - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/hexagon/build/libtvm.so build/libtvm.so + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/libtvm.so build/libtvm.so md5sum build/libtvm.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/hexagon/build/libtvm_runtime.so build/libtvm_runtime.so + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/libvta_fsim.so build/libvta_fsim.so + md5sum build/libvta_fsim.so + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/libtvm_runtime.so build/libtvm_runtime.so md5sum build/libtvm_runtime.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/hexagon/build/config.cmake build/config.cmake + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/config.cmake build/config.cmake md5sum build/config.cmake - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/hexagon/build/hexagon_api_output build/hexagon_api_output --recursive """, label: 'Download artifacts from S3', ) - add_hexagon_permissions() - ci_setup(ci_hexagon) + ci_setup(ci_arm) + python_unittest(ci_arm) sh ( - script: "${docker_run} ${ci_hexagon} ./tests/scripts/task_python_hexagon.sh", - label: 'Run Hexagon tests', + script: "${docker_run} ${ci_arm} ./tests/scripts/task_python_integration.sh", + label: 'Run CPU integration tests', ) }) } @@ -3034,7 +2726,7 @@ def shard_run_test_Hexagon_5_of_7() { sh( script: """ set -eux - aws s3 cp --no-progress build/pytest-results s3://${s3_prefix}/pytest-results/test_Hexagon --recursive + aws s3 cp --no-progress build/pytest-results s3://${s3_prefix}/pytest-results/integration_aarch64 --recursive """, label: 'Upload JUnits to S3', ) @@ -3044,23 +2736,23 @@ def shard_run_test_Hexagon_5_of_7() { } } } else { - Utils.markStageSkippedForConditional('test: Hexagon 5 of 7') + Utils.markStageSkippedForConditional('integration: aarch64 1 of 4') } } -def shard_run_test_Hexagon_6_of_7() { +def shard_run_integration_aarch64_2_of_4() { if (!skip_ci && is_docs_only_build != 1) { - node('CPU-SMALL') { - ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/test-hexagon") { + node('ARM-SMALL') { + ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/ut-python-arm") { try { - docker_init(ci_hexagon) + docker_init(ci_arm) init_git() timeout(time: max_time, unit: 'MINUTES') { withEnv([ - 'PLATFORM=hexagon', - 'TEST_STEP_NAME=test: Hexagon', - 'TVM_NUM_SHARDS=7', - 'TVM_SHARD_INDEX=5', + 'PLATFORM=arm', + 'TEST_STEP_NAME=integration: aarch64', + 'TVM_NUM_SHARDS=4', + 'TVM_SHARD_INDEX=1', "SKIP_SLOW_TESTS=${skip_slow_tests}"], { sh( script: """ @@ -3085,22 +2777,23 @@ def shard_run_test_Hexagon_6_of_7() { done } - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/hexagon/build/libtvm.so build/libtvm.so + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/libtvm.so build/libtvm.so md5sum build/libtvm.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/hexagon/build/libtvm_runtime.so build/libtvm_runtime.so + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/libvta_fsim.so build/libvta_fsim.so + md5sum build/libvta_fsim.so + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/libtvm_runtime.so build/libtvm_runtime.so md5sum build/libtvm_runtime.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/hexagon/build/config.cmake build/config.cmake + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/config.cmake build/config.cmake md5sum build/config.cmake - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/hexagon/build/hexagon_api_output build/hexagon_api_output --recursive """, label: 'Download artifacts from S3', ) - add_hexagon_permissions() - ci_setup(ci_hexagon) + ci_setup(ci_arm) + python_unittest(ci_arm) sh ( - script: "${docker_run} ${ci_hexagon} ./tests/scripts/task_python_hexagon.sh", - label: 'Run Hexagon tests', + script: "${docker_run} ${ci_arm} ./tests/scripts/task_python_integration.sh", + label: 'Run CPU integration tests', ) }) } @@ -3108,7 +2801,7 @@ def shard_run_test_Hexagon_6_of_7() { sh( script: """ set -eux - aws s3 cp --no-progress build/pytest-results s3://${s3_prefix}/pytest-results/test_Hexagon --recursive + aws s3 cp --no-progress build/pytest-results s3://${s3_prefix}/pytest-results/integration_aarch64 --recursive """, label: 'Upload JUnits to S3', ) @@ -3118,23 +2811,23 @@ def shard_run_test_Hexagon_6_of_7() { } } } else { - Utils.markStageSkippedForConditional('test: Hexagon 6 of 7') + Utils.markStageSkippedForConditional('integration: aarch64 2 of 4') } } -def shard_run_test_Hexagon_7_of_7() { +def shard_run_integration_aarch64_3_of_4() { if (!skip_ci && is_docs_only_build != 1) { - node('CPU-SMALL') { - ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/test-hexagon") { + node('ARM-SMALL') { + ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/ut-python-arm") { try { - docker_init(ci_hexagon) + docker_init(ci_arm) init_git() timeout(time: max_time, unit: 'MINUTES') { withEnv([ - 'PLATFORM=hexagon', - 'TEST_STEP_NAME=test: Hexagon', - 'TVM_NUM_SHARDS=7', - 'TVM_SHARD_INDEX=6', + 'PLATFORM=arm', + 'TEST_STEP_NAME=integration: aarch64', + 'TVM_NUM_SHARDS=4', + 'TVM_SHARD_INDEX=2', "SKIP_SLOW_TESTS=${skip_slow_tests}"], { sh( script: """ @@ -3159,22 +2852,23 @@ def shard_run_test_Hexagon_7_of_7() { done } - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/hexagon/build/libtvm.so build/libtvm.so + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/libtvm.so build/libtvm.so md5sum build/libtvm.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/hexagon/build/libtvm_runtime.so build/libtvm_runtime.so + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/libvta_fsim.so build/libvta_fsim.so + md5sum build/libvta_fsim.so + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/libtvm_runtime.so build/libtvm_runtime.so md5sum build/libtvm_runtime.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/hexagon/build/config.cmake build/config.cmake + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/config.cmake build/config.cmake md5sum build/config.cmake - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/hexagon/build/hexagon_api_output build/hexagon_api_output --recursive """, label: 'Download artifacts from S3', ) - add_hexagon_permissions() - ci_setup(ci_hexagon) + ci_setup(ci_arm) + python_unittest(ci_arm) sh ( - script: "${docker_run} ${ci_hexagon} ./tests/scripts/task_python_hexagon.sh", - label: 'Run Hexagon tests', + script: "${docker_run} ${ci_arm} ./tests/scripts/task_python_integration.sh", + label: 'Run CPU integration tests', ) }) } @@ -3182,7 +2876,7 @@ def shard_run_test_Hexagon_7_of_7() { sh( script: """ set -eux - aws s3 cp --no-progress build/pytest-results s3://${s3_prefix}/pytest-results/test_Hexagon --recursive + aws s3 cp --no-progress build/pytest-results s3://${s3_prefix}/pytest-results/integration_aarch64 --recursive """, label: 'Upload JUnits to S3', ) @@ -3192,12 +2886,11 @@ def shard_run_test_Hexagon_7_of_7() { } } } else { - Utils.markStageSkippedForConditional('test: Hexagon 7 of 7') + Utils.markStageSkippedForConditional('integration: aarch64 3 of 4') } } - -def shard_run_integration_aarch64_1_of_4() { +def shard_run_integration_aarch64_4_of_4() { if (!skip_ci && is_docs_only_build != 1) { node('ARM-SMALL') { ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/ut-python-arm") { @@ -3209,7 +2902,7 @@ def shard_run_integration_aarch64_1_of_4() { 'PLATFORM=arm', 'TEST_STEP_NAME=integration: aarch64', 'TVM_NUM_SHARDS=4', - 'TVM_SHARD_INDEX=0', + 'TVM_SHARD_INDEX=3', "SKIP_SLOW_TESTS=${skip_slow_tests}"], { sh( script: """ @@ -3268,23 +2961,24 @@ def shard_run_integration_aarch64_1_of_4() { } } } else { - Utils.markStageSkippedForConditional('integration: aarch64 1 of 4') + Utils.markStageSkippedForConditional('integration: aarch64 4 of 4') } } -def shard_run_integration_aarch64_2_of_4() { + +def shard_run_topi_GPU_1_of_3() { if (!skip_ci && is_docs_only_build != 1) { - node('ARM-SMALL') { - ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/ut-python-arm") { + node('GPU') { + ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/topi-python-gpu") { try { - docker_init(ci_arm) + docker_init(ci_gpu) init_git() timeout(time: max_time, unit: 'MINUTES') { withEnv([ - 'PLATFORM=arm', - 'TEST_STEP_NAME=integration: aarch64', - 'TVM_NUM_SHARDS=4', - 'TVM_SHARD_INDEX=1', + 'PLATFORM=gpu', + 'TEST_STEP_NAME=topi: GPU', + 'TVM_NUM_SHARDS=3', + 'TVM_SHARD_INDEX=0', "SKIP_SLOW_TESTS=${skip_slow_tests}"], { sh( script: """ @@ -3309,23 +3003,22 @@ def shard_run_integration_aarch64_2_of_4() { done } - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/libtvm.so build/libtvm.so + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/gpu/build/libtvm.so build/libtvm.so md5sum build/libtvm.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/libvta_fsim.so build/libvta_fsim.so + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/gpu/build/libvta_fsim.so build/libvta_fsim.so md5sum build/libvta_fsim.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/libtvm_runtime.so build/libtvm_runtime.so + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/gpu/build/libtvm_runtime.so build/libtvm_runtime.so md5sum build/libtvm_runtime.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/config.cmake build/config.cmake + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/gpu/build/config.cmake build/config.cmake md5sum build/config.cmake """, label: 'Download artifacts from S3', ) - ci_setup(ci_arm) - python_unittest(ci_arm) + ci_setup(ci_gpu) sh ( - script: "${docker_run} ${ci_arm} ./tests/scripts/task_python_integration.sh", - label: 'Run CPU integration tests', + script: "${docker_run} ${ci_gpu} ./tests/scripts/task_python_topi.sh", + label: 'Run TOPI tests', ) }) } @@ -3333,7 +3026,7 @@ def shard_run_integration_aarch64_2_of_4() { sh( script: """ set -eux - aws s3 cp --no-progress build/pytest-results s3://${s3_prefix}/pytest-results/integration_aarch64 --recursive + aws s3 cp --no-progress build/pytest-results s3://${s3_prefix}/pytest-results/topi_GPU --recursive """, label: 'Upload JUnits to S3', ) @@ -3343,23 +3036,23 @@ def shard_run_integration_aarch64_2_of_4() { } } } else { - Utils.markStageSkippedForConditional('integration: aarch64 2 of 4') + Utils.markStageSkippedForConditional('topi: GPU 1 of 3') } } -def shard_run_integration_aarch64_3_of_4() { +def shard_run_topi_GPU_2_of_3() { if (!skip_ci && is_docs_only_build != 1) { - node('ARM-SMALL') { - ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/ut-python-arm") { + node('GPU') { + ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/topi-python-gpu") { try { - docker_init(ci_arm) + docker_init(ci_gpu) init_git() timeout(time: max_time, unit: 'MINUTES') { withEnv([ - 'PLATFORM=arm', - 'TEST_STEP_NAME=integration: aarch64', - 'TVM_NUM_SHARDS=4', - 'TVM_SHARD_INDEX=2', + 'PLATFORM=gpu', + 'TEST_STEP_NAME=topi: GPU', + 'TVM_NUM_SHARDS=3', + 'TVM_SHARD_INDEX=1', "SKIP_SLOW_TESTS=${skip_slow_tests}"], { sh( script: """ @@ -3384,23 +3077,22 @@ def shard_run_integration_aarch64_3_of_4() { done } - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/libtvm.so build/libtvm.so + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/gpu/build/libtvm.so build/libtvm.so md5sum build/libtvm.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/libvta_fsim.so build/libvta_fsim.so + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/gpu/build/libvta_fsim.so build/libvta_fsim.so md5sum build/libvta_fsim.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/libtvm_runtime.so build/libtvm_runtime.so + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/gpu/build/libtvm_runtime.so build/libtvm_runtime.so md5sum build/libtvm_runtime.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/config.cmake build/config.cmake + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/gpu/build/config.cmake build/config.cmake md5sum build/config.cmake """, label: 'Download artifacts from S3', ) - ci_setup(ci_arm) - python_unittest(ci_arm) + ci_setup(ci_gpu) sh ( - script: "${docker_run} ${ci_arm} ./tests/scripts/task_python_integration.sh", - label: 'Run CPU integration tests', + script: "${docker_run} ${ci_gpu} ./tests/scripts/task_python_topi.sh", + label: 'Run TOPI tests', ) }) } @@ -3408,7 +3100,7 @@ def shard_run_integration_aarch64_3_of_4() { sh( script: """ set -eux - aws s3 cp --no-progress build/pytest-results s3://${s3_prefix}/pytest-results/integration_aarch64 --recursive + aws s3 cp --no-progress build/pytest-results s3://${s3_prefix}/pytest-results/topi_GPU --recursive """, label: 'Upload JUnits to S3', ) @@ -3418,23 +3110,23 @@ def shard_run_integration_aarch64_3_of_4() { } } } else { - Utils.markStageSkippedForConditional('integration: aarch64 3 of 4') + Utils.markStageSkippedForConditional('topi: GPU 2 of 3') } } -def shard_run_integration_aarch64_4_of_4() { +def shard_run_topi_GPU_3_of_3() { if (!skip_ci && is_docs_only_build != 1) { - node('ARM-SMALL') { - ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/ut-python-arm") { + node('GPU') { + ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/topi-python-gpu") { try { - docker_init(ci_arm) + docker_init(ci_gpu) init_git() timeout(time: max_time, unit: 'MINUTES') { withEnv([ - 'PLATFORM=arm', - 'TEST_STEP_NAME=integration: aarch64', - 'TVM_NUM_SHARDS=4', - 'TVM_SHARD_INDEX=3', + 'PLATFORM=gpu', + 'TEST_STEP_NAME=topi: GPU', + 'TVM_NUM_SHARDS=3', + 'TVM_SHARD_INDEX=2', "SKIP_SLOW_TESTS=${skip_slow_tests}"], { sh( script: """ @@ -3459,23 +3151,22 @@ def shard_run_integration_aarch64_4_of_4() { done } - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/libtvm.so build/libtvm.so + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/gpu/build/libtvm.so build/libtvm.so md5sum build/libtvm.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/libvta_fsim.so build/libvta_fsim.so + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/gpu/build/libvta_fsim.so build/libvta_fsim.so md5sum build/libvta_fsim.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/libtvm_runtime.so build/libtvm_runtime.so + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/gpu/build/libtvm_runtime.so build/libtvm_runtime.so md5sum build/libtvm_runtime.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/config.cmake build/config.cmake + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/gpu/build/config.cmake build/config.cmake md5sum build/config.cmake """, label: 'Download artifacts from S3', ) - ci_setup(ci_arm) - python_unittest(ci_arm) + ci_setup(ci_gpu) sh ( - script: "${docker_run} ${ci_arm} ./tests/scripts/task_python_integration.sh", - label: 'Run CPU integration tests', + script: "${docker_run} ${ci_gpu} ./tests/scripts/task_python_topi.sh", + label: 'Run TOPI tests', ) }) } @@ -3483,7 +3174,7 @@ def shard_run_integration_aarch64_4_of_4() { sh( script: """ set -eux - aws s3 cp --no-progress build/pytest-results s3://${s3_prefix}/pytest-results/integration_aarch64 --recursive + aws s3 cp --no-progress build/pytest-results s3://${s3_prefix}/pytest-results/topi_GPU --recursive """, label: 'Upload JUnits to S3', ) @@ -3493,23 +3184,23 @@ def shard_run_integration_aarch64_4_of_4() { } } } else { - Utils.markStageSkippedForConditional('integration: aarch64 4 of 4') + Utils.markStageSkippedForConditional('topi: GPU 3 of 3') } } -def shard_run_topi_GPU_1_of_4() { +def shard_run_frontend_GPU_1_of_6() { if (!skip_ci && is_docs_only_build != 1) { node('GPU') { - ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/topi-python-gpu") { + ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/frontend-python-gpu") { try { docker_init(ci_gpu) init_git() timeout(time: max_time, unit: 'MINUTES') { withEnv([ 'PLATFORM=gpu', - 'TEST_STEP_NAME=topi: GPU', - 'TVM_NUM_SHARDS=4', + 'TEST_STEP_NAME=frontend: GPU', + 'TVM_NUM_SHARDS=6', 'TVM_SHARD_INDEX=0', "SKIP_SLOW_TESTS=${skip_slow_tests}"], { sh( @@ -3549,8 +3240,8 @@ def shard_run_topi_GPU_1_of_4() { ci_setup(ci_gpu) sh ( - script: "${docker_run} ${ci_gpu} ./tests/scripts/task_python_topi.sh", - label: 'Run TOPI tests', + script: "${docker_run} ${ci_gpu} ./tests/scripts/task_python_frontend.sh", + label: 'Run Python frontend tests', ) }) } @@ -3558,7 +3249,7 @@ def shard_run_topi_GPU_1_of_4() { sh( script: """ set -eux - aws s3 cp --no-progress build/pytest-results s3://${s3_prefix}/pytest-results/topi_GPU --recursive + aws s3 cp --no-progress build/pytest-results s3://${s3_prefix}/pytest-results/frontend_GPU --recursive """, label: 'Upload JUnits to S3', ) @@ -3568,22 +3259,22 @@ def shard_run_topi_GPU_1_of_4() { } } } else { - Utils.markStageSkippedForConditional('topi: GPU 1 of 4') + Utils.markStageSkippedForConditional('frontend: GPU 1 of 6') } } -def shard_run_topi_GPU_2_of_4() { +def shard_run_frontend_GPU_2_of_6() { if (!skip_ci && is_docs_only_build != 1) { node('GPU') { - ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/topi-python-gpu") { + ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/frontend-python-gpu") { try { docker_init(ci_gpu) init_git() timeout(time: max_time, unit: 'MINUTES') { withEnv([ 'PLATFORM=gpu', - 'TEST_STEP_NAME=topi: GPU', - 'TVM_NUM_SHARDS=4', + 'TEST_STEP_NAME=frontend: GPU', + 'TVM_NUM_SHARDS=6', 'TVM_SHARD_INDEX=1', "SKIP_SLOW_TESTS=${skip_slow_tests}"], { sh( @@ -3623,8 +3314,8 @@ def shard_run_topi_GPU_2_of_4() { ci_setup(ci_gpu) sh ( - script: "${docker_run} ${ci_gpu} ./tests/scripts/task_python_topi.sh", - label: 'Run TOPI tests', + script: "${docker_run} ${ci_gpu} ./tests/scripts/task_python_frontend.sh", + label: 'Run Python frontend tests', ) }) } @@ -3632,7 +3323,7 @@ def shard_run_topi_GPU_2_of_4() { sh( script: """ set -eux - aws s3 cp --no-progress build/pytest-results s3://${s3_prefix}/pytest-results/topi_GPU --recursive + aws s3 cp --no-progress build/pytest-results s3://${s3_prefix}/pytest-results/frontend_GPU --recursive """, label: 'Upload JUnits to S3', ) @@ -3642,22 +3333,22 @@ def shard_run_topi_GPU_2_of_4() { } } } else { - Utils.markStageSkippedForConditional('topi: GPU 2 of 4') + Utils.markStageSkippedForConditional('frontend: GPU 2 of 6') } } -def shard_run_topi_GPU_3_of_4() { +def shard_run_frontend_GPU_3_of_6() { if (!skip_ci && is_docs_only_build != 1) { node('GPU') { - ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/topi-python-gpu") { + ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/frontend-python-gpu") { try { docker_init(ci_gpu) init_git() timeout(time: max_time, unit: 'MINUTES') { withEnv([ 'PLATFORM=gpu', - 'TEST_STEP_NAME=topi: GPU', - 'TVM_NUM_SHARDS=4', + 'TEST_STEP_NAME=frontend: GPU', + 'TVM_NUM_SHARDS=6', 'TVM_SHARD_INDEX=2', "SKIP_SLOW_TESTS=${skip_slow_tests}"], { sh( @@ -3697,8 +3388,8 @@ def shard_run_topi_GPU_3_of_4() { ci_setup(ci_gpu) sh ( - script: "${docker_run} ${ci_gpu} ./tests/scripts/task_python_topi.sh", - label: 'Run TOPI tests', + script: "${docker_run} ${ci_gpu} ./tests/scripts/task_python_frontend.sh", + label: 'Run Python frontend tests', ) }) } @@ -3706,7 +3397,7 @@ def shard_run_topi_GPU_3_of_4() { sh( script: """ set -eux - aws s3 cp --no-progress build/pytest-results s3://${s3_prefix}/pytest-results/topi_GPU --recursive + aws s3 cp --no-progress build/pytest-results s3://${s3_prefix}/pytest-results/frontend_GPU --recursive """, label: 'Upload JUnits to S3', ) @@ -3716,22 +3407,22 @@ def shard_run_topi_GPU_3_of_4() { } } } else { - Utils.markStageSkippedForConditional('topi: GPU 3 of 4') + Utils.markStageSkippedForConditional('frontend: GPU 3 of 6') } } -def shard_run_topi_GPU_4_of_4() { +def shard_run_frontend_GPU_4_of_6() { if (!skip_ci && is_docs_only_build != 1) { node('GPU') { - ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/topi-python-gpu") { + ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/frontend-python-gpu") { try { docker_init(ci_gpu) init_git() timeout(time: max_time, unit: 'MINUTES') { withEnv([ 'PLATFORM=gpu', - 'TEST_STEP_NAME=topi: GPU', - 'TVM_NUM_SHARDS=4', + 'TEST_STEP_NAME=frontend: GPU', + 'TVM_NUM_SHARDS=6', 'TVM_SHARD_INDEX=3', "SKIP_SLOW_TESTS=${skip_slow_tests}"], { sh( @@ -3771,8 +3462,8 @@ def shard_run_topi_GPU_4_of_4() { ci_setup(ci_gpu) sh ( - script: "${docker_run} ${ci_gpu} ./tests/scripts/task_python_topi.sh", - label: 'Run TOPI tests', + script: "${docker_run} ${ci_gpu} ./tests/scripts/task_python_frontend.sh", + label: 'Run Python frontend tests', ) }) } @@ -3780,7 +3471,7 @@ def shard_run_topi_GPU_4_of_4() { sh( script: """ set -eux - aws s3 cp --no-progress build/pytest-results s3://${s3_prefix}/pytest-results/topi_GPU --recursive + aws s3 cp --no-progress build/pytest-results s3://${s3_prefix}/pytest-results/frontend_GPU --recursive """, label: 'Upload JUnits to S3', ) @@ -3790,12 +3481,11 @@ def shard_run_topi_GPU_4_of_4() { } } } else { - Utils.markStageSkippedForConditional('topi: GPU 4 of 4') + Utils.markStageSkippedForConditional('frontend: GPU 4 of 6') } } - -def shard_run_frontend_GPU_1_of_6() { +def shard_run_frontend_GPU_5_of_6() { if (!skip_ci && is_docs_only_build != 1) { node('GPU') { ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/frontend-python-gpu") { @@ -3807,7 +3497,7 @@ def shard_run_frontend_GPU_1_of_6() { 'PLATFORM=gpu', 'TEST_STEP_NAME=frontend: GPU', 'TVM_NUM_SHARDS=6', - 'TVM_SHARD_INDEX=0', + 'TVM_SHARD_INDEX=4', "SKIP_SLOW_TESTS=${skip_slow_tests}"], { sh( script: """ @@ -3865,11 +3555,11 @@ def shard_run_frontend_GPU_1_of_6() { } } } else { - Utils.markStageSkippedForConditional('frontend: GPU 1 of 6') + Utils.markStageSkippedForConditional('frontend: GPU 5 of 6') } } -def shard_run_frontend_GPU_2_of_6() { +def shard_run_frontend_GPU_6_of_6() { if (!skip_ci && is_docs_only_build != 1) { node('GPU') { ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/frontend-python-gpu") { @@ -3881,7 +3571,7 @@ def shard_run_frontend_GPU_2_of_6() { 'PLATFORM=gpu', 'TEST_STEP_NAME=frontend: GPU', 'TVM_NUM_SHARDS=6', - 'TVM_SHARD_INDEX=1', + 'TVM_SHARD_INDEX=5', "SKIP_SLOW_TESTS=${skip_slow_tests}"], { sh( script: """ @@ -3939,23 +3629,24 @@ def shard_run_frontend_GPU_2_of_6() { } } } else { - Utils.markStageSkippedForConditional('frontend: GPU 2 of 6') + Utils.markStageSkippedForConditional('frontend: GPU 6 of 6') } } -def shard_run_frontend_GPU_3_of_6() { + +def shard_run_topi_aarch64_1_of_2() { if (!skip_ci && is_docs_only_build != 1) { - node('GPU') { - ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/frontend-python-gpu") { + node('ARM-SMALL') { + ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/ut-python-arm") { try { - docker_init(ci_gpu) + docker_init(ci_arm) init_git() timeout(time: max_time, unit: 'MINUTES') { withEnv([ - 'PLATFORM=gpu', - 'TEST_STEP_NAME=frontend: GPU', - 'TVM_NUM_SHARDS=6', - 'TVM_SHARD_INDEX=2', + 'PLATFORM=arm', + 'TEST_STEP_NAME=topi: aarch64', + 'TVM_NUM_SHARDS=2', + 'TVM_SHARD_INDEX=0', "SKIP_SLOW_TESTS=${skip_slow_tests}"], { sh( script: """ @@ -3980,22 +3671,27 @@ def shard_run_frontend_GPU_3_of_6() { done } - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/gpu/build/libtvm.so build/libtvm.so + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/libtvm.so build/libtvm.so md5sum build/libtvm.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/gpu/build/libvta_fsim.so build/libvta_fsim.so + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/libvta_fsim.so build/libvta_fsim.so md5sum build/libvta_fsim.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/gpu/build/libtvm_runtime.so build/libtvm_runtime.so + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/libtvm_runtime.so build/libtvm_runtime.so md5sum build/libtvm_runtime.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/gpu/build/config.cmake build/config.cmake + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/config.cmake build/config.cmake md5sum build/config.cmake """, label: 'Download artifacts from S3', ) - ci_setup(ci_gpu) + ci_setup(ci_arm) + cpp_unittest(ci_arm) sh ( - script: "${docker_run} ${ci_gpu} ./tests/scripts/task_python_frontend.sh", - label: 'Run Python frontend tests', + script: "${docker_run} ${ci_arm} ./tests/scripts/task_python_arm_compute_library.sh", + label: 'Run test_arm_compute_lib test', + ) + sh ( + script: "${docker_run} ${ci_arm} ./tests/scripts/task_python_topi.sh", + label: 'Run TOPI tests', ) }) } @@ -4003,7 +3699,7 @@ def shard_run_frontend_GPU_3_of_6() { sh( script: """ set -eux - aws s3 cp --no-progress build/pytest-results s3://${s3_prefix}/pytest-results/frontend_GPU --recursive + aws s3 cp --no-progress build/pytest-results s3://${s3_prefix}/pytest-results/topi_aarch64 --recursive """, label: 'Upload JUnits to S3', ) @@ -4013,23 +3709,23 @@ def shard_run_frontend_GPU_3_of_6() { } } } else { - Utils.markStageSkippedForConditional('frontend: GPU 3 of 6') + Utils.markStageSkippedForConditional('topi: aarch64 1 of 2') } } -def shard_run_frontend_GPU_4_of_6() { +def shard_run_topi_aarch64_2_of_2() { if (!skip_ci && is_docs_only_build != 1) { - node('GPU') { - ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/frontend-python-gpu") { + node('ARM-SMALL') { + ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/ut-python-arm") { try { - docker_init(ci_gpu) + docker_init(ci_arm) init_git() timeout(time: max_time, unit: 'MINUTES') { withEnv([ - 'PLATFORM=gpu', - 'TEST_STEP_NAME=frontend: GPU', - 'TVM_NUM_SHARDS=6', - 'TVM_SHARD_INDEX=3', + 'PLATFORM=arm', + 'TEST_STEP_NAME=topi: aarch64', + 'TVM_NUM_SHARDS=2', + 'TVM_SHARD_INDEX=1', "SKIP_SLOW_TESTS=${skip_slow_tests}"], { sh( script: """ @@ -4054,22 +3750,26 @@ def shard_run_frontend_GPU_4_of_6() { done } - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/gpu/build/libtvm.so build/libtvm.so + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/libtvm.so build/libtvm.so md5sum build/libtvm.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/gpu/build/libvta_fsim.so build/libvta_fsim.so + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/libvta_fsim.so build/libvta_fsim.so md5sum build/libvta_fsim.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/gpu/build/libtvm_runtime.so build/libtvm_runtime.so + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/libtvm_runtime.so build/libtvm_runtime.so md5sum build/libtvm_runtime.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/gpu/build/config.cmake build/config.cmake + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/config.cmake build/config.cmake md5sum build/config.cmake """, label: 'Download artifacts from S3', ) - ci_setup(ci_gpu) + ci_setup(ci_arm) + sh ( + script: "${docker_run} ${ci_arm} ./tests/scripts/task_python_arm_compute_library.sh", + label: 'Run test_arm_compute_lib test', + ) sh ( - script: "${docker_run} ${ci_gpu} ./tests/scripts/task_python_frontend.sh", - label: 'Run Python frontend tests', + script: "${docker_run} ${ci_arm} ./tests/scripts/task_python_topi.sh", + label: 'Run TOPI tests', ) }) } @@ -4077,7 +3777,7 @@ def shard_run_frontend_GPU_4_of_6() { sh( script: """ set -eux - aws s3 cp --no-progress build/pytest-results s3://${s3_prefix}/pytest-results/frontend_GPU --recursive + aws s3 cp --no-progress build/pytest-results s3://${s3_prefix}/pytest-results/topi_aarch64 --recursive """, label: 'Upload JUnits to S3', ) @@ -4087,23 +3787,24 @@ def shard_run_frontend_GPU_4_of_6() { } } } else { - Utils.markStageSkippedForConditional('frontend: GPU 4 of 6') + Utils.markStageSkippedForConditional('topi: aarch64 2 of 2') } } -def shard_run_frontend_GPU_5_of_6() { + +def shard_run_frontend_aarch64_1_of_2() { if (!skip_ci && is_docs_only_build != 1) { - node('GPU') { - ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/frontend-python-gpu") { + node('ARM-SMALL') { + ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/frontend-python-arm") { try { - docker_init(ci_gpu) + docker_init(ci_arm) init_git() timeout(time: max_time, unit: 'MINUTES') { withEnv([ - 'PLATFORM=gpu', - 'TEST_STEP_NAME=frontend: GPU', - 'TVM_NUM_SHARDS=6', - 'TVM_SHARD_INDEX=4', + 'PLATFORM=arm', + 'TEST_STEP_NAME=frontend: aarch64', + 'TVM_NUM_SHARDS=2', + 'TVM_SHARD_INDEX=0', "SKIP_SLOW_TESTS=${skip_slow_tests}"], { sh( script: """ @@ -4128,21 +3829,21 @@ def shard_run_frontend_GPU_5_of_6() { done } - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/gpu/build/libtvm.so build/libtvm.so + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/libtvm.so build/libtvm.so md5sum build/libtvm.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/gpu/build/libvta_fsim.so build/libvta_fsim.so + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/libvta_fsim.so build/libvta_fsim.so md5sum build/libvta_fsim.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/gpu/build/libtvm_runtime.so build/libtvm_runtime.so + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/libtvm_runtime.so build/libtvm_runtime.so md5sum build/libtvm_runtime.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/gpu/build/config.cmake build/config.cmake + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/config.cmake build/config.cmake md5sum build/config.cmake """, label: 'Download artifacts from S3', ) - ci_setup(ci_gpu) + ci_setup(ci_arm) sh ( - script: "${docker_run} ${ci_gpu} ./tests/scripts/task_python_frontend.sh", + script: "${docker_run} ${ci_arm} ./tests/scripts/task_python_frontend_cpu.sh", label: 'Run Python frontend tests', ) }) @@ -4151,7 +3852,7 @@ def shard_run_frontend_GPU_5_of_6() { sh( script: """ set -eux - aws s3 cp --no-progress build/pytest-results s3://${s3_prefix}/pytest-results/frontend_GPU --recursive + aws s3 cp --no-progress build/pytest-results s3://${s3_prefix}/pytest-results/frontend_aarch64 --recursive """, label: 'Upload JUnits to S3', ) @@ -4161,23 +3862,23 @@ def shard_run_frontend_GPU_5_of_6() { } } } else { - Utils.markStageSkippedForConditional('frontend: GPU 5 of 6') + Utils.markStageSkippedForConditional('frontend: aarch64 1 of 2') } } -def shard_run_frontend_GPU_6_of_6() { +def shard_run_frontend_aarch64_2_of_2() { if (!skip_ci && is_docs_only_build != 1) { - node('GPU') { - ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/frontend-python-gpu") { + node('ARM-SMALL') { + ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/frontend-python-arm") { try { - docker_init(ci_gpu) + docker_init(ci_arm) init_git() timeout(time: max_time, unit: 'MINUTES') { withEnv([ - 'PLATFORM=gpu', - 'TEST_STEP_NAME=frontend: GPU', - 'TVM_NUM_SHARDS=6', - 'TVM_SHARD_INDEX=5', + 'PLATFORM=arm', + 'TEST_STEP_NAME=frontend: aarch64', + 'TVM_NUM_SHARDS=2', + 'TVM_SHARD_INDEX=1', "SKIP_SLOW_TESTS=${skip_slow_tests}"], { sh( script: """ @@ -4202,21 +3903,21 @@ def shard_run_frontend_GPU_6_of_6() { done } - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/gpu/build/libtvm.so build/libtvm.so + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/libtvm.so build/libtvm.so md5sum build/libtvm.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/gpu/build/libvta_fsim.so build/libvta_fsim.so + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/libvta_fsim.so build/libvta_fsim.so md5sum build/libvta_fsim.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/gpu/build/libtvm_runtime.so build/libtvm_runtime.so + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/libtvm_runtime.so build/libtvm_runtime.so md5sum build/libtvm_runtime.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/gpu/build/config.cmake build/config.cmake + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/config.cmake build/config.cmake md5sum build/config.cmake """, label: 'Download artifacts from S3', ) - ci_setup(ci_gpu) + ci_setup(ci_arm) sh ( - script: "${docker_run} ${ci_gpu} ./tests/scripts/task_python_frontend.sh", + script: "${docker_run} ${ci_arm} ./tests/scripts/task_python_frontend_cpu.sh", label: 'Run Python frontend tests', ) }) @@ -4225,7 +3926,7 @@ def shard_run_frontend_GPU_6_of_6() { sh( script: """ set -eux - aws s3 cp --no-progress build/pytest-results s3://${s3_prefix}/pytest-results/frontend_GPU --recursive + aws s3 cp --no-progress build/pytest-results s3://${s3_prefix}/pytest-results/frontend_aarch64 --recursive """, label: 'Upload JUnits to S3', ) @@ -4235,23 +3936,23 @@ def shard_run_frontend_GPU_6_of_6() { } } } else { - Utils.markStageSkippedForConditional('frontend: GPU 6 of 6') + Utils.markStageSkippedForConditional('frontend: aarch64 2 of 2') } } -def shard_run_topi_aarch64_1_of_2() { +def shard_run_test_Cortex_M_1_of_12() { if (!skip_ci && is_docs_only_build != 1) { - node('ARM-SMALL') { - ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/ut-python-arm") { + node('CPU-SMALL') { + ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/test-cortexm") { try { - docker_init(ci_arm) + docker_init(ci_cortexm) init_git() timeout(time: max_time, unit: 'MINUTES') { withEnv([ - 'PLATFORM=arm', - 'TEST_STEP_NAME=topi: aarch64', - 'TVM_NUM_SHARDS=2', + 'PLATFORM=cortexm', + 'TEST_STEP_NAME=test: Cortex-M', + 'TVM_NUM_SHARDS=12', 'TVM_SHARD_INDEX=0', "SKIP_SLOW_TESTS=${skip_slow_tests}"], { sh( @@ -4277,27 +3978,27 @@ def shard_run_topi_aarch64_1_of_2() { done } - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/libtvm.so build/libtvm.so + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/cortexm/build/libtvm.so build/libtvm.so md5sum build/libtvm.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/libvta_fsim.so build/libvta_fsim.so - md5sum build/libvta_fsim.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/libtvm_runtime.so build/libtvm_runtime.so + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/cortexm/build/libtvm_runtime.so build/libtvm_runtime.so md5sum build/libtvm_runtime.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/config.cmake build/config.cmake + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/cortexm/build/config.cmake build/config.cmake md5sum build/config.cmake + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/cortexm/build/microtvm_template_projects build/microtvm_template_projects --recursive """, label: 'Download artifacts from S3', ) - ci_setup(ci_arm) - cpp_unittest(ci_arm) + add_microtvm_permissions() + ci_setup(ci_cortexm) + cpp_unittest(ci_cortexm) sh ( - script: "${docker_run} ${ci_arm} ./tests/scripts/task_python_arm_compute_library.sh", - label: 'Run test_arm_compute_lib test', + script: "${docker_run} ${ci_cortexm} ./tests/scripts/task_demo_microtvm.sh", + label: 'Run microTVM demos', ) sh ( - script: "${docker_run} ${ci_arm} ./tests/scripts/task_python_topi.sh", - label: 'Run TOPI tests', + script: "${docker_run} ${ci_cortexm} ./tests/scripts/task_python_microtvm.sh", + label: 'Run microTVM tests', ) }) } @@ -4305,7 +4006,7 @@ def shard_run_topi_aarch64_1_of_2() { sh( script: """ set -eux - aws s3 cp --no-progress build/pytest-results s3://${s3_prefix}/pytest-results/topi_aarch64 --recursive + aws s3 cp --no-progress build/pytest-results s3://${s3_prefix}/pytest-results/test_Cortex_M --recursive """, label: 'Upload JUnits to S3', ) @@ -4315,22 +4016,22 @@ def shard_run_topi_aarch64_1_of_2() { } } } else { - Utils.markStageSkippedForConditional('topi: aarch64 1 of 2') + Utils.markStageSkippedForConditional('test: Cortex-M 1 of 12') } } -def shard_run_topi_aarch64_2_of_2() { +def shard_run_test_Cortex_M_2_of_12() { if (!skip_ci && is_docs_only_build != 1) { - node('ARM-SMALL') { - ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/ut-python-arm") { + node('CPU-SMALL') { + ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/test-cortexm") { try { - docker_init(ci_arm) + docker_init(ci_cortexm) init_git() timeout(time: max_time, unit: 'MINUTES') { withEnv([ - 'PLATFORM=arm', - 'TEST_STEP_NAME=topi: aarch64', - 'TVM_NUM_SHARDS=2', + 'PLATFORM=cortexm', + 'TEST_STEP_NAME=test: Cortex-M', + 'TVM_NUM_SHARDS=12', 'TVM_SHARD_INDEX=1', "SKIP_SLOW_TESTS=${skip_slow_tests}"], { sh( @@ -4356,26 +4057,22 @@ def shard_run_topi_aarch64_2_of_2() { done } - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/libtvm.so build/libtvm.so + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/cortexm/build/libtvm.so build/libtvm.so md5sum build/libtvm.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/libvta_fsim.so build/libvta_fsim.so - md5sum build/libvta_fsim.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/libtvm_runtime.so build/libtvm_runtime.so + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/cortexm/build/libtvm_runtime.so build/libtvm_runtime.so md5sum build/libtvm_runtime.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/config.cmake build/config.cmake + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/cortexm/build/config.cmake build/config.cmake md5sum build/config.cmake + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/cortexm/build/microtvm_template_projects build/microtvm_template_projects --recursive """, label: 'Download artifacts from S3', ) - ci_setup(ci_arm) - sh ( - script: "${docker_run} ${ci_arm} ./tests/scripts/task_python_arm_compute_library.sh", - label: 'Run test_arm_compute_lib test', - ) + add_microtvm_permissions() + ci_setup(ci_cortexm) sh ( - script: "${docker_run} ${ci_arm} ./tests/scripts/task_python_topi.sh", - label: 'Run TOPI tests', + script: "${docker_run} ${ci_cortexm} ./tests/scripts/task_python_microtvm.sh", + label: 'Run microTVM tests', ) }) } @@ -4383,7 +4080,7 @@ def shard_run_topi_aarch64_2_of_2() { sh( script: """ set -eux - aws s3 cp --no-progress build/pytest-results s3://${s3_prefix}/pytest-results/topi_aarch64 --recursive + aws s3 cp --no-progress build/pytest-results s3://${s3_prefix}/pytest-results/test_Cortex_M --recursive """, label: 'Upload JUnits to S3', ) @@ -4393,24 +4090,23 @@ def shard_run_topi_aarch64_2_of_2() { } } } else { - Utils.markStageSkippedForConditional('topi: aarch64 2 of 2') + Utils.markStageSkippedForConditional('test: Cortex-M 2 of 12') } } - -def shard_run_frontend_aarch64_1_of_2() { +def shard_run_test_Cortex_M_3_of_12() { if (!skip_ci && is_docs_only_build != 1) { - node('ARM-SMALL') { - ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/frontend-python-arm") { + node('CPU-SMALL') { + ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/test-cortexm") { try { - docker_init(ci_arm) + docker_init(ci_cortexm) init_git() timeout(time: max_time, unit: 'MINUTES') { withEnv([ - 'PLATFORM=arm', - 'TEST_STEP_NAME=frontend: aarch64', - 'TVM_NUM_SHARDS=2', - 'TVM_SHARD_INDEX=0', + 'PLATFORM=cortexm', + 'TEST_STEP_NAME=test: Cortex-M', + 'TVM_NUM_SHARDS=12', + 'TVM_SHARD_INDEX=2', "SKIP_SLOW_TESTS=${skip_slow_tests}"], { sh( script: """ @@ -4435,22 +4131,22 @@ def shard_run_frontend_aarch64_1_of_2() { done } - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/libtvm.so build/libtvm.so + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/cortexm/build/libtvm.so build/libtvm.so md5sum build/libtvm.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/libvta_fsim.so build/libvta_fsim.so - md5sum build/libvta_fsim.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/libtvm_runtime.so build/libtvm_runtime.so + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/cortexm/build/libtvm_runtime.so build/libtvm_runtime.so md5sum build/libtvm_runtime.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/config.cmake build/config.cmake + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/cortexm/build/config.cmake build/config.cmake md5sum build/config.cmake + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/cortexm/build/microtvm_template_projects build/microtvm_template_projects --recursive """, label: 'Download artifacts from S3', ) - ci_setup(ci_arm) + add_microtvm_permissions() + ci_setup(ci_cortexm) sh ( - script: "${docker_run} ${ci_arm} ./tests/scripts/task_python_frontend_cpu.sh", - label: 'Run Python frontend tests', + script: "${docker_run} ${ci_cortexm} ./tests/scripts/task_python_microtvm.sh", + label: 'Run microTVM tests', ) }) } @@ -4458,7 +4154,7 @@ def shard_run_frontend_aarch64_1_of_2() { sh( script: """ set -eux - aws s3 cp --no-progress build/pytest-results s3://${s3_prefix}/pytest-results/frontend_aarch64 --recursive + aws s3 cp --no-progress build/pytest-results s3://${s3_prefix}/pytest-results/test_Cortex_M --recursive """, label: 'Upload JUnits to S3', ) @@ -4468,23 +4164,23 @@ def shard_run_frontend_aarch64_1_of_2() { } } } else { - Utils.markStageSkippedForConditional('frontend: aarch64 1 of 2') + Utils.markStageSkippedForConditional('test: Cortex-M 3 of 12') } } -def shard_run_frontend_aarch64_2_of_2() { +def shard_run_test_Cortex_M_4_of_12() { if (!skip_ci && is_docs_only_build != 1) { - node('ARM-SMALL') { - ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/frontend-python-arm") { + node('CPU-SMALL') { + ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/test-cortexm") { try { - docker_init(ci_arm) + docker_init(ci_cortexm) init_git() timeout(time: max_time, unit: 'MINUTES') { withEnv([ - 'PLATFORM=arm', - 'TEST_STEP_NAME=frontend: aarch64', - 'TVM_NUM_SHARDS=2', - 'TVM_SHARD_INDEX=1', + 'PLATFORM=cortexm', + 'TEST_STEP_NAME=test: Cortex-M', + 'TVM_NUM_SHARDS=12', + 'TVM_SHARD_INDEX=3', "SKIP_SLOW_TESTS=${skip_slow_tests}"], { sh( script: """ @@ -4509,22 +4205,22 @@ def shard_run_frontend_aarch64_2_of_2() { done } - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/libtvm.so build/libtvm.so + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/cortexm/build/libtvm.so build/libtvm.so md5sum build/libtvm.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/libvta_fsim.so build/libvta_fsim.so - md5sum build/libvta_fsim.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/libtvm_runtime.so build/libtvm_runtime.so + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/cortexm/build/libtvm_runtime.so build/libtvm_runtime.so md5sum build/libtvm_runtime.so - retry 3 aws s3 cp --no-progress s3://${s3_prefix}/arm/build/config.cmake build/config.cmake + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/cortexm/build/config.cmake build/config.cmake md5sum build/config.cmake + retry 3 aws s3 cp --no-progress s3://${s3_prefix}/cortexm/build/microtvm_template_projects build/microtvm_template_projects --recursive """, label: 'Download artifacts from S3', ) - ci_setup(ci_arm) + add_microtvm_permissions() + ci_setup(ci_cortexm) sh ( - script: "${docker_run} ${ci_arm} ./tests/scripts/task_python_frontend_cpu.sh", - label: 'Run Python frontend tests', + script: "${docker_run} ${ci_cortexm} ./tests/scripts/task_python_microtvm.sh", + label: 'Run microTVM tests', ) }) } @@ -4532,7 +4228,7 @@ def shard_run_frontend_aarch64_2_of_2() { sh( script: """ set -eux - aws s3 cp --no-progress build/pytest-results s3://${s3_prefix}/pytest-results/frontend_aarch64 --recursive + aws s3 cp --no-progress build/pytest-results s3://${s3_prefix}/pytest-results/test_Cortex_M --recursive """, label: 'Upload JUnits to S3', ) @@ -4542,12 +4238,11 @@ def shard_run_frontend_aarch64_2_of_2() { } } } else { - Utils.markStageSkippedForConditional('frontend: aarch64 2 of 2') + Utils.markStageSkippedForConditional('test: Cortex-M 4 of 12') } } - -def shard_run_test_Cortex_M_1_of_8() { +def shard_run_test_Cortex_M_5_of_12() { if (!skip_ci && is_docs_only_build != 1) { node('CPU-SMALL') { ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/test-cortexm") { @@ -4558,8 +4253,8 @@ def shard_run_test_Cortex_M_1_of_8() { withEnv([ 'PLATFORM=cortexm', 'TEST_STEP_NAME=test: Cortex-M', - 'TVM_NUM_SHARDS=8', - 'TVM_SHARD_INDEX=0', + 'TVM_NUM_SHARDS=12', + 'TVM_SHARD_INDEX=4', "SKIP_SLOW_TESTS=${skip_slow_tests}"], { sh( script: """ @@ -4597,11 +4292,6 @@ def shard_run_test_Cortex_M_1_of_8() { add_microtvm_permissions() ci_setup(ci_cortexm) - cpp_unittest(ci_cortexm) - sh ( - script: "${docker_run} ${ci_cortexm} ./tests/scripts/task_demo_microtvm.sh", - label: 'Run microTVM demos', - ) sh ( script: "${docker_run} ${ci_cortexm} ./tests/scripts/task_python_microtvm.sh", label: 'Run microTVM tests', @@ -4622,11 +4312,11 @@ def shard_run_test_Cortex_M_1_of_8() { } } } else { - Utils.markStageSkippedForConditional('test: Cortex-M 1 of 8') + Utils.markStageSkippedForConditional('test: Cortex-M 5 of 12') } } -def shard_run_test_Cortex_M_2_of_8() { +def shard_run_test_Cortex_M_6_of_12() { if (!skip_ci && is_docs_only_build != 1) { node('CPU-SMALL') { ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/test-cortexm") { @@ -4637,8 +4327,8 @@ def shard_run_test_Cortex_M_2_of_8() { withEnv([ 'PLATFORM=cortexm', 'TEST_STEP_NAME=test: Cortex-M', - 'TVM_NUM_SHARDS=8', - 'TVM_SHARD_INDEX=1', + 'TVM_NUM_SHARDS=12', + 'TVM_SHARD_INDEX=5', "SKIP_SLOW_TESTS=${skip_slow_tests}"], { sh( script: """ @@ -4696,11 +4386,11 @@ def shard_run_test_Cortex_M_2_of_8() { } } } else { - Utils.markStageSkippedForConditional('test: Cortex-M 2 of 8') + Utils.markStageSkippedForConditional('test: Cortex-M 6 of 12') } } -def shard_run_test_Cortex_M_3_of_8() { +def shard_run_test_Cortex_M_7_of_12() { if (!skip_ci && is_docs_only_build != 1) { node('CPU-SMALL') { ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/test-cortexm") { @@ -4711,8 +4401,8 @@ def shard_run_test_Cortex_M_3_of_8() { withEnv([ 'PLATFORM=cortexm', 'TEST_STEP_NAME=test: Cortex-M', - 'TVM_NUM_SHARDS=8', - 'TVM_SHARD_INDEX=2', + 'TVM_NUM_SHARDS=12', + 'TVM_SHARD_INDEX=6', "SKIP_SLOW_TESTS=${skip_slow_tests}"], { sh( script: """ @@ -4770,11 +4460,11 @@ def shard_run_test_Cortex_M_3_of_8() { } } } else { - Utils.markStageSkippedForConditional('test: Cortex-M 3 of 8') + Utils.markStageSkippedForConditional('test: Cortex-M 7 of 12') } } -def shard_run_test_Cortex_M_4_of_8() { +def shard_run_test_Cortex_M_8_of_12() { if (!skip_ci && is_docs_only_build != 1) { node('CPU-SMALL') { ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/test-cortexm") { @@ -4785,8 +4475,8 @@ def shard_run_test_Cortex_M_4_of_8() { withEnv([ 'PLATFORM=cortexm', 'TEST_STEP_NAME=test: Cortex-M', - 'TVM_NUM_SHARDS=8', - 'TVM_SHARD_INDEX=3', + 'TVM_NUM_SHARDS=12', + 'TVM_SHARD_INDEX=7', "SKIP_SLOW_TESTS=${skip_slow_tests}"], { sh( script: """ @@ -4844,11 +4534,11 @@ def shard_run_test_Cortex_M_4_of_8() { } } } else { - Utils.markStageSkippedForConditional('test: Cortex-M 4 of 8') + Utils.markStageSkippedForConditional('test: Cortex-M 8 of 12') } } -def shard_run_test_Cortex_M_5_of_8() { +def shard_run_test_Cortex_M_9_of_12() { if (!skip_ci && is_docs_only_build != 1) { node('CPU-SMALL') { ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/test-cortexm") { @@ -4859,8 +4549,8 @@ def shard_run_test_Cortex_M_5_of_8() { withEnv([ 'PLATFORM=cortexm', 'TEST_STEP_NAME=test: Cortex-M', - 'TVM_NUM_SHARDS=8', - 'TVM_SHARD_INDEX=4', + 'TVM_NUM_SHARDS=12', + 'TVM_SHARD_INDEX=8', "SKIP_SLOW_TESTS=${skip_slow_tests}"], { sh( script: """ @@ -4918,11 +4608,11 @@ def shard_run_test_Cortex_M_5_of_8() { } } } else { - Utils.markStageSkippedForConditional('test: Cortex-M 5 of 8') + Utils.markStageSkippedForConditional('test: Cortex-M 9 of 12') } } -def shard_run_test_Cortex_M_6_of_8() { +def shard_run_test_Cortex_M_10_of_12() { if (!skip_ci && is_docs_only_build != 1) { node('CPU-SMALL') { ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/test-cortexm") { @@ -4933,8 +4623,8 @@ def shard_run_test_Cortex_M_6_of_8() { withEnv([ 'PLATFORM=cortexm', 'TEST_STEP_NAME=test: Cortex-M', - 'TVM_NUM_SHARDS=8', - 'TVM_SHARD_INDEX=5', + 'TVM_NUM_SHARDS=12', + 'TVM_SHARD_INDEX=9', "SKIP_SLOW_TESTS=${skip_slow_tests}"], { sh( script: """ @@ -4992,11 +4682,11 @@ def shard_run_test_Cortex_M_6_of_8() { } } } else { - Utils.markStageSkippedForConditional('test: Cortex-M 6 of 8') + Utils.markStageSkippedForConditional('test: Cortex-M 10 of 12') } } -def shard_run_test_Cortex_M_7_of_8() { +def shard_run_test_Cortex_M_11_of_12() { if (!skip_ci && is_docs_only_build != 1) { node('CPU-SMALL') { ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/test-cortexm") { @@ -5007,8 +4697,8 @@ def shard_run_test_Cortex_M_7_of_8() { withEnv([ 'PLATFORM=cortexm', 'TEST_STEP_NAME=test: Cortex-M', - 'TVM_NUM_SHARDS=8', - 'TVM_SHARD_INDEX=6', + 'TVM_NUM_SHARDS=12', + 'TVM_SHARD_INDEX=10', "SKIP_SLOW_TESTS=${skip_slow_tests}"], { sh( script: """ @@ -5066,11 +4756,11 @@ def shard_run_test_Cortex_M_7_of_8() { } } } else { - Utils.markStageSkippedForConditional('test: Cortex-M 7 of 8') + Utils.markStageSkippedForConditional('test: Cortex-M 11 of 12') } } -def shard_run_test_Cortex_M_8_of_8() { +def shard_run_test_Cortex_M_12_of_12() { if (!skip_ci && is_docs_only_build != 1) { node('CPU-SMALL') { ws("workspace/exec_${env.EXECUTOR_NUMBER}/tvm/test-cortexm") { @@ -5081,8 +4771,8 @@ def shard_run_test_Cortex_M_8_of_8() { withEnv([ 'PLATFORM=cortexm', 'TEST_STEP_NAME=test: Cortex-M', - 'TVM_NUM_SHARDS=8', - 'TVM_SHARD_INDEX=7', + 'TVM_NUM_SHARDS=12', + 'TVM_SHARD_INDEX=11', "SKIP_SLOW_TESTS=${skip_slow_tests}"], { sh( script: """ @@ -5140,7 +4830,7 @@ def shard_run_test_Cortex_M_8_of_8() { } } } else { - Utils.markStageSkippedForConditional('test: Cortex-M 8 of 8') + Utils.markStageSkippedForConditional('test: Cortex-M 12 of 12') } } @@ -5300,71 +4990,50 @@ stage('Test') { 'unittest: GPU 3 of 3': { shard_run_unittest_GPU_3_of_3() }, - 'integration: CPU 1 of 10': { - shard_run_integration_CPU_1_of_10() - }, - 'integration: CPU 2 of 10': { - shard_run_integration_CPU_2_of_10() - }, - 'integration: CPU 3 of 10': { - shard_run_integration_CPU_3_of_10() - }, - 'integration: CPU 4 of 10': { - shard_run_integration_CPU_4_of_10() - }, - 'integration: CPU 5 of 10': { - shard_run_integration_CPU_5_of_10() - }, - 'integration: CPU 6 of 10': { - shard_run_integration_CPU_6_of_10() + 'integration: CPU 1 of 4': { + shard_run_integration_CPU_1_of_4() }, - 'integration: CPU 7 of 10': { - shard_run_integration_CPU_7_of_10() + 'integration: CPU 2 of 4': { + shard_run_integration_CPU_2_of_4() }, - 'integration: CPU 8 of 10': { - shard_run_integration_CPU_8_of_10() + 'integration: CPU 3 of 4': { + shard_run_integration_CPU_3_of_4() }, - 'integration: CPU 9 of 10': { - shard_run_integration_CPU_9_of_10() + 'integration: CPU 4 of 4': { + shard_run_integration_CPU_4_of_4() }, - 'integration: CPU 10 of 10': { - shard_run_integration_CPU_10_of_10() + 'python: i386 1 of 3': { + shard_run_python_i386_1_of_3() }, - 'python: i386 1 of 5': { - shard_run_python_i386_1_of_5() + 'python: i386 2 of 3': { + shard_run_python_i386_2_of_3() }, - 'python: i386 2 of 5': { - shard_run_python_i386_2_of_5() + 'python: i386 3 of 3': { + shard_run_python_i386_3_of_3() }, - 'python: i386 3 of 5': { - shard_run_python_i386_3_of_5() + 'test: Hexagon 1 of 8': { + shard_run_test_Hexagon_1_of_8() }, - 'python: i386 4 of 5': { - shard_run_python_i386_4_of_5() + 'test: Hexagon 2 of 8': { + shard_run_test_Hexagon_2_of_8() }, - 'python: i386 5 of 5': { - shard_run_python_i386_5_of_5() + 'test: Hexagon 3 of 8': { + shard_run_test_Hexagon_3_of_8() }, - 'test: Hexagon 1 of 7': { - shard_run_test_Hexagon_1_of_7() + 'test: Hexagon 4 of 8': { + shard_run_test_Hexagon_4_of_8() }, - 'test: Hexagon 2 of 7': { - shard_run_test_Hexagon_2_of_7() + 'test: Hexagon 5 of 8': { + shard_run_test_Hexagon_5_of_8() }, - 'test: Hexagon 3 of 7': { - shard_run_test_Hexagon_3_of_7() + 'test: Hexagon 6 of 8': { + shard_run_test_Hexagon_6_of_8() }, - 'test: Hexagon 4 of 7': { - shard_run_test_Hexagon_4_of_7() + 'test: Hexagon 7 of 8': { + shard_run_test_Hexagon_7_of_8() }, - 'test: Hexagon 5 of 7': { - shard_run_test_Hexagon_5_of_7() - }, - 'test: Hexagon 6 of 7': { - shard_run_test_Hexagon_6_of_7() - }, - 'test: Hexagon 7 of 7': { - shard_run_test_Hexagon_7_of_7() + 'test: Hexagon 8 of 8': { + shard_run_test_Hexagon_8_of_8() }, 'integration: aarch64 1 of 4': { shard_run_integration_aarch64_1_of_4() @@ -5378,17 +5047,14 @@ stage('Test') { 'integration: aarch64 4 of 4': { shard_run_integration_aarch64_4_of_4() }, - 'topi: GPU 1 of 4': { - shard_run_topi_GPU_1_of_4() + 'topi: GPU 1 of 3': { + shard_run_topi_GPU_1_of_3() }, - 'topi: GPU 2 of 4': { - shard_run_topi_GPU_2_of_4() + 'topi: GPU 2 of 3': { + shard_run_topi_GPU_2_of_3() }, - 'topi: GPU 3 of 4': { - shard_run_topi_GPU_3_of_4() - }, - 'topi: GPU 4 of 4': { - shard_run_topi_GPU_4_of_4() + 'topi: GPU 3 of 3': { + shard_run_topi_GPU_3_of_3() }, 'frontend: GPU 1 of 6': { shard_run_frontend_GPU_1_of_6() @@ -5420,29 +5086,41 @@ stage('Test') { 'frontend: aarch64 2 of 2': { shard_run_frontend_aarch64_2_of_2() }, - 'test: Cortex-M 1 of 8': { - shard_run_test_Cortex_M_1_of_8() + 'test: Cortex-M 1 of 12': { + shard_run_test_Cortex_M_1_of_12() + }, + 'test: Cortex-M 2 of 12': { + shard_run_test_Cortex_M_2_of_12() }, - 'test: Cortex-M 2 of 8': { - shard_run_test_Cortex_M_2_of_8() + 'test: Cortex-M 3 of 12': { + shard_run_test_Cortex_M_3_of_12() }, - 'test: Cortex-M 3 of 8': { - shard_run_test_Cortex_M_3_of_8() + 'test: Cortex-M 4 of 12': { + shard_run_test_Cortex_M_4_of_12() }, - 'test: Cortex-M 4 of 8': { - shard_run_test_Cortex_M_4_of_8() + 'test: Cortex-M 5 of 12': { + shard_run_test_Cortex_M_5_of_12() }, - 'test: Cortex-M 5 of 8': { - shard_run_test_Cortex_M_5_of_8() + 'test: Cortex-M 6 of 12': { + shard_run_test_Cortex_M_6_of_12() }, - 'test: Cortex-M 6 of 8': { - shard_run_test_Cortex_M_6_of_8() + 'test: Cortex-M 7 of 12': { + shard_run_test_Cortex_M_7_of_12() }, - 'test: Cortex-M 7 of 8': { - shard_run_test_Cortex_M_7_of_8() + 'test: Cortex-M 8 of 12': { + shard_run_test_Cortex_M_8_of_12() }, - 'test: Cortex-M 8 of 8': { - shard_run_test_Cortex_M_8_of_8() + 'test: Cortex-M 9 of 12': { + shard_run_test_Cortex_M_9_of_12() + }, + 'test: Cortex-M 10 of 12': { + shard_run_test_Cortex_M_10_of_12() + }, + 'test: Cortex-M 11 of 12': { + shard_run_test_Cortex_M_11_of_12() + }, + 'test: Cortex-M 12 of 12': { + shard_run_test_Cortex_M_12_of_12() }, 'test: RISC-V 1 of 1': { shard_run_test_RISC_V_1_of_1() @@ -5684,7 +5362,8 @@ stage('Test') { }, ) } -}/* +} +/* stage('Build packages') { parallel 'conda CPU': { node('CPU') { diff --git a/ci/jenkins/Test.groovy.j2 b/ci/jenkins/Test.groovy.j2 index 9e8c9ac28b01..4ed149da9be0 100644 --- a/ci/jenkins/Test.groovy.j2 +++ b/ci/jenkins/Test.groovy.j2 @@ -42,7 +42,7 @@ {% call(shard_index, num_shards) m.sharded_test_step( name="integration: CPU", node="CPU-SMALL", - num_shards=10, + num_shards=4, ws="tvm/integration-python-cpu", platform="cpu", docker_image="ci_cpu", @@ -58,7 +58,7 @@ {% call(shard_index, num_shards) m.sharded_test_step( name="python: i386", node="CPU-SMALL", - num_shards=5, + num_shards=3, ws="tvm/integration-python-i386", platform="i386", docker_image="ci_i386", @@ -85,7 +85,7 @@ platform="hexagon", docker_image="ci_hexagon", test_method_names=test_method_names, - num_shards=7, + num_shards=8, ) %} {{ m.download_artifacts(tag='hexagon', filenames=tvm_lib, folders=hexagon_api) }} add_hexagon_permissions() @@ -118,7 +118,7 @@ {% call(shard_index, num_shards) m.sharded_test_step( name="topi: GPU", node="GPU", - num_shards=4, + num_shards=3, ws="tvm/topi-python-gpu", platform="gpu", docker_image="ci_gpu", @@ -192,7 +192,7 @@ ws="tvm/test-cortexm", platform="cortexm", docker_image="ci_cortexm", - num_shards=8, + num_shards=12, test_method_names=test_method_names, ) %} {{ m.download_artifacts(tag='cortexm', filenames=tvm_lib, folders=microtvm_template_projects) }} @@ -316,4 +316,4 @@ stage('Test') { }, ) } -} \ No newline at end of file +} diff --git a/ci/jenkins/generate.py b/ci/jenkins/generate.py index 3ccdedc6d924..07bf4b5a8dad 100644 --- a/ci/jenkins/generate.py +++ b/ci/jenkins/generate.py @@ -31,6 +31,12 @@ JENKINSFILE = REPO_ROOT / "Jenkinsfile" +class Change: + IMAGES_ONLY = object() + NONE = object() + FULL = object() + + data = { "images": [ { @@ -83,7 +89,7 @@ def lines_without_generated_tag(content): ] -def is_changed_images_only(lines: List[str]) -> bool: +def change_type(lines: List[str]) -> Change: """ Return True if 'line' only edits an image tag or if 'line' is not a changed line in a diff @@ -101,7 +107,7 @@ def is_changed_images_only(lines: List[str]) -> bool: if len(diff_lines) == 0: # no changes made - return True + return Change.NONE for line in diff_lines: is_add = line.startswith("+") @@ -113,7 +119,7 @@ def is_changed_images_only(lines: List[str]) -> bool: ) if match is None: # matched a non-image line, quit early - return False + return Change.FULL if is_add: added_images.append(match.groups()[0]) @@ -121,7 +127,10 @@ def is_changed_images_only(lines: List[str]) -> bool: removed_images.append(match.groups()[0]) # make sure that the added image lines match the removed image lines - return len(added_images) > 0 and added_images == removed_images + if len(added_images) > 0 and added_images == removed_images: + return Change.IMAGES_ONLY + else: + return Change.FULL if __name__ == "__main__": @@ -156,9 +165,11 @@ def is_changed_images_only(lines: List[str]) -> bool: lines_without_generated_tag(content), lines_without_generated_tag(new_content) ) ] - if not args.force and is_changed_images_only(diff): + change = change_type(diff) + if not args.force and change == Change.IMAGES_ONLY or change == Change.NONE: + if change != Change.NONE: + print("Detected only Docker-image name changes, skipping timestamp update") new_content = new_content.replace(data["generated_time"], original_timestamp) - print("Detected only Docker-image name changed, skipping timestamp update") diff = "".join(diff) diff --git a/python/tvm/contrib/hexagon/pytest_plugin.py b/python/tvm/contrib/hexagon/pytest_plugin.py index 65475d67f555..0b9f65540c34 100644 --- a/python/tvm/contrib/hexagon/pytest_plugin.py +++ b/python/tvm/contrib/hexagon/pytest_plugin.py @@ -210,7 +210,8 @@ def pytest_configure(config): def pytest_configure_node(node): # the master for each node fills slaveinput dictionary # which pytest-xdist will transfer to the subprocess - node.workerinput["device_adr"] = node.config.iplist.pop() + if node.config.iplist is not None: + node.workerinput["device_adr"] = node.config.iplist.pop() @pytest.fixture diff --git a/tests/scripts/setup-pytest-env.sh b/tests/scripts/setup-pytest-env.sh index 895979293122..305f626d666c 100755 --- a/tests/scripts/setup-pytest-env.sh +++ b/tests/scripts/setup-pytest-env.sh @@ -47,6 +47,7 @@ function cleanup() { trap cleanup 0 function run_pytest() { + set -e local ffi_type="$1" shift local test_suite_name="$1" @@ -74,17 +75,14 @@ function run_pytest() { suite_name="${test_suite_name}-${current_shard}-${ffi_type}" - # Some test environments don't play well with parallelism - DEFAULT_PARALLELISM=2 - if [[ "${TEST_STEP_NAME:-default}" == "frontend: GPU"* ]] || [[ "${TEST_STEP_NAME:-default}" == "test: Hexagon"* ]]; then - DEFAULT_PARALLELISM=1 - fi + DEFAULT_PARALLELISM=1 - if [ ! "${extra_args[@]}" == *" -n"* ] && [! "${extra_args[@]}" == *" -dist"* ]; then + if [[ ! "${extra_args[*]}" == *" -n"* ]] && [[ ! "${extra_args[*]}" == *" -dist"* ]]; then extra_args+=("-n=$DEFAULT_PARALLELISM") fi exit_code=0 + set +e TVM_FFI=${ffi_type} python3 -m pytest \ -o "junit_suite_name=${suite_name}" \ "--junit-xml=${TVM_PYTEST_RESULT_DIR}/${suite_name}.xml" \