自主生态再进一步,龙芯中科完成.NET3.1-LoongArch64平台研发
近日,龙芯中科.NET团队完成了.NET3.1-LoongArch64平台研发工作,研发的成功标志着围绕龙芯自主指令系统LoongArch的生态建设成果再进一步。
龙芯自主指令系统LoongArch基于龙芯二十年的CPU研制和生态建设积累,LoongArch从顶层架构,到指令功能和ABI标准等,全部自主设计,不需国外授权。LoongArch吸纳了现代指令系统演进的最新成果,运行效率更高,相同的源代码编译成LoongArch比编译成龙芯此前支持的MIPS指令系统,动态执行指令数平均可以减少10%-20%。LoongArch充分考虑兼容生态的需求,融合X86、ARM等国际主流指令系统的主要功能特性,并依托龙芯团队在二进制翻译方面十余年的技术积累创新,实现跨指令平台应用兼容。今年7月,龙芯中科发布龙芯3A5000处理器,该产品是首款采用LoongArch的处理器芯片,性能逼近国际主流水平,这标志着自主研发CPU的性能完全可以超过引进技术的CPU,龙芯中科也开启了从技术升级迈向全面生态建设。
.NET对LoongArch生态建设意义重大
以C#、F#、VB编程语言为代表的.NET一站式多平台&多框架的软件开发生态圈,可广泛应用于各种生产环境中,其应用范围包括网页应用、桌面办公系统、编程框架、数据库、区块链、机器学习等。很多应用程序都要求支持C#、F#、VB语言的虚拟机SDK运行环境。尤其最近两年,其开发模式在快速扩充迭代,已经从.NET Core升级到.NET标准框架,.NET一站式多平台&多框架的软件开发生态圈统一平台已经形成。
此次.NET3.1-LoongArch64平台研发成功意义重大。随着龙芯业务的不断扩展,支撑以C#、F#、VB为代表的.NET应用已经成为实际迫切需求;同时,.NET一站式多平台&多框架的软件开发生态圈,对围绕龙芯平台构建的软件生态“第三极”也是不可缺少的平台。
龙芯.NET团队为了更好的支持LoongArch64架构特点,对整个后端指令构建系统进行了创新重构设计,同时,也从字节码加载、JIT语法树、ABI规范、函数栈帧设计、GC、异常处理等重要模块,都做了适应LoongArch架构特点的优化,也为后续龙芯后续深度参与社区打好基础。
在2021年下半年完成社区.NET6-LoongArch64研发后,龙芯团队会逐步开始从C#语言编译器、中间字节码、JIT编译优化技术、AOT、GC、异常处理等方面,系统的做LoongArch64平台的深度适配优化,并实践龙芯的一系列原创技术框架方案。
多个应用场景已落地,未来与开发者紧密合作
目前,针对龙芯架构已经有不少应用场景。下图是在LoongArch64运行Loongnix的信息。
下图是在LoongArch64平台运行github上一个使用ASP.NET Core开发的开源项目FlightFinder,查询航班信息的截图。
下图是完全在龙芯平台上,使用ASP.NET Core的Blazor前端的ant-design-blazor表格组件,将龙芯平台运行的测试集结果可视化的展示出来的一个实例程序。后续还会不断增强功能,并对其内部机制做技术分析,保证在龙芯平台更好的使用体验。
未来,龙芯中科将会加快完善.NET-LoongArch产品生态体系,为用户提供优质的使用体验。同时,将与.NET领域开发爱好者保持良好互动,虚心收集整理专业开发者们提出的宝贵建议,甚至一些创造性的技术特性设想。
龙芯对外发布.NET3.1-SDK-LoongArch64版本的安装包下载页面:
http://www.loongnix.cn/index.php/Dotnet