如何确定螺纹组和螺纹大小,我应该用于金属顶点计算



我是金属计算的新手,并试图围绕线程和群体的概念缠住我的思想。问题在于,大多数示例(如果不是全部)使用2D纹理作为一个示例,这完全不是我要做的。我正在尝试创建一个计算函数,该功能在一个缓冲区中取2点和几个浮子,并计算4个点并将其放在另一个缓冲区中:

  |--------Buffer1------|      |-------Buffer2-----------|
f(point1, point2, [floats])=point1, point2, point3, point4
f is a function essentially involving some linear algebra with some multiplication 
and addition. The most costly part being a sqrt operation used to normalize 
the vector between point1 and point2. No branches in code. 

我大致知道如何编写内核函数,但是我不知道如何为其分配线程和线程组,因为我不知道如何计算这种情况的潜在最佳量。

您可以根据需要分配线程和线程组,即以任何方式使用它们最有意义的逻辑。

弄清楚最佳线程和组是多少,可能是反复试验的。但是,一个很好的起点是要使用要计算的独特物品使用一个线程。

在您的情况下,每个f(point1, point2, [floats])的一个线程似乎合理(这样一个线程将向输出缓冲区写4点)。但是您对您的函数f()并不是很具体,因此也许分配线程的另一种方法更有意义。我没有足够的信息来提出一个很好的建议。

(注意: 一个限制了您可以在一个组中使用多少线程。这取决于设备。因此,如果您需要更多的线程,则必须将它们拆分为分为多组。)

相关内容

最新更新