当前位置: 首页 > 网络应用技术

如何加速GPU的数据科学和数据分析

时间:2023-03-08 02:08:52 网络应用技术

  人工智能(AI)将改变全球生产率,工作模式和生活方式,并创造巨大的财富。研究公司Gartner预测,到2022年,全球人工智能经济将从去年的约1.2万亿美元增加到约3.9万亿美元。在许多方面,这种转换的核心是强大的机器学习(ML)工具和技术。

  现在可以确定,现代AI/ML系统的成功在很大程度上取决于它们优化硬件以并行处理大量原始数据的能力。因此,使用特殊硬件(例如GPU)(GPU)(GPU))在成功的初期中发挥了重要作用。此外,人们非常重视建立高度优化的软件工具以及定制的数学处理引擎(硬件和软件)来使用GPU和并行计算功能和架构。

  尽管广泛讨论了在学术和商业界使用GPU和分布式计算,以处理核心AI/ML任务(例如,在谈论有关图像分类的100层深神经网络或十亿个参数bert语音综合模型)。它们在常规数据科学和数据工程任务中的实用性。这些与数据相关的任务是AI管道中任何ML工作量的重要开拓者,通常大部分时间都占据科学家甚至ML工程师所花费的和知识工作。

  实际上,最近,著名的人工智能先驱Andrew Ng谈到了模型中心人工智能工具的开发方法。这意味着,在您的管道上执行实际的AI工作量之前,它需要更多时间来处理原始数据并准备原始数据并准备它。

  答案并不重要,并且需要一些特殊的考虑和知识共享。在本文中,我们将尝试显示一些可用于此目的的工具和平台。

  Rapids的开源软件库和API套件使您能够科学科学和分析从终端到终端到终端的管道分析。NVIDIA孵化了该项目,并建立了使用CUDA原始的工具进行低级计算和优化它特别专注于通过所有数据科学家和友好的Python语言展示GPU并行性和高带宽内存速度特征。

  在急流生态系统中,常见的数据准备和完成任务受到高度重视,因为它们在典型的数据科学管道中占据了很多时间。已经开发了一个熟悉的数据框架,例如API,它们已经构建了 - 在优化和稳健性。还定制以与各种ML算法集成,以实现末端到末端的管道加速并产生串行成本。

  Rapids还包括大量对多节点,多-GPU部署和分布式处理的内部支持。它与其他库集成,以使数据处理不足(即数据集的大小比个人计算机RAM更大)数据个人数据科学家易于访问处理。

  以下是急流生态系统中最突出的图书馆。

  CUDA驱动的数字库,外观和感觉像Numpy,是所有数值计算和Python机器学习的基础。GPU体系结构充分使用。目的是使用Python提供GPU加速度计算。

  CUPY的界面与Numpy接口的高度相似,该界面可以用作大多数情况的简单替代方案。BELOW是模块 - 级模块 - cupy和numpy之间的详细列表。

  检查杯赛比较表。

  根据数据类型和用例,Numpy的加速度可能令人难以置信。这是两个不同阵列大小和各种常见的数值操作(FFT,切片,和谐和标准偏差,矩阵乘法,SVD,SVD)的加速度比较。

  CUDF基于Apache Arrow columnist Memory格式。这是一个用于加载,连接,聚合,过滤和操作数据的GPU数据框库,它提供了几乎所有与Pandas API相似的数据工程师和数据科学家,因此他们可以使用它来使用强大的GPU来轻松加快他们的速度工作流程,没有 - 深入了解CUDA编程。

  目前,CUDF仅在Linux和Python 3.7及更高版本中得到支持。其他要求,

  在CUDF API文档中检查有关此功能强大库的更多信息。

  最后,数据科学家和分析师(即,那些不一定在任何日常任务中使用深度学习的人)可能会欣喜若狂,并使用以下强大的AI工作站来提高其生产率。

  cumL使数据科学家,分析师和研究人员能够(主要)使用GPU上的表数据集,以运行传统/经典的ML算法任务,而无需对CUDA编程的细节。库Scikit-Learn API,可以快速轻松地过渡到GPU硬件。

  检查CUML文档的GitHub存储库以了解更多信息。

  CUML还与DASK尽可能多地集成,以提供多-GPU和多节点GPU支持,以不断增加此类分布式处理的算法集。

  CUGRAPH是GPU加速度图算法的集合,用于处理GPU DataFrames中的数据。CUGRAPH的愿景是在各处进行图表分析,使用户只能从分析的角度考虑,而不是技术或框架。

  熟悉Python的数据科学家将迅速了解CUGRAPH如何与CUDF类似的API集成。类似地,熟悉NetworkX的用户将迅速识别类似于CUGRAPH中提供的API,这是允许最低限度的努力来移植移植的目标。现有代码成急流。

  目前,它支持各种图形分析算法,包括:

  许多科学和业务分析任务都涉及在大型数据集上使用广泛的图形算法。CUGRAPH之类的图形为投资于GPU驱动的工作站的工程师提供了更高的生产力保证。

  Rapids想象了GPU驱动的数据科学任务流的完整管道,如下所示。请注意,基于基于GPU的计算的主要重点的深度学习一直是系统的子组成部分。

  正如我们所观察到的,现代数据处理管道通常可以从大数据块的分布式处理中受益。这与单个GPU中数千个内核提供的平行性略有不同。这更多的是如何处理普通数据处理(也许之前也许是之前)数据集用于ML算法)将其分为块并使用多个计算节点进行处理。

  这些计算节点可以是GPU的核心或简单的CPU逻辑/虚拟核心。

  根据设计,最受欢迎的数据科学库,例如Pandas,Numpy和Scikit-Learn无法轻易使用真实的分布式处理。dask尝试通过将智能任务计划和大数据块处理的特征引入到特征中来解决此问题。一般的Python代码。

  当然,它由两个部分组成:

  这是典型的DASK任务过程的描述:

  熟悉是DASK设计的核心,因此典型的数据科学家可以选择其现有的Pandas/Numpy Code库,并根据最小的学习曲线将其转换为Dask代码。这里是其官方文档中规格的一些示例。

  ML工程师面临着不同类型的可伸缩性挑战。下面的图表说明了它们。机器学习库Dask -ML在这些场景中提供了一些东西。因此,根据独特的业务或研究需求,专注于模型 - 中心探索或以数据为中心的开发。

  最重要的是要再次强调这里的熟悉程度,Dask-ML API旨在模仿流行的Scikit-Learn API。

  应该注意的是,DASK的主要吸引力来自其作为高级和高效的任务计划程序的角色。它可以与任何Python代码或数据结构一起使用。因此,它不依赖GPU来通过分布式处理来改善现有的数据科学工作负载。

  如果您编写代码以专注于DASK,即使是多核CPU系统也可以充分利用Dask。无需对代码进行重大更改。

  您可以使用dask在笔记本电脑的多个内核之间分配凸的常规或超级搜索。替代,您可以使用完整的多核和行来根据某些过滤标准处理简单数据帧的不同部分。改善所有数据科学家和分析师的可能性。他们不需要为机器购买昂贵的图形卡,而只需要投资16或24 CPU内核的工作站。

  在本文中,我们讨论了Python数据科学生态系统中一些令人兴奋的新发展。这些发展使普通数据科学家,分析师,科学研究人员和学者能够使用GPU驱动的硬件SystemTask,而不仅仅是图像分类和自然语言处理。

  这肯定会将这些硬件系统的吸引力扩大到这些大多数用户,并使数据科学用户群更加民主。我们还探索了使用DASK库进行分布式分析的可能性。库可以使用多核CPU工作站。

  希望这种强大的硬件和现代软件堆栈的融合能为有效的数据科学工作流提供无限的可能性。