[HPGMG Forum] Do we want the benchmark to go into intrinsics?

Jed Brown 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
the reference.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 835 bytes
Desc: not available
URL: <https://hpgmg.org/lists/archives/hpgmg-forum/attachments/20140430/06e7cb7f/attachment-0001.bin>

More information about the HPGMG-Forum mailing list