Font Size: a A A

Research On Key Techniques Of Compiler-based Memory Access Analysis And Optimization

Posted on:2022-03-09Degree:DoctorType:Dissertation
Country:ChinaCandidate:H J WangFull Text:PDF
GTID:1488306746957469Subject:Computer Science and Technology
Abstract/Summary:PDF Full Text Request
Memory access is important for the correctness and efficiency of program execution.Different types of bugs may occur during memory access,which can cause inefficiency,security risks,or even program errors preventing the program running normally.Many works have been proposed for memory access analysis and optimizations to find and solve such bugs.However,existing works introduce huge runtime overhead for analysis,and also do not fully consider the typical characteristics of applications for deep optimizations of memory layout.This work takes further research on memory analysis and optimizations based on previous works.By combining compiler techniques,this work can significantly reduce the runtime overhead of memory analysis.Moreover,this work also provides a new idea of optimizing tensor programs by in-depth studies of program characteristics and memory layout.The research of this work can help researchers and developers to better understand the memory behavior of programs,find the potential memory bugs,improve the performance,and provide guidance for the system and hardware design.The main contributions of this work are listed as follows:1.This work proposes LOOPCRAFT,a hybrid static/dynamic memory trace collecting technique.By identifying regular memory access patterns at compile-time,LOOPCRAFT generates compact yet complete memory traces,with dramatically reduced time and space overhead.Results show that LOOPCRAFT can reduce the runtime overhead by a factor of up to 199× and the space overhead by a factor of up to 1111×.2.This work proposes SPINDLE,an efficient memory access monitoring and analysis framework.Unlike methods delaying all checks to runtime or performing taskspecific optimization at compile time,SPINDLE performs common static analysis to identify predictable memory access patterns into a compact program structure summary.Results show that tools developed based on SPINDLE,including memory trace collecting and online memory bug detection,are able to aggressively prune runtime memory monitoring processing,are able to aggressively prune online memory monitoring processing,fulfilling desired tasks with performance overhead significantly reduced.3.This work proposes PET,a tensor program optimization technique by changing the memory layout using program mutation.PET finds new opportunities of memory layout optimization and introduces partially equivalent transformation,which enlarges the optimization space of tensor programs.PET explores the new search space using program mutation,then automatically examines and corrects the nonequivalent elements to restore full equivalence by applying the equivalence theories of linear algebra.Results show that PET outperforms existing frameworks by up to2.5× on widely used DNN models and operators.
Keywords/Search Tags:Memory Access Analysis, Memory Trace, Memory Bug Detection, Memory Layout, Deep Neural Network Optimization
PDF Full Text Request
Related items