Currently in my Fedora 13 Linux system I have two Nvidia cards, a 9400GT and a GTX480. I have installed AMD’s ati-stream-sdk-v2.2-lnx64 in my home directory. My goal was to get OpenCL programs to run on the CPU (i7 930). I have installed the Nvidia OpenCL 1.1 compatible driver and the ATI stream v2.2 is OpenCL 1.1 compatible too. When I run the Ruby-OpenCL version of the code (0.7, also OpenCL 1.1 compatible), I can run on the CPU no problems. It’s only when I try to run the C++ bindings version of my code that I start to have kernel build problems.
The C++ version of my openclinfo program sees the CPU as a valid OpenCL device and responds that it is a 1.1 capable device. But when it tries to build the kernel I get the following error:
$ ./opencl-ifs
Devices found - 1
Error in clBuildProgram(-11)
Which is the CL_BUILD_PROGRAM_FAILURE error. I have set the $ATISTREAMSDKROOT environment variable and it points to the directory where I installed ati-stream-sdk-v2.2-lnx64. All of the ATI and Nvidia ICDs are installed in the /etc/OpenCL/vendor directory. I have tried to compile the program with two different g++ commands. The first is using the Nvidia includes and lib, the second is using the ATI includes and lib. At least I think that is what is happening, either way they both die with the same error. It’s almost like the OpenCL lib isn’t picking up the correct libs?
g++ opencl-ifs.cpp -o opencl-ifs -Wall -g -I /usr/include/CL -lOpenCL pkg-config gtkmm-2.4 --cflags --libs
g++ opencl-ifs.cpp -o opencl-ifs -Wall -I $ATISTREAMSDKROOT/include -I /usr/include/CL -L $ATISTREAMSDKROOT/lib/x86_64 -lOpenCL pkg-config gtkmm-2.4 --cflags --libs
Am I doing some thing wrong? I can’t find where the problem is, so any ideas or help would be most appreciated. Thanks,
Grimm