Оригинальный README здесь. Original README here.
Ветка uniform-dynamic-buffers
содержит незаконченную интеграцию ST DCN в Vulkan post-processing layer.
Изменения в vkBasalt включают:
- Новый эффект AIST.
- Составляющие его слои.
- Сопутствующие шейдеры.
- Генератор весов для преобразования 1-в-1.
На данный момент ввиду нагрузки, создаваемой неоптимизированным Instance Norm 2D, не рекомендуется запускать данный эффект, т.к. вероятна потеря контроля над системой.
Детали построения сети доступны в Jupyter-блокноте.
Обновлено 2020-07-11: коду стилизации видео требуется порядка 0.4мс на обработку одного кадра формата FullHD. Далеко до 60к/с, но, вероятно, значительно сказывается перенос данных между типами памяти и перестановка размерностей входных и выходных тензоров (один кадр из 32-разрядных чисел с п.т. занимает около 24МиБ). Используется немного оптимизированная архитектура: нет нормализации между оконечными слоями, в них и начальных слоях применено другое распределение по группам для предотвращения потери информации.
uniform-dynamic-buffers
branch contains an attempt on integration of ST DCN into Vulkan post-processing layer.
Changes to vkBasalt comprise:
- New AIST effect.
- Its 'neural' layers.
- Supporting shaders.
- Weights generator for identity transform.
At the moment, due to enormous load caused by inoptimal Instance Norm 2D, one should avoid launching this effect, or they might lose control of their system.
2020-07-11 update: style video code takes around 0.4ms to process one FullHD frame. Yes, far from 60fps, but I blame CPU-GPU-CPU transitions and tensor relayouts (one fp32 frame is about 24MiB). Architecture has been slightly optimized: no normalization in between upconv layers, rearranged groupos in downconv layers to avoid information loss.