aufgabe1

Donnerstag, 18. September 2008

3. Exzerpt

Titel: Efficient Histogram Algorithms for NVIDIA CUDA
Compatible Devices

Quelle: Exzerpt3 (pdf, 207 KB)

Preview:
Die Publikation hat eine klare Gliederung und Diagramme. Es gibt Code-Beispiele.

Fragen:
  1. Welche Probleme verhindern eine effiziente Implementierung der Berechnung einer Histogramm?
  2. Welche Techniken haben effiziente Berechnung ermöglicht ?
Read:
    zu
  1. Kleine Größe des Shared-Speichers, fehlen der nativen Mechanismen zur globalen und lokalen Synchronisierung, fehlen der nativen atomaren Updates verhindern eine effiziente Implementierung
  2. Es werden zwei Methoden vorgestellt zur Lösung des Problems. Die erste Methode simuliert atomare Updates. Der Performance von der ersten Methode ist aber schlecht, wenn die Daten eine degradierte Verteilung besitzen. Aus diesem Grund gibt es eine zweite Variante, die diesen Umstand besser löst, in dem Ergebnisse im globalen Speicher abgelegt werden.
Reflect:
Die neuste Generation der NVIDIA-Grafikkarten bietet die Möglichkeit des Warp-Votings.
Interessant ist zu untersuchen, ob dieser Mechanismus das Problem einfacher löst.
Des weiteren hat die neueste Generation der Hardware atomare Operationen, die das Problem lösen.

Recite:
CUDA-Architektur bietet keine globale Synchronisationsmechanismen für die parallel laufende Prozesse, des weiteren fehlt die Unterstützung der atomaren nicht unterbrechbaren Operationen. Dies verhindert die effektive Realisierung der Berechnung einer Histogramm aus den gegebenen Daten.
Der Autor schlägt zwei Lösungsansätze vor. Der erste implementierte eine Implementierung der globalen atomaren Operationen in Software. Leider wird diese Methoden sehr langsam, wenn die Daten eine schwache Varianz aufweisen. Für diesen speziellen Fall gibt es eine zweite Methode. Sie lagert alles ins globale Speicher aus. Und zwar, jeder Thread-Block hat einen eigenen Speicherbereich. Aus diesem Grund braucht man am Ende eine parallele Reduktion, die alle Ergebnisse zusammenfasst.
Der Autor glaubt, dass die vorgeschlagenen Methoden das Problem lösen, aber hofft, dass zukünftige Versionen von CUDA alle fehlenden Mechanismen unterstützen, damit das Programmieren dafür leichter wird.

Review:
Diese Publikation beschreibt Umsetzung eines der grundlegenden Algorithmen der Bildverarbeitung. Sie spricht die Probleme der CUDA-Architektur und bietet interessante Lösungsansätze. Die präsentierten Ergebnisse und gute und kompakte Beschreibung der CUDA-Architektur können sich gut in die Ausarbeitung integrieren.

Mittwoch, 17. September 2008

2. Exzerpt

Titel: Optimization Principles and Application Performance Evaluation
of a Multithreaded GPU Using CUDA

Quelle: Exzerpt2 (pdf, 314 KB)
Preview:
Es hat eine klare Gliederung und viele Quell-Verweise.
Tabellen und Diagramme begleiten und ergänzen den Text.

Fragen:
  1. Tiefe Einblicke in die CUDA-Architektur
  2. Was sind die Programm-Optimierungsstrategien?
  3. Welche Resultate können dank den Optimierungen erzielt werden?
Read:
    zu
  1. Artikel bietet die nötigen Einblicke und liefert Verweise auf die weitreichende Literatur. Die Eigenschaften werden deutlicher durch Vergleiche mit vorherigen und gegenwärtigen parallelen Architekturen
  2. zu
  3. Es werden die 4 grundlegende Strategien genannt und anhand vieler Beispiele erläutert.
  4. zu
  5. Durch die massive Parallelisierung könnten alle getestete Programme beschleunigt werden, Auch dann, wenn diese nicht für die CUDA-Architektur geeignet sind.
Reflect:
Der Autor ist sehr detailliert in der Beschreibung der Architektur und Optimierungsverfahren, was ermöglicht selbstständig selbige durchzuführen, bzw. ein Programms zu analysieren, um zu erwägen, ob die Optimierungen nötig sind.

