導(dǎo)讀:AI技術(shù)愈來愈受歡迎,在汽車、視覺處理和電信等領(lǐng)域的應(yīng)用也越來越多。目前,AI正在通過實(shí)現(xiàn)眾多新功能來取代許多傳統(tǒng)算法,例如為智能手機(jī)攝像頭提供去噪和圖像穩(wěn)定功能。
雖然眾多不同邊緣設(shè)備的要求都各不相同,但它們基本上都是為了最大程度地提高性能,降低功耗,并盡量減少所需的物理空間。設(shè)計(jì)工程師如何作出合適的權(quán)衡才能應(yīng)對這些挑戰(zhàn)?現(xiàn)有 AI 處理器的性能往往受到帶寬限制,并且在將數(shù)據(jù)移入和移出外部內(nèi)存時(shí)也會(huì)遇到瓶頸,導(dǎo)致系統(tǒng)利用率低,這也就意味著性能/功率數(shù)值(以 TOPS/Watt 為單位)受到限制。
AI技術(shù)愈來愈受歡迎,在汽車、視覺處理和電信等領(lǐng)域的應(yīng)用也越來越多。目前,AI正在通過實(shí)現(xiàn)眾多新功能來取代許多傳統(tǒng)算法,例如為智能手機(jī)攝像頭提供去噪和圖像穩(wěn)定功能。
在眾多實(shí)施AI的產(chǎn)品都將數(shù)據(jù)發(fā)送到云數(shù)據(jù)中心的同時(shí),也凸顯出一些主要缺點(diǎn):延遲增加、隱私風(fēng)險(xiǎn)以及需要互聯(lián)網(wǎng)連接。
設(shè)計(jì)人員希望創(chuàng)建一些AI系統(tǒng),使其在通常采用電池供電的邊緣設(shè)備上運(yùn)行,但這也帶來了新的挑戰(zhàn),既實(shí)現(xiàn)需求的性能和功能與功耗之間的平衡,尤其是在持續(xù)快速且越來越多的需要更多計(jì)算能力的情況下。
AI處理挑戰(zhàn)
雖然眾多不同邊緣設(shè)備的要求都各不相同,但它們基本上都是為了最大程度地提高性能,降低功耗,并盡量減少所需的物理空間。設(shè)計(jì)工程師如何作出合適的權(quán)衡才能應(yīng)對這些挑戰(zhàn)?
現(xiàn)有AI處理器的性能往往受到帶寬限制,并且在將數(shù)據(jù)移入和移出外部內(nèi)存時(shí)也會(huì)遇到瓶頸,導(dǎo)致系統(tǒng)利用率低,這也就意味著性能/功率數(shù)值(以TOPS/Watt為單位)受到限制。
另一個(gè)重要問題是如何提前計(jì)劃滿足未來需求。由于AI處理器芯片的部署周期通常較長,因此AI解決方案必須能夠適應(yīng)未來的新要求,包括支持尚未定義的新神經(jīng)網(wǎng)絡(luò)。這意味著所有解決方案都必須足夠靈活、可擴(kuò)展,才能隨著性能需求的增加而提升。
AI系統(tǒng)還必須安全,并且必須符合最高的質(zhì)量和安全標(biāo)準(zhǔn),尤其是對于汽車應(yīng)用和其他人工智能系統(tǒng)可能涉及生命攸關(guān)的決策的應(yīng)用。例如,如果一位行人走到自動(dòng)駕駛汽車前面,留給司機(jī)的反應(yīng)時(shí)間是非常短的。
為了幫助克服這些挑戰(zhàn),就需要一個(gè)全面的軟件工具鏈,簡化客戶實(shí)施,減少開發(fā)時(shí)間。
AI處理器逐步提升
讓我們以視覺機(jī)器學(xué)習(xí)為例,看看AI解決方案提供商如何應(yīng)對這些挑戰(zhàn)。
圖1:NeuPro-MAI處理器框圖,顯示內(nèi)存架構(gòu)
首先,如果我們考慮帶寬限制性能和內(nèi)存訪問權(quán)限問題,可以通過動(dòng)態(tài)配置的兩級內(nèi)存體系架構(gòu)來加以解決(參見圖1)。這樣可以最大限度地降低與外部SDRAM進(jìn)行數(shù)據(jù)傳輸產(chǎn)生的功耗。通過以分層方式使用本地內(nèi)存資源,實(shí)現(xiàn)90%以上的利用率,防止協(xié)處理器和加速器出現(xiàn)“數(shù)據(jù)匱乏”情形,同時(shí)還可使每個(gè)引擎獨(dú)立處理。
優(yōu)化AI處理的另一種方法是通過使處理器架構(gòu)支持混合精度的神經(jīng)引擎。這種方法可以處理2到16位的數(shù)據(jù),減少系統(tǒng)帶寬消耗,除此之外,還能按每個(gè)用例靈活運(yùn)行混合精度網(wǎng)絡(luò)。此外,當(dāng)數(shù)據(jù)從外部內(nèi)存寫入或讀取時(shí),數(shù)據(jù)壓縮之類的帶寬減少機(jī)制還能實(shí)時(shí)壓縮數(shù)據(jù)和權(quán)重。這種方法減少了所需的內(nèi)存帶寬,進(jìn)一步提高了性能,顯著降低了總功耗。
圖2:四引擎內(nèi)核細(xì)分
這是CEVA的NeuPro-MAI處理器采用的方法,是一種用于AI/ML推理工作負(fù)載的獨(dú)立異構(gòu)處理器架構(gòu)。以此解決方案為例,圖2顯示了如何在四AI引擎之間分割機(jī)器視覺應(yīng)用,在本案例中是對前方道路進(jìn)行車道檢測。圖像數(shù)據(jù)從外部內(nèi)存或外部接口加載,然后分成四個(gè)拼圖,每個(gè)拼圖由不同的引擎處理。換句話說,每個(gè)引擎可以各自承擔(dān)一個(gè)子圖或不同的任務(wù),例如物體檢測和車道識別,以便優(yōu)化特定應(yīng)用的性能。
每個(gè)引擎都有自己的片上L1內(nèi)存,以便最大程度地減少瓶頸或延遲。這也意味著,一旦配置好,AI處理器就幾乎可以完全獨(dú)立地運(yùn)行了,并且在大多數(shù)情況下,可以運(yùn)行“從頭到尾”的“融合”操作流水線,完全無需訪問內(nèi)部內(nèi)存且?guī)缀鹾苌僭L問外部內(nèi)存。如此一來,AI處理器將變得更加靈活,并有助于提高能效。
我們在本文開始時(shí)討論的要求還包括提供面向未來的靈活解決方案。完全可編程的矢量處理單元(VPU)可以在同一引擎L1數(shù)據(jù)上與協(xié)處理器并行工作,確保新的神經(jīng)網(wǎng)絡(luò)拓?fù)湟攒浖绞教峁┲С?/p>
機(jī)器視覺優(yōu)化
有許多優(yōu)化可以提升特定AI應(yīng)用的性能。在視覺處理過程中,Winograd轉(zhuǎn)換就屬于這種優(yōu)化之一。這是執(zhí)行卷積(例如傅里葉變換)的另一種高效方法,只需使用以前所需的MAC(乘累加運(yùn)算)數(shù)量的一半。
對于3x3卷積層而言,Winograd轉(zhuǎn)換可以將性能提高一倍,同時(shí)保持與原始卷積方法相同的精度。
另一個(gè)基本的優(yōu)化是使用稀疏化,即能夠忽略數(shù)據(jù)或權(quán)重中的零。通過避免乘以零,性能得到了改善,同時(shí)保持了準(zhǔn)確性。雖然某些處理器需要結(jié)構(gòu)化數(shù)據(jù)才能享受稀疏化帶來的好處,但使用完全支持非結(jié)構(gòu)化稀疏化的處理器可以獲得更好的結(jié)果。
通常,AI系統(tǒng)需要將某些優(yōu)化功能或網(wǎng)絡(luò)固有操作(如Winograd轉(zhuǎn)換、稀疏機(jī)制、自關(guān)注操作和縮放)交給專門的引擎。這意味著需要先卸載數(shù)據(jù),然后在處理后再重新加載數(shù)據(jù),這樣一來就會(huì)增加延遲并降低性能。對比之下,更好的選擇就是將加速器直接連接到引擎本地共享L1內(nèi)存,或者在大多數(shù)情況下,進(jìn)行融合操作,即從一個(gè)協(xié)處理器到另一個(gè)協(xié)處理器的即時(shí)端到端處理,而不需要在執(zhí)行過程中訪問任何內(nèi)存。
這些優(yōu)化有多重要?圖3顯示,與CEVA的上一代AI處理器相比,單引擎NPM11內(nèi)核在典型的ResNet50實(shí)施中實(shí)現(xiàn)了性能提升。您可以看到,基本的、原生的操作實(shí)現(xiàn)了近五倍的性能提升。
添加Winograd轉(zhuǎn)換,然后添加稀疏引擎可以進(jìn)一步提高性能,最高可達(dá)上一代處理器的9.3倍。最后,對一些網(wǎng)絡(luò)層使用混合精度(8x8和低分辨率4x4)權(quán)重和激活,在可以忽略不計(jì)的精度損失的情況下,進(jìn)一步提高了性能--實(shí)現(xiàn)了比上一代處理器近15倍的性能提升,比原生處理快2.9倍。
圖3:NPM11(單引擎內(nèi)核)性能改進(jìn)
結(jié)論
我們已經(jīng)看到了新內(nèi)存架構(gòu)和本地“負(fù)載平衡”控制實(shí)現(xiàn)(流水線處理對比連續(xù)處理相同數(shù)據(jù)),最大限度地減少外部訪問的情形,并充分利用了硬件,可以在不需要更多功耗的情況下提高性能,以及Winograd轉(zhuǎn)換和稀疏性等優(yōu)化進(jìn)一步提升性能的方法。
總而言之,現(xiàn)代AI處理器可以提供完全可編程的硬件/軟件開發(fā)環(huán)境,具有要求苛刻的邊緣AI應(yīng)用所需的性能、能效和靈活性,這使設(shè)計(jì)工程師能夠從其系統(tǒng)內(nèi)的有效AI實(shí)現(xiàn)中受益,而不會(huì)增加超出其便攜式邊緣設(shè)備預(yù)算的功耗。