b站直播能禁止id觀看嗎國外網(wǎng)站推廣公司
機器學習編譯系列---張量程序抽象
- 1. 張量函數(shù)概念的引入與抽象的必要性
1. 張量函數(shù)概念的引入與抽象的必要性
??在文章機器學習編譯系列—概述中提到,機器學習編譯的一個很重要操作是做等價變換來減少內存或者提高運行效率。變換是以“元張量函數(shù)”(private tensor function)為單元進行。直觀地,圖中的linear、add、relu、linear、softmax均為元張量函數(shù)。
??機器學習編譯的目的并不僅僅是轉換而是盡可能自動的轉換,為此需要抽象。例如,典型的元張量函數(shù)可以抽象為:存儲數(shù)據(jù)的多維數(shù)組,驅動張量計算的循環(huán)嵌套以及計算部分本身。
??有了抽象,就離自動轉換近了一步,例如對于循環(huán)嵌套操作,一個較成熟的轉換做法是“循環(huán)拆分”—》“并行”—》“向量化”,整個過程是可以自動進行的。
??在抽象的基礎上再進一步,可以增加Extra information來發(fā)揮“編譯”的最大效率。仍舊是以循環(huán)嵌套操作為例,我們可以通過“Extra information”來告訴深度學習編譯器,循環(huán)迭代之間的獨立性,讓“編譯器”可以放心的高效自動化轉換。
??回想c++, 在這一個語言中有各種看似“繁瑣”的說明符,例如const, const &等,想必也是為了讓編譯器發(fā)揮最大的功效,起的作用和這里的“Extra information”相同的作用。從這個角度看,機器學習編譯和傳統(tǒng)的軟件編譯的確是相通的。