Информация об изменениях

Сообщение Re: 2D-Linq и оптимизация цифровых фильтров - 4 от 04.08.2020 17:56

Изменено 04.08.2020 18:09 VladCore

Re: 2D-Linq и оптимизация цифровых фильтров - 4
Здравствуйте, Sinclair, Вы писали:

Прикольно

1.
А какой AVX юзается? В старых облачных датацентрах все еще есть SandyBridge. Там целочисленного AVX нет. Только плавающий.

2. Если запустить все бенчмарки (cd Linq2d.Benchmarks && dotnet run -c Release --filter '*') то они вешаются. вот концовка в консоли:

RPI 4 64 бит, AVX есть, но называется NEON
// **************************
// Benchmark: SauvolaBenchmark.SafeSauvola: DefaultJob [WHalf=5, FileName=p00743.bmp]
// *** Execute ***
// Launch: 1 / 1
// Execute: dotnet "384c5e76-727b-4c44-90b0-8f10ff201d74.dll" --benchmarkName "Linq2d.Benchmarks.SauvolaBenchmark.SafeSauvola(WHalf: 5, FileName: "p00743.bmp")" --job "Default" --benchmarkId 9 in /root/build/linq2d-src/linq2d/Linq2d.Benchmarks/bin/Release/netcoreapp3.1/384c5e76-727b-4c44-90b0-8f10ff201d74/bin/Release/netcoreapp3.1
// BeforeAnythingElse

// Benchmark Process Environment Information:
// Runtime=.NET Core 3.1.6 (CoreCLR 4.700.20.26901, CoreFX 4.700.20.31603), Arm64 RyuJIT
// GC=Concurrent Workstation
// Job: DefaultJob

Working at the directory '/root/build/linq2d-src/linq2d/Linq2d.Benchmarks/bin/Release/netcoreapp3.1/384c5e76-727b-4c44-90b0-8f10ff201d74/bin/Release/netcoreapp3.1'
Loading file p00743.bmp...
Found the bitmap of 5184*6433
Loaded file p00743.bmp.
Sauvola Edge Detect vectorization failed due to the expression
source2[var_$0, var_$1]
  :Failed to find a suitable load operation for the System.Int32 vector of size 4


Ivy Bridge 64 бит
// **************************
// Benchmark: SauvolaBenchmark.SafeSauvola: DefaultJob [WHalf=5, FileName=p00743.bmp]
// *** Execute ***
// Launch: 1 / 1
// Execute: dotnet "2278c1b6-9536-4523-9208-84d5654de6da.dll" --benchmarkName "Linq2d.Benchmarks.SauvolaBenchmark.SafeSauvola(WHalf: 5, FileName: "p00743.bmp")" --job "Default" --benchmarkId 9 in U:\Lab\linq2d\Linq2d.Benchmarks\bin\Release\netcoreapp3.1\2278c1b6-9536-4523-9208-84d5654de6da\bin\Release\netcoreapp3.1
// BeforeAnythingElse

// Benchmark Process Environment Information:
// Runtime=.NET Core 3.1.3 (CoreCLR 4.700.20.11803, CoreFX 4.700.20.12001), X64 RyuJIT
// GC=Concurrent Workstation
// Job: DefaultJob

Working at the directory 'U:\Lab\linq2d\Linq2d.Benchmarks\bin\Release\netcoreapp3.1\2278c1b6-9536-4523-9208-84d5654de6da\bin\Release\netcoreapp3.1'
Loading file p00743.bmp...
Found the bitmap of 5184*6433
Loaded file p00743.bmp.
Sauvola Edge Detect vectorization failed due to the expression
source3[var_$0, var_$1] + source3[var_$2, var_$3]
  :Failed to find a vector Add operation over System.Runtime.Intrinsics.Vector256`1[System.Int64] and System.Runtime.Intrinsics.Vector256`1[System.Int64]


