Font Size: a A A

A Study Of Virtualization Technique On CPU/GPU Platforms

Posted on:2013-02-17Degree:DoctorType:Dissertation
Country:ChinaCandidate:E Z ZhuFull Text:PDF
GTID:1118330362967365Subject:Computer Science and Technology
Abstract/Summary:PDF Full Text Request
Dynamic binary translation (DBT) is the process of translating and optimizing onebinary executable into a different executable at runtime, and the target code will beexecuted right after the conversion. It has been proved an increasing useful technique inmany field, such as avoiding rewrite legacy code when we want to port programs amongdifferent generations or different kinds of architectures, optimizing native binaries toimprove performance, reducing hardware complexity, increasing the power efficiency andproviding runtime instrumentation of applications. However, the low performance of DBTsystems, including the overhead translating procedure and the overhead of executing targetcode, has perplexed the researchers for many years. Meanwhile, as the tremendous rawperformance of modern GPUs (Graphic Processing Units) has evolved to incorporateprogrammability, many researchers have employed GPUs as co-processors to acceleratetheir general-purpose applications. In many cases, performing general-purpose applicationson graphics hardware can provide significant advantageous over implementing them ontraditional CPUs. However, the current explicit programming environments have made theusages of GPUs rather complicated, and a GPU cannot directly execute the binary code ofgeneral-purpose applications.In order to adopt the strengths of the two techniques and meanwhile eliminate theirweaknesses, this paper proposes a virtual execution environment---GXBIT, for quickly,automatically, and transparently executing general-purpose binary applications onCPU/GPU architectures. GXBIT implements on the dynamic binary translator CrossBit.And it is designed and implemented to migrate the existing binary executable code fromone platform to another at low cost. In order to cope with the high overhead issue of DBT,GXBIT introduces a two-phase execution model, and tries to perform the time-consumingtasks in the initial phase, so that the performance of the second execution will be improved.For the purpose of verifying the correctness and the feasibility of the two-phase executionmodel, we first design and implement this technique on the sole CPU architecture. That is a two-phase dynamic binary optimization framework---SINOF, is implemented on the soleCPU architecture. Under the SINOF framework, once the source executable has beenexecuted by the first execution, the profile information and the target code will be saved,and then the optimized code that according to the profile information will be available forthe future runs.GXBIT is implemented according to the verification of SINOF. In GXBIT, the firstphase is responsible for extracting parallel hot spots and their related information from thesequential binary code, and then generating the hybrid executable (both CPU and GPUinstructions) for the second execution. This virtual execution model works well for anycompute-intensive applications that run repeatedly. Generally, this paper makes thefollowing contributions:1. Combines the dynamic binary translation with GPU to present a virtual executionenvironment---GXBIT. GXBIT adopts the strengths of DBT and GPU, and meanwhileshields the drawbacks of them. It could automatically, transparently and quicklyexecute the binary code of general-purpose applications on the CPU/GPUheterogeneous platforms.2. Designs and implements a static-integrated framework, SINOF, for DBT. Actually,SINOF is designed to verify the correctness and the feasibility of the two-phaseexecution model for GXBIT. This framework could greatly improve the performanceof DBT systems by reducing the overhead that incurred in the processes of profileinformation collecting and target code optimizing.3. Introduces an intermediate representation, GVInst, for GXBIT. GVInst bridges the gapbetween the sequential CPU code and parallel GPU code in the process of codetranslation.4. Contrives a series of approaches to coordinate the CPU and GPU, and enable them tocooperate in harmony, such as the data transferring issues between the main memoryof CPU and the memory of GPU, the synchronization issues between CPU and GPU,and the approach of translating sequential executed CPU code to the parallel executedGPU code.
Keywords/Search Tags:Virtualization, CPU/GPU, Process virtual machine, Dynamic binarytranslation, Binary analysis, CrossBit
PDF Full Text Request
Related items