CN113342324A - 一种人工智能操作系统的构建方法 - Google Patents

一种人工智能操作系统的构建方法 Download PDF

Info

Publication number
CN113342324A
CN113342324A CN202110878227.6A CN202110878227A CN113342324A CN 113342324 A CN113342324 A CN 113342324A CN 202110878227 A CN202110878227 A CN 202110878227A CN 113342324 A CN113342324 A CN 113342324A
Authority
CN
China
Prior art keywords
artificial intelligence
operating system
api
source code
code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202110878227.6A
Other languages
English (en)
Other versions
CN113342324B (zh
Inventor
刘步权
吴春光
齐璇
魏立峰
黄鑫
史晶
付正威
郑强
夏宇琦
刘贵山
常涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kirin Software Co Ltd
Original Assignee
Kirin Software Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kirin Software Co Ltd filed Critical Kirin Software Co Ltd
Priority to CN202110878227.6A priority Critical patent/CN113342324B/zh
Publication of CN113342324A publication Critical patent/CN113342324A/zh
Application granted granted Critical
Publication of CN113342324B publication Critical patent/CN113342324B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

一种人工智能操作系统的构建方法,所述方法包括步骤:确定一个目标通用操作系统并下载其源码;下载目标人工智能硬件对应的驱动程序源码,并将所述驱动程序源码添加到所述通用操作系统源码;设计人工智能硬件统一框架模块的配置文件并编写API,将所述API添加到通用操作系统源码;在所述通用操作系统源码中添加人工智能计算框架模块源码;将所述通用操作系统源码编译为人工智能操作系统。本申请所构建的人工智能操作系统不仅支持人工智能应用开发和运行,还支持通用操作系统中的应用开发和运行;人工智能应用能够运用人工智能计算框架进行深度学习,人工智能计算框架能够利用多个人工智能硬件设备实现计算加速,提高运行效率。

Description

一种人工智能操作系统的构建方法
技术领域
本发明属于人工智能操作系统技术领域,具体涉及一种人工智能操作系统的构建方法。
背景技术
操作系统是管理计算机硬件和软件的程序。随着人工智能技术的不断发展,出现了很多加快人工智能计算速度的硬件设备,譬如GPU、FPGA、DSP等,以及用于人工智能深度学习的计算框架,譬如TensorFlow、MXNet、Caffe等。
所谓计算框架,即指用于人工智能深度学习的算法软件。当前人工智能应用需求很多,但是传统的通用操作系统缺少对这些人工智能硬件设备和计算框架的支持,导致很多人工智能应用难以在通用操作系统特别是国产通用操作系统上进行开发和运行。另外,当前的主流计算框架TensorFlow、MXNet、Caffe等只能利用个别人工智能硬件设备,难以综合利用其他人工智能硬件设备来加速计算。
发明内容
为解决上述问题,本发明提供了一种人工智能操作系统的构建方法,所述方法包括步骤:
步骤S1:确定一个目标通用操作系统并下载其源码;
步骤S2:下载目标人工智能硬件对应的驱动程序源码,并将所述驱动程序源码添加到所述通用操作系统源码;
步骤S3:设计人工智能硬件统一框架模块的配置文件并编写API,将所述API添加到通用操作系统源码;
进一步地,所述步骤S3包含下列步骤:
步骤S31:设计一个配置文件,在该文件中指定模块C中的每个人工智能计算框架应该使用的人工智能硬件设备。
步骤S32:设计一套通用的API,在每个API中包含一个参数,该参数表示调用该API的人工智能计算框架。
进一步地,所述步骤S32包含下列步骤:
步骤S321:针对每个人工智能计算框架,列出访问人工智能硬件设备的每个API;
步骤S322:综合步骤S321中的所有API,去掉功能相同的API;
步骤S323:在每个API中添加1个参数,该参数表示调用该API的人工智能计算框架;
步骤S324:在每个API的实现方法中,分别添加对每个人工智能硬件设备的访问代码。
进一步地,所述步骤S324包含下列步骤:
步骤S3241:读取步骤S31中的配置文件;
步骤S3242:获取人工智能计算框架所要访问的设备DEVICE;
步骤S3243:如果在步骤S2中下载了DEVICE的驱动程序源码,则按照下列方法编写代码;否则报错。
(1)如果该API有访问DEVICE的代码,则保留使用;否则转(2);
(2)如果之前去掉的API有访问DEVICE的代码,则拷贝相应代码;否则转(3);
(3)如果该API没有访问DEVICE的代码,则根据DEVICE厂家公开的使用手册,调用相应的方法访问DEVICE;如果使用手册没有调用方法,则报错。
步骤S4:在所述通用操作系统源码中添加人工智能计算框架模块源码;
进一步地,所述步骤S4要求对模块C中的每个人工智能计算框架都要执行这些步骤:
步骤S41:从开源网站获取人工智能计算框架源码;
步骤S42:将访问人工智能硬件设备的每个API改写为步骤S32中设置的通用API;
步骤S43:将新的人工智能计算框架源码添加到银河麒麟操作系统。
步骤S5:将所述通用操作系统源码编译为人工智能操作系统。
本申请提供的一种人工智能操作系统的构建方法所构建的人工智能操作系统不仅支持人工智能应用开发和运行,还支持通用操作系统中的应用开发和运行;人工智能应用能够运用人工智能计算框架进行深度学习,人工智能计算框架能够利用多个人工智能硬件设备实现计算加速,提高运行效率,并且克服了之前只能使用个别人工智能硬件设备的缺陷。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的一种人工智能操作系统的构建方法中人工智能操作系统的逻辑结构图;
图2是本发明提供的一实施例人工智能操作系统的构建方法中人工智能操作系统的逻辑结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
本发明提供了一种人工智能操作系统的构建方法,所述方法包括步骤:
步骤S1:确定一个目标通用操作系统并下载其源码;
步骤S2:下载目标人工智能硬件对应的驱动程序源码,并将所述驱动程序源码添加到所述通用操作系统源码;
步骤S3:设计人工智能硬件统一框架模块的配置文件并编写API,将所述API添加到通用操作系统源码;
进一步地,所述步骤S3包含下列步骤:
步骤S31:设计一个配置文件,在该文件中指定模块C中的每个人工智能计算框架应该使用的人工智能硬件设备。
步骤S32:设计一套通用的API,在每个API中包含一个参数,该参数表示调用该API的人工智能计算框架。
进一步地,所述步骤S32包含下列步骤:
步骤S321:针对每个人工智能计算框架,列出访问人工智能硬件设备的每个API;
步骤S322:综合步骤S321中的所有API,去掉功能相同的API;
步骤S323:在每个API中添加1个参数,该参数表示调用该API的人工智能计算框架;
步骤S324:在每个API的实现方法中,分别添加对每个人工智能硬件设备的访问代码。
进一步地,所述步骤S324包含下列步骤:
步骤S3241:读取步骤S31中的配置文件;
步骤S3242:获取人工智能计算框架所要使用的设备DEVICE;
步骤S3243:如果在步骤S2中下载了DEVICE的驱动程序源码,则按照下列方法编写代码;否则报错。
(1)如果该API有访问DEVICE的代码,则保留使用;否则转(2);
(2)如果之前去掉的API有访问DEVICE的代码,则拷贝相应代码;否则转(3);
(3)如果该API没有访问DEVICE的代码,则根据DEVICE厂家公开的使用手册,调用相应的方法访问DEVICE;如果使用手册没有调用方法,则报错。
步骤S4:在所述通用操作系统源码中添加人工智能计算框架模块源码;
进一步地,所述步骤S4要求对模块C中的每个人工智能计算框架都要执行这些步骤:
步骤S41:从开源网站获取人工智能计算框架源码;
步骤S42:将访问人工智能硬件设备的每个API改写为步骤S32中设置的通用API;
步骤S43:将新的人工智能计算框架源码添加到银河麒麟操作系统。
步骤S5:将所述通用操作系统源码编译为人工智能操作系统。
图1为本发明提供的人工智能操作系统的逻辑结构图。通用操作系统包括通用操作系统内核功能和通用操作系统内核外功能;对硬件层的通用硬件设备提供支持,并为应用层的通用操作系统应用提供开发和运行支持。人工智能操作系统通过在通用操作系统基础上,添加模块A、模块B、模块C而成;对下不仅支持通用硬件设备,还支持人工智能设备;对上不仅支持通用操作系统应用,还支持人工智能应用。
图2为本发明一实施例的人工智能操作系统的逻辑结构图。所述驱动程序源码包括:GPU驱动程序源码、FPGA驱动程序源码和DSP驱动程序源码。下面具体说明如何通过国产银河麒麟操作系统构建一个银河麒麟人工智能操作系统。
步骤S1:选定银河麒麟操作系统V10版本,并从公司内部网站下载其源码;
步骤S2:在所述银河麒麟操作系统源码中添加模块A中的各个人工智能硬件设备的驱动程序源码,包括GPU驱动程序源码、FPGA驱动程序源码、DSP驱动程序源码等;
步骤S3:设计模块B并编写源码,将所述模块B的源码添加到所述银河麒麟操作系统源码中;
进一步地,所述步骤S3包含下列步骤:
步骤S31:设计一个配置文件,在该文件中指定模块C中的TensorFlow、MXNet、Caffe等每个人工智能计算框架应该使用的人工智能硬件设备。譬如,“TensorFlow=DSP”表明TensorFlow使用DSP来加速计算,“MXNet=FPGA”表明MXNet使用FPGA来加速计算;
步骤S32:设计一套通用的API,在每个API中包含一个参数,该参数表示调用该API的人工智能计算框架TensorFlow、MXNet或Caffe。
进一步地,所述步骤S32包含下列步骤:
步骤S321:针对每个人工智能计算框架,列出访问人工智能硬件设备的每个API;
步骤S322:综合步骤S321中的所有API,去掉功能相同的API;
步骤S323:在每个API中添加1个参数,该参数表示调用该API的人工智能计算框架TensorFlow、MXNet或Caffe;
步骤S324:在每个API的实现方法中,分别添加对每个人工智能硬件设备GPU、FPGA、DSP的访问代码。
进一步地,所述步骤S324包含下列步骤:
步骤S3241:读取步骤S31中的配置文件;
步骤S3242:获取人工智能计算框架TensorFlow、MXNet、Caffe所要使用的设备DEVICE;
步骤S3243:如果在步骤S2中下载了DEVICE的驱动程序源码,则按照下列方法编写代码;否则报错。
(1)如果该API有访问DEVICE的代码,则保留使用;否则转(2);
(2)如果之前去掉的API有访问DEVICE的代码,则拷贝相应代码;否则转(3);
(3)如果该API没有访问DEVICE的代码,则根据DEVICE厂家公开的使用手册,调用相应的方法访问DEVICE;如果使用手册没有调用方法,则报错。
步骤S4:在所述银河麒麟操作系统源码中添加模块C源码;
进一步地,所述步骤S4要求对模块C中的TensorFlow、MXNet、Caffe等每个人工智能计算框架都要执行这些步骤:
步骤S41:从开源网站获取人工智能计算框架源码;
步骤S42:将访问人工智能硬件设备GPU、FPGA、DSP的每个API改写为步骤S32中设置的通用API;
步骤S43:将新的人工智能计算框架源码添加到银河麒麟操作系统。
步骤S5:将上述全部源码编译为银河麒麟人工智能操作系统。
本发明提出的一种人工智能操作系统的构建方法具备如下的技术效果:
(1)所构建的人工智能操作系统不仅支持人工智能应用开发和运行,还支持通用操作系统中的应用开发和运行。图2中的银河麒麟人工智能操作系统不仅支持浏览器、光盘刻录等通用操作系统应用的开发和运行,还支持智慧城市、智慧医疗、智慧金融等人工智能应用的开发和运行。
(2)人工智能应用能够运用人工智能计算框架进行深度学习,人工智能计算框架能够利用多个人工智能硬件设备实现计算加速,提高运行效率,并且克服了之前只能使用个别人工智能硬件设备的缺陷。图2中的智慧城市、智慧医疗、智慧金融等人工智能应用能够利用模块C中的TensorFlow、MXNet、Caffe等人工智能计算框架进行深度学习,而TensorFlow、MXNet、Caffe等人工智能计算框架能够基于模块B和模块A操作GPU、FPGA、DSP等,从而加速计算速度,提高运行效率;如果不设计模块B,则TensorFlow、MXNet、Caffe等人工智能计算框架只能够基于模块A实现对GPU的访问,而不能实现对FPGA和DSP的访问,因而本设计方法克服了之前只能使用个别人工智能硬件设备的缺陷。
本申请提供的一种人工智能操作系统的构建方法所构建的人工智能操作系统不仅支持人工智能应用开发和运行,还支持通用操作系统中的应用开发和运行;人工智能应用能够运用人工智能计算框架进行深度学习,人工智能计算框架能够利用多个人工智能硬件设备实现计算加速,提高运行效率,并且克服了之前只能使用个别人工智能硬件设备的缺陷。
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。

Claims (10)

1.一种人工智能操作系统的构建方法,其特征在于,所述方法包括步骤:
步骤S1:确定一个目标通用操作系统并下载其源码;
步骤S2:下载目标人工智能硬件对应的驱动程序源码,并将所述驱动程序源码添加到所述通用操作系统源码;
步骤S3:设计人工智能硬件统一框架模块的配置文件并编写API,将所述API添加到通用操作系统源码;
步骤S4:在所述通用操作系统源码中添加人工智能计算框架模块源码;
步骤S5:将所述通用操作系统源码编译为人工智能操作系统。
2.根据权利要求1所述的人工智能操作系统的构建方法,其特征在于,所述步骤S3包含步骤:
步骤S31:设计一个配置文件,在该文件中指定人工智能硬件统一框架模块中的每个人工智能计算框架应该使用的人工智能硬件设备;
步骤S32:设计一套通用的API,在每个API中包含一个参数,该参数表示调用该API的人工智能计算框架。
3.根据权利要求2所述的人工智能操作系统的构建方法,其特征在于,所述步骤S32包含步骤:
步骤S321:针对每个人工智能计算框架,列出访问人工智能硬件设备的每个API;
步骤S322:综合步骤S321中的所有API,去掉功能相同的API;
步骤S323:在每个API中添加1个参数,该参数表示调用该API的人工智能计算框架;
步骤S324:在每个API的实现方法中,分别添加对每个人工智能硬件设备的访问代码。
4.根据权利要求3所述的人工智能操作系统的构建方法,其特征在于,所述步骤S324包含步骤:
步骤S3241:读取步骤S31中的配置文件;
步骤S3242:获取人工智能计算框架所要使用的设备DEVICE;
步骤S3243:如果在步骤S2中下载了DEVICE的驱动程序源码,则按照下列方法编写代码;否则报错;
(1)如果该API有访问DEVICE的代码,则保留使用;否则转(2);
(2)如果之前去掉的API有访问DEVICE的代码,则拷贝相应代码;否则转(3);
(3)如果该API没有访问DEVICE的代码,则根据DEVICE厂家公开的使用手册,调用相应的方法访问DEVICE;如果使用手册没有调用方法,则报错。
5.根据权利要求2所述的人工智能操作系统的构建方法,其特征在于,所述步骤S4包含步骤:
步骤S41:从开源网站获取人工智能计算框架源码;
步骤S42:将访问人工智能硬件设备的每个API改写为步骤S32中设置的通用API;
步骤S43:将新的人工智能计算框架源码添加到银河麒麟操作系统。
6.根据权利要求1所述的人工智能操作系统的构建方法,其特征在于,所述目标通用操作系统为银河麒麟操作系统。
7.根据权利要求1所述的人工智能操作系统的构建方法,其特征在于,所述人工智能操作系统为银河麒麟人工智能操作系统。
8.根据权利要求1所述的人工智能操作系统的构建方法,其特征在于,所述驱动程序源码为GPU驱动程序源码、FPGA驱动程序源码或DSP驱动程序源码。
9.根据权利要求2所述的人工智能操作系统的构建方法,其特征在于,所述人工智能硬件设备为GPU、FPGA或DSP。
10.根据权利要求1所述的人工智能操作系统的构建方法,其特征在于,所述人工智能计算框架为TensorFlow、MXNet或Caffe。
CN202110878227.6A 2021-08-02 2021-08-02 一种人工智能操作系统的构建方法 Active CN113342324B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110878227.6A CN113342324B (zh) 2021-08-02 2021-08-02 一种人工智能操作系统的构建方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110878227.6A CN113342324B (zh) 2021-08-02 2021-08-02 一种人工智能操作系统的构建方法

Publications (2)

Publication Number Publication Date
CN113342324A true CN113342324A (zh) 2021-09-03
CN113342324B CN113342324B (zh) 2021-11-19

Family

ID=77480530

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110878227.6A Active CN113342324B (zh) 2021-08-02 2021-08-02 一种人工智能操作系统的构建方法

Country Status (1)

Country Link
CN (1) CN113342324B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114282641A (zh) * 2022-03-07 2022-04-05 麒麟软件有限公司 一种通用异构加速框架的构建方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030101290A1 (en) * 2001-11-29 2003-05-29 Chieng-Hwa Lin System and method for dynamic device driver support in an open source operating system
CN104199674A (zh) * 2014-09-23 2014-12-10 浪潮电子信息产业股份有限公司 一种基于软件复用的嵌入式操作系统的定制方法
CN111432022A (zh) * 2020-04-07 2020-07-17 深圳中兴网信科技有限公司 模型部署方法、服务器和计算机可读存储介质
CN112416443A (zh) * 2020-11-16 2021-02-26 苏州大学 实现实时操作系统在嵌入式架构下的驻留方法
CN112965808A (zh) * 2021-04-06 2021-06-15 湖南大学 一种深度学习预测服务系统的优化方法
CN113076143A (zh) * 2021-04-21 2021-07-06 扬州万方电子技术有限责任公司 一种国产平台人工智能环境适配方法及兼容性测试方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030101290A1 (en) * 2001-11-29 2003-05-29 Chieng-Hwa Lin System and method for dynamic device driver support in an open source operating system
CN104199674A (zh) * 2014-09-23 2014-12-10 浪潮电子信息产业股份有限公司 一种基于软件复用的嵌入式操作系统的定制方法
CN111432022A (zh) * 2020-04-07 2020-07-17 深圳中兴网信科技有限公司 模型部署方法、服务器和计算机可读存储介质
CN112416443A (zh) * 2020-11-16 2021-02-26 苏州大学 实现实时操作系统在嵌入式架构下的驻留方法
CN112965808A (zh) * 2021-04-06 2021-06-15 湖南大学 一种深度学习预测服务系统的优化方法
CN113076143A (zh) * 2021-04-21 2021-07-06 扬州万方电子技术有限责任公司 一种国产平台人工智能环境适配方法及兼容性测试方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114282641A (zh) * 2022-03-07 2022-04-05 麒麟软件有限公司 一种通用异构加速框架的构建方法

Also Published As

Publication number Publication date
CN113342324B (zh) 2021-11-19

Similar Documents

Publication Publication Date Title
CN109032706B (zh) 智能合约执行方法、装置、设备和存储介质
US10831617B2 (en) Resilient programming frameworks for iterative computations on computer systems
KR20140014090A (ko) 기민 통신 오퍼레이터
US20140317641A1 (en) Controlling runtime access to application programming interfaces
WO2021228036A1 (en) Modification of codified infrastructure for orchestration in multi-cloud environment
CN105045603A (zh) 一种构建有限状态机模型框架的方法、装置及电子装置
CN113569508B (zh) 基于id进行数据索引与访问的数据库模型构建方法及设备
US11188364B1 (en) Compilation strategy for a sharable application snapshot
WO2020248510A1 (zh) 一种终端应用行为反射的处理方法
CN113342324B (zh) 一种人工智能操作系统的构建方法
US20200387363A1 (en) Compiling source code using source code transformations selected using benchmark data
CN111123737A (zh) 一种数字硬件虚拟仿真系统
CN113127050A (zh) 一种应用资源打包过程监控方法、装置、设备和介质
CN111563253A (zh) 智能合约运行方法、装置、设备及存储介质
CN103455361A (zh) 一种在64位操作系统下调用32位解码库的设计方法
US10620916B2 (en) Read-only communication operator
US10783245B2 (en) Feedback-directed static analysis
Lan et al. A federated fog-cloud framework for data processing and orchestration: a case study in smart cities
US20110307959A1 (en) Selectively exposing base class libraries based on application execution context
CN110837446A (zh) 应用于嵌入式系统的设备管理方法及装置、介质以及嵌入式设备
CN116107669A (zh) 深度学习框架的算子注册方法、装置、设备及存储介质
WO2020248512A1 (zh) 一种构造终端应用行为的运行时模型的方法
WO2023116003A1 (zh) 数据处理方法、装置、设备、存储介质及计算机程序产品
CN112711602B (zh) 一种存储过程的运行方法、装置,数据库系统及存储介质
CN109144566B (zh) 实时操作系统、实时内核的访问方法及设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant