[HPGMG Forum] Do we want the benchmark to go into intrinsics?
jed at jedbrown.org
Wed Apr 30 17:51:47 UTC 2014
Brian Van Straalen <bvstraalen at lbl.gov> writes:
> I think we should have as simple a primary designation. OpenMP3.1
> seems reasonable now to add. MPI-1.1 standard, I don’t think we need
> BLAS anywhere. I suspect that vendors are already very well motivated
> to deliver a competent BLAS, and if not ATLAS can find it for a
> platform. But a killer BLAS doesn’t help us very much. I don’t think
> putting a VSIPL helps us much either. We can be even more portable
> than HPL really. Everyone has a C compiler I think.
The portable version (e.g., pure C99) always has to work.
> I would be open to adding Vectors if we can abstract the Vector
> programming requirements in HPGMG with an unified, if small API. For
> this I think we look at the superset of operations for several current
> and recent past platforms. So, VEC2FMA, VEC2ADD, VEC4FMA as macros
> and people can help us populate this HPGMGVector.h head file with
> their platform specifics.
This code won't really be performance-portable either, due to different
numbers of registers, the availability of functions like vec_nmsub(),
etc. It's not a lot of code and I think it's better to duplicate in
each optimization effort than to try to use a macro language to create
the desired specialization.
> default implementations are just regular operations in C. Adding a
> new benchmark intrinsic means adding the default C implementation as
> as many vendor specific intrinsics as the developer knows. For
> instance, we might want to also put ARM VFP instructions in here if we
> can get an AMR VFP processor in house to play with. We probably want
> SSE, AVX, QPX, VFP, C. A configuration parameter might let us create
> a compiler benchmark by making all our vector code drop to C and watch
> how the native compiler handles things.
Selection of implementation is a run-time option in my code. All
variants supported on the given target are compiled.
> I would think every time a new machine and students show up they will
> try several compilers natively, and our vectors, and show up at a
> conference and tell us about it., thus creating the correct public
> shaming motivation while still allowing the same team to augment our
> vector set and show how well the machine can do.
The reference implementation will always be available, so if the new
architecture does not support the existing specializations, they'll get
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 835 bytes
Desc: not available
More information about the HPGMG-Forum