• 您現在的位置是:首頁 >人工智能 > 2022-07-12 17:19:54 來源:

    一種新的硬件加速器編程語言

    導讀 摩爾定律需要一個擁抱。在小型硅計算機芯片上填充晶體管的日子已經屈指可數,它們的救生筏——硬件加速器——是有代價的。在對加速器進行編

    摩爾定律需要一個擁抱。在小型硅計算機芯片上填充晶體管的日子已經屈指可數,它們的救生筏——硬件加速器——是有代價的。在對加速器進行編程時——應用程序將某些任務卸載到系統硬件上,特別是為了加速該任務——你必須構建一個全新的軟件支持。硬件加速器可以比CPU快幾個數量級地運行某些任務,但它們不能開箱即用。軟件需要有效地使用加速器的指令,使其與整個應用系統兼容。這轉化為大量的工程工作,然后必須為您使用任何編程語言編譯代碼的新芯片進行維護。

    現在,麻省理工學院計算機科學與人工智能實驗室(CSAIL)的科學家創建了一種名為“Exo”的新編程語言,用于在硬件加速器上編寫高性能代碼。Exo幫助低級性能工程師將指定他們想要計算的非常簡單的程序轉換為非常復雜的程序,這些程序與規范執行相同的操作,但通過使用這些特殊的加速器芯片要快得多。例如,工程師可以使用Exo將簡單的矩陣乘法轉換為更復雜的程序,通過使用這些特殊的加速器,該程序的運行速度提高了幾個數量級。

    與其他編程語言和編譯器不同,Exo是圍繞一個稱為“Exocompilation”的概念構建的。“傳統上,許多研究都集中在自動化特定硬件的優化過程上,”博士YukaIkarashi說。電氣工程和計算機科學專業的學生,??CSAIL附屬機構,他是有關Exo的新論文的主要作者。“這對大多數程序員來說都很好,但對于性能工程師來說,編譯器會經常出現問題,因為它有幫助。因為編譯器的優化是自動的,所以當它做錯事并給你45%的時候,沒有好的方法可以修復它效率而不是90%。”

    借助Exocompilation,性能工程師重新回到了駕駛座上。選擇應用哪些優化、何時以及以何種順序從編譯器外部化的責任返回給性能工程師。這樣,他們一方面不必浪費時間與編譯器抗爭,另一方面也不必手動完成所有工作。同時,Exo負責確保所有這些優化都是正確的。因此,性能工程師可以花時間提高性能,而不是調試復雜的優化代碼。

    康奈爾大學計算機科學系助理教授AdrianSampson說:“Exo語言是一種對其目標硬件進行參數化的編譯器;同一個編譯器可以適應許多不同的硬件加速器。”“Exo無需編寫一堆雜亂的C++代碼來編譯新的加速器,而是為您提供了一種抽象、統一的方式來寫下您想要定位的硬件的‘形狀’。然后您可以重用現有的Exo編譯器來適應新的描述,而不是從頭開始編寫全新的東西。這樣的工作的潛在影響是巨大的:如果硬件創新者可以不再擔心為每個新硬件創意開發新編譯器的成本,他們就可以嘗試并發布更多創意.

    當今制造的最高性能計算機芯片,例如Google的TPU、Apple的神經引擎或NVIDIA的TensorCores,通過加速稱為“關鍵子程序”、內核或高性能計算(HPC)的東西來為科學計算和機器學習應用程序提供動力。)子程序。

    除了笨拙的行話,這些程序是必不可少的。例如,稱為基本線性代數子程序(BLAS)的東西是一個“庫”或此類子程序的集合,專門用于線性代數計算,并支持許多機器學習任務,如神經網絡、天氣預報、云計算和藥物發現.(BLAS非常重要,以至于它在2021年為JackDongarra贏得了圖靈獎。)然而,這些需要數百名工程師設計的新芯片只能在這些HPC軟件庫允許的范圍內發揮作用。

    但是,目前這種性能優化仍然是手動完成的,以確保這些芯片上的每個最后一個計算周期都被使用。HPC子程序經常以超過90%的峰值理論效率運行,硬件工程師不遺余力地為這些理論峰值增加5%或10%的速度。因此,如果軟件沒有進行積極的優化,那么所有的辛勤工作都會被浪費掉——這正是Exo幫助避免的。

    Exocompilation的另一個關鍵部分是性能工程師可以描述他們想要優化的新芯片,而無需修改編譯器。傳統上,硬件接口的定義由編譯器開發人員維護,但對于大多數這些新的加速器芯片,硬件接口是專有的。公司必須維護自己的整個傳統編譯器的副本(分叉),經過修改以支持他們的特定芯片。除了性能工程師之外,這還需要雇用編譯器開發人員團隊。

    “在Exo中,我們將特定于硬件的后端的定義從exocompiler外部化。這使我們能夠更好地將Exo(一個開源項目)和特定于硬件的代碼(通常是專有的)分開。我們已經展示了“我們可以使用Exo快速編寫與英特爾手動優化的數學內核庫一樣高性能的代碼。我們正在積極與多家公司的工程師和研究人員合作,”加州大學伯克利分校的博士后GilbertBernstein說。

    Exo的未來需要探索一種更高效的調度元語言,并擴展其語義以支持并行編程模型,從而將其應用于更多的加速器,包括GPU。

    Ikarashi和Bernstein與AlexReinking和HasanGenc共同撰寫了這篇論文,他們都是博士。加州大學伯克利分校的學生和麻省理工學院助理教授喬納森·拉根-凱利。

  • 成人app