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

Labels

arrayMulti-dimensional array implementationperformanceProfiling, runtime, and memory consumption

Type

No fields configured for Bug.

Projects

Status

In Progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions