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

mcpcom floating point exception compiling GROMACS 2020 for Intel compiler >= 19 update 5

$
0
0

I've been trying to install the latest release of GROMACS (2020) (from ftp://ftp.gromacs.org/pub/gromacs/gromacs-2020.tar.gz) with the Intel compiler suite on RHEL 7.x and have run into the following problem:

[ 47%] Building CXX object src/gromacs/CMakeFiles/libgromacs.dir/pulling/pullutil.cpp.o
icpc: error #10106: Fatal error in /lustre/shared/ucl/apps/intel/2020/compilers_and_libraries_2020.0.166/linux/bin/intel64/mcpcom, terminated by floating point exception
compilation aborted for /tmp/gromacs-build.LsXlUP0elB/gromacs-2020/src/gromacs/pulling/pullutil.cpp (code 1)
make[2]: *** [src/gromacs/CMakeFiles/libgromacs.dir/pulling/pullutil.cpp.o] Error 1
make[1]: *** [src/gromacs/CMakeFiles/libgromacs.dir/all] Error 2
make: *** [all] Error 2

I get this failure regardless of whether I try to compile with icpc that comes with the 2020 or 2019 update 5 versions of Intel Cluster Studio and regardless of whether I compile on a RHEL 7.4 or 7.6 host.

I am using GCC 7.3.0 as the version of GCC to get the C++ standard libraries from.

Interestingly, it *does* compile with the version of icpc that comes with the Intel Cluster Studio 2019 update 4, so this bug was presumably introduced between update 4 and update 5.

Compiler version info:

Doesn't work (floating point exception):

$ module load compilers/intel/2020/release
$ icpc -v
icpc version 19.1.0.166 (gcc version 7.3.0 compatibility)

$ module load compilers/intel/2019/update5
$ icpc -v
icpc version 19.0.5.281 (gcc version 7.3.0 compatibility)

 

Works (compiles):

 

$ module load compilers/intel/2019/update4
$ icpc -v
icpc version 19.0.4.243 (gcc version 7.3.0 compatibility)

If it matters, I've tested with both Skylake and Cascade Lake hosts.
 

TCE Level: 

TCE Open Date: 

Sunday, March 8, 2020 - 23:57

Optimizing Performance on Xeon Servers

$
0
0

I am trying to use the "Intel Processor Microarchitecture-Specific Optimization" setting that's available in Visual Studio when using the Intel C++ compiler (in properties under C/C++ >> Code Generation [Intel C++]). This is the same as the command-line /tune option. Right now I am using /tune:skylake to try to improve performance on a Xeon Server (a Xeon Platinum 8168, running a VM), but I am not seeing a performance improvement. What /tune option should I be using for this server?

TCE Level: 

TCE Open Date: 

Monday, March 9, 2020 - 01:07

svrng linkage problem Linux

$
0
0

Hi

I want to use the svrng  library. I am working with compiler ver 19.

On Windows I have succeeded to link and it works.

On Linux however, I get 

/tmp/ipo_icpcdgdVkz.o: In function `NoiseGen::CreateOutputs_svrng(short*, int)':
ipo_out.c:(.text+0x4fde7): undefined reference to `__regcall3__svrng_coreavx2_generate16_float'
/tmp/ipo_icpcdgdVkz.o: In function `NoiseGen::~NoiseGen()':
ipo_out.c:(.text+0x4fe41): undefined reference to `__regcall3__svrng_coreavx2_delete_distribution'
/tmp/ipo_icpcdgdVkz.o: In function `NoiseGen::~NoiseGen()':
ipo_out.c:(.text+0x4feb1): undefined reference to `__regcall3__svrng_coreavx2_delete_distribution'
/tmp/ipo_icpcdgdVkz.o: In function `NoiseGen::NoiseGen()':
ipo_out.c:(.text+0x4ff3a): undefined reference to `__regcall3__svrng_coreavx2_new_mt19937_engine'
ipo_out.c:(.text+0x4ff60): undefined reference to `__regcall3__svrng_coreavx2_new_normal_distribution_float'
/tmp/ipo_icpcdgdVkz.o: In function `NoiseGen::NoiseGen()':
ipo_out.c:(.text+0x4ffea): undefined reference to `__regcall3__svrng_coreavx2_new_mt19937_engine'
ipo_out.c:(.text+0x50010): undefined reference to `__regcall3__svrng_coreavx2_new_normal_distribution_float'

I have included libirng... 

What seems to be the problem?

Thanks

Sorin

 

TCE Open Date: 

Tuesday, March 10, 2020 - 04:31

__m512i array

$
0
0

I'm trying to write code by VNNI

There is a data type - __m512i

which I think is mapping to registers on CPU.

I'd like to locate an array of registers

Here is the code

#include <immintrin.h>
int main()
{
        const int size = 5;

        __m512i zero[size];

        for(int i=0; i<size; i++)
        {
                zero[i] = _mm512_setzero_si512();
        }

        return 0;
}

It works.

But when I try dynamic allocate memory

It doesn't work

#include <immintrin.h>
int main()
{
        const int size = 5;

        __m512i *zero = new __m512i[size];

        for(int i=0; i<size; i++)
        {
                zero[i] = _mm512_setzero_si512();
        }

        delete [] zero;

        return 0;
}

Is there any way to create registers dynamically?

Lot of thanks

BR,

chiungliang

TCE Level: 

TCE Open Date: 

Wednesday, March 11, 2020 - 18:21

signed 8-bit * signed 8-bit VNNI

$
0
0

Hi,

I'm trying to use VNNI in my program.

I ran the sample code, which do MAC operation by _mm512_dpbusds_epi32,

I found that it's singed 8-bit and unsigned 8-bit operation

Does there any optimized instruction support

1. signed 8-bit and signed 8-bit MAC operation

2. unsigned 8-bit and unsigned 8-bit MAC operation

Lot of thanks

chiungliang

TCE Level: 

TCE Open Date: 

Wednesday, March 11, 2020 - 18:25

Vector extensions not handled correctly for >>=,

$
0
0

I noticed a small issue with icc's support for GCC vector extensions: the >>= and <<= operators seem to be broken.

Here is a quick example (or, on Compiler Explorer if you prefer):

#include <stdint.h>

typedef int32_t vec __attribute__((__vector_size__(16)));

vec se(vec a) {
#if defined(CONFUSE_ICC)
  a >>= 31;
#else
  a = a >> 31;
#endif

  return a;
}

If you define CONFUSE_ICC, that will result in something like

foo.c(7): error: expression must have integral or unscoped enum type
    a >>= 31;
    ^

compilation aborted for foo.c (code 2)
Compiler returned: 2

As you can see, the workaround is straightforward enough, I just thought I should report the bug.

TCE Level: 

TCE Open Date: 

Sunday, March 15, 2020 - 11:07

Problems on Catalina

$
0
0

Hi there,

 

I get the following issue when I try to use the compiler. Does anybody know how to resolve this

/Library/Developer/CommandLineTools/usr/include/c++/v1/wchar.h(119): catastrophic error: cannot open source file "wchar.h"
  #include_next <wchar.h>

 

thanks

TCE Level: 

TCE Open Date: 

Tuesday, March 10, 2020 - 02:42

Error using mex, LINK : fatal error LNK1104: cannot open file 'ifconsol.lib'

$
0
0

I used mex to build a Fortran timestwo.F with Intel Parallel Studio XE 2017 for Fortran and Microsoft Visual Studio 2017. It generated an error: LINK : fatal error LNK1104: cannot open file 'ifconsol.lib'. I set path to both x64 and x32 ifconsol.lib but it didn't work. What should I do to solve the problem? Thanks.

TCE Level: 

TCE Open Date: 

Monday, March 23, 2020 - 21:40

Incorrect result when breaking up 512-bit vector into 4 128-bit vectors

$
0
0

I'm trying to implement the _mm512_adds_epu8 function for CPUs which don't support it, and CI picked up a problem with ICC earlier today.  The problem occurs when attempting to call a portable implementation of _mm_adds_epu8 4 times in a loop to emulate the _mm512_adds_epu8 function.  GCC and clang work as expected.

