Hallo, habe eine Software, die mit OpenCL ab Version 1.1 läuft (schon auf anderen Rechnern getestet, funktioniert). Auf einem älteren Rechner, um den es hier geht, ist eine Nvidia 8600 GTS Grafikkarte eingebaut. Laut GPUZ ist sie voll OpenCL-fähig (ohne Versionsangabe). Bei Wikipedia steht, dass sie OpenCL-1.1-kompatibel ist (G80-GPU): https://de.wikipedia.org/wiki/Nvidia-GeForce-8-Serie#Grafikprozessoren Wenn ich aber die Software auf diesem Rechner starte, kommt folgende Fehlermeldung: (X) Der Prozedureinsprungspunkt "InitOnceExecuteOnce" wurde in der DLL "KERNEL32.DLL" nicht gefunden. Unter C:\Programme\NVIDIA Corporation findet sich ein Ordner mit dem Namen "OpenCL". Darin ist eine Datei mit dem Namen OpenCL.dll mit der Versionsnummer 1.0.0.0 Möglicherweise ist hier schon das Problem, weil ja für die Software die OpenCL-Version 1.1 benötigt wird. Die Graka kann aber offensichtlich hardwaremäßig auch 1.1 Hat jemand eine Idee, was man machen könnte, um OpenCL 1.1 auf der Nvidia-8600-Graka zum Laufen zu bringen? Schön wäre auch, wenn es eine Software gäbe, die auf einem Win-32bit-System die tatsächlich vorliegende OpenCL-Kompatiblität testen könnte (bis jetzt aber nichts gefunden, nur für 64bit).
Falsch ist das sie einen G80 hat, richtig ist das es ein G84 Chip ist und auch OpenCL 1.1 unterstützt. Wo ich aber vorsichtig wäre. Es sind "gerademal" 32 Stream Prozessoren und mit gerade mal 256MB auch nicht gerade mit üppig Speicher ausgestattet. In Zeiten wo aber Quadro Karten oder kleinere Fermi Karten gebraucht zu Schleuderpreisen unter 20€ gebraucht rausgehauen werden, wundert es mich das man sich heute überhaupt noch eine 8600GTS antut - und das auch noch mit OpenCL / CUDA.
Thoralf schrieb: > (X) Der Prozedureinsprungspunkt "InitOnceExecuteOnce" wurde in der DLL > "KERNEL32.DLL" nicht gefunden. Windoof zu alt. Die Funktion gab es erst ab Vista, also eben nicht für XP.
Thoralf schrieb: > Wenn ich aber die Software auf diesem Rechner starte, kommt folgende > Fehlermeldung: > (X) Der Prozedureinsprungspunkt "InitOnceExecuteOnce" wurde in der DLL > "KERNEL32.DLL" nicht gefunden. D.h.: Es hat mit der Grafikkarte oder deren Treiber rein garnix zu tun. Kernel32.dll ist Windows-Basis. Sehr wahrscheinlich ist einfach nur das Windows auf diesem System zu alt. Mit ein bissel Glück genügt es, dem System einfach mal alle verfügbaren Updates zu verpassen. Wenn nicht: Pech gehabt. Upgrade auf eine neuere Windows-Version fällig.
Danke für die Antworten! Auf dem Rechner ist auch noch ein Win10 drauf. Habe es damit probiert, aber da geht es auch nicht. Die CPU-Version läuft problemlos unter Win10 und XP (aber extrem langsam). Die GPU-Version, die OpenGL nutzt, startet nach dem Anklicken einfach nicht und versandet. Thoralf schrieb: > Unter > C:\Programme\NVIDIA Corporation > findet sich ein Ordner mit dem Namen "OpenCL". Darin ist eine Datei mit > dem Namen OpenCL.dll mit der Versionsnummer 1.0.0.0 Vielleicht haben die bei Nvidia wirklich die 1.0-Treiber statt der benötigten 1.1-Treiber eingebaut. c-hater schrieb: > Mit ein bissel Glück genügt es, dem > System einfach mal alle verfügbaren Updates zu verpassen. Das ist XP Prof. SP3 (damals) frisch von einer CD installier, da sind vermutlich nur sehr wenige Updates mit dabei gewesen...
Rene K. schrieb: > In Zeiten wo aber Quadro Karten oder kleinere Fermi Karten gebraucht zu > Schleuderpreisen unter 20€ gebraucht rausgehauen werden, wundert es mich > das man sich heute überhaupt noch eine 8600GTS antut - und das auch noch > mit OpenCL / CUDA. Über eine solche Kartenempfehlung würde ich mich sehr freuen :) Anforderungen: -halbwegs klein von der Aufbaugröße her -gebraucht unter 20Euro -kann CUDA (halbwegs neuere Version) -kann OpenCL (halbwegs neuere Version) -läuft unter Win10 -läuft unter WinXP -kein allzu großer Stromverbrauch
Wenns Dir vor allem um möglichst neu und wenig Stromverbrauch geht, versuch 'ne GTX 680/780 zu bekommen, oder irgendwas kleineres aus diesen Serien. Die Dinger sind im Standby/Desktop-idle recht sparsam und bieten aber auch Bumms wenns sein muß - wollen dann aber auch Strom sehen. Die Serien 480/580 sind nicht gerade stromsparend. Ich hatte eine GTX 480 als die aktuell waren, deswegen ist der Planet heute zwei Grad wärmer. Die beste Leistung dürfte 'ne alte Mining-Karte bieten, sowas wie eine P106, aber die kostet noch mehr als 20 Euro gebraucht und ist für nichts anderes als solche Berechnungen zu gebrauchen. Aber die Karten sind recht stromsparend, auch unter Last und noch ziemlich neu, also mit entsprechend hoher Rechenleistung.
openCL 1.1 gabs bei Nvidia ab Treiber 280.xxx oder so; GeForce-Treiber 332.21 sollte für XP und Deine Karte der Richtige sein; ob das funzt kann ich Dir nicht versprechen, aber n Versuch ist es Wert, dann kannst Du vielleicht in Ruhe nach ner besseren Graka suchen
Oha.. ich las grade das jemand sagt die 8800GTX sein NICHT openCL1.1 fähig.. genauere Angaben als GPUZ soll dazu der GPU caps viewer machen http://www.geeks3d.com/20130618/gpu-caps-viewer-1-18-1-videocard-information-utility-opengl-opencl-geforce-radeon-gpu/ (hab ich selber nicht getestet das Tool.. kann Dir also leider nix dazu sagen)
sid schrieb: > Oha.. ich las grade das jemand sagt die 8800GTX sein NICHT openCL1.1 > fähig.. Wo hast du das gelesen? Die verwendete Karte ist eine 8600GTS, aber so groß werden die Unterschiede hier wohl nicht sein. sid schrieb: > genauere Angaben als GPUZ soll dazu > der GPU caps viewer machen > http://www.geeks3d.com/20130618/gpu-caps-viewer-1-18-1-videocard-information-utility-opengl-opencl-geforce-radeon-gpu/ Danke für den Link! Also unter XP 32bit sagt GPUZ: voll Open-CL-1.1-fähig Der GPU Caps Viewer läuft leider nur unter 64bit. Unter Win10 sagt GPUZ: kein OpenCL, Treiber R342.01 Unter Win10 sagt GPU Caps Viewer: kein OpenCL
Thoralf schrieb: > Also unter XP 32bit sagt GPUZ: voll Open-CL-1.1-fähig Und der Treiber unter XP ist 340.52
Muss man für OpenCL eigentlich auch Zusatzsoftware wie DirectX10 oder NET Framework installieren?
Thoralf schrieb: > sid schrieb: >> Oha.. ich las grade das jemand sagt die 8800GTX sein NICHT openCL1.1 >> fähig.. > > Wo hast du das gelesen? Uhm mehr oder weniger Zusammengereimt. aus Computing Capabiltiy: https://developer.nvidia.com/cuda-gpus (8600 GTS und besagte 8800 GTX haben ComputingCapabilty 1.1) und diesem beitrag: https://devtalk.nvidia.com/default/topic/499998/cuda-programming-and-performance/opencl-v1-1-support-in-latest-drivers-new-drivers-with-opencl-v1-1-support/post/3572056/#3572056 Zitat: ################# One of the mandatory requirements for the device to support OpenCL 1.1 is to expose at least 32KB of local memory. So if GPU has only 16KB of on-chip local (shared) memory then the drivers' developers have two options: 1) Provide 32KB of local memory by emulating local memory with global one. 2) Support OpenCL 1.0 only for the device. But it might support language feature set of OpenCL 1.1, check CL_DEVICE_OPENCL_C_VERSION. Option 2 looks the best one and it seems it is the one implemented. Amount of local (shared) memory per compute unit (multiprocessor): - Compute Capability < 2.0: 16KB - Compute Capability >= 2.0: 48KB ################# Wenn also der Treiber die fehlenden 16KB lokalen Speicher nicht aus dem globalen Speicher emuliert, ist OpenCL 1.1 nicht drin. Mach mal n systemwiederherstellungspunkt und nen Treiber downgrade auf kurz nach dieser 280.19 Beta http://www.gpu-tech.org/content.php/162-Nvidia-supports-OpenCL-1.1-with-Geforce-280.19-Beta-performance-suffers Je älter der Treiber, desto "neuer" Deine hardware ihm ggü, desto höher die chance dass nvidia Dich noch nicht zum neukauf auffordern will ;) Also zB der hier: https://www.nvidia.com/de-de/drivers/windows/280_26/winxp-280-26-whql-driver-de/ mit ein bisschen Glück haben die nur bei späteren Treiberd den Emulator für den Speicher wieder entfernt ;)
Danke für die Erklärungen! sid schrieb: > Mach mal n systemwiederherstellungspunkt und nen Treiber downgrade auf > kurz nach dieser 280.19 Beta > http://www.gpu-tech.org/content.php/162-Nvidia-supports-OpenCL-1.1-with-Geforce-280.19-Beta-performance-suffers Habe den Nvidia-Treiber deinstalliert und dann den hier installiert: 280.26-desktop-winxp-32bit-international-whql.exe Es kommt dann leider wieder diese Fehlermeldung, die ich schon ganz oben erwähnt habe, wenn die OpenCL-Software gestartet wird: X) Der Prozedureinsprungspunkt "InitOnceExecuteOnce" wurde in der DL "KERNEL32.DLL" nicht gefunden.
Habe jetzt einfach als "Referenzobjekt" ein älteres Notebook rangezogen. Es hat eine NVIDIA GeForce GT 220M eingebaut (Grafikchip ist hier ein GT216). https://de.wikipedia.org/wiki/Nvidia-GeForce-200-Serie Die GT 220M ist von Mitte 2009 und damit ca. 2 Jahre jünger als die GTS8600. Mit ihrem alten Treiber von 2009 war sie unter Win7 nicht OpenCL-fähig. Habe dann den neusten Treiber installiert (ForceWare342.01 WHQL Win7 64b) Damit wird die Karte nun definitiv als OpenCL-fähig eingestuft von GPU-Z, GPU-Caps-Viewer und CL-Test. Bei GPU-Caps-Viewer wird sie auf der Startseite als OpenCL-1.0 eingestuft, dann unter dem Reiter 'Open CL' als "OpenCL 1.1 Cuda 6.5.51 FULL_PROFILE". Local Mem. 16kB, konstant Buffer 64kB. Wobei das 1.1 sich hier auch auf das Cuda beziehen kann. Jedenfalls laufen die meisten der enthaltenen grafischen OpenCL-Testfunktionen problemlos (glaube bis auf zwei). Mit CL-Test wird die Karte als "OpenCL 1.0 Cuda" eingestuft. Als praktische Testsoftware habe ich dann das Go-Programm Leela11 gewählt, es benötigt OpenCL 1.1. https://www.sjeng.org/leela.html Dort wird verlangt:
1 | What do I need to run the "GPU Accelerated" version? |
2 | |
3 | You need a video card with OpenCL 1.1 (or later) capability. This is supported on all recent AMD and NVIDIA cards. Make sure the latest drivers for the video card are installed. The detected video card can be seen in the Help->About menu. |
Wenn ich Leela11 in der OpenCL-Version starte, erscheint die Fehlermeldung
1 | *** caught unhandled unknown exception terminating |
Muss man nun davon ausgehen, dass die GeForce GT 220M nur OpenCL1.1 kann? sid schrieb: > Wenn also der Treiber die fehlenden 16KB lokalen Speicher nicht aus dem > globalen Speicher emuliert, ist OpenCL 1.1 nicht drin. Wie ein paar Absätze weiter oben erwähnt hat sie anscheinend auch nur Local Mem. 16kB.
sid schrieb: > Mach mal n systemwiederherstellungspunkt und nen Treiber downgrade auf > kurz nach dieser 280.19 Beta > http://www.gpu-tech.org/content.php/162-Nvidia-supports-OpenCL-1.1-with-Geforce-280.19-Beta-performance-suffers Sicher, dass nicht der 280.19-Treiber verwendet werden soll? http://www.gpu-tech.org/content.php/162-Nvidia-supports-OpenCL-1.1-with-Geforce-280.19-Beta-performance-suffers
Ich will das jetzt von meiner Seite hier nicht überladen, aber das könnte zu der Frage passen, wie man die Nvidia GeForce 220M im Notebook treibermäßig auf OpenCL 1.1 bekommt. https://www.nvidia.com/en-us/geforce/forums/game-ready-drivers/13/161857/any-opencl-drivers-version-11-or-higher-in-nvidia-/ 326.80 = OpenCL 1.1 CUDA 4.2.1 327.23 = OpenCL 1.1 CUDA 4.2.1 331.40 = OpenCL 1.1 CUDA 6.0.1 Wobei: https://www.nvidia.com/en-us/geforce/forums/discover/161684/what-is-the-version-of-opencl-in-the-bundle-323-27-/
1 | the nvidia installable client driver for OpenCL are nvopencl.dll and nvopencl32.dll which return the following |
2 | |
3 | 331.40 is OpenCL 1.1 CUDA 6.0.1 |
4 | 327.23 is OpenCL 1.1 CUDA 5.5 |
5 | |
6 | |
7 | the OpenCL and Opencl64 dll's contained in the driver are khronos supplied 1.0 dll's. |
Wird da jemand schlau draus?
Nunja, wenn der Treiber den fehlenden Speicher nicht emuliert, dann haste eben keine Chance auf OpenCL 1.1 Du kannst die beta gerne ausprobieren, aber beta Treiber haben häufig Schwächen.. der .26 ist so nah am .19, dass ich auch vermuten wollte, dass es reine Bugfixes waren bis dahin. Naja und verwechsle nicht Karte und Treiber bitte.. Na klar wird mit OpenCL UNfähigem Treiber die Karte selbst als untauglich eingestuft, immerhin gibt es dann ja keine OpenCL Schnittstelle die die Software abfragen kann nach OpenCL Version. Erst der OpenCL Treiber (und damit die Schnittstelle zwischen Software und Hardware) lassen die Fähigkeit erkennen (und macht sie damit anzeigbar) Andersherum kann ein Treiber sehr wohl OpenCL 1.1 unterstützen für Chips mit 32KB oder mehr lokalem Speicher und nur OpenCL 1.0 für Modelle mit 16KB Das ändert nichts and der Treiber designation 331.40 is OpenCL 1.1 CUDA 6.0.1 327.23 is OpenCL 1.1 CUDA 5.5 Denn die ist unabhängig vom eigentlichen Grafikchip Ich fürchte also Du wirst um eine neue Grafikkarte nicht herumkommen wenn Du OpenCL 1.1 brauchst. Eventuell hast Du an einer älteren version des Programms 8das mit OpenCL 1.0 auskommt vielleicht) mehr Freude. (wieder ein Grund weswegen ich Updates immer skeptisch gegenüber stehe [ausser virendefinitionen ;)])
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.