如何在 amdgpu 上禁用 GTT?
根据https://www.kernel.org/doc/html/v4.20/gpu/amdgpu.html,添加amdgpu.gttsize=0
应该有效,但没有效果。
我问的原因是,我的 Vega 8 显卡(AMD Ryzen 7 PRO 5850U cpu)已经有 4GB VRAM 并需要另外 4GB GTT。由于 GTT 内存与我的“常规”16 GB 内存无关,但我主要使用 CPU 而不是 GPU(编译、数据库...),所以我只能使用其中的 12GB。
答案1
恐怕你的集成显卡没有内存。基于https://askgeek.io/en/cpus/AMD/Ryzen-7-PRO-5850U:晶体管数量 49.4 亿个...尝试 vramlimit 而不是 gtt。
答案2
据我所知,只要GPU不放置任何数据,CPU就可以使用GTT内存区域。因此,只要不运行图形密集型程序,您的 CPU 就可以使用所有内存。另请参阅我在这里写的内容:
https://kolahilft.de/2023/09/vram-and-memory-for-integrated-graphics-with-linux/
如果您不需要该系统上的 GPU 性能,您甚至可以在 BIOS 中将 vram 降低到最小值。即使你自发地使用集成GPU(CPU+GPU),它也可以以与vram内存区域相同的速度使用GTT内存区域。
简而言之:使用集成 GPU,GTT 内存可以执行 vram 可以执行的所有操作,但如果 GPU 不使用 GTT,则 CPU 可以使用 GTT。
PS
如果你真的想降低 GTT 的大小。您是否尝试将其设置为较低的值(例如amdgpu.gttsize=64
(64 MiB))?这对我有用。但我真的建议您降低 BIOS 中的 vram 大小,并保持 gttsize 不变。
有关的:https://www.reddit.com/r/linuxquestions/comments/p17pvw/disable_gtt_on_amdgpu/