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

Enable WASM AOT microbenchmark run #55353

Merged
merged 125 commits into from
Aug 5, 2021
Merged
Show file tree
Hide file tree
Changes from 63 commits
Commits
Show all changes
125 commits
Select commit Hold shift + click to select a range
bb7cf9a
bring up WASM AOT microbenchmarks run
Lxiamail Jun 18, 2021
6c65033
bring up WASM AOT microbenchmarks run
Lxiamail Jun 18, 2021
1411d44
Merge branch 'alicial/WASMAOTMicrobenchmarks' of https://dev.azure.co…
Lxiamail Jun 18, 2021
a1025a2
Merge branch 'alicial/WASMAOTMicrobenchmarks' of https://dev.azure.co…
Lxiamail Jun 18, 2021
3d24f1b
Merge branch 'alicial/WASMAOTMicrobenchmarks' of https://dev.azure.co…
Lxiamail Jun 18, 2021
3d86c77
adding diagnostice log for testing
Lxiamail Jun 21, 2021
810ad2e
commend out some jobs while testing to save lab run resource
Lxiamail Jun 21, 2021
fbefa48
commend out some jobs while testing to save lab run resource
Lxiamail Jun 21, 2021
892e34f
Merge branch 'alicial/WASMAOTMicrobenchmarks' of https://dev.azure.co…
Lxiamail Jun 21, 2021
7fb5cbf
Add WASM AOT in not scheduled run
Lxiamail Jun 21, 2021
fce658c
Only run selected jobs
Lxiamail Jun 21, 2021
d78b298
add "ls -l" to print out permission before calling performance-setup.sh
Lxiamail Jun 21, 2021
7f15589
add "ls -l" to print out permission before calling performance-setup.sh
Lxiamail Jun 21, 2021
28a465e
Merge branch 'alicial/WASMAOTMicrobenchmarks' of https://dev.azure.co…
Lxiamail Jun 22, 2021
0677c70
Merge branch 'alicial/WASMAOTMicrobenchmarks' of https://dev.azure.co…
Lxiamail Jun 22, 2021
494e451
Merge branch 'alicial/WASMAOTMicrobenchmarks' of https://dev.azure.co…
Lxiamail Jun 22, 2021
b0119ba
Merge branch 'alicial/WASMAOTMicrobenchmarks' of https://dev.azure.co…
Lxiamail Jun 22, 2021
d83fcba
Merge branch 'alicial/WASMAOTMicrobenchmarks' of https://dev.azure.co…
Lxiamail Jun 22, 2021
21af883
Merge branch 'alicial/WASMAOTMicrobenchmarks' of https://dev.azure.co…
Lxiamail Jun 22, 2021
0e47348
Merge branch 'alicial/WASMAOTMicrobenchmarks' of https://dev.azure.co…
Lxiamail Jun 22, 2021
0c9a8a0
Merge branch 'alicial/WASMAOTMicrobenchmarks' of https://dev.azure.co…
Lxiamail Jun 22, 2021
87884c9
Merge branch 'alicial/WASMAOTMicrobenchmarks' of https://dev.azure.co…
Lxiamail Jun 22, 2021
3254915
Merge branch 'alicial/WASMAOTMicrobenchmarks' of https://dev.azure.co…
Lxiamail Jun 22, 2021
546219c
Merge branch 'alicial/WASMAOTMicrobenchmarks' of https://dev.azure.co…
Lxiamail Jun 22, 2021
07be3a9
Add "--buildTimeout 3600" to benchmarkdotnet to extend default timeou…
Lxiamail Jun 22, 2021
22c3581
Add "--buildTimeout 3600" to benchmarkdotnet to extend default timeou…
Lxiamail Jun 22, 2021
51b8b0e
Merge branch 'alicial/WASMAOTMicrobenchmarks' of https://dev.azure.co…
Lxiamail Jun 22, 2021
7893fc2
Merge branch 'alicial/WASMAOTMicrobenchmarks' of https://dev.azure.co…
Lxiamail Jun 22, 2021
81b4c9f
resolve merge conflict
Lxiamail Jun 23, 2021
f49ce70
resolve merge conflict
Lxiamail Jun 23, 2021
0635699
Merge branch 'alicial/WASMAOTMicrobenchmarks' of https://dev.azure.co…
Lxiamail Jun 23, 2021
36f2f79
Correct runtimeSrcDir value
Lxiamail Jun 24, 2021
a671646
Correct --runtimeSrcDir location to $HELIX_CORRELATION_PAYLOAD
Lxiamail Jun 24, 2021
c07ad2d
Correct --runtimeSrcDir location to $HELIX_CORRELATION_PAYLOAD
Lxiamail Jun 24, 2021
fb3d84f
merge conflict
Lxiamail Jun 24, 2021
82c260d
Remove not used parameters in WASM AOT mode and add temperary diagno…
Lxiamail Jun 24, 2021
946fda7
Remove not used parameters in WASM AOT mode and add temperary diagno…
Lxiamail Jun 24, 2021
62a6a97
Merge branch 'alicial/WASMAOTMicrobenchmarks' of https://dev.azure.co…
Lxiamail Jun 24, 2021
43686dc
make \$HELIX_CORRELATION_PAYLOAD/dotnet-wasm to be the root directory…
Lxiamail Jun 25, 2021
4e1af77
Only copy runtime repo source directory to helix payload when it's wa…
Lxiamail Jun 25, 2021
be9228e
Add diagnosic log for testing only
Lxiamail Jun 25, 2021
f747b86
omite unneeded runtime repo file from helix payload
Lxiamail Jun 25, 2021
33413de
omite unneeded runtime repo file from helix payload
Lxiamail Jun 25, 2021
e91f183
merge confict
Lxiamail Jun 25, 2021
dbf068d
use rsync instead of cp exclusion command since cp doesn't work with …
Lxiamail Jun 25, 2021
ae03847
Add temp diagnostic logging, should be removed before PR.
Lxiamail Jun 25, 2021
2f5903a
remove artifacts/obj from helix payload
Lxiamail Jun 25, 2021
2c40060
remove artifacts/obj from helix payload
Lxiamail Jun 25, 2021
078b7c0
Merge branch 'alicial/WASMAOTMicrobenchmarks' of https://dev.azure.co…
Lxiamail Jun 25, 2021
8cbc822
add "--keepfiles" to BDN for temperary diagnostic.Merge branch 'alici…
Lxiamail Jun 25, 2021
824e9bb
Merge branch 'alicial/WASMAOTMicrobenchmarks' of https://dev.azure.co…
Lxiamail Jun 25, 2021
7db5b97
Merge branch 'alicial/WASMAOTMicrobenchmarks' of https://dev.azure.co…
Lxiamail Jun 25, 2021
54fb2d6
Merge branch 'alicial/WASMAOTMicrobenchmarks' of https://dev.azure.co…
Lxiamail Jun 26, 2021
ada1d35
copy back helix job for diagnosis and silent rsync
Lxiamail Jun 28, 2021
2f82b8c
For testing only, clone performance repor alicial/hikeMicro-benchmark…
Lxiamail Jun 28, 2021
6fa799c
enable rsync verbose for diagnosis
Lxiamail Jul 1, 2021
c0c7d44
add --keepfiles for wasm intepreter as well for diagnosis
Lxiamail Jul 2, 2021
9ec606c
Remove temporary diagnostic code
Lxiamail Jul 8, 2021
eba0b6e
recover all the jobs in the pipeline
Lxiamail Jul 8, 2021
68168af
recover all the jobs in the pipeline
Lxiamail Jul 8, 2021
e1a1beb
merge config
Lxiamail Jul 8, 2021
0a3c271
merge config
Lxiamail Jul 8, 2021
a5246c2
Merge branch 'alicial/WASMAOTMicrobenchmarks' of https://dev.azure.co…
Lxiamail Jul 8, 2021
3d37025
copy wasm build drop to the location that aot build expects
Lxiamail Jul 9, 2021
fbf96f3
using private perf branch to enable binlog for benchmarkdotnet for di…
Lxiamail Jul 9, 2021
6b64356
comment out none wasm runs temporarily for testing only
Lxiamail Jul 9, 2021
441df00
comment out none wasm runs temporarily for testing only
Lxiamail Jul 9, 2021
7f2b575
:merge conflict
Lxiamail Jul 9, 2021
e8c9800
add "--keepfiles" to keep diagnostic files
Lxiamail Jul 12, 2021
782ede5
fixed $wasm_dotnet_path/artifacts/BrowserWasm/artifacts path
Lxiamail Jul 12, 2021
d1f6a7f
instead of copy, move $wasm_dotnet_path/artifacts/BrowserWasm/artifac…
Lxiamail Jul 12, 2021
f868dd3
benchmarkdotnet using --cli \$HELIX_CORRELATION_PAYLOAD/dotnet-wasm/d…
Lxiamail Jul 12, 2021
a05caa6
benchmarkdotnet using --cli \$HELIX_CORRELATION_PAYLOAD/dotnet-wasm/d…
Lxiamail Jul 12, 2021
71b2e14
merge conflict
Lxiamail Jul 13, 2021
9ea60b1
add executable permission
Lxiamail Jul 13, 2021
dabc93f
Enable other non run to compare
Lxiamail Jul 14, 2021
bbfe004
Enable other non run to compare
Lxiamail Jul 14, 2021
a33147a
Merge branch 'alicial/WASMAOTMicrobenchmarks' of https://dev.azure.co…
Lxiamail Jul 14, 2021
5d8f858
Merge branch 'alicial/WASMAOTMicrobenchmarks' of https://dev.azure.co…
Lxiamail Jul 14, 2021
bb6fb7c
Merge branch 'alicial/WASMAOTMicrobenchmarks' of https://dev.azure.co…
Lxiamail Jul 14, 2021
7efea96
remove "--cli \$HELIX_CORRELATION_PAYLOAD/dotnet-wasm/dotnet.sh"
Lxiamail Jul 15, 2021
367e747
fixes per CR
Lxiamail Jul 16, 2021
b97e788
copy EMSDK_PATH to expected location in helix payload
Lxiamail Jul 19, 2021
94ee15e
install emsdk
Lxiamail Jul 21, 2021
cba6f32
fix emsdk path
Lxiamail Jul 21, 2021
ce7dbf4
minor fix
Lxiamail Jul 21, 2021
79075e3
removed more not used files to reduce helix payload size
Lxiamail Jul 21, 2021
bba68f5
remove more jobs for testing purpose
Lxiamail Jul 21, 2021
237ceca
Fix the download path
radekdoulik Jul 22, 2021
c6ac2a1
Add BenchmarkDotNet sources to the payload
radekdoulik Jul 23, 2021
215591d
Fix __download__ path
radekdoulik Jul 23, 2021
bccfadd
set BenchmarkDotNetSources to use benchmarkdotnet built from source
Lxiamail Jul 23, 2021
5af1ad4
use benchmarkdotnet private branch:alicial/tempwasmaot for BenchmarkD…
Lxiamail Jul 24, 2021
d49b459
use benchmarkdonet private branch with BenchmarkDotNetSources option
Lxiamail Jul 24, 2021
50a8fbe
Debug prints
radekdoulik Jul 24, 2021
fbda868
Clone B.NET to different location
radekdoulik Jul 24, 2021
a4eb5e8
Move B.NET back, clone upstream B.NET
radekdoulik Jul 24, 2021
d29565b
Use my branch for performance repo
radekdoulik Jul 24, 2021
790a770
Revert "set BenchmarkDotNetSources to use benchmarkdotnet built from …
radekdoulik Jul 24, 2021
6a27d11
Merge remote-tracking branch 'remotes/origin/main' into internal-alic…
radekdoulik Jul 26, 2021
46369bf
Disable one more job I missed in merge
radekdoulik Jul 26, 2021
8a74f16
Switch back to nuget packages for BenchmarkDotNet
radekdoulik Jul 26, 2021
3e627f4
tempararily use pr-alicias-branch to test new fixes
Lxiamail Jul 26, 2021
713b3cc
merge change
Lxiamail Jul 26, 2021
d7f9b9e
[mono] Fix invalid memory write
radekdoulik Jul 29, 2021
4eb16f8
[mono] Fix an uninitialized memory access in the ABCREM pass.
vargaz Jul 29, 2021
b9da970
Merge remote-tracking branch 'remotes/origin/main' into internal-alic…
radekdoulik Jul 29, 2021
87d470b
clean up PR
Lxiamail Jul 30, 2021
29934fa
Merge branch 'alicial/WASMAOTMicrobenchmarks' of https://dev.azure.co…
Lxiamail Jul 30, 2021
10cc125
add missing param
Lxiamail Jul 30, 2021
8be66e7
fix perf.yml and make wasm interpreter to be consistent with wasm AOT
Lxiamail Jul 30, 2021
94456ff
comment out more job for fast testing
Lxiamail Jul 30, 2021
1f8fa2c
remove extra job
Lxiamail Jul 30, 2021
4fbf2d4
exclude copying __download__ dir instead of delete it.
Lxiamail Jul 30, 2021
651c41f
add parameters.codeGenType
Lxiamail Jul 30, 2021
b370a95
fix aot javascriptengine
Lxiamail Jul 30, 2021
5594823
correct livelibrariesbuildconfig from release to Release
Lxiamail Aug 1, 2021
a17fa34
install emsdk before copy $source_directory
Lxiamail Aug 2, 2021
249993d
add back all the temporarily commented out jobs in perf.yml
Lxiamail Aug 4, 2021
a0b7893
clean up work around code
Lxiamail Aug 4, 2021
dd43fca
minor clean up
Lxiamail Aug 4, 2021
285607f
remove performance submodule
Lxiamail Aug 4, 2021
e787e36
switch back to use performance repo main branch
Lxiamail Aug 5, 2021
06a8d23
add --quiet to git clone
Lxiamail Aug 5, 2021
1246539
Merge branch 'main' into alicial/WASMAOTMicrobenchmarks
Lxiamail Aug 5, 2021
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
39 changes: 38 additions & 1 deletion eng/pipelines/coreclr/perf.yml
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ jobs:
archiveType: zip
archiveExtension: .zip

