char-fork/llama.cpp
git clone https://git.t4t.associates/char-fork/llama.cpp
192067b72
char/aliceai-t5-moe
1#ifndef HTP_SET_ROWS_OPS_H 2#define HTP_SET_ROWS_OPS_H 3 4#include "hex-fastdiv.h" 5 6struct htp_set_rows_kernel_params { 7int32_t n_threads ; 8int32_t total_tasks ; 9int32_t tasks_per_thread ; 10int32_t vtcm_size ; 11 12// Fastdiv helpers 13struct fastdiv_values div_ne11 ; 14struct fastdiv_values div_ne12 ; 15struct fastdiv_values div_tasks_per_thread ; 16struct fastdiv_values div_ne02 ; 17}; 18 19struct htp_set_rows_vtcm_layout { 20size_t total_bytes ; 21size_t off_src0 ; 22size_t off_dst ; 23 24size_t src0_bytes_per_thread ; 25size_t dst_bytes_per_thread ; 26 27size_t src0_spad_half_size ; 28size_t dst_spad_half_size ; 29}; 30 31static inline void htp_set_rows_vtcm_layout_build ( 32struct htp_set_rows_vtcm_layout * vtcm_layout , 33int dst_type , 34uint32_t ne00 , 35uint32_t n_threads ) { 36 37size_t src0_row_size = ne00 * 4 ; 38size_t dst_row_size = 0 ; 39switch (dst_type ) { 40case 0 :// HTP_TYPE_F32 41dst_row_size = ne00 * 4 ; 42break ; 43case 1 :// HTP_TYPE_F16 44dst_row_size = ne00 * 2 ; 45break ; 46case 8 :// HTP_TYPE_Q8_0 47dst_row_size = (ne00 /32 )* 34 ; 48break ; 49default : 50dst_row_size = 0 ; 51break ; 52 } 53 54size_t src0_row_size_aligned = (src0_row_size + 255 )& ~255 ; 55size_t dst_row_size_aligned = (dst_row_size + 255 )& ~255 ; 56 57vtcm_layout -> src0_spad_half_size = src0_row_size_aligned ; 58vtcm_layout -> dst_spad_half_size = dst_row_size_aligned ; 59 60vtcm_layout -> src0_bytes_per_thread = src0_row_size_aligned * 2 ; 61vtcm_layout -> dst_bytes_per_thread = dst_row_size_aligned * 2 ; 62 63vtcm_layout -> off_src0 = 0 ; 64vtcm_layout -> off_dst = vtcm_layout -> off_src0 + vtcm_layout -> src0_bytes_per_thread * n_threads ; 65vtcm_layout -> total_bytes = vtcm_layout -> off_dst + vtcm_layout -> dst_bytes_per_thread * n_threads ; 66} 67 68#if defined(__cplusplus ) 69static_assert (sizeof (struct htp_set_rows_kernel_params ) <=128 ,"htp_set_rows_kernel_params is too large for kernel_params blob" ); 70#else 71_Static_assert (sizeof (struct htp_set_rows_kernel_params ) <=128 ,"htp_set_rows_kernel_params is too large for kernel_params blob" ); 72#endif 73 74#endif // HTP_SET_ROWS_OPS_H