[
https://issues.apache.org/jira/browse/ARROW-15368?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17483809#comment-17483809
]
Neal Richardson commented on ARROW-15368:
-----------------------------------------
To be clear, {{ARROW_SIMD_LEVEL}} and {{ARROW_RUNTIME_SIMD_LEVEL}} are cmake
variables, {{ARROW_USER_SIMD_LEVEL}} is an env var.
> [C++] [Docs] Improve our SIMD documentation
> -------------------------------------------
>
> Key: ARROW-15368
> URL: https://issues.apache.org/jira/browse/ARROW-15368
> Project: Apache Arrow
> Issue Type: Improvement
> Components: C++, Documentation
> Reporter: Jonathan Keane
> Priority: Major
>
> We should document the various env vars ({{ARROW_SIMD_LEVEL}},
> {{ARROW_RUNTIME_SIMD_LEVEL}}, {{ARROW_USER_SIMD_LEVEL}}, others?).
> We should also document what the defaults are (and what that means for
> performance and possible optimization if you're compiling and you know you'll
> be on more/less modern hardware:
> e.g. pyarrow and the R package are compiled with SSE4_2, but there is some
> amount of runtime dispatched simd code, and MAX there means that it will
> compile everything it can. but at runtime it will use whatever is available.
> so if you compile on a machine with AVX512 and run on a machine with AVX512,
> you'll get any AVX512 runtime dispatched code that's available (probably not
> much). There is more (esp. in the query engine) that is runtime AVX2.
> FWIW I (neal) would leave ARROW_RUNTIME_SIMD_LEVEL=MAX always. You can set
> ARROW_USER_SIMD_LEVEL to change/limit what level the runtime dispatch uses
--
This message was sent by Atlassian Jira
(v8.20.1#820001)