Commit 6f7896ab authored by Kristian Loewe's avatar Kristian Loewe Committed by Tim Coalson
Browse files

Speed up correlation computation using SIMD instructions

Speeds up the computation of correlation values in
  wb_command -cifti-correlation,
  wb_command -cifti-correlation-gradient, and
  wb_view's dynamic connectivity feature
using SIMD-based dot product implementations.

To achieve this, the two modules cpuinfo and dot, from
  https://github.com/kloewe/mod-cpuinfo/commit/3799c70 and
  https://github.com/kloewe/mod-dot/commit/3b83d6a, respectively,
are used.

Depending on the definition of CARET_DOTFCN, src/Common/dot_wrapper.h
includes the functions from the dot module or an inline function that
implements the originally used dot product computation. If the dot module
is used, the function sddot() dispatches the call to sddot_avx(),
sddot_sse2(), or sddot_naive(), depending on the supported instruction set
extensions. These are determined at runtime using the functions from the
cpuinfo module.

The new functions are currently only used in the Linux version.
parent a9a5bb87
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment