CUDA 5.5& Linux上的Intel C / C ++编译器 [英] CUDA 5.5 & Intel C/C++ Compiler on Linux

查看:626
本文介绍了CUDA 5.5& Linux上的Intel C / C ++编译器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

对于我当前的项目,我需要在同一个项目中使用CUDA和Intel C / C ++编译器。 (我依赖于英特尔的MKL的SSYEV实现,使用GCC + MKL而不是ICC + MKL(从GCC接近3ms,从ICC接近300μs)大约需要10倍的时间。

For my current project, I need to use CUDA and the Intel C/C++ compilers in the same project. (I rely on the SSYEV implementation of Intel's MKL, which takes roughly 10 times as long when using GCC+MKL instead of ICC+MKL (~3ms from GCC, ~300µs from ICC).

icc -v
icc version 12.1.5

NVIDIA声明,支持Intel ICC 12.1( http://docs.nvidia.com/cuda/cuda-samples/index.html#linux-platforms-supported ),但即使在降级到Intel ICC 12.1.5(安装为Intel Composer XE 2011 SP1 Update 3),我仍然遇到这个问题:

NVIDIA states, that Intel ICC 12.1 is supported (http://docs.nvidia.com/cuda/cuda-samples/index.html#linux-platforms-supported), but even after having downgraded to Intel ICC 12.1.5 (installed as part of the Intel Composer XE 2011 SP1 Update 3), I am still running into this issue:

nvcc -ccbin=icc src/test.cu -o test
/usr/local/cuda-5.5/bin//..//include/host_config.h(72): catastrophic error: #error directive: -- unsupported ICC configuration! Only ICC 12.1 on Linux x86_64 is supported!
#error -- unsupported ICC configuration! Only ICC 12.1 on Linux x86_64 is supported!


$ b不幸的是,似乎Nvidia只是容忍使用ICC,因为我不会称之为支持,因为缺乏由Nvidia提供的信息使用ICC与CUDA。

Unfortunately, it seems as if Nvidia is merely tolerating the use of ICC, because I would hardly call it "support", given the lack of information provided by Nvidia for using ICC together with CUDA.

我运行的是Ubuntu 12.10 x86_64和CUDA 5.5。告诉icc模拟股票GCC 4.7.2使用 -Xcompiler -gcc-version = 470 选项的行为也没有帮助。使用google / search,我只能从处理CUDA 3.x和Intel ICC 11.1的Nvidia论坛找到线程,但是我无法将获取的信息传输到当前的CUDA版本。

I am running Ubuntu 12.10 x86_64 and CUDA 5.5. Telling icc to mimick the behavior of the stock GCC 4.7.2 using the -Xcompiler -gcc-version=470 option did not help either. Using google/search, I was only able to find threads from the Nvidia forums dealing with CUDA 3.x and Intel ICC 11.1, but I was unable to transfer the obtained information to current CUDA releases.

我非常感谢任何有关如何解决这个问题的建议: - )

I would be very grateful for any suggestion on how to solving this issue :-)

推荐答案

在您收到的错误中引用的文件,它专门寻找一个具有特定构建日期的ICC编译器:

Referring to the file referenced in the error you received, it's specifically looking for an ICC compiler with a particular build date:

#if defined(__ICC)

#if !(__INTEL_COMPILER == 9999 && __INTEL_COMPILER_BUILD_DATE == 20110811) || !defined(__GNUC__) || !defined(__LP64__)

#error -- unsupported ICC configuration! Only ICC 12.1 on Linux x86_64 is supported!

#endif

解决方案是让intel编译器匹配指定的构建日期。如下所示, ICC 12.1 ,ie。版本12.1.0.233,而不是ICC 12.1.5应该做的伎俩。

The solution would be to have the intel compiler that actually matches that specified build date. As indicated, ICC 12.1, ie. version 12.1.0.233, instead of ICC 12.1.5 should do the trick.

狭窄的焦点至少部分是由于测试限制。在这种情况下,一个特定的ICC变体在CUDA工具包发布之前进行测试,因此主机配置检查在其中有此测试。

The narrow focus is at least partly due to a test limitation. In this case, a particular ICC variant was tested with the CUDA toolkit before it was released, and so that host config check has this test in it.

这篇关于CUDA 5.5& Linux上的Intel C / C ++编译器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