Lista
zadań nr 4N
Uwaga! W przypadku tej listy słuchacz rozwiązuje tylko jedno, wybrane zadanie!
Zadanie 2 (4 pkt)
Napisz program wczytujący plik w formacie BMP (wykorzystaj gotowe narzędzia,
np. QDBMP)
i przekształcający zapisany w nim obraz kolorowy na obraz w skali
szarości; zaimplementuj rozwiązanie z użyciem CPU, a następnie
wykorzystaj infrastrukturę CUDA do wykonania konwersji na maksymalnej
liczbie piksli jednocześnie; zapisz przekształcony plik pod nową nazwą.
Dokonaj pomiarów czasu konwersji w obu wariantach dla dużych (min.
1024x1024 px). Upewnij się, że oba pliki wyjściowe (ten z CPU i ten z
GPU) są identyczne.
Zadanie 3 (5 pkt)
Napisz program wczytujący plik w formacie BMP
(wykorzystaj gotowe narzędzia, np. QDBMP)
i przekształcający zapisany w nim obraz kolorowy poprzez zaaplikowanie
filtru medianowego 3x3; zaimplementuj rozwiązanie z użyciem CPU, a
następnie wykorzystaj infrastrukturę CUDA do wykonania konwersji na
maksymalnej liczbie piksli jednocześnie; zapisz przekształcony plik pod
nową nazwą. Rozważ konieczność użyj synchronizacji między wątkami.
Dokonaj pomiarów czasu konwersji w obu wariantach dla dużych (min. 1024x1024 px)
obrazów.
Upewnij się, że oba pliki wyjściowe (z CPU i z GPU) są identyczne.
Uwaga: w celu poprawnego łącznego skompilowania pliku qdbmp.c i kodu z pliku .cu należy:
- dołączyć plik nagłówkowy qdbmp.h w sposób następujący:
extern "C" {
#include "qdbmp.h"
}
- wykonać łączną kompilację poleceniem:
nvcc qdbmp.c kod.cu -o kod