2

私が実行しようとしているサンプル プログラムの 1 つには、makefile から次のようなコンパイル オプションがあります。

ATISTREAMSDKROOT=/home/david/src/ati-stream-sdk-v2.0-lnx64
CC=gcc
CCFLAGS=-O3 -msse2 -mfpmath=sse -ftree-vectorize -funroll-loops -Wall \
    -I$(ATISTREAMSDKROOT)/include -L$(ATISTREAMSDKROOT)/lib/x86_64 -lglut -lOpenCL

しかし、Nvidia の OpenCL 実装を使用しているので、オプションをこのように変更します。

CC=gcc
CCFLAGS=-O3 -msse2 -mfpmath=sse -ftree-vectorize -funroll-loops -Wall \
    -I ~/NVIDIA_GPU_Computing_SDK/OpenCL/common/inc/ -lglut -lOpenCL

正しいかどうか教えていただけますか?ところで、ATI に対応する NVIDIA の「-L」オプションの正しいパスが見つかりませんでした。

4

1 に答える 1

1

やや紛らわしいことに、NVIDIA の GPU コンピューティング SDK は実際にはまったく SDK ではなく、CUDA および OpenCL で記述されたサンプル プログラムのコレクションにすぎません。OpenCL プログラムをビルドして実行するために必要なヘッダーとライブラリは含まれていません (CUDA にも同じことが当てはまります)。

探しているものが NVIDIA GPU コンピューティング ツールキットで見つかります。そのリリース バージョンには OpenCL ヘッダーが含まれています。コンパイル コマンドは、おそらく次のようになります。

CCFLAGS=-O3 -msse2 -mfpmath=sse -ftree-vectorize -funroll-loops -Wall \
    -I PATH_TO_NVIDIA_TOOLKIT/include/CL -lglut -lOpenCL

PATH_TO_NVIDIA_TOOLKITツールキット インストーラーのデフォルトを受け入れる場合、/usr/local/cuda になります。NVIDIA OpenCL ライブラリはドライバー パッケージに同梱libOpenCL.soされており、最終的には既定の検索パスになるはずであり、リンカーがそれを見つけるために明示的な検索パスは必要ありません。

于 2012-08-23T10:36:29.793 に答える