{"title":"HyLAC:CUDA 中的混合线性赋值求解器","authors":"Samiran Kawtikwar , Rakesh Nagi","doi":"10.1016/j.jpdc.2024.104838","DOIUrl":null,"url":null,"abstract":"<div><p>The Linear Assignment Problem (LAP) is a fundamental combinatorial optimization problem with a wide range of applications. Over the years, significant progress has been made in developing efficient algorithms to solve the LAP, particularly in the realm of high-performance computing, leading to remarkable reductions in computation time. In recent years, hardware improvements in General Purpose Graphics Processing Units (GPGPUs) have shown promise in meeting the ever-increasing compute bandwidth requirements. This has attracted researchers to develop GPU-accelerated algorithms to solve the LAP.</p><p>Recent work in the GPU domain has uncovered parallelism available in the problem structure to achieve significant performance improvements. However, each solution presented so far targets either sparse or dense instances of the problem and has some scope for improvement. The Hungarian algorithm is one of the most famous approaches to solving the LAP in polynomial time. Hungarian algorithm has classical <span><math><mi>O</mi><mo>(</mo><msup><mrow><mi>N</mi></mrow><mrow><mn>4</mn></mrow></msup><mo>)</mo></math></span> (<em>Munkres'</em>) and tree based <span><math><mi>O</mi><mo>(</mo><msup><mrow><mi>N</mi></mrow><mrow><mn>3</mn></mrow></msup><mo>)</mo></math></span> (<em>Lawler's</em>) implementations. It is well established that the <em>Munkres'</em> implementation is faster for sparse LAP instances while the <em>Lawler's</em> implementation is faster for dense instances. In this work, we blend the GPU implementations of <em>Munkres'</em> and <em>Lawler's</em> to develop a Hybrid GPU-accelerated solver for LAP that switches between the two implementations based on available sparsity. Also, we improve the existing GPU implementations to reduce memory contention, minimize CPU-GPU synchronizations, and coalesced memory access. The resulting solver (HyLAC) works faster than existing CPU/GPU LAP solvers for sparse as well as dense problem instances. HyLAC achieves a speedup of up to 6.14× over existing state-of-the-art GPU implementation when run on the same hardware. We also develop an implementation to solve a list of small LAPs (tiled LAP), which is particularly useful in the optimization domain. This tiled LAP solver performs 22.59× faster than the existing implementation.</p></div>","PeriodicalId":54775,"journal":{"name":"Journal of Parallel and Distributed Computing","volume":null,"pages":null},"PeriodicalIF":3.4000,"publicationDate":"2024-01-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://www.sciencedirect.com/science/article/pii/S0743731524000029/pdfft?md5=2d6ab397b84658306f77d4de8c57dfed&pid=1-s2.0-S0743731524000029-main.pdf","citationCount":"0","resultStr":"{\"title\":\"HyLAC: Hybrid linear assignment solver in CUDA\",\"authors\":\"Samiran Kawtikwar , Rakesh Nagi\",\"doi\":\"10.1016/j.jpdc.2024.104838\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"<div><p>The Linear Assignment Problem (LAP) is a fundamental combinatorial optimization problem with a wide range of applications. Over the years, significant progress has been made in developing efficient algorithms to solve the LAP, particularly in the realm of high-performance computing, leading to remarkable reductions in computation time. In recent years, hardware improvements in General Purpose Graphics Processing Units (GPGPUs) have shown promise in meeting the ever-increasing compute bandwidth requirements. This has attracted researchers to develop GPU-accelerated algorithms to solve the LAP.</p><p>Recent work in the GPU domain has uncovered parallelism available in the problem structure to achieve significant performance improvements. However, each solution presented so far targets either sparse or dense instances of the problem and has some scope for improvement. The Hungarian algorithm is one of the most famous approaches to solving the LAP in polynomial time. Hungarian algorithm has classical <span><math><mi>O</mi><mo>(</mo><msup><mrow><mi>N</mi></mrow><mrow><mn>4</mn></mrow></msup><mo>)</mo></math></span> (<em>Munkres'</em>) and tree based <span><math><mi>O</mi><mo>(</mo><msup><mrow><mi>N</mi></mrow><mrow><mn>3</mn></mrow></msup><mo>)</mo></math></span> (<em>Lawler's</em>) implementations. It is well established that the <em>Munkres'</em> implementation is faster for sparse LAP instances while the <em>Lawler's</em> implementation is faster for dense instances. In this work, we blend the GPU implementations of <em>Munkres'</em> and <em>Lawler's</em> to develop a Hybrid GPU-accelerated solver for LAP that switches between the two implementations based on available sparsity. Also, we improve the existing GPU implementations to reduce memory contention, minimize CPU-GPU synchronizations, and coalesced memory access. The resulting solver (HyLAC) works faster than existing CPU/GPU LAP solvers for sparse as well as dense problem instances. HyLAC achieves a speedup of up to 6.14× over existing state-of-the-art GPU implementation when run on the same hardware. We also develop an implementation to solve a list of small LAPs (tiled LAP), which is particularly useful in the optimization domain. This tiled LAP solver performs 22.59× faster than the existing implementation.</p></div>\",\"PeriodicalId\":54775,\"journal\":{\"name\":\"Journal of Parallel and Distributed Computing\",\"volume\":null,\"pages\":null},\"PeriodicalIF\":3.4000,\"publicationDate\":\"2024-01-15\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"https://www.sciencedirect.com/science/article/pii/S0743731524000029/pdfft?md5=2d6ab397b84658306f77d4de8c57dfed&pid=1-s2.0-S0743731524000029-main.pdf\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Journal of Parallel and Distributed Computing\",\"FirstCategoryId\":\"94\",\"ListUrlMain\":\"https://www.sciencedirect.com/science/article/pii/S0743731524000029\",\"RegionNum\":3,\"RegionCategory\":\"计算机科学\",\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"Q1\",\"JCRName\":\"COMPUTER SCIENCE, THEORY & METHODS\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Journal of Parallel and Distributed Computing","FirstCategoryId":"94","ListUrlMain":"https://www.sciencedirect.com/science/article/pii/S0743731524000029","RegionNum":3,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q1","JCRName":"COMPUTER SCIENCE, THEORY & METHODS","Score":null,"Total":0}
引用次数: 0
摘要
线性赋值问题(LAP)是一个应用广泛的基本组合优化问题。多年来,在开发解决线性赋值问题的高效算法方面取得了重大进展,特别是在高性能计算领域,计算时间显著缩短。近年来,通用图形处理器(GPGPU)的硬件改进在满足不断增长的计算带宽需求方面显示出了前景。这吸引了研究人员开发 GPU 加速算法来求解 LAP。最近在 GPU 领域开展的工作发现了问题结构中的并行性,从而显著提高了性能。不过,迄今为止提出的每种解决方案都针对问题的稀疏或密集实例,还有一定的改进空间。匈牙利算法是在多项式时间内求解 LAP 的最著名方法之一。匈牙利算法有经典的 O(N4)(Munkres's)和基于树的 O(N3)(Lawler's)实现。众所周知,对于稀疏的 LAP 实例,Munkres 算法的实现速度更快,而对于密集的实例,Lawler 算法的实现速度更快。在这项工作中,我们融合了 Munkres 和 Lawler 的 GPU 实现,为 LAP 开发了一种混合 GPU 加速求解器,可根据可用稀疏度在两种实现之间切换。此外,我们还改进了现有的 GPU 实现,以减少内存争用、最小化 CPU-GPU 同步和凝聚内存访问。由此产生的求解器(HyLAC)在稀疏和密集问题实例上的运行速度都比现有的 CPU/GPU LAP 求解器快。在相同硬件上运行时,HyLAC 比现有最先进的 GPU 实现速度提高了 6.14 倍。我们还开发了一种用于求解小型 LAP 列表(平铺 LAP)的实现方法,这在优化领域特别有用。这种平铺 LAP 求解器的性能比现有实现快 22.59 倍。
The Linear Assignment Problem (LAP) is a fundamental combinatorial optimization problem with a wide range of applications. Over the years, significant progress has been made in developing efficient algorithms to solve the LAP, particularly in the realm of high-performance computing, leading to remarkable reductions in computation time. In recent years, hardware improvements in General Purpose Graphics Processing Units (GPGPUs) have shown promise in meeting the ever-increasing compute bandwidth requirements. This has attracted researchers to develop GPU-accelerated algorithms to solve the LAP.
Recent work in the GPU domain has uncovered parallelism available in the problem structure to achieve significant performance improvements. However, each solution presented so far targets either sparse or dense instances of the problem and has some scope for improvement. The Hungarian algorithm is one of the most famous approaches to solving the LAP in polynomial time. Hungarian algorithm has classical (Munkres') and tree based (Lawler's) implementations. It is well established that the Munkres' implementation is faster for sparse LAP instances while the Lawler's implementation is faster for dense instances. In this work, we blend the GPU implementations of Munkres' and Lawler's to develop a Hybrid GPU-accelerated solver for LAP that switches between the two implementations based on available sparsity. Also, we improve the existing GPU implementations to reduce memory contention, minimize CPU-GPU synchronizations, and coalesced memory access. The resulting solver (HyLAC) works faster than existing CPU/GPU LAP solvers for sparse as well as dense problem instances. HyLAC achieves a speedup of up to 6.14× over existing state-of-the-art GPU implementation when run on the same hardware. We also develop an implementation to solve a list of small LAPs (tiled LAP), which is particularly useful in the optimization domain. This tiled LAP solver performs 22.59× faster than the existing implementation.
期刊介绍:
This international journal is directed to researchers, engineers, educators, managers, programmers, and users of computers who have particular interests in parallel processing and/or distributed computing.
The Journal of Parallel and Distributed Computing publishes original research papers and timely review articles on the theory, design, evaluation, and use of parallel and/or distributed computing systems. The journal also features special issues on these topics; again covering the full range from the design to the use of our targeted systems.