おいも貴婦人ブログ

生物系博士課程満期退学をしたAIエンジニアのブログ。

(未解決)INTEL compiler(icc)を使ってビルド(cuda-5.5)

$nvcc tmp.cu --compiler-bindir icc

ビルド出来たら、終了…。
出来ない場合↓
多分、出来ない場合の方が多いと思います。
私の場合に起こるエラー。

$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!

intel12.1しかlinux x86_64のアーキテクチャではサポートしていないとのことです。
intelコンパイラーのバージョンの確認。

$icc --version
icc (ICC) 12.1.0 20111011
Copyright (C) 1985-2011 Intel Corporation.  All rights reserved.

バージョンは12.1で、問題ないはず...。
エラーがでたhost_config.h(72)を見てみる。

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

どうやら、ビルドした日にずれがあるらしい。cuda-5.5は、intel compiler12.1が2011/08/11にビルドしたものでないとエラーが出る。

対処法

  1. intelコンパイラーのバージョンを下げる。
    1. Linuxintelコンパイラーは非商用で用いるのであれば、ダウンロードできるので、昔のバージョンをダウンロードする。(昔のバージョンがあるか、分からない。私の場合、何故か登録エラーがでる...)

https://software.intel.com/en-us/non-commercial-software-development

  1. cuda Developerに登録して、cudaのソースを書き換える。(書き換えれるか分からない。こちらも登録エラーがでる)

https://developer.nvidia.com/cuda-zone