vRAM Drive. Скорость работы. Устанавливаю игры в видеокарту

Не так давно я наткнулся на новость о том, что какая-то стримерша запустила крайзис 3, установленный в память видеокарты. Захожу я в эту новость в надежде узнать чем же дело закончилось, а оказалось ничем не закончилось, потому что новость оказалось не о чём и никаких толковых результатов в новости нет.

Но любопытство было уже не унять, так что я решил, что данное мероприятие можно провести более качественно, ну и надо это дело как-то с чем-то сравнить.

Единственное у меня нет видеокарты на 24 гига, а есть только 8 гиговая RTX 2070, что существенно снижает спектр возможных для установки игр.

Что касается игр — естественно будет меняться только скорость загрузки, а учитывая то, что сейчас нет видеокарт на 150 гигов чтобы записать туда какую-нибудь RDR2 с большими локациями, то практический смысл запуска игр в целом довольно сомнительный.

Что касается игр сравнивать мы будем вирам диск с рам диском, ну и ещё с SSD и жёстким диском в придачу. В общем я устанавливал игры, не только в видеокарту, но и в оперативную память.

Как создать дисковый раздел в видепамяти?

И для начала я покажу, как вообще создать раздел в видеопамяти, мало ли кому то тоже захочется это сделать.

А делается это из под винды очень просто.

Заходите на гитхаб. И скачиваете утилиту GpuRamDrive.

Качаете самый свежий релиз. На момент написания статьи самая свежая версия — 0.4.

Утилита эта не самостоятельная, и требует для установки ещё программу ImDisk.

При установки ImDisk никакие галочки не трогайте, устанавливаете как есть.

После установки ImDisk просто запускаете нужную для вашей системы версию GPURAMDRIVE — указываете размер диска, выбираете для него букву, а так же в специальной области указываете в какую файловую систему вы хотите отформатировать вновь создаваемый раздел. У меня тесты будут в файловой системе NTFS.

И всё, в системе появляется ещё один накопитель. Дальше вы можете с этим разделом делать всё что хотите. Естественно при отключении питания компьютера раздел будет удаляться и все данные на нём уничтожаться. В общем-то всё так же как и с дисковыми разделами в оперативной памяти.

Условия тестирования

Тесты будут в нескольких конфигурациях системы.

У меня нет процессоров под PCi-e 4-ой версии. Так что максимум будет 16 линий третьей версии.

Кроме того я могу переключить через биос порт во вторую и первую версии PCi-e.

Кроме того я могу ещё уменьшить число линий PCI-e до одной, используя рейзер.

16 Линий PCI-e третьей версии должна давать теоретическую пропускную способность около 16 ГБайт в секунду, практическая составляет где-то около 12.

1 Линия PCI-e первой версии имеет пропускную способность в 250 Мбайт в секунду, то есть чуть медленнее, чем сата 2.

Итого имеется возможность менять ширину канала к vRAM диску в 64 раза между самым быстрым и самым медленным.

Специфика установки игр

Решил я поставить GTA SanAndreas.

GTA San Andreas установленная в видеопамять RTX 2070 и запущенная на ней же

Она занимает около 4,5 Гигов и без проблем помещается в видеопамяти. Благо со Steam очень легко переносить игры, надо только откопипастить файлы игры, добавить в «стиме» путь к игре и он автоматом подтянет всё необходимое для запуска.

Добавление пути в Staem для расположения установленных игр

Это решает вопрос с обнулением дисков после перезагрузки компьютера, а сохранения лежат в документах, так что в целом — это даже можно использовать в реальности.

Ну и в общем-то игры запускается самым обычным образом.

Игровой процесс есть на видео ниже:

Никаких особенностей у геймплея я не заметил. Я пробовал и на скорости ездить чтобы заставить игру подгружать локации, но учитывая объёмы данных для этой игры — сложно было бы ожидать каких-то проблем.

Что касается времени загрузки, я так понял, что у анимации загрузки есть максимально возможная скорость ползунка загрузки. И от потемнения экрана после выбора сохранения до завершения движения полосы загрузки это 3,5 секунды. vRAM диск и RAM диск показывают равную скорость загрузки в 3,5 секунды.

Но тут ничего невероятного нет. Ещё игру я поставил на довольно быстрый NVME накопитель. Загрузка те же 3,5 секунды.

SSD накопитель ADATA SX8200 Pro 1 TB

Я уже сказал, что ещё есть эксперименты по версиям PCI-e и числу линий. Естественно я игру проверил на нескольких вариантах подключения. На PCI-e v3 на одной линии — загрузка те же 3,5 секунды. И только на одной линии PCI-e v1 время загрузки увеличилось до 3,667 секунды. Для сравнения я игру установил на обычный жёсткий диск. Время загрузки на нём составило 4,1 секунды.

Замеры быстродействия vRAM диска

Так же естественно надо посмотреть на производительность этих всех накопителей.

Начнём с более традиционных систем. Покажу на что способен SSD, на который я ставил игру чтобы было с чем сравнивать.

SSD ADATA SX8200 Pro 1 TB
SSD ADATA SX8200 Pro 1 TB

Результаты vRAM диска.

vRAM диск в тесте CrystalDiskMark
vRAM диск в тесте ATTO Disk Benchmark с глубиной очереди — 1

Результаты не обнадеживающие.

