現在のプロジェクトでは、同じプロジェクトで CUDA とインテル C/C++ コンパイラーを使用する必要があります。(インテルの MKL の SSYEV 実装に依存しています。ICC+MKL の代わりに GCC+MKL を使用すると、約 10 倍の時間がかかります (GCC から約 3ms、ICC から約 300µs)。
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 の一部として)、私はまだこの問題に遭遇しています:
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!
残念ながら、ICC を CUDA と一緒に使用するために Nvidia が提供する情報が不足しているため、Nvidia は単に ICC の使用を容認しているように見えます。
Ubuntu 12.10 x86_64 と CUDA 5.5 を実行しています。オプションを使用してストック GCC 4.7.2 の動作を模倣するように icc に指示して-Xcompiler -gcc-version=470
も、どちらも役に立ちませんでした。google/search を使用して、CUDA 3.x および Intel ICC 11.1 を扱う Nvidia フォーラムからスレッドを見つけることしかできませんでしたが、取得した情報を現在の CUDA リリースに転送することはできませんでした。
この問題を解決する方法についての提案に非常に感謝します:-)