Clean up solver code a bit

This commit is contained in:
Asriel Camora
2023-07-03 18:38:59 +03:00
parent 14ced2df98
commit ec596f400d
3 changed files with 105 additions and 136 deletions
-59
View File
@@ -1,59 +0,0 @@
using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Jobs;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Numerics;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
namespace Craftimizer.Benchmark;
[SimpleJob(RuntimeMoniker.Net70)]
[SimpleJob(RuntimeMoniker.NativeAot70)]
public class Bench
{
private float[] data;
private int[] dataLengths;
[Params(1000, 10000)]
public int N;
[GlobalSetup]
public void Setup()
{
var rand = new Random();
data = new float[N * 8];
dataLengths = new int[N];
for (var i = 0; i < data.Length; i += 8)
{
var len = rand.NextSingle() > .5 ? 8 : rand.Next(1, 9);
dataLengths[i / 8] = len;
for (var j = 0; j < len; ++j)
data[i + j] = rand.NextSingle();
for (var j = len; j < 8; ++j)
data[i + j] = float.NaN;
}
}
[Benchmark]
public int[] Scalar()
{
var d = new int[N];
var dataSpan = data.AsSpan();
for (var i = 0; i < N; ++i)
d[i] = Solver.Crafty.Solver.HMaxIndexScalar(new Vector<float>(dataSpan.Slice(i * 8, 8)), dataLengths[i]);
return d;
}
[Benchmark]
public int[] AVX2()
{
var d = new int[128];
var dataSpan = data.AsSpan();
for (var i = 0; i < 128; ++i)
d[i] = Solver.Crafty.Solver.HMaxIndexAVX2(new Vector<float>(dataSpan.Slice(i * 8, 8)), dataLengths[i]);
return d;
}
}