Ping On Thu, Oct 31, 2013 at 7:42 PM, Andrey Turetskiy <andrey.turets...@gmail.com> wrote: > Let's check my understanding: > 1) We can configure gcc with, say, --offload-target=mic,ptx. It means > that after build and install we have 3 compilers: for host, for mic > and for ptx. In general case, the number may be less, because one > compiler may suit more than one target/host (e.g.when host and one of > the targets both x86). All compilers are located together in 'prefix' > directory, so host compiler will find target gcc there just by name. > 2) Also, we can set option -foffload-target=hsail -B<path to > gcc_hsail>. It tells gcc to create offload binary for hsail too, > besides mic and ptx we've selected in configure. Hsail compiler should > be installed separately and can be found by name in directory we set > in '-B' option. If there is no right compiler there and in 'prefix' > directory, gcc throws error. > > The thing which is not quite clear for me is your way of compiler > options ammending. For example, I want to use knc compiler for offload > on mic, so target name is something like x86_64-k1om-linux. However, I > don't want to select offload target during configuration, I just use > compiler option: -foffload-target=x86_64-k1om-linux. How will gcc > recognize option like -foffload-target-x86_64-k1om-linux=<set of > options> if offload target hasn't been set during configuration? > > > On Tue, Oct 29, 2013 at 1:49 PM, Jakub Jelinek <ja...@redhat.com> wrote: >> On Tue, Oct 29, 2013 at 01:33:17PM +0400, Andrey Turetskiy wrote: >>> I wonder how compiler is going to choose which target binaries should >>> be created for offload? Will compiler make choice on its own or it is >>> the user who should add specific options like --offload-target=... >>> How does compiler know paths to target compilers? Will it use >>> environment variables or paths will be set during compiler >>> configuration? >> >> That needs to be designed. I'd say best would be to allow the default >> set of target compilers (if any at all) to be specified during configure, >> allow the user to override on the command line and look for the target >> compilers using similar mechanism as we use for looking for libraries, >> compiler binaries, ld, as etc. in the gcc driver, with possibility to >> override it say through GCC specs or -B. Note that also there needs to be >> a way to ammend compiler options for the individual targets (already talked >> about this earlier in some offloading thread on the mailing list). So, >> say if the corresponding host CU is compiled with -O3 -fopenmp -mavx >> -mtune=core-avx2, likely you want by default to use -O3 -fopenmp for the >> target compilation of the target portion of the CU, but not with the -m* >> options, but instead you should be able to specify -mwhatever-else that >> is appended after the options copied from the host compilation. >> So, I'd like to see that at configure time you specify say that you don't >> want any offloading support at all by default, or say mic + ptx (but leave >> hsail out), etc., and be able to then say >> -foffload-target=mic,hsail -foffload-target-mic=-mbar,-mbaz >> -foffload-target-hsail=-mfroboz >> (what exact strings to use instead of mic and hsail and ptx I guess depends >> on what will be the configuration triplets for those). >> >> Jakub > > > > -- > Best regards, > Andrey Turetskiy
-- Best regards, Andrey Turetskiy