Sự phân chia tối ưu của bộ nhớ chính so với bộ nhớ GPU là gì?


73

Tôi đọc được rằng có thể phân bổ 128 MB, 64 MB hoặc 32 MB cho bộ nhớ video của Raspberry Pi.

Cho rằng trường hợp sử dụng chính của tôi cho máy này là giáo dục: Tôi sẽ chạy các kịch bản python nhẹ và duyệt web. Tôi có thể bị mất tính năng khi chuyển sang bộ nhớ chỉ 32 MB cho tôi không?

Tôi không lường trước việc muốn sử dụng bất kỳ 3D hoặc phát bất kỳ video nào.


2
Hãy chắc chắn rằng bạn điều chỉnh sự hoán đổi của mình : D
earthmeLon

1
Đợi đã, có 42 phiếu. Nó không phải là một câu hỏi, đó là những câu trả lời!
Chàng trai với chiếc mũ

Tôi tin rằng phạm vi của các giá trị bây giờ rộng hơn thế và theo câu trả lời của @Krysztof Adamski, có thể chỉ định một phân chia cụ thể trong config.txt cho các kích thước bộ nhớ khác nhau để cùng một thẻ có thể tạo ra các phân chia phù hợp khi được đặt vào RPis khác nhau - rất hữu ích khi chuẩn bị phân phối tôi đoán ...
SlySven

Câu trả lời:


58

Tôi hy vọng bạn sẽ không gặp phải sự khác biệt đáng chú ý trừ khi bạn đang thực hiện các tác vụ nặng về đồ họa, chẳng hạn như phát video.

Tuy nhiên, thật khó để đánh giá các cài đặt tối ưu, vì giới hạn hiệu suất sẽ thay đổi tùy thuộc vào ứng dụng nào đang thực thi và mong đợi của người dùng.

Điều tốt nhất bạn có thể làm là thử nghiệm.

Nếu bạn muốn thay đổi phần tách, thì có hai phương pháp khác nhau, tùy thuộc vào phần sụn bạn có. Nếu có thể thì hãy chắc chắn rằng bạn có phần sụn mới nhất . Nếu bạn không thể cập nhật vì bất kỳ lý do gì, thì tôi đã bao gồm cả hai tùy chọn bên dưới:

Phần sụn mới (sau tháng 10 năm 2012)

  • Chỉnh sửa /boot/config.txtvà thêm hoặc chỉnh sửa dòng sau:

    gpu_mem=16
    
  • Giá trị có thể 16, 64, 128hay 256và đại diện cho lượng RAM dành cho GPU.

Phần sụn cũ (trước tháng 10 năm 2012)

Để thay đổi bộ nhớ video, bạn cần thay thế start.elftệp trên /boot/phân vùng của hình ảnh. Các .elftập tin có thể nên có trong /boot/thư mục trên Pi của bạn. Bạn thực hiện chuyển đổi bằng cách thay thế start.elftệp bằng một trong những người khác.

Có ba mô hình bộ nhớ và đây là các đề xuất được lấy từ bảng thảo luận Raspberry Pi :

  1. RAM 224 MB và VRAM 32 MB cho bản phân phối máy tính để bàn Linux hoặc ứng dụng nặng (không phải GUI) không cần phát video cũng như không hiển thị 3D.  
  2. RAM 192 MB và VRAM 64 MB (mặc định) cho các bản phân phối máy tính để bàn muốn phát video hoặc có hiệu ứng 3D.  
  3. RAM 128 MB và VRAM 128 MB cho các ứng dụng và trò chơi đa phương tiện hoặc chơi các trò chơi kết xuất 3D.  

 Và một cái nữa:

RAM 240MB và 16 VRAM cho sức mạnh đồ họa gần như bằng không. Có đủ bộ nhớ GPU để hiển thị màn hình, nhưng không nhiều. Sử dụng điều này khi bạn cần tăng thêm hiệu năng GUI.