Unfortunately I've had a hard time putting together a reduced test case; when I tried I ended up with an internal compiler error.  AFAICT that reduced test case should work (GCC and clang are fine with it), so I'm attaching it too… maybe it's related.

The original test is gigantic as it includes tons of unrelated code, but it actually compiles.  The result is just incorrect.

This is with icc 19.1 20200117 on (and targeting) Linux x86_64 (Fedora 31).

AttachmentSize
Downloadtext/x-csrcoriginal.c793.69 KB
Downloadtext/x-csrcreduced.c8.45 KB

TCE Level: 

TCE Open Date: 

Tuesday, March 24, 2020 - 14:13

How can I get inter C++ Compiler 9.0 ?

$
0
0

I want to download the old version of C++ Compiler ,but I can not find it .

I need inter C++ Compiler 9.

Could anyone help? 

Thx.

TCE Level: 

TCE Open Date: 

Wednesday, March 25, 2020 - 07:17

Scalable compilation and inlining of very large codes

$
0
0

Hi all,

I am using ICC to compile very large programs (think 1GB of code). In order to achieve reasonable compile times I break down my code into small-ish functions artificially, as very large functions will take exponentially more time to compile. This is not nearly enough, so I further split my program into different files with a few thousands of functions each in order to call multiple instances of ICC, each generating its own .o file. Later, a skeleton function calls each of the generated functions and everything is linked together. So, to summarize, I have lots of functions split across multiple files which are later called by a large main().

I am finding that this approach incurs a substantial overhead due to function calling in main(), so I would like to actually inline the calls to the artificial functions I generated. This is a snake biting its own tail: if I do this at the .c level, the problem of exponential compilation time comes back. So I guess I have three questions at this point:

1. Is there anyway to perform link-time inlining, similar to the optimizations provided by GCC LTO? I have been unsuccessful using GCC to link and inline my program so far.

2. If the answer to 1) is yes, can the LTO inlining be forced?

3. And in any case, can anyone think of an approach to achieve scalable compilation and inlining in this type of codes?

 

Thanks in advance!

ICC and NDK integration issue

$
0
0

Hi,

I download and install intel system studio 2020, there isn't X86_64-icc, how to operate I can get X86_64-icc?

How to integrate X86_64-icc to Android NDK?

Thank you.

build android x86_64 by icc issue

$
0
0

Hi,

I download and install intel system studio 2020, there isn't x86_64-icc, how to operate I can get x86_64-icc?

I want to integrate x86_64-icc to android-ndk-r10d, and build my android x86_64 project by icc.

Could you guide me how to do it?

Intel C++ Compiler not installing into Visual Studio

$
0
0

Hi,

I installed the Intel C++ Compiler (and Threading Building Blocks) via the System Studio installation but when I open a solution in Visual Studio 2019 (16.5.1) Intel C++ Compiler is not listed in the "Platform Toolset" field of the project properties dialog, nor is Intel Compilers and Tools or anything similar listed after going to Tools > Options.

Does anyone know why it's not installing correctly into Visual Studio?

Thanks,

HC

why the performance is so low when using pointer checker ?

$
0
0

why the performance is so low when using pointer checker?

There two two compiler parameters:

1. CFLAGS= -O0 -check-pointers:rw

2. CFLAGS= -O0 

Questions:

1. why the former is five fast than the second?

2. how does the pointer checker work? Check on every buf[i] or only check on buf[16]

char *buf = malloc(16); for (int i=0; i<=16; i++) { buf[i] = ‘A’ + i; }

3. when I change the "for loop"  using  SIMD and width of 4,  how many times  does the point cheker do check?

 


__attribute__(constructor) alternative

$
0
0

Hi, 

I wrote a program that runs on Clang and GCC which relies on a function being called before the main. For this I use the __attribute__(compiler) support that is available in the other two compilers. 

Is there an intel compiler alternative to this?

Thanks

how to related icc -S assembly code and objdump linked assembly code quickly?

$
0
0

As we all know, icc -S will print assembly code with symbol address not physical address. Such as:

