RM新时代|官方理财平台

課程介紹

TPU-MLIR是一種專(zhuān)用于處理器的TPU編譯器。該編譯器項目提供了一個(gè)完整的工具鏈,可以將來(lái)自不同深度學(xué)習框架(PyTorch, ONNX, TFLite和Caffe)的各種預訓練神經(jīng)網(wǎng)絡(luò )模型轉換為高效的模型文件(bmodel/cvimodel),以便在SOPHON?TPU上運行。通過(guò)量化到不同精度的bmodel/cvimodel,優(yōu)化了模型在sophon計算TPU上的加速和性能。這使得可以將與對象檢測、語(yǔ)義分割和對象跟蹤相關(guān)的各種模型部署到底層硬件上以實(shí)現加速。

本課程主要分為三個(gè)部分:

  • 搭建和配置本地開(kāi)發(fā)環(huán)境,了解相關(guān)的SOPHON?SDK, TPU-MLIR編譯器核心理論,以及相關(guān)的加速接口。
  • 轉換和量化來(lái)自ONNX, TFLite, Caffe和PyTorch的示例深度學(xué)習模型,以及將其他深度學(xué)習框架模型轉換為中間ONNX格式的方法。
  • 指導參與者實(shí)際移植四種實(shí)例算法(檢測、識別、跟蹤)進(jìn)行編譯、轉換、量化,并最終部署到SOPHON?1684x張量處理器的TPU上進(jìn)行性能測試。

本課程旨在通過(guò)實(shí)際演示,全面、直觀(guān)地展示TPU- mlir編譯器的使用方法,使學(xué)生能夠快速理解各種深度學(xué)習模型算法的轉換和量化,以及它們在SOPHGO計算處理器TPU上的部署測試。目前,TPU-MLIR的使用已應用于由SOPHGO開(kāi)發(fā)的最新一代深度學(xué)習處理器BM168X和CV18XX,并輔以處理器的高性能ARM內核和相應的SDK,用于快速部署深度學(xué)習算法。

本課程在模型移植和部署方面的優(yōu)勢:

1. 支持多種深度學(xué)習框架
目前支持的框架包括PyTorch、ONNX、TFLite和Caffe。來(lái)自其他框架的模型需要轉換為ONNX模型。有關(guān)將其他深度學(xué)習架構的網(wǎng)絡(luò )模型轉換為ONNX的指導,請參考ONNX官方網(wǎng)站:https://github.com/onnx/tutorials。

2. 用戶(hù)友好的操作
通過(guò)開(kāi)發(fā)手冊和相關(guān)部署案例了解TPU-MLIR的原理和操作步驟,可以從頭開(kāi)始進(jìn)行模型部署。熟悉Linux命令和模型編譯量化命令對于動(dòng)手實(shí)踐是足夠的。

3. 簡(jiǎn)化量化部署步驟
模型轉換需要在SOPHGO提供的docker中執行,主要包括兩個(gè)步驟:使用model_transform.py將原始模型轉換為MLIR文件,使用model_deploy.py將MLIR文件轉換為bmodel格式。bmodel是可以在SOPHGO TPU硬件上加速的模型文件格式。

4. 適應多種架構和硬件模式
量化的bmodel模型可以在PCIe和SOC模式下運行在TPU上進(jìn)行性能測試。

5. 全面的文檔
豐富的教學(xué)視頻,包括詳細的理論解釋和實(shí)際操作,以及充足的指導和標準化的代碼腳本,在課程中開(kāi)放源代碼,供所有用戶(hù)學(xué)習。

SOPHON-SDK Development Guide SOPHON SDK 開(kāi)發(fā)指南
TPU-MLIR Quick Start Manual TPU-MLIR快速入門(mén)手冊
Example model repository SophonSDK樣例倉介紹
TPU-MLIR Official Repository TPU-MLIR
SOPHON-SDK Development Manual sophon-sail 用戶(hù)手冊

?

課程目錄

?

課程章節 ( 22節課)