#run mono wasm microbenchmarks perf job
#run mono wasm (default) microbenchmarks perf job
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml # NOTE: should we move this file out of coreclr tempelates because it contains mono jobs?
Expand All @@ -113,6 +113,24 @@ jobs:
logicalmachine: 'perftiger'
javascriptEngine: 'javascriptcore'

#run mono wasm aot microbenchmarks perf job
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
jobtemplate: /eng/pipelines/coreclr/templates/perf-job.yml # note: should we move this file out of coreclr tempelates because it contains mono jobs?
buildconfig: release
runtimeflavor: wasm
platforms:
- linux_x64
jobparameters:
testgroup: perf
livelibrariesbuildconfig: release
runtimetype: wasm
codegentype: 'aot'
projectfile: microbenchmarks.proj
runkind: micro
runjobtemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml
logicalmachine: 'perftiger'
javascriptengine: 'javascriptcore'
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'Schedule')) }}:

# build coreclr and libraries
Expand Down Expand Up @@ -296,6 +314,25 @@ jobs:
logicalmachine: 'perftiger'
javascriptEngine: 'v8'

# run mono wasm AOT microbenchmarks perf job
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml # NOTE: should we move this file out of coreclr tempelates because it contains mono jobs?
buildConfig: release
runtimeFlavor: wasm
platforms:
- Linux_x64
jobParameters:
testGroup: perf
liveLibrariesBuildConfig: Release
runtimeType: wasm
codeGenType: 'AOT'
projectFile: microbenchmarks.proj
runKind: micro
runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml
logicalmachine: 'perftiger'
javascriptEngine: 'v8'

