女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內(nèi)不再提示

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

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

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

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

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

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

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

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

圖 1:BFloat16 格式

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

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

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

圖 2:矩陣乘指令

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

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

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

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

ACL 是開源軟件,下載后編譯并設(shè)定相應(yīng)的系統(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,下載相應(yīng)源代碼編譯和安裝。

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

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

# cmake & make & make install

獲取開源的 PyTorch 代碼,下載相應(yīng)的依賴開源軟件,指定使能 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 架構(gòu)的硬件加速資源來加速 PyTorch 的計算。盡管 PyTorch 可以在 Arm 架構(gòu)上利用硬件加速資源,但針對具體模型和應(yīng)用場景,需要對模型和代碼進行一些調(diào)整以最大程度地發(fā)揮硬件的加速優(yōu)勢。

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

FunASR 是阿里巴巴達摩院開發(fā)的開源的基于 Paraformer 的大模型語音識別模型,提供包括語音識別 (ASR)、語音端點檢測 (VAD)、標點恢復(fù)、語言模型、說話人驗證、說話人分離和多人對話語音識別等在內(nèi)的多種功能。本文以 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 已經(jīng)啟動 ACL 進行加速,可以加上 “DNNL_VERBOSE=1” 來查看運行的日志輸出。

# OMP_NUM_THREADS=16 DNNL_VERBOSE=1 python runtimes.py

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

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

得到如上的輸出結(jié)果,可以看到已經(jīng)啟用了 ACL。

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

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)計分析日志

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

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

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

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

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

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

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

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

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

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

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

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





審核編輯:劉清

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

    關(guān)注

    68

    文章

    19802

    瀏覽量

    233520
  • ARM
    ARM
    +關(guān)注

    關(guān)注

    134

    文章

    9305

    瀏覽量

    374972
  • 語音識別
    +關(guān)注

    關(guān)注

    39

    文章

    1773

    瀏覽量

    113899
  • pytorch
    +關(guān)注

    關(guān)注

    2

    文章

    809

    瀏覽量

    13760

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

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

收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

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

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

    智能語音交互方案客服領(lǐng)域的應(yīng)用

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

    Arm助力開發(fā)者加速遷移至Arm架構(gòu)云平臺 Arm云遷移資源分享

    隨著基于 Arm 架構(gòu)的云實例日益擴展,越來越多的用戶正從傳統(tǒng)平臺遷移至 Arm 平臺上
    的頭像 發(fā)表于 04-09 18:23 ?518次閱讀

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

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

    使用OpenVINO?進行優(yōu)化后,為什么DETR模型不同的硬件上測試時顯示不同的結(jié)果?

    通過模型優(yōu)化優(yōu)化了 DETR 模型 SPR 計算機上使用優(yōu)化
    發(fā)表于 03-05 10:27

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

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

    HAL庫Arduino平臺上的使用

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

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

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

    基于Arm Neoverse N2實現(xiàn)自動語音識別技術(shù)

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

    Arm推出GitHub平臺AI工具,簡化開發(fā)者AI應(yīng)用開發(fā)部署流程

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

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

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

    云計算平臺的最佳實踐

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

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

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

    深度學(xué)習算法嵌入式平臺上的部署

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

    Transformer模型語音識別和語音生成中的應(yīng)用優(yōu)勢

    隨著人工智能技術(shù)的飛速發(fā)展,語音識別和語音生成作為人機交互的重要組成部分,正逐漸滲透到我們生活的各個方面。而Transformer模型,自其誕生以來,憑借其獨特的自注意力機制和并行計算能力,
    的頭像 發(fā)表于 07-03 18:24 ?1984次閱讀