{"title":"面向Lua的GPU抽象","authors":"Raphael Ribeiro, Paulo Motta","doi":"10.1109/SBAC-PADW.2016.11","DOIUrl":null,"url":null,"abstract":"The use of GPUs for accelerating parallel applications is a consolidated approach. However, it is still difficult to write applications for this type of hardware, which is mostly done in compiled languages like C. Some effort has been employed to provide developers with libraries and frameworks for interpreted languages to be able to take advantage of the computing capabilities of GPUs. In this context we created a hardware abstraction for the Lua programming language that uses the facilities of the LLVM project to compile part of the application to the GPU native format, while the rest of the application remains in interpreted Lua. This main application controls the GPU device through a library and loads the compiled function for execution, in the end it may retrieve the results from the device. This compilation of the Lua function code into a GPU kernel is done in a transparent fashion, allowing the user to access the underlying hardware, without the complexities related to the traditional GPU programming.","PeriodicalId":186179,"journal":{"name":"2016 International Symposium on Computer Architecture and High Performance Computing Workshops (SBAC-PADW)","volume":"83 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2016-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"2","resultStr":"{\"title\":\"Towards a GPU Abstraction for Lua\",\"authors\":\"Raphael Ribeiro, Paulo Motta\",\"doi\":\"10.1109/SBAC-PADW.2016.11\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"The use of GPUs for accelerating parallel applications is a consolidated approach. However, it is still difficult to write applications for this type of hardware, which is mostly done in compiled languages like C. Some effort has been employed to provide developers with libraries and frameworks for interpreted languages to be able to take advantage of the computing capabilities of GPUs. In this context we created a hardware abstraction for the Lua programming language that uses the facilities of the LLVM project to compile part of the application to the GPU native format, while the rest of the application remains in interpreted Lua. This main application controls the GPU device through a library and loads the compiled function for execution, in the end it may retrieve the results from the device. This compilation of the Lua function code into a GPU kernel is done in a transparent fashion, allowing the user to access the underlying hardware, without the complexities related to the traditional GPU programming.\",\"PeriodicalId\":186179,\"journal\":{\"name\":\"2016 International Symposium on Computer Architecture and High Performance Computing Workshops (SBAC-PADW)\",\"volume\":\"83 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2016-10-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"2\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"2016 International Symposium on Computer Architecture and High Performance Computing Workshops (SBAC-PADW)\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/SBAC-PADW.2016.11\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"2016 International Symposium on Computer Architecture and High Performance Computing Workshops (SBAC-PADW)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/SBAC-PADW.2016.11","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
The use of GPUs for accelerating parallel applications is a consolidated approach. However, it is still difficult to write applications for this type of hardware, which is mostly done in compiled languages like C. Some effort has been employed to provide developers with libraries and frameworks for interpreted languages to be able to take advantage of the computing capabilities of GPUs. In this context we created a hardware abstraction for the Lua programming language that uses the facilities of the LLVM project to compile part of the application to the GPU native format, while the rest of the application remains in interpreted Lua. This main application controls the GPU device through a library and loads the compiled function for execution, in the end it may retrieve the results from the device. This compilation of the Lua function code into a GPU kernel is done in a transparent fashion, allowing the user to access the underlying hardware, without the complexities related to the traditional GPU programming.