查看原文
其他

实战 | GPU并行计算技术赋能证券业务新发展

欢迎金融科技工作者积极投稿!

投稿邮箱:newmedia@fcmag.com.cn

                                           ——金融电子化

文 / 中信建投证券股份有限公司SADBA团队

证券行业作为数据最为密集的行业之一,拥有大量的证券交易数据、客户数据、监管数据、行情数据等结构化与非结构化数据,这些数据具有体量巨大、产生高速、类型多样等特征。证券行业天然需要通过大数据和并行计算技术来推动业务系统的数字化升级。传统的数据处理技术难以满足快速、高精度、大数据量信息的处理需求,加上CPU(Central Processing Unit,中央处理器)在并行计算领域的性能表现相较GPU(Graphics Processing Unit,图形处理器)差距甚大,因此近些年基于GPU的并行计算技术在证券行业有了较快发展。


如何高效地配置和调度GPU资源是GPU并行计算领域一个长期悬而未决的难题。本文从如何高效管理GPU资源的角度介绍了中信建投证券股份有限公司在利用GPU并行计算技术推动证券业务创新发展方面的探索与努力。


GPU并行计算技术及对证券公司的意义

1.GPU并行计算技术

GPU并行计算技术就是利用GPU的计算单元来完成和加速并行计算任务的技术,而非传统的基于CPU完成计算任务。因为GPU相比CPU具有更多的计算单元,这使得GPU比CPU更适合进行并行计算任务,获得更高的运行效率。在CUDA(Compute Unified Device Architecture,统一计算设备架构)计算架构推出后,开发者可以使用类C语言来为GPU编写程序,从而大大降低了GPU的使用门槛,这极大地推动了基于GPU的并行计算技术在模式识别、图形语音、自然语言等人工智能领域多个方向上的发展。


2.GPU并行计算技术对证券行业的意义

一是支撑业务转型。近几年,国内的证券公司收入结构和比重发生了较大的变化,自2012年开始,券商经纪业务收入比重在不断下滑(见图1)。与之形成鲜明对比的是,自营业务和资管业务收入占比稳步提升,这与各证券公司投研能力的不断提高以及基于GPU的并行计算技术的广泛应用有着直接关系,尤其是在量化交易、投资决策等领域处理因子挖掘和模型训练等任务上,使用GPU进行并行计算能够极大缩短因子挖掘和模型训练时间,从而提高因子挖掘和模型开发效率,最终达到提高自营和资管业务营收的效果。二是拓展存量市场。近几年,各证券公司不断在人工智能领域加大投入,这使得在用户开户、身份验证、单据处理等多项业务中,能够有效缩短用户等待时间并提高业务办理的效率和准确率。而在产品推荐、股票诊断等业务领域中,更加快速、准确识别用户投资偏好,并给予相应的投资建议,能够有效提高客户满意度和留存率等关键业务指标。三是加速业务创新。随着GPU设计与制造和并行计算理论与算法的不断发展,计算性能稳步提高,这也为需要强大数据处理能力的证券行业的创新发展提供了坚实基础。

图1  2011年后证券行业经纪业务收入占比变化情况


3.GPU并行计算在证券行业的应用场景

GPU并行计算技术以其强大的计算能力,迅速在证券行业多个领域推广落地,我们在实际应用中主要聚焦在以下几个场景。一是策略模型开发场景。策略模型开发场景主要是以投顾类、量化类业务为代表,需要强大计算能力来完成模型开发、训练及验证工作的场景。开发人员在完成模型开发、因子挖掘以及因子与目标模型之间的耦合关系验证等工作时,利用GPU设备来进行加速计算,以此来缩短模型开发时间周期。二是人工智能应用场景。GPU并行计算技术在人工智能应用场景中的应用可以为投资者提供多种辅助服务,比如业务办理过程中的面部识别与身份证信息验证服务、智能语音客服通过电话的形式为投资者进行业务推荐等服务。通过GPU并行计算技术的加持,这些服务系统基本都实现了自动化,不仅提升了服务的质量和准确率,更是极大地提升了客户体验。


4.GPU资源管理存在的问题

尽管采用GPU并行计算技术为证券公司的多项业务带来了显著效益,但在使用与管理GPU资源过程中也存在诸多问题。一是管理维护成本较高。直接在GPU服务器上部署,就很容易出现各个项目争抢资源或者相互干扰影响的情况;如果选择虚拟化或者容器集群方案部署,不同平台对GPU资源的支持有限,无法充分发挥GPU的性能优势。二是设备利用率低。以当前主流的虚拟化或者容器云平台的管理技术,都不能有效提高GPU资源的利用率。


