Skymizer 以開放類神經網路編譯器 ONNC 串連 ONNX 與 deep learning accelerator (DLA) ASICs

由於 AI 的應用層面越來越廣,數百種新 AI 晶片將在不久的未來大量出現,目前市場上卻沒有一個能完整支援各家 DLA 的開源編譯器。根據統計,在 2018 年會有超過 34 家 IC 與 IP 廠商提供各式各樣的 AI 晶片與 deep learning accelerator (DLA) ASICs,因此急需一個開源的編譯器來支援各種不同的 AI 晶片。

成立於 2013 年的 Skymizer 一直都專注在 compiler 和 machine learning 領域,看到這個趨勢之後,建立了基於 ONNX 的編譯器 Open Nerual Network Compiler – ONNC,將所有的 AI 晶片與 ONNX 連結起來,並將於 2018 年七月底之前將 ONNC 開源。

ONNX 是開放類神經網路交換格式,目前常見的 AI framework 如Caffe2、PyTorch…等等各有各的支持者,格式間互通性差,因此訓練出來的深度學習模型無法套用到別的 framework 上,但有了 ONNX,開發者可在不同格式之間輕鬆轉換。而透過 ONNX 支援多平台的特性,ONNC 可以支援各種不同的 AI frameworks,如 Caffe、Caffe2 與 PyTorch,幫助 DLA ASIC 廠商在短時間內就可以支援各種 AI frameworks,提升性能並縮短開發時間。

ONNC 對目前 AI frameworks 的主要優勢在於 ONNC 提供了 DLA ASIC 晶片的直接支援。DLA ASIC 廠商可以根據硬體架構來描述硬體 cost model,編譯器就可以在不必修改演算法的狀況下,產生更高品質的程式碼,加速執行時間,減少記憶體使用量,提升執行效率,也幫助晶片廠商更快讓產品進入市場。

「AI 創新需要開源生態系,而 ONNX 確保了 frameworks 之間的互通性,」Skymizer 執行長 Luba Tang 表示:「ONNC 的目標是將所有的 DLA ASIC 快速、簡單地與 ONNX 連結起來,確保所有的 DLA ASIC 都可以在 ONNX 上執行。」

今年七月,就讓我們與開放類神經網路編譯器 ONNC 攜手連結 AI 世界。

SkySquire 使用教學

SkySquire 是個萬用小刀,讓你可以輕鬆修改其他程式預設行為。

今天如果要修改一個 open source project 的編譯參數,你會怎麼做?
你會試著去了解所有的編譯過程,修改 Makefile 或者是各式各樣的設定檔?相信我,這是一件繁瑣而且可怕的事情,非常容易出錯而無法察覺。我們曾經花了兩個月研究 MESA 的效能變化,卻發現編譯器優化的參數沒有辦法傳遞到整個 project 當中;也曾發現 open source project 當中的編譯器的優化參數其實從來沒有被 Makefile 傳遞過。為了解決參數傳遞問題,我們也曾經大改 Android 的 nijia,好讓我們能夠針對不同的檔案下不同的編譯參數。

繼續閱讀 SkySquire 使用教學

SkySquire:a very easy way to eable LTO/PGO

SkySquire 是個萬用小刀,讓你可以輕鬆嘗試各種 gcc/llvm 的優化,不用再花漫漫長夜修改 Makefile。這裡我們教大家如何使用 SkySquire 來輕鬆啟動 Link Time Optimization (LTO) 以及 Profiler Guided Optimization(PGO)。

繼續閱讀 SkySquire:a very easy way to eable LTO/PGO