5 ms·
In decision trees more than half of the optimization time is spent doing sorting (sorting the set at each node to find the optimal splitting for the key at that
by alexbeloi 9y ago
In decision trees more than half of the optimization time is spent doing sorting (sorting the set at each node to find the optimal splitting for the key at that node), in neural nets it's almost all matrix multiplies. That's where the speedup difference comes in the CPU v GPU comparison.
- yorwba 9y agoThere are fast parallel sorting algorithms that should be able to take advantage of GPUs. Maybe they didn't implement them?
- hoaphumanoid 9y agoThe LightGBM implementation on GPU is based on this paper: https://arxiv.org/abs/1706.08359 https://arxiv.org/abs/1706.08359 they use several smart techniques to make the computation faster. One is how they create histograms of features that are computed in parallel in the GPU
- insulator 9y agoactually, the histogram-based tree learning algorithm doesn't need the sorting. The main cost of it is the memory access. The GPU version is slow (when #data is small) due to the additional memory copy cost between GPU and CPU. I think this issue can be fixed in the future.
- folli 9y agoYou need to sort it once for each dimension/predictor, after that it's log(n) to find the optimal split.