性能#

评估过程#

本节展示了在不同 GPU 上 Riva ASR 服务的流式和离线配置的延迟和吞吐量数据。

在流式模式下,客户端和服务器使用相同持续时间的音频块。有关要使用的块大小值,请参阅结果部分。

Riva 流式客户端 riva_streaming_asr_client(在 Riva 镜像中提供)与 --simulate_realtime 标志一起使用,以模拟来自麦克风的转录,其中每个流对来自 LibriSpeech dev-clean 数据集的示例音频文件 (1272-135031-0000.wav) 执行三次迭代。

您可以从Riva C++ Clients获取 riva_streaming_asr_client 的源代码。

以下命令用于测量性能

riva_streaming_asr_client \
   --chunk_duration_ms=<chunk_duration> \
   --simulate_realtime=true \
   --automatic_punctuation=true \
   --num_parallel_requests=<num_streams> \
   --word_time_offsets=false \
   --print_transcripts=false \
   --interim_results=false \
   --num_iterations=<3*num_streams> \
   --audio_file=1272-135031-0000.wav \
   --output_filename=/tmp/output.json

riva_streaming_asr_client 命令返回以下延迟测量值

  • intermediate latency:使用 is_final == false 返回的响应的延迟

  • final latency:使用 is_final == true 返回的响应的延迟

  • latency:所有返回的响应的总体延迟。这是下表中制表的内容。

以下图表是 Riva 流式 ASR 客户端测量的不同延迟的示意图表示。

Schematic Diagram of Latencies Measured by Riva Streaming ASR Client

以下命令用于测量离线模式下的最大吞吐量

riva_asr_client \
   --automatic_punctuation=true \
   --num_parallel_requests=32 \
   --word_time_offsets=false \
   --print_transcripts=false \
   --num_iterations=96 \
   --audio_file=1272-135031-0000x5.wav \
   --output_filename=/tmp/output.json

其中 1272-135031-0000x5.wav1272-135031-0000.wav 音频文件连接五次的结果。您可以从Riva C++ Clients获取 riva_asr_client 的源代码。

结果#

流式和离线配置的延迟和吞吐量测量值在下表中报告。吞吐量(转录的音频时长/计算时间)以 RTFX 衡量。

注意

表中的值是三次试验的平均值。表中的值根据三次试验计算的标准差四舍五入到最后一位有效数字。如果标准差小于平均值的 0.001,则将相应的值四舍五入,如同标准差等于该值的 0.001。

有关收集这些测量值的硬件规格,请参阅硬件规格部分。

分块大小 (毫秒): 160
语言模型: n-gram
使用 n-gram 语言模型的最大有效流数: 270

流数

延迟 (毫秒)

吞吐量 (RTFX)

平均值

p50

p90

p95

p99

1

14

12.7

13.4

13.7

40

0.999

8

15.3

14.3

15.5

20

45.5

7.99

16

21

18

26

28

60

15.97

32

28

28

37

40

90

31.9

48

35

35

46

47.4

100

47.8

64

42

40

54

55

130

63.7

分块大小 (毫秒): 960
语言模型: n-gram
使用 n-gram 语言模型的最大有效流数: 1240

流数

延迟 (毫秒)

吞吐量 (RTFX)

平均值

p50

p90

p95

p99

1

20

13.7

20

30

100

1

64

53

50

64

120

150

63.7

128

77

65

96

200

245

127

256

120

107

156

300

440

252.5

384

162

145

220

440

640

376

512

200

180

276

530

800

499

语言模型: n-gram

说话人日志

流数

吞吐量 (RTFX)

1

300

32

2200

32

170

分块大小 (毫秒): 160
语言模型: n-gram
使用 n-gram 语言模型的最大有效流数: 160

流数

延迟 (毫秒)

吞吐量 (RTFX)

平均值

p50

p90

p95

p99

1

18

16.7

17.4

20

40

0.999

8

21

19.8

21

30

50.4

7.99

16

29

26

40

41

70

15.96

32

41

45

51

55

110

31.9

48

53

58

71

73

160

47.75

64

65.5

72

83

85

210

63.6

分块大小 (毫秒): 960
语言模型: n-gram
使用 n-gram 语言模型的最大有效流数: 770

流数

延迟 (毫秒)

吞吐量 (RTFX)

平均值

p50

p90

p95

p99

1

20

18.4

20

36

100

0.999

64

80

83

95

140

200

63.7

128

119

100

155

230

296

126.8

256

190

170

270

400

530

252

384

260

245

378

580

800

374.5

512

346

330

496

850

1200

494

语言模型: n-gram

说话人日志

流数

吞吐量 (RTFX)

1

200

32

2000

32

120

分块大小 (毫秒): 160
语言模型: n-gram
使用 n-gram 语言模型的最大有效流数: 355

