Rage транскод gpu что это

FAQ по техническим проблемам [ЧИТАТЬ ОБЯЗАТЕЛЬНО!]

Rage транскод gpu что это. 6GVcY XY8ySL5wDmPdMVCA. Rage транскод gpu что это фото. Rage транскод gpu что это-6GVcY XY8ySL5wDmPdMVCA. картинка Rage транскод gpu что это. картинка 6GVcY XY8ySL5wDmPdMVCA

После следующего запуска игры там будут автоматически созданы файлы с кэшем текстур.

Q: Как отключить ускорение мыши в Rage
A: Если у вас возникла проблема с тем, что в Rgae мышка реагирует не так как вы привыкли, то необходимо отключить ускорение.
Идем в настройки мыши и ищем поле «Improved Pointer Precision» – отключаем.
Если не помогает, то открываем config-файл Rage и меняем значение с 1 на 0.
Еще опция: m_smooth – команда которую можно найти в консоли. Устанавливаем значение на 0 – это отключит акселерацию в игре.

Q: Что такое GPU Transcode в настройках графики?
A: GPU Transcode используется с OpenGL 4.2. Поддерживаются только 400 и 500 серий карт NVIDIA с новыми бета-драйверами. Это позволяет GPU обрабатывать текстуры потока данных с помощью технологии NVIDIA CUDA, резко уменьшая подзагрузку текстур.

