2

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

lto-wrapper: fatal error: problem with building target image for nvptx-none

compilation terminated.
/mnt/home/george/usr/local/gcc-7/bin/../lib/gcc/x86_64-pc-linux-gnu/7.0.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: lto-wrapper failed
collect2: error: ld returned 1 exit status

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

Using built-in specs.
COLLECT_GCC=../g++
COLLECT_LTO_WRAPPER=/mnt/home/george/usr/local/gcc-7/bin/../libexec/gcc/x86_64-pc-linux-gnu/7.0.0/lto-wrapper
OFFLOAD_TARGET_NAMES=x86_64-intelmicemul-linux-gnu:nvptx-none
Target: x86_64-pc-linux-gnu
Configured with: ../gcc-7-20161211/configure --prefix=/home/george/usr/local/gcc-7 --disable-multilib --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --target=x86_64-pc-linux-gnu --enable-offload-targets=x86_64-intelmicemul-linux-gnu=/home/george/usr/local/gcc-7-mic,nvptx-none=/home/george/usr/local/nvptx-tools/nvptx-none --with-cuda-driver=/usr/local/cuda-7.5
Thread model: posix
gcc version 7.0.0 20161211 (experimental) (GCC)`

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

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

编辑1:

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

4

0 回答 0