4 ms·
NativeAOT defaults to x86-x64 (sans v2) unless specified otherwise. If we compare to C and C++ submissions, they mostly use -march=ivybridge with -O3 optimizat
by neonsunset 3y ago
NativeAOT 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/...