Каково оптимальное разделение основной и графической памяти?

73

Я читал, что можно выделить 128 МБ, 64 МБ или 32 МБ для видеопамяти Raspberry Pi.

Учитывая, что мой основной пример использования этой машины - учебный: я буду запускать облегченные скрипты на Python и просматривать веб-страницы. Скорее всего, понесет потери при переключении памяти только на 32 МБ?

Я не ожидаю, что захочу использовать 3D или воспроизвести любое видео.

Салим Фадли
источник
2
Удостоверьтесь, что вы отрегулировали свою замену : D
earthmeLon
1
Подождите, это имеет 42 голоса. Это не вопрос, это ответ!
Парень со шляпой
Я полагаю, что диапазон значений теперь шире, и, согласно ответу @Krysztof Adamski, можно указать конкретное разбиение в файле config.txt для разных общих размеров памяти, чтобы одна и та же карта могла производить соответствующие разбиения при помещении в разные RPis - что полезно при подготовке дистрибутивов, я думаю ...
SlySven

Ответы:

58

Я ожидаю, что вы не почувствуете заметной разницы, если не будете выполнять сложные графические задачи, такие как воспроизведение видео.

Однако определить оптимальные параметры сложно, поскольку пределы производительности будут зависеть от того, какие приложения выполняются, и от ожиданий пользователя.

Лучшее, что вы можете сделать, это поэкспериментировать.

Если вы хотите изменить разделение, то есть два разных метода, в зависимости от вашей прошивки. Если возможно, убедитесь, что у вас установлена ​​последняя версия прошивки . Если по какой-либо причине вы не можете выполнить обновление, я включил оба варианта ниже:

Новая прошивка (после октября 2012 года)

  • Отредактируйте /boot/config.txtи добавьте или отредактируйте следующую строку:

    gpu_mem=16
    
  • Значение может быть 16, 64, 128или 256и представляет собой объем оперативной памяти , доступный для GPU.

Старая прошивка (до октября 2012 года)

Для того, чтобы изменить видеопамять необходимо заменить start.elfфайл на /boot/разделе изображения. Возможные .elfфайлы должны быть в /boot/каталоге на вашем Pi. Вы делаете переключение, заменяя start.elfфайл одним из других.

Существует три модели памяти, и вот рекомендации, взятые с доски обсуждений Raspberry Pi :

  1. 224 МБ ОЗУ и 32 МБ видеопамяти для настольного дистрибутива Linux или тяжелых (без графического интерфейса) приложений, которым не нужно ни воспроизводить видео, ни воспроизводить 3D.  
  2. 192 МБ ОЗУ и 64 МБ VRAM (по умолчанию) для настольных дистрибутивов, которые хотят воспроизводить видео или иметь 3D-эффекты.  
  3. 128 МБ ОЗУ и 128 МБ видеопамяти для приложений и игр, которые выполняют обширную мультимедиа или играют в 3D-рендеринг игры.  

 И еще один:

240 МБ RAM и 16 VRAM для практически нулевой графической мощности. Достаточно памяти GPU для отображения экрана, но не более того. Используйте это, когда вам нужно дальнейшее повышение производительности без графического интерфейса.

Jivings
источник
Я обновил ответ для новых моделей 512 МБ.
Jivings
Субтитры, кажется, увеличивают потребности в памяти ; для видео 1080p с субтитрами 64 МБ было строго недостаточно.
Рафаэль
51

Оперативная память очень важна для производительности Linux по нескольким причинам:

  • Кэша. В большинстве случаев Linux работает без свободной памяти. Если некоторая память не используется приложениями, она используется для кэширования, что ускоряет процесс. Так что память никогда не теряется. Если приложениям требуется больше памяти, кэши освобождаются, поэтому они никогда не будут препятствовать запуску приложений, требующих больше оперативной памяти. Но, конечно, чем больше вы можете кэшировать, тем лучше.

  • Многие приложения (особенно настольные) требуют много памяти для запуска в настоящее время. Это неудивительно - большинство настольных систем (или даже смартфонов) в наши дни имеют гораздо больше памяти, чем Rapsberry Pi. Например, веб-браузеры (даже легковесные) будут использовать десятки МБ памяти, как только вы откроете более крупный веб-сайт.

  • Каждому приложению требуется некоторое количество памяти. Таким образом, чем больше приложений вы запускаете, тем больше памяти они используют.

Таким образом, вы всегда хотите иметь как можно больше памяти ARM. Но у GPU есть свои потребности в зависимости от того, какие функции вы хотите от него.

Версия 256MB

