Память видеокарты
Считаем, сколько занимают 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 ГБ только на промежуточные буферы.
Что съедает память
- Длинные цепочки TOP в полном разрешении — основной источник.
- 32-битный формат там, где не нужен — Формат.
- Cache TOP — прямо пропорционально числу кадров.
- Кэш кадров у Movie File In —
Pre-Load Frames. - Текстуры и материалы сцены.
- Несколько экземпляров одного и того же, посчитанные параллельно.
Как экономить
- Считайте в меньшем разрешении: маски, блюр, свечение, фидбэк почти никогда не требуют полного размера.
- Mono вместо RGBA для масок: вчетверо меньше.
- Одна цепочка вместо трёх копий: посчитайте один раз, положите в
Null, используйте отовсюду. - 8 бит на выходе: 16 и 32 бита нужны в середине цепочки, не в конце.
- Освобождайте то, что не показывается: неактивные сцены отключайте
через
Cookingу контейнера.
Утечки
Память, которая растёт в течение часов, — типичная беда инсталляций. Основные причины:
| Причина | Проявление |
|---|---|
| Генерация узлов скриптом без удаления | Растёт число операторов |
Накопление строк в Table DAT |
Растёт память CPU |
| Кэш, который не очищается | Растёт память GPU |
| Внешняя библиотека Python | Растёт память процесса |
Ловится probe из палитры на длинном прогоне — Монитор и Probe.
Инсталляция обязана быть прогнана сутки без вмешательства до сдачи —
Инсталляция без оператора.
Что происходит при переполнении
Драйвер начинает подкачку: производительность падает в разы, появляются
рывки, иногда TouchDesigner падает или картинка становится чёрной.
Диагноз простой: память в probe упёрлась в потолок карты.
Оставляйте не меньше 20 % видеопамяти свободной. Драйвер, композитор рабочего стола, декодер видео и NDI тоже её используют, и в момент максимальной нагрузки запаса может не хватить.
Не считайте в уме: Info CHOP на TOP даёт фактическое разрешение, формат
и занятую память. Иногда узел оказывается вчетверо больше, чем вы думали,
потому что унаследовал разрешение не оттуда.