-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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
[Ops]Add assign score withk forward cpu ops #2701
base: 2.x
Are you sure you want to change the base?
[Ops]Add assign score withk forward cpu ops #2701
Conversation
Codecov ReportPatch coverage:
Additional details and impacted files@@ Coverage Diff @@
## 2.x #2701 +/- ##
==========================================
+ Coverage 65.41% 65.51% +0.09%
==========================================
Files 128 128
Lines 8533 8533
Branches 1218 1220 +2
==========================================
+ Hits 5582 5590 +8
+ Misses 2742 2734 -8
Partials 209 209
Flags with carried forward coverage won't be shown. Click here to find out more.
... and 1 file with indirect coverage changes Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. ☔ View full report in Codecov by Sentry. |
@@ -186,3 +186,110 @@ def test_paconv_assign_scores(): | |||
points.grad.detach().cpu(), expected_points_grad, atol=1e-6) | |||
assert torch.allclose( | |||
centers.grad.detach().cpu(), expected_centers_grad, atol=1e-6) | |||
|
|||
|
|||
def test_paconv_assign_scores_cpu(): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You can share the test code with pytest.mark.parametrize
like
mmcv/tests/test_ops/test_nms.py
Line 22 in 1db3967
def test_nms_allclose(self, device): |
for (o = 0; o < O; o++) { | ||
output[b * O * N1 * K + o * N1 * K + n * K + k] += | ||
(p[m * O + o] - c[m * O + o]) * | ||
scores[b * N1 * K * M + n * K * M + k * M + m]; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
move scores out of O
loop to avoid duplicate scores load.
const T *p = points + b * N0 * M * O + pointIndex * M * O; | ||
for (m = 0; m < M; m++) { | ||
for (o = 0; o < O; o++) { | ||
output[b * O * N1 * K + o * N1 * K + n * K + k] += |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+=
is not necessary, =
should be enough.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can't replace +=
to =
because every output element is the result of dot product of two vectors.
Thanks for your contribution and we appreciate it a lot. The following instructions would make your pull request more healthy and more easily get feedback. If you do not understand some items, don't worry, just make the pull request and seek help from maintainers.
Motivation
Add assign score withk forward cpu ops in mmcv 2.x branch.
Modification
Please briefly describe what modification is made in this PR.
BC-breaking (Optional)
Does the modification introduce changes that break the backward-compatibility of the downstream repositories?
If so, please describe how it breaks the compatibility and how the downstream projects should modify their code to keep compatibility with this PR.
Use cases (Optional)
If this PR introduces a new feature, it is better to list some use cases here, and update the documentation.
Checklist
Before PR:
After PR: