越小越好
运行以下 Colab 演示,用户可以使用免费英伟达 T4 GPU 资源进行同样的测试,对 BlazingSQL 的实际效果进行验证:
https://colab.research.google.com/drive/1EbPE9FwFur7fE2054BH9s23Kd0FiUgGo
据 介绍,BlazingSQL 大部分性能提升来自团队的内部引擎项目,BlazingSQL 团队的工程师们希望开发一种专为 GPU DataFrames(GDF)构建的 GPU 执行内核,称之为“SIMD 表达式解释器”(SIMD Expression Interpreter)。研发团队分享了一些关于 SIMD 表达式解释器的细节,SIMD 表达式解释器通过几个关键步骤带来提升性能:
- 接收多个输入,包括 GDF 列、字面量,在不久的将来也会支持函数。
- 在加载这些输入时,SIMD 表达式解释器将对 GPU 寄存器的分配进行优化,这可以优化 GPU 线程占用率,并提高性能。
- 然后,虚拟机处理这些输入,并生成多个输出。假设有以下 SQL 查询:
- SELECT colA + colB * 10,sin(colA) - cos(colD)FROM tableA
在以前,BlazingSQL 会将这条查询语句转换为 5 个操作(+,*,sin,cos, - ),每个操作都需要单独执行。在使用 SIMD 表达式解释器后,它会同时接收(colA、colB、colD)作为输入,并在单次内核执行中执行所有 5 个操作,最终生成两个输出。这意味着 colA 只需要加载一次,而不是两次。
目前,SIMD 表达式解释器支持 BlazingSQL 的过滤和投影,因此它对许多主流的 SQL 查询都有影响。
使用 BlazingSQL 在 Amazon S3 中查询 CSV 文件的示例代码:
- from blazingsql import BlazingContext
- bc = BlazingContext()
-
- bc.s3('dir_name', bucket_name='bucket_name', access_key_id='access_key', secrect_key='secret_key')
-
- # Create Table from CSV
- bc.create_table('taxi', '/dir_name/taxi.csv')
-
- # Query
- result = bc.sql('SELECT count(*) FROM taxi GROUP BY year(key)').get()
- result_gdf = result.columns
-
- #Print GDF
- print(result_gdf)
更多 BlazingSQL 的操作方法参见:
GitHub 项目链接:https://github.com/blazingdb/pyBlazing/
官方网站:https://docs.blazingdb.com/docs/using-blazingsql 【编辑推荐】 - 利用深度学习自动补全 Python 代码,这个开源项目有点牛
- 担心被AI换脸技术祸害?别怕!Deepfake打假队正在赶来
- 妹子一个rm -rf把公司服务器数据删没了_技术栈微信半月刊第46期
- 阿里、拼多多面试分享:已获技术专家Offer
- 2019年上半年企业IT技术在线学习报告
【责任编辑:张燕妮 TEL:(010)68476606】
点赞 0
(编辑:ASP站长网)
|