2019年3月19日,阿里云RDS PostgreSQL数据库GPU规格版本正式上线,开启了RDS异构计算并行加速之路。该版本在RDS(关系型数据库服务)的云基础设施层面首次完成了与阿里云异构计算产品的适配,实现了PostgreSQL时空引擎Ganos在空间图形图像处理上的并行计算加速,成为国内第一个将GPU应用于商业空间信息领域的数据库。
- GPU并行计算
GPU(Graphic Processing Unit)是一种高并行架构图形处理器,其最突出的特点就是计算核心多,相比传统CPU四个、八个等计算核心, GPU的计算核心可以多达到几千个,加上数据高速缓存和流控制,这样的结构非常适合对计算密集型且易于并行处理的数据进行计算加速。GPU最初是被设计用来专门处理并行图形计算问题的,近年来,随着GPU在人工智能和高性能计算领域应用越来越多,GPU已经成了更强大且更广义的处理器代名词。
伴随该版本的发布,RDS在云基础设施层面首次完成了GPU计算框架的适配,为云上数据库构建异构计算并行环境建立了重要基础。由于空间图形图像数据体量大、计算复杂,首期GPU加速能力主要与阿里云数据库时空引擎 Ganos结合,大幅提升空间数据处理性能。PostgreSQL时空引擎 Ganos为一种云数据库增值服务,为各类时空数据提供云上的高效存储、查询和分析计算服务。
系统提供了CPU与GPU异构计算框架,能自动检测GPU环境,并建立基于规则的优化方法选择评估CPU计算、GPU计算或混合计算,用户做到无感知。在空间计算方面,建立了GIS空间并行模型(如栅格数据的Raster-Chunk-Cell框架)与CUDA(显卡厂商NVIDIA推出的运算平台)并行模型的最佳适配,达到减少GPU任务调度,最大化利用GPU资源的目的。
- 典型应用场景
2.1 空间数据加速上云
空间栅格型数据(遥感影像、高程模型等)分幅数多,体量大,上云速度慢。通过改良基础算法提高云数据库写入速度是用户比较关心的应用场景。以栅格数据的重采样算法为例,三次卷积采样以及更高级的重采样算法成像质量好,但运算量会成倍增加。因此,提升基础算法的处理效率是加快栅格数据处理应用的关键。按输出10000*10000像素大小的遥感影像数据来计算,需要独立运行1亿次采样算法,属于计算密集型操作,且栅格数据呈矩阵模型,可充分利用GPU并行加速能力提高重采样效率。
2.2 影像实时动态投影
在遥感空间应用中,因数据来源或采集方式不同,往往存在坐标系统不一致的情形。当需要叠加统一显示时,要么事先转成同一坐标系,要么进行实时动态投影。前者会存在数据冗余问题,而后者更为高效,但往往因动态投影计算量大,在CPU环境下往往很难达到实时显示效果。通过GPU并行计算提升动态投影计算效能可解决这一问题。
2.3 移动对象数据处理
随着互联网出行、位置感知技术的快速发展,移动对象(飞机、船、车、行人等)产生的数据量越来越多,大量的轨迹数据的接入、更新和显示,给数据传输和存储带来很大的挑战。通过借助GPU并行计算能力,对移动对象的轨迹数据进行实时动态抽稀处理,可达到减少存储量、快速传输显示的目的。
- 加速性能评估
经对比测试,以遥感影像三次卷积重采样纯算法加速为例,GPU并行计算较CPU平均提升50倍左右,且随数据量越大、计算越复杂,提升效果越明显。从全链路角度,当数据存储在SSD云盘时,遥感影像入库(含索引创建)GPU较CPU快9-15倍;当数据存储在OSS(Object Storage Service,对象存储服务)时,数据入库全流程GPU较CPU加速4-7倍。
- 使用途径
阿里云RDS for PostgreSQL数据库GPU规格版本已经在公有云上线,目前仅在华东2(上海)开放。用户购买时,请选择PG10基础版,并在规格栏选择GPU加速机型,系统已经默认带有GPU环境。用户使用时不需要设置任何参数即可体验GPU加速计算带来的性能体验。