1 Reply Latest reply on Nov 29, 2011 6:54 AM by mercuryknight

    undefined reference problem in clAmdFft

    mercuryknight

      Has anyone ever seen this error when linking libclAmdFft.Runtime?

      I'm sure that my opencl environment is setup properly and other opencl codes run perfectly in my computer. It seems that the opencl installed in my computer is version 1.1 while clAmdFft library requires version 1.0.

      Does anyone know how to solve it? Thanks in advance.

      /home/jason/Dropbox/clAmdFft/lib32/libclAmdFft.Runtime.so: undefined reference to `clCreateBuffer@OPENCL_1.0'
      /home/jason/Dropbox/clAmdFft/lib32/libclAmdFft.Runtime.so: undefined reference to `clReleaseContext@OPENCL_1.0'
      /home/jason/Dropbox/clAmdFft/lib32/libclAmdFft.Runtime.so: undefined reference to `clReleaseKernel@OPENCL_1.0'
      /home/jason/Dropbox/clAmdFft/lib32/libclAmdFft.Runtime.so: undefined reference to `clSetKernelArg@OPENCL_1.0'
      /home/jason/Dropbox/clAmdFft/lib32/libclAmdFft.Runtime.so: undefined reference to `clGetContextInfo@OPENCL_1.0'
      /home/jason/Dropbox/clAmdFft/lib32/libclAmdFft.Runtime.so: undefined reference to `clEnqueueNDRangeKernel@OPENCL_1.0'
      /home/jason/Dropbox/clAmdFft/lib32/libclAmdFft.Runtime.so: undefined reference to `clGetDeviceInfo@OPENCL_1.0'
      /home/jason/Dropbox/clAmdFft/lib32/libclAmdFft.Runtime.so: undefined reference to `clReleaseMemObject@OPENCL_1.0'
      /home/jason/Dropbox/clAmdFft/lib32/libclAmdFft.Runtime.so: undefined reference to `clGetProgramBuildInfo@OPENCL_1.0'
      /home/jason/Dropbox/clAmdFft/lib32/libclAmdFft.Runtime.so: undefined reference to `clBuildProgram@OPENCL_1.0'
      /home/jason/Dropbox/clAmdFft/lib32/libclAmdFft.Runtime.so: undefined reference to `clRetainContext@OPENCL_1.0'
      /home/jason/Dropbox/clAmdFft/lib32/libclAmdFft.Runtime.so: undefined reference to `clCreateKernel@OPENCL_1.0'
      /home/jason/Dropbox/clAmdFft/lib32/libclAmdFft.Runtime.so: undefined reference to `clEnqueueWriteBuffer@OPENCL_1.0'
      /home/jason/Dropbox/clAmdFft/lib32/libclAmdFft.Runtime.so: undefined reference to `clReleaseProgram@OPENCL_1.0'
      /home/jason/Dropbox/clAmdFft/lib32/libclAmdFft.Runtime.so: undefined reference to `clCreateProgramWithSource@OPENCL_1.0'

       

      PS. I'm using 32-bit Ubuntu 11.10, with nvidia graphic driver and AMDAPP installed. In my other applications, I can use both CPU and GPU through opencl without any problem.

        • undefined reference problem in clAmdFft
          mercuryknight

          Solved.

          Apparently I referenced the libOpenCL.so provided by nvidia, in /usr/local/cuda/lib. After I changed it to /opt/AMDAPP/lib/x86, it works fine.

          However, I still think there is a bug in here. Different applications should have been compatible with the standard OpenCL library. If AMD's application only runs on AMD's OpenCL library and nvidia's application only runs on nvidia's OpenCL library. What can I do if I want to use both of them?