Can anyone comment on the status of Fortran calls for Apple's
wunder-routines?
Sean
On Sep 15, 2004, at 12:00 PM, Ian Ollmann wrote:
> That includes links to sample code here:
http://developer.apple.com/hardware/ve/downloads/fortran_sample.tar.gz
> The code looks like it depends on C stubs to wrap the vector
datatypes, but I (thankfully) don't understand enough
> FORTRAN to know if that is required or not or what the issues are
that cause the need for the C wrappers. If I had
> to guess, I would assume datatype manipulations and/or compiler
support.
Yes, the issue here is that there was never a language extension added
on to FORTRAN to use AltiVec. Motorola did define one for C however:
Happily, C is callable from FORTRAN, as long as you observe
FORTRAN's function calling conventions. Largely this boils down to
everything is passed by address, not value, and some matrix storage
order convention issues. If you are lazy in your C code and don't
handle misalignment, then you'll have to make sure your fortran arrays
are 16 byte aligned. This can be done by creating them with
allocate().
Some of Accelerate.framework is callable directly from FORTRAN. The
rest can be called if you make small C wrapper functions that convert
function parameters passed by value to those passed by address. This
should be three lines of code for each one, so the only difficulty
here is for people who don't really understand C or pointers.
I'm not aware of any particular reason why there could not be a
AltiVec/VMX/Velocity Engine extension to FORTRAN, though there might
be some difficulties since the loads, stores and prefetch hints seem
to require pointers. This would probably be something to take up with
the IBM XLF compiler team. They have support for PPC intrinsics in
xlf, and experience with the C programming interface extensions in
xlc already so I suspect they already have some features resident in
the compiler that could be turned towards this goal.
Ian
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Scitech mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/scitech/email@hidden
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Scitech mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/scitech/email@hidden