|
 【產(chǎn)通社,12月15日訊】寒武紀(jì)(cambricon)官網(wǎng)消息,為進(jìn)一步推動(dòng)AI計(jì)算實(shí)現(xiàn)軟硬協(xié)同,其提供包括BANG編程語言(簡稱“BANG語言”)在內(nèi)的一套高效軟件棧工具和高性能庫,方便開發(fā)者在寒武紀(jì)云、邊、端平臺(tái)上開發(fā)和部署。BANG語言及其工具鏈由寒武紀(jì)編譯團(tuán)隊(duì)推出,專門針對寒武紀(jì)智能處理器產(chǎn)品架構(gòu)而設(shè)計(jì),可極大優(yōu)化寒武紀(jì)芯片的通用編程能力并提升用戶編程的自由度。 產(chǎn)品特點(diǎn) BANG語言能夠支持寒武紀(jì)現(xiàn)有的云端、邊緣側(cè)和終端芯片和板卡全線產(chǎn)品(如思元100、思元220、思元270、IP產(chǎn)品等),并可支持寒武紀(jì)后續(xù)新的產(chǎn)品架構(gòu)。用戶不僅可以直接使用BANG語言編寫AI程序,而且能使用BANG語言和寒武紀(jì)高性能庫進(jìn)行混合編程,最大限度地釋放芯片的強(qiáng)大算力。 BANG語言支持最常用的C99和C++11語言的語法特性,并提供了用于編寫高性能程序的內(nèi)置Intrinsic接口。依托寒武紀(jì)強(qiáng)大的編譯工具鏈,開發(fā)者在編程靈活的同時(shí)能夠最大程度地利用寒武紀(jì)智能處理器產(chǎn)品上的計(jì)算和存儲(chǔ)資源,確保程序的高性能得以實(shí)現(xiàn)。 在實(shí)際開發(fā)過程中,相對于原有的編程語言(C/C++),使用BANG語言進(jìn)行編程,開發(fā)者僅需要1/10的開發(fā)時(shí)間,就可達(dá)到85%的極致性能。 寒武紀(jì)編譯團(tuán)隊(duì)還自研了編譯工具鏈,以提高BANG語言的運(yùn)行性能。編譯工具鏈包括CNCC(Cambricon Neuware Compiler Collection )、CNAS(Cambricon Neuware Assembler)、CNLINKER(Cambricon Neuware Linker)。 編譯工具鏈中的CNCC負(fù)責(zé)處理編譯前端工作,將BANG 語言編譯成中間語言MLISA。CNAS主要負(fù)責(zé)將中間語言MLISA編譯為包含MLU(Machine Learning Unit)機(jī)器指令的目標(biāo)文件,最后由CNLINKER將目標(biāo)文件鏈接成可執(zhí)行程序。 為了提升應(yīng)用程序性能,寒武紀(jì)編譯器進(jìn)行了包括自動(dòng)軟件流水、全新的寄存器分配算法、全局指令調(diào)度、精確的程序依賴分析、Profiling Guided Optimization、地址指針推理及優(yōu)化、以及數(shù)據(jù)類型(如半精度浮點(diǎn)數(shù))計(jì)算優(yōu)化等在內(nèi)的大量優(yōu)化工作。 此外,為了便利開展寒武紀(jì)芯片的調(diào)試工作,提升開發(fā)效率,寒武紀(jì)編譯器團(tuán)隊(duì)推出了CNGDB(Cambricon Neuware GDB)。CNGDB現(xiàn)已開源,代碼鏈接為:CNGDB是Linux系統(tǒng)上調(diào)試BANG語言程序的工具,基于GNU的調(diào)試器GDB開發(fā),能支持GNU GDB在CPU上原有的全部操作,使用它可以在真實(shí)的硬件上同時(shí)調(diào)試寒武紀(jì)硬件產(chǎn)品的設(shè)備側(cè)和主機(jī)側(cè)的代碼。同時(shí),CNGDB可以支持控制程序執(zhí)行和訪問變量等多種操作、多核調(diào)試模式、CPU/Device調(diào)試的透明切換以及生成CNML內(nèi)核的錯(cuò)誤信息,解決了開發(fā)者難以調(diào)試的問題,極大地提升了程序開發(fā)效率。 供貨與報(bào)價(jià) 查詢進(jìn)一步信息,請?jiān)L問官方網(wǎng) http://www.cambricon.com。(robin, 張底剪報(bào)) (完)
|