Tôi đã cập nhật câu trả lời cho các Mô hình 512MB mới.
Jivings

Phụ đề dường như làm tăng nhu cầu bộ nhớ ; đối với video 1080p có phụ đề, 64 MB là không đủ.
Raphael

51

RAM rất quan trọng đối với hiệu năng của Linux vì một vài lý do:

  • Bộ nhớ cache. Linux chạy mà không có bộ nhớ miễn phí trong hầu hết thời gian. Nếu một số bộ nhớ không được sử dụng bởi các ứng dụng, nó được sử dụng cho bộ nhớ cache giúp tăng tốc mọi thứ. Vì vậy, không có bộ nhớ là lãng phí. Nếu các ứng dụng cần nhiều bộ nhớ hơn, bộ nhớ cache sẽ được giải phóng, vì vậy bộ nhớ cache sẽ không bao giờ ngăn các ứng dụng cần thêm RAM để chạy. Nhưng tất nhiên càng nhiều bộ nhớ cache của bạn càng tốt.

  • Nhiều ứng dụng (đặc biệt là máy tính để bàn) cần rất nhiều bộ nhớ để chạy hiện nay. Điều này không có gì đáng ngạc nhiên - hầu hết các hệ thống máy tính để bàn (hoặc thậm chí điện thoại thông minh) ngày nay có bộ nhớ nhiều hơn Rapsberry Pi. Ví dụ, các trình duyệt web thậm chí rất nhẹ) sẽ sử dụng hàng chục MB bộ nhớ ngay khi bạn mở một số trang web lớn hơn.

  • Mỗi và mọi ứng dụng đều cần một lượng bộ nhớ. Vì vậy, càng chạy nhiều ứng dụng, chúng càng sử dụng nhiều bộ nhớ.

Vì vậy, bạn luôn muốn có càng nhiều bộ nhớ ARM càng tốt. Nhưng GPU có nhu cầu riêng tùy thuộc vào tính năng bạn muốn từ nó.

Phiên bản 256 MB

Đối với RaspberryPi cũ hơn, với 256 MB RAM, có sẵn 4 phần chia:

  • 240/16 - ARM có kích thước RAM lớn nhất có thể nhận được (240MB) với bộ nhớ GPU bắt chước. Đó là cách tốt nhất cho điện toán chung khi bạn không cần tăng tốc video đồ họa hoặc phần cứng. Nó có đủ bộ nhớ để xử lý độ phân giải bộ đệm khung 1920x1200x16bpp. Mặc dù 32bpp cũng đang hoạt động, nhưng điều đó không được khuyến khích vì nó để lại một lượng bộ nhớ trống rất nhỏ cho GPU.

  • 224/32 - Cái này không được dùng để chia 240/16. Nó có tích hợp giải mã video 3D và phần cứng nhưng vì không có đủ bộ nhớ để thực sự sử dụng nó, nên có rất ít điểm trong việc sử dụng nó. Trừ khi bạn có một số vấn đề với phân tách 240/16 hoặc muốn sử dụng bộ đệm khung 32bpp ở độ phân giải cao nhất. Có thể nó sẽ bị xóa trong tương lai.

  • 192/64 - Bạn cần ít nhất 64 MB phân tách GPU để sử dụng tăng tốc video phần cứng hoặc đồ họa 3D. Nó có thể không đủ bộ nhớ GPU để phát lại video được tăng tốc phần cứng ở độ phân giải cao nhất hoặc nếu bạn cần nhiều bộ nhớ GPU cho những thứ như kết cấu.

  • 128/128 - GPU RAM nhiều nhất có thể nhận được. Sử dụng nó khi bạn cần nhiều bộ nhớ cho card đồ họa 3D và phát lại video tăng tốc phần cứng ở độ phân giải cao. Sự phân chia này là cần thiết để RaspBMC hoạt động chính xác hoặc để phát nội dung video fullHD với omxplayer mà không gặp vấn đề gì.

