问题标签 [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.
gcc - GCC 是否具有与 pgcc 的 -Minfo=accel 类似的参数?
我正在尝试在使用 OpenACC 卸载到 NVIDIA GPU 的 GCC 上编译代码,但我无法找到与上述编译器类似的编译器选项。有没有办法告诉 GCC 在与卸载相关的所有操作上更加详细?
cryptography - 如何将模幂运算卸载到 Octeon II 加密协处理器
是否可以将 RSA 和 Diffie-Hellman 所需的模幂运算卸载到 Octeon II 平台附带的硬件(加密协处理器)。
在一些文档中,我看到 Octeon II 平台确实支持这一点。但是,我不知道该怎么做。要使用什么宏等?
谁能给我一些指导?
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
nvidia - gcc - openacc - 编译的程序无法正常运行
最近,GCC 社区已经做出了一些努力,在他们的编译器中支持 OpenACC。所以,我想尝试一下。
使用这个与 GCC 网站上的主要文档很接近的分步教程(教程),我能够编译和构建支持 OpenACC 的GCC 6.1 。
然后,我使用以下命令编译了我的程序:
gcc pi.c -fopenacc -foffload=nvptx-none -foffload="-O3" -O3
而且,一切都没有任何错误。
执行没有错误,但没有正确答案。
这是我的 C 代码和正在运行的程序的输出:
这是运行后的输出a.out
:
有任何想法吗?
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
目录。目前我将其指向后者。
networking - rx-vlan-offload 和 tx-vlan-offload ethtool 选项到底有什么作用?
ethtool 手册页只给出了模糊的解释:
假设您可以启用它们,这些选项究竟完成了什么?
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();
(因此我可以确定我的软件在哪张卡上运行)?
c# - Hangfire:从关键部分内部排队后台作业
尝试在 lock 语句中将作业排入队列时出现错误。
它抱怨分布式事务被禁用。但我不希望我的锁影响工作处理。如果我启用 MSDTC,它会保持锁定直到作业处理完成吗?这与我需要的相反。
将调用移到BackgroundJob.Enqueue()
锁块之外并不方便,因为它可能在另一个方法中,这使得它难以提取(实际情况要困难得多):
有人可以在这里建议我需要的重构/解决方案吗?
c - 如何使用 OpenMP 将 C 中的用户定义结构传递给加速器?
我定义了一个结构,其中我有一个动态分配的数组,我需要通过一些 OpenMP 指令(在 C 代码中)将此结构从主机传输到加速器(在我的情况下,它将是一些 nvidia GPU) .
struct
外观如下:
它初始化如下:
附加struct
grid_config
只包含一些标量,相关部分如下所示:
内存分配函数如下(为了便于阅读省略了NULL错误检查):
在我想在加速器(GPU)上运行的相关循环中,我想我可以做类似的事情
但这不起作用,因为我遇到编译器错误,例如Unsupported OpenACC construct Deep copy -- wf_gd
使用cc
.
首先,我不明白为什么编译器会提到 OpenACC,然后我也想知道是否可以使用这种数据结构,或者我是否需要在这种情况下摆脱它?
编辑:我试图在 CRAY 机器上编译它,这对编译器消息很重要,但不应该对一般问题起作用(如何将这样的构造传递给加速器 - 如果可能的话)。不幸的是,我现在可以访问那台机器,因此没有提供有关我使用的编译器版本的更多信息 - 但同样,这不应该与一般问题相关(至少在我的理解中)。
c++ - OpenMP 目标(更新)成
我正在配备英特尔至强融核协处理器的平台上使用 OpenMP 4.5 加速器模型。我想用 CPU + MIC 来联合解决问题。我需要使用类似于 Intel Offload into 的机制。我想立即将数据从缓冲区 A 从卡传输到缓冲区 B。下面的代码中介绍了这个示例。
我想使用 OpenMP 加速器模型来做到这一点。有可能的?