主内存与GPU内存的最佳分配是多少?


73

我读到可以为Raspberry Pi的视频内存分配128MB,64MB或32MB。

鉴于该机器的主要用例是教育性的:我将运行轻量级python脚本和Web浏览。通过仅切换到32MB的内存,是否有可能遭受功能损失?

我不希望使用任何3D或播放任何视频。


2
确保您调整了互换性:D
EarthmeL12年

1
等等,这有42票。这不是一个问题,它答案!
帽子的家伙

我相信现在值的范围会更宽,并且,按照@Krysztof Adamski的回答,可以在config.txt中为不同的总内存大小指定特定的拆分,以便将一张卡放入时可以产生适当的拆分不同的 RPis-我猜这在准备发行版时很有用...
SlySven '16

Answers:


58

我希望您不会遇到明显的差异,除非您正在执行图形繁重的任务,例如播放视频。

但是,很难评估最佳设置,因为性能限制会根据正在执行的应用程序和用户期望而有所不同。

您能做的最好的事情就是实验。

如果确实要更改拆分,则有两种不同的方法,具体取决于所使用的固件。如果可能的话,请确保您拥有最新的固件。如果由于某种原因您无法进行更新,则以下两个选项均已包括在内:

新固件(2012年10月之后)

  • 编辑/boot/config.txt并添加或编辑以下行:

    gpu_mem=16
    
  • 该值可以是1664128256,并且表示的RAM提供给GPU的量。

旧固件(2012年10月之前)

为了更改视频内存,您​​需要替换图像分区上的start.elf文件/boot/。可能的.elf文件应位于/boot/Pi 的目录中。通过start.elf使用其他文件之一替换文件来进行切换。

共有三种内存模型,以下是从Raspberry Pi讨论区获得的建议:

  1. 224MB RAM和32MB VRAM用于Linux桌面发行版,或不需要播放视频或渲染3D的繁重(非GUI)应用程序。  
  2. 想要播放视频或具有3D效果的台式机发行版具有192MB RAM和64MB VRAM(默认)。  
  3. 128MB RAM和128MB VRAM,用于执行广泛的多媒体或玩3D渲染游戏的应用程序和游戏。  

 还有一个:

240MB RAM和16 VRAM,几乎可以实现零图形功耗。有足够的GPU内存来渲染屏幕,但没有其他东西。当您需要进一步提高非GUI性能时,请使用此功能。


我已经更新了新的512MB型号的答案。
Jivings

字幕似乎增加了内存需求 ; 对于带有字幕的1080p视频,严格来说64MB是不够的。
拉斐尔

51

RAM对于Linux性能至关重要,原因如下:

  • 缓存。Linux大部分时间都在没有可用内存的情况下运行。如果应用程序未使用某些内存,则将其用于高速缓存以加快处理速度。因此,不会浪费任何内存。如果应用程序需要更多内存,则释放缓存,因此缓存永远不会阻止需要更多RAM的应用程序运行。但是,当然,您可以缓存的越多越好。

  • 如今,许多应用程序(尤其是台式机应用程序)需要大量内存才能运行。这不足为奇-如今,大多数台式机系统(甚至智能手机)的内存都比Rapsberry Pi多得多。例如,即使是轻量级的Web浏览器,只要打开一些较大的网站,就会占用数十MB的内存。

  • 每个应用程序都需要一定数量的内存。因此,您运行的应用程序越多,它们使用的内存就越多。

因此,您始终希望拥有尽可能多的ARM内存。但是GPU有自己的需求,具体取决于您要从中获得什么功能。

256MB版本

对于具有256 MB RAM的较旧RaspberryPi,可以使用4个拆分:

  • 十六分之二百四十零 -最RAM大小ARM可以得到(240MB)与mimial GPU内存。当您不需要3D图形或硬件视频加速时,它是通用计算的最佳选择。它有足够的内存来处理1920x1200x16bpp帧缓冲区分辨率。虽然32bpp也可以工作,但是不建议这样做,因为它为GPU留下了很少的可用内存。

  • 224/32-不赞成使用此模式,建议使用240/16分割。它内置了3D和硬件视频解码功能,但是由于没有足够的内存来实际使用它,因此使用它毫无意义。除非您对240/16分割有一些问题,或者要以最高分辨率使用32bpp帧缓冲区。将来可能会删除它。

  • 192/64-您至少需要分割64MB的GPU才能使用硬件视频加速或3D图形。GPU内存可能不足以用于以最高分辨率进行硬件加速的视频播放,或者如果您需要大量GPU内存来处理纹理之类的东西。

  • 128/128-可获得最多RAM的GPU。当您需要大量内存用于3D图形卡和高分辨率的硬件加速视频播放时,请使用它。为了使RaspBMC正常工作或使用omxplayer播放全高清视频内容而没有问题,需要进行此拆分。

512MB版本

新版本的RaspberryPi具有512 MB RAM。您还为此版本设计了4个附加拆分:

  • 496/16448/64-类似240/16192/64分别拆分为256MB,但ARM可用内存增加了256MB。由于GPU只有16 MB / 64MB或RAM,因此240/16/的所有限制192/64仍然适用。
  • 384/128-128/128拆分为256MB 类似-您应该获得所有图形芯片功能,但具有合理的ARM内存量。这可能是目前最普遍的拆分方式。
  • 256/256-如果您确实需要一些额外的图形卡内存,例如大纹理和类似的东西。尽管256MB的ARM内存比旧的RaspberryPis可能更大,但我认为这种内存不会在很多场合使用。

动态分割

新版本的固件包将删除大多数start_*.elf文件,仅保留start.elfstart_cd.elffixup*.elf添加时也保留文件)。从现在开始,您不必手动选择适当start_*.file。相反,您应该使用文件中的gpu_mem*选项config.txt来选择分配给GPU的内存量。剩余的内存将分配给ARM。对于此选项,应该可以在以下范围内使用任意数字:

**512MB of RAM**: 16M-448M
**256MB of RAM**: 16M-192M

尽管目前没有硬编码的分割值,但是当您尝试确定应为GPU分配多少内存时,此答案其余部分的大多数信息仍然有效。

start_cd.elffixup_cd.elf文件是相应文件的简化版本,仅在时使用gpu_mem=16

在256 MB和512 MB版本上使用一个SD卡

如果您将一个SD卡映像用于不同的RaspberryPi版本,则可以使用gpu_mem_256gpu_mem_512选项。第一个仅在256MB版本上使用,第二个仅在512MB版本上使用。


是的,如果您想同时使用XBMC和LXDE而又不用在切换菜单之前更改无聊的手动配置文件,或者如果Pi是您每天要使用的主计算机,那么升级是值得的。
2012年

6
有用的指导。要澄清-无头跑步的最佳分割是什么?例如,rpi相机模块是否具有GPU要求?
geotheory 2014年

现在有一个gpu_mem_10241024 MB的RPis,这并不奇怪-当前是RPi 2 B(我想如果确实有RPi 2 B呢?)
SlySven

根据elinux.org/RPiconfig#Camera,相机模块需要在/boot/config.txtstart_x=1gpu_mem=128更多行中包含以下几行。另外,/usr/bin/raspi-config还有启用相机的选项。
mpb
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.