TNN是一款移動端推理框架,具有高性能、輕量級的特點,擁有跨平臺、高性能、模型壓縮、代碼裁剪等眾多優(yōu)勢。目前TNN已經(jīng)在手機QQ、微視、P圖等應(yīng)用中落地。
TNN框架在原有Rapidnet、ncnn框架的基礎(chǔ)上進(jìn)一步加強了對移動端設(shè)備的支持,在性能方面也有所優(yōu)化,同時借鑒了業(yè)界主流開源框架的優(yōu)點,高性能和良好拓展性。
這次騰訊優(yōu)圖開源TNN,也是希望其推理框架能夠進(jìn)一步完善,共同為AI構(gòu)建一個開放共進(jìn)的生態(tài)環(huán)境,同時保持不斷的迭代更新。
騰訊優(yōu)圖已在GitHub上開源的TNN,可以通過下面的網(wǎng)址進(jìn)入
https://github.com/Tencent/TNN
計算優(yōu)化,算力強
TNN對主流平臺的適應(yīng)性強,對CPU: ARMv7, ARMv8, GPU: Mali, Adreno, Apple) 深度調(diào)優(yōu)。
同時優(yōu)化了對移動端的適應(yīng)性,輕量級,高算力。針對不同架構(gòu)在硬件指令發(fā)射、吞吐、延遲、緩存帶寬、緩存延遲、寄存器數(shù)量等特點,深度優(yōu)化底層算子,極致利用硬件算力。
CNN 核心卷積運算通過 Winograd,Tile-GEMM, Direct Conv 等多種算法實現(xiàn),保證不同參數(shù)、計算尺度下高效計算。
保證低精度優(yōu)化,支持 INT8, FP16 低精度計算,減少模型大小、內(nèi)存消耗,同時利用硬件低精度計算指令加速計算;支持 INT8 Winograd 算法,(輸入6bit), 在精度滿足要求的情況下,進(jìn)一步降低模型計算復(fù)雜度;支持單模型多種精度混合計算,加速計算同時保證模型精度?! ?strong>
內(nèi)存優(yōu)化,輕量級匹配深度學(xué)習(xí)
通過 DAG 網(wǎng)絡(luò)計算圖分析,實現(xiàn)無計算依賴的節(jié)點間復(fù)用內(nèi)存,降低 90% 內(nèi)存資源消耗。同時支持外部實時指定用于網(wǎng)絡(luò)內(nèi)存,實現(xiàn)「多個模型,單份內(nèi)存」。
TNN上手容易,三個步驟就能完成模型在目標(biāo)平臺上的部署。訓(xùn)練好的模型可以用TNN提供的工具轉(zhuǎn)換成TNN模型;然后編譯目標(biāo)平臺的TNN引擎;最后在自己的應(yīng)用程序中嵌入對TNN的調(diào)用,都有詳細(xì)的模型來輔助完成。
騰訊優(yōu)圖不斷對優(yōu)質(zhì)項目持續(xù)開源,促進(jìn)構(gòu)建友好開發(fā)者生態(tài),為中國企業(yè)的科技力量添磚加瓦。