Skip to content

smbanx/ECS251

Repository files navigation

Basic Structure of our code

Pytorch Syscall Comparison

Code for DataLoader IO_Uring Implementation

Code & Visualization for IO_Uring Save Model Implementation

Output for Strace and Pytorch Syscall

Tools to parse results from profiler

Attention Based Workload

History of Profiling Commands ran

Concepts from your project plan map to that code

Our project consisted of 2 parts. The first part is profiling the workload. The workload which is fine-tuning an attention based model for sentiment analysis. We ran the commands in History of Profiling Commands ran for the traces. The results for the traces are in Output for Strace and Pytorch Syscall. Then we parsed and visualized the result using Tools to parse results from profiler. After we visualized the results we decided to explore various ways to reduce syscall overhead.

Part 2 involves in trying out ways to reduce I/O overhead within our workload. We tried to reduce I/O operations on the write model to disk part in Code & Visualization for IO_Uring Save Model Implementation. We also tried to reduce I/O overhead during the data loading phrase in Code for DataLoader IO_Uring Implementation. Finally we tried to optimize for commands like clock_gettime, ioctl, etc.

Profiling commands

Strace profiling commands

To run strace profiler on any workload and put the results into the output file "strace_output.txt"

strace -o strace_output.txt -f python <INSERT FILE HERE>

To generate a flame graph of execution

py-spy record --output py_spy_profile.svg -- python <INSERT FILE HERE>

To generate a strace summary

strace -c -o strace_summary.txt python <INSERT FILE HERE>

Strace profiling on individual ML parts

strace -o strace_output.txt -f python workload/trace_syscalls.py <--trace_copy OR --trace_forward OR --trace_backward> --mode <0 OR 1>

Pytorch profiling commands

python workload/ECS251.py --profile

What the tools do

Strace Visualization run this file with strace results to generate pie graph and syscall by time visualizations

Strace Parser Parse Strace results into .json file with PID, Syscall, Arguments, and Return Value for further processing.

Clean Logs filter the same strace logs from two different strace outputs so that we can work on different syscalls.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 5