CZ2017492A3 - Způsob dynamického rozdělování výpočetních procesů jednomu či více grafickým procesorům - Google Patents

Způsob dynamického rozdělování výpočetních procesů jednomu či více grafickým procesorům Download PDF

Info

Publication number
CZ2017492A3
CZ2017492A3 CZ2017-492A CZ2017492A CZ2017492A3 CZ 2017492 A3 CZ2017492 A3 CZ 2017492A3 CZ 2017492 A CZ2017492 A CZ 2017492A CZ 2017492 A3 CZ2017492 A3 CZ 2017492A3
Authority
CZ
Czechia
Prior art keywords
neural network
graphics processors
processes
dynamically allocating
neural networks
Prior art date
Application number
CZ2017-492A
Other languages
English (en)
Other versions
CZ307563B6 (cs
Inventor
Martin Brázdil
Jaromír Tejkl
Vladimír Mařík
Original Assignee
Certicon A.S.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Certicon A.S. filed Critical Certicon A.S.
Priority to CZ2017-492A priority Critical patent/CZ307563B6/cs
Publication of CZ2017492A3 publication Critical patent/CZ2017492A3/cs
Publication of CZ307563B6 publication Critical patent/CZ307563B6/cs

Links

Landscapes

  • Image Analysis (AREA)

Abstract

GPU manažer je rozvrhovač založený na diskrétním multikriteriálním optimalizačním algoritmu, který zajišťuje optimální rozvržení neuronových sítí (03) na jednotlivých grafických procesorech (09). Rozvrhuje, na kterých grafických procesorech (09) neuronové sítě (03) poběží a zda poběží více kopií, s cílem maximalizovat počet zpracovaných snímků za časovou jednotku. Za tímto účelem využívá principy plynoucí z asynchronního a paralelního zpracovávání dat. Dále zajišťuje komunikaci mezi detektory proxy (02) s proudem obrázků a instancemi neuronových sítí (03), tj. start, ukončení, změny v konfiguraci a párování.

Description

Způsob dynamického rozdělování výpočetních procesů jednomu či více grafickým procesorům
Oblast techniky
Popsaný vynález se týká počítačové analýzy video záznamu z bezpečnostních kamer v reálném čase, založené na dynamickém rozdělování jednotlivých výpočetních procesů jedné či více grafickým kartám. Vynález umožňuje sémantickou analýzu (detekci objektů) jednoho či více proudů obrázků v reálném čase na jednom či více počítačích použitím jedné či více konvolučních neuronových sítí implementovaných ve frameworku Caffe, běžících na jednom či více grafických procesorech.
Dosavadní stav techniky
V současné době je pořizováno velké množství video záznamů z bezpečnostních a jiných kamer. Data z nich jsou ve většině případů používána off-line pro případné dohledání dějů, které byly v minulosti zaznamenány. Pro on-line zpracovávání jsou využívána dohledová centra, kde je k analýze video sekvencí využívána lidská síla.
Problémem sémantické analýzy (detekce objektů) a zpracováním proudu obrázků se zabývá velké množství patentů. Například:
•TW201605239 (A) - Video analysis method and video analysis apparatus (TOP GUIDE INTERNÁT CORP) • KR20150086723 (A) - IMAGE RECODING SYSTEM (SAMSUNG TECHWIN CO LTD) • EP1955205 (Bl) - METHOD AND SYSTEM FOR PRODUCING A VIDEO SYNOPSIS (BRIEFCAM LTD) • CN104391867 (A) - Mass video searching systém based on video synopsis (FUJIAN YIRONG INFORMATION TECHNOLOGY CO LTD) • US2017133053 (Al) - SYSTEMS AND METHODS FOR VIDEO SYNOPSES (FLIR SYSTEMS • US2013308921 (Al) - CREATING VIDEO SYNOPSIS FOR USE IN PLAYBACK (YAHOO INC) • KR101459103 (Bl) - METHOD FOR VIDEO MONITORING USING VIDEO SURVEILLANCE SYSTÉM (DYNAMAX CO LTD)
V případě, že jsou výše uvedené metody využívány k on-line analýze obrazového záznamu, je ve většině případů potřeba pro každou bezpečnostní kameru jedno jádro procesoru, resp. grafického koprocesoru, což komplikuje širší rozšíření on-line analýzy z většího množství kamer.
Základní problém je, jakým způsobem dynamicky rozvrhnout neuronové sítě na grafické procesory za účelem maximalizace množství zpracovaných obrázků. Zpracováním obrázku se myslí dopředný průchod (inference) neuronovou sítí, kdy na vstupuje daný obrázek a na výstupu jsou detekované objekty (tj. vyznačená lokace objektu, příslušnost do jedné z určených kategorií).
Podstata vynálezu
Podstata vynálezu spočívá na myšlence, že je možno na základě znalosti vytížení jednotlivých grafických procesorů na základě požadavku na neuronovou síť automatizovaně rozhodnout zda dojde ke spuštění nové sítě nebo k párování s již existující neuronovou sítí.
- 1 CZ 2017 - 492 A3
Technické řešení je postaveno na diskrétním multikriteriálním optimalizačním algoritmu, který je implementován dynamickým programováním a vždy nalezne optimální řešení, to znamená, schéma s maximálně vyváženým počtem instancí neuronových sítí na grafických procesorech, kterého lze dosáhnout minimálním počtem změn ve stávajícím rozvržení.
Vstupem do algoritmu rozvrhovače je počet grafických procesorů, počet neuronových sítí a jejich paměťových nároků. Algoritmus neustále prochází strom všech kombinací rozložení neuronových sítí na jednotlivých grafických procesorech. Prohledávaný strom je prořezán o kombinace, které nevyhovují paměťovým nárokům. Prvním minimalizačním kritériem je součet absolutních hodnot rozdílů ve vážených počtech instancí neuronových sítí podle jejich konfigurace. Druhým minimalizačním kritériem použitým při shodě s prvním kritériem je počet změn nutných k dosažení stavu daného prvním kritériem. Nej lepší dosud nalezená konfigurace je udržována v paměti rozvrhovače. Nejlepší nalezené hodnoty v každém podstromu jsou memoizovány. Algoritmus je invariantní k permutacím rozložení pro jednotlivé grafické procesory (nezáleží na pořadí grafických procesorů).
Objasněni výkresů
Technické řešení a jeho funkce jsou blíže popsány na připojených výkresech:
- Obr. 1 znázorňuje základní popis požadavků na přiřazení neuronové sítě
- Obr. 2 znázorňuje roli GPU manažera při rozdělování výpočetních úkolů jednotlivým grafickým procesorům
- Obr. 3 znázorňuje rozhodovací strom GPU manažera
Příklady uskutečněni vynálezu
Základní stavební jednotkou celého procesu sémantické analýzy (detekce objektů) je interakce dvou procesů, jimiž jsou detektor proxy 02 a neuronová síť 03. Detektor proxy 02 na vstupu přijímá obrázek, který pošle síťovou či mezi procesovou komunikací 04 neuronové síti 03, která ho zpracuje použitím interference specifikované v zaslané konfigurací a opět síťovou či mezi procesovou komunikací 04 pošle detekované objekty zpět.
Pár detektor proxy-neuronová síť vzniká žádostí o vytvoření neuronové sítě od detektor proxy 02 zaslanou procesu GPU manažer 01. Žádost 05 obsahuje konfigurační soubor popisující požadovanou neuronovou síť, přičemž GPU manažer rozhodne, zda dojde ke spuštění nové sítě nebo k párování s již existující neuronovou sítí 03.
Kardinalita propojení je N:l, čili detektor proxy 02 může být spárován pouze s jednou neuronovou sítí 03, avšak jedna neuronová síť 03 může být spárována s více detektory proxy 02. GPU manažer 01 udržuje záznamy o párování 10, jimiž jsou komunikační rozhraní obou procesů, identifikátor procesu a konfigurace neuronové sítě a grafické karty 09, na které neuronová síť provádí inferenci.
Na vstupu každé neuronové sítě je dávkovač JJ_. Pokud je k neuronové síti připojen víc než jeden detektor proxy, potom jsou všechny požadavky na zpracování obrázků asynchronně ukládány do vyrovnávací paměti 12. Vždy, když neuronová síť zpracuje všechny aktuální dávky obrázků, tak si z vyrovnávací paměti vybere další nashromážděné požadavky, rozdělí je na dávky (až do) předem dané velikosti a začne je zpracovávat.
-2CZ 2017 - 492 A3
Zrušení párování iniciuje detektor proxy 02 požadavkem zaslaným GPU manažeru 01. GPU manažer 01 zruší záznam o páru a v případě, že zanikne poslední pár s danou neuronovou sítí, tak GPU manažer 01 zavře příslušnou neuronovou síť 03.
Rozvrhování jednotlivých neuronových sítí 03 na grafické procesory provádí GPU manažer 01. Úkolem GPU manažera 01 je, aby všechny běžící neuronové sítě 03 konzumovaly obdobné vážené množství výpočetních zdrojů poskytovaných grafickými procesory 09. Další podmínkou pro práci GPU manažera 01 je minimalizace celkového počtu provedených změn (vytváření a ukončování neuronových sítí).
Detektor proxy 02 může být v rámci jednoho procesu agregován do ensemblů 06. V ensemblů 06 koexistují detektory 02 s různými i stejnými konfiguracemi (duplikované detektory 07). Požadavek na zpracování obrázku je zaslán všem různě konfigurovaným detektorům 02 najednou a detekce jsou sjednoceny. Naopak z duplikovaných detektorů 07 je pro každý obrázek zaslán požadavek pouze jednomu.
Duplikovaný detektor 07 je pro každý obrázek vybrán iterativně cyklicky s volitelným odstupem mezi duplikovaným detektorem, kterému se pošle požadavek na zpracování a duplikovaným detektorem 07, kterému se pošle požadavek na výsledek. Mějme d počet detektorů, s velikost odstupu, i pořadové číslo obrázku, potom požadavek na zpracování obrázku obdrží detektor i (mod d) a požadavek na výsledek detektor i-n (mod d).
Jak se detektor 02 zachová k požadavku na zpracování či výsledek se odvíjí od parametru frameskip. Parametr frameskip udává maximální možný počet požadavků na výsledek, které je možno ignorovat, pokud výsledek ještě není k dispozici. Pokud čítač ignorovaných požadavků na výsledek dosáhne hodnoty frameskip, vynutí se čekání na výsledek. Požadavek na zpracování je ignorován, pokud není zpracovaný předchozí požadavek. Výsledky z detektorů proxy 02 jsou řazeny dle časového pořadí příslušných požadavků na zpracování.
Pokud je požadavek na výsledek přeskočen v důsledku parametru frameskip, tak dojde k nahrazení chybějícího výsledku extrapolací výsledků detektorů proxy 02 z minulých kroků. Párování výsledků z jednotlivých kroků a následná extrapolace jsou modelovány Markovským procesem založeným na dynamice systému (pohybových zákonech).
Obrázek 3 popisuje rozhodovací algoritmus rozvrhovače. Vstupem do algoritmu rozvrhovače je počet grafických karet, počet neuronových sítí a jejich paměťových nároků. Algoritmus neustále prochází strom všech kombinací rozložení neuronových sítí po grafických kartách. Prohledávaný strom je prořezán o kombinace, které nevyhovují paměťovým nárokům. Algoritmus používá dvě minimalizační kritéria: (1) součet absolutních hodnot rozdílů ve vážených počtech instancí neuronových sítí dle konfigurace a (2) počet změn nutných k dosažení stavu daného prvním kritériem. Nej lepší nalezené hodnoty v každém podstromu jsou memoizovány.
Vyvažování (váhový koeficient) počtu instancí neuronových sítí se odvíjí od rychlosti inference neuronové sítě na grafické kartě, počtu požadavků na zpracování obrázku za časovou konstantu pro danou instanci neuronové sítě a přítomnosti dalších instancí neuronových sítí na grafické kartě. Mějme s rychlost inference, p počet požadavků, potom lze pro každý pár grafická kartaneuronová síť spočítat váhový koeficient
SiPi
Wi = ----, kde indexy j jdou přes všechny instance neuronových sítí na stejné grafické kartě jako i, vyjma samotné i.
-3CZ 2017 - 492 A3
Průmyslová využitelnost
Předložené technické řešení se uplatní zejména v oblasti automatizovaného zpracování záznamu z bezpečnostních kamer v reálném čase. Automatizovaná analýza video obrazu z velkého množství bezpečnostních kamer v reálném čase umožní předcházet nežádoucímu chování, případně teroristickým činům.

Claims (5)

  1. PATENTOVÉ NÁROKY
    1. Způsob dynamického rozdělení výpočetních procesů jednomu či více grafickým procesorům, vyznačující se tím, že rozvrhovač, nazývaný GPU manažer, jehož vstupem je počet grafických procesorů (09), počet neuronových sítí (03) a jejich paměťových nároků, pomocí diskrétního multikriteriálního optimalizačního algoritmu vždy nalezne optimální řešení, které představuje schéma s maximálně vyváženým počtem instancí neuronových sítí (03) na jednotlivých grafických procesorech (09), a kterého je dosáhnuto minimálním počtem změn ve stávajícím rozvržení neuronových sítí (03) na jednotlivých grafických procesorech (09).
  2. 2. Způsob dynamického rozdělení výpočetních procesů jednomu či více grafickým procesorům podle nároku 1, vyznačující se tím, že strom všech kombinací rozložení neuronových sítí (03) na jednotlivých grafických procesorech je prořezán o kombinace, které nevyhovují paměťovým nárokům podle dvou minimalizačních kritérií, které představují součet absolutních hodnot rozdílů ve vážených počtech instancí procesu neuronová síť (03) a počet změn, nutných k dosažení stavu, daného prvním kritériem.
  3. 3. Způsob dynamického rozdělování výpočetních procesů jednomu či více grafickým procesorům podle nároku 2, vyznačující se tím, že na základě žádosti (05) obsahující konfigurační soubor popisující požadovanou neuronovou síť (03), je rozhodnuto, zda dojde ke spuštění nového nebo k párování již existujícího procesu neuronová síť.
  4. 4. Způsob dynamického rozdělování výpočetních procesů jednomu či více grafickým procesorům podle nároku 1, vyznačující se tím, že jsou trvale udržovány záznamy o párování, jimiž jsou komunikační rozhraní obou procesů, identifikátor procesu a konfigurace neuronové sítě (03) a grafický procesor (09), na které neuronová síť (03) provádí inferenci.
  5. 5. Způsob dynamického rozdělení výpočetních procesů jednomu či více grafickým procesorům podle nároku 2, vyznačující se tím, že obsahuje automatický čisticí mechanizmus, zajišťující, aby strom neobsahoval žádnou instanci neuronové sítě (03), která netvoří pár s běžícími procesy.
CZ2017-492A 2017-08-25 2017-08-25 Způsob dynamického rozdělování výpočetních procesů jednomu či více grafickým procesorům CZ307563B6 (cs)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CZ2017-492A CZ307563B6 (cs) 2017-08-25 2017-08-25 Způsob dynamického rozdělování výpočetních procesů jednomu či více grafickým procesorům

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CZ2017-492A CZ307563B6 (cs) 2017-08-25 2017-08-25 Způsob dynamického rozdělování výpočetních procesů jednomu či více grafickým procesorům

Publications (2)

Publication Number Publication Date
CZ2017492A3 true CZ2017492A3 (cs) 2018-12-05
CZ307563B6 CZ307563B6 (cs) 2018-12-05

Family

ID=64456572

Family Applications (1)

Application Number Title Priority Date Filing Date
CZ2017-492A CZ307563B6 (cs) 2017-08-25 2017-08-25 Způsob dynamického rozdělování výpočetních procesů jednomu či více grafickým procesorům

Country Status (1)

Country Link
CZ (1) CZ307563B6 (cs)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101254181B1 (ko) * 2012-12-13 2013-04-19 위아코퍼레이션 주식회사 하이브리드 방식의 영상 데이터 전처리 기법 및 방사형 기저함수 기반 신경회로망을 이용한 얼굴 인식 방법
US10719939B2 (en) * 2014-10-31 2020-07-21 Fyusion, Inc. Real-time mobile device capture and generation of AR/VR content
CN106056102A (zh) * 2016-07-01 2016-10-26 哈尔滨工业大学 基于视频图像分析的道路车型分类方法
CN106407915A (zh) * 2016-08-31 2017-02-15 广州精点计算机科技有限公司 一种基于svm的人脸特征识别方法及装置

Also Published As

Publication number Publication date
CZ307563B6 (cs) 2018-12-05

Similar Documents

Publication Publication Date Title
Ali et al. RES: Real-time video stream analytics using edge enhanced clouds
US7697026B2 (en) Pipeline architecture for analyzing multiple video streams
Evangelio et al. Adaptively splitted GMM with feedback improvement for the task of background subtraction
US20160275642A1 (en) Video analysis and post processing of multiple video streams
CN113361603A (zh) 训练方法、类别识别方法、装置、电子设备以及存储介质
CN116760884B (zh) 一种海洋大数据云服务系统与应用方法
JP2023542469A (ja) キーポイント検出に基づくコンピュータによる自動化された相互作用活動認識
JP2022547595A (ja) 顔属性認識方法、装置、電子機器及び記憶媒体
CN113762906B (zh) 任务周期延迟的告警方法、装置、设备及存储介质
US20060062430A1 (en) Feed-customized processing of multiple video streams in a pipeline architecture
CN117389742B (zh) 一种用于机器视觉的边缘计算方法、装置及存储介质
JP2023550776A (ja) 自己最適化ビデオ分析パイプライン
KR20190088087A (ko) 움직임 정보를 이용한 인공지능 학습기반의 이동객체 영상 분류처리 방법
CN117540321A (zh) 一种数据服务监测系统
US7139784B2 (en) Dead timestamp identification and elimination
Kumar et al. Association learning based hybrid model for cloud workload prediction
CN113792680A (zh) 基于图像融合的行为识别方法、装置、电子设备及介质
CN113487247A (zh) 数字化生产管理系统、视频处理方法、设备及存储介质
Mendieta et al. A novel application/infrastructure co-design approach for real-time edge video analytics
Kim et al. Towards the design of a system and a workflow model for medical big data processing in the hybrid cloud
US10693736B2 (en) Real time simulation monitoring
JP6692736B2 (ja) 映像監視システム、映像監視システムの制御方法および映像監視装置
KR20190041707A (ko) Gpu를 사용한 실시간 빅 데이터 스트림 처리 장치 및 방법
US7672370B1 (en) Deep frame analysis of multiple video streams in a pipeline architecture
CZ2017492A3 (cs) Způsob dynamického rozdělování výpočetních procesů jednomu či více grafickým procesorům