TW202219760A - 協同運算裝置及其協同運算方法 - Google Patents
協同運算裝置及其協同運算方法 Download PDFInfo
- Publication number
- TW202219760A TW202219760A TW109138791A TW109138791A TW202219760A TW 202219760 A TW202219760 A TW 202219760A TW 109138791 A TW109138791 A TW 109138791A TW 109138791 A TW109138791 A TW 109138791A TW 202219760 A TW202219760 A TW 202219760A
- Authority
- TW
- Taiwan
- Prior art keywords
- module
- computing module
- image frames
- computing
- original image
- Prior art date
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 19
- 238000000034 method Methods 0.000 description 19
- 238000009877 rendering Methods 0.000 description 8
- 238000013473 artificial intelligence Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000007796 conventional method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3024—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/22—Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
- G06F7/24—Sorting, i.e. extracting data from one or more carriers, rearranging the data in numerical or other ordered sequence, and rerecording the sorted data on the original carrier or on a different carrier or set of carriers sorting methods in general
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/501—Performance criteria
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5017—Task decomposition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/509—Offload
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Image Processing (AREA)
- Image Analysis (AREA)
Abstract
本發明揭示一種協同運算裝置,其中:任務發配模組係接收複數個原始影像圖框,並根據一負載結果將該等原始影像圖框動態分配為第一數量與第二數量的原始影像圖框。第一運算模組與第二運算模組為不同類型的運算模組,兩者係分別接收該等第一數量與第二數量的原始影像圖框,並分別產生第一數量與第二數量的處理後影像圖框。影像排序模組係接收該等第一數量與第二數量的處理後影像圖框並根據一第一時序還原排序該等處理後影像圖框,並產生該負載結果。本發明亦揭示一種對應於該協同運算裝置之協同運算方法。
Description
本發明係關於一種協同運算之裝置與方法,特別關於在兩種不同型態的處理器之間協同運作的裝置與方法。
目前,人工智慧(AI)已經大量運用於各種科技應用之中;例如,人工智慧可用於人臉辨識的用途上。人臉辨識之人工智慧運算需要藉由中央處理單元(CPU)以及圖形處理單元(GPU)的大量運算來達成;然而當CPU與GPU執行大量運算時,將耗費運算時間而導致時間上的延遲,因而無法即時(real-time)完成圖形運算而無法即時呈現貼圖。
為了讓CPU及GPU更有效率的執行運算,習知技術已提出幾種方式;在第一種習知的方式中,以CPU與GPU各別執行不同類型的運算,例如,以CPU執行邏輯(logic)運算,並且同時平行的以GPU執行渲染(render)運算。在第二種習知的方式中,係將CPU與GPU合併成為統一流化處理資源池,再將渲染生成的原始圖框分段發配置CPU與GPU以進行視訊流的流化處理,再整合並轉化為動畫視頻流。
然而,於採用上述之習知技術時,當實際運作時CPU與GPU各自的運算能力或負載狀況不同時,可能過度依賴CPU與GPU其中一者執行運算,而造成另一者過度閒置,導致CPU或GPU的運算資源浪費,無法最大化利用CPU或GPU的硬體效能。
基於習知技術中存在的上述問題,本領域亟需一種改良式的協同運算裝置以及協同運算方法,其能夠以較佳的發配機制將運算任務分別發配給兩種不同類型的運算模組(例如CPU運算模組與GPU運算模組)分別執行,而能夠平衡的兼顧兩種運算模
組的運算能力,充分使用兩種運算模組的硬體效能而不致閒置或浪費運算資源,此實屬本領域之重要課題。
為了克服習知技術中存在的技術問題,本發明之目的在於提供一種改良的協同運算裝置以及協同運算方法之技術方案,係以較佳的發配機制而能夠有效利用兩種運算模組(例如CPU運算模組與GPU運算模組)的硬體效能。
為了達到上述目的,本發明提供一種協同運算裝置,包括一任務發配模組、一第一運算模組、一第二運算模組以及一影像排序模組。任務發配模組係分別接收對應於一第一時序之複數個原始影像圖框以及一負載結果。任務發配模組還根據負載結果將該等原始影像圖框動態分配為第一數量的原始影像圖框以及第二數量的原始影像圖框。第一運算模組係電性連接於該任務發配模組,其係接收該等第一數量的原始影像圖框,並產生第一數量的處理後影像圖框。第二運算模組係電性連接於任務發配模組,其係接收該等第二數量的原始影像圖框,並產生第二數量的處理後影像圖框。影像排序模組係分別電性連接於該任務發配模組、該第一運算模組以及該第二運算模組,其係接收該等第一數量的處理後影像圖框以及該等第二數量的處理後影像圖框,並根據第一時序還原排序該等處理後影像圖框,並產生該負載結果。其中,第一運算模組與第二運算模組為不同類型的運算模組,並且影像排序模組係根據第一運算模組與第二運算模組各自的運算能力或負載狀況而動態決定負載結果。
於一實施例中,其中第一運算模組係為中央處理器(CPU)運算模組,並且第二運算模組係為圖形處理器(GPU)運算模組。
於一實施例中,其中影像排序模組係根據第一運算模組與第二運算模組產生每張處理後影像圖框之所需時間,而判斷第一運算模組與第二運算模組各自的運算能力或負載狀況,據以決定負載結果。
於一實施例中,其中第二數量與第一數量的比例係關聯於第一運算模組與第二運算模組產生每張處理後影像圖框之所需時間之比例。
於一實施例中,協同運算裝置更包括一影像擷取模組及一影像輸出模組。影像擷取模組係電性連接於任務發配模組,其係對於至少一目標物擷取影像並產生該等原始影像圖框。影像輸出模組係電性連接於影像排序模組,其係接收該等還原排序後的處理後影像圖框。
於一實施例中,第一運算模組或第二運算模組係計算目標物之至少一特徵部位之座標位置,並且由影像排序模組將特徵部位之座標位置傳送至任務發配模組。
為了達到上述目的,本發明亦提供一種協同運算方法,包括以下步驟:接收複數個原始影像圖框,該等原始影像圖框對應於一第一時序。接收一負載結果,其表示一第一運算模組與一第二運算模組各自的運算能力或負載狀況,其中第一運算模組與第二運算模組為不同類型的運算模組。根據負載結果將該等原始影像圖框動態分配為第一數量的原始影像圖框以及第二數量的原始影像圖框。將該等第一數量的原始影像圖框分配至第一運算模組,並將該等第二數量的原始影像圖框分配至第二運算模組。由第一運算模組對於該等第一數量的原始影像圖框進行處理,並產生第一數量的處理後影像圖框。由第二運算模組對於該等第二數量的原始影像圖框進行處理,並產生第二數量的處理後影像圖框。根據第一時序還原排序該等第一數量與第二數量的處理後影像圖框。
於一實施例中,其中該負載結果係根據第一運算模組與第二運算模組產生每張處理後影像圖框之所需時間而決定。
於一實施例中,其中第二數量與第一數量的比例係關聯於第一運算模組與第二運算模組產生每張處理後影像圖框之所需時間之比例。
於一實施例中,協同運算方法更包括以下步驟:在
接收複數個原始影像圖框的步驟前,對於至少一目標物擷取影像並計算目標物之至少一特徵部位之座標位置,並回傳特徵部位之座標位置。在還原排序該等第一數量與第二數量的處理後影像圖框的步驟後,將該等還原排序後的處理後影像圖框輸出至其他模組或其他元件。
。於一實施例中,其中目標物之至少一特徵部位之座標位置更被傳送至第一運算模組及/或第二運算模組。
藉由上述之技術方案及實施例,本發明之協同運算裝置及協同運算方法能夠根據前一次運作時第一運算模組(CPU運算模組)及第二運算模組(GPU運算模組)各自的負載狀況,而於下一次運作時動態調整發配給兩個運算模組的影像圖框的數量比例,藉以平衡兩個運算模組的負載,而有效使用兩個運算模組的硬體效能,不致於浪費或閒置硬體資源。
2:協同運算裝置
21:影像擷取模組
22:任務發配模組
23:第一運算模組、CPU運算模組
24:第二運算模組、GPU運算模組
25:影像排序模組
26:影像輸出模組
T1~T7:第一時序
Fo1~Fo7:原始影像圖框
Fc1~Fc3:處理後的影像圖框
Fg1~Fg4:處理後的影像圖框
R1、R2:負載結果
301~307:步驟
〔圖1〕為根據本發明之第一實施例之協同運算裝置之方塊示意圖。
〔圖2〕為根據本發明之第一實施例之影像排序模組進行影像圖框還原排序的示意圖。
〔圖3〕為根據本發明之第二實施例之協同運算方法之流程示意圖。
為了使所屬技術領域中具有通常知識者能瞭解本發明的內容,並可據以實現本發明的內容,茲配合適當實施例及圖式說明如下。
圖1為根據本發明之第一實施例之協同運算裝置2之方塊示意圖。如圖1所示,協同運算裝置2可包括一影像擷取模組21、一任務發配模組22、一第一運算模組23、一第二運算模組24、一影像排序模組25以及一影像輸出模組26。在本實施例中,第一運算模組23係為一CPU運算模組,而第二運算模組24係為一GPU
運算模組,以下並交互參照稱呼之。
影像擷取模組21可以是網路攝影機(WebCAM)或是影像擷取卡,其對於目標物擷取影像,並輸出尚未經過處理的原始影像圖框(Frame)Fo1、Fo2、Fo3...Fo7...。其中,原始影像圖框Fo1、Fo2、Fo3...Fo7的排列順序為第一時序:T1、T2、T3、T4、T5、T6、T7。影像擷取模組21電性連接於任務發配模組22,影像擷取模組21將原始影像圖框Fo1、Fo2、Fo3...Fo7...傳送至任務發配模組22。上述之圖框又可稱為訊框或圖楨。
任務發配模組22係分別電性連接於影像擷取模組21、CPU運算模組23、GPU運算模組24及影像排序模組25。任務發配模組22從影像排序模組25接收前一次運作之負載結果R1,該負載結果R1表示CPU運算模組23與GPU運算模組24於前一次運作中各自的運算負載狀況。任務發配模組22根據負載結果R1決定下一次運作時如何將原始影像圖框Fo1、Fo2、Fo3...Fo7...分配給CPU運算模組23及GPU運算模組24分別進行處理。
值得一提的是,上述的原始影像圖框Fo1、Fo2、Fo3...Fo7...僅為舉例性,其所欲指出的是原始影像圖框是連續的複數個。另外,上述的原始影像圖框Fo1、Fo2、Fo3...Fo7...的符號僅係為了說明便利而使用,並非表示在不同的運作時間是相同的原始影像圖框。
若前一次運作之負載結果R1表示CPU運算模組23處理每張影像圖框的時間Tc較長,而GPU運算模組24處理每張影像圖框的時間Tg較短(換言之,CPU運算模組23處理每張影像圖框的時間Tc大於GPU運算模組24處理每張影像圖框的時間Tg,也就是Tc>Tg),則表示前一次運作時CPU運算模組23的影像運算處理較差,或表示前一次運作時CPU運算模組23的負載過大,而導致其需要較長的處理時間。因應於上述負載結果R1,於下一次運作中,任務發配模組22將發配數量較多的原始影像圖框至GPU運算模組24以減輕CPU運算模組23的負載,以達到CPU運算模組23與GPU運算模組24兩者負載平衡,使得CPU運算模組23與GPU運算模組24
兩者協同運算的效能最佳化。
相反的,若CPU運算模組23處理每張影像圖框的時間Tc小於GPU運算模組24處理每張影像圖框的時間Tg,也就是Tc<Tg,則表示前一次運作時CPU運算模組23的影像運算處理較佳,或表示前一次運作時CPU運算模組23的負載較低,因此僅需要較短的處理時間即可完成影像處理。因應於上述負載結果R1,於下一次運作中,任務發配模組22將發配數量較多的原始影像圖框至CPU運算模組23。
於本發明的第一實施例中,任務發配模組22可依據前一次運作時CPU運算模組23與GPU運算模組24處理每張影像圖框所需的時間的比例,來決定下一次運作時分別發配給CPU運算模組23與GPU運算模組24的影像圖框的數量。
例如,如表1所示,於前一次運作的負載結果R1表示:CPU運算模組23處理三張圖框所需的處理時間為12毫秒,而GPU運算模組24處理五張圖框所需的處理時間為15毫秒。此時,CPU運算模組23與GPU運算模組24處理每張影像圖框所需的時間的比例為12/3:15/5=4:3。因應於上述負載結果R1及處理時間比例,於下一次運作中,任務發配模組22發配給CPU運算模組23與GPU運算模組24的影像圖框的數量比例為3:4。
按照上述的影像圖框數量比例3:4,任務發配模組22把從影像擷取模組21接收到的原始影像圖框Fo1、Fo2、Fo3...Fo7...進行發配。任務發配模組22將第一數量(三張)的影像圖框發配給CPU運算模組23,並將第二數量(四張)的影像圖框發配給GPU運算模組24。於本實施例中,任務發配模組22係以間隔的選擇方
式將三張影像圖框Fo1、Fo3、Fo6發配給CPU運算模組23,並將四張影像圖框Fo2、Fo4、Fo5、Fo7發配給GPU運算模組24。於另一實施例中,任務發配模組22還可以區段選擇的方式將三張影像圖框Fo1、Fo2、Fo3發配給CPU運算模組23,並將四張影像圖框Fo4、Fo5、Fo6、Fo7發配給GPU運算模組24。而再於其他實施例中,任務發配模組22還可以隨機選擇的方式將三張影像圖框Fo1、Fo5、Fo6發配給CPU運算模組23,並將四張影像圖框Fo2、Fo3、Fo4、Fo7發配給GPU運算模組24。換言之,任務發配模組22僅需根據運算所得之影像圖框數量比例而發配影像圖框,而不限於應如何選擇圖框。
而後,CPU運算模組23與GPU運算模組24各自對於所發配的影像圖框進行處理。其中,CPU運算模組23對於原始影像圖框Fo1、Fo3、Fo6進行處理,處理後的影像圖框為Fc1、Fc2、Fc3。CPU運算模組23並將影像圖框Fc1、Fc2、Fc3傳送至影像排序模組25。另一方面,GPU運算模組24對於原始影像圖框Fo2、Fo4、Fo5、Fo7進行處理,處理後的影像圖框為Fg1、Fg2、Fg3、Fg4。GPU運算模組24並將影像圖框Fg1、Fg2、Fg3、Fg4傳送至影像排序模組25。
本發明與習知技術的差異在於:習知技術的CPU運算模組專司處理邏輯(logic)運算處理,GPU運算模組專司處理渲染(render)運算處理。但本發明之CPU運算模組23或GPU運算模組24各自的完全負責整張影像圖框的邏輯運算處理與渲染運算處理。例如:CPU運算模組23完全負責原始影像圖框Fo1、Fo3、Fo6的整張圖框的邏輯運算處理與渲染運算處理,而GPU運算模組24完全負責原始影像圖框Fo2、Fo4、Fo5、Fo7的邏輯運算處理與渲染運算處理。
更特定而言,於一種態樣中,本發明之CPU運算模組23與GPU運算模組24可進行人工智慧(AI)的運算,例如進行影像圖框中的人臉辨識的運算。CPU運算模組23與GPU運算模組24進行人臉辨識後,可定位出人臉的位置或座標,上述位置或座標可回
傳給任務發配模組22以供下一次運作之人臉辨識之參考。例如:下一次運作時,可優先掃描前一次定位出的人臉的位置或座標附近的區域,以節省運算時間。
影像排序模組25分別電性連接於CPU運算模組23、GPU運算模組24、任務發配模組22以及影像輸出模組26。影像排序模組25從CPU運算模組23接收由CPU運算模組23處理過後的影像圖框Fc1、Fc2、Fc3。另一方面,影像排序模組25還從GPU運算模組24接收由GPU運算模組24處理過後的影像圖框Fg1、Fg2、Fg3、Fg4。影像排序模組25根據影像原始排列(原始影像圖框Fo1、Fo2、Fo3...Fo7...的排列順序)將影像圖框Fc1、Fc2、Fc3以及Fg1、Fg2、Fg3、Fg4進行還原排序,詳如下文所述。
圖2為根據本發明之第一實施例之影像排序模組25進行影像圖框還原排序的示意圖。如圖2所示,CPU運算模組23處理過後的影像圖框Fc1、Fc2、Fc3對應至尚未處理前的原始影像圖框Fo1、Fo3、Fo6,因此CPU運算模組23處理過後的影像圖框Fc1、Fc2、Fc3對應的原始順序時間點分別為T1、T3、T6。
另一方面,GPU運算模組24處理過後的影像圖框Fg1、Fg2、Fg3、Fg4對應至尚未處理前的原始影像圖框Fo2、Fo4、Fo5、Fo7,因此GPU運算模組24處理過後的影像圖框Fg1、Fg2、Fg3、Fg4對應的原始順序時間點分別為T2、T4、T5、T7。
依照原始影像圖框的排列順序(即第一時序:T1、T2、T3、T4、T5、T6、T7),影像排序模組25將處理過後的影像圖框Fc1、Fc2、Fc3以及Fg1、Fg2、Fg3、Fg4還原時序為Fc1、Fg1、Fc2、Fg2、Fg3、Fc3、Fg4。最後,如圖1所示,影像排序模組25將還原時序後的影像圖框Fc1、Fg1、Fc2、Fg2、Fg3、Fc3、Fg4傳送至影像輸出模組26。
此外,影像排序模組25根據本次運作時CPU運算模組23以及GPU運算模組24的每張影像圖框處理時間而判斷CPU運算模組23以及GPU運算模組24於本次運作時的處理能力、處理速度或負載狀況,並將上述結果以負載結果R2表示之。影像排序模
組25再將本次運作的負載結果R2回饋至任務發配模組22,使任務發配模組22根據負載結果R2而配發下一次運作時CPU運算模組23以及GPU運算模組24分別應負責處理的影像圖框。
此外,影像排序模組25亦紀錄本次運作時CPU運算模組23以及GPU運算模組24於各張影像圖框中所定位的人臉位置,並由影像排序模組25將該定位的人臉位置的結果回饋至任務發配模組22。於下一次運作時,任務發配模組22將該定位的人臉位置的結果傳送至CPU運算模組23以及GPU運算模組24以供參考,使CPU運算模組23以及GPU運算模組24於執行下一次運作之AI辨識演算法時優先掃描前一次定位的人臉位置之座標附近的區域。
圖3為根據本發明之第二實施例之協同運算方法之流程示意圖。如圖3所示,第二實施例之協同運算方法包括步驟301至步驟307。以下敘述則請同時搭配參閱圖1至圖3。
首先,於步驟301中,對於至少一目標物擷取其影像,該目標物例如為一個人,其包括特徵部位(例如:人臉的部位)。並且依據第一時序(例如時間點T1、T2、T3、T4、T5、T6、T7之時序)輸出各時間點對應之原始影像圖框Fo1、Fo2、Fo3...Fo7。步驟301可由第一實施例之影像擷取模組21執行。
接著,於步驟302中,接收前一次運作時的負載結果R1,並根據負載結果R1將原始影像圖框Fo1、Fo2、Fo3...Fo7發配至第一運算模組(CPU運算模組23)或第二運算模組(GPU運算模組24)。例如:前一次運作時的負載結果R1如前述之表1所示,CPU運算模組23處理3張圖框所需的處理時間為12毫秒,而GPU運算模組24處理5張圖框所需的處理時間為15毫秒;則CPU運算模組23與GPU運算模組24處理每張影像圖框所需的時間的比例為12/3:15/5=4:3。則於下一次運作中,任務發配模組22發配給CPU運算模組23與GPU運算模組24的影像圖框的數量比例為3:4。因此,將第一數量(三張)的影像圖框Fo1、Fo3、Fo6發配給CPU運算模組23,並將第二數量(四張)的影像圖框Fo2、Fo4、Fo5、Fo7發配給GPU
運算模組25。
接著,於步驟303中,對於發配後的第一數量的原始影像圖框Fo1、Fo3、Fo6進行處理,例如進行邏輯運算以及渲染運算;上述運算可由CPU運算模組23執行。處理後的影像圖框為Fc1、Fc2、Fc3,其被傳送至影像排序模組。
接著(或與步驟303同時進行),於步驟304中,係由GPU運算模組24對於發配後的第二數量的原始影像圖框Fo2、Fo4、Fo5、Fo7進行處理,例如進行邏輯運算以及渲染運算。處理後的影像圖框為Fg1、Fg2、Fg3、Fg4,其係被傳送至影像排序模組25。
接著,於步驟305中,對於所接收的經過處理後的影像圖框Fc1、Fc2、Fc3以及Fg1、Fg2、Fg3、Fg4進行還原排序。例如:同時參考圖2所示,步驟301所輸出的原始影像圖框Fo1、Fo2、Fo3...Fo7其各自對應的時間點為第一時序:T1、T2、T3、T4、T5、T6、T7。因此,根據上述之第一時序之各時間點T1、T2...T7的先後順序,將經過處理後的影像圖框Fc1、Fc2、Fc3以及Fg1、Fg2、Fg3、Fg4進行還原排序,而得到圖2所示之還原後影像圖框排序:Fc1、Fg1、Fc2、Fg2、Fg3、Fc3、Fg4。步驟305可由第一實施例之影像排序模組25執行。
接著(或與步驟305同時進行),於步驟306中,可根據接收到的影像圖框Fc1、Fc2、Fc3以及Fg1、Fg2、Fg3、Fg4的圖框數量及時序分布,來判斷本次運作中CPU運算模組23及GPU運算模組24各自的運算能力或負載狀況。上述的判斷結果以負載結果R1表示,並且負載結果R1將被回傳至任務發配模組22。而任務發配模組22再根據負載結果R1於下一次運作中動態發配不同數量的影像圖框至CPU運算模組23與GPU運算模組24。
最後,於步驟307中,將還原排序後的影像圖框Fc1、Fg1、Fc2、Fg2、Fg3、Fc3、Fg4輸出,以進行後續的影像處理。例如,將影像圖框Fc1、Fg1、Fc2、Fg2、Fg3、Fc3、Fg4輸出至第一實施例之影像輸出模組26。。
根據上述之第一實施例之協同運算裝置2之運作以及第二實施例之協同運算方法之各步驟,本發明可根據前一次運作時第一運算模組(CPU運算模組23)及第二運算模組(GPU運算模組24)各自的運算能力或負載狀況,而即時的動態調整分別發配至第一運算模組及第二運算模組的影像圖框數量,使得本發明之第一運算模組及第二運算模組能相互平衡各自的運算負載,不致於讓單一運算模組過度負載,而讓另一運算模組過度閒置,使整體協同運算裝置能夠達到最佳運算效能,此為本發明所達成之技術功效。
上述之實施例僅用來例舉本發明之實施態樣,以及闡釋本發明之技術特徵,並非用來限制本發明之保護範疇。任何熟悉此技術者可輕易完成之改變或均等性之安排均屬於本發明所主張之範圍,本發明之權利保護範圍應以申請專利範圍為準。
2:協同運算裝置
21:影像擷取模組
22:任務發配模組
23:CPU運算模組
24:GPU運算模組
25:影像排序模組
26:影像輸出模組
T1~T7:第一時序
Fo1~Fo7:原始影像圖框
Fc1~Fc3:處理後的影像圖框
Fg1~Fg4:處理後的影像圖框
R1、R2:負載結果
Claims (12)
- 一種協同運算裝置,包括:一任務發配模組,係分別接收對應於一第一時序之複數個原始影像圖框以及一負載結果,並根據該負載結果將該等原始影像圖框動態分配為第一數量的原始影像圖框以及第二數量的原始影像圖框;一第一運算模組,係電性連接於該任務發配模組,並接收該等第一數量的原始影像圖框,而據以產生第一數量的處理後影像圖框;一第二運算模組,係電性連接於該任務發配模組,並接收該等第二數量的原始影像圖框,而據以產生第二數量的處理後影像圖框;以及一影像排序模組,係電性連接於該任務發配模組、該第一運算模組以及該第二運算模組,係接收該等第一數量的處理後影像圖框以及該等第二數量的處理後影像圖框,並根據該第一時序還原排序該等處理後影像圖框,並產生該負載結果,其中,該第一運算模組與該第二運算模組為不同類型的運算模組,並且該影像排序模組係根據該第一運算模組與該第二運算模組各自的運算能力或負載狀況而動態決定該負載結果。
- 如請求項1之協同運算裝置,其中該第一運算模組係為中央處理器運算模組,並且該第二運算模組係為圖形處理器運算模組。
- 如請求項1之協同運算裝置,其中該影像排序模組係根據該第一運算模組與該第二運算模組產生每張處理後影像圖框之所需時間,而判斷該第一運算模組與該第二運算模組各自的運算能力或負載狀況,據以決定該負載結果。
- 如請求項3之協同運算裝置,其中該第二數量與該第一數量的比例係關聯於該第一運算模組與該第二運算模組產生每張處理後影像圖框之所需時間之比例。
- 如請求項1之協同運算裝置,更包括:一影像擷取模組,係電性連接於該任務發配模組,係對於至少一目標物擷取影像並產生該等原始影像圖框;以及一影像輸出模組,係電性連接於該影像排序模組,係接收該等還原排序後的處理後影像圖框。
- 如請求項1之協同運算裝置,其中,該第一運算模組及/或該第二運算模組係計算該目標物之至少一特徵部位之座標位置,並且該影像排序模組將該特徵部位之座標位置傳送至該任務發配模組。
- 一種協同運算方法,包括以下步驟:接收複數個原始影像圖框,該等原始影像圖框對應於一第一時序;接收一負載結果,該負載結果表示一第一運算模組與一第二運算模組各自的運算能力或負載狀況,其中該第一運算模組與該第二運算模組為不同類型的運算模組;根據該負載結果將該等原始影像圖框動態分配為第一數量的原始影像圖框以及第二數量的原始影像圖框;將該等第一數量的原始影像圖框分配至該第一運算模組,並將該等第二數量的原始影像圖框分配至該第二運算模組;由該第一運算模組對於該等第一數量的原始影像圖框進行處理,並產生第一數量的處理後影像圖框;由該第二運算模組對於該等第二數量的原始影像圖框進行處理,並產生第二數量的處理後影像圖框,以及根據該第一時序還原排序該等第一數量與第二數量的處理後影像圖框。
- 如請求項7之種協同運算方法,其中該第一運算模組係為中央處理器運算模組,而該第二運算模組係為圖形處理器運算模組。
- 如請求項7之種協同運算方法,其中該負載結果係根據該第一運算模組與該第二運算模組產生每張處理後影像圖框之所需時間而決定。
- 如請求項9之種協同運算方法,其中該第二數量與該第一數量的比例係關聯於該第一運算模組與該第二運算模組產生每張處理後影像圖框之所需時間之比例。
- 如請求項7之協同運算方法,更包括以下步驟:在接收複數個原始影像圖框的步驟前,對於至少一目標物擷取影像並計算該目標物之至少一特徵部位之座標位置,並回傳該特徵部位之座標位置;以及在還原排序該等第一數量與第二數量的處理後影像圖框的步驟後,將該等還原排序後的處理後影像圖框輸出至其他模組或其他元件。
- 如請求項11之協同運算方法,其中該目標物之至少一特徵部位之座標位置更被傳送至該第一運算模組及/或該第二運算模組。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109138791A TW202219760A (zh) | 2020-11-06 | 2020-11-06 | 協同運算裝置及其協同運算方法 |
JP2021176559A JP2022075565A (ja) | 2020-11-06 | 2021-10-28 | 協調演算装置および協調演算方法 |
US17/517,728 US12026543B2 (en) | 2020-11-06 | 2021-11-03 | Cooperative computing device and cooperative computing method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109138791A TW202219760A (zh) | 2020-11-06 | 2020-11-06 | 協同運算裝置及其協同運算方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202219760A true TW202219760A (zh) | 2022-05-16 |
Family
ID=81454466
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109138791A TW202219760A (zh) | 2020-11-06 | 2020-11-06 | 協同運算裝置及其協同運算方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US12026543B2 (zh) |
JP (1) | JP2022075565A (zh) |
TW (1) | TW202219760A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116627746A (zh) * | 2023-07-21 | 2023-08-22 | 四川华鲲振宇智能科技有限责任公司 | 一种gpu服务器的测试设备及方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117009089B (zh) * | 2023-09-28 | 2023-12-12 | 南京庆文信息科技有限公司 | 基于分布式计算与uwb定位的机器人集群监督管理系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104765886A (zh) * | 2015-04-29 | 2015-07-08 | 百度在线网络技术(北京)有限公司 | 一种基于图像的信息获取方法和装置 |
US10229470B2 (en) * | 2016-08-05 | 2019-03-12 | Intel IP Corporation | Mechanism to accelerate graphics workloads in a multi-core computing architecture |
US10467056B2 (en) * | 2017-05-12 | 2019-11-05 | Google Llc | Configuration of application software on multi-core image processor |
US10475150B2 (en) * | 2017-09-29 | 2019-11-12 | Intel Corporation | GPU minimum latency dispatch for short-duration tasks |
-
2020
- 2020-11-06 TW TW109138791A patent/TW202219760A/zh unknown
-
2021
- 2021-10-28 JP JP2021176559A patent/JP2022075565A/ja active Pending
- 2021-11-03 US US17/517,728 patent/US12026543B2/en active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116627746A (zh) * | 2023-07-21 | 2023-08-22 | 四川华鲲振宇智能科技有限责任公司 | 一种gpu服务器的测试设备及方法 |
CN116627746B (zh) * | 2023-07-21 | 2023-09-15 | 四川华鲲振宇智能科技有限责任公司 | 一种gpu服务器的测试设备及方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2022075565A (ja) | 2022-05-18 |
US12026543B2 (en) | 2024-07-02 |
US20220147383A1 (en) | 2022-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW202219760A (zh) | 協同運算裝置及其協同運算方法 | |
CN109409513B (zh) | 一种基于神经网络的任务处理方法及相关设备 | |
WO2020026157A2 (zh) | 加速人工智能处理器的硬件架构 | |
JP2007179563A (ja) | グラフィックス処理の最適化方法 | |
US20090135190A1 (en) | Multimode parallel graphics rendering systems and methods supporting task-object division | |
CN110569312B (zh) | 一种基于gpu的大数据快速检索系统及其使用方法 | |
US11875426B2 (en) | Graph sampling and random walk acceleration method and system on GPU | |
CN105573850A (zh) | 多进程交互方法、系统和服务器 | |
CN111506434A (zh) | 一种任务处理方法、装置及计算机可读存储介质 | |
WO2020026159A2 (zh) | 用于人工智能设备的灵活数据流处理器和处理方法 | |
WO2022198713A1 (zh) | 基于图形处理器的图采样和随机游走加速方法及系统 | |
WO2021128835A1 (zh) | 图像处理方法及装置、视频处理方法及装置、电子设备和存储介质 | |
CN106934354A (zh) | 一种fpga实现人脸检测的方法 | |
WO2022011841A1 (zh) | Gpgpu中簇的实现方法、装置、终端及介质 | |
CN117608814A (zh) | 用于大规模联邦学习任务的多任务联邦学习方法与系统 | |
CN110796244B (zh) | 用于人工智能设备的核心计算单元处理器及加速处理方法 | |
CN115391053B (zh) | 基于cpu和gpu混合计算的在线服务方法及装置 | |
CN101221657A (zh) | 一种图像缩放处理方法和装置 | |
Jiang et al. | A distributed dynamic parallel algorithm for SIFT feature extraction | |
Yelmanov et al. | A new image enhancement technique based on adaptive non-linear contrast stretching | |
Zhang et al. | An FPGA-accelerated ultra-high-speed stereo rectification for event-based camera | |
CN111787185A (zh) | 一种vpu平台下的多路摄像头数据实时处理的方法 | |
CN111274049A (zh) | 一种基于异构并行加速的高效多路视频分析方法 | |
Cheng et al. | A multi-purpose visual image processing system based on vision chip | |
Dong et al. | EdgeCam: A Distributed Camera Operating System for Inference Scheduling and Continuous Learning |