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