EAVL icon indicating copy to clipboard operation
EAVL copied to clipboard

change explicit grid connectivity to group by shapetype

Open jsmeredith opened this issue 13 years ago • 1 comments

This is good for fine-grain data parallelism, because if you're executing on a bunch of same-shape cells in a row, you minimize warp divergence.

However, it might simplify/speed up indexing. The simplest case is if your mesh is all one cell type. E.g. if you have a triangle mesh, you know that the connectivity for cell 100 starts at index 300 in the connectivity array. (Implicit in this statement: you don't need to say in the connectivity array that each of the cells in this section has three values.) So you don't need the reverse cell-to-connectivity index map at all.

Can this type of optimization be applied to multiple shape types? Yes, to some degree. For example, if you have 5 shapetype groups, you only need to know the starting index for each of the 5 groups, and you can just do the same multiplication for each. Actually implementing this optimization for multiple shape types is not trivial; it's possible you can't easily obtain the full benefit without some effort. Or maybe you need specific separate optimizations for 1-shape and 2-shape grids, for example.

jsmeredith avatar Sep 24 '12 20:09 jsmeredith

What about the Silo method, allowing spans of same-shape groupings, but not requiring that all of a same shape be contiguous?

-Sean

Sean Ahern Oak Ridge National Laboratory 865-408-8463

On Sep 24, 2012, at 4:56 PM, "Jeremy Meredith" <[email protected]mailto:[email protected]> wrote:

This is good for fine-grain data parallelism, because if you're executing on a bunch of same-shape cells in a row, you minimize warp divergence.

However, it might simplify/speed up indexing. The simplest case is if your mesh is all one cell type. E.g. if you have a triangle mesh, you know that the connectivity for cell 100 starts at index 300 in the connectivity array. (Implicit in this statement: you don't need to say in the connectivity array that each of the cells in this section has three values.) So you don't need the reverse cell-to-connectivity index map at all.

Can this type of optimization be applied to multiple shape types? Yes, to some degree. For example, if you have 5 shapetype groups, you only need to know the starting index for each of the 5 groups, and you can just do the same multiplication for each. Actually implementing this optimization for multiple shape types is not trivial; it's possible you can't easily obtain the full benefit without some effort. Or maybe you need specific separate optimizations for 1-shape and 2-shape grids, for example.

— Reply to this email directly or view it on GitHubhttps://github.com/jsmeredith/EAVL/issues/5.

ahernsean avatar Sep 26 '12 23:09 ahernsean