From b65052698596d108c64459188ac0d0aec62b1929 Mon Sep 17 00:00:00 2001 From: Youmu Liu <105042599+Nitload-NSI@users.noreply.github.com> Date: Sun, 31 Aug 2025 14:34:44 +0800 Subject: [PATCH] add missed files --- .../Mathematics/Linear/KernelParallel.cs | 40 + .../Mathematics/Linear/Matrix.Basic.cs | 52 ++ .../Mathematics/Linear/Matrix.GC.cs | 111 +++ .../Mathematics/Linear/Matrix.HLSF.cs | 120 +++ .../Mathematics/Linear/MatrixEnum.cs | 46 ++ .../Mathematics/Linear/MatrixIndex.cs | 77 ++ .../Mathematics/Linear/MatrixMarshal.cs | 40 + .../Mathematics/Linear/MatrixParallelTask.cs | 72 ++ StgSharp.Native/.clang-format | 747 ++++++++++++++++++ .../StgSharp.Native.vcxproj.filters | 92 +++ StgSharp.Native/StgSharp.Native.vcxproj.user | 7 + StgSharp.Native/glfw/glfw3.lib | Bin 0 -> 733462 bytes StgSharp.Native/naming.md | 9 + StgSharp.Native/sn-src/k_basicop.c | 134 ++++ StgSharp.Native/sn-src/k_fma.c | 35 + StgSharp.Native/sn-src/load_intrinsic.c | 101 +++ StgSharp.Native/sn-src/sn_native.c | 75 ++ StgSharp.Native/sn-src/str_factorial.c | 23 + StgSharp.Native/sn-src/str_hash.c | 45 ++ StgSharp.Native/sn-src/str_string.c | 53 ++ StgSharpDebug/hlsf-test.cs | 152 ++++ 21 files changed, 2031 insertions(+) create mode 100644 StgSharp.Common/Mathematics/Linear/KernelParallel.cs create mode 100644 StgSharp.Common/Mathematics/Linear/Matrix.Basic.cs create mode 100644 StgSharp.Common/Mathematics/Linear/Matrix.GC.cs create mode 100644 StgSharp.Common/Mathematics/Linear/Matrix.HLSF.cs create mode 100644 StgSharp.Common/Mathematics/Linear/MatrixEnum.cs create mode 100644 StgSharp.Common/Mathematics/Linear/MatrixIndex.cs create mode 100644 StgSharp.Common/Mathematics/Linear/MatrixMarshal.cs create mode 100644 StgSharp.Common/Mathematics/Linear/MatrixParallelTask.cs create mode 100644 StgSharp.Native/.clang-format create mode 100644 StgSharp.Native/StgSharp.Native.vcxproj.filters create mode 100644 StgSharp.Native/StgSharp.Native.vcxproj.user create mode 100644 StgSharp.Native/glfw/glfw3.lib create mode 100644 StgSharp.Native/naming.md create mode 100644 StgSharp.Native/sn-src/k_basicop.c create mode 100644 StgSharp.Native/sn-src/k_fma.c create mode 100644 StgSharp.Native/sn-src/load_intrinsic.c create mode 100644 StgSharp.Native/sn-src/sn_native.c create mode 100644 StgSharp.Native/sn-src/str_factorial.c create mode 100644 StgSharp.Native/sn-src/str_hash.c create mode 100644 StgSharp.Native/sn-src/str_string.c create mode 100644 StgSharpDebug/hlsf-test.cs diff --git a/StgSharp.Common/Mathematics/Linear/KernelParallel.cs b/StgSharp.Common/Mathematics/Linear/KernelParallel.cs new file mode 100644 index 00000000..598f3dcb --- /dev/null +++ b/StgSharp.Common/Mathematics/Linear/KernelParallel.cs @@ -0,0 +1,40 @@ +//----------------------------------------------------------------------- +// ----------------------------------------------------------------------- +// file="KernelParallel.cs" +// Project: StgSharp +// AuthorGroup: Nitload Space +// Copyright (c) Nitload Space. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the “Software”), to deal in the Software without restriction, +// including without limitation the rights to use, copy, modify, merge, +// publish, distribute, sublicense, and/or sell copies of the Software, +// and to permit persons to whom the Software is furnished to do so, +// subject to the following conditions: +// +// The above copyright notice and +// this permission notice shall be included in all copies +// or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED “AS IS”, +// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +// ARISING FROM, OUT OF OR IN CONNECTION WITH +// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +// ----------------------------------------------------------------------- +// ----------------------------------------------------------------------- +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StgSharp.Mathematics +{ + internal class KernelParallel { } +} diff --git a/StgSharp.Common/Mathematics/Linear/Matrix.Basic.cs b/StgSharp.Common/Mathematics/Linear/Matrix.Basic.cs new file mode 100644 index 00000000..88486b88 --- /dev/null +++ b/StgSharp.Common/Mathematics/Linear/Matrix.Basic.cs @@ -0,0 +1,52 @@ +//----------------------------------------------------------------------- +// ----------------------------------------------------------------------- +// file="Matrix.Basic.cs" +// Project: StgSharp +// AuthorGroup: Nitload Space +// Copyright (c) Nitload Space. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the “Software”), to deal in the Software without restriction, +// including without limitation the rights to use, copy, modify, merge, +// publish, distribute, sublicense, and/or sell copies of the Software, +// and to permit persons to whom the Software is furnished to do so, +// subject to the following conditions: +// +// The above copyright notice and +// this permission notice shall be included in all copies +// or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED “AS IS”, +// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +// ARISING FROM, OUT OF OR IN CONNECTION WITH +// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +// ----------------------------------------------------------------------- +// ----------------------------------------------------------------------- +using System; +using System.Collections.Generic; +using System.Linq; +using System.Security.AccessControl; +using System.Text; +using System.Threading.Tasks; + +namespace StgSharp.Mathematics +{ + public static class Matrix + { + + public static Matrix Add(Matrix left, Matrix right) + { + if (left.ColumnLength != right.ColumnLength || left.RowLength != right.RowLength) { + throw new IndexOutOfRangeException("Matrix dimensions must agree."); + } + Matrix result = GCMatrix.FromDefault(left.ColumnLength, left.RowLength); + } + + } +} diff --git a/StgSharp.Common/Mathematics/Linear/Matrix.GC.cs b/StgSharp.Common/Mathematics/Linear/Matrix.GC.cs new file mode 100644 index 00000000..1a23bf2b --- /dev/null +++ b/StgSharp.Common/Mathematics/Linear/Matrix.GC.cs @@ -0,0 +1,111 @@ +//----------------------------------------------------------------------- +// ----------------------------------------------------------------------- +// file="Matrix.GC.cs" +// Project: StgSharp +// AuthorGroup: Nitload Space +// Copyright (c) Nitload Space. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the “Software”), to deal in the Software without restriction, +// including without limitation the rights to use, copy, modify, merge, +// publish, distribute, sublicense, and/or sell copies of the Software, +// and to permit persons to whom the Software is furnished to do so, +// subject to the following conditions: +// +// The above copyright notice and +// this permission notice shall be included in all copies +// or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED “AS IS”, +// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +// ARISING FROM, OUT OF OR IN CONNECTION WITH +// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +// ----------------------------------------------------------------------- +// ----------------------------------------------------------------------- +using StgSharp.HighPerformance; +using StgSharp.Mathematics; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Numerics; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Text; +using System.Threading.Tasks; + +namespace StgSharp.Mathematics +{ + internal unsafe partial class GCMatrix : Matrix where T: unmanaged, INumber + { + + private readonly MatrixKernel* _buffer; + + public GCMatrix(int column, int row) + { + KernelColumnLength = (column + 3) / 4; + KernelRowLength = (row + 3) / t_count; + _buffer = (MatrixKernel*)NativeMemory.AlignedAlloc((nuint)(column * row * sizeof(T)), (nuint)World.DefaultSIMDAlignment); + } + + public override ref T this[int column, int row] + { + get + { + AssertIndex(column, row); + int kernelColumn = column / 4, c = column % 4; + int kernelRow = row / t_count, r = row % t_count; + ref MatrixKernel kernel = ref _buffer[kernelColumn + KernelColumnLength * kernelRow]; + return ref kernel.UnsafeIndex(c, r); + } + } + + public override Matrix this[ReadOnlySpan column, ReadOnlySpan row] + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + + public override unsafe ref MatrixKernel GetMatrixKernel(int column, int row) + { + AssertIndex(column, row); + int kernelColumn = column / 4; + int kernelRow = row / t_count; + return ref _buffer[kernelColumn + (KernelColumnLength * kernelRow)]; + } + + public override ref T UnsafeIndex(int column, int row) + { + int kernelColumn = column / 4, c = column % 4; + int kernelRow = row / t_count, r = row % t_count; + ref MatrixKernel kernel = ref _buffer[kernelColumn + (KernelColumnLength * kernelRow)]; + return ref kernel.UnsafeIndex(c, r); + } + + #region enumeration + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public override unsafe MatrixSegmentEnumeration GetColumnEnumeration() + { + return new MatrixSegmentEnumeration(_buffer, KernelColumnLength, KernelColumnLength * KernelRowLength, 1, KernelColumnLength); + } + + public override unsafe MatrixSegmentEnumeration GetRowEnumeration() + { + return new MatrixSegmentEnumeration(_buffer, 1, KernelColumnLength, KernelColumnLength, KernelRowLength); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public override unsafe MatrixSegmentEnumeration GetSequentialEnumeration() + { + return new MatrixSegmentEnumeration(_buffer, KernelRowLength * KernelColumnLength, KernelColumnLength * KernelRowLength, 1, KernelRowLength * KernelColumnLength); + } + + #endregion + } +} diff --git a/StgSharp.Common/Mathematics/Linear/Matrix.HLSF.cs b/StgSharp.Common/Mathematics/Linear/Matrix.HLSF.cs new file mode 100644 index 00000000..c1053dd3 --- /dev/null +++ b/StgSharp.Common/Mathematics/Linear/Matrix.HLSF.cs @@ -0,0 +1,120 @@ +//----------------------------------------------------------------------- +// ----------------------------------------------------------------------- +// file="Matrix.HLSF.cs" +// Project: StgSharp +// AuthorGroup: Nitload Space +// Copyright (c) Nitload Space. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the “Software”), to deal in the Software without restriction, +// including without limitation the rights to use, copy, modify, merge, +// publish, distribute, sublicense, and/or sell copies of the Software, +// and to permit persons to whom the Software is furnished to do so, +// subject to the following conditions: +// +// The above copyright notice and +// this permission notice shall be included in all copies +// or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED “AS IS”, +// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +// ARISING FROM, OUT OF OR IN CONNECTION WITH +// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +// ----------------------------------------------------------------------- +// ----------------------------------------------------------------------- +using StgSharp.HighPerformance; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Numerics; +using System.Runtime.CompilerServices; +using System.Text; +using System.Threading.Tasks; + +using hlsfAllocator = global::StgSharp.HighPerformance.Memory.HybridLayerSegregatedFitAllocator; +using hlsfHandle = global::StgSharp.HighPerformance.Memory.HybridLayerSegregatedFitAllocationHandle; + +namespace StgSharp.Mathematics +{ + internal unsafe partial class HlsfMatrix : Matrix where T: unmanaged, INumber + { + + private readonly MatrixKernel* k_buffer; + private readonly hlsfAllocator allocator; + private readonly hlsfHandle handle; + + internal HlsfMatrix(int column, int row, hlsfAllocator allocator) + { + KernelColumnLength = (column + 3) / 4; + KernelRowLength = (row + 3) / t_count; + this.handle = allocator.Alloc((uint)(KernelColumnLength * KernelRowLength * sizeof(MatrixKernel))); + k_buffer = (MatrixKernel*)handle.Pointer; + } + + public override ref T this[int column, int row] + { + get + { + AssertIndex(column, row); + int kernelColumn = column / 4, c = column % 4; + int kernelRow = row / t_count, r = row % t_count; + ref MatrixKernel kernel = ref k_buffer[(kernelColumn * kernelColumn) + kernelRow]; + return ref kernel.UnsafeIndex(c, r); + } + } + + public override Matrix this[ReadOnlySpan column, ReadOnlySpan row] + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + + public override unsafe ref MatrixKernel GetMatrixKernel(int column, int row) + { + AssertIndex(column, row); + int kernelColumn = column / 4, c = column % 4; + int kernelRow = row / t_count, r = row % t_count; + return ref k_buffer[(kernelColumn * kernelColumn) + kernelRow]; + } + + public override ref T UnsafeIndex(int column, int row) + { + int kernelColumn = column / 4, c = column % 4; + int kernelRow = row / t_count, r = row % t_count; + ref MatrixKernel kernel = ref k_buffer[(kernelColumn * kernelColumn) + kernelRow]; + return ref kernel.UnsafeIndex(c, r); + } + + ~HlsfMatrix() + { + allocator.Free(handle); + } + + #region enumeration + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public override unsafe MatrixSegmentEnumeration GetColumnEnumeration() + { + return new MatrixSegmentEnumeration(k_buffer, KernelColumnLength, KernelColumnLength * KernelRowLength, 1, KernelColumnLength); + } + + public override unsafe MatrixSegmentEnumeration GetRowEnumeration() + { + return new MatrixSegmentEnumeration(k_buffer, 1, KernelColumnLength, KernelColumnLength, KernelRowLength); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public override unsafe MatrixSegmentEnumeration GetSequentialEnumeration() + { + return new MatrixSegmentEnumeration(k_buffer, KernelRowLength * KernelColumnLength, KernelColumnLength * KernelRowLength, 1, KernelRowLength * KernelColumnLength); + } + + #endregion + } +} diff --git a/StgSharp.Common/Mathematics/Linear/MatrixEnum.cs b/StgSharp.Common/Mathematics/Linear/MatrixEnum.cs new file mode 100644 index 00000000..5f6521c0 --- /dev/null +++ b/StgSharp.Common/Mathematics/Linear/MatrixEnum.cs @@ -0,0 +1,46 @@ +//----------------------------------------------------------------------- +// ----------------------------------------------------------------------- +// file="MatrixEnum.cs" +// Project: StgSharp +// AuthorGroup: Nitload Space +// Copyright (c) Nitload Space. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the “Software”), to deal in the Software without restriction, +// including without limitation the rights to use, copy, modify, merge, +// publish, distribute, sublicense, and/or sell copies of the Software, +// and to permit persons to whom the Software is furnished to do so, +// subject to the following conditions: +// +// The above copyright notice and +// this permission notice shall be included in all copies +// or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED “AS IS”, +// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +// ARISING FROM, OUT OF OR IN CONNECTION WITH +// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +// ----------------------------------------------------------------------- +// ----------------------------------------------------------------------- +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StgSharp.Mathematics +{ + public enum MatrixAllocation + { + + HLSF, + GC, + + } +} diff --git a/StgSharp.Common/Mathematics/Linear/MatrixIndex.cs b/StgSharp.Common/Mathematics/Linear/MatrixIndex.cs new file mode 100644 index 00000000..0012e3e0 --- /dev/null +++ b/StgSharp.Common/Mathematics/Linear/MatrixIndex.cs @@ -0,0 +1,77 @@ +//----------------------------------------------------------------------- +// ----------------------------------------------------------------------- +// file="MatrixIndex.cs" +// Project: StgSharp +// AuthorGroup: Nitload Space +// Copyright (c) Nitload Space. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the “Software”), to deal in the Software without restriction, +// including without limitation the rights to use, copy, modify, merge, +// publish, distribute, sublicense, and/or sell copies of the Software, +// and to permit persons to whom the Software is furnished to do so, +// subject to the following conditions: +// +// The above copyright notice and +// this permission notice shall be included in all copies +// or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED “AS IS”, +// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +// ARISING FROM, OUT OF OR IN CONNECTION WITH +// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +// ----------------------------------------------------------------------- +// ----------------------------------------------------------------------- +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Text; +using System.Threading.Tasks; + +namespace StgSharp.Mathematics +{ + [StructLayout(LayoutKind.Sequential)] + public readonly struct MatrixIndex + { + + public readonly int Begin; + public readonly int End; + + private MatrixIndex(int begin, int end, bool safe = false) + { + Begin = begin; + End = end; + } + + internal MatrixIndex(int begin, int end) + { + if (begin > end) { + throw new ArgumentException("Begin index cannot be greater than end index."); + } + + Begin = begin; + End = end; + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static implicit operator MatrixIndex((int, int) range) + { + return new(range.Item1, range.Item2, false); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static implicit operator MatrixIndex(int index) + { + return new(index, -1, false); + } + + } +} diff --git a/StgSharp.Common/Mathematics/Linear/MatrixMarshal.cs b/StgSharp.Common/Mathematics/Linear/MatrixMarshal.cs new file mode 100644 index 00000000..967a3a1f --- /dev/null +++ b/StgSharp.Common/Mathematics/Linear/MatrixMarshal.cs @@ -0,0 +1,40 @@ +//----------------------------------------------------------------------- +// ----------------------------------------------------------------------- +// file="MatrixMarshal.cs" +// Project: StgSharp +// AuthorGroup: Nitload Space +// Copyright (c) Nitload Space. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the “Software”), to deal in the Software without restriction, +// including without limitation the rights to use, copy, modify, merge, +// publish, distribute, sublicense, and/or sell copies of the Software, +// and to permit persons to whom the Software is furnished to do so, +// subject to the following conditions: +// +// The above copyright notice and +// this permission notice shall be included in all copies +// or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED “AS IS”, +// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +// ARISING FROM, OUT OF OR IN CONNECTION WITH +// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +// ----------------------------------------------------------------------- +// ----------------------------------------------------------------------- +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StgSharp.Mathematics +{ + public readonly ref struct MatrixMarshal { } +} diff --git a/StgSharp.Common/Mathematics/Linear/MatrixParallelTask.cs b/StgSharp.Common/Mathematics/Linear/MatrixParallelTask.cs new file mode 100644 index 00000000..c1992c9b --- /dev/null +++ b/StgSharp.Common/Mathematics/Linear/MatrixParallelTask.cs @@ -0,0 +1,72 @@ +//----------------------------------------------------------------------- +// ----------------------------------------------------------------------- +// file="MatrixParallelTask.cs" +// Project: StgSharp +// AuthorGroup: Nitload Space +// Copyright (c) Nitload Space. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the “Software”), to deal in the Software without restriction, +// including without limitation the rights to use, copy, modify, merge, +// publish, distribute, sublicense, and/or sell copies of the Software, +// and to permit persons to whom the Software is furnished to do so, +// subject to the following conditions: +// +// The above copyright notice and +// this permission notice shall be included in all copies +// or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED “AS IS”, +// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +// ARISING FROM, OUT OF OR IN CONNECTION WITH +// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +// ----------------------------------------------------------------------- +// ----------------------------------------------------------------------- +using StgSharp.HighPerformance; +using System; +using System.Collections.Generic; +using System.Drawing; +using System.IO.Pipes; +using System.Linq; +using System.Numerics; +using System.Runtime.InteropServices; +using System.Text; +using System.Threading; +using System.Threading.Tasks; + +namespace StgSharp.Mathematics +{ + [StructLayout(LayoutKind.Explicit)] + internal unsafe struct MatrixParallelTask + { + + [FieldOffset(0)] public MatrixKernel* left; + [FieldOffset(8)] public MatrixKernel* result; + [FieldOffset(16)]public MatrixKernel* right; + [FieldOffset(24)]public int constCount; + [FieldOffset(32)]public IntPtr executionHandle; + + } + + [StructLayout(LayoutKind.Explicit)] + internal unsafe struct MatrixParallelTask where T: unmanaged, INumber + { + + [FieldOffset(0)] public MatrixKernel* left; + [FieldOffset(8)] public MatrixKernel* result; + [FieldOffset(16)]public MatrixKernel* right; + [FieldOffset(24)]public int constCount; + [FieldOffset(32)] public IntPtr executionHandle; + [FieldOffset(0)] public MatrixParallelTask task; + [FieldOffset(sizeof(MatrixParallelTask))]public T Constant; + + public void Execute() { } + + } +} diff --git a/StgSharp.Native/.clang-format b/StgSharp.Native/.clang-format new file mode 100644 index 00000000..89332e75 --- /dev/null +++ b/StgSharp.Native/.clang-format @@ -0,0 +1,747 @@ +# Format Style Options - Created with Clang Power Tools +--- +AccessModifierOffset: -4 +AlignAfterOpenBracket: Align +AlignConsecutiveAssignments: false +AlignConsecutiveDeclarations: false +AlignEscapedNewlines: Left +AlignOperands: true +AlignTrailingComments: false +AllowAllParametersOfDeclarationOnNextLine: false +AllowShortBlocksOnASingleLine: false +AllowShortCaseLabelsOnASingleLine: false +AllowShortFunctionsOnASingleLine: None +AllowShortIfStatementsOnASingleLine: false +AllowShortLoopsOnASingleLine: false +AlwaysBreakAfterDefinitionReturnType: None +AlwaysBreakAfterReturnType: None +AlwaysBreakBeforeMultilineStrings: false +AlwaysBreakTemplateDeclarations: false +BinPackArguments: true +BinPackParameters: true +BraceWrapping: + AfterCaseLabel: false + AfterClass: false + AfterControlStatement: false + AfterEnum: false + AfterFunction: true + AfterNamespace: true + AfterObjCDeclaration: false + AfterStruct: false + AfterUnion: false + AfterExternBlock: false + BeforeCatch: false + BeforeElse: false + IndentBraces: false + SplitEmptyFunction: true + SplitEmptyRecord: true + SplitEmptyNamespace: true + BeforeLambdaBody: false + BeforeWhile: false +BreakBeforeBinaryOperators: None +BreakBeforeBraces: Custom +BreakBeforeInheritanceComma: false +BreakBeforeTernaryOperators: false +BreakConstructorInitializers: BeforeComma +BreakAfterJavaFieldAnnotations: false +BreakStringLiterals: false +ColumnLimit: 100 +CommentPragmas: '^ IWYU pragma:' +CompactNamespaces: false +ConstructorInitializerAllOnOneLineOrOnePerLine: false +ConstructorInitializerIndentWidth : 8 +ContinuationIndentWidth: 8 +Cpp11BracedListStyle: false +DerivePointerAlignment: false +ExperimentalAutoDetectBinPacking: false +FixNamespaceComments: false +ForEachMacros: + - '__ata_qc_for_each' + - '__bio_for_each_bvec' + - '__bio_for_each_segment' + - '__evlist__for_each_entry' + - '__evlist__for_each_entry_continue' + - '__evlist__for_each_entry_from' + - '__evlist__for_each_entry_reverse' + - '__evlist__for_each_entry_safe' + - '__for_each_mem_range' + - '__for_each_mem_range_rev' + - '__for_each_thread' + - '__hlist_for_each_rcu' + - '__map__for_each_symbol_by_name' + - '__pci_bus_for_each_res0' + - '__pci_bus_for_each_res1' + - '__pci_dev_for_each_res0' + - '__pci_dev_for_each_res1' + - '__perf_evlist__for_each_entry' + - '__perf_evlist__for_each_entry_reverse' + - '__perf_evlist__for_each_entry_safe' + - '__rq_for_each_bio' + - '__shost_for_each_device' + - '__sym_for_each' + - 'apei_estatus_for_each_section' + - 'ata_for_each_dev' + - 'ata_for_each_link' + - 'ata_qc_for_each' + - 'ata_qc_for_each_raw' + - 'ata_qc_for_each_with_internal' + - 'ax25_for_each' + - 'ax25_uid_for_each' + - 'bio_for_each_bvec' + - 'bio_for_each_bvec_all' + - 'bio_for_each_folio_all' + - 'bio_for_each_integrity_vec' + - 'bio_for_each_segment' + - 'bio_for_each_segment_all' + - 'bio_list_for_each' + - 'bip_for_each_vec' + - 'bond_for_each_slave' + - 'bond_for_each_slave_rcu' + - 'bpf_for_each' + - 'bpf_for_each_reg_in_vstate' + - 'bpf_for_each_reg_in_vstate_mask' + - 'bpf_for_each_spilled_reg' + - 'bpf_object__for_each_map' + - 'bpf_object__for_each_program' + - 'btree_for_each_safe128' + - 'btree_for_each_safe32' + - 'btree_for_each_safe64' + - 'btree_for_each_safel' + - 'card_for_each_dev' + - 'cgroup_taskset_for_each' + - 'cgroup_taskset_for_each_leader' + - 'cpu_aggr_map__for_each_idx' + - 'cpufreq_for_each_efficient_entry_idx' + - 'cpufreq_for_each_entry' + - 'cpufreq_for_each_entry_idx' + - 'cpufreq_for_each_valid_entry' + - 'cpufreq_for_each_valid_entry_idx' + - 'css_for_each_child' + - 'css_for_each_descendant_post' + - 'css_for_each_descendant_pre' + - 'damon_for_each_region' + - 'damon_for_each_region_from' + - 'damon_for_each_region_safe' + - 'damon_for_each_scheme' + - 'damon_for_each_scheme_safe' + - 'damon_for_each_target' + - 'damon_for_each_target_safe' + - 'damos_for_each_filter' + - 'damos_for_each_filter_safe' + - 'damos_for_each_quota_goal' + - 'damos_for_each_quota_goal_safe' + - 'data__for_each_file' + - 'data__for_each_file_new' + - 'data__for_each_file_start' + - 'device_for_each_child_node' + - 'device_for_each_child_node_scoped' + - 'dma_fence_array_for_each' + - 'dma_fence_chain_for_each' + - 'dma_fence_unwrap_for_each' + - 'dma_resv_for_each_fence' + - 'dma_resv_for_each_fence_unlocked' + - 'do_for_each_ftrace_op' + - 'drm_atomic_crtc_for_each_plane' + - 'drm_atomic_crtc_state_for_each_plane' + - 'drm_atomic_crtc_state_for_each_plane_state' + - 'drm_atomic_for_each_plane_damage' + - 'drm_client_for_each_connector_iter' + - 'drm_client_for_each_modeset' + - 'drm_connector_for_each_possible_encoder' + - 'drm_exec_for_each_locked_object' + - 'drm_exec_for_each_locked_object_reverse' + - 'drm_for_each_bridge_in_chain' + - 'drm_for_each_connector_iter' + - 'drm_for_each_crtc' + - 'drm_for_each_crtc_reverse' + - 'drm_for_each_encoder' + - 'drm_for_each_encoder_mask' + - 'drm_for_each_fb' + - 'drm_for_each_legacy_plane' + - 'drm_for_each_plane' + - 'drm_for_each_plane_mask' + - 'drm_for_each_privobj' + - 'drm_gem_for_each_gpuvm_bo' + - 'drm_gem_for_each_gpuvm_bo_safe' + - 'drm_gpuva_for_each_op' + - 'drm_gpuva_for_each_op_from_reverse' + - 'drm_gpuva_for_each_op_reverse' + - 'drm_gpuva_for_each_op_safe' + - 'drm_gpuvm_bo_for_each_va' + - 'drm_gpuvm_bo_for_each_va_safe' + - 'drm_gpuvm_for_each_va' + - 'drm_gpuvm_for_each_va_range' + - 'drm_gpuvm_for_each_va_range_safe' + - 'drm_gpuvm_for_each_va_safe' + - 'drm_mm_for_each_hole' + - 'drm_mm_for_each_node' + - 'drm_mm_for_each_node_in_range' + - 'drm_mm_for_each_node_safe' + - 'dsa_switch_for_each_available_port' + - 'dsa_switch_for_each_cpu_port' + - 'dsa_switch_for_each_cpu_port_continue_reverse' + - 'dsa_switch_for_each_port' + - 'dsa_switch_for_each_port_continue_reverse' + - 'dsa_switch_for_each_port_safe' + - 'dsa_switch_for_each_user_port' + - 'dsa_switch_for_each_user_port_continue_reverse' + - 'dsa_tree_for_each_cpu_port' + - 'dsa_tree_for_each_user_port' + - 'dsa_tree_for_each_user_port_continue_reverse' + - 'dso__for_each_symbol' + - 'elf_hash_for_each_possible' + - 'elf_symtab__for_each_symbol' + - 'evlist__for_each_cpu' + - 'evlist__for_each_entry' + - 'evlist__for_each_entry_continue' + - 'evlist__for_each_entry_from' + - 'evlist__for_each_entry_reverse' + - 'evlist__for_each_entry_safe' + - 'flow_action_for_each' + - 'for_each_acpi_consumer_dev' + - 'for_each_acpi_dev_match' + - 'for_each_active_dev_scope' + - 'for_each_active_drhd_unit' + - 'for_each_active_iommu' + - 'for_each_active_route' + - 'for_each_aggr_pgid' + - 'for_each_and_bit' + - 'for_each_andnot_bit' + - 'for_each_available_child_of_node' + - 'for_each_available_child_of_node_scoped' + - 'for_each_bench' + - 'for_each_bio' + - 'for_each_board_func_rsrc' + - 'for_each_btf_ext_rec' + - 'for_each_btf_ext_sec' + - 'for_each_bvec' + - 'for_each_card_auxs' + - 'for_each_card_auxs_safe' + - 'for_each_card_components' + - 'for_each_card_dapms' + - 'for_each_card_pre_auxs' + - 'for_each_card_prelinks' + - 'for_each_card_rtds' + - 'for_each_card_rtds_safe' + - 'for_each_card_widgets' + - 'for_each_card_widgets_safe' + - 'for_each_cgroup_storage_type' + - 'for_each_child_of_node' + - 'for_each_child_of_node_scoped' + - 'for_each_clear_bit' + - 'for_each_clear_bit_from' + - 'for_each_clear_bitrange' + - 'for_each_clear_bitrange_from' + - 'for_each_cmd' + - 'for_each_cmsghdr' + - 'for_each_collection' + - 'for_each_comp_order' + - 'for_each_compatible_node' + - 'for_each_component_dais' + - 'for_each_component_dais_safe' + - 'for_each_conduit' + - 'for_each_console' + - 'for_each_console_srcu' + - 'for_each_cpu' + - 'for_each_cpu_and' + - 'for_each_cpu_andnot' + - 'for_each_cpu_from' + - 'for_each_cpu_or' + - 'for_each_cpu_wrap' + - 'for_each_dapm_widgets' + - 'for_each_dedup_cand' + - 'for_each_dev_addr' + - 'for_each_dev_scope' + - 'for_each_dma_cap_mask' + - 'for_each_dpcm_be' + - 'for_each_dpcm_be_rollback' + - 'for_each_dpcm_be_safe' + - 'for_each_dpcm_fe' + - 'for_each_drhd_unit' + - 'for_each_dss_dev' + - 'for_each_efi_memory_desc' + - 'for_each_efi_memory_desc_in_map' + - 'for_each_element' + - 'for_each_element_extid' + - 'for_each_element_id' + - 'for_each_enabled_cpu' + - 'for_each_endpoint_of_node' + - 'for_each_event' + - 'for_each_event_tps' + - 'for_each_evictable_lru' + - 'for_each_fib6_node_rt_rcu' + - 'for_each_fib6_walker_rt' + - 'for_each_file_lock' + - 'for_each_free_mem_pfn_range_in_zone_from' + - 'for_each_free_mem_range' + - 'for_each_free_mem_range_reverse' + - 'for_each_func_rsrc' + - 'for_each_gpiochip_node' + - 'for_each_group_evsel' + - 'for_each_group_evsel_head' + - 'for_each_group_member' + - 'for_each_group_member_head' + - 'for_each_hstate' + - 'for_each_hwgpio' + - 'for_each_if' + - 'for_each_inject_fn' + - 'for_each_insn' + - 'for_each_insn_op_loc' + - 'for_each_insn_prefix' + - 'for_each_intid' + - 'for_each_iommu' + - 'for_each_ip_tunnel_rcu' + - 'for_each_irq_nr' + - 'for_each_lang' + - 'for_each_link_ch_maps' + - 'for_each_link_codecs' + - 'for_each_link_cpus' + - 'for_each_link_platforms' + - 'for_each_lru' + - 'for_each_matching_node' + - 'for_each_matching_node_and_match' + - 'for_each_media_entity_data_link' + - 'for_each_mem_pfn_range' + - 'for_each_mem_range' + - 'for_each_mem_range_rev' + - 'for_each_mem_region' + - 'for_each_member' + - 'for_each_memory' + - 'for_each_migratetype_order' + - 'for_each_missing_reg' + - 'for_each_mle_subelement' + - 'for_each_mod_mem_type' + - 'for_each_net' + - 'for_each_net_continue_reverse' + - 'for_each_net_rcu' + - 'for_each_netdev' + - 'for_each_netdev_continue' + - 'for_each_netdev_continue_rcu' + - 'for_each_netdev_continue_reverse' + - 'for_each_netdev_dump' + - 'for_each_netdev_feature' + - 'for_each_netdev_in_bond_rcu' + - 'for_each_netdev_rcu' + - 'for_each_netdev_reverse' + - 'for_each_netdev_safe' + - 'for_each_new_connector_in_state' + - 'for_each_new_crtc_in_state' + - 'for_each_new_mst_mgr_in_state' + - 'for_each_new_plane_in_state' + - 'for_each_new_plane_in_state_reverse' + - 'for_each_new_private_obj_in_state' + - 'for_each_new_reg' + - 'for_each_nhlt_endpoint' + - 'for_each_nhlt_endpoint_fmtcfg' + - 'for_each_nhlt_fmtcfg' + - 'for_each_node' + - 'for_each_node_by_name' + - 'for_each_node_by_type' + - 'for_each_node_mask' + - 'for_each_node_state' + - 'for_each_node_with_cpus' + - 'for_each_node_with_property' + - 'for_each_nonreserved_multicast_dest_pgid' + - 'for_each_numa_hop_mask' + - 'for_each_of_allnodes' + - 'for_each_of_allnodes_from' + - 'for_each_of_cpu_node' + - 'for_each_of_pci_range' + - 'for_each_old_connector_in_state' + - 'for_each_old_crtc_in_state' + - 'for_each_old_mst_mgr_in_state' + - 'for_each_old_plane_in_state' + - 'for_each_old_private_obj_in_state' + - 'for_each_oldnew_connector_in_state' + - 'for_each_oldnew_crtc_in_state' + - 'for_each_oldnew_mst_mgr_in_state' + - 'for_each_oldnew_plane_in_state' + - 'for_each_oldnew_plane_in_state_reverse' + - 'for_each_oldnew_private_obj_in_state' + - 'for_each_online_cpu' + - 'for_each_online_node' + - 'for_each_online_pgdat' + - 'for_each_or_bit' + - 'for_each_path' + - 'for_each_pci_bridge' + - 'for_each_pci_dev' + - 'for_each_pcm_streams' + - 'for_each_physmem_range' + - 'for_each_populated_zone' + - 'for_each_possible_cpu' + - 'for_each_present_blessed_reg' + - 'for_each_present_cpu' + - 'for_each_prime_number' + - 'for_each_prime_number_from' + - 'for_each_probe_cache_entry' + - 'for_each_process' + - 'for_each_process_thread' + - 'for_each_prop_codec_conf' + - 'for_each_prop_dai_codec' + - 'for_each_prop_dai_cpu' + - 'for_each_prop_dlc_codecs' + - 'for_each_prop_dlc_cpus' + - 'for_each_prop_dlc_platforms' + - 'for_each_property_of_node' + - 'for_each_reg' + - 'for_each_reg_filtered' + - 'for_each_reloc' + - 'for_each_reloc_from' + - 'for_each_requested_gpio' + - 'for_each_requested_gpio_in_range' + - 'for_each_reserved_child_of_node' + - 'for_each_reserved_mem_range' + - 'for_each_reserved_mem_region' + - 'for_each_rtd_ch_maps' + - 'for_each_rtd_codec_dais' + - 'for_each_rtd_components' + - 'for_each_rtd_cpu_dais' + - 'for_each_rtd_dais' + - 'for_each_rtd_dais_reverse' + - 'for_each_sband_iftype_data' + - 'for_each_script' + - 'for_each_sec' + - 'for_each_set_bit' + - 'for_each_set_bit_from' + - 'for_each_set_bit_wrap' + - 'for_each_set_bitrange' + - 'for_each_set_bitrange_from' + - 'for_each_set_clump8' + - 'for_each_sg' + - 'for_each_sg_dma_page' + - 'for_each_sg_page' + - 'for_each_sgtable_dma_page' + - 'for_each_sgtable_dma_sg' + - 'for_each_sgtable_page' + - 'for_each_sgtable_sg' + - 'for_each_sibling_event' + - 'for_each_sta_active_link' + - 'for_each_subelement' + - 'for_each_subelement_extid' + - 'for_each_subelement_id' + - 'for_each_sublist' + - 'for_each_subsystem' + - 'for_each_supported_activate_fn' + - 'for_each_supported_inject_fn' + - 'for_each_sym' + - 'for_each_test' + - 'for_each_thread' + - 'for_each_token' + - 'for_each_unicast_dest_pgid' + - 'for_each_valid_link' + - 'for_each_vif_active_link' + - 'for_each_vma' + - 'for_each_vma_range' + - 'for_each_vsi' + - 'for_each_wakeup_source' + - 'for_each_zone' + - 'for_each_zone_zonelist' + - 'for_each_zone_zonelist_nodemask' + - 'func_for_each_insn' + - 'fwnode_for_each_available_child_node' + - 'fwnode_for_each_child_node' + - 'fwnode_for_each_parent_node' + - 'fwnode_graph_for_each_endpoint' + - 'gadget_for_each_ep' + - 'genradix_for_each' + - 'genradix_for_each_from' + - 'genradix_for_each_reverse' + - 'hash_for_each' + - 'hash_for_each_possible' + - 'hash_for_each_possible_rcu' + - 'hash_for_each_possible_rcu_notrace' + - 'hash_for_each_possible_safe' + - 'hash_for_each_rcu' + - 'hash_for_each_safe' + - 'hashmap__for_each_entry' + - 'hashmap__for_each_entry_safe' + - 'hashmap__for_each_key_entry' + - 'hashmap__for_each_key_entry_safe' + - 'hctx_for_each_ctx' + - 'hists__for_each_format' + - 'hists__for_each_sort_list' + - 'hlist_bl_for_each_entry' + - 'hlist_bl_for_each_entry_rcu' + - 'hlist_bl_for_each_entry_safe' + - 'hlist_for_each' + - 'hlist_for_each_entry' + - 'hlist_for_each_entry_continue' + - 'hlist_for_each_entry_continue_rcu' + - 'hlist_for_each_entry_continue_rcu_bh' + - 'hlist_for_each_entry_from' + - 'hlist_for_each_entry_from_rcu' + - 'hlist_for_each_entry_rcu' + - 'hlist_for_each_entry_rcu_bh' + - 'hlist_for_each_entry_rcu_notrace' + - 'hlist_for_each_entry_safe' + - 'hlist_for_each_entry_srcu' + - 'hlist_for_each_safe' + - 'hlist_nulls_for_each_entry' + - 'hlist_nulls_for_each_entry_from' + - 'hlist_nulls_for_each_entry_rcu' + - 'hlist_nulls_for_each_entry_safe' + - 'i3c_bus_for_each_i2cdev' + - 'i3c_bus_for_each_i3cdev' + - 'idr_for_each_entry' + - 'idr_for_each_entry_continue' + - 'idr_for_each_entry_continue_ul' + - 'idr_for_each_entry_ul' + - 'in_dev_for_each_ifa_rcu' + - 'in_dev_for_each_ifa_rtnl' + - 'inet_bind_bucket_for_each' + - 'interval_tree_for_each_span' + - 'intlist__for_each_entry' + - 'intlist__for_each_entry_safe' + - 'kcore_copy__for_each_phdr' + - 'key_for_each' + - 'key_for_each_safe' + - 'klp_for_each_func' + - 'klp_for_each_func_safe' + - 'klp_for_each_func_static' + - 'klp_for_each_object' + - 'klp_for_each_object_safe' + - 'klp_for_each_object_static' + - 'kunit_suite_for_each_test_case' + - 'kvm_for_each_memslot' + - 'kvm_for_each_memslot_in_gfn_range' + - 'kvm_for_each_vcpu' + - 'libbpf_nla_for_each_attr' + - 'list_for_each' + - 'list_for_each_codec' + - 'list_for_each_codec_safe' + - 'list_for_each_continue' + - 'list_for_each_entry' + - 'list_for_each_entry_continue' + - 'list_for_each_entry_continue_rcu' + - 'list_for_each_entry_continue_reverse' + - 'list_for_each_entry_from' + - 'list_for_each_entry_from_rcu' + - 'list_for_each_entry_from_reverse' + - 'list_for_each_entry_lockless' + - 'list_for_each_entry_rcu' + - 'list_for_each_entry_reverse' + - 'list_for_each_entry_safe' + - 'list_for_each_entry_safe_continue' + - 'list_for_each_entry_safe_from' + - 'list_for_each_entry_safe_reverse' + - 'list_for_each_entry_srcu' + - 'list_for_each_from' + - 'list_for_each_prev' + - 'list_for_each_prev_safe' + - 'list_for_each_rcu' + - 'list_for_each_reverse' + - 'list_for_each_safe' + - 'llist_for_each' + - 'llist_for_each_entry' + - 'llist_for_each_entry_safe' + - 'llist_for_each_safe' + - 'lwq_for_each_safe' + - 'map__for_each_symbol' + - 'map__for_each_symbol_by_name' + - 'mas_for_each' + - 'mci_for_each_dimm' + - 'media_device_for_each_entity' + - 'media_device_for_each_intf' + - 'media_device_for_each_link' + - 'media_device_for_each_pad' + - 'media_entity_for_each_pad' + - 'media_pipeline_for_each_entity' + - 'media_pipeline_for_each_pad' + - 'mlx5_lag_for_each_peer_mdev' + - 'msi_domain_for_each_desc' + - 'msi_for_each_desc' + - 'mt_for_each' + - 'nanddev_io_for_each_page' + - 'netdev_for_each_lower_dev' + - 'netdev_for_each_lower_private' + - 'netdev_for_each_lower_private_rcu' + - 'netdev_for_each_mc_addr' + - 'netdev_for_each_synced_mc_addr' + - 'netdev_for_each_synced_uc_addr' + - 'netdev_for_each_uc_addr' + - 'netdev_for_each_upper_dev_rcu' + - 'netdev_hw_addr_list_for_each' + - 'nft_rule_for_each_expr' + - 'nla_for_each_attr' + - 'nla_for_each_attr_type' + - 'nla_for_each_nested' + - 'nla_for_each_nested_type' + - 'nlmsg_for_each_attr' + - 'nlmsg_for_each_msg' + - 'nr_neigh_for_each' + - 'nr_neigh_for_each_safe' + - 'nr_node_for_each' + - 'nr_node_for_each_safe' + - 'of_for_each_phandle' + - 'of_property_for_each_string' + - 'of_property_for_each_u32' + - 'pci_bus_for_each_resource' + - 'pci_dev_for_each_resource' + - 'pcl_for_each_chunk' + - 'pcl_for_each_segment' + - 'pcm_for_each_format' + - 'perf_config_items__for_each_entry' + - 'perf_config_sections__for_each_entry' + - 'perf_config_set__for_each_entry' + - 'perf_cpu_map__for_each_cpu' + - 'perf_cpu_map__for_each_cpu_skip_any' + - 'perf_cpu_map__for_each_idx' + - 'perf_evlist__for_each_entry' + - 'perf_evlist__for_each_entry_reverse' + - 'perf_evlist__for_each_entry_safe' + - 'perf_evlist__for_each_evsel' + - 'perf_evlist__for_each_mmap' + - 'perf_hpp_list__for_each_format' + - 'perf_hpp_list__for_each_format_safe' + - 'perf_hpp_list__for_each_sort_list' + - 'perf_hpp_list__for_each_sort_list_safe' + - 'perf_tool_event__for_each_event' + - 'plist_for_each' + - 'plist_for_each_continue' + - 'plist_for_each_entry' + - 'plist_for_each_entry_continue' + - 'plist_for_each_entry_safe' + - 'plist_for_each_safe' + - 'pnp_for_each_card' + - 'pnp_for_each_dev' + - 'protocol_for_each_card' + - 'protocol_for_each_dev' + - 'queue_for_each_hw_ctx' + - 'radix_tree_for_each_slot' + - 'radix_tree_for_each_tagged' + - 'rb_for_each' + - 'rbtree_postorder_for_each_entry_safe' + - 'rdma_for_each_block' + - 'rdma_for_each_port' + - 'rdma_umem_for_each_dma_block' + - 'resort_rb__for_each_entry' + - 'resource_list_for_each_entry' + - 'resource_list_for_each_entry_safe' + - 'rhl_for_each_entry_rcu' + - 'rhl_for_each_rcu' + - 'rht_for_each' + - 'rht_for_each_entry' + - 'rht_for_each_entry_from' + - 'rht_for_each_entry_rcu' + - 'rht_for_each_entry_rcu_from' + - 'rht_for_each_entry_safe' + - 'rht_for_each_from' + - 'rht_for_each_rcu' + - 'rht_for_each_rcu_from' + - 'rq_for_each_bvec' + - 'rq_for_each_segment' + - 'rq_list_for_each' + - 'rq_list_for_each_safe' + - 'sample_read_group__for_each' + - 'scsi_for_each_prot_sg' + - 'scsi_for_each_sg' + - 'sctp_for_each_hentry' + - 'sctp_skb_for_each' + - 'sec_for_each_insn' + - 'sec_for_each_insn_continue' + - 'sec_for_each_insn_from' + - 'sec_for_each_sym' + - 'shdma_for_each_chan' + - 'shost_for_each_device' + - 'sk_for_each' + - 'sk_for_each_bound' + - 'sk_for_each_entry_offset_rcu' + - 'sk_for_each_from' + - 'sk_for_each_rcu' + - 'sk_for_each_safe' + - 'sk_nulls_for_each' + - 'sk_nulls_for_each_from' + - 'sk_nulls_for_each_rcu' + - 'snd_array_for_each' + - 'snd_pcm_group_for_each_entry' + - 'snd_soc_dapm_widget_for_each_path' + - 'snd_soc_dapm_widget_for_each_path_safe' + - 'snd_soc_dapm_widget_for_each_sink_path' + - 'snd_soc_dapm_widget_for_each_source_path' + - 'sparsebit_for_each_set_range' + - 'strlist__for_each_entry' + - 'strlist__for_each_entry_safe' + - 'sym_for_each_insn' + - 'sym_for_each_insn_continue_reverse' + - 'symbols__for_each_entry' + - 'tb_property_for_each' + - 'tcf_act_for_each_action' + - 'tcf_exts_for_each_action' + - 'ttm_resource_manager_for_each_res' + - 'udp_portaddr_for_each_entry' + - 'udp_portaddr_for_each_entry_rcu' + - 'usb_hub_for_each_child' + - 'v4l2_device_for_each_subdev' + - 'v4l2_m2m_for_each_dst_buf' + - 'v4l2_m2m_for_each_dst_buf_safe' + - 'v4l2_m2m_for_each_src_buf' + - 'v4l2_m2m_for_each_src_buf_safe' + - 'virtio_device_for_each_vq' + - 'while_for_each_ftrace_op' + - 'xa_for_each' + - 'xa_for_each_marked' + - 'xa_for_each_range' + - 'xa_for_each_start' + - 'xas_for_each' + - 'xas_for_each_conflict' + - 'xas_for_each_marked' + - 'xbc_array_for_each_value' + - 'xbc_for_each_key_value' + - 'xbc_node_for_each_array_value' + - 'xbc_node_for_each_child' + - 'xbc_node_for_each_key_value' + - 'xbc_node_for_each_subkey' + - 'ynl_attr_for_each' + - 'ynl_attr_for_each_nested' + - 'ynl_attr_for_each_payload' + - 'zorro_for_each_dev' +IncludeBlocks: Preserve +IncludeCategories: + - Regex: '.*' + Priority: 1 +IncludeIsMainRegex: (Test)?$ +IndentCaseLabels: false +IndentGotoLabels: false +IndentPPDirectives: None +IndentWidth: 8 +IndentWrappedFunctionNames: false +JavaScriptQuotes: Leave +JavaScriptWrapImports: true +KeepEmptyLinesAtTheStartOfBlocks: false +MacroBlockBegin: '' +MacroBlockEnd: '' +MaxEmptyLinesToKeep: 1 +NamespaceIndentation: None +ObjCBinPackProtocolList: Auto +ObjCBlockIndentWidth: 8 +ObjCSpaceAfterProperty: true +ObjCSpaceBeforeProtocolList: true +PenaltyBreakAssignment: 10 +PenaltyBreakBeforeFirstCallParameter: 30 +PenaltyBreakComment: 10 +PenaltyBreakFirstLessLess: 0 +PenaltyBreakString: 10 +PenaltyExcessCharacter: 100 +PenaltyReturnTypeOnItsOwnLine: 60 +PointerAlignment: Right +ReflowComments: false +SortIncludes: false +SortUsingDeclarations: false +SpaceAfterCStyleCast: false +SpaceAfterTemplateKeyword: true +SpaceBeforeAssignmentOperators: true +SpaceBeforeCtorInitializerColon: true +SpaceBeforeInheritanceColon: true +SpaceBeforeParens: ControlStatementsExceptForEachMacros +SpaceBeforeRangeBasedForLoopColon: true +SpaceInEmptyParentheses: false +SpacesBeforeTrailingComments: 1 +SpacesInAngles: false +SpacesInContainerLiterals: false +SpacesInCStyleCastParentheses: false +SpacesInParentheses: false +SpacesInSquareBrackets: false +Standard: Cpp03 +TabWidth: 8 +UseTab: Never +... diff --git a/StgSharp.Native/StgSharp.Native.vcxproj.filters b/StgSharp.Native/StgSharp.Native.vcxproj.filters new file mode 100644 index 00000000..30e54e47 --- /dev/null +++ b/StgSharp.Native/StgSharp.Native.vcxproj.filters @@ -0,0 +1,92 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + {bfdaad49-d6af-4b2e-aba9-2dcaa7f7d693} + + + + + 源文件 + + + 源文件 + + + 源文件 + + + 源文件 + + + 源文件 + + + 源文件 + + + 源文件 + + + 源文件 + + + 源文件 + + + 源文件 + + + 源文件 + + + 源文件 + + + + + 头文件 + + + 头文件 + + + 头文件 + + + 头文件 + + + 头文件 + + + 头文件 + + + 头文件 + + + 头文件 + + + 头文件 + + + + + 资源文件 + + + \ No newline at end of file diff --git a/StgSharp.Native/StgSharp.Native.vcxproj.user b/StgSharp.Native/StgSharp.Native.vcxproj.user new file mode 100644 index 00000000..6e73c83d --- /dev/null +++ b/StgSharp.Native/StgSharp.Native.vcxproj.user @@ -0,0 +1,7 @@ + + + + $(SolutionDir)Output\x64\Debug\net6.0\StgSharpDebug.exe + WindowsLocalDebugger + + \ No newline at end of file diff --git a/StgSharp.Native/glfw/glfw3.lib b/StgSharp.Native/glfw/glfw3.lib new file mode 100644 index 0000000000000000000000000000000000000000..24e3068b4910be476f51c2385c917b1fe59d0d30 GIT binary patch literal 733462 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

