TechnologieZamiast procesora

    Zamiast procesora

    Technologie Nvidia CUDA i AMD Stream umożliwiają wykonywanie obliczeń naukowo-inżynierskich oraz przetwarzanie strumienia wideo przy użyciu ogromnej mocy obliczeniowej karty graficznej, a nie procesora. Powstało już kilkadziesiąt aplikacji także do domowego użytku które potrafią to wykorzystać.

    Zamiast procesora

    Przykładowe programy wykorzystujące technologie CUDA oraz AMD Stream

    Wykorzystują CUDA

    • vReveal firmy MotionDSP – obróbka i montaż wideo
    • ArcSoft SimHD – obróbka i montaż wideo
    • Ikena – rekonstrukcja detali w materiałach wideo złej jakości
    • Cyberlink PowerDirector 7 – obróbka i montaż wideo
    • Loilo Scope Mars – obróbka i montaż wideo
    • Nero MoveIt – obróbka i montaż wideo
    • Nurien – gra społecznościowa
    • Manifold System GIS Internet Map Server for web applications – tworzenie interaktywnych map do publikacji w internecie (na ekranie)
    • High-Performance Distributed Password Recovery firmy Elcomsoft – łamanie zabezpieczeń kryptograficznych i haseł
    • North Star Imaging – tworzenie obrazów 3D na podstawie zdjęć rentgenowskich m.in. na potrzeby tomografii komputerowej
    • SciFinance – ocena ryzyka biznesowego inwestycji giełdowych i finansowych
    • WIPRO – platforma do zarządzania biznesem

    Wspierają AMD Stream

    • ATI Avivo Video Converter – konwersja formatów wideo
    • ArcSoft TotalMedia Theater – obróbka i montaż wideo
    • Adobe After Effects CS4 – obróbka i montaż wideo
    • Photoshop CS4 – obróbka zdjęć
    • Adobe Flash 10 – tworzenie prezentacji i programów Flash
    • CyberLink PowerDirector 7 – obróbka i montaż wideo (na ekranie) Cyberlink MediaShow Espresso – odtwarzanie, konwersja i prosta obróbka wideo

    Zarówno Nvidia CUDA (Compute Unified Device Architecture), jak i AMD Stream to połączenie rozwiązań sprzętowych, czyli kart graficznych, środowiska programistycznego i stworzonych w nim aplikacji. Obie technologie umożliwiają przeprowadzenie tego samego typu obliczeń przy wykorzystaniu akceleratorów graficznych zamiast procesora. CUDA jest jednak bardziej znana, a liczba wykorzystujących ją programów – znacznie większa niż tych do AMD Stream.

    Są to aplikacje do obróbki i montażu wideo, a także specjalistyczne programy np. do oceny ryzyka biznesowego czy stosowane w tomografii komputerowej do generowania obrazu 3D ze zdjęć rentgenowskich. Maszyny wykorzystujące te technologie mają znacznie większą wydajność niż komputer korzystający z samego procesora. Przykładowo CUDA przyspiesza obliczenia od 18 razy przy kodowaniu wideo do nawet 149 razy podczas prowadzenia symulacji finansowych.

    Skąd ten pomysł

    Współczesne karty graficzne mają kilkaset programowalnych procesorów, tzw. shaderów. Procesory te są przystosowane do przetwarzania strumieniowego, czyli wykonywania od kilku do kilkunastu prostych operacji na ogromnej, stale dostarczanej ilości danych. Dzięki temu karty graficzne mają dużą moc obliczeniową, którą nie tak dawno zapewniały wyłącznie superkomputery.

    Dla przykładu kość graficzna i bazujące na niej karty Nvidia GeForce GTX 280 dysponują mocą obliczeniową rzędu 933 gigaflopów (0,933 teraflopa), co oznacza, że urządzenie potrafi wykonać 933 miliardów operacji zmiennoprzecinkowych na sekundę. Tymczasem moc obliczeniowa czterordzeniowego procesora Intel Core i7 965 XE wynosi tylko 70 gigaflopów, a więc ponad 13 razy mniej. Ze względu na sposób działania kart i procesorów tych wartości nie można porównywać wprost – trzeba najpierw podzielić moc karty graficznej przez 5. Ale nawet wtedy moc karty jest ogromna – blisko 190 gigaflopów – i znacznie wyższa niż dla centralnego procesora. Tę moc obliczeniową można wykorzystać do innych celów niż tylko generowanie grafiki i ta idea przyczyniła się do powstania opisywanych tu technologii.

    Obraz

    Stymulującą rolę w tworzeniu CUDA odegrały firmy BionicFX i Microsoft. Pierwsza opracowała technologię, pozwalającą zamieniać cyfrowe dane audio na specjalnie spreparowane informacje, które mogły być następnie przetwarzane przez kartę graficzną. Z kolei Microsoft w swoich bibliotekach DirectX 10 (wykorzystywanych głównie w grach) połączył wszystkie operacje przetwarzania kształtu i ruchu obiektów oraz wyglądu pikseli – realizowane dotąd przez oddzielne jednostki vertex shader i pixel shader – w jedną fazę obliczeniową.

    W wyniku opisanych zdarzeń Nvidia opracowała układ graficzny GeForce 8800 GTX (nazwa kodowa G80) z nową architekturą CUDA, w której znalazły się ujednolicone, uniwersalne shadery, pełniące rolę vertex lub pixel shaderów w zależności od potrzeb. Właśnie z myślą o efektywnym wykorzystaniu takiej architektury zostały stworzone biblioteki DX 10. Również w konstrukcjach firmy ATI, począwszy od procesora graficznego R600, wykorzystanego w kartach Radeon HD 2000/3000, są stosowane zunifikowane shadery.

    Karty z technologiami CUDA lub AMD Stream

    Korzystają z technologii CUDA

    • Gainward SilentFX GeForce 9400 GT – 190 zł
    • Palit GeForce 9800 GT – 410 zł
    • Asus GeForce GTS 250 – 560 zł
    • Gigabyte GeForce GTX 260 (Core216) – 780 zł
    • Palit GeForce GTX 275 – 960 zł

    Korzystają z technologii AMD Stream

    • Asus Radeon 3450 – 140 zł
    • Gainward Radeon 3850 – 230 zł
    • Gigabyte Radeon HD 4670 – 290 zł
    • Sapphire Radeon HD 4770 – 460 zł
    • HIS Radeon HD 4890 – 1040 zł

    Profesjonalne CUDA

    Aby móc wykorzystać moc obliczeniową shaderów (GeForce 8800 GTX ma ich 128) do obliczeń naukowo-inżynierskich, programiści Nvidii przygotowali odpowiednie biblioteki, sterowniki, interfejs programowania aplikacji API oraz środowisko programistyczne C, umożliwiające pisanie aplikacji na karty graficzne. Jednocześnie opracowali specjalny akcelerator obliczeniowy, bazujący na układzie G80, o nazwie Tesla (T8P).

    Obecnie dostępne są karty i serwery obliczeniowe Tesla, bazujące na układach graficznych Nvidia GeForce GTX 280 (GT200), które należą do drugiej generacji procesorów graficznych zgodnych z architekturą CUDA. Podobnie jak GT200, tak i zmodyfikowany układ Tesla T10P, ma do dyspozycji 240 programowalnych shaderów.

    Po zainstalowaniu rozwiązania Tesla pecet zmienia się w superkomputer. Teslę wykorzystuje do różnych obliczeń ponad 50 uczelni, np. MIT w USA, Politechnika Gdańska. Na wielu uczelniach opracowywane są, korzystające z technologii CUDA, programy, wtyczki i procedury do używanych przez naukowców, ekonomistów czy inżynierów aplikacji do wysokowydajnych obliczeń. Obliczenia takie obejmują m.in. fizykę jądrową, astrofizykę, konstrukcje silników, projekty wieżowców, mostów, kodowanie wideo, symulacje pogodowe i obliczenia związane z zarządzaniem ryzykiem.

    Co może domowy GeForce

    Obraz

    Oczywiście do domu nikt nie kupi sobie akceleratora Tesla, zwłaszcza że kosztuje on ponad 1600 dolarów. Jednak w wielu zwykłych pecetach drzemie zaklęta w GeForce’y z serii 8000, 9000 i GTX 200 ogromna moc obliczeniowa. Pierwszym programem dla domowych użytkowników, wykorzystującym technologię CUDA, był Badaboom Media Converter. Pozwala on na edycję, montaż i konwersję materiałów wideo w rozdzielczości HD . Przy wykorzystaniu technologii CUDA operacje te prowadzone są o ponad 60 proc. szybciej niż za pomocą samego procesora.

    Programów do edycji i konwersji wideo, wspierających technologię CUDA, jest znacznie więcej. Służą nie tylko do przetwarzania materiałów wideo w rozdzielczości HD, konwertowania ich przed publikacją w serwisach typu YouTube. Wielu użytkowników chce też poprawić jakość materiałów wideo nakręconych komórką. Przyspieszenie operacji związanych z szeroko pojętą obróbką wideo o 20–150 proc. (na tyle pozwala moc obliczeniowa karty) jest nie do pogardzenia. Przy okazji można poprawić jakość takich materiałów, wykorzystując wbudowane w kartę graficzną mechanizmy przetwarzania obrazu wideo.

    AMD Stream się rozwija

    Obraz

    Technologia AMD Stream jest dostępna w kartach Radeon HD z serii 3800 i 4800 oraz na karcie AMD FireStream 9270. Ta ostatnia jest odpowiednikiem akceleratora Tesla C1060. Jej moc obliczeniowa wynosi 1,2 teraflopa, a więc więcej niż dla karty Nvidii o mocy 1 teraflopa. Choć programów wspierających AMD Stream jest mniej niż dla CUDA, sytuacja się stale poprawia. Domowi użytkownicy mogą skorzystać z kilku programów wideo. Osoby zajmujące się obróbką zdjęć, filmów i tworzeniem materiałów w technologii flash zainteresuje to, że niektóre aplikacje firmy Adobe też korzystać z AMD Stream.

    Dostępne na stronach ATI/AMD (http://ati.amd.com/technology/streamcomputing/consumer-gaming.html) demo Froblins pokazuje możliwe efekty zastosowania AMD Stream w grach. Froblins działa na komputerach z kartą z serii Radeon HD 3000/4000 i wykorzystuje procesor graficzny nie tylko do generowania scen 3D. Również obliczenia związane ze sztuczną inteligencją tysięcy występujących tam stworków – ich reakcją na działania innych postaci – są wykonywane jednocześnie przy użyciu AMD Stream.

    Wybrane dla Ciebie