Blosc / Blosc/c-blosc2

Implement filters on ppc64le with actual Altivec-SIMD instructions

Open
#80 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C
Stars
584
Forks
113
PR merge metrics
No merged PRs in 30d

Description

For now, the code is just auto-translated from SSE2. Here are some hints on how to do it properly:

For byte-shuffle it looks straights forwards:
http://mirror.informatimago.com/next/developer.apple.com/hardware/ve/algorithms.html#byte_swap

For bit-shuffle, Initial explanation in:
https://mischasan.wordpress.com/2011/07/24/what-is-sse-good-for-transposing-a-bit-matrix/
But I did not find (yet) an Altivec implementation

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the existing filters that were auto-translated from SSE2 and the linked byte-shuffle and bit-shuffle references. Implement actual Altivec-SIMD instructions for both byte-shuffle and bit-shuffle on ppc64le; done means both filter operations use a proper Altivec implementation.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
performance
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.