(j3.2006) What do typical processors do?

Bill Long longb
Fri Jul 21 03:17:18 EDT 2017


If you know the arrays are small, then calling the *GEMM routines in the first place is likely a performance mistake. 

Cheers,
Bill

> On Jul 19, 2017, at 3:31 PM, Clune, Thomas L. (GSFC-6101) <thomas.l.clune at nasa.gov> wrote:
> 
> You might also want to benchmark just to see how much overhead there would be in the worst case with extra temps.   The operations aside from the *GEMM are trivial, so unless the arrays are particularly small the *GEMM will dominate the cost even with the extra trips to/from memory for the intermediate expressions.   Of course if you are teetering on the edge of fitting in memory it may matter more ?
> 
> 
> 
> 
>> On Jul 18, 2017, at 10:10 PM, Keith Bierman <khbkhb at gmail.com> wrote:
>> 
>> 
>> 
>> 
>>> On Jul 18, 2017, at 6:33 PM, Van Snyder <Van.Snyder at jpl.nasa.gov> wrote:
>>> 
>>>> On Tue, 2017-07-18 at 23:30 +0000, Bill Long wrote:
>>>> I .....
>>> 
>>> CGEMM can be told to use the conjugate transpose of its first or second
>>> argument.  Maybe someday processors will recognize
>>> 
>>> C = matmul ( A, conjg(transpose(B)) )
>>> .....
>>> Would a processor recognize that and turn it into a call to CGEMM
>>> without creating temps?
>> 
>> Get the usage into a SPEC benchmark and processors will pattern match as appropriate.  Without sufficient proof it is worth the trouble .... Processors will probably not.  It isn't that it is hard, but there's almost always a virtually infinite list of transforms a compiler could do...And a pretty small number of people to do the work. 
>> _______________________________________________
>> J3 mailing list
>> J3 at mailman.j3-fortran.org
>> http://mailman.j3-fortran.org/mailman/listinfo/j3
> 
> _______________________________________________
> J3 mailing list
> J3 at mailman.j3-fortran.org
> http://mailman.j3-fortran.org/mailman/listinfo/j3

Bill Long                                                                       longb at cray.com
Principal Engineer, Fortran Technical Support &   voice:  651-605-9024
Bioinformatics Software Development                      fax:  651-605-9143
Cray Inc./ 2131 Lindau Lane/  Suite 1000/  Bloomington, MN  55425





More information about the J3 mailing list