Seite 1 von 1

GPU für Übung11

Verfasst: 17. Jan 2012 20:10
von SupeRalF
Hi,
Ich habe versucht, die letzte Übung mit OpenCL auf meinem eigenen Rechner, einem Asus Netbook auszuführen. Dieses Netbook hat einen Intel Atom N280 und die dazu passende Intel GMA945 und ist aktuell mein einziger Rechner mit Linux, da ich Linux nur für die Uni benötige und das Netbook stets mitnehme.
Da ich also keine Nvidia Grafik habe und die CPU von SSE4.1 noch nie etwas gehört hat, habe ich wie im aktuellen Praktikum beschrieben das AMD OpenCL SDK installiert. Ein paar Include Befehle später habe ich das Projekt mit dem hier im Forum geposteten g++ Befehl kompilieren können (mit make kriege ich es nicht hin), aber die Ausführung schlägt noch immer fehl:

Code: Alles auswählen

ERROR: Failed to query number of OpenCL capable GPUs!
ERROR: init opencl device
Liegt das daran, dass mein kleiner Intel GMA nicht fähig ist, das Projekt auszuführen, oder habe ich noch etwas falsch gemacht? weil ich dachte eigentlich, das AMD SDK könnte den OpenCL Code auf auf der CPU ausführen. Aber wenn es an der schwachen Grafikkarte liegt: Wird für das aktuelle Praktikum auch eine "spezielle" Grafikkarte benötig? Weil während ich diese Übung noch auf dem Cluster bearbeitet habe, wurde dies ja für das Praktikum untersagt!

Gruß
SupeRalF

Re: GPU für Übung11

Verfasst: 17. Jan 2012 21:31
von oliver_g
Deine GPU scheint nicht für OpenCL geeignet zu sein. Generell ist das AMD APP SDK nicht in der Lage für GPUs von Nvidia oder Intel OpenCL Kernel zu kompilieren. Das Intel SDK wiederum unterstützt nur Prozessoren.

Für die Übung probier mal Folgendes: In der Datei openclhelperfunctions.cpp Zeile 45, ändere den Device-Typ auf CPU. Der Atom unterstützt SSE 2.

Code: Alles auswählen

if(clGetDeviceIDs(cpPlatforms, CL_DEVICE_TYPE_CPU, 16, 0, &clDeviceCount) != CL_SUCCESS) {
		std::cout << "ERROR: Failed to query number of OpenCL capable GPUs!" << std::endl;
		return false;
	}

Re: GPU für Übung11

Verfasst: 17. Jan 2012 23:04
von SupeRalF
Der Fehler bleibt!
Hast du vielleicht noch einen Lösungsvorschlag für mich? :wink:

Re: GPU für Übung11

Verfasst: 18. Jan 2012 08:55
von fbussjor
Ich hatte das gleiche Problem, bei mir gings durch auskommentieren von

Code: Alles auswählen

if(clGetDeviceIDs(cpPlatforms, CL_DEVICE_TYPE_GPU, 16, 0, &clDeviceCount) != CL_SUCCESS) {
		std::cout << "ERROR: Failed to query number of OpenCL capable GPUs!" << std::endl;
		return false;
	}
if(clDeviceCount == 0) {
		std::cout << "ERROR: No OpenCL capable GPUs found!" << std::endl;
		return false;
	}
und anschließend bei

Code: Alles auswählen

	cl_device_id * clDeviceIDs = new cl_device_id[clDeviceCount];
Die Größe des Arrays einfach auf 2 setzen.

Re: GPU für Übung11

Verfasst: 18. Jan 2012 10:12
von downsampling
Afaik haben Intel IGPs(die ja nur knapp 60-70% des GPU Markts ausmachen) keinen Support für die OpenCL API.

http://en.wikipedia.org/wiki/Intel_GMA