當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式動(dòng)態(tài)
[導(dǎo)讀]最近我們看到一篇文章,說(shuō)FPGA可能會(huì)取代CPU和GPU成為將來(lái)機(jī)器人研發(fā)領(lǐng)域的主要芯片。文章列舉了很多表格和實(shí)驗(yàn)數(shù)據(jù),證明了在很多領(lǐng)域 FPGA的性能會(huì)極大優(yōu)于CPU。并且預(yù)言

最近我們看到一篇文章,說(shuō)FPGA可能會(huì)取代CPU和GPU成為將來(lái)機(jī)器人研發(fā)領(lǐng)域的主要芯片。文章列舉了很多表格和實(shí)驗(yàn)數(shù)據(jù),證明了在很多領(lǐng)域 FPGA的性能會(huì)極大優(yōu)于CPU。并且預(yù)言FPGA將來(lái)可能會(huì)取代CPU和GPU現(xiàn)在的地位。但事實(shí)真的是這樣嗎?要搞清楚這個(gè)問(wèn)題,我們首先得對(duì)CPU 和FPGA都有足夠的了解。

FPGA這個(gè)詞可能很多人都有所耳聞,尤其是理工科的同學(xué)們大多數(shù)應(yīng)該都自愿或被迫被這個(gè)詞刷屏過(guò)。但要真追究起來(lái)FPGA到底是個(gè)什么東西。很多非相關(guān)專業(yè)的人都會(huì)陷入一臉迷茫。不過(guò)說(shuō)起開(kāi)發(fā)板,可能知道的人就很多了,有些人會(huì)以為FPGA就是開(kāi)發(fā)板。但實(shí)際上FPGA指的只是開(kāi)發(fā)板上面的那一小塊芯片而已(下圖黃圈處),整個(gè)開(kāi)發(fā)板的其余部件都是為了協(xié)同它工作,讓它發(fā)揮出它的性能而存在的。

 

FPGA開(kāi)發(fā)板,via google.com/youtube

可即使有心的同學(xué)曾經(jīng)查到了這里,或許也搞不懂它和CPU到底有什么區(qū)別,畢竟把它的位置換成CPU,整個(gè)開(kāi)發(fā)板看起來(lái)就變成一塊普通的電腦主板了嘛,感覺(jué)簡(jiǎn)直分分鐘接上硬盤和顯示器就可以開(kāi)始LOL了。確實(shí),不管從外形上來(lái)看還是實(shí)際的功能上來(lái)看,F(xiàn)PGA和CPU都表現(xiàn)得太像了,但在這兩者相似的外表之下,其內(nèi)部構(gòu)造其實(shí)有著根本性的差別,而這種差別也正是FPGA會(huì)被很多人認(rèn)為適合機(jī)器人開(kāi)發(fā)的原因,因?yàn)樗臉?gòu)造決定了它在處理機(jī)器人需要的很多運(yùn)算,尤其是在機(jī)器感知這方面的處理時(shí)的速度會(huì)比CPU快很多,同時(shí)還能將功耗控制在很低的水平。

CPU的構(gòu)造

在講FPGA之前,我們先從大家比較熟悉的CPU的數(shù)據(jù)處理方式講起。首先需要強(qiáng)調(diào)的一點(diǎn)是,處理我們指令的計(jì)算機(jī)元件本身是無(wú)法理解我們的指令的,它們只能理解作為組成CPU最基本的元件——晶體管能實(shí)現(xiàn)的兩種狀態(tài):“開(kāi)”和“關(guān)”的含義,對(duì)應(yīng)的就是1和0這兩個(gè)機(jī)器碼數(shù)字,這也是計(jì)算機(jī)的整個(gè)體系都基于二進(jìn)制建立的原因。而為了讓我們下達(dá)的各種各樣的指令變成CPU能理解的0和1,CPU需要一個(gè)專門的譯碼器來(lái)翻譯我們的指令。這個(gè)過(guò)程分為兩步: “取指”(從一個(gè)專門存放指令的存儲(chǔ)器中將需要執(zhí)行的指令提取出來(lái))和“譯碼”(根據(jù)特定的規(guī)則將指令翻譯成計(jì)算單元能夠理解的數(shù)據(jù))。CPU的結(jié)構(gòu)大概是這樣的

 

via wikipedia

其中的Control部分就是控制取指、譯碼等整個(gè)流程的部分,Cache是在高速的CPU與相對(duì)低速的內(nèi)存間為了提高從內(nèi)存獲得指令的效率而設(shè)置的一個(gè)臨時(shí)指令存儲(chǔ)器,DRAM則是速度比較慢的那一部分指令存儲(chǔ)器??梢钥吹?,真正的計(jì)算單元ALU只占了CPU結(jié)構(gòu)中不大的一部分。這樣的設(shè)計(jì)是有原因的。CPU存在的目的是作為通用計(jì)算機(jī)的處理核心,注意“通用”二字,這意味著塊核心必須具備處理各式各樣千奇百怪的指令要求的能力,并且因?yàn)橐幚韥?lái)自多個(gè)設(shè)備的請(qǐng)求,它必須擁有隨時(shí)中止目前的運(yùn)算轉(zhuǎn)而進(jìn)行其他運(yùn)算,完成后再?gòu)闹袛帱c(diǎn)繼續(xù)當(dāng)前運(yùn)算的能力。把這些話看完你可能都快睡著了,但在CPU內(nèi)這些都要求在一瞬間完成。所以CPU需要有非常復(fù)雜的邏輯控制單元和這套獨(dú)特的指令翻譯結(jié)構(gòu)。這都是保證CPU能順利完成它的使命的必須的東西。可以說(shuō),在計(jì)算效率和通用性上CPU犧牲前者選擇了后者。

FPGA的結(jié)構(gòu)

而FPGA最早是從專用集成電路發(fā)展而來(lái)的半定制化的可編程電路。從誕生的那一天起它的身世就決定了它不像CPU那樣可以靈活的處理各種沒(méi)有見(jiàn)過(guò)的指令,而只能根據(jù)一個(gè)固定的模式來(lái)處理輸入的數(shù)據(jù)然后輸出,F(xiàn)PGA的結(jié)構(gòu)是這樣的。

 

via CSDN

很簡(jiǎn)單,絕大部分都是計(jì)算單元(上圖中黃色部分其實(shí)就相當(dāng)于CPU結(jié)構(gòu)圖中綠色的部分),但沒(méi)有控制單元并不代表FPGA就不會(huì)執(zhí)行指令了,事實(shí)上 FPGA里控制單元的角色就是由圖中的每個(gè)控制單元和單元之間可編程的邏輯連接線來(lái)完成的,通過(guò)FPGA編程,開(kāi)發(fā)者可以更改FPGA的每個(gè)單元的運(yùn)算邏輯和單元之間的連接方式,從而使其達(dá)到和一般的運(yùn)行程序差不多的效果。它與CPU的不同,在于它無(wú)法應(yīng)對(duì)沒(méi)有被編程過(guò)的指令。編程方式一旦確定,F(xiàn)PGA 就只能根據(jù)被編程的處理邏輯和方式來(lái)處理特定的數(shù)據(jù)輸入。但這樣的架構(gòu)換來(lái)的是FPGA內(nèi)部幾乎全是計(jì)算單元,因此FPGA的實(shí)際運(yùn)算能力會(huì)比看起來(lái)強(qiáng)得多,尤其是在運(yùn)行簡(jiǎn)單但重復(fù)性高的任務(wù)的時(shí)候,由于簡(jiǎn)單,因此很少的幾個(gè)邏輯單元,甚至一個(gè)就能獨(dú)立輸出這個(gè)運(yùn)算的結(jié)果。而由于省去了CPU的取指和譯碼兩個(gè)步驟,F(xiàn)PGA重復(fù)運(yùn)行相同代碼的效率得到了極大的提高。

有一個(gè)比喻打得很恰當(dāng),CPU就像大學(xué)里一位德高望重的老教授,積分微分啥都會(huì)算,但畢竟它只有一個(gè)人,當(dāng)計(jì)算任務(wù)太重的時(shí)候也會(huì)被累趴下,而FPGA這樣的結(jié)構(gòu),就像是整個(gè)小學(xué)里所有小學(xué)生組成的隊(duì)列,每個(gè)人都只會(huì)算簡(jiǎn)單的加減乘除,但有些量大但不復(fù)雜的運(yùn)算任務(wù)交給他們就是會(huì)比較快。

具體表現(xiàn)在性能上,很明顯的一點(diǎn)就是一般的CPU只能同時(shí)處理4到8個(gè)指令,而不算太差的只要FPGA優(yōu)化得當(dāng),可以同時(shí)處理256個(gè)甚至更多的指令。其實(shí)GPU的設(shè)計(jì)思路同F(xiàn)PGA類似,都是為了處理大量簡(jiǎn)單重復(fù)的運(yùn)算而出現(xiàn)的設(shè)備。但GPU的性能強(qiáng)悍的同時(shí)耗能也很高,而FPGA因?yàn)榫幊毯蛢?yōu)化都是直接在硬件層面進(jìn)行的,能耗會(huì)低很多。

機(jī)器開(kāi)發(fā)中的計(jì)算

