Что значит разделяемая видеопамять
CUDA: Работа с памятью. Часть I.
В процессе работы с CUDA я практически не касался вопросов об использовании памяти видеокарты. Настало время убрать этот пробел.
Так как тема весьма объемная, то я решил разделить её на несколько частей. В этой части я расскажу об основных видах памяти, доступных на видеокарте и приведу пример, как влияет выбор типа памяти на производительность вычислений на GPU.
Видеокарта и типы памяти
При использовании GPU разработчику доступно несколько видов памяти: регистры, локальная, глобальная, разделяемая, константная и текстурная память. Каждая из этих типов памяти имеет определенное назначение, которое обуславливается её техническими параметрами (скорость работы, уровень доступа на чтение и запись). Иерархия типов памяти представлена на рис. 1.
Пример использования разделяемой памяти
Чуть выше я вкратце рассказал о различных типах памяти, которые доступны при программировании GPU. Теперь я хочу привести пример использования разделяемой памяти при операции транспонирования матрицы.
Перед тем, как приступить к написанию основного кода, приведу небольшой способ отладки. Как известно, функции из CUDA runtime API могут возвращать различные коды ошибок, но в предыдущий раз я ни как это не учитывал. Чтобы упростить себе жизнь можно использовать следующий макрос для отлова ошибок:
Как видно, в случае, если определена переменная среды CUDA_DEBUG, происходит проверка кода ошибки и выводиться информация о файле и строке, где она произошла. Эту переменную можно включить при компиляции под отладку и отключить при компиляции под релиз.
Приступаем к основной задаче.
Для того чтобы увидеть, как влияет использование разделяемой памяти на скорость вычислений, так же следует написать функцию, которая будет использовать только глобальную память.
Пишем эту функцию:
if ((xIndex //Линейный индекс элемента строки исходной матрицы
int inputIdx = xIndex + width * yIndex;
//Линейный индекс элемента столбца матрицы-результата
int outputIdx = yIndex + height * xIndex;
Данная функция просто копирует строки исходной матрицы в столбцы матрицы-результата. Единственный сложный момент – это определение индексов элементов матриц, здесь необходимо помнить, что при вызове ядра может быть использованы различные размерности блоков и грида, для этого и используются встроенные переменные blockDim, blockIdx.
Пишем функцию транспонирования, которая использует разделяемую память:
int xIndex = blockIdx.x * blockDim.x + threadIdx.x;
int yIndex = blockIdx.y * blockDim.y + threadIdx.y;
if ((xIndex // Линейный индекс элемента строки исходной матрицы
int idx = yIndex * width + xIndex;
//Копируем элементы исходной матрицы
temp[threadIdx.y][threadIdx.x] = inputMatrix[idx];
>
//Синхронизируем все нити в блоке
__syncthreads();
xIndex = blockIdx.y * blockDim.y + threadIdx.x;
yIndex = blockIdx.x * blockDim.x + threadIdx.y;
if ((xIndex // Линейный индекс элемента строки исходной матрицы
int idx = yIndex * height + xIndex;
В этой функции я использую разделяемую память в виде двумерного массива.
Как уже было сказано, адресация разделяемой памяти в пределах одного блока одинакова для всех потоков, поэтому, чтобы избежать коллизий при доступе и записи, каждому элементу в массиве соответствует одна нить в блоке.
После копирования элементов исходной матрицы в буфер temp, вызывается функция __syncthreads. Эта функция синхронизирует потоки в пределах блока. Её отличие от других способов синхронизации заключаеться в том, что она выполняеться только на GPU.
В конце происходит копирование сохраненных элементов исходной матрицы в матрицу-результат, в соответствии с правилом транспонирования.
Может показаться, что эта функция должна выполняться медленне, чем её версия без разделяемой памяти, где нет никаких посредников. Но на самом деле копирование из глобальной памяти в глобальную работает значительно медленее, чем связка глобальная память – разделяемая память – глобальная память.
Хочу заметить, что проверять границы массивов матриц стоит вручную, в GPU нет аппаратных средств для слежения за границами массивов.
Ну и напоследок напишем функцию транспонирования, которая исполняется только на CPU:
Теперь необходимо сгенерировать данные для расчетов, скопировать их с хоста на девайс, в случае использования GPU, произвести замеры производительности и очистить ресурсы.
Так как эти этапы примерно такие же, что я описывал в предыдущий раз, то привожу этого фрагмента сразу:
#define GPU_SLOW 1
#define GPU_FAST 2
#define CPU 3
#define ITERATIONS 20 //Количество нагрузочных циклов
__host__ int main()
<
int width = 2048; //Ширина матрицы
int height = 1536; //Высота матрицы
int matrixSize = width * height;
int byteSize = matrixSize * sizeof ( float );
//Выделяем память под матрицы на хосте
float * inputMatrix = new float [matrixSize];
float * outputMatrix = new float [matrixSize];
//Выделяем глобальную память для храния данных на девайсе
CUDA_CHECK_ERROR(cudaMalloc(( void **)&devInputMatrix, byteSize));
CUDA_CHECK_ERROR(cudaMalloc(( void **)&devOutputMatrix, byteSize));
//Копируем исходную матрицу с хоста на девайс
CUDA_CHECK_ERROR(cudaMemcpy(devInputMatrix, inputMatrix, byteSize, cudaMemcpyHostToDevice));
//Конфигурация запуска ядра
dim3 gridSize = dim3(width / BLOCK_DIM, height / BLOCK_DIM, 1);
dim3 blockSize = dim3(BLOCK_DIM, BLOCK_DIM, 1);
cudaEvent_t start;
cudaEvent_t stop;
//Создаем event’ы для синхронизации и замера времени работы GPU
CUDA_CHECK_ERROR(cudaEventCreate(&start));
CUDA_CHECK_ERROR(cudaEventCreate(&stop));
//Отмечаем старт расчетов на GPU
cudaEventRecord(start, 0);
if (mode == GPU_SLOW) //Используеться функция без разделяемой памяти
<
for ( int i = 0; i >>(devInputMatrix, devOutputMatrix, width, height);
>
>
else if (mode == GPU_FAST) //Используеться функция с разделяемой памятью
<
for ( int i = 0; i >>(devInputMatrix, devOutputMatrix, width, height);
>
>
//Отмечаем окончание расчета
cudaEventRecord(stop, 0);
float time = 0;
//Синхронизируемя с моментом окончания расчетов
cudaEventSynchronize(stop);
//Рассчитываем время работы GPU
cudaEventElapsedTime(&time, start, stop);
//Копируем результат с девайса на хост
CUDA_CHECK_ERROR(cudaMemcpy(outputMatrix, devOutputMatrix, byteSize, cudaMemcpyDeviceToHost));
//
//Чистим ресурсы на видеокарте
//
//Чистим память на хосте
delete[] inputMatrix;
delete[] outputMatrix;
В случае если расчеты выполняются только на CPU, то для замера времени расчетов используется функция GetTickCount(), которая подключается из windows.h. Для замера времени расчетов на GPU используеться функция cudaEventElapsedTime, прототип которой имеет следующий вид:
Так же я записываю исходную матрицу и результат в файлы через функцию printMatrixToFile. Чтобы удостовериться, что результаты верны. Код этой функции следующий:
Если матрицы очень большие, то вывод данных в файлы может сильно замедлить выполнение программы.
Заключение
В процессе тестирования я использовал матрицы размерностью 2048 * 1536= 3145728 элементов и 20 итераций в нагрузочных циклах. После результатов замеров у меня получились следующие результаты (рис. 2).
Рис. 2. Время расчетов. (меньше –лучше).
Как видно, GPU версия с разделяемой памятью выполняется почти в 20 раз быстрее, чем версия на CPU. Так же стоит отметить, что при использовании разделяемой памяти расчет выполняется примерно в 4 раза быстрее, чем без неё.
В своем примере я не учитываю время копирования данных с хоста на девайс и обратно, но в реальных приложениях их так же необходимо брать в расчет. Количество перемещений данных между CPU и GPU по-возможности необходимо свести к минимуму.
Выделение памяти под встроенную видеокарту: как увеличить видеопамять у интегрированных IntelHD, Intel Iris Xe и AMD Ryzen Vega (UMA Frame Buffer Size)
Доброго времени!
В последнее время снискали большую популярность интегрированные (их еще называют встроенными ) видеокарты IntelHD, Intel Iris Xe, и AMD Ryzen Vega. Последних версий уже с лихвой хватает для многих не слишком требовательных игр (что, конечно, радует — т.к. получается хорошая такая экономия на покупке внешней видеокарты)!
Однако, есть один нюанс : видеопамять для этих карт выделяется из ОЗУ (RAM). По умолчанию эта операция «выделения» происходит автоматически (без вашего участия), что не во всех случаях оптимально (например, вы можете столкнуться с ошибками во время запуска игр. ).
Разумеется, было бы не плохо вручную отрегулировать выделение памяти под интегрированную карту (в большинстве случаев стоит вопрос ее увеличения ).
И так, перейдем ближе к теме.
Можно ли разогнать встроенные видеокарты Intel HD и AMD Radeon? За счет чего поднять их производительность
Как увеличить видеопамять: по шагам
ШАГ 1: зачем это нужно
Вообще, если у вас все корректно работает, нет притормаживаний, ничего не зависает и не вылетает с ошибками — то вам, скорее всего, это и не нужно.
Однако, есть ситуации, когда без этого никак:
3DMark Sky Driver (8GB Ram, dual) — производительность в зависимости от выделенной памяти для интегрированной видеокарты AMD Ryzen Vega 11 (Ryzen 5 2400G)
Примечание!
👉 Если у вас количество ОЗУ 8 ГБ (и более) — то большинство современных материнских плат по умолчанию устанавливают для встроенной видеокарты номинальные 1024 МБ (которых пока достаточно для норм. работы).
👉 Не могу не отметить, что если у вас на борту меньше 6 ГБ ОЗУ — то выставлять для интегрированной карты больше 1 ГБ памяти крайне не рекомендуется! Это отрицательно сказывается на общей производительности ПК/ноутбука.
ШАГ 2: как узнать текущий объем видеопамяти
👉 Вариант 1
Это универсальный вариант, работающий во всех популярных версиях Windows 7/8/10.
Сначала необходимо нажать сочетание кнопок Win+R — в окне «Выполнить» ввести команду dxdiag и кликнуть по OK.
Далее откроется средство диагностики DirectX — во вкладке «Экран» среди прочих характеристик устройства вы найдете размер видеопамяти (👇).
Видеопамять 1009 МБ
👉 Вариант 2
Доп. параметры дисплея
👉 Вариант 3
Этот вариант также актуален для ОС Windows 10.
ШАГ 3: как вручную установить размер выделения памяти под встроенную видеокарту
Через BIOS/UEFI
Только через настройки BIOS (в принципе) и можно изменить размер выделяемой памяти для интегрированной карты (в редких случаях можно попытаться «обмануть» игры через реестр).
И так, сначала необходимо 👉 войти в BIOS (ссылка на инструкцию в помощь).
Далее нужно перейти в раздел «Configuration» (в некоторых BIOS за это отвечает раздел «Advanced» ).
Затем нам нужно найти один из следующих параметров (прим.: в разных версиях BIOS он называется по-своему) :
На скриншоте ниже приведен параметр «iGPU Configuration» — необходимо отключить авто-режим!
Отключаем Auto режим
А после вручную задать параметр «UMA Frame Buffer Size» — это и есть размер выделяемой видеопамяти (в моем примере можно выбрать от 256 МБ до 2 ГБ 👇).
UMA Frame Buffer Size — ставим 2 GB
Advanced / настройки BIOS / American Megatrends
DVMT ставим на Maximum
Еще один пример для более старой версии American Megatrends см. ниже. 👇
Через настройки реестра (опционально для IntelHD)
Этот способ поможет только «перехитрить» некоторые игры, которые могут вылетать с ошибками после запуска (т.к. у вас якобы недостаточно видеопамяти). Т.е. игра будет «считать», что размер памяти видеокарты у вас больше, чем есть на самом деле.
Причем, хочу отметить, что срабатывает он не всегда (но всё же, вдруг. ).
И так, для начала нужно 👉 открыть редактор реестра — нажать Win+R, и использовать команду regedit.
regedit — открыть редактор реестра
Далее в редакторе нужно создать раздел «GMM» в нижеприведенной ветке:
Создать раздел GMM
После, в разделе «GMM» создать строковый параметр с именем «DedicatedSegmentSize» (без кавычек).
Создать строковый параметр
Далее открыть его и задать значение выделяемой памяти (судя по тестам, способ актуален и работает для значений от 0 до 512).
Что такое доступная и выделенная видеопамять?
Память на видеокартах может быть как выделенной, так и выделяемой. Выделенная память означает, что видеопамять реализуется путем размещения на карте нескольких микросхем памяти. Все современные видеокарты, претендующие на сколько-нибудь сносную производительность, оснащаются выделенной памятью, хотя это и повышает их физические размеры, тепловыделение и, разумеется, цену. Видеокарты с выделяемой видеопамятью не имеют собственных чипов памяти, а, по мере необходимости, задействуют часть общесистемной памяти. Выделяемая память обычно не позволяет получить высокую производительность видеосистемы и используется в основном, в интегрированных и недорогих мобильных решениях, где вопросы экономичности выходят на первый план.
Пример.
Чтоб знал =)
1. Доступно графической памяти: 2804 МБ
Абсолютно бесполезный параметр. Вся память, доступная для графической обработки. Возможно, система не использует всю эту память, но она доступна при необходимости.
2. Используется видеопамяти: 1024 МБ
Этот параметр указывает объем памяти установленной на видеокарте.
При использовании интегрированных графических карт эта память резервируется системой BIOS и извлекается из памяти системы перед загрузкой Windows
4. Общей системной памяти: 1780 МБ
Дополнительный резерв памяти, который может быть оперативно перенаправлен и использован. При необходимости эта память может использоваться для графики или различными программами.
P.s: У вас 4Гб Оперативной памяти из которых системе доступно 3,85Гб
1Гб Видеопамяти на видеокарте (обычной или мобильной), а система может отсыпать еще 1780мб в случае острой необходимости, оставив себе 2Гб ОЗУ для работы. (но она этого не сделает.
Отключить возможность видеокарты отбирать оперативную память
Люди, ну подскажите, пожалуйста, действительно важный вопрос. Каким образом можно отключить возможность видеокарты отбирать оперативную память? Система использует только 16 Гб из установленных 24 Гб. В Windows показывает 16 Гб, но при этом в HWiNFO видит все 4 планки. Также и в биосе. При загрузке биоса показывает только 16 Гб, но если посмотреть слоты, то видит все 4 планки.
Вот отчёт о системе от Nvidia, в котором в разделе «Разделяемая системная память» указаны те самые 8 Гб, которые видеокарта забрала из оперативное памяти. Также прикрепляю скрины из Биоса по планкам памяти.
[Дисплей]
Операционная система: Windows 10 Enterprise, 64-bit
Версия DirectX: 12.0
Графический процессор: GeForce GTX 970
Версия драйвера: 445.87
Тип драйвера: Standard
Версия API Direct3D: 12
Уровень возможностей Direct3D: 12_1
Ядра CUDA: 1664
Тактовая частота ядра: 1088 МГц
Скорость передачи данных памяти: 7.01 Гбит/с
Интерфейс памяти: 256 бит
Пропускная способность памяти: 224.32 ГБ/с
Доступная графическая память: 12253 МБ
Выделенная видеопамять: 4096 МБ GDDR5
Системная видеопамять: 0 МБ
Разделяемая системная память: 8157 МБ
Версия BIOS видео: 84.04.36.00.85
IRQ: Not used
Шина: PCI Express x16 Gen3
Идентификатор устройства: 10DE 13C2 853F1043
Номер комплекта: G401 0010
Забить оперативную память
Добрый день, не могу вспомнить короткую команду для bat файла, которая забивала оперативную память.
Кэширование в оперативную память
Всем привет! Подскажите, как сделать чтоб данные, которые записываются кэшировались а не сразу.
Оперативную память не показывает
у меня стоит 3 гб оперативка но показывает 1 гб все отлично работают и сами оперативки и выходы но.
Как использовать оперативную память для видеокарты
Проверка характеристик видеокарты на ПК
Посмотреть тип памяти видеокарты и ознакомится с ее общими характеристиками можно в диспетчере устройств или в параметрах экрана. Войти в диспетчер устройств можно через панель управления.
То же самое окно можно открыть, воспользовавшись опцией «Параметры экрана».
С помощью любого из этих способов вы узнаете тип графического процессора, объем видеопамяти и много других сведений, но поставщик микросхем GDDR по-прежнему остается неизвестным. Рассекретить его можно, установив дополнительный софт.
Установите GPU-Z
GPU-Z – это вспомогательная компьютерная программа, предназначенная для отображения информации о технических характеристиках графической карты на экране компьютера. Установив ее в Windows, пользователь может применять эту информацию для оптимизации работы или диагностики неисправностей графического процессора.
Программа доступна для скачивания на официальном сайте https://www.techpowerup.com/download/gpu-z/.
Утилита GPU-Z может:
После установки GPU-Z.2.7.0_eng.exe появится окно программы с открытой вкладкой «Graphics Card», где вы сможете увидеть параметры видеоускорителя. Производитель памяти указан в графе Memory Type. Кроме того, утилита имеет вкладки: «Sensors» и «Validation». В верхнем углу справа есть кнопки для настройки и создание скриншотов. Программа GPU-Z умеет переключаться между картами майнинг-фермы, показывая сведения о каждом устройстве.
Перейдя во вкладку «Sensors»вы увидите показатели датчиков:
Вкладка «Validation» предназначена для получения личного идентификатора. В меню «General» можно выбрать:
Вкладка «Setting» позволяет регулировать количество активных датчиков. В окне «ASIC Quality» можно сравнить характеристики вашей карты с другими видеоадаптерами этого уровня. Программа GPU-Z бесплатна и подходит к любой версии Windows.
Альтернативный способ узнать производителя микросхем видеопамяти.
Сведения о видеопамяти доступна во вкладке Info, графа Mempory Type.
Что такое видеопамять?
память (или VRAM, произносится как vee-RAM) — это особый тип оперативной памяти, который работает с графическим процессором вашего компьютера или графическим процессором видеокарты. Ваша видеопамять содержит информацию о том, что требуется графическому процессору, например, текстуры игр и световые эффекты.
Однако, если этот вариант вам не подходит (например, на ноутбуках), вы можете увеличить свою выделенную VRAM двумя способами. Они должны содержать опцию для настройки того, сколько памяти вы выделяете для графического процессора.
Вполне понятно, нам стало интересно, как гибридное использование общей и выделенной графической памяти сказывается на 3D-производительности.
То же самое проявляется и в ситуациях, когда общий объём требуемой памяти превышает доступный максимум 256 Мбайт графической подсистемы, состоящий из 128 Мбайт выделенной и 128 Мбайт общей памяти.
Впрочем, данный тест представляет чисто академический интерес, поскольку производительности встроенного графического ядра всё равно недостаточно для современных игр с максимальным качеством картинки.
Выделенная графическая память и встроенный графический процессор?
Для графики можно выделить до 256 Мбайт памяти. Когда графическая подсистема нагружена незначительно, система отключает часть линий PCIe, даже в режиме оптимальной производительности. Система работает с выделенной видеопамятью через так называемый SidePort.
Как добавить видеопамять из оперативной
Это значение и есть полный объем памяти, который может использовать видеокарта — сумма объемов встроенной памяти и выделяемой из оперативной памяти компьютера.
Отсутствие таких или похожих пунктов меню в BIOS может означать, что ваша материнская плата не поддерживает установку максимального объема выделяемой видеопамяти. Своей памяти интегрированная видеокарта не имеет и использует оперативную память компьютера.
Как узнать объем памяти видеокартыОбъем видеопамяти компьютера является одной из самых важных характеристик компьютера. Как расширить память видеокартыОдним из главных компонентов компьютера является видеокарта.
Как увеличить видеопамять за счет оперативной (распределяемой) через BIOS
Вопрос: Что такое выделенная, и что такое выделяемая видеопамять? Ответ: Память на видеокартах может быть как выделенной, так и выделяемой. Выделенная память означает, что видеопамять реализуется путем размещения на карте нескольких микросхем памяти.
В таких видеокартах есть небольшой объем собственной видеопамяти, используемый для традиционных 2D-операций, а также для организации буфера RAMDAC. Когда отпадает потребность в дополнительной памяти, она высвобождается для общесистемных нужд.
В видеокартах ATI такая память обозначается как HyperMemory, а в видеокартах NVIDIA — TurboCache.
Как увеличить видеопамять с применением таких настроек? Для улучшения производительности изменяется параметр апертуры, обозначенный как AGP OverVoltage. Для примера возьмем 16 Мб памяти интегрированного адаптера и 256 Мб основной оперативной памяти. В настройках VGA Shared Memory (он же буфер UMA) нужно установить требуемый параметр, однако выставлять максимальное значение не рекомендуется.
Чтобы изменить количество памяти, выделенной под видеокарту, вы должны внести изменения в настройки BIOS. Чтобы войти в BIOS, выйдите из окна и выключить компьютер.
Как увеличить видеопамять и стоит ли это делать?
Вы увидите текущую видеопамять, указанную рядом с выделенной видеопамятью. 1-2 ГБ VRAM: эти карты обычно обеспечивают лучшую производительность, чем встроенная графика, но не могут обрабатывать большинство современных игр при средних значениях.
Если VRAM заполняется, система должна полагаться на стандартную ОЗУ, и производительность будет снижаться. Фактически, для интегрированной графики значение выделенной видеопамяти полностью фиктивно.
У вас есть выделенная видеокарта или вы используете интегрированную графику?
Память видеокарты. Возможность увеличения видеопамяти
память — часть оперативной памяти, отведённая для хранения данных, которые используются для формирования изображения на экране монитора. Существует выделенная оперативная память для видеокарт, также называемая «памятью».
Интегрированные видеокарты, как правило, применяются в ноутбуках. Чтобы выполнить операцию по увеличению памяти, необходимо войти в BIOS-меню компьютера. Дальнейшие действия, в значительной мере, зависят от модели системной платы и даже версии BIOS. Настройки видеопамяти – именно та опция, которую нам необходимо отыскать для увеличения видеопамяти. Из списка значений возможного размера оперативной памяти, который можно выделить для работы видеокарты выбираем нужное значение.
Здесь мы видим всю необходимую информацию: модель графического процессора и объем видеопамяти. Существуют кастомные драйвера, которые добавляют некоторые свойства таким видеоядрам, например, поддержку более новых версий DirectX, шейдеров, увеличенных частот и прочего.
Использование встроенного графического ядра несет в себе пониженную производительность в играх и приложениях, которые используют видеокарту. Вместе с тем, если для повседневных задач не требуется мощь дискретного адаптера, то встроенное видеоядро вполне может стать бесплатной альтернативой последнему.
Не стоит требовать от интегрированной графики невозможного и пытаться «разогнать» ее при помощи драйверов и другого программного обеспечения.
Поиск по серийному номеру
Немного подробнее о поставщиках. Микросхемы GDDR производят 4 компании:
В майнинге лучшего всего зарекомендовали себя графические адаптеры с памятью Samsung. Они хорошо держат нагрузку и наиболее холодные.
Устройства с памятью Hunix выдают приличный хешрейт, но менее стабильны и сильнее греются.
Видеоускорители на которых установлена память Micron плохо разгоняются и очень горячие, впрочем, бывают и исключения. Особенно часто на форумах встречаются нарекания на Elpida, хотя по хешрейту карты с этой памятью могут обогнать и хюникс и самсунг.
Важно! В большинстве случаев узнать Mempory Type можно только, поставив карту в свой компьютер, в магазине такие проверки не проводятся. Но, поставщика памяти некоторых моделей графических процессоров AMD определяют по серийному номеру.
Тип памяти AMD RX 470, 480, 570, 580
У видеокарт данных моделей, изготовленные на заводах фирмы Sapphire, существует определенная закономерность, между серийником и типом памяти.
AMD Sapphire RX 470 и RX 480 имеют серийные номера:
AMD Sapphire RX 570/580:
К видеокартам собранным на других заводах это правило не относится. Но, вы можете обратиться с вопросом, по поводу типа памяти, в отдел техподдержки производителя, видеокарту которого планируете купить. Специалисты российского отдела Sapphire Technology общаются с клиентами через социальную сеть В Контакте, ссылка https://vk.com/sapphiretechnology.
Какие выводы мы можем сделать
Чуть не забыл, не нужно размышлять, как использовать всю видеопамять – в играх она задействуется автоматически, даже если система отображает, что доступно меньше.
Исходя из вышесказанного, при выборе видеокарты я советую, в первую очередь, ориентироваться на частоту памяти, игнорируя объем, если бюджет на апгрейд ограничен.
А в качестве возможной покупки, могу порекомендовать MSI GeForce GTX 1060 GAMING X 6G – доступный по цене девайс с объемом видеопямяти 6 Гб и очень неплохими прочими характеристиками. Также советую почитать статью «Выбираем процессор для игрового системного блока».
А на этом у меня все. До следующих встреч на страницах моего блога. Не забываем подписываться на новостную рассылку и делиться публикациями в социальных сетях!
С уважением к вам, автор блога Андреев Андрей.