Здравствуйте, Marty, Вы писали:
M>Критерии такие — чтобы плюсовый код быстро собирало.
Слишком расплывчатый критерий. Вот сколько у тебя сейчас ОЗУ/процессора и как быстро собирает тот же firefox? Ну чтобы сравнить.
M>Ещё думаю потрогать нейронки локально, с каким-то дообучением, чтобы кормить своими сорцами и доками, а оно бы мне советовало, что и как.
Тут скорее на данный момент — лучше арендовать, побаловаться и прекратить аренду. Дешевле будет, чем купишь и все-равно же не будешь постоянно использовать — просто для галочки. Вот как я идиот — поставил себе IPS матрицу в монитор ноута — и нафига? Я же все-равно монитор ноута не испольую.
M>Рассматриваю два варианта — нубук и десктоп
Ноутбук нужно использовать с умом — разбиваеть проект на модули и компилить только кусочек. А вы ж любите 100500 файлов в одном проекте и все пересобирать чуть ли не каждый раз.
Критерии такие — чтобы плюсовый код быстро собирало. Ещё думаю потрогать нейронки локально, с каким-то дообучением, чтобы кормить своими сорцами и доками, а оно бы мне советовало, что и как.
Здравствуйте, Marty, Вы писали:
M>Здравствуйте!
M>Критерии такие — чтобы плюсовый код быстро собирало. Ещё думаю потрогать нейронки локально
M>Рассматриваю два варианта — нубук и десктоп
Скорее нужна воркстейшен с большим количеством видеокарт. Была возможность собрать на ddr4 за недорого чтобы и полный deep seek и вообще все что угодно крутить, но увы память стоит 5x.
Самый дешевый десктоп что крутит все это не быстро — чего-то вида e-atx древний двухсокет но в сумме 8 каналов ddr4 — 2011-3 материнка lenovo RD450X hyperscale (увы хоть и за копейки платы, но они вытащены из суперкомпьютеров и там много разных плат и не совместимы по BIOS. Новые версии с 10Gbit сеткой скорее совсем другие и все это под одним неазванрием платы, но их наверно 100тыс наштамповали во всех модификациях) 2-сокет, топ процы линеек 26** v4. Далее Epyc DDR4 где 8 каналов на сокет и т.д. где 12 каналов но уже DDR5.
Что быстрее всего за единицу денег — Epyc 64 ядерные на DDR4 последнего поколения Milan — всякие OEM могут стоить недорого типа 7B13/7C13 и т.п. Плата под такое — как не странно очень качественный китай и еще такое работает не хуже брендов — huananzhi h12d-8d.
Здравствуйте, Marty, Вы писали:
M>Критерии такие — чтобы плюсовый код быстро собирало.
Что есть быстро?
Меня, например, раздражает, когда проект, скажем, минуту собирается. Но я сишник-гошник, избалован быстрой компиляцией. А с C++, наверное, и полчаса не слишком долго
M>Ещё думаю потрогать нейронки локально, с каким-то дообучением, чтобы кормить своими сорцами и доками, а оно бы мне советовало, что и как.
Я не знаток. Но это, наверное, видеокарты приличные нужны. Возможно и не одна.
M>Рассматриваю два варианта — нубук и десктоп
Я б рассматривал дектоп на Intel Core i7 14700. Вроде как это сейчас самый удачный выбор за разумные деньги (ну или эквивалентный AMD, но у меня к ним настороженное отношение).
Ноуты сильно проигрывают дектопам, даже если в однопоточном режиме сравнимы. Сказывается ограничения по энергопотреблению. Твой компилятор умеет использовать сразу несколько ядер для ускорения компиляции?
Здравствуйте, Pzz, Вы писали:
M>>Критерии такие — чтобы плюсовый код быстро собирало.
Pzz>Что есть быстро?
LLVM на домашнем у меня сутки где-то собиралось, на рабочих не пробовал. GRPC на домашнем часа полтора собирается, на казённом (совсем не топовом) раза в два быстрее
Pzz>Меня, например, раздражает, когда проект, скажем, минуту собирается. Но я сишник-гошник, избалован быстрой компиляцией. А с C++, наверное, и полчаса не слишком долго
Меня тоже раздражает долгая сборка, хочу — нажал F5 и сразу отлаживаю
M>>Ещё думаю потрогать нейронки локально, с каким-то дообучением, чтобы кормить своими сорцами и доками, а оно бы мне советовало, что и как.
Pzz>Я не знаток. Но это, наверное, видеокарты приличные нужны. Возможно и не одна.
Я примерно также полагаю
M>>Рассматриваю два варианта — нубук и десктоп
Pzz>Я б рассматривал дектоп на Intel Core i7 14700. Вроде как это сейчас самый удачный выбор за разумные деньги (ну или эквивалентный AMD, но у меня к ним настороженное отношение).
Хз, посматриваю на амд, вроде они реально пошустрее
Pzz>Ноуты сильно проигрывают дектопам, даже если в однопоточном режиме сравнимы. Сказывается ограничения по энергопотреблению. Твой компилятор умеет использовать сразу несколько ядер для ускорения компиляции?
Умеет. Это не только от компилятора зависит, но и от системы сборки. Насчёт ядер я конечно хз, но локальное распараллеливание почти везде уже есть
Здравствуйте, Pzz, Вы писали:
Pzz>Я б рассматривал дектоп на Intel Core i7 14700.
Intel 13th & 14th Gen CPU degradation (Raptor Lake)
Pzz>(ну или эквивалентный AMD, но у меня к ним настороженное отношение).
Вроде у самых свежих AMD с 3D Cache тоже начался массовый падёж. Но советовать 14 поколение интела странно imho.
Pzz>Ноуты сильно проигрывают дектопам, даже если в однопоточном режиме сравнимы. Сказывается ограничения по энергопотреблению.
Да. Но помимо проца, компиляция может упереться в скорость ssd. А там тоже не так просто, якобы то же самое железо под Win 11 файловые операции медленнее, чем под линухом.
M>Критерии такие — чтобы плюсовый код быстро собирало.
Какая ОС и компилятор? Windows в этом плане может неприятно удивить в сравнении с macOS/Linux, из-за особенностей работы с файловой системой.
Каков бюджет? В районе threadripper'ов, или только обычные, бытовые?
M>Ещё думаю потрогать нейронки локально, с каким-то дообучением, чтобы кормить своими сорцами и доками, а оно бы мне советовало, что и как.
Здесь бюджет может быть неограничен. Проще (и дешевле) купить доступ к какой-нибудь opus 4.5, если твои сырцы можно сдавать "налево" без последствий.
M>Рассматриваю два варианта — нубук и десктоп
На ноутбуке быстро быть не может. Но если именно ноутбук, то, наверное, что-то на Ryzen 9 9955HX (без 3D cache, т.к. оно не особо помогает при компиляции).
Здравствуйте, Marty, Вы писали:
M>Критерии такие — чтобы плюсовый код быстро собирало. Ещё думаю потрогать нейронки локально, с каким-то дообучением, чтобы кормить своими сорцами и доками, а оно бы мне советовало, что и как.
Уже сказали, что десктоп. Для нейронок лучше много видеопамяти. С несколькими видеокартами заморачиваться с самого начала не стоит, поэтому найди ту, у которой максимум видеопамяти и бери. Сможешь запускать небольшие нейронки локально. Дообучаться оно не будет, да и не должно, оно работает как RAG.
Здравствуйте, Артём, Вы писали:
Pzz>>(ну или эквивалентный AMD, но у меня к ним настороженное отношение). Аё>Вроде у самых свежих AMD с 3D Cache тоже начался массовый падёж. Но советовать 14 поколение интела странно imho.
Почему?
Pzz>>Ноуты сильно проигрывают дектопам, даже если в однопоточном режиме сравнимы. Сказывается ограничения по энергопотреблению. Аё>Да. Но помимо проца, компиляция может упереться в скорость ssd. А там тоже не так просто, якобы то же самое железо под Win 11 файловые операции медленнее, чем под линухом.
Не знаю, насчет венды. Под линухом, если памяти хватает, вторая компиляция идет из кеша, а не прям с диска. Первая прогревает кеш.
Здравствуйте, SkyDance, Вы писали:
SD>Какая ОС и компилятор? Windows в этом плане может неприятно удивить в сравнении с macOS/Linux, из-за особенностей работы с файловой системой.
Windows, но имхо, на SSD это мало роялит, разбор плюсиков — это основная нагрузка
SD>Каков бюджет? В районе threadripper'ов, или только обычные, бытовые?
Тысяч двести могу потратить, в баксах это тыщи три по текущему курсу, но я хз, как рублёвые цены в наших магазинах соответствуют долларовым
M>>Ещё думаю потрогать нейронки локально, с каким-то дообучением, чтобы кормить своими сорцами и доками, а оно бы мне советовало, что и как.
SD>Здесь бюджет может быть неограничен. Проще (и дешевле) купить доступ к какой-нибудь opus 4.5, если твои сырцы можно сдавать "налево" без последствий.
Это понятно, но хочется локально, есть идея потом в конторе попробовать внедрить, а там сорцы на сторону нельзя отдавать
M>>Рассматриваю два варианта — нубук и десктоп
SD>На ноутбуке быстро быть не может. Но если именно ноутбук, то, наверное, что-то на Ryzen 9 9955HX (без 3D cache, т.к. оно не особо помогает при компиляции).
Да, вот в соседней теме почитал твои вроде рекомендации про этот кеш, почитал обзоры, но в них тесты компиляции нигде не делали, этот момент интересует. А почему доп кеш не ускоряет компиляцию? Мне казалось, что должно бы
Здравствуйте, Nuzhny, Вы писали:
M>>Критерии такие — чтобы плюсовый код быстро собирало. Ещё думаю потрогать нейронки локально, с каким-то дообучением, чтобы кормить своими сорцами и доками, а оно бы мне советовало, что и как.
N>Уже сказали, что десктоп. Для нейронок лучше много видеопамяти. С несколькими видеокартами заморачиваться с самого начала не стоит, поэтому найди ту, у которой максимум видеопамяти и бери. Сможешь запускать небольшие нейронки локально. Дообучаться оно не будет, да и не должно, оно работает как RAG.
Здравствуйте, Shmj, Вы писали:
S>>>Там вариант Building with bazel (recommended) или же через Building with CMake. M>>Да, собирал CMake'ом
S>Ну вот результат — 6 мин. против 1.5 часа — как такое может быть? Тут дело не в процессоре. Возможно упираешься в ОЗУ?
Если ставить через VCPKG, то собирается за несколько минут. Но в варианте VCPKG там, например, используется OpenSSL, если собирать склоненное с гитхаба, то там какой-то boringssl. Возможно, упирается не в ОЗУ, а в какие-то опции сборки.
Здравствуйте, Marty, Вы писали:
S>>Ну вот результат — 6 мин. против 1.5 часа — как такое может быть? Тут дело не в процессоре. Возможно упираешься в ОЗУ?
M>Если ставить через VCPKG, то собирается за несколько минут. Но в варианте VCPKG там, например, используется OpenSSL, если собирать склоненное с гитхаба, то там какой-то boringssl. Возможно, упирается не в ОЗУ, а в какие-то опции сборки.
Ну на MacOS еще и ARM-архитектура же, там сборка проще, может по этому.
Вообще неплохо бы иметь некий эталонный проект, по скорости сборки которого оценивать возможности того или иного компа.
Здравствуйте, Marty, Вы писали:
M>Критерии такие — чтобы плюсовый код быстро собирало.
У C++ многоядерная сборка.
Для примера
make -j#
Где # количество логических ядер. Обычно количество логических ядер равно 2x от физических. Да и IDE уже вроде Qt Creator и прочих сами могут выставить многоядерную компиляцию. Раньше ещё была схема #+1 логических ядер, но сейчас люди компилируют с SSD. Потому если можешь компилировать с SSD, компилируй с SSD, это тоже даст буст.
Скорость многоядерной компиляции будет примерно пропорциональна баллам на сайте.
M>Ещё думаю потрогать нейронки локально, с каким-то дообучением, чтобы кормить своими сорцами и доками, а оно бы мне советовало, что и как.
Никогда не пробовал, но там нужны видеокарты NVidia и как можно больше видеопамяти. Суть в том, чтобы данные помещались в видеопамяти. Так что покупать видеокарту с недостаточным объёмом видеопамяти бессмысленно. А сколько конкретно нужно это уже надо смотреть на проекты, которые ты будешь запускать. Но общее правило больше — лучше.
А ещё есть вариант сервер, где используются серверные процессоры и серверные видеокарты. По большому счёту всё сводится к тому, сколько у тебя денег.
Касательно ноутбуков тоже всё стандартно. Современные ноутбуки очень производительные и я не раз говорил, что они могут заменить для большинства людей десктопы. Но топовые десктопы всё равно гораздо производительнее ноутбуков. А топовые сервера гораздо производительнее десктопов.
На тех же сайтах можно посмотреть производительность процессора и видеокарты. И так же лучше брать процессоры AMD и видеокарты NVidia в последнем случае ещё смотря на объём видеопамяти. Хотя и так понятно, что лучше серверов с новейшими процессорами и видеокартами от этих производителей всё равно ничего не найдёшь для твоих целей.
Возможно тебе вообще нужен не ноутбук, а ультрамобильный ПК вроде GPD Win 4 2025, кто знает. А на быструю компиляцию забить или использовать сервер. Ноутбук же требует посадки за стол или лёжа на кровати, с ним не получится работать стоя или на ходу.
M>Тысяч двести могу потратить
Ну понятно, что денег у тебя считай и нет. Сервера сразу отпадают, ты там даже процессор не сможешь купить. Может на скромную потребительскую видеокарту тебе и хватит с обычным центральным процессором не хватающим звёзд с неба. Да и ноутбук ты за такие деньги можешь купить только обычный. Учитывая задачу с ещё и нейронками для которых нужна видеопамять здесь надо думать насчёт доступной видеокарты.
Короче чудес не будет. Максимум можно поискать соотношение цена производительность для десктопа. Ну и понятное дело у обычной памяти для десктопа не будет проверки на ошибки. Да и вообще предположим у сервера два процессора по 192 ядра, а у пользователя на десктопе 4-8 ядер, может 16 ядер. Какие тут могут быть чудеса при компилировании C++. Правки опций я не рассматриваю, так как это уже зависит от пользователя, а не от железа.
И дело понятно не в ядрах, а в баллах на вышеуказанных сайтах. Можно посмотреть на свой текущий процессор и сколько у него баллов по рейтингу и просчитать во сколько раз будет ускорение относительно баллов того процессора, который купишь. А ещё сразу переключайся на вкладку Price Performance, всё равно при отсутствии денег придётся брать по соотношению лучшей цены на производительность, а не ультимативный топ.
Что касается баллов на этих сайтах, то когда-то давно я проверял свои задачи и эти баллы соответствуют действительности. Какие-то узкие места с недостатком какой-либо памяти или ещё чего-то я понятно дело не беру. Просто не надо покупать компьютер с узкими местами. И, кстати, насчёт памяти, сейчас её покупать невыгодно, а значит и новый компьютер покупать невыгодно, разве что частями с донорством от старого.
Да и в целом сложно решить задачу типа, хочу купить суперкар, но у меня 200 тысяч рублей. Теоретически не невозможно, практически сложно.
Здравствуйте, Marty, Вы писали:
M>Если ставить через VCPKG, то собирается за несколько минут. Но в варианте VCPKG там, например, используется OpenSSL, если собирать склоненное с гитхаба, то там какой-то boringssl. Возможно, упирается не в ОЗУ, а в какие-то опции сборки.
А флаг --parallel 12 (или сколько там потоков) — добавлял? Или оно ничего не даст?
Здравствуйте, Shmj, Вы писали:
M>>Если ставить через VCPKG, то собирается за несколько минут. Но в варианте VCPKG там, например, используется OpenSSL, если собирать склоненное с гитхаба, то там какой-то boringssl. Возможно, упирается не в ОЗУ, а в какие-то опции сборки.
S>А флаг --parallel 12 (или сколько там потоков) — добавлял? Или оно ничего не даст?
Не добавлял, оно само всё сделало, и молотило на всех ядрах
Здравствуйте, Marty, Вы писали:
M>А какой видео чипсет(ы) порекомендуешь?
Я только с NVidia сейчас дружу. Из геймерских видеокарт GeForce 5090 имеет 32 Гб видеопамяти. Из более серверных A100 (80GB) и RTX 6000 Ada (48GB). Остальное сильно дороже.
Тут смотря какую LLM запускать: если небольшую, скажем 7b параметров, то 5090 будет сильно лучше по скорости. Если большую, которая в 32 Gb не помещается, то уже другое искать.
Здравствуйте, Nuzhny, Вы писали:
M>>А какой видео чипсет(ы) порекомендуешь?
N>Я только с NVidia сейчас дружу. Из геймерских видеокарт GeForce 5090 имеет 32 Гб видеопамяти. Из более серверных A100 (80GB) и RTX 6000 Ada (48GB). Остальное сильно дороже. N>Тут смотря какую LLM запускать: если небольшую, скажем 7b параметров, то 5090 будет сильно лучше по скорости. Если большую, которая в 32 Gb не помещается, то уже другое искать.
Прикольно. GeForce 5090 с 32 Гб ценник начинается от 350 тыр
Здравствуйте, Marty, Вы писали:
S>>А флаг --parallel 12 (или сколько там потоков) — добавлял? Или оно ничего не даст?
M>Не добавлял, оно само всё сделало, и молотило на всех ядрах
Здравствуйте, Marty, Вы писали:
S>>Собиралось 17 минут на самом слабом ноутбучном i5 13 поколения. 32 ГБ ОЗУ. M>У меня i5 8400 2.4 ГГц, это 8ое поколение, и 16 Гб ОЗУ.
Здравствуйте, Shmj, Вы писали:
S>>>Собиралось 17 минут на самом слабом ноутбучном i5 13 поколения. 32 ГБ ОЗУ. M>>У меня i5 8400 2.4 ГГц, это 8ое поколение, и 16 Гб ОЗУ.
S>Значит упирается в ОЗУ.
Нет. На казённом тоже 16 Гб ОЗУ, но проц поновее (какой точно, не помню), собирает раза в два быстрее
M>Windows, но имхо, на SSD это мало роялит, разбор плюсиков — это основная нагрузка
Я же не просто так упомянул "и какой компилятор". ICC, MSVC и clang уж шибко по-разному себя ведут.
Чтобы на Windows добиться близкой к linux/MacOS скорости сборки, нужно правильно настроить кучу разных мест. Например, выключить Defender (эта скотина порой вдвое увеличивает время сборки), Bitlocker (потому что оно до сих пор на CPU все шифрует, причем без использования аппаратного ускорения — то есть медленно), установить "Maximum Performance" режим в Power Options, и сделать еще кучу приседаний. И даже после всего этого macos/linux собирают быстрее. В конечном итоге, я на домашнем десктопе если что-то разрабатываю, то обычно в виртуалке, где крутится Linux. И это все работает быстрее, чем на хосте.
Понимаю, что верится с трудом, — поэтому предлагаю просто попробовать.
M>Тысяч двести могу потратить, в баксах это тыщи три по текущему курсу, но я хз, как рублёвые цены в наших магазинах соответствуют долларовым
А, ну это бытовой компьютер, ни о каких threadripper и речи идти не может. Предполагаю, что монитор/клавиатура/мышь и прочая периферия есть, так что бюджет чисто на системный блок.
Если затачивать именно под С++ сборку, то нужно больше ядер, причем желательно однородных, дабы планировщику не плохело в попытках догадаться "а куда что забросить". Поскольку бюджет невелик, я бы брал AMD 9950X, хотя бы 32 Гб памяти, приличную материнку (чтобы ее питание не ограничивало процессор), кулер по вкусу (многие рекомендуют водянку, но я лично не люблю это усложнение). Разумеется, NVMe SSD, причем можно PCIe4 (гнаться за свежими PCIe5 пока смысла нет).
Если очень хочется именно Intel, и брать нужно прямо сейчас, то 285K или 14900K будут примерно одинаковы в плане производительности, но последний будет заметно горячее и сложнее охладить.
M>Это понятно, но хочется локально, есть идея потом в конторе попробовать внедрить, а там сорцы на сторону нельзя отдавать
Скажу честно, это не вариант. Лучше сразу смотреть в сторону Amazon Bedrock и аналогов. Проекты на С++ не то что LLM, а даже человекам-то сложно понять. Локально запустить LLM на устройстве с мозгом от таракана, скажем так, мало что даст.
M>Да, вот в соседней теме почитал твои вроде рекомендации про этот кеш, почитал обзоры, но в них тесты компиляции нигде не делали, этот момент интересует. А почему доп кеш не ускоряет компиляцию? Мне казалось, что должно бы
Кэш очень заметно ускоряет (как правило однопоточные) расчеты игрового цикла. Подавляющее большинство игр — несмотря на весь прогресс в этой области — чудовищно однопоточные. Есть много причин, почему распараллелить основной игровой цикл не получается. Загрузить другие ядра (всякой фигней вроде более частого pathfinding'а для NPC) можно, но это делается в основном для того, чтобы успокоить глупых юзеров. Мол, наша игра хорошая, она все ядра использует.
Так вот, этот самый основной поток игрового цикла почти всегда требует доступа ко всей модели "мира" (игрового уровня, как logical, так и render tree). А это много данных — причем требуется не последовательный, а random'ный доступ. Увеличение кэша играет заметную роль.
А вот для компиляции С++ ничего подобного не требуется, там все помещается и в собственный кэш процессора. Конечно, выигрыш от наличия большого L3 все равно есть. Но он нивелируется необходимостью снижать частоты, ибо сам кэш не бесплатный. Кроме того, — и это даже более важное отличие — на данный момент в официальной продаже нет 16-ядерных процессоров, у которых в каждой "плитке" есть 3D Cache. То есть, если ты возмешь AMD 9950X3d, то у восьми ядер этот кэш будет (это одна плитка), а у других восьми не будет (вторая плитка без кэша). Так что опять планировщику нужно гадать, что куда направлять, и в случае с компиляцией — хрен угадаешь.
Ожидается, что AMD выпустить что-то вроде 9950X3D2, так чтобы в каждой плитке был кэш. Но неизвестно, когда именно это произойдет. И ценник у этого процессора явно будет "премиальным". А выигрыш на компиляции, думаю, уложится в 5-10%.
Здравствуйте, Marty, Вы писали:
M>Рассматриваю два варианта — нубук и десктоп
К ноуту можно через мост на тандерболт подоткнуть мощную внешнюю видюху. Сам на что-то такое посматриваю, собираюсь юзать опенцл и матлаб. Но ноут — всегда гора компромиссов из-за габаритов.
Здравствуйте, Shmj, Вы писали:
M>>Нет. На казённом тоже 16 Гб ОЗУ, но проц поновее (какой точно, не помню), собирает раза в два быстрее
S>А собираешь через cmake -GNinja или через cmake -G "Visual Studio 17 2022" ?
Под студией — с Visual Studio, под VSCode — с ninja
Здравствуйте, Marty, Вы писали:
S>>А собираешь через cmake -GNinja или через cmake -G "Visual Studio 17 2022" ? M>Под студией — с Visual Studio, под VSCode — с ninja
И что и там и там 1.5 часа? Может дома Visual Studio а на работе VSCode и в этом отгадка?
Здравствуйте, SkyDance, Вы писали:
M>>Windows, но имхо, на SSD это мало роялит, разбор плюсиков — это основная нагрузка
SD>Я же не просто так упомянул "и какой компилятор". ICC, MSVC и clang уж шибко по-разному себя ведут.
Использую msvc и gcc
SD>Чтобы на Windows добиться близкой к linux/MacOS скорости сборки, нужно правильно настроить кучу разных мест. Например, выключить Defender (эта скотина порой вдвое увеличивает время сборки), Bitlocker (потому что оно до сих пор на CPU все шифрует, причем без использования аппаратного ускорения — то есть медленно), установить "Maximum Performance" режим в Power Options, и сделать еще кучу приседаний. И даже после всего этого macos/linux собирают быстрее. В конечном итоге, я на домашнем десктопе если что-то разрабатываю, то обычно в виртуалке, где крутится Linux. И это все работает быстрее, чем на хосте.
Сейчас у меня i5 восьмого поколения, брал в 18ом году, в конторе проц посвежее, остальное плюс-минус также, ОЗУ столько же, 16, SSD — 512, дома гиг, но дома ещё HDD, где проекты и всё остальное лежит, но компилеры и SDK лежат на SSD — в конторе заметно шустрее. Т.е. основная проблема — проц, как я вижу.
SD>Понимаю, что верится с трудом, — поэтому предлагаю просто попробовать.
Да не, верится. Хз, особо колдовать наверное не буду, думаю, просто современный проц надолго удовлетворит мои потребности и без приседаний.
M>>Тысяч двести могу потратить, в баксах это тыщи три по текущему курсу, но я хз, как рублёвые цены в наших магазинах соответствуют долларовым
SD>А, ну это бытовой компьютер, ни о каких threadripper и речи идти не может. Предполагаю, что монитор/клавиатура/мышь и прочая периферия есть, так что бюджет чисто на системный блок.
Ну, бюджет двигается плюс-минус, тредриппер я мельком глянул — от 80 тыр до 700 тыр — нижний в принципе доступен. Да, бюджет на "процессор". Если тредриппер сильно крут, то может и подумаю на счёт него. В основном же цель собрать максимум производительности за минимум денег — ну то есть новое топовое железо, которое стоит как чугунный мост, не рассматриваю, конечно, но аргументировано бюджет можно подкрутить туда-сюда.
SD>Если затачивать именно под С++ сборку, то нужно больше ядер, причем желательно однородных, дабы планировщику не плохело в попытках догадаться "а куда что забросить". Поскольку бюджет невелик, я бы брал AMD 9950X, хотя бы 32 Гб памяти, приличную материнку (чтобы ее питание не ограничивало процессор), кулер по вкусу (многие рекомендуют водянку, но я лично не люблю это усложнение). Разумеется, NVMe SSD, причем можно PCIe4 (гнаться за свежими PCIe5 пока смысла нет).
Ну вот как раз по памяти у меня сложилось впечатление, что 16 Гб вполне норм, проц гораздо важнее. Сейчас память подорожала, не резон брать. Вообще, наверное, просто сниму 16 Гб текущие (наверное DDR4), да где-то со старого ещё валяется 16 гиг наверное DDR3, там что-то глючило, лень было разбираться, но раз ценники на память так выросли, то пожалуй поразбираюсь, может хотя бы одна планка годная. Думаю, гнаться за DDR5 или что сейчас последнее особого смысла нет
SD>Если очень хочется именно Intel, и брать нужно прямо сейчас, то 285K или 14900K будут примерно одинаковы в плане производительности, но первый будет заметно горячее и сложнее охладить.
Нет, Intel как раз не особо хочется, поглядываю на AMD
SD>Скажу честно, это не вариант. Лучше сразу смотреть в сторону Amazon Bedrock и аналогов. Проекты на С++ не то что LLM, а даже человекам-то сложно понять. Локально запустить LLM на устройстве с мозгом от таракана, скажем так, мало что даст.
Ну, это в идеале, пока просто думаю потыкать локально в нейронки. Так-то у меня видяха low profile пережила уже пару апгрейдов системы, ей скоро паспорт уже должны выдать, вот и думаю, надо наверное брать что-то поновее, чтобы нейронки хоть как-то хромали.
SD>А вот для компиляции С++ ничего подобного не требуется, там все помещается и в собственный кэш процессора.
Ну хз, если для компиляции нужно много памяти, то логично, что и лишний кэш не помешает.
SD>Конечно, выигрыш от наличия большого L3 все равно есть. Но он нивелируется необходимостью снижать частоты, ибо сам кэш не бесплатный. Кроме того, — и это даже более важное отличие — на данный момент в официальной продаже нет 16-ядерных процессоров, у которых в каждой "плитке" есть 3D Cache. То есть, если ты возмешь AMD 9950X3d, то у восьми ядер этот кэш будет (это одна плитка), а у других восьми не будет (вторая плитка без кэша). Так что опять планировщику нужно гадать, что куда направлять, и в случае с компиляцией — хрен угадаешь.
Я из обзоров понял, что плитка 3D Cache работает для всех ядер, но ставится над (или под) одной плиткой ядра. И там проблема в том, что под плиткой кэша ядрам слишком тепло, и они снижают из-за этого частоту. Но в последних моделях типа 9950X3d плитку кэша зипихали под плитку ядра, и таких проблем уже нет.
SD>Ожидается, что AMD выпустить что-то вроде 9950X3D2, так чтобы в каждой плитке был кэш. Но неизвестно, когда именно это произойдет. И ценник у этого процессора явно будет "премиальным". А выигрыш на компиляции, думаю, уложится в 5-10%.
Не видел такого. Но, может, не разобрался, листал поверхностно пару вечеров
Здравствуйте, andyp, Вы писали:
M>>Рассматриваю два варианта — нубук и десктоп
A>К ноуту можно через мост на тандерболт подоткнуть мощную внешнюю видюху. Сам на что-то такое посматриваю, собираюсь юзать опенцл и матлаб. Но ноут — всегда гора компромиссов из-за габаритов.
Кстати, да, интересный вариант. А почему к стационарному компу нельзя внешнюю видюху или какой-то внешний нейропроцессор (а такие уже есть?) присобачить? А они с воткнутой в блок (встроенной в нубук) видяхой будут вместе работать, или нет?
Для такого варианта наверное надо присматривать в основном шустрый, но бюджетный CPU, и, возможно системную память, а по поводу видяхи не париться особо?
Здравствуйте, Shmj, Вы писали:
S>>>А собираешь через cmake -GNinja или через cmake -G "Visual Studio 17 2022" ? M>>Под студией — с Visual Studio, под VSCode — с ninja
S>И что и там и там 1.5 часа? Может дома Visual Studio а на работе VSCode и в этом отгадка?
Дома и Visual Studio и VSCode/gcc, а на работе только VSCode/gcc. Да, под вижуалкой вроде помедленнее, чем в VSCode, но я сравнивал время сборки на разных компах по VSCode.
Вот gcc реально быстрее на linux, если речь именно о сборке больших (CMake) проектов.
M> Т.е. основная проблема — проц, как я вижу.
Пока не попробуешь, не узнаешь. Поставь linux второй ОС (любой вариант, хоть ту же Ubuntu), и попробуй собрать тот же grpc. Современный процессор, конечно, ускорит процесс, но еще больше его ускорит подбор других условий окружения.
M> В основном же цель собрать максимум производительности за минимум денег
Тогда threadripper'ы сразу отбрасывай. Их младшие модели нужны только тем, кому требуется много линий PCIe (и много каналов памяти), а старшие стоят непотребно. Смотреть надо на мейнстрим. Если AMD 9950X дорого, тогда можно спуститься до AMD 7950X (он не шибко медленнее), или 9900X (он заметно дешевле, но всего 12 ядер) а то и даже 7900Х. Идти ниже не рекомендую, 5ххх серия все-таки даже на глаз ощутимо медленнее в задачах компиляции. Увы, DDR4 можно использовать только с 5ххх, — так что память тоже придется обновить.
M>Ну вот как раз по памяти у меня сложилось впечатление, что 16 Гб вполне норм, проц гораздо важнее.
Так это потому, что у твоего нынешнего процессора мало ядер и потоков. Когда их будет 32 штуки, памяти потребуется куда больше, иначе много make в параллель не будут работать быстрее. Когда памяти мало, вся эта параллельность мало что дает.
M>Ну, это в идеале, пока просто думаю потыкать локально в нейронки. Так-то у меня видяха low profile пережила уже пару апгрейдов системы, ей скоро паспорт уже должны выдать, вот и думаю, надо наверное брать что-то поновее, чтобы нейронки хоть как-то хромали.
В принципе, именно под такой сценарий использования AMD предлагает Ryzen AI MAX+ 395. Это по сути ноутбучный процессор с довольно мощной встройкой 8060S (производительность на уровне RTX 4060). Уникальная фича этого процессора — доступ iGPU ко всей памяти, которой можно вплоть до 128 Гб поставить. Это позволяет гонять весьма серьезные нейронки, включая llama3 70B (для которой вообще нужно ~80Gb VRAM, то есть 5090 не обойдешься).
У меня есть пара знакомых с framework desktop, как раз со 128 Гб памяти, так они кипятком писают, мол, очень компактная сборка, и жрет всего 150 Вт в прыжке, и вообще все очень хорошо работает. Но лично у меня нет опыта работы с этим процессором. Допускаю, что он и в самом деле безумно крут.
M>Я из обзоров понял, что плитка 3D Cache работает для всех ядер, но ставится над (или под) одной плиткой ядра. И там проблема в том, что под плиткой кэша ядрам слишком тепло, и они снижают из-за этого частоту. Но в последних моделях типа 9950X3d плитку кэша зипихали под плитку ядра, и таких проблем уже нет.
Нет, он работает только с одной плиткой (той, под которой находится). Поэтому, например, когда запускаешь игру, и планировщик это понимает, он либо полностью отключает вторую плитку (без кэша которая), либо пытается как-то магически раскидывать потоки под нужную affinity. Получается плохо, раз на раз не приходится. В итоге я вообще перешел на 9800X3D, и в играх стало лучше (в компиляции, конечно, хуже, но на домашнем компе я уже перестал заниматься компиляцией, все равно мощности мало).
Перемещение плитки кэша под основную плитку позволило лучше рассеивать тепло (и подавать больше энергии на процессор), но даже так, плитка с кэшом быстрее снижает частоты (и не особо хочет разгоняться).
Здравствуйте, Marty, Вы писали:
M>Кстати, да, интересный вариант. А почему к стационарному компу нельзя внешнюю видюху или какой-то внешний нейропроцессор (а такие уже есть?) присобачить? А они с воткнутой в блок (встроенной в нубук) видяхой будут вместе работать, или нет?
Можно, но зачем? В десктопе нет проблем с доступными слотами писиай-экспресс, к тому же такой мост недешев (цены только стартуют с ~10 тыр). Про опенцл — точно не будут. Будут разные устройства, но можно иметь несколько независимых очередей и пулять кернелы на выполнение туда и сюда.
M>Для такого варианта наверное надо присматривать в основном шустрый, но бюджетный CPU, и, возможно системную память, а по поводу видяхи не париться особо?
Ну как-то да. Типа есть отдельный коробок с мощной считалкой. Еще его можно шарить с коллегами, когда сам не считаешь.
Здравствуйте, andyp, Вы писали:
M>>Кстати, да, интересный вариант. А почему к стационарному компу нельзя внешнюю видюху или какой-то внешний нейропроцессор (а такие уже есть?) присобачить? А они с воткнутой в блок (встроенной в нубук) видяхой будут вместе работать, или нет?
A>Можно, но зачем? В десктопе нет проблем с доступными слотами писиай-экспресс,
Чтобы можно было перекидывать с компа на комп.
A>к тому же такой мост недешев (цены только стартуют с ~10 тыр).
10 тыр — это в рублях? Ну, пережить можно
M>>Для такого варианта наверное надо присматривать в основном шустрый, но бюджетный CPU, и, возможно системную память, а по поводу видяхи не париться особо?
A>Ну как-то да. Типа есть отдельный коробок с мощной считалкой. Еще его можно шарить с коллегами, когда сам не считаешь.
Да, можно шарить. Ещё раздумываю нубук взять, и комп тоже обновить. Перекидывать между ними можно