问题标签 [pgi-accelerator]

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 投票
1 回答
998 浏览

fortran - Fortran-OpenACC 例程如何调用另一个 Fortran-OpenACC 例程?

我目前正在尝试通过使用带有 PGI (15.10) 编译器的 OpenACC 将大部分例程移植到 GPGPU 来加速光谱元素流体求解器。源代码是用 OO-Fortran 编写的。该软件具有调用其他功能和子程序的子程序“层”。为了使用 openacc 将代码带到 GPU 上,我首先尝试在每个需要移植的例程中放置“$accroutine”指令。在编译期间,使用“pgf90 -acc -Minfo=accel”,我收到以下错误:

nvvmCompileProgram 错误:9。

错误:/tmp/pgacc2lMnIf9lMqx8.gpu (146, 24): 使用错误类型解析对函数“innerroutine_”的无效前向引用!

PGF90-S-0155-Compiler 无法转换加速器区域(请参阅 -Minfo 消息):设备编译器以错误状态代码退出 (Test.f90: 1)

可以使用以下简单的 fortran 程序重现同样的问题:

同样,使用“pgf90 -acc -Minfo=accel”编译上述程序会产生问题。

openacc 是否支持启用 acc 的例程调用其他启用 acc 的例程?

如果是这样,我做错了什么?

0 投票
1 回答
256 浏览

openacc - PGI 16.9 中的行太长。怎么解决?

使用以下虚拟代码来复制问题。

PGF90-S-0285-源代码行太长 (pp.f90: 6) PGF90-S-0023-语法错误 - 括号不平衡 (pp.f90: 6) 0 通知,0 警告,2 严重,0 对 pp 致命

0 投票
1 回答
202 浏览

nvcc - openacc - ta=multicore 和 ta=nvidia 编译之间的差异

我有一个最初用 OpenMP 编写的代码。现在,我想将它迁移到 OpenACC 中。考虑以下:

1- 首先,OpenMP 的输出结果被认为是最终结果,OpenACC 输出应该跟随它们。

2-其次,代码中有两个功能可以通过输入终端上的程序来启用。因此,要么 要么F1运行F2基于输入标志。

因此,如前所述,我将代码转移到 OpenACC。现在,我可以使用两者来编译我的 OpenACC 代码,-ta=multicore-ta=nvidia为不同的架构编译 OpenACC 区域。

对于F1,两种架构的输出都与 OpenMP 相同。因此,这意味着当我使用 and 编译我的程序时-ta=multicore-ta=nvidia我会在选择时得到类似于 OpenMP 的正确输出结果F1

对于F2,有点不同。编译-ta=multicore给我一个正确的输出作为 OpenMP,但同样的事情不会发生在 nvidia 架构上。当我用结果编译我的代码时-ta=nvidia是错误的。

任何想法可能有什么问题,F2甚至是build process什么?

注意:我使用的是 PGI 编译器 16,而我的 NVIDIA GPU 的 CC 等于 5.2。

0 投票
1 回答
311 浏览

cuda - OpenACC 中的固定内存(使用 PGI 编译器)

我有一个简单的 CUDA 代码,我将它翻译成 OpenACC。我的所有内核都按预期并行化,它们的性能与我的 CUDA 内核相似。但是,设备到主机的内存传输会影响我的性能。在我的 CUDA 代码中,我使用固定内存并且性能要好得多。不幸的是,在 OpenACC 中我不知道如何使用固定内存。我在文档中找不到任何内容。有人可以为我提供一个使用固定内存的简单 OpenACC 示例吗?

PS:我使用的是 PGI 16.10-0 64 位编译器

0 投票
1 回答
93 浏览

openacc - 如何找到用于 OpenACC 的特定 PGI 函数的签名?

如何找到 PGI 编译器用于 OpenACC 的特定函数的签名?

例如,__pgi_uacc_enter__pgi_uacc_launch函数。

是否有任何文档或头文件可以找到签名。甚至一些文档不仅涉及其签名,还涉及其功能。

0 投票
2 回答
1513 浏览

c++ - 使用 AMD GPU 编译 OpenACC

我无法用 AMD Radeon R7 M360 编译它。我已经用多核编译了它,如下所示,但是谁能告诉我如何用 GPU 编译它,我试过 -ta=amd64/radeon 但它都不起作用。您可以在此图像中看到代码。我用它编译了

pgc++ -V -Minfo=accel -acc -ta=多核 sum.cpp -o /home/fawad/Desktop/sum

在此处输入图像描述

主要的:

我需要有人指导我如何使用 AMD 进行编译。我正在使用 PGI 编译器。

0 投票
1 回答
108 浏览

nvidia - OpenACC 有哪些可能的目标?

我愿意在一些项目上使用 OpenACC。我不确定可能的架构。

官方称,使用 PGI 编译器,加速器可以是多核 CPU 或 Nvidia Tesla GPU还有其他可能的目标吗?(最终使用其他编译器)

我在某处表示 pgcc 曾经与 Radeon GPU 兼容。我看到一个使用 Nvidia Quadro 的项目。Nvidia Geforce 也兼容吗?

0 投票
1 回答
64 浏览

openacc - 编译器错误 PGI OpenACC "pgf90_mzero8" 未定义

我正在尝试将 fortran 中的子例程编译为 !$acc 例程 seq 我收到以下错误消息

/scratch/tmp/pgaccKU0jSWcDesiI.gpu(93):错误:标识符“pgf90_mzero8”未定义

在“/scratch/tmp/pgnvdgV0jsxZLyFWv.nv0”的编译中检测到 1 个错误

PGI 编译器版本 17.4

文本大小写

子例程 xx(ndime,pgaus,yy) !$acc 例程 seq
隐式无整数(4) :: ndime, pgaus real(8) :: yy(ndime,ndime,pgaus)

年=0.0

结束子程序 xx

0 投票
1 回答
127 浏览

openacc - 编译 openacc 例程“pgf90_copy_f77_argl_i8”时出错

不支持调用 PGI 运行时函数 - pgf90_copy_f77_argl_i8

我相信正在将一个 8 字节整数参数传递给 !$acc 例程。

任何解决方法或更新?

PGI 编译器 17.4

例子。

这里 func 是 acc 例程,所以我想这种方法会产生问题。

我们将创建临时数组,然后传递它们。

0 投票
1 回答
941 浏览

c - 如何使用 C/OpenACC 和 PGI 编译器声明全局动态数组

我正在尝试运行一个简单的测试用例,其中动态分配的数组A被定义为外部并使用 OpenACC 上传到 GPU。全部使用 PGI 编译器。

我的 header.h文件:

然后,我的header.c实现:

然后,在main.c我有

我使用以下命令编译代码:

我的PGI编译器版本是:

要执行代码:

我认为问题在于 PGI 编译器发送variable=A bytes=8,因此忽略了我的发送请求A[0:N]

那么,如何用 C/OpenACC 和 PGI 编译器声明一个全局动态数组呢?