boostorg / boostorg/multi_array
Performance issue on resize
オープン
- 主要言語
- C++
- スター
- 32
- フォーク
- 39
- PR マージ指標
- 30日以内にマージされた PR はありません
説明
When I use `boost::multi_array` with `boost::fortran_storage_order()`, and I want to `.resize` by only the latest (rightmost) dimension, the current implementation is a nested `N` function call (`std::copy`), one by dimension.
The same functionality can be reached with one `std::copy` on the storage.
This minimal example shows the problem:
https://godbolt.org/z/GWbxcM14h
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
調査の方向性
まず、boost::multi_array の resize の実装と fortran_storage_order() の処理を確認します。https://godbolt.org/z/GWbxcM14h の最小例を使って現在の動作とパフォーマンスを比較します。右端の次元だけをリサイズした場合に、ここで説明されているネストした std::copy 呼び出しなしで動作が維持されれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- cpp
- 領域
- performance
- issue の種類
- リファクタリング
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 35/100