KDTree super inefficient

Just confirming that this is the same on my machine. 512 works…but a super low hardwareBufferSize is required for my setup, so it is a bit of a catch 22.

Thinking about this a bit more, I understand why the internal BlockSize would effect this, but why would the hardware driver’s block size effect it?

Greetings,

A bump on this. I seem to be having similar issues…maybe. My server hovers around 5-15% but the “peak” is constantly at 150% or so. Also… my KDTree has about 52000 datapoints and each of those points has 24 dimensions, so if that’s just waaaaaay to much to search through, then I can try to pare that down, but it seems to be related to this thread?

Thanks!

T

That is quite chunky. KDTree is certainly much faster than it was when this thread was born, because we found some bits that were chugging quite heavily, but we can keep profiling and see if there are more things to make it sleeker in the future.

Quoth Wikipedia:

Querying an axis-parallel range in a balanced k-d tree takes O(n 1−1/k +m) time, where m is the number of the reported points, and k the dimension of the k-d tree.

Meaning that as the number of dimensions gets bigger, the closer the complexity gets to just having to brute force search a flat list for the thing. With k = 24, you’re 96% of the way to a brute force search.

1 Like

I see. This is a good equation to know!