Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[PERF] Move performance testing logic into python scripts #101143

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
3f69786
Initial debugging work for python pipeline
caaavik-msft Mar 7, 2024
f85b6ca
Use custom performance branch
caaavik-msft Mar 7, 2024
3257595
Remove template reference
caaavik-msft Mar 7, 2024
49cd312
Move resources to perf.yml
caaavik-msft Mar 7, 2024
0382d2e
Ensure runtime repo is checked out to SourcesDirectory
caaavik-msft Mar 7, 2024
5455711
Try fix python run
caaavik-msft Mar 7, 2024
fe799f4
Set python in perf-job.yml
caaavik-msft Mar 8, 2024
29a8f8d
More fixes
caaavik-msft Mar 8, 2024
96b50f6
More fixes
caaavik-msft Mar 9, 2024
b022dc6
Set most params in perf-job.yml
caaavik-msft Mar 9, 2024
b56414d
Fix variable declaration
caaavik-msft Mar 9, 2024
2f8249f
Fix some bugs in setup parameters
caaavik-msft Mar 9, 2024
e82afeb
Ensure Helix Access Token is passed in
caaavik-msft Mar 9, 2024
68c06ae
Merge branch 'main' into caaavik/python-performance-pipeline
caaavik-msft Apr 12, 2024
6c2ca48
Fix osGroup arg parsing
caaavik-msft Apr 16, 2024
928dacd
Fix ios args and use local commit time
caaavik-msft Apr 16, 2024
8f00ce4
Fix physical promotion yaml
caaavik-msft Apr 16, 2024
b4e95c3
Fix project file path
caaavik-msft Apr 16, 2024
9e04d2d
Ensure internal param is passed
caaavik-msft Apr 16, 2024
15a960d
Ensure project file is passed in
caaavik-msft Apr 16, 2024
4f93b4b
Try dynamically load performance repo
caaavik-msft Apr 16, 2024
42d2353
Try use condition inside repositories definition
caaavik-msft Apr 16, 2024
e11fba7
Try put condition on repositories object
caaavik-msft Apr 16, 2024
330e017
Try use variables to conditionally create repository
caaavik-msft Apr 16, 2024
dd9cd75
Fix conditional variable definition
caaavik-msft Apr 16, 2024
312be21
Just use ADO for performance repo
caaavik-msft Apr 16, 2024
5378832
Use updated repository name for scenarios jobs
caaavik-msft Apr 16, 2024
e590855
Merge branch 'main' into caaavik/python-performance-pipeline
caaavik-msft Jul 20, 2024
8edfa50
Use HELIX_WORKITEM_ROOT for performance dir
caaavik-msft Jul 22, 2024
2900d92
Fix paths for android APKs
caaavik-msft Jul 22, 2024
2f4ebd9
Remove accidental submodule
caaavik-msft Jul 23, 2024
177525c
Merge branch 'main' into caaavik/python-performance-pipeline
caaavik-msft Aug 2, 2024
e52c942
Merge branch 'main' into caaavik/python-performance-pipeline
caaavik-msft Sep 6, 2024
7f6b6e3
Use new project file location for arm64 jit job
caaavik-msft Sep 6, 2024
d39983a
Move archive of work item dir to python
caaavik-msft Sep 7, 2024
391bac0
Use github for performance repo checkout on public jobs
caaavik-msft Sep 9, 2024
75693f9
Another attempt at conditional repository definition
caaavik-msft Sep 9, 2024
7378e64
Another attempt at conditional repository
caaavik-msft Sep 9, 2024
183180a
Use multi repo checkout only for internal runs
caaavik-msft Sep 9, 2024
97ac393
Ensure ios scenarios and wasm jobs are working
caaavik-msft Sep 9, 2024
02a552f
Only copy files from dotnet-runtime directory on internal jobs
caaavik-msft Sep 10, 2024
f71c6f0
Use branch instead of ref for performance repository clone
caaavik-msft Sep 11, 2024
4ee62b4
Clone performance repo to correct folder in public jobs
caaavik-msft Sep 11, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 0 additions & 16 deletions eng/pipelines/common/perf-variables.yml

This file was deleted.

4 changes: 1 addition & 3 deletions eng/pipelines/common/variables.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,4 @@ variables:
ne(variables['isExtraPlatformsBuild'], true),
eq(variables['isRollingBuild'], true))) ]

- template: /eng/pipelines/common/perf-variables.yml

- template: /eng/common/${{ parameters.templatePath }}/variables/pool-providers.yml
- template: /eng/common/${{ parameters.templatePath }}/variables/pool-providers.yml
44 changes: 31 additions & 13 deletions eng/pipelines/coreclr/perf-non-wasm-jobs.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
parameters:
perfBranch: 'main'

jobs:

- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'Schedule')) }}:
Expand Down Expand Up @@ -100,6 +103,7 @@ jobs:
- template: /eng/pipelines/coreclr/templates/build-and-run-perf-ios-scenarios.yml
parameters:
hybridGlobalization: True
perfBranch: ${{ parameters.perfBranch }}

# run android scenarios
- template: /eng/pipelines/common/platform-matrix.yml
Expand All @@ -112,10 +116,11 @@ jobs:
jobParameters:
testGroup: perf
runtimeType: AndroidMono
projectFile: android_scenarios.proj
projectFile: $(Build.SourcesDirectory)/eng/testing/performance/android_scenarios.proj
runKind: android_scenarios
runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml
logicalmachine: 'perfpixel4a'
perfBranch: ${{ parameters.perfBranch }}

# run mono microbenchmarks perf job
- template: /eng/pipelines/common/platform-matrix.yml
Expand All @@ -129,10 +134,11 @@ jobs:
testGroup: perf
liveLibrariesBuildConfig: Release
runtimeType: mono
projectFile: microbenchmarks.proj
projectFile: $(Agent.BuildDirectory)/performance/eng/performance/helix.proj
runKind: micro_mono
runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml
logicalmachine: 'perftiger'
perfBranch: ${{ parameters.perfBranch }}

# run mono interpreter perf job
- template: /eng/pipelines/common/platform-matrix.yml
Expand All @@ -147,10 +153,11 @@ jobs:
liveLibrariesBuildConfig: Release
runtimeType: mono
codeGenType: 'Interpreter'
projectFile: microbenchmarks.proj
projectFile: $(Agent.BuildDirectory)/performance/eng/performance/helix.proj
runKind: micro_mono
runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml
logicalmachine: 'perftiger'
perfBranch: ${{ parameters.perfBranch }}

# run mono aot microbenchmarks perf job
- template: /eng/pipelines/common/platform-matrix.yml
Expand All @@ -165,10 +172,11 @@ jobs:
liveLibrariesBuildConfig: Release
runtimeType: mono
codeGenType: 'AOT'
projectFile: microbenchmarks.proj
projectFile: $(Agent.BuildDirectory)/performance/eng/performance/helix.proj
runKind: micro_mono
runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml
logicalmachine: 'perftiger'
perfBranch: ${{ parameters.perfBranch }}

# run coreclr perftiger microbenchmarks perf job
- template: /eng/pipelines/common/platform-matrix.yml
Expand All @@ -184,10 +192,11 @@ jobs:
jobParameters:
testGroup: perf
liveLibrariesBuildConfig: Release
projectFile: microbenchmarks.proj
projectFile: $(Agent.BuildDirectory)/performance/eng/performance/helix.proj
runKind: micro
runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml
logicalmachine: 'perftiger'
perfBranch: ${{ parameters.perfBranch }}

# run coreclr perftiger microbenchmarks no dynamic pgo perf jobs
- template: /eng/pipelines/common/platform-matrix.yml
Expand All @@ -200,11 +209,12 @@ jobs:
jobParameters:
testGroup: perf
liveLibrariesBuildConfig: Release
projectFile: microbenchmarks.proj
projectFile: $(Agent.BuildDirectory)/performance/eng/performance/helix.proj
runKind: micro
runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml
logicalmachine: 'perftiger'
pgoRunType: -NoDynamicPGO
perfBranch: ${{ parameters.perfBranch }}

- template: /eng/pipelines/common/platform-matrix.yml
parameters:
Expand All @@ -216,11 +226,12 @@ jobs:
jobParameters:
testGroup: perf
liveLibrariesBuildConfig: Release
projectFile: microbenchmarks.proj
projectFile: $(Agent.BuildDirectory)/performance/eng/performance/helix.proj
runKind: micro
runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml
logicalmachine: 'perftiger'
pgoRunType: --nodynamicpgo
perfBranch: ${{ parameters.perfBranch }}

# run coreclr perftiger microbenchmarks no R2R perf jobs
- template: /eng/pipelines/common/platform-matrix.yml
Expand All @@ -233,11 +244,12 @@ jobs:
jobParameters:
testGroup: perf
liveLibrariesBuildConfig: Release
projectFile: microbenchmarks.proj
projectFile: $(Agent.BuildDirectory)/performance/eng/performance/helix.proj
runKind: micro
runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml
logicalmachine: 'perftiger'
r2rRunType: -NoR2R
perfBranch: ${{ parameters.perfBranch }}

- template: /eng/pipelines/common/platform-matrix.yml
parameters:
Expand All @@ -249,11 +261,12 @@ jobs:
jobParameters:
testGroup: perf
liveLibrariesBuildConfig: Release
projectFile: microbenchmarks.proj
projectFile: $(Agent.BuildDirectory)/performance/eng/performance/helix.proj
runKind: micro
runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml
logicalmachine: 'perftiger'
r2rRunType: --nor2r
perfBranch: ${{ parameters.perfBranch }}

