GPU-Based Static Data-Flow Analysis for Fast and Scalable Android App Vetting
Many popular vetting tools for Android applications use static code analysis techniques. In particular, Interprocedural Data-Flow Graph (IDFG) construction is the computation at the core of Android static data-flow analysis and consumes most of the analysis time. Many analysis tools use a worklist algorithm, an iterative fixed-point approach, to construct the IDFG. In this paper, we observe that a straightforward GPU parallelization of the worklist algorithm leads to significant underutilization of the GPU resources. We identify four performance bottlenecks, namely, frequent dynamic memory allocations, high branch divergence, workload imbalance, and irregular memory access patterns. Accordingly, we propose GDroid, a GPU-based worklist algorithm implementation with multiple fine-grained optimizations tailored to common characteristics of Android applications. The optimizations considered are: matrix-based data structure, memory access-based node grouping, and worklist merging. Our experimental evaluation, performed on 1000 Android applications, shows that the proposed optimizations are beneficial to performance, and GDroid can achieve up to 128X speedups against a plain GPU implementation.
- Research Organization:
- Argonne National Laboratory (ANL)
- Sponsoring Organization:
- National Science Foundation (NSF); USDOE Office of Science - Office of Advanced Scientific Computing Research (ASCR); USDOE Office of Science - Office of Basic Energy Sciences
- DOE Contract Number:
- AC02-06CH11357
- OSTI ID:
- 1804071
- Country of Publication:
- United States
- Language:
- English
A GPU implementation of inclusion-based points-to analysis
|
conference | January 2012 |
GPU-Based Iterative Medical CT Image Reconstructions
|
journal | March 2018 |
Algorithmic Techniques for Solving Graph Problems on the Automata Processor
|
conference | May 2016 |
SEP-graph: finding shortest execution paths for graph processing under a hybrid framework on GPU
|
conference | February 2019 |
Robotomata: A framework for approximate pattern matching of big data on an automata processor
|
conference | December 2017 |
O3FA: A Scalable Finite Automata-based Pattern-Matching Engine for Out-of-Order Deep Packet Inspection
|
conference | March 2016 |
AAlign: A SIMD Framework for Pairwise Sequence Alignment on x86-Based Multi-and Many-Core Processors
|
conference | May 2016 |
Accelerating CUDA graph algorithms at maximum warp
|
conference | January 2011 |
Precise interprocedural dataflow analysis with applications to constant propagation
|
journal | January 1996 |
Inter-procedural data-flow analysis with IFDS/IDE and Soot
|
conference | January 2012 |
Information-Flow Analysis of Android Applications in DroidSafe
|
conference | January 2015 |
Enterprise: breadth-first graph traversal on GPUs
|
conference | November 2015 |
Revisiting State Blow-Up: Automatically Building Augmented-FA While Preserving Functional Equivalence
|
journal | October 2014 |
cuBLASTP: Fine-Grained Parallelization of Protein Sequence Search on CPU+GPU
|
journal | July 2017 |
Demystifying automata processing: GPUs, FPGAs or Micron's AP?
|
conference | January 2017 |
Throughput-oriented GPU memory allocation
|
conference | February 2019 |
Precise and compact modular procedure summaries for heap manipulating programs
|
journal | June 2011 |
Scalable GPU graph traversal
|
conference | January 2012 |
FlowDroid: precise context, flow, field, object-sensitive and lifecycle-aware taint analysis for Android apps
|
journal | June 2014 |
GPU acceleration of regular expression matching for large datasets: exploring the implementation space
|
conference | January 2013 |
An Enhanced Image Reconstruction Tool for Computed Tomography on GPUs
|
conference | May 2017 |
Soot: a Java bytecode optimization framework
|
conference | January 2010 |
Do Android taint analysis tools keep their promises?
|
conference | October 2018 |
cuART: Fine-Grained Algebraic Reconstruction Technique for Computed Tomography Images on GPUs
|
conference | May 2016 |
EigenCFA: accelerating flow analysis with GPUs
|
conference | January 2011 |
Optimized Non-contiguous MPI Datatype Communication for GPU Clusters: Design, Implementation and Evaluation with MVAPICH2
|
conference | September 2011 |
JN-SAF: Precise and Efficient NDK/JNI-aware Inter-language Static Analysis Framework for Security Vetting of Android Applications with Native Code
|
conference | October 2018 |
Analysis of Code Heterogeneity for High-Precision Classification of Repackaged Malware
|
conference | May 2016 |
Amandroid: A Precise and General Inter-component Data Flow Analysis Framework for Security Vetting of Android Apps
|
conference | November 2014 |
An Efficient GPU Implementation of Inclusion-Based Pointer Analysis
|
journal | February 2016 |
GPU-Aware MPI on RDMA-Enabled Clusters: Design, Implementation and Evaluation
|
journal | October 2014 |
Implementation techniques for efficient data-flow analysis of large programs
|
conference | January 2001 |
A generic worklist algorithm for graph reachability problems in program analysis
|
conference | January 2002 |
BFS-4K: An Efficient Implementation of BFS for Kepler GPU Architectures
|
journal | July 2015 |
Collusive Data Leak and More: Large-scale Threat Analysis of Inter-app Communications
|
conference | April 2017 |
Precise interprocedural dataflow analysis via graph reachability
|
conference | January 1995 |
Profiling user-trigger dependence for Android malware detection
|
journal | March 2015 |
Composite Constant Propagation: Application to Android Inter-Component Communication Analysis
|
conference | May 2015 |
Fast and Efficient Graph Traversal Algorithm for CPUs: Maximizing Single-Node Efficiency
|
conference | May 2012 |
Similar Records
Population Count on Intel® CPU, GPU, and FPGA
Highly Efficient Compensation-Based Parallelism for Wavefront Loops on GPUs
Efficient Parallelization of Irregular Applications on GPU Architectures
Conference
·
Tue Dec 31 23:00:00 EST 2019
·
OSTI ID:1804082
Highly Efficient Compensation-Based Parallelism for Wavefront Loops on GPUs
Conference
·
Tue May 01 00:00:00 EDT 2018
·
OSTI ID:1474547
Efficient Parallelization of Irregular Applications on GPU Architectures
Thesis/Dissertation
·
Sun Dec 31 23:00:00 EST 2023
·
OSTI ID:2349242