问题标签 [offloading]

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

gcc - GCC 是否具有与 pgcc 的 -Minfo=accel 类似的参数?

我正在尝试在使用 OpenACC 卸载到 NVIDIA GPU 的 GCC 上编译代码,但我无法找到与上述编译器类似的编译器选项。有没有办法告诉 GCC 在与卸载相关的所有操作上更加详细?

0 投票
1 回答
58 浏览

cryptography - 如何将模幂运算卸载到 Octeon II 加密协处理器

是否可以将 RSA 和 Diffie-Hellman 所需的模幂运算卸载到 Octeon II 平台附带的硬件(加密协处理器)。

在一些文档中,我看到 Octeon II 平台确实支持这一点。但是,我不知道该怎么做。要使用什么宏等?

谁能给我一些指导?

0 投票
1 回答
1180 浏览

gcc - What it takes to make OpenACC/OpenMP4.0 offloading to nvidia/mic work om GCC?

I am trying to understand how exactly I can use OpenACC to offload computation to my nvidia GPU on GCC 5.3. The more I google things the more confused I become. All the guides I find, they involve recompiling the entire gcc along with two libs called nvptx-tools and nvptx-newlib. Other sources say that OpenACC is part of GOMP library. Other sources say that the development for OpenACC support will continue only on GCC 6.x. Also I have read that support for OpenACC is in the main brunch of GCC. However if I compile a program with -fopenacc and -foffload=nvptx-non is just wont work. Can someone explain to me what exactly it takes to compiler and run OpenACC code with gcc 5.3+?

  • Why some guides seem to require (re)compilation of nvptx-tools, nvptx-newlib, and GCC, if, as some internet sources say, OpenACC support is part of GCC's main branch?
  • What is the role of the GOMP library in all this?
  • Is it true that development for OpenACC support will only be happening for GCC 6+ from now on?
  • When OpenACC support matures, is it the goal to enable it in a similar way we enable OpenMP (i.e., by just adding a couple of compiler flags)?
  • Can someone also provide answers to all the above after replacing "OpenACC" with "OpenMP 4.0 GPU/MIC offload capability"?

Thanks in advance

0 投票
1 回答
2879 浏览

nvidia - gcc - openacc - 编译的程序无法正常运行

最近,GCC 社区已经做出了一些努力,在他们的编译器中支持 OpenACC。所以,我想尝试一下。

使用这个与 GCC 网站上的主要文档很接近的分步教程(教程),我能够编译和构建支持 OpenACC 的GCC 6.1 。

然后,我使用以下命令编译了我的程序:

gcc pi.c -fopenacc -foffload=nvptx-none -foffload="-O3" -O3

而且,一切都没有任何错误。

执行没有错误,但没有正确答案。

这是我的 C 代码和正在运行的程序的输出:

这是运行后的输出a.out

有任何想法吗?

0 投票
0 回答
1723 浏览

gcc - GCC7 (trunk) OpenACC 卸载 (nvptx) 的问题

我一直在尝试使用 gcc(主干版本)卸载,但到目前为止我没有这样做。我按照该站点上使用 nvidia 卸载 OpenACC 的说明编译了 gcc:https ://gcc.gnu.org/wiki/Offloading 我还按照同一网站的说明编译了主机编译器。但是,当我尝试在启用 OpenACC 的情况下编译任何内容时出现错误。为了确保我使用了正确的编译器,我cd进入了主机编译器的目录并运行了这个: ./g++ main.cpp -fopenacc -foffload=nvptx-none 但是我得到了这个错误:

跑步./g++ -v给了我以下信息:

如果有人能指出导致此错误的确切原因,我将不胜感激。

PS:我还为英特尔麦克风卸载编译了 gcc,但我现在不关心这个。

编辑1:

当我编译主机编译器时,--enable-offload-targets=nvptx-none=XXX应该指向哪里?编译好的 nvptx 还是 accel 编译器?此外,nvptx-tools目录包括bin目录和nvptx-none\bin目录。目前我将其指向后者。

0 投票
1 回答
9182 浏览

networking - rx-vlan-offload 和 tx-vlan-offload ethtool 选项到底有什么作用?

ethtool 手册页只给出了模糊的解释:

假设您可以启用它们,这些选项究竟完成了什么?

0 投票
1 回答
257 浏览

xeon-phi - 将 Intel 的 #pragma offload 转换为 OpenMP for Xeon Phi(性能问题和其他问题)

我使用英特尔 C++ 编译器 17.0.01,我有两个代码块。

第一个代码块在 Xeon Phi 上分配内存,如下所示:

第二个块评估上述内存并将其复制回主机:

这段代码运行得很好,但#pragma offload 只是英特尔编译器的一部分(我认为)。所以,我想将其转换为 OpenMP。

这就是我将第一个块转换为 OpenMP 的方式:

这就是我将第二个块转换为 OpenMP 的方式:

此外,我使用export OFFLOAD_REPORT=2它是为了更好地了解运行时发生的情况。

这是我的问题/问题:

  • 第一个代码块的 OpenMP 版本与 Intel 版本一样快 ( #pragma offload)。这里没有什么奇怪的。
  • 第二个代码块的 OpenMP 版本比 Intel 版本慢 5 倍。但是,MIC_TIME两者相同,但CPU_TIME不同(OpenMP 版本要高得多)。这是为什么?
  • 我的英特尔指令是最优的吗?
  • 我的 Intel -> OpenMP 翻译是否正确且最佳?

这里还有一些其他的,有点不同的问题:

  • 在测试机器上,我有两张 Intel Phi 卡。因为我想使用第二个,所以我这样做:#pragma omp target device(1).... 那是对的吗?
  • 如果我这样做#pragma omp target device(5)...,代码仍然有效!它运行在一张 Phi 卡(而不是 CPU)上,因为性能相似。这是为什么?
  • 我还在没有 Xeon Phi 的机器上尝试了我的软件(OpenMP 版本),它在 CPU 上运行得很好!这是有保证的吗?当您的机器上没有加速器时,target device(1)会被忽略吗?
  • 是否可以在 OpenMP 卸载区域内执行类似操作std::cout << print_phi_card_name_or_uid();(因此我可以确定我的软件在哪张卡上运行)?
0 投票
1 回答
1038 浏览

c# - Hangfire:从关键部分内部排队后台作业

尝试在 lock 语句中将作业排入队列时出现错误。

它抱怨分布式事务被禁用。但我不希望我的锁影响工作处理。如果我启用 MSDTC,它会保持锁定直到作业处理完成吗?这与我需要的相反。

将调用移到BackgroundJob.Enqueue()锁块之外并不方便,因为它可能在另一个方法中,这使得它难以提取(实际情况要困难得多):

有人可以在这里建议我需要的重构/解决方案吗?

0 投票
0 回答
218 浏览

c - 如何使用 OpenMP 将 C 中的用户定义结构传递给加速器?

我定义了一个结构,其中我有一个动态分配的数组,我需要通过一些 OpenMP 指令(在 C 代码中)将此结构从主机传输到加速器(在我的情况下,它将是一些 nvidia GPU) .

struct外观如下:

它初始化如下:

附加struct grid_config只包含一些标量,相关部分如下所示:

内存分配函数如下(为了便于阅读省略了NULL错误检查):

在我想在加速器(GPU)上运行的相关循环中,我想我可以做类似的事情

但这不起作用,因为我遇到编译器错误,例如Unsupported OpenACC construct Deep copy -- wf_gd使用cc.

首先,我不明白为什么编译器会提到 OpenACC,然后我也想知道是否可以使用这种数据结构,或者我是否需要在这种情况下摆脱它?

编辑:我试图在 CRAY 机器上编译它,这对编译器消息很重要,但不应该对一般问题起作用(如何将这样的构造传递给加速器 - 如果可能的话)。不幸的是,我现在可以访问那台机器,因此没有提供有关我使用的编译器版本的更多信息 - 但同样,这不应该与一般问题相关(至少在我的理解中)。

0 投票
0 回答
128 浏览

c++ - OpenMP 目标(更新)成

我正在配备英特尔至强融核协处理器的平台上使用 OpenMP 4.5 加速器模型。我想用 CPU + MIC 来联合解决问题。我需要使用类似于 Intel Offload into 的机制。我想立即将数据从缓冲区 A 从卡传输到缓冲区 B。下面的代码中介绍了这个示例。

我想使用 OpenMP 加速器模型来做到这一点。有可能的?