К содержанию
fohbook/ TouchDesigner
профи

Память видеокарты

Считаем, сколько занимают TOP, где память утекает и что происходит, когда она кончается.

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

Формула

байт = ширина × высота × каналы × байт_на_канал
Кадр 8 бит RGBA 16F RGBA 32F RGBA
1280 × 720 3,5 МБ 7 МБ 14 МБ
1920 × 1080 8 МБ 16 МБ 32 МБ
3840 × 2160 32 МБ 64 МБ 127 МБ

Умножьте на количество узлов в цепочке. Тридцать узлов в 4K на 32 битах — почти 4 ГБ только на промежуточные буферы.

Что съедает память

  1. Длинные цепочки TOP в полном разрешении — основной источник.
  2. 32-битный формат там, где не нуженФормат.
  3. Cache TOP — прямо пропорционально числу кадров.
  4. Кэш кадров у Movie File InPre-Load Frames.
  5. Текстуры и материалы сцены.
  6. Несколько экземпляров одного и того же, посчитанные параллельно.

Как экономить

  • Считайте в меньшем разрешении: маски, блюр, свечение, фидбэк почти никогда не требуют полного размера.
  • Mono вместо RGBA для масок: вчетверо меньше.
  • Одна цепочка вместо трёх копий: посчитайте один раз, положите в Null, используйте отовсюду.
  • 8 бит на выходе: 16 и 32 бита нужны в середине цепочки, не в конце.
  • Освобождайте то, что не показывается: неактивные сцены отключайте через Cooking у контейнера.

Утечки

Память, которая растёт в течение часов, — типичная беда инсталляций. Основные причины:

Причина Проявление
Генерация узлов скриптом без удаления Растёт число операторов
Накопление строк в Table DAT Растёт память CPU
Кэш, который не очищается Растёт память GPU
Внешняя библиотека Python Растёт память процесса

Ловится probe из палитры на длинном прогоне — Монитор и Probe. Инсталляция обязана быть прогнана сутки без вмешательства до сдачи — Инсталляция без оператора.

Что происходит при переполнении

Драйвер начинает подкачку: производительность падает в разы, появляются рывки, иногда TouchDesigner падает или картинка становится чёрной. Диагноз простой: память в probe упёрлась в потолок карты.

Считайте с запасом

Оставляйте не меньше 20 % видеопамяти свободной. Драйвер, композитор рабочего стола, декодер видео и NDI тоже её используют, и в момент максимальной нагрузки запаса может не хватить.

Info CHOP покажет реальный размер

Не считайте в уме: Info CHOP на TOP даёт фактическое разрешение, формат и занятую память. Иногда узел оказывается вчетверо больше, чем вы думали, потому что унаследовал разрешение не оттуда.

рядом по смыслу