Phiên bản 512MB

Các phiên bản mới của RaspberryPi có 512 MB RAM. Bạn có 4 phần chia bổ sung được thiết kế cho phiên bản này:

  • 496/16448/64 - thích 240/16192/64chia cho 256 MB tương ứng nhưng có thêm 256 MB RAM cho ARM. Vì GPU chỉ có 16 MB / 64MB hoặc RAM, nên tất cả các giới hạn từ 240/16/ 192/64vẫn được áp dụng.
  • 384/128 - Tương tự như chia 128/128 cho 256 MB - bạn sẽ nhận được tất cả các tính năng chip đồ họa nhưng với dung lượng bộ nhớ ARM hợp lý. Đây có lẽ sẽ là sự phân chia phổ quát nhất ngay bây giờ.
  • 256/256 - Một số bộ nhớ card đồ họa thưởng nếu bạn thực sự cần nó, như cho kết cấu lớn và những thứ tương tự. Mặc dù 256 MB bộ nhớ ARM lớn hơn mức bạn có thể có trong RaspberryPis cũ, tôi không nghĩ rằng bộ nhớ này sẽ được sử dụng nhiều lần.

Chia tách động

Các phiên bản mới của gói phần mềm loại bỏ hầu hết các start_*.elftệp, chỉ để lại start.elfstart_cd.elf(cũng là fixup*.elfcác tệp được thêm vào). Từ giờ trở đi, bạn không cần phải chọn thủ công start_*.file. Thay vào đó, bạn nên sử dụng gpu_mem*các tùy chọn trong config.txttệp để chọn dung lượng bộ nhớ cho GPU. Bộ nhớ còn lại sẽ được phân bổ cho ARM. Có thể sử dụng số tùy ý trong phạm vi sau cho các tùy chọn này:

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

Mặc dù hiện tại không có giá trị phân tách được mã hóa cứng, hầu hết các thông tin cho phần còn lại của câu trả lời này vẫn có hiệu lực khi bạn cố gắng xác định dung lượng bộ nhớ sẽ được phân bổ cho GPU.

start_cd.elffixup_cd.elfcác tệp là phiên bản cắt giảm của các tệp tương ứng, chỉ được sử dụng khi gpu_mem=16.

Sử dụng một thẻ SD trên cả hai phiên bản 256 và 512 MB

Nếu bạn đang sử dụng một hình ảnh thẻ SD cho các phiên bản RaspberryPi khác nhau, bạn có thể sử dụng gpu_mem_256gpu_mem_512tùy chọn. Cái đầu tiên sẽ chỉ được sử dụng trên phiên bản 256 MB trong khi cái thứ hai chỉ trên phiên bản 512MB của bo mạch.


Có, nâng cấp có giá trị nếu bạn muốn sử dụng cả XBMC và LXDE mà không cần thay đổi tệp cấu hình thủ công nhàm chán trước khi chuyển đổi eatch hoặc nếu Pi là máy tính chính của bạn mà bạn muốn sử dụng hàng ngày.
avra

6
Hướng dẫn hữu ích. Để làm rõ - điều gì sẽ là sự phân chia tối ưu cho việc chạy không đầu? Chẳng hạn, mô-đun máy ảnh rpi có yêu cầu GPU không?
geotheory

Hiện tại đã có một chiếc gpu_mem_1024, không có gì đáng ngạc nhiên là 1024 MB RPis - hiện tại là RPi 2 B (và tôi đoán A nếu nó xuất hiện?)
SlySven

Theo elinux.org/RPiconfig#Camera , mô-đun máy ảnh yêu cầu các dòng sau trong /boot/config.txt: start_x=1gpu_mem=128hơn thế nữa. Ngoài ra, /usr/bin/raspi-configcó một tùy chọn cho phép máy ảnh.
mpb
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.