Skip to content

Commit

Permalink
[PERF] Add arm64 dynamic pgo runs (#86014)
Browse files Browse the repository at this point in the history
* Add DynamicPGO arm64 linux and windows runs.
* Added parity to performance-setup.sh for pgo (no, dynamic, full) runs.
* Pass the pgoRunType through to the performance (Unix) setup script as well in performance-job.yml.
* Add Linux x64 dynamic pgo.
  • Loading branch information
LoopedBard3 authored May 10, 2023
1 parent 33a30bc commit 11e22ce
Show file tree
Hide file tree
Showing 4 changed files with 89 additions and 2 deletions.
16 changes: 16 additions & 0 deletions eng/pipelines/coreclr/perf-non-wasm-jobs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -265,6 +265,22 @@ jobs:
logicalmachine: 'perftiger'
pgoRunType: -DynamicPgo

- template: /eng/pipelines/common/platform-matrix.yml
parameters:
jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml
buildConfig: release
runtimeFlavor: coreclr
platforms:
- linux_x64
jobParameters:
testGroup: perf
liveLibrariesBuildConfig: Release
projectFile: microbenchmarks.proj
runKind: micro
runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml
logicalmachine: 'perftiger'
pgoRunType: --dynamicpgo

- template: /eng/pipelines/common/platform-matrix.yml
parameters:
jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml
Expand Down
37 changes: 36 additions & 1 deletion eng/pipelines/coreclr/perf_slow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,24 @@ extends:
logicalmachine: 'perfampere'
timeoutInMinutes: 500

# run coreclr Linux arm64 ampere microbenchmarks perf job
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml
buildConfig: release
runtimeFlavor: coreclr
platforms:
- linux_arm64
jobParameters:
testGroup: perf
liveLibrariesBuildConfig: Release
projectFile: microbenchmarks.proj
runKind: micro
runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml
logicalmachine: 'perfampere'
timeoutInMinutes: 500
pgoRunType: --dynamicpgo

# run coreclr Windows arm64 microbenchmarks perf job
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
Expand Down Expand Up @@ -220,7 +238,24 @@ extends:
runKind: micro
runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml
logicalmachine: 'perfampere'


# run coreclr Windows arm64 ampere dynamic Pgo microbenchmarks perf job
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml
buildConfig: release
runtimeFlavor: coreclr
platforms:
- windows_arm64
jobParameters:
testGroup: perf
liveLibrariesBuildConfig: Release
projectFile: microbenchmarks.proj
runKind: micro
runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml
logicalmachine: 'perfampere'
pgoRunType: -DynamicPgo

# run coreclr cloudvm microbenchmarks perf job
# this run is added temporarily for measuring AVX-512 performance
- template: /eng/pipelines/common/platform-matrix.yml
Expand Down
2 changes: 1 addition & 1 deletion eng/pipelines/coreclr/templates/run-performance-job.yml
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ jobs:
displayName: Performance Setup (Windows)
condition: and(succeeded(), eq(variables['Agent.Os'], 'Windows_NT'))
continueOnError: ${{ parameters.continueOnError }}
- script: $(Build.SourcesDirectory)/eng/testing/performance/performance-setup.sh $(IsInternal)$(Interpreter) --framework $(_Framework) --kind ${{ parameters.runKind }} --logicalmachine ${{ parameters.logicalMachine }} --uselocalcommittime ${{ parameters.extraSetupParameters }}
- script: $(Build.SourcesDirectory)/eng/testing/performance/performance-setup.sh $(IsInternal)$(Interpreter) --framework $(_Framework) --kind ${{ parameters.runKind }} --logicalmachine ${{ parameters.logicalMachine }} ${{ parameters.pgoRunType }} --uselocalcommittime ${{ parameters.extraSetupParameters }}
displayName: Performance Setup (Unix)
condition: and(succeeded(), ne(variables['Agent.Os'], 'Windows_NT'))
continueOnError: ${{ parameters.continueOnError }}
Expand Down
36 changes: 36 additions & 0 deletions eng/testing/performance/performance-setup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,18 @@ while (($# > 0)); do
wasmaot=true
shift 1
;;
--nopgo)
nopgo=true
shift 1
;;
--dynamicpgo)
dynamicpgo=true
shift 1
;;
--fullpgo)
fullpgo=true
shift 1
;;
--compare)
compare=true
shift 1
Expand Down Expand Up @@ -213,6 +225,9 @@ while (($# > 0)); do
echo " --iosllvmbuild Set LLVM for iOS Mono/Maui runs"
echo " --mauiversion Set the maui version for Mono/Maui runs"
echo " --uselocalcommittime Pass local runtime commit time to the setup script"
echo " --nopgo Set for No PGO runs"
echo " --dynamicpgo Set for dynamic PGO runs"
echo " --fullpgo Set for Full PGO runs"
echo ""
exit 1
;;
Expand Down Expand Up @@ -318,6 +333,17 @@ if [[ "$iosmono" == "true" ]]; then
extra_benchmark_dotnet_arguments="$extra_benchmark_dotnet_arguments"
fi

if [[ "$nopgo" == "true" ]]; then
configurations="$configurations PGOType=nopgo"
fi
if [[ "$dynamicpgo" == "true" ]]; then
configurations="$configurations PGOType=dynamicpgo"
fi
if [[ "$fullpgo" == "true" ]]; then
configurations="$configurations PGOType=fullpgo"
extra_benchmark_dotnet_arguments="$extra_benchmark_dotnet_arguments --category-exclusion-filter NoAOT"
fi

cleaned_branch_name="main"
if [[ $branch == *"refs/heads/release"* ]]; then
cleaned_branch_name=${branch/refs\/heads\//}
Expand Down Expand Up @@ -380,6 +406,16 @@ if [[ -n "$dotnet_versions" ]]; then
setup_arguments="$setup_arguments --dotnet-versions $dotnet_versions"
fi

if [[ "$nopgo" == "true" ]]; then
setup_arguments="$setup_arguments --no-pgo"
fi
if [[ "$dynamicpgo" == "true" ]]; then
setup_arguments="$setup_arguments --dynamic-pgo"
fi
if [[ "$fullpgo" == "true" ]]; then
setup_arguments="$setup_arguments --full-pgo"
fi

if [[ "$monoaot" == "true" ]]; then
monoaot_dotnet_path=$payload_directory/monoaot
mv $monoaot_path $monoaot_dotnet_path
Expand Down

0 comments on commit 11e22ce

Please sign in to comment.