日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

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

Arm社區(qū) ? 來源: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ù)器通常具備低功耗的特性,能帶來更優(yōu)異的能效比。相比于傳統(tǒng)的 x86 架構(gòu)服務(wù)器,Arm 服務(wù)器在相同功耗下能夠提供更高的性能。這對(duì)于大模型推理任務(wù)來說尤為重要,因?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í)提供足夠的精度,來滿足大多數(shù) AI 推理任務(wù)的要求。由于 SVE2 提供了針對(duì) BF16 的向量指令,可以在同一條指令中同時(shí)處理多個(gè) BF16 數(shù)據(jù)元素,從而提高計(jì)算效率。理論上來說,采用 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 可以通過單指令實(shí)現(xiàn) BF16 格式下 4x2 矩陣和 2x4 矩陣的乘法,UMMLA、SMMLA 等可以實(shí)現(xiàn) INT8 格式下 8x2 矩陣和 2x8 矩陣的矩陣乘法運(yùn)算。通過 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ì)算庫) 實(shí)現(xiàn)了 Arm 架構(gòu)的硬件加速資源的優(yōu)化封裝,通過 OneDNN 來使 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)的硬件加速資源來加速 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 的大模型語音識(shí)別模型,提供包括語音識(shí)別 (ASR)、語音端點(diǎn)檢測(cè) (VAD)、標(biāo)點(diǎn)恢復(fù)、語言模型、說話人驗(yàn)證、說話人分離和多人對(duì)話語音識(shí)別等在內(nèi)的多種功能。本文以 FunASR 在 Arm Neoverse 平臺(tái)上優(yōu)化的過程做為大模型的優(yōu)化實(shí)踐案例。

倉庫地址: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” 來查看運(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í)間顯著較長。

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

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

