Open jsmeredith opened 12 years ago
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" notifications@github.com<mailto:notifications@github.com> 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.
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.