Mit PureBasic GPU nutzen

Für allgemeine Fragen zur Programmierung mit PureBasic.
pyromane
Beiträge: 276
Registriert: 09.09.2010 14:10

Mit PureBasic GPU nutzen

Beitrag von pyromane »

Ich bin schon seit längerem daran interessiert die Grafikkarte für Berechnungen zu nutzen. In High-End Karten steckt undglaubliche Power. Zum einem in der enorm schnellen GPU zum anderen in dem Ram mit einem unglaublichen Takt. Wie kann man das nutzen? Bei Nvidia gibt es ja CUDU, bei AMD nicht. Ich habe eine AMD Radeon HD 6950 und würde gerne mal etwas damit experimentieren. Für eure Hilfe wäre ich euch sehr dankbar.

Euer pyromane

EDIT: Danke RSBasic. Ich wusste nicht genau ob ich in Offtopic oder Allgemein gehen soll. Vielen Dank!
__________________________________________________
Thread verschoben
Offtopic>Allgemein
19.03.2011
RSBasic
PureBasic 5.21 LTS auf Windows 7 x64 (Intel i5 2500K, 8GB Ram, Nvidia GTX 780)
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Re: Mit PureBasic GPU nutzen

Beitrag von DarkDragon »

Also es kommt darauf an was genau du tun willst. Willst du lediglich 2 riesige Datensätze miteinander verrechnen oder willst du komplexe Programme damit ausführen?

Einerseits gäbe es da sowas:
http://www.purebasic.fr/german/viewtopi ... it=GPUCalc

Andererseits ist OpenCL draußen und das funktioniert mit nVidia und ATi gleichermaßen. Du musst es lediglich wrappen.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8807
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Mit PureBasic GPU nutzen

Beitrag von NicTheQuick »

Man sollte dazu sagen, dass das Rechnen mit Grafikkarten nicht vergleichbar ist mit "normaler" Programmierung auf der CPU.
Am Beispiel CUDA muss man sich mit dem Speichermodell auseinander setzen, das in verschiedene hierarchisch strukturierte Ebenen aufgeteilt ist, die nicht oder nur bedingt miteinander kommunizieren können. Die einzelnen zur Verfügung stehenden Cores haben dementsprechend auch immer nur Zugriff auf einen kleinen Teil des Speichers und wenn ich mich jetzt nicht arg täusche kann man nicht jedem Core einen anderen Programmcode geben, sondern ein und der selbe Programmcode läuft immer gleichzeitig auf mehreren Cores, die allerdings alle auf einem anderen Speicher arbeiten. Außerdem sind die GPUs keine vollständigen CPU. Die GPUs können im Grunde nur rechnen. Mit JUMPs hin und her springen kannst du vergessen. Dazu zählen auch Bedingungen.

Da ich selbst noch nicht das CUDA-Seminar an der Uni gemacht habe, kann ich hier nur erzählen, was ich so aufgeschnappt habe. Natürlich kann sich da einiges geändert haben und ich weiß auch nicht in wie fern OpenCL das ganze macht. Vielleicht bietet es ja auch gleich mehr Möglichkeiten an, die entsprechenden auf CUDA gewrappt werden.

Bleibt nur noch eins zu sagen. Nutze dafür kein PureBasic. Schau dir lieber gleich fertige Beispiele für CUDA an. Diese sind meistens in C++ geschrieben. Da kannst du gleich noch passende Compiler verwenden, die dir deinen Code hübsch optimieren können. Und die Möglichkeit das ganze in DLLs auszulagern und von PB nutzen zu lassen hast du dann immer noch. Die Einarbeitung ist aber das schwerste. Das möchte ich auch nicht ohne Unterstützung lernen wollen. Ich warte jetzt mal ab, ob es demnächst wieder ein Seminar dazu gibt. :)
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Re: Mit PureBasic GPU nutzen

Beitrag von DarkDragon »

Er will kein CUDA .. er hat 'ne ATi. Desshalb kann er auch OpenCL mit PureBasic verwenden :lol: .
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8807
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Mit PureBasic GPU nutzen

Beitrag von NicTheQuick »

Das hab ich schon verstanden. :D

Aber auch bei OpenCL gibt es ein komplizierteres Speichermodell und Dinge, auf die man achten muss. Man kann nicht einfach wild PB-Code schreiben und glauben, dass er dann auf der GPU läuft. :wink:

Ich will ja eigentlich nur sagen, dass es nicht ganz so einfach ist. CUDA, FireStream und OpenCL sind alles keine leichte Kost, wenn man es effizient verwenden will. Dazu braucht man auch noch ein bisschen Verständnis zur nebenläufigen Programmierung und natürlich Algorithmen, die sich parallelisieren lassen. Sonst bringt das ja alles nichts. :wink:
pyromane
Beiträge: 276
Registriert: 09.09.2010 14:10

Re: Mit PureBasic GPU nutzen

Beitrag von pyromane »

Ich möchte Intesive Rechnungen auslagern. Ich habe das ganze erst einmal gesehen, und das war bei einem Bruteforce Programm wobei ich glaube das das ganze dort mit CUDA lief. Nur bei solchen Anwendungen macht GPU Auslagerung wirklich einen Sinn. Ich werde mir das Projekt von DarkDragon mal genauer ansehen.
PureBasic 5.21 LTS auf Windows 7 x64 (Intel i5 2500K, 8GB Ram, Nvidia GTX 780)
Benutzeravatar
TomS
Beiträge: 1508
Registriert: 23.12.2005 12:41
Wohnort: München

Re: Mit PureBasic GPU nutzen

Beitrag von TomS »

pyromane hat geschrieben:Bruteforce
Hab ich's mir doch gedacht.
Wollte schon posten, dass er nur das im Sinn haben kann. Schließlich ist er Pyromane/JENS.
Aber nein. Wartste mal, vielleicht bessert er sich ja.
Nix war's :freak: :iamwithstupid:
Benutzeravatar
PMV
Beiträge: 2765
Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg

Re: Mit PureBasic GPU nutzen

Beitrag von PMV »

Ohne ihn in Schutz nehmen zu wollen ... er sprach von "gesehen" ...
und das er sich damit beschäftigt hat ist hier wohl jedem klar, also
ist diese Aussage keine unbekannte neue Information. :wink:
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-
Benutzeravatar
TomS
Beiträge: 1508
Registriert: 23.12.2005 12:41
Wohnort: München

Re: Mit PureBasic GPU nutzen

Beitrag von TomS »

Na, das nicht.
Aber manchen Leuten ist gar nicht aufgefallen, dass es sich bei pyromane um Jens handelt.
pyromane
Beiträge: 276
Registriert: 09.09.2010 14:10

Re: Mit PureBasic GPU nutzen

Beitrag von pyromane »

Denen Leuten, denen das nicht aufgefallen ist schenke ich eine Brille ;-)
Wie gesagt gesehen habe ich es mal bei so einer Software. Selbst entwickeln will ich keine da es schon sehr gute gibt. Wieso das Rad neu erfinden? Nein mir geht es erst einmal nur ums experimentieren und um, wie auch schon bei DarkDragon einfach mal die Geschwindigkeit herauszubekommen.
PureBasic 5.21 LTS auf Windows 7 x64 (Intel i5 2500K, 8GB Ram, Nvidia GTX 780)
Antworten