所有。我有3个不同长度的数组,比如x,y,z。我想计算f(x)*f(y)*f(z)*f(x,y,z)
的总和,其中f是不同的函数。目前,我在C中使用递归循环。因为数字非常大,所以C代码非常慢。我只是想知道在CUDA中最好的方法是什么?提前谢谢。
答案 0 :(得分:1)
你提出的问题有点模糊。
首先,将数组x,y,z传输到GPU全局内存中。如果x + y + z < 512,你可以使用共享内存的概念(没有循环的帮助)。如果不满意,可以使用循环。您分别评估f(x),f(y),f(z),f(x,y,z)并将它们相乘(每次乘法的单线程)。此外,长度x,y,z应与数组乘法属性一致。