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