A method for decompilation of AMD GCN kernels to OpenCL

07/16/2021
by   K. I. Mihajlenko, et al.
0

Introduction: Decompilers are useful tools for software analysis and support in the absence of source code. They are available for many hardware architectures and programming languages. However, none of the existing decompilers support modern AMD GPU architectures such as AMD GCN and RDNA. Purpose: We aim at developing the first assembly decompiler tool for a modern AMD GPU architecture that generates code in the OpenCL language, which is widely used for programming GPGPUs. Results: We developed the algorithms for the following operations: preprocessing assembly code, searching data accesses, extracting system values, decompiling arithmetic operations and recovering data types. We also developed templates for decompilation of branching operations. Practical relevance: We implemented the presented algorithms in Python as a tool called OpenCLDecompiler, which supports a large subset of AMD GCN instructions. This tool automatically converts disassembled GPGPU code into the equivalent OpenCL code, which reduces the effort required to analyze assembly code.

READ FULL TEXT

page 1

page 2

page 8

page 9

research
04/20/2023

Backporting RISC-V Vector assembly

Leveraging vectorisation, the ability for a CPU to apply operations to m...
research
04/06/2023

Optimized Real-Time Assembly in a RISC Simulator

Simulators for the RISC-V instruction set architecture (ISA) are useful ...
research
06/07/2019

Datalog Disassembly

Disassembly is fundamental to binary analysis and rewriting. We present ...
research
11/20/2022

The Stack: 3 TB of permissively licensed source code

Large Language Models (LLMs) play an ever-increasing role in the field o...
research
12/06/2021

Hyperstyle: A Tool for Assessing the Code Quality of Solutions to Programming Assignments

In software engineering, it is not enough to simply write code that only...
research
01/03/2023

Autovesk: Automatic vectorization of unstructured static kernels by graph transformations

Leveraging the SIMD capability of modern CPU architectures is mandatory ...
research
09/17/2022

Practical LR Parser Generation

Parsing is a fundamental building block in modern compilers, and for ind...

Please sign up or login with your details

Forgot password? Click here to reset