如何加速GPU机器学习-引入了新的开源平台

Nvidia 引入了Rapids开源平台,其任务是加快GPU机器学习算法的速度。 我们谈论该工具及其类似物的功能。


/图片Martin Brigden CC

训练神经网络的问题


英伟达的技术清单包括CUDA并行计算架构。 其目标是通过转移部分GPU任务而不是CPU来加快计算速度。 在某些情况下,这可使应用程序和算法工作加速 18倍。

因此,它在机器学习领域中得到了广泛的应用。 例如,来自佛罗里达州和北卡罗来纳州大学的研究人员正在借助它的神经网络引擎进行量子仿真开发。

大量不同的库用于开发MO算法。 其中许多是用Python编写的 。 但是并非所有人都支持使用CUDA。 用于机器学习scikit-learn和pandas的Python工具就是此类工具的示例。 为了在CUDA架构中运行Python代码,研究人员使用了单独的Numba或PyCUDA库。 在这种情况下,必须手动重写某些组件的代码,这很困难,因为您需要了解GPU的编程功能。

Nvidia解决方案


为了使代码移植自动化,Nvidia推出了新的开放式Rapids平台。 开发人员无需诉诸其他库:他们只是用Python编写代码,而Rapids会自动对其进行优化以在GPU上运行。

为了映射进程,Rapids使用一个公共数据库,该数据库位于GPU的内存中。 数据 Apache Arrow 格式存储,这对于所有平台工具都是通用的。 与同时使用图形和中央处理器的系统相比,该解决方案可将机器学习过程加速50倍。

同时,Rapids平台上提供了一些工具,您可以使用它们使用图形芯片来执行神经网络的整个处理过程:从数据准备到输出结果。

积极地补充了GitHub Rapids存储库中的解决方案数量。 例如,有一个用于准备数据和训练神经网络的cuDF库,而cuML库使可以开发机器学习算法,而无需深入了解CUDA编程的细节。

Nvidia将继续开发该平台。 该项目的创建者计划为Rapids添加用于数据可视化,图形分析和深度学习的工具。 该程序还集成了 Apache Spark框架。

他们如何看待平台


技术社区支持Rapids的发布,但是其进一步发展引起了专家和用户的几个问题。

例如,来自思科,戴尔,NetApp,联想和其他公司的经理发表了讲话,表示支持新解决方案。 Anaconda首席执行官Scott Collison 表示, Rapids将简化用于训练复杂AI系统的数据的收集和准备。 Apache Arrow和熊猫的创建者Wes McKinney同意他的观点。 据他介绍,Rapids将导致与要素创建( 要素工程 )相关的任务的生产率提高。


/照片Sander van der Wel CC

但是,社区也认为Rapids不能被视为真正的开源项目。 该系统仅适用于Nvidia卡,该平台的发布可能是吸引新客户的营销举措。 该公司尚未指定该平台是否可以与其他制造商的设备一起使用。

谁已经在使用急流


IBM 计划在与人工智能系统一起使用的服务中实现该平台:PowerAI,Watson和IBM Cloud。 Oracle还宣布了对Rapids的支持-Rapids是Oracle Cloud基础架构上可用的平台。

Nvidia的新产品也已通过沃尔玛和优步的测试。 首批Rapids 帮助改善了负责库存管理的系统算法。 根据零售商代表的说法,Rapids加快了机器学习算法的部署。 至于优步,该公司在无人驾驶汽车系统的开发中使用了 Rapids。

替代解决方案


不仅Nvidia还在开发加速MO的平台。 例如,AMD参与了ROCm (Radeon开放计算)项目。 它是用于GPU上高性能计算的开放平台。

ROCm的功能是它不依赖于编程语言,并且能够与几乎所有视频卡一起使用。 包括Nvidia卡。 为此,使用了一种称为HIP 特殊C ++方言。 它简化了CUDA应用程序到可移植C ++代码的转换。 该代码由特殊的Hipify系统自动转换。

同时,ROCm 支持大量的数学加速库。 其中,可以区分BLAS,FFT和张量卷积

IT行业专家指出,诸如ROCm和Rapids之类的用于加速异构和GPU计算的开源解决方案为开发人员提供了更有效地使用计算资源并从可用硬件中获得更高性能的机会。



PS:第一个公司IaaS博客的一些资料:




PPS在我们的电报频道中简要介绍了IaaS技术:



Source: https://habr.com/ru/post/zh-CN429286/


All Articles