Performance and Speedups#

Zero-code-change acceleration with cuml.accel delivers an approximately 5.8× median speedup across training benchmark cases completed on both CPU and GPU, measured on NVIDIA RTX Pro 6000. Training performance varies with the estimator, dataset size and shape, and hyperparameters, but most measured workloads are faster on GPU, with the largest gains appearing on wider or larger datasets.

Speedup by operation and workload#

Rows are ranked by the median exact speedup. Green indicates a measured gain, gray is centered at 1×, and warm colors indicate a slowdown. Hatching marks CPU-timeout lower bounds and unavailable results.

A timeout indicates that the complete isolated CPU benchmark case—not a single estimator call—exceeded its wall-clock limit. When the GPU run completed, the displayed value is a conservative lower bound (), not an exact speedup.

Training and combined operations#

PCA performance depends strongly on the requested component rank. The table below holds the input at 61,035 rows by 4,096 features and varies only n_components. The timings show an approximate crossover from transfer-dominated low-rank work to positive speedup at higher ranks.

See the detailed PCA results for the remaining workloads.

Medium-wide PCA fit-transform by component rank#

Components

PCA CPU / GPU / result

128

1.42 s / 2.97 s / 0.48×

256

2.15 s / 2.91 s / 0.74×

512

3.34 s / 2.98 s / 1.12×

1,024

8.14 s / 3.1 s / 2.62×

Inference and transforms#

The heatmap shows the 10 operations with the highest median exact speedup. Detailed estimator tables retain every inference and transform result, including short operations where dispatch and data-conversion overhead dominate.

Detailed benchmark results#

Use the workload guide to interpret the heatmaps, then open an estimator for exact shapes, throughput or wall times, slowdowns, and timeouts. Detailed results express inference and transform operations as throughput in samples per second, abbreviated as M/s, k/s, or /s, with one input row counted as one sample. The wall time used to calculate throughput is shown below it. Training and combined-operation rows show wall time only.

Five relative workload categories, from transfer-bound to compute-heavy#

Every operation uses the same five relative workload categories, ordered from smaller or more transfer-sensitive cases to larger or more compute-intensive cases. Concrete shapes follow operation-family policies, with workload sizes chosen to complete within reasonable runtime and resource limits. These sizes are illustrative examples across several workload regimes, not scaling limits or maximum supported sizes. The same category can therefore represent different rows, features, and input sizes across operations; exact values appear in the estimator tables.

Workload dimensions and decimal float32 X size#

Label

Rows

Features

Input

small.balanced

2,000–781,250

32–1,024

0.256 MB–205 MB

medium.thin

8,000–15,625,000

8–128

0.256 MB–500 MB

medium.balanced

8,000–3,906,250

32–1,024

1.02 MB–2 GB

medium.wide

8,000–976,563

128–4,096

8.19 MB–2 GB

large

32,000–15,625,000

32–1,024

4.1 MB–10 GB

Results by estimator#

Open an estimator for every workload, throughput or wall time, slowdown, timeout, and actual shape.

Linear models

ElasticNet
ElasticNet results for all measured operations and workloads#

Operation

Workload

Rows

Features

Input

CPU

GPU

Result

fit

small.balanced

50,000

128

25.6 MB

24.4 ms

16.2 ms

1.51×

fit

medium.thin

1,562,500

16

100 MB

216.7 ms

47.7 ms

4.55×

fit

medium.balanced

500,000

128

256 MB

388.4 ms

314.8 ms

1.23×

fit

medium.wide

244,140

1,024

1,000 MB

2.66 s

2.47 s

1.08×

fit

large

5,000,000

128

2.56 GB

3.67 s

3.2 s

1.15×

predict

small.balanced

195,313

128

100 MB

32.1M/s 6.1 ms

23.4M/s 8.3 ms

0.73×

predict

medium.thin

7,812,500

16

500 MB

251M/s 31.2 ms

176M/s 44.3 ms

0.70×

predict

medium.balanced

976,563

128

500 MB

32.6M/s 29.9 ms

23.8M/s 41.1 ms

0.73×

predict

medium.wide