я не смотрел исходники но возможно требуется AVX2 (целочисленный)? но тогда непонятно почему вешается а не падает с ошибкой?
Re: 2D-Linq и оптимизация цифровых фильтров - 4
Здравствуйте, Sinclair, Вы писали:

Прикольно

1.
А какой AVX юзается? В старых облачных датацентрах все еще есть SandyBridge. Там целочисленного AVX нет. Только плавающий.

2. Если запустить все бенчмарки (cd Linq2d.Benchmarks && dotnet run -c Release --filter '*') то они вешаются. вот концовка в консоли:

RPI 4 64 бит, AVX есть, но называется он NEON Я не спец по NEON-инструкциям но они и целые и плавающие векторы поддерживают.
// **************************
// Benchmark: SauvolaBenchmark.SafeSauvola: DefaultJob [WHalf=5, FileName=p00743.bmp]
// *** Execute ***
// Launch: 1 / 1
// Execute: dotnet "384c5e76-727b-4c44-90b0-8f10ff201d74.dll" --benchmarkName "Linq2d.Benchmarks.SauvolaBenchmark.SafeSauvola(WHalf: 5, FileName: "p00743.bmp")" --job "Default" --benchmarkId 9 in /root/build/linq2d-src/linq2d/Linq2d.Benchmarks/bin/Release/netcoreapp3.1/384c5e76-727b-4c44-90b0-8f10ff201d74/bin/Release/netcoreapp3.1
// BeforeAnythingElse

// Benchmark Process Environment Information:
// Runtime=.NET Core 3.1.6 (CoreCLR 4.700.20.26901, CoreFX 4.700.20.31603), Arm64 RyuJIT
// GC=Concurrent Workstation
// Job: DefaultJob

Working at the directory '/root/build/linq2d-src/linq2d/Linq2d.Benchmarks/bin/Release/netcoreapp3.1/384c5e76-727b-4c44-90b0-8f10ff201d74/bin/Release/netcoreapp3.1'
Loading file p00743.bmp...
Found the bitmap of 5184*6433
Loaded file p00743.bmp.
Sauvola Edge Detect vectorization failed due to the expression
source2[var_$0, var_$1]
  :Failed to find a suitable load operation for the System.Int32 vector of size 4


Ivy Bridge 64 бит
// **************************
// Benchmark: SauvolaBenchmark.SafeSauvola: DefaultJob [WHalf=5, FileName=p00743.bmp]
// *** Execute ***
// Launch: 1 / 1
// Execute: dotnet "2278c1b6-9536-4523-9208-84d5654de6da.dll" --benchmarkName "Linq2d.Benchmarks.SauvolaBenchmark.SafeSauvola(WHalf: 5, FileName: "p00743.bmp")" --job "Default" --benchmarkId 9 in U:\Lab\linq2d\Linq2d.Benchmarks\bin\Release\netcoreapp3.1\2278c1b6-9536-4523-9208-84d5654de6da\bin\Release\netcoreapp3.1
// BeforeAnythingElse

// Benchmark Process Environment Information:
// Runtime=.NET Core 3.1.3 (CoreCLR 4.700.20.11803, CoreFX 4.700.20.12001), X64 RyuJIT
// GC=Concurrent Workstation
// Job: DefaultJob

Working at the directory 'U:\Lab\linq2d\Linq2d.Benchmarks\bin\Release\netcoreapp3.1\2278c1b6-9536-4523-9208-84d5654de6da\bin\Release\netcoreapp3.1'
Loading file p00743.bmp...
Found the bitmap of 5184*6433
Loaded file p00743.bmp.
Sauvola Edge Detect vectorization failed due to the expression
source3[var_$0, var_$1] + source3[var_$2, var_$3]
  :Failed to find a vector Add operation over System.Runtime.Intrinsics.Vector256`1[System.Int64] and System.Runtime.Intrinsics.Vector256`1[System.Int64]


я не смотрел исходники но возможно требуется AVX2 (целочисленный)? но тогда непонятно почему вешается а не падает с ошибкой?