[ 
https://issues.apache.org/jira/browse/ARROW-15368?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Will Jones updated ARROW-15368:
-------------------------------
    Fix Version/s: 10.0.0

> [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
>             Fix For: 10.0.0
>
>
> 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
> Additionally we should document that valgrind does not support AVX512: 
> [https://bugs.kde.org/show_bug.cgi?id=383010] 
> And users should set ARROW_USER_SIMD_LEVEL to AVX2 if they plan to run 
> valgrind on an AVX512 capable machine similar to what we do for our 
> [CI|https://github.com/apache/arrow/blob/bc1a16cd0eceeffe67893a7e8000d2dd28dcf3f1/docker-compose.yml#L309]



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to