Куратор темы Статус: Не в сети Регистрация: 10.04.2003 Откуда: Москва
Пока выложил v0.7 и начал серьезные переделки взаимодействия программы и библиотеки. Большой шанс 'всё сломать'. yftul, спасибо за проверку! Этот вопрос тоже в плане (поставить RamDisk и посмотреть нюансы).
Куратор темы Статус: Не в сети Регистрация: 10.04.2003 Откуда: Москва
Такс, у меня проблема. Программа не глючит. Поставил RamDisk+ 11.1.193.0 на XP x64 (на этот комп w7 ставить нельзя) с отключенным swap. Core2 E8400 (2 ядра) 4G Под RamDisk отдан 1Гб, в него отправлен temp.
Издевался всячески, запуска сканер DrWeb одновременно с TM5 - конфликтов не обнаружено.
Что делать? Могу еще попробовать XP x86 на том-же железе, но это довольно скучно и бессмыслено (х86 сейчас никто не использует, особенно в паре с RamDisk)
Куратор темы Статус: Не в сети Регистрация: 10.04.2003 Откуда: Москва
ttable99, к сожалению, я не в курсе. Sorry!
Бегло посмотрел исходник версии 4.2
Могу только прокомментировать изменения:
Цитата:
4.2 New Features Added failsafe mode (press F1 at startup) Added support for Intel "Sandy Bridge" CPU Added support for AMD "fusion" CPU Added Coreboot "table forward" support Bug Fixes Corrected some memory brands not detected properly Various bug fixes
Исправление внутренних ошибок (ну куда без этого, эх); Деклараций об изменении тестов не последовало.
Цитата:
Enhancements in v4.10 : Added support for Core i7 Extreme CPU (32nm) Added support for Core i5/i3 (32 nm) Added support for Pentium Gxxxx (32 mn) Added support for Westmere-based Xeont Added preliminary support for Intel SNB A0-step Added support for AMD 6-cores CPU Added detection for Intel 3200/3210 New installer for USB Key Corrected a crash at startup Many others bug fixes
Аналогично
Цитата:
Enhancements in v4.00 : Major Architectural changes First pass twice faster (reduced iterations) Detect DDR2/3 brands and part numbers on Intel DDR2/3 chipsets Added detection for Intel "Clarkdale/Gulftown" CPUt Added detection for AMD "Magny-Cours" CPU Added detection for Intel XMP Memory Added for CPU w/ 0.5/1.5/3/6/12/16/18/24MB L3 Added "clean" DMI detection for DDR3/FBDIMM2 Corrected detection for Intel "Lynnfield" CPU Corrected detection for AMD 45nm K10 CPU Solved crash with AMD Geode LX Complies with SMBIOS 2.6.1 specst Fixed compilation issues with gcc 4.2+ Many others bug fixes
Вторая строчка интересна, в остальном смысла мало.
В коде я не нашел использования ни MMX, ни SSE, ни даже тупой prefetch. (внимательно просмотрел только 40%, далее поиск по характерным словам) О низкоуровневой оптимизации даже вспоминать не хочется. Если судить по стилю исполнения, то тесты в лучшую сторону не изменились. IMHO. Попробую глупо предположить, что качественных подвижек не много.
Добавлено спустя 3 часа 42 минуты 45 секунд: serj, вы говорили про четвертую версию, что тесты устарели и не отвечают современным требованиям железа. Могли бы вы проанализировать тесты пятой версии в этом же ключе?
Куратор темы Статус: Не в сети Регистрация: 10.04.2003 Откуда: Москва
У них на 4х версию дается исходник, а на 5х я не нашел.
Что по сути, то это СЛОЖНО. Давайте, я немножко помедитирую по проекту testmem, это мне ближе - а идеи и концепции те же. (уточню один момент, он 'бесспорен' - в версии 5 тесты остались теми-же, а потому не ищите черную кошку в черной комнате)
Итак, многозадачность .... Процессор-память состоят из следующих и независимых узлов: вычислительные ядра кеши (0)-1-2 кеш 3 уровня шина к контроллеру памяти контроллер памяти DIMM Каждый из этих узлов работает независимо(!!!!!), а потому вносит свои особенности по группировке данных. В древние времена процессоры состояли из 1 ядра, впрочем это было в Каменном веке, нонче времена продвинутые. К слову, сами тесты никто переписывать не собирается. Итак, один процессор одно ядро работает с вышеприведенным зверинцем достаточно очевидно (предсказуемо), переход на множество ядер приводит к появлению РАЗНОРОДНЫХ данных (по адресам) уже в самом верху дерева, в кешах. Они начинают пытаться группировать их в последовательные цепочки и выпихивать в контроллер. У самого контроллера памяти кеш маленький (а вы не знали, что все 'шины' всегда имеют короткие кеши?... или 'очереди'), а потому он не сможет долго удерживать открытой страницу. Си приводит к изменению режима работы DIMM - страницы открываются в N раз чаще. Я не анализировал, но вполне вероятная ситуация 'overswap', когда ядра активно запрашивают данные, но количество тредов превышает максимально-возможное кол-во _открытых_ страниц, что приведет к постоянному открыванию-закрыванию страниц с вычитыванием '1 байта' (я утрировал, считывается всегда 64 байта, длина строки кеша). Итак, вместо спокойного доступа получили кашу из запросов и долгий простой в получении данных. (надо бы симулировать такой режим) В однопоточном режиме такое в принципе не получить. Итак, режим тестирования стал ДРУГИМ. Хорошо это или плохо? А знаете, можете проверить сами - в S&M / TM5 можно установить тестирование одним потоком. Наблюдения: Мои - при переходе к нескольким тредам общая производительность падает. Т.е. даже 1 ядро способно полностью загрузить канал. Это говорит о наличии оптимизаций в подходе. Отзывы - при включении теста на нескольких ядрах тест работает эффективнее.
Выводы - самостоятельно. ))
Теперь о том, о чем вы не задумывались - поддержка многопоточности требует больших усилий по поддержке работоспособности системы. Есть два подхода: 1. одни данные, много тестов. 2. много данных, один тест. В первом случае на один тред выделяются блок данных, с которым он выполняет все последовательные тесты. Во втором - каждому треду дается блок памяти, который он прогоняет в заданном тесте, после чего ждет окончания аналогичного тестирования остальными тредами. Первый режим характеризуется рассинхронизацией режима работы с памятью (разные тесты _специально_ спроектированы с _различным_ режимом работы с памятью, в этом их смысл!) и долгим ожиданием в конце тестов, второй - микроожидания по готовности тредов в конце каждого теста. Во втором случае тестирование выполняется чуть долше, но меньше корежится само тестирование, первый режим больше напоминает кашу. Плоха каша или нет - зависит от разработчика. Если он не (стучит по дереву), то он учитывает эту особенность. Переход на многопоточность КРАЙНЕ усложняет программу, ведь приходится ставить семафоры, систему ожидания (на сколько?) и перезапуск заснувших тредов (похоже, последнее никто не делает). Так что ... бесплатного сыра не бывает, многопоточность - зло. Но, увы, современный компьютер работает в режиме многопоточности, а потому такой режим (наверно!) надо вводить. К слову, TM4 (я не ошибся) работает в защищенном режиме PM32 с псевдомультипоточностью (а как иначе на 1 ядре?).
Куратор темы Статус: Не в сети Регистрация: 10.04.2003 Откуда: Москва
255 потоков хватит?
Цитата:
[Main Section] Cores=255
Меньше 32Mb на одно ядро не делит, поэтому для того, чтоб увидеть "*255" придется иметь не менее 255*32=8G свободной памяти.
Если же говорить серьезно, то "мультизадачность" была полезна только при переходе от числа "1", а сколько будет 'больше' уже не существенно и даже вредно - затыкается контроллер памяти. Впрочем, я подумаю, спасибо за пинок. ))
Куратор темы Статус: Не в сети Регистрация: 10.04.2003 Откуда: Москва
Баг в программе симулировал, а потому исправил. Из-за этого действительно могла конфликтовать с RamDisk'ами и выдавать 1 crash (вывадивался 1 тред, но тестирование не останавливалось).
А так - ничего нового, только исправления (багов) и улучшения (их же). v0.9
Serj, вероятно прога (TM5.0.7)требует что-то от древнего процессора, чего он не может дать. Что-нить вроде инструкций SSE2, CLFLUSH, функций CPUID Debug Trace Store, Self-Snoop... Тупо сравнил пару старых процессоров, с которыми у TM5 кардинально разные отношения. Столкнулся с ситуацией, что живописал константин с байконура (см.начало), ну разве ошибок самой программы TM5.0.7 не наблюдал после произвольной правки Lock Memory Granularity (Mb)=4 Reserved Memory for Windows (Mb)=64.
Ошибки валятся с самого начала и далее на всех тестах при самых различных настройках в BIOS и MT.cfg (предложенные для константин с байконура тоже пробовал). SeLockMemoryPrivilege=Enabled обеспечил. Другие тесты ведут себя адекватно заданным частотам памяти, таймингам.
Использовал 2 разные планки по 128МБ и одну 512МБ во всех сочетаниях и раздельно. Планки взяты с рабочих ПК. WinXPsp2.
"Гастролирующий" ПК аналогичен оному у константин с байконура: Процессор Tualatin Intel Celeron-S, 1200 MHz (12 x 100), Кэш L1 кода 16 Кб, Кэш L1 данных 16 Кб, Кэш L2 256 Кб (On-Die, ATC, Full-Speed)... MMX, SSE (но не 2 и не 3). Материнская плата MSI 694T Pro (MS-6309 v5.0), чипсет VIA VT82C694T Apollo Pro133T,... 3DIMM. Свойства контроллера памяти: Метод обнаружения ошибок 32-bit ECC Коррекция ошибок Single-bit Поддержка чередования памяти 1-Way Текущее чередование памяти 1-Way <...> Разъёмы памяти 3
P.S. Не помешала бы возможность дописывать свои комменты в MT.cfg.
Куратор темы Статус: Не в сети Регистрация: 10.04.2003 Откуда: Москва
nso, боюсь, со старыми процессорами ничего не выйдет. В рабочих тестах никаких проверок делать нельзя, это катастрофически снизит производительность и, как следствие, эффективность кода. А значит, придется писать 'еще один вариант' всех тестов под такие процессоры. Плюс к тому, для 'старых' процессоров AMD (до "Феном") необходимо вовсе отказаться от SSE и перейти на MMX. А у меня не только перемещение данных, но и арифметика реализована на SSE. Короче, скучное это занятие. Что до комментариев, то ничего не мешает их писать. Программа переписывает настройки только при их заведомо неверных значениях. Для текстовых строк добавить комментарий не получится, но их немного - только названия тестов и путь к dll. Для числовых значений комментарий можно писать через пробел от числа (но лучше начинать его с чего-то общепринятого, ";" или '#'). Если нужен комментарий, который никогда не сгинет, то достаточно добавить любой параметр и к нему добавить любую текстовую строку. Каждый параметр состоит из имени и знака '=', после которого написано 'что-то', его значение. Можно добавить параметр, который не используется в других местах и указать ему что угодно, например строку "remark= Это комментарий". Еще вариант - 'тупо' писать что угодно с начала строки. Например, в самом начале mt.cfg написана 'бредятина' и это ни коем образом не мешает работе файла конфигурации. Подобный 'бессмысленный' текст можно вставлять в любое место файла конфигурации.
Хорошо бы это как-нибудь обозначить в виде границы или словесно для сохранения времени, главным образом, и нервных клеток.
serj писал(а):
Для числовых значений комментарий можно писать через пробел от числа (но лучше начинать его с чего-то общепринятого, ";" или '#').
В каких-то строках сохраняется: Capable=0x0 [0x1] В каких-то (с целочисленными значениями в [Global Memory Setup]) нет, причём строки сбрасываются в дефолт. Например: Cores=1 ;[0] Lock Memory Granularity (Mb)=4 #[16] Debug Level=7 [1] Без "[", ";" или "#" - аналогично.
Куратор темы Статус: Не в сети Регистрация: 10.04.2003 Откуда: Москва
nso, сгрузи последнюю версию. Признак комментария - символ ';' Все, что написано после этого символа в строке игнорируется. Т.е. запись вида "Cores=1 ;[0]" допустима, как и "Cores=1; 0"
Member
Статус: Не в сети Регистрация: 21.01.2007 Откуда: Липецк
serj, быстрее-ли выявит проблемную (бракованную) память данная утилита, нежели MemTest86+ 5.00 Beta1 ? Вчера сдал пару планок Самсунга по гарантии, ошибки проявлялись не ранее, чем через 3-4 часа теста... Стандартная утилита от Windows ошибок не находила, как и GoldMemory Pro 7.70 (правда тесты продолжались не более часа)
Разумеется, никаках гарантий не жду - чисто Ваше мнение (можно в процентном соотношении ).
P.S. Программа прекратила тестирование на ~ 53 минуте, не выдав никаких сообщений...
Подскажите пожалуйста какой параметр "подправить", чтобы тест длился не менее 8 часов.
Куратор темы Статус: Не в сети Регистрация: 10.04.2003 Откуда: Москва
loorik, даже, если бы я точно знал соотношение качества определения сбоев этих двух программ(а я не знаю), то все равно не смог ответить на твой вопрос. И никто не сможет. Ошибки имеют вероятностный характер.
Цитата:
[Main Section] Time (%)=100 Cycles=3
Первый параметр регулирует общую 'сложность' тестирования (т.е. время), второй - количество циклов. Time (%)= 1...10000 (ниже '10' реально не устанавливается); Выше '1000-2000' эффективность растет мало. Cycles=1...250
хорошая программка, ориентируюсь пока на нее после разгонов, побыстрее обычного мемтест и ошибки находит вроде нормально, вот только жаль не показывает , если находит ошибки, то в каком модуле dimm для конечной проверки ставлю циклы в 0 и оставляю на ночь
_________________ Coffee Lake i7-8700K ; GeForce® RTX 2070 SUPER™ GRP ; Windows 10 LTSC_x64 ASUS TUF Z390-PRO Gaming ; DDR4-3600, 2x16ГБ Sumsung M378A2K43CB1-CRC
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения