搜索

pdf文档 The Shapes of Multidimensional Arrays

1.38 MB 62 页 0 下载 45 浏览 0 评论 0 收藏
所属分类: 后端开发 / C++
语言 格式 评分
英语
.pdf
3
摘要
文档探讨了多维数组的形状表示方法,涉及标准化、设计、表达式模板语言(EDSL)、范围扩展以及超越现有方法的内容。作者讨论了C++20中使用任意NTTPs来指定多维形状的表达方式,强调了在平衡通用性、性能和表达性方面的复杂性。文档还提到了标准化努力,包括与mdspan和线性代数库相关的提案,并探讨了扩展EDSL的可能性,如布局信息、对称性、基于轴的并行化以及形状操作。最终,文档指出多维数组在科学计算和数据科学中的广泛应用,并提出了未来发展的潜力。
AI总结
《多维数组的形状》 本文主要探讨了多维数组的形状表示及其相关问题,重点分析了在通用性、性能和表达性之间寻求平衡的挑战,并提出了未来发展方向。 1. **主题与目标** 多维数组的形状表示在科学计算和数据处理中具有重要意义。文章提出以下目标: - **通用性**:尽可能覆盖参数空间。 - **性能**:在计算时间和内存使用上实现高效。 - **表达性**:提供简洁易懂的表示方式。 2. **标准化与现有工作** - 当前标准化工作主要围绕`mdspan`(C++20)展开,支持任意NTTPs(非类型模板参数),为多维数组的表示提供了更灵活的解决方案。 - 已有提案包括: - P0332:放松对多维数组类型声明的要求。 - P0009:定义非所有者的多维数组引用。 - P1684:定义所有者的多维数组,类似于`mdspan`。 - 线性代数相关提案(如P1385、P1635)也在推动C++标准库对线性代数的支持。 3. **设计与实现** - **EDSL(嵌入领域特定语言)**:通过表达式模板创建 mini-language,实现更强大的数组操作。 - **混合动态与静态尺寸**:实现难度较高,需借助对数元组(log-tuple)等技巧。 - **扩展方向**: - **布局信息**:支持不同存储顺序(如行优先、列优先)。 - **对称性**:支持对称矩阵、三角矩阵等特殊结构。 - **并行化**:基于轴的并行化,结合GPU向量化操作。 - **形状操作**:支持形状的乘法、组合等操作。 4. **结论与展望** - 多维数组的形状表示是科学计算和数据科学中的基础问题。 - 通过扩展EDSL,结合布局、对称性、并行化等特性,未来有望实现更强大、更灵活的多维数组操作。 - 标准化工作仍在进行中,需在通用性、性能和表达性之间找到最佳平衡点。 本文为多维数组的表示和操作提供了新的思路,强调了标准化和技术创新的重要性。
P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
P11
P12
下载文档到本地,方便使用
- 可预览页数已用完,剩余 50 页请下载阅读 -
文档评分
请文明评论,理性发言.