流数

延迟 (毫秒)

吞吐量 (RTFX)

平均值

p50

p90

p95

p99

1

10

9.9

11.3

12

40

1

8

12.6

12

13.4

17

31

8

16

17

15

22

25

40

15.98

32

23

23

31

33

50

31.94

48

29

28

40

41

70

47.9

64

33.6

38

45

47

70

63.9

128

49

47

64

67

150

127.6

256

84

75

107

126

391

255

分块大小 (毫秒): 800
语言模型: n-gram
使用 n-gram 语言模型的最大有效流数: 1400

流数

延迟 (毫秒)

吞吐量 (RTFX)

平均值

p50

p90

p95

p99

1

14

11

20

40

80

1

64

39

40

55

80

110

63.9

128

58

50

75

150

202

127.6

256

90

80

115

240

380

255

384

120

107

155

316

530

381.4

512

149

130

196

400

700

508

768

258

200

630

680

1280

756

1024

420

263

1280

1350

1900

992

语言模型: n-gram

流数

吞吐量 (RTFX)

32

467

语言模型: n-gram

说话人日志

流数

吞吐量 (RTFX)

1

90

32

370

语言模型: none

说话人日志

流数

吞吐量 (RTFX)

1

11

32

77

语言模型: none

说话人日志

流数

吞吐量 (RTFX)

1

40

32

300

分块大小 (毫秒): 160
语言模型: n-gram
使用 n-gram 语言模型的最大有效流数: 179

流数

延迟 (毫秒)

吞吐量 (RTFX)

平均值

p50

p90

p95

p99

1

16

15.3

16.2

16.3

40

0.999

8

21.6

20.4

22

23

59

7.99

16

28

26.4

30

39

80

15.96

32

41.4

40

53

54

130

31.85

48

49

54

64

66

160

47.7

64

59

67

75

76

216

63.6

分块大小 (毫秒): 960
语言模型: n-gram
使用 n-gram 语言模型的最大有效流数: 810

流数

延迟 (毫秒)

吞吐量 (RTFX)

平均值

p50

p90

p95

p99

1

20

19.6

30

40

100

0.999

64

90

93

110

200

240

63.5

128

115

100

140

260

350

126.6

256

185

163

248

451

630

251

384

254

230

350

630

930

373

512

362

300

730

940

1550

491

语言模型: n-gram

说话人日志

流数

吞吐量 (RTFX)

1

300

32

2000

32

125

分块大小 (毫秒): 160
语言模型: n-gram
使用 n-gram 语言模型的最大有效流数: 104

流数

延迟 (毫秒)

吞吐量 (RTFX)

平均值

p50

p90

p95

p99

1

24

22.7

23.7

25

50

0.999

8

32.7

31

33

51

72.7

7.98

16

44

40.8

50

63

110

15.94

32

59

60

73

75

180

31.8

48

79

90

93

100

240

47.6

64

100

109

114

160

310

63.4

分块大小 (毫秒): 960
语言模型: n-gram
使用 n-gram 语言模型的最大有效流数: 490

流数

延迟 (毫秒)

吞吐量 (RTFX)

平均值

p50

p90

p95

p99

1

30

29.1

40

50

100

0.999

64

123

130

160

240

260

63.5

128

185

165

240

360

430

126.4

256

300

266

430

630

830

249.4

384

460

445

770

1100

1560

368

512

720

650

1400

1550

2150

483

语言模型: n-gram

说话人日志

流数

吞吐量 (RTFX)

1

180

32

1330

32

75

分块大小 (毫秒): 160
语言模型: n-gram
使用 n-gram 语言模型的最大有效流数: 233

流数

延迟 (毫秒)

吞吐量 (RTFX)

平均值

p50

p90

p95

p99

1

13

11.8

12.8

14

40

1

8

17.6

16.8

18.5

22

39

8

16

22.5

21.3

25

31

60.3

15.98

32

32.4

35

42

46

70

31.93

48

41

40

58

59

100

47.9

64

46

50

64

66

100

63.8

128

73

66

94

97

220

127.5

分块大小 (毫秒): 800
语言模型: n-gram
使用 n-gram 语言模型的最大有效流数: 980

流数

延迟 (毫秒)

吞吐量 (RTFX)

平均值

p50

p90

p95

p99

1

16

13

20

40

80

1

64

60

60

80

110

180

63.8

128

90

80

110

230

300

127.5

256

133.3

120

174

340

530

254

384

183

166

245

430

800

380

512

260

223

510

600

1200

505

768

535

354

1500

1640

2150

739

1024

940

600

2300

2570

2930

960

语言模型: n-gram

流数

吞吐量 (RTFX)

32

460

语言模型: n-gram

说话人日志

流数

吞吐量 (RTFX)

1

60

32

234

语言模型: none

说话人日志

流数

吞吐量 (RTFX)

1

5.7

32

38.75

语言模型: none

说话人日志

流数

吞吐量 (RTFX)

1

24

32

168

分块大小 (毫秒): 160
语言模型: n-gram
使用 n-gram 语言模型的最大有效流数: 190

流数

延迟 (毫秒)

吞吐量 (RTFX)

平均值

p50

p90

p95

p99

1

19

18.3

19.3

20

43.5

0.999

8

24

23

30

30

65

7.98

16

31.4

29

38.3

42

80

15.96

32

42

42

57

60

100

31.9

48

52

53

69.6

75

130

47.8

分块大小 (毫秒): 960
语言模型: n-gram
使用 n-gram 语言模型的最大有效流数: 900

流数

延迟 (毫秒)

吞吐量 (RTFX)

平均值

p50

p90

p95

p99

1

25

22

30

50

90

0.999

64

90

90

110

160

200

63.6

128

120

100

150

240

330

126.8

256

180

160

240

400

560

251.5

语言模型: n-gram

说话人日志

流数

吞吐量 (RTFX)

1

240

32

2030

32

101.5

分块大小 (毫秒): 160
语言模型: n-gram
使用 n-gram 语言模型的最大有效流数: 110

流数

延迟 (毫秒)

吞吐量 (RTFX)

平均值

p50

p90

p95

p99

1

25

23

29

30

50

0.999

8

31

29

35.5

46

70

7.98

16

44

40

56

60

100

15.95

32

60

62

76

80

150

31.84

48

80

86

100

112

227

47.7

分块大小 (毫秒): 960
语言模型: n-gram
使用 n-gram 语言模型的最大有效流数: 578

流数

延迟 (毫秒)

吞吐量 (RTFX)

平均值

p50

p90

p95

p99

1

30

27

40

50

100

0.999

64

120

130

150

200

240

63.5

128

170

150

220

310

380

126.5

256

270

250

390

540

700

250.5

语言模型: n-gram

说话人日志

流数

吞吐量 (RTFX)

1

180

32

1440

32

94

分块大小 (毫秒): 160
语言模型: n-gram
使用 n-gram 语言模型的最大有效流数: 280

流数

延迟 (毫秒)

吞吐量 (RTFX)

平均值

p50

p90

p95

p99

1

11

10.3

11.2

12.4

30

1

8

20

19

26

30

42

7.99

16

28

26

35

40

56

15.97

32

35

35

48

52

73

31.9

64

50

55

66

70

100

63.8

分块大小 (毫秒): 800
语言模型: n-gram
使用 n-gram 语言模型的最大有效流数: 1180

流数

延迟 (毫秒)

吞吐量 (RTFX)

平均值

p50

p90

p95

p99

1

14

11.5

20

30

60

1

64

70

70

90

100

170

63.8

128

88

84

110

190

250

127.4

256

128

117

164

300

460

254.4

语言模型: n-gram

流数

吞吐量 (RTFX)

32

440

语言模型: n-gram

说话人日志

流数

吞吐量 (RTFX)

1

70

32

193.5

语言模型: none

说话人日志

流数

吞吐量 (RTFX)

1

6.2

32

43.3

语言模型: none

说话人日志

流数

吞吐量 (RTFX)

1

28

32

192

本地部署硬件规格#

GPU

NVIDIA DGX A100 40GB

CPU

型号

AMD EPYC 7742 64 核处理器

每核线程数

2

插槽数

2

每插槽核心数

64

NUMA 节点数

8

频率加速

已启用

CPU 最大 MHz

2250

CPU 最小 MHz

1500

内存

型号

美光 DDR4 36ASF8G72PZ-3G2B2 3200MHz

配置的内存速度

2933 MT/s

内存大小

32x64GB (总共 2048GB)

GPU

NVIDIA H100 80GB HBM3

CPU

型号

英特尔(R) 至强(R) 铂金 8480CL

每核线程数

2

插槽数

2

每插槽核心数

56

NUMA 节点数

2

CPU 最大 MHz

3800

CPU 最小 MHz

800

内存

型号

美光 DDR5 MTC40F2046S1RC48BA1 4800MHz

配置的内存速度

4400 MT/s

内存大小

32x64GB (总共 2048GB)

GPU

NVIDIA L40

CPU

型号

AMD EPYC 7763 64 核处理器

每核线程数

1

插槽数

2

每插槽核心数

64

NUMA 节点数

8

频率加速

已启用

CPU 最大 MHz

3529

CPU 最小 MHz

1500

内存

型号

三星 DDR4 M393A4K40DB3-CWE 3200MHz

配置的内存速度

3200 MT/s

内存大小

16x32GB (总共 512GB)