我遇到了这样一个问题:在 CPU(并行代码)和 GPU 上使用 opencl 计算帧(通过使用框模糊过滤器)需要多长时间。当然,这取决于硬件,但我想应该有一个经验法则。
我阅读了有关使用框模糊滤镜时如何计算帧的信息。据我了解,每个新像素都是计算其 8 个邻居的平均值的结果。但我仍然不知道计算一帧需要多长时间。
最佳答案
这在很大程度上取决于框架的大小。框模糊是一种并行操作,可以独立于所有其他像素对每个像素进行计算。此外,该算法处于内存限制中,这意味着瓶颈不是计算能力而是内存带宽。通常,视频内存 (50-1000 GB/s) 比系统内存 (5-80 GB/s) 快得多。 如果帧事先已经在视频内存(或系统内存)中,那么对于大于或等于 1920x1080 的帧,您将看到大约 10 倍到 100 倍的加速。然而,对于小帧,PCIe 传输会由于延迟(至少需要大约 10µs)而破坏加速。 所以我猜测对于 1920x1080 像素,CPU 时间大约为 1/10 秒,GPU 时间大约为 1/500 秒。
关于c - 应用框模糊时计算一帧(在 CPU 和 GPU 上并行处理)需要多长时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56482794/