昇腾社区首页
中文
注册
开发者
下载

BIOS配置

本节将介绍基于昇腾AI处理器上的一系列通过BIOS进行高性能配置的操作。

配置高性能模式

原理:通常昇腾AI处理器在能耗菜单(power policy)提供Efficiency 和 Performance两种配置。

  • Efficiency表示节能模式,CPU支持动态调频调压, 可根据负载情况,动态调整工作频率。
  • Performance表示性能模式,CPU无动态调频,固定运行在最大频率。

调优配置:将Power Policy设置为Performance,获得更优性能。

缺点:开启高性能模式,会产生较大的能耗。

推荐场景:建议推理场景下,打开高性能模式,可以有效提升CPU性能,减少CPU运行空泡,从而提升模型性能。

实验室在Atlas 800T A2上安装openEuler 22.03 sp4,部署llama2_7B、qwen2_7B模型,对开启高性能开关前后模型的推理性能进行了研究。以下实验数据基于MindIE进行测试,由于软硬件存在差异,以下数据仅作为参考,不作为性能标准。

表1 实验数据

模型

并发数

输入长度

实验次数

默认efficiency

(tokens/s)

performance

(tokens/s)

性能收益(%)

llama_7b

8

128

实验1

75.4373

76.1809

0.99

实验2

75.3953

76.0922

0.92

实验3

75.4051

76.0719

0.88

平均值

75.4126

76.1150

0.93

8

256

实验1

76.5359

77.5444

1.32

实验2

76.5362

77.3321

1.04

实验3

77.0832

77.9778

1.16

平均值

76.7184

77.6181

1.17

qwen2_7b

8

128

实验1

83.5893

84.6158

1.23

实验2

83.4479

84.4310

1.18

实验3

83.3766

84.3732

1.20

平均值

83.4713

84.4733

1.20

8

256

实验1

84.7990

85.8575

1.25

实验2

84.7267

85.5879

1.02

实验3

84.8510

86.2523

1.65

平均值

84.7922

85.8992

1.31

配置方式:通过BMC进入BIOS后,将配置项“PowerPolicy”的值设置为“Performance”,配置路径为“Advanced->Performance Config- >Power Policy”。

图1 配置示例

修改内存刷新速率

原理:DRAM内存内部使用电容来存储数据,由于电容有漏电现象,经过一段时间电荷会泄放,导致数据不能长时间存储。因此需要不断充电,这个充电的动作叫做刷新。刷新操作与读写操作无法同时进行,即刷新时会对内存的性能造成影响。BIOS为内存刷新速率选项提供了Auto选项,可以根据工作温度自动调节内存刷新速率,相比默认32ms配置可以提升内存性能。

调优配置:将内存刷新速率设置为Auto。

推荐场景:动态调整内存刷新速率,一定程度上可以提升内存拷贝性能,从而有助于模型性能提升。

实验室在Atlas 800T A2上安装openEuler 22.03 sp4,部署llama2_7B、qwen2_7B模型,对不同内存刷新速率对模型的推理性能进行了研究。以下实验数据基于MindIE进行测试,由于软硬件存在差异,以下数据仅作为参考,不作为性能标准。

表2 实验数据

模型

并发数

输入长度

请求数

实验次数

默认32ms

(tokens/s)

auto

(tokens/s)

性能收益(%)

llama_7b

8

128

2000

实验1

75.4373

80.4640

6.66

实验2

75.3953

80.3319

6.55

实验3

75.4051

80.4814

6.73

平均值

75.4126

80.4258

6.65

8

256

2000

实验1

76.5359

81.8636

6.96

实验2

76.5362

81.8073

6.89

实验3

77.0832

81.7618

6.07

平均值

76.7184

81.8109

6.64

qwen2_7b

8

128

2000

实验1

83.5893

87.0385

4.13

实验2

83.4479

87.1340

4.42

实验3

83.3766

86.9090

4.24

平均值

83.4713

87.0272

4.26

8

256

2000

实验1

84.7990

87.9068

3.66

实验2

84.7267

87.8995

3.74

实验3

84.8510

87.8859

3.58

平均值

84.7922

87.8974

3.66

配置方式:通过BMC进入BIOS后,将配置项“Custom Refresh Rate”的值设置为“Auto”,配置路径为“Advanced->Memory Config- >Custom Refresh Rate”。

图2 配置示例

修改CPU的预取开关

原理:CPU将内存中的数据读取到内部高速缓冲Cache时,会根据局部性原理,除了读取本次要访问的数据,还会预取本次数据的周边数据到Cache里面,如果预取的数据是下次要访问的数据,则性能会提升。

调优配置:打开CPU预取。

缺点:对于数据比较集中的场景,预取的命中率高,适合打开CPU预取,反之需要关闭CPU预取。

推荐场景:在推理场景下,打开CPU预取功能,可以有效提升CPU读取数据的性能,从而提升模型的性能。

实验室在Atlas 800T A2上安装openEuler 22.03 sp4,部署llama2_7B、qwen2_7B模型,对开启cpu预取开关前后模型的推理性能进行了研究。以下实验数据基于MindIE进行测试,由于软硬件存在差异,以下数据仅作为参考,不作为性能标准。

表3 实验数据

模型

并发数

输入长度

实验次数

默认开启CPU预取

(tokens/s)

关闭CPU预取

(tokens/s)

性能收益(%)

llama_7b

8

128

实验1

75.4373

74.7984

-0.85

实验2

75.3953

74.6472

-0.99

实验3

75.4051

74.6587

-0.99

平均值

75.4126

74.7014

-0.94

8

256

实验1

76.5359

75.9913

-0.71

实验2

76.5362

75.9398

-0.78

实验3

77.0832

76.4258

-0.85

平均值

76.7184

76.1190

-0.78

qwen2_7b

8

128

实验1

83.5893

82.1724

-1.70

实验2

83.4479

81.9364

-1.81

实验3

83.3766

82.0396

-1.60

平均值

83.4713

82.0495

-1.70

8

256

实验1

84.7990

83.6620

-1.34

实验2

84.7267

83.0590

-1.97

实验3

84.8510

83.9055

-1.11

平均值

84.7922

83.5422

-1.47

配置方式:通过BMC进入BIOS后,将配置项“CPU Prefetching Configuration”配置为“Enabled”,配置路径为“Advanced->MISC Config- >CPU Prefetching Configuration”。

图3 示例配置

关闭SMMU

原理:SMMU主要实现虚拟地址到物理地址的转换, 但是SMMU可能会增加额外的查表开销和延迟,从而降低系统的性能

调优配置:关闭SMMU。

推荐场景:在非虚拟机场景下(裸机、docker)关闭 SMMU,有助于提升模型性能。

实验室在Atlas 800T A2上安装openEuler 22.03 sp4,部署llama2_7B、qwen2_7B模型,对开启SMMU开关前后模型的推理性能进行了研究。以下实验数据基于MindIE进行测试,由于软硬件存在差异,以下数据仅作为参考,不作为性能标准。

表4 实验数据

模型

并发数

输入长度

实验次数

默认关闭SMMU

(tokens/s)

开启SMMU

(tokens/s)

性能收益(%)

llama_7b

8

128

实验1

75.4373

74.9460

-0.65

实验2

75.3953

74.7320

-0.88

实验3

75.4051

75.0313

-0.50

平均值

75.4126

74.9031

-0.68

8

256

实验1

76.5359

75.7005

-1.09

实验2

76.5362

75.6460

-1.16

实验3

77.0832

75.8298

-1.63

平均值

76.7184

75.7254

-1.29

qwen2_7b

8

128

实验1

83.5893

81.5155

-2.48

实验2

83.4479

81.7802

-2.00

实验3

83.3766

82.2530

-1.35

平均值

83.4713

81.8496

-1.94

8

256

实验1

84.7990

82.8234

-2.33

实验2

84.7267

82.7696

-2.31

实验3

84.8510

82.7741

-2.45

平均值

84.7922

82.7890

-2.36

配置方式:通过BMC进入BIOS后,将配置项“Support Smmu”配置为“Disabled”,配置路径为“Advanced->MISC Config- >Support Smmu”。

图4 示例配置