cuML是一套用于实现与其他RAPIDS项目共享兼容API的机器学习算法和数学原语函数。
cuML使数据科学家、研究人员和软件工程师能够在GPU上运行传统的表格ML任务,而无需深入了解CUDA编程的细节。 在大多数情况下,cuML的Python API与来自scikit-learn的API相匹配。
对于大型数据集,这些基于GPU的实现可以比其CPU等效完成10-50倍。 有关性能的详细信息,请参阅cuML基准测试笔记本。
例如,以下Python代码段加载输入并计算DBSCAN集群,所有这些都在GPU上:
import cudf from cuml.cluster import DBSCAN # Create and populate a GPU DataFrame gdf_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 clusters dbscan_float = DBSCAN(eps=1.0, min_samples=1) dbscan_float.fit(gdf_float) print(dbscan_float.labels_)
输出:
0 0 1 1 2 2 dtype: int32
cuML还具有多GPU和多节点多GPU操作,使用Dask,用于越来越多的算法。 以下Python代码段从CSV文件中读取输入,并在单个节点上使用多个GPU在Dask工作器集群中执行NearestNeighbors查询:
# Create a Dask CUDA cluster w/ one worker per device from dask_cuda import LocalCUDACluster cluster = LocalCUDACluster() # Read CSV file in parallel across workers import dask_cudf df = dask_cudf.read_csv("/path/to/csv") # Fit a NearestNeighbors model and query it from cuml.dask.neighbors import NearestNeighbors nn = NearestNeighbors(n_neighbors = 10) nn.fit(df) neighbors = nn.kneighbors(df)