A method for decompilation of AMD GCN kernels to OpenCL
K. I. Mihajlenko, M. A. Lukin, A. S. Stankevich

TL;DR
This paper introduces OpenCLDecompiler, the first assembly decompiler for AMD GCN GPUs, converting disassembled code into OpenCL to facilitate software analysis without source code.
Contribution
It presents novel algorithms and a Python tool for decompiling AMD GCN assembly code into OpenCL, supporting modern GPU architectures.
Findings
Supports a large subset of AMD GCN instructions
Automates conversion from assembly to OpenCL
Reduces effort in assembly code analysis
Abstract
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…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
