Про компьютеры

Есть вот такое мнение, что "компьютеры перестали становиться быстрее". Пару лет назад я его даже развеивал на хайлоаде, но в докладе упирал на SSE/AVX/итп.

Но тут понадобилось попрофайлить кой-чего на Core2 (у котогого aligned/unaligned access резко отличаются). Достал с полки старый свой макбук, 2007-го года, Core2 Duo, ~2.2гигагерца (могу ошибаться, по памяти пишу). Надо теперь собрать Qt. Вот Qt 5.3.2 собиралося у меня почти 7 часов (400 с чем-то минут по time), на двух ядрах.

Ну ладно, думаю, у этого ноутбука была тяжелая судьба, я ему всю систему охлаждения перебирал т.к. он throttle-лся (термопаста повысохла), может опять болеет.

Отобрал у жены ноут. Celeron T3100, то же поколение Сore2, 1.9гигагерца, винды. Вот 2010-я студия собирает, 5 часов уже прошло, до QtDeclarative добрались. Значит еще не меньше часа.

Для сравнения, i7-4770 собирает тот же Qt 5.3, судя по датам создания файлов, 36 минут. В 10 раз быстрее. Да, вдвое больше ядер, ~вдвое больше частота, но еще 2.5 раза просто от большей лучшести.

Это вот я к тому, что те кто гордо не апгрейдит свои Q6600, они на самом деле заметно отстали от.

Comments

Тоже заметил большой скачок производительности, заменив в свое время C2D на Core i5 2-го поколения. Разница между 2-м, 3-м и 4-м поколением уже не такая глобальная, на мой взгляд. Если при переходе на Core i5 выигрыш был в несколько раз и видим невооруженным взглядом (грубо говоря - конвертация RAW 18 Мпикс на i5 была чуть ли не быстрее 8 Мпикс на С2D похожей частоты, что дает как раз ~2.5 раза), то игрища со следующими i5/i7 такого прихода не дали.

Вот-вот.
И вот материалистическое объяснение: если код написан левой ногой, за выравниванием (больших данных) не следили, то Core2 сильно проигрывает всем i5/i7 по unaligned access. В разы.

> Разница между 2-м, 3-м и 4-м поколением уже не такая глобальная, на мой взгляд
Core i7 2360QM 2Ghz почти ровно в два раза медленнее, чем Core i7 4750QM 2Ghz.
Это мой старый и новый ноуты.

А на какой задаче (или "по каким тестам") разница получается в два раза?

То есть вот я знаю, где так может быть (при условии наличия нужного кода в программе): AVX2 может быть *сильно* быстрее чем SSE4.2 просто за счет вдвое большей длины вектора в этих инструкциях (ну и плюс там есть всякое).

Ну вот еще на кэши налетал, да в Haswell гистограмма быстрее считается (но не в 2 раза, а скорее в 1.5-1.6).

Кодек видео в Haswell скорее всего сильно быстрее. Видео - ну тем более, в основном в видео и вкладывался Intel

Но интересно услышать еще примеров.

Никаких AVX, Supper MMX и прочего. Обычная компиляция, питоновский пистон (http://zentraal.com/docs/benchmarking-machine-performance-with-pystone/). Кроме добавления новых инструкций еще и ускоряют старые. Плюс кокретно на 4750 те 128Mb видеопамяти, которая стоит на одной подложке с чипом, используется как кеш 4го уровня.

Для сборки узкими местами всегда были память и диск, большая часть разницы легко может оказаться от большого кэша и SSD. Кэш - это большая лучшесть процессора, но не навсех задачах он так сильно проявляется.

Ну вот диск то с чего? Тот Qt целиком в дисковый кэш влазит.

То есть я делал эксперименты, собирал FreeBSD с HDD и SSD. На SSD - быстрее, но не в разы.

Узкое место для C++ - процессор (и память, наверное)

На практике не так. При прочих равных 2x ядер дает больше прироста чем HDD -> SSD.

Да, поправка - не только 2x ядер, но и 2x частоты.

На мелком софте при этом может упираться в I/O, но не забываем, что всякие оптимизаторы - довольно жручи.

Каждое поколение процессоров на 5-7% быстрее предыдущего, редко больше (не считая SSE/AVX). Поэтому все и говорят что "перестали становиться быстрее" - плюс ко всему эта оценка субъективная - т.е. "винда как грузилась минуту, так и грузится а я процессор поставил новый! Компы перестали становиться быстрее!!!". Иногда еще бывают чуть более серьезные изменения. Поэтому выходит, что современные Core i3 зачастую быстрее чем тот же Q6600.

Ну вот 4 поколения (ну или 5, считая C2Q отдельным) - разница на практической задаче в 10 раз.
Сам удивился.

Ну в 10 раз - это еще и колличество ядер сыграло роль, но там было три мажорных обновления - первые core i, sandy bridge и haswell - из них только последний дал не очень значительный прирост скорости.

Ну и новые инструкции - компиляторы их тоже могут использовать же :)

