tustvold commented on code in PR #2324: URL: https://github.com/apache/arrow-rs/pull/2324#discussion_r938584363
########## arrow/README.md: ########## @@ -101,16 +110,38 @@ cargo run --example read_csv [arrow]: https://arrow.apache.org/ +## Performance Tips -## Performance +Arrow aims to be as fast as possible out of the box, whilst not compromising on safety. However, +it relies heavily on LLVM auto-vectorisation to achieve this. Unfortunately the LLVM defaults, +particularly for x86_64, favour portability over performance, and LLVM will consequently avoid +using more recent instructions that would result in errors on older CPUs. -Most of the compute kernels benefit a lot from being optimized for a specific CPU target. -This is especially so on x86-64 since without specifying a target the compiler can only assume support for SSE2 vector instructions. -One of the following values as `-Ctarget-cpu=value` in `RUSTFLAGS` can therefore improve performance significantly: +To address this it is recommended that you specify the override the LLVM defaults either Review Comment: Oops this keeps a typo from my PR, "specify the override the". Will fix -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
