diff --git a/eng/pipelines/common/templates/runtimes/run-test-job.yml b/eng/pipelines/common/templates/runtimes/run-test-job.yml index 706c8f1200495e..3f9374fcd5ce71 100644 --- a/eng/pipelines/common/templates/runtimes/run-test-job.yml +++ b/eng/pipelines/common/templates/runtimes/run-test-job.yml @@ -6,6 +6,8 @@ parameters: hostedOs: '' container: '' testGroup: '' + # ISA stress scenarios supplied by jit-outerloop-pipeline.yml. + jitIsaStressScenarios: [] crossBuild: false readyToRun: false hotColdSplitting: false @@ -383,38 +385,8 @@ jobs: scenarios: - jitstress_random_1 - jitstress_random_2 - ${{ if in(parameters.testGroup, 'jitstress-isas-arm') }}: - scenarios: - - jitstress_isas_nohwintrinsic - ${{ if in(parameters.testGroup, 'jitstress-isas-x86') }}: - scenarios: - - jitstress_isas_nohwintrinsic - - jitstress_isas_x86_evex - - jitstress_isas_x86_noavx - - jitstress_isas_x86_noavx2 - - jitstress_isas_x86_noavx512 - - jitstress_isas_x86_vectort128 - - jitstress_isas_x86_vectort512 - - jitstress_isas_x86_noavx512_vectort128 - - jitstress_isas_1_x86_evex - - jitstress_isas_1_x86_noavx - - jitstress_isas_1_x86_noavx2 - - jitstress_isas_1_x86_noavx512 - - jitstress_isas_1_x86_vectort128 - - jitstress_isas_1_x86_vectort512 - - jitstress_isas_1_x86_noavx512_vectort128 - - jitstress_isas_2_x86_evex - - jitstress_isas_2_x86_noavx - - jitstress_isas_2_x86_noavx2 - - jitstress_isas_2_x86_noavx512 - - jitstress_isas_2_x86_vectort128 - - jitstress_isas_2_x86_vectort512 - - jitstress_isas_2_x86_noavx512_vectort128 - ${{ if in(parameters.testGroup, 'jitstress-isas-avx512') }}: - scenarios: - - jitstress_isas_x86_evex - - jitstress_isas_x86_noavx512 - - jitstressregs0x2000 + ${{ if in(parameters.testGroup, 'jitstress-isas-arm', 'jitstress-isas-avx512', 'jitstress-isas-x86') }}: + scenarios: ${{ parameters.jitIsaStressScenarios }} ${{ if in(parameters.testGroup, 'jitstressregs-x86') }}: scenarios: - jitstressregs1_x86_noavx diff --git a/eng/pipelines/coreclr/templates/jit-isas-libraries.yml b/eng/pipelines/coreclr/templates/jit-isas-libraries.yml new file mode 100644 index 00000000000000..8b034014b2c10d --- /dev/null +++ b/eng/pipelines/coreclr/templates/jit-isas-libraries.yml @@ -0,0 +1,36 @@ +parameters: + - name: platforms + type: object + - name: scenarios + type: object + +stages: +- stage: Libraries + displayName: Libraries Vector ISA Stress Tests + dependsOn: [] + jobs: + - template: /eng/common/core-templates/job/helix-job-monitor.yml + parameters: + helixAccessToken: $(HelixApiAccessToken) + timeoutInMinutes: 540 + allowNoHelixJobs: true + + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: Release + helixQueueGroup: libraries + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + platforms: ${{ parameters.platforms }} + jobParameters: + nameSuffix: Libraries_VectorTests + # Default timeout is 150 minutes (2.5 hours), which is not enough for stress. + timeoutInMinutes: 360 + buildArgs: -s clr+libs+libs.tests -rc Checked -c $(_BuildConfig) /p:ArchiveTests=true /p:RunVectorTestsOnly=true + postBuildSteps: + - template: /eng/pipelines/libraries/helix.yml + parameters: + creator: dotnet-bot + extraHelixArguments: /maxcpucount:10 + useHelixMonitor: true + scenarios: ${{ parameters.scenarios }} diff --git a/eng/pipelines/coreclr/templates/jit-outerloop-pipeline.yml b/eng/pipelines/coreclr/templates/jit-outerloop-pipeline.yml index 41bea22cbb7f11..70874d47e0ab85 100644 --- a/eng/pipelines/coreclr/templates/jit-outerloop-pipeline.yml +++ b/eng/pipelines/coreclr/templates/jit-outerloop-pipeline.yml @@ -4,6 +4,38 @@ parameters: - name: testGroup type: string default: outerloop + - name: isaScenarios + type: object + default: + jitstress-isas-arm: + - jitstress_isas_nohwintrinsic + jitstress-isas-avx512: + - jitstress_isas_x86_evex + - jitstress_isas_x86_noavx512 + - jitstressregs0x2000 + jitstress-isas-x86: + - jitstress_isas_nohwintrinsic + - jitstress_isas_x86_evex + - jitstress_isas_x86_noavx + - jitstress_isas_x86_noavx2 + - jitstress_isas_x86_noavx512 + - jitstress_isas_x86_vectort128 + - jitstress_isas_x86_vectort512 + - jitstress_isas_x86_noavx512_vectort128 + - jitstress_isas_1_x86_evex + - jitstress_isas_1_x86_noavx + - jitstress_isas_1_x86_noavx2 + - jitstress_isas_1_x86_noavx512 + - jitstress_isas_1_x86_vectort128 + - jitstress_isas_1_x86_vectort512 + - jitstress_isas_1_x86_noavx512_vectort128 + - jitstress_isas_2_x86_evex + - jitstress_isas_2_x86_noavx + - jitstress_isas_2_x86_noavx2 + - jitstress_isas_2_x86_noavx512 + - jitstress_isas_2_x86_vectort128 + - jitstress_isas_2_x86_vectort512 + - jitstress_isas_2_x86_noavx512_vectort128 - name: stages type: stageList default: [] @@ -56,7 +88,14 @@ extends: helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml jobParameters: testGroup: ${{ parameters.testGroup }} + ${{ if in(parameters.testGroup, 'jitstress-isas-arm', 'jitstress-isas-avx512', 'jitstress-isas-x86') }}: + jitIsaStressScenarios: ${{ parameters.isaScenarios[parameters.testGroup] }} liveLibrariesBuildConfig: Release unifiedArtifactsName: BuildArtifacts_$(osGroup)$(osSubgroup)_$(archType)_$(_BuildConfig) + - ${{ if in(parameters.testGroup, 'jitstress-isas-arm', 'jitstress-isas-avx512', 'jitstress-isas-x86') }}: + - template: /eng/pipelines/coreclr/templates/jit-isas-libraries.yml + parameters: + platforms: ${{ parameters.platforms }} + scenarios: ${{ parameters.isaScenarios[parameters.testGroup] }} - ${{ each stage in parameters.stages }}: - ${{ stage }} diff --git a/src/libraries/tests.proj b/src/libraries/tests.proj index 9f48d7b47b225b..d3649497414602 100644 --- a/src/libraries/tests.proj +++ b/src/libraries/tests.proj @@ -662,6 +662,15 @@ + + + + + + + + + @@ -676,7 +685,12 @@ + +