bgawrych commented on pull request #18801:
URL: https://github.com/apache/incubator-mxnet/pull/18801#issuecomment-669840222
@TaoLv @leezu
I've built GCC from sources:
GCC 7.3.0 shows following error in multiple files:
```
[55/782] Building CXX object
3rdparty/mkldnn/src/cpu/CMakeFiles/dnnl_cpu.dir/cpu_reorder.cpp.o
FAILED: 3rdparty/mkldnn/src/cpu/CMakeFiles/dnnl_cpu.dir/cpu_reorder.cpp.o
/home/wihajster/Desktop/install_gcc/bin/g++ -DDMLC_LOG_STACK_TRACE_SIZE=0
-DDMLC_MODERN_THREAD_LOCAL=0 -DDMLC_STRICT_CXX11 -DDMLC_USE_CXX11
-DDMLC_USE_CXX14 -DDNNL_ENABLE_CONCURRENT_EXEC -DDNNL_ENABLE_MAX_CPU_ISA
-DDNNL_X64=1 -DMSHADOW_IN_CXX11 -D_GLIBCXX_USE_CXX11_ABI=1
-D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -I../3rdparty/mkldnn/include
-I3rdparty/mkldnn/include -I../3rdparty/mkldnn/src -D_GLIBCXX_ASSERTIONS -Wall
-Wno-sign-compare -O0 -g -std=c++11 -fopenmp -fvisibility-inlines-hidden -Wall
-Wno-unknown-pragmas -fvisibility=internal -fPIC -Wformat -Wformat-security
-fstack-protector-strong -Wmissing-field-initializers -Wno-strict-overflow
-g -fPIC -std=gnu++1z -MD -MT
3rdparty/mkldnn/src/cpu/CMakeFiles/dnnl_cpu.dir/cpu_reorder.cpp.o -MF
3rdparty/mkldnn/src/cpu/CMakeFiles/dnnl_cpu.dir/cpu_reorder.cpp.o.d -o
3rdparty/mkldnn/src/cpu/CMakeFiles/dnnl_cpu.dir/cpu_reorder.cpp.o -c
../3rdparty/mkldnn/src/cpu/cpu_reorder.cpp
In file included from ../3rdparty/mkldnn/src/cpu/cpu_reorder.cpp:27:0:
../3rdparty/mkldnn/src/cpu/rnn/rnn_reorders.hpp: In lambda function:
../3rdparty/mkldnn/src/cpu/rnn/rnn_reorders.hpp:124:9: sorry, unimplemented:
unexpected AST of kind omp_simd
});
^
```
GCC 7.4.0 and **7.5.0 (from sources)** shows:
```
[229/782] Building CXX object
3rdparty/mkldnn/src/cpu/x64/CMakeFiles/dnnl_cpu_x64.dir/jit_avx512_core_amx_1x1_convolution.cpp.o
FAILED:
3rdparty/mkldnn/src/cpu/x64/CMakeFiles/dnnl_cpu_x64.dir/jit_avx512_core_amx_1x1_convolution.cpp.o
/home/wihajster/Desktop/install_gcc/bin/g++ -DDMLC_LOG_STACK_TRACE_SIZE=0
-DDMLC_MODERN_THREAD_LOCAL=0 -DDMLC_STRICT_CXX11 -DDMLC_USE_CXX11
-DDMLC_USE_CXX14 -DDNNL_ENABLE_CONCURRENT_EXEC -DDNNL_ENABLE_JIT_PROFILING=0
-DDNNL_ENABLE_MAX_CPU_ISA -DDNNL_X64=1 -DMSHADOW_IN_CXX11
-D_GLIBCXX_USE_CXX11_ABI=1 -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS
-I../3rdparty/mkldnn/include -I3rdparty/mkldnn/include -I../3rdparty/mkldnn/src
-D_GLIBCXX_ASSERTIONS -Wall -Wno-sign-compare -O0 -g -std=c++11 -fopenmp
-fvisibility-inlines-hidden -Wall -Wno-unknown-pragmas -fvisibility=internal
-fPIC -Wformat -Wformat-security -fstack-protector-strong
-Wmissing-field-initializers -Wno-strict-overflow -g -fPIC -std=gnu++1z -MD
-MT
3rdparty/mkldnn/src/cpu/x64/CMakeFiles/dnnl_cpu_x64.dir/jit_avx512_core_amx_1x1_convolution.cpp.o
-MF
3rdparty/mkldnn/src/cpu/x64/CMakeFiles/dnnl_cpu_x64.dir/jit_avx512_core_amx_1x1_convolution.cpp.o.d
-o 3rdparty/mkldnn/src/cpu/x64/CMakeFiles/dnnl_cpu_x64.dir/jit_avx5
12_core_amx_1x1_convolution.cpp.o -c
../3rdparty/mkldnn/src/cpu/x64/jit_avx512_core_amx_1x1_convolution.cpp
../3rdparty/mkldnn/src/cpu/x64/jit_avx512_core_amx_1x1_convolution.cpp: In
instantiation of
'dnnl::impl::cpu::x64::jit_avx512_core_amx_1x1_convolution_fwd_t<src_type,
wei_type, dst_type>::execute_forward(const dnnl::impl::exec_ctx_t&)
const::<lambda(int, int)> [with dnnl_data_type_t src_type =
(dnnl_data_type_t)5; dnnl_data_type_t wei_type = (dnnl_data_type_t)5;
dnnl_data_type_t dst_type = (dnnl_data_type_t)6]':
../3rdparty/mkldnn/src/cpu/x64/jit_avx512_core_amx_1x1_convolution.cpp:159:29:
required from 'struct
dnnl::impl::cpu::x64::jit_avx512_core_amx_1x1_convolution_fwd_t<src_type,
wei_type, dst_type>::execute_forward(const dnnl::impl::exec_ctx_t&) const [with
dnnl_data_type_t src_type = (dnnl_data_type_t)5; dnnl_data_type_t wei_type =
(dnnl_data_type_t)5; dnnl_data_type_t dst_type =
(dnnl_data_type_t)6]::<lambda(int, int)>'
../3rdparty/mkldnn/src/cpu/x64/jit_avx512_core_amx_1x1_convolution.cpp:111:13:
required from 'void
dnnl::impl::cpu::x64::jit_avx512_core_amx_1x1_convolution_fwd_t<src_type,
wei_type, dst_type>::execute_forward(const dnnl::impl::exec_ctx_t&) const [with
dnnl_data_type_t src_type = (dnnl_data_type_t)5; dnnl_data_type_t wei_type =
(dnnl_data_type_t)5; dnnl_data_type_t dst_type = (dnnl_data_type_t)6]'
../3rdparty/mkldnn/src/cpu/x64/jit_avx512_core_amx_1x1_convolution.cpp:192:17:
required from here
../3rdparty/mkldnn/src/cpu/x64/jit_avx512_core_amx_1x1_convolution.cpp:151:28:
internal compiler error: in maybe_undo_parenthesized_ref, at cp/semantics.c:1739
size_t dst_offset = (is_1d) ? dst_d.blk_off(mb, oc, ow)
^~~~~~~~~~
```
But as I've mentioned earlier - GCC 7.5.0 provided by ubuntu doesn't trigger
this error.
GCC 8.1.0 built from sources also compile sucessfully.
I've checked also if standalone oneDNN is compiling with GCC 7.4.0 and it is.
This compiler error is probably triggered when mkldnn is compiled with c++14
standard. With c++11 everything works fine
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]