10.Architekturyspecjalizowane



Podobne dokumenty
10.Architekturyspecjalizowane

Adam Korzeniewski - p. 732 dr inż. Grzegorz Szwoch - p. 732 dr inż.

2. Arytmetyka procesorów 16-bitowych stałoprzecinkowych

Organizacja pamięci w procesorach graficznych

Transformacja Fouriera i biblioteka CUFFT 3.0

CYFROWE PRZETWARZANIE SYGNAŁÓW

Budowa Mikrokomputera

Podsystem graficzny. W skład podsystemu graficznego wchodzą: karta graficzna monitor

Spis treści. I. Skuteczne. Od autora... Obliczenia inżynierskie i naukowe... Ostrzeżenia...XVII

Praca dyplomowa magisterska

3. Przetwarzanie analogowo-cyfrowe i cyfrowo-analogowe... 43

6. Algorytmy ochrony przed zagłodzeniem dla systemów Linux i Windows NT.

Zastowowanie transformacji Fouriera w cyfrowym przetwarzaniu sygnałów

Teoria przetwarzania A/C i C/A.

Programowanie procesorów graficznych GPGPU

Transformata Fouriera

Grafika komputerowa i wizualizacja

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński

Podstawy Informatyki Systemy sterowane przepływem argumentów

Kurs Zaawansowany S7. Spis treści. Dzień 1

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

PROGRAMOWANIE WSPÓŁCZESNYCH ARCHITEKTUR KOMPUTEROWYCH DR INŻ. KRZYSZTOF ROJEK

Moc płynąca z kart graficznych

Procesory sygnałowe Digital Signal Processors. Informatyka II stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)

Współczesne techniki informacyjne

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

Przykładowe pytania DSP 1

Wysokowydajna implementacja kodów nadmiarowych typu "erasure codes" z wykorzystaniem architektur wielordzeniowych

Architektura Systemów Komputerowych. Bezpośredni dostęp do pamięci Realizacja zależności czasowych

Technika mikroprocesorowa. Konsola do gier

Programowanie z wykorzystaniem technologii CUDA i OpenCL Wykład 1

Spis treúci. Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1. Przedmowa Wstęp... 11

Programowanie procesorów graficznych NVIDIA (rdzenie CUDA) Wykład nr 1

Architektura komputerów

Programowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

Wykład IV. Układy we/wy. Studia Podyplomowe INFORMATYKA Architektura komputerów

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

Procesor ma architekturę rejestrową L/S. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset nand Rx, Ry, A add Rx, #1, Rz store Rx, [Rz]

KARTA PRZEDMIOTU. Techniki przetwarzania sygnałów, D1_3

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

Sprzęt komputerowy 2. Autor prezentacji: 1 prof. dr hab. Maria Hilczer

Informatyka I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny) kierunkowy (podstawowy / kierunkowy / inny HES)

Technika audio część 2

Plan wykładu. Akcelerator 3D Potok graficzny

MIKROKONTROLERY I MIKROPROCESORY

Architektura systemów komputerowych. dr Artur Bartoszewski

GRAFIKA RASTROWA. WYKŁAD 1 Wprowadzenie do grafiki rastrowej. Jacek Wiślicki Katedra Informatyki Stosowanej

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2010/2011

Budowa komputera Komputer computer computare

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Architektury komputerów Architektury i wydajność. Tomasz Dziubich

Podstawy grafiki komputerowej

Programowanie aplikacji na urządzenia mobilne

Wybrane bloki i magistrale komputerów osobistych (PC) Opracował: Grzegorz Cygan 2010 r. CEZ Stalowa Wola

Porównanie wydajności CUDA i OpenCL na przykładzie równoległego algorytmu wyznaczania wartości funkcji celu dla problemu gniazdowego

Przygotowanie kilku wersji kodu zgodnie z wymogami wersji zadania,

Architektura systemu komputerowego. Działanie systemu komputerowego. Przerwania. Obsługa przerwań (Interrupt Handling)

Generowanie sygnałów na DSP

Księgarnia PWN: Włodzimierz Stanisławski, Damian Raczyński - Programowanie systemowe mikroprocesorów rodziny x86

Tesla. Architektura Fermi

Programowanie kart graficznych

Adam Korzeniewski p Katedra Systemów Multimedialnych

I N S T Y T U T I N F O R M A T Y K I S T O S O W A N E J 2016

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2018/2019

Systemy na Chipie. Robert Czerwiński

Adam Korzeniewski p Katedra Systemów Multimedialnych

Programowanie Układów Logicznych kod kursu: ETD6203. Szczegóły realizacji projektu indywidualnego W dr inż.

Zastosowanie procesorów AVR firmy ATMEL w cyfrowych pomiarach częstotliwości

