×

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文件

按年份列出的引文