GCC7(中继)OpenACC卸载(nvptx)问题

GCC7(中继)OpenACC卸载(nvptx)问题,gcc,openacc,offloading,Gcc,Openacc,Offloading,我一直在尝试使用gcc(trunk版本)卸载,但到目前为止我没有做到这一点。我在这个网站上编译了gcc,遵循OpenACC与nvidia卸载的说明: 我还按照同一网站的说明编译了主机编译器。然而,当我试图编译任何启用OpenACC的东西时,我会遇到一个错误。为了确保使用正确的编译器,我将cd放入主机编译器的目录中,并运行以下操作: /g++main.cpp-fopenacc-foffload=nvptx none 但我得到了这个错误: lto-wrapper: fatal error: prob

我一直在尝试使用gcc(trunk版本)卸载,但到目前为止我没有做到这一点。我在这个网站上编译了gcc,遵循OpenACC与nvidia卸载的说明: 我还按照同一网站的说明编译了主机编译器。然而,当我试图编译任何启用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工具
目录包括一个
bin
目录和一个
nvptx none\bin
目录。目前我将它指向后者。

似乎nvptx链接器失败了。关于
-foffload=nvptx none=“-Wl,-verbose-Wl,-debug”
?@IlyaVerbin谢谢你的回复,我的朋友。不幸的是,建议的命令给出了完全相同的错误。我现在要用更多的信息编辑我的问题,以防万一。我猜构建过程出了问题。也许你可以尝试使用脚本在。我可以使用该脚本构建带有openacc支持的GCC6.2。当然,您必须做一些更改来说明路径的更改。我尝试过同样的nvptx卸载,但使用稍新的GCC 7.1.0,并且在我的Fedora 26盒上一切都很好。您是否在GCC 7.1.0中尝试过相同的过程?另外,你能给我“ls-l/home/george/usr/local/nvptx-tools/nvptx-none”的输出吗?我终于做到了。我想这仅仅是因为具有卸载支持的gcc7现在是Debian测试库的一部分。所以,我刚刚输入了sudo apt get install gcc-7-offload-nvptx,一切都很顺利:)当然,与PGI编译器相比,我的OpenACC代码的性能真的很差。但至少它起作用了!