色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

針對(duì)ADAS應(yīng)用優(yōu)化編譯程序性能分析

貿(mào)澤電子 ? 來(lái)源:djl ? 作者:貿(mào)澤電子 ? 2019-08-21 09:59 ? 次閱讀

汽車產(chǎn)業(yè)的所有主要原始設(shè)備制造商(OEM)和軟件供貨商都在致力于研發(fā)先進(jìn)駕駛輔助系統(tǒng)(ADAS)。但如果仔細(xì)了解,你就會(huì)對(duì)ADAS應(yīng)用對(duì)編譯程序和工具集提出的要求產(chǎn)生諸多疑問(wèn)。傳統(tǒng)的汽車應(yīng)用和ADAS之間有所區(qū)別,為了更好地滿足ADAS需求,需要對(duì)目前的編譯程序進(jìn)行一些升級(jí)改造。

ADAS應(yīng)用是一種挑戰(zhàn)為了更好地支持自動(dòng)駕駛任務(wù),汽車需要更清楚地了解它們的周圍環(huán)境。有幾種新的傳感器如雷達(dá)、激光雷達(dá)、攝影機(jī)等,可用來(lái)以高分辨率檢測(cè)路標(biāo)、其他車輛、障礙物和其他相關(guān)的環(huán)境數(shù)據(jù)(圖1)。過(guò)去,汽車系統(tǒng)通常只是實(shí)時(shí)處理來(lái)自一些特定執(zhí)行器(轉(zhuǎn)向角、踏板位置、各種引擎?zhèn)鞲衅鞯?的單獨(dú)測(cè)量資料

針對(duì)ADAS應(yīng)用優(yōu)化編譯程序性能分析

圖1 基于傳感器的不同ADAS應(yīng)用的監(jiān)測(cè)區(qū)域。

然而,與一般的物理測(cè)量一樣,ADAS應(yīng)用采集的環(huán)境數(shù)據(jù)存在噪聲(圖2)和測(cè)量誤差。因此,這些數(shù)據(jù)在可以用于最終用途,即自動(dòng)幫助司機(jī)減輕決策負(fù)擔(dān)之前,需要用硬件和軟件進(jìn)行電子后處理。然而,這種后處理并不總是處理像以前那樣的單獨(dú)測(cè)量數(shù)據(jù),很多時(shí)候會(huì)將來(lái)自不同來(lái)源的數(shù)據(jù)合并(傳感器融合),從而降低誤差敏感性。

針對(duì)ADAS應(yīng)用優(yōu)化編譯程序性能分析

圖2 環(huán)境傳感器產(chǎn)生的有噪聲訊號(hào)及濾波后的結(jié)果。

為了使ADAS能夠根據(jù)司機(jī)行為自動(dòng)做出決策,ADAS必須能夠?qū)崟r(shí)處理大量數(shù)據(jù)。另外,這些數(shù)據(jù)很復(fù)雜,以前的做法是只處理整數(shù)或定點(diǎn)數(shù)類型、速率為1~5kbps的單獨(dú)傳感器數(shù)據(jù)。但今天提供的數(shù)據(jù)經(jīng)常是浮點(diǎn)類型(浮點(diǎn)/雙精度),而且速率很高。舉例來(lái)說(shuō),攝影機(jī)影像的速率約為340kbps,雷達(dá)數(shù)據(jù)約為1.5Mbps。

很顯然,與傳統(tǒng)的汽車應(yīng)用相比,ADAS應(yīng)用要求更強(qiáng)大的處理能力,但現(xiàn)在很難預(yù)測(cè)哪種高性能的硬件架構(gòu)更適合這些類型的應(yīng)用。由于必須以可重復(fù)使用和高成本效益的方式實(shí)現(xiàn)ADAS應(yīng)用,因此很明顯對(duì)所有架構(gòu)來(lái)說(shuō)都要求得到編譯程序的支持。在這種要求下,必須使用抽象、可移植的設(shè)計(jì)方法(如C++11/14)、基于模型的設(shè)計(jì)方法和包括平行程序設(shè)計(jì)(如OpenCL、Pthreads)在內(nèi)的其他技術(shù)。此外還要求高度優(yōu)化的、經(jīng)認(rèn)證的函式庫(kù)來(lái)高效、安全地實(shí)現(xiàn)標(biāo)準(zhǔn)運(yùn)算,并盡可能地提高硬件的獨(dú)立性。因?yàn)锳DAS應(yīng)用會(huì)干預(yù)駕駛過(guò)程,所以這些應(yīng)用和執(zhí)行它們的硬件也必須符合相關(guān)的安全標(biāo)準(zhǔn)(ASIL-B或更高階的ISO 26262)。

尋找一種合適的硬件架構(gòu)

對(duì)于開發(fā)ADAS應(yīng)用的公司來(lái)說(shuō),直到現(xiàn)在也沒(méi)有哪種硬件架構(gòu)成為主流,這使它們面臨風(fēng)險(xiǎn)。一般來(lái)說(shuō),一些主要的硬件加速器——包括NVIDIA GPU的衍生產(chǎn)品(Drive PX)——可以為ADAS應(yīng)用的資料平行部分提供每秒萬(wàn)億次浮點(diǎn)運(yùn)算(Teraflops)等級(jí)的足夠運(yùn)算能力。然而,除了缺少足夠的安全特性外,這些組件就功耗和購(gòu)買價(jià)格而言成本相當(dāng)高。另一方面,適合直到ASIL-D(包括AURIX或RH850在內(nèi))的安全關(guān)鍵型應(yīng)用的典型架構(gòu),還沒(méi)有利用到硬件方面的機(jī)會(huì)來(lái)實(shí)現(xiàn)更高的數(shù)據(jù)速率,因?yàn)檫@些架構(gòu)很難通過(guò)ASIL-D的認(rèn)證。

因此,ADAS系統(tǒng)的OEM或大型供貨商存在選擇架構(gòu)的風(fēng)險(xiǎn),可能會(huì)由于架構(gòu)太大、太昂貴或不能滿足安全要求而賣不出去。另一方面,即使選擇了一種完全支持安全關(guān)鍵型應(yīng)用的架構(gòu),也存在這種架構(gòu)太小無(wú)法滿足更嚴(yán)格的運(yùn)算要求的風(fēng)險(xiǎn)。在開發(fā)過(guò)程中,可能會(huì)出現(xiàn)預(yù)期應(yīng)用由于效率原因而無(wú)法實(shí)現(xiàn)的問(wèn)題。

因此,ADAS項(xiàng)目的要求非常復(fù)雜。一方面,開發(fā)人員必須創(chuàng)建非常高效的、特定目標(biāo)的程序代碼,滿足所有安全目標(biāo),并盡量減少上述風(fēng)險(xiǎn)。另一方面,有必要采用可移植的高級(jí)設(shè)計(jì)方法進(jìn)行高成本效益的應(yīng)用開發(fā)。這些高級(jí)設(shè)計(jì)要求,使得原本為傳統(tǒng)嵌入式應(yīng)用設(shè)計(jì)的嵌入式編譯程序必須作出修改。

程序代碼結(jié)構(gòu)的效率

一種必要的新的編譯程序特性是需要支持ADAS應(yīng)用的典型程序代碼結(jié)構(gòu),以便為這類應(yīng)用創(chuàng)建高效的程序代碼。ADAS應(yīng)用中使用的數(shù)據(jù)結(jié)構(gòu)及其經(jīng)歷的運(yùn)算與經(jīng)典應(yīng)用中的有根本區(qū)別,用于傳感器融合和分析傳感器數(shù)據(jù)的程序代碼通常是用BASELABS等模型化工具生成的。舉例來(lái)說(shuō),ADAS程序代碼中與速度有關(guān)的部分通常涉及浮點(diǎn)和雙精度類型的數(shù)組(向量和矩陣),這些數(shù)據(jù)會(huì)經(jīng)歷諸如矩陣乘法、倒數(shù)、奇異值分解(SVD)等線性代數(shù)運(yùn)算。系統(tǒng)透過(guò)這些運(yùn)算將傳感器數(shù)據(jù)數(shù)組組合起來(lái)運(yùn)算環(huán)境的抽象表述,然后用作決策的基礎(chǔ)(例如檢查影像中的對(duì)象,或跟蹤和分配物體的空間位置)。

高度優(yōu)化的函式庫(kù)

這種數(shù)組和浮點(diǎn)數(shù)的大量使用,意味著需要對(duì)編譯程序進(jìn)行全新的優(yōu)化,才能提供有效的結(jié)果。舉例來(lái)說(shuō),最常用的線性代數(shù)函數(shù)一般是由針對(duì)特定目標(biāo)架構(gòu)高度優(yōu)化的函式庫(kù)所提供。因此,函式庫(kù)中沒(méi)有包含的所有運(yùn)算必須用編譯程序很好地優(yōu)化,才能避免這些運(yùn)算成為瓶頸。