5.探索与实践

针对上述问题,中信建投围绕自己实际的业务需求,在GPU资源管理运维方面做出了许多探索与努力,并针对不同推理业务叠加、推理与训练叠加等复杂场景下GPU资源管理使用方面提出了K8S(Kubernetes,一种容器编排引擎)+GPU池化的解决方案,有效缓解了GPU资源管理难度大、利用率低的问题。


GPU资源池化技术的实践与探索

虽然GPU设备早已在业界被广泛使用,但GPU设备成本高昂且对GPU资源的管理大多还处于比较初级的水平,造成了GPU资源的极大浪费,因此通过GPU资源池化技术将多个独立的GPU设备组建成共享资源池能够显著提高GPU的利用率,有效降低整体建设成本。


1.GPU资源池化技术

GPU资源池化对硬件资源实现统一管理,把GPU资源从硬件定义变成软件定义,实现算力资源的共享与灵活调度。通过该技术,我们可以高效地切分、调度和使用GPU资源,从而提高GPU资源的利用率。当然,GPU资源池化技术的演进并不是一蹴而就的,而是经历了以下几个阶段(见图2)。

 图2  GPU资源管理技术进阶路线图


2.中信建投对于GPU资源池化技术的探索与努力

根据不同的业务场景与系统设计,使用GPU资源的池化模式也不尽相同,选择合适的池化模式能够获得更大的收益。


对人工智能算力进行更精细化地管理,增加并行度、提高利用率一直是业界关注的方向,GPU资源池化能够对典型的业务场景提供支持,这些场景主要包括对GPU的细粒度切分、聚合多GPU资源、远程调用GPU资源以及根据实际需要动态调整GPU配额等。除此之外,我们还根据自身的业务场景对GPU资源池化进行了探索。


每种场景所应对的问题和解决方法都有各自的特点,或者说每种场景对应于一种管理GPU资源的策略。GPU细粒度切分场景是针对某个服务无法充分发挥物理GPU的性能,将物理GPU切分成多个vGPU后分配给多个服务,这样可以增加任务并行度,缓解多业务并发带来的资源紧张问题;聚合多GPU资源场景是针对单一服务器上所有物理GPU资源都无法独自满足某个服务的性能要求,将多个服务器的物理GPU进行整合使用,从而提供海量算力,降低服务的改造难度和运算时间,有效提升服务的执行效率;远程调用GPU资源场景是针对需要解耦物理服务器CPU与GPU的配比限制的情况,这样可以根据业务需要灵活部署,并通过高速网络远程调用GPU资源;动态调整GPU配额场景是针对GPU资源按照按需分配、随用随取、动态回收的方式进行管理,把宝贵的GPU资源充分利用,各业务可以动态、错峰叠加,进一步提升资源管理效率。


3.GPU池化技术在中信建投的应用场景探索

中信建投现有AI应用场景主要有在线推理类业务:图像识别、智能语音处理等;离线推理业务:文档智能抽取、招股书复核、量化分析等;模型训练任务:量化模型训练、投资决策模型训练等。


在推理业务一般部署在容器云平台上,通过容器编排引擎实现对GPU资源的调度,但随着在大规模AI应用的上线,我们也遇到了一些问题:GPU服务器普遍成本高昂;GPU资源的综合利用率低;交付速度慢,运维工作繁琐;缺少全局统一的GPU资源配置和监控中心。


通过不断地探索,我们在实际的应用场景中验证了GPU池化技术能够有效解决上述问题,不仅能够满足业务系统对GPU资源的使用需求,也能实现对GPU资源的高效管理。


第一阶段:GPU资源等额分配。在图像识别、语音处理等在线推理类型的AI业务场景下,系统很难发挥显卡100%的性能,甚至通常只能使用显卡性能的20%左右,如果简单地按显卡为单位进行分配,则会产生很大的资源浪费。为此,我们尝试着将GPU卡的算力和显存进行等分,将V100显卡切分为4份相同的vGPU(virtualGPU,虚拟显卡),并为每个身份证识别进程分配一个vGPU,这样,一块V100显卡就可以部署4个服务,充分地利用了V100显卡的有效性能,并且通过对vGPU资源高效的调度,使得身份证识别业务的处理能力提升了21%。


