Форум

Уважаемые посетители. В связи с массовой регистрацией на форуме спамовых и рекламных аккаунтов нам пришлось установить некоторые защитные программные блоки. Если при регистрации на Ваш почтовый адрес не придет письмо с паролем для активации учетнойзаписи, прошу написать на адрес tpp12@rambler.ru или boinc.ru@yandex.ru. Я активирую учетку в ручную и вышлю Вам времнный пароль.
Пожалуйста or Регистрация для создания сообщений и тем.

AMD Ryzen 9 3900X vs Einstein@Home & Universe@Home

12

Здравствуйте! 🙂

Несколько недель назад решил включить на Ryzen 3900X Einstein@Home "на все ядра", благо был хороший повод - новое приложение для поиска гравитационно-волновых сигналов. Запустив, через несколько дней (когда досчитались задания всех остальных проектов) заметил, что задания считаются подозрительно долго - до 50 часов(!) при том, что на CPU уровня Core i5-3570K (и аналогичных ему) время расчёта отдельного задания - около 10-12 часов. Причины подобного поведения могли быть разные: особенности системы (скорость памяти и т.п.), недостаточное охлаждение, какие-то особенности в самом приложении, или же что-то ещё. Подозрительно выглядело и то, что температура на CPU при полной нагрузке на все ядра "скакала" на интервале в ~ 30 секунд на несколько градусов даже с отключенным регулированием частоты вращения крыльчатки вентилятора. Решил исследовать этот вопрос, насколько смогу.

Как вы знаете, у Ryzen 3900X - 12 ядер, которые за счёт технологии Simultaneous Multithreading (SMT) превращаются в 24 потока. Начал с изменения числа одновременно считаемых заданий.

Сначала поставил всего 6. Время вычисления отдельного задания сразу же упало до ~9 .. 10 часов!
Попробовал поставить 8. Время расчёта увеличилось где-то до 10-12 часов, но интервал в который попадало время расчёта - пересекался с предыдущим.
Потом - 10, 12, 16 и снова 24 потока. И при увеличении числа одновременно считающих потоков время расчёта отдельно взятого увеличивалось либо пропорционально их числу, либо почти пропорционально - в рамках погрешности самой оценки. Каждый такой эксперимент длился по 2-3 дня, так как надо было добиться получения был набора заданий, которые считались бы в одинаковых условиях. И, желательно - побольше.

Наблюдаемая картина, честно говоря, ввергла в уныние. Неужели в моём Ryzen что-то не так? Или вообще, он не так хорош, как нам самим раньше казалось? Но ведь его тестированили в бенчмарках и результаты были хорошие. И это - однин из популярнейших процессоров у участников РВ! И судя - по статистике - в лидерах по мощности!

Может быть дело в охлаждении? Тем более, что охлаждал его также BeQuiet ShadowRock II. Ну, чтоже, иногда стоит делать глупости потому что интересно! В Ситилинке был взят монструозно-шедевральный Zalman CNPS20X которого, по идее, "точно должно было хватить" с заявленной поддержкой CPU с тепловыделением в 300(!) Ватт.

Кулер был заменён, температура CPU упала на несколько градусов, до 49 C ночью и 55 днём (тогда отопление ещё не включили)... и ничего не изменилось! Значит дело не в охлаждении.

Решил попробовать досчитать задания Einstein@Home и попробовать какой-либо другой проект. Например Universe@Home, благо у него задания намного короче и эксперимент должен был занять куда меньше времени.

Дождался, как задания досчитались, урезал в клиенте BOINC потребление ядер до 6 потоков и включил Universe. Сначала получил набор заданий, считавшихся при 6 потоках, потом - 8, потом - больше, больше... Одновременно, с сайта проекта копировал данные о времени расчёта и сводил в таблицу с учётом того, что задания бывают для 2 разных приложений - ULX и BHSpin.

Для 6 потоков среднее время расчёта получилось равным:
ULX: 1536 секунд
BHSpin: 4240 секунд

Для заданий с большим числом параллельно работающих потоков, оно постепенно росло и для 24 потоков составляло:
ULX: 2011 секунд
BHSpin: 5143 секунды

