Skip to content

Implement AoSoA data containers for efficient memory caching/coalescing #6

@jbeisman

Description

@jbeisman

Implement array-of-struct-of-array data containers that set the size of the inner arrays as the SIMD width of the executing architecture. This will allow better caching/coalescing of kernel memory and will increase vectorization.

eg

struct AoS {
int x, y, z;
};
AoS[n];

struct SoA {
int x[n], y[n], z[n];
};

struct AoSoA {
int x[VEC_WIDTH], y[VEC_WIDTH], z[VEC_WIDTH];
};
AoSoA[ N / VEC_WIDTH];

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