On Tue, Nov 04, 2014 at 07:41:42AM -0800, Steve Kargl wrote:
> On Tue, Nov 04, 2014 at 03:34:43PM +0100, Bernd Schmidt wrote:
> > The ptx port by its nature is lacking features that are expected on 
> > "normal" machines, such as alloca and indirect jumps. We have a subset 
> > of the C library which contains functions that can be implemented on the 
> > target (excluding things like file I/O other than printf which is a ptx 
> > builtin).
> > 
> > It would be good to be able to also build as much of libgfortran as 
> > possible, and the following patch is what I've been using so far. It 
> > recognizes the target at configure time and restricts the list of 
> > compiled files, as well as providing a LIBGFOR_MINIMAL define for #ifdef 
> > tests. There's also a new file minimal.c which contains alternative 
> > implementations of some functionality (using printf to write error 
> > messages rather than fprintf and such). Constructors are currently 
> > unimplemented on ptx and therefore the init function is commented out.
> > 
> > Comments on the approach, do the Fortran maintainers have a preference 
> > how this should look? The whole thing is good enough to substantially 
> > reduce the number of failures when trying to run the Fortran testsuites 
> > on nvptx (although many remain).
> > 
> 
> It is unclear to me from reading the diff whether this patch 
> cause gfortran on ptx to knowingly violate the fortran standard.
> If the answer is "yes, this patch causes gfortran on ptx to
> violate the standard", then the patch is IMHO unacceptable.

The point is, if the target can implement just a subset of the Fortran (or
C or C++) standards, then ideally if you use anything that is not supported
would just cause always host fallback, the code will still work, but will
not be offloaded.  So even supporting a subset of the standard is
worthwhile, usually one will just offload the most performance critical
parts of his code.

        Jakub

Reply via email to