Qual è la suddivisione ottimale della memoria principale rispetto alla memoria GPU?


73

Ho letto che è possibile allocare 128 MB, 64 MB o 32 MB nella memoria video del Raspberry Pi.

Dato che il mio caso d'uso principale per questa macchina è educativo: eseguirò script di pitone leggeri e navigazione web. È probabile che subisca una perdita di funzionalità passando a soli 32 MB di memoria per me?

Non prevedo di voler utilizzare alcun 3D o riprodurre video.


2
Assicurati di regolare la tua swapiness : D
earthmeLon

1
Aspetta, questo ha 42 voti. Non è una domanda, è la risposta!
The Guy with The Hat

Credo che l'intervallo di valori sia ora più ampio di quello, e, secondo la risposta di @Krysztof Adamski, è possibile specificare una divisione specifica nel file config.txt per dimensioni di memoria totali diverse in modo che la stessa scheda possa produrre suddivisioni appropriate quando posizionata in diversi RPis - il che è utile durante la preparazione delle distribuzioni immagino ...
SlySven

Risposte:


58

Mi aspetto che non si verifichi una differenza evidente se non si eseguono compiti graficamente pesanti, come la riproduzione di video.

Tuttavia, è difficile misurare le impostazioni ottimali, poiché i limiti di prestazione variano a seconda delle applicazioni in esecuzione e delle aspettative degli utenti.

La cosa migliore che puoi fare è sperimentare.

Se si desidera modificare la suddivisione, esistono due metodi diversi, a seconda del firmware in uso. Se possibile, assicurati di disporre del firmware più recente . Se non è possibile aggiornare per qualsiasi motivo, ho incluso entrambe le opzioni di seguito:

Nuovo firmware (dopo ottobre 2012)

  • Modifica /boot/config.txte aggiungi o modifica la seguente riga:

    gpu_mem=16
    
  • Il valore può essere 16, 64, 128o 256e rappresenta la quantità di RAM disponibile alla GPU.

Firmware precedente (prima di ottobre 2012)

Per modificare la memoria video è necessario sostituire il start.elffile sulla /boot/partizione dell'immagine. I possibili .elffile dovrebbero trovarsi nella /boot/directory sul tuo Pi. Si effettua il passaggio sostituendo il start.elffile con uno degli altri.

Esistono tre modelli di memoria, e qui ci sono le raccomandazioni tratte dal forum di discussione di Raspberry Pi :

  1. 224 MB di RAM e 32 MB di VRAM per una distribuzione desktop Linux o applicazioni pesanti (non GUI) che non necessitano di riprodurre video, né di rendering 3D.  
  2. 192 MB di RAM e 64 MB di VRAM (impostazione predefinita) per le distro desktop che vogliono riprodurre video o avere effetti 3D.  
  3. 128 MB di RAM e 128 MB di VRAM per applicazioni e giochi che eseguono multimediali estesi o riproducono giochi con rendering 3D.  

 E ancora uno:

240 MB di RAM e 16 VRAM per una potenza grafica quasi nulla. La memoria GPU è sufficiente per il rendering dello schermo, ma non molto altro. Usalo quando hai bisogno di un ulteriore aumento delle prestazioni senza GUI.


Ho aggiornato la risposta per i nuovi modelli da 512 MB.
Jivings,

I sottotitoli sembrano aumentare le esigenze di memoria ; per un video 1080p con sottotitoli, 64 MB non era strettamente sufficiente.
Raffaello

51

La RAM è molto cruciale per le prestazioni di Linux per un paio di motivi:

  • Cache. Linux funziona senza memoria libera per la maggior parte del tempo. Se parte della memoria non viene utilizzata dalle applicazioni, viene utilizzata per le cache che velocizzano le cose. Quindi nessun ricordo è mai sprecato. Se le applicazioni richiedono più memoria, le cache vengono liberate in modo che le cache non impediscano mai l'esecuzione delle applicazioni che richiedono più RAM. Ma ovviamente più cache puoi memorizzare, meglio è.

  • Molte applicazioni (specialmente quelle desktop) hanno bisogno di molta memoria per funzionare al giorno d'oggi. Non è una sorpresa: la maggior parte dei sistemi desktop (o persino degli smartphone) oggigiorno ha molta più memoria di Rapsberry Pi. Ad esempio browser Web anche leggeri) utilizzeranno decine di MB di memoria non appena si apre un sito Web più grande.

  • Ogni applicazione richiede una certa quantità di memoria. Quindi più applicazioni esegui, più memoria usano.

Quindi vuoi sempre avere più memoria ARM possibile. Ma la GPU ha le sue esigenze a seconda delle funzionalità che desideri da essa.

Versione da 256 MB

