Failed to use CUDA nvcc compiler with ICC 13.x

Failed to use CUDA nvcc compiler with ICC 13.x

Hi All,

I have posted this question to the Parallel Studio forum, seems like this forum is more suitable for this sort of issues. 

I've just upgraded 2011 XE to 2013 XE (update 3), one of my projects that intel compiler from 2011 XE package was able to assemble flawlessly fails to compile with ICC 13.x.

An error occurs on the nvcc compilation stage (compiling .cu file with CUDA kernel): nvcc : fatal error : A single input file is required for a non-link phase when an outputfile is specified.

Once again, both MSVC and 2011 XE do compile the project without errors. How to make 13.x do the same thing ?

Many thanks in advance.

19 posts / 0 nouveau(x)
Dernière contribution
Reportez-vous à notre Notice d'optimisation pour plus d'informations sur les choix et l'optimisation des performances dans les produits logiciels Intel.

For some reason, this topic has appeared almost two days after I've submitted it, this issue is already under discussion in the "CUDA support, any news ?" topic.

Romant,  I never was able to compile CUDA code with  Intel C++ !  I will try to find my old Intel 2011 and make a test.  So, if  there was support in the past ... so,  what happen ?

It is possible that it was pre-2011 version that compiled projects with .cu files well, I don't remember with sure. Well, that previous version have just invoked nvcc successfully, compiled the rest of h/cpp files and linked all the stuff together, that's all.

Roman,

>>...I have posted this question to the Parallel Studio forum, seems like this forum is more suitable for this sort of issues...

Yes, that is correct and I would keep the primary discussion of the problem in the current thread. Could you provide a small reproducer? Thanks in advance.

Sergey,

I have posted some details in the following branch of this forum: http://software.intel.com/en-us/forums/topic/392250

Jennifer J. from Intel is currently kindly looking into this issue. I have provided her with project files, custom build rules, build log and some other files, can send this info to you as well.

>>... I have provided her with project files, custom build rules, build log and some other files, can send this info to you as well...

Please provide all that stuff for review. Thanks in advance.

Sent via personal message.

Roman, Is everything right with a path to MulticoreHelpers.cu file when NVCC is invoked from the Visual Studio? I see two cases:

Case 1: Intel/MulticoreHelpers.cu

and

Case 2: MulticoreHelpers.cu

Note: There are no any preceeding folders in the Case 2

Could you try to compile that file with NVCC from the command line?

Everything is correct:
--compile -o &quotx64\Unicode Release Intel/MulticoreHelpers.cu.obj&quot MulticoreHelpers.cu

First parm in the quotes is the destination path, second one is the file itself. Everything is compiled well with exactly same parameters when compiling via MSVC.

Unfortunately, the stuff you've provided is not complete. Did you try to ask for some advise from NVIDIA support? It would be nice to hear what they say.

Another thing is could you reproduce the same problem in a small example provided by NVIDIA? You know that NVIDIA posted lots of examples on their website and it should be much easier to continue investigation in that case.

Please keep us informed on your progress.

Note: Roman, A complete reproducer is needed, not partial (!).

OK, understood. I will try to create a complete reproducer and provide you with it.

>>...OK, understood. I will try to create a complete reproducer and provide you with it.

Thanks, Roman and we're waiting for that stuff from you.

Sergey,

Jennifer J. from Intel has finally nailed this issue down. Here is the part of the command line:

nvcc.exe ... "x64\Unicode Release Intel/MulticoreHelpers.cu.obj" "MulticoreHelpers.cu" [AdditionalOptions]

[AdditionalOptions] must have been substituted with actual string from compiler setup, however, for some reason, [AdditionalOptions] substring has been inserted as is. This substring is considered as a filename by nvcc, that is the cause of error.

Waiting for the workaround.

Thanks for the update.

>>nvcc.exe ... "x64\Unicode Release Intel/MulticoreHelpers.cu.obj" "MulticoreHelpers.cu" [AdditionalOptions]
>>
>>[AdditionalOptions] must have been substituted with actual string from compiler setup, however, for some reason,
>>[AdditionalOptions] substring has been inserted as is. This substring is considered as a filename by nvcc, that is
>>the cause of error.

That's a great news and Thanks to Jennifer! So, please keep everybody informed on the status of the problem.

I am interested if this has been resolved and what the workaround it. Last message is from nearly a year ago.  Any update?

Intel does not support NVIDIA’s CUDA syntax directly in the Intel compilers nor do we have plans to do so. Rather than go proprietary, Intel supports OpenCL, an open standard alternative to NVIDIA’s CUDA that supports GPUs from all vendors, CPUs and coprocessors. Information on the latest release can be found at http://www.intel.com/software/opencl-xe.

Hi,

ok official  does Intel not support NVIDIA's CUDA SDK Syntax  with the Intel Compilers , but you can use the Intel Compilers

with NVIDIA CUDA SDK, actual i have install on openSUSE 13.2 Milestone 0 (64 Bit) Linux  the new NVIDIA CUDA SDK 6.0

and the Intel Cluster STUDIO XE 2015 Beta with the ICC/ICPC Version

icc (ICC) 15.0.0 20140318
Copyright (C) 1985-2014 Intel Corporation.  All rights reserved.

icpc (ICC) 15.0.0 20140318
Copyright (C) 1985-2014 Intel Corporation.  All rights reserved.

so with a little modification of the host_config.h change from icc != 1310 to icc  > 1500 you use the icpc / icc with the CUDA SDK.

i have compile  the bandwithtest, matrixMul, matrixMulCUBLAS, particles, nbody and smokeParticles samples from the NVIDIA 6.0 SDK

without any troubles command: make GCC=icpc EXTRA_NVCCFLAGS=-use_fast_math , the executables works correct on my GeForce GTX560 Ti  dual SLI Config.

So far this are the steps for Linux i don't know whats gone in a windows environment, i never use it.

 

regards

Franz

 

 

 

 

 

 

@bernaske

That is interesting.

I will try to do it on Windows platform.

Laisser un commentaire

Veuillez ouvrir une session pour ajouter un commentaire. Pas encore membre ? Rejoignez-nous dès aujourd’hui