Quantcast
Channel: Intel® Software - Intel® C++ Compiler
Viewing all 2797 articles
Browse latest View live

Microsoft 'libcpmt.lib' and Intel 'libmmt.lib' locale-related conflicts for static Qt builds using ICC on Windows

$
0
0

Hello everyone,

For Qt builds using ICC on Windows got error:

        cd planets-qml\ && ( <span class="code-keyword">if</span> not exist Makefile c:\libQT-5.11-dev\build\qtbase\bin\qmake.exe -o Makefile c:\libQT-5.11-dev\build\qt3d\examples\qt3d\planets-qml\planets-qml.pro ) && <span class="code-quote">"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\bin\HostX64\x64\nmake.exe"</span> -f Makefile

Microsoft (R) Program Maintenance Utility Version 14.11.25547.0
Copyright (C) Microsoft Corporation.  All rights reserved.

        <span class="code-quote">"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\bin\HostX64\x64\nmake.exe"</span> -f Makefile.Release

Microsoft (R) Program Maintenance Utility Version 14.11.25547.0
Copyright (C) Microsoft Corporation.  All rights reserved.

        echo 1 /* CREATEPROCESS_MANIFEST_RESOURCE_ID */ 24 /* RT_MANIFEST */ <span class="code-quote">"release\\planets-qml.exe.embed.manifest"</span>>release\planets-qml.exe_manifest.rc<span class="code-keyword">if</span> not exist release\planets-qml.exe <span class="code-keyword">if</span> exist release\planets-qml.exe.embed.manifest del release\planets-qml.exe.embed.manifest<span class="code-keyword">if</span> exist release\planets-qml.exe.embed.manifest copy /Y release\planets-qml.exe.embed.manifest release\planets-qml.exe_manifest.bak
        xilink /NOLOGO /SUBSYSTEM:WINDOWS <span class="code-quote">"/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'"</span> /MANIFEST /MANIFESTFILE:release\planets-qml.exe.embed.manifest /OUT:release\planets-qml.exe @C:\Users\test\AppData\Local\Temp\nm3C50.tmp
libcpmt.lib(locale.obj) : error LNK2005: ldexpf already defined in libmmt.lib(ldexpf_iface_c99.obj)
libcpmt.lib(wlocale.obj) : error LNK2005: ldexpf already defined in libmmt.lib(ldexpf_iface_c99.obj)
   Creating library release\planets-qml.lib and object release\planets-qml.exp
release\planets-qml.exe : fatal error LNK1169: one or more multiply defined symbols found
NMAKE : fatal error U1077: '<span class="code-quote">"C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\bin\intel64\xilink.EXE"</span>' : <span class="code-keyword">return</span> code '0x491'
Stop.
NMAKE : fatal error U1077: '<span class="code-quote">"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\bin\HostX64\x64\nmake.exe"</span>' : <span class="code-keyword">return</span> code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : <span class="code-keyword">return</span> code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : <span class="code-keyword">return</span> code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : <span class="code-keyword">return</span> code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : <span class="code-keyword">return</span> code '0x2'
Stop.

which relate to Microsoft libcpmt.lib and Intel libmmt.lib libraries.

 

Reproduced for:

  • static Qt builds with ICU using ICC on Windows,

not reproduced for:

  • static Qt builds without ICU using ICC on Windows,
  • shared Qt builds with ICU using ICC on Windows,
  • static Qt builds with ICU using mingw-w64 and MSVC.

It was registered on Qt bugtracker as QTBUG-64898, and Qt Developers believe it not Qt bug. And since error not reproduce for MSVC, it presumably is ICC bug.

 

Best,

Alexander

 


Wrong section alignments on linux ELF cause linking problems

$
0
0

We wanted to use the LLVM LLD linker, but it complains about an incorrect section alignment emitted by ICPC. Here is my corresponding bug report to LLVM: https://bugs.llvm.org/show_bug.cgi?id=35854 . It turns out the bug apparently is within the Intel Compiler. Quoting my bugreport:

 

"

I would like to raise this as a feature request for compatibility with GNU LD: LD supports unaligned sections in object files, which are created at least by the Intel ICC compiler and prevents us to adopt LLD in our build.

   ld: error: .../_moc_mainwindow.o: unaligned data

Further investigation shows

   ~/usr/bin/llvm-readelf -relocations _moc_mainwindow.o

    Relocation section '.rel.data' at offset 0x2546f contains 1 entries:
     Offset     Info    Type                Sym. Value  Symbol's Name

    Error reading file: unaligned data
    .

This works with GNU LD and GNU GOLD

"

 

ICC Version:

icpc (ICC) 15.0.3 20150407

Copyright (C) 1985-2015 Intel Corporation.  All rights reserved.

Non-commercial license renewal process?

$
0
0

I work on a number of open source projects and try to support the Linux icc compiler where possible on those projects.

To do that, last year I went through the non-commercial license process to obtain icc (as part of the parallel amplifier XE package). That went fairly smoothly. The license lasts for a year and has now expired. The renewal process isn't all clear. From my logged-in account on https://registrationcenter.intel.com I can see the old expired products but the "buy or renew" type links just lead to the general trial/buy pages.

Ultimately, I went back through the open source contributor page and clicked the Linux link at the bottom which apparently is the way for both renewals and new requests?

That was almost a month ago and I've heard nothing back by email and nothing has changed in registration center. I am not able to support new icc releases and even my older versions of icc don't work since the license has expired. I am seriously considering my support for icc as a compiler on the projects I support since the open-source licensing process isn't smooth. It is already a barrier for developers to use icc (e.g., since you have to jump through the hoops, and can't get icc with a non-commercial license on Windows), so one would hope we can avoid another barrier at renewal time.

It's understandable that Intel has been pretty busy in the new year with Meltdown & Spectre, but how can I at least get an update on the status of the renewal?

[Bug report] name-resolution inside generic lambdas

$
0
0

In a generic lambdas same names are not found correctly, if in the surrounding scope names from a different namespace are imported:

namespace ns
{
  template <class F>
  void bar2(F f) { f(0); }

  template <class F>
  void bar1(F f)
  {
    bar2(f);                // (1)
  }
}

void foo()
{
  using namespace ns;
  bar1([&](auto i) {        // (2)
    // using namespace ns;  // (3)
    bar1([&](auto j) {});   // (4)
  });
}

int main()
{
  foo();
}

In icc I get the error message

error: identifier "bar1" is undefined

in line (4). See also https://godbolt.org/g/PYzWtw The situation changes if (1) is removed, or if in (3) the names from namespace ns are imported again, or if in (2) and (4) auto is replaced by int. Then, the code compiles fine. Since, this error does not occur in other compilers (Gcc 6.3, CLang 4.0), I assume that this is a bug in the Intel compiler. I tried the compiler version 18.0.1 with flag "-std=c++14"

Best, Simon Praetorius

Compiler code emsiion changes for Meltdown/Spectre?

$
0
0

Does Intel plan, or need to for that matter, issue an update to the C++ compiler and/or Profile Guided Optimization process for mitigation of meltdown and spectre? I see that GCC and LLVM are releasing patches. If the answer is yes, can you:

  Estimate when an update would be available?
  Specify if a compiler option will be available for enablement/disablement?
  Estimate how much performance loss might be expected as a result of said patches?
  Describe in detail the difference in code emission? For example, will you be emitting lfence operators prior to indirect branches or some other technique(s)?

Thank you for any advance notice you can provide. This will assist us in planning for release of said changes, should they be necessary.

Hardcoded installation path for Parallel Studio XE Professional 2018 Update 1 for Windows

$
0
0

