
ASPLOS 2023 용지의 소스 코드, " Minimalloc : 하드웨어 가속 기계 학습을위한 가벼운 메모리 할당 자 ".
하드웨어 가속 으로 점점 더 많은 딥 러닝 워크로드가 지원되고 있습니다. 하드웨어 가속기의 최대 성능을 잠금 해제하려면 기계 학습 모델을 먼저 컴파일러 를 통해 다양한 내부 구성 요소에 신중하게 매핑해야합니다. 프로덕션 클래스 컴파일러가 직면 한 특히 중요한 문제 중 하나는 메모리 할당 의 문제로, 사전 정의 된 수명이있는 버퍼 세트가 글로벌 메모리의 오프셋에 매핑됩니다. 이 할당은 정적으로 수행되기 때문에 컴파일러는 버퍼를 전략적으로 배치 할 자유가 있지만, 할당 가능성의 수의 조합 폭발로 씨름해야합니다.
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 제품이 아닙니다.