488,281

1,024

2 GB

4.74M/s 103.0 ms

3.05M/s 160.0 ms

0.64×

predict

large

5,000,000

128

2.56 GB

41.1M/s 121.6 ms

24.1M/s 207.2 ms

0.59×

Lasso
Lasso results for all measured operations and workloads#

Operation

Workload

Rows

Features

Input

CPU

GPU

Result

fit

small.balanced

50,000

128

25.6 MB

22.6 ms

16.7 ms

1.35×

fit

medium.thin

1,562,500

16

100 MB

130.2 ms

46.7 ms

2.79×

fit

medium.balanced

500,000

128

256 MB

398.2 ms

322.9 ms

1.23×

fit

medium.wide

244,140

1,024

1,000 MB

2.62 s

2.45 s

1.07×

fit

large

5,000,000

128

2.56 GB

3.75 s

3.19 s

1.17×

predict

small.balanced

195,313

128

100 MB

35M/s 5.6 ms

23.5M/s 8.3 ms

0.67×

predict

medium.thin

7,812,500

16

500 MB

247M/s 31.6 ms

176M/s 44.3 ms

0.71×

predict

medium.balanced

976,563

128

500 MB

34.4M/s 28.4 ms

23.8M/s 41.1 ms

0.69×

predict

medium.wide

488,281

1,024

2 GB

4.9M/s 99.6 ms

3.04M/s 160.5 ms

0.62×

predict

large

5,000,000

128

2.56 GB

41.1M/s 121.6 ms

24M/s 208.0 ms

0.58×

LinearRegression
LinearRegression results for all measured operations and workloads#

Operation

Workload

Rows

Features

Input

CPU

GPU

Result

fit

small.balanced

50,000

128

25.6 MB

54.9 ms

7.3 ms

7.50×

fit

medium.thin

1,562,500

16

100 MB

223.0 ms

17.0 ms

13.1×

fit

medium.balanced

500,000

128

256 MB

805.3 ms

46.3 ms

17.4×

fit

medium.wide

244,140

1,024

1,000 MB

4.99 s

113.0 ms

44.2×

fit

large

5,000,000

128

2.56 GB

10.6 s

1.04 s

10.2×

predict

small.balanced

195,313

128

100 MB

22.7M/s 8.6 ms

23M/s 8.5 ms

1.01×

predict

medium.thin

7,812,500

16

500 MB

248M/s 31.5 ms

178M/s 43.9 ms

0.72×

predict

medium.balanced

976,563

128

500 MB

32.6M/s 30.0 ms

23.8M/s 41.0 ms

0.73×

predict

medium.wide

488,281

1,024

2 GB

4.87M/s 100.2 ms

3.05M/s 160.3 ms

0.63×

predict

large

5,000,000

128

2.56 GB

41M/s 121.9 ms

24.1M/s 207.2 ms

0.59×

LogisticRegression
LogisticRegression results for all measured operations and workloads#

Operation

Workload

Rows

Features

Input

CPU

GPU

Result

fit

small.balanced

50,000

128

25.6 MB

29.4 ms

6.3 ms

4.64×

fit

medium.thin

1,562,500

16

100 MB

683.6 ms

18.0 ms

38.0×

fit

medium.balanced

500,000

128

256 MB

369.5 ms

29.6 ms

12.5×

fit

medium.wide

244,140

1,024

1,000 MB

533.0 ms

96.6 ms

5.52×

fit

large

5,000,000

128

2.56 GB

3.32 s

266.2 ms

12.5×

predict

small.balanced

195,313

128

100 MB

39.2M/s 5.0 ms

23.2M/s 8.4 ms

0.59×

predict

medium.thin

7,812,500

16

500 MB

188M/s 41.6 ms

180M/s 43.4 ms

0.96×

predict

medium.balanced

976,563

128

500 MB

31.7M/s 30.8 ms

23.8M/s 41.0 ms

0.75×

predict

medium.wide

488,281

1,024

2 GB

3.82M/s 127.9 ms

3.04M/s 160.7 ms

0.80×

predict

large

5,000,000

128

2.56 GB

38.6M/s 129.5 ms

24.1M/s 207.4 ms

0.62×

Ridge
Ridge results for all measured operations and workloads#

Operation

Workload

Rows

Features

Input

CPU

GPU

Result

fit

small.balanced

50,000

128

25.6 MB

27.6 ms

7.1 ms

3.86×

fit

medium.thin

1,562,500

16

100 MB

106.0 ms

18.4 ms

5.75×

fit

medium.balanced

500,000

128

256 MB

221.4 ms

49.8 ms

4.44×

fit

medium.wide

244,140

1,024

1,000 MB

537.9 ms

129.7 ms

4.15×

fit

large

5,000,000

128

2.56 GB

1.54 s

490.0 ms

3.15×

predict

small.balanced

195,313

128

100 MB

35.1M/s 5.6 ms

23.6M/s 8.3 ms

0.67×

predict

medium.thin

7,812,500

16

500 MB

253M/s 30.9 ms

178M/s 43.8 ms

0.71×

predict

medium.balanced

976,563

128

500 MB

34.1M/s 28.7 ms

23.8M/s 41.1 ms

0.70×

predict

medium.wide

488,281

1,024

2 GB

4.93M/s 99.0 ms

3.04M/s 160.5 ms

0.62×

predict

large

5,000,000

128

2.56 GB

40M/s 125.1 ms

24.2M/s 206.7 ms

0.61×

Clustering and manifold learning

DBSCAN
DBSCAN results for all measured operations and workloads#

Operation

Workload

Rows

Features

Input

CPU

GPU

Result

fit_predict

small.balanced

2,000

32

0.256 MB

5.7 ms

1.1 ms

5.00×

fit_predict

medium.thin

8,000

8

0.256 MB

70.5 ms

2.0 ms

35.1×

fit_predict

medium.balanced

8,000

32

1.02 MB

19.5 ms

1.9 ms

10.3×

fit_predict

medium.wide

8,000

256

8.19 MB

62.4 ms

3.1 ms

19.9×

fit_predict

large

32,000

32

4.1 MB

168.5 ms

13.9 ms

12.2×

HDBSCAN
HDBSCAN results for all measured operations and workloads#

Operation

Workload

Rows

Features

Input

CPU

GPU

Result

fit_predict

small.balanced

2,000

32

0.256 MB

40.3 ms

7.4 ms

5.46×

fit_predict

medium.thin

8,000

8

0.256 MB

105.0 ms

10.2 ms

10.3×

fit_predict

medium.balanced

8,000

32

1.02 MB

211.2 ms

10.6 ms

19.9×

fit_predict

medium.wide

8,000

256

8.19 MB

4.76 s

14.7 ms

325×

fit_predict

large

32,000

32

4.1 MB

1.09 s

34.3 ms

31.7×

KMeans
KMeans results for all measured operations and workloads#

Operation

Workload

Rows

Features

Input

CPU

GPU

Result

fit_predict

small.balanced

50,000

128

25.6 MB

66.5 ms

24.1 ms

2.77×

fit_predict

medium.thin

1,562,500

16

100 MB

492.9 ms

81.8 ms

6.02×

fit_predict

medium.balanced

500,000

128

256 MB

526.2 ms

143.4 ms

3.67×

fit_predict

medium.wide

244,140

1,024

1,000 MB

6.8 s

477.5 ms

14.2×

fit_predict

large

5,000,000

128

2.56 GB

13.5 s

1.3 s

10.4×

predict

small.balanced

195,313

128

100 MB

36.1M/s 5.4 ms

21.4M/s 9.1 ms

0.59×

predict

medium.thin

7,812,500

16

500 MB

107M/s 72.7 ms

150M/s 51.9 ms

1.40×

predict

medium.balanced

976,563

128

500 MB

32.9M/s 29.7 ms

22.9M/s 42.6 ms

0.70×

predict

medium.wide

488,281

1,024

2 GB

5.76M/s 84.8 ms

3M/s 162.5 ms

0.52×

predict

large

5,000,000

128

2.56 GB

37M/s 135.3 ms

23.4M/s 213.8 ms

