Intel или AMD, для С++
От: LuciferSaratov Россия  
Дата: 08.07.23 07:02
Оценка:
Приветствую всех присутствующих.

Что сейчас лучше купить для С++?
Мне надо, чтобы в Visual Studio код быстро компилировался.
Re: Intel или AMD, для С++
От: imh0  
Дата: 08.07.23 07:57
Оценка:
Здравствуйте, LuciferSaratov, Вы писали:

LS>Что сейчас лучше купить для С++?

LS>Мне надо, чтобы в Visual Studio код быстро компилировался.

Больше ядер — AMD.
Если софт не умеет в много поточность, а VS именно такое — Intel
Re[2]: Intel или AMD, для С++
От: Michael7 Россия  
Дата: 08.07.23 08:16
Оценка:
Здравствуйте, imh0, Вы писали:

I>Больше ядер — AMD.

I>Если софт не умеет в много поточность, а VS именно такое — Intel

По-моему похрен по большому счету, современные процессоры и тех и других компилируют (и многое другое делают) плюс/минус одинаково быстро. Но если так сильно важно, то надо смотреть тесты конкретных версий VS под конкретные процессоры.
Re: Intel или AMD, для С++
От: kov_serg Россия  
Дата: 08.07.23 10:08
Оценка:
Здравствуйте, LuciferSaratov, Вы писали:

LS>Что сейчас лучше купить для С++?

LS>Мне надо, чтобы в Visual Studio код быстро компилировался.
Бери процессор с большим количеством каналов памяти.
Компиляция упирается не в вычислительные возможности, а в пропускную способность памяти.
Re: Intel или AMD, для С++
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 08.07.23 11:21
Оценка:
Здравствуйте, LuciferSaratov, Вы писали:

LS>надо, чтобы в Visual Studio код быстро компилировался.


Тогда выбирайте процессор по наибольшей линейной производительности на ядро, затем — по количеству ядер.

Но код с большим количеством сложных и вложенных шаблонов требует приличного дискового обмена, так что недостаточно быстрый диск может испортить картину.
Re[2]: Intel или AMD, для С++
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 08.07.23 11:23
Оценка: +1
Здравствуйте, imh0, Вы писали:

I>Если софт не умеет в много поточность, а VS именно такое


Компилятор VC++ умеет в многопоточность уже очень давно. VS позволяет это указать, если не ошибаюсь, с версии 2010, а до того достаточно добавить /MP в командную строку.
Re[2]: Intel или AMD, для С++
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 08.07.23 11:24
Оценка:
Здравствуйте, kov_serg, Вы писали:

_>Компиляция упирается не в вычислительные возможности, а в пропускную способность памяти.


Далеко не вся, а лишь та, где активно используется множество крупных шаблонов, не влезающих в кэш процессора — это достаточно редкое явление.
Re[3]: Intel или AMD, для С++
От: kov_serg Россия  
Дата: 08.07.23 13:23
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Здравствуйте, kov_serg, Вы писали:


_>>Компиляция упирается не в вычислительные возможности, а в пропускную способность памяти.


ЕМ>Далеко не вся, а лишь та, где активно используется множество крупных шаблонов, не влезающих в кэш процессора — это достаточно редкое явление.

Оно почти не когда в кэш и не влазит. А если учесть что ему еще и линковать надо и всё это вертится 96 ядрах, то упираемся в память.
Re[3]: Intel или AMD, для С++
От: imh0  
Дата: 08.07.23 13:40
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Компилятор VC++ умеет в многопоточность уже очень давно. VS позволяет это указать, если не ошибаюсь, с версии 2010, а до того достаточно добавить /MP в командную строку.


Да не умеет по нормальному. Вид делает — да.

Да и не только сборка это компиятор.

Вообщем скоростьт компиляции у МС-а говно.
Re[4]: Intel или AMD, для С++
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 08.07.23 14:04
Оценка:
Здравствуйте, kov_serg, Вы писали:

_>Оно почти не когда в кэш и не влазит.


