Apa pemisahan optimal memori utama versus GPU?

73

Saya membaca bahwa mungkin mengalokasikan 128MB, 64MB atau 32MB ke memori video Raspberry Pi.

Mengingat bahwa use case utama saya untuk mesin ini bersifat mendidik: Saya akan menjalankan skrip python ringan dan menjelajah web. Apakah saya akan mengalami kehilangan fitur dengan beralih ke memori hanya 32MB untuk saya?

Saya tidak mengantisipasi ingin menggunakan 3D apa pun atau memutar video apa pun.

Salim Fadhley
sumber
2
Pastikan Anda menyesuaikan swapiness Anda : D
earthmeLon
1
Tunggu, ini memiliki 42 suara. Ini bukan pertanyaan, itu adalah yang jawabannya!
The Guy with The Hat
Saya percaya kisaran nilai sekarang lebih luas dari itu, dan, sesuai dengan @Krysztof Adamski menjawab, dimungkinkan untuk menentukan pemisahan spesifik di config.txt untuk ukuran memori total yang berbeda sehingga kartu yang sama dapat menghasilkan pemisahan yang tepat ketika ditempatkan di RPis berbeda - yang berguna saat menyiapkan distribusi kurasa ...
SlySven

Jawaban:

58

Saya berharap Anda tidak mengalami perbedaan yang nyata kecuali Anda melakukan tugas yang berat secara grafis, seperti memutar video.

Namun, sulit untuk mengukur pengaturan optimal, karena batas kinerja akan bervariasi tergantung pada aplikasi apa yang dieksekusi dan harapan pengguna.

Hal terbaik yang dapat Anda lakukan adalah bereksperimen.

Jika Anda ingin mengubah pemisahan, maka ada dua metode yang berbeda, tergantung pada firmware yang Anda miliki. Jika memungkinkan maka pastikan Anda memiliki firmware terbaru . Jika Anda tidak dapat memperbarui untuk alasan apa pun, maka saya telah menyertakan kedua opsi di bawah:

Firmware Baru (setelah Oktober 2012)

  • Edit /boot/config.txtdan tambahkan atau edit baris berikut:

    gpu_mem=16
    
  • Nilai dapat 16, 64, 128atau 256dan mewakili jumlah RAM yang tersedia untuk GPU.

Firmware Lama (sebelum Oktober 2012)

Untuk mengubah memori video, Anda perlu mengganti start.elffile pada /boot/partisi gambar. File yang mungkin .elfharus ada di /boot/direktori pada Pi Anda. Anda beralih dengan mengganti start.elffile dengan yang lain.

Ada tiga model memori, dan berikut adalah rekomendasi yang diambil dari papan diskusi Raspberry Pi :

  1. RAM 224MB dan VRAM 32MB untuk distro desktop Linux, atau aplikasi berat (non GUI) yang tidak perlu memutar video, maupun membuat 3D.  
  2. RAM 192MB dan VRAM 64MB (default) untuk distro desktop yang ingin memutar video atau memiliki efek 3D.  
  3. 128MB RAM dan 128MB VRAM untuk aplikasi dan game yang melakukan multimedia luas atau memainkan game yang dirender 3D.  

 Dan satu lagi:

RAM 240MB dan 16 VRAM untuk daya grafis hampir nol. Ada cukup memori GPU untuk membuat layar, tetapi tidak banyak lagi. Gunakan ini ketika Anda membutuhkan peningkatan kinerja non GUI lebih lanjut.

Jivings
sumber
Saya telah memperbarui jawaban untuk Model 512MB baru.
Jivings
Teks tampaknya meningkatkan kebutuhan memori ; untuk video 1080p dengan subtitle, 64MB sama sekali tidak cukup.
Raphael
51

RAM sangat penting untuk kinerja Linux karena beberapa alasan:

  • Cache Linux berjalan tanpa memori bebas hampir sepanjang waktu. Jika beberapa memori tidak digunakan oleh aplikasi, itu digunakan untuk cache yang mempercepat. Jadi tidak ada memori yang terbuang sia-sia. Jika aplikasi membutuhkan lebih banyak memori, cache dibebaskan sehingga cache tidak akan pernah mencegah aplikasi yang membutuhkan lebih banyak RAM dari berjalan. Tapi tentu saja semakin banyak cache Anda, semakin baik.

  • Banyak aplikasi (terutama yang desktop) membutuhkan banyak memori untuk dijalankan saat ini. Ini tidak mengherankan - sebagian besar sistem desktop (atau bahkan smartphone) hari ini memiliki lebih banyak memori daripada Rapsberry Pi. Misalnya browser web yang lebih ringan) akan menggunakan puluhan MB memori segera setelah Anda membuka beberapa situs web yang lebih besar.

  • Setiap aplikasi membutuhkan sejumlah memori. Jadi semakin banyak aplikasi yang Anda jalankan, semakin banyak memori yang mereka gunakan.

Jadi, Anda selalu ingin memiliki memori ARM sebanyak mungkin. Tetapi GPU memiliki kebutuhannya sendiri tergantung pada fitur apa yang Anda inginkan darinya.

Versi 256MB

