Amazon SageMaker XGBoost now affords absolutely distributed GPU coaching

Amazon SageMaker supplies a set of built-in algorithms, pre-trained models, and pre-built solution templates to assist information scientists and machine studying (ML) practitioners get began on coaching and deploying ML fashions rapidly. You should use these algorithms and fashions for each supervised and unsupervised studying. They will course of varied forms of enter information, together with tabular, picture, and textual content.

The SageMaker XGBoost algorithm permits you to simply run XGBoost coaching and inference on SageMaker. XGBoost (eXtreme Gradient Boosting) is a well-liked and environment friendly open-source implementation of the gradient boosted bushes algorithm. Gradient boosting is a supervised studying algorithm that makes an attempt to precisely predict a goal variable by combining an ensemble of estimates from a set of easier and weaker fashions. The XGBoost algorithm performs nicely in ML competitions due to its strong dealing with of quite a lot of information sorts, relationships, distributions, and the number of hyperparameters you could fine-tune. You should use XGBoost for regression, classification (binary and multiclass), and rating issues. You should use GPUs to speed up coaching on giant datasets.

As we speak, we’re joyful to announce that SageMaker XGBoost now affords absolutely distributed GPU coaching.

Beginning with model 1.5-1 and above, now you can make the most of all GPUs when utilizing multi-GPU cases. The brand new characteristic addresses your wants to make use of absolutely distributed GPU coaching when coping with giant datasets. This implies with the ability to use a number of Amazon Elastic Compute Cloud (Amazon EC2) cases (GPU) and utilizing all GPUs per occasion.

Distributed GPU coaching with multi-GPU cases

With SageMaker XGBoost model 1.2-2 or later, you should utilize a number of single-GPU cases for coaching. The hyperparameter tree_method must be set to gpu_hist. When utilizing a couple of occasion (distributed setup), the information must be divided amongst cases as follows (the identical because the non-GPU distributed coaching steps talked about in XGBoost Algorithm). Though this feature is performant and can be utilized in varied coaching setups, it doesn’t lengthen to utilizing all GPUs when selecting multi-GPU cases corresponding to g5.12xlarge.

With SageMaker XGBoost model 1.5-1 and above, now you can use all GPUs on every occasion when utilizing multi-GPU cases. The flexibility to make use of all GPUs in multi-GPU occasion is obtainable by integrating the Dask framework.

You should use this setup to finish coaching rapidly. Aside from saving time, this feature will even be helpful to work round blockers corresponding to most usable occasion (gentle) limits, or if the coaching job is unable to provision a lot of single-GPU cases for some purpose.

The configurations to make use of this feature are the identical because the earlier possibility, apart from the next variations:

  • Add the brand new hyperparameter use_dask_gpu_training with string worth true.
  • When creating TrainingInput, set the distribution parameter to FullyReplicated, whether or not utilizing single or a number of cases. The underlying Dask framework will perform the information load and cut up the information amongst Dask employees. That is completely different from the information distribution setting for all different distributed coaching with SageMaker XGBoost.

Word that splitting information into smaller recordsdata nonetheless applies for Parquet, the place Dask will learn every file as a partition. Since you’ll have a Dask employee per GPU, the variety of recordsdata must be better than occasion rely * GPU rely per occasion. Additionally, making every file too small and having a really giant variety of recordsdata can degrade efficiency. For extra info, see Avoid Very Large Graphs. For CSV, we nonetheless suggest splitting up giant recordsdata into smaller ones to scale back information obtain time and allow faster reads. Nevertheless, it’s not a requirement.

At the moment, the supported enter codecs with this feature are:

  • textual content/csv
  • software/x-parquet

The next enter mode is supported:

The code will look just like the next:

import os
import boto3
import re
import sagemaker
from sagemaker.session import Session
from sagemaker.inputs import TrainingInput
from sagemaker.xgboost.estimator import XGBoost

position = sagemaker.get_execution_role()
area = sagemaker.Session().boto_region_name
session = Session()

