Расчет gflops для двойной точности
У меня есть устройство, предоставляющее максимальные спецификации GFLOPS, и я хочу измерить, насколько далеко от него находится моя программа. Поскольку все данные, которые я использовал, имели двойную точность, я должен умножить количество операций на 2, чтобы получить значение GLOPS и выполнить сравнение?
2 ответа
Операция с плавающей точкой с двойной точностью №1 по-прежнему является одной операцией с плавающей точкой.
Большинство графических процессоров обрабатывают данные с двойной точностью медленнее, чем с одинарной точностью, поэтому должно быть две спецификации пиковых значений GFLOPS. Одна пиковая спецификация GFLOPS с одинарной точностью и одна пиковая спецификация GFLOPS с двойной точностью Иногда это нарушается и делается дальше, так что (например) пиковая производительность деления указывается отдельно от пиковой производительности сложения.
" ... я должен умножить количество операций на 2, чтобы получить значение GLOPS и провести сравнение?"
Нет, не для любой (кроме одной) из этих карт: http://www.geeks3d.com/20140305/amd-radeon-and-nvidia-geforce-fp32-fp64-gflops-table-computing/.
Обратите внимание, что в большинстве случаев это соотношение варьируется от 1/24 до 1/3, также обратите внимание, что у "Видеокарты для рабочих станций" есть отношение 1/2 - оно специально разработано таким образом, чтобы повысить производительность DP.
Вам необходимо прочитать спецификации для оборудования на вашей карте и определить, какой производительности вам следует ожидать при переходе на DP с SP. Будет небольшая дополнительная нагрузка для загрузки дополнительной точности в регистры (память, в которой аппаратное обеспечение будет выполнять операцию) и для получения дополнительной точности после каждой операции.