Uruchomiłem kod dynamiki molekularnej (MD) GROMACS w klastrze Ubuntu Linux składającym się z węzłów zawierających 24 procesory Intel Xeon. Moje szczególne zainteresowanie okazuje się nieco wrażliwe na zmiennoprzecinkową precyzję arytmetyczną, więc musiałem uruchomić GROMACS z podwójną precyzją, a nie z pojedynczą precyzją - pomimo wyższych kosztów obliczeniowych podwójnej precyzji. Tak więc w klastrze skompilowałem GROMACS z podwójną precyzją.
Zastanawiam się nad zakupem niektórych układów GPU, ponieważ może istnieć przyspieszenie względne („przyspieszenie GPU”) w stosunku do procesorów. Potrzebuję jednak procesora graficznego, który pozwoli mi wykonywać arytmetykę o podwójnej precyzji. Czy wiesz, czy taki sprzęt jest dostępny na rynku? Ostatnich post na liście mailingowej GROMACS sugeruje, że podwójne precyzyjne GPU nie są dostępne na rynku:
Sprzęt jeszcze go nie obsługuje [arytmetyka podwójnej precyzji] AFAIK.
Ta strona Wikipedii wydaje się sugerować, że układy GPU o podwójnej precyzji są rzadkie, ponieważ mogą być nieefektywne:
Implementacje liczb zmiennoprzecinkowych na procesorach graficznych Nvidia są w większości zgodne z IEEE; nie dotyczy to jednak wszystkich dostawców. Ma to wpływ na poprawność, które są uważane za ważne w niektórych zastosowaniach naukowych. Podczas gdy 64-bitowe wartości zmiennoprzecinkowe (zmiennoprzecinkowe podwójnej precyzji) są powszechnie dostępne w procesorach, nie są one powszechnie obsługiwane w procesorach graficznych; niektóre architektury GPU poświęcają zgodność z normami IEEE, podczas gdy innym brakuje podwójnej precyzji. Starano się emulować wartości zmiennoprzecinkowe podwójnej precyzji na GPU; jednak kompromis prędkości neguje jakąkolwiek korzyść z odciążenia obliczeń na GPU.
Ta strona NVIDIA Tesla , odwołując się do „Szczytowej wydajności zmiennoprzecinkowej podwójnej precyzji” na wykresie, wydaje się sugerować, że obliczenia podwójnej precyzji można w rzeczywistości wykonać na ich procesorach graficznych (choć przy wyższych kosztach obliczeniowych).
Więc w co mam wierzyć? Czy masz jakieś doświadczenie z tym problemem?
źródło
Odpowiedzi:
Podwójna precyzja jest dość powszechna w nowszych procesorach graficznych. Na przykład posiadam NVIDIA GTX560 Ti (dość niski poziom, jeśli chodzi o przetwarzanie), który nie ma problemu z uruchomieniem ViennaCL z podwójną precyzją. Od tutaj (sekcja 4) wydaje się wszystkich kart NVIDIA z GTX4xx dalej wspierać podwójnej precyzji natywnie.
Sądzę, że informacje GROMACS są po prostu nieaktualne.
źródło
Każdy procesor graficzny z SM 1.3 (Tesla / GTX2xx) lub lepszy ma sprzętową podwójną precyzję. Począwszy od architektury Fermi, warianty Quadro i Tesla mają lepszą podwójną precyzję niż konsumenckie modele Ge Force.
Dziwne jest to, że obsługa podwójnej precyzji Ge Force Kepler / GTX6xx jest gorsza niż obsługa GeForce Fermi / GTX5xx w celu poprawy różnicowania Tesli w Kepler K20 / K20x. Wzmacniając dziwność, Tesla K10 ma wsparcie podwójnej precyzji na poziomie Ge Force. A ostatnio wprowadził to całkowicie chaos, wprowadzając Ge Force GTX Titan, który ma pełną podwójną precyzję i wiele funkcji CUDA obecnych tylko w modelach Tesli. GTX Titan kosztuje ~ 1000 $ - okazyjna okazja IMO.
źródło
Powinieneś także przeczytać dalszy post z listy mailingowej GROMACS: http://lists.gromacs.org/pipermail/gmx-users/2013-April/080604.html . To, czy implementacja GPU w MD obsługuje użycie podwójnej precyzji w porównywalnym stopniu, jest co najmniej tak samo ważne, jak to, czy podwójna precyzja jest dostępna na sprzęcie.
źródło
Według tej dyskusji procesory graficzne Tesla i Titan są najbardziej odpowiednie (spośród układów GPU Nvidia) do podwójnej precyzji.
Patrząc na przykład na liście Nvidia GPU na Wikipedii (podobny stół dla AMD GPU jest tutaj ) i porównując pojedynczą i podwójną moc obliczeniową precyzja (pod względem GFLOPS) widzi, że podwójna wydajność precyzja jest znacznie mniejszy niż połowa pojedynczej precyzji wydajność dla większości innych układów GPU. Na przykład w przypadku serii GTX 900 w artykule wspomniano, że wydajność podwójnej precyzji wynosi 1/32 wydajności pojedynczej precyzji, podczas gdy w tym artykule w Wikipedii stwierdzono, że w przypadku serii GTX 700 wydajność podwójnej precyzji wynosi 1/24 pojedynczej precyzji wydajność (z wyjątkiem Titana, gdzie może wynosić nawet 1/3 wydajności pojedynczej precyzji).
źródło