Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Drpy #63

Open
wants to merge 10 commits into
base: dev
Choose a base branch
from
Open

Drpy #63

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 17 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
# DrCCTProf
# DrCCTProf - DrPy Client

DrCCTProf is a fine-grained call path profiling framework for binaries running on ARM and X86 architectures.
DrPy client aims to detect and optimize cross layer inefficiencies across Python program and native layers.

DrCCTProf is a fine-grained call path profiling framework for binaries running on ARM and X86 architectures. DrCCTProf (together with its predecessor CCTLib) won a numbe of paper awards, including ASPLOS'17 Highlight, ICSE'19 Distinguished Paper Award, SC'20 Best Paper Finalist.

- Please see our [blog](https://xl10.github.io/blog/drcctprof.html) for the high-level introduction.
- Please watch our [introductory talk](https://www.youtube.com/watch?v=oUB9yh_78hE) to learn more.
- Please refer [documentation](https://drcctprof.readthedocs.io/en/latest/) for detailed tutorial and API references.
- Please refer to [the DrCCTProf tutorial](https://www.xperflab.org/drcctprof/tutorial) co-located with CGO'22.

![build master](https://github.com/Xuhpclab/DrCCTProf/workflows/build%20master/badge.svg)
[![Codacy Badge](https://app.codacy.com/project/badge/Grade/d9708750f8b24b60bc0102dd5b89e4dd)](https://www.codacy.com/gh/Xuhpclab/DrCCTProf/dashboard?utm_source=github.com&utm_medium=referral&utm_content=Xuhpclab/DrCCTProf&utm_campaign=Badge_Grade)
Expand Down Expand Up @@ -108,6 +111,7 @@ The following platforms pass our tests.
| ThunderX2 99xx | Ubuntu 20.04 | aarch64 |
| AWS Graviton1 | Ubuntu 18.04 | aarch64 |
| AWS Graviton2 | Ubuntu 18.04 | aarch64 |
| Fujitsu A64FX | CentOS 8.1 | aarch64 |

## Obtaining Help

Expand All @@ -124,3 +128,14 @@ Please use the [bug report](https://github.com/Xuhpclab/DrCCTProf/issues/new?lab
## License

DrCCTProf is released under the [MIT License](http://www.opensource.org/licenses/MIT).

## Related Publication
1. Milind Chabbi, Xu Liu, and John Mellor-Crummey. 2014. Call Paths for Pin Tools. In Proceedings of Annual IEEE/ACM International Symposium on Code Generation and Optimization (CGO '14). ACM, New York, NY, USA, , Pages 76 , 11 pages. DOI=http://dx.doi.org/10.1145/2544137.2544164
2. Milind Chabbi, Wim Lavrijsen, Wibe de Jong, Koushik Sen, John Mellor-Crummey, and Costin Iancu. 2015. Barrier elision for production parallel programs. In Proceedings of the 20th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP 2015). ACM, New York, NY, USA, 109-119. DOI=http://dx.doi.org/10.1145/2688500.2688502
3. Milind Chabbi and John Mellor-Crummey. 2012. DeadSpy: a tool to pinpoint program inefficiencies. In Proceedings of the Tenth International Symposium on Code Generation and Optimization (CGO '12). ACM, New York, NY, USA, 124-134. DOI=http://dx.doi.org/10.1145/2259016.2259033
4. Shasha Wen, Xu Liu, Milind Chabbi, "Runtime Value Numbering: A Profiling Technique to Pinpoint Redundant Computations" The 24th International Conference on Parallel Architectures and Compilation Techniques (PACT'15), Oct 18-21, 2015, San Francisco, California, USA
5. Shasha Wen, Milind Chabbi, and Xu Liu. 2017. REDSPY: Exploring Value Locality in Software. In Proceedings of the Twenty-Second International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS '17). ACM, New York, NY, USA, 47-61. DOI: https://doi.org/10.1145/3037697.3037729
6. Pengfei Su, Shasha Wen, Hailong Yang, Milind Chabbi, and Xu Liu. 2019. Redundant Loads: A Software Inefficiency Indicator. In Proceedings of the 41st International Conference on Software Engineering (ICSE '19). IEEE Press, Piscataway, NJ, USA, 982-993. DOI: https://doi.org/10.1109/ICSE.2019.00103
7. Jialiang Tan, Shuyin Jiao, Milind Chabbi, Xu Liu. What Every Scientific Programmer Should Know About Compiler Optimizations? The 34th ACM International Conference on Supercomputing (ICS'20), Jun 29 - Jul 2, 2020, Barcelona, Spain.
8. Xin You, Hailong Yang, Zhongzhi Luan, Depei Qian, Xu Liu. Zerospy: Exploring the Software Inefficiencies with Redundant Zeros, The International Conference for High Performance Computing, Networking, Storage and Analysis (SC'20), Nov 15-20, 2020, Atlanta, GA, USA.
9. Qidong Zhao, Xu Liu, Milind Chabbi. DRCCTPROF: A Fine-grained Call Path Profiler for ARM-based Clusters, The International Conference for High Performance Computing, Networking, Storage and Analysis (SC'20), Nov 15-20, 2020, Atlanta, GA, USA.
2 changes: 1 addition & 1 deletion dynamorio
Submodule dynamorio updated 875 files
10 changes: 6 additions & 4 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
# See LICENSE file for more information.
# **********************************************************

# i#277/PR 540817: DynamoRIO Extensions support

cmake_minimum_required(VERSION 3.7)

include(../make/policies.cmake NO_POLICY_SCOPE)
Expand Down Expand Up @@ -84,16 +86,16 @@ add_subdirectory(drmgr)
add_subdirectory(drx)
add_subdirectory(drwrap)
add_subdirectory(drreg)
# TODO i#4134: ARM not yet supported.
if (X86)
add_subdirectory(drbbdup)
endif (X86)
add_subdirectory(drbbdup)
add_subdirectory(drsyms)
add_subdirectory(drutil)
add_subdirectory(droption)
add_subdirectory(drcovlib)
add_subdirectory(drcctlib)
add_subdirectory(drstatecmp)
if (BUILD_PT_TRACER)
add_subdirectory(drpttracer)
endif (BUILD_PT_TRACER)
if (LINUX) # TODO i#2414: Port to Windows, Mac, and Android.
if (HAVE_LIBUNWIND_H)
add_subdirectory(drcallstack)
Expand Down