ADAS應(yīng)用中許多性能關(guān)鍵型運(yùn)算是基于一套標(biāo)準(zhǔn)的線性代數(shù)運(yùn)算實(shí)現(xiàn)的。如果這些標(biāo)準(zhǔn)運(yùn)算使用標(biāo)準(zhǔn)界面,則可以極大地減少將這些ADAS應(yīng)用移植到不同目標(biāo)架構(gòu)所造成的開銷。大多數(shù)相關(guān)的硬件平臺(tái)都提供支持標(biāo)準(zhǔn)接口的函式庫(kù),以及針對(duì)特定目標(biāo)架構(gòu)高度優(yōu)化的函式庫(kù),包括Tasking為嵌入式應(yīng)用開發(fā)的LAPACK、NVIDIA的cuBLAS和英特爾(Intel)的Integrated Performance Primitives。

一般來(lái)說(shuō),這些函式庫(kù)的速度要比開放原始碼產(chǎn)品或公司內(nèi)部實(shí)現(xiàn)快一個(gè)數(shù)量級(jí)。因此基于標(biāo)準(zhǔn)接口的應(yīng)用可以很快取得很好的效率,即使在新的目標(biāo)平臺(tái)上也可以,而且無(wú)需程序設(shè)計(jì)師自己優(yōu)化和測(cè)試特定目標(biāo)函式庫(kù)中的性能關(guān)鍵運(yùn)算。然而請(qǐng)注意,不是所有的函式庫(kù)都針對(duì)安全關(guān)鍵型應(yīng)用做了充分的認(rèn)證,也不是所有函式庫(kù)都適合嵌入式系統(tǒng)

平行程序設(shè)計(jì)

嵌入式編譯程序要求的一個(gè)額外的新功能是支持當(dāng)前的語(yǔ)言,如C++11/C++14。ADAS設(shè)計(jì)的目標(biāo)是提高程序代碼的可重復(fù)使用性,用更少行程序代碼實(shí)現(xiàn)更多的功能,而又不放棄接近硬件提供的效率。C++這類和繼承是經(jīng)過(guò)時(shí)間驗(yàn)證的方法,非常合適在更高、更抽象的層次編寫這樣的程序代碼。

C++11以及后來(lái)的版本都支持這些方法,但與更早的C99語(yǔ)言標(biāo)準(zhǔn)相比具有顯著的優(yōu)勢(shì)。另外,C++11(和C11)最終還能用來(lái)編寫可移植的平行程序。許多ADAS應(yīng)用的運(yùn)算開銷在考慮所有響應(yīng)時(shí)間要求后,經(jīng)常超過(guò)在單核心上實(shí)現(xiàn)的連續(xù)處理能力。因此,平行和多核心處理是常見的ADAS系統(tǒng)要求。

像C99等舊標(biāo)準(zhǔn)不支持平行機(jī)制,因此使用這些語(yǔ)言的程序設(shè)計(jì)師必須具有很好的硬件和編譯程序知識(shí),才能正確編寫出平行程序。舉例來(lái)說(shuō),程序設(shè)計(jì)師必須將特定的數(shù)據(jù)范圍和代碼段排除在平行訪問(wèn)之外,從而確保不會(huì)丟失數(shù)據(jù)更新或在訪問(wèn)期間錯(cuò)誤讀取。程序設(shè)計(jì)師還必須在程序代碼中插入屏障(互斥體),防止關(guān)鍵部分在同一時(shí)間被一個(gè)以上的核心執(zhí)行。

然而,屏障插入技術(shù)只有在編譯程序理解這些屏障時(shí)才有用。如果沒(méi)有這樣的概念,那么在編譯程序或硬件優(yōu)化過(guò)程中,編譯程序會(huì)將這段程序代碼移出受保護(hù)的部分。在C11/C++11發(fā)明之前,還沒(méi)有統(tǒng)一的方式來(lái)將這種屏障通知給編譯程序,因此程序設(shè)計(jì)師必須禁止全部重要的優(yōu)化功能,從而導(dǎo)致嚴(yán)重的效率下降,或者他們會(huì)誤用諸如「volatile」等屬性來(lái)限制編譯程序的優(yōu)化功能。現(xiàn)在大家都已知道,使用「volatile」屬性對(duì)于編寫正確和可移植的平行程序代碼來(lái)說(shuō)是不夠的。

然而,互斥體現(xiàn)在已經(jīng)是C++標(biāo)準(zhǔn)的一部分,因此C++11編譯程序理解所有的屏障概念,編譯程序在必要時(shí)能夠防止應(yīng)用出現(xiàn)優(yōu)化,而導(dǎo)致任何不必要的速度損失。與使用優(yōu)化不同,程序設(shè)計(jì)師可以使用C++/C++11引入的「atomic」屬性,編譯程序用「atomic」屬性產(chǎn)生的程序代碼,可以透過(guò)尋址硬件來(lái)揭示期望的行為,并產(chǎn)生最小的性能開銷。這樣,程序設(shè)計(jì)師就能專注于他們的主要任務(wù),即程序代碼功能,而不用試圖透過(guò)不合適的方式(如「volatile」屬性)和優(yōu)化習(xí)慣去產(chǎn)生特定程序代碼。

