概要
Raspberry のGPUのメモリはシステムメモリと共有です。
GPUに割り当てられているメモリのサイズを変更する方法を確認してみました。
試した環境
ラズパイ4、8GB RAM 。 Ubuntu が動いています。
$ cat /proc/device-tree/model
Raspberry Pi 4 Model B Rev 1.4
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 21.04
Release: 21.04
Codename: hirsute
設定方法
現在のGPUメモリのサイズを確認します。デフォルトではGPUへの割当は76MBのようです。
システムのメモリも全然余裕がありますので、GPUの割当を増やしていきます。
$ vcgencmd get_mem gpu
gpu=76M
$ free -h
total used free shared buff/cache available
Mem: 7.6Gi 759Mi 6.3Gi 20Mi 603Mi 6.6Gi
Swap: 0B 0B 0B
GPUへのメモリ割り当てを増やすには、コンフィグファイルに任意の値を設定します。
あまり多く割り当てる(600MB~)と安定しないという情報があったので、ここでは512MBに設定しています。
$ sudo vi /boot/firmware/config.txt
[all]
...
# (途中略)
# 8< 8< 8< snip 8< 8< 8<
# 下の方に追記する
# How much Memory(MB) should the GPU have?
gpu_mem=512
config.txt ファイルを変更して、システムを再起動したらGPUのメモリ設定を確認します。
設定が反映されてtotalのメモリも若干少なくなっています。
$ vcgencmd get_mem gpu
gpu=512M
$ free -h
total used free shared buff/cache available
Mem: 7.2Gi 712Mi 5.9Gi 28Mi 651Mi 6.2Gi
追記: raspios の場合
raspios の場合は Raspberry Pi Software Configuration Tool (raspi-config) で変更できます。
$ sudo raspi-config
4 Performance Options Configure performance settings
P2 GPU Memory Change the amount of memory made available to the GPU
How much memory (MB) should the GPU have? e.g. 16/32/64/128/256 で 設定したい数字を入力します。Okを選択したら最初の画面までもどるので、Finishを選択しましょう。
最後にFinishを選択すると リブートするかどうかを尋ねてくるので、Yes を選択してリブートします。
再起動したら設定が変更されます。 設定値は /boot/config.txt に書き込まれます。
直接テキストを編集して再起動しても設定の変更が可能です。
$ vcgencmd get_mem gpu
gpu=512M
# 設定を変更する
$ sudo vi /boot/config.txt
#一番下に追記
gpu_mem=512
#リブート
$ sudo reboot
# 再起動後
$ vcgencmd get_mem gpu
gpu=512M
録画した動画のエンコードが安定しなかったのはGPUのメモリ割当が少なかったから?
この設定で、もう一度ハードウェアエンコードも試してみようかな。
コメント