Естественно тут причина в софтверной составляющей. Кроме того по скорости работы памяти видно, что видеокарта ограничена 4-мя линиями PCI-e. При этом я убедился в том, что видеокарта не переходила в энергосберегающие режимы работы, когда версия PCI-e на современных картах падает с третьей на первую. Видеокарта адекватно на всех нагрузках на vRAM диск переходила на PCI-e третьей версии. Если абстрагироваться от работы с видеопамятью через накопитель, а замерять скорость работы памяти используя средства замера скорости работы памяти специальные для видеокарт, то мы получаем 64 ГБайт в секунду, а не жалкие 3. Естественно с точки зрения работы диска мы бы не смогли получить больше 12, из-за PCI-e. 12, это, конечно, не 64, но и не 3. Но так или иначе — я нашёл только одну утилиту, которая позволяет разметить как дисковый раздел видеопамять, так что каких-то альтернатив всё равно нет.

Ну и полученные цифры — это не ограничения у бенчмарков для дисков. Допустим с RAM диском, то есть диском на оперативной памяти — цифры значительно выше.

Ram диск
RAM диск

Опять же — тоже не родная скорость памяти, но как сам факт — программы могут выдать значения большие, чем выдали для vRAM диска.

нажмите для увеличения. Сравнительные характеристики NVMe, RAM диски и vRAM диска

Перейдя на PCI-e второй версии оставив все 16 линий Sandra от SiSoftware уже определила эффективную пропускную способность шины в 6 ГБайт в секунду.

PCI-e x16 v.2
PCI-e x16 v.2

Однако, опять же — скорость всё равно не 6 ГБайт в секунду, а два с половиной. В целом — работа памяти замедлилась как на крупных, так и на мелких файлах.

Переход на PCI-e первой версии снизил определяемую сандрой эффективную пропускную способность шины до 3 ГБайт в секунду.

PCI-e x16 v.1
PCI-e x16 v.1

Скорость упали ещё сильнее.

Нажмите для увеличения. Сравнение производительности PCI-e x16 v.3, PCI-e x16 v.2, PCI-e x16 v.1

По цифрам — это естественно уже гораздо ниже, чем показывают хорошие SSD. Но не надо забывать, что у SSD то что показывают такие бенчмарки — это скорость работы буфера, а не реальные данные по памяти. так что если вдруг вы когда-то купили себе офисную затычку на 4 Гига видеопамяти, и у вас фобия на счёт файлов подкачки на SSD накопителе, то вы можете подключить такую видеокарту в свободный слот и использовать её память для размещения файла подкачки, у видеопамяти нет ресурса на перезапись, в отличие от SSD. Кстати о том, почему у SSD есть ограничение ресурса было отдельное видео на канале.

Это были тесты на слотах X16. Естественно можно используя рейзер ограничить число линий до одной.

К сожалению система не хотела стартовать на этом рейзере, когда он подключен в процессорный слот PCI-e, даже несмотря на то что у меня рейзер с доп питанием, и такие работают устойчивее.

Пришлось переключиться на чипсетный порт PCI-e.

Для чипсета точно так же как и для процессорного слота я могу в биосе поменять версию PCI-e.

При этом уточню, что шина DMI, то есть шина соединяющая процессор и чипсет у меня оставалась во всех тестах третьей версии и её скорость равна 4-м линиям PCI-e третьей версии. А видеокарта будет использовать только одну линию, то есть у DMI есть запас по ширине в несколько крат, так что сильно это не влияло на результаты.

Одна линия PCi-e третьей версии даёт нам накопитель по скорости как средненький sata SSD накопитель. В общем — невероятными скоростями здесь уже не пахнет.

PCI-e x1 v.3
PCI-e X1 v3

Стоит сказать, что на этом этапе сандра уже отказалась считать ширину доступа к видеокарте, но GPU-Z определял версию PCI-e правильно.

Накопитель на одной линии второй версии не дотягивает уже и до бюджетных SATA SSD накопителей. Вернее если у вас на материнской плате SATA 2, а не SATA 3, то какие-то такие цифры вы увидите для накопителей.

PCI-e x1 v2

Одна линия PCI-e первой версии по последовательному чтению и записи не может впечатлить даже жёсткие диски, а не то что SSD накопители.

PCI-e x1 v1
PCI-e x1 v1

На одной линии PCI-e первой версии я тоже запустил GTA San Andreas. И FPS между PCI-e x16 v3 и PCI-e x1 v1 изменился. При обычном подключении FPS был между 110-170, а с x1 v1 между 60-110. При этом могу сказать, что тут причина не в том, что игра установлена в видеокарту. Если установить игру как обычно, то FPS будет почти такой же, то есть ниже, чем при нормальном подключении к видеокарте. 

Естественно тут уже причина в узкой ширине шины одной линии PCI-e первой версии. И в целом — для видеокарты сложно оценить, что будет если бы, например на одной и той же видеокарте была ниже битность шины между видеопамятью и видеокартой, или где вообще тот предел по нагрузке на PCI-e когда порт начинает влиять на производительность. И как вообще выглядит ограничения по производительности этими шинами. Например тут видно, что в SanAndreas на одной линии PCI-e первой версии видеокарта загружена на 100% и FPS ниже, чем на x16 третьей версии. При этом на PCI-e x16 третей версии игра упиралась в одно ядро процессора, так как игра однопоточная, и из-за этого видеокарта не нагружалась в силу простой графики в старой игре. То есть FPS был бы ещё выше, а на узком PCI-e загрузка на видеокарту только выросла по мониторингу, а FPS упал. Вот такие вот пироги. 

И к счастью доступ к видеопамяти как к накопителю даёт много возможностей по тому чтобы отбирая производительность шин и контроллеров памяти у видеокарты — имитировать уменьшение ширины шин, а значит мы можем посмотреть как ведут себя игры и видеокарта в условиях, когда, допустим, производитель урезает битность шины памяти.

И в общем-то такие магические работы я провёл, когда внезапно 100% загрузки одной и той же видеокарты получаются на кардинально различных производительностях, и главное с объяснением того как это происходит, но выделил я это в отдельную статью.

Видео на YouTube канале "Этот компьютер"

Добавить комментарий