s=~exMaa{e)ZE=*=+HppVpc;8n{Jl6>imH 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%0Ahe*W3+VbWR}?<_QbWh#Y&ef#%Oh87qiSd|6s>o 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 +hIjn3NSD22Me$zc@1Iq7t235 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 literal 0 HcmV?d00001 diff --git a/StgSharp.Native/naming.md b/StgSharp.Native/naming.md new file mode 100644 index 00000000..30bd11e2 --- /dev/null +++ b/StgSharp.Native/naming.md @@ -0,0 +1,9 @@ +# StgSharp c file naming regulation + +| Name Header | Description | +|:-------:|:--------| +|sn-|Stgsharp Native lib self operation| +|k-|Matrix kernel operation| +|str-|SIMD boosted stream operation| +|load-|Context loading operation| +|##OTHER##-|File from another open source lib with name ##OTHER##| \ No newline at end of file diff --git a/StgSharp.Native/sn-src/k_basicop.c b/StgSharp.Native/sn-src/k_basicop.c new file mode 100644 index 00000000..c2bef309 --- /dev/null +++ b/StgSharp.Native/sn-src/k_basicop.c @@ -0,0 +1,134 @@ +#include "sn_intrinsic.h" + +INTERNAL void SN_DECL kernel_add_sse(mat_kernel *left, mat_kernel *right, mat_kernel *ans) +{ + register __m128 c0 = _mm_add_ps(left->xmm[0], right->xmm[0]); + register __m128 c1 = _mm_add_ps(left->xmm[1], right->xmm[1]); + register __m128 c2 = _mm_add_ps(left->xmm[2], right->xmm[2]); + register __m128 c3 = _mm_add_ps(left->xmm[3], right->xmm[3]); + + ans->xmm[0] = c0; + ans->xmm[1] = c1; + ans->xmm[2] = c2; + ans->xmm[3] = c3; +} + +INTERNAL void SN_DECL kernel_add_avx(mat_kernel *left, mat_kernel *right, mat_kernel *ans) +{ + register __m256 c0 = _mm256_add_ps(left->ymm[0], right->ymm[0]); + register __m256 c1 = _mm256_add_ps(left->ymm[1], right->ymm[1]); + ans->ymm[0] = c0; + ans->ymm[1] = c1; +} + +INTERNAL void SN_DECL kernel_add_512(mat_kernel *left, mat_kernel *right, mat_kernel *ans) +{ + register __m512 c0 = _mm512_add_ps(left->zmm[0], right->zmm[0]); + ans->zmm[0] = c0; +} + +INTERNAL void SN_DECL kernel_sub_sse(mat_kernel *left, mat_kernel *right, mat_kernel *ans) +{ + register __m128 c0 = _mm_sub_ps(left->xmm[0], right->xmm[0]); + register __m128 c1 = _mm_sub_ps(left->xmm[1], right->xmm[1]); + register __m128 c2 = _mm_sub_ps(left->xmm[2], right->xmm[2]); + register __m128 c3 = _mm_sub_ps(left->xmm[3], right->xmm[3]); + + ans->xmm[0] = c0; + ans->xmm[1] = c1; + ans->xmm[2] = c2; + ans->xmm[3] = c3; +} + +INTERNAL void SN_DECL kernel_sub_avx(mat_kernel *left, mat_kernel *right, mat_kernel *ans) +{ + register __m256 c0 = _mm256_sub_ps(left->ymm[0], right->ymm[0]); + register __m256 c1 = _mm256_sub_ps(left->ymm[1], right->ymm[1]); + ans->ymm[0] = c0; + ans->ymm[1] = c1; +} + +INTERNAL void SN_DECL kernel_sub_512(mat_kernel *left, mat_kernel *right, mat_kernel *ans) +{ + register __m512 c0 = _mm512_sub_ps(left->zmm[0], right->zmm[0]); + ans->zmm[0] = c0; +} + +// Matrix transpose implementations +INTERNAL void SN_DECL kernel_transpose_sse(mat_kernel *source, mat_kernel *target) +{ + register __m128 col0 = source->xmm[0]; + register __m128 col1 = source->xmm[1]; + register __m128 col2 = source->xmm[2]; + register __m128 col3 = source->xmm[3]; + register __m128 tmp0 = _mm_unpacklo_ps(col0, col1); + register __m128 tmp1 = _mm_unpackhi_ps(col0, col1); + register __m128 tmp2 = _mm_unpacklo_ps(col2, col3); + register __m128 tmp3 = _mm_unpackhi_ps(col2, col3); + + target->xmm[0] = _mm_movelh_ps(tmp0, tmp2); + target->xmm[1] = _mm_movehl_ps(tmp2, tmp0); + target->xmm[2] = _mm_movelh_ps(tmp1, tmp3); + target->xmm[3] = _mm_movehl_ps(tmp3, tmp1); +} + +INTERNAL void SN_DECL kernel_transpose_avx(mat_kernel *source, mat_kernel *target) +{ + register __m256 col_low = source->ymm[0]; + register __m256 col_high = source->ymm[1]; + + register __m256 unpack_low = _mm256_unpacklo_ps(col_low, col_high); + register __m256 unpack_high = _mm256_unpackhi_ps(col_low, col_high); + + col_low = _mm256_permute2f128_ps(unpack_low, unpack_high, 0x20); + col_high = _mm256_permute2f128_ps(unpack_low, unpack_high, 0x31); + + target->ymm[0] = _mm256_shuffle_ps(col_high, col_low, _MM_SHUFFLE(2, 0, 2, 0)); + target->ymm[1] = _mm256_shuffle_ps(col_high, col_low, _MM_SHUFFLE(3, 1, 3, 1)); +} + +INTERNAL void SN_DECL kernel_transpose_512(mat_kernel *source, mat_kernel *target) +{ + register __m512 matrix = source->zmm[0]; + + const __m512i transpose_indices = + _mm512_setr_epi32(0, 4, 8, 12, 1, 5, 9, 13, 2, 6, 10, 14, 3, 7, 11, 15); + + target->zmm[0] = _mm512_permutexvar_ps(transpose_indices, matrix); +} + +INTERNAL void SN_DECL kernel_scalar_mul_sse(mat_kernel *matrix, float scalar, mat_kernel *ans) +{ + register __m128 temp = _mm_load_ss(&scalar); + register __m128 scalar_vec = _mm_shuffle_ps(temp, temp, _MM_SHUFFLE(0, 0, 0, 0)); + + register __m128 c0 = _mm_mul_ps(matrix->xmm[0], scalar_vec); + register __m128 c1 = _mm_mul_ps(matrix->xmm[1], scalar_vec); + register __m128 c2 = _mm_mul_ps(matrix->xmm[2], scalar_vec); + register __m128 c3 = _mm_mul_ps(matrix->xmm[3], scalar_vec); + + ans->xmm[0] = c0; + ans->xmm[1] = c1; + ans->xmm[2] = c2; + ans->xmm[3] = c3; +} + +INTERNAL void SN_DECL kernel_scalar_mul_avx(mat_kernel *matrix, float scalar, mat_kernel *ans) +{ + register __m256 scalar_vec = _mm256_broadcast_ss(&scalar); + + register __m256 c0 = _mm256_mul_ps(matrix->ymm[0], scalar_vec); + register __m256 c1 = _mm256_mul_ps(matrix->ymm[1], scalar_vec); + + ans->ymm[0] = c0; + ans->ymm[1] = c1; +} + +INTERNAL void SN_DECL kernel_scalar_mul_512(mat_kernel *matrix, float scalar, mat_kernel *ans) +{ + __m512 scalar_vec = _mm512_broadcastss_ps(_mm_load_ss(&scalar)); + + register __m512 c0 = _mm512_mul_ps(matrix->zmm[0], scalar_vec); + + ans->zmm[0] = c0; +} diff --git a/StgSharp.Native/sn-src/k_fma.c b/StgSharp.Native/sn-src/k_fma.c new file mode 100644 index 00000000..46d333fc --- /dev/null +++ b/StgSharp.Native/sn-src/k_fma.c @@ -0,0 +1,35 @@ +#include "sn_intrinsic.h" + +void kernel_fma_sse(mat_kernel *const left, mat_kernel *const right, mat_kernel *ans) +{ + register __m128 source0 = _mm_load_ps(&left->xmm[0]); + register __m128 source1 = _mm_load_ps(&left->xmm[1]); + register __m128 source2 = _mm_load_ps(&left->xmm[2]); + register __m128 source3 = _mm_load_ps(&left->xmm[3]); + + register __m128 broadcast; + + register __m128 ans0 = _mm_setzero_ps(); + register __m128 ans1 = _mm_setzero_ps(); + register __m128 ans2 = _mm_setzero_ps(); + register __m128 ans3 = _mm_setzero_ps(); + for (size_t i = 0; i < 3; i++) { + broadcast = _mm_load_ps(&right->xmm[i]); + _mm_add_ps(ans0, _mm_mul_ps(source0, broadcast)); + _mm_add_ps(ans1, _mm_mul_ps(source1, broadcast)); + _mm_add_ps(ans2, _mm_mul_ps(source2, broadcast)); + _mm_add_ps(ans3, _mm_mul_ps(source3, broadcast)); + for (size_t t = 0; t < 2; t++) { + broadcast = _mm_shuffle_ps(broadcast, broadcast, _MM_SHUFFLE(2, 1, 0, 3)); + + _mm_add_ps(ans0, _mm_mul_ps(source0, broadcast)); + _mm_add_ps(ans1, _mm_mul_ps(source1, broadcast)); + _mm_add_ps(ans2, _mm_mul_ps(source2, broadcast)); + _mm_add_ps(ans3, _mm_mul_ps(source3, broadcast)); + } + } + _mm_store_ps(&ans->xmm[0], ans0); + _mm_store_ps(&ans->xmm[1], ans1); + _mm_store_ps(&ans->xmm[2], ans2); + _mm_store_ps(&ans->xmm[3], ans3); +} diff --git a/StgSharp.Native/sn-src/load_intrinsic.c b/StgSharp.Native/sn-src/load_intrinsic.c new file mode 100644 index 00000000..8b89f0e7 --- /dev/null +++ b/StgSharp.Native/sn-src/load_intrinsic.c @@ -0,0 +1,101 @@ +#include "StgSharpNative.h" +#include "sn_intrinsic.h" + + +#if defined(_MSC_VER) && !defined(__clang__) +#include +#include +#else +#include +#endif // _MSC_VER + +PRIVATE void load_intrinsic_sse(sn_intrinsic *context); +PRIVATE void load_intrinsic_avx(sn_intrinsic *context); +PRIVATE void load_intrinsic_512(sn_intrinsic *context); + +PRIVATE int check_isa(most_advanced_instruction instruction_family) +{ + if (instruction_family != NEON) { +#if defined(_MSC_VER) && !defined(__clang__) + return __check_isa_support(instruction_family, 0); +#else + switch (instruction_family) { + case SSE: + return __builtin_cpu_supports("sse4.2"); + case AVX256: + return __builtin_cpu_supports("avx2"); + case AVX512: + return __builtin_cpu_supports("avx512f"); + default: + return 0; + } +#endif // _MSC_VER + } + +#if defined(__ARM_NEON) || defined(__ARM_NEON__) + return 1; +#else + return 0; +#endif +} + +SN_API int load_intrinsic_function(void *intrinsic_context) +{ + sn_null_assert(intrinsic_context); + + sn_intrinsic *context = (sn_intrinsic *)intrinsic_context; + + if (check_isa(AVX512)) { + load_intrinsic_512(context); + return 3; + } else if (check_isa(AVX256)) { + load_intrinsic_avx(context); + return 2; + } else if (check_isa(SSE)) { + load_intrinsic_sse(context); + return 1; + } else if (check_isa(NEON)) { + return -1; + } + + return 0; +} + +void load_intrinsic_sse(sn_intrinsic *context) +{ + context->city_hash_simplify = city_hash_simplify_sse; + context->factorial_simd = factorial_simd_sse; + context->index_pair = index_pair_sse; + context->kernel_add = (MATARITHMETIC)kernel_add_sse; + context->kernel_fma = (void(*)(void*, void*, void*))kernel_fma_sse; + context->kernel_scalar_mul = kernel_scalar_mul_sse; + context->kernel_sub = (MATARITHMETIC)kernel_sub_sse; + context->kernel_transpose = (MATTRANSPOSEPROC)kernel_transpose_sse; + context->normalize_3 = normalize; +} + +void load_intrinsic_avx(sn_intrinsic *context) +{ + context->city_hash_simplify = city_hash_simplify_sse; + context->factorial_simd = factorial_simd_sse; + context->index_pair = index_pair_sse; + context->kernel_add = (MATARITHMETIC)kernel_add_avx; + context->kernel_fma = (void(*)(void*, void*, void*))kernel_fma_sse; + context->kernel_scalar_mul = kernel_scalar_mul_avx; + context->kernel_sub = (MATARITHMETIC)kernel_sub_avx; + context->kernel_transpose = (MATTRANSPOSEPROC)kernel_transpose_avx; + context->normalize_3 = normalize; +} + +void load_intrinsic_512(sn_intrinsic *context) +{ + context->city_hash_simplify = city_hash_simplify_sse; + context->factorial_simd = factorial_simd_sse; + context->index_pair = index_pair_sse; + context->kernel_add = (MATARITHMETIC)kernel_add_512; + context->kernel_fma = (void(*)(void*, void*, void*))kernel_fma_sse; + context->kernel_scalar_mul = kernel_scalar_mul_512; + context->kernel_sub = (MATARITHMETIC)kernel_sub_512; + context->kernel_transpose = (MATTRANSPOSEPROC)kernel_transpose_512; + context->normalize_3 = normalize; +} diff --git a/StgSharp.Native/sn-src/sn_native.c b/StgSharp.Native/sn-src/sn_native.c new file mode 100644 index 00000000..987a86dc --- /dev/null +++ b/StgSharp.Native/sn-src/sn_native.c @@ -0,0 +1,75 @@ +#include "StgSharpNative.h" +#include "gl.h" +#include "../glfw/glfw3.h" +#include +#include + +extern GladGLContext *currentContext; +extern char infolog[512]; + +SN_API int SN_DECL glCheckShaderStat(GladGLContext *context, uint64_t shaderHandle, int key, + char **logRef) +{ + int stat = 0; + context->GetShaderiv(shaderHandle, key, &stat); + if (!stat) { + context->GetShaderInfoLog(shaderHandle, 512, NULL, infolog); + } + *logRef = infolog; + return stat; +} + +SN_API void SN_DECL initGL(int majorVersion, int minorVersion) +{ + glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, majorVersion); + glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, minorVersion); + glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); + glfwWindowHint(GLFW_RESIZABLE, GLFW_TRUE); +} + +SN_API GLFWglproc SN_DECL loadGlfuncDefault(char *procName) +{ + void *ret = glfwGetProcAddress(procName); + // printf("%llu\n", (uint64_t)ret); + if (ret == NULL) { + strcpy_s(infolog,30, "Failed to load OpenGL api:"); + for (size_t i = 0; i < sizeof(procName); i++) { + infolog[30 + i] = procName[i]; + } + //printf("%s\n", infolog); + } + return (GLFWglproc)ret; +} + +SN_API unsigned int linkShaderProgram(GladGLContext *context, GLuint shaderProgram) +{ + context->LinkProgram(shaderProgram); + + int success; + context->GetProgramiv(shaderProgram, GL_LINK_STATUS, &success); + if (!success) { + context->GetProgramInfoLog(shaderProgram, 512, NULL, infolog); + return 0; + } else { + return shaderProgram; + } +} + +SN_API void SN_DECL loadImageData(char *location, Image *out, imageLoader loader) +{ + if (loader == NULL) { + loader = stbi_load; + } + out->pixelPtr = loader(location, &(out->width), &(out->height), &(out->channel), 0); +} + +SN_API void SN_DECL unloadImageData(Image *out) +{ + free(out->pixelPtr); +} + +SN_API char *SN_DECL readLog() +{ + infolog[511] = '\0'; + return infolog; +} diff --git a/StgSharp.Native/sn-src/str_factorial.c b/StgSharp.Native/sn-src/str_factorial.c new file mode 100644 index 00000000..450bdbc5 --- /dev/null +++ b/StgSharp.Native/sn-src/str_factorial.c @@ -0,0 +1,23 @@ +#include "sn_internal.h" +#include "sn_intrinsic.h" + +INTERNAL __m128i facIncrement = { 4, 4, 4, 4 }; +INTERNAL __m128i facBase = { 1, 2, 3, 4 }; + +INTERNAL uint64_t SN_DECL factorial_simd_sse(int n) +{ + __m128i baseResult = facBase; + __m128i facBaseLocal = facBase; + const int cycle = (n - 3) >> 2; + const uint32_t rest = (cycle << 2) + 1; + for (size_t i = 0; i < cycle; i++) { + facBaseLocal = _mm_add_epi32(facBaseLocal, facIncrement); + baseResult = _mm_mullo_epi32(baseResult, facBaseLocal); + } + uint64_t result = (uint64_t)baseResult.m128i_i32[0] * (uint64_t)baseResult.m128i_i32[1] * + (uint64_t)baseResult.m128i_i32[2] * (uint64_t)baseResult.m128i_i32[3]; + for (uint64_t i = rest; i < n; i++) { + result *= i; + } + return result; +} diff --git a/StgSharp.Native/sn-src/str_hash.c b/StgSharp.Native/sn-src/str_hash.c new file mode 100644 index 00000000..89794198 --- /dev/null +++ b/StgSharp.Native/sn-src/str_hash.c @@ -0,0 +1,45 @@ +#include "sn_intrinsic.h" +#include "StgSharpNative.h" + +INTERNAL int SN_DECL city_hash_simplify_sse(byte const *str, int const length) +{ + uint32_t hash = length, size = length << 1; + byte *end = str + size, *ptr = str; + + if (size < 4) { + for (; ptr < end; ptr += 2) { + hash = _mm_crc32_u16(hash, *ptr); + } + } else if (size < 16) { + byte *last = end - 4; + for (; ptr < end; ptr += 4) { + hash = _mm_crc32_u32(hash, *(uint32_t *)ptr); + } + for (; ptr < end; ptr++) { + hash = _mm_crc32_u16(hash, *ptr); + } + } else { + byte *last_128 = end - 16; + byte *last_32 = end - 4; + uint64_t hash64 = size; + for (; ptr < last_128; ptr += 16) { + __m128i vec = _mm_loadu_si32((int *)ptr); + hash64 = _mm_crc32_u64(hash64, _mm_extract_epi64(vec, 0)); + hash64 = _mm_crc32_u64(hash64, _mm_extract_epi64(vec, 1)); + } + hash = _mm_crc32_u8(hash, hash64); + hash = _mm_crc32_u8(hash, hash64 >> 32); + for (; ptr < last_32; ptr += 4) { + hash = _mm_crc32_u32(hash,*(uint32_t *)ptr); + } + for (; ptr < end; ptr += 2) { + hash = _mm_crc32_u8(hash,*ptr); + } + } + hash ^= hash >> 16; + hash *= 0x85ebca6b; + hash ^= hash >> 13; + hash *= 0xc2b2ae35; + hash ^= hash >> 16; + return hash; +} diff --git a/StgSharp.Native/sn-src/str_string.c b/StgSharp.Native/sn-src/str_string.c new file mode 100644 index 00000000..21efc77e --- /dev/null +++ b/StgSharp.Native/sn-src/str_string.c @@ -0,0 +1,53 @@ +#include "sn_intrinsic.h" + +int index_pair_sse(short const *str, uint32_t target, int length) +{ + int index = 0, result = 0, size = length, end = size - 8; + __m128i s = { + target, + target, + target, + target, + }; + __m128i vec, com; + + while (index < end) { + vec = _mm_loadu_epi32(str + index); + com = _mm_cmpeq_epi16(vec, s); + result = _mm_movemask_epi8(com); + if (result) { + for (size_t i = 0; i < 7; i++) { + if (((result & 0xF) == 0xF)) { + return index + i; + } + if (result == 0) { + break; + } + result >>= 2; + } + } + index += 1; + vec = _mm_loadu_epi32(str + index); + com = _mm_cmpeq_epi16(vec, s); + result = _mm_movemask_epi8(com); + if (result) { + for (size_t i = 0; i < 7; i++) { + if (((result & 0xF) == 0xF)) { + return index + i; + } + if (result == 0) { + break; + } + result >>= 2; + } + } + index += 7; + } + for (; (index < size - 1) && (!result); index += 2) { + result = *(int *)(str + index) == target; + } + if (result) { + return index; + } + return -1; +} diff --git a/StgSharpDebug/hlsf-test.cs b/StgSharpDebug/hlsf-test.cs new file mode 100644 index 00000000..b3e5f7e5 --- /dev/null +++ b/StgSharpDebug/hlsf-test.cs @@ -0,0 +1,152 @@ +//----------------------------------------------------------------------- +// ----------------------------------------------------------------------- +// file="hlsf-test.cs" +// Project: StgSharp +// AuthorGroup: Nitload Space +// Copyright (c) Nitload Space. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the “Software”), to deal in the Software without restriction, +// including without limitation the rights to use, copy, modify, merge, +// publish, distribute, sublicense, and/or sell copies of the Software, +// and to permit persons to whom the Software is furnished to do so, +// subject to the following conditions: +// +// The above copyright notice and +// this permission notice shall be included in all copies +// or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED “AS IS”, +// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +// ARISING FROM, OUT OF OR IN CONNECTION WITH +// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +// ----------------------------------------------------------------------- +// ----------------------------------------------------------------------- +using StgSharp.HighPerformance.Memory; +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StgSharp +{ + internal partial class Program + { + + public static void TestHlsf() + { + // HLSF test arena + Console.WriteLine( + "=== HLSF (Hybrid Layer Segregated Fit Allocator) Single-threaded Stress Test ===\n"); + + + // 使用适中的内存池大小 + HybridLayerSegregatedFitAllocator hlsfAllocator = new HybridLayerSegregatedFitAllocator(16 * 1024 * 1024); + + Console.WriteLine("开始单线程压力测试...\n"); + + + // 单线程压力测试:适度的分配和释放操作 + int totalCycles = 5; + int allocationsPerCycle = 1024 * 64; // 65536 次分配 + + for (int cycle = 0; cycle < totalCycles; cycle++) + { + Console.WriteLine($"\n=== 第 {cycle + 1} 轮压力测试 ==="); + + // 预生成随机数 + uint[] randomSizes = new uint[allocationsPerCycle]; + Random random = new Random(cycle); + for (int i = 0; i < allocationsPerCycle; i++) { + randomSizes[i] = (uint)(64 + random.Next(1024 - 64 + 1)); + } + + // 分配阶段 + List handles = new List(allocationsPerCycle); + Stopwatch stopwatch = Stopwatch.StartNew(); + + for (int i = 0; i < allocationsPerCycle; i++) { + handles.Add(hlsfAllocator.Alloc(randomSizes[i])); + } + + stopwatch.Stop(); + Console.WriteLine($"分配完成,总计分配 {handles.Count} 个块"); + Console.WriteLine($"分配耗时: {stopwatch.ElapsedMilliseconds} ms"); + if (stopwatch.ElapsedMilliseconds > 0) { + Console.WriteLine($"分配速度: {allocationsPerCycle * 1000 / stopwatch.ElapsedMilliseconds} allocs/sec"); + } + + + // 随机释放阶段 + stopwatch.Restart(); + + for (int i = handles.Count - 1; i >= 0; i--) { + hlsfAllocator.Free(handles[i]); + } + + stopwatch.Stop(); + Console.WriteLine($"释放完成,总计释放 {handles.Count} 个块"); + Console.WriteLine($"释放耗时: {stopwatch.ElapsedMilliseconds} ms"); + if (stopwatch.ElapsedMilliseconds > 0) { + Console.WriteLine($"释放速度: {handles.Count * 1000 / stopwatch.ElapsedMilliseconds} frees/sec"); + } + + handles.Clear(); + } + + Console.WriteLine("\n=== 边界测试 ==="); + + + // 测试最小分配 + Console.WriteLine("测试最小分配 (64字节)..."); + List minHandles = new List(); + for (int i = 0; i < 1000; i++) { + minHandles.Add(hlsfAllocator.Alloc(64)); + } + foreach (HybridLayerSegregatedFitAllocationHandle handle in minHandles) { + hlsfAllocator.Free(handle); + } + Console.WriteLine("最小分配测试完成"); + + // 测试最大分配 + Console.WriteLine("测试最大分配 (1024字节)..."); + List maxHandles = new List(); + for (int i = 0; i < 1000; i++) { + maxHandles.Add(hlsfAllocator.Alloc(1024)); + } + foreach (HybridLayerSegregatedFitAllocationHandle handle in maxHandles) { + hlsfAllocator.Free(handle); + } + Console.WriteLine("最大分配测试完成"); + + // 测试混合大小分配 + Console.WriteLine("测试混合大小分配..."); + List mixedHandles = new List(); + uint[] testSizes = { + 64, 128, 256, 512, 1024 + }; + for (int i = 0; i < 2000; i++) + { + uint size = testSizes[i % testSizes.Length]; + mixedHandles.Add(hlsfAllocator.Alloc(size)); + } + foreach (HybridLayerSegregatedFitAllocationHandle handle in mixedHandles) { + hlsfAllocator.Free(handle); + } + Console.WriteLine("混合大小分配测试完成"); + + Console.WriteLine("\n所有测试完成!HLSF分配器表现良好。"); + Console.WriteLine("按任意键退出..."); + Console.ReadKey(); + } + + } +}