
隨著上線的物聯網 (IoT) 設備數量持續增加,運算能力正轉移到邊緣,以緩解這類設備對雲端和資料中心造成的壓力。在運算能力、儲存容量和速度的提升下,邊緣運算已取得了長足的進步。邊緣運算能夠透過在本地處理和分析資訊來減輕資料中心的壓力,無需將資料發送到雲端和資料中心進行處理和分析。
不知不覺中,邊緣運算將會無處不在,處理來自您家裡、公共基礎設施、工廠和企業中各種設備的資料。由於邊緣運算的大規模成長,許多公司正在尋找最佳方式來改善其現有的 IT 基礎設施,以利用這一趨勢。公司正在開發各種人工智慧 (AI) 解決方案,特別是針對可以在邊緣電腦上執行的預測和推論分析。
然而,機器學習模型不僅變得更加先進,而且所佔用的空間也越來越大。在過去幾年中,用於影像辨識和語音辨識的機器學習模型與當今的模型相比,其規模顯著增加。這對在邊緣處理大量資料的速度和瓶頸造成了挑戰。為了實現強大的運算、即時決策和高速處理,公司正在為其系統配置性能加速器,以在邊緣實現最佳性能。
什麼是性能加速器?
性能加速器,也稱為硬體加速器,是能夠加速某些工作負載的微處理器。通常,可加速的工作負載會卸載到性能加速器,這些加速器在執行人工智慧、機器視覺和深度學習等工作負載方面效率更高。性能加速器整合了通用處理器和專用處理器,使其能夠同時協同工作來執行任務。這之所以可行,是因為性能加速器能夠執行平行運算而非序列運算。
平行運算處理系統能夠在不同的處理器中同時處理多個任務。應用此流程將帶來更高的性能、處理速度的大幅提升,以及每個處理器的更低工作負載。這使其成為推論機器學習的最佳方法,這在人工智慧嵌入式系統應用中很常見,例如自動駕駛汽車、電子閘門、交通管理以及許多涉及電腦視覺的應用。
處理器加速器
1. 多核心 CPU
2. GPU (圖形處理單元)
3. VPU (視覺處理單元)
4. FPGA & ASIC (現場可編程邏輯閘陣列)
儲存與連接加速器
5. NVMe 儲存
6. 運算儲存
7. PCIe 協定
它們有什麼好處?
摩爾定律的終結在過去十年中已被提及。根據摩爾定律,今天的 CPU 比 1990 年快 300 倍,但由於處理器單執行緒性能 (SpecINT) 和頻率速度 (MHz) 的成長在近年來趨於平穩,這項定律已不再適用。持續成長的部分是電晶體和核心數量。這在整體性能成長中造成了不平等。話雖如此,透過實施平行處理,您仍然可以利用日益成長的不平等,並彌補其他成長規格領域的差距。

資料來源:Chuck Moore,2011 年,「百億億級電腦系統中的資料處理」,《高速運算 Salishan 會議》,2011 年 4 月 27 日
通常,嵌入式系統應用在執行機器視覺或深度學習時需要高運算能力和儲存容量。因此,當您想要應用性能加速時,請務必考慮影響機器學習性能的三個主要因素,這些因素是運算能力、記憶體頻寬和通訊速度。透過為您的邊緣電腦配備更具領域特定性的加速處理器,您可以應對日益成長的資料流挑戰,並創建一台強大的邊緣電腦。話雖如此,下文我們將進一步解釋基本的硬體加速器,包括多核心 CPU、GPU、VPU、FPGA、ASIC,以及高速儲存和處理協定,包括 NVMe、運算儲存和 PCIe 4.0。性能加速。
1. CPU - 中央處理單元
與其浪費時間和金錢來縮小元件並使其更高效,不如提出更高品質的解決方案。使用平行運算與稱為多指令、多資料 (MIMD) 的設計,每個特定的指令集都可以由每個處理器或核心完成。這都是在一個時鐘週期內完成的,方法是將任務分解為多個子任務,並同時平行執行。因此,您需要選擇可以支援此技術的 CPU 規格,以下是一些需要考慮的因素:
- 時脈速度
- 核心數量
- 多執行緒
- 記憶體支援和通道

