-
-
Notifications
You must be signed in to change notification settings - Fork 853
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
Support executing benchmarks on arm64 #1794
Conversation
@kunalspathak could you provide some benchmark results on ARM? It Would interesting to see some real world example. |
Codecov Report
@@ Coverage Diff @@
## master #1794 +/- ##
==========================================
+ Coverage 87.10% 87.11% +0.01%
==========================================
Files 936 936
Lines 47631 47631
Branches 6015 6015
==========================================
+ Hits 41488 41495 +7
+ Misses 5150 5145 -5
+ Partials 993 991 -2
Flags with carried forward coverage won't be shown. Click here to find out more.
Continue to review full report at Codecov.
|
Sure, I filtered to 2.0, 1 CPU, 46 logical and 46 physical cores
Now, there might be more changes needed on the code base:
diff --git a/tests/ImageSharp.Benchmarks/General/Array2D.cs b/tests/ImageSharp.Benchmarks/General/Array2D.cs
index cd4eec0d4..763a47d9d 100644
--- a/tests/ImageSharp.Benchmarks/General/Array2D.cs
+++ b/tests/ImageSharp.Benchmarks/General/Array2D.cs
@@ -18,6 +18,7 @@ namespace SixLabors.ImageSharp.Benchmarks.General
*
*/
+ [Config(typeof(Config.MultiFramework))]
public class Array2D
{
private float[] flatArray; |
Actually, one more thing I realized is ImageSharp doesn't support Arm64 intrinsic yet, yes? |
yes, we are not able to run the tests in the CI on ARM, that is mainly the reasons we dont have support for that. |
Makes sense. Let me know what else is needed in this PR. Thanks! |
Related - #1795 |
I tried tried to get the tests to run on ARM for a while now and i think im pretty close to it. I was able to to run all the tests on |
@kunalspathak thanks for the contribution! |
Something worth noting is, that some of the benchmarks use |
Does it have to be that away? Can we turn the baseline off using a switch and just run the ImageSharp part of benchmarks and get the numbers? |
The normal use case of those benchmarks is actually to compare our implementation against other implementations. Of course an optional switch to turn the baseline off is a possibility. I hope some day Magick.NET will support ARM. |
Great. Yes, at least that will give us a way to run and measure the coreclr build over build performance on just ImageSharp benchmarks. |
@kunalspathak: I kind of thought the idea was that @antonfirsov would create a separate repo for that, which is more suitable to run in a CI. Did I misunderstood that? |
I was actually thinking if you or @antonfirsov can suggest the files that we can copy into Just to give you an idea, here is how are infrastructure tracks the measurement history (currently of https://github.com/dotnet/performance/tree/main/src/benchmarks/micro): |
Hi . I am trying to test the performance (both memory and cpu usage for file read &write ,Network IO) of Arm64 machine by running a simple performance testing console application using benchmarkdotnet. (I need to test it for both x64 as well as ARM64 platform in .net4.7.2 and .net6) .Now i've build a benchmark application with .net6 and platform as ARM64. but m not able to run it on ARM64 machine. Could you plz help to solve this issue. |
Can you give details of steps you are using to run benchmarks and what errors are you getting? |
I've created a simple benchmark application on .net 6 and it is running fine on visual studio.but if i take the release folder out and try to test the same then the application is not running. it is showing error like unable to find the .sln or .csproj file. and i try to publish the application and tried with the setup .which is also not working and giving the same error. now i've tried it within my pc (instead of ARM pc) that is also giving the same error. the application is only running inside the visual studio. but for testing i need a build file. but for .net 4.7.2 it is working fine. Error: Most probably the name of output exe is different than the name of the .(c/f)sproj |
Prerequisites
Description
Because of existing roslyn issue dotnet/roslyn#42393, building and executing the benchmarks fail on arm64. In the past, we fixed this issue in dotnet/performance on arm64 in dotnet/performance#1243 and related change in dotnet/BenchmarkDotNet#1395. This PR does similar changes to make sure the benchmarks can be executed on arm64 platform.