隨著原本不相關(guān)的技術(shù)以令人興奮的新方式融合在一起,數(shù)字融合正在我們身邊發(fā)生。iPhone 就是一個(gè)完美的例子,它將手機(jī)與電腦、攝像頭和傳感器相結(jié)合,提供出色的體驗(yàn)。
融合在嵌入式領(lǐng)域并不新鮮。嵌入式設(shè)備傳統(tǒng)上受到更嚴(yán)格的內(nèi)存和處理限制,并采用融合作為充分利用許多技術(shù)領(lǐng)域的一種方式。因此,由于我們正處于不同規(guī)模技術(shù)融合的開端,看似不同的技術(shù)有望聯(lián)合起來顛覆現(xiàn)有行業(yè)并帶來令人信服的新機(jī)遇,嵌入式領(lǐng)域也將受益。一種新的融合是使用具有內(nèi)存加速處理的 k-NN 最近鄰 (k-NN),為數(shù)十億規(guī)模的 Elasticsearch 操作提供近乎實(shí)時(shí)的響應(yīng)。
Elasticsearch 是一個(gè)搜索引擎,它接受 JSON 請(qǐng)求進(jìn)行文檔搜索并將 JSON 數(shù)據(jù)作為結(jié)果提供。Elasticsearch 數(shù)據(jù)格式是一種以 JSON 編碼的結(jié)構(gòu)化數(shù)據(jù)的文檔。Elasticsearch 最初是一個(gè)文本搜索引擎,但該數(shù)據(jù)庫可以涵蓋任何類型的數(shù)據(jù),每個(gè)文檔都有唯一的 ID 和數(shù)據(jù)類型。
因?yàn)樵摻Y(jié)構(gòu)是“無模式的”,它允許將文檔定義為用戶需要的任何內(nèi)容。Elasticsearch 數(shù)據(jù)庫中的文檔示例包括:
用于識(shí)別消費(fèi)者搜索請(qǐng)求的圖片。
用于識(shí)別網(wǎng)絡(luò)入侵、異常或負(fù)載不平衡的網(wǎng)絡(luò)數(shù)據(jù)日志。
用于識(shí)別客戶購買模式和改進(jìn)庫存管理的產(chǎn)品收據(jù)。
用于自動(dòng)共享和復(fù)制的網(wǎng)絡(luò)架構(gòu)。
用于查找特定文學(xué)實(shí)例的文本文檔。
用于計(jì)算機(jī)輔助翻譯的具有一對(duì)多映射的文本文檔。
Elasticsearch 被設(shè)計(jì)為分布式的。它在基礎(chǔ)架構(gòu)方面具有可擴(kuò)展性,并且可以靈活地用于本地服務(wù)器、遠(yuǎn)程服務(wù)器或基于云的操作。由于其開放和寧靜的 API 結(jié)構(gòu),可擴(kuò)展的搜索引擎可以毫不費(fèi)力地與插件一起使用。一個(gè)這樣的插件來自 GSI Technology,它提供了許多好處,包括硬件加速的 k-NN、使用向量進(jìn)行多模態(tài)搜索以及合并分?jǐn)?shù)結(jié)果。
Elasticsearch 依靠其分布式計(jì)算支持來實(shí)現(xiàn)可擴(kuò)展性,其驚人的速度在百萬級(jí)數(shù)據(jù)庫搜索中達(dá)到秒級(jí)。由于其分布式特性和分片支持,Elasticsearch 允許復(fù)制數(shù)據(jù)、并行化搜索并為更大的數(shù)據(jù)庫加快搜索速度。來自 HTTP 命令發(fā)布的分布式功能還允許由嵌入式設(shè)備完成不同分辨率的多次搜索——一次在本地資源上,一次發(fā)送到上游資源。
Core Elasticsearch 使用計(jì)算量很大的窮舉匹配(全部匹配),這會(huì)減慢它的速度,或者在支持大規(guī)模數(shù)據(jù)庫搜索的重復(fù)硬件中變得非常昂貴。一種可用于增加數(shù)據(jù)庫大小的技術(shù)是 k-NN 搜索。它的工作原理是首先尋找常見分組中的相似性,然后在這些一個(gè)或多個(gè)分組中進(jìn)行最終搜索。這種技術(shù)還允許在邊緣規(guī)模的服務(wù)器上完成大型數(shù)據(jù)庫搜索,而不是在基于云的計(jì)算場(chǎng)上進(jìn)行對(duì)延遲非常敏感的應(yīng)用程序。
具有計(jì)算挑戰(zhàn)性的方法
雖然 k-NN 為 Elasticsearch 提供了一種方法來支持非常大的數(shù)據(jù)庫,例如具有十億級(jí)及以上條目的數(shù)據(jù)庫,但它的計(jì)算量很大。因此,由于在 GPU 或 CPU 內(nèi)核之間移動(dòng)數(shù)據(jù)庫的限制,k-NN 一直是加速的挑戰(zhàn)。
工作負(fù)載加速的最大限制之一是處理器和內(nèi)存之間所需的數(shù)據(jù)交換的限制。現(xiàn)代處理器中使用的馮諾依曼架構(gòu)的一個(gè)主要缺點(diǎn)是處理器和存儲(chǔ)之間的數(shù)據(jù)傳輸開銷。CPU 必須出去為它所做的每一個(gè)操作獲取數(shù)據(jù)。
這種架構(gòu)在卸載加速環(huán)境中效率更低。這種系統(tǒng)的性能受到請(qǐng)求操作的主機(jī)以及執(zhí)行操作的計(jì)算引擎通過內(nèi)存交換數(shù)據(jù)的速度的限制。
正在研究減少來自內(nèi)存的數(shù)據(jù)流的架構(gòu),以幫助緩解馮諾依曼瓶頸。然而,在處理內(nèi)存密集型人工智能應(yīng)用程序時(shí),瓶頸尤其嚴(yán)重。人工智能相關(guān)應(yīng)用的運(yùn)行依賴于內(nèi)存中海量數(shù)據(jù)的快速高效移動(dòng)。訓(xùn)練有素的數(shù)據(jù)庫需要加載到工作內(nèi)存和矢量化輸入查詢中。接下來,需要對(duì)它們進(jìn)行處理和加載,以便比較函數(shù)進(jìn)行操作。
一種已經(jīng)在市場(chǎng)上產(chǎn)生影響的成熟技術(shù)是關(guān)聯(lián)處理單元 (APU)。內(nèi)存加速的美妙之處在于存儲(chǔ)本身變成了處理器。這不是一個(gè)帶有高速緩存的大量處理核心陣列,而是一個(gè)具有內(nèi)置在讀取線架構(gòu)中的計(jì)算單元的內(nèi)存陣列。
因此,APU 通過具有能夠加速計(jì)算的內(nèi)存陣列而與眾不同。這種類型的“加速”處理器已被證明可以將性能提高幾個(gè)數(shù)量級(jí),同時(shí)降低標(biāo)準(zhǔn)服務(wù)器的工作負(fù)載功耗。
Elasticsearch、k-NN 和 APU 加速的融合提供了更少的延遲和更多的每秒查詢。與傳統(tǒng)的僅 CPU 或 GPU 加速系統(tǒng)相比,它還可以以更低的功耗為數(shù)十億規(guī)模的數(shù)據(jù)庫搜索提供支持。在嵌入式領(lǐng)域,Elasticsearch 可以提供一種在邊緣設(shè)備上進(jìn)行本地搜索的方法,同時(shí)發(fā)送 HTTP 請(qǐng)求以在網(wǎng)絡(luò)上進(jìn)行更深入的搜索。可以將不同的結(jié)果拼接在一起以獲得越來越清晰的答案,或者只能合并新的例外情況。
極端邊緣設(shè)備可以應(yīng)用其 CPU 資源在本地相關(guān)數(shù)據(jù)庫中進(jìn)行搜索以提高速度。然后使用 APU 密度乘數(shù)允許 Elasticsearch 網(wǎng)絡(luò)請(qǐng)求在邊緣服務(wù)器或聚合器上高效運(yùn)行,而不是發(fā)送到云端。考慮可以做出自主決策但仍能從上游更深入的搜索中獲得備份驗(yàn)證或路線修正的機(jī)器人。考慮基于規(guī)則集和當(dāng)?shù)貤l件立即做出決策的自動(dòng)車輛,同時(shí)通過高速公路標(biāo)志網(wǎng)關(guān)發(fā)送信息并獲取上游道路信息和駕駛指令返回。
展望未來,很高興看到這種融合將帶來哪些新機(jī)遇。
審核編輯 黃昊宇
-
嵌入式
+關(guān)注
關(guān)注
5092文章
19177瀏覽量
307636 -
搜索引擎
+關(guān)注
關(guān)注
0文章
119瀏覽量
13384 -
Elasticsearch
+關(guān)注
關(guān)注
0文章
30瀏覽量
2852
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論