seems tile_fma kernel has index error and indexer of matrix has error as well

This commit is contained in:
Youmu Liu
2026-01-11 16:45:38 +08:00
parent cd8210d9a1
commit b8bf1e9f08
8 changed files with 56 additions and 29 deletions
@@ -155,7 +155,7 @@ namespace StgSharp.Mathematics.Numeric
if (count > 256) {
pool = MatrixParallel.LeadParallel(1);
}
M128* enumeration = stackalloc M128[4];
M128* enumeration = stackalloc M128[1];
enumeration->Member<int>(2) = left.KernelColumnLength;
enumeration->Member<int>(3) = ans.KernelColumnLength;
for (int i = 0; i < ans.KernelRowLength; i++)
@@ -162,9 +162,11 @@ namespace StgSharp.Mathematics.Numeric
(MatrixKernel*)right.Buffer,
(MatrixKernel*)ans.Buffer,
enumeration);
Console.WriteLine($"{i},{j},{ans[4*i,4*j]:0.0E00}\t");
// Console.WriteLine($"{i},{j},{ans[4*i,4*j]:0.0E00}\t");
}
Console.WriteLine();
// Console.WriteLine();
}
if (count > 256) {
MatrixParallel.ReturnParallelResources(ref pool!);
@@ -45,7 +45,11 @@ namespace StgSharp.Mathematics.Numeric
private int _remainThreadCount;
private readonly MatrixParallelHandle _handle;
internal MatrixParallelWrap(MatrixParallelHandle handle, int begin, int count)
internal MatrixParallelWrap(
MatrixParallelHandle handle,
int begin,
int count
)
{
WrapTaskCapacity = count;
_handle = handle;
@@ -121,7 +125,9 @@ namespace StgSharp.Mathematics.Numeric
_ = Interlocked.Exchange(ref _remainThreadCount, WrapTaskCapacity);
}
private void PublishBufferTaskToWorkers(MatrixParallelTaskPackage* package)
private void PublishBufferTaskToWorkers(
MatrixParallelTaskPackage* package
)
{
ReadOnlySpan<MatrixParallelThread> pool = Threads;
if (pool.Length == 1)
@@ -157,7 +163,7 @@ namespace StgSharp.Mathematics.Numeric
""";
/**/
current = MatrixParallelFactory.FromExistPackage(current);
offset = length;
offset += length;
}
// Console.WriteLine(msg);