..B1.20: 
        movslq    %r8d, %rax                                    #10.3        

        .align    16,0x90

..B1.21:                              

                movups    (%rdx,%rsi,8), %xmm0                          #11.12        

                movups    16(%rdx,%rsi,8), %xmm1                        #11.12

When using objdump -S ./xx.bin, the related assembly code as:

 402024:   49 63 c0                movslq %r8d,%rax 

402027:   66 0f 1f 84 00 00 00    nopw   0x0(%rax,%rax,1)  

40202e:   00 00  

402030:   0f 10 04 f2             movups (%rdx,%rsi,8),%xmm0  

402034:   0f 10 4c f2 10          movups 0x10(%rdx,%rsi,8),%xmm1

 

But the related process is so boring.  Is there a good way to relate the two? May icc compiler generate  linked assembly code with physical address?

Error error #1292: unknown attribute "no_init_all" when compiling with VS2019 and Windows Kits 10.0.18362.0

$
0
0

Hi, 

I installed Intel parallel studio XE 2020, with the latest patch, version (icl.exe version 19.1.1.216 Build 20200306) on a Windows 10 machine where Visual Studio 2019 is also installed also with the latest updates (cl.exe version 19.25.28611). I use the Windows sdk 10.0.18362.0.

Building our application with VS2019 works fine. However, if i use the Intel compiler i get the following errors: 

C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winnt.h(3886): error #1292: unknown attribute "no_init_all"
     typedef struct DECLSPEC_ALIGN(16) DECLSPEC_NOINITALL _CONTEXT { 

C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.25.28610\INCLUDE\xmmintrin.h(61): error #2277: invalid definition of __m128; use #include "xmmintrin.h" instead
     typedef long long __m128;

Has anyone already had these errors and know how to solve them ?

Thanks,

Brendan

 

Inline ASM with CAD-UL compiler for 80486

$
0
0

Bonjour/Hello, (English below)
J'essaie d'implémenter une instruction ASM en ligne dans mon fichier * .C qui est compilée par un compilateur CAD-UL disponible via un serveur VAX (vieille technologie). Je tente un simple "NOP" --asm("NOP") -- sans succès.
Pouvez-vous m'aider ? Ai-je besoin d'une librairie ou d'un module complémentaire dans mon serveur ?

Merci

 

I am trying to implement an online ASM instruction in my * .C file which is compiled by a CAD-UL compiler available via a VAX server (old technology).
I try a simple "NOP" -- asm ("NOP") -- without success.
Can you help me? Do I need a library or an add-on on my server?

Thank you

Why does -Wall not include -Wformat ?

$
0
0

By compiling all my programs with -Wall option, I was under impression I would get all relevant warnings, which compiler can provide.

But apparently, format errors on string manipulation (quite a big error with potential small, hard to discover memory overwrites) is not reported, even if compiler has diagnostics to do it.

#include <stdio.h>
#include <stdlib.h>
int main()
{
 static unsigned char a=1, b=2, c=3;
 char *numStr="123";
 
 sscanf(numStr, "%d", &b);

 printf("%d %d %d\n", a, b, c);
 return(0);
}

By compiling it with this command I don't get any warning.

icc -Wall bug.c

but if I compile it with gcc

gcc -Wall bug.c

I get proper warning:

bug.c: In function 'main':
bug.c:8:19: warning: format '%d' expects argument of type 'int *', but argument 3 has type 'unsigned char *' [-Wformat=]
  sscanf(numStr, "%d", &b);
                  ~^   ~~

which also tells me which compiler option triggered the warning (-Wformat)

So I try it with icc, and I get

icc -Wformat bug.c

bug.c(8): warning #181: argument of type "unsigned char *" is incompatible with format "%d", expecting argument of type "int *"
   sscanf(numStr, "%d", &b);

So why is -Wformat not included in -Wall ?

 

My operating system is Linux, OpenSUSE 15, 64 bits.

And this is the version of my compiler:

icc (ICC) 19.1.0.166 20191121
Copyright (C) 1985-2019 Intel Corporation.  All rights reserved.

 

 

Viewing all 2797 articles
Browse latest View live


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