時脈速度
時脈速度本質上是每秒執行的週期數,例如,一個 3.4GHz 的處理器每秒可以執行 31 億個週期。這很重要,因為邊緣運算正在執行大量的任務和操作,尤其是在執行機器學習演算法時。為了完成更多任務,處理器需要更高的時脈速度,這將導致更快的通用運算速度。
重要的是要了解不要將 CPU 的時脈速度與不同製造商或世代的 CPU 進行比較,因為它們並非總是時脈速度越快就越快。例如,第 7 代 Intel Core i5-7500 3.4GHz 並不比第 10 代 Intel Core i5-10500 3.1 GHz 更強大,儘管後者時脈速度較低。也就是說,在選擇要配置到系統中的 CPU 時,您還需要考慮其他因素。
核心數量
核心數量的經驗法則是,處理器擁有的核心越多,處理速度就越快,並且能夠處理和執行更多的平行運算。多核心處理對於可以利用多個核心的繁重工作負載非常出色。多個核心同時運行一個已被分解用於平行處理的更大任務的子任務。因此,運行任務的核心越多,處理速度越快,功耗越低。例如,雙核心處理器在處理指令時可以比單核心處理器以更快的速度運行,同時消耗更少的能量。
此外,它更高效,耗能更少,且時脈速度快兩倍。多核處理器擁有更多電晶體、更短的連接、更高的容量和更小的電路,運行速度更快。對於人工智慧應用,您至少需要 8 個核心或強大的 CPU 處理器,例如 Intel 第 10 代 Intel Core i9 處理器,它擁有 10 個核心和 20 個執行緒。
多執行緒
在判斷 CPU 運算能力時,CPU 核心和執行緒之間存在著密切的關係。核心是實際的實體硬體元件,而執行緒則指管理任務的虛擬核心數量。它是平行運算中同步執行的並行程式設計的執行單元。這就是多執行緒能夠同時執行多個任務的方式,並且每個執行緒在完成任務時可以獨立執行,同時共享資源。
此外,英特爾透過超執行緒技術將平行運算帶入了終端使用者電腦。這是一種 CPU,在作業系統中,它表現得像有兩個邏輯 CPU。這意味著,作業系統會為每個核心識別出兩個 CPU,儘管硬體上只有一個核心,每個 CPU 核心只有一套執行資源。在 AMD 晶片中,這稱為「同步多執行緒 (SMT)」,這基本上是一種與英特爾超執行緒類似的技術。話雖如此,核心和執行緒的數量與 CPU 的效率和多任務處理能力呈正相關。
記憶體支援與通道
記憶體控制器直接內建於現代 CPU 中,這導致不同類型的 CPU 支援不同的記憶體速度。記憶體速度表示資料傳輸速度,並以 MHz 測量,速度越高,資料傳輸越快。因此,請注意支援的記憶體大小和記憶體類型。例如,支援高達 2133MT/s DDR4 速度的 CPU,並不表示它在 DDR3 記憶體上支援這些速度。
此外,CPU 的通道通常指連接處理器和記憶體之間通訊的通道。您需要更多的通道才能實現更快的資料交換速度。因此,您需要利用支援至少雙通道記憶體或更多通道的現代 CPU,以在主機板上的 DIMM 插槽中安裝額外的 RAM 模組。話雖如此,詳細了解 CPU 規格而不僅僅是一個功能是至關重要的,而擁有更多的知識後,您可以根據您的應用需求選擇最相容的 CPU。
2. GPU - 圖形處理單元
為了說明 CPU 和 GPU 在動物界的差異,CPU 就像大象,強大但數量少;而 GPU 就像螞蟻,體積小但數量龐大。這就是比較運算能力的方式,特別是 GPU 相較於 CPU 核心的數量。儘管最初是為影像處理和渲染而設計,現今的 GPU 應用範圍更廣,特別是在涉及大量資料的計算中。
現代 GPU 的巨大平行處理能力使電腦能夠即時處理數十億條記錄,加速應用程式中較重的部分,而其餘部分則繼續在 CPU 等其他組件上運行。GPU 在結合大型資料集、非結構化資料和更複雜統計分析的向量計算中特別出色,這些在資料科學,尤其是機器學習演算法中很常見。例如,在處理基因組定序時,GPU 可以在數分鐘內完成,而 CPU 則需要數天。因此,GPU 不僅與繁重的圖形計算相容,它也非常適合 AI、機器學習和深度學習應用。
在選擇最適合嵌入式運算的 GPU 時,您需要選擇能夠長期使用並透過整合和集群實現可擴展性的 GPU。因此,擁有生產級或資料中心 GPU 對於您設備的耐用性和可靠性至關重要。目前 GPU 市場有兩個主要參與者,即 NVIDIA 和 AMD。兩家製造商都提供各種 GPU 系列,並在不同的名稱下實施了許多類似的技術。

此外,Nvidia GPU 的核心稱為 CUDA 核心,而 AMD GPU 則稱為串流處理器,它們都指的是 GPU 內部的核心。Nvidia 也推出了 Tensor 核心,它專為機器學習運算而設計,可以在一個時脈週期內運行混合精度運算。
與 CPU 不同,比較不同製造商的 GPU 核心無法準確指示每個 GPU 的圖形能力,最好比較兩個具有相同架構的 GPU 卡以進行更準確的比較。為您的邊緣運算效能加速器選擇正確的 GPU 對於部署可能是有益的。以下是一些重要的因素,可確保您的 GPU 適合您的嵌入式系統模型。

時脈速度
與 CPU 類似,GPU 的時脈速度以 MHz 衡量,表示 GPU 核心每秒執行的計算次數。這意味著如果您希望 GPU 提供更快、更強大的效能,則需要更高的時脈速度。您可以查看核心時脈速度和提升時脈速度,以便更好地理解 GPU 所提供的功率。例如,NVIDIA GeForce GTX 1050 Ti 的基本時脈速度為 1290MHz,在繁重工作負載下可提升至 1392MHz。將此 GPU 嵌入工業電腦(例如 Premio 的 VCO 6000 系列)中,它可以快速執行用於視覺應用任務的圖像識別機器學習演算法,例如魚類加工廠中的推理應用、人臉識別和機場的安全身份檢查。
記憶體:類型、大小和頻寬
圖形部分的記憶體是選擇 GPU 規格時最重要的因素。GPU 的圖形雙倍資料速率 (GDDR) 中使用的是記憶體基礎 SDRAM(同步動態隨機存取記憶體)。這就是製造商在他們的 GPU VRAM 中使用的,例如 GDDR5、GDDR5x 和 GDDR6 VRAM。VRAM 的記憶體以 GB 為單位測量,更大的大小對於您儲存大量圖形資料的記憶體來說更好。如果您的 GPU 沒有足夠的記憶體,您就無法將更大的機器學習模型大小放入您的 GPU 中。
擁有大容量記憶體的同時,您也需要巨大的記憶體頻寬。記憶體頻寬是記憶體時脈速度、記憶體匯流排寬度和記憶體每時脈傳輸速度的總乘積。記憶體匯流排寬度就像允許更多資料傳輸的通道,以位元為單位測量。這三個因素越高,您的 GPU 就會越強大。這使得 GPU 能夠處理複雜的機器學習工作負載。例如,NVIDIA GeForce GTX 1050 Ti 具有 4GB GDDR5 類型,記憶體頻寬為 112GB/秒,記憶體介面寬度為 128 位元。此 GPU 用於 Premio 的智慧自動化工廠案例研究。
3. VPU – 視覺處理單元
儘管 GPU 可用於圖形或深度學習,但工程師們已開發出一種更小巧、更緊湊的處理單元,非常適合部署在邊緣。它被稱為視覺處理單元 (VPU)。VPU 是一種專為加速機器學習和人工智慧工作負載而設計的微處理器。VPU 專門支援電腦視覺的圖像處理任務。話雖如此,Intel 已開發出一款功能強大但外形尺寸小巧、功耗低的處理器。內嵌的晶片稱為 Movidius Myriad X,其包含專為神經網路、圖像處理和視覺加速器設計的高階架構。

因此,應用 VPU 將提供更高的隱私性、零延遲、更快的效能和更低的功耗。這是因為所有這些都發生在邊緣,無需與雲端互動,而且您可以堆疊多個 USB 隨身碟形狀的 VPU,輕鬆將運算能力加倍。這對於效能加速器來說非常令人興奮,特別是那些涉及視覺的應用,VPU 可以減輕視覺任務的負擔,讓 CPU 和 GPU 運行其他程式。
4. FPGA 和 ASIC
近年來,FPGA 和 ASIC 的引入越來越受歡迎。FPGA 代表現場可程式閘陣列,是一種靈活的積體電路,由邏輯區塊、I/O 單元和互連資源組成,可根據所需的應用功能完全客製化和程式化。這種晶片可以透過更改 I/O 連接和邏輯區塊的不同組合來多次重新配置。FPGA 存在於各種機器視覺設備中,通常與攝影機一起嵌入到後端部分。

FPGA 因其靈活性而非常方便,當重新配置晶片時,您無需更改硬體,只需從軟體方面更新功能即可。有時在獲得最佳配置後,FPGA 設計會實施到 ASIC 架構中。ASIC 代表應用專用積體電路,它是一種效率更高的晶片,專為執行特定任務而設計。
與 FPGA 不同,ASIC 是永久性的,一旦生產出來,它就只能運行最初設計的任務。因此,開發人員通常會先使用 FPGA 來找出 AI 演算法的最佳晶片設計。然後,在找出最佳組合後,他們就可以開始配置 ASIC 的設計。有些開發人員堅持使用 FPGA,因為生產 ASIC 硬體非常昂貴,特別是因為它是一條單向路線。ASIC 革命性創新中最著名的例子之一是 Google 客戶開發的 ASIC,稱為 Google Cloud TPU。這是一種專門設計用於高效加速機器學習工作負載的 ASIC。
儲存和高速連接
接下來要確保您能充分利用效能加速器的方法是,確保您擁有最快的儲存和連接。透過改進系統中的許多組件,您可以提高效能並減少瓶頸。消除瓶頸將創建一個最佳效能的系統。如前所述,這些因素包括儲存技術 NVMe、運算儲存和 PCIe 連接協定。
5. NVMe SSD
NVMe 是 PCIe SSD 的標準化介面,它代表非揮發性記憶體高速介面。它是一種專為存取高速資料儲存媒體而設計的協定,著重於平行處理以釋放 SSD 的真正潛力。首先,非揮發性儲存是一種即使整個系統關閉後,儲存裝置仍能保留資料的儲存裝置。它也被稱為持久性儲存。HDD 和 SSD 都是持久性儲存,但相比之下,SSD 在讀寫速度上快得多,並且沒有移動機械零件。這就是為什麼 SSD 非常適合邊緣電腦部署的原因。
其次,與 SATA 等傳統協定(SATA 誕生於 HDD 時代)相比,結合 SSD 和 NVMe 協定具有多種優勢。NVMe 利用平行運算,並在 PCIe 電氣匯流排上運行,以及快閃儲存的特性,可以同時支援多達 64,000 個指令,而 SATA 提供的指令佇列僅有 32 個單一指令,這是一個巨大的升級。最後,NVMe 儲存有各種外形規格,例如 M.2 NVMe SSD 儲存。這是您高速邊緣運算所需的儲存裝置,它將減少您系統的瓶頸。
6. 運算儲存
另一個值得關注的重要新興技術是運算儲存。所有這些新技術都持續嘗試消除速度瓶頸、提高運算效能並增加儲存容量。為解決這些挑戰,工程師們提出了新的解決方案,例如運算儲存。運算儲存基本上是將處理能力帶到儲存裝置本身。

