-
Notifications
You must be signed in to change notification settings - Fork 154
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
[REVIEW] Cartesian Product Iterator #250
[REVIEW] Cartesian Product Iterator #250
Conversation
Please update the changelog in order to start CI tests. View the gpuCI docs here. |
rerun tests |
@cwharris please set labels and put either [WIP] or [REVIEW] in the title so we know the status. |
rerun tests |
This PR is needed to support development for #231. |
rerun tests |
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.
Made that one suggestion to use thrust::distance
, but other than that looks good to me.
Note, style checks will be fixed once #252 is merged. |
rerun tests |
@cwharris the benchmark you included doesn't compare two things against each other, so how am I to see a 40% increase from it? Also, why do they all say "manual_time"? (Aare you using manual timing, and if so, why?) |
@harrism Previous benchmarks are from #246 (comment) I have not yet investigated why/when to use manual time, or what it means 😞. I was following the lead from other benchmarks, such as gather. Benchmark is declared here: https://github.com/rapidsai/cuspatial/blob/branch-0.15/cpp/benchmarks/hausdorff_benchmark.cpp#L56 Previous benchmarks
|
The |
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.
Looks like a good way to factor out N^2 distance metrics. Most of my comments are about documentation, just a couple on code.
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.
Really great refactor, love the cartesian product iterator. I had a few questions and minor reformatting concerns but I approve, not worth holding it up over it.
@thomcom did you make comments? I don't see them. 🤷♂️ |
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.
Seems like there's a new undocumented and untested API added in (minimum_euclidean_distance)? If so, I think you should move it to a new PR so we can get this one merged.
Factored out the Cartesian product iterator used by the Hausdorff distance implementation so that it can be used in st distance, and other n^2 distance metrics. Also added the ability to iterate the Cartesian product of two inputs, rather than a single input against itself. One of the goals was to avoid impacting Hausdorff performance. Instead of reaching that goal, Hausdorff performance was increased by 40%. 🎉