Huge progress on Matrix Parallel, a parallel pool has its basic structure.

This commit is contained in:
Youmu Liu
2025-09-02 21:56:10 +08:00
parent 2475a3b0ed
commit 125040620b
6 changed files with 307 additions and 39 deletions
+20 -10
View File
@@ -73,24 +73,34 @@ typedef uint64_t(SN_DECL *FACTORIALROC)(int n);
INTERNAL void normalize(__m128 *source, __m128 *target);
INTERNAL void SN_DECL kernel_add_sse(mat_kernel const *left, mat_kernel const *right, mat_kernel *ans);
INTERNAL void SN_DECL kernel_add_avx(mat_kernel const *left, mat_kernel const *right, mat_kernel *ans);
INTERNAL void SN_DECL kernel_add_512(mat_kernel const *left, mat_kernel const *right, mat_kernel *ans);
INTERNAL void SN_DECL kernel_sub_sse(mat_kernel const *left, mat_kernel const *right, mat_kernel *ans);
INTERNAL void SN_DECL kernel_sub_avx(mat_kernel const *left, mat_kernel const *right, mat_kernel *ans);
INTERNAL void SN_DECL kernel_sub_512(mat_kernel const *left, mat_kernel const *right, mat_kernel *ans);
INTERNAL void SN_DECL kernel_add_sse(mat_kernel const *left, mat_kernel const *right,
mat_kernel *ans);
INTERNAL void SN_DECL kernel_add_avx(mat_kernel const *left, mat_kernel const *right,
mat_kernel *ans);
INTERNAL void SN_DECL kernel_add_512(mat_kernel const *left, mat_kernel const *right,
mat_kernel *ans);
INTERNAL void SN_DECL kernel_sub_sse(mat_kernel const *left, mat_kernel const *right,
mat_kernel *ans);
INTERNAL void SN_DECL kernel_sub_avx(mat_kernel const *left, mat_kernel const *right,
mat_kernel *ans);
INTERNAL void SN_DECL kernel_sub_512(mat_kernel const *left, mat_kernel const *right,
mat_kernel *ans);
INTERNAL void SN_DECL kernel_transpose_sse(mat_kernel const *source, mat_kernel *target);
INTERNAL void SN_DECL kernel_transpose_avx(mat_kernel const *source, mat_kernel *target);
INTERNAL void SN_DECL kernel_transpose_512(mat_kernel const *source, mat_kernel *target);
INTERNAL void SN_DECL kernel_scalar_mul_sse(mat_kernel const *matrix, float const scalar, mat_kernel *ans);
INTERNAL void SN_DECL kernel_scalar_mul_avx(mat_kernel const *matrix, float const scalar, mat_kernel *ans);
INTERNAL void SN_DECL kernel_scalar_mul_512(mat_kernel const *matrix, float const scalar, mat_kernel *ans);
INTERNAL void SN_DECL kernel_scalar_mul_sse(mat_kernel const *matrix, float const scalar,
mat_kernel *ans);
INTERNAL void SN_DECL kernel_scalar_mul_avx(mat_kernel const *matrix, float const scalar,
mat_kernel *ans);
INTERNAL void SN_DECL kernel_scalar_mul_512(mat_kernel const *matrix, float const scalar,
mat_kernel *ans);
#pragma endregion
#pragma region fma
INTERNAL void SN_DECL kernel_fma_sse(mat_kernel *left, mat_kernel *right);
INTERNAL void SN_DECL kernel_fma_sse(mat_kernel const *restrict left,
mat_kernel const *restrict right, mat_kernel *restrict ans);
#pragma endregion