Tarvitsen OpenCL:ää Linuxissa, koska teen 3D-mallinnusta PhotoScannilla ja kortti tuli nopeuttamaan sitä. OpenCL:n saa toimivaan Linuxiss tällä hetkellä vain AMDGPU-PRO:lla. Nyt vaan AMDGPU-PRO on binääriajuri ja saatavilla vain muutamille yleisimmille Linux-distrubuutioille. Yritin asentaa Ubuntun paketteja, mutta tuli riippuvuusongelmia ja versiokonflikteja, ei hyvä.
Toisaalta, enhän minä edes tarvitse koko AMDGPU-PRO pakettia vain ainoastaan OpenCL-tuen. Sen saa viritettyä purkamalla deb-paketit, kopioimalla kirjastot lib{amdocl12cl,amdocl}64.so ja libdrm_amdgpu.so.1.0.0 johonkin uuteen hakemistoon, luomalla sinne myös symlinkin libdrm_amdgpu.so.1 -> libdrm_amdgpu.so.1.0.0 ja kopioimalla amdocl64.icd hakemistoon /etc/OpenCl/vendors. Kun sitten lisää kopioitujen kirjastojen polun LD_LIBRARY_PATH:iin, niin OpenCL alkaa toimia.
Olen ajan kahta eri clinfo, cl-demoa (löytyy Linuxin OpenCLHowto sivulta), MemtestCL:ää, Boinc:ia, Darktable-ohjelmaa, Hashcat:ia ja sain lopulta myös Photoscan:in GPU-kiihdytyksen toimimaan. Photoscan vaati käynnistysskriptin muokkaamista, koska se kirjoitti LD_LIBRARY_PATH:in päälle.
MemtestCL antoi muistivirheitä AMDGPU-PRO:n versiolla 16.40 mutta 16.60 toimi virheittä. Virheet tulivat random block operaatiossa. Alun perin MemtestCL:ssä oli bugi, joka aiheutti vääriä virheitä juuri tuossa operaatiossa, mutta se korjattiin 2012 lisäämällä testiohjelmaan barrier. Tästä voisi epäillä, että Amd ajurissa 16.40 oli bugi.