Hi, i think it’s hard to create trees such as a b-tree on gpu. reasons are:
1, since cuda doesn’t support dereference, pointers to child nodes should be coded into offsets.
2, kernels can’t dynamically create a new node.
3, even if the build is done, searches in the tree are hard, since gpu dislikes pointer-chasings in loops.
even to copy an already-created tree from main mem to gpu is hard, since
1, like serializing to disk, the pointers are no longer meanful once the nodes leave the memory. page number or relative offsets must be calculated.
2, data types such as doubles, chars may be of a different byte-length on gpu, thus the bytewise cudaMemcopy may mess up the structure.
thanks for any opinions!