Skip to content

LinearMap with explicit SIMD support? #645

@tower120

Description

@tower120

I don't know how much this would fit into this crate, but LinearMap could significantly win from SIMD search.
I have implementation of similar container that store keys in wide::simd packs. It works on top of "the usual" Vec, but it would be
not so hard to port it to heapless::Vec.

Alternatively - it is possible to implement SIMD search on existent LinearMap for supported SIMD types... But as far as I
know - only desktop CPUs have zero-to-none penalty for loading from non-aligned memory to register. And looks like you
aim for embedded hardware... So you probably "have" to explicitly use SIMD types as key packs.

I understand that simd types is not stable in Rust, and wide crate supports only desktop hardware... But as a suggested solution for that: we could have simple custom SIMD types/traits which will initially points to wide implementation. Than they could be expanded by community on as-need basis...

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions