假设你有一个内存绑定的GPU内核,你能离GPU的理论带宽有多近?即使在,他“只”获得63 in /秒的带宽,这大约是他的测试GPU (一个G80)带宽的73%,他声称它的峰值带宽为84.6GB/秒。哈里斯还能进一步优化他的内核吗?是否有其他技术可能是先进的/超出介绍范围的?例如__shfl类型的指令?为什么他没有获得更高的带宽?文章声称,使用带有特斯拉C2050的测试机器
吞吐量是内存带宽</e
在许多在线资源中,可以找到“内存”、“带宽”、“延迟”绑定内核的不同用法。在我看来,作者们有时会使用他们自己对这些术语的定义,我认为,如果对某些人来说,明确区分是非常有益的。据我理解:带宽绑定内核在访问全局内存方面接近设备的物理限制。例如,应用程序在M2090设备上使用177 an /s中的170 an /s。
延迟绑定内核的主要原因是内存获取。因此,我们没有使全局内存总线饱和,但仍然需要等待数据进入内核<
作为运行在GPU上的算法分析的一部分,我觉得我正在触及内存带宽。我有几个复杂的内核执行一些复杂的操作(稀疏矩阵乘法、约简等)和一些非常简单的操作,当我计算每个核的读写总数据时,似乎所有的(重要的)都达到了~79 it /s的带宽墙,而不管它们的复杂性如何,而理论GPU在算法运行期间,所有数据都保留在GPU内存中,因此几乎没有主机/设备内存传输(也没有通过分析计数器测量)。即使对于一个非常简单的内核(见下文),它解决了x=x+alph