{"title":"Accelerating MATLAB slow loop execution with CUDA","authors":"Ubaidullah, S. Khan","doi":"10.1109/ICET.2011.6048447","DOIUrl":null,"url":null,"abstract":"MATLAB's high-level programming syntax and user-friendly environment makes it best suited to write technical code. MATLAB is extensively used in a number of scientific fields, such as digital image processing, digital signal processing, mathematics (just to name a few). The significance of MATLAB's programming is its rich library of built-in functions that provide programming ease. However, MATLAB uses an interpreter which slows down the processing, especially while executing loops. This becomes a performance bottleneck in programs that make excessive use of loops. In the field of digital image processing, for example, the operations performed on a matrix usually involve many nested loop structures. Therefore, MATLAB is often exposed to the issues of slow execution and memory latency. In order to accelerate MATLAB's processing, we utilize NVIDIA's CUDA parallel processing architecture. We demonstrate that interfacing MATLAB with CUDA and parallelizing the most time-consuming portions of MATLAB's code, the processing can be speeded up significantly. As a proof of concept, we present some results of JPEG compression with MATLAB using CUDA. Not only our results show a significant performance boost in MATLAB's processing, but are also in perfect agreement with quality.","PeriodicalId":167049,"journal":{"name":"2011 7th International Conference on Emerging Technologies","volume":"29 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2011-10-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"3","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2011 7th International Conference on Emerging Technologies","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ICET.2011.6048447","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 3
Abstract
MATLAB's high-level programming syntax and user-friendly environment makes it best suited to write technical code. MATLAB is extensively used in a number of scientific fields, such as digital image processing, digital signal processing, mathematics (just to name a few). The significance of MATLAB's programming is its rich library of built-in functions that provide programming ease. However, MATLAB uses an interpreter which slows down the processing, especially while executing loops. This becomes a performance bottleneck in programs that make excessive use of loops. In the field of digital image processing, for example, the operations performed on a matrix usually involve many nested loop structures. Therefore, MATLAB is often exposed to the issues of slow execution and memory latency. In order to accelerate MATLAB's processing, we utilize NVIDIA's CUDA parallel processing architecture. We demonstrate that interfacing MATLAB with CUDA and parallelizing the most time-consuming portions of MATLAB's code, the processing can be speeded up significantly. As a proof of concept, we present some results of JPEG compression with MATLAB using CUDA. Not only our results show a significant performance boost in MATLAB's processing, but are also in perfect agreement with quality.