Untuk RaspberryPi yang lebih lama, dengan 256 MB RAM, 4 splits tersedia:

  • 240/16 - Ukuran RAM paling besar yang bisa didapatkan (240MB) dengan memori GPU mimial. Ini yang terbaik untuk komputasi umum ketika Anda tidak memerlukan grafis 3D atau akselerasi video perangkat keras. Ini memiliki memori yang cukup untuk menangani resolusi framebuffer 1920x1200x16bpp. Sementara 32bpp juga berfungsi, tidak disarankan karena hanya menyisakan sedikit memori gratis untuk GPU.

  • 224/32 - Yang ini sudah usang demi 240/16 split. Ini memiliki 3D dan hardware decoding video built in tetapi karena tidak ada cukup memori untuk benar-benar menggunakannya, ada sedikit gunanya menggunakannya. Kecuali jika Anda memiliki beberapa masalah dengan 240/16 split atau ingin menggunakan framebuffer 32bpp pada resolusi tertinggi. Mungkin saja itu akan dihapus di masa depan.

  • 192/64 - Anda membutuhkan setidaknya 64MB GPU split untuk menggunakan akselerasi video perangkat keras atau grafik 3D. Mungkin tidak cukup memori GPU untuk pemutaran video yang dipercepat perangkat keras pada resolusi tertinggi atau jika Anda membutuhkan banyak memori GPU untuk hal-hal seperti tekstur.

  • 128/128 - GPU RAM terbanyak yang bisa didapat. Gunakan saat Anda membutuhkan banyak memori untuk kartu grafis 3D dan pemutaran video yang dipercepat perangkat keras dalam resolusi tinggi. Perpecahan ini diperlukan agar RaspBMC berfungsi dengan baik atau memutar konten video fullHD dengan omxplayer tanpa masalah.

Versi 512MB

Versi baru RaspberryPi memiliki RAM 512 MB. Anda memiliki 4 pemisahan tambahan yang dirancang untuk versi ini:

  • 496/16 dan 448/64 - suka 240/16dan 192/64bagi masing-masing 256MB tetapi dengan 256MB lebih banyak RAM tersedia untuk ARM. Karena GPU hanya memiliki 16 MB / 64MB atau RAM, semua batasan dari 240/16/ 192/64masih berlaku.
  • 384/128 - Mirip dengan 128/128 split untuk 256MB - Anda harus mendapatkan semua fitur chip grafis tetapi dengan jumlah memori ARM yang masuk akal. Ini mungkin akan menjadi perpecahan paling universal saat ini.
  • 256/256 - Beberapa memori kartu grafis bonus jika Anda benar-benar membutuhkannya, seperti untuk tekstur besar dan hal-hal serupa. Sementara 256MB memori ARM lebih besar daripada yang mungkin Anda miliki di RaspberryPis yang lebih lama, saya rasa ini tidak akan digunakan pada banyak kesempatan.

Perpecahan dinamis

Versi baru paket firmware menghapus sebagian besar start_*.elffile, hanya menyisakan start.elfdan start_cd.elf(juga fixup*.elffile yang ditambahkan). Mulai sekarang, Anda tidak perlu secara manual memilih yang tepat start_*.file. Sebagai gantinya, Anda harus menggunakan gpu_mem*opsi dalam config.txtfile untuk memilih berapa banyak memori yang masuk ke GPU. Memori yang tersisa akan dialokasikan ke ARM. Seharusnya dimungkinkan untuk menggunakan nomor acak dalam kisaran berikut untuk opsi ini:

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

Meskipun tidak ada nilai pemisahan hardcoded sekarang, sebagian besar informasi untuk sisa jawaban ini masih harus valid ketika Anda mencoba menentukan berapa banyak memori yang harus dialokasikan ke GPU.

start_cd.elfdan fixup_cd.elffile adalah versi cutdown dari masing-masing file, hanya digunakan saat gpu_mem=16.

Menggunakan satu kartu SD pada versi 256 dan 512 MB

Jika Anda menggunakan satu gambar kartu SD untuk versi RaspberryPi yang berbeda, Anda dapat menggunakan gpu_mem_256dan gpu_mem_512opsi. Yang pertama hanya akan digunakan pada versi 256MB sedangkan yang kedua hanya pada versi papan 512MB.

Krzysztof Adamski
sumber
Ya, peningkatan layak dilakukan jika Anda ingin menggunakan XBMC dan LXDE tanpa perubahan file konfigurasi manual yang membosankan sebelum beralih eatch, atau jika Pi adalah komputer utama yang ingin Anda gunakan setiap hari.
avra
6
Panduan yang bermanfaat. Untuk memperjelas - apa yang akan menjadi perpecahan optimal untuk menjalankan tanpa kepala? Apakah misalnya modul kamera rpi memiliki persyaratan GPU?
geoteori
Sekarang ada gpu_mem_1024untuk, tidak mengherankan RP 1024 MB - yang saat ini adalah RPi 2 B (dan saya kira A jika ada yang keluar?)
SlySven
Menurut elinux.org/RPiconfig#Camera , modul kamera memerlukan baris berikut dalam /boot/config.txt: start_x=1dan gpu_mem=128atau lebih. Juga, /usr/bin/raspi-configmemiliki opsi yang memungkinkan kamera.
mpb