1_ 引言
開(kāi)始學(xué)習
1.1 背景介紹與術(shù)語(yǔ)解釋
待學(xué)習
1.2 SOPHONSDK包資料指南
待學(xué)習
2_ 編譯器概述
開(kāi)始學(xué)習
2.1 TPU-MLIR編譯器簡(jiǎn)介
待學(xué)習
2.2 TPU-MLIR整體架構設計
待學(xué)習
2.3 TPU-MLIR理論核心概述
待學(xué)習
2.4 開(kāi)發(fā)接口指南
待學(xué)習
2.5 編譯器TPU-MLIR的優(yōu)勢
待學(xué)習
3_ 開(kāi)發(fā)環(huán)境搭建
開(kāi)始學(xué)習
3.1 硬件環(huán)境與軟件環(huán)境要求
待學(xué)習
3.2 TPU-MLIR搭建開(kāi)發(fā)環(huán)境與常用依賴(lài)包
待學(xué)習
3.3 搭建交叉編譯環(huán)境與驗證
待學(xué)習
4_ TPU-MLIR快速入門(mén)
開(kāi)始學(xué)習
4.1 TPU-MLIR-編譯ONNX模型
待學(xué)習
4.2 TPU-MLIR-編譯Torch模型
待學(xué)習
4.3 TPU-MLIR-編譯TFLite模型
待學(xué)習
4.4 TPU-MLIR-編譯Caffe模型
待學(xué)習
4.5 其他深度框架轉中間格式ONNX指南
待學(xué)習
4.6 混精度使用方法
待學(xué)習
4.7 使用TPU做前處理與后處理(BM168X)
待學(xué)習
4.8 使用TPU做前處理及CV18XX處理器使用指南(CV18XX)
待學(xué)習
5_ 算法部署實(shí)戰
開(kāi)始學(xué)習
5.1 基于PP_OCRv2的文字識別算法移植與測試
待學(xué)習
5.2 基于CenterNet的圖像分割算法移植與測試
待學(xué)習
5.3 基于YOLOv5的目標檢測算法移植與測試
待學(xué)習
5.4 基于YOLACT的目標跟蹤算法移植與測試
待學(xué)習

課程目標

完成本課程后,學(xué)生將具備以下能力:

  • 對tpu - mlir深度學(xué)習編譯器的轉換和量化過(guò)程有全面的了解。
  • 掌握ONNX、Torch、TFlite、Caffe等流行深度學(xué)習框架模型的編譯、轉換和量化。
  • 熟悉將其他深度學(xué)習框架的模型轉換為中間格式ONNX,并完成模型編譯、轉換和量化。
  • 了解SOPHGO TPU推理庫SDeep learningL的接口調用和編譯使用過(guò)程。
  • 學(xué)習使用tpu - mlir深度學(xué)習開(kāi)源編譯器進(jìn)行模型編譯,轉換,量化,移植部署。

課程對象

深度學(xué)習愛(ài)好者或開(kāi)源社區開(kāi)發(fā)人員,具有一定的深度學(xué)習和Python開(kāi)發(fā)基礎,熟悉Docker和Linux操作。用戶(hù)可以在使用它的同時(shí)為本課程的改進(jìn)做出貢獻,與SOPHGO合作構建一個(gè)先進(jìn)的時(shí)代深度學(xué)習編譯器。

課程推薦

course-cover

編譯器開(kāi)發(fā)

作為框架和硬件之間的橋梁,深度學(xué)習編譯器可以實(shí)現一次性代碼開(kāi)發(fā)和重用各種計算能力處理器的目標。最近,算能也開(kāi)源了自己開(kāi)發(fā)的TPU編譯工具——TPU-MLIR (Multi-Level Intermediate Representation)。TPU-MLIR是一個(gè)面向深度學(xué)習處理器的開(kāi)源TPU編譯器。該項目提供了完整的工具鏈,將各種框架下預訓練的神經(jīng)網(wǎng)絡(luò )轉換為可在TPU中高效運行的二進(jìn)制文件bmodel,以實(shí)現更高效的推理。本課程以實(shí)際實(shí)踐為驅動(dòng),引導您直觀(guān)地理解、實(shí)踐、掌握智能深度學(xué)習處理器的TPU編譯框架。

目前,TPU-MLIR項目已應用于算能開(kāi)發(fā)的最新一代深度學(xué)習處理器BM1684X。結合處理器本身的高性能ARM內核以及相應的SDK,可以實(shí)現深度學(xué)習算法的快速部署。本課程將介紹MLIR的基本語(yǔ)法,以及編譯器中各種優(yōu)化操作的實(shí)現細節,如圖形優(yōu)化、int8量化、算子分割、地址分配等。

與其他編譯工具相比,TPU-MLIR有幾個(gè)優(yōu)點(diǎn)

1. 簡(jiǎn)單方便

通過(guò)閱讀開(kāi)發(fā)手冊和項目中包含的示例,用戶(hù)可以了解模型轉換的過(guò)程和原理,并快速入門(mén)。此外,TPU-MLIR是基于當前主流編譯工具庫MLIR設計的,用戶(hù)也可以通過(guò)它了解MLIR的應用。本項目提供了一套完整的工具鏈,用戶(hù)可直接通過(guò)現有接口快速完成模型轉換工作,無(wú)需適應不同的網(wǎng)絡(luò )。

2. 通用性

目前,TPU- mlir已經(jīng)支持TFLite和onnx兩種格式,這兩種格式的模型可以直接轉換為T(mén)PU可用的bmodel。如果不是這兩種格式呢?事實(shí)上,onnx提供了一套轉換工具,可以將目前市場(chǎng)上主要的深度學(xué)習框架編寫(xiě)的模型轉換為onnx格式,然后再進(jìn)行bmodel轉換。

3、精度與效率并存

在模型轉換過(guò)程中,有時(shí)會(huì )失去精度。TPU-MLIR支持INT8對稱(chēng)和非對稱(chēng)量化,結合原開(kāi)發(fā)公司的校準和tune技術(shù),大大提高了性能,保證了模型的高精度。此外,TPU-MLIR還使用了大量的圖優(yōu)化和算子分割優(yōu)化技術(shù)來(lái)保證模型的高效運行。

4. 實(shí)現終極性?xún)r(jià)比,構建下一代深度學(xué)習編譯器

為了支持圖形化計算,神經(jīng)網(wǎng)絡(luò )模型中的算子需要開(kāi)發(fā)圖形化版本;為了適應TPU,應該為每個(gè)運營(yíng)商開(kāi)發(fā)一個(gè)版本的TPU。此外,有些場(chǎng)景需要適應相同計算能力處理器的不同型號,每次都必須手工編譯,這將非常耗時(shí)。深度學(xué)習編譯器就是用來(lái)解決這些問(wèn)題的。TPU-mlir的一系列自動(dòng)優(yōu)化工具可以節省大量的人工優(yōu)化時(shí)間,因此在RISC-V上開(kāi)發(fā)的模型可以順利自由地移植到TPU上,以獲得最佳的性能和性?xún)r(jià)比。

5. 完整的信息

課程包括中英文視頻教學(xué)、文檔指導、代碼腳本等,詳實(shí)豐富的視頻資料詳細應用指導清晰的代碼腳本TPU-MLIR站在MLIR巨頭的肩膀上打造,現在整個(gè)項目的所有代碼都已經(jīng)開(kāi)源,免費向所有用戶(hù)開(kāi)放。

代碼下載鏈接:https://github.com/sophgo/tpu-mlir

tpu - mlir開(kāi)發(fā)參考手冊:https://tpumlir.org/docs/developer_manual/01_introduction.html

總體設計思想論文:https://arxiv.org/abs/2210.15016

視頻教程:https://space.bilibili.com/1829795304/channel/collectiondetail?sid=734875

課程目錄

序號 課程名 課程分類(lèi) 課程資料
? ? ? 視頻 文檔 代碼
1.1 Deep learning編譯器基礎 TPU_MLIR基礎 √ √ √
1.2 MLIR基礎 TPU_MLIR基礎 √ √ √
1.3 MLIR基本結構 TPU_MLIR基礎 √ √ √
1.4 MLIR之op定義 TPU_MLIR基礎 √ √ √
1.5 TPU_MLIR介紹(一) TPU_MLIR基礎 √ √ √
1.6 TPU_MLIR介紹(二) TPU_MLIR基礎 √ √ √
1.7 TPU_MLIR介紹(三) TPU_MLIR基礎 √ √ √
1.8 量化概述 TPU_MLIR基礎 √ √ √
1.9 量化推導 TPU_MLIR基礎 √ √ √
1.10? 量化校準 TPU_MLIR基礎 √ √ √
1.11 量化感知訓練(一) TPU_MLIR基礎 √ √ √
1.12? 量化感知訓練(二) TPU_MLIR基礎 √ √ √
2.1 Pattern Rewriting TPU_MLIR實(shí)戰 √ √ √
2.2 Dialect Conversion TPU_MLIR實(shí)戰 √ √ √
2.3 前端轉換 TPU_MLIR實(shí)戰 √ √ √
2.4 Lowering in TPU_MLIR TPU_MLIR實(shí)戰 √ √ √
2.5 添加新算子 TPU_MLIR實(shí)戰 √ √ √
2.6 TPU_MLIR圖優(yōu)化 TPU_MLIR實(shí)戰 √ √ √
2.7 TPU_MLIR常用操作 TPU_MLIR實(shí)戰 √ √ √
2.8 TPU原理(一) TPU_MLIR實(shí)戰 √ √ √
2.9 TPU原理(二) TPU_MLIR實(shí)戰 √ √ √
2.10? 后端算子實(shí)現 TPU_MLIR實(shí)戰 √ √ √
2.11 TPU層優(yōu)化 TPU_MLIR實(shí)戰 √ √ √
2.12 bmodel生成 TPU_MLIR實(shí)戰 √ √ √
2.13 To ONNX format TPU_MLIR實(shí)戰 √ √ √
2.14 Add a New Operator TPU_MLIR實(shí)戰 √ √ √
2.15 TPU_MLIR模型適配 TPU_MLIR實(shí)戰 √ √ √
2.16 Fuse Preprocess TPU_MLIR實(shí)戰 √ √ √
2.17 精度驗證 TPU_MLIR實(shí)戰 √ √ √

