SIMD instructions with Rust on Android by Guillaume Endignoux - Rust Zürisee June 2023

Discover how to leverage SIMD instructions with Rust on Android devices, exploring the arch feature and rust-intrinsics libraries, and overcoming security and compatibility issues for improved performance and compatibility.

Key takeaways
  • The speaker’s experience using SIMD instructions with Rust on Android devices is presented.
  • Direct usage of SIMD instructions is not allowed due to security and compatibility issues.
  • The arch feature and rust-intrinsics libraries were used to enable SIMD instructions.
  • Android’s NDK and Rust’s compiler require specific configurations.
  • Intrinsics for SIMD are not inlined by default, which is a problem.
  • Performance is improved by inlining functions.
  • Tests and benchmarks should include real hardware to verify results.
  • The speaker encountered difficulties in detecting supported features and calling them.
  • He used a detector to identify features and annotated functions to enable SIMD.
  • The arch feature and rust-intrinsics libraries are recommended for use.
  • The speaker discussed potential issues with CPU compatibility and code optimization.
  • Debugging and testing with real hardware is important.
  • He used macros to generate functions for different platforms.
  • He concluded that inlining is an essential optimization technique.
  • SIMD instructions can be used to optimize algorithms, but there are limitations.