總體而言,作為 CPU 和 GPU 通用平臺的替代技術(shù),F(xiàn)PGA 能夠自適應(yīng)生成定制計算架構(gòu),滿足機器人的需求。因為擁有前所未有的靈活性,并能縮短設(shè)計周期,同時降低開發(fā)成本,F(xiàn)PGA 已經(jīng)z在各類知名工業(yè)機器人制造商和醫(yī)療機器人應(yīng)用中大量采用。在 “A survey of FPGA- based roboTIc compuTIng”中,讀者可以看到一份有關(guān)基于 FPGA 的機器人計算的調(diào)研,該調(diào)研展示了 FPGA 在機器人應(yīng)用領(lǐng)域的廣泛適用性。下面是對 FPGA 特征的詳細(xì)描述:
• 自適應(yīng):當(dāng)同時需要控制流和數(shù)據(jù)流時,CPU 和 GPU因為時延和響應(yīng)時間問題無法使用,而 FPGA 則能生成無與倫比的定制計算架構(gòu),滿足嚴(yán)格的實時要求和多重關(guān)鍵性要求。CPU 和 GPU 所采用的固定計算架構(gòu),限制了它們的整體能力,包括響應(yīng)時間和時延。
• 高性能:FPGA 通過建立深度流水線化的數(shù)據(jù)路徑(流計算)來提升計算性能,而不是像 CPU 和 GPU 那樣依靠計算單元數(shù)量的增加。流計算的工作原理是一個計算單元產(chǎn)生的數(shù)據(jù)立即被流水線中的下一個計算單元處理,這樣就免去了數(shù)據(jù)流通道中“提取-計算-存儲 (fetch-compute-store)”的環(huán)節(jié),便于數(shù)據(jù)產(chǎn)生者和消費者的運算操作,從而提升了性能。相反,由于存在架構(gòu)固定、核數(shù)量固定、指令集固定、存儲器架構(gòu)僵化等多重限制,CPU 和 GPU 只能以犧牲性能的方式進(jìn)行計算。
• 高能效:速度和功耗是數(shù)字電路的基本品質(zhì)因數(shù) (FOM,figures of merit)。功率是表示數(shù)字電路頻率和觸發(fā)率的函數(shù)。 FPGA 通過并行和直接執(zhí)行算法調(diào)節(jié)頻率。FPGA 保持較低頻率和較低切換率(無指令獲取)進(jìn)行計算,但與 CPU 和 GPU 的等效計算性能相比,F(xiàn)PGA 在更高的頻率下具有更大的并行性優(yōu)勢,從而客戶以實現(xiàn)更好的功率指數(shù)和更高的能效。
• 不浪費算力:FPGA 借助靈活性實現(xiàn)芯片利用率最大化以提升性能。動態(tài)功能交換(DFX,過去被稱為“部分重配置”)允許在 CPU 上運行的線程化應(yīng)用分時共享 FPGA。由此當(dāng)給定線程正在處理 FPGA 生成的結(jié)果時,另一線程能使用 FPGA 進(jìn)行不同的計算。
• 可預(yù)測:FPGA 幫助 CPU 和 GPU 卸載嚴(yán)格意義的實時計算,在執(zhí)行時間上提供納秒級預(yù)測能力,而且不會受到與 GPU 和 CPU 計算有關(guān)的軟件變更或抖動的影響。
• 可重配置:機器人算法仍處于高速演進(jìn)發(fā)展中,F(xiàn)PGA 能夠按需進(jìn)行動態(tài)重配置和更新。此外,還可以輕松地對 FPGA 進(jìn)行重新編程以滿足異構(gòu)需求,實現(xiàn) CPU 和 GPU 才能提供的通用能力。
• 安全:FPGA 能夠按需靈活地構(gòu)建安全電路,保障機器人數(shù)據(jù)流的安全。此外,F(xiàn)PGA 能充分利用重配置功能修正其硬件架構(gòu)的缺陷(避免硬件風(fēng)險)。這樣設(shè)計人員就能迅速解決在固定計算架構(gòu)上難以解決或者無法解決的安全風(fēng)險(避免未來的風(fēng)險,例如“熔毀”和“幽靈”)。
然而也有觀點認(rèn)為,盡管 FPGA 是機器人專家心目中理想的計算基干,但是它們提供的靈活性是以增加復(fù)雜性和所需的設(shè)計技能為代價的。“A survey of FPGA- based roboTIc compuTIng”列出了部分所需的額外技能。只有能夠全面綜合地運用含多核 CPU、GPU 和 FPGA 在內(nèi)的所有這些技術(shù),才能實現(xiàn)最優(yōu)異的機器人性能。實際不然,賽靈思所提供這種集成式片上系統(tǒng) (SoC) 解決方案,是將 CPU 通用軟件的可編程能力與 FPGA 自適應(yīng)硬件功能完美結(jié)合在了同一器件之中。
這些自適應(yīng) SoC 為機器人應(yīng)用提供了軟硬件兼有的高靈活性計算基礎(chǔ),并可提供高性能、低功耗、確定性、硬件可重配置、安全,以及自適應(yīng)特性等價值。
要點總結(jié):CPU 和 GPU 擅長控制流計算,而 FPGA 擅長數(shù)據(jù)流計算。自適應(yīng) SoC 解決方案為機器人應(yīng)用提供了軟硬件兼具的高靈活性計算基干,可提供低功耗、高性能、確定性、硬件可重配置、安全,以及自適應(yīng)等特性。