我想看看我有多少视频内存,所以我找到lspci
了设备。里面有两个显卡,一个是集成的英特尔显卡,另一个是 Nvidia 显卡。Nvidia 显卡显示为:
01:00.0 VGA compatible controller: NVIDIA Corporation Device 1fb9 (rev a1)
所以我过去常常lspci -v -s 01:00.0
查看有关它的更多信息。它显示 256MB 内存:
01:00.0 VGA compatible controller: NVIDIA Corporation Device 1fb9 (rev a1) (prog-if 00 [VGA controller])
Subsystem: Lenovo Device 2297
Flags: bus master, fast devsel, latency 0, IRQ 180
Memory at ea000000 (32-bit, non-prefetchable) [size=16M]
Memory at a0000000 (64-bit, prefetchable) [size=256M]
Memory at b0000000 (64-bit, prefetchable) [size=32M]
I/O ports at 2000 [size=128]
[virtual] Expansion ROM at eb080000 [disabled] [size=512K]
Capabilities: <access denied>
Kernel driver in use: nvidia
Kernel modules: nvidiafb, nouveau, nvidia_drm, nvidia
但是,我检查了配置,它应该有 4GB 的 vram。Windows(在同一台笔记本电脑上双启动)也报告显卡有 4GB 的 vram。
为什么会发生这种情况?
答案1
你以错误的方式解释了这些值。三个内存区域
Memory at ea000000 (32-bit, non-prefetchable) [size=16M]
Memory at a0000000 (64-bit, prefetchable) [size=256M]
Memory at b0000000 (64-bit, prefetchable) [size=32M]
表明MMIO 内存空间您的显卡。并且不是你的显卡(GC)的显存容量。
MMIO 内存空间用于 GC 内存和主内存之间的交互。例如,要将 128MB 的数据从主内存传输到 GC 内存,可能需要a0000000
使用第二个 MMIO 地址。
- 你调用视频驱动把GPU内存的内存窗口移动到GC内存的目标区域。
- 您将数据从 HOST 内存(主内存)复制到 MMIO 内存空间窗口中给定地址的 GPU 内存。
GPU 内存数量的信息显然不包含在输出中lspci
。