Manage Raspberry PI GPU Memory Split

Connect with me on social networks for updates and content!
twitter icon facebook icon pinterest icon mastodon icon

As you know, Raspberry PI is, before all, a single board computer. This means that available memory is shared between CPU (Central Processing Unit) for programs usage and GPU (Graphics Processing Unit) for video processing usage.

Raspberry PI 4 model B 8GB

Unlike other bigger computer boards, Raspberry PI hasn’t memory slots to increase total available RAM (even if last Raspberry PI 4 models increased up to 8GB, matching heavier tasks needs). Furthermore, the amount of memory assigned to GPU is subtracted to CPU and you can’t dynamically reassign it until re-set its quantity and reboot.

For this reason, you could need to tune your RAM needs and test and re-test until you ind the right compromise.

In this tutorial I’m going to show you how to manage Raspberry PI Memory Split and set RAM amount assigned to GPU. This tutorial applies to all Raspberry PI boards.

Memory Split Settings: PROs and CONs

RAM amout is one of most precious resources for every OS. You have to set it carefully, because a too low amount to CPU can give system instability and slowness, forcing it to use swap memory (SD storage portion used to help RAM) too often. On the other side, a too low amount of RAM to GPU will result in desktop environments unusable with frustrating lackness.

Back to Raspberry PI, memory allocated to GPU can be set from 16MB upward.

  • GPU to 16MB – is a good solution for operating systems without desktop environments (Raspberry PI OS Lite). In this case you don’t need graphical features because you only use terminal console. It gives quite all RAM to programs which will run at full of their capability.
  • GPU to 64MB – is, in my opinion, the minimum amount of GPU RAM for light desktop environments (like Raspberry PI OS Desktop) when your need is only for email check and web pages browsing (excluding videos). This can be considered the starting base for desktop installations.
  • GPU to 128MB – is a good compromise when using light desktop environments with some office apps for light documents. With this configuration you can also start seeing decent videos
  • GPU to 256MS – is for more complex Desktop environments (check, for example, available Raspberry PI OSs). But this amount could start interfering with CPU RAM, so impacting programs performances.

Please share your opinions on GPU Split Memory settings in comments section at the end of this post.

What We Need

This is more a settings tutorial than a project. You will probably already own:

Check hardware prices with following links:

Amazon raspberry pi boards box
Amazon Micro SD box
Amazon Raspberry PI Power Supply box

Step-by-Step Procedure

Once installed your favourite Operating system (Raspberry PI OS Lite or Raspberry PI OS Desktop), please remember always to update. From terminal:

sudo apt update -y && sudo apt upgrade -y

We’ll use the Raspberry PI OS built-in raspi-config tool to reach immediately Memory Split settings. From terminal:

sudo raspi-config

In following screen select option 4 (Performance Options) and press ENTER:

mem split raspi-config home

In next screen, please select option P2 (GPU Memory) and press ENTER:

mem split raspi-config performance

In next screen you can write the amount of RAM (in MB) assigned to GPU. Press ENTER after writing related number:

mem split raspi-config performance gpu memory

After this, your screen goes back to raspi-config home. Go to “Finish” with TAB key on keyboard and press ENTER:

mem split raspi-config home finish

You are now warned that a reboot is required. Remeber to save documents open, if there are, and select yes to reboot:

mem split raspi-config reboot

On system reboot you can check Memory Split setting by using following terminal command:

cat /boot/config.txt | grep gpu_mem


How useful was this post?

Click on a star to rate it anonymously!

Average rating 4.3 / 5. Vote count: 11

No votes so far! Be the first to rate this post.

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?