问题标签 [openacc]

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 回答
890 浏览

java - 可以使用开放式 ACC 在 GPU 上并行化 java 代码吗

是否可以使用 OpenACC 在 GPU 上运行 Java 代码的“for 循环”?我用 java 编码的数据挖掘算法,我想在 GPU 上并行化我的顺序代码。如何在 GPU 上并行化我的 java 代码?

0 投票
1 回答
1020 浏览

openacc - Openacc 错误 ibgomp:加载 libgomp-plugin-host_nonshm.so.1 时:libgomp-plugin-host_nonshm.so.1:不能

我想编译一个简单的 openacc 示例(已附加),它已正确编译,但是当我运行它时出现错误:

  1. 编译:gcc-5 -fopenacc accVetAdd.c -lm
  2. 运行:./a.out
  3. 运行时出错

错误: libgomp:加载 libgomp-plugin-host_nonshm.so.1:libgomp-plugin-host_nonshm.so.1:无法打开共享对象文件:没有这样的文件或目录

我用谷歌搜索,只找到一页!然后我问如何解决这个问题?

0 投票
3 回答
569 浏览

openacc - OpenACC 编译器:如何下载和使用 CAPS 编译器

我想编写 OpenACC 程序,但我找不到编写此类程序的编译器。PGI 编译器对于某些国家/地区(例如伊朗)不是免费的。我想问如何下载CAPS编译器,我找不到任何链接在一个链接到这个页面的帖子中但是这个页面无效。

0 投票
3 回答
606 浏览

cuda - OpenACC:从 OpenACC 并行循环调用 cuda __device__ 内核

如果我在 hello.cu 文件中有简单的测试 cuda 内核:

并在 mainacc.c 中测试 OpenACC 代码:

如果我尝试按如下方式编译此代码,则会出现链接时间错误:

我用“--relocatable-device-code true”选项等尝试了nvcc,但没有成功。加载的模块是:

你能告诉我在 OpenACC中使用 cuda设备内核的正确方法吗?

0 投票
1 回答
318 浏览

openmp - GPU 的动态/嵌套并行与 OpenMP 编程模型

我的问题与OpenMP 的声明目标构造和 GPU 的动态/嵌套并行特性有关。OpenACC 2.0 以两种方式支持动态并行;例程指令并以嵌套方式使用并行/内核指令。但是在 OpenMP 中禁止使用嵌套的设备指令,例如 target、teams 或distribute。但是在我看来,声明目标指令与 OpenACC 的常规指令相似。

然而,它仍然不清楚语义及其用法。我的示例代码是这样的。

在那个例子中,我期望函数 foo 将被映射为设备函数。但由于它内部有目标构造,编译器将以某种方式转换此代码。我的问题是,当线程在目标构造中遇到 foo 函数调用时会发生什么?

0 投票
2 回答
1313 浏览

c++ - 我可以使用 OpenACC 并行化调用某些函数的大代码吗?

我正在尝试使用 OpenACC(PGI 编译器)并行化我的顺序 C 代码并卸载到 NVIDIA GPU

我的代码是按顺序编写的。并且经常调用很长的函数,如下所示。

那种情况下,big_function()可以并行化运行在GPU上吗?

我使用#pragma acc kernels将整个 for 循环声明为并行区域 。如下所示。

但是编译后的文件需要很长时间才能完成。结果是不正确的。

我可以使用 OpenACC 来并行化使用许多函数调用的顺序代码吗?

或者我是否必须将big_function()分解为小部分?

0 投票
1 回答
449 浏览

debugging - 我可以在 OpenACC 中使用 printf(或其他东西)和 PGI 编译器吗?

我在调试编译 PGI 编译器的 OpenACC 代码时遇到了一些麻烦。(pgcc 15.7)

我想显示或转储 OpenACC 区域中的变量和数组值。(变量和数组在 GPU 的内存空间上)

但是我不能printf在 OpenACC 内核区域中使用。

我尝试使用cuda-gdbNsight(来自 NVIDIA)。但是遇到 PGI 库时它不起作用。

是否有一些解决方案可以在 OpenACC 内核区域中显示变量值?

还是一些调试 OpenACC 的方法?

0 投票
2 回答
1164 浏览

cuda - OpenACC 中的嵌套指令

我正在尝试使用 OpenACC 的嵌套功能来激活我的 gpu 卡的动态并行性。我有 Tesla 40c,我的 OpenACC 编译器是 PGI 版本 15.7。

我的代码很简单。当我尝试编译以下代码时,编译器会返回这些消息

我的代码结构:

我还尝试更改我的代码以使用例程指令。但我无法再次编译

我当然只尝试过没有内部并行循环指令的例程(seq,worker,gang) 。它一直是编译器,但尚未激活动态并行性。

我应该如何在 OpenACC 中使用动态并行性?

0 投票
1 回答
763 浏览

shared-memory - OpenACC 共享内存使用

我正在使用 pgi 编译器处理 openacc。我想知道如何在运行时分析有关内存使用情况的代码,特别是共享内存?

非常感谢你的帮助!

贝扎德

0 投票
1 回答
668 浏览

cuda - 在 OpenACC 中使用缓存

我正在尝试将 !$acc 缓存用于拉普拉斯 2D 求解器中的特定循环。当我使用 -Mcuda=ptxinfo 分析代码时,它显示没有使用共享内存 (smem),但代码运行速度比基本条件慢?!

这是代码的一部分:

这是使用 !$acc 缓存的输出

这是没有缓存的输出:

它还通过 -Minfo=accel 显示已经缓存了一些内存:

我想知道如何在 OpenACC 中有效地使用缓存(CUDA 意义上的共享内存)?

非常感谢你的帮助。

贝扎德