# run coreclr perfowl microbenchmarks perf job
- template: /eng/pipelines/common/platform-matrix.yml
Expand All @@ -267,10 +280,11 @@ jobs:
jobParameters:
testGroup: perf
liveLibrariesBuildConfig: Release
projectFile: microbenchmarks.proj
projectFile: $(Agent.BuildDirectory)/performance/eng/performance/helix.proj
runKind: micro
runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml
logicalmachine: 'perfowl'
perfBranch: ${{ parameters.perfBranch }}

# run coreclr perfviper microbenchmarks perf job
- template: /eng/pipelines/common/platform-matrix.yml
Expand All @@ -284,10 +298,11 @@ jobs:
jobParameters:
testGroup: perf
liveLibrariesBuildConfig: Release
projectFile: microbenchmarks.proj
projectFile: $(Agent.BuildDirectory)/performance/eng/performance/helix.proj
runKind: micro
runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml
logicalmachine: 'perfviper'
perfBranch: ${{ parameters.perfBranch }}

# run coreclr perfviper microbenchmarks perf jitoptrepeat jobs
- template: /eng/pipelines/common/platform-matrix.yml
Expand All @@ -301,11 +316,12 @@ jobs:
jobParameters:
testGroup: perf
liveLibrariesBuildConfig: Release
projectFile: microbenchmarks.proj
projectFile: $(Agent.BuildDirectory)/performance/eng/performance/helix.proj
runKind: micro
runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml
logicalmachine: 'perfviper'
experimentName: 'jitoptrepeat'
perfBranch: ${{ parameters.perfBranch }}

# run coreclr crossgen perf job
- template: /eng/pipelines/common/platform-matrix.yml
Expand All @@ -319,10 +335,11 @@ jobs:
jobParameters:
testGroup: perf
liveLibrariesBuildConfig: Release
projectFile: crossgen_perf.proj
projectFile: $(Build.SourcesDirectory)/eng/testing/performance/crossgen_perf.proj
runKind: crossgen_scenarios
runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml
logicalmachine: 'perftiger_crossgen'
perfBranch: ${{ parameters.perfBranch }}

# build mono runtime packs
- template: /eng/pipelines/common/platform-matrix.yml
Expand Down Expand Up @@ -368,3 +385,4 @@ jobs:
archiveExtension: '.tar.gz'
archiveType: tar
tarCompression: gz
perfBranch: ${{ parameters.perfBranch }}
30 changes: 15 additions & 15 deletions eng/pipelines/coreclr/perf-wasm-jobs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ parameters:
onlySanityCheck: false
downloadSpecificBuild: null # { buildId, pipeline, branchName, project }
collectHelixLogsScript: ''
perfForkToUse: {} # url, branch
perfBranch: 'main'

jobs:

Expand Down Expand Up @@ -43,14 +43,14 @@ jobs:
liveLibrariesBuildConfig: Release
runtimeType: wasm
codeGenType: 'wasm'
projectFile: microbenchmarks.proj
projectFile: $(Agent.BuildDirectory)/performance/eng/performance/helix.proj
runKind: micro
runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml
logicalmachine: 'perftiger'
javascriptEngine: 'javascriptcore'
collectHelixLogsScript: ${{ parameters.collectHelixLogsScript }}
downloadSpecificBuild: ${{ parameters.downloadSpecificBuild }}
perfForkToUse: ${{ parameters.perfForkToUse }}
perfBranch: ${{ parameters.perfBranch }}
#downloadSpecificBuild:
#buildId: '1693181'
#pipeline: 'perf-wasm'
Expand All @@ -69,14 +69,14 @@ jobs:
livelibrariesbuildconfig: Release
runtimetype: wasm
codegentype: 'aot'
projectfile: microbenchmarks.proj
projectFile: $(Agent.BuildDirectory)/performance/eng/performance/helix.proj
runkind: micro
runjobtemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml
logicalmachine: 'perftiger'
javascriptengine: 'javascriptcore'
collectHelixLogsScript: ${{ parameters.collectHelixLogsScript }}
downloadSpecificBuild: ${{ parameters.downloadSpecificBuild }}
perfForkToUse: ${{ parameters.perfForkToUse }}
perfBranch: ${{ parameters.perfBranch }}

