我正在开发一个项目,我正在尝试并行化应用程序。 有一些函数我试图并行化,但问题是这些函数非常频繁地调用其他函数.loops仅用于计算,并且在一个函数体中有许多循环。 我知道OpenACC在其指令中不支持函数调用(仅内联调用),所以我想出了两种方法: a)或者只是将OpenAcc指令放在循环周围并获得所需的并行性并忽略函数调用(不要忽略它只是保持原样)(在每个函数体中执行此操作) b)或者我可以将调用函数体放入调用函数中,然后在输入acc指令时多次创建线程的开销最小化(通过在一个块中包含大量循环)。但这似乎是头疼是因为函数体很大(约4000-5000行代码)。
我无法弄清楚如何处理这种情况。
总之,我需要找到一种在OpenACC中并行化函数调用的有效方法