【发布时间】:2011-06-14 07:01:19
【问题描述】:
到目前为止,我知道Mars,但替代方案呢?
【问题讨论】:
到目前为止,我知道Mars,但替代方案呢?
【问题讨论】:
目前最简单的接口是thrust::reduce提供的。
正如你所说,还有Mars。
【讨论】:
几年前我已经实现了cumar。
由于我使用的是 Mac OS X 并且“nvcc”编译器对 Apple 的“clang”不满意,因此我设计了这个库纯 C++(和 lambda 的味道)。
典型的地图操作如下所示:
//A = B + C, all of length 'n'
cumar::map()("[](double a&, double b, double c){ a = b+c; }" )(A, A+n, B, C);
对于reduce操作,它看起来像这样:
// x = min(A), A of size 'n'
cumar::reduce()( "[](double a, double b){ return a < b ? a : b; }" )(A, A+n);
【讨论】: