诸如intel-MKL或amd-ACML这样的库为向量上的SIMD操作提供了更容易的接口,但我想将几个函数链接在一起。有没有现成的库可以让我为像这样的表达式注册解析树
log( tanh(x) + exp(x) )然后在数组的所有成员上对其求值?我想要避免的是通过调用tanh()、exp()和+的mkl或acml函数来创建tanh(x)、exp(x)和+的临时数组。
我可以手动展开循环并直接使用sse指令,但我想知道是否有C++库可以为您做这件事。
1. Handles SIMD/SSE functions
2. Allows building of parse trees out of SIMD/SSE functions. 我是一个新手,以前从未使用过SSE或MKL/ACML,只是冒险进入新的领域。
发布于 2011-08-10 16:34:12
它可能做不到你想要的,但我建议你看看macstl。它是一个使用模板元编程的SIMD valarray实现,可以将表达式组合到单个循环中。您可以按原样使用它,也可以将其作为更接近您需要的东西的基础。
发布于 2011-08-10 19:16:56
看看Intel ABB吧。它使用即时编译方法IIRC。它可以使用矢量指令和多线程,这取决于您操作的矢量的大小。
https://stackoverflow.com/questions/7007469
复制相似问题