日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

QNNPACK高性能前向内核库全面剖析——引言篇

發布時間:2024/4/18 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 QNNPACK高性能前向内核库全面剖析——引言篇 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

前段時間因為項目需求,搞了一段時間的前向優化,主要參考了Facebook 18年開源的神經網絡加速庫QNNPACK。

QNNPACK針對INT8的量化網絡,對神經網絡的各個算子都提供了非常高效的優化方案,傳言其卓越的性能幾乎擊敗了全部已公開的加速算法,不管真假,就優化方案而已個人覺得還是比較新穎,值得好好研究的。到目前為止,QNNPACK已經開源一年多了,除了不多的官方資料之外,民間資料也是最近幾個月才陸陸續續出現一些(文章后面會貼出鏈接),覺得有必要對QNN做一個細致的記錄,這里寫個QNN專欄方便大家參考交流。

本篇僅作為開篇引言,主要說一些宏觀的東西,內容基本都會在官方文檔上面找到,短期內會補上對QNN的詳細介紹。文章內容會偏重于對QNN源碼的分析以及工程的實現,當然在介紹的過程中會結合算法對方案的優勢進行說明。詳細的宏觀算法設計可參考知乎大神的文章神經網絡加速庫 QNNPACK 實現揭秘;facebook官方文檔也可參考,就是比較粗略;前不久QNN的作者也發表文章介紹了qnn加速的核心思想(ps:作者Marat Dukhan從facebook跑路google了,文章署名也是現任公司google...., QNN估計是要停更了)。

?

QNNPACK初識

為了讓這篇文章不會顯得毫無價值,接下來會對QNN的優化方案做一個宏觀的介紹,讓各位心里有個數。QNN的數據流通為UINT8類型,圖像內存分布為NHWC模式,內核庫包含常見的Conv/Depthwise Conv、Deconv、各種Pooling、Eltwise Sum等網絡算子。本文默認讀者了解神經網絡量化原理,不清楚的也不影響看懂,想了解的話看這篇文章。

每個算子從代碼邏輯上可以分為三個階段:

第一:卷積的數據準備,這一步可以說是精華所在,整個算法實現的基礎了。這一階段涉及輸入相關的間接內存緩沖區(Indirext Buffer)的計算以及對權重數據的分塊重排;

以卷積為例,QNNPACK 實現了 4×8 的和 8×8 兩種計算核(micro kernel),分別用于支持 armv7 和 arm64 指令集的處理器。這兩種計算核在原理上區別不大,后者主要利用了更多的寄存器和雙發射(Dual Issue)以提高計算的并行度。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖一:間接緩沖區

QNN的一大亮點就是使用了Inter Buffer。常用的Im2col優化算法存在兩個問題,第一是占用大量的額外內存,第二是需要對輸入進行額外的數據拷貝。這兩點如何才能解決呢?間接卷積算法給出的答案是間接緩沖區(Indirect Buffer),如圖一右半所示。

Im2col 優化算法首先將輸入拷貝到一個矩陣中,如圖一中 Input 的相關箭頭,然后執行矩陣乘操作。間接卷積優化算法使用的間接緩沖區中存儲的其實是指向輸入的指針(這也是間接卷積優化算法要求輸入內存地址固定的原因)。在代碼實現時,第一階段就需分配好每一層輸入的內存空間將Indirect Buffer要指向的區域固定,在第二階段運行的時候將每一層的輸入都放到第一階段分配的指定內存塊中,之后就可以利用Inter Buffer(便于介紹,后文將用二級指針替換Inter Buffer的說法)來對輸入數據進行操作了。

第二:運行,在NHWC數據模式的加持下,qnnpack的解決方案使得cache的利用率空前提高,NEON并行原語及NEON匯編也得以大放光彩。

第三:內存清理,就不說了。

?

文章有關QNNPACK原理的內容部分會參考神經網絡加速庫 QNNPACK 實現揭秘以及通用矩陣乘(GEMM)優化與卷積計算,感謝兩位大佬。文章畢竟是從源碼逆向推理,如果存在分析錯漏還請各位小伙伴幫忙指正。

總結

以上是生活随笔為你收集整理的QNNPACK高性能前向内核库全面剖析——引言篇的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 青在线视频 | 中文字幕乱码无码人妻系列蜜桃 | 成人依依 | 黄色精品视频 | 亚洲精品成人区在线观看 | 波多野结衣久久久久 | 成人影音在线 | 天天撸天天射 | 欧美97 | 美女88av| 欧美人与性动交α欧美精品 | 美女大黄网站 | 天天干视频在线观看 | 日本在线观看视频网站 | 成人黄色动漫在线观看 | 欧美一级片免费在线观看 | 中文字幕+乱码+中文乱 | 丁香婷婷亚洲 | 亚洲少妇30p | 天天干天天插天天操 | 凹凸日日摸日日碰夜夜 | 女教师痴汉调教hd中字 | 亚洲无圣光 | 成人高清免费观看 | 日韩人妻无码精品综合区 | 狠狠人妻久久久久久综合蜜桃 | 日出白浆视频 | 日日网站 | 91操碰| 毛片9 | 91黄色在线视频 | 亚洲在线不卡 | 国产成人+综合亚洲+天堂 | 亚洲黄在线观看 | 国产激情在线播放 | 青青av在线 | 一区二区三区国产在线 | 欧美日韩一区二区不卡 | 自拍偷拍另类 | 6080电视影片在线观看 | 毛片在线播放视频 | 激情视频一区二区三区 | 九九热在线视频免费观看 | 欧洲色区 | 蜜臀少妇久久久久久久高潮 | av的天堂| 国产成人午夜精品无码区久久 | 住在隔壁的她动漫免费观看全集下载 | 久久午夜夜伦鲁鲁片无码免费 | 国产不卡av在线播放 | 热播网| 日韩视频久久 | 亚洲一区影视 | 欧美日韩国产精品成人 | 国产一级特黄 | 国产精品久久久久久久毛片 | 国产精品一二三四 | 天天操天天摸天天干 | 99热这里只有精品首页 | 国产又粗又猛又爽69xx | 少妇大叫太粗太大爽一区二区 | 欧美一区二区激情 | 肉大捧一进一出免费视频 | 日韩Av无码精品 | 伊人成综合网 | 亚洲怡春院 | 天天插天天爱 | 蜜色影院| 久久久精品 | 久久精品视频日本 | 理伦毛片 | 中文字幕av影片 | 日韩av不卡一区二区 | 久久国产免费看 | 91精品国产成人 | 亚洲少妇xxx| h片在线观看 | 老司机在线免费视频 | 午夜视频a| 色秀视频在线观看 | 在线观看xxxx | 日本一区二区免费在线观看 | 天天操天天射天天舔 | 欧美三级色图 | 国产一级18片视频 | 在线观看麻豆av | 天堂一区二区三区 | 一区二区日本视频 | 亚洲精品国产精品乱码不卡√香蕉 | 精品视频999 | 国产精品福利一区二区三区 | 国产精品麻豆一区二区三区 | 美女黄色一级视频 | 黄色三级图片 | 国产精品777 | 国产精品边吃奶边做爽 | 国产乱性 | 亚洲一区动漫 | 欧美成人精品一区二区免费看片 |