Runtime Profiling of OpenCL Workloads Using LLVM-based Code Instrumentation

Author(s):  
Yongseung Yu ◽  
Seokwon Kang ◽  
Yongjun Park
Author(s):  
Vincenzo De Florio

As mentioned in Chapter I, a service’s dependability must be justified in a quantitative way and proved through extensive on-field testing and fault injection, verification and validation techniques, simulation, source-code instrumentation, monitoring, and debugging. An exhaustive treatment of all these techniques falls outside the scope of this book, nevertheless the author feels important to include in this text an analysis of the effect on dependability of some of the methods that have been introduced in previous chapters.


2014 ◽  
Vol 568-570 ◽  
pp. 1469-1478
Author(s):  
Ai Ping Xu ◽  
Yong Min Mu ◽  
Zhi Hua Zhang ◽  
Hui Li Li

Path coverage testing is almost impossible to achieve because of the large number of paths. The function calling path coverage analysis method can guaranty adequate test coverage rate effectively on the precondition of unit testing completion. Based on function calling relations, the methods of dynamic generation function calling path is proposed. For cycle and recursive calling, design instrumentation rules and probe function, complete source code instrumentation, ensure the stub point flow can trace to the function calling relations. The function calling path generation algorithms were designed to split the stub point flow to the dynamic function calling path. Experimental results show that the dynamic function calling path generation method based instrumentation can extract the function calling paths which are executed by test cases and gain the coverage of information automatically.


2021 ◽  
Vol 5 (OOPSLA) ◽  
pp. 1-28
Author(s):  
Angélica Aparecida Moreira ◽  
Guilherme Ottoni ◽  
Fernando Magno Quintão Pereira

Over the past few years, there has been a surge in the popularity of binary optimizers such as BOLT, Propeller, Janus and HALO. These tools use dynamic profiling information to make optimization decisions. Although effective, gathering runtime data presents developers with inconveniences such as unrepresentative inputs, the need to accommodate software modifications, and longer build times. In this paper, we revisit the static profiling technique proposed by Calder et al. in the late 90’s, and investigate its application to drive binary optimizations, in the context of the BOLT binary optimizer, as a replacement for dynamic profiling. A few core modifications to Calder et al.’s original proposal, consisting of new program features and a new regression model, are sufficient to enable some of the gains obtained through runtime profiling. An evaluation of BOLT powered by our static profiler on four large benchmarks (clang, GCC, MySQL and PostgreSQL) yields binaries that are 5.47 % faster than the executables produced by clang -O3.


Sign in / Sign up

Export Citation Format

Share Document