执行测试
本文提供训练阶段和推理阶段性能测试方法。训练阶段测试为非必选项,可以使用已经存在的模型文件直接进行推理阶段压测。
训练阶段性能测试
- 进入ModelZoo所在路径。
1
cd path/to/modelzoo
- 训练模型并保存模型。
1
python train_throughput_test.py --test_method single --meta_path /path --criteo_data_location /path/modelzoo/wide_and_deep/data --taobao_data_location /path/modelzoo/dssm/data
其中:
- --test_method:用于指定训练时所用的资源。single表示使用单NUMA;entire表示使用整台服务器的所有NUMA。默认使用单NUMA。
- --meta_path:sra_benchmark所在路径。
- -- criteo_data_location:criteo-kaggle数据集所在位置。
- -- taobao_data_location:Taobao数据集所在位置。
以下训练结果以Wide_and_Deep模型为例,训练并保存模型后,需要有如下图所示的结构目录,“variables”文件夹和saved_model.pb文件分别为保存的已训练模型的数据和模型结构。
AUC的值将在终端中打印输出。
推理阶段性能测试
- 进入ModelZoo所在路径。
1
cd path/to/modelzoo
- 执行推理阶段压测命令,即可对Wide_and_Deep,DLRM,DeepFM,DFFM,DSSM五个模型进行推理阶段性能压测。
1
python inference_throughput_test.py --test_method entire --meta_path /path --serving_path /path/to/tfserving --image nvcr.io/nvidia/tritonserver:24.05-py3-sdk --intra 0 --inter 0
其中,
- --test_method:用于指定训练时所用的资源。single表示使用单NUMA,限制为使用NUMA0;entire表示使用整台服务器的所有NUMA。默认使用整台服务器的所有NUMA。
- --meta_path:sra_benchmark所在路径。
- --serving_path:包含TF-Serving可执行二进制文件的路径。
- --image:用于执行压测的TritonServer的容器名称及版本。
- --intra:tensorflow_intra_op_parallelism,表示TensorFlow所有算子中各个算子内并行线程数,默认为“0”
- --inter:tensorflow_inter_op_parallelism,表示TensorFlow所有算子中各个算子间并行线程数,默认为“0”
- 各模型推理时的吞吐量保存在“modelzoo”下“inference_log”文件夹中。
部分模型压测结果保存的文件如下图所示。
在整机4个NUMA的测试场景中,以DeepFM模型为例,测试结果按NUMA编号分别记录在“inference_log”文件夹下deepfm_client0.txt,deepfm_client1.txt,deepfm_client2.txt,deepfm_client3.txt中。若是单NUMA测试,则测试结果记录在“inference_log”文件夹下的deepfm_client0.txt中(因为限制使用NUMA0)。
测试结果说明
以DeepFM的推理性能压测结果为例,deepfm_client0.txt中的部分内容如图1所示。
- Concurrency:性能测试时客户端发送请求的并发数。
- throughput:吞吐量,单位为infer/sec,指每秒推理次数。
- latency:p99时延,单位为usec,指99%的请求延迟都低于此值。
父主题: 启动服务并压测