0.63×

t-SNE
t-SNE results for all measured operations and workloads#

Operation

Workload

Rows

Features

Input

CPU

GPU

Result

fit_transform

small.balanced

2,000

64

0.512 MB

1.62 s

397.6 ms

4.07×

fit_transform

medium.thin

10,000

8

0.32 MB

8.88 s

468.1 ms

19.0×

fit_transform

medium.balanced

10,000

64

2.56 MB

8.71 s

581.8 ms

15.0×

fit_transform

medium.wide

10,000

512

20.5 MB

9.26 s

614.1 ms

15.1×

fit_transform

large

50,000

64

12.8 MB

44.2 s

904.7 ms

48.9×

UMAP
UMAP results for all measured operations and workloads#

Operation

Workload

Rows

Features

Input

CPU

GPU

Result

fit_transform

small.balanced

2,000

64

0.512 MB

2.43 s

112.2 ms

21.7×

fit_transform

medium.thin

10,000

8

0.32 MB

5.27 s

108.8 ms

48.4×

fit_transform

medium.balanced

10,000

64

2.56 MB

5.88 s

264.8 ms

22.2×

fit_transform

medium.wide

10,000

512

20.5 MB

6.29 s

325.4 ms

19.3×

fit_transform

large

50,000

64

12.8 MB

13.4 s

252.0 ms

53.0×

transform

small.balanced

390,625

64

100 MB

Timeout at 70 s

2.97M/s 131.3 ms

≥529×

transform

medium.thin

15,625,000

8

500 MB

Timeout at 100 s

8.76M/s 1.78 s

≥57.0×

transform

medium.balanced

1,953,125

64

500 MB

Timeout at 100 s

2.64M/s 739.3 ms

≥138×

transform

medium.wide

244,141

512

500 MB

Timeout at 100 s

369k/s 661.1 ms

≥154×

transform

large

7,812,500

64

2 GB

Timeout at 14 min

1.47M/s 5.32 s

≥160×

Neighbors and density estimation

KNeighborsClassifier
KNeighborsClassifier results for all measured operations and workloads#

Operation

Workload

Rows

Features

Input

CPU

GPU

Result

predict

small.balanced

2,000

128

1.02 MB

146k/s 13.7 ms

2.09M/s 0.96 ms

14.3×

predict

medium.thin

8,000

16

0.512 MB

310k/s 25.8 ms

8.35M/s 0.96 ms

26.9×

predict

medium.balanced

8,000

128

4.1 MB

177k/s 45.1 ms

3.64M/s 2.2 ms

20.5×

predict

medium.wide

8,000

1,024

32.8 MB

32.7k/s 244.5 ms

707k/s 11.3 ms

21.6×

predict

large

32,000

128

16.4 MB

82.2k/s 389.5 ms

1.8M/s 17.8 ms

21.9×

KNeighborsRegressor
KNeighborsRegressor results for all measured operations and workloads#

Operation

Workload

Rows

Features

Input

CPU

GPU

Result

predict

small.balanced

2,000

128

1.02 MB

149k/s 13.4 ms

2.74M/s 0.73 ms

18.4×

predict

medium.thin

8,000

16

0.512 MB

226k/s 35.4 ms

12.2M/s 0.66 ms

54.0×

predict

medium.balanced

8,000

128

4.1 MB

187k/s 42.8 ms

4.13M/s 1.9 ms

22.1×

predict

medium.wide

8,000

1,024

32.8 MB

34k/s 235.6 ms

730k/s 11.0 ms

21.5×

predict

large

32,000

128

16.4 MB

89.6k/s 357.2 ms

1.88M/s 17.0 ms

21.0×

KernelDensity
KernelDensity results for all measured operations and workloads#

Operation

Workload

Rows

Features

Input

CPU

GPU

Result

score_samples

small.balanced

2,000

128

1.02 MB

3.29k/s 608.7 ms

1.97M/s 1.0 ms

599×

score_samples

medium.thin

8,000

16

0.512 MB

3.1k/s 2.58 s

13.5M/s 0.59 ms

4372×

score_samples

medium.balanced

8,000

