新四季網

多GPU平臺的多路視頻數據的實時處理方法與流程

2023-05-27 05:07:46


本發明涉及數據處理技術領域,尤其涉及一種多GPU平臺的多路視頻數據的實時處理方法。



背景技術:

隨著多媒體技術的蓬勃發展,在「平安城市,智慧城市」的發展趨勢下,國家智能交通的推廣力度日益加強,城市交通監控涉嫌頭的覆蓋程度越來越廣,而龐大的數據量為提取和分析監控視頻帶來了極大的挑戰。當前階段,針對監控視頻的智能分析系統主要針對的是卡口圖像,至今仍未出現廣泛而又成熟的針對監控視頻數據的智能分析系統,限制該系統發展的主要原因是計算能力的不足。

近年來,隨著高性能GPU(Graphics Processing Unit,圖形處理器)的發展,其強大的計算能力漸漸引起人們的重視,也為監控視頻數據的分析與處理提供了新的突破口。若能在監控視頻實時分析建立在多GPU平臺上,能夠大大緩解計算能力不足的尷尬。但要在多GPU平臺上高效並行處理多路視頻流的多個分析任務,仍要面臨異構平臺上的並行結構複雜且難以充分利用計算資源、多任務間計算資源難以平衡和實時處理問題限制性強等挑戰。

現有技術中的用於解決多GPU平臺的調度問題的方法,如:授權公告日為2014年9月10日,授權公告號為CN104035751A的發明專利:基於多圖形處理器的數據並行處理方法及裝置;授權公告日為2014年11月19日,授權公告號為CN104156264A的發明專利:一種基於多GPU的基帶信號處理任務並行實時調度方法,都存在無法直接應用於多數據流情況下的多任務處理的問題,應用存在一定的局限性。



技術實現要素:

本發明實施例提供了一種多GPU平臺的多路視頻數據的實時處理方法,以實現多視頻多任務在多GPU平臺上的並行處理。

為了實現上述目的,本發明採取了如下技術方案。

一種多GPU平臺的多路視頻數據的實時處理方法,包括:

步驟1、建立基於任務處理器的層式並行結構;

步驟2、對所述層式並行結構中的各個任務處理器進行初始化,各個任務處理器接收監控視頻數據,對監控視頻數據進行實時處理;

步驟3、進行環境監測,根據環境監測結果計算任務隊列健康度、任務緩存區健康度和各GPU健康度;

步驟4、根據所述任務隊列健康度、緩存區健康度及各GPU健康度值進行任務處理器調度和作業分發;

步驟5、定時重複步驟3、4,使各GPU間保持負載均衡狀態。

進一步地,所述的建立基於任務處理器的層式並行結構,包括:

將任務處理器作為並行與調度的基本單位,一個任務處理器包括一個GPU計算任務的封裝、一個輸入緩存、一個輸出緩存和一個作業隊列。一個任務處理器對應創建、就緒、暫停、運行、結束五個狀態,通過任務處理器控制器進行任務處理器的狀態控制;

根據監控視頻路數、當前計算任務、計算節點GPU數進行基於層結構並行的任務處理器分配,分配各層間數據緩存區,將基於多GPU上的多任務處理器進行空間並行,得到多個層式並行結構,基於流水線技術對各個層式並行結構進行時間並行,建立用於流式監控數據處理的並行結構,基於內存交互對流式監控數據進行統一式管理。

進一步地,所述的建立基於任務處理器的層式並行結構還包括:

基於任務數劃分任務處理器的層數,依據計算任務複雜度計算各層任務處理器的數量,使用輪轉法將任務處理器儘量分配到不同GPU上,通過各層間緩存區,對同層任務處理器的輸入輸出的流式數據進行統一管理,並基於內存交互完成CPU到多GPU上的數據交換。

進一步地,所述的根據環境監測結果計算任務隊列健康度、任務緩存區健康度和各GPU健康度,包括:

按照時間間隔統計被監測對象佔用率,所述被監測對象佔用率包括任務隊列佔用率、任務緩存區佔用率、GPU利用率和GPU顯存佔用率;

採用滑動窗口計算若干時間片內被監測對象佔用率的平均值;

根據記錄的多個時間片內被監測對象佔用率的平均值計算被監測對象健康度,所述被監測對象健康度包括任務隊列健康度、任務緩存區健康度、GPU健康度和GPU顯存健康度;

