BlazingSQL善用GPU优势,相同硬件花费但运算效率却比Apache Spark高20倍

发布于2019-02-21 07:50:19

导读: 分散式GPUSQL引擎BlazingSQL最新版本应用程序与ApacheSpark测试比较,在执行相同工作负载且维持相同成本的条件下,BlazingSQL的执行效能是ApacheSpa
导读: 在相同硬件费用的限制下,执行相同的ETL与机器学习训练工作,BlazingSQL速度比Apache Spark快20倍。

分散式GPU SQL引擎BlazingSQL最新版本应用程序与Apache Spark测试比较,在执行相同工作负载且维持相同成本的条件下,BlazingSQL的执行效能是Apache Spark的20倍。

在去年10月才对外发布的BlazingSQL,是采用RAPIDS资料科学框架的GPU加速SQL引擎,RAPIDS为一个全GPU端到端资料科学工作管线的开源函式库集,BlazingSQL扩展了RAPIDS,并让使用者以Apache Arrow在GPU内存中执行SQL查询。

在一月的时候,BlazingSQL先进行了一次效能实验,他们在Google云端平台上建立了Apache Spark以及BlazingSQL两个丛集,为维持相同成本配置,Apache Spark丛集使用8个8 CPU的节点,在BlazingSQL丛集使用一个搭载Tesla V1000 GPU与10个CPU的节点,官方提到,这两种硬件配置每月的支出约都在1500美元左右。

官方在GitHub公开了测试程式码,他们让这两个丛集执行相同的端到端分析工作负载,对资料进行特征萃取工程,并以机器学习函式库XGBoost进行训练。对两种大小的资料集进行测试,BlazingSQL的执行速度比Apache Spark快了5倍。

而现在他们又再次对新版BlazingSQL做了一次基准测试,执行与上次相同的工作负载并在成本相当的条件下,BlazingSQL的执行速度是Apache Spark的20倍。在新测试中,除了BlazingSQL丛集用了Nvidia的T4 GPU,还改善了BlazingSQL中的SIMD Expression Interpreter。

官方表示,虽然T4是一颗入门级的GPU,价格较便宜但是却拥有良好的效能,比起前一个实验他们所使用的V100,价格便宜许多,因此将成本列入比较的限制时,这次Apache Spark丛集使用的节点也降低至4 CPU,以维持相同的成本支出。

不过,官方表示,这次试验大部分的效能增加,是来自于引擎的改进。BlazingSQL正在发展一个专为GPU DataFrames(GDF)打造的GPU执行核心SIMD表达式直译器(SIMD Expression Interpreter)。SIMD表达式直译器可以让系统同时接收多重输入,包括GDF字段、文字,并在未来将能支援函式。

当系统载入这些输入时,SIMD表达式直译器能够最佳化GPU上暂存器的配置,因此能进一步最佳化GPU执行绪的占用率以及效能,让虚拟机器能同时处理多重输入以及输出,官方举例,过去BlazingSQL处理SELECT colA + colB * 10, sin(colA) — cos(colD) FROM tableA,会将该查询转换成+、*、 sin、cos和—等5个单独的运算,最后产生两个输出,SIMD表达式直译器则使用colA、colB和colD三个输入,并在单个核心执行全部5种运算,而后产生两个输出。官方表示。以这样的方式系统只需要载入一次colA、colB和colD,而非原本的两次。

目前SIMD Expression Interpreter的进度只能支援过滤器和投影运算,但已经能加速大多数的热门SQL运算。由于BlazingSQL仍处在发展初期,目前仍在0.2版本,官方也坦承说,BlazingSQL目前只能以单节点和单GPU执行,因此他们在实验上限制了运算资料量。