OpenVINO? 發(fā)布三年半來(lái)最大升級(jí)!全新版本已開(kāi)放下載
冬奧落幕,競(jìng)技魅力仍霸屏,
本文引用地址:http://m.butianyuan.cn/article/202204/433080.htm14年過(guò)去,我們不再向世界解釋“我是誰(shuí)”!
每次回想,Nono仍感到心潮澎湃
感慨之余,相信細(xì)心的小伙伴已經(jīng)發(fā)現(xiàn),
在欣賞這場(chǎng)精彩絕倫的冰雪盛會(huì)之際,
OpenVINO也推出了全新版本,
進(jìn)一步賦能開(kāi)發(fā)者一起向未來(lái),
這也是OpenVINO最近三年半以來(lái)的最大升級(jí)!
是虛張聲勢(shì)還是全新升級(jí)?
這就讓小Nono帶大家來(lái)看看,
新版本都有哪些驚喜吧!
亮點(diǎn)
全新版本
長(zhǎng)期以來(lái),OpenVINO始終未曾停止創(chuàng)新的步伐,不斷更新迭代,系統(tǒng)功能也日益強(qiáng)大和豐富。
在此次全新升級(jí)的版本中,OpenVINO在構(gòu)建階段,通過(guò)更方便、簡(jiǎn)潔的API獲得了生產(chǎn)效率的提高;在優(yōu)化階段,OpenVINO支持了更廣泛的模型,顯著提高了兼容性;在部署階段,OpenVINO通過(guò)自動(dòng)優(yōu)化部署,實(shí)現(xiàn)了性能提升。接下來(lái),讓我們從構(gòu)建、優(yōu)化、部署三個(gè)階段,進(jìn)一步了解OpenVINO的諸多亮點(diǎn)吧!
一、構(gòu)建:更簡(jiǎn)潔、方便的API
01更多的預(yù)訓(xùn)練模型
簡(jiǎn)約不減配,這才是更經(jīng)濟(jì)、更高效能的升級(jí)。此次全新版本的OpenVINO對(duì)框架轉(zhuǎn)換、降低復(fù)雜性的同時(shí),還能支持哪些呢?小孩子才做選擇,Nono當(dāng)然是全都要。
新版本包含18個(gè)Intel預(yù)訓(xùn)練模型和15 Public預(yù)訓(xùn)練模型,Intel預(yù)訓(xùn)練模型將提供不同精度的IR格式模型,開(kāi)發(fā)者可以直接通過(guò)OpenVINO API進(jìn)行部署;Public預(yù)訓(xùn)練模型來(lái)源于第三方框架訓(xùn)練得到的模型文件,開(kāi)發(fā)者可以通過(guò)converter.py工具,將模型輕松轉(zhuǎn)化為IR格式表達(dá)式,再進(jìn)行部署。這么豐富的預(yù)訓(xùn)練模型,你心動(dòng)了嗎?
02更簡(jiǎn)化的依賴庫(kù)管理
眾所周知,系統(tǒng)功能越豐富,需要的依賴庫(kù)就越多,當(dāng)依賴庫(kù)發(fā)生改變時(shí),很容易“牽一發(fā)而動(dòng)全身”,讓系統(tǒng)為之焦灼,擔(dān)心殃及池魚(yú)。
此次全新版本的OpenVINO更進(jìn)一步減少了OpenVINO依賴庫(kù)的數(shù)量,最突出的則是將Inference Engine與nGraph等與runtime相關(guān)的依賴庫(kù)全部集成到了OpenVINO Runtime這一個(gè)庫(kù)中,顯著降低了對(duì)不同庫(kù)之間的依賴。開(kāi)發(fā)者可以根據(jù)自己使用的硬件設(shè)備,部署環(huán)境與功能需求,有選擇性地挑選合適的動(dòng)態(tài)庫(kù)進(jìn)行安裝,減輕OpenVINO安裝環(huán)境的容量。
簡(jiǎn)而言之,依賴庫(kù)瘦身成功,不要再經(jīng)常草木皆兵、擔(dān)驚受怕了!
03全新的runtime API 2.0
再高性能的系統(tǒng)一旦忽略了用戶,也只能是曇花一現(xiàn)。OpenVINO深諳此道,秉持著“用戶友好型系統(tǒng)才能立足未來(lái)”的更新理念推出了全新的runtime API 2.0。
不同于之前Inference Engine的接口規(guī)范,Intel這次引入了“OpenVINO”的新全局命名空間及相關(guān)頭文件和函數(shù)方法,但整體API調(diào)用方式不變,并且新的runtime API 2.0默認(rèn)支持原有的Inference Engine接口,Inference Engine的相關(guān)接口功能還將繼續(xù)保留。
在新的API 2.0接口中,OpenVINO全新版本也對(duì)過(guò)程進(jìn)行了簡(jiǎn)化,開(kāi)發(fā)者可以之間通過(guò)新的Tensor API來(lái)獲取結(jié)果數(shù)據(jù)。此外,全新的Configuration API引入后,通過(guò)get_property接口獲取的設(shè)備配置信息將自動(dòng)獲取數(shù)據(jù)類型,開(kāi)發(fā)者做進(jìn)一步解析就更方便了。用戶體驗(yàn)是不是看起來(lái)很棒?連Nono都忍不住想立馬去試試了。
二、優(yōu)化:更廣泛的模型支持
01Model Optimizer參數(shù)簡(jiǎn)化
“高端的食材往往只需要最簡(jiǎn)約的烹飪方式,”O(jiān)penVINO也想向高端看齊,在全新升級(jí)時(shí)采用了更簡(jiǎn)易的更新API。
引入全新的IR v11模型表達(dá)式版本以后,IR將全面支持動(dòng)態(tài)input shape,MO工具中將無(wú)需指定模型轉(zhuǎn)換后的--input_shape,并根據(jù)模型中的其他layer自動(dòng)推斷動(dòng)態(tài)input中的某幾個(gè)未定義的維度,提升動(dòng)態(tài)輸入在runtime階段的執(zhí)行效率。此外,針對(duì)類似TensorFlow這樣特定的框架結(jié)構(gòu),OpenVINO全新版本將簡(jiǎn)化額外的轉(zhuǎn)置操作,用戶無(wú)需指定--disable_nhwc_to_nchw,MO自動(dòng)加入額外的layer,確保與原框架Layout和數(shù)據(jù)精度一致。
在極簡(jiǎn)主義與斷舍離盛行的當(dāng)下,希望小伙伴們和Nono一樣,在進(jìn)行相關(guān)操作時(shí)更能得心應(yīng)手哦。
02直接支持PaddlePaddle模型
作為國(guó)內(nèi)最受歡迎的深度學(xué)習(xí)框架之一,之前OpenVINO在對(duì)Paddle模型做適配的時(shí)候,需要將Paddle模型轉(zhuǎn)化為ONNX格式,再通過(guò)MO工具對(duì)ONNX模型進(jìn)行優(yōu)化和加速部署,Nono的小伙伴們?nèi)粘M虏鄄?、不、不方便?/p>
目前OpenVINO全新版本已經(jīng)實(shí)現(xiàn)對(duì)PaddlePaddle模型的直接支持,MO工具可以直接完成對(duì)Paddle模型的離線轉(zhuǎn)化,同時(shí)runtime api接口也可以直接讀取加載Paddle模型到指定的硬件設(shè)備。
沒(méi)有了ONNX這個(gè)“中間商”模型耗步驟,省去了離線轉(zhuǎn)換的過(guò)程,大大提升了Paddle開(kāi)發(fā)者在Intel平臺(tái)上部署的效率。經(jīng)過(guò)性能和準(zhǔn)確性驗(yàn)證,在OpenVINO?2022.1發(fā)行版中,會(huì)有13個(gè)模型涵蓋5大應(yīng)用場(chǎng)景的Paddle模型將被直接支持。并且,其中不乏像PPYolo和PPOCR這樣非常受開(kāi)發(fā)者歡迎的網(wǎng)絡(luò)哦。
三、部署:自動(dòng)優(yōu)化
01 Preprocessing API
為了適配模型對(duì)于輸入數(shù)據(jù)的結(jié)構(gòu)要求,我們往往需要利用OpenCV這樣的工具,在CPU上將原始數(shù)據(jù)進(jìn)行前處理操作后再送入到指定的硬件處理器上中進(jìn)行模型推理,此時(shí)前處理任務(wù)不僅會(huì)占用一部分的CPU資源,也無(wú)法真正發(fā)揮某些硬件加速器對(duì)前處理任務(wù)性能能上加速,好比手機(jī)廠家費(fèi)盡心機(jī)將手機(jī)做“薄”,而消費(fèi)者卻選擇戴上了殼。
針對(duì)此痛點(diǎn),Preprocessing API選擇將前處理任務(wù)集成到模型執(zhí)行圖中,不依賴于CPU,利用指定的硬件平臺(tái)進(jìn)行輸入數(shù)據(jù)預(yù)處理,更充分發(fā)揮類似GPU或VPU這樣協(xié)處理在處理圖像數(shù)據(jù)時(shí)的性能優(yōu)勢(shì)。Preprocessing API拒絕了CPU,選擇了獨(dú)立,小伙伴們?cè)趺纯矗?/p>
02 CPU plugin支持動(dòng)態(tài)輸入
為了適配更廣泛的模型種類,OpenVINO全新版本的CPU Plugin已經(jīng)支持了動(dòng)態(tài)input shape,讓開(kāi)發(fā)者以更便捷的方式部署類似NLP或者OCR這樣的網(wǎng)絡(luò)。
在不支持動(dòng)態(tài)input shape的情況下,我們往往需要通過(guò)Padding,Model reshape或者是Dimension Partitioning對(duì)模型或是輸入數(shù)據(jù)進(jìn)行重構(gòu),對(duì)性能和準(zhǔn)確性都有較大影響。
雖然通過(guò)動(dòng)態(tài)input shape可以減少相關(guān)影響,但其需要在推理的過(guò)程中才能獲取輸入數(shù)據(jù)shape,并對(duì)模型進(jìn)行編譯,所以綜合性能還是不及固定input shape,此時(shí)我們建議開(kāi)發(fā)者通過(guò)設(shè)置upper-bound的方式,為動(dòng)態(tài)維度的數(shù)據(jù)設(shè)置寬度范圍,以更高效地進(jìn)行合理的內(nèi)存分配,提升性能表現(xiàn)。
03 Auto Device plugin
在國(guó)內(nèi)外競(jìng)技場(chǎng)都能發(fā)揮出杰出的水平,這應(yīng)該是優(yōu)秀的運(yùn)動(dòng)員必備實(shí)力,技術(shù)的競(jìng)技場(chǎng)理應(yīng)同理,卓越的可移植性對(duì)于軟件來(lái)說(shuō)必不可少。
在全新版本之前,小伙伴們必須自己手動(dòng)選擇相應(yīng)的部署設(shè)備,并配置設(shè)備中的相關(guān)資源。全新升級(jí)后,當(dāng)開(kāi)發(fā)者將定義的設(shè)備設(shè)置為“Auto”后,該接口會(huì)搜索系統(tǒng)中所有的算力單元以及其規(guī)格屬性,根據(jù)模型的精度、網(wǎng)絡(luò)結(jié)構(gòu)以及用戶指定性能要求等信息,選取并配置合適的算力單元進(jìn)行部署,降低不同設(shè)備平臺(tái)間的移植難度與部署難度。
除了自動(dòng)選擇部署硬件以外,Auto Device plugin還將進(jìn)一步優(yōu)化GPU/VPU的第一次推理延遲。AUTO Device plugin的策略是默認(rèn)將第一次推理任務(wù)加載到CPU上運(yùn)行,同時(shí)在GPU/VPU等性能更強(qiáng)的協(xié)處理器上編譯加載執(zhí)行網(wǎng)絡(luò),待CPU完成第一次推理請(qǐng)求后,再將任務(wù)無(wú)感地遷移到GPU/VPU等硬件設(shè)備中完成后續(xù)的推理任務(wù)。
如今疫情肆虐,希望這次全新升級(jí)的OpenVINO能給忘帶電腦、封控在家回家的小伙伴們提供便利,和Nono一樣再也不怕不同設(shè)備平臺(tái)間的移植、部署和推理了。
04 PERFORMANCE_HINT
卓越的可移植性固然重要,但在相應(yīng)的硬件平臺(tái),需要為推理任務(wù)配置不同的參數(shù)時(shí),相信很多小伙伴也會(huì)和Nono一樣感到很痛苦。
為了讓開(kāi)發(fā)者盡可能用一套代碼來(lái)適配不同的Intel硬件平臺(tái)。OpenVINO全新版本中引入了全新的PERFORMANCE_HINT功能,用戶只需指定他的推理任務(wù)需求:延遲優(yōu)先還是推理優(yōu)先。compile_model便可以自動(dòng)進(jìn)行相應(yīng)的硬件參數(shù)配置,達(dá)到相對(duì)較優(yōu)的性能目標(biāo)。
此外,針對(duì)GPU這樣并行計(jì)算能力較強(qiáng)的設(shè)備,新的Auto Batching功能還可以通過(guò)將PERFORMANCE_HINT指定為吞吐量模式,來(lái)隱式地開(kāi)啟該功能,并自動(dòng)配置batch size大小,充分激活GPU硬件性能,優(yōu)化內(nèi)存資源占用。
看到這里,Npnp突然來(lái)了種錯(cuò)覺(jué),“垂死碼中驚坐起,Nono看到PERFORMANCE_HINT還能理”,不知道小伙伴們是不是也有同樣感受?
全新升級(jí)
大咖怎么看
英特爾網(wǎng)絡(luò)與邊緣事業(yè)部OpenVINO開(kāi)發(fā)者工具副總裁Adam Burns表示:
“最新版OpenVINO 2022.1根據(jù)數(shù)十萬(wàn)開(kāi)發(fā)者在過(guò)去三年多的反饋而開(kāi)發(fā),旨在簡(jiǎn)化和自動(dòng)化優(yōu)化工作。最新版本增加了硬件自動(dòng)發(fā)現(xiàn)和自動(dòng)優(yōu)化功能,讓軟件開(kāi)發(fā)者可以在任意平臺(tái)上實(shí)現(xiàn)最優(yōu)性能。該軟件與英特爾芯片相結(jié)合,可實(shí)現(xiàn)顯著的AI投資回報(bào)優(yōu)勢(shì),并可輕松部署到用戶網(wǎng)絡(luò)中基于英特爾技術(shù)的解決方案中?!?/p>
Zeblok創(chuàng)始人兼首席執(zhí)行官M(fèi)ouli Narayanan認(rèn)為:
“我們的使命就是要考慮每次洞察的成本。通過(guò)采用英特爾處理器,我們實(shí)現(xiàn)了經(jīng)濟(jì)、高能效的AI推理,并產(chǎn)生了極高的投資回報(bào)。這個(gè)新版OpenVINO將為我們的生態(tài)系統(tǒng)創(chuàng)造更高的價(jià)值?!?/p>
在American Tower創(chuàng)新副總裁Eric Watko看來(lái):
“憑借American Tower的邊緣基礎(chǔ)設(shè)施、英特爾的OpenVINO深度學(xué)習(xí)功能和Zeblok的AI平臺(tái)即服務(wù),我們可以為市場(chǎng)提供完整的智能解決方案。”
不得不說(shuō),這次的新版本
真的是太靈啦~
還沒(méi)有體驗(yàn)過(guò)的小伙伴們
快來(lái)試試吧!
復(fù)制鏈接即可進(jìn)入下載頁(yè)
http://count.eepw.com.cn/count/doRedirect?https://www.intel.cn/content/www/cn/zh/developer/tools/openvino-toolkit-download.html
評(píng)論