依據被監測對象健康度判斷被監測對象的狀態。

進一步地,根據所述任務隊列健康度、緩存區健康度及各GPU健康度值進行任務處理器調度,包括:

根據各任務運行狀態、任務處理器數量控制各任務佔用的計算資源比例;對於某任務,通過其輸入和輸出緩存區的健康度判斷該任務的各狀態處理器的數量變化量。

進一步地,所述的對於某任務,通過其輸入和輸出緩存區的健康度判斷該任務的各狀態處理器的數量變化量,包括:

若某任務的輸入緩存處於飢餓狀態,輸出緩存處於過飽狀態,則減少任務處理器數量;

若某任務的輸入緩存處於過飽狀態,輸出緩存處於飢餓狀態,則增加任務處理器數量;

若某任務的輸入緩存或輸出緩存處於健康狀態,則暫時不變動任務處理器數量。

進一步地,所述的方法還包括:

若GPU處理器處於過飽狀態,則減少該GPU處理器上的任務處理器數量,減少時將運行狀態的處理器轉為暫停狀態,減少時優先減少輸出緩存區健康度高的任務處理器。

進一步地,根據所述任務隊列健康度、緩存區健康度及各GPU健康度值進行作業分發,包括:

採用動態輪詢策略依據健康度低的任務處理器優先的原則,進行作業的分發,若任務隊列達到最大長度,則停止作業分發。

由上述本發明的實施例提供的技術方案可以看出,本發明實施例為在多GPU平臺上的多路視頻多任務實時處理設計了完整的並行、調度、數據管理方案;能夠充分利用多GPU處理器強大的計算能力;使用動態負載均衡算法保證系統能夠根據輸入數據和硬體條件充分利用計算資源;從空間並行和時間並行多個方面進行並行設計,大大加快計算速度;且具有一定的廣泛性、安全性和自適應性。

本發明附加的方面和優點將在下面的描述中部分給出,這些將從下面的描述中變得明顯,或通過本發明的實踐了解到。

附圖說明

為了更清楚地說明本發明實施例的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。

圖1為本發明實施例提供的一種多GPU平臺的多路視頻數據的實時處理方法的實現原理示意圖;

圖2為本發明實施例提供的一種任務處理器的工作流程示意圖;

圖3為本發明實施例提供的一種任務處理器的狀態控制流程示意圖;

圖4為本發明實施例提供的一種任務處理器的調度過程示意圖;

圖5為實現本發明實施例方法的系統架構示意圖。

具體實施方式

下面詳細描述本發明的實施方式,所述實施方式的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施方式是示例性的,僅用於解釋本發明,而不能解釋為對本發明的限制。

本技術領域技術人員可以理解,除非特意聲明,這裡使用的單數形式「一」、「一個」、「所述」和「該」也可包括複數形式。應該進一步理解的是,本發明的說明書中使用的措辭「包括」是指存在所述特徵、整數、步驟、操作、元件和/或組件,但是並不排除存在或添加一個或多個其他特徵、整數、步驟、操作、元件、組件和/或它們的組。應該理解,當我們稱元件被「連接」或「耦接」到另一元件時,它可以直接連接或耦接到其他元件,或者也可以存在中間元件。此外,這裡使用的「連接」或「耦接」可以包括無線連接或耦接。這裡使用的措辭「和/或」包括一個或更多個相關聯的列出項的任一單元和全部組合。

本技術領域技術人員可以理解,除非另外定義,這裡使用的所有術語(包括技術術語和科學術語)具有與本發明所屬領域中的普通技術人員的一般理解相同的意義。還應該理解的是,諸如通用字典中定義的那些術語應該被理解為具有與現有技術的上下文中的意義一致的意義,並且除非像這裡一樣定義,不會用理想化或過於正式的含義來解釋。

為便於對本發明實施例的理解,下面將結合附圖以幾個具體實施例為例做進一步的解釋說明,且各個實施例並不構成對本發明實施例的限定。

監控視頻數據作為一種體量大,安全性要求高的特殊數據,在處理方法中應該在高效性和安全性上進行有針對性的優化和調整。

本發明實施例提供了一種多GPU平臺的多路視頻數據的實時處理方法的實現原理示意圖如圖1所示,主要包括如下步驟:

步驟(1):建立基於任務處理器的層式並行結構;