- ${{ if eq(parameters.runProfile, 'v8') }}:
- ${{ if eq(parameters.downloadSpecificBuild.buildId, '') }}:
Expand Down Expand Up @@ -110,7 +110,7 @@ jobs:
liveLibrariesBuildConfig: Release
runtimeType: wasm
codeGenType: 'wasm'
projectFile: microbenchmarks.proj
projectFile: $(Agent.BuildDirectory)/performance/eng/performance/helix.proj
runKind: micro
runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml
logicalmachine: 'perftiger'
Expand All @@ -121,7 +121,7 @@ jobs:
compare: ${{ parameters.compare }}
onlySanityCheck: ${{ parameters.onlySanityCheck }}
downloadSpecificBuild: ${{ parameters.downloadSpecificBuild }}
perfForkToUse: ${{ parameters.perfForkToUse }}
perfBranch: ${{ parameters.perfBranch }}

#run mono wasm aot microbenchmarks perf job
# Disabled for runtime-wasm-perf on PRs due to https://github.com/dotnet/runtime/issues/95101
Expand All @@ -138,7 +138,7 @@ jobs:
livelibrariesbuildconfig: Release
runtimetype: wasm
codegentype: 'aot'
projectfile: microbenchmarks.proj
projectFile: $(Agent.BuildDirectory)/performance/eng/performance/helix.proj
runkind: micro
runjobtemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml
logicalmachine: 'perftiger'
Expand All @@ -149,7 +149,7 @@ jobs:
compare: ${{ parameters.compare }}
onlySanityCheck: ${{ parameters.onlySanityCheck }}
downloadSpecificBuild: ${{ parameters.downloadSpecificBuild }}
perfForkToUse: ${{ parameters.perfForkToUse }}
perfBranch: ${{ parameters.perfBranch }}

# run mono wasm blazor perf job
- template: /eng/pipelines/common/platform-matrix.yml
Expand All @@ -163,14 +163,14 @@ jobs:
testGroup: perf
liveLibrariesBuildConfig: Release
runtimeType: wasm
projectFile: blazor_perf.proj
projectFile: $(Build.SourcesDirectory)/eng/testing/performance/blazor_perf.proj
runKind: blazor_scenarios
runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml
# For working with a newer sdk, and previous tfm (eg. 9.0 sdk, and net8.0 tfm)
#additionalSetupParameters: '--dotnetversions 8.0.0' # passed to performance-setup.sh
#additionalSetupParameters: '--dotnetversions 8.0.0' # passed to run-performance-job.py
logicalmachine: 'perftiger'
downloadSpecificBuild: ${{ parameters.downloadSpecificBuild }}
perfForkToUse: ${{ parameters.perfForkToUse }}
perfBranch: ${{ parameters.perfBranch }}

- ${{if or(and(ne(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'Schedule')), in(variables['Build.DefinitionName'], 'runtime-wasm-perf')) }}:
# run mono wasm blazor perf job
Expand All @@ -185,12 +185,12 @@ jobs:
testGroup: perf
liveLibrariesBuildConfig: Release
runtimeType: wasm
projectFile: blazor_perf.proj
projectFile: $(Build.SourcesDirectory)/eng/testing/performance/blazor_perf.proj
runKind: blazor_scenarios
runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml
# For working with a newer sdk, and previous tfm (eg. 9.0 sdk, and net8.0 tfm)
#additionalSetupParameters: '--dotnetversions 8.0.0' # passed to performance-setup.sh
#additionalSetupParameters: '--dotnetversions 8.0.0' # passed to run-performance-job.py
logicalmachine: 'perftiger'
downloadSpecificBuild: ${{ parameters.downloadSpecificBuild }}
perfForkToUse: ${{ parameters.perfForkToUse }}
hybridGlobalization: True
perfBranch: ${{ parameters.perfBranch }}
11 changes: 10 additions & 1 deletion eng/pipelines/coreclr/perf.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
parameters:
- name: perfBranch
displayName: Performance Repo Branch
type: string
default: 'main'

trigger:
batch: true
branches:
Expand All @@ -19,7 +25,7 @@ trigger:
- THIRD-PARTY-NOTICES.TXT

variables:
- template: /eng/pipelines/common/variables.yml
- template: /eng/pipelines/common/variables.yml

#
# For the 'schedule' case, only wasm/jsc perf jobs are run.
Expand All @@ -46,9 +52,12 @@ extends:
- template: /eng/pipelines/coreclr/perf-wasm-jobs.yml
parameters:
collectHelixLogsScript: ${{ variables._wasmCollectHelixLogsScript }}
perfBranch: ${{ parameters.perfBranch }}
#${{ and(ne(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'Schedule')) }}:
# runProfile: 'non-v8'
${{ if ne(variables['System.TeamProject'], 'public') }}:
runProfile: 'v8'

- template: /eng/pipelines/coreclr/perf-non-wasm-jobs.yml
parameters:
perfBranch: ${{ parameters.perfBranch }}
Loading
Loading