-
Notifications
You must be signed in to change notification settings - Fork 41
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
Test on-node space indexes using both float and double #1200
base: master
Are you sure you want to change the base?
Conversation
@dalg24 Everything passed (except one CUDA build that threw subprocess exceptions). I think it should be fine to merge if you are OK with the changes. |
@@ -175,6 +175,14 @@ struct PredicateWithAttachment : Predicate | |||
: Predicate(std::forward<Predicate>(pred)) | |||
, _data(std::forward<Data>(data)) | |||
{} | |||
#if defined(KOKKOS_ENABLE_CUDA) && defined(KOKKOS_COMPILER_CLANG) && \ | |||
(KOKKOS_COMPILER_CLANG < 1500) |
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.
Just being conservative here. No idea what combinations are susceptible.
typename Coordinate = float> | ||
auto make(ExecutionSpace const &exec_space, | ||
std::vector<ArborX::Box<DIM, Coordinate>> const &b) | ||
template <typename Tree, typename Geometry, typename ExecutionSpace> |
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.
I am not loving the ordering of the template parameters but I understand why you did it this way
template <typename DeviceType, int DIM = 3, typename Coordinate = float> | ||
auto makeIntersectsBoxQueries( | ||
std::vector<ArborX::Box<DIM, Coordinate>> const &boxes, | ||
template <typename DeviceType, typename Geometry> |
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 still want to template on DeviceType
?
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.
I plan to switch it to templating on the ExecutionSpace
in the future.
list(APPEND ARBORX_TEST_QUERY_TREE_SOURCES "${CMAKE_CURRENT_BINARY_DIR}/tstQueryTree${_test}_BF.cpp") | ||
foreach(_bounding_volume KDOP14 KDOP18) # purposefully ommitting KDOP6 and KDOP26 to reduce the number of instantiations | ||
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/tstQueryTree${_test}_BVH_${_bounding_volume}.cpp.tmp" | ||
foreach (_precision float double) |
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.
By how much are we increasing compile time? runtime?
I am interested both in these numbers for the QueryTree exe and total times
using Point = ArborX::Point<3>; | ||
using Box = ArborX::Box<3>; |
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.
Do we want to be explicit here and say float?
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.
Not right now. I'll do that once we switch distributed test to run both.
@dalg24 Addressed all your comments. |
On my Mac in Debug configuration with only the Serial backend: master, making just the tree query test:
master, making all tests:
branch, making just the tree query test:
So, ~2x slower than
So, around ~40% slower than just Runtime is in the epsilon, as on my Mac running query test with both |
Co-authored-by: Damien L-G <dalg24+github@gmail.com>
Rebased to fix conflicts with #1108. |
make()
,makeIntersects*()
,makeNearest*()
to work with any kind of geometryfloat
anddouble