Recite:
Es gibt keine universelle Optimierungsstrategie. Es hängt von dem Programm ab, was gemacht werden muss und im Grunde genommen geht es immer um einen Kompromiss.
Man soll versuchen möglichst viele Threads zu starten, damit die Hardware ausgelastet wird.
Anzahl der Threads, die gleichzeitig laufen können, hängt von der Anzahl der Register, die von den Threads benutzt werden. Wenn man aber zu wenig Register verwendet oder auf Shared-Speicher verzichtet, wo es notwendig wäre, dann würde dass Programm zu langsam, wegen zu hohen Zugriffe auf den globalen Speicher. Deswegen muss immer ein Kompromiss getroffen werden.

Review:
Das ist eine sehr gute wissenschaftliche Publikation, die mir bei der Erstellung der Ausarbeitung viel nützt. Es bietet gute Beschreibung des Themas und bietet zahlreiche verweise (25 Quellen) auf weitere Dokumente, die meisten davon sind für mich relevant.
Der Autor beleuchtet nicht nur Vorteile, sondern auch Nachteile der Thema.
Artikel ist sehr gut strukturiert. Es ist erstaunlich wie viel Informationsgehalt man in jeden Wort und Satz stecken kann.

Dienstag, 16. September 2008

1. Exzerpt

Titel: Scalable Parallel
PROGRAMMING

Quelle: Exzerpt1 (pdf, 762 KB)

Preview:
Die Publikation sieht wie ein Artikel aus einer Computer-Zeitung.
Es hat viele bunte Diagramme. Gliederung spricht für sich.

Fragen:
  1. Was sind die Eigenschaften von der CUDA-Architektur?
  2. Wie sieht die CUDA-Programmiermodell aus?
  3. Was sind die Besonderheiten der Programmierung für CUDA
  4. welche Beispiele werden gemacht?
  5. wie bewerten die Autoren CUDA?
  6. In wie weit ist CUDA ein Supercomputer?
  7. Tesla-Architektur
Read:
    zu
  1. Im Artikel werden die wesentlichen Aspekte der CUDA-Architektur vorgestellt und erklärt
  2. zu
  3. Es wird gesagt, dass CUDA-Programmiermodell der SPMD-Programmiermodells sehr ähnelt und es wird ein Vergleich mit weiteren Implementierungen des Modells gemacht
  4. zu
  5. Die Autoren zeigen die Restriktionen, die für die Cuda-Architektur gelten.
  6. zu
  7. Es werden drei Code-Beispiele vorgestellt, die Lösung der Standart-Probleme zeigen
  8. zu
  9. Autoren versuchen zu belegen, dass CUDA das parallele Programmierung entscheidend erleichtert und es ermöglicht Programme zu schreiben, die Hardware unabhängig arbeiten können.
  10. Diese Frage wird durch den fachlichen Teil des Artikels beschrieben.
  11. Tesla-Architketur wird im fachlichen Teil des Artikels beschrieben
Reflect:
Leider werden die Probleme nicht angesprochen. z.B dass es schwer ist, den CUDA-Code zu debuggen oder zu profilen, da es direkt auf der Grafikkarte läuft.
Oder dass nicht alle Algorithmen sich effizient auf die Tesla-Architektur abbilden lassen und sind deswegen unter Umständen deutlich langsamer, als die CPU-Implementation.
Des weiteren wird außer Acht gelassen, dass es sehr viel Zeit kostet ein Programm für die CUDA-Architektur zu optimieren, bzw. wie schwierig es ist.

Recite:
CUDA bietet die Möglichkeit skalierbare parallele Programme ganz einfach zu erstellen. Dem Programmierer wird die aufwändige Verwaltung der Parallelisierung abgenommen. Er braucht nur den seriellen Part auszuprogrammieren und Laufzeitparameter festlegen.

Review:
Der Artikel ist gut strukturiert.
Er liefert kompakt eine Einführung über Cuda-Programierung und -Architektur. Es werden wie Laien so auch Fachleute angesprochen. Technische und nicht-technische Teile sind klar voneinander getrennt.
Es werden verwandte Projekte genannt.
Dieser Artikel ist vertrauenswürdig, da es in einem wissenschaftlich renommierten Zeitschrift erschienen. Leider geht es nicht genug in die Tiefe.
Bestimmte Problembereiche der CUDA wurden nicht beleuchtet.
Im Grossen und Ganzen wird dieser Artikel eine sehr große Hilfe, bei der Erstellung der Ausarbeitung, sein, da es einen guten Überblick verschafft.

Montag, 15. September 2008

Zeitplan

Zeitplan

Sonntag, 14. September 2008

Analyse des Themas

Mindmap:
Mindmap

Mindmap Version 2:
Mindmap2

Ziergliederung des Themas:
parallele Bildverarbeitung auf Grafikkarten von Nvidia mit CUDA am Beispiel einiger Aufgaben

Befehlswörter: keine
Hauptwörter: Bildverarbeitung
Zusatzwörter: auf Grafikkarten von Nvidia mit CUDA, parallele, am Beispiel einiger Aufgaben

Samstag, 13. September 2008

Wahl der Arbeitshypothese

Die Arbeitshypothese lautet:
Mit CUDA und Nvidia Grafikkarten kann man bestimmte Aufgaben der Bildverarbeitung effizient lösen.

Freitag, 12. September 2008

Wahl des Themas

Ich habe mich für das Thema »parallele Bildverarbeitung auf Grafikkarten von Nvidia mit CUDA am Beispiel einiger Aufgaben« entschieden.

Dienstag, 9. September 2008

Wahl der Zielpublikum für die wissenschaftliche Publikation

Im Allgemeinen besteht das Zielpublikum meiner wissenschaftlichen Publikation mit der Thema "parallele Bildverarbeitung auf Grafikkarten von Nvidia mit CUDA am Beispiel einiger Aufgaben " aus Leuten die bis jetzt wenig oder gar nichts über Bildverarbeitung mit CUDA wissen. Ich erwarte mindestens eine Interesse in das Thema einzusteigen. Ich erwarte Verständnis der Grundlagen der Mathematik, die hinter der Bildverarbeitung stecken.

Mit dieser Arbeit strebe ich folgende Zielgruppen an:
Prüfer:
das ist Frau Dr. Burger. Sie wird meine Publikation hinsichtlich ihrer Wissenschaftlichkeit
überprüfen. Ich erwarte Fachkenntnis in dem Gebiet des Themas eher gering.
Das ist einer der Studenten des Kurses, der meine Arbeit probe liest.
Als Folge muss ich verständlich und sachlich argumentieren, damit meine Aussagen auch für Leute, die sich nicht mit dem Stoff auskennen klar überprüfbar sind.

Studenten des Kurses
Studenten, die meine Arbeit lesen werden. Fachkenntnis hängt von dem jeweiligen Studenten ab. Sie werden die Arbeit nach Interesse bzw. nach Aufgabenstellung der Veranstaltung sich anschauen. Das ist einer der Gründe würde meiner Ausarbeitung eine Struktur zu geben.

Laien und Gelegenheitsleser:
Sie werden selektiv meine Arbeit lesen, um sich die Informationen zu besorgen die Sie interessieren. Ich erwarte nicht, dass Sie meine Arbeit gründlich lesen werden oder Fachkenntnisse haben es kompetent zu beurteilen.

Fachleute
Fachleute könnten zufällig auf mein Blog dank Google und Co. stoßen.
Sie würden kritisch mein Blog lesen und es könnte sogar vielleicht eine interessante
Diskussion entstehen. Ich sollte deswegen auch das selektive Lesen ermöglichen.

parallele Bildverarbeitung auf Grafikkarten von Nvidia mit CUDA am Beispiel einiger Aufgaben

Dank CUDA sind die Grafikkarten von NVIDIA für bestimmte Aufgaben der Bildverarbeitung gut geeignet, und meistern diese deutlich schneller im Vergleich mit herkömmliche modernen Prozessoren.

User Status

Du bist nicht angemeldet.

Aktuelle Beiträge

Rohfassung(aktualisiert)
rohfassung (pdf, 438 KB)
sleon - 3. Nov, 00:01
vorfreude
endlich eine Aufarbeitung von CUDA in Deutsch.... freu...
Masterkey - 26. Okt, 15:23
Argumentationsprinzip
Ich habe für die Argumentationsprinzip Rhombus entschieden,...
sleon - 6. Okt, 13:49
Gliederung
1)Einleitung 2)Cuda-Archi tektur 2.1)Einleitung 2.2) Tesla-Grafikkarten 2.3)Thr ead-Hierarchie 2.4)Speiche r-Arten 2.5)Abstraktion...
sleon - 5. Okt, 23:53
Mindmap gekürzt
sleon - 5. Okt, 23:35

Links

Suche

 

Status

Online seit 5920 Tagen
Zuletzt aktualisiert: 12. Nov, 20:34

Credits


aufgabe1
aufgabe2
aufgabe3
Profil
Abmelden
Weblog abonnieren