
Kode sumber untuk kertas ASPLOS 2023 kami, " MinimAlloc: Alokasi memori ringan untuk pembelajaran mesin yang dipercepat dengan perangkat keras ."
Semakin banyak beban kerja pembelajaran yang mendalam didukung oleh akselerasi perangkat keras . Untuk membuka kinerja maksimum akselerator perangkat keras, model pembelajaran mesin harus terlebih dahulu dipetakan dengan hati -hati ke berbagai komponen internalnya dengan cara kompiler . Salah satu masalah yang sangat penting yang dihadapi oleh kompiler kelas produksi adalah alokasi memori , di mana satu set buffer dengan rentang hidup yang telah ditentukan dipetakan ke offset dalam memori global. Karena alokasi ini dilakukan secara statis, kompiler memiliki kebebasan untuk menempatkan buffer secara strategis, tetapi tetap saja bergulat dengan ledakan kombinatorial dalam jumlah kemungkinan penugasan.
MinimAlloc adalah algoritma canggih yang dirancang khusus untuk alokasi memori statis yang menggunakan beberapa teknik pencarian baru untuk menyelesaikan masalah tersebut secara efisien dan efektif.
Wawasan utama yang memotivasi metodologi kami adalah penemuan kategori solusi tertentu - yang kami sebut solusi kanonik - yang sesuai dengan anggota kisi aljabar:

Dengan membatasi eksplorasi kami pada subset solusi kanonik, kami dapat secara dramatis mengurangi ukuran ruang pencarian sambil secara bersamaan memastikan bahwa algoritma kami tetap sehat dan lengkap. Kami juga menggunakan teknik inferensi spasial baru yang memanfaatkan struktur khusus ini, memungkinkan pemecah kami untuk mundur jauh lebih awal dari yang mungkin. Akhirnya, kami menerapkan mekanisme baru untuk mendeteksi dan menghilangkan solusi yang didominasi dari pertimbangan.
$ 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 }
}Ini bukan produk Google yang didukung secara resmi.