
ASPLOS 2023ペーパーのソースコード「 Minimalloc:ハードウェアアクセラレーションの機械学習用の軽量メモリアロケーター」。
ハードウェアアクセラレーションによって、ますます多くの深い学習ワークロードがサポートされています。ハードウェアアクセラレータの最大パフォーマンスのロックを解除するには、まずコンパイラを介して機械学習モデルをさまざまな内部コンポーネントに慎重にマッピングする必要があります。生産クラスのコンパイラが直面する特に重要な問題の1つは、メモリの割り当ての問題であり、それにより、事前定義された寿命を持つバッファーのセットがグローバルメモリのオフセットにマッピングされます。この割り当ては静的に実行されるため、コンパイラにはバッファーを戦略的に自由に配置する自由がありますが、それでも割り当ての可能性の数の組み合わせ爆発に取り組む必要があります。
Minimallocは、このような問題を効率的かつ効果的に解決するために、いくつかの新しい検索技術を使用する静的メモリ割り当てのために特別に設計された最先端のアルゴリズムです。
私たちの方法論の動機付けの重要な洞察は、代数格子のメンバーに対応する特定のカテゴリーのソリューションの発見です。

探索を標準ソリューションのサブセットに制限することにより、検索スペースのサイズを劇的に縮小し、同時にアルゴリズムが健全で完全なままであることを保証できます。また、この特別な構造を活用する新しい空間推論手法を採用しているため、ソルバーは可能な限り早くバックトラックできます。最後に、支配的なソリューションを検討から検出および排除するための新しいメカニズムを実装します。
$ git clone --recursive [email protected]:google/minimalloc.git &&
cd minimalloc && cmake -DCMAKE_BUILD_TYPE=Release && make
id,lower,upper,size
b1,0,3,4
b2,3,9,4
b3,0,9,4
b4,9,21,4
b5,0,21,4
$ ./minimalloc --capacity=12 --input=benchmarks/examples/input.12.csv --output=output.12.csv
id,lower,upper,size,offset
b1,0,3,4,8
b2,3,9,4,8
b3,0,9,4,4
b4,9,21,4,4
b5,0,21,4,0
@inproceedings { Moffitt2023 ,
title = { {MiniMalloc}: A Lightweight Memory Allocator for Hardware-Accelerated Machine Learning } ,
booktitle = { Proceedings of the 28th International Conference on Architectural Support for Programming Languages and Operating Systems } ,
volume = { 4 } ,
pages = { 238--252 } ,
author = { Moffitt, Michael D. } ,
year = { 2023 } ,
series = { ASPLOS 2023 } ,
url = { https://doi.org/10.1145/3623278.3624752 } ,
doi = { 10.1145/3623278.3624752 }
}これは、公式にサポートされているGoogle製品ではありません。