色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

FunASR語音大模型在Arm Neoverse平臺上的優(yōu)化實踐流程

Arm社區(qū) ? 來源:Arm社區(qū) ? 2024-02-22 13:41 ? 次閱讀

Arm 架構在服務器領域發(fā)展勢頭前景看好。目前已有許多頭部云服務提供商和服務器制造商推出了基于 Arm Neoverse 平臺的服務器產品,例如 AWS Graviton、阿里云的倚天 710 系列等。這些廠商提供了完整的軟硬件支持和優(yōu)化,使得大模型推理在基于 Arm 架構的服務器上運行更加便捷和高效。

Arm 架構的服務器通常具備低功耗的特性,能帶來更優(yōu)異的能效比。相比于傳統(tǒng)的 x86 架構服務器,Arm 服務器在相同功耗下能夠提供更高的性能。這對于大模型推理任務來說尤為重要,因為大模型通常需要大量的計算資源,而能效比高的 Arm 架構服務器可以提供更好的性能和效率。

Armv9 新特性提高大模型推理的計算效率

Armv9 架構引入了 SVE2 (Scalable Vector Extension,可擴展向量延伸指令集)。SVE2 是一種可擴展的向量處理技術,它允許處理器同時執(zhí)行多個數(shù)據(jù)元素的操作,可以提供更高效的向量計算和人工智能 (AI) 硬件加速,從而加快了 AI 任務的執(zhí)行速度,提高了能效和性能。這對于在 Arm 架構的服務器上進行大規(guī)模 AI 推理和訓練任務非常有益,不論是實現(xiàn)更好的用戶體驗或是更高的計算效率。

SVE2 對 AI 推理引擎的支持有效地使用了 BFloat16 (BF16) 格式,BF16 是一種浮點數(shù)格式,它使用 16 位表示浮點數(shù),其中 8 位用于指數(shù)部分,7 位用于尾數(shù)部分,還有 1 位用于符號位。相比于傳統(tǒng)的 32 位浮點數(shù)格式(如 FP32),BF16 在表示范圍和精度上有所減少,但仍然能夠滿足大多數(shù) AI 推理任務的需求。

a998db7a-d13c-11ee-a297-92fbcf53809c.jpg

圖 1:BFloat16 格式

BF16 格式可以在減少存儲和帶寬需求之余,同時提供足夠的精度,來滿足大多數(shù) AI 推理任務的要求。由于 SVE2 提供了針對 BF16 的向量指令,可以在同一條指令中同時處理多個 BF16 數(shù)據(jù)元素,從而提高計算效率。理論上來說,采用 BF16 可以實現(xiàn)雙倍的 FP32 的性能。

SVE2 的矩陣運算在 AI 推理中扮演著重要的角色,它可以顯著提高計算效率和性能。比如矩陣乘法 (Matrix Multiplication) 是許多 AI 任務中常見的運算,如卷積運算和全連接層的計算。SVE2 的向量指令可以同時處理多個數(shù)據(jù)元素,使得矩陣乘法的計算能夠以向量化的方式進行,從而提高計算效率。指令 FMMLA 可以實現(xiàn) FP32 格式下兩個 2x2 矩陣乘法運算,指令 BFMMLA 可以通過單指令實現(xiàn) BF16 格式下 4x2 矩陣和 2x4 矩陣的乘法,UMMLA、SMMLA 等可以實現(xiàn) INT8 格式下 8x2 矩陣和 2x8 矩陣的矩陣乘法運算。通過 SVE2 的硬件加速功能,AI 推理可以在 Arm 架構中獲得更高效的矩陣運算執(zhí)行,提高計算效率和性能。

a9abce92-d13c-11ee-a297-92fbcf53809c.png

圖 2:矩陣乘指令

ACL 實現(xiàn) PyTorch 的計算加速

