To Cuda or not to Cuda再次引發(fā)了關(guān)于授權(quán)軟件與開源軟件的數(shù)十年之久的爭(zhēng)論。但對(duì)于那些選擇在通過安全認(rèn)證的Nvidia SoC和Drive OS之外自研AV軟件棧的人來說,這關(guān)系到安全問題。現(xiàn)在,車廠的系統(tǒng)集成商承擔(dān)起了認(rèn)證的責(zé)任。一位安全專家表示,這至少可以說是一項(xiàng)“艱巨的任務(wù)”。?
在設(shè)計(jì)下一代高級(jí)自動(dòng)駕駛汽車時(shí),車廠的首要任務(wù)是選擇合適的高性能SoC。OEM需要一款高度集成的芯片,它必須具備足夠的處理能力,以便為神經(jīng)網(wǎng)絡(luò)提供動(dòng)力,支持傳感器融合,并管理新型ADAS車型的中央引擎。
是自研還是采購(gòu)現(xiàn)成的芯片是另一個(gè)重要決定。
開發(fā)內(nèi)部硬件是一個(gè)大膽的舉動(dòng)。但為什么不呢?Tesla就為其FSD設(shè)計(jì)了HW 3.0,此前他們基于Mobileye SoC開發(fā)了HW 1.0,并使用Nvidia Drive PX 2開發(fā)了HW 2.0。
過多地談?wù)撚布?,又忽視了軟件在車廠整體系統(tǒng)設(shè)計(jì)中的重要作用。誰來設(shè)計(jì)AV堆棧?車廠如何對(duì)其進(jìn)行測(cè)試?如果他們選擇由Nvidia這樣的芯片公司提供完整的AV堆棧,他們能否為了差異化而對(duì)其進(jìn)行修改?
Tenstorrent優(yōu)于Nvidia???
Tenstorrent在推出其最新的AI處理器引擎時(shí)說,它正在贏得汽車行業(yè)的心智份額,并已經(jīng)與一些車廠簽約。
為什么OEM會(huì)選擇Tenstorrent,而不是更知名的Nvidia的AV SoC解決方案呢?
Tenstorrent的回答是,他們?cè)谲浖?a class="article-link" target="_blank" href="/tag/RISC-V/">RISC-V內(nèi)核上采用了開源策略。Tenstorrrent解釋說,許多客戶發(fā)現(xiàn),當(dāng)某些汽車應(yīng)用需要100%的代碼檢查和測(cè)試時(shí),使用Cuda并不是一種選擇。他們做不到這一點(diǎn),因?yàn)镃uda的庫(kù)是專有的。
Tenstorrent舉證了一些例子,以說明OEM在專有軟硬件平臺(tái)上設(shè)計(jì)ADAS車輛時(shí)所面臨的嚴(yán)峻挑戰(zhàn)。
現(xiàn)任Tenstorrent CEO Jim Keller在2016年至2018年期間在Tesla工作時(shí)的經(jīng)歷就是一個(gè)很好的例子。
Tesla與Nvidia的合作經(jīng)歷??
Elon Musk在Tesla從HW 2.0向HW 3.0過渡期間聘請(qǐng)了Keller這位傳奇的CPU設(shè)計(jì)師。從2016年開始,Keller與Pete Bannon一起領(lǐng)導(dǎo)FSD芯片項(xiàng)目。當(dāng)時(shí),Tesla決定開發(fā)自己的芯片,因?yàn)樗麄儺?dāng)時(shí)聲稱,他們沒有看到適合解決自動(dòng)駕駛問題的替代方案。
Keller表示,麻煩始于Tesla放棄使用Nvidia的軟件,而當(dāng)時(shí)Tesla仍在HW 2.0中使用Nvidia的芯片。“Tesla做出了不使用Nvidia軟件的決定”。
正如Keller所解釋的那樣:“問題是,Cuda的cuDNN(Cuda深度神經(jīng)網(wǎng)絡(luò)庫(kù))的大部分庫(kù)都是專有的,今天依然如此。當(dāng)你使用專有軟件時(shí),即使你對(duì)它進(jìn)行了測(cè)試,也不一定能確定它在部署時(shí)會(huì)做出什么。”
因此,Tesla編寫了自己的代碼。
Keller解釋說:“除了安全問題,調(diào)試Tesla自己的代碼要比猜測(cè)專有庫(kù)中發(fā)生了什么要簡(jiǎn)單得多。”
Keller總結(jié)道:“最終,Tesla的軟件是已知的、可測(cè)試的,而且運(yùn)行速度更快。自己編寫軟件是一個(gè)明智的決定?!?/p>
Keller還指出,Nvidia的解決方案“既昂貴又專有”,即使OEM廠商構(gòu)建了自己的堆棧,或者想在Nvidia的AV軟件棧中添加自己的東西,最終也“不得不使用一些Nvidia軟件”。這是因?yàn)樗麄儫o法檢查Nvidia SoC上的代碼。
安全論點(diǎn)??
Nvidia的DRIVE OS并非免費(fèi)。據(jù)Nvidia稱,它是“授權(quán)”給所有購(gòu)買NVIDIA DRIVE Orin SoC的客戶的。該公司發(fā)言人解釋說,DRIVE OS有安全認(rèn)證和非安全認(rèn)證兩種版本(基于Linux構(gòu)建,而Linux本身目前尚未獲得安全認(rèn)證)。“我們的安全認(rèn)證軟件附有使用規(guī)則列表,客戶必須遵守這些規(guī)則才能繼續(xù)獲得認(rèn)證。因此,客戶不能修改我們提供的系統(tǒng)級(jí)組件。”
盡管Nvidia對(duì)修改其軟件諱莫如深,但Nvidia拿到了一些領(lǐng)先OEM的訂單。
為什么呢?
其中一個(gè)原因就是安全。
值得認(rèn)可的是,Nvidia清楚地意識(shí)到,它必須為客戶提供功能安全標(biāo)準(zhǔn)(ISO26262)認(rèn)證的軟件。公司發(fā)言人表示,Nvidia Drive OS 6.0最近通過了“26262:2018內(nèi)部認(rèn)證,可用于ASIL-D級(jí)以下的車載應(yīng)用”。此外,“我們正在與獨(dú)立認(rèn)可評(píng)估機(jī)構(gòu)TüV SüD對(duì)DRIVE OS 6.0進(jìn)行安全認(rèn)證,就像我們對(duì)DRIVE OS 5.2所做的那樣”。
當(dāng)被問及Nvidia DRIVE OS的ASIL-D認(rèn)證是否會(huì)讓車廠在自動(dòng)駕駛方面感到放心時(shí),Tenstorrent的Keller說:“我們不知道。當(dāng)ASIL-D認(rèn)證簡(jiǎn)單組件時(shí),其價(jià)值非常明顯,但當(dāng)構(gòu)建像自動(dòng)駕駛這樣非常復(fù)雜的系統(tǒng)時(shí),我們就不太確定ASIL-D認(rèn)證的價(jià)值以及該認(rèn)證能確保什么了?!?/p>
開源軟件與授權(quán)軟件???
PrecisionPro Engineering是一家新成立的咨詢公司,公司主要成員有兩位功能安全專家Brian Cano、Nandip Gohoel和一位功能安全經(jīng)理Keven Connelly。
Brian Cano認(rèn)為,圍繞Cuda的爭(zhēng)論“基本上可以歸結(jié)為開源軟件和授權(quán)軟件之間長(zhǎng)期存在的沖突”。
“一方面,授權(quán)軟件價(jià)格昂貴,但能提供持續(xù)的支持和改進(jìn);另一方面,授權(quán)軟件的靈活性較低,因?yàn)閯?chuàng)建者控制著用戶能用軟件做什么、不能做什么。這有助于減少安全威脅。”
開源軟件可以免費(fèi)使用、修改和分發(fā)。用戶可以根據(jù)個(gè)人需要添加功能和修改源代碼?!八哂懈叨鹊撵`活性,但也存在安全漏洞和后門漏洞的可能性。社區(qū)是唯一的支持來源,有時(shí)會(huì)落后于最新的技術(shù)發(fā)展。”
除了我們熟知的開源軟件與專有軟件的沖突之外,車廠還對(duì)在Nvidia安全平臺(tái)上運(yùn)行自己的軟件堆棧或修改從Nvidia許可的堆棧表示擔(dān)憂。
PrecisionPro Engineering的兩位功能安全專家認(rèn)為,OEM想要“自由修改底層驅(qū)動(dòng)代碼以提高性能、更多地控制GPU資源、減少延遲、降低開發(fā)成本等,同時(shí)開發(fā)自己的AV堆?!保@并非不合理。但Cuda庫(kù)的黑盒性質(zhì)對(duì)OEM廠商不太友好。
源碼的可用性?????????
Nvidia的Cuda庫(kù)源碼不向客戶提供,這在很大程度上是合乎邏輯的,因?yàn)镹vidia的驅(qū)動(dòng)程序是其競(jìng)爭(zhēng)優(yōu)勢(shì)所在。驅(qū)動(dòng)程序與硬件密切相關(guān)。PrecisionPro Engineerig的功能安全專家認(rèn)為,開放驅(qū)動(dòng)程序會(huì)“暴露 SoC的基本架構(gòu)”。
Nvidia的發(fā)言人明確表示:“公司通常會(huì)對(duì)底層庫(kù)的源碼保密。這一決定不會(huì)影響軟件的安全性或穩(wěn)定性。最重要的是,用戶有工具(如安全手冊(cè))來了解任何剩余風(fēng)險(xiǎn)和自己的責(zé)任”。
然而,這種觀點(diǎn)的另一面是,安全認(rèn)證的責(zé)任在于OEM和Tier 1。
另一位安全專家則表示:“當(dāng)軟件組件在其開發(fā)或安全認(rèn)證范圍之外使用時(shí),系統(tǒng)集成商必須進(jìn)行所謂的資格認(rèn)證。”
他解釋說:“從本質(zhì)上講,系統(tǒng)集成商必須將他們自己的一套要求映射到軟件組件上,并進(jìn)行自己的測(cè)試,以確保滿足他們的所有要求,并確保軟件在他們的環(huán)境中沒有錯(cuò)誤。系統(tǒng)集成商(和他們的安全評(píng)估員)可以自行決定所需的保證程度?!?/p>
簡(jiǎn)而言之,資格認(rèn)證可能是一項(xiàng)“艱巨的任務(wù)”。
Codeplay軟件有限公司首席商務(wù)官Charles Macfarlane表示同意?!白罱K是的,如果Nvidia不對(duì)所有代碼提供軟件分析工具,OEM/Tier 1將需要對(duì)代碼進(jìn)行全面驗(yàn)證?!?/p>
一些車廠可能會(huì)給自己的汽車貼上SAE L2的標(biāo)簽,將軟件故障和隨后發(fā)生的事故歸咎于駕駛員的過失,從而尋求解脫。這顯然不是一個(gè)值得推薦的選擇。
障礙??????
雖然資格認(rèn)證是一大障礙,但OEM還有更多需要擔(dān)心的問題。除了授權(quán)二進(jìn)制文件和專有驅(qū)動(dòng)程序等問題外,專有軟件開發(fā)的其他缺點(diǎn)還包括Nvidia突然增加新功能或升級(jí)的“危險(xiǎn)”。
這可能會(huì)引發(fā)對(duì)車廠堆棧的破壞性調(diào)整或修訂。
顯然,OEM更希望避免被供應(yīng)商鎖定。他們也不想永遠(yuǎn)受制于Nvidia,因?yàn)镹vidia可能會(huì)突然決定改變?cè)S可條款或價(jià)格。
另一個(gè)問題是,Nvidia SoC(ASIL D)提供同構(gòu)/異構(gòu)硬件。由于AoU(Assumptions of Use)的存在,設(shè)計(jì)方法和汽車軟件棧只會(huì)變得更加復(fù)雜。PrecisionPro Engineerig的專家解釋說,它們必須進(jìn)行大量修改,甚至在某種程度上重新設(shè)計(jì),以應(yīng)對(duì)下一代Nvidia平臺(tái)。他們認(rèn)為,這將進(jìn)一步“增加”英偉達(dá)SoC的“架構(gòu)復(fù)雜性”,使開發(fā)人員更難編寫高效代碼。
這些行業(yè)觀察家證實(shí)了Keller所描述的他在Tesla使用Nvidia芯片的經(jīng)歷。他們指出,如果不能完全控制GPU硬件資源,OEM將無法使用Nvidia的SoC創(chuàng)建自己的完整AV堆棧。
開源軟件?
所以,答案就是開源嗎?如果不是,什么才是呢?
就Tenstorrent而言,該公司開源了所謂的“TT-Metalium”內(nèi)核級(jí)軟件堆棧。
該底層軟件平臺(tái)適用于CPU和Tenstorrent設(shè)備的異構(gòu)集合。據(jù)該公司稱,用戶可以直接訪問Tensix Core中的RISC-V處理器、NoC(Network-on-Chip)以及Matrix和Vector引擎。Tenstorrent的戰(zhàn)略是通過提供更好的硬件和易于使用的開源軟件棧來吸引AI開發(fā)人員。
Tenstorrent高級(jí)研究員Jasmina Vasiljevic將TT-Metalium描述為“在抽象層上完全可以與Nvidia的Cuda或OpenCL相媲美”。不過,Tenstorrent設(shè)計(jì)TT-Metalium并不是為了取代Nvidia的Cuda。她解釋說:“這是一種底層編程模型,使開發(fā)人員能夠在Tenstorrent硬件上命令編程內(nèi)核,并完全訪問所有硬件?!?/p>
該公司解釋說,Tenstorrent的目標(biāo)客戶是AI和HPC開發(fā)人員,他們希望在不受限制地訪問硬件的情況下編寫高效代碼。顯然,“開源”一直是Keller在Tenstorrent的指導(dǎo)原則之一。
盡管如此,TT-Metalium并不是一個(gè)更高級(jí)別的開源軟件,其目的是讓系統(tǒng)設(shè)計(jì)人員能夠更輕松地使用一種AI加速器,然后再切換到另一種。
同時(shí),據(jù)Codeplay的Macfarlane稱,UXL(Unified Acceleration)基金會(huì)(建立在開源和開放標(biāo)準(zhǔn)的基礎(chǔ)上)正在尋求為汽車和其他安全關(guān)鍵(SC)解決方案定義一個(gè)版本的SYCL。SYCL是一種更高級(jí)別的編程模型,可提高各種硬件加速器的編程效率。
這種開源軟件活動(dòng)最終可以滿足系統(tǒng)供應(yīng)商(即車廠)的需求,他們希望能夠自由地進(jìn)行創(chuàng)新和軟件編程,而不被特定的硬件和軟件平臺(tái)所束縛。但Macfarlane提醒說,不要過于簡(jiǎn)單樂觀地認(rèn)為這種開源軟件可以解決所有問題。
Macfarlane拒絕對(duì)工作組的日程安排發(fā)表評(píng)論,但他指出,UXL-SC(安全關(guān)鍵工作組)正在“朝著解決汽車問題邁進(jìn)”。他報(bào)告說,到目前為止,Denso和Mercedes已經(jīng)加入,汽車SoC供應(yīng)商也有望加入。
只要遵循Nvidia的API并使用Nvidia的庫(kù),車廠就有相當(dāng)大的自由度來開發(fā)Cuda應(yīng)用。但是,如果不能完全控制Nvidia的GPU硬件資源,OEM就無法使用Nvidia的SoC來創(chuàng)建自己的AV堆棧。