[Paper Reading] RXMesh: A GPU Mesh Data Structure
1. 这篇文章究竟讲了什么问题? 如何利用 GPU 来并行加速大规模的网格处理 2. 这个问题的性质是什么?如果不完全是一个新问题,那为什么它“仍然重要”? 属于改进类的问题 以往的网格加速方法要么是: application-specific 需要从线性代数上对问题进行 reform mesh 会变为稀疏矩阵 减少了中间变量,但是局部性变差,性能不够好 所以需要一个通用的高性能加速框架 3. 这篇文章致力于证明什么假设? 通过高效的数据结构 + 更好的变成模型,可以实现通用的网格处理加速 4. 有哪些与这篇文章相关的研究? 高性能编程模型 图像处理:Halide,调度与算法分离 稀疏体素计算 / simulation:太极 纯模拟:Ebb 图处理:Gunrock 5. 这篇文章提出的问题解决方案中,核心贡献是什么? 一个 high-level 的编程模型 用户顶层 定义好每个 mesh 上执行的计算 八种查询 以计算 vertex normal 为例: 非常清晰 模型底层 通过将整个 mesh 切分成很多 patch,然后按照 patch 来往 GPU 的 block 上分配计算任务,进而增加了局部性 patching 之后的 index 可视化出来如下图,很明显,比起直接按照 global sorting 的划分,patching 下相同 index 的部分会更加集中,相关数据在查询、计算的时候可以常驻 shared memory 那么 patch 如何表示?...