PyTorch 可以支持 Arm 架構的硬件加速資源,但需要安裝適用于 Arm 架構的 PyTorch 版本,或者是從開源源代碼編譯支持 Arm 架構硬件加速的 PyTorch 版本。Arm Compute Library (ACL, Arm 計算庫) 實現(xiàn)了 Arm 架構的硬件加速資源的優(yōu)化封裝,通過 OneDNN 來使 PyTorch 對 Arm 優(yōu)化加速調用。下面介紹如何生成帶 ACL 加速的 PyTorch 版本。

a9c5afd8-d13c-11ee-a297-92fbcf53809c.png

圖 3:Arm Neoverse 平臺 AI/ML 軟件組合

ACL 是開源軟件,下載后編譯并設定相應的系統(tǒng)路徑。

鏈接:https://github.com/arm-software/ComputeLibrary

# git clone https://github.com/ARM-software/ComputeLibrary.git

# scons arch=armv8.6-a-sve debug=0 neon=1 os=linux opencl=0 build=native -j 32 Werror=false

validation_tests=0 multi_isa=1 openmp=1 cppthreads=0 fixed_format_kernels=1

# export ACL_ROOT_DIR=/path_to_ACL/ComputeLibrary

開源軟件 OpenBLAS 也實現(xiàn)了部分 Neon 的加速,PyTorch 同樣也要依賴 OpenBLAS,下載相應源代碼編譯和安裝。

鏈接:https://github.com/OpenMathLib/OpenBLAS

# git clone https://github.com/OpenMathLib/OpenBLAS.git

# cmake & make & make install

獲取開源的 PyTorch 代碼,下載相應的依賴開源軟件,指定使能 ACL 的方法進行編譯,獲取 PyTorch 的安裝包并更新。

# git clone https://github.com/pytorch/pytorch

# git submodule update --init –recursive

# MAX_JOBS=32 PYTORCH_BUILD_VERSION=2.1.0 PYTORCH_BUILD_NUMBER=1 OpenBLAS_HOME=/opt/openblas

BLAS="OpenBLAS" CXX_FLAGS="-O3 -mcpu=neoverse-n2 -march=armv8.4-a" USE_OPENMP=1 USE_LAPACK=1 USE_CUDA=0

USE_FBGEMM=0 USE_DISTRIBUTED=0 USE_MKLDNN=1 USE_MKLDNN_ACL=1 python setup.py bdist_wheel

# pip install --force-reinstall dist/torch-2.x.x-cp310-cp310-linux_aarch64.whl

配置了運行環(huán)境,就可以利用 Arm 架構的硬件加速資源來加速 PyTorch 的計算。盡管 PyTorch 可以在 Arm 架構上利用硬件加速資源,但針對具體模型和應用場景,需要對模型和代碼進行一些調整以最大程度地發(fā)揮硬件的加速優(yōu)勢。

基于 FunASR 的優(yōu)化實踐

FunASR 是阿里巴巴達摩院開發(fā)的開源的基于 Paraformer 的大模型語音識別模型,提供包括語音識別 (ASR)、語音端點檢測 (VAD)、標點恢復、語言模型、說話人驗證、說話人分離和多人對話語音識別等在內的多種功能。本文以 FunASR 在 Arm Neoverse 平臺上優(yōu)化的過程做為大模型的優(yōu)化實踐案例。

倉庫地址:https://github.com/alibaba-damo-academy/FunASR

a9d9164a-d13c-11ee-a297-92fbcf53809c.png

圖 4:FunASR

本次優(yōu)化是基于 ACL v23.08、oneDNN v3.3、PyTorch v2.1 進行,測試平臺基于阿里云的 ECS 公有云,包括 C8Y、C8I、C7 等云實例。

為了確保 PyTorch 已經啟動 ACL 進行加速,可以加上 “DNNL_VERBOSE=1” 來查看運行的日志輸出。

# OMP_NUM_THREADS=16 DNNL_VERBOSE=1 python runtimes.py