為資料儲存和運算能力設定獨立處理器效率不佳,因為當大量資料需要在 CPU 和儲存裝置之間傳輸時,瓶頸會增加。它們基本上建立一個儲存子系統,由多個特定處理器或通用處理器(如 CPU)組成。然後,這些處理器直接位於塑造成單一磁碟的儲存媒體上,稱為運算儲存磁碟 (CSD)。運算儲存基於位於 NVMe 儲存中的 ARM Cortex,甚至可以根據應用程式需求包括 FPGA 或 ASIC 加速器等額外處理器。該設計將處理移至資料來源本身,從而實現超快的運算速度。
7. PCIe 協定
週邊元件互連高速 (PCIe) 協定是一種高速介面標準,可透過極快的連線速度減少元件之間的瓶頸。確保主機板具有正確的 PCIe 配置對於上述所有加速器充分最佳化至關重要。PCIe 共有六個世代,從 PCIe 世代 1 到 6,頻寬範圍從 8GB/s 到 256GB/s,Giga 傳輸速率從 2.5GT/s 到 64GT/s,每一代都翻倍。目前,市場上裝置使用的 PCIe 標準是 2017 年首次亮相的 PCIe 4.0,它提供 64GB/s 的頻寬速度和 16GT/s 的 Giga 傳輸。這是一種極快的連線。儘管如此,PCIe 裝置仍無法接近 PCIe 4.0 速度的最大潛力。

這些效能加速器將從 PCIe 4.0 協定中受益匪淺。此外,在主機板中,PCIe 插槽有不同的實體尺寸,從 x1、x4、x8、16 到 x32。這些是主機板上的 PCIe 插槽擁有的通道數。PCIe 插槽連接是可逆的,這表示您可以將 PCIe 3.0 裝置插入 PCIe 4.0 插槽。此外,插槽中的串行連接讓您可以將較大的 PCIe 裝置插入較小的插槽。例如,您可以將 PCIe x16 卡插入 PCIe 8 插槽,反之亦然,將較小的卡插入較大的插槽。唯一的區別是從較小插槽接收的頻寬與較大插槽接收的頻寬。支援 PCIe 5.0 甚至 6.0 的未來裝置將增加大量速度並減少未來處理器的瓶頸。即使是 PCIe 4.0,您也可以真正利用您的 NVMe SSD 儲存,將頻寬速度提高到 8GB/s。
常見問題:
有哪些方法可以加速電腦效能?
執行大量應用程式,尤其是涉及 AI、機器學習和深度學習的應用程式,可能會對電腦造成多項挑戰。加速電腦效能可以消除這些挑戰,例如瓶頸、改善延遲和功耗。有兩種主要方法可以加速您的電腦效能,透過利用軟體加速器和硬體加速器。
機器學習運算中的軟體加速器和硬體加速器有何區別?
從軟體和硬體角度來看,在嘗試加速您的電腦系統時,您可以採取一些解決方案。從軟體方面加速效能,您需要提高演算法效率,同時保持機器學習準確性。
這些步驟可以是修剪、權重共享、量化、低秩近似、二進位/三進位網路和用於推理演算法的 Winograd 變換,以及用於訓練演算法的平行化、混合精度、模型蒸餾和密集-稀疏-密集方法。從硬體加速的角度來看,共同目標是最小化記憶體存取、減少效能瓶頸、提高運算速度。這些可以透過在特定處理器(如 GPU 和 VPU)中進行平行運算、應用強大的 CPU 以及使用 NVMe 和 PCIe 協定減少速度瓶頸來實現。
深度學習中的訓練和推斷有何區別?我為什麼應該關心?
基本上,訓練是透過大量資料從頭開始建立機器學習演算法的過程。另一方面,推斷是實施經過訓練的機器學習以針對以前未見過的資料進行預測的過程。訓練機器學習通常發生在大型資料中心,相比之下,推斷機器學習已準備好應用於邊緣,為電腦提供視覺。推斷通常用於自動駕駛車輛、智慧製造和影像辨識系統。
GPU 和 VPU 有何區別?
GPU 和 VPU 都非常適合執行機器學習演算法。然而,GPU 往往尺寸較大,並且適用於更通用的用例,這表示它們並非專為執行機器學習而設計。GPU 也可用於遊戲,處理在玩重載遊戲時發生的繁重圖形渲染。相比之下,VPU 專為推斷機器學習而設計,並且尺寸小得多。因此,VPU 在為電腦提供視覺時非常強大且功耗更低。
我何時需要將效能加速應用於我的電腦?
效能加速通常應用於執行繁重任務的電腦,這些任務主要發生在電腦嘗試實施資料分析、人工智慧、機器學習和深度學習時。然而,效能加速在不斷需要快速可靠運算能力的產業(如自動化產業)中也非常有用。