Ryzen 2700X. Изучение зависимости приложений от количества ядер и SMT.
реклама
На первый взгляд данную запись можно спутать с тем, что уже выкладывал Gorod, но все-таки цели и суть несколько отличаются. Если Gorod хотел выяснить, как игры реагируют на увеличение числа потоков в целом, то я хотел посмотреть, в каких именно пропорциях это происходит, с каких значений, и какое влияние оказывает технология SMT.
реклама
А началось все с новости о, пока еще на уровне слухов, характеристиках новых процессоров Intel, где интересным образом оказались процессоры с такими конфигурациями, как 6/6 (i5-9600K), 8/8 (i7-9700K) и 8/16 (i9-9900K). И наибольший интерес вызвал именно второй вариант, который по своему позиционированию должен занять место текущего i7-8700K, который имеет конфигурацию 6/12. Из чего возник закономерный вопрос: а что лучше? 8/8 или 6/12? Чтобы это понять, я попытался сравнить внутри своего процессора разные режимы работы и сравнить результаты между собой, дабы посмотреть, какое влияние дают ядра, какое влияние дает SMT, и как себя проявят оба варианта в сравнении между собой. То есть, исключая такие факторы как разные архитектуры, разные процессоры, разные платформы и прочие сторонние факторы, мы получаем стерильные условия, при которых на результат влияет исключительно ядра и потоки – именно то, что нам нужно. К сожалению, в комментарии тут же набежали всем известные личности, которые зачем-то начали сравнивать результаты с другими процессорами, на других частотах, других платформах и свели все это дело в сторону «мой быстрее». Зачем – не знаю. Поэтому я, после нескольких безуспешных попыток объяснить людям, что это не сравнение процессоров, а анализ влияния потоков и ядер, решил уйти сюда, где можно тихо и молча закончить начатое и поделиться результатами со всеми. И каждый уже сделает свои выводы сам. К сожалению, это занимает очень много времени, поэтому список ПО крайне ограничен. В основном тем, что было установлено у меня изначально. К большому моему сожалению, относительно современных игр, чутко реагирующих на потоки, у меня оказалось мало. Если быть точнее, то игр, которые в основном используют для таких сравнений, у меня вовсе нет, это Assassin’s Creed Origins и Watch Dogs 2.
Конфигурация следующая:
AM4 Ryzen 7 2700X
AM4 ASUS STRIX B350-F GAMING
DDR4 2x4 2933MHz 16-18-18-38-56 CR1
GTX 1080 Ti Founders Edition
SSD ADATA SP580 120GB
HDD HGST Z5K1 1TB
реклама
Т.к. результаты берутся и сравниваются внутри только этой конфигурации, между собой, то большого значения как таковая она не имеет. Если какой-то из элементов оказывал какое-либо влияние на результат, то он оказывал влияние и на все остальные результаты.
И перед результатами хотелось бы отметить еще один нюанс, касательно игр и значений частоты кадров в них. Дело в том, что помимо самого значения частоты кадров, которое может быть очень даже вменяемым, условно, больше 60 кадров, на разных конфигурациях количества ядер и потоков это ощущалось совсем по-разному. Шкала фреймтайма имела разный характер, и ощущение от отзывчивости управления и плавности изображения было разным. Это хорошо ощущается в игре Rise of The Tomb Raider, где плавность шкалы фреймтайма продолжала принимать все более и более плавный и ровный вид каждый раз, когда увеличивалось количество потоков. Относительно минимальный уровень комфорта, по личным ощущениям, начинается со значения 4/8.
Методика осталась прежней. Тестовые отрезки либо бенчмарки, минимум три замера, замеры утилитой FRAPS, результаты в виде 0,1%; 1% и среднего значения. Исключение – Far Cry 5 и Total War Warhammer II, где результат брался из самого бенчмарка.
реклама
Результаты:
Сначала будут две программы, показывающие линейную зависимость, чтобы без всяких прочих факторов определить то, что хотели. Потом будет ряд игровых приложений, чтобы посмотреть, что в тех же условиях происходит уже в них.
CPU-Z
реклама
Первый, и сразу же интересный результат, который показывает, что все это было не зря (жаль, что не все поймут). Видна четкая градация между конфигурациями с 2-4 ядрами и с 6-8 ядрами.
В первом случае прирост от SMT составляет примерно 34%, и при этом результат конфигурации с SMT не дотягивается до результата конфигурации с большим числом ядер, но без SMT (4/4 быстрее, чем 2/4, 6/6 быстрее, чем 4/8, правда разрыв между ними уже сокращается).
Во втором же случае мы наблюдаем прирост порядка 33%, при котором конфигурация с SMT уже не просто догоняет, а даже способна обойти конфигурацию с большим числом ядер, но без SMT.
На самом деле это достаточно просто объясняется соотношением. Если в первом случае мы имели дело с разницей между количеством ядер в 100% (2-4) и 50% (4-6), которую технология SMT, добавляющая примерно 34%, покрыть не могла, то во втором случае разница составляет уже только 33% (6-8). При этом влияние SMT сохраняет свою пропорцию, добавляя все те же ~33%, что позволяет уже нагонять конфигурацию с большим числом ядер без SMT, стоящую на ступеньку выше.
Cinebench R15
Ситуация повторяется, комментировать уже нечего. При прочих равных, в идеальных условиях 6/12 (гипотетический i7-8700k) уже способен конкурировать с 8/8 (гипотетический i7-9700k).
Чего нельзя сказать о конфигурациях с меньшим числом ядер/потоков. То есть гипотетический i5-6600k уже нельзя противопоставлять гипотетическому i7-6700k.
Total War Warhammer II
Самый бесполезный тест. Добавил просто потому, что прогнал его. Видно, что игре в целом безразлично что-то выше 4 ядер. Возможно, если бы я замерял минимальные значения, результаты были бы чуть более интересными, но нет.
Rise of The Tomb Raider
Здесь уже интересней, правда ничего необычного, наверное, самый простой и предсказуемый результат для игры, которая поддерживает многопоточность - плавный ступенчатый рост результата от числа потоков без каких-либо нюансов.
Hitman 2016
Здесь уже можно наблюдать интересное превосходство конфигурации восьми ядер без SMT над двумя соседствующими результатами с SMT, включая конфигурация с теми же восемью ядрами. То есть конфигурация 8/8 по среднему значению оказалась заметно быстрее, чем 6/12 и 8/16.
Metro Last Light Redux
А здесь мы уже наблюдаем тотальное превосходство конфигураций без SMT над конфигурациями с SMT. Гораздо более заметное и закономерное, чем в Hitman 2016, которое остается неизменным с ростом числа активных ядер, начиная с шести. В итоге конфигурация 6/6 обошла конфигурацию 8/16, но при этом конфигурация 8/8 обходит конфигурацию 6/6. То есть 8/8>6/6>8/16.
Это уже вторая современная игра из моей подборки, в которой конфигурация 8/8 быстрее, чем конфигурация 8/16.
Far Cry 5
Еще один весьма интересный результат. Наглядная демонстрация «затачивания» движка под конкретное число потоков. Иначе не вижу никаких других объяснений, почему двухъядерный процессор с активным SMT обошел себя же, но без SMT, в среднем аж в 3-4 раза, при этом дальнейший прирост останавливается уже начиная с 6 потоков. То есть игра (движок) максимально задействует только 4 ядра/потока, не ниже, не выше. Мы не берем сейчас в расчет то, что эта игра использует устаревший движок десятилетней давности, нет, это мы и так знаем, мы смотрим на ситуацию, когда движок может быть, в буквальном смысле, «заточен» под конкретное число ядер/потоков и не имеет как таковой масштабируемости.
По итогу можно сказать, что подборка игр вышла, на удивление, удачная, ибо каждая из имеющихся игр показала совершенно разное отношение к ядрам и потокам. В случае с Far Cry 5 мы увидели, что такое «заточка» движка игры под конкретное число потоков, Metro Last Light Redux показал, что бывает, когда игра хорошо реагирует на ядра, но плохо воспринимает потоки, на примере Rise of The Tomb Raider можно наблюдать спокойную и относительно «линейную» реакцию движка игры на масштабирование потоков, независимо от SMT. Причем это единственная игра, в которой конфигурация 8/16 оказалась самой быстрой.
В целом можно сделать несколько выводов:
Во-первых, SMT все еще не является оптимальным решением в играх и может привести к худшему результату при большом количестве ядер.
Во-вторых, при малом количестве ядер SMT дает преимущество, иногда очень заметное, а в случае с Far Cry 5 даже аномальное.
Минимально приемлемый уровень для игры - четыре ядра.
Минимально комфортный уровень для игры - четыре ядра с SMT.
Что до Cinebench R15 и CPU-Z, то они показали то, что и должны были показать: чем меньше количество добавляемых ядер в процентном соотношении, тем больше преимущества у технологии SMT.
реклама
Лента материалов
Соблюдение Правил конференции строго обязательно!
Флуд, флейм и оффтоп преследуются по всей строгости закона!
Комментарии, содержащие оскорбления, нецензурные выражения (в т.ч. замаскированный мат), экстремистские высказывания, рекламу и спам, удаляются независимо от содержимого, а к их авторам могут применяться меры вплоть до запрета написания комментариев и, в случае написания комментария через социальные сети, жалобы в администрацию данной сети.
Комментарии 189 Правила