丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號(hào)安全和更好的產(chǎn)品體驗(yàn),強(qiáng)烈建議使用更快更安全的瀏覽器
此為臨時(shí)鏈接,僅用于文章預(yù)覽,將在時(shí)失效
人工智能 正文
發(fā)私信給岑大師
發(fā)送

0

MIT Taco項(xiàng)目:自動(dòng)生成張量計(jì)算的優(yōu)化代碼,深度學(xué)習(xí)加速效果提高100倍

本文作者: 岑大師 2017-11-03 05:10
導(dǎo)語(yǔ):相比起現(xiàn)有的非優(yōu)化軟件包,Taco可實(shí)現(xiàn)100倍的加速。

我們生活在大數(shù)據(jù)的時(shí)代,但在實(shí)際應(yīng)用中,大多數(shù)數(shù)據(jù)是“稀疏的”。例如,如果用一個(gè)龐大的表格表示亞馬遜所有客戶(hù)與其所有產(chǎn)品的對(duì)應(yīng)映射關(guān)系,購(gòu)買(mǎi)某個(gè)產(chǎn)品以“1”表示,未購(gòu)買(mǎi)以“0”表示,這張表的大部分將會(huì)是0。

使用稀疏數(shù)據(jù)進(jìn)行分析的算法最終做了大量的加法和乘法,而這大部分計(jì)算是無(wú)效的。通常,程序員通過(guò)編寫(xiě)自定義代碼來(lái)優(yōu)化和避免零條目,但這種代碼通常編寫(xiě)起來(lái)復(fù)雜,而且通常適用范圍狹窄。

雷鋒網(wǎng)發(fā)現(xiàn),在A(yíng)CM的系統(tǒng)、程序、語(yǔ)言和應(yīng)用會(huì)議(SPLASH)上,麻省理工學(xué)院、法國(guó)替代能源和原子能委員會(huì)的研究人員和Adobe研究院的研究者們最近提出了一個(gè)針對(duì)稀疏數(shù)據(jù)自動(dòng)生成優(yōu)化代碼的系統(tǒng)。相比起現(xiàn)有的非優(yōu)化軟件包,該系統(tǒng)可實(shí)現(xiàn)100倍的加速,其性能與特定稀疏數(shù)據(jù)操作的精細(xì)手工優(yōu)化代碼相當(dāng),但程序員的工作要少得多。

該系統(tǒng)的名字叫Taco,即“張量代數(shù)編譯器”的縮寫(xiě)。在計(jì)算機(jī)科學(xué)上,類(lèi)似亞馬遜的表格這樣的數(shù)據(jù)結(jié)構(gòu)被稱(chēng)為“矩陣”,張量只是一個(gè)矩陣的更高維的模擬。如果亞馬遜表格還將客戶(hù)和產(chǎn)品與亞馬遜網(wǎng)站上的客戶(hù)的產(chǎn)品評(píng)級(jí)以及產(chǎn)品評(píng)論中使用的字詞進(jìn)行了對(duì)比,那么這可以用四維張量來(lái)表示。

Taco的殺手锏:內(nèi)核融合

對(duì)張量的數(shù)學(xué)運(yùn)算對(duì)于大數(shù)據(jù)分析和機(jī)器學(xué)習(xí)都是至關(guān)重要的問(wèn)題。自從愛(ài)因斯坦的時(shí)代以來(lái),它一直是科學(xué)研究的主要內(nèi)容。傳統(tǒng)上,為了處理張量計(jì)算,數(shù)學(xué)軟件將張量運(yùn)算分解為不同組成部分進(jìn)行計(jì)算,例如如果需要計(jì)算兩個(gè)張量相乘加第三個(gè)向量,則軟件將在前兩個(gè)張量上運(yùn)行其標(biāo)準(zhǔn)張量乘法程序,存儲(chǔ)結(jié)果,然后再運(yùn)行其標(biāo)準(zhǔn)張量加法。

舉例來(lái)說(shuō),目前我們常用的深度學(xué)習(xí)框架,如TensorFlow、PyTorch等都會(huì)將一個(gè)深度學(xué)習(xí)的模型轉(zhuǎn)換為一個(gè)由基本計(jì)算符組成的數(shù)據(jù)流圖,再有下層的計(jì)算引擎一次調(diào)度執(zhí)行這些節(jié)點(diǎn)對(duì)應(yīng)的內(nèi)核函數(shù)(對(duì)于數(shù)據(jù)圖的動(dòng)態(tài)優(yōu)化參見(jiàn)雷鋒網(wǎng)此前文章《緊跟未來(lái)深度學(xué)習(xí)框架需求,TensorFlow推出Eager Execution》)。好的深度學(xué)習(xí)框架中會(huì)定義成百上千個(gè)Operator,這些Operator定義了張量的加、減、乘、除和矩陣乘法等等,因此,在深度學(xué)習(xí)訓(xùn)練中,這些節(jié)點(diǎn)在GPU上的執(zhí)行會(huì)轉(zhuǎn)變成數(shù)千次GPU上的內(nèi)核執(zhí)行,從而使得張量的計(jì)算更加靈活。而對(duì)于這些內(nèi)核函數(shù)的頻繁調(diào)用也成為了影響深度學(xué)習(xí)框架的重要因素。

