-
-
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
[RFC] Improving continuous integration #4234
Comments
ETA for the first pull request for this RFC: |
It turns out that it is possible to compile CUDA code on machines without NVIDIA GPUs:
The benefit is that we can use more powerful CPU instances (e.g. c5d.18xlarge) to compile CUDA code faster. |
Definitely +1 for running performance tests regularly. Probably more frequent than two weeks though. |
@terrytangyuan Any suggestions for performance tests? |
Not on top of my head. I've only done this for internal datasets before. But here we should probably pick some good public (Kaggle?) datasets. Note that performance tests include both statistical and computational performance so we may want to consider use cases from both perspectives. |
@terrytangyuan Thanks. Let me think over this over the weekend. |
Would something like this be okay for performance benchmarking? We have a more polished Nvidia version that could be open sourced. All of the dataset loading/processing is automatic and it runs on a docker container. |
Preferably move R tests to Jenkins where we can cache all built dependencies. ;-) |
@trivialfis Yes, yes, yes! Docker is a great invention |
Now that we have two sponsors funding the continuous integration (CI) infrastructure (https://xgboost-ci.net), we should discuss ways to improve it.
De-couple builds from tests
Currently, we have a single Jenkins stage where XGBoost is both built and run. We should split this stage into two, one for builds and another for tests. The benefits of de-coupling compilation from test runs are:
Add Windows target
The progress has been slow on this front. The main challenge is to get Jenkins to somehow launch Windows workers and send remote commands. We've run into issues compiling XGBoost on Windows a few times (#4139, #3869), so it would be nice to detect potential issues early on. In addition, we want to build Python wheels automatically (I've been building the Windows wheel manually).
Migrate Python and Java tests to Jenkins
Regular performance tests
We should run a suite of performance tests on a regular basis (say every two weeks). This way, we can detect any performance degradation.
@dmlc/xgboost-committer
The text was updated successfully, but these errors were encountered: