0 Replies Latest reply on Feb 7, 2010 10:58 PM by mjharvey

    OpenCL 2 and Red Hat 5

    mjharvey
      How to make it go

      Some of you have (like me) doubtless been frustrated in trying to get the current OpenCL 2 to work with RHEL/Centos 5. The typical symptom of failure is something like:

       $./HelloCL
      HelloCL!
      Getting Platform Information
      Platform::get() failed (-1000)
      Creating a context AMD platform
      Segmentation fault

      Even after fannying about creating  symlinks for the ICD and setting LD_LIBRARY_PATH to point to the location of libOpenCL.so.

      The reason why it's not working is that the libaticl64.so depends upon a more recent version of GLIBC than RHEL supports. You can see this if you try:

      # ldd /usr/lib/OpenCL/vendors/libatiocl64.so
      /usr/lib/OpenCL/vendors/libatiocl64.so: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by /usr/lib/OpenCL/vendors/libatiocl64.so)
      ..

       

      There's no RHEL/Centos fix for this, but it can be workedearound by getting a more recent stdc++ RPM from Fedora.

      For example, download: http://fedora.mirror.iweb.ca/releases/11/Everything/x86_64/os/Packages/libstdc++-4.4.0-4.x86_64.rpm

      Extract the libraries from it using:

      $ rpm2cpio libstdc++...rpm | cpio - cvidBum

      Then set the LD_LIBRARY_PATH to point to the extracted libstd++.so.6.0.11.

      (Best not to overwrite the system libs in /usr/lib64, of course.)

      Voila. A probably-mostly-working OCL installation.

       

      ATI: please do fix this dependency - to be taken seriously in the comercial world, RHEL compatibility is sine qua non.

       

      Matt

      $ ./HelloCL HelloCL! Getting Platform Information Platform::get() failed (-1000) Creating a context AMD platform Segmentation fault