查询英特尔i915核显实际内存使用情况及系统内存差异疑问
查询英特尔i915核显实际内存使用情况及系统内存差异疑问
我有一台联想ThinkPad P14s,搭载混合显卡:英特尔UHD核显(CometLake-U GT2)和NVIDIA Quadro P520独显。我已经通过sudo prime-select intel设置为仅使用英特尔核显,并且在BIOS里把核显的显存分配设为了512MB。现在我想确认核显实际的内存占用情况,于是做了一系列检查,结果有些困惑,想请大家帮忙解答:
已执行的检查及输出:
- 确认当前显卡模式:
$ prime-select query intel
- 查看VGA设备:
$ lspci |grep VGA 00:02.0 VGA compatible controller: Intel Corporation CometLake-U GT2 [UHD Graphics] (rev 02)
- 查看核显的详细PCI信息:
$ sudo lspci -v -s 00:02.0 00:02.0 VGA compatible controller: Intel Corporation CometLake-U GT2 [UHD Graphics] (rev 02) (prog-if 00 [VGA controller]) Subsystem: Lenovo CometLake-U GT2 [UHD Graphics] Flags: bus master, fast devsel, latency 0, IRQ 158 Memory at e2000000 (64-bit, non-prefetchable) [size=16M] Memory at 80000000 (64-bit, prefetchable) [size=512M] I/O ports at 4000 [size=64] Expansion ROM at 000c0000 [virtual] [disabled] [size=128K] Capabilities: [40] Vendor Specific Information: Len=0c <?> Capabilities: [70] Express Root Complex Integrated Endpoint, MSI 00 Capabilities: [ac] MSI: Enable+ Count=1/1 Maskable- 64bit- Capabilities: [d0] Power Management version 2 Capabilities: [100] Process Address Space ID (PASID) Capabilities: [200] Address Translation Service (ATS) Capabilities: [300] Page Request Interface (PRI) Kernel driver in use: i915 Kernel modules: i915
- 用glxinfo查看显卡内存信息:
$ glxinfo | grep -E 'Device:|Video memory:' Device: Mesa Intel(R) UHD Graphics (CML GT2) (0x9b41) Video memory: 15640MB
- 通过lshw查看显示设备:
$ sudo lshw -C display *-display description: VGA compatible controller product: CometLake-U GT2 [UHD Graphics] vendor: Intel Corporation physical id: 2 bus info: pci@0000:00:02.0 logical name: /dev/fb0 version: 02 width: 64 bits clock: 33MHz capabilities: pciexpress msi pm vga_controller bus_master cap_list rom fb configuration: depth=32 driver=i915 latency=0 resolution=2560,1440 resources: irq:158 memory:e2000000-e2ffffff memory:80000000-9fffffff ioport:4000(size=64) memory:c0000-dffff *-display UNCLAIMED description: 3D controller product: GP108GLM [Quadro P520] vendor: NVIDIA Corporation physical id: 0 bus info: pci@0000:2d:00.0 version: a1 width: 64 bits clock: 33MHz capabilities: pm msi pciexpress bus_master cap_list configuration: latency=0 resources: memory:e1000000-e1ffffff memory:c0000000-cfffffff memory:d0000000-d1ffffff ioport:3000(size=128)
我的疑问:
lspci -v里显示的512MB应该是我在BIOS中设置的显存,这个看起来是准确的,但glxinfo却显示视频内存为15640MB,这显然是把整个系统内存都算进去了,为什么会这样?- 我不太清楚怎么计算
lshw输出中每个内存范围的大小,但看起来它和lspci -v的内存范围是一致的,这个是否能反映核显的实际显存? - 另外,我的机器标称是16GB内存,但内核识别的总内存是:
$ grep MemTotal /proc/meminfo MemTotal: 16015528 kB
换算后是15640MB,和16GB(16384MB)差了744MB。这部分未被识别的内存会不会是被GPU预留了?但为什么是744MB而不是我设置的512MB?是不是还有其他内存区域被预留了,只是没有被内核显示出来?
备注:内容来源于stack exchange,提问作者trent--




