Jeśli budowałem komputer, o co powinienem dbać bardziej?
Z praktycznego punktu widzenia prawdopodobnie powinieneś zwrócić uwagę na płytę główną i procesor, biorąc pod uwagę względną trudność aktualizacji w porównaniu do GPU. Po zakupie jest okropny czas na odkrycie, że nie masz miejsca na cztery procesory graficzne lub wystarczająco szybki procesor, aby wszystkie były zajęte.
Należy również pamiętać, że wydajność procesora graficznego jest najczęściej zgłaszana w przypadku FLOP o pojedynczej precyzji, a spada nieco w przypadku podwójnej precyzji. Jeśli potrzebujesz dodatkowej precyzji w swoich symulacjach, skończysz znacznie poniżej reklamowanej prędkości.
Off do wyścigów inżynierii oprogramowania
Istnieją naprawdę dwie główne obawy z punktu widzenia oprogramowania, wąskie gardło von Neumanna i model programowania. Procesor ma dość dobry dostęp do pamięci głównej, GPU ma na pokładzie dużą ilość szybszej pamięci. Nie jest nieznane, że czas przenoszenia danych do i z GPU całkowicie neguje jakiekolwiek zwycięstwo prędkości. Ogólnie procesor wygrywa w przypadku umiarkowanych obliczeń na dużych ilościach danych, podczas gdy GPU przoduje w ciężkich obliczeniach na mniejszych ilościach. Wszystko to prowadzi nas do modelu programowania.
Na wysokim poziomie problemem jest starożytna i honorowa debata MIMD / SIMD. Systemy z wieloma instrukcjami / wieloma danymi odniosły największe sukcesy w informatyce ogólnej i komercyjnej. W tym modelu, który obejmuje SMP, istnieje wiele procesorów, z których każdy wykonuje swój własny strumień instrukcji. To komputerowy odpowiednik francuskiej kuchni, w której kierujesz niewielką liczbą wykwalifikowanych kucharzy do wykonania stosunkowo skomplikowanych zadań.
Z drugiej strony systemy z pojedynczą instrukcją / wieloma danymi bardziej przypominają ogromne pomieszczenie pełne urzędników przykutych do biur, zgodnie z instrukcjami z głównego sterownika. „Wszyscy DODAJ wiersze 3 i 5!” Był używany w czystej postaci w ILLIAC i niektórych systemach „mini-super”, ale zaginął na rynku. Obecne procesory graficzne są bliskimi kuzynami, są bardziej elastyczne, ale mają tę samą ogólną filozofię.
Podsumowując krótko:
- Dla każdej operacji procesor będzie szybszy, a GPU może wykonać wiele jednocześnie. Różnica jest najbardziej widoczna w przypadku liczb zmiennoprzecinkowych 64-bitowych.
- Rdzenie procesora mogą działać na dowolnym adresie pamięci, dane GPU muszą być spakowane na mniejszym obszarze. Wygrywasz tylko wtedy, gdy wykonujesz wystarczającą liczbę obliczeń, aby zrównoważyć czas transferu.
- Kod ciężki w warunkach warunkowych zwykle będzie szczęśliwszy na CPU.