chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

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

Arm 架構(gòu)的服務(wù)器通常具備低功耗的特性,能帶來(lái)更優(yōu)異的能效比。相比于傳統(tǒng)的 x86 架構(gòu)服務(wù)器,Arm 服務(wù)器在相同功耗下能夠提供更高的性能。這對(duì)于大模型推理任務(wù)來(lái)說(shuō)尤為重要,因?yàn)榇竽P屯ǔP枰罅康挠?jì)算資源,而能效比高的 Arm 架構(gòu)服務(wù)器可以提供更好的性能和效率。

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

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

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

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

圖 1:BFloat16 格式

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

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

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

圖 2:矩陣乘指令

ACL 實(shí)現(xiàn) PyTorch 的計(jì)算加速

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

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

圖 3:Arm Neoverse 平臺(tái) 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 也實(shí)現(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 的方法進(jìn)行編譯,獲取 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

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

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

FunASR 是阿里巴巴達(dá)摩院開發(fā)的開源的基于 Paraformer 的大模型語(yǔ)音識(shí)別模型,提供包括語(yǔ)音識(shí)別 (ASR)、語(yǔ)音端點(diǎn)檢測(cè) (VAD)、標(biāo)點(diǎn)恢復(fù)、語(yǔ)言模型、說(shuō)話人驗(yàn)證、說(shuō)話人分離和多人對(duì)話語(yǔ)音識(shí)別等在內(nèi)的多種功能。本文以 FunASR 在 Arm Neoverse 平臺(tái)上優(yōu)化的過(guò)程做為大模型的優(yōu)化實(shí)踐案例。

倉(cāng)庫(kù)地址: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 進(jìn)行,測(cè)試平臺(tái)基于阿里云的 ECS 公有云,包括 C8Y、C8I、C7 等云實(shí)例。

為了確保 PyTorch 已經(jīng)啟動(dòng) ACL 進(jìn)行加速,可以加上 “DNNL_VERBOSE=1” 來(lái)查看運(yùn)行的日志輸出。

# OMP_NUM_THREADS=16 DNNL_VERBOSE=1 python runtimes.py

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

圖 5:使能 ACL 的 PyTorch 運(yùn)行日志

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

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

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

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

# OMP_NUM_THREADS=16 ONEDNN_DEFAULT_FPMATH_MODE=BF16 python profile.py

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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





審核編輯:劉清

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

    關(guān)注

    68

    文章

    20069

    瀏覽量

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

    關(guān)注

    135

    文章

    9450

    瀏覽量

    385713
  • 語(yǔ)音識(shí)別
    +關(guān)注

    關(guān)注

    39

    文章

    1795

    瀏覽量

    115056
  • pytorch
    +關(guān)注

    關(guān)注

    2

    文章

    812

    瀏覽量

    14426

原文標(biāo)題:FunASR 語(yǔ)音大模型在 Arm Neoverse 平臺(tái)上的優(yōu)化實(shí)踐

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    3Dfindit上發(fā)布世嘉智尼的上萬(wàn)個(gè)3D CAD模型優(yōu)化用戶設(shè)計(jì)流程

    進(jìn)行創(chuàng)新銷售 零部件制造商通過(guò) eCATALOG 3Dfindit 全球工程平臺(tái) 3Dfindit 發(fā)布產(chǎn)品目錄,實(shí)則將銷售渠道直接延伸至設(shè)計(jì)師的 CAD 系統(tǒng):所有模型均經(jīng)制造商驗(yàn)證,支持 100
    發(fā)表于 08-27 15:44

    西門子 Veloce CS 助力 Arm Neoverse 計(jì)算子系統(tǒng)驗(yàn)證與確認(rèn)

    子系統(tǒng) (CSS) 的設(shè)計(jì)流程的一部分。 對(duì)于我們的生態(tài)合作伙伴而言,產(chǎn)品上市速度日益成為關(guān)注焦點(diǎn),而這也是在當(dāng)前計(jì)算時(shí)代保持競(jìng)爭(zhēng)力的關(guān)鍵。Arm Neoverse CSS 的核心要素之一
    的頭像 發(fā)表于 08-06 09:26 ?2345次閱讀

    Arm Neoverse N2平臺(tái)實(shí)現(xiàn)DeepSeek-R1滿血版部署

    頗具優(yōu)勢(shì)。Arm 攜手合作伙伴, Arm Neoverse N2 平臺(tái)上使用開源推理框架 llama.cpp 實(shí)現(xiàn) DeepSeek-R1
    的頭像 發(fā)表于 07-03 14:37 ?811次閱讀
    <b class='flag-5'>Arm</b> <b class='flag-5'>Neoverse</b> N2<b class='flag-5'>平臺(tái)</b>實(shí)現(xiàn)DeepSeek-R1滿血版部署

    2.0.0版本的ST Edge AI Corelinux平臺(tái)上可以把量化后的onnx模型轉(zhuǎn)換為.nb,但是運(yùn)行報(bào)錯(cuò),缺少文件,為什么?

    2.0.0版本的ST Edge AI Core工具linux平臺(tái)上應(yīng)該是可以把量化后的onnx模型轉(zhuǎn)換為.nb,但是運(yùn)行報(bào)錯(cuò),缺少文件。
    發(fā)表于 06-17 06:29

    解讀基于Arm Neoverse V2平臺(tái)的Google Axion處理器

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

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

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

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

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

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

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

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

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

    HAL庫(kù)Arduino平臺(tái)上的使用

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

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

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

    基于Arm Neoverse N2實(shí)現(xiàn)自動(dòng)語(yǔ)音識(shí)別技術(shù)

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

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

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

    基于Arm Neoverse的微軟全新Azure虛擬機(jī)上線

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

    云計(jì)算平臺(tái)的最佳實(shí)踐

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