• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] openCL und suse 12.1 CL/opencl.h nicht gefunden

Chris K.

Member
Hallo!
Zum Thema openCL und Linux (speziell opensuse) findet man leider nicht so viel Informationen im Netz und ich scheitere leider bereits beim Kompilieren eines (definitiv funktionierenden) openCL Programms.
Ich verwende suse 12.1 und eine nvidia 7600 GS. Proprietärer Treiber und das Paket nvidia-compute sind installiert.
Eine opencl.h Datei konnte ich allerdings auf der gesamten Festplatte nicht finden :-(
Ich glaube, ich könnte mir die aktuellste Version der Datei von Khronos Group runterladen und selbst in /usr/inlcude oder so platzieren, aber das ist doch sicher nicht so gedacht?
Kann mir also jemand weiter helfen?
 

RME

Advanced Hacker
Hallo,

Wenn ich hier schaue:

Getting started with OpenCL and GPU Computing
http://www.thebigblob.com/getting-started-with-opencl-and-gpu-computing/

dann lese ich, dass:

The OpenCL API is defined in the cl.h (or opencl.h for apple) header file.
Oder:

Code:
#include <stdio.h>
#include <stdlib.h>
 
#ifdef __APPLE__
#include <OpenCL/opencl.h>
#else
#include <CL/cl.h>
#endif
 
#define MAX_SOURCE_SIZE (0x100000)
 
int main(void) {
    // Create the two input vectors
    int i;
    const int LIST_SIZE = 1024;
...
...
opencl.h ist für apple.

Gruss,
Roland
 
OP
Chris K.

Chris K.

Member
Danke für den Tipp. Leider habe ich auch keine cl.h. Jetzt weiß ich erst recht nicht, was ich machen soll.
(Habe jeweils das ganze Root-Verzeichnis "/" rekursiv nach opencl.h und cl.h durchsucht.)
 

RME

Advanced Hacker
Jetzt weiß ich erst recht nicht, was ich machen soll.
Und wir wissen nicht was Du denn genau gemacht hast.

YaST schrieb:
nvidia-texture-tools - NVIDIA Texture Tools

This is the first alpha release of the new NVIDIA Texture Tools. The main highlights of this release are support for all DX10 texture formats, higher speed and improved compression quality. In addition to that it also comes with a hardware accelerated compressor that uses CUDA to compress blocks in parallel on the GPU and runs around 10 times faster than the CPU counterpart. You can obtain CUDA from our developer site at: http://developer.nvidia.com/object/cuda.html The source code of the Texture Tools is being released under the terms of the MIT license.
Die oben angegebene URL: http://developer.nvidia.com/category/zone/cuda-zone

Hast Du diese besucht? (gelesen?) Dort gibt es:

CUDA Downloads http://developer.nvidia.com/cuda-downloads

>>> siehe dort auch Dokumentation unter "Useful Links" (unten auf Download Seite)

Wenn Du das SUSE Paket "CUDA 4.2 FOR LINUX" herunterlädst (32 oder 64bit, ist etwa 270MB gross), dann:

Code:
sh cudatoolkit_4.2.9_linux_64_suse11.2.run --help
und:

Code:
sh cudatoolkit_4.2.9_linux_64_suse11.2.run --list |egrep --color "cl.h"
-rw-r--r-- buildmeister/dip      1754 2012-04-08 04:05 ./include/CL/opencl.h
-rw-r--r-- buildmeister/dip     50091 2012-04-08 04:05 ./include/CL/cl.h
-rw-r--r-- buildmeister/dip      1350 2012-04-08 04:05 ./libnvvp/plugins/com.nvidia.cuda.help_0.0.5/topics/opencl.html
-rw-r--r-- buildmeister/dip      1351 2012-04-08 04:05 ./libnvvp/plugins/com.nvidia.vp.help_0.0.1/topics/opencl.html
Du siehst: ./include/CL/cl.h :D

Auch das SDK Paket (gleichenorts) hat diese Datei:

Code:
sh gpucomputingsdk_4.2.9_linux.run --list  |egrep --color "cl.h"
-rw-r--r-- buildmeister/gopher    50086 2012-04-12 19:10 ./sdk/OpenCL/common/inc/CL/cl.h
-rw-r--r-- buildmeister/gopher     1754 2012-04-12 19:10 ./sdk/OpenCL/common/inc/CL/opencl.h
-rw-r--r-- buildmeister/gopher     2316 2012-04-12 19:10 ./sdk/OpenCL/src/oclNbody/inc/oclBodySystemOpencl.h
(ich weiss nicht ob es diese NVidia Seiten in Deutsch gibt)

Gruss,
Roland
 
OP
Chris K.

Chris K.

Member
Danke!
Ich hab den Link schon angesehen, war aber "verwundert", weil ich dachte, es müsste doch allein mit Paketen aus den Repositories zu machen sein.
Den Treiber z.B. kann man ja auch manuell oder mit YaST installieren.
Ich find das dann persönlich nicht so toll gelöst; denn da gibt es ja schon öfters mal neue Versionen, aber ich habe eher weniger Lust mich da selbst auf dem laufenden zu halten. Und dann gibt es womöglich noch Abhängigkeiten oder andere Konflikte ...
Ich meine, wozu gibt es die Paketverwaltung? Den Treiber schaffen sie ja auch in ein rpm zu stecken :-(
 
OP
Chris K.

Chris K.

Member
Also das einzig vernünftige Paket (das nicht schon auf den ersten Blick was mit Python zu tun hat), das man findet wenn man auf software.opensuse.org/search nach "cuda" sucht, lässt sich nur installieren, wenn man gleich fünf weitere Repositories hinzufügt. Darauf hatte ich dann auch keine Lust. Aber in dem SDK von der nvidia Website waren ja die gewünschten Header Dateien drin. Finds zwar nach wie vor nicht schön, aber so konnte ich erstmal alles kompilieren.

P.S.: Nochmal: Die libraries (*.so) für den LD_LIBRARY_PATH waren durch das nvidia-computeG02 Paket (von dem es nicht etwa auch ein -devel Paket gibt) bereits vorhanden. Lediglich die Header für den Include Path haben gefehlt.

P.P.S.: Ach ja: Auch das explizit für Linux herunterzuladende SDK liefert übrigens eine opencl.h - nicht nur eine cl.h.
 
Oben