Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
BaiXuePrincess
Paddle
提交
84096932
P
Paddle
项目概览
BaiXuePrincess
/
Paddle
与 Fork 源项目一致
Fork自
PaddlePaddle / Paddle
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Paddle
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
84096932
编写于
6月 27, 2019
作者:
M
Michał Gallus
提交者:
Tao Luo
6月 27, 2019
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Reset DeviceContext after quantization warmup (#18182)
test=develop
上级
b7128bac
变更
4
显示空白变更内容
内联
并排
Showing
4 changed file
with
14 addition
and
0 deletion
+14
-0
paddle/fluid/inference/api/mkldnn_quantizer.cc
paddle/fluid/inference/api/mkldnn_quantizer.cc
+8
-0
paddle/fluid/inference/api/mkldnn_quantizer.h
paddle/fluid/inference/api/mkldnn_quantizer.h
+1
-0
paddle/fluid/platform/device_context.cc
paddle/fluid/platform/device_context.cc
+2
-0
paddle/fluid/platform/device_context.h
paddle/fluid/platform/device_context.h
+3
-0
未找到文件。
paddle/fluid/inference/api/mkldnn_quantizer.cc
浏览文件 @
84096932
...
@@ -355,6 +355,13 @@ AnalysisPredictor::MkldnnQuantizer::Histogram(
...
@@ -355,6 +355,13 @@ AnalysisPredictor::MkldnnQuantizer::Histogram(
return
std
::
make_pair
(
std
::
move
(
hist
),
std
::
move
(
bin_width
));
return
std
::
make_pair
(
std
::
move
(
hist
),
std
::
move
(
bin_width
));
}
}
void
AnalysisPredictor
::
MkldnnQuantizer
::
ClearDeviceContext
()
const
{
platform
::
DeviceContextPool
&
pool
=
platform
::
DeviceContextPool
::
Instance
();
platform
::
MKLDNNDeviceContext
*
dev_ctx
=
(
platform
::
MKLDNNDeviceContext
*
)
pool
.
Get
(
predictor_
.
place_
);
dev_ctx
->
ResetBlobMap
();
}
void
AnalysisPredictor
::
MkldnnQuantizer
::
PrepareArgument
()
const
{
void
AnalysisPredictor
::
MkldnnQuantizer
::
PrepareArgument
()
const
{
auto
&
arg
=
predictor_
.
argument_
;
auto
&
arg
=
predictor_
.
argument_
;
if
(
!
arg
.
scope_valid
())
arg
.
SetScope
(
new
framework
::
Scope
);
if
(
!
arg
.
scope_valid
())
arg
.
SetScope
(
new
framework
::
Scope
);
...
@@ -380,6 +387,7 @@ void AnalysisPredictor::MkldnnQuantizer::PrepareArgument() const {
...
@@ -380,6 +387,7 @@ void AnalysisPredictor::MkldnnQuantizer::PrepareArgument() const {
bool
AnalysisPredictor
::
MkldnnQuantizer
::
Quantize
()
{
bool
AnalysisPredictor
::
MkldnnQuantizer
::
Quantize
()
{
if
(
!
RunWarmup
())
return
false
;
if
(
!
RunWarmup
())
return
false
;
if
(
!
CalculateScales
())
return
false
;
if
(
!
CalculateScales
())
return
false
;
ClearDeviceContext
();
predictor_
.
PrepareScope
(
predictor_
.
scope_
);
predictor_
.
PrepareScope
(
predictor_
.
scope_
);
predictor_
.
CreateExecutor
();
predictor_
.
CreateExecutor
();
if
(
!
RunQuantizePasses
())
return
false
;
if
(
!
RunQuantizePasses
())
return
false
;
...
...
paddle/fluid/inference/api/mkldnn_quantizer.h
浏览文件 @
84096932
...
@@ -68,6 +68,7 @@ class AnalysisPredictor::MkldnnQuantizer {
...
@@ -68,6 +68,7 @@ class AnalysisPredictor::MkldnnQuantizer {
const
framework
::
LoDTensor
&
var_tensor
,
const
framework
::
LoDTensor
&
var_tensor
,
bool
is_unsigned
);
bool
is_unsigned
);
void
PrepareArgument
()
const
;
void
PrepareArgument
()
const
;
void
ClearDeviceContext
()
const
;
bool
RunQuantizePasses
()
const
;
bool
RunQuantizePasses
()
const
;
std
::
vector
<
int
>
ExpandQuantizedBins
(
std
::
vector
<
int
>
quantized_bins
,
std
::
vector
<
int
>
ExpandQuantizedBins
(
std
::
vector
<
int
>
quantized_bins
,
...
...
paddle/fluid/platform/device_context.cc
浏览文件 @
84096932
...
@@ -408,6 +408,8 @@ thread_local int cur_thread_id = 0;
...
@@ -408,6 +408,8 @@ thread_local int cur_thread_id = 0;
void
set_cur_thread_id
(
int
tid
)
{
cur_thread_id
=
tid
;
}
void
set_cur_thread_id
(
int
tid
)
{
cur_thread_id
=
tid
;
}
int
get_cur_thread_id
(
void
)
{
return
cur_thread_id
;
}
int
get_cur_thread_id
(
void
)
{
return
cur_thread_id
;
}
void
MKLDNNDeviceContext
::
ResetBlobMap
()
const
{
p_blobmap_
->
clear
();
}
void
MKLDNNDeviceContext
::
SetBlob
(
const
std
::
string
&
name
,
void
MKLDNNDeviceContext
::
SetBlob
(
const
std
::
string
&
name
,
std
::
shared_ptr
<
void
>
data
)
const
{
std
::
shared_ptr
<
void
>
data
)
const
{
BlobMap
*
pMap
=
p_blobmap_
.
get
();
BlobMap
*
pMap
=
p_blobmap_
.
get
();
...
...
paddle/fluid/platform/device_context.h
浏览文件 @
84096932
...
@@ -391,6 +391,9 @@ class MKLDNNDeviceContext : public CPUDeviceContext {
...
@@ -391,6 +391,9 @@ class MKLDNNDeviceContext : public CPUDeviceContext {
/* \brief Get the active engine */
/* \brief Get the active engine */
const
mkldnn
::
engine
&
GetEngine
()
const
{
return
engine_
;
}
const
mkldnn
::
engine
&
GetEngine
()
const
{
return
engine_
;
}
// Remove all entries from the blob map
void
ResetBlobMap
()
const
;
// Set data to blob (i.e. name/data pair). Create blob if not existing
// Set data to blob (i.e. name/data pair). Create blob if not existing
void
SetBlob
(
const
std
::
string
&
name
,
std
::
shared_ptr
<
void
>
data
)
const
;
void
SetBlob
(
const
std
::
string
&
name
,
std
::
shared_ptr
<
void
>
data
)
const
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录