c - 应用框模糊时计算一帧(在 CPU 和 GPU 上并行处理)需要多长时间?

标签 c gpu cpu

我遇到了这样一个问题:在 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/

相关文章:

c - 该函数仅适用于无用的 printf

c - 这段代码有一个错误

android - 如何从 Linux 内核中找到处理核心的频率和利用率?

c - 套接字在 linux 上工作但在 osx 上不工作

c - 检测控制故障

python - 如何在多个 GPU 的 Pytorch 示例中利用 DistributedDataParallel 的世界大小参数?

Haskell Array.Accelerate - forkOS 错误

c++ - CUDA shuffle 指令减少比共享内存减少慢?

pytorch - 切换 GPU 设备会影响 PyTorch 反向传播中的梯度吗?

amazon-web-services - AWS EC2 : The number of cpu cores available on an instance