struct RmsNormParam {
enum RmsNormType : int {
RMS_NORM_UNDEFINED = 0,
RMS_NORM_NORM,
RMS_NORM_PRENORM,
RMS_NORM_POSTNORM,
};
enum PrecisionMode : int {
HIGH_PRECISION_MODE = 0,
HIGH_PERFORMANCE_MODE,
}
enum ModelType : int {
LLAMA_MODEL = 0,
GEMMA_MODEL,
};
struct NormParam {
QuantType quantType = QUANT_UNQUANT;
float epsilon = 1e-5;
double layerNormEps = 1e-5;
bool rstd = false;
PrecisionMode precisionMode = HIGH_PRECISION_MODE;
ModelType modelType = LLAMA_MODEL;
DynamicQuantType dynamicQuantType = DYNAMIC_QUANT_UNDEFINED;
uint8_t rsv[32] = {0};
};
struct PreNormParam {
QuantType quantType = QUANT_UNQUANT;
float epsilon = 1e-5;
bool hasBias = false;
uint8_t rsv[23] = {0};
};
struct PostNormParam {
QuantType quantType = QUANT_UNQUANT;
float epsilon = 1e-5;
bool hasBias = false;
uint8_t rsv[23] = {0};
};
RmsNormType layerType = RMS_NORM_UNDEFINED;
NormParam normParam;
PreNormParam preNormParam;
PostNormParam postNormParam;
uint8_t rsv[8] = {0};
};