配置参数

参数域

参数名

解释

范围

默认值

模型&硬件

enable_auto_config

单次仿真、参数寻优时是否开启从环境中自动导入模型&硬件参数。

  • 开启:将会忽略config.json中hardware_model_config参数配置的值,并从环境中自动导入。运行过程中,用户可根据提示手动输入部分导入失败的参数。
  • 关闭:将会使用config.json中hardware_model_config参数配置的值。
  • true:开启
  • false:关闭

true

hbm_size

NPU芯片的显存大小。

  • 自动导入:根据环境中npu-smi info命令打印的信息进行匹配。
  • 手动配置:手动输入范围内的显存大小。

[32,64]

64

world_size

整个服务使用NPU的数量。

  • 自动导入:读取mindie-service中config.json文件的worldSize参数配置的值。
  • 手动配置:手动配置实际生效的NPU数量。

[1,64]

2

dp_size

数据并行的数量。

  • 自动导入:读取mindie-service中config.json文件配置的dp值。
  • 手动配置:手动配置实际生效的dp数。

[1,64]

1

model_name

模型名称。

  • 自动导入:读取mindie-service中config.json文件的modelName参数配置的值。
  • 手动配置:手动配置正确的模型名称。

最大长度30

llama3-8b

llm_size

模型权重大小。

  • 自动导入:自动在模型名称中提取。
  • 手动配置:手动配置真实模型权重大小(例:llama3-8b,配置为8)。

[1,5000]

8

hidden_size

表示模型隐藏层的维度。

  • 自动导入:从权重路径下的config.json中导入。
  • 手动配置:手动配置真实的模型隐藏层维度。

[1,1e5]

5120

num_hidden_layers

表示模型隐藏层的数量。

  • 自动导入:从权重路径下的config.json中导入。
  • 手动配置:手动配置真实的模型隐藏层数量。

[1,1000]

80

num_attention_heads

表示模型的注意力头数。

  • 自动导入:从权重路径下的config.json中导入。
  • 手动配置:手动配置真实的模型注意力头数。

[1,1000]

64

num_key_value_heads

表示模型的键(Key)和值(Value)的头数。

  • 自动导入:从权重路径下的config.json中导入。
  • 手动配置:手动配置真实的模型KV头数。

[1,1000]

8

单次仿真

npu_mem_size

服务化推理时,分配给KVCache的显存空间。

配置为-1时,会根据workspace进行自动计算。

说明:

实际执行时,会进行warmup来实际做一次Prefill获取真实workspace,此时会产生误差。

[-1,64]

-1

block_size

一个block所包含的token数。

[1,1000]

128

concurrency

并发数,模拟Benchmark与MindIE Server线程池连接总数。

[1,4096]

1000

request_rate

客户端发送的请求频率。

(0,1000]

20

max_seq_len

最大序列长度(最大输入长度+最大输出长度)。

[1,1e5]

2560

max_input_len

最大输入长度。

[1,1e5]

2048

max_prefill_batch_size

Prefill阶段最大可组到的batch大小。

[1,4096]

50

max_prefill_tokens

Prefill阶段最大可支持的token总数。

[1,1e6]

8192

prefill_time_ms_per_request

平均Prefill时延;当support_select_batch=true时生效。

[1,1000]

150

decode_time_ms_per_request

平均Decode时延;当support_select_batch=true时生效。

[1,1000]

50

max_batch_size

单次Decode阶段允许最大的batchsize。

[1,4096]

200

support_select_batch

选择调度策略。

  • true:Decode优先
  • false:Prefill优先

true

recompute_ratio

表示当前可下发的请求占用的block资源占总block资源的比例,即block资源利用率。

以0.5为例,当前可下发的请求资源利用率小于0.5时,就会触发重计算,释放少量请求的block,来保证其他请求资源使用。

[0.1,1]

0.5

参数寻优

avg_prefill_time_thld

平均Prefill时延限制,单位ms,0表示没有限制。

[0,1e6]

1000

avg_decode_time_thld

平均Decode时延限制,单位ms,0表示没有限制。

[0,1e6]

50

SLOP90_prefill_time_thld

SLOP90 Prefill时延限制,单位ms,0表示没有限制。

[0,1e6]

1000

SLOP90_decode_time_thld

SLOP90 Decode时延限制,单位ms,0表示没有限制。

[0,1e6]

50

concurrency_range

并发数寻优范围,取值格式为:[下限,上限,步长],其步长仅在gridsearch生效。

上下限取值范围为[1,4096],最小步长为1。

[1000,1000,10]

request_rate_range

请求频率寻优范围,取值格式为:[下限,上限,步长],其步长仅在gridsearch生效。

上下限取值范围为[0.1,1000.0],最小步长为0.1。

[0.5,30,0.5]

max_prefill_batch_size_range

最大Prefill阶段batchsize寻优范围,取值格式为:[下限,上限,步长],其步长仅在gridsearch生效。

上下限取值范围为[1,4096],最小步长为1。

[1,50,5]

prefill_time_ms_per_request_range

平均Prefill时延寻优范围,取值格式为:[下限,上限,步长],其步长仅在gridsearch生效。

上下限取值范围为[1,1000],最小步长为1。

[10,1000,10]

max_batch_size_range

最大Decode阶段batchsize寻优范围,取值格式为:[下限,上限,步长],其步长仅在gridsearch生效。

上下限取值范围为[1,4096],最小步长为1。

[10,200,10]