a9fdfca8-d13c-11ee-a297-92fbcf53809c.png

圖 5:使能 ACL 的 PyTorch 運行日志

得到如上的輸出結果,可以看到已經啟用了 ACL。

為了使優(yōu)化有明確的目標,在運行大模型時,用 PyTorch 的 profiler 做整個模型的數(shù)據(jù)統(tǒng)計,即在調用大模型之前加上統(tǒng)計操作,為了減少單次運行的統(tǒng)計誤差,可以在多次運行之后做統(tǒng)計并輸出統(tǒng)計結果,如下面的示例:

aa1c9a14-d13c-11ee-a297-92fbcf53809c.jpg

默認運行是用 FP32 的格式,如果需要指定 BF16 的格式運行,需要加上 “ONEDNN_DEFAULT_FPMATH_MODE=BF16” 的參數(shù)。

# OMP_NUM_THREADS=16 ONEDNN_DEFAULT_FPMATH_MODE=BF16 python profile.py

得到 profile 的統(tǒng)計數(shù)據(jù):

aa27300a-d13c-11ee-a297-92fbcf53809c.png

圖 6:統(tǒng)計分析日志

分析運行的結果,找出需要優(yōu)化的算子,在這個示例中,mkldnn_convolution 運行的時間顯著較長。

aa481f86-d13c-11ee-a297-92fbcf53809c.jpg

圖 7:優(yōu)化前統(tǒng)計分析

通過分析定位,發(fā)現(xiàn)在 OMP 的操作中,數(shù)據(jù)并沒有按照多處理器進行并行數(shù)據(jù)處理,修復問題后,再次測試,發(fā)現(xiàn) Convolution 的效率大大提升。

aa6a77d4-d13c-11ee-a297-92fbcf53809c.jpg

圖 8:卷積優(yōu)化后統(tǒng)計分析

在 Arm 架構處理器中,SVE2 可以對 INT8 進行并行數(shù)據(jù)處理,比如單指令周期可以做到 16 個 INT8 的乘累加操作,對 INT8 的執(zhí)行效率非常高,在對模型執(zhí)行效率有更高要求的場景下,可以用 INT8 來動態(tài)量化模型,進一步提高效率。當然,也可以把 INT8 和 BF16 相結合,模型用 INT8 量化,中間計算用 BF16 格式,相較其他平臺,有 1.5 倍的效率提升。

aa81fd5a-d13c-11ee-a297-92fbcf53809c.png

圖 9:動態(tài)量化優(yōu)化

aa9b7398-d13c-11ee-a297-92fbcf53809c.png

圖 10:優(yōu)化結果對比

綜上,通過充分利用 Armv9 架構中的 SVE2 指令、BF16 數(shù)據(jù)類型等特性,并引入動態(tài)量化等技術,能夠實現(xiàn)以 FunASR 為例的大模型在 Arm Neoverse 平臺的服務器上高效率運行。





審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 處理器
    +關注

    關注

    68

    文章

    19548

    瀏覽量

    231872
  • ARM
    ARM
    +關注

    關注

    134

    文章

    9217

    瀏覽量

    371162
  • 語音識別
    +關注

    關注

    38

    文章

    1761

    瀏覽量

    113299
  • pytorch
    +關注

    關注

    2

    文章

    808

    瀏覽量

    13514

原文標題:FunASR 語音大模型在 Arm Neoverse 平臺上的優(yōu)化實踐

