Vc公司 swMATH ID: 21533 软件作者: M.Kretz、V.Lindenstreath 描述: Vc:一个用于显式矢量化的C++库。最近几代CPU,尤其是GPU,需要数据并行代码才能充分发挥效率。数据并行性要求对不同的输入数据应用相同的操作序列。因此,CPU和GPU可以减少指令解码和调度所需的硬件,有利于使用更多的算术和逻辑单元,它们可以同步执行相同的指令。在CPU体系结构上,这是通过SIMD寄存器和指令实现的。单个SIMD寄存器可以存储N个值,单个SIMD指令可以对这些值执行N个操作。在GPU体系结构上,N个线程完全同步运行,由单个指令解码器/调度器提供。每个线程都有本地内存和一个给定的索引,用于计算内存中的加载和存储偏移量。当前的C++编译器可以将标量代码自动转换为SIMD指令(自动向量化)。然而,编译器必须重建算法的内在属性,该属性在开发人员用C++编写纯标量实现时丢失。因此,C++编译器无法将任何给定的代码矢量化为其最有效的数据并行变量。尤其是跨越多个函数甚至翻译单元的较大数据并行循环,往往无法转换为高效的SIMD代码。Vc库提供了缺失的链接。其类型支持对多个值显式声明数据并行操作。因此,并行性是通过类型系统添加的。竞争方法通过新的控制结构来声明并行性,从而在这些控制结构的主体中声明新的语义。 主页: https://github.com/VcDevel/Vc 源代码: https://github.com/VcDevel/Vc 依赖项: C类++ 相关软件: 无人值守地面;沙丘;真空断路器;github;BEM4I公司;UMFPACK公司;沙丘-xt;PANG公司;切割FEM;沙丘-UDG;libMesh(libMesh);FEMPAR公司;p4测试;pybind11;ISTL公司;Gms小时;曲线网格;DUNE-ALUGrid公司;Exa-调整;RBmatlab公司 引用于: 8文件 全部的 前5名24位作者引用 4 米查尔·梅尔塔 4 Jan Zapletal公司 2 彼得·巴斯蒂安 2 多米尼克·肯普夫 2 属于,Günther 1 马库斯·布拉特 1 安德烈亚斯·德纳。 1 斯特凡·多尔 1 尼尔斯·阿恩·德雷尔 1 克里斯蒂安·恩格尔 1 雷内·弗里茨 1 斯蒂芬·盖克 1 卡斯滕·格拉泽 1 克里斯托夫·格里宁格 1 阿希姆·古肯伯格 1 Heß,Reneé 1 罗伯特·科伦 1 塔玛拉·吉布森·科尔达 1 米查尔·克拉夫琴科 1 马尔,卢卡什 1 缪兴,斯蒂芬 1 马里奥·奥伯格 1 埃里克·T·菲普斯。 1 奥利弗·桑德 全部的 前5名6篇连载文章中引用 三 计算机与数学及其应用 1 流体力学杂志 1 ACM数学软件汇刊 1 模拟中的数学和计算机 1 SIAM科学计算杂志 1 边界元工程分析 全部的 前5名在6个字段中引用 7 数值分析(65-XX) 4 偏微分方程(35-XX) 2 流体力学(76-XX) 1 线性代数和多线性代数;矩阵理论(15-XX) 1 计算机科学(68至XX) 1 生物学和其他自然科学(92-XX) 按年份列出的引文