AccelerateHS / AccelerateHS/accelerate

Performance of highly skewed multidimensional reductions

未关闭
#140 7 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
good first issue help wanted llvm-ptx
主要语言
Haskell
星标
1k
派生
135
PR 合并指标
30 天内没有已合并 PR

描述

Performance of multidimensional reductions is not good when the array is highly skewed. For example, a `fold` where the number of columns is (innermost dimension) is very small. See also this thread:

https://groups.google.com/forum/#!topic/accelerate-haskell/KAFYUz4Sjsk

Multidimensional reduction uses one thread block per reduction; so an `(Z :. m :. n)` sized matrix uses `m` thread blocks. If `n` is very small, then many threads in the block sit idle. We could change this to a warp-per-reduction style, which is actually the strategy segmented fold uses. This will likely have a negative impact if `m` is small and `n` large.

It would be possible to generate both variants and choose dynamically which to execute. That implies compiling four kernels per reduction (because fusion; initial vs. recursive step).

贡献指南

这个仓库没有索引到贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。