遺憾的是,一般不可能檢測(cè)出所有對(duì)平行訪問(wèn)保護(hù)錯(cuò)誤的程序段和數(shù)據(jù)。有時(shí)保護(hù)錯(cuò)誤的程序不會(huì)產(chǎn)生任何編譯程序錯(cuò)誤,看起來(lái)似乎工作正常,但這些程序可能會(huì)因?yàn)椴幻黠@的時(shí)序問(wèn)題而自發(fā)產(chǎn)生錯(cuò)誤的結(jié)果。這些錯(cuò)誤一般只出現(xiàn)在很長(zhǎng)的測(cè)試時(shí)間之后。另外,它們也很難重現(xiàn),因?yàn)樗鼈內(nèi)Q于相應(yīng)的運(yùn)行時(shí)間以及系統(tǒng)內(nèi)與時(shí)間有關(guān)的干擾。

因此,即使是用C11/C++11編寫正確的平行程序代碼,也不是小事一樁了。自己編寫的平行程序代碼也可能存在雖然正確但只比更易維護(hù)的、功能相當(dāng)?shù)捻樞虺绦虼a快一點(diǎn)點(diǎn)(甚至更慢)的風(fēng)險(xiǎn)。幸運(yùn)的是,像EMB2和LAPACK等函式庫(kù)用起來(lái)相對(duì)風(fēng)險(xiǎn)就很小,因?yàn)樗鼈兌际沁@個(gè)領(lǐng)域中的專家編寫的。作為額外的優(yōu)勢(shì),這些函式庫(kù)由于其平行機(jī)制及優(yōu)化,可以確保相對(duì)較大的速度提高。

硬件加速器支持

編譯程序還需要具備一些新的功能來(lái)滿足越來(lái)越異構(gòu)的硬件架構(gòu)要求。這些架構(gòu)擁有差別很大的核心(ARM、AURIX、RH850、NVIDIA等)和補(bǔ)充的加速器(如AURIX中的FFT、ARM和NVIDIA中的SIMD),也有多種解決方案。一種方案是原生支持,最直接的方法是支持硬件加速器。這些構(gòu)造可以用來(lái)處理來(lái)自C/C++的特殊硬件指令。

更高級(jí)的編譯程序可以支持加速器供貨商提供的特殊高級(jí)語(yǔ)言(大多數(shù)類似于C),從而說(shuō)明程序設(shè)計(jì)師高效滿足硬件要求。例子包括NVIDIA的OpenCL(NVIDIA的編譯程序)、GTM的C(Tasking的編譯程序)和德州儀器(TI)的EVE擴(kuò)展C語(yǔ)言。雖然這些高級(jí)語(yǔ)言要求編譯和優(yōu)化,但它們與底層硬件的接近簡(jiǎn)化了整個(gè)過(guò)程。

作為最后一個(gè)選項(xiàng),編譯程序可以自動(dòng)檢測(cè)可被加速器高效執(zhí)行的程序代碼區(qū)域,以便自動(dòng)生成合適的程序代碼,如同Intel的icc之于SIMD架構(gòu)。然而,在大多數(shù)情況下這種全自動(dòng)的發(fā)現(xiàn)是受限的,因?yàn)闃?biāo)準(zhǔn)C/C++程序代碼不是明確為特定加速器編寫的。不過(guò),只需修改少量的程序代碼,編譯程序的自動(dòng)發(fā)現(xiàn)就能產(chǎn)生很好的結(jié)果,盡管為了在合理的開銷條件下尋找和實(shí)現(xiàn)必要的修改,一款合適的調(diào)節(jié)工具是必不可少。

遺憾的是,許多異構(gòu)硬件架構(gòu)強(qiáng)制要求用自己的編譯程序?qū)ぶ访總€(gè)可程序設(shè)計(jì)單元。為了避免應(yīng)付過(guò)多的不兼容工具,防止產(chǎn)生新的安全風(fēng)險(xiǎn),建議使用能夠?qū)ぶ匪锌沙绦蛟O(shè)計(jì)單元、確保工具之間互相兼容的工具環(huán)境。比如Tasking提供的英飛凌(Infineon)AURIX/TriCore工具環(huán)境,就可以在一個(gè)集成開發(fā)環(huán)境(IDE)中程序設(shè)計(jì)和調(diào)試架構(gòu)中的所有單元。因?yàn)榉?hào)信息在不同單元之間是兼容的,所以可以更安全地控制和監(jiān)視單元之間的交互。

