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