Q: Как открыть консоль в Rage
A: Консоль разработчиков Rage или просто консоль очень полезна для различных фиксов и редактирования, так что лучше научится обращению с ней уже в самом начале. Чтобы активировать консоль, необходимо добавить: +set com_allowconsole 1 к вашим Опциям Steam (Steam Launch Options).
Теперь заходим в игру и нажимем тильду (

Q: Решение проблем с графикой ATI/AMD в Rage
A: Если играете в Rage на видео-карте от AMD, то вот несколько советов:
Запустите игру в «подходящем качестве», отключите 3D. Отключите Catalyst AI. Откатите драйвер на одну/две версии.
Так же можно поставить хот-фикс с официального сайта ATI/AMD. Если они решат проблему, то наслаждайтесь игрой.

Q: Не могу запустить Rage
A: Только если не можете запустить игру в Steam. Выйдите из Steam, снова залогиньтесь, проверьте игровой кэш и запустите Rage. Если все еще не работает, запустите Steam от администратора и попробуйте вновь. Возможно проблема кроется в кастомных настройках графики, так что сбросьте на дефолт.

Q: Rage лагает
A: Отключите внутриигровое коммьюнити Steam. Правой кнопкой мыши на Rage в Steam –> настройки –> отключите «внутриигровое коммьюнити Steam (steam community in game)»

Q: Rage вылетает на графике ATI
A: Рандомные крэши иногда можно решить отключив тройной буфер (tripple buffering) в ATI Control Panel, а так же ставим официальный хотфикс.

Q: Rage вылетает на рабочий стол. Rage замирает
A: Если не можете стартовать игру или Rage вылетает до старта, то если вы видите черный экран, то жмем Ctrl+Alt+Del и отключите окно рапорта. Далее пробуем удалить папку Video ((rage->base->video). Убедитесь что сделали копию на всякий случай!

Q: Rage на SLI или Crossfire
A: Rage не поддерживает эту функцию. Если попробуете, только хуже сделаете. Позор, id!

Q: Проблемы с текстурами в Rage на графике Nvidia
A: Ставим последние бета-драйвера 285.38.

Q: Rage тормозит и дергается на графике Nvidia
A: Активируйте Vsync в контрольной панели Nvidia. Активируйте в игре GPU-transcode если у вас топовая видеокарта.

*Очень советую попробывать такой способ:
Добавляем в ярлык запуска игры
+cvaradd g_fov 12 +com_skipIntroVideo 1 +image_anisotropy 16 +image_usecompression 0 +g_showplayershadow 1 +m_smooth 0 +vt_maxPPF 16

rageconfig:
Скрытый текст:
seta com_videoRam «1024»
seta com_maxfps «60»
seta image_anisotropy «16»
seta image_usecompression «0»
seta image_filter «GL_LINEAR_MIPMAP_LINEAR»
seta image_preload «1»
seta image_lodbias «-1»
seta image_ignoreHighQuality «0»
seta image_ignoreLowQuality «1»
seta image_useCache «1»
seta image_cacheMegs «125»
seta image_cacheMinK «50»
seta r_swapInterval «1»
seta r_useHighQualityPostProcess «1»
seta r_shadowsHighQuality «1»
seta r_displayRefresh «0»
seta r_renderer «best»
seta r_multiSamples «8»
seta r_useHBAO «1»
seta r_useRenderThread «0»
seta r_visDistMult «1»
seta r_useMotionBlur «1»
seta r_skipBump «0»
seta r_skipSpecular «0»
seta r_skipNewAmbient «0»
seta r_shadows «1»
seta r_cgFragmentProfile «best»
seta r_cgVertexProfile «best»
seta vt_lodBias «-1»
seta vt_pageimagesizeuniquediffuseonly2 «8192»
seta vt_pageimagesizeuniquediffuseonly «8192»
seta vt_pageimagesizeunique «8192»
seta vt_pageimagesizevmtr «8192»

Источник

Rage транскод gpu что это

Rage транскод gpu что это. bgrdragepreorder. Rage транскод gpu что это фото. Rage транскод gpu что это-bgrdragepreorder. картинка Rage транскод gpu что это. картинка bgrdragepreorder

Жанр: FPS
Платформа: PC, Xbox 360, PS3
Дата выхода: 4 октрябя 2011 года (США)/7 октября (Европа)
Разработчик: id Software
Издатель: Bethesda Softworks
Издатель в России: 1C-Softclub
Официальный сайт: http://www.rage.com

Минимальные системные требования:

ОС: Win XP SP3, Vista, Win 7
Процессор: Intel Core 2 Duo или равноценный AMD
Память: 2GB
Свободное место на диске: 25GB
Видеокарта: GeForce 8800, Radeon HD 4200

Рекомендованные требования к системе:

ОС: Win XP SP3, Vista, Win 7
Процессор: Intel Core 2 Quad или равноценный AMD
Память: 4GB
Свободное место на диске: 25GB
Видеокарта: GeForce 9800 GTX, ATI Radeon HD 5550

Q: При запуске появляется консоль с синим экраном.
А: Проблемы OpenGL: Игра крашится в консоли с этими ошибками: GL_ARB_draw_elements_base_vertex not available или wglCreateContextAttribsARB failed or «Couldn’t get glConfig Strings» Run вводим regedit. Нажимаем клавишу Enter. Далее в реестре идём по пути «HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contr ol\Class\<4D36E968-E325-11CE-BFC1-08002BE10318>\0000\UMD\» и меняем значение ключа CatalystAI с 31 на 30.

Q: Нестабильная работа игра на двухядерных процессорах.
A: Добавьте +jobs_numThreads 0 в параметрах запуска игры в стиме или в ярлыке к игре.

Q: Не могу запустить Rage
A: Только если не можете запустить игру в Steam. Выйдите из Steam, снова залогиньтесь, проверьте игровой кэш и запустите Rage. Если все еще не работает, запустите Steam от администратора и попробуйте вновь. Возможно проблема кроется в кастомных настройках графики, так что сбросьте на дефолт.

Q: Rage на SLI или Crossfire
A: Производительность SLI систем улучшена после первого патча. По поводу Crossfire, к сожалению, не знаю.

seta com_videoRam «512»
seta image_anisotropy «4»
seta image_usecompression «0»
seta image_lodbias «-1»
seta image_useCache «1»
seta image_cacheMegs «200»
seta image_cacheMinK «50»
seta m_smooth «0»
seta vt_pageimagesizeuniquediffuseonly2 «4096»
seta vt_pageimagesizeuniquediffuseonly «4096»
seta vt_pageimagesizeunique «4096»
seta vt_maxPPF «8»
seta vt_lodBias «-1»
seta vt_minlod «-1»
seta vt_maxaniso «2»

*Появился сайт, через который можно подробно создать свой собственный конфиг файл. После создания скопировать содержимое в rageconfig.cfg

*Советую попробывать такой способ (неактуально для обладателей патча):
Добавляем в ярлык запуска игры
+cvaradd g_fov 12 +image_anisotropy 16 +image_usecompression 0 +g_showplayershadow 1 +m_smooth 0 +vt_maxPPF 16 (‘+vt_maxPPF 8’ для двухядерных процессоров)

Источник

Rage транскод gpu что это

Прежде чем постить в данной теме рекомендуется почитать правила раздела «GAMEZ BAZAR» (http://forum.igromania.ru/announcement.php?f=61&a=182) и Правила форума. (http://forum.igromania.ru/faq.php?faq=vb_faq#faq_board_rules)

Обсуждение игры здесь. (http://forum.igromania.ru/showthread.php?t=44535)

Системные требования:
Минимальные системные требования:

ОС: Win XP SP3, Vista, Win 7
Процессор: Intel Core 2 Duo или равноценный AMD
Память: 2GB
Свободное место на диске: 25GB
Видеокарта: GeForce 8800, Radeon HD 4200

Рекомендованные требования к системе:

ОС: Win XP SP3, Vista, Win 7
Процессор: Intel Core 2 Quad или равноценный AMD
Память: 4GB
Свободное место на диске: 25GB
Видеокарта: GeForce 9800 GTX, ATI Radeon HD 5550

Q: При запуске появляется консоль с синим экраном.
А: Проблемы OpenGL: Игра крашится в консоли с этими ошибками: GL_ARB_draw_elements_base_vertex not available или wglCreateContextAttribsARB failed or «Couldn’t get glConfig Strings» Run вводим regedit. Нажимаем клавишу Enter. Далее в реестре идём по пути «HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l\Class\<4D36E968-E325-11CE-BFC1-08002BE10318>\0000\UMD\» и меняем значение ключа CatalystAI с 31 на 30.

Q: Нестабильная работа игра на двухядерных процессорах.
A: Добавьте +jobs_numThreads 0 в параметрах запуска игры в стиме или в ярлыке к игре.

Q: Не могу запустить Rage
A: Только если не можете запустить игру в Steam. Выйдите из Steam, снова залогиньтесь, проверьте игровой кэш и запустите Rage. Если все еще не работает, запустите Steam от администратора и попробуйте вновь. Возможно проблема кроется в кастомных настройках графики, так что сбросьте на дефолт.

Q: Rage на SLI или Crossfire
A: Производительность SLI систем улучшена после первого патча. По поводу Crossfire, к сожалению, не знаю.

*Появился сайт (http://donotargue.com/cfg-makers/rage/rage-output), через который можно подробно создать свой собственный конфиг файл. После создания скопировать содержимое в rageconfig.cfg

*Советую попробывать такой способ (неактуально для обладателей патча):
Добавляем в ярлык запуска игры
+cvaradd g_fov 12 +image_anisotropy 16 +image_usecompression 0 +g_showplayershadow 1 +m_smooth 0 +vt_maxPPF 16 (‘+vt_maxPPF 8’ для двухядерных процессоров)

rageconfig:
seta com_videoRam «1024»
seta com_maxfps «60»
seta image_anisotropy «16»
seta image_usecompression «0»
seta image_filter «GL_LINEAR_MIPMAP_LINEAR»
seta image_preload «1»
seta image_lodbias «-1»
seta image_ignoreHighQuality «0»
seta image_ignoreLowQuality «1»
seta image_useCache «1»
seta image_cacheMegs «125»
seta image_cacheMinK «50»
seta r_swapInterval «1»
seta r_useHighQualityPostProcess «1»
seta r_shadowsHighQuality «1»
seta r_displayRefresh «0»
seta r_renderer «best»
seta r_multiSamples «8»
seta r_useHBAO «1»
seta r_useRenderThread «0»
seta r_visDistMult «1»
seta r_useMotionBlur «1»
seta r_skipBump «0»
seta r_skipSpecular «0»
seta r_skipNewAmbient «0»
seta r_shadows «1»
seta r_cgFragmentProfile «best»
seta r_cgVertexProfile «best»
seta vt_lodBias «-1»
seta fs_cachepath «C:\Users\AlenK\AppData\Local\id software\rage» // здесь указываете путь к вашей папке с кэшем игры.
seta vt_pageimagesizeuniquediffuseonly2 «8192»
seta vt_pageimagesizeuniquediffuseonly «8192»
seta vt_pageimagesizeunique «8192»
seta vt_pageimagesizevmtr «8192»

Источник

Rage транскод gpu что это

Rage транскод gpu что это. t reply. Rage транскод gpu что это фото. Rage транскод gpu что это-t reply. картинка Rage транскод gpu что это. картинка t reply Rage транскод gpu что это. t new. Rage транскод gpu что это фото. Rage транскод gpu что это-t new. картинка Rage транскод gpu что это. картинка t new Rage транскод gpu что это. t poll. Rage транскод gpu что это фото. Rage транскод gpu что это-t poll. картинка Rage транскод gpu что это. картинка t poll

Борьба с лагами Rage

Hells1ng Rage транскод gpu что это. 173. Rage транскод gpu что это фото. Rage транскод gpu что это-173. картинка Rage транскод gpu что это. картинка 173Дата: Пятница, 07.10.2011, 18:35 | Сообщение # 1

Rage транскод gpu что это. 839795. Rage транскод gpu что это фото. Rage транскод gpu что это-839795. картинка Rage транскод gpu что это. картинка 839795

Rage транскод gpu что это. offlaine. Rage транскод gpu что это фото. Rage транскод gpu что это-offlaine. картинка Rage транскод gpu что это. картинка offlaine

Rage транскод gpu что это. bgrdragepreorder. Rage транскод gpu что это фото. Rage транскод gpu что это-bgrdragepreorder. картинка Rage транскод gpu что это. картинка bgrdragepreorder

Жанр: FPS
Платформа: PC, Xbox 360, PS3
Дата выхода: 4 октрябя 2011 года (США)/7 октября (Европа)
Разработчик: id Software
Издатель: Bethesda Softworks
Издатель в России: 1C-Softclub
Официальный сайт: http://www.rage.com

Q: Как отключить ускорение мыши в Rage
A: Если у вас возникла проблема с тем, что в Rgae мышка реагирует не так как вы привыкли, то необходимо отключить ускорение.
Идем в настройки мыши и ищем поле «Improved Pointer Precision» – отключаем.
Если не помогает, то открываем config-файл Rage и меняем значение с 1 на 0.
Еще опция: m_smooth – команда которую можно найти в консоли. Устанавливаем значение на 0 – это отключит акселерацию в игре.

Q: Что такое GPU Transcode в настройках графики?
A: GPU Transcode используется с OpenGL 4.2. Поддерживаются только 400 и 500 серий карт NVIDIA с новыми бета-драйверами. Это позволяет GPU обрабатывать текстуры потока данных с помощью технологии NVIDIA CUDA, резко уменьшая подзагрузку текстур.

Q: Как открыть консоль в Rage
A: Консоль разработчиков Rage или просто консоль очень полезна для различных фиксов и редактирования, так что лучше научится обращению с ней уже в самом начале. Чтобы активировать консоль, необходимо добавить: +set com_allowconsole 1 к вашим Опциям Steam (Steam Launch Options).
Теперь заходим в игру и нажимем тильду (

Q: Решение проблем с графикой ATI/AMD в Rage
A: Если играете в Rage на видео-карте от AMD, то вот несколько советов:
Запустите игру в «подходящем качестве», отключите 3D. Отключите Catalyst AI. Откатите драйвер на одну/две версии.
Так же можно поставить хот-фикс с официального сайта ATI/AMD. Если они решат проблему, то наслаждайтесь игрой.

Q: Не могу запустить Rage
A: Только если не можете запустить игру в Steam. Выйдите из Steam, снова залогиньтесь, проверьте игровой кэш и запустите Rage. Если все еще не работает, запустите Steam от администратора и попробуйте вновь. Возможно проблема кроется в кастомных настройках графики, так что сбросьте на дефолт.

Q: Rage лагает
A: Отключите внутриигровое коммьюнити Steam. Правой кнопкой мыши на Rage в Steam –> настройки –> отключите «внутриигровое коммьюнити Steam (steam community in game)»

Q: Rage вылетает на графике ATI
A: Рандомные крэши иногда можно решить отключив тройной буфер (tripple buffering) в ATI Control Panel, а так же ставим официальный хотфикс.

Q: Rage вылетает на рабочий стол. Rage замирает
A: Если не можете стартовать игру или Rage вылетает до старта, то если вы видите черный экран, то жмем Ctrl+Alt+Del и отключите окно рапорта. Далее пробуем удалить папку Video ((rage->base->video). Убедитесь что сделали копию на всякий случай!

Q: Rage на SLI или Crossfire
A: Rage не поддерживает эту функцию. Если попробуете, только хуже сделаете. Позор, id!

Q: Проблемы с текстурами в Rage на графике Nvidia
A: Ставим последние бета-драйвера 285.38.

Q: Rage тормозит и дергается на графике Nvidia
A: Активируйте Vsync в контрольной панели Nvidia. Активируйте в игре GPU-transcode если у вас топовая видеокарта.

*Очень советую попробывать такой способ:
Добавляем в ярлык запуска игры
+cvaradd g_fov 12 +com_skipIntroVideo 1 +image_anisotropy 16 +image_usecompression 0 +g_showplayershadow 1 +m_smooth 0 +vt_maxPPF 16

Источник

Стресс-тест GPU NVidia на транскодинге живых потоков

Rage транскод gpu что это. image loader. Rage транскод gpu что это фото. Rage транскод gpu что это-image loader. картинка Rage транскод gpu что это. картинка image loader

На протяжении нескольких лет наша команда разрабатывает продукты для обработки и раздачи медиа-контента в онлайне. В этой статье не так давно было расписано, зачем владельцам контента подобные решения могут быть нужны в наш век YouTube.

Одним из наших продуктов является медиа-сервер Nimble Streamer — это серверное ПО, которое берёт на вход живые потоки и файлы и делает их доступными большому числу зрителей, попутно позволяя монетизировать контент. Это нативное приложение, написанное на С++ и портированное на все популярные ОС (Linux, Windows, MacOS) и платформы (x64, ARM). С самого начала низкая ресурсоёмкость и большая производительность были главными требованиями, и нам удаётся достигать в этом хороших показателей.

В прошлом году мы выпустили дополнение в Нимбл Стримеру — транскодер живых потоков. Это приложение позволяет брать на вход поток видео и/или аудио в разных форматах и делать с ними различные преобразования в реальном времени. Функциональность включает в себя декодирование (как программное, так и аппаратное), преобразование видео и аудио с помощью фильтров (изменение размера, наложение и т.п.) и кодирование (энкодинг) — как программное, так и аппаратное.

Управляется транскодер через веб-сервис WMSPanel, сценарии транскодирования создаются через drag-n-drop интерфейс, что позволяет наглядно видеть процесс. Различные сценарии можно запускать вместе — при таком подходе удобно запускать комбинации тестов, нагружая сервер в любых вариациях.
В этих видео можно посмотреть примеры работы интерфейса.

Декодирование каждого потока делается только один раз перед всеми дальнейшими преобразованиями… Это позволяет сэкономить ресурсы на дорогостоящей операции декодинга, это будет хорошо видно дальше по ходу тестов.

Одним из механизмов преобразования, который можно использовать в нашем транскодере, является аппаратное декодирование и кодирование видео с помощью GPU от NVidia. Графические карты последних поколений позволяют брать на себя часть типовых задач, что снимает нагрузку с CPU. Наш транскодер умеет работать с этим железом, чем активно пользуются наши клиенты.

Rage транскод gpu что это. image loader. Rage транскод gpu что это фото. Rage транскод gpu что это-image loader. картинка Rage транскод gpu что это. картинка image loader

По ходу общения с представителями российского офиса NVidia нам предложили попробовать устроить совместное стресс-тестирование нашего транскодера и NVidia GPU, чтобы понять, каков будет экономический эффект от подобного тандема по сравнению с исключительно программным транскодированием, без аппаратного ускорения. Кроме того, хотелось понять, как наиболее оптимально использовать GPU, и по возможности дать хорошие рецепты.

Нам требовалось оперативно получить соответствующее железо и доступ к нему, для цикла наших экспериментов. Мы планировали уложиться в пару недель. Осталось найти, где же взять оборудование. Оптимальным вариантом было бы найти их в облаке и получить удаленный доступ. Поискав варианты выяснилось, что в AWS пока нет VM с GPU поколения Maxwell, а в облаке Azure пока только планируется начать их предоставлять в скором времени.

1. Железо от NVidia в облаке Softlayer, настройка Nimble Streamer

При содействии NVidia, компания IBM предоставила нам доступ к своему облаку — IBM Bluemix Cloud Platform (в прошлом Softlayer). Это большая сеть современных ЦОД-ов (около 50 на момент публикации) по всему миру, связанных общей частной сетью и предоставляющих большой выбор облачных инфраструктурных сервисов. Все ЦОД-ы унифицированы и позволяют арендовать от одного до сотен виртуальных или физических серверов требуемых конфигураций в течении нескольких часов, а также балансировщики, системы хранения, файрволы — в общем всё, что требуется чтобы построить надежную ИТ-инфраструктуру под развертываемый ИТ-сервис.

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

Железо

Сначала нам предоставили физический сервер (bare-metal) с 128 ГБ RAM и 2xGPU NVidia Tesla M60 и предустановленной ОС Ubuntu 14.04. Все параметры сервера, пароли, версии прошивок, его коммутация, выделенные IP, состояние аппаратных компонент, были видны прямо в личном кабинете, позволяющем сделать с арендованным железом требуемые манипуляции, что минимизировало необходимость взаимодействия со службой поддержки IBM. В ходе прогона тестов, выяснилось, что нам не удается оптимально нагрузить такую конфигурацию, из-за ряда ограничений при генерации контекстов.

Нам захотелось уменьшить конфигурацию. Поскольку мы использовали облачную платформу, то потребовалось через портал самообслуживания запросить изменения в конфигурации. После согласования, данная операция заняла около 2 часов, в утвержденное окно обслуживания. В течении этого времени, технический персонал в ЦОД-е Амстердама, извлек лишние компоненты (планки RAM и 1xGPU) из предоставленного нам ранее сервера и вернул его в строй. Надо отметить, что для разработчиков такой вариант очень удобен, поскольку нет необходимости ни самим разбираться с настройками железа, ни чинить его, ни даже тратить время на установку ОС. Напомню, в данном случае не используется гипервизор поскольку нам надо выжать максимум из аппаратных ресурсов.

По итогам наших изысканий мы остановились на следующей конфигурации сервера:

Dual Intel Xeon E5-2690 v3 (2.60GHz)
24 Cores
64GB RAM
1TB SATA

Имеем 2 процессора по 12 ядер, а благодаря Hyper threading получаем вдвое больше, т.е. виртуально 48 ядер.

В сценариях с графическим ускорителем использовалась карта на базе чипа GM204 — Tesla M60:

NVIDIA Tesla M60
1xGPU: 2 x Maxwell GM204
Memory: 16GB GDDR5
Clock Speed: 2.5 GHz
NVIDIA CUDA Cores: 2 x 2048
Memory Bandwidth: 2 x 160GB/sec

Обращаю внимание, что на приведённом железе не делалось никакого affinity, chip tuning-а, overclocking-а и прочей магии — только неразогнанные CPU и GPU, и для GPU использовался только официальный драйвер, взятый с сайта NVidia. Если у кого-то есть подобный опыт — поделитесь в комментариях.

Итак, мы получили доступ. Беглое ознакомление с веб-интерфейсом панели управления (там всё просто и понятно), далее доступ к серверу через SSH — и вот мы уже в привычной командной строке Ubuntu, ставим Nimble Streamer, регистрируем свежую лицензию транскодера и делаем небольшую настройку конфига.

Nimble Streamer Transcoder

Nimble Streamer был настроен на предварительное создание кеша контекстов GPU. Связано это с тем, что у GPU есть ограничение на максимальное число создаваемых контекстов декодинга и энкодинга, а кроме того, создание контекстов “на лету” может занимать слишком много времени.
Более подробно о проблеме создания контекстов — в соответствующем разделе ниже.

Настройки Нимбла на примере первой серии тестов:

nvenc_context_cache_enable = true
nvenc_context_create_lock = true
nvenc_context_cache_init = 0:30:15,1:30:15
nvenc_context_reuse_enable = true

Более подробно про эти настройки написано в нашей статье.

Перед запуском каждой серии тестов кеш настраивался отдельно, с учетом специфики каждой задачи.

Создание сценариев транскодинга

Далее работа шла в нашем сервисе WMSPanel, где и происходит настройка сценариев транскодера.

Как уже было сказано, работа идёт через веб-интерфейс, всё предельно понятно и удобно. Мы создали ряд сценариев, сочетающих разные варианты транскодинга (CPU/GPU), разные варианты разрешений и разные параметры энкодинга (CPU/GPU, профайл, битрейт и т.п.)

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

Вот так выглядит набор сценариев:

Rage транскод gpu что это. image loader. Rage транскод gpu что это фото. Rage транскод gpu что это-image loader. картинка Rage транскод gpu что это. картинка image loader

Вот пример одного из сценариев:

Rage транскод gpu что это. image loader. Rage транскод gpu что это фото. Rage транскод gpu что это-image loader. картинка Rage транскод gpu что это. картинка image loader

Декодер с GPU выглядит вот так:

Rage транскод gpu что это. image loader. Rage транскод gpu что это фото. Rage транскод gpu что это-image loader. картинка Rage транскод gpu что это. картинка image loader

Накладываем фильтр размера изображения:

Rage транскод gpu что это. image loader. Rage транскод gpu что это фото. Rage транскод gpu что это-image loader. картинка Rage транскод gpu что это. картинка image loader

А вот энкодер для варианта с GPU:

Rage транскод gpu что это. image loader. Rage транскод gpu что это фото. Rage транскод gpu что это-image loader. картинка Rage транскод gpu что это. картинка image loader

В целом работу интерфейса транскодера можно посмотреть на этих видео.

2. Транскодирование потоков FullHD 1080p

Для начала мы опробовали сценарий с самыми большими нагрузками, чтобы узнать пределы возможностей железа. На данный момент самым “тяжёлым” из используемых на практике разрешений является FullHD 1080p.

Для генерации исходных живых потоков был взят файл в FullHD (1920*1080) в high profile H.264. Сам контент- это видеоэкскурсия по городу, т.е. это видео со средней интенсивностью смены изображения. Нет статичных одноцветных кадров, которые могли бы облегчить работу транскодеру, но нет и слишком быстрой смены видов и цветов. Одним словом — довольно типовая нагрузка.

На вход в Nimble Streamer подавали 36 одинаковых потоков, которые затем использовались в транскодере в разных сценариях.

Сценарий транскодинга используется типовой — входящий поток 1080p high profile, из него делаются 720p, 480p, 360p main profile и далее потоки baseline profile: 240p, 160p. Итого, на входе 1 поток, на выходе 5. Обычно также делается pass-through (передача без изменений) исходного потока, чтобы зритель мог выбрать собственно 1080p при просмотре. Его мы не добавляли в сценарии, т.к. в нём не используется транскодинг — идёт прямая передача данных из входа на выход. Этот сценарий у нас в Нимбле оптимизирован и в реальных условиях это относительно немного увеличит потребление памяти.
Аудио в генерируемых потоках — нет. Добавление аудио в сценарии не даст значительных нагрузок на CPU, но для чистоты эксперимента звук мы исключили.

Тест на CPU, без GPU

Для начала мы запустили сценарии транскодинг без использования GPU, указав в сценариях программные декодер и энкодер.

В результате получилось обработать только 16 потоков на вход с выдачей 80 потоков всех разрешений на выход.

Нагрузка CPU — 4600%, т.е. было задействовано 46 ядер. Расход RAM — порядка 15Гб.

Тест на CPU + GPU

Кеш контекстов при запуске настроен как 0:30:15,1:30:15 — т.е. 30 контекстов на энкодинг, 15 на декодинг, у каждого GPU.

Напомню, что на GPU у нас два ядра, что позволяет распараллеливать задачи — это нам пригодится.

Максимальная нагрузка получилась при следующей конфигурации потоков.

На вход декодера GPU0 и GPU1 — по 15 потоков. Таким образом мы получаем 30 декодированных потоков, готовых к дальнейшему использованию. Каждый поток декодируется только один раз, независимо от того, в скольких сценариях он в дальнейшем используется.

На энкодеры GPU0 и GPU1 подавалось по 15 потоков для получения 720p, т.е. получилось 30 потоков 720p на выход.

Также на энкодеры GPU0 и GPU1 давалось по 15 потоков для 480p — и так же получилось 30 потоков 480p на выход.

Поскольку контексты энкодера были исчерпаны, энкодинг остальных разрешений был установлен на CPU. Получилось следующее:

Итого получили на вход 36 потоков, выдали на выход — 180 потоков. Финальная нагрузка зафиксирована следующая: 4400% CPU, 75% декодер карты, 32% энкодер карты, 30Гб RAM.

Немного деталей

Мы решили проверить вариант, при котором мы на GPU обрабатываем самые тяжёлые задачи — декодинг 1080 и энкодинг 720 и 480, а остальное пустить на обработку через CPU.

Сначала проверили предел работы декодера. При 22 потоках на декодинг — сказалась проблема с контекстами, они просто не могли создаться. Снизили до 21 — контексты создались, но нагрузка стала 100% и в потоке стали наблюдаться артефакты. Остановились на 20 потоках — делаем декодирование 20 потоков, энкодинг в 160p — всё работает нормально.

Кроме того, опытным путём получилось, что данная карта с 16Гб RAM на борту может уверенно работать с 47 контекстами — и нет разницы, это контексты энкодера или декодера. Повторюсь — речь именно о данном GPU Tesla M60, на других картах это число может быть другим. Полагаем, что если бы на карте было 24Гб RAM, число контекстов могло быть другим, но это нужно тестировать.

В итоге мы выбрали формулу создания кеша «15 контекстов декодера и 30 контекстов энкодера» — что даёт 30 потоков на вход и для каждого позволяет создать по 2 разрешения. Так что на GPU были пущены кодироваться верхние разрешения — 720 и 480, а остальные — 360, 240 и 160 — были отправлены на CPU. И поскольку CPU был после этого всё ещё свободен, мы «добили» свободные ядра новыми потоками, оставив 4 ядра на утилитарные задачи.

3. Транскодирование потоков HD 720p

Сценарий с типовой нагрузкой, т.к. бОльшая часть контента сейчас создается именно в HD. Даже недавний SuperBowl LI — самое рейтинговое шоу на американском рынке — передавали именно в HD, оставив FullHD на будущее.

Для генерации исходных потоков был взят файл в HD (1280*720) в high profile. Контент — любимая серия “The Good Wife” нашего инженера, т.е. это видео со средней интенсивностью смены изображения.

На вход в Nimble Streamer подавали 70 одинаковых потоков, которые затем использовались в транскодере в разных сценариях.

Сценарий транскодинга используется следующий — входящий поток 720p high profile, из него делаются 480p, 360p main profile и далее потоки 240p, 160p baseline profile. Итого, на входе 1 поток, на выходе 4. Pass-through исходного потока, как и в предыдущем сценарии, не выполнялся. Аудио в генерируемых потоках — так же нет.

Тест на CPU, без GPU

Как и в предыдущем разделе, мы попробовали транскодинг потоков только на CPU. В результате получилось обработать только 22 потока на вход с выдачей 88 потоков всех разрешений на выход. Нагрузка CPU — 4700%, т.е. было задействовано 47 ядер. Расход RAM — порядка 20Гб.

Тест на CPU + GPU

Кеш контекстов при запуске настроен как 0:23:23,1:23:23 — т.е. 23 контекста на энкодинг, 23 на декодинг для каждого GPU.

С помощью GPU были декодированы 46 потоков 720p. Там же, на GPU был сделан энкодинг 46 потоков 480p. Далее на CPU был сделан энкодинг 360p, 240p и 160p — по 46 потоков каждого.
Зафиксирована нагрузка 2100% CPU, 61% декодера, 16% энкодера.

В дополнение был запущен энкодинг и декодинг 24 потоков на CPU, на каждый 1 поток — по 4 выхода, как и для GPU.

Итого получилось 70 потоков на вход, 280 потоков на выход.
Нагрузка: 4600%, 61% декодера, 16% энкодера, 30Гб RAM.

Как и для прошлого теста, возможно больший RAM GPU дал бы большее число контекстов и мы смогли бы обработать больше потоков. Но это только в теории, надо проверять.

4. Проблема с созданием контекстов в NVidia GPU

Несколько слов о проблеме, которая не позволила нам обработать больше потоков на GPU.

В конце прошлого года мы проводили тесты совместно с командой NVidia, с несколькими картами. При работе с несколькими GPU выяснилось, что создание контекстов сильно тормозит работу сервера — создание каждого нового контекста отнимало у карты всё больше времени. Если первый контекст создавался порядка 300мс, то каждый последующий прибавлял по 200-300мс и уже на третьем десятке контекстов создание нового занимало 3-4 секунды каждый. Когда сценарий транскодинга создается пользователем, предполагается, что он начинает работать сразу и без задержек, а это новое обстоятельство сводило на нет все преимущества в скорости Нимбла и давало задержки при создании контекстов, которые приводили к задержкам старта энкодинга.

Сначала подозрение пало на Нимбл, однако потом мы сделали тесты с использованием ffmpeg, который предоставляет клиентам сама NVidia и результат оказался ровно тем же — GPU тратит всё больше времени на создание каждого нового контекста. В условиях, когда на сервере уже идёт транскодинг и надо запускать новые потоки на обработку, это сказывается на общей производительности и делает сервер просто непригодным к работе.

Проблема была подробно описана команде NVidia, но пока штатного решения предоставлено не было. Поэтому мы пока реализовали у себя в сервере механизм кеширования контекстов, с предварительным созданием контекстов на старте сервера. Это решило проблему с точки зрения работы конечного пользователя, но старт Нимбла при этом может занять определённое время. Настройка Нимбла для эффективной работы с контекстами описана у нас в блоге.

Кроме того, контексты мало просто создать. При большом числе контекстов при включении любого сценария транскодирования, NVENC API начинает выдавать ошибки «The API call failed because it was unable to allocate enough memory to perform the requested operation.»

Опытным путём получилось, что один GPU может запуститься и уверенно работать с 47 контекстами — и нет разницы, это контексты энкодера или декодера. Появилось предположение, что это связано с объёмом памяти на GPU. Сейчас там 16 Гб, если поставить карту с 24 Гб, есть вероятность, что контекстов можно будет сделать больше. Но это только теория, надо проверять, как уже упоминалось ранее. Полученные данные справедливы для конкретной модели GPU, другие карты надо тестировать отдельно.

Именно ограничение на число контекстов ставит основную преграду при работе с большими нагрузками.

5. Выводы

Итак, целью тестирования было изучить эффективность GPU для обозначенного круга задач и выработать рецепты его правильного использования. Что получилось в итоге?

Экономический эффект

Выше мы увидели как отличается число потоков, которое можно обрабатывать на CPU и на тандеме CPU+GPU. Посмотрим, что это значит с точки зрения денег. За основу возьмём всё тот же Softlayer и их цены на аренду оборудования.

То есть при варианте аренды экономия вполне заметна. Это без учета скидок — в российском офисе IBM обещают скидки на аренду ресурсов в облаке по сравнению с представленными здесь ценами.

В варианты с покупкой мы не углублялись, т.к. тут TCO сильно зависит от выбора поставщика, стоимости обслуживания в датацентре и прочих факторов, хорошо знакомых тем, кто работает с bare metal. Однако предварительные цифры также говорят в пользу решения на базе GPU.

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

Масштабирование

Вариант с одной графической картой на сервер нам представляется более экономически эффективным, чем вариант с двумя картами и более. Как мы видим, декодер GPU всегда загружался больше, чем энкодер, но даже он оставался недогруженным из-за проблем с использованием контекстов. Если добавить вторую карту, декодер будет использоваться ещё меньше, энкодеры мы тем более не сможем загрузить на полную мощность, и всю работу по энкодингу по-прежнему нужно будет перекладывать на CPU, что будет неоправданно по деньгам. Вариант с двумя GPU мы тоже тестировали благодаря поддержке Softlayer, но из-за слабого экономического эффекта мы не приводим в статье подробности.

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

Если количество входящих и исходящих потоков для вашего проекта относительно невелико — скажем, десяток HD потоков с небольшим числом разрешений на выходе, с относительно небольшим объёмом фильтрации, то целесообразнее будет использовать сервер без GPU.

Стоит также обратить внимание на то, что объём RAM для задачи преобразования потоков — не так важен, как вычислительная мощность. Так что в каких-то случаях вы сможете сэкономить ещё и за счёт уменьшения объёма памяти.

Заключение

Представленное аппаратное решение — сочетание CPU и GPU Tesla M60 — отлично подошло для транскодирования живых потоков под большими нагрузками. GPU берёт на себя самые ресурсоёмкие операции — декодирование потоков и их кодирование в самые большие разрешения, тогда как средние и мелкие разрешения хорошо обрабатываются на CPU.

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *