OOP on the GPU: An OpenCLS Extension
Authors
Holm, Mads Emil Bøgh ; Nguyen, Minh Hieu ; Christiansen, Stefan Mathias Holst ; Kærlev, Jonas Martin
Term
4. term
Education
Publication year
2016
Submitted on
2016-06-13
Pages
102
Abstract
Denne rapport præsenterer OpenCLS 2, en udvidelse af OpenCLS 1, der skal mindske opdelte CPU/GPU-kodebaser ved at oversætte almindelig C#-kode til OpenCL C, som kan køre på GPU’en (grafikprocessor). OpenCLS 2 udvider projektets muligheder ved at tilføje støtte til objektorienteret programmering (OOP) – arv, indkapsling og polymorfi – så udviklere kan bruge velkendte C#-mønstre på GPU’en. Systemet bruger Roslyn-platformen til at analysere C#-koden og opbygge et syntakstræ, som OpenCLS 2 gennemløber for at generere OpenCL C. Den genererede kode køres derefter på GPU’en via OpenCL-wrapperen CLOO. Implementeringerne af arv, indkapsling og polymorfi er valideret med enhedstests og tests af designmønstre, som alle bestås. Ydelsen er på niveau med beslægtede løsninger og er op til ca. 3,5× hurtigere end CPU’en ved store beregninger, når data ikke skal flyttes mellem CPU og GPU.
This report presents OpenCLS 2, an extension of OpenCLS 1 that aims to reduce split CPU/GPU codebases by compiling regular C# into OpenCL C that runs on the GPU (graphics processor). OpenCLS 2 expands the project’s capabilities by adding support for object-oriented programming (OOP)—inheritance, encapsulation, and polymorphism—so developers can use familiar C# patterns on the GPU. The system uses the Roslyn platform to analyze C# code and build a syntax tree that OpenCLS 2 traverses to generate OpenCL C. The resulting code is then executed on the GPU using the OpenCL wrapper CLOO. The implementations of inheritance, encapsulation, and polymorphism are validated through unit tests and design-pattern tests, all of which OpenCLS 2 passes. Performance is comparable to related work, and up to about 3.5× faster than the CPU for large computations when data transfer between host and device is not involved.
[This abstract was generated with the help of AI]
Documents