ADAS應(yīng)用的安全要求

為了滿足ADAS應(yīng)用的特殊安全要求,所有工具(包括建模工具、編譯程序和分析工具),以及與這些應(yīng)用相關(guān)的軟件組件(操作系統(tǒng)、函式庫(kù)等)必須依據(jù)ISO 26262進(jìn)行開發(fā)和認(rèn)證。

一些較新的安全要求可以利用神經(jīng)網(wǎng)絡(luò)來(lái)理解(圖3)。神經(jīng)網(wǎng)絡(luò)是一些軟件組件,經(jīng)常用于檢測(cè)和處理ADAS應(yīng)用中的傳感器數(shù)據(jù)。雖然市場(chǎng)上有許多基于神經(jīng)網(wǎng)絡(luò)的有趣原型,但仍然不清楚如何確保這些網(wǎng)絡(luò)在極端情形下有正確的行為。

針對(duì)ADAS應(yīng)用優(yōu)化編譯程序性能分析

圖3 一些較新的安全要求可以利用神經(jīng)網(wǎng)絡(luò)來(lái)理解。

目前還沒(méi)有已知的過(guò)程可以確保神經(jīng)網(wǎng)絡(luò)的行為一直正常,而對(duì)道路使用者來(lái)說(shuō)沒(méi)有風(fēng)險(xiǎn)。因此,如果沒(méi)有合適的監(jiān)控實(shí)體,就不能讓神經(jīng)網(wǎng)絡(luò)做出安全關(guān)鍵型決策。除了神經(jīng)網(wǎng)絡(luò)自己用的硬件外(這些硬件會(huì)根據(jù)輸入數(shù)據(jù)提出難以預(yù)測(cè)的決策建議),必須有一個(gè)在硬件上運(yùn)行的、具有最高安全認(rèn)證等級(jí)(ASIL-D)的監(jiān)控實(shí)體。這個(gè)監(jiān)控實(shí)體會(huì)使用可預(yù)測(cè)的算法工作,檢查由神經(jīng)網(wǎng)絡(luò)做出的建議是否能被安全地執(zhí)行,或者是否應(yīng)該選擇更安全的方案(圖4)。舉例來(lái)說(shuō),監(jiān)控實(shí)體會(huì)檢查由神經(jīng)網(wǎng)絡(luò)建議的通行方案是否能夠在沒(méi)有風(fēng)險(xiǎn)的條件下執(zhí)行,出于這個(gè)目的,它會(huì)使用自己的、可預(yù)測(cè)的運(yùn)算來(lái)檢查是否沒(méi)有障礙物等。為了創(chuàng)建有效的監(jiān)控實(shí)體,人們?nèi)栽谂ρ芯磕承╊I(lǐng)域(比如資料融合)中的可預(yù)測(cè)算法。

針對(duì)ADAS應(yīng)用優(yōu)化編譯程序性能分析

圖4 資料融合單元。

針對(duì)ADAS應(yīng)用的許多可預(yù)測(cè)算法都是基于LAPACK和其他函式庫(kù)支持的線性代數(shù)運(yùn)算實(shí)現(xiàn)的。可以用優(yōu)化的解決方案在各種目標(biāo)平臺(tái)上高效安全地實(shí)現(xiàn)這些算法。

ADAS應(yīng)用的其余部分可以用有助于滿足各種ISO 26262要求的多種工具和技術(shù)進(jìn)行認(rèn)證。簡(jiǎn)單的程序設(shè)計(jì)錯(cuò)誤(包括沒(méi)有初始化的數(shù)據(jù))可以用靜態(tài)分析工具(Polyspace、Klocwork等)實(shí)現(xiàn)高效檢測(cè)。為了檢測(cè)與安全相關(guān)的訪問(wèn)違例(具有不同ASIL類別的軟件組件彼此訪問(wèn),并在內(nèi)存保護(hù)單元(MPU)中創(chuàng)建保護(hù)故障),使用編譯程序整合的安全檢查器擴(kuò)展是很有好處的——它能用來(lái)定義不同的安全類別(比如ASIL-A到D),將項(xiàng)目中用到的數(shù)據(jù)和函數(shù)分配到不同的安全類別,并管理這些類別之間的訪問(wèn)權(quán)限。

