Memory allocation is a fairly mature field of computer science. However, we challenge a prevailing assumption in the literature over the last 50 years which, if reconsidered, necessitates a fundamental reevaluation of many classical memory management algorithms. We pose a model where the allocation algorithm runs on host memory but allocates device memory and so incur the following constraint: the allocator can't read the memory it is allocating. This means we are unable to use boundary tags, which is a concept that has been ubiquitous in nearly every allocation algorithm. In this paper, we propose alternate algorithms to work around this constraint, and discuss in general the implications of this system model.
翻译:内存分配是计算机科学中一个相当成熟的领域。然而,我们挑战了该领域过去50年文献中一个普遍存在的假设:若重新审视这一假设,将需要从根本上重新评估许多经典的内存管理算法。我们提出了一种模型:分配算法运行于主机内存中,但需分配设备内存,因此面临以下约束:分配器无法读取所分配的内存。这意味着我们无法使用边界标记(boundary tags)——这一概念几乎在所有分配算法中都是不可或缺的。本文提出了替代算法来应对这一约束,并系统性地探讨了该模型的一般性影响。