CUDA
...czyli rzecz o obliczeniach na kartach graficznych
Kanał informacyjny
Kodowanie Huffmana

Opis problemu

Opis idei kodowania Huffmana można znaleźć np. w Wikipedii: English, Polski. Ponieważ kodowanie Huffmana polega na utworzeniu dla znaków odpowiednich słów kodowych, których długość jest odwrotnie proporcjonalna do prawdopodobieństwa wystąpienia znaków, więc najważniejszą rzeczą jest policzenie owych prawdopodobieństw. A prawdopodobieństwa te można obliczyć w oparciu o histogram znaków, czyli policzenie ile razy każdy znak wystąpił. I na początek właśnie proces tworzenia histogramu przeniesiemy na kartę. Potem, być może, resztę algorytmu.

Histogram - etap 7

Implementujemy algorytm tworzenia kodów na GPU. Poprawiamy algorytm sortowania.

Histogram - etap 6

Rozdzielamy kod CPU i GPU na dwa niezależne projekty. Implementujemy algorytm budowy drzewa na GPU. Wymyślamy algorytm tworzenie kodów z drzewa Huffmana na GPU (opis metody tworzenia kodów na GPU by fulmanp).

Histogram - etap 5

Implementujemy dwulistowy algorytm tworzenia drzewa na CPU (patrz kod w HuffmanCPUPartTest01.c). Zaczynamy implementować tworzenie drzewa na GPU (opis metody tworzenia drzewa na GPU by fulmanp).

Histogram - etap 4

Dodano funkcje sortujące tablicę na GPU (opis metody sortowania by fulmanp).

Histogram - etap 3

Wersja programu działająca na CPU i GPU w oparciu o wiele wątków (histogramV2) oraz pamięć współdzieloną (histogramV3).

Histogram - etap 2

Wersja programu działająca na CPU i GPU w oparciu o jeden wątek. Dodano pomiar czasu.

Histogram - etap 1

Wersja programu działająca na CPU i GPU w oparciu o jeden wątek.

Katedra Analizy Matematycznej i Teorii Sterowania, Uniwersytet Łódzki, Wydział Matematyki i Informatyki, Copyright by fulmanp, 2011