{"title":"VComputeLib","authors":"Nadjib Mammeri, B. Juurlink","doi":"10.1145/3365921.3365936","DOIUrl":null,"url":null,"abstract":"Modern mobile devices contain GPU cores with decent compute capabilities, but mobile application developers are often not able to exploit these compute capabilities due to lack of support offered by mobile operating systems such as Android for conventional GPGPU frameworks such as OpenCL and CUDA. The recent introduction of Vulkan provides developers with a new API for writing and tuning GPU applications and can be regarded as an alternative GPGPU programming model especially on mobile platforms. However, programmers might be hindered to adopt Vulkan given the fact that it is low-level and requires significantly higher programming effort. In this paper, we propose VComputeLib, a lightweight runtime library that lowers Vulkan's programmability effort and provides advanced features such as device queue virtualization and granular memory management, enabling developers to write efficient platform-agnostic applications. VComputeLib also integrates a SPIR-V JIT compiler, that allows for applying several compiler optimisations on the compute kernels. Our evaluations show that the programmability of Vulkan is improved substantially with the help of VComputeLib resulting in up to 80% less lines of code and a comparable programming effort to that of OpenCL and CUDA. We also asses the impact of applying different compiler optimisations using VComputeLib on different GPU platforms. Our results show that these optimisations can have variable positive and negative impacts depending on the application and platform in use.","PeriodicalId":162326,"journal":{"name":"Proceedings of the 17th International Conference on Advances in Mobile Computing & Multimedia","volume":"25 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2019-12-02","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 17th International Conference on Advances in Mobile Computing & Multimedia","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3365921.3365936","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
Abstract
Modern mobile devices contain GPU cores with decent compute capabilities, but mobile application developers are often not able to exploit these compute capabilities due to lack of support offered by mobile operating systems such as Android for conventional GPGPU frameworks such as OpenCL and CUDA. The recent introduction of Vulkan provides developers with a new API for writing and tuning GPU applications and can be regarded as an alternative GPGPU programming model especially on mobile platforms. However, programmers might be hindered to adopt Vulkan given the fact that it is low-level and requires significantly higher programming effort. In this paper, we propose VComputeLib, a lightweight runtime library that lowers Vulkan's programmability effort and provides advanced features such as device queue virtualization and granular memory management, enabling developers to write efficient platform-agnostic applications. VComputeLib also integrates a SPIR-V JIT compiler, that allows for applying several compiler optimisations on the compute kernels. Our evaluations show that the programmability of Vulkan is improved substantially with the help of VComputeLib resulting in up to 80% less lines of code and a comparable programming effort to that of OpenCL and CUDA. We also asses the impact of applying different compiler optimisations using VComputeLib on different GPU platforms. Our results show that these optimisations can have variable positive and negative impacts depending on the application and platform in use.