daily update on 20251922

This commit is contained in:
Youmu Liu
2025-09-22 21:33:43 +08:00
parent b8a51c13dd
commit 8abc82ae08
5 changed files with 35 additions and 41 deletions
+6 -4
View File
@@ -85,7 +85,6 @@ INTERNAL void SN_DECL f32_scalar_mul_avx(MAT_KERNEL(float) const *matrix, float
MAT_KERNEL(float) *restrict ans);
INTERNAL void SN_DECL f32_scalar_mul_512(MAT_KERNEL(float) const *matrix, float const scalar,
MAT_KERNEL(float) *restrict ans);
#pragma endregion
#pragma region fma
@@ -104,9 +103,12 @@ INTERNAL uint64_t SN_DECL factorial_simd_sse(int n);
INTERNAL void FORCEINLINE SN_DECL dot_41_sse(MAT_KERNEL(float) const *transpose,
__m128 const *vector, __m128 *ans);
INTERNAL void SN_DECL dot_41_avx(MAT_KERNEL(float) const *transpose, __m128 const *vector, __m128 *ans);
INTERNAL void SN_DECL dot_42_sse(MAT_KERNEL(float) const *transpose, __m128 const *vector, __m128 *ans);
INTERNAL void SN_DECL dot_42_avx(MAT_KERNEL(float) const *transpose, __m128 const *vector, __m128 *ans);
INTERNAL void SN_DECL dot_41_avx(MAT_KERNEL(float) const *transpose, __m128 const *vector,
__m128 *ans);
INTERNAL void SN_DECL dot_42_sse(MAT_KERNEL(float) const *transpose, __m128 const *vector,
__m128 *ans);
INTERNAL void SN_DECL dot_42_avx(MAT_KERNEL(float) const *transpose, __m128 const *vector,
__m128 *ans);
#pragma endregion
+4 -4
View File
@@ -4,16 +4,16 @@
#include <immintrin.h>
#define ELEMENTSIZE(T) sizeof(T)
#define XMMCOUNT(T) sizeof(T) / 16
#define YMMCOUNT(T) sizeof(T) / 32
#define ZMMCOUNT(T) sizeof(T) / 64
#define XMMCOUNT(T) sizeof(T)
#define YMMCOUNT(T) sizeof(T) / 2
#define ZMMCOUNT(T) sizeof(T) / 4
#define MAT_KERNEL(T) \
union { \
__m128 xmm[XMMCOUNT(T)]; \
__m256 ymm[YMMCOUNT(T)]; \
__m512 zmm[ZMMCOUNT(T)]; \
T m[16]; \
T m[4][4]; \
}
#endif