91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

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

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

3天內不再提示

FunASR語音大模型在Arm Neoverse平臺上的優化實踐流程

Arm社區 ? 來源:Arm社區 ? 2024-02-22 13:41 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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

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

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

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

圖 1:BFloat16 格式

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

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

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

圖 2:矩陣乘指令

ACL 實現 PyTorch 的計算加速

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

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

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

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

鏈接: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 也實現了部分 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

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

基于 FunASR 的優化實踐

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

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

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

圖 4:FunASR

本次優化是基于 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。

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

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

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

# OMP_NUM_THREADS=16 ONEDNN_DEFAULT_FPMATH_MODE=BF16 python profile.py

得到 profile 的統計數據:

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

圖 6:統計分析日志

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

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

圖 7:優化前統計分析

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

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

圖 8:卷積優化后統計分析

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

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

圖 9:動態量化優化

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

圖 10:優化結果對比

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





審核編輯:劉清

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

    關注

    68

    文章

    19885

    瀏覽量

    235084
  • ARM
    ARM
    +關注

    關注

    134

    文章

    9349

    瀏覽量

    377386
  • 語音識別
    +關注

    關注

    39

    文章

    1780

    瀏覽量

    114218
  • pytorch
    +關注

    關注

    2

    文章

    809

    瀏覽量

    13947

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

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    無法NPU上推理OpenVINO?優化的 TinyLlama 模型怎么解決?

    NPU 上推斷 OpenVINO?優化的 TinyLlama 模型。 遇到的錯誤: get_shape was called on a descriptor::Tensor with dynamic shape
    發表于 07-11 06:58

    Arm Neoverse N2平臺實現DeepSeek-R1滿血版部署

    頗具優勢。Arm 攜手合作伙伴, Arm Neoverse N2 平臺上使用開源推理框架 llama.cpp 實現 DeepSeek-R1
    的頭像 發表于 07-03 14:37 ?345次閱讀
    <b class='flag-5'>Arm</b> <b class='flag-5'>Neoverse</b> N2<b class='flag-5'>平臺</b>實現DeepSeek-R1滿血版部署

    2.0.0版本的ST Edge AI Corelinux平臺上可以把量化后的onnx模型轉換為.nb,但是運行報錯,缺少文件,為什么?

    2.0.0版本的ST Edge AI Core工具linux平臺上應該是可以把量化后的onnx模型轉換為.nb,但是運行報錯,缺少文件。
    發表于 06-17 06:29

    解讀基于Arm Neoverse V2平臺的Google Axion處理器

    云計算需求人工智能 (AI) 時代的爆發式增長,推動了開發者尋求性能優化且高能效的解決方案,以降低總體擁有成本 (TCO)。Arm 致力于通過 Arm
    的頭像 發表于 04-21 13:47 ?517次閱讀

    智能語音交互方案客服領域的應用

    著客服行業的面貌,為企業和用戶帶來了全新的體驗。 語音識別模型優化私部署 方案:精準高效,定制專屬服務 語音識別技術作為智能語音交互的基礎,
    的頭像 發表于 04-11 14:35 ?287次閱讀

    Arm助力開發者加速遷移至Arm架構云平臺 Arm云遷移資源分享

    隨著基于 Arm 架構的云實例日益擴展,越來越多的用戶正從傳統平臺遷移至 Arm 平臺上
    的頭像 發表于 04-09 18:23 ?653次閱讀

    如何在基于Arm Neoverse平臺的CPU上構建分布式Kubernetes集群

    本文中,我們將以 X(原 Twitter)為例,演示如何在基于 Arm Neoverse 平臺的 CPU 上構建分布式 Kubernetes 集群,以根據推文實時監控情緒變化。如此一
    的頭像 發表于 03-25 15:58 ?350次閱讀
    如何在基于<b class='flag-5'>Arm</b> <b class='flag-5'>Neoverse</b><b class='flag-5'>平臺</b>的CPU上構建分布式Kubernetes集群

    利用Arm Kleidi技術實現PyTorch優化

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

    HAL庫Arduino平臺上的使用

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

    Arm Neoverse如何加速實現AI數據中心

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

    基于Arm Neoverse N2實現自動語音識別技術

    自動語音識別 (Automatic Speech Recognition) 技術已經深入到現代生活的方方面面,廣泛應用于從語音助手、轉錄服務,到呼叫中心分析和語音轉文本翻譯等方面,為各行各業提供了創新解決方案,顯著提升了用戶體驗
    的頭像 發表于 11-15 11:35 ?1095次閱讀
    基于<b class='flag-5'>Arm</b> <b class='flag-5'>Neoverse</b> N2實現自動<b class='flag-5'>語音</b>識別技術

    Arm推出GitHub平臺AI工具,簡化開發者AI應用開發部署流程

    軟件提供了無縫的開發體驗。 GitHub Actions、原生 GitHub 運行器和基于 Arm 平臺的 AI 框架相結合,幫助全球 2,000 萬開發者簡化 AI 應用開發部署流程
    的頭像 發表于 10-31 18:51 ?3325次閱讀

    基于Arm Neoverse的微軟全新Azure虛擬機上線

    軟件的優化來滿足此類需求。近期,微軟宣布基于 Azure Cobalt 100 處理器的新 Azure 虛擬機 (VM) 全面上線,其中 Azure Cobalt 100 處理器是基于 Arm
    的頭像 發表于 10-27 11:00 ?807次閱讀

    云計算平臺的最佳實踐

    云計算平臺的最佳實踐涉及多個方面,以確保高效、安全、可擴展和成本優化的云環境。以下是一些關鍵的最佳實踐: 一、云成本優化 詳細分析云使用情況
    的頭像 發表于 10-24 09:17 ?709次閱讀

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

    本帖最后由 jf_40317719 于 2024-9-29 17:13 編輯 智能硬件的語音交互接入大模型后可以直接理解自然語言內容,但大模型作為一個語言模型,對專業領域知識
    發表于 09-29 17:12
    主站蜘蛛池模板: 激情欧美在线 | 国产精品网址你懂的 | 男女爱爱福利 | 天堂bt资源在线官网 | 黄网站在线观看永久免费 | 免费看日本大片免费 | 色综合激情丁香七月色综合 | 久久国产成人精品国产成人亚洲 | 午夜视频在线免费 | 成人黄性视频 | av网址在线看 | 国产美女特级嫩嫩嫩bbb | 碰免费人人人视频 | 国产高清不卡一区二区 | avtt香蕉 | 欧美一级乱理片免费观看 | 国产在线精品一区免费香蕉 | 经典三级一区二区三区视频 | 特别黄的免费视频大片 | 一级特黄aa毛片免费观看 | 国产三级日产三级日本三级 | 久久激情五月 | 午夜小视频在线 | 亚洲第一网站快活影院 | www.色播.com| 人人添 | 日本中文在线三级在线播放 | 一区二区三区视频 | 一级做性色a爱片久久片 | 久久免费看视频 | 国产99在线 | 成人看片免费无限观看视频 | 日韩一级欧美一级 | 亚洲不卡在线播放 | 黄网站色视频大全免费观看 | 亚洲禁片 | 男人和女人在床做黄的网站 | 色多多在线免费观看 | 四虎在线成人免费网站 | 四虎精品成在线播放 | 丁香婷婷影院 |