Skip to content

v4.1.x: op_avx: use MCA enum flags instead of integer values#8441

Merged
jsquyres merged 1 commit intoopen-mpi:v4.1.xfrom
jsquyres:pr/v4.1.x/op-avx-enum
Feb 2, 2021
Merged

v4.1.x: op_avx: use MCA enum flags instead of integer values#8441
jsquyres merged 1 commit intoopen-mpi:v4.1.xfrom
jsquyres:pr/v4.1.x/op-avx-enum

Conversation

@jsquyres
Copy link
Member

@jsquyres jsquyres commented Feb 2, 2021

MCA enums make it easier for users to see/set MCA flag values. Also
add "op_avx_capabilities" read-only MCA var that shows what is supported
on your platform, regardless of what value the user has set in
"opal_avx_support".

For example, ompi_output shows all the valid values:

$ ompi_info --all --parsable | grep _avx_
mca:op:avx:param:op_avx_capabilities:value:SSE,SSE2,SSE3,SSE4.1,AVX
mca:op:avx:param:op_avx_capabilities:source:default
mca:op:avx:param:op_avx_capabilities:status:read-only
mca:op:avx:param:op_avx_capabilities:level:4
mca:op:avx:param:op_avx_capabilities:help:Level of SSE/MMX/AVX support available in the current environment
mca:op:avx:param:op_avx_capabilities:enumerator:value:1:SSE
mca:op:avx:param:op_avx_capabilities:enumerator:value:2:SSE2
mca:op:avx:param:op_avx_capabilities:enumerator:value:4:SSE3
mca:op:avx:param:op_avx_capabilities:enumerator:value:8:SSE4.1
mca:op:avx:param:op_avx_capabilities:enumerator:value:16:AVX
mca:op:avx:param:op_avx_capabilities:enumerator:value:32:AVX2
mca:op:avx:param:op_avx_capabilities:enumerator:value:256:AVX512F
mca:op:avx:param:op_avx_capabilities:enumerator:value:512:AVX512BW
mca:op:avx:param:op_avx_capabilities:deprecated:no
mca:op:avx:param:op_avx_capabilities:type:int
mca:op:avx:param:op_avx_capabilities:disabled:false
mca:op:avx:param:op_avx_support:value:SSE,SSE2,SSE3,SSE4.1,AVX
mca:op:avx:param:op_avx_support:source:default
mca:op:avx:param:op_avx_support:status:read-only
mca:op:avx:param:op_avx_support:level:4
mca:op:avx:param:op_avx_support:help:Level of SSE/MMX/AVX support to be used, capped by the local architecture capabilities
mca:op:avx:param:op_avx_support:enumerator:value:1:SSE
mca:op:avx:param:op_avx_support:enumerator:value:2:SSE2
mca:op:avx:param:op_avx_support:enumerator:value:4:SSE3
mca:op:avx:param:op_avx_support:enumerator:value:8:SSE4.1
mca:op:avx:param:op_avx_support:enumerator:value:16:AVX
mca:op:avx:param:op_avx_support:enumerator:value:32:AVX2
mca:op:avx:param:op_avx_support:enumerator:value:256:AVX512F
mca:op:avx:param:op_avx_support:enumerator:value:512:AVX512BW
mca:op:avx:param:op_avx_support:deprecated:no
mca:op:avx:param:op_avx_support:type:int
mca:op:avx:param:op_avx_support:disabled:false

Signed-off-by: Jeff Squyres jsquyres@cisco.com
(cherry picked from commit 566412e)

MCA enums make it easier for users to see/set MCA flag values.  Also
add "op_avx_capabilities" read-only MCA var that shows what is supported
on your platform, regardless of what value the user has set in
"opal_avx_support".

For example, ompi_output shows all the valid values:

```
$ ompi_info --all --parsable | grep _avx_
mca:op:avx:param:op_avx_capabilities:value:SSE,SSE2,SSE3,SSE4.1,AVX
mca:op:avx:param:op_avx_capabilities:source:default
mca:op:avx:param:op_avx_capabilities:status:read-only
mca:op:avx:param:op_avx_capabilities:level:4
mca:op:avx:param:op_avx_capabilities:help:Level of SSE/MMX/AVX support available in the current environment
mca:op:avx:param:op_avx_capabilities:enumerator:value:1:SSE
mca:op:avx:param:op_avx_capabilities:enumerator:value:2:SSE2
mca:op:avx:param:op_avx_capabilities:enumerator:value:4:SSE3
mca:op:avx:param:op_avx_capabilities:enumerator:value:8:SSE4.1
mca:op:avx:param:op_avx_capabilities:enumerator:value:16:AVX
mca:op:avx:param:op_avx_capabilities:enumerator:value:32:AVX2
mca:op:avx:param:op_avx_capabilities:enumerator:value:256:AVX512F
mca:op:avx:param:op_avx_capabilities:enumerator:value:512:AVX512BW
mca:op:avx:param:op_avx_capabilities:deprecated:no
mca:op:avx:param:op_avx_capabilities:type:int
mca:op:avx:param:op_avx_capabilities:disabled:false
mca:op:avx:param:op_avx_support:value:SSE,SSE2,SSE3,SSE4.1,AVX
mca:op:avx:param:op_avx_support:source:default
mca:op:avx:param:op_avx_support:status:read-only
mca:op:avx:param:op_avx_support:level:4
mca:op:avx:param:op_avx_support:help:Level of SSE/MMX/AVX support to be used, capped by the local architecture capabilities
mca:op:avx:param:op_avx_support:enumerator:value:1:SSE
mca:op:avx:param:op_avx_support:enumerator:value:2:SSE2
mca:op:avx:param:op_avx_support:enumerator:value:4:SSE3
mca:op:avx:param:op_avx_support:enumerator:value:8:SSE4.1
mca:op:avx:param:op_avx_support:enumerator:value:16:AVX
mca:op:avx:param:op_avx_support:enumerator:value:32:AVX2
mca:op:avx:param:op_avx_support:enumerator:value:256:AVX512F
mca:op:avx:param:op_avx_support:enumerator:value:512:AVX512BW
mca:op:avx:param:op_avx_support:deprecated:no
mca:op:avx:param:op_avx_support:type:int
mca:op:avx:param:op_avx_support:disabled:false
```

Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
(cherry picked from commit 566412e)
@jsquyres jsquyres added this to the v4.1.1 milestone Feb 2, 2021
@jsquyres jsquyres requested a review from bosilca February 2, 2021 19:31
@jsquyres jsquyres merged commit 032871b into open-mpi:v4.1.x Feb 2, 2021
@jsquyres jsquyres deleted the pr/v4.1.x/op-avx-enum branch February 2, 2021 20:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants