-
Notifications
You must be signed in to change notification settings - Fork 243
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
In Boosting Assembler wrapping each estimator into a subroutine causes a performance degradation #152
Comments
x4 slowdown is very awful! However, Java slowdown due to wrapping estimators into subroutine should be less panful compared to R slowdown due to not wrapping, because slow Java code doesn't exceed Travis limit while R code does this. |
Solving this issue on assembler's end rather than in interpreters certainly wasn't the best idea ever. So far I don't have any great ideas, but I'm sure I don't like penalizing one language in favor of the other. UPD: We should also keep in mind that JVM usage is/will be potentially more widespread and have stricter execution time constraints. UPD2: I actually do have one idea which I'm going to explore this upcoming weekend (or hopefully sooner). |
Turns out I've accidentally generated
The difference is still significant but not nearly as dramatic. Attaching the updated archive |
I absolutely agree with you! I think we should try to support all our languages equally.
Sorry, I have no any experience in Java 🙁 .
Sounds promising!
Still this slowdown is not good thing. |
Can we close this? |
Yes, absolutely. Thank you! |
I've recalled the real motivation behind not wrapping every individual estimator into its own subroutine - generation of many nested function calls leads to a performance degradation in Java. The observed difference reaches 4x for larger models (eg. XGBoost with 1000 estimators). The basic test I created (sorry about Scala):
Results for
ModelOld
:For
ModelNew
:The test model has been trained using the
sklearn.datasets.load_iris()
dataset. Classifier has been created as following:In the attached archive I included the following:
0.5.0
version.CC: @StrikerRUS FYI
The text was updated successfully, but these errors were encountered: