色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

在Arm上使用向量數學函數

jf_9aVl32Dp ? 來源:Arm軟件開發者 ? 作者:Arm軟件開發者 ? 2023-05-28 09:21 ? 次閱讀

作者:Chris Goodyer 2023年5月16日

廣泛工作負載(包括許多基準測試,如SPEC)的性能依賴于基本數學例程的有效實現。這些例程可以通過矢量化和有效使用SIMD管道來利用性能。

最近的一篇博客文章(https://community.arm.com/arm-community-blogs/b/high-performance-computing-blog/posts/bringing-wrf-up-to-speed-with-arm-neoverse)描述了如何使用Arm Compiler for LinuxACfL)和Arm performance Library(Arm PL)中提供的SVE子程序來提高Neoverse V1上天氣預測模型的性能。

Arm優化的標量和向量數學例程實現在Arm軟件/優化例程中作為開源軟件公開提供(https://github.com/ARM-software/optimized-routines)。這些實現被方便地授權,允許用戶在需要時直接將它們包含在其他項目中。此外,我們還將這些作為預編譯二進制文件發布,稱為Libamath,作為Arm PL和ACfL的一部分。

雖然ACfL能夠通過自動矢量化生成對矢量數學例程的調用(請參見https://developer.arm.com/documentation/101458/latest/有關使用“-fsimdmath”編譯器選項的更多詳細信息,其他編譯器可能還不允許在AArch64上發生這種情況。然而,將項目鏈接到Arm PL或在禁用自動矢量化的情況下使用ACfL構建它仍然可以訪問矢量數學符號。Libamath隨ACfL提供,但作為單獨的庫,因此可以通過添加-lamath將項目鏈接到Libamath。

在這篇文章中,我們強調了性能可能增加的規模,詳細說明了精度要求,并詳細解釋了如何在自己的代碼中直接使用這些函數。

準確性和性能

Libamath例程的最大錯誤低于4個ULP,并且僅支持默認的舍入模式(舍入到最近,綁定到偶數)。因此,與這些函數的其他矢量化實現類似,從libm切換到libamath會導致一系列例程的少量精度損失。

Neoverse V1系統的預期性能增益如以下2個單精度和雙精度例程圖所示。

15601026-fccc-11ed-90ce-dac502259ad0.png

15601026-fccc-11ed-90ce-dac502259ad0.png

命名和調用約定

Libamath標量例程的名稱與libm中使用的名稱相匹配,例如,單精度和雙精度指數分別稱為expf和exp。

每個向量例程都在向量ABI名稱下公開。AArch64的向量函數ABI(https://github.com/ARM-software/abi-aa/blob/2982a9f3b512a5bfdc9e3fea5d3b298f9165c36b/vfabia64/vfabia64.rst#451name-mangling-function)中定義的向量名稱篡改與glibc的向量ABI(https://sourceware.org/glibc/wiki/libmvec?action=AttachFile&do=view&target=VectorABI.txt)匹配(第2.6節)。

例如,標量、Neon和SVE單精度指數的符號分別讀作expf、_ZGVnN4v_expf和_ZGVsMxv_expf。

向量ABI 在向量ABI中,向量函數名被篡改為以下各項的串聯:

'_ZGV' '_'

其中

? :標量libm函數的名稱 ? :Neon為“n”,SVE為“s”

? :“M”表示屏蔽/謂詞版本,“N”表示無屏蔽。僅為SVE定義屏蔽例程,僅為Neon定義無屏蔽例程。

? :表示以車道數表示的矢量長度的整數。對于Neon,雙精度中=‘2’,單精度中=‘4’。對于SVE,=‘x’。

? :對于1個輸入浮點或整數參數,“v”用于簽名,“vv”用于2個。有關更多詳細信息,請參見AArch64的向量函數ABI(https://github.com/ARM-software/abi-aa/blob/2982a9f3b512a5bfdc9e3fea5d3b298f9165c36b/vfabia64/vfabia64.rst#451name-mangling-function)。

示例

最新版本23.04開始,Arm Performance Libraries提供了文檔和示例程序,以展示用戶如何直接從其程序中調用矢量例程,而不依賴于自動矢量化。以下代碼片段說明了如何調用Neon雙精度sincos、SVE單精度pow和SVE雙精度erf。

所有標量和向量例程的聲明都在頭文件amath.h中提供。

#include 
 
int main(void) {
  // Neon cos and sin (using sincos)
  float64x2_t vx = (float64x2_t){0.0, 0.5};
  double vc[2], vs[2];
  _ZGVnN2vl8l8_sincos(vx, vs, vc);
  
  // SVE math routines
#if defined(__ARM_FEATURE_SVE)
  // single precision pow
  svbool_t pg32 = svptrue_b32();
  svfloat32_t svx = svdup_n_f32(2.0f);
  svfloat32_t svy = svdup_n_f32(3.0f);
  svfloat32_t svz = _ZGVsMxvv_powf(svx, svy, pg32);
 
  // double precision error function
  svbool_t pg64 = svptrue_b64();
  svfloat64_t svw = svdup_n_f64(20.0);
  svfloat64_t sve = _ZGVsMxv_erf(svw, svptrue_b64());
#endif
}

結論

使用Arm Compiler for Linux時,libamath通過依賴于編譯器的自動矢量化,為這些應用程序提供了利用性能的潛力。這提供了所有math.h例程的Arm優化Neon和SVE變體。我們的“優化例程”(https://github.com/ARM-software/optimized-routines)開源代碼庫提供了對更廣泛使用的例程的最新優化的訪問權限。這些矢量化算法已經用于加速計算物理、機器學習網絡等各種應用程序中的基本數學運算。當使用這兩種方法之一時,用戶還可以使用上面描述的接口直接從其代碼中調用這些矢量例程。


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

    關注

    134

    文章

    9164

    瀏覽量

    368693
  • SPEC
    +關注

    關注

    0

    文章

    31

    瀏覽量

    15826
  • 數學函數
    +關注

    關注

    0

    文章

    9

    瀏覽量

    6366

原文標題:在Arm上使用向量數學函數

文章出處:【微信號:Arm軟件開發者,微信公眾號:Arm軟件開發者】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    MATLAB常用的基本數學函數

    matlab! MATLAB常用的基本數學函數 abs(x):純量的絕對值或向量的長度angle(z):復數z的相角(Phase angle)sqrt(x):開平方real(z):復數z的實部
    發表于 03-11 23:34

    XC32函數向量x到大

    用它時,鏈接器就抱怨VEC。Tor函數是大的。我缺少什么?向量間距由啟動代碼設置為8,MVEC啟用。我使用下面的ISR C代碼:下面的程序集:這是鏈接器的輸出:XC32-L.E.EX:異常
    發表于 10-26 16:09

    學習DSP庫的基本數學函數

    第11章 DSP基礎函數-絕對值,求和,乘法和點乘本期教程開始學習ARM官方的DSP庫,這里我們先從基本數學函數開始。本期教程主要講絕對值,加法,點乘和乘法四種運算。目錄第11章 DS
    發表于 08-17 07:13

    基于支持向量機的預測函數控制

    基于支持向量機的預測函數控制 Predictive Functional Control Based on Support Vector Machine
    發表于 03-17 09:24 ?21次下載

    基于先驗知識的支持向量圖像分割中的應用

    文中研究現有先驗知識與支持向量機融合的基礎,針對置信度函數憑經驗給出的不足,提出了一種確定置信度函數方法,更好地進行分類。該方法是建立
    發表于 07-16 17:02 ?39次下載

    雙目標函數支持向量情感分析中的應用

    雙目標函數支持向量情感分析中的應用_劉春雨
    發表于 01-03 17:41 ?0次下載

    組合核函數多支持向量機的直線電機建模

    組合核函數多支持向量機的直線電機建模_趙吉文
    發表于 01-07 17:16 ?1次下載

    大數據中邊界向量調節熵函數支持向量機研究

    大數據中邊界向量調節熵函數支持向量機研究_林蔚
    發表于 01-07 19:08 ?0次下載

    發掘函數級單指令多數據向量化的方法

    當前面向單指令多數據( SIMD)擴展部件的兩類向量化方法分別是循環級向量化方法和超字級并行(SLP)方法。針對當前編譯器不能實現函數向量化的問題,提出一種基于靜態單賦值的
    發表于 11-29 16:08 ?0次下載
    發掘<b class='flag-5'>函數</b>級單指令多數據<b class='flag-5'>向量</b>化的方法

    基于申威26010處理器的擴展函數庫實現與優化

    Intel.AMD和IBM都具有針對自身特點的向量擴展庫。相比于傳統的標量計算,向量化技術帶來的加速比較高。為此,針對申威26010處理器開發向量數學庫軟件。
    發表于 03-01 15:41 ?2次下載
    基于申威26010處理器的擴展<b class='flag-5'>函數</b>庫實現與優化

    簡單的數學運算計算數學函數的方法CORDIC的詳細資料概述

    CORDIC是一個稱為二進制搜索的循環中使用更簡單的數學運算來計算數學函數的方法。最常用的CORDIC用于計算AtAN2(角度)和點的斜邊(距離)。CORDIC還可以用來計算其他
    發表于 05-31 11:18 ?12次下載
    簡單的<b class='flag-5'>數學運算計算數學</b><b class='flag-5'>函數</b>的方法CORDIC的詳細資料概述

    如何理解ARM異常、中斷和向量

    以前,我一直很疑惑這個“ ARM異常 、 中斷以 及他們的 向量表 ”是怎么回事,他們到底是怎么實現的,沒有想到今天偶然看到(ARM System Developers Guide
    發表于 06-14 10:34 ?4340次閱讀
    如何理解<b class='flag-5'>ARM</b>異常、中斷和<b class='flag-5'>向量</b>表

    使用英特爾數學核心函數庫優化三重嵌套循環矩陣乘法

    我們使用英特爾?數學核心函數庫(MKL)Linux *優化了三重嵌套循環矩陣乘法的版本。
    的頭像 發表于 11-07 06:04 ?3636次閱讀

    支持向量機(核函數的定義)

    根據機器學習相關介紹(10)——支持向量機(低維到高維的映射),支持向量機可通過引入φ(x)函數,將低維線性不可分問題轉換為高維線性可分問題。
    的頭像 發表于 05-20 10:41 ?862次閱讀
    支持<b class='flag-5'>向量</b>機(核<b class='flag-5'>函數</b>的定義)

    計算數學中的函數迭代介紹

    函數迭代是數學中一個非常重要和有趣的主題,它在不同的領域有著不同的應用和著眼點。動力系統中,函數迭代可以揭示復雜系統的演化規律和混沌現象;
    的頭像 發表于 08-30 10:11 ?1439次閱讀
    計算<b class='flag-5'>數學</b>中的<b class='flag-5'>函數</b>迭代介紹
    主站蜘蛛池模板: 免费看黄色小说 | 久久综合色一综合色88中文 | www.av一区| 久久人人玩人妻潮喷内射人人 | 一扒二脱三插片在线观看 | 伊人久久久久久久久香港 | 久久a在线视频观看 | 中文字幕a有搜索网站 | 日本妈妈JMZZZZZ | 成人国产一区 | 秋霞影音先锋一区二区 | 丰满人妻熟女色情A片 | 亚洲精品第一国产综合 | 国产亚洲日韩在线播放不卡 | 动漫美女被到爽了流 | 在线 国产 欧美 专区 | 刘梓晨啪啪啪 | 激情欧美日韩一区二区 | 4480YY旧里番在线播放 | 国产免费毛片在线观看 | 丰满少妇被猛烈进出69影院 | 九九久久国产精品免费热6 九九久久国产精品大片 | 国产成人无码精品久久久免费69 | 97成人免费视频 | 囯产精品久久久久免费蜜桃 | 久久久黄色大片 | 免费麻豆国产黄网站在线观看 | 日韩人妻少妇一区二区三区 | 国产爱豆剧果冻传媒在线 | 中文字幕亚洲无线码高清不卡 | 日本亚洲电影 | 亚洲欧美无码2017在线 | 久久久这里有精品999 | 国产午夜精品一区二区理论影院 | 欧美亚洲国内日韩自拍视频 | 九九免费精品视频 | 超碰人人草在线视频 | 午夜DY888国产精品影院 | 97夜夜澡人人爽人人模人人喊 | 国产成人免费a在线视频app | 国产成人片视频一区二区青青 |