在本發明實施例中,任務處理器是計算任務的抽象,是並行與調度的基本單位。圖2為本發明實施例提供的一種任務處理器的工作流程示意圖,一個任務處理器包括一個GPU計算任務的封裝、一個輸入緩存、一個輸出緩存和一個作業隊列。

圖3為本發明實施例提供的一種任務處理器的狀態控制流程示意圖,一個任務處理器對應創建、就緒、暫停、運行、結束五個狀態,通過任務處理器的控制器進行任務處理器的狀態控制。

根據監控視頻路數、當前計算任務、計算節點GPU數進行基於層結構並行的任務處理器分配,分配各層間數據緩存區,以建立用於流式監控數據處理的並行結構。

將基於多GPU上的多任務處理器進行空間並行,且基於流水線技術建立層式結構進行時間並行,基於內存交互對流式數據進行統一式管理。

層式並行結構的建立方法包括:

基於任務數劃分任務處理器的層數,依據任務複雜度進行各層任務處理器的數量計算,使用輪轉法將任務處理器儘量分配到不同GPU上。

基於內存交互對流式數據進行統一式管理方法還包括:

通過各層間緩存區,對同層任務處理器的輸入輸出的流式數據進行統一管理,並基於內存交互完成CPU到多GPU上的數據交換。

所述的監控視頻路數、當前計算任務、計算節點GPU數的一個實例為在一臺具有2塊GPU的計算節點上對3路高清監控視頻進行實時分析,首先進行監控視頻解碼獲取視頻幀,對視頻幀進行車輛檢測,再對檢測出的車輛屬性(車型、顏色、特徵等)提取,三個任務的計算複雜度比值為1:3.4:0.6。

使用任務處理器完成視頻解碼、車輛檢測、車輛屬性提取三個任務的封裝,對應任務處理器#0、任務處理器#1、任務處理器#2。

所述的任務處理器的分配方式為設在一臺具有n塊GPU的伺服器上處理m個任務,m個任務的複雜度權重比為d1,d2,……,dm,則將任務處理器劃分為m層,對應m個任務,若輸入視頻路數為x,則每層初始化任務處理器數量為d為該層複雜度權重值;計算得到各層任務處理器的數量後,使用輪轉法將同任務的任務處理器儘可能地分配到不同GPU上,並對各任務處理器進行初始化。針對本實例,共初始化3個任務處理器#0,11個任務處理器#1,2個任務處理器#2;GPU#0上分配任務處理器數依次為2、5、1,GPU#1上分配任務處理器數依次為1、6、1。

所述的用於流式監控數據處理的並行結構如圖1所示。以層級結構將任務處理器劃分成3層,形成流水線,進行時間並行;通過任務處理器在多GPU上的分配,進行多任務在多GPU上的空間並行;通過在各層間建立4個統一的緩存區,對同層任務處理器的輸入輸出的流式數據進行統一管理,並基於內存交互完成CPU到多GPU上的數據交換,具體數據管理方式如圖3所示,其中視頻緩存區使用環形緩存區作為每個視頻流的存儲區域。

步驟(2):對層式並行結構中的各個任務處理器進行初始化,各個任務處理器接收監控視頻數據,對監控視頻數據進行實時處理;

步驟(3):進行計算環境監測,預測任務隊列、任務緩存區及各GPU健康度;

按照時間間隔統計被監測對象佔用率,所述被監測對象佔用率包括任務隊列佔用率、任務緩存區佔用率、GPU利用率和GPU顯存佔用率;

採用滑動窗口計算若干時間片內被監測對象佔用率的平均值;

根據記錄的多個時間片內被監測對象佔用率的平均值計算被監測對象健康度,所述被監測對象健康度包括任務隊列健康度、任務緩存區健康度、GPU健康度和GPU顯存健康度;

依據被監測對象健康度判斷被監測對象的狀態。

所述的任務隊列及緩存區健康度計算方式使用如下方法(以緩存區為例,方法相同):以時間間隔為50ms為單位進行被監測緩存區已被佔用的緩存大小。通過大小為n的滑動窗口(n為1-5之間)來統計50*n毫秒內的平均佔用率,來達到平滑數據的效果,再通過平滑後的佔用率作為依據進行趨勢計算。通過健康緩存區間的上界和下界及趨勢計算緩存區健康度。

