第二课:速度量化分析
文献里几乎查不到"480p→4K 在 A100 上要多久"的直接答案——但你会推。本课学会一个可迁移技能:从任意基准数据推算目标场景的耗时。预计用时 10 分钟。
1. 唯一需要的公式
CNN、GAN 类模型中,计算量与输出像素数近似成正比。因此:
T目标 ≈ T基准 × (目标输出像素 ÷ 基准输出像素)
以 Real-ESRGAN 为例:基准 0.034 s @ 512×512 输出,推到 4K(3840×2160):
像素比 = (3840 × 2160) / (512 × 512) = 8,294,400 / 262,144 ≈ 31.6
推算耗时 = 0.034 s × 31.6 ≈ 1.08 s/帧
为什么可以这么算
卷积是逐位置的运算:输出像素翻 N 倍,卷积总运算量就翻 N 倍。这是 CNN/GAN 路线的
线性区。第一课说过,Transformer 的自注意力是 O(N²)——同样像素比下它掉速更快,这条公式对它只是
乐观下界。
2. 视频换算:从单帧到一整段视频
总耗时 = 单帧耗时 × 帧率 × 时长(秒)
例:1.08 s/帧 × 30 fps × 60 s ≈ 1,944 s ≈ 32 分钟(处理 1 分钟视频)
反向推算更有用——已知帧率求目标分辨率下的帧率:
FlashVSR:17 FPS @ 768×1408 输出
像素比 = (3840 × 2160) / (768 × 1408) ≈ 7.7
4K 推算帧率 ≈ 17 / 7.7 ≈ 2.2 FPS
3. 三个推算陷阱
- 线性假设会失效:分辨率变大后显存可能装不下整帧,被迫切块(tiling)处理,块间重叠区域带来额外开销,实际比线性推算更慢。
- 基准条件未必可比:batch size、精度(FP16/FP32)、是否含前后处理(VAE 编解码、I/O)都会让两个"0.03 s"差出数倍。比较时认准同口径数据,如 NTIRE 2025 高效超分挑战的统一测试。
- 模型未必能泛化到目标分辨率:训练时没见过 4K 输出的模型,直接推算的时间没有意义——先确认它支持该分辨率(如 TurboVSR 明确支持 3648×2048)。
4. 动手推算(核心练习)
练习 1:Real-ESRGAN 基准 0.034 s/帧 @ 512×512。推算 480p→1080p(1920×1080 输出)的单帧耗时(秒)。
像素比 = (1920×1080) ÷ (512×512) = 2,073,600 ÷ 262,144 ≈ 7.9;0.034 × 7.9 ≈ 0.27 s/帧。注意本课 4K 例子像素比是 31.6——1080p 正好是 4K 像素量的 1/4。
练习 2:某模型 4K 输出下 2.2 FPS。处理一段 30 fps、时长 90 秒的视频(2700 帧),约需多少分钟?
2700 帧 ÷ 2.2 FPS ≈ 1227 秒 ÷ 60 ≈ 20 分钟。常见错误是忘记最后把秒换成分钟。
练习 3:轻量 CNN 模型 RealBasicVSR 基准 0.011 s/帧 @ 512×512 输出。同样推算 480p→4K(像素比 31.6)的单帧耗时(秒)。
0.011 × 31.6 ≈ 0.35 s/帧 ≈ 3 FPS。最快的 CNN 路线在 480p→4K 下也不实时,但已进入可接受的批处理区间。
5. 自测
Q1:CNN/GAN 模型中,耗时随输出像素量增长的方式是?
近似线性增长
近似平方增长
近似对数增长
基本保持不变
卷积逐位置运算,输出像素翻 N 倍计算量翻 N 倍——线性区。平方增长是 Transformer 自注意力 O(N²) 的特征。
Q2:用低分辨率基准推算 4K 耗时,最常见的低估来源是?
切块处理开销
显卡驱动开销
内存频率瓶颈
网络传输延迟
4K 整帧常超显存,被迫 tiling 切块,块间重叠区域重复计算,实际耗时高于线性推算。这是纸面推算与工程实测偏差的主要来源。
Q3:横向对比两个模型的速度数据,首先要确认什么?
测试口径一致
发表年份相近
模型参数量等
训练集是同个
batch size、精度、是否含前后处理都会扭曲对比。NTIRE 2025 高效超分挑战的价值就在于统一测试条件下的 runtime 排名。
6. 延伸
有疑问就问
我是你的老师。比如"为什么注意力是 O(N²)""tiling 重叠率一般多少"——任何不清楚的地方随时问。
第二课 · 超分辨率选型课程 · 上一课:
技术路线速览 · 下一课:加速技术拆解