Informacja

Drogi użytkowniku, aplikacja do prawidłowego działania wymaga obsługi JavaScript. Proszę włącz obsługę JavaScript w Twojej przeglądarce.

Tytuł pozycji:

Evolutionary GPGPU compilers and execution time measurements

Tytuł:
Evolutionary GPGPU compilers and execution time measurements
Autorzy:
Mazurek, P.
Data publikacji:
2013
Słowa kluczowe:
compilers
GPGPU
time measurements
kompilatory
pomiary czasu
Język:
angielski
Dostawca treści:
BazTech
Artykuł
  Przejdź do źródła  Link otwiera się w nowym oknie  Pełny tekst  Link otwiera się w nowym oknie
The problems of measurements of the execution time for CUDA kernels are considered in this paper. A few estimators are compared for different execution times. The proper measurements are important for code optimization using evolutionary compilers. The best estimator for fast time kernels (ms) is the minimal value estimator. The single run value is applicable for long time kernels (seconds). The disturbances of measurements are also related to the time between kernel runs, which is an unexpected result.
Kompilatory ewolucyjne pozwalają na optymalizację kodu źródłowego i uzyskanie bardziej optymalnego (szybszego) kodu wynikowego. Wykorzystując metody optymalizacji nieliniowej możliwe jest znalezienie lepszej kombinacji instrukcji (rys. 3). Jest to istotne dla układów z nieznaną metryką wykonywania kodu. Tego typu sytuacja ma miejsce dla kart GPGPU z platformą CUDA, gdzie możliwe jest programowanie na poziomie języka C (CUDA) lub kodu pośredniego (PTX [3]) – rys. 1. Z uwagi na niemożność programowania na poziomie procesora GPU i brak informacji na temat architektury, konieczna jest optymalizacja na wyższym poziomie. W tym celu należy wykorzystać pomiary czasu wykonywania (rys. 2), jednak jest to trudne z uwagi na zakłócenia pomiaru ze strony systemu operacyjnego i innych urządzeń komputera. Sugerowany pomiar średniego czasu dla kilkunastu uruchomień jest nieadekwatny w wielu sytuacjach. O ile dla długich czasów wykonywania kodu GPGPU rzędu sekund jest to akceptowalne (rys. 6), to nie jest to prawidłowe dla krótkich czasów rzędu ms. Wykorzystując estymatory (2-5) można poszukiwać lepszego rozwiązania. Najbardziej nieoczekiwanym jest to, że istnieje silny wpływ opóźnienia między kolejnymi uruchomieniami kodu GPGPU na wynik (rys. 7). Estymator średniej jest lepszy od mediany, która potrafi fałszować wyniki, ale najlepszym jest wartość minimalna dla wielu uruchomień. Niestety także wartość minimalna zależy od czasu opóźnienia między uruchomieniami, przy błędzie 15%.

Ta witryna wykorzystuje pliki cookies do przechowywania informacji na Twoim komputerze. Pliki cookies stosujemy w celu świadczenia usług na najwyższym poziomie, w tym w sposób dostosowany do indywidualnych potrzeb. Korzystanie z witryny bez zmiany ustawień dotyczących cookies oznacza, że będą one zamieszczane w Twoim komputerze. W każdym momencie możesz dokonać zmiany ustawień dotyczących cookies