 【产通社,12月15日讯】寒武纪(cambricon)官网消息,为进一步推动AI计算实现软硬协同,其提供包括BANG编程语言(简称“BANG语言”)在内的一套高效软件栈工具和高性能库,方便开发者在寒武纪云、边、端平台上开发和部署。BANG语言及其工具链由寒武纪编译团队推出,专门针对寒武纪智能处理器产品架构而设计,可极大优化寒武纪芯片的通用编程能力并提升用户编程的自由度。 产品特点 BANG语言能够支持寒武纪现有的云端、边缘侧和终端芯片和板卡全线产品(如思元100、思元220、思元270、IP产品等),并可支持寒武纪后续新的产品架构。用户不仅可以直接使用BANG语言编写AI程序,而且能使用BANG语言和寒武纪高性能库进行混合编程,最大限度地释放芯片的强大算力。 BANG语言支持最常用的C99和C++11语言的语法特性,并提供了用于编写高性能程序的内置Intrinsic接口。依托寒武纪强大的编译工具链,开发者在编程灵活的同时能够最大程度地利用寒武纪智能处理器产品上的计算和存储资源,确保程序的高性能得以实现。 在实际开发过程中,相对于原有的编程语言(C/C++),使用BANG语言进行编程,开发者仅需要1/10的开发时间,就可达到85%的极致性能。 寒武纪编译团队还自研了编译工具链,以提高BANG语言的运行性能。编译工具链包括CNCC(Cambricon Neuware Compiler Collection )、CNAS(Cambricon Neuware Assembler)、CNLINKER(Cambricon Neuware Linker)。 编译工具链中的CNCC负责处理编译前端工作,将BANG 语言编译成中间语言MLISA。CNAS主要负责将中间语言MLISA编译为包含MLU(Machine Learning Unit)机器指令的目标文件,最后由CNLINKER将目标文件链接成可执行程序。 为了提升应用程序性能,寒武纪编译器进行了包括自动软件流水、全新的寄存器分配算法、全局指令调度、精确的程序依赖分析、Profiling Guided Optimization、地址指针推理及优化、以及数据类型(如半精度浮点数)计算优化等在内的大量优化工作。 此外,为了便利开展寒武纪芯片的调试工作,提升开发效率,寒武纪编译器团队推出了CNGDB(Cambricon Neuware GDB)。CNGDB现已开源,代码链接为:CNGDB是Linux系统上调试BANG语言程序的工具,基于GNU的调试器GDB开发,能支持GNU GDB在CPU上原有的全部操作,使用它可以在真实的硬件上同时调试寒武纪硬件产品的设备侧和主机侧的代码。同时,CNGDB可以支持控制程序执行和访问变量等多种操作、多核调试模式、CPU/Device调试的透明切换以及生成CNML内核的错误信息,解决了开发者难以调试的问题,极大地提升了程序开发效率。 供货与报价 查询进一步信息,请访问官方网 http://www.cambricon.com。(robin, 张底剪报) (完)
|