91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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ù)中常見(jiàn)的運(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 版本,或者是從開(kāi)源源代碼編譯支持 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 是開(kāi)源軟件,下載后編譯并設(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

開(kāi)源軟件 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

獲取開(kāi)源的 PyTorch 代碼,下載相應(yīng)的依賴開(kāi)源軟件,指定使能 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á)摩院開(kāi)發(fā)的開(kāi)源的基于 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ù)并沒(méi)有按照多處理器進(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

    文章

    20255

    瀏覽量

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

    關(guān)注

    135

    文章

    9553

    瀏覽量

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

    關(guān)注

    39

    文章

    1812

    瀏覽量

    116058
  • pytorch
    +關(guān)注

    關(guān)注

    2

    文章

    813

    瀏覽量

    14853

原文標(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)推薦

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

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

    西門子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 ?680次閱讀
    西門子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ù)增長(zhǎng),客戶將工作負(fù)載加速器連接至 Arm
    的頭像 發(fā)表于 11-26 11:08 ?481次閱讀

    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 ?5394次閱讀
    <b class='flag-5'>在</b>NVIDIA DGX Spark<b class='flag-5'>平臺(tái)上</b>對(duì)NVIDIA ConnectX-7 200G網(wǎng)卡配置教程

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

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

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

    無(wú)法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)上使用開(kāi)源推理框架 llama.cpp 實(shí)現(xiàn) DeepSeek-R1
    的頭像 發(fā)表于 07-03 14:37 ?1246次閱讀
    <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

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

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

    智能語(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 ?800次閱讀

    Arm助力開(kāi)發(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 ?1237次閱讀

    如何在基于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 ?840次閱讀
    如何在基于<b class='flag-5'>Arm</b> <b class='flag-5'>Neoverse</b><b class='flag-5'>平臺(tái)</b>的CPU上構(gòu)建分布式Kubernetes集群