CUDA-Optimization of Lame-MP3-Encoder

Transcrição

CUDA-Optimization of Lame-MP3-Encoder
SS08, LS12, Friedrich-Alexander-Universität Erlangen
Florian Hänel, Frederic Pollmann
HS Multicore Architectures and Programming
LAME-3.97 MIT
CUDA
1
UNSER PROJEKT
nVidia-Contest: Erweiterung von lame-3.97 mit
CUDA zur Beschleunigung des MP3-Kodiervorgangs
leider nur USA/Kanada
läuft noch bis 25.07.2008
Bereitstellung von lame-3.97 mit erster Anpassung
an CUDA (Makefile, Beispielkernel, Aufruf des
Kernels)
2
UNSERE
HERANGEHENSWEISE
Verwendete Systeme:
Windows XP Professional 64bit mit Microsoft
Visual Studio 2003
Mac OS X 10.5 mit gnu-Toolchain (gcc 4.0.1/4.2.2)
Unser Plan:
Download des Quelltextes
Ansehen, was und wo nVidia eingegriffen hat
Erweitern
3
JEDOCH...
Große Probleme beim Einrichten in Visual Studio
Zusammenspiel von XP64, Visual Studio, CUDA
und existierendem Projekt nicht ganz einfach
Linker in Mac OS X findet Symbole nicht
Wrapper-Funktionen in .cu-Dateien
Schon bei der Beispielanpassung von nVidia selbst
Beispiele aus CUDA-SDK lassen sich übersetzen
Identisch konfiguriertes Projekt unter Linux auch
4
ZUDEM...
Sourcen von lame sind nicht gut dokumentiert
Psychoakustische Komprimierung neues Feld für uns
teilweise hochoptimierter, daher schlecht
verständlicher Code
Beispielanpassung von nVidia ist auskommentiert
Fehler beim Linken erst, als wir eigenen Kernel
aufgerufen haben
Viel Fehlersuche in die falsche Richtung...
5
DAHER:
Leider keine Ergebnisse von uns!
MORAL
Was haben wir gelernt?
Einstieg in neue Thematik besser mit nichtexotischen Tools und Vorkenntnissen
Wenn beides fehlt, kann es schwer werden
Warum haben wir es versucht?
Herausforderung: Wir wollten mal sehen, wie weit
wir kommen
und wir hatten nicht mit den technischen
Problemen gerechnet
7
QUELLEN
Zum selber ausprobieren:
http://cudacontest.nvidia.com/index.cfm?
action=contest.contest&contestid=2
Für Download ist ein Account bei nVidia notwendig
8
FRAGEN,
ANMERKUNGEN,
VORSCHLÄGE?
9