Better L4 and array storage design
This commit is contained in:
@@ -73,6 +73,8 @@ static_assert(sizeof(MAT_TASK(float)) == 128, "matrix_parallel_task_package size
|
||||
#endif
|
||||
|
||||
typedef void(SN_DECL *UNI_MK_PROC)(matrix_task *task);
|
||||
typedef void(SN_DECL *UNI_SK_PROC)(mat_kernel const *left, mat_kernel const *right,
|
||||
mat_kernel *restrict ans, uint64_t scalar);
|
||||
|
||||
typedef void(SN_DECL *VECTORNORMALIZEPROC)(__m128 *source, __m128 *target);
|
||||
typedef void(SN_DECL *DOTPROC)(void *transpose, __m128 *vector, __m128 *ans);
|
||||
@@ -85,25 +87,33 @@ typedef int(SN_DECL *INDEX_PAIR)(short const *stram, uint32_t target, int length
|
||||
|
||||
#pragma endregion
|
||||
|
||||
typedef struct mat_intrinsic {
|
||||
UNI_MK_PROC buffer_add;
|
||||
UNI_MK_PROC buffer_fill;
|
||||
UNI_MK_PROC buffer_scalar_mul;
|
||||
UNI_MK_PROC buffer_sub;
|
||||
UNI_MK_PROC buffer_transpose;
|
||||
UNI_MK_PROC ker_fma;
|
||||
UNI_MK_PROC ker_tile_fma;
|
||||
typedef struct mat_mk_intrinsic {
|
||||
UNI_MK_PROC add;
|
||||
UNI_MK_PROC fill;
|
||||
UNI_MK_PROC scalar_mul;
|
||||
UNI_MK_PROC sub;
|
||||
UNI_MK_PROC transpose;
|
||||
UNI_MK_PROC fma;
|
||||
UNI_MK_PROC pivot;
|
||||
} mat_mk_intrinsic;
|
||||
|
||||
} mat_intrinsic;
|
||||
typedef struct mat_sk_intrinsic {
|
||||
UNI_SK_PROC add;
|
||||
UNI_SK_PROC fill;
|
||||
UNI_SK_PROC scalar_mul;
|
||||
UNI_SK_PROC sub;
|
||||
UNI_SK_PROC transpose;
|
||||
UNI_SK_PROC fma;
|
||||
UNI_SK_PROC pivot;
|
||||
} mat_sk_intrinsic;
|
||||
|
||||
// Mirrors C# IntrinsicContext field order so managed/unmanaged layouts stay in sync.
|
||||
typedef struct sn_intrinsic {
|
||||
HASH city_hash_simplify;
|
||||
FACTORIALROC factorial_simd;
|
||||
INDEX_PAIR index_pair;
|
||||
VECTORNORMALIZEPROC vec_f32_normalize_3;
|
||||
mat_intrinsic mat[4];
|
||||
mat_mk_intrinsic mat_mk[0x0a];
|
||||
mat_sk_intrinsic mat_sk[0x0a];
|
||||
} sn_intrinsic;
|
||||
|
||||
typedef enum elment_mask { F32 = 0, F64 = 1, I32 = 2, I64 = 3 } element_mask;
|
||||
|
||||
Reference in New Issue
Block a user