openacc相关内容

Openacc+MPI Fortran程序入门

我有一个可以工作的串行代码和一个可以工作的并行单GPU代码,它们是通过openacc并行化的。现在,我正试图通过在多个GPU上运行,采用MPI+openacc范例来提高并行性。我用Fortran-90编写代码,并使用NVIDIA的HPC-SDK的nvfortran编译器进行编译。 我有几个初学者级别的问题: 如何设置编译器环境以开始编写MPI+openacc代码。除了NVIDIA的HP ..
发布时间:2022-02-27 19:58:56 其他开发

c - 将启用 PGI OpenACC 的库与 gcc 链接

简而言之,我的问题依赖于使用两个不同的编译器编译/构建文件(使用库),同时利用源文件中的 OpenACC 结构. 我有一个具有 OpenACC 结构的 C 源文件.它只有一个简单的函数来计算数组的总和: #include #include #include 双计算总和(int n,双 *a){双倍总和 = 0;诠释我;printf ..
发布时间:2022-01-11 15:44:43 其他开发

在OpenACC中正确使用device_type

我有一个 for 循环,如果目标硬件是NVIDIA,我想将它与OpenACC并行化,或者当目标硬件是AMD时,以串行方式运行它.我尝试了以下方法: #pragma acc循环\device_type(tesla)并行\device_type(radeon)序列对于(int z = 0; z ..
发布时间:2021-05-13 18:39:09 其他开发

-ta = tesla:managed:cuda8,但是cuMemAllocManaged返回错误2:内存不足

我是OpenACC的新手.就我对OpenMP的熟悉程度而言,我非常喜欢它. 我有2张1080Ti卡,每张卡具有9GB的内存和128GB的RAM.我正在尝试一个非常基本的测试来分配一个数组,对其进行初始化,然后对其进行并行求和.这适用于8 GB,但是当我增加到10 GB时,我会遇到内存不足错误.我的理解是,有了Pascal(这些卡是)和CUDA 8的统一内存,我可以分配一个比GPU内存更大的数 ..
发布时间:2020-07-02 02:30:55 其他开发

无法填充在gpu上分配的数组

请帮帮我.我有以下代码 ... #include #include const long int G=100000; const unsigned int GL=100000; const long int K=G; const int LE=1.0f; struct Particle { float x; float rs; }; ..
发布时间:2020-07-02 02:30:51 其他开发

如何在OpenACC中找到帮派的ID?

在OpenMP中,我可以使用omp_get_thread_num()来获取执行代码的线程的数字ID. 在OpenACC中是否可以使用类似的功能来获取执行一段代码的帮派的ID? 解决方案 OpenACC标准尚不包括这样的功能,但是对于PGI编译器,您可以如下使用编译器扩展功能__pgi_gangidx(): //pgc++ -fast -acc -ta=tesla,cc60 -Min ..
发布时间:2020-07-02 02:30:47 其他开发

使用GCC(G ++)编译c ++ OpenACC并行CPU代码

当尝试使用配置有--enable-languages=c,c++,lto --disable-multilib的GCC-9.3.0(g ++)编译OpenACC代码时,以下代码不使用多个内核,而如果使用pgc ++编译器编译相同的代码,则使用多个内核./p> g ++编译:g++ -lgomp -Ofast -o jsolve -fopenacc jsolvec.cpp pgc ++编译: ..
发布时间:2020-07-02 02:30:46 C/C++开发

在openacc中将memcpy用于设备阵列

请帮忙. 1)我需要使用memcpy来移动在gpu上分配的数组.我不能使用std :: memcpy,因为它“没有acc例程"(编译器输出).我的代码是 const int GL=100000; Particle particles[GL]; int cp01[2][GL]; #pragma acc declare create(particles,cp01) ... 我读到cudaMe ..
发布时间:2020-07-02 02:29:43 其他开发

openACC传递结构列表

我有一个C程序来查找2套多边形是否重叠.用户输入2组多边形(每组数据都有数千个多边形),程序将看到set1中的哪个多边形与set2中的哪个多边形重叠 我有2个这样的结构: struct gpc_vertex /* Polygon vertex */ { double x; double y; }; struct gpc_verte ..
发布时间:2020-07-02 02:29:39 其他开发

无法生成OpenACC并行内核

我正在PGC ++上开发代码,以图形方式加速代码. 我正在使用具有Eigen依赖性的OpenBabel. 我尝试使用#pragma acc内核 我尝试使用#pragma acc例程 我的编译命令是:"pgc ++ -acc -ta = tesla -Minfo = all -I/home/pranav/new_installed/include/openbabel-2.0/-I/hom ..
发布时间:2020-07-02 02:29:37 C/C++开发

Visual Studion(Visual C ++)中的OpenACC

我是GPU的新手.我想使用OpenACC用C ++编写GPU.我不知道如何将其库添加到Visual Studio 2015中.我在Internet上进行了很多搜索,但是找不到很好的文档来显示该过程.您能帮我解决这个问题吗? 谢谢. 解决方案 Visual Studio不支持OpenACC.您需要在Linux上使用GNU或PGI,在Windows上使用PGI.请注意,PGI在Windo ..
发布时间:2020-07-02 02:28:35 其他开发

OpenACC和面向对象的C ++

我正在尝试编写与OpenACC并行化的面向对象的C ++代码. 我能够找到一些关于OpenACC的stackoverflow问题和GTC讨论,但是找不到一些面向对象代码的真实示例. 在此问题中,一个OpenACCArray的示例显示在后台执行一些内存管理(代码可在 http://www.pgroup.com中找到/lit/samples/gtc15_S5233.tar ). 但是,我想知道是 ..
发布时间:2020-07-02 02:28:31 C/C++开发

OpenACC是否会脱离正常的GPU渲染?

我正在尝试确定是否可以使用OpenACC代替常规的CPU串行执行调用.通常,我的编程全部是关于3D编程的,或者通常以某种方式使用GPU. IE.图像处理或其他需要使用着色器的渲染类型.我正在尝试弄清楚这个图书馆是否会让我受益. 我之所以这样问,是因为如果我(尽可能快地)渲染3D图形,它会减慢该过程吗?或者它是否能够维持(理论上)“高帧频". 如果是这样,要权衡些什么?我不愿意放弃3D图 ..
发布时间:2020-07-02 02:27:22 其他开发

Pascal CUDA8 1080Ti统一内存的速度

感谢答案此处昨天,我想我现在已经使用Pascal 1080Ti对统一内存进行了正确的基本测试.它分配一个50GB的一维数组并将其相加.如果我理解正确,那应该是受内存限制的,因为此测试是如此简单(添加整数).但是,这需要24秒,相当于大约2GB/s.当我运行CUDA8带宽测试时,我看到了更高的速率:固定的速度为11.7GB/s,可分页的速度为8.5GB/s. 有什么方法可以使测试运行超过24秒 ..
发布时间:2020-07-02 02:27:20 其他开发

使用OpenACC并行化嵌套循环

我对openacc还是很陌生,并且只有高水平的知识,所以对我做错事的任何帮助和解释将不胜感激. 我正在尝试加速(并行化)一个不太简单的嵌套循环,该循环使用openacc指令更新展平的(3D到1D)数组.在使用 进行编译时,我在下面发布了一个简化的示例代码. pgcc -acc -Minfo=accel test.c 出现以下错误: call to cuStreamSynchr ..
发布时间:2020-07-02 02:27:16 其他开发

OpenACC必须包含常规信息错误

我正在尝试并行化一个简单的mandelbrot c程序,但是却出现了与不包含acc例程信息有关的此错误.另外,我不确定是否应将数据复制到并行部分中以及从并行部分中复制数据. PS:我对并行编程还比较陌生,因此,任何有学习建议的人都将不胜感激. (编译时警告) PGC-S-0155-Procedures called in a compute region must have acc r ..
发布时间:2020-05-21 01:32:38 其他开发

用gcc链接器链接pgi编译的库

我想知道如何将pgc ++编译的代码(blabla.a)与使用c ++或g ++ GNU编译器编译的主代码链接. 目前,使用默认gnu c ++链接器链接时会出现如下错误: 未定义对__pgio_initu的引用 解决方案 正如前面的人已经指出的那样,PGI在使用pgc++命令时支持G ++名称转换.从此输出来看,我猜您正在与g ++而不是pgc ++链接.当使用pgc ++作为链接器以便 ..
发布时间:2020-05-01 03:41:14 其他开发