Skip to content
This repository has been archived by the owner on Nov 17, 2023. It is now read-only.

[MKLDNN] Enable signed int8 support for convolution. #13697

Merged
merged 45 commits into from
Feb 10, 2019
Merged
Changes from 1 commit
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
9ba9d4c
Enable s8s8 support for MKLDNN convolution.
ZhennanQin Dec 19, 2018
c642d33
Fix cpp build
ZhennanQin Dec 20, 2018
57c2423
Fix build.
ZhennanQin Dec 20, 2018
f3a2dd2
Merge remote-tracking branch 'offical' into s8_conv
ZhennanQin Dec 20, 2018
923b9ee
Fix build
ZhennanQin Dec 20, 2018
5ea756c
Remove openmp min/max reduction for windows build
ZhennanQin Dec 20, 2018
d1ba1ad
Add mkldnn_OIhw4i16o4i_s8s8 support
ZhennanQin Dec 23, 2018
7531e98
Add all s8s8 weight format
ZhennanQin Dec 23, 2018
a9fca92
Merge branch 'master' into s8_conv
ZhennanQin Dec 23, 2018
3f75e82
Change ssd quantize script.
ZhennanQin Dec 26, 2018
0acd9ce
Update
ZhennanQin Jan 2, 2019
999e54f
Merge remote-tracking branch 'offical/master' into s8_conv
ZhennanQin Jan 3, 2019
a713664
Manually cast mshadow shape size to size_t
ZhennanQin Jan 3, 2019
9129b41
Fix merge.
ZhennanQin Jan 3, 2019
159dc11
Fix perl package.
ZhennanQin Jan 3, 2019
3cd9d99
Retrigger CI
ZhennanQin Jan 3, 2019
0b98e94
Fix GPU test
ZhennanQin Jan 4, 2019
989477b
Fix GPU test
ZhennanQin Jan 4, 2019
894f13f
Rerun CI
ZhennanQin Jan 4, 2019
60c16a7
Rerun CI
ZhennanQin Jan 4, 2019
95ab7a1
Rerun CI
ZhennanQin Jan 5, 2019
c861cfc
Rerun CI
ZhennanQin Jan 5, 2019
4dacf2f
Remove weight_channelwise_scale from params.
ZhennanQin Jan 7, 2019
0a612e6
Fix
ZhennanQin Jan 10, 2019
1f7fc56
Keep API compatible.
ZhennanQin Jan 14, 2019
cffaa05
Rerun CI
ZhennanQin Jan 15, 2019
12d9f1f
Rerun CI
ZhennanQin Jan 15, 2019
807a48c
Rerun CI
ZhennanQin Jan 15, 2019
d8442e3
Merge remote-tracking branch 'offical/master' into s8_conv
ZhennanQin Jan 15, 2019
905b144
Merge remote-tracking branch 'offical/master' into s8_conv
ZhennanQin Jan 28, 2019
62e3fc0
Rerun CI
ZhennanQin Jan 28, 2019
69a6e28
Address comments.
ZhennanQin Jan 29, 2019
bf655e2
fix.
ZhennanQin Feb 1, 2019
e3a8d0a
Address debug build.
ZhennanQin Feb 2, 2019
d58311b
Add comment for next_impl
ZhennanQin Feb 2, 2019
93295ab
Rerun ci
ZhennanQin Feb 2, 2019
eae2557
Add new api MXExecutorSetMonitorCallbackEX
ZhennanQin Feb 4, 2019
11217c2
Add default value for monitor_all for cpp header.
ZhennanQin Feb 4, 2019
bfc91a6
Rerun CI
ZhennanQin Feb 5, 2019
8932fd1
Merge remote-tracking branch 'offical' into s8_conv
ZhennanQin Feb 5, 2019
fe08128
fix
ZhennanQin Feb 5, 2019
63dfdbf
script change for uint8.
ZhennanQin Feb 5, 2019
0b5e563
Merge remote-tracking branch 'upstream/master' into s8_conv
xinyu-intel Feb 8, 2019
1210b5c
trigger ci
xinyu-intel Feb 8, 2019
bff42ff
trigger ci
xinyu-intel Feb 8, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Remove openmp min/max reduction for windows build
ZhennanQin committed Dec 20, 2018
commit 5ea756cddb163497cf24fec7b2a4ee1ec0a1ed1b
15 changes: 11 additions & 4 deletions src/operator/quantization/mkldnn/mkldnn_quantize_v2-inl.h
Original file line number Diff line number Diff line change
@@ -56,11 +56,18 @@ static void MKLDNNQuantizeComputeKer(const std::vector<NDArray>& inputs,
// no calib info
in_buffer = inputs[0].Reorder2Default();
auto in_ptr = in_buffer.data().dptr<float>();
ZhennanQin marked this conversation as resolved.
Show resolved Hide resolved
#pragma omp parallel for num_threads(engine::OpenMP::Get()->GetRecommendedOMPThreadCount()) \
reduction(min : data_min) reduction(max : data_max)
auto nthreads = engine::OpenMP::Get()->GetRecommendedOMPThreadCount();
std::vector<float> data_maxs(nthreads, data_max);
std::vector<float> data_mins(nthreads, data_min);
#pragma omp parallel for num_threads(nthreads)
for (index_t i = 0; i < static_cast<index_t>(in_buffer.shape().Size()); i++) {
if (in_ptr[i] > data_max) data_max = in_ptr[i];
if (in_ptr[i] < data_min) data_min = in_ptr[i];
int tid = omp_get_thread_num();
if (in_ptr[i] > data_maxs[tid]) data_maxs[tid] = in_ptr[i];
if (in_ptr[i] < data_mins[tid]) data_mins[tid] = in_ptr[i];
}
for (index_t i = 0; i < nthreads; i++) {
if (data_maxs[i] > data_max) data_max = data_maxs[i];
if (data_mins[i] < data_min) data_min = data_mins[i];
}
}
auto out_type = GetOutputType(param);