Was ist die optimale Aufteilung zwischen Haupt- und GPU-Speicher?

73

Ich habe gelesen, dass es möglich ist, dem Videospeicher des Raspberry Pi entweder 128 MB, 64 MB oder 32 MB zuzuweisen.

Da mein Hauptanwendungsfall für diese Maschine pädagogisch ist: Ich werde leichte Python-Skripte ausführen und im Internet surfen. Kann es zu Funktionsverlusten kommen, wenn ich nur auf 32 MB Arbeitsspeicher umschalte?

Ich erwarte nicht, dass ich 3D verwenden oder Videos abspielen möchte.

Salim Fadhley
quelle
2
Stellen Sie sicher, dass Sie Ihre Swapiness anpassen : D
earthmeLon
1
Warten Sie, das hat 42 Stimmen. Es ist keine Frage, es ist die Antwort!
Der Typ mit dem Hut
Ich glaube, der Wertebereich ist jetzt breiter, und laut der Antwort von @Krysztof Adamski ist es möglich, in der Datei config.txt eine bestimmte Aufteilung für verschiedene Gesamtspeichergrößen festzulegen, damit dieselbe Karte beim Einlegen entsprechende Aufteilungen erzeugen kann verschiedene RPis - was bei der Vorbereitung von Distributionen nützlich ist, denke ich ...
SlySven

Antworten:

58

Ich würde erwarten, dass Sie keinen merklichen Unterschied feststellen, es sei denn, Sie erledigen grafisch anspruchsvolle Aufgaben wie das Abspielen von Videos.

Es ist jedoch schwierig, die optimalen Einstellungen zu ermitteln, da die Leistungsgrenzen abhängig von den ausgeführten Anwendungen und den Benutzererwartungen variieren.

Das Beste, was Sie tun können, ist zu experimentieren.

Wenn Sie die Aufteilung ändern möchten, gibt es je nach Firmware zwei verschiedene Methoden. Stellen Sie nach Möglichkeit sicher, dass Sie über die neueste Firmware verfügen . Wenn es Ihnen aus irgendeinem Grund nicht möglich ist, ein Update durchzuführen, habe ich beide Optionen unten aufgeführt:

Neue Firmware (nach Oktober 2012)

  • Bearbeiten /boot/config.txtund fügen Sie die folgende Zeile hinzu oder bearbeiten Sie sie:

    gpu_mem=16
    
  • Der Wert kann sein 16, 64, 128oder 256und stellt die Menge an RAM auf die GPU zur Verfügung.

Alte Firmware (vor Oktober 2012)

Um den Videospeicher zu ändern, müssen Sie die start.elfDatei auf der /boot/Partition des Bildes ersetzen . Die möglichen .elfDateien sollten sich in dem /boot/Verzeichnis auf Ihrem Pi befinden. Sie wechseln, indem Sie die start.elfDatei durch eine der anderen ersetzen .

Es gibt drei Speichermodelle, und hier sind die Empfehlungen aus dem Raspberry Pi-Diskussionsforum :

  1. 224 MB RAM und 32 MB VRAM für eine Linux-Desktop-Distribution oder eine umfangreiche (nicht grafische) Anwendung, die weder Video abspielen noch 3D rendern muss.  
  2. 192 MB RAM und 64 MB VRAM (Standard) für Desktop-Distributionen, die Videos abspielen oder 3D-Effekte haben möchten.  
  3. 128 MB RAM und 128 MB VRAM für Anwendungen und Spiele, die umfangreiche Multimedia- oder 3D-Rendering-Spiele ausführen.  

 Und einer mehr:

240 MB RAM und 16 VRAM für nahezu null Grafikleistung. Es gibt genügend GPU-Speicher, um den Bildschirm wiederzugeben, aber sonst nicht viel. Verwenden Sie diese Option, wenn Sie eine weitere Leistungssteigerung benötigen, die nicht auf der GUI basiert.

Jivings
quelle
Ich habe die Antwort für die neuen 512MB-Modelle aktualisiert.
Jivings
Untertitel scheinen den Speicherbedarf zu erhöhen ; Für ein 1080p-Video mit Untertiteln reichten 64 MB strikt nicht aus.
Raphael
51

RAM ist aus mehreren Gründen für die Linux-Leistung von entscheidender Bedeutung:

  • Caches. Linux läuft die meiste Zeit ohne freien Speicher. Wenn ein Teil des Arbeitsspeichers nicht von Anwendungen verwendet wird, wird er für Caches verwendet, was die Dinge beschleunigt. So wird niemals Speicher verschwendet. Wenn Anwendungen mehr Speicher benötigen, werden Caches freigegeben, sodass Caches nicht verhindern, dass Anwendungen, die mehr RAM benötigen, ausgeführt werden. Aber je mehr Sie zwischenspeichern können, desto besser.

  • Viele Anwendungen (insbesondere Desktop-Anwendungen) benötigen heutzutage viel Arbeitsspeicher. Dies ist keine Überraschung - die meisten Desktop-Systeme (oder sogar Smartphones) haben heutzutage viel mehr Speicher als Rapsberry Pi. Zum Beispiel verbrauchen Webbrowser (auch mit geringem Gewicht) zehn MB Speicher, sobald Sie eine größere Website öffnen.

  • Jede Anwendung benötigt Speicherplatz. Je mehr Anwendungen Sie ausführen, desto mehr Speicher wird verwendet.

Sie möchten also immer so viel ARM-Speicher wie möglich haben. Die GPU hat jedoch ihre eigenen Anforderungen, je nachdem, welche Funktionen Sie von ihr erwarten.

256MB Version