Per i vecchi RaspberryPi, con 256 MB di RAM, sono disponibili 4 split:

  • 240/16 - Il ARM di dimensioni RAM più grande può ottenere (240 MB) con memoria GPU mimiale. È il meglio per il computing generale quando non hai bisogno di grafica 3D o accelerazione video hardware. Ha memoria sufficiente per gestire la risoluzione del framebuffer 1920x1200x16bpp. Anche se funziona anche 32bpp, non è raccomandato poiché lascia pochissima memoria libera per la GPU.

  • 224/32 - Questo è deprecato a favore della divisione 240/16. Ha la decodifica video 3D e hardware integrata ma dal momento che non c'è abbastanza memoria per usarlo effettivamente, ha poco senso usarlo. A meno che tu non abbia dei problemi con la divisione 240/16 o desideri utilizzare framebuffer a 32 bpp alla massima risoluzione. È possibile che verrà eliminato in futuro.

  • 192/64 - Per utilizzare l'accelerazione video hardware o la grafica 3D sono necessari almeno 64 MB di divisione GPU. Potrebbe non essere sufficiente memoria GPU per la riproduzione video con accelerazione hardware alla massima risoluzione o se hai bisogno di molta memoria GPU per cose come le trame.

  • 128/128 - La maggior parte della GPU RAM può ottenere. Usalo quando hai bisogno di molta memoria per la scheda grafica 3D e la riproduzione video con accelerazione hardware ad alta risoluzione. Questa suddivisione è necessaria per il corretto funzionamento di RaspBMC o per riprodurre i contenuti video fullHD con omxplayer senza problemi.

Versione da 512 MB

Le nuove versioni di RaspberryPi hanno 512 MB di RAM. Hai 4 divisioni aggiuntive progettate per questa versione:

  • 496/16 e 448/64 - simili 240/16e 192/64divisi rispettivamente per 256 MB, ma con 256 MB di RAM in più disponibili per ARM. Poiché la GPU ha solo 16 MB / 64 MB o RAM, tutte le limitazioni da 240/16/ 192/64continuano ad applicarsi.
  • 384/128 - Simile a 128/128 diviso per 256 MB - dovresti ottenere tutte le funzionalità del chip grafico ma con una quantità ragionevole di memoria ARM. Questa sarà probabilmente la divisione più universale in questo momento.
  • 256/256 - Alcuni bonus di memoria della scheda grafica se ne hai davvero bisogno, come per grandi trame e cose simili. Mentre 256 MB di memoria ARM sono più grandi di quanto possiate avere nei precedenti RaspberryPis, non credo che questo verrà usato in molte occasioni.

Divisioni dinamiche

Le nuove versioni del pacchetto firmware rimuovono la maggior parte dei start_*.elffile, lasciando solo start.elfe start_cd.elf(anche i fixup*.elffile dove vengono aggiunti). D'ora in poi, non devi scegliere manualmente il corretto start_*.file. Invece, dovresti usare le gpu_mem*opzioni nel config.txtfile per scegliere quanta memoria va alla GPU. La memoria rimanente verrà assegnata a ARM. Dovrebbe essere possibile usare un numero arbitrario nel seguente intervallo per queste opzioni:

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

Anche se non ci sono valori di divisione hardcoded in questo momento, la maggior parte delle informazioni per il resto di questa risposta dovrebbe essere ancora valida quando stai cercando di determinare quanta memoria dovrebbe essere allocata alla GPU.

start_cd.elfe i fixup_cd.elffile sono versioni ridotte dei rispettivi file, utilizzate solo quando gpu_mem=16.

Utilizzo di una scheda SD su entrambe le versioni da 256 e 512 MB

Se si utilizza un'immagine della scheda SD per diverse versioni di RaspberryPi, è possibile utilizzare gpu_mem_256e le gpu_mem_512opzioni. Il primo verrà utilizzato solo sulla versione da 256 MB, mentre il secondo solo sulla versione da 512 MB della scheda.


Sì, l'aggiornamento vale se si desidera utilizzare sia XBMC che LXDE senza la noiosa modifica manuale dei file di configurazione prima dell'interruttore eatch o se Pi è il computer principale che si desidera utilizzare quotidianamente.
avra il

6
Guida utile. Per chiarire: quale sarebbe la divisione ottimale per correre senza testa? Ad esempio, il modulo telecamera rpi ha un requisito GPU?
geoteca

Ora c'è un gpu_mem_1024per, non sorprendentemente, i 1024 MB RPis - che attualmente è l'RPi 2 B (e immagino A se ne esce uno?)
SlySven

Secondo elinux.org/RPiconfig#Camera , il modulo videocamera richiede le seguenti righe in /boot/config.txt: start_x=1e gpu_mem=128o più. Inoltre, /usr/bin/raspi-configha un'opzione che abilita la fotocamera.
mpb,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.