# run mono aot microbenchmarks perf job
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
Expand Down
16 changes: 9 additions & 7 deletions eng/pipelines/coreclr/templates/perf-job.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,9 +54,9 @@ jobs:
- ${{ format('libraries_build_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.liveLibrariesBuildConfig) }}
- ${{ if and(eq(parameters.runtimeType, 'mono'), ne(parameters.codeGenType, 'AOT')) }}:
- ${{ format('mono_{0}_product_build_{1}{2}_{3}_{4}', parameters.runtimeVariant, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
- ${{ if eq(parameters.runtimeType, 'wasm') }}:
- ${{ format('build_{0}{1}_{2}_{3}_{4}', 'Browser', '', 'wasm', parameters.buildConfig, parameters.runtimeType) }}
- ${{ if eq(parameters.codeGenType, 'AOT')}}:
- ${{ if eq(parameters.runtimeType, 'wasm')}}:
- ${{ format('build_{0}{1}_{2}_{3}_{4}', 'Browser', '', 'wasm', parameters.buildConfig, parameters.runtimeType, parameters.codeGenType) }}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We never reference the codeGenType parameter, it is the 6th one, so we would need to see {5} in the string, but don't.

- ${{ if and(eq(parameters.codeGenType, 'AOT'), ne(parameters.runtimeType, 'wasm'))}}:
- ${{ format('build_{0}{1}_{2}_{3}_{4}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig, parameters.codeGenType) }}
- ${{ if eq(parameters.runtimeType, 'AndroidMono')}}:
- ${{ 'build_Android_arm64_release_AndroidMono' }}
Expand All @@ -69,9 +69,11 @@ jobs:
${{ if and(ne(parameters.osGroup, 'windows'), ne(parameters.runtimeType, 'AndroidMono')) }}:
${{ if and(eq(parameters.runtimeType, 'mono'), ne(parameters.codeGenType, 'AOT')) }}:
extraSetupParameters: --architecture ${{ parameters.archType }} --monodotnet $(Build.SourcesDirectory)/.dotnet-mono
${{ if eq(parameters.runtimeType, 'wasm') }}:
${{ if and(eq(parameters.runtimeType, 'wasm'), ne(parameters.codeGenType, 'AOT')) }}:
extraSetupParameters: --architecture ${{ parameters.archType }} --wasm $(librariesDownloadDir)/bin/wasm --javascriptengine ${{ parameters.javascriptEngine }}
${{ if eq(parameters.codeGenType, 'AOT') }}:
${{ if and(eq(parameters.runtimeType, 'wasm'), eq(parameters.codeGenType, 'AOT')) }}:
extraSetupParameters: --architecture ${{ parameters.archType }} --wasm $(librariesDownloadDir)/bin/wasm --wasmaot --javascriptengine ${{ parameters.javascriptEngine }}
${{ if and(eq(parameters.codeGenType, 'AOT'), ne(parameters.runtimeType, 'wasm')) }}:
extraSetupParameters: --architecture ${{ parameters.archType }} --monoaot $(librariesDownloadDir)/bin/aot
${{ if and(eq(parameters.runtimeType, 'coreclr'), ne(parameters.osSubGroup, '_musl')) }}:
extraSetupParameters: --corerootdirectory $(Build.SourcesDirectory)/artifacts/tests/coreclr/${{ parameters.osGroup }}.${{ parameters.archType }}.Release/Tests/Core_Root --architecture ${{ parameters.archType }}
Expand Down Expand Up @@ -128,8 +130,8 @@ jobs:
- script: "mkdir $(librariesDownloadDir)/bin/wasm;unzip -o $(librariesDownloadDir)/BrowserWasm/artifacts/packages/Release/Shipping/Microsoft.NETCore.App.Runtime.Mono.browser-wasm.6.0.0-ci.nupkg data/* runtimes/* -d $(librariesDownloadDir)/bin/wasm;cp src/mono/wasm/runtime-test.js $(librariesDownloadDir)/bin/wasm/runtime-test.js;find $(librariesDownloadDir)/bin/wasm -type f -exec chmod 664 {} \\;"
displayName: "Create wasm directory (Linux)"

# Download AOT
- ${{ if eq(parameters.codeGenType, 'AOT') }}:
# Download mono AOT
- ${{ if and(eq(parameters.codeGenType, 'AOT'), ne(parameters.runtimeType, 'wasm')) }}:
- template: /eng/pipelines/common/download-artifact-step.yml
parameters:
unpackFolder: $(librariesDownloadDir)/LinuxMonoAOT
Expand Down
1 change: 1 addition & 0 deletions eng/testing/performance/performance
Submodule performance added at 522aa7
13 changes: 12 additions & 1 deletion eng/testing/performance/performance-setup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,10 @@ while (($# > 0)); do
wasm_runtime_loc=$2
shift 2
;;
--wasmaot)
wasmaot=true
shift 1
;;
--compare)
compare=true
shift 1
Expand Down Expand Up @@ -158,6 +162,7 @@ while (($# > 0)); do
echo " --internal If the benchmarks are running as an official job."
echo " --monodotnet Pass the path to the mono dotnet for mono performance testing."
echo " --wasm Path to the unpacked wasm runtime pack."
echo " --wasmaot Indicate wasm aot"
echo " --latestdotnet --dotnet-versions will not be specified. --dotnet-versions defaults to LKG version in global.json "
echo " --alpine Set for runs on Alpine"
echo ""
Expand Down Expand Up @@ -264,7 +269,13 @@ if [[ "$wasm_runtime_loc" != "" ]]; then
using_wasm=true
wasm_dotnet_path=$payload_directory/dotnet-wasm
mv $wasm_runtime_loc $wasm_dotnet_path
extra_benchmark_dotnet_arguments="$extra_benchmark_dotnet_arguments --wasmMainJS \$HELIX_CORRELATION_PAYLOAD/dotnet-wasm/runtime-test.js --wasmEngine /home/helixbot/.jsvu/$javascript_engine --customRuntimePack \$HELIX_CORRELATION_PAYLOAD/dotnet-wasm"
if [[ "$wasmaot" == "true" ]]; then
# wasm aot needs some source code from dotnet\runtime repo
rsync -a --progress $source_directory/* $wasm_dotnet_path --exclude payload --exclude docs --exclude src/coreclr --exclude src/tests --exclude artifacts/obj
extra_benchmark_dotnet_arguments="$extra_benchmark_dotnet_arguments --wasmEngine /home/helixbot/.jsvu/$javascript_engine --aotcompilermode wasm --runtimeSrcDir \$HELIX_CORRELATION_PAYLOAD/dotnet-wasm --buildTimeout 3600"
else
extra_benchmark_dotnet_arguments="$extra_benchmark_dotnet_arguments --wasmMainJS \$HELIX_CORRELATION_PAYLOAD/dotnet-wasm/runtime-test.js --wasmEngine /home/helixbot/.jsvu/$javascript_engine --customRuntimePack \$HELIX_CORRELATION_PAYLOAD/dotnet-wasmS"
fi
fi

if [[ "$mono_dotnet" != "" ]] && [[ "$monoaot" == "false" ]]; then
Expand Down