龙芯 LoongArch64 架构提供对 .NET 3.1 的支持

科技热点
188
0
0
2022-04-21

近日,龙芯中科 .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 一站式多平台 & 多框架的软件开发生态圈统一平台已经形成。

随着龙芯业务的不断扩展,支撑以 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