rewrite of f32 fma, and other optmization of simd kernel ops
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="MatrixParallelTask"
|
||||
// file="MatrixParallelHandle"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload
|
||||
// Copyright (c) Nitload. All rights reserved.
|
||||
@@ -34,22 +34,6 @@ using System.Runtime.InteropServices;
|
||||
|
||||
namespace StgSharp.Mathematics.Numeric
|
||||
{
|
||||
public unsafe struct ScalarPacket
|
||||
{
|
||||
|
||||
private fixed ulong data[8];
|
||||
|
||||
public ref T Data<T>(int index) where T: unmanaged,INumber<T>
|
||||
{
|
||||
if (index is < 0 or >= 8) {
|
||||
throw new IndexOutOfRangeException();
|
||||
}
|
||||
|
||||
return ref Unsafe.As<ulong, T>(ref data[index]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
internal unsafe struct MatrixParallelTaskPackageNonGeneric
|
||||
{
|
||||
@@ -59,11 +43,8 @@ namespace StgSharp.Mathematics.Numeric
|
||||
MatrixParallelTaskPackageNonGeneric* source,
|
||||
MatrixParallelTaskPackageNonGeneric* target)
|
||||
{
|
||||
Buffer.MemoryCopy(
|
||||
source,
|
||||
target,
|
||||
sizeof(MatrixParallelTaskPackageNonGeneric),
|
||||
sizeof(MatrixParallelTaskPackageNonGeneric));
|
||||
Buffer.MemoryCopy(source, target, sizeof(MatrixParallelTaskPackageNonGeneric),
|
||||
sizeof(MatrixParallelTaskPackageNonGeneric));
|
||||
}
|
||||
|
||||
#region source
|
||||
@@ -148,11 +129,8 @@ namespace StgSharp.Mathematics.Numeric
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static unsafe void Copy(MatrixParallelTaskPackage<T>* source, MatrixParallelTaskPackage<T>* target)
|
||||
{
|
||||
Buffer.MemoryCopy(
|
||||
source,
|
||||
target,
|
||||
sizeof(MatrixParallelTaskPackage<T>),
|
||||
sizeof(MatrixParallelTaskPackage<T>));
|
||||
Buffer.MemoryCopy(source, target, sizeof(MatrixParallelTaskPackage<T>),
|
||||
sizeof(MatrixParallelTaskPackage<T>));
|
||||
}
|
||||
|
||||
#region source
|
||||
|
||||
Reference in New Issue
Block a user