4 ms·
Please provide example C# AOT compilation (Intel® SSE4.1, Intel® SSE4.2, Intel® AVX) [0] https://benchmarksgame-team.pages.debian.net/benchmarksgame/measureme
by igouy 3y ago
Please provide example C# AOT compilation (Intel® SSE4.1, Intel® SSE4.2, Intel® AVX)
[0]
https://benchmarksgame-team.pages.debian.net/benchmarksgame/measurements/csharpaot.html https://benchmarksgame-team.pages.debian.net/benchmarksgame/...
https://benchmarksgame-team.pages.debian.net/benchmarksgame/measurements/go.html https://benchmarksgame-team.pages.debian.net/benchmarksgame/...
[1] rusage, maximum resident set size
- neonsunset 3y agoNativeAOT defaults to x86-x64 (sans v2) unless specified otherwise. If we compare to C and C++ submissions, they mostly use -march=ivybridge with -O3 optimization level. In order to make such comparison fair, you could use the following build options in .NET: <OptimizationPreference>Speed</OptimizationPreference> <IlcInstructionSet>x86-x64-v2</IlcInstructionSet> // (or 'native', to match march=native) These can also be passed as arguments to `dotnet publish` if necessary. Reference: - https://learn.microsoft.com/en-us/dotnet/core/deploying/native-aot/optimizing https://learn.microsoft.com/en-us/dotnet/core/deploying/nati... - https://github.com/dotnet/runtime/blob/main/src/coreclr/nativeaot/docs/optimizing.md#options-related-to-code-generation https://github.com/dotnet/runtime/blob/main/src/coreclr/nati... -https://github.com/dotnet/runtime/blob/5b4e770daa190ce69f402c1cf92f388b07d3e144/src/coreclr/tools/Common/JitInterface/ThunkGenerator/InstructionSetDesc.txt https://github.com/dotnet/runtime/blob/5b4e770daa190ce69f402... (full list of recognized keys for IlcInstructionSet)
- igouy 3y agoDone but just + - not a difference.
- neonsunset 3y agoThanks a lot! Now the numbers are much more in line with what is expected from startup cost sensitive benchmarks: https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/csharpcore-csharpaot.html https://benchmarksgame-team.pages.debian.net/benchmarksgame/... and supposedly certain AVX-dependent (AVX1 that is, the only kind supported by ivy bridge) implementations no longer fail. If only there was an option to add side-by-side arbitrary options (e.g. Go vs C# AOT), but I suppose that's what contributions are for :)
- igouy 3y ago4 broken programs are shown, if you can fix ‘em that’s what contributions are for :)
- igouy 3y agoI'll just show the measurements that are available and leave you to choose what to do with them. https://benchmarksgame-team.pages.debian.net/benchmarksgame/#measurements https://benchmarksgame-team.pages.debian.net/benchmarksgame/...