专栏名称: NVIDIA企业开发者社区
NVIDIA 英伟达开发者社区是NVIDIA GPU开发者交流平台,通过此平台可第一时间获取NVIDIA GPU 开发相关的新产品、新工具、线上/线下活动的资讯。
目录
相关文章推荐
我是腾腾爸  ·  刷屏了! ·  昨天  
高毅资产管理  ·  方法论 | ... ·  3 天前  
51好读  ›  专栏  ›  NVIDIA企业开发者社区

开发者新闻 | 利用 Python 在 GPU 上实现 SQL 查询数据的初学者指南

NVIDIA企业开发者社区  · 公众号  ·  · 2021-04-01 09:53

正文

利用Python在GPU上实现SQL查询数据的初学者指南



本初学者指南是 RAPIDS 生态系统系列文章的第三部分。该系列探讨并讨论了 RAPIDS 的各个方面,这些方面使 RAPIDS 的用户可以解决ETL(提取,转换,加载)问题,构建 ML(机器学习)和 DL(深度学习)模型,探索膨胀图,过程信号和系统日志,或者使用 SQL 语言通过 BlazingSQL 处理数据。


从历史上讲,处理大量结构化数据一直是关系数据库的领域。数据库由可以连接在一起或聚合的表组成,已经成为数据处理的主要部分,并且是许多公司赖以存在的基础。就像数据库几乎是存储和处理数据的同义词一样,结构化查询语言(SQL)已经成为与这些表交互的同义词。


SQL 语言有多种风格,但在核心上它们非常相似。最常见和标准化的是 ANSI SQL,它是一个事实上的标准,其他工具都是从这个标准派生出来的,只是做了一些修改。SQL Server、Teradata SQL 或 Oracle 数据库已经在企业环境中为人所知,而开源软件 (OSS) 解决方案,如 MySQL (或它的fork MariaBD)和Postgres,多年来在已经在爱好者和公司中获得了大量的追随者和广泛的采用。虽然每个解决方案所采用的 SQL 语言可能因其自身的扩展和特性而有所不同,但它们从根本上都源自 ANSI SQL。BlazingSQL 也是如此。


本系列前面的教程展示了其他领域:


在第一篇文章 python pandas 教程中,我们介绍了cuDF,这是一种在 NVIDIA GPU 上处理大量数据的 RAPIDS DataFrame 框架。

第二篇文章比较了 cuDF DataFrame 和 pandas DataFrame 的相似性。


在这篇文章中,我们将介绍炽 SQL,一个运行在 NVIDIA GPU 上的 SQL 引擎。为了帮助您熟悉 BlazingSQL,我们还发布了一个备忘单,可以从这里下载,以及一个具有 BlazingSQL 当前所有功能的交互式笔记本。


原文链接:

https://developer.nvidia.com/blog/





利用现在可以在Thrust支持CUDA统一内存

Thrust 1.12.0 是一个主要的版本,提供了bug修复和性能增强。它包含了一个新的 thrust:universal_vector,它包含了主机和设备都可以访问的数据。这能在 CUDA 统一内存使用中运用 Thrust。还增加了新的异步版本的thrust::async:exclusive_scan 和 inclusive_scan 算法。这些同步版本已经更新为直接使用 cub::DeviceScan。这个版本不支持 Clang < 7.0 及 MSVC < 2019 (aka 19.20/16.0/14.20)。更多信息请参见 Thrust 1.12 发布说明。



CUB 1.12.0 是一个提供 bug 修复和性能增强的主要版本。它包括改进的基数排序稳定性。更多信息请参见 CUB 1.12 发布说明。

这两个软件包现在都可以从 GitHub 上获得。它们还与 NVIDIA HPC SDK 21.3 和 CUDA Toolkit 11.4 一起发布。


关于 Thrust 和 CUB
Thrust 是一个现代的 C++ 并行算法库,它提供了一个 std::-like 接口。Thrust 抽象与任何特定的并行编程模型或硬件无关。有了 Thrust,你可以写一次代码,然后在你的 CPU 或 GPU 上并行运行它。CUB 是一个 C++ 库,为并行算法作者提供集合原语和实用程序。CUB 是特定于 CUDA C++ 的,它的接口明确地适应 CUDA 特定的特性。
Thrust 和 CUB 是互补的,经常一起使用。






请到「今天看啥」查看全文