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] Add arm64 dynamic pgo runs #86014

Merged
merged 8 commits into from
May 10, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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: 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