[petsc-dev] More prefetch

Eric Chamberland Eric.Chamberland at giref.ulaval.ca
Mon Nov 3 09:17:21 CST 2014


Hi,

it all looks like we have a bug with prefetch with PGI 14.7 + cpu 
specific compilation options.  We have a "signal 4 : illegal instruction 
(not reset when caught) " within MatMult_SeqAIJ_Inode.  The only thing 
we see there than can bug is the prefetch thing...

We were asking ourself two things:

#1- Since we don't kow how to handle these kinds of functions (_mm_*), 
how ca we test them?  Is the "example" in Configure.py:606 sufficient to 
validate a good/bad result?

#2- How can we disable PETSC_Prefetch when doing the petsc configuration?

Thanks,

Eric

On 12/03/2010 02:35 PM, Jed Brown wrote:
> I just pushed some prefetch for (S)BAIJ kernels.  The biggest win is for
> MatSolve_SeqSBAIJ_*_NaturalOrdering_inplace where this patch is showing
> 30 to 50% speedups on Core 2 and Opteron.  The other kernels tend to
> improve by 20 to 30% on Opteron with less consistent improvements on
> Core 2 but usually near 20%.
>
> I have not found any cases to be slowed down by this patch, provided the
> matrix does not fit in cache.  If the matrix does fit in cache, then the
> non-temporal hint is bad and will cause matrix entries to be
> unnecessarily fetched from memory.  I think the scenarios in which
> end-to-end performance is limited by matrix kernels where the entire
> matrix fits in cache are much more rare than those where the matrix does
> not fit in cache, thus I consider the non-temporal hint to be an
> unambiguous win.  If anyone sees a negative performance impact, please
> report it.
>
> Jed




More information about the petsc-dev mailing list