- Как «бесплатно» прокачать свой компьютер или ноутбук
- Что такое Resizable Bar
- Какие процессоры, видеокарты и материнские платы поддерживают Resizable Bar
- Об увеличении производительности видеокарт с помощью опции Resizable BAR/Smart Access Memory
- Что такое Resizable BAR?
- Как работает опция Resizable BAR?
- Как включить на компьютере опцию Resizable BAR?
- Как использовать функцию Resizable BAR в операционных системах с ядром Linux?
- Заключение
Как «бесплатно» прокачать свой компьютер или ноутбук
Что такое Resizable Bar
Технология Resizable Bar или, как ее сокращенно называют, ReBar — это набор инструкций, который позволяет центральному процессору обращаться ко всему объему видеопамяти. Если Resizable Bar не активна, то процессор обращается к видеопамяти только блоками объемом до 256 Мб.
Проще говоря, это обеспечивает более эффективный обмен данными между центральным процессором и видеокартой. Прирост производительности при этом может быть значительным, в зависимости от оборудования и программного обеспечения.
Какие процессоры, видеокарты и материнские платы поддерживают Resizable Bar
Resizable Bar поддерживают ноутбуки с графикой NVIDIA 30-й серии и совместимыми процессорами Intel и AMD. Доступна ли технология на конкретной модели лэптопа нужно уточнять у производителя. Также может потребоваться обновление.
В десктопном сегменте поддержку Resizable Bar должны иметь три компонента: материнская плата, процессор и видеокарта. NVIDIA официально заявляет о поддержке процессоров Intel 10-го и 11-го поколения, а также AMD Ryzen на основе Zen 3. Из видеокарт поддерживается только 30-серия. Причем RTX 3060 уже из коробки имеет нужный BIOS. Для всех остальных видеокарт Ampere может потребоваться обновление.
Что касается материнских плат, то здесь многое зависит от производителя. К примеру, EVGA выпустила BIOS с поддержкой Resizable Bar для материнских плат на чипсете Z370 и Z390 с сокетом LGA 1151v2. То есть технология доступна на процессорах Intel 8-го и 9-го поколения. Официально заявлена поддержка чипсетов Z490, H470, B460, H410, а также чипсетов для 11-го поколения процессоров. У AMD официально заявлена поддержка 400 и 500 чипсетов.
Стоит отметить, что отдельные пользователи заявляют о работе Resizable Bar и на более старых процессорах и видеокартах, например Ryzen 1700 и Vega 56.
Об увеличении производительности видеокарт с помощью опции Resizable BAR/Smart Access Memory
Профессиональные видеокарты Nvidia, а также модели серии RTX3000 имеют функцию расширения размера регистра (Resizable BAR), теоретически увеличивающую производительность при проведении вычислительных операций с большими массивами данных, а также в играх. Современные видеокарты AMD поддерживают аналогичную технологию, называемую Smart Access Memory.
Для бесплатного увеличения производительности видеосистемы на компьютере стоит разобраться, что такое Resizable BAR и как включить этот параметр для получения дополнительных хешей/FPS.
Что такое Resizable BAR?
Возможность использования опции Resizable BAR появилась в 2008 году в стандарте PCI-E 2.0.
В устройствах AMD работа с Resizable BAR реализуется с помощью технологии Smart Access Memory (SAM). В некоторых конфигурациях включение SAM-технологии не увеличивает производительности системы, поэтому в большинстве случаев она отключена. Для новейших видеокарт серии AMD RX 6xxx поддержка этой технологии включена по умолчанию.
Иллюстрация выигрыша от использования опции Resizable BAR (Smart Access Memory) для видеокарт AMD:
У Nvidia функция расширения размера регистра раньше была доступна только на профессиональных видеокартах, например, Nvidia Tesla K40. Начиная с моделей Nvidia серии GeForce RTX 3000 опция Resizable BAR стала доступна и владельцам обычных видеокарт.Опция Resizable BAR расширяет доступные возможности работы устройств по шине PCI-Express. Это параметр, позволяющий оптимизировать порядок работы с BAR (Base Address Register) — базовыми адресами (регистрами) памяти или PCI I/O-диапазона.
За счет использования Resizable BAR появляется возможность одновременной работы центрального процессора с фрагментами памяти VRAM размером более 256MB, что увеличивает производительность приложений, работающих с большими массивами данных. Включение опции Resizable BAR позволяет ускорить обмен данными по шине PCI-E между аппаратным обеспечением и системными программами за счет оптимизации использования ограниченных ресурсов — памяти устройства и/или адресов шины ввода-вывода.
Неэффективное использование ресурсов может значительно уменьшить производительность видеокарт при вычислениях. На практике это проявляется в заниженном хешрейте при майнинге в сравнении с расчетным. Например, при тестировании видеоускорителя Nvidia Tesla K40 на алгоритме Ethash был получен хешрейт, равный единицам mh/s, хотя DAG генерировался со скоростью 275 MB/s, что соответствует 34 mh/s.
Как работает опция Resizable BAR?
Порядок работы с функцией Resizable BAR определяется установкой нужных значений регистров Capability и Control на PCI-E устройстве:
По умолчанию, для обеспечения совместимости, PCI-E устройства используют малый размер BAR (256 мегабайт), что снижает их производительность. Если использовать функцию расширения размера регистра (Resizable BAR), то можно изменять размер доступной процессору памяти видеокарты в диапазоне от 1 MB до 512 GB.
Для работы с функцией Resizable BAR на аппаратном уровне используется специальный регистр — Resizable BAR Capability register:
Доступный объем BAR-памяти определяется местонахождением бита регистра Resizable BAR Capability (от 4 до 23). При установке этого бита в положение 4, размер BAR равен одному мегабайту, если регистр Resizable BAR Capability равен 23, то возможна работа с адресами памяти до 512 GB.
Соответствие некоторых значений регистра Resizable BAR Capability и доступного размера адресов памяти:
Разработчики программ задают в них алгоритм, который на программном уровне определяет оптимальный размер задействующихся ресурсов и программирует его с помощью BAR Size field регистра Resizable BAR Control:
Доступный размер BAR в диапазоне от 1 MB до 512 GB, записывается в бит 12:8. Затем устройство и программа взаимодействуют между собой, согласуя порядок работы с BAR-ами.
Если используется совместимое аппаратное и программное обеспечение, при включении опции Resizable BAR устройство может задействовать больше ресурсов и тем самым обеспечить более высокую производительность. Нужно понимать, что на нужды других устройств станет выделяться меньше ресурсов, что иногда может привести к падению общей производительности. В связи с этим, при использовании видеокарт, работающих с опцией Resizable BAR, на компьютере требуется обеспечить наличие значительно большего объема системной памяти. Ее должно быть не меньше, чем доступный размер VRAM плюс память на нужды операционной системы и прикладных программ.
Как включить на компьютере опцию Resizable BAR?
Чтобы использовать потенциал функции Resizable BAR, оборудование компьютера должно уметь работать в соответствующем режиме.
Обычно для этого требуется установка видеокарты в полноценный слот PCI-E (без райзера или с устройством, способным обеспечить высокую скорость передачи данных по всем линиям PCI-E), наличие большого объема системной памяти (больше размера VRAM), а также поддержка этой технологии процессором и чипсетом. Также требуется включение соответствующих опций в BIOS видеокарты/материнской платы и поддержка на уровне драйвера/операционной системы.
Resizable BAR Capability работает с памятью размером более 4 GB только в режиме 64-bit, поэтому технология Resizable BAR работает только при использовании современной 64-битной операционной системы.
Для видеокарт GeForce RTX 3060 Ti, 3070, 3080, или 3090 первых выпусков для работы с Resizable BAR может понадобиться обновление BIOS. Подробная инструкция о работе с Resizable BAR есть на странице сайта Nvidia.
Официально технологию Resizable BAR на видеокартах Nvidia 3000-й серии поддерживают:
Теоретически работать с опцией Resizable BAR могут и более старые компьютеры с процессорами, которые поддерживают работу с инструкциями PDEP (PCI-E full-rate _pdep_u32/64). К ним относятся процессоры AMD с архитектурой Zen 3, 5 и выше, а также процессоры Intel 4-го поколения Haswel и новее.
Важным условием совместимости является поддержка материнской платой опции 4G Decoding.
Основные требования, которым должен соответствовать Windows-компьютер для полноценной работы видеокарт Nvidia серии RTX 30 с Resizable BAR (для GPU AMD требования идентичны):
- видеокарта должна быть вставлена в полноценный слот PCI-E материнской платы (или через PCI-E 3.0 x16 райзер);
- на компьютере под управлением 64-разрядной версии Windows 10 должны быть установлены драйвера Game Ready или NVIDIA Studio, поддерживающие опцию Resizable BAR (лучше Nvidia GPU driver версии 465.89 и выше);
О наличии поддержки опции Resizable BAR можно узнать в описании конкретной версии драйверов на сайте Nvidia:
- BIOS материнской платы должен поддерживать работу с Resizable BAR (может понадобиться обновление), соответствующая функция должна быть включена пользователем. У разных производителей эта опция BIOS называется по разному, например, на платах фирмы ASRock — это опция Clever Access Memory, у ASUS — Re-Size BAR Support, у Gigabyte — Resizable BAR Support;
Включение опции CAM (Clever Access Memory) в BIOS материнской платы ASRock (меню Advanced — Chipset Configuration):
Включение опции Re-Size BAR Support в обновленном BIOS материнской платы ASUS (меню Advanced — PCI Subsystem Settings):
- видеокарта должна иметь BIOS, поддерживающий работу с функцией расширения размера регистра. Компания Nvidia начала выпуск видеокарт RTX 3060 с обновленным BIOS-ом с 25 февраля 2021 года;
- в BIOS материнской платы должны быть включены опции Above 4G Decoding и Resizable BAR (Clever Access Memory), выключен модуль Compatibility Support Module (опция CSM), а также включен самый высокий уровень поддержки (не ниже PCI-E Gen 3.0 или 4.0) ;
- загрузка операционной системы должна производится с GPT-диска (не MBR!) с UEFI-BIOS.
Чтобы проверить соответствие компьютера/видеокарты нужным требованиям, нужно использовать утилиту Nvidia Resizable BAR Firmware Update Tool. Эта же программа поможет обновить видеокарты с неподходящим BIOS. Для видеокарт различных производителей может понадобиться специальное программное обеспечение, которое можно найти по ссылкам на этой странице.
Если компьютер поддерживает работу с Resizable BAR, программа NVIDIA Control Panel на вкладке System Information покажет одноименную строку, в которой будет написано Yes:
В диспетчере устройств на вкладке ресурсов видеокарты, поддерживающей работу в режиме Resizable BAR, должна быть видна опция Large Memory Range:
Как использовать функцию Resizable BAR в операционных системах с ядром Linux?
Чтобы включить поддержку Resizable BAR для видеокарт Nvidia, AMD, а также Intel в Linux, нужно обеспечить выполнение аппаратных и программных требований, описанных выше.
Работа устройств с увеличенным объемом ресурсов в операционных системах семейства Linux возможна благодаря встроенной в ее ядро поддержке Resizable BAR/Smart Access Memory.
Современные версии Linux (в том числе ОС для майнинга HiveOS) при работе в связке с драйвером amdgpu обычно сами меняют значение BAR0 для каждой видеокарты AMD таким образом, чтобы зарезервировать для CPU весь доступный размер VRAM. Если в системе нет достаточных ресурсов (адресного пространства), то соответствующим образом уменьшается и значение Resizable BAR.
Чтобы увидеть размер BAR, который на практике используется системой Linux, можно использовать команду:
При правильной конфигурации BIOS, на компьютере под управлением Linux для видеокарт AMD опция Resizable BAR доступна даже при включении видеокарт через райзер PCI-E x1.
В данном случае размер BAR равен 4096 мегабайтам, что соответствует объему VRAM видеокарты AMD Radeon RX584:
На компьютере, не поддерживающем работу с Resizable BAR, размер BAR равен 256 мегабайтам, независимо от объема VRAM видеокарт АМД:
При работе с видеокартами Nvidia в Linux система также сама пытается подобрать оптимальный размер BAR, но на практике это происходит значительно хуже чем у AMD.
Более полную информацию о видеокартах можно получить с помощью команды
Фрагмент информации, отображающейся о видеокарте AMD Radeon RX584 с включенной поддержкой Resizable BAR/Smart Access Memory (видно, что доступен весь размер памяти, равный 4 GB):
Пример информации о видеокарте GeForce GTX 1060 6GB, отображающейся по команде sudo lspci -s 0000:01:00.0 -vv (поддержка Resizable BAR отсутствует, доступно только 256 MB VRAM):
Пример информации, отображающейся в Linux по команде sudo dmesg | grep BAR на компьютере с видеокартами Nvidia GTX1066:
Заключение
Для использования опции Resizable BAR пользователь должен использовать совместимое оборудование и программы, которые должны быть настроены соответствующим образом. Так как алгоритм практической реализации работы с регистрами Resizable BAR задается в прикладном программном обеспечении, выигрыш от включения этой технологии не всегда одинаков (если он вообще есть).
В настоящее время подтвержден выигрыш в игровой производительности (до 12%) видеокарт Nvidia трехтысячной серии в Windows после включения Resizable BAR. Так как эта опция улучшает производительность подсистемы памяти, то выигрыш теоретически должен быть и при майнинге. К сожалению, на практике его получить не так легко, так как для этого программы для майнинга должны не только уметь работать с функцией расширения размера регистра, но и обходить ограничения относительно криптовалютных вычислений, налагаемые компанией Nvidia на видеокарты серии RTX 30xx.
В операционных системах на ядре Linux ситуация несколько лучше, так как поддержка Resizable BAR в них реализуется на уровне ядра. Для этого желательно использовать самые новые ядра Linux, а также иметь достаточный объем доступных аппаратных ресурсов (ОЗУ).
Исходя из сравнения производительности видеокарт, у которых работает опция Resizable BAR (в Linux) с такими, в которых используется стандартный размер BAR, равный 256 мегабайтам, можно сказать, что прирост хешрейта при использовании обычных программ для майнинга отсутствует.