E3SM-Project / HOMMEXX

Clone of ACME for CMDV-SE project to convert HOMME to C++
11 stars 0 forks source link

SIMD stuff #339

Closed ambrad closed 6 years ago

ambrad commented 6 years ago

Print AVX or SIMD at startup.

Force SIMD calls to be inline.

ambrad commented 6 years ago

On KNL one sees:

HOMMEXX AVX_VERSION: 512
HOMMEXX VECTOR_SIZE: 8
HOMMEXX vector tag: AVX

On GPU one sees:

HOMMEXX AVX_VERSION: 0
HOMMEXX VECTOR_SIZE: 1
HOMMEXX vector tag: SIMD

(edited to contain just the relevant lines)

ambrad commented 6 years ago

GPU and KNL tests pass. I ran full the full single-node performance scripts on V100 and SKX and confirmed performance is correct.

ambrad commented 6 years ago

I'm removing inlining from this PR, as it hurts ARM performance.

ambrad commented 6 years ago

Occurred to me there's a string function in the vector classes, IIRC. Will look tmw. Could replace the functions with Scalar::str() or whatever it's called.