ogrisel
13-Dec-2007, 15:39
Hi SIMD programmers,
I would like to know if there are standard programming strategies to leverage modern CPUs SIMD extensions (SSE in Core 2 Duo, VMX / Altivec in power PC or Cell BE's SPUs) that handle sparse data structures.
For a starter I would like to implement in C (either with intrinsics or even gcc's auto-vectorization capabilities) the dot products of 2 sparse vectors which elements are of type:
struct node
{
int index;
float value;
};
There must be common practices to deal with such problems but google is not my friend today.
I would like to know if there are standard programming strategies to leverage modern CPUs SIMD extensions (SSE in Core 2 Duo, VMX / Altivec in power PC or Cell BE's SPUs) that handle sparse data structures.
For a starter I would like to implement in C (either with intrinsics or even gcc's auto-vectorization capabilities) the dot products of 2 sparse vectors which elements are of type:
struct node
{
int index;
float value;
};
There must be common practices to deal with such problems but google is not my friend today.