現(xiàn)在我們可以敘述正題了。前文提到,F(xiàn)PGA在處理機(jī)器人需要的某些數(shù)據(jù)的時(shí)候的優(yōu)勢(shì)會(huì)比CPU大很多。沒(méi)錯(cuò),就是感知計(jì)算。我們不需要懂得太多專業(yè)知識(shí),只需要想象一下就可以明白其中原理。就像文章中提到的那套主流的位置追蹤算法SIFT的例子:SIFT的主要工作步驟有三步:1:通過(guò)特定的算法找出圖片中的關(guān)鍵點(diǎn),2:對(duì)關(guān)鍵點(diǎn)附加一個(gè)詳細(xì)的標(biāo)識(shí),3:通過(guò)不斷的對(duì)比新舊兩幅圖片上每個(gè)關(guān)鍵點(diǎn)的位置求出兩幅圖之間對(duì)應(yīng)位置的差別。[!--empirenews.page--]

不難發(fā)現(xiàn),整個(gè)過(guò)程重復(fù)性極高,并且其中并沒(méi)有過(guò)于復(fù)雜的運(yùn)算。因此使用FPGA進(jìn)行該算法的計(jì)算會(huì)比使用CPU快很多。事實(shí)上,文章中表示根據(jù)加州大學(xué)洛杉磯分校的一項(xiàng)相關(guān)的實(shí)驗(yàn)結(jié)果,F(xiàn)PGA在運(yùn)行SIFT指令時(shí)的執(zhí)行效率是CPU的足足30倍。處理速度快這么多,耗能又如此小。也難怪有些人會(huì)認(rèn)為 FPGA擁有取代CPU和GPU的能力了。

但FPGA真的能取代CPU和GPU嗎?

FPGA相對(duì)于CPU和GPU,在進(jìn)行感知處理等簡(jiǎn)單重復(fù)的任務(wù)的時(shí)候的優(yōu)勢(shì)很明顯,按照現(xiàn)在的趨勢(shì)發(fā)展下去,F(xiàn)PGA或許會(huì)在未來(lái)取代機(jī)器人開(kāi)發(fā)中 GPU的工作。因?yàn)镕PGA和GPU雖然都精于大量的重復(fù)運(yùn)算,但FPGA的能耗會(huì)遠(yuǎn)低于GPU??墒荈PGA或許永遠(yuǎn)沒(méi)有辦法取代CPU的地位,而事實(shí)上目前的各類應(yīng)用中,F(xiàn)PGA也多作為CPU的協(xié)處理器而出現(xiàn),而不是真正的核心運(yùn)算單元。而個(gè)中原因其實(shí)也很簡(jiǎn)單,正是我們之前提到過(guò)數(shù)次的一個(gè)詞:設(shè)計(jì)目的。

人類設(shè)計(jì)機(jī)器人的最終目的是希望它們能變得像我們一樣,用跟我們類似的方式思考,擁有獨(dú)立判斷形勢(shì)、處理任務(wù)的能力。我們目前還不是很了解大腦工作的具體原理,但無(wú)論從經(jīng)驗(yàn)還是直覺(jué)來(lái)看,類似人類的思維都不是由無(wú)數(shù)邏輯簡(jiǎn)單的堆積起來(lái)的。因?yàn)樗季S這件事物的復(fù)雜程度已經(jīng)遠(yuǎn)遠(yuǎn)超出了運(yùn)算的范疇。比如說(shuō),如果你想計(jì)算213 x 312而你想將它簡(jiǎn)化,你只需要很簡(jiǎn)單的將它分解成213個(gè)312相加,甚至是重復(fù)213次312個(gè)1相加。但如果你想算2的64次方呢?如果你想算 sin(27°)呢?甚至如果你想算log230呢?如果你一定要將其分拆成簡(jiǎn)單的運(yùn)算,你就會(huì)發(fā)現(xiàn)你需要的資源會(huì)以難以想象的速度增長(zhǎng),直到就連把全市的小學(xué)生都叫來(lái)也做不完的程度。

就目前的表現(xiàn)來(lái)看,人腦顯然不適合大規(guī)模并行計(jì)算。而更像是CPU那樣精于單一且深度的思考(運(yùn)算)。并且人腦的功能也與CPU的設(shè)計(jì)定位更吻合。因此無(wú)論如何,在腦科學(xué)有突破性進(jìn)展之前,人們還是會(huì)傾向于使用看起來(lái)更有潛力的CPU來(lái)作為機(jī)器人的核心運(yùn)算部件?;蛟S隨著FPGA的發(fā)展,機(jī)器人的越來(lái)越多感知部件的數(shù)據(jù)運(yùn)算會(huì)由FPGA來(lái)承擔(dān)(就像人類的小腦),但很明顯,一個(gè)部件的地位主要、核心與否,不是靠數(shù)量來(lái)判斷的。

不能否認(rèn)FPGA確實(shí)能在機(jī)器人開(kāi)發(fā)中發(fā)揮很大的作用。但綜合來(lái)看,它和CPU,甚至GPU更像是一種各司其職的地位,動(dòng)不動(dòng)就談替代,或許有失嚴(yán)謹(jǐn)。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