數據統計:以50ms的時間間隔統計被監測緩存區的已被佔用的大小。

數據分析:

緩存區使用百分比PBuf_occ的計算公式如下:

通過滑動窗口統計n個時間片內的平均緩存區使用百分比,其中n為滑動窗口大小,計算公式如下。

變化趨勢CURbuf計算公式如下,其中α∈[0.1,2]:

通過劃分緩存區的90%和10%作為健康區間的上界和下屆,健康度計算公式如下:

若根據公式3.4計算得健康度Hbuf>100,則Hbuf=100;

若計算得Hbuf<0,則Hbuf=0。

對於某數據緩存區:

若Hbuf≤10,則處於飢餓狀態;

若10<Hbuf100,則Hgpu=100;

若計算得Hgpu<0,則Hgpu=0。

對於某GPU處理器:

若Hgpu≤45,則處於飢餓狀態;

若45<Hgpu<80,則處於健康狀態;

若Hgpu≥80,則處於過飽狀態。

步驟(4):根據任務隊列健康度、緩存區健康度及各GPU健康度值進行任務處理器調度和作業分發;

圖4為本發明實施例提供的一種任務處理器調度過程示意圖,任務處理器調度方法包括:

通過各任務運行狀態、任務處理器數量控制各任務佔用的計算資源比例;通過各監測對象健康度值更改各任務對應任務處理器的狀態。

對於某任務,通過其輸入和輸出緩存區的健康度判斷該任務的各狀態處理器的數量變化量:

若其輸入緩存處於飢餓狀態,輸出緩存處於過飽狀態,則減少任務處理器數量;

若其輸入緩存處於過飽狀態,輸出緩存處於飢餓狀態,則增加任務處理器數量;

若其輸入緩存或輸出緩存處於健康狀態,則暫時不變動任務處理器數量。

需要增加處理器數量時,優先等待正在創建的任務處理器創建完成,次優先恢復暫停狀態或準備狀態的處理器為運行狀態,如無以上兩種情況,則創建新的任務處理器。

需要創建新的任務處理器時,優先選擇健康度低的GPU進行。

若緩存區達到容量上限,開始丟棄數據。

若GPU處理器處於過飽狀態,則減少該處理器上的任務處理器數量,減少時將運行狀態的處理器轉為暫停狀態,減少時優先減少輸出緩存區健康度高的任務處理器。

作業分發方式還包括:

作業分發採用動態輪詢策略,依據健康度低的處理器優先的原則,進行作業的分發。若任務隊列達到最大長度,則停止分發。

步驟(5):定時重複步驟3、4,使各GPU間保持負載均衡狀態。

圖5為實現本發明實施例方法的系統架構示意圖,主要包括:計算引擎模塊、集成總線模塊、數據管理模塊。系統以視頻解碼、車輛檢測及屬性提取為處理任務,通過集成總線模塊實現本發明所述方法,使得多路高清視頻處理任務實時運行在多GPU平臺上。

綜上所述,本發明實施例為在多GPU平臺上的多路視頻多任務實時處理設計了完整的並行、調度、數據管理方案;能夠充分利用多GPU處理器強大的計算能力;使用動態負載均衡算法保證系統能夠根據輸入數據和硬體條件充分利用計算資源;從空間並行和時間並行多個方面進行並行設計,大大加快計算速度;且具有一定的廣泛性、安全性和自適應性。

本發明實施例實現了多視頻多任務在多GPU平臺上的並行處理,並且基於健康度預測進行系統的任務和作業調度,提高了平均GPU利用率,減少了任務計算時間,且在穩定性、擴展性和自適應性上具有良好的表現。

本說明書中的各個實施例均採用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對於裝置或系統實施例而言,由於其基本相似於方法實施例,所以描述得比較簡單,相關之處參見方法實施例的部分說明即可。以上所描述的裝置及系統實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位於一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部模塊來實現本實施例方案的目的。本領域普通技術人員在不付出創造性勞動的情況下,即可以理解並實施。

以上所述,僅為本發明較佳的具體實施方式,但本發明的保護範圍並不局限於此,任何熟悉本技術領域的技術人員在本發明揭露的技術範圍內,可輕易想到的變化或替換,都應涵蓋在本發明的保護範圍之內。因此,本發明的保護範圍應該以權利要求的保護範圍為準。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