Skip to content

Refine SIMD implementation #646

@KHLee529

Description

@KHLee529

Abstract

According to the discussion in PR #641, there is an unintended recursive program flow in current SIMD implementation. Recursion is not proper in low level basic container especially for performance-critical functions.
This issue tracks the refinement of SIMD implementation and reconsider the overall structure of our SIMD library.

Tasks

  • Remove unintended recursion
  • Discuss on SIMD implementation

Problem on current SIMD implementation

Current SIMD implementation is based on functionality module. For example, add, subtract, multiply, divide are implemented in every different SIMD platform. In this form, the logic of each functionality are actually implemented multiple times in different part of the library. Even platform without SIMD support needs its own "generic" version of implementation. Comparing with other SIMD library, take xsimd for instance, are modularized by the SIMD basic instructions such as load value to vector registry, store vector register to memory, arithmetic operations on two vector registers. In this way, the program logic of different SIMD platform can be unify and implement only once, which should be more maintainable and understandable.

Metadata

Metadata

Assignees

No one assigned

    Labels

    arrayMulti-dimensional array implementationperformanceProfiling, runtime, and memory consumption

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions