機器學習編譯系列

機器學習編譯MLC

  • 1. 引言
  • 2. 機器學習編譯--概述
    • 2.1 什么是機器學習編譯

1. 引言

??陳天奇目前任教于CMU,研究方向為機器學習系統。他是TVM、MXNET、XGBoost的主要作者。2022年夏天,陳天奇在B站開設了《機器學習編譯》的課程。
??《機器學習編譯》課程共分為7個章節:概述、張量程序抽象、端到端模型執行、自動程序優化、與機器學習框架的整合、GPU硬件加速、計算圖優化。
??機器學習系列文章是對該課程學習的總結,本篇文章對應于《機器學習編譯》課程的第一章節:概述。

2. 機器學習編譯–概述

2.1 什么是機器學習編譯

??機器學習編譯的英文名稱為machine learning compilation,該課題是隨著機器學習近十年的流行而出現的一個新事物。對于“編譯”可以理解為“轉換”,即在某些情形下,需要通過“編譯”操作,將一個事物從形式A轉換為形式B。
??在“轉換”這一宏觀概念層面,機器學習編譯和傳統軟件領域的編譯可以理解為一體;但是具體的實現細節和技術,兩者有著極大的差異,是兩個完全不同的事物。
??作者雖然將名字命名為機器學習編譯,但隱含地,特指機器學習中的深度學習這一紫領域。
??對于機器學習領域,編譯前的形式A指的是開發形式(Development Form),編譯后的形式B指的是部署形式(Deployment Form)。
在這里插入圖片描述
??具體地,目前最流行的開發模式是基于Python語言利用Pytorch深度學習框架進行模型的訓練,生成的模型以.pth作為后綴。開發形式通用、靈活。獲得.pth模型后,通過export操作獲得pt和onnx模型等,對應上圖中的weights,完整的部署形式還包含底層依賴庫(libraries)、調用邏輯(Description for execution engine)和接口(API Interface)。
??作者設想了機器學習編譯的三個目標:
(1)通用優化: 從pth“編譯”至pt/onnx時,通過一些等價操作來最小化內存或者提高運行效率。例如,在上一家公司,還是caffe時代,部署模型的時候常見的一個操作是做bn和conv層的merge
(2)集成和最小化依賴:最常見的部署設備一般為手機、(監控)攝像頭等。此類設備上,資源有限,因此運行模型的依賴庫需要最小化。
(3)利用硬件加速:硬件公司一般都會為其配套原生的加速庫。基于此背景,execution engine部分也有很大的發揮空間。
??明白了這三個目標也就明白了機器學習編譯工程師的工作職責和職責。并且也理清了算法工程師、機器學習編譯工程師和AI芯片工程師之間的關系。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/35423.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/35423.shtml
英文地址,請注明出處:http://en.pswp.cn/news/35423.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

立即開始使用 3D 圖像

一、說明 這個故事介紹了使用這種類型的數據來訓練機器學習3D模型。特別是,我們討論了Kaggle中可用的MNIST數據集的3D版本,以及如何使用Keras訓練模型識別3D數字。 3D 數據無處不在。由于我們希望構建AI來與我們的物理世界進行交互,因此使用3…

了解 Langchain?是個啥?:第 1 部分

一、說明 在日常生活中,我們主要致力于構建端到端的應用程序。我們可以使用許多自動 ML 平臺和 CI/CD 管道來自動化 ml 管道。我們還有像Roboflow和Andrew N.G.的登陸AI這樣的工具來自動化或創建端到端的計算機視覺應用程序。 如果我們想在OpenAI或擁抱臉的幫助下創…

Day 26 C++ list容器(鏈表)

文章目錄 list基本概念定義結構雙向迭代器優點缺點List和vector區別存儲結構內存管理迭代器穩定性隨機訪問效率 list構造函數——創建list容器函數原型示例 list 賦值和交換函數原型 list 大小操作函數原型示例 list 插入和刪除函數原型示例 list 數據存取函數原型注意示例 lis…

論文詳解 ——《SNR-Aware Low-light Image Enhancement》

文章目錄 Abstract1.Introduction2. Related Work3. Our Method3.1 Long- and Short-range Branches3.2 SNR-based Spatially-varying Feature Fusion3.3 SNR-guided Attention in Transformer3.4 Loss Function 4. Experiments4.1. Datasets and Implementation Details4.2 Co…

SpringBoot | 使用newWorkStealingPool和CompletableFuture進行并發異步處理

關注wx: CodingTechWork 需求 一個列表操作需要異步處理每個元素,最終需要將列表各個元素的操作結果統一返回,無需關注該列表中的順序執行。這個線程池不會保證任務的順序執行,即為WorkStealing搶占式的工作。 開發模板 線程池…

基于SpringBoot實現MySQL備份與還原

