区分b/w内存绑定和计算绑定CUDA内核

区分b/w内存绑定和计算绑定CUDA内核,cuda,opencl,gpu,Cuda,Opencl,Gpu,我正在尝试编写一个静态分析器来区分数据密集型和计算密集型CUDA内核。尽管我对这个话题进行了大量的研究,但目前关于它的文献并不多。实现这一点的方法之一是计算内核的CGMA比率。如果它“太高”,那么它可能是计算密集型的,否则就是内存密集型的 上述方法的问题在于,我似乎无法确定比率的阈值。也就是说,高于什么值应该被归类为计算密集型。一种方法是使用CUDA内核和加载/存储单元的比率作为阈值。你是怎么想的 我在这篇论文中看到他们正在计算一个叫做“记忆强度”的参数。首先,他们计算一个称为活动因子的参数,然

我正在尝试编写一个静态分析器来区分数据密集型和计算密集型CUDA内核。尽管我对这个话题进行了大量的研究,但目前关于它的文献并不多。实现这一点的方法之一是计算内核的CGMA比率。如果它“太高”,那么它可能是计算密集型的,否则就是内存密集型的

上述方法的问题在于,我似乎无法确定比率的阈值。也就是说,高于什么值应该被归类为计算密集型。一种方法是使用CUDA内核和加载/存储单元的比率作为阈值。你是怎么想的

我在这篇论文中看到他们正在计算一个叫做“记忆强度”的参数。首先,他们计算一个称为活动因子的参数,然后用来计算记忆强度。请找到报纸。你可以在第6页找到记忆强度


有没有更好的办法?由于这个原因,我陷入了我的研究中,迫切需要帮助

我认为你被困住了,因为这不是一个黑白的区别。内核的不同部分将在不同的事情上受到限制,从单个指令到整个内核。你可以讨论“80%的时间花在内存瓶颈上”,或者“超过50%的内核在计算上受到瓶颈限制”,但是没有一个布尔类别可以捕捉到这些信息。CGMA比率捕捉到它有多好?我的观点是没有“它”。也许内核的前半部分完全受内存限制,后半部分完全受计算限制。这将显示为“50%CGMA”-这是否是有用的信息是主观的。或者设想一个内核有80%的内存限制,所以我们将其总结为“这个内核有内存限制”,而不附加任何百分比或位置。这是否有用同样取决于你需要这些信息做什么。你提出了一个观点。看来我需要放弃这种方法。我也相信没有简单或普遍同意的答案。一个观点,考虑幻灯片6-19