Как стать автором
Обновить

Комментарии 32

> А в замен очень хочется услышать о ваших случаях, когда вам требуется измерение FLOPS в программах

Вычислял округленно «на бумажке» FLOPS'ы при выборе процессора для разработки.
Собственно там был даже комплекс измерений, так как нужно была не только знать производительность процессора, но и ширину шины, и размер кэша.
PS: «взамен», конечно же, слитно :)
Спасибо, поправил.
«На бумажке» вычислялось требования по FLOPS'ам алгоритма?
Как ширина шины влияет на измерения?
> «На бумажке» вычислялось требования по FLOPS'ам алгоритма?
Угу, требуемое количество double-fp операций в секунду.
> Как ширина шины влияет на измерения?
На flops'ы — никак. Но flops был не единственный определяющий фактор. Код довольно активно работал с памятью, поэтому битность шины тоже выбиралась соответствующая задаче. Собственно в упрощении до минимума задача звучала так: «мы хотим обрабатывать XXX байт данных алгоритмом Y не больше чем за T». С маленькой шиной пропускная способность контроллера памяти являлась лимитирующей, просто потому что за N тактов процессор не получал весь объем данных.
Несовпадение тактов с памятью оказывала куда меньшее влияние. По крайне мере, мне так казалось, да и по расчетам тоже выходили потери буквально 10-15% если пропускаем половину процессорного такта, но с широкой шиной.
Меня просто смутило то, что физическая ширина шины учитывалась как параметр. Обычно в рассчетах используют максимальную пропускную способность. Например, если я правильно помню, P4 умел зашвыривать в кэш сразу две линейки из памяти, по фронту и спаду одного такта (как раз чтобы смягчить проблему скорости загрузки данных в FP-модуль из-зи ширины шины).
НЛО прилетело и опубликовало эту надпись здесь
Эхх, где же купить оптические процессоры:
p.s. например этот, созданный 2003-году и скорее всего загнобленный мэтрами покрупнее. Под него lapack идеально оптимизирован (собственно процессор умеет только матрицы перемножать, но со скоростью 8 TeraMAC, MAC — multiply accumulae operations per second), а в от другие алгоритмы уже не так красиво ложатся.
Есть инструкции FMA, под них тоже бенчмарки идеально оптимизированы. Этот набор инструкций уже поддерживается в АМД Бульдозер и будут поддерживаться в следующем процессоре Intel Haswell.
А в ARM уже давно инструкция MLA есть :)
Правда насчет SIMD'a сомневаюсь.
SIMD в ARM'e тоже есть, но толко для 8/16-битных данных. Неон расширил до 128-бит. Но MLA-инструкция, как я понимаю, с SIMD регистрами работать не может, как и с FP-данными. Может я и ошибаюсь.
Я как раз и выразил сомнения в том, что есть SIMD-аналог MLA.
Для FP точно есть — VMLA. Причем с самых первых VFP.
Проверил только что, есть и для NEON'a.
К сожалению, мои познания в ARM-архитектуре перестали обновляться где-то во времена TI OMAP первого поколения…
Статья замечательная, но главный вопрос — где купить такие тапки?
Если поясните, какие тапки имеются ввиду, то может я могу подсказать?
Вот эти :)
image
Из названия поста очевидно же, что это не тапки, а шлепки (flip-flops) :)
Ну да ладно, вот они, а цена меньше 20-ти баксов без пересылки (эти ребята теперь мне должны роялити за рекламу :)
FLOPS'ы — очень экзотическая величина. Интересна только если числомолотилка занята вычислениями.

А у меня в хозяйстве более всего загружены процессоры, занятые перекладыванием байтиков из одного места в другое с минимальной обработкой.

А float point я вижу только в попугаемерках, которые int на dt делят.
Измерил на ноуте — вышло 8 гигафлопс, эх

i5, CPU frequency: 2.521 GHz
Number of CPUs: 1
Number of cores: 2
Number of threads: 4
Такой обреченный «эх» в конце предложения :) Это вполне даже много. Суперкомп Cray Y-MP (построен в 1988 году) имел суммарно 2,3 Гфлопс.
Напишите программу, которая попробует эти 8 Гфлопс использовать.
когда то и 400кб памяти хватало всем )

в том то и дело, что на практике производительность существенно ниже: и система забирает часть ресурсов, да и ввод/вывод тоже, так что монтекарлить с такими ресурсами не очень удобно )
Я не знаю, как система может забирать часть ресурсов (если только не работают активно какое-нибудь индексирование и антивирусы).
Попробовал «помонтекарлить» на своей машине — вычисление числа пи методом Монтекарло. Сходу получиось только .2 GFLOPS померенных программой. При определенном усилии удалось поднять до 1.2. Вижу пути поднять еще больше, но требуется использование VML библиотеки. И все-равно все возможности машины не использованы.
ну а что, например у меня работает в фоне? дропбокс, системный монитор, компиз и прочее, почему то, жрут процессор, как заведенные. И если во время теста этого всего не было, то при нормальной работе от этого уйти сложно.

ну моделировать то можно разное и по разному, иногда и три потока из четырех на процессоре полностью нагружаются если правильно распараллелится.

Мой рабочий 4-5ти летний PentiumD показал ~7,6.
А виртуалка с выделенным 1м ядром Xeon E5310 (1,6 ГГц) с W7x86 на борту — 4,3.
не слабо, разгоняли?)
Сам в шоке. В том-то и дело что не разогнан.
image
скорее всего потому, что частота больше, да и размеры кэша неизвестно как соотносится, ведь бенчмарк там неслабыми матрицами ворочает.
Xeon E5310 при вдвое меньшей частоте дает такие показатели, и это в виртуальной машине.
Тут частота конечно влияет и кэш. Но i5 должен и кэша поболе иметь и операции «умнее» выполнять по идее.
Да, странно и несколько печально.
Надо будет прогнать тест еще пару раз, но вряд ли, конечно, что то кардинально измениться.
Интересно, атом сколько покажет, надеюсь, что хотя бы полгига.
Надо бы запустить на какой-нить серьезной машине. Сейчас жалко нет серверов свободных, а то бы скормить эту программулину базаданческому серверу или Exchange-у у которых по 16 Xeon-ных ядер. Аж интересно, какова будет разница.
жаль, что нет проекта для шаринга подобной информации
Зашла специально сказать, что это — великий пост. Я уже ровно 4 года посылаю к нему всех, интересующихся FLOPS, и они больше даже ничего не спрашивают — все понятно отныне и вовеки веков. Спасибо еще раз!
Спасибо за эту приувеличенную оценку важности моего поста :)
А вообще надо бы обновить статью — воды и силикона с тех пор много утекло…
пожалуйста :) Но я думаю, поменялись только абсолютные цифры, все остальное — вечно, так что можешь сэкономить силы.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий