-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
Changes from 119 commits
bb7cf9a
6c65033
1411d44
a1025a2
3d24f1b
3d86c77
810ad2e
fbefa48
892e34f
7fb5cbf
fce658c
d78b298
7f15589
28a465e
0677c70
494e451
b0119ba
d83fcba
21af883
0e47348
0c9a8a0
87884c9
3254915
546219c
07be3a9
22c3581
51b8b0e
7893fc2
81b4c9f
f49ce70
0635699
36f2f79
a671646
c07ad2d
fb3d84f
82c260d
946fda7
62a6a97
43686dc
4e1af77
be9228e
f747b86
33413de
e91f183
dbf068d
ae03847
2f5903a
2c40060
078b7c0
8cbc822
824e9bb
7db5b97
54fb2d6
ada1d35
2f82b8c
6fa799c
c0c7d44
9ec606c
eba0b6e
68168af
e1a1beb
0a3c271
a5246c2
3d37025
fbf96f3
6b64356
441df00
7f2b575
e8c9800
782ede5
d1f6a7f
f868dd3
a05caa6
71b2e14
9ea60b1
dabc93f
bbfe004
a33147a
5d8f858
bb6fb7c
7efea96
367e747
b97e788
94ee15e
cba6f32
ce7dbf4
79075e3
bba68f5
237ceca
c6ac2a1
215591d
bccfadd
5af1ad4
d49b459
50a8fbe
fbda868
a4eb5e8
d29565b
790a770
6a27d11
46369bf
8a74f16
3e627f4
713b3cc
d7f9b9e
4eb16f8
b9da970
87d470b
29934fa
10cc125
8be66e7
94456ff
1f8fa2c
4fbf2d4
651c41f
b370a95
5594823
a17fa34
249993d
a0b7893
dd43fca
285607f
e787e36
06a8d23
1246539
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -124,6 +124,10 @@ while (($# > 0)); do | |
wasm_runtime_loc=$2 | ||
shift 2 | ||
;; | ||
--wasmaot) | ||
wasmaot=true | ||
shift 1 | ||
;; | ||
--compare) | ||
compare=true | ||
shift 1 | ||
|
@@ -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 "" | ||
|
@@ -184,6 +189,7 @@ fi | |
|
||
payload_directory=$source_directory/Payload | ||
performance_directory=$payload_directory/performance | ||
benchmark_directory=$payload_directory/BenchmarkDotNet | ||
workitem_directory=$source_directory/workitem | ||
extra_benchmark_dotnet_arguments="--iterationCount 1 --warmupCount 0 --invocationCount 1 --unrollFactor 1 --strategy ColdStart --stopOnFirstError true" | ||
perflab_arguments= | ||
|
@@ -228,7 +234,11 @@ if [[ "$mono_dotnet" != "" ]] && [[ "$monointerpreter" == "false" ]]; then | |
fi | ||
|
||
if [[ "$wasm_runtime_loc" != "" ]]; then | ||
configurations="CompilationMode=wasm RunKind=$kind" | ||
if [[ "$wasmaot" == "true" ]]; then | ||
configurations="CompilationMode=wasm AOT=true RunKind=$kind" | ||
else | ||
configurations="CompilationMode=wasm RunKind=$kind" | ||
fi | ||
if [[ "$javascript_engine" == "javascriptcore" ]]; then | ||
configurations="$configurations JSEngine=javascriptcore" | ||
fi | ||
|
@@ -249,12 +259,18 @@ common_setup_arguments="--channel main --queue $queue --build-number $build_numb | |
setup_arguments="--repository https://github.com/$repository --branch $branch --get-perf-hash --commit-sha $commit_sha $common_setup_arguments" | ||
|
||
if [[ "$run_from_perf_repo" = true ]]; then | ||
echo "Running from perf repo" | ||
payload_directory= | ||
workitem_directory=$source_directory | ||
performance_directory=$workitem_directory | ||
setup_arguments="--perf-hash $commit_sha $common_setup_arguments" | ||
else | ||
git clone --branch main --depth 1 --quiet https://github.com/dotnet/performance $performance_directory | ||
echo "Not running from perf repo" | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Before this PR merge, should revert back to the original code to clone main branch once PR dotnet/performance#1902 is merged |
||
git clone --branch alicial/wasmaotmicro --depth 1 https://github.com/dotnet/performance.git $performance_directory | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This needs to switch back to cloning from the performance repo. |
||
# uncomment to use BenchmarkDotNet sources instead of nuget packages | ||
# git clone https://github.com/dotnet/BenchmarkDotNet.git $benchmark_directory | ||
|
||
ls $payload_directory | ||
|
||
docs_directory=$performance_directory/docs | ||
mv $docs_directory $workitem_directory | ||
|
@@ -264,7 +280,21 @@ 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" | ||
pushd $source_directory/src/mono/wasm/ | ||
make provision-wasm | ||
EMSDK_PATH = $source_directory/src/mono/wasm/emsdk | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This variable gets set, but it does not ever seem to get used anywhere. What is it for? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yes, EMSDK_PATH is not used in our script file. It is set here is per document guidance at https://github.com/dotnet/runtime/blob/d953229d5429d2ffde833740dd481aab864d3e0c/src/mono/wasm/README.md |
||
popd | ||
# wasm aot and interpreter need some source code from dotnet\runtime repo | ||
rsync -aq --progress $source_directory/* $wasm_dotnet_path --exclude Payload --exclude docs --exclude src/coreclr --exclude src/tests --exclude artifacts/obj --exclude artifacts/log --exclude artifacts/tests --exclude __download__ | ||
# install EMSDK if $EMSDK_PATH is not Set. EMSDK may be available in the payload in a different directory, should visit this install to avoid deplicated payload. | ||
# copy wasm build drop to the location that aot and interpreter build expects | ||
rsync -a --progress $wasm_dotnet_path/artifacts/BrowserWasm/artifacts/* $wasm_dotnet_path/artifacts | ||
rm -r $wasm_dotnet_path/artifacts/BrowserWasm/artifacts | ||
if [[ "$wasmaot" == "true" ]]; then | ||
extra_benchmark_dotnet_arguments="$extra_benchmark_dotnet_arguments --wasmEngine /home/helixbot/.jsvu/$javascript_engine --aotcompilermode wasm --runtimeSrcDir \$HELIX_CORRELATION_PAYLOAD/dotnet-wasm --buildTimeout 3600 --keepfiles" | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Make sure that --keep-files is removed |
||
else | ||
extra_benchmark_dotnet_arguments="$extra_benchmark_dotnet_arguments --wasmEngine /home/helixbot/.jsvu/$javascript_engine --runtimeSrcDir \$HELIX_CORRELATION_PAYLOAD/dotnet-wasm --buildTimeout 3600 --keepfiles" | ||
fi | ||
fi | ||
|
||
if [[ "$mono_dotnet" != "" ]] && [[ "$monoaot" == "false" ]]; then | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
AOT -> MonoAOT to match the current configs we have.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is MonoAOT different from wasm aot?