GPU_completeTree #1
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "k.dobrzycki:GPU_completeTree"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Implemented GPU Octree (CUDA).
CPU / GPU Octree are differentiated by specialisation of
target
template parameter (defaulted toDEVICE::CPU
).Merged common tree functions with present CPU Octree with CRTP into
OctreeImpl
.Take note of changed interface - CPU Octree now uses out-parameters for consistency with GPU Octree. See the tests for example usage. This is the only interface change of CPU Octree.
GPU Octree storage should be batch-accessed on the host via
View
to avoid latency bottlenecks.GPU Octree box functions such as near/far field, parent, child are marked
__device__
and must be used through kernel launches. The kernels expect 1-dimensional launch parameters which correspond to SFC indices. A SFC index offset parameter is available to specify a subrange of a tree level. See thecuda_kernels
namespace for the interface and tests for usage.Objects which are used in kernels e.g. via member functions should be used with
DeviceCopiedObject
for automatic resource lifetime. Similarly,DeviceMemory
provides an automatic device pointer.Maybe should also specialise all basic tree functions on DEVICE
Pull request closed