然后,這個(gè)信息可以用于兩個(gè)目的。首先,編譯程序無(wú)法執(zhí)行某些優(yōu)化(反向程序代碼嵌入、程序代碼壓縮),因?yàn)檫@些優(yōu)化在執(zhí)行時(shí),如果沒(méi)有考慮訪問(wèn)權(quán)限問(wèn)題,可能會(huì)導(dǎo)致安全訪問(wèn)違例。其次,可以用安全檢查器工具,將這個(gè)相同信息用于識(shí)別可能產(chǎn)生MPU例外、未檢測(cè)到的訪問(wèn)違例,而不會(huì)有任何額外的測(cè)試開銷,而且有很高的程序代碼覆蓋率。

為了依據(jù)ISO 26262對(duì)工具(建模工具、編譯程序、靜態(tài)分析、安全檢查器等)進(jìn)行認(rèn)證,大多數(shù)制造商提供可極大簡(jiǎn)化必要過(guò)程的ISO套件。在這種情況下,選用在汽車領(lǐng)域中具有悠久歷史的工具和制造商會(huì)很有幫助。出于這個(gè)目的,ISO 26262-8使用了術(shù)語(yǔ)「久經(jīng)考驗(yàn)(proven in use)」,它的假設(shè)是,一款在很長(zhǎng)時(shí)間內(nèi)得到頻繁使用而且?guī)缀鯖](méi)有問(wèn)題的工具,與新工具相比可能不太容易出錯(cuò)。

除了解決上述安全風(fēng)險(xiǎn)外,編譯程序及其相關(guān)工具有助于減輕與ADAS應(yīng)用有關(guān)的設(shè)計(jì)風(fēng)險(xiǎn)。

控制設(shè)計(jì)風(fēng)險(xiǎn)

如果選擇不合適的硬件、函式庫(kù)和開發(fā)工具組合,可能會(huì)在ADAS領(lǐng)域產(chǎn)生較大的設(shè)計(jì)風(fēng)險(xiǎn)。目前針對(duì)特定的ADAS應(yīng)用,基本上無(wú)法預(yù)測(cè)特定軟硬件組合的效率。

舉例來(lái)說(shuō),可能存在所用硬件太大、太耗能或者太小的風(fēng)險(xiǎn)。遺憾的是,目前沒(méi)有連續(xù)的系列可用:結(jié)果證明太小的硬件無(wú)法用尺寸稍大一些的兼容硬件直接替換。設(shè)計(jì)人員可以在具有較低安全認(rèn)證等級(jí)的很大配置和具有較高認(rèn)證等級(jí)但小得多的配置之間做出選擇。目前兩種選擇之間的轉(zhuǎn)換會(huì)產(chǎn)生過(guò)多的開銷,因?yàn)樵诩軜?gòu)及其最佳使用所要求的程序代碼結(jié)構(gòu)之間存在顯著的差異。

目前這個(gè)問(wèn)題可以用編譯程序單獨(dú)解決。然而,如果有配套的合適軟件環(huán)境的話,編譯程序可以使得這種風(fēng)險(xiǎn)完全可控。如果能夠?qū)⒒谔囟ㄓ布⒏咝Ь€性代數(shù)函式庫(kù)的良好建模解決方案與能夠滿足ADAS應(yīng)用典型要求的編譯程序環(huán)境結(jié)合起來(lái)使用,那么得到的綜合解決方案將勝過(guò)兩者的簡(jiǎn)單迭加。

ADAS應(yīng)用很大程度上可以使用建模解決方案并以獨(dú)立于硬件的方式實(shí)現(xiàn)。底層的編譯程序和函式庫(kù)支持將基于模型的通用實(shí)現(xiàn)移植到有很大差異的硬件平臺(tái)上,并且開銷很小,效率很高。由此導(dǎo)致的少量效率不高可以透過(guò)性能分析(profiling)來(lái)實(shí)現(xiàn)快速識(shí)別和消除。

對(duì)通用程序代碼來(lái)說(shuō),這種組合方案可以在各種目標(biāo)平臺(tái)上提供實(shí)現(xiàn)最佳效率的確定性快捷方式。透過(guò)利用一組額外的、根據(jù)目標(biāo)硬件和輸入數(shù)據(jù)分辨率記錄有所有工具的組合效率的基準(zhǔn),這些數(shù)據(jù)可以用來(lái)預(yù)測(cè)新的ADAS應(yīng)用在新的目標(biāo)硬件上的期望效率,并且具有較高的精度。這將極大地降低選擇到不適合預(yù)期ADAS應(yīng)用的目標(biāo)硬件風(fēng)險(xiǎn)。