Между SB и Haswell был еще Ivy Bridge. Но его в руках не держал.

Между SB и Haswell - офигенный прирост. Вот цитата из меня же:

Вместе с тем, про Haswell имею сказать, что апгрейд с Sandy Bridge мне кажется оправданным. Т.е. на оптимизированных под SandyBridge программах (своих) я вижу разницу раза в полтора, если на глазок. Более точно буду еще мерять.

blog.lexa.ru/2013/07/01/o_benchmarkakh.html

UPD: я перестал понимать. Сначала вы пишете "поколение - 5-7%". Потом - "только последний шаг не дал большого прироста".

[quote]Между SB и Haswell - офигенный прирост[/quote]
В некоторых задачах - да, в среднем - не очень. Между Westmere и Sandy Bridge был больше, чем между Ivy и Haswell. За это последний обычные люди поругивали какое-то время.

[quote]Сначала вы пишете "поколение - 5-7%". Потом - "только последний шаг не дал большого прироста".[/quote]
В среднем одно поколение дает прирост 5-7% (и в среднем по задачам, в том числе) - конкретно Sandy Bridge -> Ivy Bridge был около 5% прироста, Ivy -> Haswell - тоже как-то также. Были исключения в виде Westmere (core i первого поколения) -> Sandy Bridge (core i второго поколения) где прирост был больше (и само обновление было заявлено как более существенное), но тоже кроме специфических задач прироста в 2 раза там быть не должно.

На обработке RAW'ов будет больше чем в среднем, но про "полтора раза" я честно говоря не верю, если каким-то образом не используется OpenCL или AVX2 в Haswell'е. В 15-20 можно поверить еще.

Критическое место в обработке raw - подсчет гистограммы.
А гистограмма от перехода SB-Haswell ускорилась больше чем в полтора раза. Кэши сильно лучше.

с точки зрения будничного веб-серфинга это не железо виновато - 2 года назад мой i5 3450S уверенно открывал Хром с 20 активными вкладками, сегодня он уже грузит систему на 100% и не вполне справляется

Ну и это тоже, вне всякого сомнения.
Но я сравнивал даже не просто сравнимое, а вот ровно одно и то же: одни исходники, один компилятор, одна версия винды.

Скорее всего это флешреклама без flashblock грузит процессор.

C2D уже более 5 лет. Как попадает в руки T60/T61/T500 - хочется его об стену.

Ну, T3100 и Q6600, всё же, сильно отличаются. Особенно по объёму кэша (в 8 раз). Так что, на компиляции с 4770 у 6600 будет разница не более, чем в 2—3 раза, скорее всего. Что выглядит уже не так фатально.

На макбуке у меня T7500. Кэша 4, клок 2.2.
Надо смотреть еще на memory bw, но вот сдается мне, что "на ядро" там не меньше чем у Q6600 получится даже с учетом ноутбучной памяти (лень сейчас развинчивать чтобы посмотреть, но по-моему там не 1600-я, а скорее 1333).
То есть относительно Q6600 я бы ожидал разницы раза в два или даже меньше. Но сравнить не с чем, я даже i7 первого поколения изжил, самое старое что есть под рукой десктопное i7-2600 и пара i3 того же поколения.

Да, переход и с c2Q на i7(-920 в моем случае) и с i7-920 на i7-2600 и с i7-2600 на i7-4770 - каждый раз давал приросты не "5-7%", а "десятки процентов" как минимум. Потому что на самом деле еще же и memory bw очень сильно прирастает каждый раз.

Так это же сравнение процессора ноутбука и десктопа. Я уверен что и современный ноутбук проиграет в два раза минимум. Ну "М" точно, "U" и подавно, всякие "QM" не знаю — в руках не держал, но думаю в полтора.

А я вот не уверен что "в два раза минимум", если имеются в виду "на одинаковой частоте".

Ну то есть вот надо собраться с духом и собрать тот же Qt 5.3 на свежем (годовалом) макбуке про. Под виндой, к примеру. Т.е. он медленнее моего десктопа, но по ощущениям - вот пропорционально частоте, не более.

Да, поправку на частоту упустил, действительно.

Что получится с mbp интересно, пишиште как проведете тест.

Да, я уже загорелся, поэтому как руки дойдут.

Но мне, блин, нужен для работы C2D, потому что юзеры со старыми машинами местами плакают. А на HDD работать не могу, отвык.
Поэтому все постепенно, сначала SSD-шку в старый ноут и тайминги уже по взрослому, с не по датам файлов, дальше сравним с новым, с i7-2600, ну и с десктопом.

Ну тепло хоть в комнате стало-то? Пропотели, веничек берёзовый и вот это всё что идёт в боксе с core?

Разве ноутбучный процессор может согреть нормально?

Ну и вообще, 130 ватт было у первых i7, в сравнении с ними core2 - еле греют.