您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 会议纪要 > 高翔-龙芯的软件生态与社区工作建设
page12015.11龙芯软件生态建设page1提纲page2一、自主信息化发展分析二、龙芯基础软件生态建设三、开源社区与社区版操作系统page2前所未有的自主信息化实践对国产软硬件系统进行了充分检验国产基础硬件平台业务应用系统应用支撑平台国产基础支撑平台国产自主可控核心处理器:龙芯3号CPU数据迁移工具数据同步工具构件库管理服务数据交换服务统一目录服务全文检索服务工作流管理服务统一机构权限统一消息服务电子表单服务电子报表服务电子邮件服务元数据管理服务搜索引擎服务安全认证服务电子公文处理政务信息管理电子文档管理纸质公文处理值班管理督查管理会议管理行政办公管理知识管理领导决策支持其它业务管理系统门户其它客户端基于国产CPU的客户机、国产Linux硬件:基于龙芯3号芯片的服务器,包括曙光、联想、长城、浪潮、宝德……国产办公软件:永中office、中标普华、WPS国产数据库系统:武汉达梦、人大金仓、神舟通用国产中间件:金蝶、东方通、中创国产操作系统:中科麒麟、红旗、方德单位服务器客户端中办工信部龙芯、申威龙芯电监会龙芯龙芯中央档案馆地方档案馆龙芯、飞腾龙芯广东龙芯、飞腾龙芯广州龙芯龙芯江西龙芯龙芯湖南龙芯龙芯山东飞腾龙芯装指院飞腾飞腾核高基党政军办公示范应用page3自主信息化产业发展现状趋势形成了较为完整的产业链CPU、OEM、整机、BIOS、OS、数据库、中间件、Office、集成商各基础软硬件产品都有品牌厂商市场应用领域明确党政军OA、BAOMI电脑、安全应用领域信息化政策导向清晰、高层决心坚定、推进力度强劲国产基础软硬件系统已经完成第一轮的螺旋迭代功能问题已经基本解决,性能问题也即将解决将逐步走向稳定持续发展的良性轨道迫切需要:围绕产业生态建设,推动国产系统持续健康发展自主信息化的人才与技术困境分析人才困境:国内IT人才结构失衡大背景:国内庞大的IT产业建立在国外软硬件系统平台之上应用开发型人才充足,底层基础系统研发人才却极度匮乏•国内有几十万JAVA程序员,过去几乎不具备JAVA核心技术JAVA虚拟机的研发能力•国内从事浏览器应用的团队数以千计,过去几乎不掌握过浏览器底层JS引擎研发技术•国内IT企业极少参加系统相关标准制定,国内软件人才很少向国际开源社区贡献源码技术困境:围绕国产硬件平台的应用软件适配优化缺课严重国产软硬件系统的基础平台层面成熟度、稳定性有待完善•过去缺乏大规模的商业和实际应用,不用发现不了问题,更解决不了问题上层应用系统自身设计不足的问题被X86平台超强的硬件性能掩盖掉•应用开发对X86架构形成惯性依赖,向国产平台移植后凸显性能瓶颈•架构设计、技术方案选型、参数适配调优等工作都基于国外X86架构展开针对国产系统慢的问题,需要拿出科学系统的解释慢在哪儿?为什么慢?性能潜力?优化切入点?page5龙芯的对策组建龙芯开源社区,发布龙芯社区版操作系统Loongnix以开放合作的社区模式组织国内厂商和龙芯爱好者参与软件生态建设龙芯开源社区积极参与到国际开源软件社区的研发工作在内核、媒体、编译器等方面积极参与国际开源软件研发工作向重要开源软件贡献直接、免费、开放的发布重要的API环境软件JAVA、浏览器、QT龙芯优化版提纲page7二、龙芯基础软件生态建设在主要技术领域形成突破,极大改善国产平台软件生态page7page8基于软件栈的国产系统问题剖析(3年前)操作系统基础设施层面对国产硬件的架构优化薄弱、特性支持匮乏JAVA中间件数据库办公软件在线应用桌面应用服务器API环境LinpackHadoop内核/驱动窗口图形系统浏览器X11/Gtk三维图形视频媒体LAMP桌面API环境服务器应用操作系统基础设施重要API环境软件因缺乏责任厂商,功能性能曾存在严重问题大型应用系统针对国产架构的适配调优环节缺失基础C/C++库编译器基础图形库图像媒体库MPITomcatQTXlib/X111国产操作系统基础设施亟需补课操作系统基础设施:内核、编译器、基础库、图形窗口系统等与系统硬件架构结合紧密,对整体系统性能具有至关重要的影响需要与CPU硬件结构深度磨合,在算法/汇编等多层面进行代码优化研发由国际主要CPU/系统厂商主导,国内OS厂商处于Follower的位置国产OS远远没有挖掘出国产CPU的硬件性能潜力,亟需补课针对国产CPU的架构优化薄弱、特性支持匮乏,优化工作刚刚起步经过优化后的执行效率远远高于原始普通实现#ifX86{SSE/三角函数等专用X86硬件指令}#ELSEIFARM{Neon指令/GPU等加速接口}#ELSEIF龙芯{C/C++高级语言实现}#Endif对基础设施进行深度硬件适配调优后,性能常数量级倍优于原始版本page92重要的API支撑软件需要责任厂商API(ApplicationProgrammingInterface):应用程序编程接口是应用程序构筑的基础平台环境,也是软件生态的核心与控制手段•服务器JAVA环境、安卓类JAVA开发环境、桌面QT图形、浏览器的JS引擎发展趋势---平台开源化(近期微软.net架构开源)国产生态中,浏览器、QT、JAVA等没有责任厂商,出现严重问题JAVA桌面QT应用重要的API环境软件浏览器Web应用应用软件与系统操作系统基础设施(内核、基础库、服务设施)硬件平台&&固件浏览器媒体编解码QT图形环境中间件Office办公数据库JAVA服务器应用page10大型应用系统是最凸显国产系统性能瓶颈的场景大型三维GIS应用、复杂在线办公软件网页大型应用系统技术状态分析由成熟的X86系统发展而来•软件架构设计、技术选型、参数适配调优等工作都基于X86架构展开未在性能相对减弱国产系统上进行适配•软件设计不足的问题容易被X86平台超强的硬件性能掩盖掉适配调优能够显著改善国产系统的应用表现三年前,攻关基地曾暴露的大量性能瓶颈近期在神码、中软等基地,通过应用系统自身优化显著提高了应用性能龙芯近两年来帮助应用开发单位进行系统优化,显著提升了应用性能3大型应用系统的适配调优环节缺失page11优化技术手段1结合微体系结构特征的模块级算法优化技术结合处理器静态参数特点,对核心循环的算法设计进行结构优化•充分考虑指令集特点、SIMD、指令窗口、发射宽度结合处理器动态执行特征,采用汇编进行指令拍级的深度磨合调优•最大限度发挥硬件性能潜力:流水线执行、指令调度延迟、功能与总线模块竞争2基于国产处理器结构的编译优化技术前后端优化:支持国产处理器指令集、Cache管理、发射宽度、调度延迟特点3利用国产多核处理器架构特点的并行与分布式优化软法架构设计和解决方案层面的并行与分布式优化技术4大型应用软件综合适配调优技术软件自身设计架构与流程算法的优化发掘出最优的系统配置参数和软件自身配置选项page12page12整机的效率优化案例某数据库应用HP的X86服务器需要50分钟,龙芯服务器优化前8小时,优化后80秒某图形应用X86i7平台每秒40帧,龙芯平台优化前每秒不到1帧,优化后每秒80帧某指挥系统(GIS)应用X86i7平台每秒20帧,龙芯平台优化前每秒3帧,优化后每秒30帧国产CPU软件生态现状---补课完成操作系统基础设施层面优化工作基本完善JAVA中间件数据服务办公软件在线应用桌面应用服务器API环境LinpackHadoop内核/驱动窗口图形系统浏览器X11/Gtk三维图形视频媒体中间件桌面API环境服务器应用操作系统基础设施责任企业已具备相应技术能力,API软件产品逐步成熟大型应用软件基本完成对国产系统的适配基础C/C++库编译器基础图形库图像媒体库MPI数据库QTXlib/X11page14领域1:操作系统基础设施(内核)多核负载均衡提高网络性能在多核间轮转调度中断实现网络IO并行化UDP带宽提升17%,TCP带宽提升56%层次锁优化提高多核同步性能按节点划分核的层次,分布式分层加锁,降低多核竞争开销Unixbench系统调用性能大幅度提高page15媒体解码优化FFMPEG解码:使用媒体指令等技术深度挖掘CPU软解码能力FFMEPG设计累计接受龙芯优化patch共计31个,代码数量约8367行3A能够流畅软解码H264/720P3A1500及3B能够流畅软解码H264/1080Ppage16基础数学库优化优化手段:龙芯特有指令、内嵌汇编优化、编译选项搜索page17领域2:基础图形系统窗口图形系统人机交互、各类桌面应用的基础支持框架,软件栈梳理的重点目标当前Linux图形系统技术飞速发展,老旧技术被淘汰,新技术不断涌现操作系统基础软件的老旧导致国产硬件系统的图形性能被极大抑制龙芯平台窗口图形系统存在问题各类图形相关的软件库的版本陈旧,功能性能都存在诸多不足基础图形库的龙芯架构相关优化工作匮乏来自显卡厂商的对龙芯平台的显示硬件驱动支持薄弱工作思路:三个层面开展优化工作GPU驱动、基础图形库、图形环境应用适配page18page18基础图形系统分析针对过去国产平台图形系统共性问题,在三个层面开展优化工作page19page19情况:GPU驱动支持薄弱对策:在GPU驱动级深入分析瓶颈,进行改进情况:基础图形库的平台架构相关的算法优化工作匮乏对策:定位瓶颈函数与操作,开展汇编与算法优化情况:QT、OpenGL等图形开发环境软件版本陈旧对策:软件版本升级、适配调优,改进上层应用设计基于Mesa的三维驱动图形优化效果示例1:osgCity.earth国产平台:龙芯3A800Mhz+AMD5450,分辨率1600*900实测性能:帧率49.28fps,Vertices402357示例2:ocean.earth国产平台:龙芯3A800Mhz+AMD5450,分辨率1600*900实测性能:50fps,Vertices53757示例3:二维矢量地图mapbox-gl国产平台:龙芯3A800Mhz+AMD5450,分辨率1600*900实测性能:采用GPUOpenGL基础驱动库优化,性能从3fps提高到40fps示例4:龙芯版QT龙芯版QT的raster引擎优化raster引擎在内存中进行数据渲染,可有效地减少内存与显存数据交互龙芯QT4.8进一步优化了raster引擎,相对QT4.7,渲染效率更高、功能更强大案例:某2D应用使用X引擎时测试程序需要6秒才能完成渲染,更换为高版本QT库的raster引擎后性能达到1.6秒,性能提升4倍25领域3:Javapage25时间功能性能稳定性2011.6核高基示范应用启动2012.3完成OpenJDKmips64位移植(模板解释器,ClientJIT)2012.7大量试点系统完成功能磨合大量细节优化2012.12完成ServerJIT移植2013.6两个产品版本:OpenJDK6/8两种应用模式:64位服务器模式32位桌面客户端模式完成NUMA优化内测7*24稳定2013.7完成负载均衡优化7*24稳定2013.8SpecJVM:性能大幅度提升超过4个月未报告新问题2013.12两年优化:性能总计提升1倍12个试点正常运行反馈问题全部解决2014.12完成JDK8产品化综合性能提升14%7天*24小时压力测试26龙芯公司开发JAVA虚拟机代码规模对比源码量(万行)开发语言维护者共性代码59万行C++高级语言OpenJDK社区X86架构相关代码9.8万行X86汇编为主Intel公司雇员Sparc架构相关代码5.5万行Sparc汇编为主Oracle公司雇员龙芯架构相关代码8.4万行MIPS汇编为主龙芯公司JAVA团队近来,接到的问题集中在共性代码部分早期问题集中在龙芯架构相关代码部分累计已解决8个在X86平台同样存在的JAVA共性问题自主软硬件生态建设龙芯硬件平台操作系统龙芯CentOS中标OS方德OS中间件Tomcat东方通中创金蝶数
本文标题:高翔-龙芯的软件生态与社区工作建设
链接地址:https://www.777doc.com/doc-1952720 .html