Forum: Digitale Signalverarbeitung / DSP / Machine Learning Einfach handhabbare Umgebung für GRAKA-Berechnung


von Jenaer (Gast)


Lesenswert?

Ich bin auf der Suche nach einer möglichst einfach erlernbaren und 
handhabbaren Entwicklungs-Umgebung für das parallele Berechnen mit 
Grafikarten. Umgeschaut habe ich mich bei NVIDA und AMD, die soetwas 
anbieten.

Welche Entwicklungsumgebung wäre da für einen Anfänger in der Materie 
das Beste? Ich habe Erfahrungen mit DSPs, MicroControllern und 
Windows-Programmierung, Visual Studio und CodeComposer z.B.

Mir geht es zunächst um die Möglichkeit, einfache, aber umfangreiche 
Berechnungen, die ich in MATLAB erzeuge, mit Varianten zu berechnen. 
Dazu habe ich fertige C-Algorithmen, die momentan als einfaches 
C-Programm laufen, sich Daten von der Platte holen und die Ergebnisse 
ausgeben. Ich arbeite sozusagen offline. MATLAB wird nur hin und wieder 
benutzt, um an der Physik zu schrauben und ein bischen zu simulieren.

Massgeblich ist letztlich der Algo in C. Der wird mit Szenarien 
gefüttert, um ihn zu optimieren. Am Ende soll der Algo auch in einem PC 
laufen, d.h. er bekommt dann Daten in Echtzeit und rechnet parallel 
mehrere Variationen desselben Szenarios aus. Die Varianten unterscheiden 
sich etwas in den Parametern, die Ergebnisse sind aber ziemlich 
abweichend, daher kann das nicht analytisch gemacht werden, sondern muss 
"durchgespielt" werden. Vom Prinziop ist es ähnlich einer 
Wettersimulation ausgehend von Messungen.

von Jenaer (Gast)


Lesenswert?

Vielleicht noch ein paar Randbedinungen:

Ich weiss, dass MATLAB das automatisch integriert anbietet und auch 
Infrastruktur bereitstellt. Mit MATLAB möchte ich aber ausdrücklich 
nicht arbeiten, um nicht von denen abhängig zu sein. Am liebsten wäre 
mir ein OpenSource System. Bevor ich da was ausprobiere, dachte ich, 
mich erstmal umzuhören, ob wer Tipps geben kann.

Ich verspreche mir von der parallelen Berechnung eine ganze Reihe von 
Vorteilen. Wenn möglich und machbar würde ich gerne einen ganzen PC mit 
Leistungskarten vollknallen. Wäre weniger eine Kostenfrage, ein 
Finanzier ist verfügbar :-)

von Karl (Gast)


Lesenswert?

Schau dich mal bei sgminer & co. um, die haben die komplette 
Infrastruktur für mehrere Karten (ati/amd) implementiert. Für nvidia 
findest du in diese Richtung auch etwas.

von Dussel (Gast)


Lesenswert?

Suchst du sowas wie OpenCL? Das ist halt keine 'Entwicklungsumgebung', 
die kannst du dir frei aussuchen.

von Irgendwer (Gast)


Lesenswert?

Die üblichne verdächtigen:
http://de.wikipedia.org/wiki/General_Purpose_Computation_on_Graphics_Processing_Unit#Programmierung
http://en.wikipedia.org/wiki/CUDA
http://en.wikipedia.org/wiki/OpenCL


Bevor du aber anfängt dir über die Programmierung von GraKas Gedanken zu 
machen wäre es vielleicht nicht verkehrt sich erstmal mit den Grundlagen 
zu beschäftigen welche Randbedingungen für die verschiedenen Arten von 
Parallelisierung es so alles gibt und dann zu überlegen welch bei deinen 
Daten und der gewünschten Berechnung überhaupt Vorteile bringt.

Irgendwie liest sich das bei dir nicht so als würde dich der bei GraKas 
gebräuchliche SIMD Ansatz überhaupt weiterbringen:
http://en.wikipedia.org/wiki/Flynn's_taxonomy

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
Noch kein Account? Hier anmelden.