Rapid code iteration in an Integrated Development Environment with GPU just-in-time compilation
Abstract: Rapid code iteration is a term designating short cycles between changes in the source-code of a program and observing results. This thesis describes an investigation about how an integrated development environment (IDE) can be built in order to gain rapid interaction during software development for graphics processing units (GPUs). The survey has been carried out by implementing an IDE, with a user interface, a compiler, and a runtime in order to provide direct feedback as code is typed. The presented IDE transforms C-like code to PTX-assembler which is JIT-compiled on a NVIDIA graphics card. Compiling and running a computational intense program about 200 lines of C-like code yields a faster response time than in Visual Studio with either CUDA or C++ using SDL-threads. The program performs RSA encryption/decryption on a large image (11.625MiB) by dividing partial data blocks on different cores on the GPU. The faster response time (more rapid code iteration) is achieved by compiling less code of a smaller language, and using a recycled runtime environment between code iterations. The feedback is measured by the time it takes to compile a change in the source code, plus the time it takes to evaluate the computation. The IDE provides feedback within 150 milliseconds compared to Visual Studio using CUDA which demand 2 400 milliseconds to provide a response for the same change in the source-code. The majority of the speedup is from the compile time which is 2 100 milliseconds within Visual Studio and CUDA, compared to 13 milliseconds within the presented IDE. Comparing run time of the computation yields a speedup of five times compared to a corresponding C++ SDL-threaded CPU implementation. Comparing run time with CUDA yields a tie.
AT THIS PAGE YOU CAN DOWNLOAD THE WHOLE ESSAY. (follow the link to the next page)