?

course-cover

Milk-V Duo開(kāi)發(fā)板實(shí)踐課程

本課程介紹了硬件電路的設計和基本環(huán)境的搭建,并提供了一些簡(jiǎn)單的開(kāi)發(fā)示例和一些基本的深度學(xué)習示例。

Milk-V Duo是基于CV1800B的超小型嵌入式開(kāi)發(fā)平臺。它體積小,功能全面,配備雙核,可以分別運行linux和rtos系統,并具有各種可連接的外設。

  • 可擴展性:Milk-V Duo核心板具有多種接口,如GPIO, I2C, UART, SDIO1, SPI, ADC, PWM等。
  • 多種可連接外設:Milk-V Duo核心板可擴展各種設備,如LED,便攜式屏幕,攝像頭,WIFI等。

課程特點(diǎn):

  • 內容材料豐富完整,包括開(kāi)發(fā)板硬件設計、外設接口說(shuō)明、基本環(huán)境設置方法、示例代碼腳本等。
  • 學(xué)習路徑科學(xué)合理,從開(kāi)發(fā)板的介紹和基本使用開(kāi)始,引導到實(shí)際項目,充分利用開(kāi)發(fā)板,為用戶(hù)自身開(kāi)發(fā)提供參考。
  • 實(shí)際項目豐富,課程提供了許多實(shí)際代碼使用和功能演示的示例。通過(guò)簡(jiǎn)單地修改和組合代碼,可以實(shí)現不同的功能。

課程目錄

course-cover

SE5開(kāi)發(fā)系列課

深度神經(jīng)網(wǎng)絡(luò )模型可以快速訓練和測試,然后由行業(yè)部署,在現實(shí)世界中有效地執行任務(wù)。在小型、低功耗的深度學(xué)習邊緣計算平臺上部署這樣的系統受到業(yè)界的高度青睞。本課程采用實(shí)踐驅動(dòng)的方法,引導你直觀(guān)地學(xué)習、實(shí)踐和掌握深度神經(jīng)網(wǎng)絡(luò )的知識和技術(shù)。

SOPHON深度學(xué)習微服務(wù)器SE5是采用SOPHON自主研發(fā)的第三代TPU處理器BM1684的高性能、低功耗邊緣計算產(chǎn)品。INT8運算能力高達17.6 TOPS,支持32路全高清視頻硬件解碼和2路編碼。本課程將快速引導您了解SE5服務(wù)器的強大功能。通過(guò)本課程,您可以了解深度學(xué)習的基礎知識并掌握其基本應用。

課程的特點(diǎn)

1. 一站式服務(wù)

?在SE5應用程序中遇到的所有常見(jiàn)問(wèn)題都可以在這里找到。

  • 為深度學(xué)習微服務(wù)器提供全棧解決方案
  • 一步一步、詳細而清晰地分解開(kāi)發(fā)過(guò)程
  • 支持所有主流框架,易于使用的產(chǎn)品

2. 系統的教學(xué)

它包括設置環(huán)境、開(kāi)發(fā)應用程序、轉換模型和部署產(chǎn)品,以及擁有鏡像的實(shí)際環(huán)境等所有內容。

  • 環(huán)境是如何構建的?
  • 如何編譯模型?
  • 應用程序是如何開(kāi)發(fā)的?
  • 場(chǎng)景如何部署?

3. 完整的材料

本課程包括視頻教程、文檔指南、代碼腳本和其他綜合材料。

  • 豐富的視頻素材
  • 詳細的應用指導
  • 清晰的代碼腳本
  • 代碼下載鏈接:https://github.com/sophon-ai-algo/examples

4. 免費的云開(kāi)發(fā)資源

在線(xiàn)免費申請使用SE5-16微服務(wù)器云測試空間

?

RM新时代|官方理财平台