<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          EMLL高性能端側(cè)機(jī)器學(xué)習(xí)計(jì)算庫(kù)

          聯(lián)合創(chuàng)作 · 2023-09-26 05:53

          EMLL(Edge ML Library)為加速終端側(cè)設(shè)備上機(jī)器學(xué)習(xí)的推理而設(shè)計(jì),提供基于端側(cè)處理器的高性能機(jī)器學(xué)習(xí)計(jì)算函數(shù)庫(kù)。EMLL支持fp32、fp16、int8等數(shù)據(jù)類型,已在有道詞典筆、翻譯王和超級(jí)詞典等硬件產(chǎn)品的機(jī)器翻譯和語(yǔ)音識(shí)別引擎中應(yīng)用,大幅降低了推理延遲。

          特點(diǎn)

          高性能

          EMLL實(shí)現(xiàn)的矩陣乘法函數(shù),為端側(cè)人工智能中常見的扁平矩陣作了專門的優(yōu)化,為各常見ARM處理器作了特定的優(yōu)化。對(duì)于cortex-A35/A53/A55處理器,本庫(kù)針對(duì)它們的流水線特點(diǎn),使用了匯編級(jí)別的優(yōu)化。

          下面是單精度矩陣乘法的測(cè)試結(jié)果:

          矩陣乘法的通式為 C[MxN] = A[MxK] B[KxN];所列數(shù)據(jù)為全行主序和全列主序的最好性能。

          易用性

          EMLL使用的函數(shù)接口在參數(shù)設(shè)計(jì)上力求簡(jiǎn)潔直接,矩陣乘法去掉了不常用的LD*參數(shù),矩陣和向量的傳遞通過(guò)指針和整數(shù)維度分別傳遞。本庫(kù)的構(gòu)建和運(yùn)行不依賴第三方計(jì)算庫(kù)。

          擴(kuò)展性

          對(duì)于矩陣乘法和量化函數(shù),EMLL 庫(kù)提取了它們和架構(gòu)無(wú)關(guān)的代碼作為通用的宏,這些宏可以在支持新的CPU架構(gòu)時(shí)大大節(jié)省所需的代碼量。

          EMLL 應(yīng)用接口

          EMLL提供基于 C 的接口,詳情請(qǐng)見 Usage_ZH.md。

          函數(shù)類型 函數(shù)名稱 函數(shù)參數(shù)
          矩陣乘法 data_type + "gemm" 源矩陣排列順序,各矩陣地址,M,N,K,beta,并行線程數(shù)
          全連接層(單精度) "fc" src/weight/bias/output的地址,M,K,N,源矩陣排列順序,(并行線程數(shù))
          量化 "quantize_" + "symmetric"/"asymmetric" + input_type + output_type 輸入數(shù)組,輸出數(shù)組,(輸出零點(diǎn)值),縮放值,數(shù)組大小,輸入范圍
          重量化 "requantize_" + "symmetric/asymmetric" + "_XtoY" 輸入數(shù)組,輸出數(shù)組,(輸出零點(diǎn)值),輸出縮放值,數(shù)組大小,輸入范圍
          偏置 "bias" + data_type 被偏置的矩陣,標(biāo)量偏置,平行于主方向的向量偏置,平行于次方向的向量偏置,矩陣大小

          各函數(shù)支持的數(shù)據(jù)類型

          處理器 矩陣乘法 偏置 量化 重量化
          ARMv7a 32-bit fp32,(u)int8 fp32,int32 fp32 -> (u)int16/(u)int8 int32 -> (u)int16/(u)int8,int16 -> (u)int8
          ARMv8a 64-bit fp32,fp16,(u)int8 fp32,int32 fp32 -> (u)int16/(u)int8 int32 -> (u)int16/(u)int8,int16 -> (u)int8

          EMLL 支持在 Linux 和安卓系統(tǒng)上運(yùn)行。

          EMLL 支持用 GCC 和 Clang 編譯。

          瀏覽 37
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  高清肏屄视频 | 日韩国产一区二区 | 天天爱av | 日韩3级片| 国产精品第八页 |