文章出處:【微信號:Arm社區(qū),微信公眾號:Arm社區(qū)】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    利用Arm Kleidi技術實現(xiàn)PyTorch優(yōu)化

    Neoverse 平臺上的 PyTorch 推理表現(xiàn)。Kleidi 技術可以通過 Arm Compute Library (ACL) 和 KleidiAI 庫獲取。
    的頭像 發(fā)表于 12-23 09:19 ?547次閱讀
    利用<b class='flag-5'>Arm</b> Kleidi技術實現(xiàn)PyTorch<b class='flag-5'>優(yōu)化</b>

    HAL庫Arduino平臺上的使用

    HAL庫Arduino平臺上的使用 Arduino平臺是一個開源的電子原型平臺,它包括硬件(基于微控制器的電路板)和軟件(Arduino IDE)。Arduino
    的頭像 發(fā)表于 12-02 14:04 ?719次閱讀

    Arm Neoverse如何加速實現(xiàn)AI數(shù)據(jù)中心

    快速演進的云計算和人工智能 (AI) 時代,企業(yè)需要能助力其優(yōu)化性能、降低成本并在市場競爭中保持領先的方法。Arm Neoverse 已成為眾多前沿企業(yè)的選擇,他們希望
    的頭像 發(fā)表于 11-26 09:30 ?439次閱讀

    【實操文檔】智能硬件的大模型語音交互流程中接入RAG知識庫

    本帖最后由 jf_40317719 于 2024-9-29 17:13 編輯 智能硬件的語音交互接入大模型后可以直接理解自然語言內容,但大模型作為一個語言模型,對專業(yè)領域知識
    發(fā)表于 09-29 17:12

    深度學習算法嵌入式平臺上的部署

    隨著人工智能技術的飛速發(fā)展,深度學習算法各個領域的應用日益廣泛。然而,將深度學習算法部署到資源受限的嵌入式平臺上,仍然是一個具有挑戰(zhàn)性的任務。本文將從嵌入式平臺的特點、深度學習算法的優(yōu)化
    的頭像 發(fā)表于 07-15 10:03 ?2030次閱讀

    ARM進軍汽車芯片市場,推出Neoverse設計

    近日,全球知名的移動芯片設計公司ARM宣布邁出重大步伐,正式推出專為汽車領域設計的芯片——Neoverse。這一創(chuàng)新不僅展示了ARM芯片設計領域的領先地位,也為汽車行業(yè)帶來了前所未有
    的頭像 發(fā)表于 05-20 10:46 ?836次閱讀

    【大語言模型:原理與工程實踐】大語言模型的評測

    優(yōu)化至關重要,它們能夠提供準確的反饋,指導模型訓練和調優(yōu)過程中的改進方向。 大語言模型對話能力評測:對話能力評測是大語言模型性能評估的
    發(fā)表于 05-07 17:12

    【大語言模型:原理與工程實踐】探索《大語言模型原理與工程實踐》2.0

    《大語言模型“原理與工程實踐”》是關于大語言模型內在機理和應用實踐的一次深入探索。作者不僅深入討論了理論,還提供了豐富的實踐案例,幫助讀者理
    發(fā)表于 05-07 10:30

    【大語言模型:原理與工程實踐】探索《大語言模型原理與工程實踐

    處理中預訓練架構Transformer,以及這些技術現(xiàn)實世界中的如何應用。通過具體案例的分析,作者展示了大語言模型解決實際問題中的強大能力,同時也指出了當前技術面臨的挑戰(zhàn)和局限性。書中對大語言
    發(fā)表于 04-30 15:35

    ArmArm Neoverse計算子系統(tǒng)(CSS):Arm Neoverse CSS V3和Arm Neoverse CSS N3

    Arm宣布了兩款新的Arm Neoverse計算子系統(tǒng)(CSS),它們基于“迄今為止最好的一代Neoverse技術”。是什么讓這些新產品
    的頭像 發(fā)表于 04-24 17:53 ?1271次閱讀
    <b class='flag-5'>Arm</b>新<b class='flag-5'>Arm</b> <b class='flag-5'>Neoverse</b>計算子系統(tǒng)(CSS):<b class='flag-5'>Arm</b> <b class='flag-5'>Neoverse</b> CSS V3和<b class='flag-5'>Arm</b> <b class='flag-5'>Neoverse</b> CSS N3

    高通支持Meta Llama 3大語言模型驍龍旗艦平臺上實現(xiàn)終端側執(zhí)行

    高通和Meta合作優(yōu)化Meta Llama 3大語言模型,支持未來的驍龍旗艦平臺上實現(xiàn)終端側執(zhí)行。
    的頭像 發(fā)表于 04-20 09:13 ?635次閱讀

    Google Cloud推出基于Arm Neoverse V2定制Google Axion處理器

    Arm Neoverse 平臺已成為云服務提供商優(yōu)化其從芯片到軟件全棧的心儀之選。近日,Google Cloud 推出了基于 Arm
    的頭像 發(fā)表于 04-16 14:30 ?781次閱讀

    Arm Neoverse CSS V3 助力云計算實現(xiàn) TCO 優(yōu)化的機密計算

    Arm 基礎設施事業(yè)部高級產品經理 Mohit Taneja Arm 基礎設施事業(yè)部產品總監(jiān) Saptarshi Mondal ? 實現(xiàn)高性能定制芯片 ? Arm Neoverse
    發(fā)表于 03-26 16:37 ?456次閱讀
    <b class='flag-5'>Arm</b> <b class='flag-5'>Neoverse</b> CSS V3 助力云計算實現(xiàn) TCO <b class='flag-5'>優(yōu)化</b>的機密計算

    Arm首次面向汽車應用發(fā)布Neoverse級芯片設計

    汽車科技日新月異的今天,英國知名芯片設計商Arm宣布,其已首次面向汽車應用推出了高性能的“Neoverse”級芯片設計,同時還發(fā)布了一套全新的系統(tǒng),專門服務于汽車制造商及其供應商。這一重大舉措標志著
    的頭像 發(fā)表于 03-18 13:39 ?898次閱讀

    Neoverse CSS V3助力云計算實現(xiàn)TCO優(yōu)化的機密計算

    Arm Neoverse 旨在為從云到邊緣的全場景基礎設施用例提供高性能和出色能效。針對需要更高性能的工作負載和用例,Arm 推出了 Neoverse V 系列。
    的頭像 發(fā)表于 03-14 12:13 ?631次閱讀
    <b class='flag-5'>Neoverse</b> CSS V3助力云計算實現(xiàn)TCO<b class='flag-5'>優(yōu)化</b>的機密計算
    主站蜘蛛池模板: 日韩精品熟女一区二区三区中文 | 99久久99久久精品 | 爆乳啪啪无码成人二区亚洲欧美 | 好大快用力深一点h视频 | 亚洲性无码av在线 | 十分钟在线观看免费视频高清WWW | 亚洲国产中文在线视频免费 | 色偷偷超碰97人人澡人人 | 色橹| 亚洲免费网站观看视频 | 亚洲 欧美 国产 综合 在线 | 9久高清在线不卡免费无吗视频 | 国产一区二区在线观看免费 | 香蕉久久夜色精品国产小优 | 暖暖免费观看日本在线视频 | 国产精品69人妻无码久久 | 久久久久久久久女黄9999 | 亚洲精品高清在线观看 | 无码AV精品久久一区二区免费 | 大伊人青草狠狠久久 | 国内精品视频一区二区在线观看 | 日本亚洲精品色婷婷在线影院 | 在线观看亚洲专区5555 | 两个洞一起插哦!好刺激 | 在线视频 国产精品 中文字幕 | 色欲AV精品人妻一区二区三区 | 国产 高清 无码 在线播放 | ass亚洲熟妇毛耸耸pics | 一个人看www| 99视频在线观看视频 | 99爱在线精品视频免费观看9 | 精品三级在线观看 | 久久er99热精品一区二区 | 精品国产乱码久久久久久免费 | 第一次破女视频出血视频 | 成年女人免费播放影院 | 嫩草影院久久99 | 日韩人妻无码精品-专区 | 无人区乱码区1卡2卡三卡在线 | 国产精品爽爽久久久久久蜜桃 | xxx日本高清视频hd |