gpt4 book ai didi

linux - Linux 上的 CUDA 5.5 和英特尔 C/C++ 编译器

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:56:05 28 4
gpt4 key购买 nike

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

icc -v
icc version 12.1.5

NVIDIA 声明,支持英特尔 ICC 12.1 ( http://docs.nvidia.com/cuda/cuda-samples/index.html#linux-platforms-supported ),但即使在降级到英特尔 ICC 12.1.5(作为英特尔 Composer XE 2011 SP1 更新 3 的一部分安装)之后,我仍然遇到这个问题:

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!

不幸的是,Nvidia 似乎只是在容忍使用 ICC,因为我很难将其称为“支持”,因为 Nvidia 缺乏将 ICC 与 CUDA 一起使用的信息。

我正在运行 Ubuntu 12.10 x86_64 和 CUDA 5.5。使用 -Xcompiler -gcc-version=470 选项告诉 icc 模仿普通 GCC 4.7.2 的行为也无济于事。使用 google/search,我只能从处理 CUDA 3.x 和 Intel ICC 11.1 的 Nvidia 论坛中找到线程,但我无法将获得的信息转移到当前的 CUDA 版本。

如果有任何关于如何解决此问题的建议,我将不胜感激:-)

最佳答案

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

#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

解决方案是让英特尔编译器实际匹配指定的构建日期。如前所述,ICC 12.1 , IE。版本 12.1.0.233,而不是 ICC 12.1.5 应该可以解决问题。

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

关于linux - Linux 上的 CUDA 5.5 和英特尔 C/C++ 编译器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18698817/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com