Для более старых RaspberryPi с 256 МБ ОЗУ доступно 4 разделения:

  • 240/16 - Максимальный размер ОЗУ, который может получить ARM (240 МБ), с использованием памяти GPU. Это лучше всего подходит для обычных вычислений, когда вам не нужна трехмерная графика или аппаратное ускорение видео. Он имеет достаточно памяти для разрешения кадрового буфера 1920x1200x16bpp. Хотя 32bpp также работает, это не рекомендуется, так как оставляет очень мало свободного места для GPU.

  • 224/32 - Это устарело в пользу разделения 240/16. Он имеет встроенное 3D и аппаратное декодирование видео, но так как памяти недостаточно для его фактического использования, нет смысла его использовать. Если у вас нет проблем с разделением 240/16 или вы не хотите использовать 32-битный кадровый буфер с самым высоким разрешением. Возможно, он будет удален в будущем.

  • 192/64 - для использования аппаратного ускорения видео или 3D-графики требуется как минимум 64 МБ разделенного графического процессора. Возможно, вам не хватит памяти графического процессора для аппаратного ускорения воспроизведения видео с самым высоким разрешением или если вам нужно много памяти графического процессора для таких вещей, как текстуры.

  • 128/128 - Максимальный объем ОЗУ ОЗУ. Используйте его, когда вам нужно много памяти для 3D-видеокарты и аппаратного ускорения воспроизведения видео в высоком разрешении. Это разделение необходимо для правильной работы RaspBMC или для воспроизведения полноформатного видеоконтента с помощью omxplayer без проблем.

512MB версия

Новые версии RaspberryPi имеют 512 МБ оперативной памяти. У вас есть 4 дополнительных сплита, разработанных для этой версии:

  • 496/16 и 448/64 - как 240/16и 192/64разделенные для 256 МБ соответственно, но с 256 МБ больше оперативной памяти, доступной для ARM. Поскольку GPU имеет только 16 МБ / 64 МБ или ОЗУ, все ограничения из 240/16/ 192/64все еще применяются.
  • 384/128 - аналогично разделению 128/128 для 256 МБ - вы должны получить все функции графического чипа, но с разумным объемом памяти ARM. Вероятно, это будет самый универсальный сплит прямо сейчас.
  • 256/256 - Некоторая бонусная память графической карты, если она вам действительно нужна, например, для больших текстур и подобных вещей. Хотя 256 МБ памяти ARM больше, чем вы могли бы иметь в более старом RaspberryPis, я не думаю, что этот будет использоваться во многих случаях.

Динамические расколы

Новые версии пакета прошивки удаляет большинство start_*.elfфайлов, оставляя только start.elfи start_cd.elffixup*.elfфайлы, которые добавлены). Отныне вам не нужно вручную выбирать правильный start_*.file. Вместо этого вы должны использовать gpu_mem*опции в config.txtфайле, чтобы выбрать, сколько памяти уходит на GPU. Оставшаяся память будет выделена для ARM. Для этих опций должна быть возможность использовать произвольное число в следующем диапазоне:

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

Хотя в настоящее время нет жестко закодированных значений разделения, большая часть информации для остальной части этого ответа должна быть действительной, когда вы пытаетесь определить, какой объем памяти должен быть выделен для графического процессора.

start_cd.elfи fixup_cd.elfфайлы являются урезанными версиями соответствующих файлов, используются только тогда, когда gpu_mem=16.

Использование одной SD-карты на 256 и 512 МБ версии

Если вы используете один образ SD-карты для разных версий RaspberryPi, вы можете использовать gpu_mem_256и gpu_mem_512параметры. Первый будет использоваться только на версии 256 МБ, а второй - только на 512 МБ версии платы.

Кшиштоф Адамски
источник
Да, обновление стоит, если вы хотите использовать XBMC и LXDE без скучного изменения файла конфигурации вручную перед переключением eatch, или если Pi - ваш главный компьютер, который вы хотите использовать ежедневно.
Авра
6
Полезное руководство. Чтобы уточнить - какой будет оптимальный сплит для бега без головы? Например, к модулю камеры rpi предъявляются требования к графическому процессору?
геоэтерия
Теперь есть gpu_mem_1024, что неудивительно, 1024 МБ RPis - который в настоящее время является RPi 2 B (и я предполагаю A, если кто-нибудь выйдет?)
SlySven
Согласно elinux.org/RPiconfig#Camera , для модуля камеры требуются следующие строки /boot/config.txt: start_x=1и gpu_mem=128более. Также /usr/bin/raspi-configесть опция, которая включает камеру.
mpb