อะไรคือความแตกต่างที่เหมาะสมระหว่างหน่วยความจำหลักและ GPU


73

ฉันอ่านว่ามันเป็นไปได้ที่จะจัดสรร 128MB, 64MB หรือ 32MB ให้กับหน่วยความจำวิดีโอของ Raspberry Pi

ระบุว่ากรณีการใช้งานหลักของฉันสำหรับเครื่องนี้เป็นเรื่องเกี่ยวกับการศึกษา: ฉันจะใช้งานสคริปต์ python น้ำหนักเบาและการท่องเว็บ เป็นไปได้หรือไม่ที่จะสูญเสียคุณสมบัติโดยการเปลี่ยนไปใช้หน่วยความจำเพียง 32MB สำหรับฉัน

ฉันไม่คาดหวังว่าจะต้องการใช้ 3D หรือเล่นวิดีโอใด ๆ


2
ให้แน่ใจว่าคุณปรับของคุณswapiness : D
earthmeLon

1
รอนี่มี 42 คะแนน มันไม่ได้เป็นคำถามที่มันเป็นคำตอบ!
The Guy with The Hat

ฉันเชื่อว่าช่วงของค่านั้นกว้างกว่านั้นและตาม @Krysztof Adamski ตอบมันเป็นไปได้ที่จะระบุการแยกเฉพาะใน config.txt สำหรับขนาดหน่วยความจำทั้งหมดที่แตกต่างกันเพื่อให้การ์ดเดียวกันสามารถสร้างการแยกที่เหมาะสมเมื่ออยู่ในที่แตกต่างกัน RPis - ซึ่งจะเป็นประโยชน์เมื่อเตรียมกระจายผมคิดว่า ...
SlySven

คำตอบ:


58

ฉันคาดหวังว่าคุณจะไม่ได้สัมผัสกับความแตกต่างที่เห็นได้ชัดเจนเว้นแต่คุณจะทำงานหนัก ๆ เช่นการเล่นวิดีโอ

อย่างไรก็ตามมันยากที่จะวัดการตั้งค่าที่เหมาะสมเนื่องจากข้อ จำกัด ด้านประสิทธิภาพจะแตกต่างกันไปขึ้นอยู่กับแอปพลิเคชันที่กำลังดำเนินการและความคาดหวังของผู้ใช้

สิ่งที่ดีที่สุดที่คุณสามารถทำได้คือการทดสอบ

หากคุณต้องการเปลี่ยนการแยกแสดงว่ามีสองวิธีที่แตกต่างกันขึ้นอยู่กับเฟิร์มแวร์ที่คุณมี ถ้าเป็นไปได้แล้วให้แน่ใจว่าคุณมี firmware หากคุณไม่สามารถอัปเดตด้วยเหตุผลใดก็ตามฉันไม่ได้รวมตัวเลือกทั้งสองไว้ด้านล่าง:

ใหม่เฟิร์มแวร์ (หลังเดือนตุลาคม 2555)

  • แก้ไข/boot/config.txtและเพิ่มหรือแก้ไขบรรทัดต่อไปนี้:

    gpu_mem=16
    
  • ค่าสามารถเป็น16, 64, 128หรือ256และแสดงให้เห็นถึงจำนวนของ RAM ที่มีอยู่กับ GPU

เฟิร์มแวร์เก่า (ก่อนตุลาคม 2012)

ในการเปลี่ยนหน่วยความจำวิดีโอคุณจำเป็นต้องเปลี่ยนstart.elfไฟล์ใน/boot/พาร์ติชั่นของภาพ .elfไฟล์ที่เป็นไปได้ควรอยู่ใน/boot/ไดเรกทอรีบน Pi ของคุณ คุณทำการสลับโดยแทนที่start.elfแฟ้มด้วยอย่างใดอย่างหนึ่ง

มีสามรุ่นหน่วยความจำและนี่คือคำแนะนำที่นำมาจากกระดานสนทนา Raspberry Pi :

  1. RAM 224MB และ VRAM 32MB สำหรับดิสทริบิวเตอร์ระบบดิสก์ท็อป Linux หรือแอพพลิเคชั่นหนัก ๆ (ไม่ใช่ GUI) ที่ไม่จำเป็นต้องเล่นวิดีโอหรือแสดงภาพ 3 มิติ  
  2. RAM 192MB และ 64MB VRAM (ค่าเริ่มต้น) สำหรับดิสทริบิวเตอร์เดสก์ท็อปที่ต้องการเล่นวิดีโอหรือมีเอฟเฟกต์ 3 มิติ  
  3. 128MB RAM และ 128MB VRAM สำหรับแอพพลิเคชั่นและเกมที่ทำมัลติมีเดียมากมายหรือเล่นเกมที่แสดงผล 3 มิติ  

 และอีกหนึ่ง:

