我面临一个问题,即使用opencl在CPU(并行代码)和GPU上计算帧(通过使用框模糊滤镜)需要花费多长时间。当然,这取决于硬件,但是我想应该有一个经验法则。
我了解了使用框模糊滤镜时如何计算帧。据我了解,每个新像素都是计算其8个邻居的平均值的结果。但是我仍然不知道计算一帧可能需要多长时间。
答案 0 :(得分:0)
这在很大程度上取决于框架的大小。盒子模糊是并行操作,可以对每个像素独立于所有其他像素进行计算。此外,该算法处于内存限制内,这意味着不是计算能力而是内存带宽是瓶颈。通常,视频内存(50-1000 GB / s)比系统内存(5-80 GB / s)快得多。 如果该帧已经预先位于视频内存(或分别为系统内存)中,则对于大于或等于1920x1080的帧,您将看到从10倍到100倍的加速比。但是,对于较小的帧,PCIe传输会由于等待时间(至少花费约10µs)而破坏速度。 因此,我想对于1920x1080像素,CPU时间约为1 / 10s,GPU时间约为1 / 500s。