
Можно ли определить тип памяти видеокарты Nvidia в Linux?
При настройке майнинг ригов желательно знать особенности памяти, установленной на видеокарте.
Это поможет более осознанно подобрать частоты ее работы, сориентироваться по возможностям твикинга и прочим нюансам, которые помогут достигнуть максимальной производительности при минимальном потреблении, сохраняя высокую надежность работы. Это возможно благодаря установке частоты работы памяти немного ниже максимально возможных пределов. Эти значения можно подобрать и экспериментальным путем методом проб и ошибок, но обычно этот увлекательный процесс занимает довольно продолжительное время, что не всегда удобно.
Зная исходные данные (производителя памяти), можно в качестве исходной точки для опытов по разгону взять частоту, на которой обычно работают чипы памяти определенного производителя. Например, достаточно хорошую заслужили микросхемы памяти, производимые фирмой Samsung. Они, как правило, хорошо разгоняются и работают на пониженном напряжении. Отличную память обычно выпускает и компания Micron. Значительно хуже качество памяти, выпускаемой Hynix, Elpida и дргуих производителей.
В Windows для определения типа видеопамяти можно использовать универсальные утилиты типа GPU-Z, GPU_Caps_Viewer, либо nvidia inspector для видеокарт Nvidia.
При нажатии на кнопку More GPU info в программе GPU Caps Viewer
можно увидеть исчерпывающую информацию об особенностях установленной на компьютере видеокарты, включая тип и производителя памяти:

