希望你们能在这个话题上帮我:
参考这个纸,对于一些简单的图像处理任务,只有很小的加速比,例如,当调整图像大小时,最大加速比约为2倍(CPU程序的总时间与GPU程序的总时间)。他们使用PC (处理器: Intel(R) Core(TM) i7-6700 CPU @3.40GHz (8 CPU )、16 GPU内存、DirectX11和NVIDIA GeForce GTX 970和1664 CUDA-Core @1050 MHz)运行两种代码:一种使用CPU,另一种使用GPU。
为什么有这么低的加速速度?没有给出代码,所以可能有限的并行能力可能是原因。
假设你有一个很好的并行化,你的CPU有n个核,而GPU核的数字是m。将数据传输到GPU可能会花费一些时间。忽略将数据传输到gpu所需的时间(这可能不是主要的僵尸程序,看见,第17页),为什么加速比不是m/n?限制在哪里(建筑,时钟速度,.)?
我目前正在寻找一些文献或好的解释,希望你们能帮助我。
发布于 2022-04-06 02:42:33
有许多因素可以影响较低的速度,这些因素包括但不限于以下几点:
显然,所有这些都可以进一步优化,但是任何特定的内容都会对代码有所了解。
虽然有点过时,但对于CUDA的概念和设计模式来说,这可能是一个很好的资源:https://developer.nvidia.com/cuda-example
当然,cuda (几乎是最新的) https://docs.nvidia.com/cuda/是所有事物的主要资源。
https://stackoverflow.com/questions/71740075
复制相似问题