DAIBenchAI 评估集
DAIBench( DiDi AI Benchmarks )旨在提供一套适用于生产环境的AI评估集,跨越不同类型的GPU服务器和云环境,为用户未来的硬件选型、软件和库提供有效可信的测试结果优化、业务模型完善、链路压测等阶段打下坚实的数据基础和技术参考。
支持的功能
- 分层基准测试,从硬件(L1)、算子(L2)到模型(L3),更高级别的基准测试待定。
- 云原生基准测试,容器化部署,简单易用。
- 多云基准测试结果对于考虑价格/性能很有用。
总体结构
DAIBench综合考虑了现有的GPU性能测试工具,将指标分为硬件层、框架(算子)层、算法层。
对于每个级别,DAIBench 目前支持以下测试:
层 | 支持的测试 |
---|---|
硬件层 | 重点关注硬件本身的指标,如峰值计算吞吐量(TFLOPS/TOPS)计算指标和内存访问带宽、PCIe通信带宽等I/O指标。 |
帧/算子层 | 基于主流AI框架评估常用算子(卷积、Softmax、矩阵乘法等)的算力。 |
模型层 | 通过在一系列生产任务中选择模型来执行端到端评估。 |
入门
硬件层
cd <test_folder> bash install.sh bash run.sh
对于GPU测试,请先安装合适nvidia-driver
的cuda
。
算子层
当前算子层正在使用DeepBench
cd operator bash install.sh # download source code & prepare nccl
运行 GEMM、卷积、循环运算和稀疏 GEMM 基准测试:
bin/gemm_bench <inference|train> <int8|float|half>
要执行 NCCL 单一 All-Reduce 基准测试:
bin/nccl_single_all_reduce <num_gpus>
NCCL MPI All-Reduce 基准测试可以使用 mpirun 运行,如下所示:
mpirun -np <num_ranks> bin/nccl_mpi_all_reduce
num_ranks 不能大于系统中 GPU 的数量。
模型层
docker
并且nvidia-docker
是模型测试所必需的。要运行特定模型,请阅读Readme.md
文件夹中的内容。
一般测试程序:
- 下载数据集
- 预处理数据集(如果需要)
- 构建 docker
- 启动基准测试
- 得到结果
评论