В Linux для определения типа памяти видеокарт Amd можно задействовать утилиту amdmeminfo, а что можно применить для определения VRAM GPU Nvidia? Можно, конечно загрузиться в Windows с USB-флешки, запустить там утилиту GPU-Z или GPU CapsViewer, но такой способ не дает никакого эстетического удовольствия своей костыльностью и грубостью.
Как узнать тип видеопамяти графического адаптера Nvidia в операционной системе на ядре Linux?
В арсенале linux имеется ряд волшебных команд dmidecode, позволяющих узнать массу полезной информации о железе, трудящемся на благо пользователей в компьютере. К ним относятся nvidia-smi, lspci, /proc/driver/nvidia/gpu/…, lshw, glxinfo, dmidecode и другие.
Вывод информации о видеокартах по команде nvidia-smi:
+-----------------------------------------------------------------------------+ | NVIDIA-SMI 460.91.03 Driver Version: 460.91.03 CUDA Version: 11.2 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |===============================+======================+======================| | 0 GeForce GTX 107... On | 00000000:01:00.0 Off | N/A | | 55% 43C P2 90W / 90W | 2170MiB / 8117MiB | 99% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ | 1 GeForce GTX 1070 On | 00000000:02:00.0 Off | N/A | | 55% 45C P2 92W / 90W | 2150MiB / 8119MiB | 100% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ | 2 GeForce GTX 1070 On | 00000000:04:00.0 Off | N/A | | 55% 44C P2 90W / 90W | 2150MiB / 8119MiB | 100% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ | 3 GeForce GTX 1070 On | 00000000:07:00.0 Off | N/A | |100% 46C P2 89W / 90W | 2150MiB / 8119MiB | 99% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ | 4 GeForce GTX 106... On | 00000000:42:00.0 Off | N/A | | 75% 59C P2 83W / 83W | 2130MiB / 6078MiB | 100% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=============================================================================| | 0 N/A N/A 618 G /usr/lib/xorg/Xorg 16MiB | | 0 N/A N/A 2029 C ./nbminer 2149MiB | | 1 N/A N/A 618 G /usr/lib/xorg/Xorg 14MiB | | 1 N/A N/A 2029 C ./nbminer 2131MiB | | 2 N/A N/A 618 G /usr/lib/xorg/Xorg 14MiB | | 2 N/A N/A 2029 C ./nbminer 2131MiB | | 3 N/A N/A 618 G /usr/lib/xorg/Xorg 14MiB | | 3 N/A N/A 2029 C ./nbminer 2131MiB | | 4 N/A N/A 618 G /usr/lib/xorg/Xorg 14MiB | | 4 N/A N/A 2029 C ./nbminer 2111MiB | +-----------------------------------------------------------------------------+
По команде
sudo update-pciids && lspci | grep -E "VGA|3D"
видно только данные о чипе видоекарты и ее ревизии:
01:00.0 VGA compatible controller: NVIDIA Corporation GP104 [GeForce GTX 1070 Ti] (rev a1) 02:00.0 VGA compatible controller: NVIDIA Corporation GP104 [GeForce GTX 1070] (rev a1) 04:00.0 VGA compatible controller: NVIDIA Corporation GP104 [GeForce GTX 1070] (rev a1) 07:00.0 VGA compatible controller: NVIDIA Corporation GP104 [GeForce GTX 1070] (rev a1) 42:00.0 VGA compatible controller: NVIDIA Corporation GP106 [GeForce GTX 1060 6GB] (rev a1)
Команда
sudo lspci -v -s 01:00.0
где 01:00.0 — номер pci-e исследуемого устройства
дает возможность полюбоваться на более полную информацию о видеоадаптере, включая возможную адресацию памяти:
01:00.0 VGA compatible controller: NVIDIA Corporation GP104 [GeForce GTX 1070 Ti] (rev a1) (prog-if 00 [VGA controller]) Subsystem: ASUSTeK Computer Inc. GP104 [GeForce GTX 1070 Ti] Flags: bus master, fast devsel, latency 0, IRQ 141 Memory at ec000000 (32-bit, non-prefetchable) [size=16M] Memory at c0000000 (64-bit, prefetchable) [size=256M] Memory at d0000000 (64-bit, prefetchable) [size=32M] I/O ports at e000 [size=128] [virtual] Expansion ROM at 000c0000 [disabled] [size=128K] Capabilities: [60] Power Management version 3 Capabilities: [68] MSI: Enable+ Count=1/1 Maskable- 64bit+ Capabilities: [78] Express Legacy Endpoint, MSI 00 Capabilities: [100] Virtual Channel Capabilities: [250] Latency Tolerance Reporting Capabilities: [128] Power Budgeting <?> Capabilities: [420] Advanced Error Reporting Capabilities: [600] Vendor Specific Information: ID=0001 Rev=1 Len=024 <?> Capabilities: [900] #19 Kernel driver in use: nvidia Kernel modules: nvidiafb, nouveau, nvidia_drm, nvidia
Команда
sudo lshw -c video
показывает информацию о видеоадаптере с несколько иного ракурса:
*-display description: VGA compatible controller product: GP104 [GeForce GTX 1070 Ti] vendor: NVIDIA Corporation physical id: 0 bus info: pci@0000:01:00.0 version: a1 width: 64 bits clock: 33MHz capabilities: pm msi pciexpress vga_controller bus_master cap_list rom configuration: driver=nvidia latency=0 resources: irq:141 memory:ec000000-ecffffff memory:c0000000-cfffffff memory:d0000000-d1ffffff ioport:e000(size=128) memory:c0000-dffff
Если в терминале ввести команду
sudo dmidecode -d /dev/nvidia
то в консоли появится информация, включающая данные о материнской плате, процессоре, оперативной памяти, а также PCIE устройствах, коими являются и видеокарты.
Пример информации, отображаемой о видеокарте по команде dmidecode -d /dev/nvidia:
Handle 0x0009, DMI type 9, 17 bytes System Slot Information Designation: PCIE6 Type: x1 PCI Express Current Usage: In Use Length: Short ID: 22 Characteristics: 3.3 V is provided Opening is shared PME signal is supported Bus Address: 0000:06:00.0
Утилита mesa, которую можно установить командой
sudo apt install mesa-utils
по команде (выполняется в консоли системы с работающим графическим окружением)
glxinfo -b
выдает информацию с упором на драйвера.
Команда
glxinfo | egrep -i 'device|memory'
отображает массу информации о VRAM, но без упоминания о ее производителе (пример для Nvidia GTX1080):
Memory info (GL_NVX_gpu_memory_info): Dedicated video memory: 8192 MB Total available memory: 8192 MB Currently available dedicated video memory: 5943 MB GL_EXT_import_sync_object, GL_EXT_memory_object, GL_EXT_memory_object_fd, GL_NVX_conditional_render, GL_NVX_gpu_memory_info, GL_NVX_nvenc_interop, GL_NV_memory_attachment, GL_NV_memory_object_sparse, GL_NV_register_combiners2, GL_NV_robustness_video_memory_purge, GL_NV_transform_feedback2, GL_NV_uniform_buffer_unified_memory, GL_NV_vertex_buffer_unified_memory, GL_NV_vertex_program, GL_EXT_import_sync_object, GL_EXT_memory_object, GL_EXT_memory_object_fd, GL_NVX_conditional_render, GL_NVX_gpu_memory_info, GL_NVX_nvenc_interop, GL_NV_memory_attachment, GL_NV_memory_object_sparse, GL_NV_register_combiners2, GL_NV_robustness_video_memory_purge, GL_NV_transform_feedback2, GL_NV_uniform_buffer_unified_memory, GL_NV_vertex_buffer_unified_memory, GL_NV_vertex_program, GL_EXT_memory_object, GL_EXT_memory_object_fd, GL_EXT_multi_draw_indirect, GL_NV_internalformat_sample_query, GL_NV_memory_attachment, GL_NV_memory_object_sparse, GL_NV_non_square_matrices, GLX_NV_multigpu_context, GLX_NV_robustness_video_memory_purge, GLX_NV_robustness_video_memory_purge, GLX_NV_swap_group, GLX_NV_multigpu_context, GLX_NV_robustness_video_memory_purge,
Программа hardinfo, работающая в графическом окружении (устанавливается командой sudo apt install hardinfo), также не блещет полнотой информации о видеопамяти. На вкладе PCI-устройств можно увидеть название видеокарты, модули ядра, доступный объем видеопамяти, но опять отсутствует информация о производителе.
Заключение
Кроме перечисленных команд и программ для сбора информации о видеоадаптерах в Linux можно использовать и другие утилиты, например, CUDA-Z, InfoPanel, sysinfo, Open Hardware Monitor, Speccy и другие.
К сожалению, информации о VRAM видеокарт Nvidia в Linux, используя все перечисленные команды и утилиты, увидеть не получится. Это связано с тем, что nvidia не предусмотрела команд вызова информации (API) о Ram Vendor в Linux.


