Вторая половина memtest+ 5.01 отработала в 5 раз дольше первой
после перезагрузки без выключения питания
./ramsmp -b 3 -r -l 10 -g 32G
показывает около 5 гиг в секунду, но при этом отъедается всего 4 гига оперативки, как то можно сделать больше?
собираюсь проделать следующее:
Сравнить с другим компом со старой оперативкой DDR2 16GB с учетом, что она более чем в 2 раза медленнее
Радиатор в одной из упаковок оказался с царапинами, наверно уже БУ после теста, поцарапали радиатором проца?
Проверить каждую пару отдельно, будут ли они также тормозить
по прошествии половины memtest?
Почему запись медленная при тесте оперативной памяти
Что удалось выяснить:
Оставляем одну планку в слоте b2 — все норм
Месяца 2-3 назад все было окей
Д оброго времени суток.
Частота vs тайминги — что важнее? Сколько нужно ОЗУ?
Привет Пикабу! Последние несколько лет в сети разгораются жаркие споры о том, нужна ли быстрая память игровому ПК и так ли важны ее тайминги. В этой статье мы расскажем, стоит ли так внимательно смотреть на тайминги и какая частота оптимальна, а так же сколько ОЗУ нужно именно вам. Как всегда — текстовая версия под видео.
В случае с процессорами AMD Ryzen все понятно — там внутренняя шина напрямую зависит от частоты ОЗУ, так что чем последняя больше, тем быстрее передаются данные между кластерами ядер и тем быстрее работает CPU.
Но в случае с Intel такого нет, кольцевая шина этих процессоров не зависит от частоты ОЗУ. К тому же большая часть игровых ноутбуков работает на медленной памяти с частотой 2400-2666 МГц без каких-либо проблем в играх, как и многие относительно старые топовые Core i7, которые вообще пашут вместе с DDR3 на частоте 1600 МГц и в ус не дуют. Чтобы этот обзор был полезен обоим лагерям, мы расскажем, так ли нужна быстрая память для современного игрового ПК на процессоре Intel, нужно ли так внимательно обращать внимание на тайминги и сколько оперативной памяти нужно современному ПК для игр и работы. Посмотрим, так ли нужны низкие тайминги, и как FPS в тяжелых играх зависит от частоты ОЗУ.
Минутка теории
В этой статье мы будем рассматривать реальную игровую систему с реальными настройками графики. Иными словами, не будет никаких тестов в HD с минимальным пресетом, чтобы максимально нагрузить процессор — все игровые бенчмарки прогонялись в народном разрешении 1920х1080 на максимальных настройках, чтобы упор был именно в видеокарту. В противном случае, если упор идет в процессор, низкий FPS будет еще терпимой проблемой — вы скорее всего будете получать фризы и непрогруженные текстуры. Конечно, если вы суровый челябинский геймер, едва ли это вас остановит, но мы все же рассматриваем реальные игровые условия.
Также мы рассматриваем ситуацию, когда видеокарте хватает собственной памяти — в противном случае вы опять же можете столкнуться с проблемами производительности в играх, и быстрая ОЗУ едва ли вас спасет, потому что она все еще будет чуть ли не на порядок медленнее видеопамяти. Перейдем к тестовой системе.
Процессором выступил инженерный Core i9-9900K в разгоне до 4.8 ГГц, который точно не станет бутылочным горлышком в системе, куплен проц на али. Видеокарта — топ предыдущего поколения, Nvidia GTX 1080 Ti. Ну и главный компонент — это 32 ГБ ОЗУ DDR4-3400 с таймингами 16-18-18-36 CR1 4-мя планками по 8 ГБ. Все игры и система запускались с быстрых NVMe SSD Samsung.
Что будет, если задрать тайминги в облака?
Первое, что мы проверим — что будет, если мы очень сильно увеличим тайминги ОЗУ. Что же это такое? По сути оперативная память — это набор ячеек, которые могут хранить 0 или 1. Однако процессору, чтобы добраться до определенной ячейки, нужен ее точный адрес — банк памяти, строка и столбец. Тут все очень похоже на реальные адреса — на письме вы должны указать город, улицу, дом и лишь потом только квартиру.
При это процессор — очень ответственный почтальон, он должен точно знать, сколько у него займет по времени обращение к определенной ячейке. И как раз это время и есть тайминг, и всего выделяют 4 основных или первичных, а также с десяток вторичных и нередко под полсотню третичных. Максимальный вклад в быстродействие памяти дают именно первичные тайминги, поэтому именно их мы и будем рассматривать.
И, очевидно, чем тайминги меньше, тем быстрее процессор сможет добираться до нужных ячеек и тем быстрее он будет работать с ОЗУ, поэтому выглядит разумным покупать тот комплект памяти, у которого минимальные задержки на своей частоте.
Но так ли сильно тайминги влияют на производительность? Давайте проверим. В моем случае ОЗУ DDR4 на частоте в 3400 МГц работала на неплохих таймингах 16-18-18-36. Давайте сильно их завысим, до 20-22-22-60, и посмотрим, как это сказалось за быстродействии памяти. Тут нужно понимать, что ОЗУ с настолько высокими таймингами с такой частотой вы в продаже не найдете, то есть мы рассматриваем случай даже хуже крайнего.
Итак, тест памяти и кэша в AIDA64 показал, что при таком завышении таймингов слегка снизилась скорость копирования и на 10% увеличилась задержка доступа к ОЗУ. Последнее как раз и было ожидаемо с учетом того, что мы сильно увеличили тайминги, но в общем и целом падение сложно назвать катастрофическим.
А как обстоят дела в играх? Посмотрим на Assassin’s Creed: Odyssey. Эта игра выжимает все соки из системы и неплохо нагружает даже быстрый 8-ядерный процессор, да и заняла она целых 7 ГБ ОЗУ. И что же мы видим? Средний FPS не изменился абсолютно, он около сотни.
Ладно, а как себя поведет игра World War Z на API Vulkan? Он низкоуровневый и в теории может лучше работать с железом. Но и здесь разницы нет — что с оптимизированными, что с задранными таймингами FPS непоколебим и составляет 180.
Может в Far Cry New Dawn картина изменится, как-никак эта игра не очень хорошо оптимизирована под многопоток? И да, разница действительно есть, но ее сложно назвать значительной — средний FPS при увеличении таймингов снизился с 125 до 122, то есть лишь на 2%.
Какой отсюда можно сделать вывод? Даже если поставить откровенно гипертрофированные тайминги, разница в FPS минимальна или ее нет совсем. С учетом того, что продающиеся наборы ОЗУ нередко уже из коробки имеют неплохие тайминги для своей частоты, нет никакого смысла переплачивать за дорогие комплекты с небольшими задержками — вы едва ли уловите разницу в FPS. И это же, в теории, касается процессоров AMD.
Почему так происходит? Все просто — подавляющее большинство современных и не очень процессоров и имеют по три или даже четыре уровня кэша. И информация из ОЗУ заранее пишется в кэш, и лишь потом с ней работает CPU. А с учетом того, что кэша третьего уровня много, нередко пара десятков мегабайт, влияние задержек доступа к памяти становится минимальным.
Играемся с частотой памяти
Окей, а есть ли вообще смысл в большой частоте ОЗУ? Мы решили проверить три варианта. Первый — это DDR4-2133, минимальная пользовательская частота для последнего поколения памяти. Да, вы можете сказать, что большая часть процессоров даже на неразгонных платах поддерживает частоту хотя бы 2400 МГц, но мы решили пойти по самому минимуму и рассмотреть вариант, когда в компьютере стоит самая дешевая память с AliExpress.
Второй вариант — это DDR4-2933. Именно такую память способны поддерживать современные процессоры Intel Core 10-ого поколения, они же Comet Lake, на всех платах даже без разгона. С учетом того, что возможности по оверклокингу у таких процессоров чисто номинальные и вы от силы получите несколько лишних процентов производительности, возникает вопрос — а есть ли вообще смысл переплачивать за платы на чипсете Z490, раз CPU почти не гонится, и остается только разгон памяти?
Ну и третий вариант — это текущая конфигурация на DDR4-3400. Такая частота доступна подавляющему большинству современных процессоров Intel, даже если это урезанные Core i3, при этом планки на ней стоят вменяемых денег.
Во всех случаях были выбраны средние тайминги для каждой из частот — то есть те, которые будут доступны на любых магазинных модулях. Для DDR4-2133 это 12-14-14-29, для DDR4-2933 это 15-17-17-35, ну и для DDR4-3400 это 16-18-18-36.
Для начала — все тот же тест ОЗУ из AIDA64. Тут уже падение скоростей чтения и записи сложно назвать слабым — шутка ли, DDR4-3400 быстрее стоковой DDR4-2133 в полтора раза. А вот задержки увеличились не очень сильно, приблизительно на 20% — сказывается то, что тайминги в обоих случаях были неплохо оптимизированы.
Перейдем к тестам в играх, и начнем с все той же Assassin’s Creed Odyssey. Падение частоты больше чем на 20%, с 3400 до 2933 МГц, игра просто не заметила — средний FPS не изменился совершенно. А вот на DDR4-2133 игра уже выдала только 93 кадра в секунду, то есть падение производительности составило порядка 5%.
В World War Z API Vulkan показывает, что он дейсвительно ближе к железу, чем DirectX — уже на 2933 МГц мы видим падение частоты кадров с 180 до 178, а на 2133 МГц мы получаем только 169 FPS. Иными словами, максимальная потеря кадров составила 7% — не так уж и мало.
Ну и переходим к Far Cry New Dawn, и вот тут даже переход на DDR4-2933 снижает FPS на пару процентов, а на DDR4-2133 вы не досчитаетесь уже 13 кадров в секунду, что составляет 11% — достаточно внушительная потеря.
Какой можно сделать вывод? DDR4-2133 для игр брать точно не стоит, во всех протестированных играх такая память ощутимо снижает итоговый FPS. А вот DDR4-2933 показывает себя на удивление неплохо — я ожидал, что в тяжелом Assassin-е будут просадки частоты кадров, но их там не было от слова совсем. Так что Intel не зря выбрала такую частоту дефолтной для своих псевдо новых процессоров — память на ней едва ли будет узким местом в системе.
Что касается обьема ОЗУ, совсем недавно популярный зарубежный Youtube-канал Linus Tech Tips, подтвердил, то, о чем мы уже не раз говорили, объём DDR4 в 4GB почти непригоден для использования, так как после простой загрузки Windows 10 половина памяти уже была занята.
С 8 гигабайтами ОЗУ работать становиться куда приятней. Можно смело запускать 3 ролика в 4K или 27 простых вкладок. В играх потребление памяти зависит от конкретного тайтла, но 16 Гб можно смело назвать золотой серединой. C 8 Gb ОЗУ тоже жить можно, но при этом файл подкачки используется на 20% от своего объёма, так что для дополнительных фоновых процессов неплохо бы обзавестись китом памяти на 16 Gb.
Дальнейшее наращивание объёма оперативной памяти не даёт почти никакого эффекта. Этих же 16 Гб будет сполна хватать для рендера, 32 Gb ОЗУ может понадобиться либо профессионалам, либо если вы любите открывать все и сразу.
Более 32 Gb может потребоваться художникам и создателям контента, которые держат открытыми сразу несколько рабочих программ.
Ну и глобальный итог — нет особого смысла гнаться за очень быстрой памятью. Если между DDR4-2933 и DDR4-3400 разницу уже нужно искать под лупой, то уж при переходе на DDR4-4000 вам потребуется микроскоп. А ведь стоит последняя достаточно дорого, и, сэкономив на ней, вы вполне можете взять более быструю видеокарту и гарантированно получить прирост производительности в играх.
Так что на данный момент имеет смысл остановиться на 8 или лучше 16 Гб памяти с частотой около 3 ГГц, причем не нужно дополнительно ужимать тайминги, стандартного XMP-профиля вполне хватит.
Почему скорость записи в ОЗУ меньше скорости чтения? И как кеши попадают в картину?
Во-первых, это правда, правда? Я чувствую , что читает всегда будет быстрее , чем пишет, и этот парень здесь делают некоторые эксперименты , чтобы «доказать» это. Он не объясняет почему, просто упоминает «проблемы кеширования». (и его эксперименты, кажется, не беспокоятся о предварительной загрузке)
Но я не понимаю почему. Если это имеет значение, давайте предположим, что мы говорим об архитектуре Nehalem (например, i7), которая имеет кэш L1, L2 для каждого ядра, а затем общий кеш L3.
Вероятно, это потому, что я не правильно понимаю, как работает чтение и запись, поэтому я напишу свое понимание. Пожалуйста, скажите мне, если что-то не так.
Не уверен насчет последнего шага. Проникают ли данные в кеши, что означает, что в случае пропадания кеша память сначала считывается в L3/L2/L1, а затем читается оттуда? Или он может «обойти» все кэши, а затем кэширование происходит параллельно для дальнейшего использования. (чтение = доступ ко всем кэшам + выборка из оперативной памяти в кэш + чтение из кэша?)
Опять не уверен насчет последнего шага. Может ли запись быть сделана «в обход» всех кешей, или запись включает в себя всегда сначала чтение в кеш, изменение кешированной копии и возможность аппаратному обеспечению сквозной записи фактически выполнять запись в область памяти в ОЗУ? (запись = чтение всех кэшей + выборка из ОЗУ в кэш + запись в кэш, параллельная запись в ОЗУ ==> запись — это почти расширенный набор чтения?)
2 ответа 2
Память должна хранить свои биты в двух состояниях, которые имеют большой энергетический барьер между ними, иначе минимальное влияние изменило бы бит. Но когда мы пишем в эту память, мы должны активно преодолевать этот энергетический барьер.
Преодоление энергетического барьера в оперативной памяти требует ожидания, пока энергия перемещается. Простой просмотр того, на что настроен бит, занимает меньше времени.
Я не достаточно уверен в деталях того, как кэширование взаимодействует с RAM, чтобы ответить на эту часть вопроса с какой-либо авторитетностью, поэтому я оставлю это кому-то другому.
Случай записи: если вам нужно что-то записать в память, и у вас есть хороший контроллер памяти, игнорирующий все кэширование, все, что вам нужно сделать, это отправить транзакцию в контроллер памяти с данными, которые вы хотите записать. Из-за правил упорядочения памяти, как только транзакция покидает ядро, вы можете перейти к следующей инструкции, потому что можете предположить, что аппаратное обеспечение выполняет запись в память. Это означает, что запись практически не занимает времени.
Случай чтения: с другой стороны, чтение — это совершенно другая операция, и ей очень помогает кэширование. Если вам нужно прочитать данные, вы не сможете перейти к следующему шагу в вашей программе, пока не получите данные. Это означает, что вам нужно сначала проверить кэши, а затем память, чтобы увидеть, где находятся данные. В зависимости от того, где находятся данные, ваша задержка будет соответственно уменьшаться. В системе без потоков, без конвейерного ядра, без предварительной загрузки вы просто сжигаете циклы ядра, ожидая возвращения данных, чтобы вы могли перейти к следующему шагу. Кэш и память на несколько порядков медленнее, чем скорость ядра / пространство регистров. Вот почему чтение намного медленнее, чем запись.
Возвращаясь к транзакции записи, единственная проблема, с которой вы можете столкнуться со скоростью, — это если вы выполняете чтение после транзакции записи по тому же адресу. В этом случае ваша архитектура должна гарантировать, что ваше чтение не перепрыгнет через вашу запись. Если это произойдет, вы получите неправильные данные обратно. Если у вас действительно умная архитектура, так как эта запись распространяется по направлению к памяти, если происходит чтение по тому же адресу, аппаратное обеспечение может вернуть данные до того, как они попадут в память. Даже в этом случае чтение-после-записи, с точки зрения ядра, это не запись, а чтение.
С точки зрения оперативной памяти: даже если мы не говорим о ядре и говорим только о контроллере ОЗУ / памяти, выполнение записи в MC приведет к тому, что MC сохранит его в буфере и отправит ответ, в котором говорится, что транзакция завершена (хотя это не так). Используя буферы, нам не нужно беспокоиться о фактической скорости записи в DIMM / RAM, потому что об этом позаботится MC. Единственное исключение из этого случая — когда вы делаете большие блоки записи и выходите за пределы возможностей буфера MC. В этом случае вы должны начать беспокоиться о скорости записи в ОЗУ. И это то, на что ссылается связанная статья. Затем вы должны начать беспокоиться о физических ограничениях чтения и скорости записи, которые затрагивает ответ Дэвида. Обычно ядро все равно делает глупость; вот почему DMA был изобретен. Но это совсем другая тема.