Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Beginner
100 Views

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.

0 Kudos
18 Replies
Highlighted
Beginner
100 Views

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.

0 Kudos
Highlighted
100 Views

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 ?

0 Kudos
Highlighted
Beginner
100 Views

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.

0 Kudos
Highlighted
Valued Contributor II
100 Views

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.
0 Kudos
Highlighted
Beginner
100 Views

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.

0 Kudos
Highlighted
Valued Contributor II
100 Views

>>... 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.
0 Kudos
Highlighted
Beginner
100 Views

Sent via personal message.

0 Kudos
Highlighted
Valued Contributor II
100 Views

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?
0 Kudos
Highlighted
Beginner
100 Views

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.

0 Kudos
Highlighted
Valued Contributor II
100 Views

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 (!).
0 Kudos
Highlighted
Beginner
100 Views

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

0 Kudos
Highlighted
Valued Contributor II
100 Views

>>...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.
0 Kudos
Highlighted
Beginner
100 Views

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.

0 Kudos
Highlighted
Valued Contributor II
100 Views

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.
0 Kudos
Highlighted
Beginner
100 Views

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

0 Kudos
Highlighted
Employee
100 Views

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.
0 Kudos
Highlighted
New Contributor I
100 Views

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

 

 

 

 

 

 

0 Kudos
Highlighted
Black Belt
100 Views

@bernaske

That is interesting.

I will try to do it on Windows platform.

0 Kudos