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