六月婷婷AV,国产偷窥猎奇福利二区,日韩三级片。,好吊色网站,日韩成人中文在线视频,国产亚洲午夜啪啪,亚洲欧美另类国产精品,国产成人av1,任你艹在线观看

TDengine 3.2.3.0 集成英特爾 AVX512!快來看看為你增添了哪些助力

在當(dāng)今的 IoT 和智能制造領(lǐng)域,海量時序數(shù)據(jù)持續(xù)產(chǎn)生,對于這些數(shù)據(jù)的實(shí)時存儲、高效查詢和分析已經(jīng)成為時序數(shù)據(jù)庫(Time Series Database,TSDB)的核心競爭力。作為一款高性能的時序數(shù)據(jù)庫,TDengine 不僅采用了先進(jìn)數(shù)據(jù)處理算法,還在 3.2.3.0 版本引入了英特爾? AVX512 高級向量擴(kuò)展指令集,實(shí)現(xiàn)并行處理數(shù)據(jù),產(chǎn)品查詢性能獲得了進(jìn)一步提升。本篇文章將深入介紹 TDengine 與 AVX512 集成的優(yōu)化工作。

TDengine 與 AVX-512 集成原理

作為一種單指令多數(shù)據(jù)(Single Instruction Multiple Data,SIMD)指令集,英特爾? AVX-512 在密集型計算負(fù)載中有著得天獨(dú)厚的優(yōu)勢。得益于其 512 位的寄存器寬度和兩個 512 位的融合乘加(Fused Multiply Add,F(xiàn)MA)單元,該指令集能并行執(zhí)行 32 次雙精度、64 次單精度浮點(diǎn)運(yùn)算,或操作 8 個 64 位和 16 個 32 位整數(shù),極大地提升了數(shù)據(jù)的處理能力。

TDengine 3.2.3.0 集成英特爾 AVX512!快來看看為你增添了哪些助力 - TDengine Database 時序數(shù)據(jù)庫

時序數(shù)據(jù)中存在大量相似數(shù)據(jù),而 TDengine 對時序數(shù)據(jù)的處理流程是一致的。對于這些無前后依賴性的時序數(shù)據(jù),采用 AVX512 并行處理數(shù)據(jù)可以顯著提升系統(tǒng)性能。特別是在 TDengine 進(jìn)行數(shù)據(jù)平均值查詢時,由于符合數(shù)據(jù)并行化特點(diǎn),引入 AVX512 技術(shù)可有效提升性能。

為了節(jié)省數(shù)據(jù)存儲空間,TDengine 在數(shù)據(jù)存儲前會進(jìn)行編碼處理,去除數(shù)據(jù)中的冗余,并進(jìn)行壓縮,從而使最終存儲的數(shù)據(jù)占用空間大大減少。而數(shù)據(jù)平均值的查詢過程則是相反的,需要對存儲的數(shù)據(jù)進(jìn)行解碼和計算。如下圖所示:

TDengine 3.2.3.0 集成英特爾 AVX512!快來看看為你增添了哪些助力 - TDengine Database 時序數(shù)據(jù)庫

其中算法 Simple8B、ZigZag、Delta of Delta 可以通過 AVX512 進(jìn)行優(yōu)化。

  • Simple8B 的 AVX512 優(yōu)化

如果要將相同長度的數(shù)據(jù)使用 Simple8B 存儲在一個 64bit 空間中,例如每個有效數(shù)據(jù)占用 3bit,在 64bit 內(nèi),索引占用 4bit,剩下的 60bit 可以存儲 20 個 3bit 的有效數(shù)據(jù)。在解碼過程中,傳統(tǒng)的方法是將每個有效的 3bit 數(shù)據(jù)逐個加載到 32bit 變量中,然后進(jìn)行處理,這將需要進(jìn)行 20 次處理。

而使用 AVX512 指令,可以一次并行將 8 個 3bit 的數(shù)據(jù)變換成 32bit 的數(shù)據(jù),這樣我們用很少的次數(shù)就可以處理完所有數(shù)據(jù),大大提升了系統(tǒng)性能。如下圖,payload 是 64bit 的 simple8B 數(shù)據(jù),使用 AVX512 指令,通過并行同步移位和掩碼的方式,一次提取出 8 個有效數(shù)據(jù),并裝載在 512bit 的寄存器里(32bit x 8),為 ZigZag 算法提供數(shù)據(jù)輸入。

TDengine 3.2.3.0 集成英特爾 AVX512!快來看看為你增添了哪些助力 - TDengine Database 時序數(shù)據(jù)庫

  • ZigZag 算法的 AVX512 優(yōu)化

通過 AVX512 的指令,替代了之前的 8 次相同的循環(huán)操作,實(shí)現(xiàn)了一次并行處理 8 個數(shù)據(jù),利用減法和移位異或操作,將數(shù)據(jù)還原成 ZigZag 編碼前的數(shù)值。在優(yōu)化后,只用了很少的 AVX512 指令,就實(shí)現(xiàn)了循環(huán)多次才能獲得的結(jié)果,極大的減少了指令數(shù),提升了系統(tǒng)的性能。

TDengine 3.2.3.0 集成英特爾 AVX512!快來看看為你增添了哪些助力 - TDengine Database 時序數(shù)據(jù)庫

AVX512 的編譯環(huán)境和運(yùn)行環(huán)境

為了充分利用 AVX512 指令集,建議使用 gcc 版本 9 以上的編譯器進(jìn)行編譯,以獲得更完善的 AVX512 指令支持。在運(yùn)行時,應(yīng)檢查 CPU 是否支持 AVX512 指令,只有在支持 AVX512 的 CPU 上運(yùn)行 AVX512 指令,才能做到和其他非 AVX512 的 CPU 的代碼兼容。

總而言之,通過利用英特爾? AVX512 高級向量擴(kuò)展指令,TDengine 成功優(yōu)化了數(shù)據(jù)處理算法,提升了時序數(shù)據(jù)庫的性能。特別是針對 Simple8B 和 ZigZag 算法的優(yōu)化,讓時序數(shù)據(jù)的處理得以實(shí)現(xiàn)更高效的并行計算,通過一次性處理多個數(shù)據(jù),減少了指令數(shù),顯著提升了系統(tǒng)的性能表現(xiàn)。

開啟 AVX512 指令集優(yōu)化以后,在 TDengine 新版本 3.2.3.0 上,解碼整數(shù)類型數(shù)據(jù)的性能是軟件解碼性能的 1.82 倍,是 AVX2 指令集解碼性能的 1.28 倍。這些優(yōu)化措施也讓 TDengine 在處理海量數(shù)據(jù)的查詢和分析過程中更加高效,為實(shí)時應(yīng)用場景提供了更強(qiáng)大的支持。

注:AVX指令集支持的開啟,需要用戶自己編譯代碼并打開配置開關(guān)。具體操作可以聯(lián)系 TDengine 官方團(tuán)隊。

特別鳴謝:在本次 TDengine 與 AVX512 的優(yōu)化集成工作中,英特爾數(shù)據(jù)中心與人工智能事業(yè)部的高級軟件架構(gòu)師蔣鍇,憑借專業(yè)知識和技術(shù)能力,積極推動著優(yōu)化工作的進(jìn)展,為 TDengine 的發(fā)展貢獻(xiàn)著重要的力量。

PR 鏈接:https://github.com/taosdata/TDengine/pull/24682

TDengine 3.2.3.0 集成英特爾 AVX512!快來看看為你增添了哪些助力 - TDengine Database 時序數(shù)據(jù)庫