第二阶段:GPU资源按需分配。在验证了第一阶段“单一推理业务”场景下的同卡部署后,我们在“多推理业务”同卡部署的场景下对提高GPU利用率进行了探索与尝试。将两个或多个在线推理和离线推理的业务部署在同一张GPU上,将算力和显存根据实际需求分配,通过测试表明,GPU池化技术能够对多个推理业务的GPU算力和显存两个维度分别进行精细化的控制,实现任意虚拟化。GPU池化技术有着精准的对算力和显存进行控制与隔离的能力,通过将一张GPU“化整为零”,服务多个推理业务,提高了GPU资源池的共享能力,从而进一步提高了GPU的利用率。


第三阶段:GPU资源分时调度。针对不同的业务与场景,在时间维度有着各自的分布特性,像身份证识别这类业务存在显著的时间分布特征,在非主要交易时段请求频率非常低,例如身份证识别、文档审核等业务。这类业务在交易低峰期占用的GPU资源与高峰期无异,这也引起了我们对该场景下如何优化GPU资源使用的关注。


在实际的实践中,我们进行了多轮技术论证和方案验证,与技术合作方共同提出并实现了利用内存作为显存的缓存这一思路,解决了在GPU资源超分的技术难点,突破了物理GPU卡显存的上限,赋予虚拟GPU资源“超分”的能力。


在具体实践场景上,我们率先尝试了“训练+推理”叠加的模式,因为推理业务主要在交易时段运行,而训练任务的运行时段则比较灵活,通过合理搭配训练和推理业务,就可以利用二者呈现出的运行时段的互补性,极大提高GPU资源的利用率。比如在白天推理业务独占GPU,保证在白天高负载下的服务质量,而在晚上推理业务请求量很少,GPU几乎无负载的情况下,将显存数据切换至内存上,把GPU资源调度给训练业务,次日白天推理业务高峰时段之前再将推理业务的数据从内存中加载到显存中,GPU算力资源又调度回推理业务,整个切换过程可以全程自动化、周期化,不改变系统部署,不影响业务的正常运行,从而实现“多业务叠加”“分时复用”“错峰填谷”。如果在推理业务的非主要交易时段仍有请求达到,则会启动临时调度机制,保证推理业务的实时响应。


第四阶段:GPU池化技术的稳定性与高可靠性。我们进行了压力条件下的充分的稳定性测试,确保技术合作方的方案能够满足证券行业对稳定性与可靠性的要求。


GPU资源池化的优势与效益

通过对GPU池化技术的探索与业务场景的结合,其技术优势已经可以无缝嵌入证券业务场景,业务收益开始逐步显现。


1.技术优势

从硬件定义转向软件定义,平台实现统一,开放性与包容性更强,原生支持AI应用,有利于完善AI中台的全链条;GPU分配的颗粒度变细,在GPU数量不变的情况下,可以支持更多任务,大幅增加业务的并发数;优化GPU管理模式,弥补原本私有云平台上GPU管理短板,监控信息更丰富,支持动态回收,任务排队,远程调用等,使用流程方便快捷;创新性的内存缓存技术,突破物理GPU显存上限,使GPU具备资源超分的能力。该技术扩展了GPU使用边界,使多业务叠加不再受限于单卡显存限制,且互补影响;对云原生生态的高度兼容,能够迅速投入企业数字化转型浪潮中;硬件兼容性强,支持不同型号GPU卡的管理调度与混合使用,有利于兼容异构算力,以及对国产芯片的支持。


2.使用收益

在开发测试场景上,开发测试工程师对GPU资源的利用率不高,在开发测试场景下对功能进行验证,通过对GPU进行细粒度切分可以有效提升GPU资源的利用率,且对用户无感知。在线推理场景上,部分在线推理业务无法发挥GPU资源的大部分性能。在保证业务性能的前提下通过对GPU进行切分除了可以提高资源利用率,又额外提供了冗余资源以便应对设备故障等应急场景。在分时复用场景上,通过合理叠加不同业务系统,能够有效复用GPU资源,从而在不同业务高峰时段实现按需分配,进一步提高GPU资源的利用率。在运维管理场景上,使用GPU池化技术,可以实现GPU资源的在线秒级分配和回收,结合任务自动排队功能,有效降低了任务排队拥塞,大大提升了算法工程师和运维人员的工作效率。


(栏目编辑:韩维蜜)





往期精选:

(点击查看精彩内容)


● 实战 | 提升突发事件管理水平,奠定智能化运维基础——一般事件转突发事件及应急响应级别判断模型研究

● 实战 | 中银金科隐私计算产品建设实践

● 实战 | NLP技术在银行理财产品销售场景的运用实践

● 实战 | 金融机构监管画像构建研究

● 实战 | 大数据上云的思考






《金融电子化》新媒体部:主任 / 邝源  编辑 / 傅甜甜 潘婧

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存