過(guò)去十年的定義是各種技術(shù)領(lǐng)域的開(kāi)源創(chuàng)新。軟件堆棧的可公開(kāi)訪問(wèn)性質(zhì)使開(kāi)發(fā)人員社區(qū)能夠交換代碼并實(shí)現(xiàn)想法,以構(gòu)建超越組織邊界的協(xié)作杰作。很長(zhǎng)一段時(shí)間以來(lái),更廣泛的社區(qū)都沒(méi)有認(rèn)識(shí)到這一趨勢(shì)。最終,絕對(duì)的數(shù)量和質(zhì)量贏得了許多擁護(hù)者,開(kāi)源成為軟件事實(shí)上的黃金標(biāo)準(zhǔn),但開(kāi)源硬件呢?
在軟件不斷增長(zhǎng)的同時(shí),硬件開(kāi)發(fā)仍然是孤立的,并且以公司為中心,以創(chuàng)造競(jìng)爭(zhēng)優(yōu)勢(shì)。硬件的歷史充滿了導(dǎo)致不同規(guī)格出現(xiàn)的非協(xié)作運(yùn)動(dòng)。孤立的創(chuàng)新最終導(dǎo)致市場(chǎng)分散的例子很多。專有性質(zhì)并沒(méi)有成為可持續(xù)的業(yè)務(wù)優(yōu)勢(shì),而是成為瓶頸,并最終導(dǎo)致該標(biāo)準(zhǔn)的終結(jié)。索尼藍(lán)光就是這樣一個(gè)例子。
一個(gè)可能的原因可能是硬件是通過(guò) IP 保護(hù)獲得商業(yè)競(jìng)爭(zhēng)力的源泉,因此公司希望將其保留在內(nèi)部。顯然,這種方法并沒(méi)有擴(kuò)大規(guī)模,我們目睹了硬件平臺(tái)的增長(zhǎng)速度要慢得多。例如,當(dāng)人工智能 (AI) 出現(xiàn)精益但要求苛刻的用例時(shí),該行業(yè)還沒(méi)有準(zhǔn)備好。現(xiàn)有參與者試圖推動(dòng)傳統(tǒng)的 FPGA、GPU 和 CPU 解決方案,這些解決方案對(duì)于不斷發(fā)展的推理行業(yè)所需的計(jì)算來(lái)說(shuō)并不理想。很長(zhǎng)一段時(shí)間,Arm 不斷創(chuàng)新,提供了非常進(jìn)化的指令集,但最終也未能跟上步伐。
這種情況最終導(dǎo)致亞馬遜和谷歌看到了定制計(jì)算解決方案的潛力,因此他們開(kāi)始投資半導(dǎo)體以開(kāi)發(fā)推理定制處理解決方案。它為開(kāi)源硬件驅(qū)動(dòng)的車輛帶來(lái)了一線希望,這將有助于縮小數(shù)據(jù)科學(xué)與大數(shù)據(jù)驅(qū)動(dòng)的智能之間的鴻溝。本文追溯了開(kāi)源軟件的歷程,并總結(jié)了一些經(jīng)驗(yàn)教訓(xùn),可以幫助開(kāi)源硬件通過(guò)采用最佳實(shí)踐來(lái)迎頭趕上。
圖 1:Arm 及其指令集架構(gòu) (ISA) 多年來(lái)一直是知識(shí)中心。
開(kāi)源秘方
二十多年前,當(dāng)開(kāi)源概念首次出現(xiàn)時(shí),圍繞貨幣化存在許多問(wèn)題,隨著時(shí)間的推移,各種模型也在演變。如今,超過(guò) 3500 萬(wàn)開(kāi)發(fā)人員為代碼做出了貢獻(xiàn),為數(shù)十億臺(tái)設(shè)備提供動(dòng)力,并由此產(chǎn)生了巨大的價(jià)值。從 MongoDB(79 億美元)和 Elastic(73 億美元)的公開(kāi)上市以及微軟(70 億美元)、IBM 的 RedHat(340 億美元)和 Salesforce 的 MuleSoft 的大額收購(gòu)公開(kāi)上市后就可以看出上市65億美元。
今天,所有大公司都在以某種形式使用開(kāi)源,因?yàn)樗兄趧?chuàng)建優(yōu)化的軟件來(lái)解決手頭的問(wèn)題。雖然計(jì)算機(jī)和電信行業(yè)是開(kāi)源軟件的主要消費(fèi)者,約占其軟件需求的 60%,但工業(yè)和醫(yī)療保健企業(yè)正在迅速采用。開(kāi)源大大減少了開(kāi)發(fā)時(shí)間,因?yàn)榇蠖鄶?shù)模塊都以經(jīng)過(guò)良好測(cè)試和優(yōu)化的形式提供,隨時(shí)可以集成到軟件堆棧中以解決特定問(wèn)題。
開(kāi)源提供了一個(gè)經(jīng)典的營(yíng)銷課程:用戶在意識(shí)到之前就已經(jīng)是客戶了。當(dāng)他們意識(shí)到這一點(diǎn)時(shí),他們?cè)谒麄兊亩褩V惺褂昧巳绱硕嗟拈_(kāi)源代碼,以至于他們最好購(gòu)買許可證。從 Apache 孵化的許可證到 MongoDB、Elastic 和 Cockroach 提供的對(duì)商業(yè)更友好的許可證,該行業(yè)已經(jīng)走了很長(zhǎng)一段路。這就是開(kāi)源在最初幾天沒(méi)有任何明確的營(yíng)銷需求就開(kāi)創(chuàng)了免費(fèi)增值模式的方式。
開(kāi)源軟件成功的秘訣是在任何新旅程的核心發(fā)現(xiàn)問(wèn)題,并讓商業(yè)模式隨著時(shí)間的推移而出現(xiàn)。隨著您解決更重要的問(wèn)題,您的源代碼需求會(huì)增長(zhǎng),從而擴(kuò)大項(xiàng)目規(guī)模,吸引更多資金。這就是為什么上四分位數(shù)的開(kāi)源項(xiàng)目會(huì)產(chǎn)生顯著的開(kāi)發(fā)者吸引力,而其中大多數(shù)是免費(fèi)的社區(qū)項(xiàng)目。
理解為什么有人會(huì)為已經(jīng)開(kāi)源的代碼付費(fèi)也很重要?答案在于一段時(shí)間內(nèi)的專門(mén)支持、安全修復(fù)和維護(hù)。它導(dǎo)致滿足不同行業(yè)需求水平的不同開(kāi)放程度。
Linux的出現(xiàn)
今天,開(kāi)源軟件在代碼大師班和商業(yè)模式方面有了顯著的發(fā)展。每當(dāng)一家領(lǐng)先的公司參與開(kāi)源開(kāi)發(fā)時(shí),它都會(huì)成為創(chuàng)建龐大而持久的堆棧的催化劑。
Google 開(kāi)創(chuàng)了各種成功案例,例如 Android 移動(dòng)操作系統(tǒng)、TensorFlow 機(jī)器學(xué)習(xí)和 Kubernetes,用于部署、擴(kuò)展和容器化應(yīng)用程序管理。有幾個(gè)企業(yè)家努力解決問(wèn)題的年輕創(chuàng)業(yè)公司的例子。隨著大眾對(duì)這個(gè)問(wèn)題的突出認(rèn)識(shí),解決方案的規(guī)模和數(shù)量都在增長(zhǎng),從而帶來(lái)了商業(yè)成功的故事。
在這個(gè)增長(zhǎng)過(guò)程中,關(guān)鍵的組成部分是 Linux 的出現(xiàn)。它作為一個(gè)可擴(kuò)展的主干,可以吸收如此多的不同組件和硬件并無(wú)縫提供高性能。無(wú)論是提供強(qiáng)大的主干來(lái)處理嚴(yán)格的時(shí)序要求,還是創(chuàng)建空間以適應(yīng)處理特定架構(gòu)元素的不同方式,Linux 都在成功交付成果的同時(shí)滿足了苛刻的用例。
構(gòu)建類似 Linux 的膠水
有了關(guān)于開(kāi)源軟件進(jìn)化的背景,讓我們將探索轉(zhuǎn)向開(kāi)源硬件世界。并不是說(shuō)開(kāi)源硬件沒(méi)有取得任何成功;無(wú)論硬件在哪里開(kāi)源,它都會(huì)成為一個(gè)巨大的成功故事。Arduino 是一款開(kāi)源微控制器板,它是開(kāi)源硬件如何徹底改變?nèi)藗兪褂糜布M(jìn)行研究和項(xiàng)目相關(guān)活動(dòng)的方式的典型代表。
隨著計(jì)算世界日益增長(zhǎng)的需求,開(kāi)源硬件的想法正在迅速普及。幾家小型企業(yè)嘗試使用模塊化硬件,為客戶提供配置首選硬件模塊的選擇。這個(gè)想法令人興奮,使用戶能夠?yàn)閾P(yáng)聲器、攝像頭和來(lái)自不同供應(yīng)商的網(wǎng)絡(luò)模塊使用一流的硬件,并創(chuàng)建他們想要的任何設(shè)備。
但這種方法未能轉(zhuǎn)化為可擴(kuò)展的產(chǎn)品和消費(fèi)者的大規(guī)模采用。原因可以追溯到缺乏可以使硬件模塊化真正可用的驅(qū)動(dòng)硬件代碼。孤立且高度捆綁的開(kāi)發(fā)使得在最終產(chǎn)品中實(shí)現(xiàn)模塊化幾乎是不可能的。隨著處理器達(dá)到違反摩爾定律的地步,前所未有地需要開(kāi)創(chuàng)性的創(chuàng)新來(lái)匯集該行業(yè)的主流智慧。
正如我們看到硬件領(lǐng)域?qū)﹂_(kāi)源的需求一樣,先驅(qū)者可以從其開(kāi)源軟件兄弟那里吸取一些教訓(xùn)。開(kāi)源軟件旨在彌補(bǔ)領(lǐng)先供應(yīng)商提供的軟件的性能差距。因此,重點(diǎn)從來(lái)不是用戶友好性,而是在具有挑戰(zhàn)性的環(huán)境中更高的可靠性和代碼性能。
Linux 成為一種流行的服務(wù)器操作系統(tǒng)。MySQL 在該領(lǐng)域向 Oracle 發(fā)起了挑戰(zhàn),純粹是基于架構(gòu)穩(wěn)健性和模塊化方法的優(yōu)點(diǎn),并解決了單體架構(gòu)的缺點(diǎn)。今天,我們看到亞馬遜將幾乎所有的軟件模塊作為單獨(dú)的服務(wù)出售,這在早期的單一軟件理念中是不可能的。
關(guān)鍵問(wèn)題是,開(kāi)源硬件的Linux等價(jià)物是什么?挑戰(zhàn)在于硬件的復(fù)雜性,使它幾乎不可能構(gòu)建一個(gè)類似Linux的膠水,將所有硬件連接在一起。因此,在建立民主的硬件生態(tài)系統(tǒng)方面,物理、法律和經(jīng)濟(jì)障礙從未受到真正的挑戰(zhàn)。在第一部分中,物理限制是相當(dāng)復(fù)雜的,并限制了真正的Linux等價(jià)于開(kāi)源硬件突破的發(fā)展。但5G從開(kāi)放硬件(如無(wú)線電接入網(wǎng)絡(luò)(RAN))中脫穎而出,這表明它是可以想象和創(chuàng)造的。
下一個(gè)關(guān)鍵問(wèn)題是,像RISC-V這樣的指令集體系結(jié)構(gòu)(ISA)是否可以觸發(fā)開(kāi)源硬件的擴(kuò)散,Linux為平滑同化各種異類組件提供了一條途徑。如果是這樣的話,什么阻止了早期玩家建立這樣一個(gè)生態(tài)系統(tǒng)是很重要的。
圖3:Microsemi在其FPGA設(shè)計(jì)中實(shí)現(xiàn)了RISC-V內(nèi)核。
在很長(zhǎng)一段時(shí)間里,ARM扮演著知識(shí)中心的角色,為那些不愿意被束縛在流行選項(xiàng)上的玩家?guī)?lái)了最好的指令集。RISC-V在開(kāi)源硬件領(lǐng)域提供了一個(gè)獨(dú)特的機(jī)會(huì),在ARM可能被并入一家大型半導(dǎo)體公司后,它有可能成為黃金標(biāo)準(zhǔn)。
隨后的挑戰(zhàn)在于新工具的學(xué)習(xí)曲線。在一段令人難以置信的時(shí)期,硬件行業(yè)在驗(yàn)證 RTL 代碼的方式上并沒(méi)有發(fā)生巨大的變化。SV-UVM 是一種事實(shí)上的選擇,它逐漸發(fā)展并創(chuàng)造了一個(gè)重要的舒適區(qū)。創(chuàng)建一個(gè)新的解決方案并期望人們愉快地采用它是具有挑戰(zhàn)性的。價(jià)值必須大得多,才能觸發(fā)大規(guī)模采用新的設(shè)計(jì)和驗(yàn)證工具集,以創(chuàng)建優(yōu)雅的硬件設(shè)計(jì)。
在諸如 PCIe、USB、OpenCL 和 OpenCV 等開(kāi)源硬件規(guī)范方面有成功案例,然而,通往真正開(kāi)源硬件的道路卻要經(jīng)歷生產(chǎn)難題。這將涉及下一個(gè) TSMC 的出現(xiàn),它可以支持靈活的運(yùn)輸,并為 RTL 驗(yàn)證流片創(chuàng)建端到端管道,與開(kāi)源硬件的新世界保持一致。說(shuō)起來(lái)容易做起來(lái)難,因?yàn)榕c投資不大的軟件不同,在硬件方面,每一層都以緊密耦合的方式構(gòu)建了數(shù)十年,為開(kāi)源硬件讓路而拆除成本很高。
現(xiàn)有工具的增量演進(jìn)可能需要一個(gè)世紀(jì)才能達(dá)到改變業(yè)務(wù)的開(kāi)源硬件階段。解決方案是通過(guò)明確的路線圖開(kāi)啟一個(gè)不同思維和突破的新時(shí)代。除非開(kāi)源硬件的先驅(qū)者找到端到端問(wèn)題的答案,否則采用和建立一個(gè)事實(shí)上的 Linux 等效物將發(fā)現(xiàn)有限的接受者。對(duì)設(shè)計(jì)工具和生產(chǎn)的投資需要通過(guò)大規(guī)模的技能再培訓(xùn)來(lái)取得成功,以使設(shè)計(jì)社區(qū)大規(guī)模采用新的工具鏈來(lái)創(chuàng)建敏捷的硬件開(kāi)發(fā)。
審核編輯:郭婷
評(píng)論