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

torchmetric optimizations #2943

Open
wants to merge 7 commits into
base: master
Choose a base branch
from

Conversation

czmrand
Copy link

@czmrand czmrand commented Feb 4, 2025

add nan_strategy "disable" to disable nan checks
set default in update to None to prevent sync event
see https://medium.com/@chaimrand/efficient-metric-collection-in-pytorch-avoiding-the-performance-pitfalls-of-torchmetrics-0dea81413681 for motivation

What does this PR do?

Naive use of torch metrics creates multiple CPU-GPU sync events which slows down training.
This is demonstrated in https://medium.com/@chaimrand/efficient-metric-collection-in-pytorch-avoiding-the-performance-pitfalls-of-torchmetrics-0dea81413681

Before submitting
  • [] Was this discussed/agreed via a Github issue? (no need for typos and docs improvements)
    No
  • Did you read the contributor guideline, Pull Request section?
    Yes
  • Did you make sure to update the docs?
    NR
  • Did you write any new necessary tests?
    NR
PR review

Anyone in the community is free to review the PR once the tests have passed.
If we didn't discuss your PR in Github issues there's a high chance it will not be merged.

Did you have fun?

Make sure you had fun coding 🙃


📚 Documentation preview 📚: https://torchmetrics--2943.org.readthedocs.build/en/2943/

@Borda
Copy link
Member

Borda commented Feb 14, 2025

wow, thank you @czmrand for this work!
could you pls add some demo/benchmark case where we can see the improvement?

@williamFalcon
Copy link
Contributor

williamFalcon commented Feb 14, 2025

@czmrand nice job! let's get these optimizations in @Borda @SkafteNicki :)

@SkafteNicki SkafteNicki self-assigned this Feb 24, 2025
@SkafteNicki SkafteNicki added the enhancement New feature or request label Feb 24, 2025
@SkafteNicki SkafteNicki added this to the v1.5.x milestone Feb 24, 2025
Copy link

codecov bot commented Feb 24, 2025

Codecov Report

Attention: Patch coverage is 50.00000% with 12 lines in your changes missing coverage. Please review.

Project coverage is 70%. Comparing base (a7c8ee0) to head (a8cf385).
Report is 5 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master   #2943    +/-   ##
=======================================
- Coverage      70%     70%    -0%     
=======================================
  Files         346     332    -14     
  Lines       19172   19016   -156     
=======================================
- Hits        13428   13258   -170     
- Misses       5744    5758    +14     

@mergify mergify bot added the ready label Feb 24, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request ready
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants