視頻教學(xué)
應用指導
代碼腳本
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è)部分:
本課程旨在通過(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ù)手冊 |
?

?
作為框架和硬件之間的橋梁,深度學(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í)戰 | √ | √ | √ |
?
歡迎來(lái)到大模型課程!本課程將帶您深入到大模型的領(lǐng)域,并幫助您掌握應用這些大模型的技能。無(wú)論您是對深度學(xué)習領(lǐng)域感興趣,還是希望在現實(shí)世界的項目中應用大型模型,本課程都將為您提供寶貴的知識和實(shí)踐經(jīng)驗。
大模型是指具有巨大參數和復雜結構的深度學(xué)習模型。這些模型在處理大規模數據集和復雜任務(wù)(如圖像識別、自然語(yǔ)言處理、語(yǔ)音識別等)時(shí)表現得非常好。大模型的出現引發(fā)了深度學(xué)習領(lǐng)域的重大變化,導致各個(gè)領(lǐng)域的突破。
在本課程中,您將學(xué)習大模型的基本概念和原理。我們將深入研究基礎理論,發(fā)展歷史,常用的大模型,以及l(fā)lm(大語(yǔ)言模型)中的提示和上下文學(xué)習等不斷發(fā)展的技術(shù)。隨著(zhù)課程的進(jìn)展,我們將深入研究大模型的實(shí)際應用。您將學(xué)習如何部署高度重視的大模型,如 Stable Diffusion和ChatGLM2-6B到SOPHON的最新一代深度學(xué)習處理器,SOPHON BM1684X。SOPHON BM1684X是SOPHON專(zhuān)門(mén)針對深度學(xué)習領(lǐng)域推出的第四代張量處理器,具有32TOPS計算能力,支持32路高清硬件解碼,12路高清硬件編碼,適用于深度學(xué)習、計算機視覺(jué)、高性能計算等環(huán)境。
無(wú)論您是傾向于對大模型或其工業(yè)應用進(jìn)行深入的學(xué)術(shù)研究,本課程都將為您提供堅實(shí)的基礎和實(shí)踐技能。你準備好接受大模型的挑戰了嗎?讓我們一起深入這個(gè)迷人的領(lǐng)域吧!