Arytmetyka o mieszanej precyzji
Arytmetyka o mieszanej precyzji jest formą arytmetyki zmiennoprzecinkowej , która wykorzystuje liczby o różnych szerokościach w jednej operacji.
Arytmetyka
Powszechnym zastosowaniem arytmetyki o mieszanej precyzji jest operowanie na niedokładnych liczbach o małej szerokości i rozszerzanie ich do większej, dokładniejszej reprezentacji. Na przykład dwie liczby zmiennoprzecinkowe o połowie precyzji lub bfloat16 (16-bitowe) można pomnożyć razem, aby uzyskać dokładniejszą liczbę zmiennoprzecinkową o pojedynczej precyzji (32-bitowej). W ten sposób arytmetyka o mieszanej precyzji zbliża się do arytmetyki o dowolnej precyzji , aczkolwiek z małą liczbą możliwych dokładności.
Arytmetyka o mieszanej precyzji jest reklamowana w dziedzinie uczenia maszynowego , ponieważ algorytmy opadania gradientu mogą wykorzystywać zgrubne i wydajne pływaki o połowie precyzji do niektórych zadań, ale mogą być dokładniejsze, jeśli używają bardziej precyzyjnych, ale wolniejszych pływaków o pojedynczej lub podwójnej precyzji . Niektóre platformy, w tym procesory graficzne Nvidia i AMD , zapewniają w tym celu arytmetykę o mieszanej precyzji, używając w miarę możliwości zgrubnych liczb zmiennoprzecinkowych, ale w razie potrzeby rozszerzając je do wyższej precyzji.
Algorytmy iteracyjne (takie jak opadanie gradientu ) są dobrymi kandydatami do arytmetyki o mieszanej precyzji. W algorytmie iteracyjnym, takim jak kwadratowy , można dokonać zgrubnej całki i udoskonalić ją w wielu iteracjach, aż błąd precyzji sprawi, że najmniejsze dodanie lub odjęcie od zgadywania jest nadal zbyt zgrubne, aby mogło być akceptowalną odpowiedzią. Kiedy tak się dzieje, precyzję można zwiększyć do bardziej precyzyjnej, co pozwala na użycie mniejszych przyrostów do przybliżenia.
Superkomputery , takie jak Summit , wykorzystują arytmetykę o mieszanej precyzji, aby być bardziej wydajnym pod względem pamięci i czasu przetwarzania, a także zużycia energii.