我正在尝试并行化一个用OpenACC构建Voronoi图的程序。目前,我正努力将一个嵌套的for-循环进行平分,该循环调用一个在不同文件中定义的函数。我知道你应该在函数上使用#语用acc例程装饰器,但我不能让它在我的程序中工作。72, Loop is parallelizable生成此输出的主文件中的相关代码如下
我试图理解为什么我的OpenACC代码在Nvidia V100 GPU上的运行速度是AMDMI-250 GPU的17036.0939901倍。OpenACC test:
ptxas info : Used 176 registers, 392 bytes cmem[0] time in secs in OpenACC 329.869873046875
min= -760.4
这里是OpenACC的新手,所以请耐心等待:-)
我正在尝试移植一些Fortran代码来使用OpenACC,我发现了一种奇怪的行为(至少对我来说是这样)。下面给出了代码,但正如您所看到的,只是一些嵌套循环,它们最终更新了变量zc,我将其复制出来。我试图在我认为需要的地方制作私有副本,并在那一刻明确规定所有循环都是独立的。现在,当我使用和不使用OpenACC进行编译时,如果删除" if (mu2-mup2.ne.q2) cycle“行,一切都是正常的,但是如果该行存在,那么使用OpenAC