When I try to install Parallel Studio XE Professional 2018 Update 1 for Windows on my computer it hadcodes the path and will not let me change it. Is there some way around this problem ? When I installed Parallel Studio XE Professional 2018 for Windows it let me set my path for the IntelSWTools folder and naturally I want to use the same top-level path.

Transfering license holder

$
0
0

Hi,

I am responsible for the administration of the systems in my company, including the renewal of support for Intel Parallel Studio XE Cluster Edition for Linux. We have renewed the license but the person who was responsible for this task in the company before did not transfer the license to anyone in the company so we are not able to access the Intel registration center to install new updates, Flexlm, etc.

Could you please help us to transfer the license?

Thanks,

Raul

[Bug report] Return type deduction for in-class friend functions

$
0
0

In the following example, the return type of a friend function cannot be deduced:

struct B {};

template <class T>
struct A
{
  friend auto bar(A const&)
  {
    return B{};
  }
};

int main()
{
  using L = decltype(bar(A<int>{}));
}

When defining bar outside of A it can be deduced, but requires to specify the template parameters for A again. Putting B instead of auto in the return type, the code also compiles fine.

This is related to an old stackoverflow question: https://stackoverflow.com/questions/18931993/return-type-deduction-for-in-class-friend-functions
In the answers it is referred to the standard document N3638. Both, GCC and Clang compile the code without complains. Intel icc 18 results inthe error "cannot deduce return type of function bar"

See also, the compiler explorer output using intel c++ 18: https://godbolt.org/g/69KQTt


MPX support for Win32 project

$
0
0

I've installed the MPX drivers and successfully threw the exception when running some sample code within a console project.  However when trying to put the same sample code (and same additional option) in a win32 project the exception was not thrown.  Running dumpbin mpx is in the Debug Directory section for the console application, but not the win32 project.  Similarly the assembly has the mpx commands in the console application, but not in the win32 project.

This was created using the standard Visual Studio new project with no modifications other than the same code and adding the additional option.

Performance and optimization

$
0
0

I am going to upgrade to a newer version of the Intel C++ compiler (current is 2015) but I experience problems when optimizing large files/functions. In extreme cases the Intel compiler (versions 2017 and 2018) allocates up to 156 GB of RAM and works for about half an hour to compile and optimize just a single file. In version 2015 it takes 2-3 GB of RAM and several seconds.

I have a ton of such files and since they are large, rewriting them is not an option. I can't send this to support because I will have to send the whole project (this bug applies for large files/functions which include a lot of staff) and strict intelectual regulations apply in my organization which prevent me from distributing code.

I wonder, is there some way to turn on/off particular optimizations included in, say, O1 so that I can experiment and see what exactly causes this behavior? Also, is there a way to limit the max memory used by the compiler similar to how one can limit the amount of heap space a Java program uses?

Compatibility of ICC Intel® C++ Compiler 18.0 with XCode 9

$
0
0

Hi guys.. A question about subject.. How can i use the compiler with Xcode 9? I tried the guide on:https://software.intel.com/en-us/get-started-with-cpp-compiler-18.0-for-... but Xcode doesn't find ,selecting process c++, ICC Intel® C++ Compiler 18.0  .. My OS is mac OS Sierra 10.13.1 .. If with Xcode isn't possible execute  using my intel Iris, how can i use optimizing the code and running parallel programming?

AVX and omp simd vectorization of functions

$
0
0

I am having trouble understanding the output of ICC (18.0.1.163) when generating vectorized functions with pragma omp declare simd. Consider the following simple code for a vectorized pow10 function:

#include <math.h>
#pragma omp declare simd simdlen(4)
double pow10v(double x)
{
  return exp(2.3025850929940459*x);
}

I compile this for an AVX2 capable CPU:

icc -std=c++11 -qopenmp -xCORE-AVX2 -O3 -qopt-report-phase=vec -qopt-report=5 -c micro.c -o micro.o

The compiler generates two vectorized functions (masked / nonmasked). Vectorization report for nonmasked version reads that XMM registers are used, which I confirm by looking at the assembly code:

Begin optimization report for: pow10v..xN4v(double)

    Report from: Vector optimizations [vec]

remark #15347: FUNCTION WAS VECTORIZED with xmm, simdlen=4, unmasked, formal parameter types: (vector)
remark #15305: vectorization support: vector length 4
remark #15475: --- begin vector cost summary ---
remark #15482: vectorized math library calls: 1
remark #15488: --- end vector cost summary ---
===========================================================================
_ZGVxN4v_pow10v:
# parameter 1: %xmm0
# parameter 2: %xmm1
[...]
        vinsertf128 $1, %xmm1, %ymm0, %ymm2                     #5.1
        vmulpd    .L_2il0floatpacket.0(%rip), %ymm2, %ymm0      #6.33
        call      *__svml_exp4_l9@GOTPCREL(%rip)                #6.10
                                # LOE rbx r12 r13 r14 r15 xmm8 xmm9 xmm10 xmm11 xmm12 xmm13 xmm14 xmm15 ymm0
                                # Execution count [1.00e+00]
        vextractf128 $1, %ymm0, %xmm1                           #6.10
        vzeroupper                                              #6.10
[...]

So it seems that arguments are passed to svml_exp4 using the AVX registers, but the function itself takes SSE2 registers as parameters, and then reassembles them into YMM.

Looking at the Vector ABI specification, _ZGVxN4v_pow10v denotes an SSE function. First, this is not entirely correct, since the function uses AVX instructions and calls an AVX-enabled exp implementation. But then why does ICC not generate the (IMO requested) AVX version in the first place?

Can somebody hint what am I doing wrong?

Thanks a lot!

Compiling Gromacs 2018 using Intel 2018.1 compiler on OSX 10.13.3

$
0
0

I’m trying to compile Gromacs 2018 with icc 2018.1.126 on a iMac using flag

cmake .. -DCMAKE_C_COMPILER=icc -DCMAKE_CXX_COMPILER=icpc -DGMX_GPU=on -DGMX_USE_OPENCL=on -DGMX_SIMD=AVX2_256 -DGMX_FFT_LIBRARY=mkl -DREGRESSIONTEST_DOWNLOAD=ON

The cmake succeed without any warning but during the making I have encountered an error.

[ 23%] Building CXX object src/gromacs/CMakeFiles/libgromacs.dir/gmxana/gmx_dipoles.cpp.o
gromacs-2018/src/gromacs/gmxana/gmx_dipoles.cpp(257): error: expected an identifier
                 if (debug || std::isnan(cosa))
compilation aborted for /gromacs-2018/src/gromacs/gmxana/gmx_dipoles.cpp (code 2)
make[2]: *** [src/gromacs/CMakeFiles/libgromacs.dir/gmxana/gmx_dipoles.cpp.o] Error 2
make[1]: *** [src/gromacs/CMakeFiles/libgromacs.dir/all] Error 2
make: *** [all] Error 2

I have repeated the same compilation on another Mac and encountered the same error.

I have tried to replace icc with GCC7 and clang6 and the compilation succeeded without any error for both of them. I have also tried to compile the same Gromacs on a Linux with the same 2018.1 intel compiler (2018.1.163) and it succeeded without any error. I suspect the upgrading from 2018.1.126 (OSX) to 2018.1.163 has fixed some bugs? I'm interested in using icc to compile Gromacs and wonder if anyone else has encountered the same problem as I am?

Continuing problems with debugging information emitted by ICC 18 on Windows

$
0
0

There have been many ongoing issues with debugging information emitted by ICC on Windows - typically the issue is that no data is visible for variables or 'this' when you stop in the Visual Studio 2017 debugger - I am compiling with optimization off for debugging, of course and with /Zi

The latest 2018  Update 1 still has problems. For example, I am stepping though some C++ code right now and the debugger cannot see any variables belonging to "this", yet can see passed in parameters. Its very frustrating to have to revert to print statements to do debugging!

I do not have the Edit and Continue option on. Linker option is /DEBUG

libstdc++.a undefined reference to symbol '__tls_get_addr@@GLIBC_2.3'

$
0
0

Hi.

I'm trying to use icpc to compile code generated by xmds2 software and I'm getting this error:

xmds2 version 2.2.2 "XMDS2 is a game of two halves" (Debian package 2.2.2+dfsg-2)
Copyright 2000-2014 Graham Dennis, Joseph Hope, Mattias Johnsson
                    and the xmds team
Generating source code...
... done
Compiling simulation...
Waf: Entering directory `/home/mkulcz/xmds2/Andrzej'
[1/2] cxx: home/mkulcz/xmds2/Andrzej/GP2.cc -> home/mkulcz/xmds2/Andrzej/GP2.cc.1.o
 icpc  -finline-functions --param max-inline-insns-single=1800 -fast -ffast-math -complex-limited-range -fomit-frame-pointer -xS -fma -fstack-protector-strong   -I/usr/lib/python2.7/dist-packages/xpdeint/includes -I/opt/intel/include -I/usr/include/hdf5/serial -DHAVE_DEV_URANDOM -DHAVE_HDF5_HL -DHAVE_H5LEXISTS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -D_FORTIFY_SOURCE=2  GP2.cc -c -o GP2.cc.1.o 
icpc: command line warning #10006: ignoring unknown option '-ffast-math'
icpc: command line warning #10131: extension 'S' not supported ignored in option '-x'
[2/2] cxxprogram: home/mkulcz/xmds2/Andrzej/GP2.cc.1.o -> home/mkulcz/xmds2/Andrzej/GP2
 icpc -fast -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-rpath -Wl,/usr/lib/x86_64-linux-gnu/hdf5/serial  GP2.cc.1.o -o /home/mkulcz/xmds2/Andrzej/GP2 -Wl,-rpath,/opt/intel/lib/intel64_lin -Wl,-rpath,/opt/intel/compilers_and_libraries/linux/mpi/lib64 -Wl,-rpath,/usr/lib/x86_64-linux-gnu    -Wl,-Bstatic  -lfftw3 -lhdf5_hl -lhdf5 -Wl,-Bdynamic -L/opt/intel/lib/intel64_lin -L/opt/intel/compilers_and_libraries/linux/mpi/lib64 -L/usr/lib/x86_64-linux-gnu -L/usr/lib/x86_64-linux-gnu/hdf5/serial -L/usr/lib/x86_64-linux-gnu/hdf5/serial -lpthread -lsz -lz -ldl -lm -Wl,-Bstatic 
ipo: warning #11021: unresolved aec_buffer_decode
        Referenced in /usr/lib/x86_64-linux-gnu/libsz.so
ipo: warning #11021: unresolved aec_buffer_encode
        Referenced in /usr/lib/x86_64-linux-gnu/libsz.so
ld: /usr/lib/gcc/x86_64-linux-gnu/5//libstdc++.a(eh_globals.o): undefined reference to symbol '__tls_get_addr@@GLIBC_2.3'
//lib64/ld-linux-x86-64.so.2: error adding symbols: DSO missing from command line
Waf: Leaving directory `/home/mkulcz/xmds2/Andrzej'
Failed command:
 icpc -fast -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-rpath -Wl,/usr/lib/x86_64-linux-gnu/hdf5/serial  GP2.cc.1.o -o /home/mkulcz/xmds2/Andrzej/GP2 -Wl,-rpath,/opt/intel/lib/intel64_lin -Wl,-rpath,/opt/intel/compilers_and_libraries/linux/mpi/lib64 -Wl,-rpath,/usr/lib/x86_64-linux-gnu    -Wl,-Bstatic  -lfftw3 -lhdf5_hl -lhdf5 -Wl,-Bdynamic -L/opt/intel/lib/intel64_lin -L/opt/intel/compilers_and_libraries/linux/mpi/lib64 -L/usr/lib/x86_64-linux-gnu -L/usr/lib/x86_64-linux-gnu/hdf5/serial -L/usr/lib/x86_64-linux-gnu/hdf5/serial -lpthread -lsz -lz -ldl -lm -Wl,-Bstatic 

FATAL ERROR: Failed to compile. Check warnings and errors. The most important will be first.

I tried reinstalling libraries but I have no idea how to tackle this. 


icc reports "Requires 'install path' setting gathered from 'gcc'"

$
0
0

# what happened

sample code("main.c"):
```
int main(){}
```

when run `icc main.c`, it reports:
```
icc: error #10417: Problem setting up the Intel(R) Compiler compilation environment. Requires 'install path' setting gathered from 'gcc'
```

# environments

arch linux
```
Linux zhanghao 4.14.15-1-ARCH #1 SMP PREEMPT Tue Jan 23 21:49:25 UTC 2018 x86_64 GNU/Linux
```

gcc 7.3
```
gcc (GCC) 7.3.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
```

icc from `parallel_studio_xe_2018_update1_cluster_edition`

# some details

`strace -f icc ./main.c` result is in attach

AttachmentSize
Downloadtext/plainlog.txt419.06 KB

fail to build ffmpeg with icc 14

$
0
0

Hi,

I use the following command to build the latest ffmpeg from master branch:

./configure --cc=/opt/intel/bin/icc --enable-version3 --enable-asm --enable-avfilter --disable-static --enable-shared --enable-gpl --enable-nonfree --prefix=/usr/local/ --extra-cflags='-I/usr/local/include --extra-ldflags='-L/usr/local/lib --enable-stripping
make

But I fail to compile ffmpeg, and error message is shown as below:

icc: command line warning #10121: overriding '-std=gnu99' with '-std=c99'
libavutil/cpu.c(48): error: identifier "ATOMIC_VAR_INIT" is undefined
static atomic_int cpu_flags = ATOMIC_VAR_INIT(-1);
^

libavutil/cpu.c(48): error: function call is not allowed in a constant expression
static atomic_int cpu_flags = ATOMIC_VAR_INIT(-1);
^

compilation aborted for libavutil/cpu.c (code 2)
make: *** [libavutil/cpu.o] Error 2
make: *** Waiting for unfinished jobs....
In file included from /opt/intel/include/xmmintrin.h(24),
from /opt/intel/include/emmintrin.h(39),
from /opt/intel/include/pmmintrin.h(21),
from /opt/intel/include/tmmintrin.h(14),
from /opt/intel/include/smmintrin.h(23),
from /opt/intel/include/nmmintrin.h(24),
from /opt/intel/include/wmmintrin.h(23),
from /opt/intel/include/immintrin.h(14),
from libavutil/x86/intmath.h(30),
from libavutil/intmath.h(33),
from libavutil/common.h(106),
from libavutil/display.h(25),
from libavutil/display.c(25):
/opt/intel/include/mmintrin.h(162): warning #2959: function prototype is missing the argument types
extern __m64 __ICL_INTRINCC _mm_setzero_si64();
^
Why?

icc version is shown as below:

icc (ICC) 14.0.2 20140120
Copyright (C) 1985-2014 Intel Corporation. All rights reserved.

[root@push work]# icc --version
icc (ICC) 14.0.2 20140120
Copyright (C) 1985-2014 Intel Corporation. All rights reserved.

Thanks

Regards

Andrew

Unable to compile c++ code in Fedora linux

$
0
0

Hi,

I am unable to compile the following  c++ code. 

#include <iostream>
int main ()
{
        std::cout<<"Hello world !"<<std::endl ;
        return 0 ;
}

gcc version 8.0.1 20180131

