Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
FluidDoc
提交
61bad9c3
F
FluidDoc
项目概览
PaddlePaddle
/
FluidDoc
通知
5
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
23
列表
看板
标记
里程碑
合并请求
111
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
F
FluidDoc
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
23
Issue
23
列表
看板
标记
里程碑
合并请求
111
合并请求
111
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
61bad9c3
编写于
6月 26, 2018
作者:
D
dzhwinter
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
"refine"
上级
7171a6cf
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
13 addition
and
26 deletion
+13
-26
source/advanced_usage/benchmark.rst
source/advanced_usage/benchmark.rst
+13
-26
未找到文件。
source/advanced_usage/benchmark.rst
浏览文件 @
61bad9c3
# 如何进行基准测试
#################
如何进行基准测试
#################
本文介绍如何给深度学习框架做基准测试。
benchmark测试主要包含验证模型的精度和性能两方面,
下文通过搭建测试环境和测试指标等多方面对Fluid进行基准测试.
`Fluid <https://github.com/PaddlePaddle/Paddle>`__ 是PaddlePaddle
从0.11.0 引入的新设计, 用来让用户像Pytorch和Tensorflow Eager
Execution一样写程序.
验证深度学习框架,可分为训练和测试两个阶段。验证指标大同小异,例如训练关注的是训练集上的精度,大batch\_size下的训练速度,而测试关注的是在测试集上的精度,小batch\_size下的预测速度。本文只介绍训练阶段的指标验证。
本文介绍如何给深度学习框架做基准测试。基准测试主要包含验证模型的精度和性能两方面,下文包含搭建测试环境, 选择基准测试模型, 验证测试结果等几方面内容。
验证深度学习框架,可分为训练和测试两个阶段, 验证指标略有不同,本文只介绍训练阶段的指标验证。训练阶段关注的是模型训练集上的精度,训练集是完备的,因此关注大batch\_size下的训练速度,关注吞吐量,例如图像模型常用的batch\_size=128, 多卡情况下会加大; 预测阶段关注的是在测试集上的精度,线上服务测试数据不能提前收集,因此关注小batch\_size下的预测速度,关注延迟,例如预测服务常用的batch\_size=1, 4等。
`Fluid <https://github.com/PaddlePaddle/Paddle>`__ 是PaddlePaddle从0.11.0版本开始引入的设计,本文的基准测试在该版本上完成。
环境搭建
~~~~~~~~
下文中的对比实验都在相同的硬件条件和软件条件下进行.
benchmark的结果强依赖于硬件。所以需要保证影响指标的硬件环境一致,这样benchmark才有意义。
对硬件方面,对GPU验证需要保证GPU的型号一致;
对cpu需要保证CPU型号一致,另对于厂内机器,需要额外关注内存插条顺序是最优的;
########
基准测试中模型的精度和硬件、框架无关,由模型结构和数据共同决定; 性能方面由测试硬件和框架本身性能共同决定。为了对比框架之间的差异,需要控制硬件环境,系统库等版本一致。下文中的对比实验都在相同的硬件条件和系统环境条件下进行.
对硬件方面,对GPU验证需要保证GPU的型号一致; 对CPU需要保证CPU型号一致;
对软件方面,基础库Cuda大版本需要保持一致,例如Cuda9与Cuda8支持指令不同,运行速度有差异,在此软件环境下,源码编译paddle。paddle会针对cuda生成对应的sm\_arch二进制\ `sm\_arch <https://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html>`__\ 。cudnn对重卷积类任务影响巨大,需要版本\ **完全一致**\ 。
本教程中的硬件环境为 Intel(R) Xeon(R) CPU E5-2660 v4 @ 2.00GHz. TITAN X
(Pascal) 12G x 1 系统环境为 System: Ubuntu 16.04.3 LTS, Nvidia-Docker
...
...
@@ -22,8 +17,8 @@ benchmark的结果强依赖于硬件。所以需要保证影响指标的硬件
采用的Fluid版本为\ `v.0.12.0 <https://github.com/PaddlePaddle/Paddle/releases/tag/v.0.12.0>`__,
需要commit一致.
模型选择
~~~~~~~~
基准
模型选择
############
benchmark需要兼顾大小模型,不同训练任务下的表现,
才能说明框架效果。其中mnist, VGG, Resnet属于CNN模型,
...
...
@@ -31,7 +26,7 @@ stacked-lstm代表RNN模型.
`benchmark <https://github.com/PaddlePaddle/Paddle/tree/develop/benchmark/fluid>`__
测试过程
~~~~~~~~
########
- CPU
...
...
@@ -61,7 +56,7 @@ nvidia/cuda:8.0-cudnn7-devel-ubuntu16.04
将其中的CASE\_NAME和IMAGE\_NAME换为对应的名字,运行对应的例子
测试结果
~~~~~~~~
########
CPU测试结果
...
...
@@ -96,11 +91,3 @@ GPU测试结果
+----------------+----------------+---------------------+
注:mnist由于图像太小,采用计量单位为s
Reference
~~~~~~~~~
- PaddlePaddle Fluid
`Paddle <https://github.com/PaddlePaddle/Paddle>`__
- TensorFlow `TensorFlow <https://github.com/tensorflow/tensorflow>`__
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录