bucket = "<Specify S3 Bucket>"
prefix = "<Specify S3 prefix>"

hyperparams = {
    "goal": "reg:squarederror",
    "num_round": "500",
    "verbosity": "3",
    "tree_method": "gpu_hist",
    "eval_metric": "rmse",
    "use_dask_gpu_training": "true"

output_path = "s3://{}/{}/output".format(bucket, prefix)

content_type = "software/x-parquet"
instance_type = "ml.g4dn.2xlarge"

xgboost_container = sagemaker.image_uris.retrieve("xgboost", area, "1.5-1")
xgb_script_mode_estimator = sagemaker.estimator.Estimator(


test_data_uri = " <specify the S3 uri for coaching dataset>"
validation_data_uri = “<specify the S3 uri for validation dataset>”

train_input = TrainingInput(
    test_data_uri, content_type=content_type

validation_input = TrainingInput(
    validation_data_uri, content_type=content_type

xgb_script_mode_estimator.match({"practice": train_input, "validation": validation_input})

The next screenshots present a profitable coaching job log from the pocket book.


We benchmarked analysis metrics to make sure that the mannequin high quality didn’t deteriorate with the multi-GPU coaching path in comparison with single-GPU coaching. We additionally benchmarked on giant datasets to make sure that our distributed GPU setups have been performant and scalable.

Billable time refers back to the absolute wall-clock time. Coaching time is barely the XGBoost coaching time, measured from the practice() name till the mannequin is saved to Amazon Simple Storage Service (Amazon S3).

Efficiency benchmarks on giant datasets

Using multi-GPU is normally acceptable for giant datasets with advanced coaching. We created a dummy dataset with 2,497,248,278 rows and 28 options for testing. The dataset was 150 GB and composed of 1,419 recordsdata. Every file was sized between 105–115 MB. We saved the information in Parquet format in an S3 bucket. To simulate considerably advanced coaching, we used this dataset for a binary classification process, with 1,000 rounds, to check efficiency between the single-GPU coaching path and the multi-GPU coaching path.

The next desk comprises the billable coaching time and efficiency comparability between the single-GPU coaching path and the multi-GPU coaching path.

Single-GPU Coaching Path
Occasion Kind Occasion Depend Billable Time / Occasion(s) Coaching Time(s)
g4dn.xlarge 20 Out of Reminiscence
g4dn.2xlarge 20 Out of Reminiscence
g4dn.4xlarge 15 1710 1551.9
16 1592 1412.2
17 1542 1352.2
18 1423 1281.2
19 1346 1220.3
Multi-GPU Coaching Path (with Dask)
Occasion Kind Occasion Depend Billable Time / Occasion(s) Coaching Time(s)
g4dn.12xlarge 7 Out of Reminiscence
8 1143 784.7
9 1039 710.73
10 978 676.7
12 940 614.35

We will see that utilizing multi-GPU cases leads to low coaching time and low total time. The one-GPU coaching path nonetheless has some benefit in downloading and studying solely a part of the information in every occasion, and due to this fact low information obtain time. It additionally doesn’t undergo from Dask’s overhead. Subsequently, the distinction between coaching time and whole time is smaller. Nevertheless, as a consequence of utilizing extra GPUs, multi-GPU setup can reduce coaching time considerably.

It’s best to use an EC2 occasion that has sufficient compute energy to keep away from out of reminiscence errors when coping with giant datasets.

It’s attainable to scale back whole time additional with the single-GPU setup by utilizing extra cases or extra highly effective cases. Nevertheless, when it comes to value, it is likely to be costlier. For instance, the next desk exhibits the coaching time and value comparability with a single-GPU occasion g4dn.8xlarge.

Single-GPU Coaching Path
Occasion Kind Occasion Depend Billable Time / Occasion(s) Price ($)
g4dn.8xlarge 15 1679 15.22
17 1509 15.51
19 1326 15.22
Multi-GPU Coaching Path (with Dask)
Occasion Kind Occasion Depend Billable Time / Occasion(s) Price ($)
g4dn.12xlarge 8 1143 9.93
10 978 10.63
12 940 12.26

Price calculation is predicated on the On-Demand worth for every occasion. For extra info, check with Amazon EC2 G4 Instances.

Mannequin high quality benchmarks

For mannequin high quality, we in contrast analysis metrics between the Dask GPU possibility and the single-GPU possibility, and ran coaching on varied occasion sorts and occasion counts. For various duties, we used completely different datasets and hyperparameters, with every dataset cut up into coaching, validation, and check units.

For a binary classification (binary:logistic) process, we used the HIGGS dataset in CSV format. The coaching cut up of the dataset has 9,348,181 rows and 28 options. The variety of rounds used was 1,000. The next desk summarizes the outcomes.

Multi-GPU Coaching with Dask
Occasion Kind Num GPUs / Occasion Occasion Depend Billable Time / Occasion(s) Accuracy % F1 % ROC AUC %
g4dn.2xlarge 1 1 343 75.97 77.61 84.34
g4dn.4xlarge 1 1 413 76.16 77.75 84.51
g4dn.8xlarge 1 1 413 76.16 77.75 84.51
g4dn.12xlarge 4 1 157 76.16 77.74 84.52

For regression (reg:squarederror), we used the NYC green cab dataset (with some modifications) in Parquet format. The coaching cut up of the dataset has 72,921,051 rows and eight options. The variety of rounds used was 500. The next desk exhibits the outcomes.

Multi-GPU Coaching with Dask
Occasion Kind Num GPUs / Occasion Occasion Depend Billable Time / Occasion(s) MSE R2 MAE
g4dn.2xlarge 1 1 775 21.92 0.7787 2.43
g4dn.4xlarge 1 1 770 21.92 0.7787 2.43
g4dn.8xlarge 1 1 705 21.92 0.7787 2.43
g4dn.12xlarge 4 1 253 21.93 0.7787 2.44

Mannequin high quality metrics are comparable between the multi-GPU (Dask) coaching possibility and the present coaching possibility. Mannequin high quality stays constant when utilizing a distributed setup with a number of cases or GPUs.


On this put up, we gave an outline of how you should utilize completely different occasion sort and occasion rely mixtures for distributed GPU coaching with SageMaker XGBoost. For many use instances, you should utilize single-GPU cases. This feature supplies a variety of cases to make use of and may be very performant. You should use multi-GPU cases for coaching with giant datasets and plenty of rounds. It may possibly present fast coaching with a smaller variety of cases. Total, you should utilize SageMaker XGBoost’s distributed GPU setup to immensely pace up your XGBoost coaching.

To study extra about SageMaker and distributed coaching utilizing Dask, try Amazon SageMaker built-in LightGBM now offers distributed training using Dask

Concerning the Authors

Dhiraj Thakur is a Options Architect with Amazon Internet Companies. He works with AWS clients and companions to offer steerage on enterprise cloud adoption, migration, and technique. He’s obsessed with know-how and enjoys constructing and experimenting within the analytics and AI/ML area.

Dewan Choudhury is a Software program Improvement Engineer with Amazon Internet Companies. He works on Amazon SageMaker’s algorithms and JumpStart choices. Aside from constructing AI/ML infrastructures, he’s additionally obsessed with constructing scalable distributed techniques.

Xin HuangDr. Xin Huang is an Utilized Scientist for Amazon SageMaker JumpStart and Amazon SageMaker built-in algorithms. He focuses on creating scalable machine studying algorithms. His analysis pursuits are within the space of pure language processing, explainable deep studying on tabular information, and strong evaluation of non-parametric space-time clustering. He has revealed many papers in ACL, ICDM, KDD conferences, and Royal Statistical Society: Collection A journal.

Tony Cruz

Leave a Reply

Your email address will not be published. Required fields are marked *