web-dev-qa-db-ja.com

CL / cl.hファイルを使用したOpenCLプログラムのコンパイル

サンプル「Hello、World!」がありますネットからのコードで、大学のサーバーのGPUで実行したい。 「gcc main.c」と入力すると、次のように応答します。

CL/cl.h:そのようなファイルまたはディレクトリはありません

私は何をすべきか?このヘッダーファイルを取得するにはどうすればよいですか?

18
sandra

適切なツールキットがインストールされていることを確認してください。

これは、コードの実行対象によって異なります。 NVidiaカードがある場合は、 CUDA-toolkit をダウンロードしてインストールする必要があります。これには、openclに必要なバイナリとライブラリも含まれています。

Linuxを実行していますか? OpenCLがすでにインストールされていると思われる場合は、標準の/ usr/includeとは異なる場所にある可能性があります。次を入力して、どのような結果が得られるかを確認します。

find / -iname cl.h 2>/dev/null

たとえば私のラップトップでは、ヘッダーは/usr/local/cuda-5.5/includeにあります。その場合、ヘッダーファイルが別の場所にある場合は、単純に複雑なパスを指定する必要があります。

g++ -I/usr/local/cuda-5.5/include main.c -lOpenCL

または、パスから/usr/includeへのシンボリックリンクを作成できます。

ln -s /usr/local/cuda-5.5/include/CL /usr/include
19

bunt または Debian distroを使用していますか?次に、このパッケージを使用して、ヘッダーファイルが見つからないという問題を解決できます。

apt-get install opencl-headers

Debian および bunt パッケージを使用してリンクの問題を解決するには、openclライブラリをインストールする必要があります。

apt-get install ocl-icd-libopencl1

これらのnonfreeライブラリを使用することもできます:nvidia-libopencl1(Debian)またはnvidia-libopencl1-xx(Ubuntu)。

14
OscarGarcia