我正在做一个项目,我正在尝试并行化应用程序。我正在尝试并行化一些函数,但问题是这些函数非常频繁地调用其他函数。循环仅用于计算,一个函数体中有许多循环。我知道 OpenACC 在其指令中不支持函数调用(仅内联调用),所以我想出了两种方法:a)要么将 OpenAcc 指令放在循环周围并获得所需的并行性并忽略函数调用(不仅仅是忽略它只是保持原样)(在每个函数体中都这样做)b)或者我可以将被调用的函数体放在调用函数中,然后在输入 acc 指令时多次创建线程的开销被最小化(通过包括一个块中的大量循环)。
我不知道如何处理这种情况。
总之,我需要找到一种有效的方法来并行化 OpenACC 中的函数调用