OpenACC offload to nvptx
Thomas Schwinge
thomas@codesourcery.com
Wed Apr 27 16:42:00 GMT 2016
Hi!
On Tue, 26 Apr 2016 09:30:04 +0100, Salvatore Filippone <filippone.salvatore@gmail.com> wrote:
> I seem unable to get this to work: I managed to build and install
> trunk using the trunk-offload-big scripts by Thomas Schwinge
(As published on
<https://gcc.gnu.org/wiki/Offloading#How_to_try_offloading_enabled_GCC>,
I suppose.) Do your libgomp test results
(build-gcc/x86_64-pc-linux-gnu/libgomp/testsuite/libgomp.sum) look
reasonable? That is, are you seeing in there about 2800 lines that match
the "^PASS: libgomp\.oacc-.* -DACC_DEVICE_TYPE_nvidia=1" regular
expression?
> and have
> been trying the test program at
> http://scelementary.com/2015/04/25/openacc-in-gcc.html, with the
> following result:
> e802756@sow768056c-li [128] 09:21 AM [OPENACC] gcc pi.c -fopenacc
> -foffload=nvptx-none -foffload="-O3" -O3 -o gpu.x
> gcc: warning: '-x lto' after last input file has no effect
> gcc: fatal error: no input files
> compilation terminated.
> lto-wrapper: fatal error: gcc returned 1 exit status
> compilation terminated.
> collect2: fatal error: lto-wrapper returned 1 exit status
> compilation terminated.
Certainly not a very helpful error message... :-)
> e802756@sow768056c-li [129] 09:21 AM [OPENACC] module li
> Currently Loaded Modulefiles:
> 1) gnu/7.0.0-acc
I don't know what that "module" stuff is, but I think I have an idea what
the problem might be: if you want to use the plain "gcc" command with
offloading (without setting up a lot of "-B" paths), you'll have to
configure the target and all offloading compilers to install into the
same prefix -- which my scripts (intentionally) are not doing. (The
reason is that the installation of several toolchains into the same
prefix will trample upon some of each other's files, which we have not
yet sorted out properly. It probably won't do any actual harm, but I
wanted to avoid that anyway. I have some ideas about how to
improve/resolve that.)
If you modify the BUILD-nvptx-tools, BUILD-gcc-offload-nvptx-none,
INSTALL-gcc-offload-nvptx-none,
INSTALL-gcc-offload-x86_64-intelmicemul-linux-gnu, and BUILD-gcc scripts
to refer to "$T"/install instead of "$T"/install/offload-nvptx-none, and
also to "$T"/install instead of
"$T"/install/offload-x86_64-intelmicemul-linux-gnu, and rebuild
everything, does it then work?
> e802756@sow768056c-li [130] 09:21 AM [OPENACC] gcc -v
> Using built-in specs.
> COLLECT_GCC=gcc
> COLLECT_LTO_WRAPPER=/opt/gnu/7.0.0-acc/bin/../libexec/gcc/x86_64-pc-linux-gnu/7.0.0/lto-wrapper
> OFFLOAD_TARGET_NAMES=nvptx-none
> Target: x86_64-pc-linux-gnu
> Configured with:
> /home/travel/GCC/BUILDS/TRY-offload/source/gcc/configure --prefix=
> --disable-bootstrap --enable-languages=c,c++,fortran,lto
> --disable-multilib
> --enable-offload-targets=nvptx-none=/opt/gnu/7.0.0-acc
> --with-cuda-driver-include=/opt/cuda/7.5/include
> --with-cuda-driver-lib=/usr/lib64/nvidia CC='gcc -m64' CXX='g++ -m64'
> --with-sysroot=
> Thread model: posix
> gcc version 7.0.0 20160425 (experimental) (GCC)
Part of the problem is that the path specified with
--enable-offload-targets=nvptx-none=[...] is only used for internal
testing (libgomp testsuite), but is not considered for use for the
installed compiler. (It's a bit compplicated to do that.)
Grüße
Thomas
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 472 bytes
Desc: not available
URL: <https://gcc.gnu.org/pipermail/gcc-help/attachments/20160427/7ae10f64/attachment.sig>
More information about the Gcc-help
mailing list