plasma-umass / scalene

Scalene: a high-performance, high-precision CPU, GPU, and memory profiler for Python with AI-powered optimization proposals
Apache License 2.0
11.38k stars 385 forks source link

Track memory bandwidth #279

Open ma-sadeghi opened 2 years ago

ma-sadeghi commented 2 years ago

Is your feature request related to a problem? Please describe. One thing that needs to be checked before trying to parallelize a code is to see whether or not memory bandwidth has already been saturated. Adding this feature would help programmers make more informed decisions as to when parallelizing a code is worth the effort.

Describe the solution you'd like I'd like to see a memory bandwidth (MB/s) metric as part of the profile.

Describe alternatives you've considered Currently, I use pcm to track memory bandwidth, but it's very manual and tedious (as I need to dynamically monitor the terminal output generated by pcm by "eye" while the program is running and somehow draw conclusions!)

emeryberger commented 2 years ago

PCM looks promising, though unfortunately Intel-only (and also not conveniently packaged as a Python module). Marking a a feature request.