UEFImark, первая ласточка UEFI-диагностики

UEFImark, утилита для измерения скорости обмена с видео памятьюУтилита UEFImak не претендует на то, чтобы быть каким-то откровением на тему диагностики. Скорее, это хороший пример, как нужно писать софт для работы с еще живой персональной платформой x86, но уже в 64-битном измерении. Использование в разработке языка ассемблера придает особый шарм утилите. Можно сказать, что UEFImark настолько оптимально использует ресурсы центрального процессора, насколько это в принципе возможно. Еще можно отметить, что UEFImark — это программный продукт с открытым исходным кодом. Если интересно, читаем дальше…

Итак, на ваше рассмотрение выносится инженерный релиз UEFImark, версия v0.9. Утилита работает только на тех платформах, которые оснащены UEFI BIOS. Наброски рекомендаций того, как пользоваться UEFI, уже доступны (статья в процессе, поэтому в ближайшее время будет дополнена скриншотами и описаниями).

Что может этот софт?

  • Во-первых, утилита UEFImark запросто общается с видеокартой в GOP-режиме (энтузиастам адресована небольшая заметка по этому поводу на Компостере). Для тех, кого не штырит от теории, перейдем к во-вторых.
  • Во-вторых, тулза живо (это же ассемблер, господа!) записывает в видео память и считывает оттуда паттерны, что позволяет оценить производительность этой видео подсистемы с последующими выводами. Эту операцию UEFImark выполняет в 128-битном режиме с помощью SSE-команд и стандартными строковыми пересылками в 32-битном режиме.
  • В-третьих, попутно из процессора вычитывается информация о его модели и архитектурных возможностях: MMX, SSE, AVX (что видно на скриншоте). С помощью TSC определяется рабочая частота BSP-ядра. Если кто хочет поёрничать на тему мультипроцессорности, не советую — у нас она давно реализована в среде MS DOS, ее портирование в 64-битный режим — вопрос времени и финансовых поступлений.
  • На десерт предлагается в-четвертых. Наш скромный коллега по ROM.by (более известный своими программными продуктами PhoenixDeco [ссылка1, ссылка2] и InsydeDeco, а про AMIDeco и AwardDeco все понятно и без комментариев) протестировал UEFImark в среде QEMU и получил первые результаты. Там пока не все гладко, но утилита работает и это уже хорошо.

Но главное — не достижения. Главное — это помощь клуба ROM.by. Огромная просьба всем, кому доступна клавиатура и кто может держать мышь в руках: тестируйте программу на своих компьютерах, на своих видео картах. Выкладывайте скриншоты здесь. Комментарии для неравнодушных обеспечены. Зрителям — Фейсбук, ВКонтакт и поп-корн : )

баловался подобным года три назад
если еще рассыпать работу с видео памятью по процессорам (как вы выше упоминаете), то можно проводить тестирование шустрости PCIe шины с адаптерами (x1/x4/x8/x16) Gen-1.0/2.0/3.0

PS: молодцы, желаю успехов !!
PS2: например когда 8 процессоров пытаются "втиснуть" свои данные в х1, то они друг другу "мешают", а заглушив "парочку" - повышаешь производительность(по "втискиванию") остальных ;)

ВложениеРазмер
text0000.txt 300 байтов

... иди туда, незнаю куда, возьми то, не знаю что ... (C) Русские народные сказки

Аватар пользователя icbook

Спасибо за текстовый рапорт! Доступна версия 0.93 с историей и новым списком контрольных точек.

Аватар пользователя icbook

Цитата:
Video memory write (MB/S): 218.6 (SSE), 52.0 (386)

Для Geforce GTX-770 — 2730 мегабайт в сек.

На нашей стендовой плате ASUS Z87-K и некоторых других, низкая скорость
записи в видео память (около 300 MB/S) связана с тем, что BIOS не оптимально
устанавливает диапазон доступа к видео памяти, подключая его через
Non-Prefetchable диапазон моста PCI Express, это делает невозможным


оптимизацию: сборку циклов записи в пакеты для отправки по шине PCI Express
(не работает Write Combining).

В разработке новая версия, которая будет включать Prefetchable диапазон
моста, то есть делать то, что не сделал BIOS при старте.

Мультипроцессорность также в планах, но думаю, что при правильной
Write Combining-оптимизации ограничителем скорости будет PCI Express
и видео адаптер а не центральный процессор.

Ну и конечно будем исследовать функцию GOP.BLT (Block Transfer), которая
потенциально дает возможность задействовать видео акселератор,
так как операция записи в видео память поручается процедурам firmware.
Интрига в том, используют ли современные видео карты такую возможность.

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img>
  • You can use BBCode tags in the text. URLs will automatically be converted to links.

Подробнее о форматировании текста

Антибот - введите цифру.
Ленты новостей