Mat mul mat is now on full function

This commit is contained in:
Youmu Liu
2025-12-16 16:15:30 +08:00
parent 2c7277f3f9
commit 88ed5a95c5
14 changed files with 357 additions and 488 deletions
+19 -46
View File
@@ -1,4 +1,4 @@
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
// -----------------------------------------------------------------------
// file="Program"
// Project: StgSharp
@@ -53,71 +53,44 @@ namespace StgSharp
// HlsfStressTest.Run();
/*
/**/
HybridLayerSegregatedFitAllocator hlsf;
unchecked {
hlsf = new((nuint)(64 * (ulong)10000 * 10000));
}
Matrix<float> m = Matrix.FromHlsf<float>(1000, 1000, hlsf);
Matrix<float> m = Matrix.FromHlsf<float>(400, 400, hlsf);
MatrixCompute.Fill(m, 1.0f);
Matrix<float> n = Matrix.FromHlsf<float>(400, 400, hlsf);
MatrixCompute.Fill(n, 1.0f);
Matrix<float> p = Matrix.FromHlsf<float>(400, 400, hlsf);
Console.WriteLine();
Console.WriteLine();
Console.WriteLine();
Matrix<float> n = Matrix.FromHlsf<float>(1000, 1000, hlsf);
MatrixCompute.Fill(n, 0.0f);
for (int i = 0; i < 5; i++)
// MatrixCompute.Fill(p, 0.0f);
/*
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 2; j++)
MatrixCompute.Add(n, m, n);
for (int j = 0; j < 5; j++)
{
MatrixCompute.Add(n, m, n);
// Console.WriteLine($"{i} {j}");
for (int k = 0; k < 5; k++) {
Console.Write($"{n[j, k]:0.0E+00} \t");
}
Console.WriteLine();
}
Console.WriteLine($"{i}");
GC.Collect();
}
MatrixCompute.Mul(n, 12, n);
/**/
MatrixCompute.Mul(n, m, p);
for (int i = 0; i < 20; i++)
{
for (int j = 0; j < 20; j++) {
Console.Write($"{n[i, j]:0.0E+00} \t");
Console.Write($"{p[i, j]:0.0E+00} \t");
}
Console.WriteLine();
}
/**/
// --- Logarithmic time sequence test: print seconds at each emitted span ---
// Configure a simple sequence:
// initial slice = 0.5s, total = 5s, growth multiplier = 2, min slice = 0.75s
TimeSequence seq =
/**/
TimeSequence.CreateLogarithmic(initialSliceSeconds:0.5, totalSeconds:5.0,
growthMultiplier:2.0, minSliceSeconds:0.75);
/*
TimeSequence.CreateLinear(5, 1);
/**/
// Bind to default time source provider.
TimeSpanProvider provider = new TimeSpanProvider(seq, TimeSpanProvider.DefaultProvider);
// Print the second mark when a span is emitted.
provider.TimeSpanRefreshed += (s, e) => {
// CurrentSecond is PreviousFrameTick / Frequency
Console.WriteLine($"span @ {provider.CurrentSecond:0.000}s");
};
// Start the time source and wait until sequence ends.
TimeSpanProvider.DefaultProvider.StartProvidingTime();
while (!provider.IsEnded) {
provider.WaitNextSpan();
}
TimeSpanProvider.DefaultProvider.StopProvidingTime();
// end of log-time sequence test
}
catch (Exception ex)
{