Чтоб "почти никогда", исходники должны быть построены так, чтоб бОльшая часть конструкций, которая чаще всего инлайнится, непрерывно протаскивалась через 16-Мб кэш. То есть — ужасающе.

_>ему еще и линковать надо


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

_>и всё это вертится 96 ядрах


Какой смысл распараллеливать компиляцию одного файла? Чтоб делать проекты из двадцати файлов по десять мегабайт каждый?
Re[4]: Intel или AMD, для С++
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 08.07.23 14:05
Оценка: +2
Здравствуйте, imh0, Вы писали:

I>Да не умеет по нормальному.


"По-нормальному" — это куда?

I>Да и не только сборка это компиятор.


А что еще в процессе сборки требует сравнимых ресурсов?
Re[5]: Intel или AMD, для С++
От: imh0  
Дата: 08.07.23 14:26
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>"По-нормальному" — это куда?

ЕМ>А что еще в процессе сборки требует сравнимых ресурсов?

Сколько вопросов. Что еще требуется чтобы собрать приложение?

Ты же эксперт в винде помоему, а мы про винду.

Предлагаю тебе перестать думать, что ты помогаешь. )
Re[6]: Intel или AMD, для С++
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 08.07.23 14:50
Оценка: +1
Здравствуйте, imh0, Вы писали:

ЕМ>>что еще в процессе сборки требует сравнимых ресурсов?


I>Что еще требуется чтобы собрать приложение?

I>Ты же эксперт в винде помоему, а мы про винду.

Ну так в винде, чтобы собрать приложение C++, нужно скомпилировать файлы на C++, скомпилировать ресурсы, и слинковать все это вместе. Практически все потребные ресурсы уходят на компиляцию C++, остальное — жалкое подобие.
Re: Intel или AMD, для С++
От: _ilya_  
Дата: 08.07.23 16:45
Оценка:
По количеству ядер выбирают — https://habr.com/ru/news/503658/
Правда на сегодня это был бы уже threadripper pro 5995wx, а не старичок 3970X. По карману такая игрушка сильно ударит...
Re: Intel или AMD, для С++
От: smeeld  
Дата: 08.07.23 17:29
Оценка: -1 :)
Здравствуйте, LuciferSaratov, Вы писали:

LS>Приветствую всех присутствующих.


LS>Что сейчас лучше купить для С++?

LS>Мне надо, чтобы в Visual Studio код быстро компилировался.

Любой сойдет. Компилять нужно 1% времени от всего времени разработки. Всегда забавляли программистеры, которые тянутся за производительным железом, типо он профи, ему надо.

PS и никакой вижуанал студии. Это гавно на любом железе будет тормозить адски
Отредактировано 08.07.2023 17:30 smeeld . Предыдущая версия .
Re[2]: Intel или AMD, для С++
От: _ilya_  
Дата: 08.07.23 18:27
Оценка:
Здравствуйте, smeeld, Вы писали:

S>Любой сойдет. Компилять нужно 1% времени от всего времени разработки.


Будет печаль, если придется собирать чет типа boost. По старым воспоминаниям там аж на часы!!! И проц там был загружен на 100%. Было бы забавно сравнить на теперешнем железе чет настолько тяжелое. Если кто-то сбацает такой тест — в VS такой то открытый и максимально тяжелый проект собрать, спецом запущу на домашнем (пылящимся сейчас) сервачке с 2 x 2699v4, зарешают ли потоки в количестве 88шт...?
Отредактировано 08.07.2023 18:28 _ilya_ . Предыдущая версия .
Re[2]: Intel или AMD, для С++
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 08.07.23 18:34
Оценка: 5 (1) +1
Здравствуйте, smeeld, Вы писали:

S>Компилять нужно 1% времени от всего времени разработки.


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

S>PS и никакой вижуанал студии. Это гавно на любом железе будет тормозить адски


Студии последних лет тормозят главным образом при работе с текстом. Для сборки они тупо запускают внешние компиляторы, на скорость их работы студия никакого влияния не оказывает.
Re[5]: Intel или AMD, для С++
От: kov_serg Россия  
Дата: 08.07.23 19:19
Оценка: +1 :)
Здравствуйте, Евгений Музыченко, Вы писали:

> Чтоб "почти никогда", исходники должны быть построены так, чтоб бОльшая часть конструкций, которая чаще всего инлайнится, непрерывно протаскивалась через 16-Мб кэш. То есть — ужасающе.

boost и другие чудо либы, не?

_>>и всё это вертится 96 ядрах

ЕМ>Какой смысл распараллеливать компиляцию одного файла? Чтоб делать проекты из двадцати файлов по десять мегабайт каждый?
o_O
обычно выглидит так make -j 96
Re[3]: Intel или AMD, для С++
От: smeeld  
Дата: 08.07.23 19:56
Оценка: +1
Здравствуйте, _ilya_, Вы писали:

__>Здравствуйте, smeeld, Вы писали:


S>>Любой сойдет. Компилять нужно 1% времени от всего времени разработки.


__>Будет печаль, если придется собирать чет типа boost. По старым воспоминаниям там аж на часы!!!


Последний раз boost компилял где-то в 2014-ом, просто потехи ради. Ноутовый тогдашний i3 c 4GB RAM справился минут за 10. Больше boost не компиляю, просто юзаю из стандартных реп линуксов.
Re[3]: Intel или AMD, для С++
От: sergey2b ЮАР  
Дата: 08.07.23 20:08
Оценка:
У меня intel mediasdk ffmpeg opencv и нужные им Лиды
Собираются больше часа на 12900k
Re[6]: Intel или AMD, для С++
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 08.07.23 20:36
Оценка:
Здравствуйте, kov_serg, Вы писали:

_>boost и другие чудо либы, не?


И что, при их использовании компилятор непрерывно инлайнит предкомпилированный код с максимальной скоростью доступа к кэшу/памяти, не отвлекаясь ни на что другое?

Хорошо, давайте представим, что так оно и есть. Пропускная способность DDR4 оценивается в среднем в 20 Гб/с. Пусть реально будет хотя бы четверть — 5 Гб/с. Если компиляция файла занимает хотя бы минуту, какого примерно объема должен получиться бинарник?

_>обычно выглидит так make -j 96


Чего именно там 96?
Re[7]: Intel или AMD, для С++
От: kov_serg Россия  
Дата: 08.07.23 22:55
Оценка: :)
Здравствуйте, Евгений Музыченко, Вы писали:


ЕМ>Хорошо, давайте представим, что так оно и есть. Пропускная способность DDR4 оценивается в среднем в 20 Гб/с. Пусть реально будет хотя бы четверть — 5 Гб/с. Если компиляция файла занимает хотя бы минуту, какого примерно объема должен получиться бинарник?

DDR4 — на 3200 должна давать ~ 50Гб/с. Дело не в бинарнике, а в том что компилятор выполняет кучу ненужной работы, которая связана с перемещением данных туда, сюда (особенно C++).
Если вам интересно, включите одноканальный режим, а потом двух канальный и потом на 12 канальном попробуйте. Или на крайняк на M1 попробуйте с HBM паматью.

ЕМ>Чего именно там 96?

Параллельных процессов сборки пускается столько сколько укажите. Обычно оно совпадает с числом ядер процессора для ускорения процесса. Если 8 ядер -j 8 если 24 с гипертриденгом то -j 12, если 4х процессорная система то можно указать и 192ядра
Re[2]: Intel или AMD, для С++
От: LuciferSaratov Россия  
Дата: 09.07.23 03:46
Оценка:
Здравствуйте, smeeld, Вы писали:

S>Любой сойдет.


тебе — возможно, мне нет.

S>Компилять нужно 1% времени от всего времени разработки.


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

S>Всегда забавляли программистеры, которые тянутся за производительным железом, типо он профи, ему надо.


не у всех программистов работа похожа на твою.

S>PS и никакой вижуанал студии. Это гавно на любом железе будет тормозить адски


для части моих задач MSVC обязателен.
Re[2]: Intel или AMD, для С++
От: CreatorCray  
Дата: 09.07.23 11:53
Оценка:
Здравствуйте, smeeld, Вы писали:

S>PS и никакой вижуанал студии. Это гавно на любом железе будет тормозить адски

У меня не тормозила и на i5-2500, шо я делаю не так?
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re[3]: Intel или AMD, для С++
От: CreatorCray  
Дата: 09.07.23 11:53
Оценка: +2
Здравствуйте, _ilya_, Вы писали:

__>Будет печаль, если придется собирать чет типа boost.

А зачем его часто пересобирать?
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re[8]: Intel или AMD, для С++
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 09.07.23 12:02
Оценка:
Здравствуйте, kov_serg, Вы писали:

_>компилятор выполняет кучу ненужной работы, которая связана с перемещением данных туда, сюда (особенно C++).


Чтобы регулярно упираться в производительность памяти, он должен очень часто перемещать достаточно большие (сотни килобайт — мегабайты) объемы данных предельно тупо (прямым копированием). Где и зачем такое требуется при компиляции C++? Когда инлайнятся шаблоны/функции, они проходят достаточно нетривиальную (с точки зрения процессорных операций) обработку.

_>включите одноканальный режим, а потом двух канальный и потом на 12 канальном попробуйте.


У меня в ноутбуке оно не управляется. Однако ж, любое изменение производительности памяти так или иначе скажется практически на всех (кроме "активно-вычислительных") процессах. Каким образом из этого изменения вывести, что является самым узким местом?

_>Параллельных процессов сборки пускается столько сколько укажите.


Если Вы имеете в виду, что производительности памяти не хватает для одновременного обслуживания большого количества ядер, чем компиляция в этом плане отличается от любой другой параллельной обработки?
Re: Intel или AMD, для С++
От: rm2  
Дата: 11.07.23 11:02
Оценка: 6 (1)
Здравствуйте, LuciferSaratov, Вы писали:

LS>Приветствую всех присутствующих.


LS>Что сейчас лучше купить для С++?

LS>Мне надо, чтобы в Visual Studio код быстро компилировался.

13900k, 7950x. Они будут плюс минус на равных. Быстрее — не бывает.

Верней, можно найти какой нибудь много-много ядерный HEDT, и очень, очень хорошо раскладывающийся на потоки при компиляции проект.
Но при работе в редакторе этот HEDT будет медленней чем 13900k/7950x, Т.к. однопоток у него слабей.
Отредактировано 11.07.2023 11:08 rm2 . Предыдущая версия .
Re[3]: Intel или AMD, для С++
От: rm2  
Дата: 11.07.23 11:07
Оценка: 5 (1)
Здравствуйте, CreatorCray, Вы писали:

CC>У меня не тормозила и на i5-2500, шо я делаю не так?


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

На последних студиях, с разного рода Intellicodами и всяким таким прочим, на солюшене с > 50 проектами — оно довольно часто подтормаживает на 13900к. Подсказки с задержками появляются, и всякое такое прочее.
Re[4]: Intel или AMD, для С++
От: CreatorCray  
Дата: 12.07.23 15:55
Оценка:
Здравствуйте, rm2, Вы писали:

rm2>ты использовал старые версии студии, без разного рода аддонов.

Из аддонов пользуюсь только VAX и ICC integration, больше ничего не нужно.

rm2>Ну и может проект маленький был.

Ну, когда то проектом было ядро VMware ESXi, который ну нихрена не маленький.
И тогда был проц вообще какой то мобильный в лапотопе.
Компилял через rsync + ssh на билдсервере, результат грузился по сети на сервак под столом.

rm2>На последних студиях, с разного рода Intellicodами и всяким таким прочим, на солюшене с > 50 проектами — оно довольно часто подтормаживает на 13900к. Подсказки с задержками появляются, и всякое такое прочее.

Чот мне кажется что просто эти интелликоды написаны на чём то изрядно тормозном.
Ну и сама студия тоже становилась всё хуже и хуже. Я с 2008й собственно потому и не стал слезать что следующие студии оказались совершенно неюзабельны на тех же самых проектах.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.