Z mojego zrozumienia, ludzie zaczęli używać procesorów graficznych do obliczeń ogólnych, ponieważ są one dodatkowym źródłem mocy obliczeniowej. I chociaż nie są szybkie jako procesor dla każdej operacji, mają wiele rdzeni, dzięki czemu można je lepiej dostosować do przetwarzania równoległego niż procesor. Ma to sens, jeśli posiadasz już komputer z procesorem graficznym do przetwarzania grafiki, ale nie potrzebujesz grafiki i chciałbyś więcej mocy obliczeniowej. Ale rozumiem również, że ludzie kupują procesory graficzne specjalnie w celu zwiększenia mocy obliczeniowej, bez zamiaru wykorzystywania ich do przetwarzania grafiki. Wydaje mi się to podobne do następującej analogii:
Muszę ścinać trawę, ale moja kosiarka jest lekka. Więc wyjmuję klatkę z wentylatora skrzynkowego, który trzymam w sypialni i wyostrzam ostrza. Przyklejam taśmą do mojej kosiarki i stwierdzam, że działa całkiem dobrze. Wiele lat później jestem oficerem ds. Zakupów w dużej firmie zajmującej się pielęgnacją trawników. Mam spory budżet na wydatki na narzędzia do ścinania trawy. Zamiast kupować kosiarki, kupuję kilka wentylatorów skrzynkowych. Ponownie działają dobrze, ale muszę zapłacić za dodatkowe części (takie jak klatka), których nie będę używać. (dla celów tej analogii musimy założyć, że kosiarki i wentylatory skrzynkowe kosztują mniej więcej tyle samo)
Dlaczego więc nie ma rynku dla układu lub urządzenia, które ma moc przetwarzania GPU, ale nie ma narzutu graficznego? Mogę wymyślić kilka możliwych wyjaśnień. Które z nich, jeśli w ogóle, jest poprawne?
- Taka alternatywa byłaby zbyt droga do opracowania, gdy GPU jest już dobrą opcją (kosiarki do trawy nie istnieją, dlaczego nie użyć tego idealnie dobrego wentylatora skrzynkowego?).
- Fakt, że „G” oznacza grafikę, oznacza jedynie zamierzone zastosowanie i nie oznacza tak naprawdę, że trzeba dokładać wszelkich starań, aby układ był lepiej przystosowany do przetwarzania grafiki niż jakikolwiek inny rodzaj pracy (kosiarki do trawy i wentylatory skrzynkowe są tym samym, gdy od razu do tego dochodzisz; żadne modyfikacje nie są konieczne, aby jedna działała podobnie jak druga).
- Nowoczesne procesory graficzne noszą tę samą nazwę, co ich starożytni poprzednicy, ale w dzisiejszych czasach te wysokiej klasy nie są zaprojektowane specjalnie do przetwarzania grafiki (nowoczesne wentylatory skrzynkowe są zaprojektowane tak, aby działały głównie jako kosiarki do trawy, nawet jeśli starsze nie były).
- Łatwo jest przetłumaczyć praktycznie każdy problem na język przetwarzania grafiki (trawę można kosić, dmuchając nad nią naprawdę szybko).
EDYTOWAĆ:
Odpowiedzi na moje pytanie, ale w oparciu o niektóre komentarze i odpowiedzi uważam, że powinienem wyjaśnić moje pytanie. Nie pytam, dlaczego wszyscy nie kupują własnych obliczeń. Oczywiście byłoby to przez większość czasu zbyt drogie.
Zauważyłem po prostu, że istnieje zapotrzebowanie na urządzenia, które mogą szybko wykonywać obliczenia równoległe. Zastanawiałem się, dlaczego wydaje się, że optymalnym takim urządzeniem jest jednostka przetwarzania grafiki, w przeciwieństwie do urządzenia zaprojektowanego do tego celu.
Odpowiedzi:
To naprawdę połączenie wszystkich twoich wyjaśnień. Tańsze i łatwiejsze, już istnieje, a design odszedł od czystej grafiki.
Współczesny procesor graficzny można postrzegać jako przede wszystkim procesory strumieniowe z dodatkowym sprzętem graficznym (oraz niektóre akceleratory o stałej funkcji, np. Do kodowania i dekodowania wideo). Programowanie GPGPU obecnie wykorzystuje interfejsy API specjalnie zaprojektowane do tego celu (OpenCL, Nvidia CUDA, AMD APP).
W ciągu ostatniej dekady lub dwóch procesory graficzne ewoluowały od potoku o stałej funkcji (prawie tylko grafika) do potoku programowalnego ( shadery pozwalają pisać niestandardowe instrukcje) na bardziej nowoczesne interfejsy API, takie jak OpenCL, które zapewniają bezpośredni dostęp do rdzeni shaderów bez towarzyszący potok grafiki.
Pozostałe bity graficzne są niewielkie. Stanowią one tak niewielką część kosztu karty, że pominięcie ich nie jest znacznie tańsze, a Ty ponosisz koszty dodatkowego projektu. Tak się zwykle nie dzieje - nie ma zorientowanego na obliczenia odpowiednika większości układów GPU - z wyjątkiem najwyższych poziomów, a te są dość drogie.
Zwykle używane są zwykłe układy graficzne do gier, ponieważ korzyści skali i względna prostota sprawiają, że są tanie i łatwe do rozpoczęcia. Jest to dość łatwa droga od programowania grafiki do przyspieszania innych programów za pomocą GPGPU. Łatwo jest również zaktualizować sprzęt, ponieważ dostępne są nowsze i szybsze produkty, w przeciwieństwie do innych opcji.
Zasadniczo wybory sprowadzają się do:
źródło
Moja ulubiona analogia:
To, czego używasz, zależy od wrażliwości kosztów, stopnia, w jakim zadanie można zrównoleglać i innych czynników. Ze względu na sposób funkcjonowania na rynku procesory graficzne są najlepszym wyborem dla większości wysoce równoległych aplikacji, a procesory są najlepszym wyborem, gdy głównym problemem są moc i koszt jednostkowy.
Bezpośrednio na twoje pytanie: dlaczego GPU zamiast ASIC / FPGA? Koszt ogólny Nawet przy dzisiejszych zawyżonych cenach procesorów graficznych nadal jest (ogólnie) tańsze korzystanie z układów GPU niż projektowanie układów ASIC spełniających Twoje potrzeby. Jak wskazuje @ user912264, istnieją specjalne zadania, które mogą być przydatne dla układów ASIC / FPGA. Jeśli masz wyjątkowe zadanie i skorzystasz ze skali, warto zaprojektować układ ASIC / FPGA. W rzeczywistości możesz projektować / kupować / licencjonować projekty FPGA specjalnie do tego celu. Odbywa się to na przykład w celu zasilania pikseli w telewizorach o wysokiej rozdzielczości.
źródło
Twoja analogia jest zła. Analogicznie, gdy kupujesz sprzęt dla dużej firmy zajmującej się pielęgnacją trawników, zakładasz , że dostępne są dobre kosiarki do trawy. W świecie komputerowym tak nie jest - procesory graficzne są najlepszym dostępnym narzędziem.
Koszty badań i rozwoju oraz możliwy wzrost wydajności specjalistycznego układu są prawdopodobnie zbyt wysokie, aby uzasadnić jego wykonanie.
To powiedziawszy, jestem świadomy tego, że Nvidia wypuszcza niektóre procesory graficzne specjalnie do obliczeń ogólnego przeznaczenia - nie miały one wyjść wideo - to trochę tak, jak sprzedawanie fanów boxów z usuniętymi klatkami.
źródło
Oczywiście można użyć specjalistycznych układów, zarówno pod względem wydajności energetycznej, jak i prędkości obliczeniowej. Pozwól, że opowiem Ci historię wydobywania Bitcoinów:
Więc nie, nie ma powodu, aby używać GPU zamiast specjalistycznego „gigantycznego kalkulatora”. Im większe zachęty ekonomiczne, tym bardziej sprzęt się specjalizuje. Są jednak dość trudne do zaprojektowania i niewykonalne, jeśli nie produkujesz tysięcy jednocześnie. Jeśli to nie jest opłacalne do projektowania chipów, można kupić jeden z tych od najbliższego Walmart.
TL; DR Oczywiście możesz używać bardziej specjalistycznych układów.
źródło
To, co opisujesz w swojej analogii, jest dokładnie tym, co się wydarzyło. Gdy tylko złapałeś wentylator i wyostrzyłeś ostrza, aby spróbować użyć go jako kosiarki, grupa badań zauważyła: „Hej, mamy tutaj całkiem niezły wielordzeniowy procesor, spróbujmy go użyć do obliczeń ogólnego zastosowania! „.
Wynik był dobry i piłka zaczęła się toczyć. Procesor graficzny przeszedł z urządzenia graficznego do obsługi obliczeń ogólnego zastosowania, aby pomóc w najbardziej wymagających sytuacjach.
Ponieważ zresztą najbardziej wymagającą obliczeniowo operacją, jakiej oczekujemy od komputerów, jest grafika. Wystarczy spojrzeć na oszałamiające postępy w dzisiejszych grach w porównaniu z tym, jak kilka lat temu. Oznacza to, że włożono wiele wysiłku i pieniędzy w opracowanie GPU, a fakt, że można je również wykorzystać do przyspieszenia pewnej klasy obliczeń ogólnego przeznaczenia (tj. Niezwykle równoległych), tylko zwiększył ich popularność.
Podsumowując, pierwsze wyjaśnienie, które oferujesz, jest najdokładniejsze:
Procesory graficzne, które już tam są, są łatwo dostępne dla wszystkich i działały.
źródło
W szczególności procesory graficzne nie są „rdzeniami” w znaczeniu „równoległości zadań”. W przeważającej części ma on postać „równoległości danych”. SIMD to „jedna instrukcja z wieloma danymi”. Oznacza to, że nie zrobiłbyś tego:
for parallel i in range(0,1024): c[i] = a[i] * b[i]
Oznaczałoby to, że masz 1024 wskaźników instrukcji, z których wszystkie wykonują osobne zadania postępujące w różnym tempie. SIMD, czyli „przetwarzanie wektorowe”, wykona instrukcje dla całych macierzy naraz, podobnie jak to:
c = a * b
„Pętle” znajdują się w instrukcjach „*” i „=”, a nie poza instrukcjami. Powyższe zrobiłoby to dla wszystkich 1024 elementów jednocześnie, dla wskaźnika instrukcji SAME dla wszystkich z nich. To tak, jakby mieć trzy ogromne rejestry dla a, b i c. Kod SIMD jest bardzo ograniczony i działa dobrze tylko w przypadku problemów, które nie są nadmiernie „rozgałęzione”.
W realistycznych przypadkach te wartości SIMD nie są tak duże jak 1024 elementy. Wyobraź sobie zmienną, która jest połączoną ze sobą grupą int32. Możesz myśleć o mnożeniu i przypisywać je jako prawdziwą instrukcję maszynową.
int32_x64 c; int32_x64 b; int32_x64 a; c = b * a;
Prawdziwe procesory graficzne są bardziej skomplikowane niż SIMD, ale to ich istota. Dlatego nie możesz po prostu wrzucić losowego algorytmu procesora na procesor graficzny i oczekiwać przyspieszenia. Im więcej instrukcji rozgałęzia algorytm, tym mniej jest odpowiedni dla GPU.
źródło
Pozostałe odpowiedzi tutaj są całkiem dobre. Wrzucę też moje 2 centy.
Jednym z powodów, dla których procesory stały się tak wszechobecne, jest ich elastyczność. Możesz przeprogramować je dla nieskończonej różnorodności zadań. W dzisiejszych czasach firmy produkujące produkty są tańsze i szybsze, aby w coś wbić mały procesor lub mikrokontroler i zaprogramować jego funkcjonalność niż opracowywanie niestandardowych obwodów do wykonania tego samego zadania.
Korzystając z tego samego urządzenia, co inne, możesz skorzystać ze znanych rozwiązań problemów z korzystaniem z tego samego urządzenia (lub podobnego). W miarę dojrzewania platformy Twoje rozwiązania ewoluują, stają się bardzo dojrzałe i zoptymalizowane. Ludzie kodujący na tych urządzeniach również zdobywają wiedzę i stają się bardzo dobrzy w swoim fachu.
Jeśli miałbyś stworzyć nowy typ urządzenia od zera, jakąś alternatywę dla procesora graficznego, nawet najwcześniejsi odbiorcy zajęliby wiele lat, aby naprawdę dobrze wiedzieć, jak go używać. Jeśli podłączysz ASIC do swojego procesora, jak zoptymalizujesz obliczenia odciążające na tym urządzeniu?
Społeczność architektów komputerowych boryka się z tym pomysłem od kilku lat (oczywiście wcześniej była popularna, ale ostatnio doświadczyła renesansu). Te „akceleratory” (ich termin) mają różny stopień przeprogramowalności. Problem polega na tym, jak wąsko określasz zakres problemu, który może rozwiązać twój akcelerator? Rozmawiałem nawet z niektórymi ludźmi, którzy pracowali nad stworzeniem akceleratora wykorzystującego obwody analogowe z wzmacniaczami operacyjnymi do obliczania równań różniczkowych. Świetny pomysł, ale niezwykle wąski zakres.
Gdy będziesz miał działający akcelerator, siły ekonomiczne zdecydują o twoim losie. Bezwładność rynku jest niesamowitą siłą. Nawet jeśli coś jest świetnym pomysłem, czy opłacalne jest przefakturowanie działających rozwiązań w celu korzystania z tego nowego urządzenia? Może, może nie.
Procesory graficzne są tak naprawdę straszne w przypadku niektórych rodzajów problemów, więc wiele osób / firm pracuje na innych typach urządzeń. Ale procesory graficzne są już tak mocno zakorzenione, czy ich urządzenia będą kiedykolwiek opłacalne ekonomicznie? Chyba zobaczymy.
Edycja: Rozszerzając nieco moją odpowiedź, teraz kiedy jestem poza autobusem.
Przestudiowanym studium przypadku jest projekt Intel Larrabee. Zaczęło się jako równoległe urządzenie przetwarzające, które może tworzyć grafiki w oprogramowaniu; nie miał specjalistycznego sprzętu graficznego. Rozmawiałem z kimś, kto pracował nad projektem, a głównym powodem, dla którego powiedzieli, że się nie udał i został anulowany (oprócz okropnej polityki wewnętrznej) było to, że po prostu nie mogli zmusić kompilatora do stworzenia dobrego kodu dla niego. Oczywiście wygenerował działający kod, ale jeśli cały punkt produktu jest maksymalnie wydajny, lepiej mieć kompilator, który wytwarza całkiem optymalny kod. To potwierdza moją wcześniejszą wypowiedź na temat braku głębokiej wiedzy specjalistycznej w zakresie sprzętu i oprogramowania, ponieważ nowe urządzenie stanowi duży problem.
Niektóre elementy projektu Larrabee trafiły do Xeon Phi / Intel MIC. Ten produkt trafił na rynek. Skoncentrowano się całkowicie na zrównolegleniu obliczeń naukowych i innych obliczeń typu HPC. Wygląda na to, że jest to teraz komercyjna porażka. Inna osoba, z którą rozmawiałem w firmie Intel, sugeruje, że po prostu nie są konkurencyjne cenowo / wydajnie w stosunku do układów GPU.
Ludzie próbowali zintegrować syntezę logiczną układów FPGA z kompilatorami, aby można było automatycznie generować kod dla akceleratorów FPGA. Nie działają tak dobrze.
Jednym z miejsc, które wydaje się być naprawdę żyzną glebą dla akceleratorów lub innych alternatyw dla GPU, jest chmura. Ekonomia skali istniejąca w takich dużych firmach jak Google, Amazon i Microsoft sprawia, że warto inwestować w alternatywne systemy obliczeniowe. Ktoś już wspomniał o procesorach tensorowych Google. Microsoft ma FPGA i inne rzeczy w całej swojej infrastrukturze Bing i Azure. Ta sama historia z Amazonem. To absolutnie sensowne, jeśli waga może zrównoważyć twoją inwestycję w czas, pieniądze i łzy inżyniera.
Podsumowując, specjalizacja stoi w sprzeczności z wieloma innymi rzeczami (ekonomia, dojrzałość platformy, wiedza inżynierska itp.). Specjalizacja może znacznie poprawić wydajność, ale zawęża zakres zastosowania urządzenia. Moja odpowiedź skupiła się na wielu negatywach, ale specjalizacja ma również wiele zalet. Należy go bezwzględnie śledzić i badać, a jak już wspomniałem, wiele grup prowadzi go dość agresywnie.
Przepraszamy, edytuj jeszcze raz: Myślę, że twoje początkowe założenie jest błędne. Uważam, że mniej chodziło o poszukiwanie dodatkowych źródeł mocy obliczeniowej, a bardziej o rozpoznanie szansy. Programowanie grafiki jest bardzo algebrą liniową, a procesor graficzny został zaprojektowany do wydajnego wykonywania typowych operacji, takich jak mnożenie macierzy, operacje wektorowe itp. Operacje, które są również bardzo powszechne w obliczeniach naukowych.
Zainteresowanie procesorami graficznymi zaczęło się, gdy ludzie zdali sobie sprawę, że obietnice złożone przez projekt EPIC Intel / HP były znacznie zawyżone (koniec lat 90. na początku 2000 roku). Nie było ogólnego rozwiązania dla równoległości kompilatora. Więc zamiast mówić „gdzie znajdziemy więcej mocy obliczeniowej, och, moglibyśmy wypróbować procesor graficzny”, myślę, że bardziej „mamy coś, co jest dobre w obliczeniach równoległych, czy możemy to uczynić bardziej ogólnie programowalnym”. Wiele osób było zaangażowanych w naukową społeczność komputerową, która miała już równoległy kod Fortran, który mogliby uruchomić na maszynach Cray lub Tera (Tera MTA miała 128 wątków sprzętowych). Być może nastąpił ruch z obu kierunków, ale słyszałem tylko wzmianki o pochodzeniu GPGPU z tego kierunku.
źródło
ASIC (niestandardowy krzem) jest bardzo szybki, ale jego zaprojektowanie i wyprodukowanie jest bardzo drogie. Układy ASIC były specyficzne dla określonego celu, a procesor był jednym z podejść, które pozwalały na „programowanie” komputerów, aby zadania komputerowe mogły być wykonywane przez oprogramowanie. Wczesne procesory dawały ludziom możliwość korzystania z mocy ASIC bez ogromnych kosztów poprzez programowanie układu w terenie. Takie podejście okazało się tak skuteczne, że dało początek (bardzo) szybkiemu komputerowi, którego używasz teraz.
Dlaczego więc procesory graficzne?
W połowie lat 90. firma 3DFX zdała sobie sprawę, że zadania renderowania 3D były tak specyficzne, że niestandardowy układ ASIC działałby DUŻO lepiej niż procesor. Stworzyli komputerowy koprocesor, który odciążył zadania renderowania 3D z CPU na ten koprocesor, który nazwali „GPU”. Konkurencja i popyt rynkowy sprawiły, że innowacje w tej przestrzeni doprowadziły do tego, że procesory graficzne przeprowadzały obliczenia DUŻO szybciej niż procesory, więc pojawiło się pytanie: „Dlaczego nie mogę użyć GPU, aby zgnieść moje liczby zamiast procesora?” Producenci GPU dostrzegli zapotrzebowanie i sposób na zarobienie większych pieniędzy, dlatego zaczęli zmieniać swoje platformy, aby umożliwić programistom korzystanie ze swojego sprzętu. Ale sprzęt sprzętowy był tak specyficzny dla określonego celu, że istniały i nadal istnieją ograniczenia w tym, o co możesz poprosić GPU. Nie będę szczegółowo omawiać, dlaczego tutaj.
Dlaczego więc nie było więcej krzemu przeznaczonego do określonego celu? Dlaczego po prostu grafika?
Dwa powody: 1) Cena. Procesory graficzne miały dobry rynek i mogły to uzasadnić, ale nawet wtedy było to ogromne ryzyko. Nikt tak naprawdę nie wiedział, czy 3DFX może przynieść zysk (okazuje się, że tak naprawdę nie mogli i przestali działać). Nawet teraz, przy wielkości rynku GPU, jest tak naprawdę tylko 3 konkurentów. 2) Procesory faktycznie spełniały potrzebę „niestandardowego krzemu” z rozszerzeniami instrukcji. Wróć do MMX - tak naprawdę Intel próbował przyspieszyć grafikę w procesorze, gdy 3DFX nabierał prędkości. Od tego czasu zestaw instrukcji x86 urósł do rangi wszystkich tych niestandardowych rozszerzeń. Wiele z tych rozszerzeń miało wówczas sens (np. MMX), ale teraz są w dużej mierze martwe w procesorze. Nie można ich jednak usunąć, ponieważ wtedy psuje istniejące oprogramowanie. To' w rzeczywistości jednym z punktów sprzedaży ARM - ARM jest zestawem rozebranych instrukcji. Nie ma tylu rozszerzeń instrukcji, ale sprawia, że krzem jest mniejszy i tańszy w produkcji.
Wydaje mi się, że można zarobić dużo pieniędzy, jeśli można zmniejszyć koszt niestandardowego krzemu. Czy nikt nad tym nie pracuje?
Istnieje technologia zwana FPGA - programowalna macierz bramek, która istnieje od pierwszych dni przetwarzania. Zasadniczo jest to mikroczip, który można zaprojektować „w terenie” za pomocą oprogramowania. To bardzo fajna technologia, ale cała struktura potrzebna do zaprogramowania układu zajmuje DUŻO krzemu i powoduje, że układy działają z dużo niższymi częstotliwościami zegara. Układy FPGA mogą być szybsze niż procesory, jeśli masz wystarczającą ilość krzemu w układzie ORAZ możesz skutecznie równolegle wykonać zadanie. Ale są ograniczone w logice, jaką możesz na nich postawić. Wszystkie oprócz najdroższych układów FPGA były wolniejsze niż układy GPU do wczesnego wydobywania bitcoinów, ale ich odpowiedniki ASIC skutecznie zakończyły opłacalność wydobywania układów GPU. Inne kryptowaluty stosowały określone algorytmy, których nie można zrównoleglać, więc układy FPGA i ASIC ”
Głównym ogranicznikiem układów FPGA jest rozmiar krzemu - ile logiki można zmieścić na układzie? Drugi to taktowanie zegara, ponieważ w FPGA trudno jest zoptymalizować takie rzeczy, jak hotspoty, wycieki i przesłuchy. Nowsze metody wytwarzania zminimalizowały te problemy, a Intel połączył siły z Altera, aby zapewnić układ FPGA, który może być wykorzystywany przez inżynierów do wykorzystania zalet „niestandardowego krzemu” jako koprocesora na serwerze. W pewnym sensie nadchodzi.
Czy układy FPGA kiedykolwiek zastąpią procesory i układy GPU?
Prawdopodobnie nie w najbliższym czasie. Najnowsze procesory i układy graficzne są MASYWNE, a krzem doskonale dostrojony pod kątem wydajności termicznej i elektrycznej. Nie można zoptymalizować układów FPGA w taki sam sposób, jak niestandardowego ASIC. Z wyjątkiem niektórych przełomowych technologii, procesor prawdopodobnie pozostanie rdzeniem twojego komputera dzięki koprocesorom FPGA i GPU.
źródło
Rzeczywiście istnieją wyspecjalizowane karty do szybkich obliczeń, np. Xilinx ma listę 178 kart PCI-e wykorzystujących układy FPGA, a około jedna trzecia z nich to „układy liczbowe” z jednym lub kilkoma mocnymi układami FPGA i dużą ilością płytka pamięci DDR. Istnieją również wysokowydajne płyty DSP ( przykład ) przeznaczone do zadań obliczeniowych o wysokiej wydajności.
Myślę, że popularność kart GPU wynika z ich celu, jakim jest szersza grupa klientów. Nie musisz inwestować w specjalny sprzęt, aby grać z Nvidią CUDA, więc zanim wykonasz zadanie wymagające specjalnego sprzętu, procesory graficzne Nvidia będą miały przewagę konkurencyjną, ponieważ już wiesz, jak je programować.
źródło
Myślę, że odpowiedź na twoje pytanie zależy od tego, jak zdefiniować obliczenia o wysokiej wydajności.
Zasadniczo obliczenia o wysokiej wydajności są związane z czasem obliczeń. W takim przypadku lubię udostępniać łącze wysokowydajnego klastra obliczeniowego .
Link jest określony przyczynę użycia GPU; Korzystanie z kart graficznych (a raczej ich układów GPU) do wykonywania obliczeń na potrzeby obliczeń gridowych jest znacznie bardziej ekonomiczne niż używanie procesorów, mimo że jest mniej precyzyjne.
źródło
double
precyzji, a nie tylko 32-bitowej pojedynczej precyzjifloat
. (Niektóre zwykłe procesory graficzne oszczędzają na HW dladouble
). Wszyscy główni dostawcy obsługują matematykę IEEE FP (myślę, że nawet w przypadku denormali). Tak więc nie ma utraty precyzji, chyba że chcesz wymienić precyzję na wydajność, np. 16-bitowy FP z pół-precyzją, który ma jeszcze lepszą przepustowość na niektórych urządzeniach (i oczywiście połowę przepustowości pamięci). Kod o wysokiej wydajności w procesorach często wykorzystuje również 32-bitfloat
, aby uzyskać dwa razy więcej elementów na wektor SIMD i połowę przepustowości pamięci.