Closed stefannikolei closed 9 months ago
Thanks for this. You might want to put a pause on it though until we ship v3.1 We'll need to update SharedInfrastructure submodule following that.
@JimBobSquarePants should we run the arm tests before we merge this?
@stefannikolei triggered.
I just ran the JpegEncoder tests against .NET6 and .NET8. Those look promising.
.NET8
BenchmarkDotNet v0.13.10, macOS Sonoma 14.1.2 (23B92) [Darwin 23.1.0]
Intel Core i9-9880H CPU 2.30GHz, 1 CPU, 16 logical and 8 physical cores
.NET SDK 8.0.100
[Host] : .NET 8.0.0 (8.0.23.53103), X64 RyuJIT AVX2
DefaultJob : .NET 8.0.0 (8.0.23.53103), X64 RyuJIT AVX2
| Method | Mean | Error | StdDev |
|------------------------------------ |----------:|----------:|----------:|
| 'Baseline 4:4:4 Interleaved' | 11.185 ms | 0.3432 ms | 0.9957 ms |
| 'Baseline 4:2:0 Interleaved' | 8.775 ms | 0.1736 ms | 0.4355 ms |
| 'Baseline 4:0:0 (grayscale)' | 1.254 ms | 0.0173 ms | 0.0135 ms |
| 'Progressive 4:2:0 Non-Interleaved' | 11.796 ms | 0.2352 ms | 0.3297 ms |
.NET6
BenchmarkDotNet=v0.13.0, OS=macOS 14.1.2 (23B92) [Darwin 23.1.0]
Intel Core i9-9880H CPU 2.30GHz, 1 CPU, 16 logical and 8 physical cores
.NET SDK=8.0.100
[Host] : .NET 6.0.21 (6.0.2123.36311), X64 RyuJIT
DefaultJob : .NET 6.0.21 (6.0.2123.36311), X64 RyuJIT
| Method | Mean | Error | StdDev |
|------------------------------------ |----------:|----------:|----------:|
| 'Baseline 4:4:4 Interleaved' | 18.003 ms | 0.3533 ms | 0.6636 ms |
| 'Baseline 4:2:0 Interleaved' | 11.986 ms | 0.2339 ms | 0.3279 ms |
| 'Baseline 4:0:0 (grayscale)' | 2.181 ms | 0.0398 ms | 0.0426 ms |
| 'Progressive 4:2:0 Non-Interleaved' | 16.453 ms | 0.3239 ms | 0.4211 ms |
Just did a quick test using the new V4 alpha comparing against other frameworks. Lots of good, free performance there.
I can't wait to get stuck in and having a go implementing as much of the new SIMD APIs as possible.
Prerequisites
Description