通過分析定位,發(fā)現(xiàn)在 OMP 的操作中,數(shù)據(jù)并沒有按照多處理器進(jìn)行并行數(shù)據(jù)處理,修復(fù)問題后,再次測(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 來動(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ì)比

綜上,通過充分利用 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ī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    20339

    瀏覽量

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

    關(guān)注

    135

    文章

    9589

    瀏覽量

    393776
  • 語音識(shí)別
    +關(guān)注

    關(guān)注

    39

    文章

    1825

    瀏覽量

    116252
  • pytorch
    +關(guān)注

    關(guān)注

    2

    文章

    813

    瀏覽量

    14930

原文標(biāo)題:FunASR 語音大模型在 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)推薦

    基于Arm平臺(tái)的端到端int8 Conformer模型部署

    邊緣側(cè)運(yùn)行高質(zhì)量的語音與音頻模型頗具挑戰(zhàn),需滿足時(shí)延、內(nèi)存、功耗和模型大小等多方面的嚴(yán)苛約束。不同于云端部署,邊緣側(cè)系統(tǒng)通常離線運(yùn)行,需兼顧用戶隱私與可預(yù)測(cè)的實(shí)時(shí)性能。這些落地場(chǎng)景涵
    的頭像 發(fā)表于 02-24 10:23 ?452次閱讀
    基于<b class='flag-5'>Arm</b><b class='flag-5'>平臺(tái)</b>的端到端int8 Conformer<b class='flag-5'>模型</b>部署

    如何在Arm Neoverse N2平臺(tái)上提升llama.cpp擴(kuò)展性能

    跨 NUMA 內(nèi)存訪問可能會(huì)限制 llama.cpp Arm Neoverse 平臺(tái)上的擴(kuò)展能力。本文將為你詳細(xì)分析這一問題,并通過引入原型驗(yàn)證補(bǔ)丁來加以解決。測(cè)試結(jié)果表明,
    的頭像 發(fā)表于 02-11 10:06 ?326次閱讀

    西門子EDA與Arm攜手合作加速系統(tǒng)設(shè)計(jì)驗(yàn)證進(jìn)程與軟件啟動(dòng)

    對(duì)芯片設(shè)計(jì)而言,加速產(chǎn)品的上市流程至關(guān)重要。為此,西門子EDA與Arm攜手合作,為Arm的合作伙伴提供了一系列基于Arm Neoverse
    的頭像 發(fā)表于 12-19 09:06 ?898次閱讀
    西門子EDA與<b class='flag-5'>Arm</b>攜手合作加速系統(tǒng)設(shè)計(jì)驗(yàn)證進(jìn)程與軟件啟動(dòng)

    Arm Neoverse平臺(tái)集成NVIDIA NVLink Fusion

    生態(tài)系統(tǒng),實(shí)現(xiàn)全緩存一致性與高帶寬互連。 隨著 AI 數(shù)據(jù)中心對(duì) Arm Neoverse 的需求持續(xù)增長,客戶將工作負(fù)載加速器連接至 Arm
    的頭像 發(fā)表于 11-26 11:08 ?587次閱讀

    NVIDIA DGX Spark平臺(tái)上對(duì)NVIDIA ConnectX-7 200G網(wǎng)卡配置教程

    NVIDIA DGX Spark 平臺(tái)上對(duì) NVIDIA ConnectX-7 200G 網(wǎng)卡進(jìn)行配置時(shí),會(huì)遇到“4 個(gè)邏輯端口”現(xiàn)象。理解背后的真相是后續(xù)所有配置的基礎(chǔ)。本文將從此現(xiàn)象入手,逐步解析其原理,并提供從基礎(chǔ)配置到深度性能驗(yàn)證的完整
    的頭像 發(fā)表于 11-21 09:19 ?6124次閱讀
    <b class='flag-5'>在</b>NVIDIA DGX Spark<b class='flag-5'>平臺(tái)上</b>對(duì)NVIDIA ConnectX-7 200G網(wǎng)卡配置教程

    如何把蜂鳥E203的核移植N4DDR平臺(tái)上

    請(qǐng)問一下我想把蜂鳥E203的核移植N4DDR平臺(tái)上,但是他們的約束文件及硬件電路區(qū)別很大,具體我該怎么修改呢?比如蜂鳥的核中只有4個(gè)撥碼開關(guān)而N4DDR上有16個(gè)撥碼開關(guān)。
    發(fā)表于 11-10 06:46

    端到端語音交互數(shù)據(jù) 精準(zhǔn)賦能語音模型進(jìn)階

    模型多輪對(duì)話、噪聲環(huán)境及語義理解方面表現(xiàn)不佳。 相較于傳統(tǒng)數(shù)據(jù)集僅關(guān)注語音-文本的單點(diǎn)轉(zhuǎn)寫,端到端語音交互數(shù)據(jù)集強(qiáng)調(diào)在真實(shí)多輪對(duì)話場(chǎng)景下的全維度信息保留。 其核心特征體現(xiàn)在三方面:其
    的頭像 發(fā)表于 09-11 17:17 ?848次閱讀

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

    進(jìn)行創(chuàng)新銷售 零部件制造商通過 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)爭力的關(guān)鍵。Arm Neoverse CSS 的核心要素之一
    的頭像 發(fā)表于 08-06 09:26 ?3090次閱讀

    廣和通發(fā)布自研端側(cè)語音識(shí)別大模型FiboASR

    7月,全球領(lǐng)先的無線通信模組及AI解決方案提供商廣和通,發(fā)布其自主研發(fā)的語音識(shí)別大模型FiboASR。該模型專為端側(cè)設(shè)備上面臨的面對(duì)面實(shí)時(shí)對(duì)話及多人會(huì)議場(chǎng)景深度優(yōu)化
    的頭像 發(fā)表于 08-04 11:43 ?1786次閱讀

    無法NPU上推理OpenVINO?優(yōu)化的 TinyLlama 模型怎么解決?

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

    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 ?1451次閱讀
    <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

    能在Meteor Lake平臺(tái)上使用SDK 3.5嗎?

    SDK 是 3.6 版,不支持 CYPD6127 部件。 那么,我能在 Meteor Lake 平臺(tái)上使用 SDK 3.5 嗎?
    發(fā)表于 05-26 08:01

    【「零基礎(chǔ)開發(fā)AI Agent」閱讀體驗(yàn)】+Agent開發(fā)平臺(tái)

    開發(fā)平臺(tái)支持開發(fā)者根據(jù)自己的業(yè)務(wù)場(chǎng)景、功能需求自由配置Agent,通過平臺(tái)的API、工作流、數(shù)據(jù)庫、知識(shí)庫等,可以模型能力既定的情況下,極大地?cái)U(kuò)展Agent的能力和應(yīng)用場(chǎng)景。 4)
    發(fā)表于 05-13 12:24
    盈江县| 建昌县| 奇台县| 平江县| 云浮市| 宜章县| 永吉县| 水城县| 佛坪县| 静海县| 耒阳市| 荆门市| 香格里拉县| 马山县| 阿合奇县| 浦城县| 安乡县| 新乡县| 柳河县| 安平县| 衡南县| 南投市| 昌都县| 志丹县| 鄂托克前旗| 漠河县| 潍坊市| 林周县| 桓台县| 莱西市| 大理市| 旬邑县| 隆尧县| 濮阳县| 云霄县| 水城县| 收藏| 滦平县| 大丰市| 盈江县| 安平县|