[ 
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)

Reply via email to