Probleme GRIS: CL_BUILD_PROGRAM_FAILURE

Stefan Heitmann
Erstie
Erstie
Beiträge: 16
Registriert: 18. Okt 2009 20:31
Wohnort: am liebsten Daheim ;-)
Kontaktdaten:

Probleme GRIS: CL_BUILD_PROGRAM_FAILURE

Beitrag von Stefan Heitmann » 26. Jan 2012 18:53

Hallo,

kopiert man den Coderahmen auf den GRIS-Cluster und verändert am Coderahmen nichts, so kann man alles erfolgreich kompilieren und ausführen (mit -oclgpu). Gibt man dann allerdings irgendetwas in der "oclMIcomputation.cl" ein, so erhält man einen CL_BUILD_PROGRAM_FAILURE. Also die Ausgabe ist schon mal nicht möglich, soweit habe ich das schonmal verstanden. Allerdings bekommt man den gleichen Fehler wenn man irgendeinen OpenCL Code eingibt, oder zum Beispiel eine "size_t" o.Ä. deklarieren möchte.

Weiß da jemand was?


oliver_g
Mausschubser
Mausschubser
Beiträge: 62
Registriert: 17. Nov 2008 16:27

Re: Probleme GRIS: CL_BUILD_PROGRAM_FAILURE

Beitrag von oliver_g » 26. Jan 2012 20:16

Rein interessehalber: Was heißt denn "gibt man allerdings irgendetwas [...] ein"? Kannst du mal ein Beispiel geben?

Stefan Heitmann
Erstie
Erstie
Beiträge: 16
Registriert: 18. Okt 2009 20:31
Wohnort: am liebsten Daheim ;-)
Kontaktdaten:

Re: Probleme GRIS: CL_BUILD_PROGRAM_FAILURE

Beitrag von Stefan Heitmann » 27. Jan 2012 15:48

ich versuche ein cl_mem zu deklarieren oder einen size_t, etc...das reicht schon genauso wie ein banaler cout.

kbraden
Mausschubser
Mausschubser
Beiträge: 98
Registriert: 15. Okt 2010 20:35

Re: Probleme GRIS: CL_BUILD_PROGRAM_FAILURE

Beitrag von kbraden » 27. Jan 2012 16:05

Wie gesagt: folge Dennis Link, pack den Patch hinter den Aufruf von clBuildProgram, kompilieren, ausfuehren und Fehlermeldung lesen.
Und/Oder: kompletten Code vom Kernel hier posten.

Dennis Albrecht
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 222
Registriert: 4. Okt 2010 18:15

Re: Probleme GRIS: CL_BUILD_PROGRAM_FAILURE

Beitrag von Dennis Albrecht » 27. Jan 2012 18:58

kbraden hat geschrieben:Und/Oder: kompletten Code vom Kernel hier posten.
Würde ich vielleicht nicht empfehlen, dann eher Assistent oder Tutor per e-Mail oder PM anschreiben. Ich weiß ja nicht, was alles in deinem Kernel schon drin steht.

Gruß

mw1039
Computerversteher
Computerversteher
Beiträge: 346
Registriert: 12. Apr 2011 12:18

Re: Probleme GRIS: CL_BUILD_PROGRAM_FAILURE

Beitrag von mw1039 » 28. Jan 2012 12:02

Stefan Heitmann hat geschrieben:ich versuche ein cl_mem zu deklarieren
Solche Sachen sind eigentlich Aufgabe des Hostcodes. Speicher im global memory wird eigentlich schon in der MIcomputation.cpp angefordert.
Wenn du lokalen Speicher brauchst, kann du ihn z.B. mit

Code: Alles auswählen

__local int someArray[22][22];
anfordern.
Schau dir vielleicht mal Kernelbeispiele aus dem NVIDIA-SDK (die muessten irgendwo unterhalb von /usr/local/cuda_sdk/ liegen) an.
Stefan Heitmann hat geschrieben:das reicht schon genauso wie ein banaler cout.
cout funktioniert definitiv nicht. Saemtliche CPU-Funktionen sind von der GPU aus nicht nutzbar. Vom Devicecode aus kannst du hoechstens anderen Devicecode aufrufen. printf kannst du nutzen (siehe irgendein anderer Thread). Das ist dann aber nicht das normale printf, sondern eine OpenCL-Erweiterung die nur "zufaellig" genauso wie das normale printf heisst.

Ansonsten ist auch am Montag wieder Sprechstunde zum Praktikum.

tacu
Mausschubser
Mausschubser
Beiträge: 64
Registriert: 13. Apr 2011 18:35

Re: Probleme GRIS: CL_BUILD_PROGRAM_FAILURE

Beitrag von tacu » 31. Jan 2012 12:39

kbraden hat geschrieben:Wie gesagt: folge Dennis Link, pack den Patch hinter den Aufruf von clBuildProgram, kompilieren, ausfuehren und Fehlermeldung lesen.

kannst du das bitte bisschen genau erklären wo und wie ich den patch einfügen muss? :oops:

kbraden
Mausschubser
Mausschubser
Beiträge: 98
Registriert: 15. Okt 2010 20:35

Re: Probleme GRIS: CL_BUILD_PROGRAM_FAILURE

Beitrag von kbraden » 31. Jan 2012 21:26

In oclutil.cpp, Zeile 77 (+-2) sollte der Aufruf zu clBuildProgram sein. Darunter ist im Original eine kurze Abfrage auf oclError != CL_SUCCESS.
Diesen if-Block ersetzen durch folgenden Code (im Prinzip o.g. Patch, nur die Bedingung geaendert):

Code: Alles auswählen

	if (oclError != CL_SUCCESS) {
          size_t length;
          oclError = clGetProgramBuildInfo(oclProgram,
             oclDevice,
             CL_PROGRAM_BUILD_LOG,
             0,
             NULL,
             &length);
          if(oclError != CL_SUCCESS) 
			  std::cout << "Can't get program build info (clGetProgramBuildInfo)" << std::endl;
		  else {
			  char* buffer = (char*)malloc(length);
			  oclError = clGetProgramBuildInfo(oclProgram,
				 oclDevice,
				 CL_PROGRAM_BUILD_LOG,
				 length,
				 buffer,
				 NULL);
    
			  std::cout << "Compile Error: " << buffer << std::endl;
		  }
		  exit(oclError);
	}
Dahinter sollte dann "// finally create the kernel" kommen.

tacu
Mausschubser
Mausschubser
Beiträge: 64
Registriert: 13. Apr 2011 18:35

Re: Probleme GRIS: CL_BUILD_PROGRAM_FAILURE

Beitrag von tacu » 1. Feb 2012 00:14

dankeschön :)

Antworten

Zurück zu „Archiv“