128

4.1 MB

831/s 9.62 s

4.11M/s 1.9 ms

4942×

score_samples

medium.wide

8,000

1,024

32.8 MB

Timeout at 100 s

741k/s 10.8 ms

≥9426×

score_samples

large

32,000

128

16.4 MB

168/s 190 s

2.18M/s 14.7 ms

12969×

NearestNeighbors
NearestNeighbors results for all measured operations and workloads#

Operation

Workload

Rows

Features

Input

CPU

GPU

Result

kneighbors

small.balanced

2,000

128

1.02 MB

135k/s 14.9 ms

2.98M/s 0.67 ms

22.2×

kneighbors

medium.thin

8,000

16

0.512 MB

282k/s 28.4 ms

12M/s 0.67 ms

42.4×

kneighbors

medium.balanced

8,000

128

4.1 MB

207k/s 38.6 ms

3.72M/s 2.2 ms

17.9×

kneighbors

medium.wide

8,000

1,024

32.8 MB

33.2k/s 241.2 ms

721k/s 11.1 ms

21.7×

kneighbors

large

32,000

128

16.4 MB

88k/s 363.7 ms

1.85M/s 17.3 ms

21.0×

Decomposition

PCA
PCA results for all measured operations and workloads#

Operation

Workload

Rows

Features

Input

CPU

GPU

Result

fit_transform

small.balanced · 256 components

10,000

1,024

41 MB

347.9 ms

114.6 ms

3.04×

fit_transform

medium.thin · 32 components

195,313

128

100 MB

115.6 ms

256.0 ms

0.45×

fit_transform

medium.balanced · 256 components

100,000

1,024

410 MB

2.19 s

1.67 s

1.31×

fit_transform

medium.wide · 128 components

61,035

4,096

1,000 MB

1.42 s

2.97 s

0.48×

fit_transform

medium.wide · 256 components

61,035

4,096

1,000 MB

2.15 s

2.91 s

0.74×

fit_transform

medium.wide · 512 components

61,035

4,096

1,000 MB

3.34 s

2.98 s

1.12×

fit_transform

medium.wide · 1,024 components

61,035

4,096

1,000 MB

8.14 s

3.1 s

2.62×

fit_transform

large · 256 components

1,000,000

1,024

4.1 GB

16.7 s

20 s

0.83×

transform

small.balanced · 256 components

50,000

1,024

205 MB

1.71M/s 29.3 ms

173k/s 289.5 ms

0.10×

transform

medium.thin · 32 components

976,563

128

500 MB

14M/s 69.6 ms

1.39M/s 700.9 ms

0.10×

transform

medium.balanced · 256 components

488,281

1,024

2 GB

2.05M/s 237.9 ms

89.7k/s 5.44 s

0.04×

transform

medium.wide · 1,024 components

122,070

4,096

2 GB

280k/s 436.5 ms

23.2k/s 5.27 s

0.08×

transform

large · 256 components

2,441,406

1,024

10 GB

2.49M/s 982.0 ms

91k/s 26.8 s

0.04×

PCA performance depends strongly on both input feature width and the number of retained components; results can vary substantially across these dimensions.

Ensembles

RandomForestClassifier
RandomForestClassifier results for all measured operations and workloads#

Operation

Workload

Rows

Features

Input

CPU

GPU

Result

fit

small.balanced

50,000

128

25.6 MB

439.4 ms

140.3 ms

3.13×

fit

medium.thin

1,562,500

16

100 MB

7.81 s

778.6 ms

10.0×

fit

medium.balanced

250,000

128

128 MB

2.25 s

284.9 ms

7.90×

fit

medium.wide

244,140

1,024

1,000 MB

7.95 s

791.2 ms

10.0×

fit

large

1,953,125

128

1 GB

28.6 s

1.12 s

25.6×

predict

small.balanced

195,313

128

100 MB

6.67M/s 29.3 ms

15.8M/s 12.4 ms

2.37×

predict

medium.thin

7,812,500

16

500 MB

8.79M/s 888.6 ms

106M/s 74.0 ms

12.0×

predict

medium.balanced

976,563