icpc version 18.0.1 

Compilation Error :

icpc   hello.cpp
In file included from /usr/include/c++/8/bits/move.h(55),
                 from /usr/include/c++/8/bits/nested_exception.h(40),
                 from /usr/include/c++/8/exception(144),
                 from /usr/include/c++/8/ios(39),
                 from /usr/include/c++/8/ostream(38),
                 from /usr/include/c++/8/iostream(39),
                 from hello.cpp(1):
/usr/include/c++/8/type_traits(1061): error: type name is not allowed
        : public __bool_constant<__is_assignable(_Tp, _Up)>
                                                 ^

In file included from /usr/include/c++/8/bits/move.h(55),
                 from /usr/include/c++/8/bits/nested_exception.h(40),
                 from /usr/include/c++/8/exception(144),
                 from /usr/include/c++/8/ios(39),
                 from /usr/include/c++/8/ostream(38),
                 from /usr/include/c++/8/iostream(39),
                 from hello.cpp(1):
/usr/include/c++/8/type_traits(1061): error: type name is not allowed
        : public __bool_constant<__is_assignable(_Tp, _Up)>
                                                      ^

In file included from /usr/include/c++/8/bits/move.h(55),
                 from /usr/include/c++/8/bits/nested_exception.h(40),
                 from /usr/include/c++/8/exception(144),
                 from /usr/include/c++/8/ios(39),
                 from /usr/include/c++/8/ostream(38),
                 from /usr/include/c++/8/iostream(39),
                 from hello.cpp(1):
/usr/include/c++/8/type_traits(1061): error: identifier "__is_assignable" is undefined
        : public __bool_constant<__is_assignable(_Tp, _Up)>
                                 ^

compilation aborted for hello.cpp (code 2)

 

 

Intel c++ compiler not recognizing in visual studio 2015

building libiomp5md.dll

$
0
0

Hello!

I have been struggling all weekend to build libiomp5.dll on Visual Studio 2010. I wonder if anyone can offer some help. First, let me explain the motivation. 

One of our software components, the solver, uses omp and detects the max number of threads by calling omp_get_max_threads(). 

We noticed that if that call is made as soon as the product is launched, then we get 8 threads throughout the application. If that call is not made, then when the solver starts it only gets 4 threads. This leads us to believe that another component is setting the max_number of threads to 4 and that's the global value that is then used later. 

We have no idea how to verify if this is the case so I thought that I could build the Intel multithreading library libiomp5dm.dll (which is imported by several other dlls in the product) build it debug mode and see what makes calls into that library. 

I downloaded the source code from here [https://github.com/llvm-mirror/openmp/tree/release_35] installed cmake and set out to build that component... and got nowhere!

The build system seems to choke on a post build event even if the individual projects do not have any post-build events specified in VS. Here is the error I see: 

4>CustomBuild:

4>  Building Custom Rule D:/work/openmp-release_35/runtime/CMakeLists.txt

4>  CMake does not need to re-run because D:/work/openmp-release_35/runtime/build/CMakeFiles/generate.stamp is up-to-date.

4>  Generating libiomp.rc

4>  Too many argument(s)

4>  Try --help option for more information.

4>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(151,5): error MSB6006: "cmd.exe" exited with code 255.

4>

4>Build FAILED.

 

etc.,... 

And this is the command I used to build the solution file: 

 

>cmake -DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=cl -G "Visual Studio 10 2010 Win64" -Darch=32e -DCMAKE_BUILD_TYPE=Debug -Dversion=5  ..

 

A general question first: how can I detect what component is making a call to the omp library? Is my strategy correct? 

And as far as the build: has anyone run into this issue? Was anyone successful in building libiomp5md.dll with TRACING enabled? 

All I want is a library with some information being executed at runtime so I can further investigate. 

Thanks & Regards. 

 

Andrea P.

Altair Engineering. 

 

Viewing all 2797 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>