Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.

Compiler Error when trying to create code for CORE-AVX512

Armando_L_A_
New Contributor I
539 Views

Hi,

Compiling for other target different than AVX512, there is no error.

Compiler is:

Intel® Parallel Studio XE 2017 Update 4 Composer Edition for C++ Windows* Integration for Microsoft* Visual Studio* 2015, Version 17.0.76.14

ERROR:

 

1>C:\ALA64_03_17\sdlCAT3D\Rad_TERMA.C(497) (col. 5): : error : 04010020_1290
1>
1>xilink: : error #10014: problem during multi-file optimization compilation (code 4)
1>xilink: : error #10014: problem during multi-file optimization compilation (code 4)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

 

The options are:

/GS- /TC /Qopenmp /GA /Qrestrict /Qftz /W4 /QxCORE-AVX512 /Zc:wchar_t /Zi /O3 /Ob2 /Fd"x64\Release\vc140.pdb" /fp:fast=2 /Quse-intel-optimized-headers /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "MYSDL_MEVIS" /D "_MBCS" /Qipo /Zc:forScope /GR- /Qopt-matmul /Oi /MT /Fa"x64\Release\" /nologo /Fo"x64\Release\" /Qprof-dir "x64\Release\" /Qstd=c99 /Ot /Fp"x64\Release\CAT3D.pch"

And additional options:

/Qdiag-disable:1786,2557,3280,344,1879  /Qprec-div-  /Qlong-double

 

It is a big project, a Radiation Treatment Planning System, not open source, so I can not send the sources.

 

Thanks Armando

 

 

 

 

 

 

0 Kudos
4 Replies
McCalpinJohn
Honored Contributor III
539 Views

The "multi-file optimization" points to a problem with IPO.   Have you confirmed that all of the binaries being combined were compiled with the same CORE-AVX512 ISA?

0 Kudos
Armando_L_A_
New Contributor I
539 Views

Dear John,

Thanks for your advice !

Not all the libraries are compiled for AVX512, I did not know it was mandatory to do that.

Most of our libraries are compiled as SSE3 and I can compile and link the project for SSE4.2,  AVX, and AVX2 with success.

For the case of core-AVX512 all the dependencies needs to be compiled with /QxCORE-AVX512 ?

Thanks.

Armando

0 Kudos
McCalpinJohn
Honored Contributor III
539 Views

I don't know what the requirements are -- the question came up here yesterday, so it was on my mind....    Your experience with combining other ISA suggests that it is not a requirement, but with new vector widths there are new ABI issues, so either new restrictions or new bugs seem plausible....

Does the project compile with CORE-AVX512 if you exclude the IPO option?

0 Kudos
Armando_L_A_
New Contributor I
539 Views

Dear John,

I just try changing /Qipo to /Qip and removing global optimization for the linker. Now is compiling and linking with success.

Conclusion: It is possivel to link libraries with SSE3 code with a project compiled for /QxCORE-AVX512 . The problem is triggered when attempting global optimizations.

But let me add some information that I already wrote on this forum. If I try global opt with add code path for AVX and and SS3 as specialized code, an error is triggered at link time. So I am now affraid of using the CPU dispatch for our big projects. On small projects there is no problem.

Regards,

Armando

 

New compiler options:

/GS- /TC /Qopenmp /GA /Qrestrict /Qftz /W4 /QxCORE-AVX512 /Zc:wchar_t /Zi /O3 /Ob2 /Fd"x64\Release\vc140.pdb" /fp:fast=2 /Quse-intel-optimized-headers /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "MYSDL_MEVIS" /D "_MBCS" /Qip /Zc:forScope /GR- /Qopt-matmul /Oi /MT /Fa"x64\Release\" /nologo /Fo"x64\Release\" /Qprof-dir "x64\Release\" /Qstd=c99 /Ot /Fp"x64\Release\CAT3D.pch"

 

 

0 Kudos
Reply