问题标签 [pgcc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
296 浏览

c - C、pgcc——自动并行化“不可数”

我使用这个 for 循环,我想自动并行化,它用于 PI 编号的计数:

这是区间 0-1 中所有值的点部分总和。然后我用它制作了PI值。但这不是问题,问题是,当我对 pgcc 使用自动并行化时,我设置了进程数,但是当我编译我的程序时,我被告知“循环未矢量化/并行化:不可数”。我已经尝试了一切,但仍然没有改变。有任何想法吗?谢谢

0 投票
1 回答
192 浏览

c - pgcc,C - 循环未并行化:可能没有好处

我想帮助找出错误的自动并行化 - 循环未并行化:可能没有好处。我想测试这段代码的并行化,但我不知道如何使代码有效地让编译器并行化它。

这是代码:

循环未并行化:可能没有好处

你知道如何让这个循环更多的时间要求能够接受自动并行化吗?

谢谢

0 投票
1 回答
401 浏览

android - PGC 映射但没有条目

前几天得到了这个,不知道在我的 android 日志中对于我正在调试的程序意味着什么:

我应该担心吗?

0 投票
1 回答
533 浏览

gcc - 相当于gcc编译器的pgcc“-Minfo =”标志?

我刚刚在 pgcc 中发现了一个不错的“-Minfo=”标志,它输出编译器正在进行的所有优化。

IE:

GCC是否有等效的编译器标志?

0 投票
2 回答
3493 浏览

c - 使用 OpenACC 并行化嵌套循环

我对 openacc 非常陌生,并且只有高级知识,因此我将不胜感激任何对我做错的帮助和解释。

我正在尝试加速(并行化)一个不那么简单的嵌套循环,该循环使用 openacc 指令更新扁平(3D 到 1D)数组。我在下面发布了一个简化的示例代码,使用

pgcc -acc -Minfo=accel test.c

给出以下错误:

call to cuStreamSynchronize returned error 700: Illegal address during kernel execution

代码:

代替使用regionandloop指令,使用

产生以下错误:

我正在运行此代码

0 投票
1 回答
49 浏览

openacc - OpenACC 编译器是否必须进行依赖性分析?

许多 OpenACC 教程假定编译器/加速器将通过自动检查依赖关系并确保循环实际上是可并行化的来检查正确性。然而,OpenACC 规范似乎没有提及强制正确性分析的任何内容。OpenACC 编译器是否有义务检查循环是否实际上是可并行化的,如果不是则放弃?

0 投票
2 回答
504 浏览

c - openACC 传递结构列表

我有一个 C 程序来查找 2 组多边形是否重叠。用户输入 2 组多边形(每组数据有数千个多边形),程序查看 set1 中的哪个多边形与 set2 中的哪个多边形重叠

我有2个这样的结构:

我有以下代码段:

listOfPolygons1 和 listOfPolygons2 (顾名思义)是一个 gpc_vertex_list 数组。listOfBoolean 是一个 int 数组。
检查 2 个多边形的 mbr 以查看它们是否重叠,如果是,函数“isRectOverlap”返回 1,如果不是,则返回 0,并将值放入 listOfBoolean

问题
代码可以编译但不能运行。它返回以下错误:

我的观察
该程序可以通过将第 115 行更改为以下内容来编译和运行:

或这个:

(虽然结果是错误的,但至少,它可以运行)

问题
如果值没有从“isRectOverlap”传递到“listOfBoolean”,“isRectOverlap”和“listOfBoolean”似乎都不会产生问题
有谁知道如果我将“isRectOverlap”的返回值分配给“ listOfBoolean”?

isRectOverlap 函数是这样的:

程序不在OpenACC中运行时没有问题

感谢您的帮助

0 投票
0 回答
327 浏览

c - 使用 pgcc 编译 FFTW,未定义的引用

对于其他软件,我需要--enable-mpi --enable-type-prefix --enable-float安装 fftw-2.1.5。它应该编译为pgcc

PGCC等都安装在该/home目录下。对于这篇文章,我将其缩短为path-to.

我愿意:

./configure成功完成,在make我收到此错误消息期间:

我试图用-fPIC标志重新编译:

然后我得到:

我现在试图找到一个解决方案来解决为什么会发生几个小时,但我无法弄清楚。

当我将其配置为使用 gcc 编译器(系统默认)时,一切正常:

编辑,更多信息:

  • 我需要 fftw 的程序需要 pgcc。我认为最好按照某些论坛网站上的建议用它编译所有内容。

  • 在 twiddle.c 中没有提到__fd_sincos_1. 例如第 92 行很简单 for (i = 0; i < n; ++i) {

  • 当我放下时,--enable-type-prefix什么都没有改变。还是同样的错误。

0 投票
0 回答
69 浏览

haskell - 为什么混合二进制与 Haskell 和 OpenACC 得到 SEGV?

为什么混合二进制与 Haskell 和 OpenACC 得到 SEGV?

GCC 和 OpenACC 的混合二进制有很好的结果:

https://github.com/master-q/test-openacc-gcc

然而,Haskell 和 OpenACC 的混合二进制文件有 SEGV:

https://github.com/master-q/test-openacc-hs

最好的问候, Kiwamu Okabe

0 投票
2 回答
466 浏览

c - 使用openmp通过openacc使用C在多个GPU上分配矩阵乘法工作

我正在尝试使用 3 个 OpenMP 线程在 3 个 nVidia GPU 上分配将两个 NxN 矩阵相乘的工作。(矩阵值会变大,因此 long long 数据类型。)但是我无法将其放置#pragma acc parallel loop在正确的位置。我在共享的 nVidia PDF 中使用了一些示例,但没有成功。我知道最里面的循环不能并行化。但我希望三个线程中的每一个都拥有一个 GPU 并完成部分工作。请注意,输入和输出矩阵被定义为全局变量,因为我一直用完堆栈内存。

我已经尝试了下面的代码,但我得到的编译错误都指向第 75 行,这是该#pragma acc parallel loop

功能是: