Quelle est la répartition optimale de la mémoire principale par rapport à la mémoire GPU?


73

J'ai lu qu'il était possible d'allouer 128 Mo, 64 Mo ou 32 Mo à la mémoire vidéo du Raspberry Pi.

Étant donné que mon principal cas d'utilisation de cette machine est éducatif: j'exécuterai des scripts python légers et une navigation sur le Web. Est-il susceptible de subir une perte de fonctionnalités en passant à seulement 32 Mo de mémoire pour moi?

Je ne prévois pas vouloir utiliser de la 3D ni lire de vidéo.


2
Assurez-vous d’ajuster votre swapiness : D
earthmeLon

1
Attendez, cela a 42 votes. Ce n'est pas une question, c'est la réponse!
Le gars avec le chapeau

Je crois que la plage de valeurs est maintenant plus large que cela et, comme indiqué dans la réponse de @Krysztof Adamski, il est possible de spécifier une division spécifique dans le fichier config.txt pour différentes tailles de mémoire totale, de sorte qu'une même carte puisse produire des divisions appropriées lorsqu'elle est insérée. RPis différents - ce qui est utile lors de la préparation des distributions, je suppose ...
SlySven

Réponses:


58

Je m'attendrais à ce que vous n'ayez aucune différence notable à moins que vous ne fassiez des tâches graphiques lourdes, telles que la lecture de vidéos.

Cependant, il est difficile d'évaluer les paramètres optimaux, car les limites de performances varient en fonction des applications exécutées et des attentes de l'utilisateur.

La meilleure chose à faire est d'expérimenter.

Si vous souhaitez modifier le partage, il existe deux méthodes différentes, selon le microprogramme dont vous disposez. Si possible, assurez-vous d'avoir le dernier firmware . S'il n'est pas possible pour vous de mettre à jour pour une raison quelconque, alors j'ai inclus les deux options ci-dessous:

Nouveau micrologiciel (après octobre 2012)

  • Editez /boot/config.txtet ajoutez ou éditez la ligne suivante:

    gpu_mem=16
    
  • La valeur peut être 16, 64, 128ou 256et représente la quantité de RAM disponible pour le GPU.

Ancien firmware (avant octobre 2012)

Afin de modifier la mémoire vidéo, vous devez remplacer le start.elffichier sur la /boot/partition de l'image. Les .elffichiers possibles doivent être dans le /boot/répertoire de votre Pi. Vous effectuez le changement en remplaçant le start.elffichier par l’un des autres.

Il existe trois modèles de mémoire, et voici les recommandations tirées du forum de discussion Raspberry Pi :

  1. 224 Mo de RAM et 32 ​​Mo de VRAM pour une distribution de bureau Linux ou des applications lourdes (sans interface graphique) ne nécessitant ni lecture de vidéo, ni rendu en 3D.  
  2. 192 Mo de RAM et 64 Mo de VRAM (par défaut) pour les distributeurs de bureau qui souhaitent lire des vidéos ou qui ont des effets 3D.  
  3. 128 Mo de RAM et 128 Mo de VRAM pour les applications et les jeux faisant beaucoup de multimédia ou jouant à des jeux de rendu 3D.  

 Et un de plus:

240 Mo de RAM et 16 VRAM pour une puissance graphique presque nulle. Il y a assez de mémoire GPU pour rendre l'écran, mais pas grand-chose d'autre. Utilisez-le lorsque vous avez besoin d'une amélioration supplémentaire des performances sans interface graphique.


J'ai mis à jour la réponse pour les nouveaux modèles de 512 Mo.
Jivings

Les sous-titres semblent augmenter les besoins en mémoire ; pour une vidéo 1080p avec sous-titres, 64 Mo était strictement insuffisant.
Raphaël

51

La RAM est essentielle aux performances de Linux pour plusieurs raisons:

  • Caches. Linux fonctionne sans mémoire libre la plupart du temps. Si une partie de la mémoire n'est pas utilisée par les applications, elle est utilisée pour les caches, ce qui accélère les choses. Donc, aucune mémoire n'est jamais perdue. Si les applications nécessitent plus de mémoire, les caches sont libérés pour ne pas empêcher les applications nécessitant plus de RAM de s'exécuter. Mais bien sûr, plus vous pouvez mettre en cache, mieux c'est.

  • De nombreuses applications (en particulier celles de bureau) ont besoin de beaucoup de mémoire aujourd'hui. Ce n'est pas une surprise - la plupart des systèmes de bureau (ou même des smartphones) ont aujourd'hui beaucoup plus de mémoire que Rapsberry Pi. Par exemple, les navigateurs Web utilisent même des dizaines de Mo de mémoire dès que vous ouvrez un site Web plus grand.

  • Chaque application nécessite une certaine quantité de mémoire. Ainsi, plus vous exécutez d'applications, plus elles utilisent de la mémoire.

Donc, vous voulez toujours avoir autant de mémoire ARM que possible. Mais GPU a ses propres besoins en fonction des fonctionnalités que vous souhaitez en tirer.

Version de 256 Mo

Pour le RaspberryPi plus ancien, avec 256 Mo de RAM, 4 divisions sont disponibles:

  • 240/16 - La taille maximale de RAM que peut obtenir ARM (240 Mo) avec la mémoire GPU mimiale. C'est le meilleur pour l'informatique générale lorsque vous n'avez pas besoin de graphiques 3D ou d'accélération vidéo matérielle. Il dispose de suffisamment de mémoire pour gérer une résolution de framebuffer de 1920x1200x16bpp. Bien que 32bpp fonctionne également, il n’est pas recommandé car il ne laisse que très peu de mémoire libre pour le processeur graphique.

  • 224/32 - Celui-ci est déconseillé au profit de 240/16 split. Il intègre le décodage vidéo 3D et matériel, mais comme il n’ya pas assez de mémoire pour l’utiliser, il ne sert à rien de l’utiliser. Sauf si vous rencontrez des problèmes avec la division 240/16 ou souhaitez utiliser le framebuffer 32bpp à la résolution maximale. Il est possible qu'il soit supprimé à l'avenir.

  • 192/64 - Vous devez disposer d'au moins 64 Mo de fractionnement GPU pour utiliser l'accélération vidéo matérielle ou les graphiques 3D. Il se peut que la mémoire GPU ne soit pas suffisante pour permettre une lecture vidéo accélérée au matériel avec une résolution maximale ou si vous avez besoin de beaucoup de mémoire GPU pour des tâches telles que les textures.

  • 128/128 - Le GPU avec le plus de RAM possible. Utilisez-le lorsque vous avez besoin de beaucoup de mémoire pour la lecture vidéo à haute résolution avec une carte graphique 3D et un matériel accéléré. Cette division est nécessaire au bon fonctionnement de RaspBMC ou à la lecture sans problème de contenu vidéo fullHD avec omxplayer.

Version de 512Mo

Les nouvelles versions de RaspberryPi ont 512 Mo de RAM. Vous avez 4 divisions supplémentaires conçues pour cette version:

  • 496/16 et 448/64 - comme 240/16et 192/64divisé pour 256 Mo respectivement, mais avec 256 Mo plus de RAM disponible pour ARM. Étant donné que le processeur graphique ne dispose que de 16 Mo / 64 Mo ou de RAM, toutes les limitations de 240/16/ 192/64s'appliquent toujours.
  • 384/128 - Semblable au 128/128 divisé pour 256 Mo - vous devriez obtenir toutes les fonctionnalités de la puce graphique mais avec une quantité raisonnable de mémoire ARM. Ce sera probablement la scission la plus universelle en ce moment.
  • 256/256 - Un peu de mémoire supplémentaire pour carte graphique si vous en avez vraiment besoin, comme pour les grosses textures et autres choses similaires. Bien que 256 Mo de mémoire ARM soient plus volumineux que dans les anciens RaspberryPis, je ne pense pas que celui-ci sera utilisé à plusieurs reprises.

Scissions dynamiques

Les nouvelles versions du paquet firmware supprime la plupart des start_*.elffichiers, ne laissant que start.elfet start_cd.elf(aussi les fixup*.elffichiers où ajoutés). A partir de maintenant, vous n'avez plus besoin de choisir manuellement start_*.file. Au lieu de cela, vous devez utiliser les gpu_mem*options du config.txtfichier pour choisir la quantité de mémoire allouée au GPU. La mémoire restante sera allouée à ARM. Il devrait être possible d'utiliser un nombre arbitraire dans la plage suivante pour ces options:

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

Bien qu'il n'y ait pas actuellement de valeurs fractionnées codées en dur, la plupart des informations pour le reste de cette réponse doivent toujours être valides lorsque vous essayez de déterminer la quantité de mémoire à allouer au GPU.

start_cd.elfet les fixup_cd.elffichiers sont des versions réduites des fichiers respectifs, utilisés uniquement quand gpu_mem=16.

Utilisation d'une carte SD sur les versions 256 et 512 Mo

Si vous utilisez une image de carte SD pour différentes versions de RaspberryPi, vous pouvez utiliser gpu_mem_256et gpu_mem_512options. Le premier ne sera utilisé que sur la version 256 Mo, le second sur la version 512 Mo de la carte.


Oui, la mise à niveau est utile si vous souhaitez utiliser à la fois XBMC et LXDE sans modification manuelle fastidieuse du fichier de configuration avant le commutateur eatch, ou si Pi est votre ordinateur principal que vous souhaitez utiliser quotidiennement.
Avra

6
Conseils utiles. Pour clarifier - quelle serait la division optimale pour courir sans tête? Par exemple, le module de caméra rpi nécessite-t-il un processeur graphique?
geotheory

Il y a maintenant un gpu_mem_1024pour, sans surprise, le RPis de 1024 Mo - qui est actuellement le RPi 2 B (et j'imagine A si on en sort?)
SlySven le

Selon elinux.org/RPiconfig#Camera , le module de caméra nécessite les lignes suivantes /boot/config.txt: start_x=1et gpu_mem=128plus. En outre, /usr/bin/raspi-configa une option qui active la caméra.
MPB
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.