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

CUDA support , any news ?

Armando_Lazaro_Alami
1,301 Views

Is there any news or official statement regarding support to compile CUDA code with Intel C++ Composer in the future ?

Thanks,

Armando

0 Kudos
16 Replies
TimP
Honored Contributor III
1,301 Views

No change that I know of from previous answers to this question, except that the 14.0 beta has become available internal to Intel(c), taking a step toward OpenMP 4.0 (qv).  As CUDA is intentionally architecture-dependent, OpenCL (qv) and OpenMP 4.0 are the agreed steps toward supporting CUDA platforms and Intel ones with similar source code base.

0 Kudos
romant73
Beginner
1,301 Views

Hi there,

I think the question is not about the possibility to compile the host CUDA code by ICC - it is not a big problem that nvcc explicitly uses MSVC compiler for this purpose. The problem is in fact that it is impossible to invoke nvcc correctly when compiling large heterogeneous project with ICC! Under the "heterogeneous" term I understand a project which contains lots of .h/.cpp files with a couple of .cu files with kernels. The goal is to compile h/cpp with ICC and let nvcc do the job with .cu files.

I've just upgraded to 2013 XE (update 3), one of my projects that older intel compiler 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. It means that ICC forms incorrect command line for nvcc (examination of the command line in the build log does not discover any errors though).

This issue makes the upgrade meaningless - project can't be compiled with modern ICC and there is no sence in usage of outdated ICC. So to speak, I simply can't use ICC for my tasks.

Is it possible to fix it ? Correct command line translation should not be a big deal.

Thanks in advance.

0 Kudos
JenniferJ
Moderator
1,301 Views

>> 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.

From the error msg, it seems an error from nvcc. are you using Visual Studio 2010 for building the project? can you send the project file (.vcxproj)? 

Jennifer 

0 Kudos
romant73
Beginner
1,301 Views

Jennifer,

It seems like my original post is still under review by admins but you've already answered :-) Do I understand right that you'd need vcproj file in this case ?

0 Kudos
JenniferJ
Moderator
1,301 Views

Yes, a .vcproj file & .icproj file are needed. please send both. So you're using VS2008 for the project?

I didn't see your original posting is under review. maybe try "refresh".

Jennifer

0 Kudos
romant73
Beginner
1,301 Views

Sent via personal message.

0 Kudos
Armando_Lazaro_Alami
1,301 Views

Good news for us if Intel and NVidia reach any agreement regarding support for CUDA inside  Intel C . Thanks for your feedback.

0 Kudos
Armando_Lazaro_Alami
1,301 Views

Good news for us if Intel and NVidia reach any agreement regarding support for CUDA inside  Intel C . Thanks for your feedback.

One more reflection: ignoring CUDA is not going to make it vanish from the market,  it has deep roots into HPC.  but ignoring CUDA could motivate some programmers for looking into other compilers...

0 Kudos
JenniferJ
Moderator
1,301 Views

btw. the Intel C++ compiler does not support CUDA. If you are working on graphics processing applications, you are welcome to try the 14.0 beta. Check out our preview support for Intel Graphics Processing offload. See release notes for details.

But this issue seems an IDE integration related issue. If I fould out more, will update here.

Jennifer

0 Kudos
Armando_Lazaro_Alami
1,301 Views
Jennifer, Thanks for your advice, but my interest in CUDA is for massively parallel processing in numerical problems. I am hoping to put my hands on a Xeon Phi some day, but it is not availble for me in Brasil and I think that the cost is much higher.
0 Kudos
bernaske
New Contributor I
1,301 Views

Hi Jennifer,

we have installed the NVIDIA CUDA SDK 5.5 EA on  openSUSE 12.3 64 Bit Linux , and also the new Intel Composer XE 2013 SP1 compiler

Version 14.0.0 ( icc and icpc ), i have compile  the samples from CUDA SDK 5.5 no problems with one expect a openMP samples, i have found the reason , so the icpc works fine with the CUDA SDK 5.5 EA

Best regards

Franz

0 Kudos
JenniferJ
Moderator
1,301 Views

Now, we're able to get a testcase for the build issue. I've filed a bug report for it. DPD200244203. I'll update here when I have any news. 

bernaske wrote:

we have installed the NVIDIA CUDA SDK 5.5 EA on  openSUSE 12.3 64 Bit Linux , and also the new Intel Composer XE 2013 SP1 compiler

Version 14.0.0 ( icc and icpc ), i have compile  the samples from CUDA SDK 5.5 no problems with one expect a openMP samples, i have found the reason , so the icpc works fine with the CUDA SDK 5.5 EA

This is good to know. Thanks for the info. If the samples are .c/.cpp without using any of the specific attributes, yeh, it's fine.

Jennifer

0 Kudos
JenniferJ
Moderator
1,301 Views

this bug is fixed, it is related to the "[AdditionalOptions]" attribute used in the .rule file. It is not specifically to CUDA, could be any .rule.

It is fixed now, and the fix will be in the 14.0 beta update.

Jennifer

0 Kudos
Armando_Lazaro_Alami
1,301 Views

Hi,  Jennifer .  Good news !  Thanks.

0 Kudos
JamesR
New Contributor II
1,301 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.  Additionally, compiler support for offloading to GPUs and coprocessors, will use OpenMP 4.0. Intel will have full support for OpenMP 4.0’s new target directives for offloading in a future release. Intel has a pre-“OpenMP 4.0 specification” version of directives/pragmas for offload supported now in the 14.0 beta, and will align to the standard’s final syntax and semantics after the standard is finalized (expected this summer – a draft is available at http://openmp.org/wp/openmp-specifications/). Combined, OpenCL and OpenMP 4.0 offer an industry standard approach to the challenges of targeting attached computational capabilities ranging from GPUs (including the HD Graphics found on Ivy Bridge processors) to the highly scalable capabilities of a full many core device such as Intel Xeon Phi coprocessors. These open approaches can support hardware from all vendors resulting in much higher degrees of portability for programs and broader support from more software tools.

0 Kudos
Armando_Lazaro_Alami
1,301 Views

Hi James.  I knew that Intel was not interested in supporting CUDA.   I was expecting (from ICL) interoperability with de Cuda compiler at the level o MSVC, only that, hoping to dismiss MSVC.  I have nothing against OpenCL  and love OpenMP.  But in the mean time, using CUDA is very useful in some situations.  Any way,  MSVC solve the problem for us. 

About Xeon Phi , is very exciting but I only see it in journals ( I am in Brasil).  Do you consider that an architecture equiped with Xeon Phi could be purchased with at a competitive price if compare with an equivalent CUDA workstation ?

Thanks

0 Kudos
Reply