То есть время расчёта заданий увеличилось всего на 20-30% не просто когда мы заняли все ядра процессора, но и задействовали все 24 потока! (Тут можно вспомнить, что в случае с Hyper-Threading время расчёта отдельного задания увеличивается почти в 2 раза). Стало быть, Ryzen 3900X всё-таки действительно хорош, как и во многих других случаях, а наблюдавшаяся аномалия связана всё-таки со свойствами приложения Einstein@Home, которое, возможно, задействует какие-то системные ресурсы, которые при работе 6-8 и более потоков и становятся узким местом.

Какие это могут быть ресурсы - не знаю. Может быть какие-то семафоры, или таблица распределения памяти или что-то ещё.

Array
Цитата: hoarfrost от 07.10.2020, 20:17

Какие это могут быть ресурсы - не знаю.

А оперативки на машине сколько? Не могло быть такого, что всё банально уперлось в объем памяти?

Array

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

Einstein весьма интенсивно использует память,  а вот приложение Universe можно сказать, почти не использует.

Из статистики - две последние цифры в каждой строке это использованная виртуальная и просто память:

Universe@Home 0.19 Universe BHspin v2 universe_bh2_190723_332_205974795_20000_1-999999_975100_0 04:55:44 (04:54:42) 10/7/2020 1:12:57 AM 10/7/2020 12:19:34 PM 99,65 Reported: OK lubuntu 7.02 MB 4.29 MB

Einstein@Home 1.08 Gamma-ray pulsar search #5 (FGRPSSE) LATeah1066F_1480.0_774207_0.0_0 14:49:54 (14:44:04) 10/7/2020 9:12:28 PM 10/7/2020 9:37:42 PM 99,34 Reported: OK H81MC1 1155.02 MB 838.72 MB

Array
Цитата: PinkFloyd от 07.10.2020, 21:18
Цитата: hoarfrost от 07.10.2020, 20:17

Какие это могут быть ресурсы - не знаю.

А оперативки на машине сколько? Не могло быть такого, что всё банально уперлось в объем памяти?

Оперативной памяти - 32 Gb. Наблюдал за потреблением памяти - задействовало было около половины не больше. Но планки - 2 из 4. Можно ещё 2 поставить. 🙂

Array
Цитата: Sid от 07.10.2020, 21:48

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

Возможно, но вот как проверить - непонятно. Большое потребление памяти не всегда приводит к тому, что упираемся в шину...

Array

Дорогой hoarfrost не переживайте так сильно, проверить это можно, только немного косвенно. Большинство приложений, особенно расчётных, слабо зависят от частоты памяти. Но есть программы которые очень чувствительны к частоте памяти, например архиваторы (WinRar, 7-zip).

Попробуйте провести проверку Einstein@Home с разной частотой памяти, DDR4 2400 2666 3000 3200 3600, только не меняйте количество потоков при этом, 22 потока вполне хватит. Если будет видна разница 5-20%, то тогда очень вероятно, что память сильно влияет. Обычно разница 1-5%, за исключением специфических программ.

Также не ставьте частоту DDR4 больше 3600, это не приведёт к увеличению производительности на Ryzen, а иногда приводит к снижению.

Если результат окажется положительным, то есть способ улучшить ваше положение где-то на 10-20%, к сожалению ....

Array

Так я же и не переживаю. 🙂 Universe@Home показал что сам CPU - хорош. Интереса ради попрбоую протестировать gzip-ом.

Array

Да не gzip-ом ! Результат архиваторов уже известен. Там как раз зависимость есть явная. Нужно именно в Einstein@Home посмотреть. Можно три значения частоты выбрать, чтобы сократить время.

Кстати какая у вас частота DDR4 по умолчанию ?

Array

Сейчас выставлена 1333 MHz. Но на Samsung-овской можно пробовать поднимать. Правда и про тайминги забывать не стоит...

Array
Цитата: hoarfrost от 11.10.2020, 23:33

Сейчас выставлена 1333 MHz. Но на Samsung-овской можно пробовать поднимать. Правда и про тайминги забывать не стоит...

Для Einstein@Home на DDR3 при поднятии частоты с 1333 до 1800 выйгрыш может быть до 20%

Array
12