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

Failed to use CUDA nvcc compiler with ICC 13.x

romant73
Beginner
1,619 Views

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
romant73
Beginner
1,619 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
Armando_Lazaro_Alami
1,619 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
romant73
Beginner
1,619 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
SergeyKostrov
Valued Contributor II
1,619 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
romant73
Beginner
1,619 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
SergeyKostrov
Valued Contributor II
1,619 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
romant73
Beginner
1,619 Views

Sent via personal message.

0 Kudos
SergeyKostrov
Valued Contributor II
1,619 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
romant73
Beginner
1,619 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
SergeyKostrov
Valued Contributor II
1,619 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
romant73
Beginner
1,619 Views

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

0 Kudos
SergeyKostrov
Valued Contributor II
1,619 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
romant73
Beginner
1,619 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
SergeyKostrov
Valued Contributor II
1,619 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
Kirk_D_
Novice
1,619 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
Om_S_Intel
Employee
1,619 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
bernaske
New Contributor I
1,619 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
Bernard
Valued Contributor I
1,619 Views

@bernaske

That is interesting.

I will try to do it on Windows platform.

0 Kudos
Reply