然而,在需要進(jìn)行頻繁計(jì)算的大數(shù)據(jù)時(shí)代,像目前深度學(xué)習(xí)框架雖然能同時(shí)進(jìn)行數(shù)千次運(yùn)算,大仍然耗時(shí)太多。對(duì)深度學(xué)習(xí)框架進(jìn)一步優(yōu)化、解決這些性能問(wèn)題的一個(gè)直接方法就是Taco所采用的內(nèi)核融合方法(Kernel Fusion),即將一個(gè)計(jì)算圖中的節(jié)點(diǎn)所對(duì)應(yīng)的內(nèi)核函數(shù)融合成一個(gè)函數(shù),這樣整個(gè)數(shù)據(jù)流圖紙需要通過(guò)一次函數(shù)調(diào)用就可以完成所有計(jì)算,從而將對(duì)平臺(tái)的調(diào)度和內(nèi)核啟動(dòng)的開(kāi)銷(xiāo)降到最低。

該論文的第一作者、MIT博士生Fredrik Kjolstad解釋說(shuō),Taco采用對(duì)于大規(guī)模數(shù)據(jù)集的高效運(yùn)行,張量運(yùn)算的每一個(gè)序列都需要自己的“內(nèi)核”或計(jì)算模板。如果在一個(gè)內(nèi)核中執(zhí)行操作,用戶(hù)可以一次完成所有操作而不需將輸出存放在內(nèi)存中,從而極大加快計(jì)算速度。

此外,通過(guò)合理地設(shè)計(jì)不同內(nèi)核函數(shù)的輸入輸出數(shù)據(jù)的放置(雷鋒網(wǎng)注:例如使用GPU上的共享內(nèi)存或寄存器),可以極大地提高數(shù)據(jù)傳輸效率,從而提升整體計(jì)算性能。許多張量運(yùn)算涉及從一個(gè)張量與另一個(gè)張量相乘的條目,用于處理大型稀疏矩陣的程序可能浪費(fèi)大量的時(shí)間來(lái)添加和乘以零。通過(guò)手工優(yōu)化代碼可以識(shí)別稀疏張量中的零條目,在運(yùn)算中做到只對(duì)非零條目進(jìn)行計(jì)算或者省略對(duì)零條目的計(jì)算,可以簡(jiǎn)化其操作從而加速?gòu)埩康挠?jì)算,但這需要程序員做更多的編程工作。

舉例來(lái)說(shuō),有兩個(gè)矩陣(即只有兩個(gè)維度的張量)需要進(jìn)行相乘,如果矩陣所有位置都是有效信息,那么對(duì)應(yīng)的代碼只有12行,但如果矩陣是稀疏的(包含大量0),相同的操作相同的操作可能需要100行甚至更多的代碼來(lái)跟蹤遺漏和錯(cuò)誤。

而在Taco,系統(tǒng)會(huì)自動(dòng)添加所有額外的代碼。程序員只需要簡(jiǎn)單地指定張量的大小,以及張量的類(lèi)型(完整的或者稀疏的),以及文件的位置,從它應(yīng)該導(dǎo)入它的值。對(duì)于兩個(gè)張量上的任何給定操作,Taco會(huì)首先建立一個(gè)分層映射,指出來(lái)自?xún)蓚€(gè)張量的哪些配對(duì)條目是非零的,然后將每個(gè)張量的條目與零配對(duì),并在這過(guò)程中丟棄所有的零對(duì)。

此外,Taco還使用有效的索引方案來(lái)存儲(chǔ)稀疏張量的非零值。以前文提到的Amazon所有客戶(hù)和庫(kù)存對(duì)應(yīng)的表格為例,其原始圖表需要的存儲(chǔ)容量是目前Google服務(wù)器存儲(chǔ)容量的10倍,而使用Taco的壓縮方案只需要13GB,也就是說(shuō),一個(gè)智能手機(jī)就可以存儲(chǔ)這一信息。

俄亥俄州立大學(xué)計(jì)算機(jī)科學(xué)和工程教授Saday Sadayappan稱(chēng),過(guò)去二十年來(lái),許多研究小組試圖解決稀疏矩陣計(jì)算的編譯器優(yōu)化和代碼生成問(wèn)題,而 Fredrik 和其導(dǎo)師 Saman 的研究是這個(gè)對(duì)這個(gè)長(zhǎng)期存在的開(kāi)放性問(wèn)題的一個(gè)重要突破。”他們的編譯器可以自動(dòng)生成非常有效的代碼,讓開(kāi)發(fā)者可以以非常簡(jiǎn)單和方便的高級(jí)符號(hào)來(lái)指定非常復(fù)雜的稀疏矩陣或張量計(jì)算?!?Saday 說(shuō)。 “從展示的結(jié)果看,由編譯器自動(dòng)生成的代碼與手動(dòng)編寫(xiě)的代碼效果相當(dāng)甚至更好,這是最近在編譯器優(yōu)化領(lǐng)域最令人振奮的進(jìn)步之一?!?/p>

關(guān)于 Taco 編譯器的更多信息可閱讀相關(guān)論文《The Tensor Algebra Compiler》。

雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知

MIT Taco項(xiàng)目:自動(dòng)生成張量計(jì)算的優(yōu)化代碼,深度學(xué)習(xí)加速效果提高100倍

分享:
相關(guān)文章
當(dāng)月熱門(mén)文章
最新文章
請(qǐng)?zhí)顚?xiě)申請(qǐng)人資料
姓名
電話(huà)
郵箱
微信號(hào)
作品鏈接
個(gè)人簡(jiǎn)介
為了您的賬戶(hù)安全,請(qǐng)驗(yàn)證郵箱
您的郵箱還未驗(yàn)證,完成可獲20積分喲!
請(qǐng)驗(yàn)證您的郵箱
立即驗(yàn)證
完善賬號(hào)信息
您的賬號(hào)已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說(shuō)