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

CUDA7 samples failed with ICC Package ID: w_ccompxe_2015.2.180

_heinz
Beginner
1,020 Views

Hi,
I compiled the CUDA7 samples with IC Compiler Package ID: w_ccompxe_2015.2.180
Compiling CUDA7 Projectmap "Samples_vs2012"(144 Projects)
Active configuration: Debug x64
Using Visual C++ Compiler
..
..
========== Alles neu erstellen: 144 erfolgreich, 0 fehlerhaft, 0 übersprungen ==========

Now using Intel(R)C++ Compiler XE 15.0.2.179[IA32]
Intel(R) C++ Compiler XE for applications running on IA-32, version 15.0.2 Package ID: w_ccompxe_2015.2.179

1.Convert the Projects:
...
========== Done ==========
all sucessful

2. Compiling
...
...
========== Alles neu erstellen: 44 erfolgreich, 100 fehlerhaft, 0 übersprungen ==========

Now using Intel(R)C++ Compiler XE 15.0.2.179[IA32]
Intel(R) C++ Compiler XE for applications running on IA-32, version 15.0.2 Package ID: w_ccompxe_2015.2.179

1.Convert the Projects:
...
========== Done ==========
all sucessful

2. Compiling
...
...
========== Alles neu erstellen: 44 erfolgreich, 100 fehlerhaft, 0 übersprungen ==========

Errorlist:200 Errors ---> http://www.britta-d.de/images/2016_beta/CUDA7_Sample_200_Error_using_Intel_Compiler.jpg

_heinz

full protocoll attached

0 Kudos
13 Replies
_heinz
Beginner
1,020 Views

I founf the interesting part:

#if (defined(_WIN32) || defined(_WIN64))

/* Include_next should be before guard macros _FLOAT_H__ in order to at last reach system header */

#ifdef __INTEL_COMPILER

#include_next <float.h> /* utilize system header */

#else
I Question: why does this #include_next not work ?
Looks like some macrodefinitions are missing here.
_heinz



 

0 Kudos
_heinz
Beginner
1,020 Views

This morning comes in update4 for VS2012 . Installed it sucessful. Will try again if something has changed .

_heinz

0 Kudos
_heinz
Beginner
1,020 Views

_heinz wrote:

This morning comes in update4 for VS2012 . Installed it sucessful. Will try again if something has changed .

_heinz

nothing changed, same error as before

0 Kudos
_heinz
Beginner
1,020 Views

some more to read

#if (defined(_WIN32) || defined(_WIN64))

/* Include_next should be before guard macros _FLOAT_H__ in order to at last reach system header */

#ifdef __INTEL_COMPILER

#include_next <float.h> /* utilize system header */

#else

#if _MSC_VER >= 1400 /* Previous versions of MSVS are not supported. */

/*

// Here, the #include <../../vc/include/header.h> is used as the

// equivalent of #include_next<header.h> working for MS C compiler

// of MSVS 2005, 2008, 2010 with default installation paths.

// The equivalent works correctly when Intel compiler header is not

// located in ../../vc/include subfolder for any searched include path,

// and MS header is.

// In case of non standard location of MS headers, say in

// C:/PROGRA~1/MSVS/NEW_VC/INCLUDE folder, proper __MS_VC_INSTALL_PATH

// macro should be defined in command line -D option

// like -D__MS_VC_INSTALL_PATH=C:/PROGRA~1/MSVS/NEW_VC.

*/
Interesting that it will work with MSVS 2005, 2008, 2010 with Default Installation paths.
I installed VS2012 using the default standard installation paths.
What is todo ? Perhaps I should add some additional include paths for using ICC 2015
_heinz

 

0 Kudos
_heinz
Beginner
1,020 Views

Today I installed VS2012 and ICC2015 on my second Laptop. The machine has a DualCore Intel Core i3, 2.66MHz with NVIDIA GeForce GT540M CUDA 1GB running OS:Windows 7 Home Premium 64Bit (ServicePack 1). I want to see if I get the same results as before on on my Acer  Laptop running Win8.1. For testing I choosed CUDA sample Project fluidsD3D9. I got the same error in float.h with the #include_next Statement. It implizit's a preprocessor error. as shown here:http://www.britta-d.de/images/2016_beta/CUDA7_sample_fluidsD3D9_preprozessor_error.jpg
Attached file contains simpleD3D9 (it's ok) and fluidD3D9 Compiler output protocoll.
Some helpful hints appreciated.
_heinz


 

0 Kudos
_heinz
Beginner
1,020 Views

Meanwhile I installed ICC16.0 on the Acer Laptop for Beta testing. A short try with CUDA7 sample fluidsD3D9 give the same error wit the #include_next in file float.h
1>------ Neues Erstellen gestartet: Projekt: fluidsD3D9 (Intel C++ 16.0), Konfiguration: Debug x64 ------
...
1>C:\Program Files (x86)\Intel_sw_development_tools\compilers_and_libraries_2016\windows\compiler\include\float.h(14): fatal error C1021: Ung³ltiger Prõprozessorbefehl "include_next".
...
========== Alles neu erstellen: 0 erfolgreich, 1 fehlerhaft, 0 übersprungen ==========

This is the part of float.h . As we can see in the path it's from Intel itself. But why the preprocessor cant use it ? Looks like a undefined makro or something. Worth to make a error report. 

#if (defined(_WIN32) || defined(_WIN64))
    /* Include_next should be before guard macros _FLOAT_H__ in order to at last reach system header */
    #ifdef __INTEL_COMPILER
        #include_next <float.h>     /* utilize system header */
    #else


_heinz

0 Kudos
_heinz
Beginner
1,020 Views

1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\float.h(14): fatal error C1021: Ung³ltiger Prõprozessorbefehl "include_next".
Preprocessor errror submitted to Intel Premier Support now.
I would do that for ICC16Beta, but this was not supported for me, so I did it for ICC Package ID: w_ccompxe_2015.2.180 
Question at Jennifer: If we are registered developer in the Beta program have we Intel Premier Support for the product ?. Can you look up please, if it is so for my account too. Thanks
_heinz

 

0 Kudos
pbkenned1
Employee
1,020 Views

Thanks for submitting the issue to IPS.  I have the ticket, will investigate and post my findings here.  And yes, you have do have support for the released product (15.0 compiler), as well as the 16.0 beta product.

Patrick

0 Kudos
pbkenned1
Employee
1,020 Views

I reproduced a similar comp fail and reported the issue to the developers, internal tracking ID DPD200369522.  I'll keep this thread updated with any news.

Patrick

C:\IPS\>icl foo-full-path.cpp
Intel(R) C++ Intel(R) 64 Compiler XE for applications running on Intel(R) 64, Version 15.0.2.179 Build 20150121
Copyright (C) 1985-2015 Intel Corporation.  All rights reserved.

foo-full-path.cpp
C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\float.h(14): internal error: access violation
          #include_next <float.h>     /* utilize system header */
                                                                 ^

compilation aborted for foo-full-path.cpp (code 4)

C:\IPS\>

0 Kudos
_heinz
Beginner
1,020 Views

Hi Patrick,
good that you could confirm the issue on a own sample. Now we are waiting for a solution from the developers.
It's very important that Intel's Compiler work perfect with CUDA to produce superfast applications running on NVIDIA's Graphicengines.
All my machines have NVIDIA Graphicadapters. to run CUDA applications.
_heinz
 

0 Kudos
pbkenned1
Employee
1,020 Views

Hello Heinz,

Thank you for your feedback.  I don't have any indication from the developers yet regarding when we can fix this.  I'll update this thread as I find out more.

I will say it is an uncommon use case, in that you have to include the full pathname to the header to reproduce the error.  Simply doing an include of float.h won't trigger it, as I found out while constructing my own test case.  It appears to be triggered by CUDA tool, perhaps there is a way to configure the tool to avoid this.  I can't advise you regarding that.

Patrick

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.0\bin\nvcc.exe" -gencode=arch=compute_20,code=\"sm_20,compute_20\" -gencode=arch=compute_30,code=\"sm_30,compute_30\" -gencode=arch=compute_35,code=\"sm_35,compute_35\" -gencode=arch=compute_37,code=\"sm_37,compute_37\" -gencode=arch=compute_50,code=\"sm_50,compute_50\" -gencode=arch=compute_52,code=\"sm_52,compute_52\" --use-local-env --cl-version 2010 -ccbin "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\amd64"  -I./ -I../../common/inc -I./ -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.0\/include" -I../../common/inc -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.0\include" -I"C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\/include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.0\include"  -G   --keep-dir x64\Debug -maxrregcount=0  --machine 64 --compile -cudart static -Xcompiler "/wd 4819"  -g   -DWIN32 -D__INTEL_COMPILER=1500 -DWIN32 -D_MBCS -D_MBCS -Xcompiler "/EHsc /W3 /nologo /Od /Zi /RTC1 /MTd  " -o x64/Debug/fluidsD3D9_kernels.cu.obj "C:\ProgramData\NVIDIA Corporation\CUDA Samples\v7.0\5_Simulations\fluidsD3D9\fluidsD3D9_kernels.cu"
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\float.h(14): fatal error C1021: Ung³ltiger Prõprozessorbefehl "include_next".

0 Kudos
kentrf
Beginner
1,020 Views

Hi,

I found a likely solution to this problem. I've had a similar problem where the headers would include Intel's float.h header, and produce a compiler error since it couldn't #include <../../vc/include/float.h> from  C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016\windows\compiler\include\float.h

However, I only had this problem with Visual Studio 2015. Visual Studio 2013 did not have this problem.

I assumed it was a problem with the Intel Parallel Studio 2015 and not being compatible with Visual Studio 2015. It was only after upgrading to Intel Parallel Studio 2016 and getting the same errors I started investigating.

It turned out the variables $(ICIncludeDir) and $(ICInstallDir)compiler\include was present in the Additional Include Directories. I removed those and now it builds just fine.

0 Kudos
pbkenned1
Employee
1,020 Views

Hello Kent,

Thanks for the feedback.  I can't comment on your Visual Studio solution, as I only have a command line version reproducing the problem.  The developers were unable to fix that in the 15.0 compiler, but the good news is that this is no longer an issue with the 16.0 compiler.  The following is using a VS2013-based command prompt:

 

C:\>cat foo-full-path-icl16.cpp
#include "C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.0.110\windows\compiler\include\float.h"

int main()
{
   float a[10];
   for (int i=0;i<10;i++) a = (float)i;
   return 0;
}

 

C:\>icl foo-full-path-icl16.cpp
Intel(R) C++ Intel(R) 64 Compiler for applications running on Intel(R) 64, Version 16.0.0.110 Build 20150815
Copyright (C) 1985-2015 Intel Corporation.  All rights reserved.

foo-full-path-icl16.cpp
Microsoft (R) Incremental Linker Version 12.00.21005.1
Copyright (C) Microsoft Corporation.  All rights reserved.

-out:foo-full-path-icl16.exe
foo-full-path-icl16.obj

 

C:\>foo-full-path-icl16.exe

C:\>

 

I'm closing this ticket now.

Patrick

0 Kudos
Reply