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