Поддерживают ли доступные в настоящее время графические процессоры двойной точности с плавающей запятой?

17

Я запускал код молекулярной динамики (MD) GROMACS на кластере Ubuntu Linux, состоящем из узлов, содержащих 24 процессора Intel Xeon. Моя конкретная достопримечательность оказывается несколько чувствительной к арифметической точности с плавающей запятой, поэтому мне пришлось запускать GROMACS с двойной точностью, а не с одинарной точностью - несмотря на более высокую вычислительную стоимость двойной точности. Итак, на кластере я скомпилировал GROMACS с двойной точностью.

Я подумываю о покупке некоторых графических процессоров, так как может быть ускорение по отношению к процессорам. Однако мне нужен графический процессор, который позволит мне выполнять арифметику с двойной точностью. Знаете ли вы, если такое оборудование доступно в продаже? Последний пост в списке рассылки GROMACS предполагает , что графические процессоры с двойной точностью не коммерчески доступны:

Аппаратное обеспечение не поддерживает [арифметику двойной точности], но AFAIK.

Эта страница Википедии, кажется, предполагает, что графические процессоры двойной точности встречаются редко, поскольку они могут быть неэффективными:

Реализации с плавающей точкой на графических процессорах Nvidia в основном соответствуют IEEE; Однако это не относится ко всем поставщикам. Это имеет значение для правильности, которые считаются важными для некоторых научных приложений. Хотя 64-битные значения с плавающей запятой (с плавающей запятой двойной точности) обычно доступны на процессорах, они не всегда поддерживаются на графических процессорах; некоторые архитектуры GPU жертвуют соответствием IEEE, в то время как другим вообще не хватает двойной точности. Были попытки эмулировать значения с плавающей запятой двойной точности на графических процессорах; тем не менее, компромисс между скоростью сводит на нет любые преимущества, прежде всего, для выгрузки вычислений на графический процессор.

Эта страница NVIDIA Tesla со ссылкой на «Пиковую производительность с плавающей запятой двойной точности» на диаграмме, похоже, предполагает, что вычисления с двойной точностью могут фактически выполняться на их графических процессорах (хотя и с более высокими вычислительными затратами).

Итак, во что мне верить? У вас есть опыт решения этой проблемы?

Андрей
источник
посмотрите на gtx titan, он основан на gk110 и имеет поддержку двойной цены ..... хотя он немного дорогой ..... около $ 1 тыс.
В Википедии не всегда есть актуальная информация о быстро меняющихся темах ...
Джефф

Ответы:

17

Двойная точность довольно распространена на новых графических процессорах. Например, у меня есть NVIDIA GTX560 Ti (довольно низкий уровень, когда дело доходит до вычислений), у которого нет проблем с запуском ViennaCL с двойной точностью. Из здесь (раздел 4) оказывается все карты NVIDIA с GTX4xx вперед поддерживают двойную точность изначально.

Я предполагаю, что информация GROMACS просто устарела.

Годрик Провидец
источник
5
Очень устарел. В частности, процессоры NVIDIA уже много лет поддерживают двойную точность. Честно говоря, он был значительно медленнее, чем возможности с одинарной точностью, но он был (и не только эмулирован) в самых первых графических процессорах под маркой Tesla, и, вероятно, до этого. Более поздние воплощения значительно сократили разрыв между сигналом и поддержкой двойной точности.
Майкл Грант
Да, в статье, которую я привел, упомянутые цифры примерно в 8 раз отличаются по производительности, когда эмуляция была необходима, но теперь, когда чипы рассчитаны на нее, она приближается к коэффициенту 2. Я бы сказал, что это, вероятно, связано с Задержка памяти карты от VRAM до процессоров, но это просто предположение с моей стороны.
Годрик Провидец
На самом деле основной причиной было то, что более ранние графические процессоры просто не выделяли много места для вычислений с двойной точностью вычислений. Согласно этой странице , серия GK110 имеет в 8 раз больше единиц двойной точности на «блок SMX» (что бы это ни значило), чем серия GK104.
Майкл Грант
1
Ах, да, я на самом деле имел в виду 2-кратную разницу современных графических процессоров в отношении комментария к пропускной способности памяти.
Годрик Провидец
Попался. Я не хотел спускаться по этой кроличьей норе. Ваш ответ в порядке, поэтому я прокомментировал и проголосовал за вас, вместо того, чтобы добавить свой собственный ответ ;-)
Майкл Грант
8

Каждый графический процессор с SM 1.3 (Tesla / GTX2xx) или выше имеет аппаратную поддержку двойной точности. Начиная с архитектуры Fermi, варианты Quadro и Tesla имеют лучшую поддержку двойной точности, чем потребительские модели Ge Force.

Что странно, так это то, что поддержка двойной точности Ge Force Kepler / GTX6xx уступает поддержке GeForce Fermi / GTX5xx в улучшении дифференциации Tesla в Kepler K20 / K20x. Усиливая странность, Tesla K10s имеют поддержку двойной точности уровня Ge Force. И совсем недавно это привело в полное замешательство введение Ge Force GTX Titan, который имеет полную поддержку двойной точности и многие функции CUDA, которые присутствовали только в моделях Tesla до сих пор. Титан GTX стоит ~ 1000 долларов - кричащая сделка IMO.


источник
2

Вам также следует прочитать последующее сообщение из списка рассылки GROMACS: http://lists.gromacs.org/pipermail/gmx-users/2013-April/080604.html . Поддерживает ли реализация графического процессора в MD использование двойной точности в сопоставимой степени, по крайней мере, так же важно, как и то, доступна ли двойная точность на оборудовании.

mabraham
источник
0

Согласно этому обсуждению , графические процессоры Tesla и Titan являются наиболее подходящими (из графических процессоров Nvidia) для двойной точности.

Посмотрев, например, список графических процессоров Nvidia в Википедии (аналогичная таблица для графических процессоров AMD здесь ) и сравнив вычислительную мощность одинарной и двойной точности (с точки зрения GFLOP), можно увидеть, что производительность двойной точности намного меньше, чем половина одинарной точности. производительность для большинства других графических процессоров. Например, для серии GTX 900 в статье упоминается, что производительность с двойной точностью составляет 1/32 от производительности с одинарной точностью, а в статье из Википедии говорится, что для серии GTX 700 производительность с двойной точностью составляет 1/24 от точности с одинарной точностью. производительность (за исключением Titan, где он может достигать 1/3 от производительности с одинарной точностью).

Андре Хольцнер
источник