基于SpringBoot實現MySQL備份與還原,需求是在頁面上對所有的平臺數據執行備份和恢復操作,那么就需要使用代碼去調用MySQL備份和恢復的指令,下面是具體實現步驟; MySQL備份表設計 CREATE TABLE IF NOT EXISTS mysql_backups (id …

6.1 安全漏洞與網絡攻擊

數據參考:CISP官方 目錄 安全漏洞及產生原因信息收集與分析網絡攻擊實施后門設置與痕跡清除 一、安全漏洞及產生原因 什么是安全漏洞 安全漏洞也稱脆弱性,是計算機系統存在的缺陷 漏洞的形式 安全漏洞以不同形式存在漏洞數量逐年遞增 漏洞產生的…

前端開發:數組對象判斷重復的方法詳解

前言 在前端開發過程中,關于數據處理是非常常用的操作,尤其是通過算法處理從后端獲取的數據甚為重要。而且在前端開發中,兩大類型的數據處理是必備的:數組和對象。與其說是數據處理,不如說是數組和對象的處理。實際開發中,關于數組數據的處理所占比例更高,尤其是涉及到表…

使用Flask.Request的方法和屬性,獲取get和post請求參數(二)

1、Flask中的request 在Python發送Post、Get等請求時,我們使用到requests庫。Flask中有一個request庫,有其特有的一些方法和屬性,注意跟requests不是同一個。 2、Post請求:request.get_data() 用于服務端獲取客戶端請求數據。注…

理解ConcurrentSkipListMap(有點類似于并發的TreeMap)

是一個分層的結構。 從最上面開始查找,最后層層往下查。 插入和刪除有可能會引起節點Level的變更。 key是有序的,因此可以看做是并發的TreeMap

ubuntu18.04下配置muduoC++11環境

1.安裝muduo依賴的編譯工具及庫 Cmake sudo apt-get install cmakeBoost sudo apt-get install libboost-dev libboost-test-devcurl、c-ares DNS、google protobuf sudo apt-get install libcurl4-openssl-dev libc-ares-dev sudo apt-get install protobuf-compiler libp…

帶你了解SpringBoot支持的復雜參數--自定義對象參數-自動封裝

😀前言 本篇博文是關于SpringBoot 在響應客戶端請求時支持的復雜參數和自定義對象參數,希望您能夠喜歡😊 🏠個人主頁:晨犀主頁 🧑個人簡介:大家好,我是晨犀,希望我的文章…

go struct 的常見問題

go struct 的常見問題 1. 什么是struct?2. 如何聲明、定義和創建一個struct?3. struct和其他數據類型(如數組、切片、map等)有什么區別?4. 如何訪問struct字段?5. struct是否支持繼承,是否支持重…

JavaWeb_xml

文章目錄 1.xml是什么?2.xml的用途 1.xml是什么? xml 是可擴展的標記性語言 2.xml的用途 1、用來保存數據,而且這些數據具有自我描述性 2、它還可以做為項目或者模塊的配置文件 3、還可以做為網絡傳輸數據的格式(現在 JSON 為主…

【Github】SourceTree技巧匯總

sourceTree登錄github賬戶 會跳轉到瀏覽器端 按照Git Flow 初始化倉庫分支 克隆遠程倉庫到本地 推送變更到遠程倉庫 合并分支 可以看到目前的本地分支(main、iOS_JS)和遠程分支(origin/main、origin/HEAD、origin/iOS_JS)目前所處…

5134. 簡單判斷

文章目錄 Question輸入樣例1: 3 7 0 輸出樣例1: IdeasCode Question 給定三個非負整數 x,y,z ,請你按如下要求進行判斷并輸出相應結果: 如果 x>yz ,則輸出 。 如果 y>xz ,則輸出 -。 如果 xy 且 z0…

pip install總是報錯:ValueError: Trusted host URL must include a host part: ‘#‘

一、問題現象 報錯信息如下&#xff1a; Traceback (most recent call last):File "/user_name/anaconda3/bin/pip", line 11, in <module>sys.exit(main())^^^^^^File "/user_name/anaconda3/lib/python3.11/site-packages/pip/_internal/cli/main.py&…

14_基于Flink將pulsar數據寫入到HBase

3.7.基于Flink將數據寫入到HBase 3.7.1.編寫Flink完成數據寫入到Hbase操作, 完成數據備份, 便于后續進行即席查詢和離線分析 3.7.1.1.HBase基本介紹 hbase是基于Google發布bigTable論文產生一款軟件, 是一款noSQL型數據, 不支持SQL. 不支持join的操作, 沒有表關系, 不支持事…

Codeforces 757F. Team Rocket Rises Again 最短路 + 支配樹

題意&#xff1a; 給你 n 個點&#xff0c; m 條雙向邊&#xff0c;求爆了某個點后&#xff0c;從s出發的最短路距離&#xff0c;會改變最多的數量。 分析&#xff1a; 建出最短路樹&#xff08;DAG&#xff09;之后&#xff0c;在最短路樹上跑一下支配樹&#xff0c;找出支…