Rozwiązania graficzne do programów inżynierskich

    Stacja robocza

    Użytkownicy stacji roboczych mają inne oczekiwania w stosunku do swoich komputerów niż zwykli śmiertelnicy. Patrzą na nie inaczej, gdyż traktują je jako narzędzia do pracy, a nie do rozrywki. Wykorzystują je do projektowania, złożonych analiz, skomplikowanych symulacji czy prezentacji wyników pracy. Ponieważ czas to pieniądz, nie mogą zaakceptować nagłych awarii systemu, irytujących błędów programu lub opóźnień w toku pracy, których można było uniknąć. Nie wymieniają kart grafiki dwa razy do roku, za to oczekują wsparcia technicznego dla sterowników do swych kart przez przynajmniej 2 lata. Ponieważ w większości firm zakupiony sprzęt musi być sprawdzony pod każdym względem, powinien być dostępny przez dłuższy czas, bez względu na to, czy jest jeszcze nowoczesny, czy już nie.

    Termin profesjonalna stacja robocza oznacza sprzęt wysokiej jakości, dużą niezawodność pracy, wysoką wydajność i – w razie potrzeby – natychmiastowe wsparcie techniczne.

    NVIDIA i stacje robocze

    Największym na świecie producentem układów graficznych dla stacji roboczych jest firma NVIDIA. Ponad 75% rynku to dwie serie produkowanych przez tę firmę kart: Quadro® FX i Quadro® NVS.

    Quadro® FX to rodzina kart dedykowanych użytkownikom aplikacji 3D, zarówno tym, którzy projektują, pracują nad symulacją procesów lub zjawisk, jak i tym, którzy tworzą filmy. Są to najwydajniejsze karty w swych klasach cenowych, rozwiązania,  które charakteryzują się najlepszą jakością i dokładnością tworzonego obrazu.

    Quadro® NVS przeznaczone są przede wszystkim do obsługi aplikacji 2D pracujących na wielu monitorach, w biurach, bankach, a także sterowniach zakładów produkcyjnych. Opcja łączenia wyświetlanego obrazu z dowolnej liczby monitorów (ograniczenia wynikają wyłącznie z systemu operacyjnego) umożliwia obsługiwanie bardzo dużych rozdzielczości na dużej powierzchni, np. za pomocą wyświetlaczy plazmowych.

    Quadro a GeForce

    RYS.1. Ten sam fragment ekranu z wyłączonym i włączonym wygładzaniem linii

    Często pojawiają się pytania o różnice pomiędzy kartami grafiki opartymi na Quadro® a kartami wykorzystującymi GeForce®, ponieważ karty te sprawiają wrażenie bardzo podobnych od strony technicznej, natomiast zasadniczo różnią się cenami. Producent dokładnie pozycjonuje obie rodziny produktów, zaznaczając, że Quadro® są dedykowane profesjonalistom, a GeForce® przeznaczone dla rynku konsumenckiego.

    W grupach dyskusyjnych związanych bezpośrednio z systemami CAD często pojawiają się opinie użytkowników, że karty z procesorami GeForce® pracują świetnie z używanymi przez nich aplikacjami 3D. Większość z nich zapomina jednak, że właśnie to podobieństwo doprowadziło do spadku cen kart profesjonalnych, bowiem główną ideą firmy NVIDIA jest praca zarówno nad jakością i uniwersalnością kart rynku konsumenckiego, jak i przystępnością cenową produktów profesjonalnych. Producent dokłada wszelkich starań, aby stworzyć perfekcyjne rozwiązanie do obu zastosowań.

    Trzeba jednak sobie zdawać sprawę, że pomimo pozornego podobieństwa między Quadro® i GeForce® istnieje wiele różnic.

    1. Różnice sprzętowe

    Wspomaganie aplikacji w ok nie 3D, czyli sprzętowe wsparcie OpenGL Sprzętowe wygładzanie linii

    Unikalną cechą procesorów Quadro® jest sprzętowe wspomaganie wygładzania linii. Nie ma ono nic wspólnego z pełnoekranowym wygładzaniem na kartach GeForce®. Działa w przypadku linii, a nie pocieniowanych poligonów, i to bez straty wydajności lub pobierania dodatkowej pamięci wideo. Większość profesjonalnych aplikacji wspiera tę właściwość, ponieważ jest ona standardowo zawarta w OpenGL.

    RYS.2. Ilustracja pokazująca selekcję (XOR) w programie CATIA v5

    Wielu projektantów pracuje w tzw. trybie drutowym (wireframe) i dla nich ta cecha jest szczególnie ważna, gdyż wygładzanie linii poprawia wydatnie jakość wyświetlanego obrazu.

    Operacje logiczne

    Inną unikalną cechą procesorów Quadro® jest wspomaganie operacji logicznych OpenGL, które mogą być zaimplementowane jako ostatni krok etapu renderingu, zanim zawartość zostanie zapisana w buforze ramki. Aplikacje stacji roboczych używają tej funkcji do rysowania na widoku sceny 3D, np. do zaznaczania selekcji za pomocą prostych funkcji XOR.

    Dzięki posiadaniu tej funkcji w warstwie sprzętowej można uniknąć tak poważnych strat wydajności jak w przypadku pracy z kartami GeForce®.

    Różnice w OpenGL

    W kartach dla rynku konsumenckiego i dla stacji roboczych OpenGL używany jest do różnych celów. Najpopularniejszymi aplikacjami dla kart GeForce® są pełnoekranowe gry. Mają stosunkowo niewielkie wymagania: wolne od błędów funkcjonowanie i przede wszystkim duża wydajność. Aplikacje CAD działają z OpenGL w oknach, w kombinacji z elementami 2D.

    RYS.3. Zastosowanie płaszczyzn przekroju w programie Solid Edge

    Typowa aplikacja dla stacji roboczej zawiera elementy 3D i 2D. Gdy widoki wyświetlane są w oknach OpenGL, menu, menu rozwijalne i ramki są wciąż elementami 2D. Często też zachodzą na siebie.

    RYS.4. Przykład nakładania płaszczyzn w oknie programu Solid Edge

    zależności od tego, jak radzi sobie z nimi sprzęt, przesłaniające się okna mogą wyraźnie wpływać na jakość wyświetlanego obrazu i grafiki. Jeśli  okno nie jest przesłaniane przez inne, cała zawartość bufora koloru może być przetransferowana do bufora ramki jako pojedynczy, ciągły, prostokątny obszar. Jeżeli okno przysłaniane jest przez inne okno, transfer danych z bufora koloru do bufora ramki musi być podzielony na serię niewielkich, prostokątnych obszarów. Te prostokątne obszary są określane mianem obszarów wydzielonych (clip regions).

    Procesory GeForce® obsługują sprzętowo jeden wydzielony obszar, najczęściej używany do wyświetlania menu w OpenGL. Procesory Quadro® obsługują sprzętowo, bez straty wydajności, maksymalnie 8 wydzielonych obszarów w aplikacjach CAD.

    Sprzętowa obsługa płaszczyzn przekroju

    Płaszczyzny przekroju ułatwiają cięcie obiektów 3D tak, by użytkownik mógł zajrzeć do wnętrza obiektu. Pokazywanie obiektów w przekroju szczególnie przydaje się podczas wizualizacji złożeń. Do tego celu wiele profesjonalnych aplikacji CAD/DCC używa płaszczyzn przekroju. Rodzina procesorów Quadro® wspomaga sprzętowo obsługę płaszczyzn przekroju, zwiększając znacznie wydajność profesjonalnych aplikacji.

    Różnice w wydajności (przy zastosowaniu sprzętowych płaszczyzn przekroju i bez) pokazuje np. test UGS-04 w SPECviewperf® 8.1*.

    Optymalizacja zarządzania pamięcią

    Inną funkcją oferowaną przez rodzinę procesorów Quadro® jest optymalizacja  zarządzania pamięcią, która efektywnie przydziela i udostępnia zasoby pamięci bieżącym oknom graficznym i aplikacjom. W wielu sytuacjach ta funkcja bezpośrednio wywiera wpływ na wydajność aplikacji, czym wyraźnie różni się (na plus) od zorientowanej na rynek konsumencki rodziny GPU GeForce®.

    Pamięć grafiki wykorzystywana jest na bufor ramki, tekstury, pamięć podręczną i dane. Zunifikowana architektura pamięci (UMA) dynamicznie przydziela zasoby, zamiast utrzymywać stały rozmiar dla bufora ramki. Wolna pamięć bufora ramki może zostać wykorzystana przez inne bufory lub na tekstury. Gdy aplikacje potrzebują więcej pamięci, używając np. poczwórnego bufora dla obrazu stereo lub wygładzania obrazu w widoku pełnej sceny, efektywne zarządzanie zasobami staje się szczególnie ważne.

    Sprzętowe nakładanie płaszczyzn

    Interfejsy użytkownika w wielu profesjonalnych aplikacjach często wymagają elementów, które są interaktywnie rysowane przed modelem lub sceną 3D. Kursor, menu rozwijalne lub dialogi występują przed oknem widoku 3D. Te elementy mogą zniszczyć zawartość zakrywanego okna lub wpłynąć na wydajność aplikacji i jej interaktywność. Aby tego uniknąć, w profesjonalnych aplikacjach stosuje się nakładanie płaszczyzn (overlay).

    RYS.5. Opcje służące do ustawiania trybu stereo w SolidWorks

    Nakładanie płaszczyzn umożliwia rysowanie elementów w głównym oknie graficznym bez zniszczenia zawartości okien znajdujących się pod nim. Okno rysowane w płaszczyźnie overlay może zawierać tekst, grafikę itd. – tak samo jak każde normalne okno. Płaszczyzny te obsługują np. bit przezroczystości, który (kiedy jest ustawiony) zapewnia widoczność pikseli znajdujących się pod spodem nałożonego okna. Są one tworzone jako dwie oddzielne warstwy, zachowują zawartość głównego okna graficznego i zwiększają ogólną wydajność.

    Czyszczenie i przerysowywanie tylko okna overlay jest o wiele szybsze niż całego głównego okna graficznego, np. w przypadku animowanych składników interfejsu użytkownika, które są rysowane nad modelami lub scenami 3D.

    Poczwórne buforowanie stereo

     

    RYS.6. Zakładka sterownika karty NVIDIA Quadro®

    Rodzina procesorów Quadro® wspomaga poczwórne buforowanie stereo, rodzina GPU GeForce® tego nie potrafi. Poczwórne buforowanie stereo jest jedną z funkcji OpenGL służącą do tworzenia obrazu stereoskopowego na ekranie płaskiego monitora. Generowane są dwa obrazy, oddzielnie dla każdego oka obserwatora i dla każdego podwójnie buforowane. Wyświetlane są z przeplotem lub bez, zależnie od urządzenia wyjściowego.

    Wiele aplikacji profesjonalnych, jak: CATIA, SolidWorks lub StudioTools, udostępnia użytkownikom możliwość oglądania modeli lub scen w trzech wymiarach, używając mechanizmu wyświetlania stereoskopowego. Funkcja ta może być dostępna bezpośrednio w programie (CATIA), można ją uzyskać za pomocą plug-inu (SolidWorks) lub zewnętrznej przeglądarki (QuadroView f-my NVIDIA).

    Użycie obrazu stereoskopowego pomaga w przeglądaniu złożonych konstrukcji szkieletowych, tworzeniu realistycznych podróży w wirtualnym świecie lub po prostu w pokazaniu we właściwych proporcjach dużych scen 3D.

    Wsparcie stereo ze strony rodziny kart Quadro® zapewnia pełne wykorzystanie możliwości profesjonalnych aplikacji.

    2. Różnice w wydajności

    Różna obsługa bibliotek OpenGL pomiędzy kartami Quadro® a GeForce® wpływa oczywiście na ogólną wydajność podczas pracy w aplikacjach. Wyniki testów (rys. 7) nie pozostawiają żadnych wątpliwości, które z kart dedykowane są stacjom roboczym.

    RYS.7. Wyniki testów odpowiadających sobie kart Quadro® i GeForce® w programie SPECviewperf® 8.1. Wyniki normalizowane do kart GeForce®

    3. Optymalizacja aplikacji

    NVIDIA ściśle współpracuje ze wszystkimi producentami oprogramowania do stacji roboczych. Wśród nich znajdują się tak znane firmy, jak: Autodesk (Auto-CAD i Inventor), Dassault (CATIA i SolidWorks), MultiGen-Paradigm (Creator Terrain Studio i Vega Prime), PTC (Pro/ENGINEER), UGS (UnigraphicsNX, I-deas i Solid Edge).

    Ścisła współpraca firmy NVIDIA z tymi i innymi twórcami oprogramowania daje gwarancję, że aplikacje będą miały pełne wsparcie ze strony wszystkich cech GPU, a sterowniki będą optymalizowane do potrzeb aplikacji. Panel kontrolny grafiki procesora Quadro® umożliwia użytkownikowi ustawienie parametrów specyficznych dla danej aplikacji. Te ustawienia są dostępne poprzez panel kontrolny OpenGL. Panel oraz specyficzne dla danej aplikacji ustawienia optymalizujące pracę sterownika nie występują w rodzinie procesorów dla rynku konsumenckiego.

    4. Certyfikacja

    Sterowniki dla stacji roboczych przechodzą rygorystyczne testy jakościowe już w samej firmie NVIDIA. Dzięki testowaniu nowych sterowników z wieloma aplikacjami, w różnych konfiguracjach sprzętowych, NVIDIA może wychwycić ewentualne niedociągnięcia i w krótkim czasie udostępnić nowe, poprawione wersje.

    Również producenci oprogramowania sprawdzają różne rozwiązania sprzętowe i wystawiają im stosowne certyfikaty. Praktycznie wszyscy na swych stronach internetowych, w działach poświęconych wsparciu technicznemu zamieszczają listy kart graficznych ze szczegółowymi informacjami o przetestowanych kombinacjach: wersja programu, wersja sterownika karty, model karty graficznej. Są to rekomendacje dla użytkowników, będące jednocześnie gwarancją poprawnej pracy danego oprogramowania i sprzętu.

    Podsumowanie

    Karty graficzne Quadro® firmy NVIDIA zawierają więcej niż tylko procesory o dodatkowych cechach sprzętowych i wsparciu sterownika aplikacji. Są to kompletne rozwiązania sprzętowo-programowe, za którymi stoi dedykowane wsparcie techniczne i serwis oraz gwarancja poprawnej pracy ze wszystkimi profesjonalnymi aplikacjami, a zunifikowana architektura sterownika zapewnia optymalną implementację OpenGL do obu zastosowań, profesjonalnego i konsumenckiego.

    Krzysztof Mucha

    Servodata Elektronik sp. z o.o.

    e-mail: servodata@servodata.com.pl

    www.servodata.com.pl

    * Standard Performance Evaluation Corporation (SPEC) jest organizacją typu non profit, utworzoną w celu tworzenia, obsługi i wspierania zestandaryzowanego zestawu istotnych benchmarków, które mogą być stosowane do najnowszej generacji komputerów o najwyższych wydajnościach. SPEC opracowuje zestaw programów testujących, jak również recenzje i publikacje przedstawiające wyniki testów członków organizacji i innych licencjobiorców. Sztandarowym produktem organizacji jest najpopularniejszy program do testowania stacji roboczych z programami CAD i DCC – SPECviewperf® 8.1