240MB RAM และ 16 VRAM สำหรับพลังกราฟิกเกือบเป็นศูนย์ มีหน่วยความจำ GPU เพียงพอที่จะแสดงหน้าจอ แต่ไม่มาก ใช้สิ่งนี้เมื่อคุณต้องการเพิ่มประสิทธิภาพ GUI ที่ไม่ใช่เพิ่มเติม


ฉันได้อัปเดตคำตอบสำหรับรุ่น 512MB ใหม่แล้ว
Jivings

คำบรรยายดูเหมือนจะเพิ่มความต้องการหน่วยความจำ ; สำหรับวิดีโอ 1080p ที่มีคำบรรยาย 64MB นั้นไม่เพียงพอ
กราฟิลส์

51

RAM มีความสำคัญอย่างยิ่งต่อประสิทธิภาพของ Linux เนื่องจากเหตุผลสองประการ:

  • แคช Linux ทำงานโดยไม่มีหน่วยความจำว่างตลอดเวลา หากแอปพลิเคชั่นไม่ได้ใช้หน่วยความจำบางตัวมันจะใช้สำหรับแคชที่เพิ่มความเร็วให้ ดังนั้นหน่วยความจำจึงไม่สูญเปล่า หากแอปพลิเคชันต้องการหน่วยความจำเพิ่มเติมแคชจะถูกปล่อยเพื่อแคชจะไม่ป้องกันแอปพลิเคชันที่ต้องการ RAM เพิ่มขึ้นในการทำงาน แต่แน่นอนยิ่งแคชของคุณมากเท่าไหร่ก็ยิ่งดีเท่านั้น

  • แอปพลิเคชั่นมากมาย (โดยเฉพาะที่เดสก์ท็อป) ต้องการหน่วยความจำจำนวนมากในการทำงานทุกวันนี้ นี่ไม่ใช่เรื่องแปลก - ระบบเดสก์ท็อปส่วนใหญ่ (หรือแม้แต่สมาร์ทโฟน) ทุกวันนี้มีหน่วยความจำมากกว่า Rapsberry Pi ตัวอย่างเช่นเว็บเบราว์เซอร์ที่มีน้ำหนักเบา) จะใช้หน่วยความจำหลายสิบ MB ทันทีที่คุณเปิดเว็บไซต์ที่ใหญ่กว่า

  • แอปพลิเคชั่นแต่ละตัวและทุกตัวต้องการหน่วยความจำจำนวนหนึ่ง ดังนั้นยิ่งคุณรันแอพพลิเคชั่นมากเท่าไรหน่วยความจำก็จะยิ่งใช้งานมากขึ้น

ดังนั้นคุณจึงต้องการมีหน่วยความจำ ARM มากที่สุดเท่าที่จะทำได้ แต่ GPU มีความต้องการของตัวเองขึ้นอยู่กับคุณสมบัติที่คุณต้องการ

รุ่น 256MB

สำหรับ RaspberryPi รุ่นเก่าที่มี RAM 256 MB จะมี 4 splits:

  • 240/16 - ARM ขนาด RAM ส่วนใหญ่สามารถรับได้ (240MB) พร้อมหน่วยความจำ GPU เลียนแบบ เหมาะที่สุดสำหรับการคำนวณทั่วไปเมื่อคุณไม่ต้องการกราฟิก 3D หรือการเร่งความเร็ววิดีโอฮาร์ดแวร์ มีหน่วยความจำเพียงพอที่จะจัดการกับความละเอียดเฟรมบัฟเฟอร์ 1920x1200x16bpp ในขณะที่ 32bpp ยังใช้งานได้ไม่แนะนำให้ใช้เนื่องจากมีหน่วยความจำเหลือน้อยสำหรับ GPU

  • 224/32 - อันนี้เลิกใช้ในการแบ่ง 240/16 มันมีโครงสร้างการถอดรหัสวิดีโอแบบ 3D และฮาร์ดแวร์ แต่เนื่องจากมีหน่วยความจำไม่เพียงพอที่จะใช้งานจริงจึงมีจุดใช้งานน้อย ถ้าคุณไม่มีปัญหากับการแยก 240/16 หรือต้องการใช้ 32bpp framebuffer ที่ความละเอียดสูงสุด เป็นไปได้ว่ามันจะถูกลบในอนาคต

  • 192/64 - คุณต้องแบ่ง GPU อย่างน้อย 64MB เพื่อใช้การเร่งความเร็ววิดีโอฮาร์ดแวร์หรือกราฟิก 3D อาจมีหน่วยความจำ GPU ไม่เพียงพอสำหรับการเล่นวิดีโอที่เร่งความเร็วด้วยความละเอียดสูงสุดหรือหากคุณต้องการหน่วยความจำ GPU จำนวนมากสำหรับสิ่งต่าง ๆ เช่นพื้นผิว

  • 128/128 - RAM GPU ส่วนใหญ่สามารถรับได้ ใช้เมื่อคุณต้องการหน่วยความจำจำนวนมากสำหรับการ์ดกราฟิก 3D และการเล่นวิดีโอที่เร่งด้วยฮาร์ดแวร์ด้วยความละเอียดสูง การแบ่งนี้จำเป็นสำหรับ RaspBMC เพื่อให้ทำงานได้อย่างถูกต้องหรือเล่นเนื้อหาวิดีโอ fullHD ด้วย omxplayer โดยไม่มีปัญหา

รุ่น 512MB

RaspberryPi เวอร์ชั่นใหม่มี RAM 512 MB คุณมี 4 ตัวแยกเพิ่มเติมที่ออกแบบมาสำหรับรุ่นนี้:

  • 496/16และ448/64 - เหมือน240/16และ192/64แยกเป็น 256MB ตามลำดับ แต่มี RAM เพิ่มขึ้น 256MB สำหรับ ARM เนื่องจาก GPU มีเพียง 16 MB / 64MB หรือ RAM ข้อ จำกัด ทั้งหมดจาก240/16/ 192/64ยังคงมีผลบังคับใช้
  • 384/128 - คล้ายกับ128/128แบ่งเป็น 256MB - คุณควรได้รับคุณสมบัติชิปกราฟิกทั้งหมด แต่มีหน่วยความจำ ARM ในปริมาณที่เหมาะสม นี่อาจจะเป็นการแบ่งที่เป็นสากลมากที่สุด
  • 256/256 - หน่วยความจำกราฟิกการ์ดโบนัสบางส่วนหากคุณต้องการจริงๆเช่นพื้นผิวขนาดใหญ่และสิ่งที่คล้ายกัน ในขณะที่หน่วยความจำ ARM ขนาด 256MB นั้นใหญ่กว่าที่คุณเคยมีใน RaspberryPis รุ่นเก่า แต่ฉันไม่คิดว่าจะใช้หน่วยความจำนี้หลายต่อหลายครั้ง

แยกแบบไดนามิก

แพ็คเกจเฟิร์มแวร์เวอร์ชั่นใหม่จะลบstart_*.elfไฟล์ส่วนใหญ่โดยเหลือเพียงstart.elfและstart_cd.elf(รวมถึงfixup*.elfไฟล์ที่มีการเพิ่ม) start_*.fileจากนี้ไปคุณไม่ต้องเลือกที่เหมาะสมด้วยตนเอง แต่คุณควรใช้gpu_mem*ตัวเลือกในconfig.txtไฟล์เพื่อเลือกจำนวนหน่วยความจำของ GPU หน่วยความจำที่เหลือจะถูกจัดสรรให้กับ ARM เป็นไปได้ที่จะใช้หมายเลขที่กำหนดเองในช่วงต่อไปนี้สำหรับตัวเลือกนี้:

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

ในขณะที่ไม่มีค่าการแบ่งรหัสแบบฮาร์ดโค้ดตอนนี้ข้อมูลส่วนใหญ่สำหรับคำตอบที่เหลือนี้ควรยังคงใช้ได้เมื่อคุณพยายามที่จะกำหนดจำนวนหน่วยความจำที่จัดสรรให้กับ GPU

start_cd.elfและfixup_cd.elfไฟล์cutdowngpu_mem=16รุ่นของไฟล์นั้นเพียงใช้เมื่อ

ใช้การ์ด SD หนึ่งการ์ดทั้งในเวอร์ชัน 256 และ 512 MB

หากคุณใช้อิมเมจการ์ด SD หนึ่งอันสำหรับรุ่น RaspberryPi ที่แตกต่างกันคุณสามารถใช้gpu_mem_256และgpu_mem_512ตัวเลือกต่างๆ ตัวแรกจะใช้กับรุ่น 256MB เท่านั้นส่วนที่สองจะใช้กับรุ่น 512MB เท่านั้น


ใช่การอัพเกรดมีค่าถ้าคุณต้องการใช้ทั้ง XBMC และ LXDE โดยไม่ต้องเปลี่ยนไฟล์ config ด้วยตนเองที่น่าเบื่อก่อนที่จะเปลี่ยน eatch หรือถ้า Pi เป็นคอมพิวเตอร์หลักของคุณที่คุณต้องการใช้เป็นประจำทุกวัน
avra

6
คำแนะนำที่เป็นประโยชน์ เพื่อชี้แจง - สิ่งที่จะแยกที่ดีที่สุดสำหรับการทำงานหัวขาด? ตัวอย่างเช่นโมดูลกล้อง rpi มีความต้องการ GPU หรือไม่?
geotheory

ตอนนี้มีgpu_mem_1024ไว้สำหรับไม่น่าแปลกใจที่ 1024 MB RPis - ซึ่งปัจจุบันคือ RPi 2 B (และฉันเดาว่าถ้ามีใครออกมา?)
SlySven

ตามelinux.org/RPiconfig#Cameraโมดูลกล้องต้องการบรรทัดต่อไปนี้ใน/boot/config.txt: start_x=1และgpu_mem=128หรือมากกว่า นอกจากนี้ยัง/usr/bin/raspi-configมีตัวเลือกที่ช่วยให้กล้อง
mpb
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.