[PATCH 4/4] OpenMP 4.0 offloading to Intel MIC: non-fallback testing
Ilya Verbin
iverbin@gmail.com
Thu Dec 18 17:43:00 GMT 2014
Hi,
2014-12-18 16:27 GMT+01:00 Thomas Schwinge <thomas@codesourcery.com>:
> Hi!
>
> On Thu, 30 Oct 2014 14:40:01 +0300, Ilya Verbin <iverbin@gmail.com> wrote:
>> This patch allows to run non-fallback 'make check-target-libgomp'. It passes to
>> the host compiler additional -B options with the paths to the offload compilers,
>> since non-installed host compiler doesn't know where to find mkoffload tools.
>> Also in case of intelmic offload targets it appends paths to liboffloadmic lib.
>
>> --- a/libgomp/configure.ac
>> +++ b/libgomp/configure.ac
>> @@ -280,9 +280,13 @@ else
>> multilib_arg=
>> fi
>>
>> +# Get accel target and path to install tree of accel compiler
>> +offload_additional_options=
>> +offload_additional_lib_paths=
>> offload_targets=
>> if test x"$enable_offload_targets" != x; then
>> for tgt in `echo $enable_offload_targets | sed -e 's#,# #g'`; do
>> + tgt_dir=`echo $tgt | grep '=' | sed 's/.*=//'`
>> tgt=`echo $tgt | sed 's/=.*//'`
>> case $tgt in
>> *-intelmic-* | *-intelmicemul-*)
>> @@ -295,10 +299,20 @@ if test x"$enable_offload_targets" != x; then
>> else
>> offload_targets=$offload_targets,$tgt_name
>> fi
>> + if test x"$tgt_dir" != x; then
>> + offload_additional_options="$offload_additional_options -B$tgt_dir/libexec/gcc/\$(target_alias)/\$(gcc_version) -B$tgt_dir/bin"
>> + offload_additional_lib_paths="$offload_additional_lib_paths:$tgt_dir/lib64:$tgt_dir/lib"
>> + else
>> + offload_additional_options="$offload_additional_options -B\$(libexecdir)/gcc/\$(target_alias)/\$(gcc_version) -B\$(bindir)"
>> + offload_additional_lib_paths="$offload_additional_lib_paths:$toolexeclibdir"
>> + fi
>> done
>> fi
>
> Hmm, maybe I'm seeing a problem where there isn't one, but in case I'm
> not: how will this work if there is more than one offloading compiler
> configured? Won't you get conflicting -B paths added to
> offload_additional_options in this case?
>
>> --- a/libgomp/testsuite/lib/libgomp.exp
>> +++ b/libgomp/testsuite/lib/libgomp.exp
>> @@ -169,6 +186,10 @@ proc libgomp_init { args } {
>>
>> # Disable color diagnostics
>> lappend ALWAYS_CFLAGS "additional_flags=-fdiagnostics-color=never"
>> +
>> + # Required to support non-fallback testing of '#pragma omp target'.
>> + # Help GCC to find target mkoffload.
>> + lappend ALWAYS_CFLAGS "additional_flags=${offload_additional_options}"
>> }
>
> What we're doing in OpenACC offloading testing (gomp-4_0-branch), is in
> the libgomp.oacc-c/c.exp (etc.) file cycle through all the available
> offloading devices, and then in there -- I think -- such options should
> be set, that are specific to one particular offloading device/compiler?
>
>
> Grüße,
> Thomas
I have not tested a compiler, configured to support 2 different
offloading targets, so there might be some corner cases.
In this place I don't see any problems, at least for the case with
installed offloading compilers.
One -B allows to find mkoffload in lto-wrapper:compile_offload_image.
This function tries to open all paths + '/accel/target_name/mkoffload'
suffix. So, there should be no conflicts.
Another -B allows mkoffload to find target driver. It tries to open
'host_name-accel-target_name-gcc', so, there also should be no
conflicts.
However, I still did not tried to enable 'make check' with
non-installed offloading compilers. Probably such target specific
paths can help there.
-- Ilya
More information about the Gcc-patches
mailing list