轉自《金融電子化》雜誌2021年11月總第314期 中信建投證券股份有限公司SADBA團隊投稿的《GPU平行計算技術賦能證券業務新發展》。
證券行業作為世界上資料最為密集的行業之一,擁有大量的證券交易資料、客戶資料、監管資料、行情資料等結構化與非結構化資料,這些資料具有體量巨大、產生高速、型別多樣等特徵,證券行業天然需要透過大資料和平行計算技術來推動業務系統的數字化升級。傳統的資料處理技術難以滿足快速、高精度、大資料量資訊的處理需求,加上CPU(central processing unit,中央處理器)在平行計算領域的效能表現相較GPU(graphics processing unit,圖形處理器)差距甚大,因此近些年基於GPU的平行計算技術在證券行業有了較快的發展。
本文從如何高效管理GPU資源的角度介紹了中信建投股份有限公司利用GPU平行計算技術推動證券業務創新發展的探索與努力。
GPU平行計算技術及對證券公司的意義
1.1. GPU平行計算技術
顧名思義,GPU平行計算技術就是利用GPU的計算單元來完成和加速平行計算任務的技術,而非傳統的基於CPU完成計算任務。因為GPU相比CPU具有更多的計算單元,這使得GPU比CPU更適合進行平行計算任務,獲得更高的執行效率。在英偉達推出了CUDA(Compute Unified Device Architecture,統一計算裝置架構)計算架構後,開發者可以使用類C語言來為GPU編寫程式,從而大大降低了GPU的使用門檻,這極大的推動了基於GPU的平行計算技術在模式識別、圖形語音、自然語言等人工智慧領域多個方向上的發展。
1.2. GPU平行計算技術對證券行業的意義
1.2.1. 支撐業務轉型
近幾年,國內的證券公司收入結構和比重發生了較大的變化,自2012年開始,券商經紀業務收入比重在不斷下滑(見圖1)。與之形成鮮明對比的是,自營業務和資管業務收入佔比穩步提升,這與各證券公司投研能力的不斷提高以及基於GPU的平行計算技術的廣泛應用有著直接關係,尤其是在量化交易、投資決策等領域處理因子挖掘和模型訓練等任務上,使用GPU進行平行計算能夠極大縮短因子挖掘和模型訓練時間,從而提高因子挖掘和模型開發效率,最終達到提高自營和資管業務營收的效果。
資料來源:《券商經紀業務發展分析及業務建議》粵開證券
http://www.ykzq.com/Institute_Details.html?id=236767
1.2.2. 拓展存量市場
經紀業務雖然收入在證券公司所佔的比例有所下降,但是佔比仍然接近30%,這個體量龐大的存量市場仍然具有深耕的潛力。近幾年,各證券公司不斷在人工智慧領域加大投入,這使得在使用者開戶、身份驗證、單據處理等多項業務中能夠有效縮短使用者等待時間並提高業務辦理的效率和準確率。而在產品推薦、股票診斷等業務領域中,更加快速、準確識別使用者投資偏好,並給予相應的投資建議,能夠有效提高客戶滿意度和留存率等關鍵業務指標。
1.2.3. 加速業務創新
隨著GPU設計與製造和平行計算理論與演算法的不斷髮展,計算效能穩步提高,這也為需要強大資料處理能力的證券行業的創新發展提供了堅實的基礎。證券公司可以將很多以往只能透過人工方式處理的複雜業務問題進行抽象建模,利用基於GPU的平行計算技術實現問題的加速求解,透過演算法和模型的調優,設計出滿足效能要求的演算法或者系統,從而真正實現加速業務創新的目的。
1.3. GPU平行計算在證券行業的應用場景
GPU平行計算技術以其強大的計算能力,迅速在證券行業的多個領域推廣落地,我們在實際應用中主要聚焦在以下幾個場景:
1.3.1 策略模型開發場景
策略模型開發場景主要是以投顧類、量化類業務為代表,需要強大計算能力來完成模型開發、訓練及驗證工作的場景。開發人員在完成模型開發、因子挖掘以及因子與目標模型之間的耦合關係驗證等工作時,利用GPU裝置來進行加速計算,以此來縮短模型開發時間週期。
1.3.2. 人工智慧應用場景
GPU平行計算技術在人工智慧應用場景中的應用可以為投資者提供多種輔助服務,比如業務辦理過程中的面部識別與身份證資訊驗證服務、智慧語音客服透過電話的形式為投資者進行業務推薦等服務。透過GPU平行計算技術的加持,這些服務系統基本都實現了自動化,不僅提升了服務的質量和準確率,更是極大的提升了客戶的體驗。
1.3.3. GPU資源管理存在的問題
儘管採用GPU平行計算技術為證券公司的多項業務帶來了顯著的效益,但在使用與管理GPU資源過程中也存在諸多不便與問題,主要有以下幾點:
1.3.4. 管理維護成本較高
如果選擇直接在GPU伺服器上部署專案程式,就不可避免的面臨多個專案可能部署在同一臺GPU伺服器上的情況,很容易出現各個專案爭搶資源或者相互干擾影響的情況;如果選擇虛擬化或者容器叢集方案部署,雖然能夠有效解決專案隔離的問題,但是不同平臺對GPU資源的支援有限,無法充分發揮GPU的效能優勢。
1.3.5. 裝置利用率低
以當前主流的虛擬化或者容器雲平臺的管理技術,都不能有效提高GPU資源的利用率。首先,在GPU資源的分配上,只能以整張GPU卡為單位分配給業務系統,無論專案能否充分利用所申請GPU資源的所有效能,剩餘的計算效能都將被閒置;其次,系統部署方希望儘可能多的申請資源以保證在業務高峰不會降低服務質量,而大部分時間所申請的GPU資源都在低效運轉,這也進一步加劇了GPU資源的浪費。
1.4. 探索與實踐
針對上述問題,中信建投圍繞自己實際的業務需求,在GPU資源管理運維方面做出了許多探索與努力,並針對不同推理業務疊加、推理與訓練疊加等複雜場景下GPU資源管理使用方面提出了K8S(Kubernetes,一種容器編排引擎)+GPU池化的解決方案,有效的緩解了GPU資源管理難度大,利用率低的問題。
GPU資源池化技術的實踐與探索
雖然GPU裝置早已在業界被廣泛使用,但GPU裝置成本高昂且對GPU資源的管理大多還處於比較初級的水平,造成了GPU資源的極大浪費,因此透過GPU資源池化技術將多個獨立的GPU裝置組建成共享資源池能夠顯著提高GPU的利用率,有效降低整體建設成本。
2.1. GPU資源池化的概念
GPU資源池化對硬體資源實現統一管理,把GPU資源從硬體定義變成軟體定義,實現算力資源的共享與靈活排程。透過該技術,我們可以高效的切分、排程和使用GPU資源,從而提高GPU資源的利用率。當然,GPU資源池化技術的演進並不是一蹴而就的,而是經歷了以下幾個階段(見圖2):
階段一:簡單虛擬化。此階段可以將物理GPU按固定比例均分成多個虛擬GPU,每個虛擬GPU規格一致。
階段二:任意虛擬化。此階段支援GPU按算力和視訊記憶體兩個維度進行細粒度切分,滿足系統對算力多樣化的需求,支援GPU資源動態共享。
階段三:遠端呼叫。此階段突破了GPU資源對物理伺服器的依賴,GPU資源可以透過高速網路提供給整個資料中心。
階段四:資源池化。在階段三基礎上,提供了更豐富的GPU分配控制手段。例如聚合多個GPU顯示卡、按需動態伸縮調節資源大小、動態回收資源、動態實時監測、異構GPU排程等。
2.2. 中信建投對於GPU池化技術的探索與努力
目前,市面上已有多種GPU資源管理技術,每種技術都有其優點與適用的場景。
2.2.1. GPU資源池化適用場景分析
對人工智慧算力進行更精細化的管理,增加並行度、提高利用率一直是業界關注的方向,趨動科技的OrionX方案能夠對典型的業務場景提供支援(見圖3)。除此之外,我們還根據自身的業務場景對GPU資源池化進行了自己的探索。
- 化整為零
將物理GPU切分後分配給多個推理任務,這樣可以增加推理任務並行度,緩解多業務併發帶來的資源緊張的問題。
- 化零為整
將多卡GPU提供給一個分散式訓練任務使用,提供超過單機數量的海量算力。這樣可以降低分散式訓練時間,有效提升模型訓練效率。
- 隔空取物
解耦CPU與GPU的配比限制,這樣可以根據任務需要靈活部署,並透過高速網路遠端呼叫GPU資源。
- 隨需應變
對GPU資源按照按需分配、隨用隨取、動態回收的方式進行管理,把寶貴的GPU資源充分利用,各業務可以動態、錯峰疊加,進一步提升資源管理效率。
2.3. GPU池化技術在中信建投的應用場景探索
中信建投現有AI應用場景主要有線上推理類業務:影象識別、智慧外呼等;離線推理業務:文件智慧抽取、招股書複核、量化分析等;模型訓練任務:量化模型訓練、投資決策模型訓練等。
在推理業務一般部署在容器雲平臺上,透過容器編排引擎實現對GPU資源的排程,但隨著在大規模AI應用的上線, 我們也遇到了一些問題:
- GPU伺服器普遍成本高昂;
- GPU資源的綜合利用率低;
- 交付速度慢,運維工作繁瑣;
- 缺少全域性統一的GPU資源配置和監控中心。
透過不斷地探索,我們在實際的應用場景中驗證了GPU池化技術能夠有效解決上述問題,不僅能夠滿足業務系統對GPU資源的使用需求,也能實現對GPU資源的高效管理。
2.3.1. 第一階段:GPU資源等額分配
在我們的身份證識別的業務場景下,系統很難發揮顯示卡100%的效能,甚至通常只能使用顯示卡效能的20%左右,如果簡單的按顯示卡為單位進行分配,則會產生很大的資源浪費。
為此,我們嘗試著將GPU卡的算力和視訊記憶體進行等分,將V100顯示卡切分為4份相同的vGPU(virtual GPU,虛擬顯示卡),併為每個身份證識別程序分配一個vGPU,這樣,一塊V100顯示卡就可以部署4個服務,充分的利用了V100顯示卡的有效效能,並且透過對vGPU資源高效的排程,使得身份證識別業務的處理能力提升了21%。
採用了GPU虛擬化技術後充分挖掘和有效利用了現有GPU資源,可以服務和支撐更多業務,滿足了業務對算力資源的需求。
2.3.2. 第二階段:GPU資源按需分配
在驗證了第一階段“單一推理業務”場景下的同卡部署後,我們在“多推理業務”同卡部署的場景下對提高GPU利用率進行了探索與嘗試。
將兩個或多個線上推理和離線推理的業務部署在同一張GPU上,將算力和視訊記憶體根據實際需求分配,透過測試表明,OrionX的GPU池化技術能夠對多個推理業務的GPU算力和視訊記憶體兩個維度分別進行精細化的控制,實現任意虛擬化。
OrionX的GPU池化技術有著精準的對算力和視訊記憶體進行控制與隔離的能力,透過將一張GPU“化整為零”,服務多個推理業務,提高了GPU資源池的共享能力,從而進一步提高了GPU的利用率。
2.3.3. 第三階段:GPU資源分時排程
針對不同的業務與場景,在時間維度有著各自的分佈特性,有部分業務存在顯著的時間分佈特徵,在非主要交易時段請求頻率非常低(見圖4),例如身份證識別、文件稽核等業務。這類業務在交易低峰期佔用的GPU資源與高峰期無異,這也引起了我們對該場景下如何最佳化GPU資源使用的關注。
這類GPU資源利用率問題在證券行業內的業務系統中是普遍存在的技術難點,但也是行業對GPU資源池化提出的不可或缺的需求,是GPU資源池化在更大範圍內應用的前提。究其根本,其實質是要求GPU池化技術能夠實現對GPU資源的更細粒度的排程。如果能實現GPU的視訊記憶體超分,突破物理視訊記憶體限制,將不同時間分佈的業務佔用的GPU資源合理分配,可以極大地提升GPU利用率(見圖5)。
在實際的實踐中,我們進行了多輪技術論證和方案驗證,與技術合作方共同提出並實現了利用記憶體作為視訊記憶體的快取這一思路,解決了在GPU資源超分的技術難點,突破了物理GPU卡視訊記憶體的上限,賦予虛擬GPU資源“超分”的能力(見圖6)。
在具體實踐場景上,我們率先嚐試了“訓練+推理”疊加的模式,主要是因為推理業務主要在交易時段執行,而訓練任務的執行時段則比較靈活,透過合理搭配訓練和推理業務,就可以利用二者呈現出的執行時段的互補性,極大的提高GPU資源的利用率。比如在白天推理業務獨佔GPU,保證在白天高負載下的服務質量,而在晚上推理業務請求量很少,GPU幾乎無負載的情況下,將視訊記憶體資料切換至記憶體上,把GPU資源排程給訓練業務,次日白天推理業務高峰時段之前再將推理業務的資料從記憶體中載入到視訊記憶體中,GPU算力資源又排程回推理業務,整個切換過程可以全程自動化、週期化、不改變系統部署、不影響業務的正常執行,從而實現多業務疊加、“分時複用”、“錯峰填谷”。
如果在推理業務的非主要交易時段仍有請求達到,則會啟動臨時排程機制,保證推理業務的實時響應,根據測試結果響應時長會有約200ms左右的延遲。
2.3.4. 第四階段:GPU池化技術的穩定性與高可靠性
GPU資源池是AI(Artificial Intelligence,人工智慧)業務穩定執行的基石,GPU資源池是否穩定、可靠與高效,對於金融業務系統更是重中之重。對此我們進行了壓力條件下的穩定性測試,連續在滿負載的條件下執行7天,其平均負載測試結果(見表2)表明GPU在溫度、功率、算力等方面的效能無影響,穩定執行,能夠滿足證券行業對穩定性與可靠性的要求。
2.4. GPU資源池化對建設AI資料中心的意義
在人工智慧技術高速發展的今天,證券行業的諸多系統都因為搭上了人工智慧這列高速列車,而爆發出了新的活力,但這都離不開AI資料中心基礎設施的支援,GPU資源池化技術正是對AI基礎設施的有力補充,能夠助力中信建投數字化轉型建設,迎接人工智慧引領的下一個浪潮。
2.4.1. GPU資源池化符合中信建投的私有云發展方向
近幾年,中信建投已初步建成了高效、彈性、可靠的私有云基礎設施,並在此基礎上不斷深入應用大資料、人工智慧等技術打造企業級智慧化開放平臺,並持續進行各類新技術探索與嘗試。
2021年,我們探索了GPU資源池化技術在中信建投AI業務場景上的應用,明確了其在私有云平臺資源管理上的作用。GPU資源池化技術彌補了私有云平臺對GPU資源管理功能的缺失,可以更好的支撐上層業務系統對算力資源的多樣化需求,提高了私有云平臺的資源管控效率與能力,符合今後中信建投私有云發展的方向。
2.4.2. GPU資源池化充分賦能AI技術中臺
隨著數智時代的到來,客戶對服務的標準越來越高,需要更貼心的產品、更敏捷的速度和更專業的服務,這無疑對證券公司提出了更高的要求。打造一個更加高效的技術中臺,以滿足前臺業務多變創新的需求,敏捷應對市場變化。利用GPU資源池化技術能夠實現動態、靈活、穩定、高效地算力分配,透過資源超分實現了多種業務場景的GPU資源共享與複用,賦能AI技術中臺,能夠有效提升GPU資源的利用率,提升自身運營效率和效益,從而提升自身在市場同業之中的競爭力,這對中信建設的中臺建設有著重大且深遠的意義。
2.4.3. GPU資源池化助力系統雲原生轉型
近年來,雲原生概念席捲各行各業,我公司一直秉承技術引領的理念,不斷推動雲原生架構的落地與轉型。
GPU池化技術對雲原生支援主要體現在原生支援K8S平臺,透過K8S平臺實現資源的分配與管理GPU資源,從而有效彌補原生K8S在GPU資源排程方面存在資源嚴重浪費的短板,完成了雲原生改造的系統能夠簡單地實現對GPU池化技術的相容,也大大降低了老舊系統進行雲原生改造的門檻。因此,透過GPU池化技術來推動和保障業務系統的雲原生轉型是一種兼顧管理收益與改造收益的舉措。
K8S平臺與GPU池化技術二者緊密結合,實現了GPU資源的統一分配和監控,對構建統一的AI業務平臺起到了重要的支撐作用。
GPU資源池化的優勢與效益
透過對GPU池化技術的探索與業務場景的結合,其技術優勢已經可以無縫嵌入證券業務場景,業務收益開始逐步顯現。
3.1. 技術優勢
- 從硬體定義轉向軟體定義,平臺實現統一,開放性與包容性更強,原生支援AI應用,有利於完善AI中臺的全鏈條。
- GPU分配的顆粒度變細,在GPU數量不變的情況下,可以支援更多工,大幅增加業務的併發數。
- 最佳化GPU管理模式,彌補原本私有云平臺上GPU管理短板,監控資訊更豐富,支援動態回收,任務排隊,遠端呼叫等,使用流程方便快捷。
- 創新性的記憶體快取技術,突破物理GPU視訊記憶體上限,使GPU具備資源超分的能力。該技術擴充套件了GPU使用邊界,使多業務疊加不再受限於單卡視訊記憶體限制,且互補影響。
- 對雲原生生態的高度相容,能夠迅速投入企業數字化轉型浪潮中。
- 硬體相容性強,支援不同型號GPU卡的管理排程與混合使用,有利於相容異構算力,以及對國產晶片的支援。
3.2. 使用收益
- 開發測試場景:開發測試工程師對GPU資源的利用率不高,在開發測試場景下對功能進行驗證,透過對GPU進行細粒度切分可以有效提升GPU資源的利用率,且對使用者無感知。
- 線上推理場景:部分線上推理業務無法發揮GPU資源的大部分效能。在保證業務效能的前提下透過對GPU進行切分除了可以提高資源利用率,又可以額外提供了冗餘資源以便應對裝置故障等應急場景。
- 分時複用場景:透過合理疊加不同業務系統,能夠有效複用GPU資源,從而在不同業務高峰時段實現按需分配,進一步提高GPU資源的利用率。
- 運維管理場景:使用GPU池化技術,可以實現GPU資源的線上秒級分配和回收,結合任務自動排隊功能,有效降低了任務排隊擁塞,大大提升了演算法工程師和運維人員的工作效率。
基於GPU的平行計算技術展望
經過了半年多的探索與努力,我們在基於GPU的平行計算這一方向上取得了一定的成果,並實際應用在了部分業務系統中,也取得了不錯的效果。我們下一步計劃在提升現有架構的隔離性、安全性與穩定性、增強模型與框架的適配性、最佳化作業排程效能以及完善記憶體切換模型等方面進行更深入的研究與最佳化。
隨著對基於GPU的平行計算技術的不斷深入探索,不斷髮掘業務場景、擴大業務規模、加大技術創新與業務創新的融合力度,基於GPU的平行計算技術必定能夠在證券行業獲得更廣闊的的前景。
延伸:
中信建投證券成立於2005年11月2日,是經中國證監會批准設立的全國性大型綜合證券公司。公司在為政府、企業、機構和個人投資者提供優質專業的金融服務過程中建立了良好的聲譽,自2010年起連續12年被中國證監會評為目前行業最高級別的A類AA級證券公司。
《金融電子化》雜誌創刊於1993年,是我國金融資訊科技類主導期刊。本刊以“理論研究、政策解讀、知識普及”為辦刊方針,秉承“面向國內外金融界與資訊產業界,為中國的金融創新、金融資訊化事業和資訊產業服務”的宗旨,透過“高層”“封面專題”“對話”“技術應用”“業務創新”等欄目,傳遞金融監管等政府部門、金融機構在推進金融科技與金融創新深度融合,以數字化引領行業轉型發展方面的政策導向和方針指引,探討、交流金融科技應用創新思考與實踐。