-
-
Notifications
You must be signed in to change notification settings - Fork 8.7k
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
Huge increase in learning time introduced in version 0.81 #5461
Comments
@ldesreumaux, thank you for reporting the issue. |
Here is a python script to reproduce the issue. With this script, there is a x2 improvement (200s/100s) on my laptop when I remove the checks in version 1.0.2.
|
A bit surprised your bottle neck is in objective. |
Which compiler are you using? |
I am using Visual Studio 2015 on my Windows laptop. I also had the same difference between version 0.80 and 1.0.2 with xgboost installed via pip in a Linux environment. |
Thanks for sharing the information. |
@ldesreumaux Could you give latest master branch a try? See if it makes thing a little better? |
@trivialfis Thanks for the fix. With the latest master branch, the training times are in the same order of magnitude as before version 0.81, and there does not seem to be a very significant difference when I completely remove the span checks. |
I recently updated my version of xgboost from 0.80 to 1.0.2 and I noticed a huge increase in learning time.
I investigated the problem and found that this increase is caused by the
Span
class introduced in 2c50278 and first released in version 0.81. Compared to the structure that was used before, this class does some checks (SPAN_CHECK
instructions inspan.h
). If you remove these checks, you will notice a huge decrease in learning time (> x2 !). In fact, the learning time gets back to what it was before version 0.81.These checks should only be present in Debug mode.
The text was updated successfully, but these errors were encountered: