AccelerateHS / AccelerateHS/accelerate

Performance of highly skewed multidimensional reductions

オープン
#140 コメント 7 件 リアクション 0 件 担当者 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 を短くまとめたダイジェスト。