Ogólne informacje. cią pracy, wielkości wyświetlan. cią obrazu, wietlaną rozdzielczości. częstotliwo. wieŝania obrazu.

Metody optymalizacji soft-procesorów NIOS

KARTA MODUŁU KSZTAŁCENIA

Zygmunt Wróbel i Robert Koprowski. Praktyka przetwarzania obrazów w programie Matlab

Technologie informacyjne - wykład 12 -

Przetwarzanie Równoległe i Rozproszone

Programowanie procesorów graficznych GPGPU. Krzysztof Banaś Obliczenia równoległe 1

Sprawdzian test egzaminacyjny GRUPA I

XXXII Olimpiada Wiedzy Elektrycznej i Elektronicznej. XXXII Olimpiada Wiedzy Elektrycznej i Elektronicznej

LEKCJA TEMAT: Zasada działania komputera.

Algorytmy i Struktury Danych

Budowa i zasada działania komputera. dr Artur Bartoszewski

o Instalacja środowiska programistycznego (18) o Blink (18) o Zasilanie (21) o Złącza zasilania (22) o Wejścia analogowe (22) o Złącza cyfrowe (22)

JCuda Czy Java i CUDA mogą się polubić? Konrad Szałkowski

Elektrotechnika II Stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny)

Karta graficzna karta rozszerzeo odpowiedzialna generowanie sygnału graficznego dla ekranu monitora. Podstawowym zadaniem karty graficznej jest

Programowanie w języku Python. Grażyna Koba

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

Spis treści. Dzień 1. I Rozpoczęcie pracy ze sterownikiem (wersja 1707) II Bloki danych (wersja 1707) ZAAWANSOWANY TIA DLA S7-300/400

Algorytmy dla maszyny PRAM

Przekształcenie Fouriera i splot

Mechatronika i inteligentne systemy produkcyjne. Modelowanie systemów mechatronicznych Platformy przetwarzania danych

Wykład I. Podstawowe pojęcia. Studia Podyplomowe INFORMATYKA Architektura komputerów

Karty graficzne możemy podzielić na:

IMPLEMENTATION OF THE SPECTRUM ANALYZER ON MICROCONTROLLER WITH ARM7 CORE IMPLEMENTACJA ANALIZATORA WIDMA NA MIKROKONTROLERZE Z RDZENIEM ARM7

Literatura. adów w cyfrowych. Projektowanie układ. Technika cyfrowa. Technika cyfrowa. Bramki logiczne i przerzutniki.

Wprowadzenie do programowania na procesorze sygnałowym

MAGISTRALE ZEWNĘTRZNE, gniazda kart rozszerzeń, w istotnym stopniu wpływają na

WPROWADZENIE Mikrosterownik mikrokontrolery

RDZEŃ x86 x86 rodzina architektur (modeli programowych) procesorów firmy Intel, należących do kategorii CISC, stosowana w komputerach PC,

Julia 4D - raytracing

Kurs SIMATIC S7-300/400 i TIA Portal - Zaawansowany. Spis treści. Dzień 1

Transkrypt:

Materiały do wykładu 10.Architekturyspecjalizowane Marcin Peczarski Instytut Informatyki Uniwersytet Warszawski 5 stycznia 2009

Architektury do specyficznych zastosowań 10.1 DSP Digital Signal Processing cyfrowe przetwarzanie sygnałów Digital Signal Processor procesor sygnałowy GPU Graphics Processing Unit procesor graficzny

Dziedziny telekomunikacja radiolokacja sprzęt audio-wideo medycyna Przykładowe aplikacje kompresja i dekompresja sygnału mowy wykrywanie rodzaju obiektu latającego magnetyczny rezonans jądrowy tomografia komputerowa Zastosowania DSP 10.2

Twierdzenie o próbkowaniu Dlaczego to działa? 10.3 Jeżeli sygnał ciągły w czasie zawiera tylko składowe o częstotliwościach poniżej 2f, to jest jednoznacznie reprezentowany przez swoje wartości w dyskretnych chwilach czasu i/f, gdzie i to liczba całkowita, a f to częstotliwość próbkowania. przed próbkowaniem po próbkowaniu

Zamiana wartości próbki na liczbę Rozdzielczość, liczba bitów reprezentacji n Kwantowanie 10.4 Proces nieodwracalny wartości zaokrąglane do najbliższej reprezentowalnej wartości Szum kwantowania SNR[dB]=20nlog2+10log 3 4 6n 1,25 Równomierne, liniowe Nierównomierne, nieliniowe: A-law, µ-law

Arytmetyka procesorów sygnałowych 10.5 Arytmetyka stałopozycyjna U2 b 0,b 1...b n 2 b n 1 b 0 + n 1 i=1 b i 2 i Reprezentuje wartości z przedziału[ 1, 1). Mnożenie liczb z przedziału( 1, 1) nie powoduje przepełnienia. Mnożenie 1 razy 1 powoduje przepełnienie. Dodawanie z nasyceniem

Typowe operacje DSP(1) 10.6 Filtr SOI(skończona odpowiedź impulsowa), ang. FIR(finite impulse response) n y t = b i x t i i=0 Filtr NOI(nieskończona odpowiedź impulsowa), ang. IIR(infinite impulse response) y t = m a i y t i + n b i x t i i=1 i=0

Typowe operacje DSP(2) 10.7 Splot z n = n x i y n i i=0 Dyskretne przekształcenie Fouriera(DFT) A m = N 1 n=0 a n w mn

Opearacja MAC 10.8 Typowe operacje DSP pelegają na mnożeniu z akumulacją wyniku. a:=a+x i y j MAC multiply and accumulate a:=a+x[i] y[j] i:=(i+1)modn j:=(j 1)modn Wyniki pośrednie w rejestrach tymczasowych o zwiększonej precyzji

MAC(1) 10.9 Liczymya t = 3 i=0 x iy t i dlakolejnychindeksówt. Inicjujemya t :=0iindeksyi:=0,j:=tmod4. x 3 y t 2 x 2 x 1 y t 3 y t j i x 0 y t 1 PoczterechoperacjachMACdostajemya t = 3 i=0 x iy t i. Indeksy wskazują na pierwotne pozycje.

MAC(2) 10.10 Inicjujemya t+1 :=0iprzesuwamyindeksj:=(j+1)mod4. Zamieniamyniepotrzebnąjużpróbkęy t 3 nanowąy t+1. x 3 y t 2 x 2 y t+1 j i x 1 x 0 y t y t 1 PokolejnychczterechoperacjachMACa t+1 = 3 i=0 x iy t+1 i. Powtarzamypowyższykrokdlat+2,t+3,...

Szybkie przekształcenie Fouriera FFT 10.11 Sprzętowe wsparcie dla operacji występujących w algorytmie FFT Operacja motylkowa x:=x+ωy y:=x ωy Operacja odwracania bitów 01011100 00111010

Systemy czasu rzeczywistego Cechy procesorów sygnałowych 10.12 ściśle oganiczony czas przetwarzania jednej próbki sygnału szybka obsługa przerwań Równoległy dostęp do kodu instrukcji i argumentów architektura harwardzka Brak sprzętowego wsparcia dla wielozadaniowości Wykonywanie pętli bez przerywania potoku Wbudowane interfejsy szeregowe dla wprowadzania i wyprowadzania przetwarzanego ciągu danych

Wyświetlanie obrazów 10.13 CRT(cathode ray tube) kineskop, lampa katodowa LCD(liquid crystal display) wyświetlacz ciekłokrystaliczny DLP(digital light processing), DMD(digital micromirror device) Ekran plazmowy LED(light-emitting diode display) wyświetlacz z diodami elektroluminescencyjnymi OLED(organic light-emitting diode displays) wyświetlacz z organicznymi diodami elektroluminescencyjnymi e-papier,nanorurki,...

Dlaczego to działa? 10.14 Wrażenie widzenia przez ludzkie oko prawie dowolnej barwy można wywołać przez sumowanie z wagami trzech kolorów podstawowych: czerwony 700,1 nm, zielony 546,1 nm, niebieski 435,8 nm. Metoda sumowania przestrzennego: oko ludzkie nie rozróżnia blisko leżących punktów. Metoda sumowania czasowego: oko ludzkie nie rozróżnia zmian o częstotliwości powyżej kilkunastu Hz.

Parametry monitorów 10.15 Rozdzielczość Częstotliwość odchylania pionowego liczba obrazów(półobrazów) na sekundę Sposób wyświetlania przeplot(ang. interlace) skanowanie progresywne(ang. progressive, noninterlaced scanning)

Głębia kolorów 10.16 Obraz czarno-biały 1bitnapiksel Paleta kolorów 16kolorów,4bity 256kolorów,8bitów Kolor bezpośrednio 8bitów czerwonyizielony3bity,niebieski2bity 15bitów 5bitównakolor 16bitów czerwonyiniebieski5bitów,zielony6bitów 24bity 8bitównakolor

Rozwój procesorów graficznych 10.17 Specjalizowane układy scalone generujące sygnały dla monitora na podstawie zawartości pamięci obrazu Sprzętowe wspomaganie animacji w grach komputerowych duszki Wsparcie dla operacji graficznych tłumaczenie wysokopoziomowego opisu na postać pikseli nadawanie faktury figurom geometrycznym transformacje układu współrzędnych operacje wektorowe i macierzowe Użycie procesorów graficznych do obliczeń niezwiązanych z grafiką Karty graficzne bez złącza do monitora!

Nieoficjalne seminarium 10.18 Karty graficzne jako komputery ogólnego przeznaczenia http://www.mimuw.edu.pl/~ps209291/kgkp/ Materiały na temat dwóch konkurencyjnych rozwiązań NVIDIA AMD Przykłady zaimplementowanych algorytmów sumy prefiksowe sortowanie diagramy Voronoi szyfrowanie metody siatek

Ogólna architektura 10.19 GPU pamięć CPU CPU GPU pamięć pamięć PCI Express DMA

Arytmetyka procesorów graficznych 10.20 Głównie operacje zmiennoprzecinkowe pojedynczej precyzji Brak wsparcia dla liczb zdenormalizowanych Dzielenie implementowane jako mnożenie przez odwrotność Tylko tryby zaokrąglania do najbliższej parzystej i obcięcie Ograniczone wsparcie dla NaN Pamięć tekstury indeksowana zmiennymi zmiennoprzecinkowymi, różne tryby interpolacji

multiprocesor 2 multiprocesor 1 szybka pamięć dzielona NVIDIA Model sprzętu 10.21 rejestry rejestry rejestry procesor1 procesor2 procesorm jednostka sterująca pamięć podręczna stałych pamięć podręczna tekstury pamięć karty graficznej

NVIDIA Model programowania 10.22 Każde zadanie(kernel) wykonuje się jako siatka bloków. Siatka bloków może być jedno-, dwu- lub trzywymiarowa. W obrębie każdego bloku wykonywane są wątki. Wątki są ułożone w jedno-, dwu- lub trzywymiarową tablicę. Wątki w jednym bloku komunikują się przez pamięć dzieloną. Wszystkie wątki wykonują ten sam kod zadania. Wątek ma dostęp do identyfikatora bloku, w którym się wykonuje (D x,d y,d z )idoswojegoidentyfikatorawobrębiebloku(x,y,z).

NVIDIA Model wykonania 10.23 Multiprocesor wykonuje wątki w paczkach(warp 32 wątki). Wątki wykonywane są symultanicznie w celu ukrycia opóźnień dostępów do pamięci graficznej. Wątki dzielą się zasobami rejestry i pamięć dzielona. Wątki w obrębie jednej paczki wykonują równocześnie tę samą instrukcję. Jeśli instrukcję warunkową wykonują tylko niektóre wątki w paczce, to pozostałe wątki muszą czekać. Odczyty z pamięci dzielonej mogą odbywać się równocześnie, jeśli dotyczą różnych banków albo wszystkie odwołują się do tego samego adresu.

NVIDIA Ograniczenia(1) 10.24 Rozmiar siatki bloków w każdym wymiarze: 65535 Rozmiarblokuwątków:512 512 64 Liczbawątkówwbloku:512 Liczbawątkówwpaczce:32 Liczba aktywnych bloków w multiprocesorze: 8 Liczba aktywnych paczek wątków w multiprocesorze: 24 Liczba aktywnych wątków w multiprocesorze: 768

NVIDIA Ograniczenia(2) 10.25 Liczba procesorów w multiprocesorze: 8 Liczba rejestrów w multiprocesorze: 8192 Pamięć dzielona: 16 kib Pamięćstałych:64kiB Pamięć podręczna stałych: 8 kib Pamięć podręczna tekstury: 8 kib

NVIDIA PTX Parallel Thread Execution 10.26 Wirtualny Asembler procesorów graficznych NVIDIA Definiuje wirtualną maszynę i wirtualny zbiór rozkazów(isa). Jest tłumaczony na kod maszynowy GPU. Ma zapewnić zgodność z przyszłymi produktami..reg.b32 r1, r2;.global.f32 array[n]; start: mov.b32 r1,%tid.0; shl.b32 r1,r1,2; ld.b32 r2, array[r1]; add.f32 r2, r2, 0.5;

NVIDIA CUDA 10.27 Compute Unified Device Architecture Rozszerzenie języka C Sterownik CUDA Biblioteka czasu uruchomienia, CUDA Runtime Biblioteki CUFFT, CUBLAS

AMD 10.28 CTM CloseToMetal Brook rozszerzenie C na architektury strumieniowe opracowane na Uniwersytecie Stanforda Brook+ implementacja Brooka wykonana przez AMD Biblioteki używające CTM AMDCoreMathLibrary:BLAS,LAPACK,FFT AMD Performance Library: dekodowanie sygnałów wideo, JPEG COBRA: akceleracja przetwarzania sygnałów wideo