Опция за компилиране на OpenCL ATI срещу NVIDIA

Една примерна програма, която се опитвам да стартирам, има опцията за компилиране, както следва от 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

Но аз използвам внедряването на OpenCL на Nvidia, така че ще променя опцията, за да харесва това.

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

Можете ли да ми кажете дали е правилно или не? Между другото, не можах да намеря правилния път за опцията "-L" за NVIDIA, която съответства на ATI.


person user1292251    schedule 23.08.2012    source източник
comment
Когато казвате CUDA, имате предвид внедряването на OpenCL на NVIDIA или сте превели OpenCL в CUDA и наистина се опитвате да компилирате този CUDA код?   -  person talonmies    schedule 23.08.2012
comment
Съжалявам, че не бях ясен. Това е OpenCL реализация на NVIDIA. Не преведох този код на OpenCL в CUDA.   -  person user1292251    schedule 23.08.2012


Отговори (1)


Донякъде объркващо, GPU изчислителният SDK на NVIDIA всъщност изобщо не е 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 трябва да завърши в път за търсене по подразбиране и няма да се нуждае от изричен път за търсене, за да може линкерът да го намери.

person talonmies    schedule 23.08.2012
comment
Намерих и отговора за опцията -L. Това е -L PATH_TO_NVIDIA_TOOLKIT/lib. - person user1292251; 29.08.2012
comment
Все още обаче се обърквам какви са разликите между /user/local/cuda и /home/userid/NVIDIA_GPU_Computing_SDK/OpenCL. Същите включващи и библиотечни файлове са и там. - person user1292251; 29.08.2012