目前市場(chǎng)上的編譯程序沒(méi)有哪種能夠滿足所有要求,完整解決方案所要求的一些工具和函式庫(kù)也不是唾手可得。因此,編譯程序的路線圖很清晰:必須在不忽略整體解決方案的條件下滿足剩余要求。舉例來(lái)說(shuō),Tasking正在規(guī)劃新的產(chǎn)品,包括用于AURIX的認(rèn)證過(guò)的LAPACK函式庫(kù),這些產(chǎn)品得到了工具合作伙伴和用戶的大力支持。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    LabVIEW編譯程序設(shè)計(jì)

      編譯程序設(shè)計(jì)是一個(gè)復(fù)雜的話題,即使對(duì)內(nèi)行的軟件工程師來(lái)說(shuō)也要考慮很多專業(yè)知識(shí)。   NI LabVIEW軟件是一種多規(guī)
    發(fā)表于 10-16 11:03 ?2616次閱讀
    LabVIEW<b class='flag-5'>編譯程序</b>設(shè)計(jì)

    《現(xiàn)代CPU性能分析優(yōu)化》---精簡(jiǎn)的優(yōu)化

    《現(xiàn)代CPU性能分析優(yōu)化》是一本非常實(shí)用的書籍,對(duì)于從事性能關(guān)鍵型應(yīng)用程序開發(fā)和進(jìn)行系統(tǒng)底層優(yōu)化
    發(fā)表于 04-18 16:03

    Keil μVision 5中,如何操作ARM編譯程序提供的程序優(yōu)化功能?

    Keil μVision 5中,如何操作ARM 編譯程序提供的程序優(yōu)化功能? 功能介紹: 使用程序優(yōu)化功能可以減少
    發(fā)表于 06-20 06:25

    MATLAB的C編譯程序手冊(cè)

    MATLAB的C編譯程序手冊(cè):This chapter describes the MATLAB Compiler and its uses. It also includes new
    發(fā)表于 02-10 11:18 ?0次下載

    XScale體系結(jié)構(gòu)及編譯優(yōu)化問(wèn)題

    以及這些特點(diǎn)給編譯優(yōu)化帶來(lái)的挑戰(zhàn)并介紹了提高 XScale應(yīng)用程序性能優(yōu)化函數(shù)庫(kù) 、編譯優(yōu)化
    發(fā)表于 04-18 10:28 ?0次下載

    了解CPI對(duì)分析程序性能的意義

    本小節(jié)講述為什么使用 CPI 分析程序性能的意義。如果已經(jīng)非常了解 CPI 對(duì)分析程序性能的意義,可以跳過(guò)本小節(jié)的閱讀。
    的頭像 發(fā)表于 12-15 10:30 ?1w次閱讀

    RX族C/C++編譯程序、匯編程序優(yōu)化連接編輯程序 編譯程序包 用戶手冊(cè) Rev.1.00

    RX族C/C++編譯程序、匯編程序優(yōu)化連接編輯程序 編譯程序包 用戶手冊(cè) Rev.1.00
    發(fā)表于 04-17 19:24 ?0次下載
    RX族C/C++<b class='flag-5'>編譯程序</b>、匯編<b class='flag-5'>程序</b>、<b class='flag-5'>優(yōu)化</b>連接編輯<b class='flag-5'>程序</b> <b class='flag-5'>編譯程序</b>包 用戶手冊(cè) Rev.1.00

    SuperHTM RISC引擎C/C++編譯程序、匯總程序優(yōu)化連接編譯程序 編譯程序包V.9.01 用戶手冊(cè)

    SuperHTM RISC引擎C/C++編譯程序、匯總程序優(yōu)化連接編譯程序 編譯程序包V.9.01 用戶手冊(cè)
    發(fā)表于 05-04 18:40 ?0次下載
    SuperHTM RISC引擎C/C++<b class='flag-5'>編譯程序</b>、匯總<b class='flag-5'>程序</b>、<b class='flag-5'>優(yōu)化</b>連接<b class='flag-5'>編譯程序</b> <b class='flag-5'>編譯程序</b>包V.9.01 用戶手冊(cè)

    H8S、H8/300系列C/C++編譯程序、匯總程序優(yōu)化連接編譯程序(RCJ10B0001-0100)

    H8S、H8/300系列C/C++編譯程序、匯總程序優(yōu)化連接編譯程序(RCJ10B0001-0100)
    發(fā)表于 05-09 20:00 ?0次下載
    H8S、H8/300系列C/C++<b class='flag-5'>編譯程序</b>、匯總<b class='flag-5'>程序</b>、<b class='flag-5'>優(yōu)化</b>連接<b class='flag-5'>編譯程序</b>(RCJ10B0001-0100)

    H8S、H8/300系列 C/C++編譯程序、匯編程序優(yōu)化連接編輯程序(RCJ10J0001-0100)

    H8S、H8/300系列 C/C++編譯程序、匯編程序優(yōu)化連接編輯程序 (RCJ10J0001-0100)
    發(fā)表于 05-09 20:00 ?0次下載
    H8S、H8/300系列 C/C++<b class='flag-5'>編譯程序</b>、匯編<b class='flag-5'>程序</b>、<b class='flag-5'>優(yōu)化</b>連接編輯<b class='flag-5'>程序</b>(RCJ10J0001-0100)

    Linux使用gcc編譯程序的語(yǔ)法

    01. 調(diào)試相關(guān)的宏 在Linux使用gcc編譯程序的時(shí)候,對(duì)于調(diào)試的語(yǔ)句還具有一些特殊的語(yǔ)法。 gcc編譯的過(guò)程中,會(huì)生成一些宏,可以使用這些宏分別打印當(dāng)前源文件的信息,主要內(nèi)容是當(dāng)前的文件、當(dāng)前
    的頭像 發(fā)表于 06-22 10:51 ?704次閱讀

    H8S、H8/300系列C/C++編譯程序、匯總程序優(yōu)化連接編譯程序(RCJ10B0001-0100)

    H8S、H8/300系列C/C++編譯程序、匯總程序優(yōu)化連接編譯程序(RCJ10B0001-0100)
    發(fā)表于 06-28 18:50 ?0次下載
    H8S、H8/300系列C/C++<b class='flag-5'>編譯程序</b>、匯總<b class='flag-5'>程序</b>、<b class='flag-5'>優(yōu)化</b>連接<b class='flag-5'>編譯程序</b>(RCJ10B0001-0100)

    H8S、H8/300系列 C/C++編譯程序、匯編程序優(yōu)化連接編輯程序(RCJ10J0001-0100)

    H8S、H8/300系列 C/C++編譯程序、匯編程序優(yōu)化連接編輯程序 (RCJ10J0001-0100)
    發(fā)表于 06-28 18:51 ?0次下載
    H8S、H8/300系列 C/C++<b class='flag-5'>編譯程序</b>、匯編<b class='flag-5'>程序</b>、<b class='flag-5'>優(yōu)化</b>連接編輯<b class='flag-5'>程序</b>(RCJ10J0001-0100)

    PGO到底是什么?PGO如何提高應(yīng)用程序性能呢?

    的方法。PGO技術(shù)在編譯優(yōu)化中起了很大的作用,能夠優(yōu)化代碼、減少程序體積、提升程序性能等。 PGO技術(shù)可以分為三個(gè)步驟,首先是收集運(yùn)行特征數(shù)
    的頭像 發(fā)表于 10-26 17:37 ?2073次閱讀

    CPU程序幾個(gè)優(yōu)化程序性能的手段詳解

    要寫出高性能的代碼,首先需要對(duì)編譯器有基礎(chǔ)的了解,原因在于現(xiàn)代編譯器有很強(qiáng)的優(yōu)化能力,但有些代碼編譯器不能進(jìn)行
    的頭像 發(fā)表于 11-21 09:46 ?607次閱讀
    CPU<b class='flag-5'>程序</b>幾個(gè)<b class='flag-5'>優(yōu)化</b><b class='flag-5'>程序性能</b>的手段詳解
    主站蜘蛛池模板: 992交通广播| 色橹橹欧美在线观看视频高清| 99热这里只有精品88| 欧美人妇无码精品久久| 成人在线免费看片| 无套内射CHINESEHD熟女| 国产又湿又黄又硬又刺激视频| 一个吃奶两个添下面H| 噜噜噜狠狠夜夜躁精品| 被室友C哭调教双性| 午夜在线观看免费观看 视频| 久久99AV无色码人妻蜜柚| 97公开超碰在线视频| 三级黄色在线免费观看| 果冻传媒9CM在线观看| 中文字幕欧美日韩VA免费视频| 破女在线观看视频| 国产精品看高国产精品不卡| 一边啪啪的一边呻吟声口述| 嫩小幼处在线| 国产精品久久人妻无码网站一区L| 一个人视频日本在线观看| 欧美 亚洲 日韩 在线综合| 国产第一页在线视频| 伊人22222| 人人做人人干| 韩国甜性涩爱| av淘宝 在线观看| 亚洲AV精品无码喷水直播间| 亚洲天堂视频网站| 暖暖 免费 高清 日本视频5| 国产精品人妻系列21P| 中国videos1314tv| 日韩性大片| 久久99免费视频| 不卡的在线AV网站| 亚洲欭美日韩颜射在线二| 秋霞影音先锋一区二区| 红尘影院手机在线观看| ping色堂| 亚洲国产欧美日韩在线一区|