mirror of
https://github.com/RYDE-WORK/ktransformers.git
synced 2026-02-05 14:03:17 +08:00
⚡ fix moe.cpp int overflow problem
This commit is contained in:
parent
ee24a27001
commit
3dca28d23b
@ -224,7 +224,7 @@ void MOE::forward_many(int qlen, int k, const uint64_t* expert_ids, const float*
|
|||||||
int stride = QK_K;
|
int stride = QK_K;
|
||||||
int nth = config_.intermediate_size / stride;
|
int nth = config_.intermediate_size / stride;
|
||||||
backend->do_work_stealing_job(nth * config_.expert_num, nullptr, [&](int task_id) {
|
backend->do_work_stealing_job(nth * config_.expert_num, nullptr, [&](int task_id) {
|
||||||
int expert_idx = task_id / nth;
|
uint64_t expert_idx = task_id / nth;
|
||||||
int ith = task_id % nth;
|
int ith = task_id % nth;
|
||||||
void* gate_input_ptr = m_local_gate_input_ptr_[expert_idx];
|
void* gate_input_ptr = m_local_gate_input_ptr_[expert_idx];
|
||||||
void* gate_proj_ptr = (uint8_t*)gate_proj_ + (expert_idx * config_.intermediate_size + ith * stride) * config_.hidden_size * ggml_type_size(config_.gate_type) / ggml_blck_size(config_.gate_type);
|
void* gate_proj_ptr = (uint8_t*)gate_proj_ + (expert_idx * config_.intermediate_size + ith * stride) * config_.hidden_size * ggml_type_size(config_.gate_type) / ggml_blck_size(config_.gate_type);
|
||||||
@ -246,7 +246,7 @@ void MOE::forward_many(int qlen, int k, const uint64_t* expert_ids, const float*
|
|||||||
stride = QK_K;
|
stride = QK_K;
|
||||||
nth = config_.hidden_size / stride;
|
nth = config_.hidden_size / stride;
|
||||||
backend->do_work_stealing_job(nth * config_.expert_num, nullptr, [&](int task_id) {
|
backend->do_work_stealing_job(nth * config_.expert_num, nullptr, [&](int task_id) {
|
||||||
int expert_idx = task_id / nth;
|
uint64_t expert_idx = task_id / nth;
|
||||||
int ith = task_id % nth;
|
int ith = task_id % nth;
|
||||||
void* down_input_ptr = m_local_down_input_ptr_[expert_idx];
|
void* down_input_ptr = m_local_down_input_ptr_[expert_idx];
|
||||||
void* down_proj_ptr = (uint8_t*)down_proj_ + (expert_idx * config_.hidden_size + ith * stride) * config_.intermediate_size * ggml_type_size(config_.down_type) / ggml_blck_size(config_.down_type);
|
void* down_proj_ptr = (uint8_t*)down_proj_ + (expert_idx * config_.hidden_size + ith * stride) * config_.intermediate_size * ggml_type_size(config_.down_type) / ggml_blck_size(config_.down_type);
|
||||||
|
|||||||
@ -32,7 +32,7 @@ custom_models = {
|
|||||||
ktransformer_rules_dir = os.path.dirname(os.path.abspath(__file__)) + "/optimize/optimize_rules/"
|
ktransformer_rules_dir = os.path.dirname(os.path.abspath(__file__)) + "/optimize/optimize_rules/"
|
||||||
default_optimize_rules = {
|
default_optimize_rules = {
|
||||||
"DeepseekV2ForCausalLM": ktransformer_rules_dir + "DeepSeek-V2-Chat.yaml",
|
"DeepseekV2ForCausalLM": ktransformer_rules_dir + "DeepSeek-V2-Chat.yaml",
|
||||||
"DeepseekV3ForCausalLM": ktransformer_rules_dir + "DeepSeek-V3-Chat.yaml",
|
"DeepseekV3ForCausalLM": ktransformer_rules_dir + "DeepSeek-V3-Chat-multi-gpu.yaml",
|
||||||
"Qwen2MoeForCausalLM": ktransformer_rules_dir + "Qwen2-57B-A14B-Instruct.yaml",
|
"Qwen2MoeForCausalLM": ktransformer_rules_dir + "Qwen2-57B-A14B-Instruct.yaml",
|
||||||
"LlamaForCausalLM": ktransformer_rules_dir + "Internlm2_5-7b-Chat-1m.yaml",
|
"LlamaForCausalLM": ktransformer_rules_dir + "Internlm2_5-7b-Chat-1m.yaml",
|
||||||
"MixtralForCausalLM": ktransformer_rules_dir + "Mixtral.yaml",
|
"MixtralForCausalLM": ktransformer_rules_dir + "Mixtral.yaml",
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user