Für ältere RaspberryPi mit 256 MB RAM stehen 4 Splits zur Verfügung:

  • 240/16 - Der ARM mit der meisten RAM-Größe (240 MB) kann mit einem minimalen GPU-Speicher erreicht werden. Es ist das Beste für die allgemeine Datenverarbeitung, wenn Sie keine 3D-Grafik oder Hardware-Videobeschleunigung benötigen. Es verfügt über genügend Speicher für die Framebuffer-Auflösung von 1920x1200x16bpp. 32bpp funktioniert zwar auch, dies wird jedoch nicht empfohlen, da nur sehr wenig freier Speicher für die GPU verbleibt.

  • 224/32 - Dieser wird zugunsten der 240/16-Teilung abgelehnt. Es verfügt über eine eingebaute 3D- und Hardware-Videodekodierung. Da jedoch nicht genügend Speicher vorhanden ist, um es tatsächlich zu verwenden, hat es wenig Sinn, ihn zu verwenden. Es sei denn, Sie haben Probleme mit der 240/16-Aufteilung oder möchten den 32-Bit-Framebuffer mit der höchsten Auflösung verwenden. Möglicherweise wird es in Zukunft gelöscht.

  • 192/64 - Sie benötigen mindestens 64 MB GPU-Split, um die Hardware-Videobeschleunigung oder 3D-Grafiken zu verwenden. Möglicherweise reicht der GPU-Speicher für die hardwarebeschleunigte Videowiedergabe bei höchster Auflösung nicht aus, oder Sie benötigen viel GPU-Speicher für Dinge wie Texturen.

  • 128/128 - Die meiste RAM-GPU kann erhalten werden. Verwenden Sie diese Funktion, wenn Sie viel Speicher für die 3D-Grafikkarte und die hardwarebeschleunigte Videowiedergabe in hoher Auflösung benötigen. Diese Aufteilung ist erforderlich, damit RaspBMC ordnungsgemäß funktioniert oder FullHD-Videoinhalte problemlos mit omxplayer wiedergegeben werden können.

512MB Version

Neue Versionen von RaspberryPi haben 512 MB RAM. Sie haben 4 zusätzliche Splits für diese Version:

  • 496/16 und 448/64 - wie 240/16und 192/64aufgeteilt für 256 MB, jedoch mit 256 MB mehr RAM für ARM. Da die GPU nur 16 MB / 64 MB oder RAM hat, gelten alle Einschränkungen von 240/16/ 192/64weiterhin.
  • 384/128 - Ähnlich wie bei 128/128 Split für 256 MB - Sie sollten alle Grafikchip-Funktionen erhalten, jedoch mit einer angemessenen Menge an ARM-Speicher. Dies wird momentan wahrscheinlich die universellste Spaltung sein.
  • 256/256 - Einige Bonus-Grafikkartenspeicher, wenn Sie es wirklich brauchen, wie für große Texturen und ähnliche Dinge. 256 MB ARM-Speicher sind zwar größer als in älteren RaspberryPis-Versionen, ich glaube jedoch nicht, dass dieser Speicher bei vielen Gelegenheiten verwendet wird.

Dynamische Teilungen

Neue Versionen des Firmware-Pakets entfernen die meisten start_*.elfDateien, wobei nur start.elfund start_cd.elf(auch fixup*.elfDateien, die hinzugefügt wurden) übrig bleiben. Von nun an müssen Sie nicht mehr manuell das richtige auswählen start_*.file. Verwenden Sie stattdessen die gpu_mem*Optionen in der config.txtDatei, um festzulegen, wie viel Speicher für die GPU verwendet werden soll. Der verbleibende Speicher wird ARM zugewiesen. Für diese Optionen sollte es möglich sein, eine beliebige Zahl im folgenden Bereich zu verwenden:

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

Zwar gibt es derzeit keine fest codierten Aufteilungswerte, aber die meisten Informationen für den Rest dieser Antwort sollten weiterhin gültig sein, wenn Sie bestimmen möchten, wie viel Speicher der GPU zugewiesen werden soll.

start_cd.elfund fixup_cd.elfDateien sind abgespeckte Versionen der jeweiligen Dateien, die nur verwendet werden, wenn gpu_mem=16.

Verwenden einer SD-Karte für die 256- und 512-MB-Version

Wenn Sie ein SD-Karten-Image für verschiedene RaspberryPi-Versionen verwenden, können Sie gpu_mem_256und gpu_mem_512Optionen verwenden. Das erste wird nur für die 256-MB-Version verwendet, während das zweite nur für die 512-MB-Version der Karte verwendet wird.

Krzysztof Adamski
quelle
Ja, ein Upgrade lohnt sich, wenn Sie sowohl XBMC als auch LXDE ohne langweilige manuelle Konfigurationsdateiänderung vor dem Start von eatch verwenden möchten oder wenn Pi Ihr Hauptcomputer ist, den Sie täglich verwenden möchten.
22.
6
Nützliche Hinweise. Um zu verdeutlichen - was wäre die optimale Aufteilung für kopfloses Laufen? Hat zum Beispiel das RPI-Kameramodul eine GPU-Anforderung?
Geotheorie
Es ist gpu_mem_1024nicht überraschend, dass es jetzt einen für die 1024 MB RPis gibt - welcher momentan der RPi 2 B ist (und ich denke A wenn einer
rauskommt
Laut elinux.org/RPiconfig#Camera benötigt das Kameramodul die folgenden Zeilen in /boot/config.txt: start_x=1und gpu_mem=128mehr. Hat /usr/bin/raspi-configauch eine Option, die die Kamera aktiviert.
mpb