NVIDIA GTC21 有大量精彩且引人入胜的内容,特别是在 RAPIDS 附近,因此很容易错过我们的首次演示“ 使用 RAPIDS 加速 Node . js JavaScript 以实现可视化和更高的速度。 ”是的–我们正在通过 Node.js 项目将 GPU 加速数据科学的力量带到 JavaScript Node.js 社区。
Node- RAPIDS 是 Node . js 中模块化 RAPIDS 库绑定的开源技术预览,以及支持基于浏览器的高性能可视化的补充方法。
web viz 有什么问题?
大约十年前 是围绕基于 web 的数据可视化的迷你复兴,它展示了 D3 等高度交互、易于共享和使用的工具的好处。虽然性能不如 C / C ++或 Python 框架,但由于 JavaScript 的可访问性,它们的受欢迎程度开始上升。毫不奇怪,它通常被列为 最流行的开发人员语言 ,排在 Python 或 Java 之前,现在有了完整的可视化和数据工具目录。
然而,这个庞大的 JavaScript 开发社区由于缺乏首选语言中的一流加速数据工具而受到阻碍。当分析与数据源、科学和可视化尽可能接近时,分析是最有效的。要使用 JavaScript 完全访问 GPU 硬件(超越 webGL 限制和黑客),需要精通多种语言来设置复杂的中间件管道或使用 Plotly Dash 等非 js 框架。因此,数据工程师、数据科学家、可视化专家和前端开发人员往往被孤立起来,甚至在组织内部也是如此。这是有害的,因为数据可视化是这些群体之间交流的理想媒介。
至于 RAPIDS Viz 团队 自从我们第一次证明概念 ,我们希望构建能够通过浏览器与数亿个数据点实时无缝交互的工具——我们终于找到了一种方法。
为什么选择 Node . js
如果您不熟悉 Node.js ,它是一个基于 C / C ++的开源跨平台运行时环境,在 web 浏览器之外执行 JavaScript 代码。超过 100 万 Node . js 下载量 per day 。 节点包管理器 ( NPM )是默认的 JavaScript 包管理器,微软拥有它。 Node . js 用于 eBay 、 AliExpress 等在线市场的后端,并被 Netflix 、 PayPal 和 Groupon 等高流量网站使用。显然,这是一个强大的框架。
Node . js 是一个连接器,它为我们提供了直接访问硬件的 JavaScript ,从而简化了 API 并能够使用 NVIDIA CUDA ⚡. 通过创建节点 – RAPIDS 绑定,我们使一个庞大的开发人员社区能够使用 GPU 加速,而无需学习新语言或在新环境中工作。我们还为同一社区提供高性能数据科学平台: RAPIDS !
下面是一个基于 我们的基本笔记本 的节点 – RAPIDS 的片段,它显示了一个小型正则表达式示例的 6x 加速:
节点 – RAPIDS :计为构建块
与节点项目类似,节点 – RAPIDS 设计为模块化。我们的目标不是构建交钥匙 web 应用程序,而是创建一个 功能清单 ,以支持或加速各种各样的用例和管道。前面是当前和计划节点的概述 – RAPIDS 模块按一般类别分组。 节点 – RAPIDS 应用程序可以根据需要使用任意数量的模块。
为了减少起步的困难,我们还构建了一个 演示目录 ,它可以作为通用应用程序的模板。随着我们开发更多绑定,我们将创建更多演示来展示它们的功能。
前面是使用 RAPIDS cuDF 和 RAPIDS cuSpatial 库的地理空间交叉过滤仪表板应用程序的理想堆栈。我们有一个使用 Deck.gl 的简单演示,您可以使用我们的 video 进行预览,并在 Github 上探索 演示代码 。
前面的最后一个示例是一个仅服务器端的 ETL 管道,没有任何可视化。我们有一个使用 cuDF 绑定和 互动笔记本 桌面应用程序的简单 ETL 流程示例,您可以在 Notebook 上使用 video 进行预览,并使用(获取)交互。
下一步是什么?
虽然我们考虑这个项目已经有一段时间了,但我们才刚刚开始开发。 RAPIDS 是一个令人难以置信的框架,我们希望将它带给更多的人和更多的应用程序— RAPIDS 正如我们所说的那样。
近期下一步:
- 接下来的一些短期步骤是继续构建核心 RAPIDS 绑定特性,您可以在我们的 当前绑定覆盖率表 上查看这些特性。
- 如果直接从您的 web 应用程序中使用 GPU 加速 SQL 查询的想法听起来很有趣(对我们来说的确如此),那么我们也希望尽快开始使用一些 blazingSQL 绑定。
- 最值得注意的是,我们计划开始创建和发布模块化 docker 容器,这将大大简化当前的源代码技术预览安装过程。
一如既往,我们需要社区参与来帮助指导我们。如果您有功能请求、问题或用例,可以 伸出 向我们咨询!
这个项目有很多潜力。它可以加速各种各样的 Node . js 应用程序,并将一流、高性能的数据科学和可视化工具带到一个巨大的社区。我们希望你能在这个激动人心的项目开始时加入我们。
Resources:
- 节点 – RAPIDS GitHub 回购: https://github.com/rapidsai/node-rapids
- GTC 2021 的最新演示: https://www.nvidia.com/en-us/on-demand/session/gtcspring21-s31955/