You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@arrow.apache.org by "Neal Richardson (Jira)" <ji...@apache.org> on 2022/01/28 15:02:00 UTC

[jira] [Commented] (ARROW-15368) [C++] [Docs] Improve our SIMD documentation

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