vak: (Default)
[personal profile] vak
Покажу вам одну картинку с работы. Тут есть над чем поразмыслить. Измеряется скорость работы симулятора нашего хитрого вычислителя для нейронных сетей машинного обучения. Испытываются три компьютера: ноукбук Macbook Pro, сервер Intel Xeon и десктоп iMac с процессором Intel i9. Пробуем два компилятора: Clang и GCC.

Для бенчмарка я взял одну из самых толстых нейронных сеток из нашей внутренней коллекции. Не буду уточнять, какую именно, скажу только, что после компиляции сетки в систему команд вычислителя объём бинарной программы получается 225 мегабайт. И ещё данных несколько сот мегабайт.

Чип, который мы сейчас выпускаем и предлагаем юзерам - это первая версия архитектуры. К ней имеем симулятор "А". Он однопоточный, то есть нагружает только одно ядро компьютера.

Вторую версию архитектуры мы закончили в прошлом году, и к ней сделали симулятор "B". Он уже многопоточный: по умолчанию задействует все имеющиеся ядра процессора. Но для целей сравнения мы будем его запускать также и в однопоточном режиме. Как сделана многопоточность - я уже рассказывал в одном из постов.

А дальше глядите на картинку и делайте выводы. Тут несколько аспектов.
  • Можно сравнивать между собой архитектуры ARM (Apple M2) и Intel (Xeon, i9).
  • Можно оценивать эффективность компиляторов Clang супротив GCC. Режим оптимизации здесь -O3 -ftree-vectorize. Версия компилятора тоже влияет.
  • Можно смотреть на рост производительности при включении многопоточности. Платформы заметно отличаются. На Apple M2 имеется 12 ядер, на Xeon 16 ядер, на i9 тоже как бы 16, но только восемь физические. 
  • Можно задаться вопросом про влияние SIMD-сопроцессора: Neon на архитектуре ARM и SSE на Интеле.

Date: 2024-02-04 08:18 (UTC)
kondybas: (Default)
From: [personal profile] kondybas
Хеон на 2ГГц - єто должен біть довольно старенький хеон. Судя по версиям шланга и гцц в более новіх компиляторах под него даже оптимизации заобсолетили.

Интересно біло бі сравнить еще и интелевский компилятор.

Date: 2024-02-05 04:09 (UTC)
spamsink: (Default)
From: [personal profile] spamsink
В чем разница между вторым слева GCC 12.3 и самым правым GCC 12.3?

Date: 2024-02-05 05:13 (UTC)
henry_flower: A melancholy wolf (Default)
From: [personal profile] henry_flower
о, gnuplot! ггг

Date: 2024-02-05 16:27 (UTC)
spamsink: (Default)
From: [personal profile] spamsink
Понятно. Интересно, что там в GCC конкретно для M2 придумали, если на интеле нет такой разницы.