资源算法cuml

cuml

2019-11-26 | |  175 |   0 |   0

cuML - GPU Machine Learning Algorithms

cuML is a suite of libraries that implement machine learning algorithms and mathematical primitives functions that share compatible APIs with other RAPIDS projects.

cuML enables data scientists, researchers, and software engineers to run traditional tabular ML tasks on GPUs without going into the details of CUDA programming. In most cases, cuML's Python API matches the API from scikit-learn.

For large datasets, these GPU-based implementations can complete 10-50x faster than their CPU equivalents. For details on performance, see the cuML Benchmarks Notebook.

As an example, the following Python snippet loads input and computes DBSCAN clusters, all on GPU:

import cudffrom cuml.cluster import DBSCAN# Create and populate a GPU DataFramegdf_float = cudf.DataFrame()
gdf_float['0'] = [1.0, 2.0, 5.0]
gdf_float['1'] = [4.0, 2.0, 1.0]
gdf_float['2'] = [4.0, 2.0, 1.0]# Setup and fit clustersdbscan_float = DBSCAN(eps=1.0, min_samples=1)
dbscan_float.fit(gdf_float)print(dbscan_float.labels_)

Output:

0    0
1    1
2    2
dtype: int32

cuML also features multi-GPU and multi-node-multi-GPU operation, using Dask, for a growing list of algorithms. The following Python snippet reads input from a CSV file and performs a NearestNeighbors query across a cluster of Dask workers, using multiple GPUs on a single node:

# Create a Dask CUDA cluster w/ one worker per devicefrom dask_cuda import LocalCUDACluster
cluster = LocalCUDACluster()# Read CSV file in parallel across workersimport dask_cudf
df = dask_cudf.read_csv("/path/to/csv")# Fit a NearestNeighbors model and query itfrom cuml.dask.neighbors import NearestNeighbors
nn = NearestNeighbors(n_neighbors = 10)
nn.fit(df)
neighbors = nn.kneighbors(df)

For additional examples, browse our complete API documentation, or check out our introductory walkthrough notebooks. Finally, you can find complete end-to-end examples in the notebooks-contrib repo.

Supported Algorithms

CategoryAlgorithmNotes
ClusteringDensity-Based Spatial Clustering of Applications with Noise (DBSCAN)

K-MeansMulti-Node Multi-GPU
Dimensionality ReductionPrincipal Components Analysis (PCA)

Truncated Singular Value Decomposition (tSVD)Multi-GPU version available (CUDA 10 only)

Uniform Manifold Approximation and Projection (UMAP)

Random Projection

t-Distributed Stochastic Neighbor Embedding (TSNE)
Linear Models for Regression or ClassificationLinear Regression (OLS)Multi-GPU available in conda CUDA 10 package

Linear Regression with Lasso or Ridge Regularization

ElasticNet Regression

Logistic Regression

Stochastic Gradient Descent (SGD), Coordinate Descent (CD), and Quasi-Newton (QN) (including L-BFGS and OWL-QN) solvers for linear models
Nonlinear Models for Regression or ClassificationRandom Forest (RF) ClassificationExperimental multi-node, multi-GPU version available via Dask integration

Random Forest (RF) RegressionExperimental multi-node, multi-GPU version available via Dask integration

K-Nearest Neighbors (KNN)Multi-GPU
Uses Faiss

Support Vector Machine Classifier (SVC)
Time SeriesLinear Kalman Filter

Holt-Winters Exponential Smoothing

More ML algorithms in cuML and more ML primitives in ml-prims are planned for future releases, including: spectral embedding, spectral clustering, support vector machines, and additional time series methods. Future releases will also expand support for multi-node, multi-GPU algorithms.

Installation

See the RAPIDS Release Selector for the command line to install either nightly or official release cuML packages via Conda or Docker.

Build/Install from Source

See the build guide.

Contributing

Please see our guide for contributing to cuML.

Contact

Find out more details on the RAPIDS site

Open GPU Data Science

The RAPIDS suite of open source software libraries aim to enable execution of end-to-end data science and analytics pipelines entirely on GPUs. It relies on NVIDIA® CUDA® primitives for low-level compute optimization, but exposing that GPU parallelism and high-bandwidth memory speed through user-friendly Python interfaces.

rapids_arrow.png


上一篇:holoclean

下一篇:UGATIT

用户评价
全部评价

热门资源

  • Keras-ResNeXt

    Keras ResNeXt Implementation of ResNeXt models...

  • seetafaceJNI

    项目介绍 基于中科院seetaface2进行封装的JAVA...

  • spark-corenlp

    This package wraps Stanford CoreNLP annotators ...

  • capsnet-with-caps...

    CapsNet with capsule-wise convolution Project ...

  • inferno-boilerplate

    This is a very basic boilerplate example for pe...