128

500 MB

6.91M/s 141.3 ms

16.5M/s 59.3 ms

2.38×

predict

medium.wide

488,281

1,024

2 GB

2.36M/s 206.8 ms

2.13M/s 229.1 ms

0.90×

predict

large

5,000,000

128

2.56 GB

6.21M/s 804.8 ms

16.8M/s 297.9 ms

2.70×

RandomForestRegressor
RandomForestRegressor results for all measured operations and workloads#

Operation

Workload

Rows

Features

Input

CPU

GPU

Result

fit

small.balanced

50,000

128

25.6 MB

2.95 s

716.6 ms

4.12×

fit

medium.thin

1,562,500

16

100 MB

19.8 s

1.63 s

12.2×

fit

medium.balanced

250,000

128

128 MB

17.7 s

1.8 s

9.80×

fit

medium.wide

244,140

1,024

1,000 MB

Timeout at 100 s

10.6 s

≥9.59×

fit

large

1,953,125

128

1 GB

208 s

7.6 s

27.4×

predict

small.balanced

195,313

128

100 MB

5.07M/s 38.5 ms

16.4M/s 11.9 ms

3.23×

predict

medium.thin

7,812,500

16

500 MB

7.15M/s 1.09 s

111M/s 70.3 ms

15.5×

predict

medium.balanced

976,563

128

500 MB

5.04M/s 193.9 ms

16.6M/s 58.7 ms

3.30×

predict

medium.wide

488,281

1,024

2 GB

2.17M/s 224.7 ms

2.13M/s 229.2 ms

0.98×

predict

large

5,000,000

128

2.56 GB

3.91M/s 1.28 s

17M/s 293.5 ms

4.36×

Preprocessing

StandardScaler
StandardScaler results for all measured operations and workloads#

Operation

Workload

Rows

Features

Input

CPU

GPU

Result

fit_transform

small.balanced

50,000

128

25.6 MB

21.7 ms

11.6 ms

1.87×

fit_transform

medium.thin

1,562,500

16

100 MB

142.0 ms

76.8 ms

1.85×

fit_transform

medium.balanced

500,000

128

256 MB

218.2 ms

101.0 ms

2.16×

fit_transform

medium.wide

244,140

1,024

1,000 MB

788.0 ms

232.5 ms

3.39×

fit_transform

large

5,000,000

128

2.56 GB

2.1 s

958.2 ms

2.20×

transform

small.balanced

195,313

128

100 MB

8.73M/s 22.4 ms

11M/s 17.8 ms

1.25×

transform

medium.thin

7,812,500

16

500 MB

54.6M/s 143.1 ms

92.8M/s 84.2 ms

1.70×

transform

medium.balanced

976,563

128

500 MB

8.67M/s 112.6 ms

11.6M/s 83.9 ms

1.34×

transform

medium.wide

488,281

1,024

2 GB

1.14M/s 428.8 ms

1.47M/s 331.6 ms

1.29×

transform

large

5,000,000

128

2.56 GB

8.83M/s 566.3 ms

11.8M/s 423.1 ms

1.34×

TargetEncoder
TargetEncoder results for all measured operations and workloads#

Operation

Workload

Rows

Features

Input

CPU

GPU

Result

fit_transform

small.balanced

195,313

32

25 MB

541.1 ms

5.35 s

0.10×

fit_transform

medium.thin

3,125,000

8

100 MB

1.76 s

1.49 s

1.18×

fit_transform

medium.balanced

781,250

32

100 MB

2.53 s

5.81 s

0.43×

fit_transform

medium.wide

250,000

128

128 MB

3.27 s

24 s

0.14×

fit_transform

large

7,812,500

32

1 GB

25.6 s

8.14 s

3.15×

transform

small.balanced

781,250

32

100 MB

679k/s 1.15 s

1.15M/s 679.1 ms

1.70×

transform

medium.thin

15,625,000

8

500 MB

4.29M/s 3.64 s

27.5M/s 568.2 ms

6.41×

transform

medium.balanced

3,906,250

32

500 MB

673k/s 5.81 s

2.23M/s 1.75 s

3.31×

transform

medium.wide

976,563

128

500 MB

158k/s 6.2 s

130k/s 7.52 s

0.82×

transform

large

15,625,000

32

2 GB

662k/s 23.6 s

2.69M/s 5.82 s

4.06×

Kernel methods

SVC
SVC results for all measured operations and workloads#

Operation

Workload

Rows

Features

Input

CPU

GPU

Result

fit

small.balanced

2,000

64

0.512 MB

46.4 ms

19.6 ms

2.37×

fit

medium.thin

8,000

8

0.256 MB

145.4 ms

21.6 ms

6.75×

fit

medium.balanced

8,000

64

2.05 MB

502.6 ms

32.0 ms

15.7×

fit

medium.wide

8,000

512

16.4 MB

3.42 s

60.5 ms

56.6×

fit

large

32,000

64

8.19 MB

8.59 s

76.8 ms

112×

predict

small.balanced

2,000

64

0.512 MB

26.8k/s 74.6 ms

2.33M/s 0.86 ms

87.0×

predict

medium.thin

8,000

8

0.256 MB

32.6k/s 245.2 ms

6.12M/s 1.3 ms

188×

predict

medium.balanced

8,000

64

2.05 MB

10.7k/s 750.6 ms

2.86M/s 2.8 ms

268×

predict

medium.wide

8,000

512

16.4 MB

1.26k/s 6.36 s

425k/s 18.8 ms

338×

predict

large

32,000

64

8.19 MB

3.97k/s 8.06 s

1.59M/s 20.2 ms

399×

What determines GPU speedup#

Work per call

cuml.accel benefits when each estimator call has enough parallel work to outweigh dispatch and compatibility overhead. Training and compute-intensive operations usually accelerate more than short prediction or transformation calls in practice.

Shape and parameters

Performance depends on feature width, operation, and estimator parameters, not just total workload size. Similar-sized datasets can produce different speedups when shapes or configurations differ. We selected workloads to illustrate these differences.

Data movement

cuml.accel typically ingests and returns NumPy arrays, converting data for GPU execution and scikit-learn compatibility. Native cuML can reduce this overhead with GPU-resident arrays, especially when pipelines perform repeated estimator operations.

Methodology and reproducibility#

These benchmarks compare the corresponding CPU implementations with cuml.accel on NVIDIA RTX Pro 6000 across five relative workload categories. CPU measurements use the corresponding scikit-learn estimators, except for UMAP, which uses umap.UMAP from umap-learn, and HDBSCAN, which uses hdbscan.HDBSCAN from hdbscan. Each isolated case used one warmup, the median of three measured repetitions, operation-appropriate correctness validation, and a complete-case timeout.

Test system, validation, and timing policy

System. NVIDIA RTX PRO 6000 Blackwell Workstation Edition (102.0 GB), AMD Ryzen Threadripper PRO 7975WX 32-Cores, and 134.1 GB of system memory.

Timing. One warmup followed by three measured repetitions; tables use the median end-to-end wall time. Speedup is CPU median wall time divided by accelerated median wall time. For predict, transform, score_samples, and kneighbors, throughput is input rows divided by the same median wall time, with one row counted as one sample.

Scale and timeout policy. Algorithm-family-calibrated small, medium, and large shapes. Each backend ran every case in a separate worker with a wall-clock limit. The limit covered process startup, data preparation, estimator setup, one warmup, three measured repetitions, and correctness validation.

Execution and correctness. Successful accelerated measurements were instrumented to verify GPU-only execution. The benchmark runner applied each case’s operation-appropriate parity check. A timeout means validation could not complete.

Packages. cuml 26.10.0a69, hdbscan 0.8.44, scikit-learn 1.9.0, umap-learn 0.5.12.

Interpretation. These measurements describe the tested cases on this system; results for other workloads and systems will vary.

Continue with cuml.accel#

Getting started

Installation and zero-code-change usage.

Getting Started with cuml.accel
Compatibility

Supported estimators and parameter behavior.

Accelerated Estimator Support
Profiling

Find GPU execution and fallback behavior.

Logging and Profiling