CN113254093A - 自适应系统架构的gpu初始化方法、装置及计算机存储介质 - Google Patents
自适应系统架构的gpu初始化方法、装置及计算机存储介质 Download PDFInfo
- Publication number
- CN113254093A CN113254093A CN202110763396.5A CN202110763396A CN113254093A CN 113254093 A CN113254093 A CN 113254093A CN 202110763396 A CN202110763396 A CN 202110763396A CN 113254093 A CN113254093 A CN 113254093A
- Authority
- CN
- China
- Prior art keywords
- gpu
- system architecture
- firmware code
- memory
- nonvolatile memory
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4403—Processor initialisation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例公开了一种自适应系统架构的GPU初始化方法、装置及计算机存储介质;该方法可以包括:当硬件上电启动时,CPU获取当前系统架构类型;所述CPU通过调用系统BIOS从外挂于GPU的非易失性存储器中读取与所述当前系统架构类型对应的GPU固件代码并加载至内存;其中,所述外挂于所述GPU的非易失性存储器中存储有所述GPU所能够适用的所有系统架构类型分别对应的GPU固件代码;所述CPU在当前系统架构环境下直接执行所述内存中所加载的与所述当前系统架构类型对应的GPU固件代码以执行对所述GPU初始化。
Description
技术领域
本发明实施例涉及计算机硬件技术领域,尤其涉及一种自适应系统架构的GPU初始化方法、装置及计算机存储介质。
背景技术
通常来说,目前图形处理器(GPU,Graphics Processing Unit)厂商为了进行一些技术保护,不会开放显卡的编程手册及初始化代码,而仅仅只是提供一些二进制驱动。特别是针对固件和基本输入/输出系统(BIOS)提供的驱动,通常是以显卡BIOS(VBIOS,VideoBIOS)形式来提供,存放在GPU的只读存储器中,VBIOS中可以包括GPU的型号、规格及生产厂家等信息,并向BIOS或操作系统提供显卡初始化、字符输出、模式设定等编程接口。
搭载有GPU的计算机系统的硬件上电时,为了对GPU进行初始化,计算机系统的BIOS通过一些调用操作来执行VBIOS里面的初始化代码,来实现对显卡的初始化工作。举例来说,计算机系统的BIOS通过总线将VBIOS加载至内存,并执行VBIOS的入口函数完成显卡初始化,VBIOS入口函数执行结束后,会安装INT 10H中断,BIOS或操作系统可通过调用INT10H中断实现字符输出、模式设定等功能。
但是,当前各GPU厂商所提供的VBIOS通常仅针对X86平台架构,具体可以为X86指令形式的二进制,无法直接运行在非X86架构环境,比如arm64、mips64等。针对这种情况,目前常规方案是在非X86架构平台中构造X86架构的虚拟环境,然后再利用虚拟的X86环境完成前述针对GPU的初始化过程。但是,由于模拟虚拟机需要花费较多的代价,会增加GPU初始化的耗时。
发明内容
有鉴于此,本发明实施例期望提供一种自适应系统架构的GPU初始化方法、装置及计算机存储介质;无需利用虚拟环境即可在非X86架构平台上完成GPU的初始化过程,降低BIOS执行GPU固件代码的代价,提高执行速度,减少GPU初始化的延迟。
本发明实施例的技术方案是这样实现的:
第一方面,本发明实施例提供了一种自适应系统架构的GPU初始化方法,所述方法包括:
当硬件上电启动时,CPU获取当前系统架构类型;
所述CPU通过调用系统BIOS从外挂于GPU的非易失性存储器中读取与所述当前系统架构类型对应的GPU固件代码并加载至内存;其中,所述外挂于所述GPU的非易失性存储器中存储有所述GPU所能够适用的所有系统架构类型分别对应的GPU固件代码;
所述CPU在当前系统架构环境下直接执行所述内存中所加载的与所述当前系统架构类型对应的GPU固件代码以执行对所述GPU初始化。
第二方面,本发明实施例提供了一种自适应系统架构的GPU初始化装置,所述装置应用于GPU外挂有非易失性存储器的计算设备,所述装置包括:获取部分、调用加载部分和执行部分;其中,
所述获取部分,经配置为:当硬件上电启动时,获取所述计算设备的当前系统架构类型;
所述调用加载部分,经配置为:通过调用系统BIOS从外挂于GPU的非易失性存储器中读取与所述当前系统架构类型对应的GPU固件代码并加载至内存;其中,所述外挂于所述GPU的非易失性存储器中存储有所述GPU所能够适用的所有系统架构类型分别对应的GPU固件代码;
所述执行部分,经配置为在当前系统架构环境下直接执行所述内存中所加载的与所述当前系统架构类型对应的GPU固件代码以执行对所述GPU初始化。
第三方面,本发明实施例提供了一种计算设备,所述计算设备包括:CPU、系统BIOS、GPU以及外挂于所述GPU的非易失性存储器;其中,
所述外挂于所述GPU的非易失性存储器中存储有所述GPU所能够适用的所有系统架构类型分别对应的GPU固件代码;
所述CPU,经配置为当硬件上电启动时,获取当前系统架构类型;以及,
通过调用系统BIOS从所述非易失性存储器中读取与所述当前系统架构类型对应的GPU固件代码并加载至内存;以及,
在当前系统架构环境下直接执行所述内存中所加载的与所述当前系统架构类型对应的GPU固件代码以执行对所述GPU初始化。
第四方面,本发明实施例提供了一种计算机存储介质,所述计算机存储介质存储有自适应系统架构的GPU初始化程序,所述自适应系统架构的GPU初始化程序被至少一个处理器执行时实现第一方面所述自适应系统架构的GPU初始化方法步骤。
本发明实施例提供了一种自适应系统架构的GPU初始化方法、装置及计算机存储介质;对GPU外挂一非易失性存储器,并且在该非易失性存储器中预先存储有与各种系统架构类型对应的GPU固件代码,从而在硬件上电启动时,CPU能够根据当前系统架构类型调用系统BIOS将非易失性存储器中与当前系统架构类型对应的GPU固件代码读取并加载至内存,随后通过直接执行内存中所加载的GPU固件代码执行对GPU的初始化。从而无需启动X86虚拟机环境就能够在非X86系统架构下完成GPU的初始化过程,降低执行代价和耗时,提高执行效率,此外也提供了一种轻量化实现初始化过程的方案。
附图说明
图1为一种能够适用本发明实施例技术方案的计算设备硬件组成示意图;
图2为常规方案对GPU初始化的过程示意图;
图3为另一种能够适用本发明实施例技术方案的计算设备硬件组成示意图;
图4为本发明实施例提供的一种自适应系统架构的GPU初始化方法流程示意图;
图5为本发明实施例提供的FLASH存储空间划分示意图;
图6为本发明实施例提供的一种自适应系统架构的GPU初始化装置组成示意图;
图7为本发明实施例提供的另一种自适应系统架构的GPU初始化装置组成示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
参见图1,其示出了能够适用本发明实施例技术方案的计算设备100组成,该计算设备100可以包含但不限于以下各项:无线装置、移动或蜂窝电话(包含所谓的智能电话)、个人数字助理(PDA)、视频游戏控制台(包含视频显示器、移动视频游戏装置、移动视频会议单元)、膝上型计算机、桌上型计算机、电视机顶盒、平板计算装置、电子书阅读器、固定或移动媒体播放器等。在图1所示的实例中,该计算设备100至少可以包括:一个或多个中央处理器(CPU)110,图形处理单元(GPU)115以及一个或多个计算设备可读介质(例如内存)通过输入/输出控制器集线器(例如北桥,南桥)145和总线(比如外围组件接口Express(PCI-E)总线)通信耦合在一起。显示器150也可以通信耦合到GPU 115。在一些示例中,计算设备可读介质通常可以包括只读存储器(ROM)130,用于存储一个或多个初始化例程,例如系统基本输入/输出系统(BIOS);此外,计算设备可读介质通常还可以包括系统存储器125用于存储操作系统,一个或多个用户应用程序和数据。该计算设备还可以包括许多其他子系统和/或外围设备,例如硬盘驱动器,光盘驱动器,键盘,定点设备,扬声器等。由于这些其他子系统和/或外围设备在本领域中是众所周知的,并且与对本发明实施例的理解没有密切关系。因此,将不再进一步讨论这些附加子系统和/或外围设备,以免不必要地使本发明实施例的技术方案晦涩难懂。
当计算设备100的硬件组件上电并进行初始化的过程中,CPU 110开始执行一个或多个系统初始化例程,例如ROM 130中的系统BIOS和/或类似内容。一个或多个系统初始化例程能够用于配置计算设备100的硬件组件以及输入/输出控制器总线等的状态,以准备可靠地执行操作系统和用户应用程序。另外,GPU 115通常能够执行一个或多个图形初始化例程,例如在GPU中的固件中实现或存储在计算设备可读介质中的VBIOS,举例来说,VBIOS可以存储于与GPU 115处于相同板卡(如图1中虚线框所示)的特定ROM 135中。
在一些示例中,基于图1所示的计算设备100的架构,常规方案中对GPU的初始化过程如图2所示,可以包括:
S21:CPU 110配置芯片内部锁相环(PLL,Phase Locked Loop)的工作时钟,并初始化PCIE链路,以确保能够访问GPU 115所在的板卡;
S22:CPU 110通过调用ROM 130中的系统BIOS枚举GPU 115所在的板卡,以确认能够正常访问以及下发配置信息;
S23:CPU 110通过调用ROM 130中的系统BIOS检测GPU 115对应的基地址寄存器(BAR,Base Address Register);当检测到GPU 115所在的板卡中包含存储有VBIOS的ROM135时,通过PCIE将VBIOS的固件程序读取到如内存为例的系统存储器125中;
S24:通过执行VBIOS完成对GPU 115的初始化,进而后续就能够通过GPU驱动程序对GPU 115进行访问。
在上述初始化过程中,VBIOS的固件程序通常包括GPU 115内部关键寄存器初始化的二进制指令,目前的GPU厂商对于该指令格式均设置为x86指令;而在计算设备100为非X86的系统架构,比如ARM64、MIPS64等的情况下,上述初始化过程还会在完成步骤S23将VBIOS的固件程序读取到内存之后,启动x86虚拟机环境并通过x86虚拟机环境对VBIOS的固件程序进行解析指令以转化为符合当前主机指令集,转化完成后再执行VBIOS的固件程序。举例来说,如果计算设备100为ARM64架构,那就需要通过x86虚拟机环境将VBIOS固件程序解析并转化为符合ARM64架构的二进制指令;如果计算设备100为MIPS64架构,那么就需要通过x86虚拟机环境将VBIOS固件程序解析并转化为符合MIPS64架构的二进制指令。
对于上述常规方案所阐述的初始化流程,考虑到均需要构造或启动X86虚拟机环境才能够对VBIOS的固件程序进行执行,增加了较多的执行代价,以及GPU初始化的耗时。有鉴于此,本发明实施例期望能够提供一种自适应系统架构的GPU初始化方案,无需启动X86虚拟机环境就能够在非X86系统架构下完成GPU的初始化过程,降低执行代价和耗时,提高执行效率,而且也提供了一种轻量化实现初始化过程的方案。
基于此,结合图1所示的计算设备100的硬件组成,参见图3,本发明实施例在图1所示的计算设备100的硬件组成基础上,针对GPU 115外挂一非易失性存储器,比如FLASH310,在一些示例中,FLASH 310可以与GPU 115设置于同一板卡上,并通过PCIE与CPU 110以及系统BIOS通信连接。对于FLASH 310来说,其中存放有与不同系统架构类型相对应的GPU固件指令,并且FLASH 310针对各系统架构类型所对应的GPU固件指令,均相应地设置有固定的存储空间进行存储。结合图3所示的硬件组成架构,参见图4,其示出了本发明实施例提供的一种自适应系统架构的GPU初始化方法,该方法可以包括:
S401:当硬件上电启动时,CPU 110获取当前系统架构类型;
S402:CPU 110通过调用系统BIOS从外挂于GPU 115的非易失性存储器中读取与所述当前系统架构类型对应的GPU固件代码并加载至内存;其中,所述外挂于GPU 115的非易失性存储器中存储有GPU 115所能够适用的所有系统架构类型分别对应的GPU固件代码;
S403:CPU 110在当前系统架构环境下直接执行所述内存中所加载的与所述当前系统架构类型对应的GPU固件代码以执行对GPU 115初始化。
上述图4所示的技术方案,对GPU 115外挂一非易失性存储器,并且在该非易失性存储器中预先存储有与各种系统架构类型对应的GPU固件代码,从而在硬件上电启动时,CPU 110能够根据当前系统架构类型调用系统BIOS将非易失性存储器中与当前系统架构类型对应的GPU固件代码读取并加载至内存,随后通过直接执行内存中所加载的GPU固件代码执行对GPU 115的初始化。从而无需启动X86虚拟机环境就能够在非X86系统架构下完成GPU的初始化过程,降低执行代价和耗时,提高执行效率,此外也提供了一种轻量化实现初始化过程的方案。
对于图4所示的技术方案,在一些可能的实现方式中,外挂于GPU 115的非易失性存储器对应一BAR,且所述非易失性存储器的存储空间被划分为多个子空间,每个子空间各存储一系统架构类型对应的GPU固件代码,且每个子空间均对应一偏移地址。对于上述实现方式,举例来说,非易失性存储器可以是外挂于GPU 115的FLASH 310;而对于FLSAH 310来说,可以于PCIE映射一BAR地址。以GPU 115能够适用3种系统架构类型,分别是X86架构、ARM64架构和MIPS64架构为例,FLASH 310的存储空间可以相应于上述3种系统架构类型如图5所示划分得到3个子空间,分别为用于存储X86架构对应的GPU固件代码的子空间A(ARCH_A)、用于存储ARM64架构对应的GPU固件代码的子空间B(ARCH_B)和用于存储MIPS64架构对应的GPU固件代码子空间C(ARCH_C);这3个子空间各对应的偏移地址分别为地址A、地址B和地址C,且可以存于FLASH 310所映射的BAR中。
针对上述实现方式及其举例,在一些示例中,CPU 110通过调用系统BIOS从外挂于GPU 115的非易失性存储器中读取与所述当前系统架构类型对应的GPU固件代码并加载至内存,包括:
CPU 110通过调用系统BIOS对从映射于非易失性存储器的BAR中所读取的与所述当前系统架构类型对应的偏移地址进行访问,并从与所述当前系统架构类型对应的子空间中读取GPU固件代码并加载至内存。
对于上述示例,举例来说,比如CPU 110在硬件上电启动时,获取当前系统架构类型为ARM64架构,那么就可以通过调用系统BIOS对从映射于FLSAH 310的BAR中所读取的偏移地址B进行访问,读取ARCH_B中的ARM64架构对应的GPU固件代码并加载至内存。
对于上述实现方式中所述非易失性存储器中所存储的各系统架构类型对应的GPU固件代码,在一些示例中,图4所示的技术方案还可以包括:
在各系统架构环境中将GPU初始化代码相应地进行编译,生成各系统架构类型对应的GPU固件代码;
根据所述非易失性存储器的子空间划分规则将各系统架构类型对应的GPU固件代码烧写在对应的子空间。
对于上述示例,举例来说,针对不同硬件环境,GPU所分配的物理地址是可变的,因此可以约定加载GPU固件代码,BAR的物理地址需要重定位,因此,本发明实施例可以定义存储物理地址的符号bar_phy来编写GPU初始化代码;随后,在目标系统架构环境中编译生成GPU固件代码,比方在ARM64的系统架构环境生成用于在ARM64架构中适用的gpu_arm64.bin固件代码,或者在MIPS系统架构环境中生成用于在MIPS64架构中适用的gpu_mips64.bin固件等;接着,以FLASH 310为例,就可以根据FLASH的分区规则,将GPU固件代码烧写在FLASH中用于指示各子空间的分区指定位置。
通过上述示例,完成了GPU固件代码的编译过程,此外,为了保证能够被加载到系统BIOS以供GPU驱动程序访问到目标符号入口地址,还可以采用类似动态加载机制,基于此,所述CPU 110在当前系统架构环境下直接执行所述内存中所加载的与所述当前系统架构类型对应的GPU固件代码以执行对GPU 115初始化,可以包括:
通过调用系统BIOS执行GPU驱动程序对所述GPU固件代码进行读取和校验,并加载至设定的空闲的物理地址;
修改所述GPU固件代码中所声明的需要重定位的符号表项和入口start地址;
修改所述GPU固件代码中所声明的需要重定位的BAR空间物理地址表项,以供所述GPU固件代码访问;
跳转所述入口start执行针对GPU 115的初始化过程。
可以理解地,当执行完毕之后,就表示GPU芯片初始化完成,从而可以进行后续的GPU应用过程。
基于前述技术方案,在具体实施过程中,还需要对GPU驱动程序进行适配,因此,需要对GPU固件代码进行检验。基于此,在一些示例中,所述通过调用系统BIOS执行GPU驱动程序对所述GPU固件代码进行读取和校验,并加载至设定的空闲的物理地址,可以包括:
通过PCIE获取所述GPU固件代码,并校验所述GPU固件代码的特征信息;举例来说,GPU固件代码的特征信息可以包括GPU固件代码的文件大小、属性、校验码等信息;
校验完成后,将所述GPU固件代码加载至内存中的空闲物理地址。
通过上述图4所示的技术方案及其实现方式和示例,GPU固件代码可以在任意系统架构环境编译产生,并存储在FLASH存储空间的指定子空间中,能够兼容不同类型主机的系统架构,自适应能力强;此外,通过直接加载GPU固件代码进行执行,避免采用虚拟机方案,降低了BIOS启动的延迟。
基于前述技术方案相同的发明构思,参见图6,其示出了本发明实施例提供的一种自适应系统架构的GPU初始化装置60,该装置60可以应用于图3所示的计算设备100,该装置60可以包括:获取部分601、调用加载部分602和执行部分603;其中,
所述获取部分601,经配置为:当硬件上电启动时,获取所述计算设备的当前系统架构类型;
所述调用加载部分602,经配置为:通过调用系统BIOS从外挂于GPU的非易失性存储器中读取与所述当前系统架构类型对应的GPU固件代码并加载至内存;其中,所述外挂于所述GPU的非易失性存储器中存储有所述GPU所能够适用的所有系统架构类型分别对应的GPU固件代码;
所述执行部分603,经配置为在当前系统架构环境下直接执行所述内存中所加载的与所述当前系统架构类型对应的GPU固件代码以执行对所述GPU初始化。
在一些示例中,所述外挂于所述GPU的非易失性存储器对应一BAR,且所述非易失性存储器的存储空间被划分为多个子空间,每个子空间各存储一系统架构类型对应的GPU固件代码,且每个子空间均对应一偏移地址。
在一些示例中,所述调用加载部分602,经配置为:
通过调用系统BIOS对从映射于所述非易失性存储器的BAR中所读取的与所述当前系统架构类型对应的偏移地址进行访问,并从与所述当前系统架构类型对应的子空间中读取所述GPU固件代码并加载至内存。
在一些示例中,参见图7,所述装置60还包括编译部分604和烧写部分605,其中,
所述编译部分604,经配置为在各系统架构环境中将GPU初始化代码相应地进行编译,生成各系统架构类型对应的GPU固件代码;
所述烧写部分605,经配置为根据所述非易失性存储器的子空间划分规则将各系统架构类型对应的GPU固件代码烧写在对应的子空间。
在一些示例中,所述执行部分603,经配置为:
通过调用系统BIOS执行GPU驱动程序对所述GPU固件代码进行读取和校验,并加载至设定的空闲的物理地址;
修改所述GPU固件代码中所声明的需要重定位的符号表项和入口start地址;
修改所述GPU固件代码中所声明的需要重定位的BAR空间物理地址表项,以供所述GPU固件代码访问;
跳转所述入口start执行针对所述GPU的初始化过程。
在一些示例中,所述执行部分603,经配置为:
通过PCIE获取所述GPU固件代码,并校验所述GPU固件代码的特征信息;举例来说,GPU固件代码的特征信息可以包括GPU固件代码的文件大小、属性、校验码等信息;
校验完成后,将所述GPU固件代码加载至内存中的空闲物理地址。
可以理解地,在本实施例中,“部分”可以是部分电路、部分处理器、部分程序或软件等等,当然也可以是单元,还可以是模块也可以是非模块化的。
另外,在本实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM, Read Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
因此,本实施例提供了一种计算机存储介质,所述计算机存储介质存储有自适应系统架构的GPU初始化程序,所述自适应系统架构的GPU初始化程序被至少一个处理器执行时实现上述技术方案中所述自适应系统架构的GPU初始化方法步骤。
可以理解地,上述自适应系统架构的GPU初始化装置60的示例性技术方案,与前述自适应系统架构的GPU初始化方法的技术方案属于同一构思,因此,上述对于自适应系统架构的GPU初始化装置60的技术方案未详细描述的细节内容,均可以参见前述自适应系统架构的GPU初始化方法的技术方案的描述。本发明实施例对此不做赘述。
需要说明的是:本发明实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种自适应系统架构的GPU初始化方法,其特征在于,所述方法包括:
当硬件上电启动时,CPU获取当前系统架构类型;
所述CPU通过调用系统BIOS从外挂于GPU的非易失性存储器中读取与所述当前系统架构类型对应的GPU固件代码并加载至内存;其中,所述外挂于所述GPU的非易失性存储器中存储有所述GPU所能够适用的所有系统架构类型分别对应的GPU固件代码;
所述CPU在当前系统架构环境下直接执行所述内存中所加载的与所述当前系统架构类型对应的GPU固件代码以执行对所述GPU初始化。
2.根据权利要求1所述的方法,其特征在于,所述外挂于所述GPU的非易失性存储器对应一基地址寄存器BAR,且所述非易失性存储器的存储空间被划分为多个子空间,每个子空间各存储一系统架构类型对应的GPU固件代码,且每个子空间均对应一偏移地址。
3.根据权利要求2所述的方法,其特征在于,所述CPU通过调用系统BIOS从外挂于GPU的非易失性存储器中读取与所述当前系统架构类型对应的GPU固件代码并加载至内存,包括:
所述CPU通过调用系统BIOS对从映射于所述非易失性存储器的BAR中所读取的与所述当前系统架构类型对应的偏移地址进行访问,并从与所述当前系统架构类型对应的子空间中读取所述GPU固件代码并加载至内存。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在各系统架构环境中将GPU初始化代码相应地进行编译,生成各系统架构类型对应的GPU固件代码;
根据所述非易失性存储器的子空间划分规则将各系统架构类型对应的GPU固件代码烧写在对应的子空间。
5.根据权利要求2所述的方法,其特征在于,所述CPU在当前系统架构环境下直接执行所述内存中所加载的与所述当前系统架构类型对应的GPU固件代码以执行对所述GPU初始化,包括:
通过调用系统BIOS执行GPU驱动程序对所述GPU固件代码进行读取和校验,并加载至设定的空闲的物理地址;
修改所述GPU固件代码中所声明的需要重定位的符号表项和入口start地址;
修改所述GPU固件代码中所声明的需要重定位的BAR空间物理地址表项,以供所述GPU固件代码访问;
跳转所述入口start执行针对GPU 115的初始化过程。
6.根据权利要求5所述的方法,其特征在于,所述通过调用系统BIOS执行GPU驱动程序对所述GPU固件代码进行读取和校验,并加载至设定的空闲的物理地址,包括:
通过PCIE获取所述GPU固件代码,并校验所述GPU固件代码的特征信息;举例来说,GPU固件代码的特征信息可以包括GPU固件代码的文件大小、属性、校验码等信息;
校验完成后,将所述GPU固件代码加载至内存中的空闲物理地址。
7.一种自适应系统架构的GPU初始化装置,其特征在于,所述装置应用于GPU外挂有非易失性存储器的计算设备,所述装置包括:获取部分、调用加载部分和执行部分;其中,
所述获取部分,经配置为:当硬件上电启动时,获取所述计算设备的当前系统架构类型;
所述调用加载部分,经配置为:通过调用系统BIOS从外挂于GPU的非易失性存储器中读取与所述当前系统架构类型对应的GPU固件代码并加载至内存;其中,所述外挂于所述GPU的非易失性存储器中存储有所述GPU所能够适用的所有系统架构类型分别对应的GPU固件代码;
所述执行部分,经配置为在当前系统架构环境下直接执行所述内存中所加载的与所述当前系统架构类型对应的GPU固件代码以执行对所述GPU初始化。
8.根据权利要求7所述的装置,其特征在于,所述外挂于所述GPU的非易失性存储器对应一BAR,且所述非易失性存储器的存储空间被划分为多个子空间,每个子空间各存储一系统架构类型对应的GPU固件代码,且每个子空间均对应一偏移地址。
9.一种计算设备,其特征在于,所述计算设备包括:CPU、系统BIOS、GPU以及外挂于所述GPU的非易失性存储器;其中,
所述外挂于所述GPU的非易失性存储器中存储有所述GPU所能够适用的所有系统架构类型分别对应的GPU固件代码;
所述CPU,经配置为当硬件上电启动时,获取当前系统架构类型;以及,
通过调用系统BIOS从所述非易失性存储器中读取与所述当前系统架构类型对应的GPU固件代码并加载至内存;以及,
在当前系统架构环境下直接执行所述内存中所加载的与所述当前系统架构类型对应的GPU固件代码以执行对所述GPU初始化。
10.一种计算机存储介质,其特征在于,所述计算机存储介质存储有自适应系统架构的GPU初始化程序,所述自适应系统架构的GPU初始化程序被至少一个处理器执行时实现权利要求1至6任一项所述自适应系统架构的GPU初始化方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110763396.5A CN113254093A (zh) | 2021-07-06 | 2021-07-06 | 自适应系统架构的gpu初始化方法、装置及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110763396.5A CN113254093A (zh) | 2021-07-06 | 2021-07-06 | 自适应系统架构的gpu初始化方法、装置及计算机存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113254093A true CN113254093A (zh) | 2021-08-13 |
Family
ID=77190796
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110763396.5A Pending CN113254093A (zh) | 2021-07-06 | 2021-07-06 | 自适应系统架构的gpu初始化方法、装置及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113254093A (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050060531A1 (en) * | 2003-09-15 | 2005-03-17 | Davis Michael Ryan | Apparatus and method for selectively mapping proper boot image to processors of heterogeneous computer systems |
CN101548265A (zh) * | 2006-12-31 | 2009-09-30 | 桑迪士克股份有限公司 | 便携式多平台引导系统及架构 |
CN102023889A (zh) * | 2010-11-04 | 2011-04-20 | 天津曙光计算机产业有限公司 | 一种实现x86 vbios在mips架构上运行的方法 |
US20130159664A1 (en) * | 2011-12-14 | 2013-06-20 | Paul Blinzer | Infrastructure Support for Accelerated Processing Device Memory Paging Without Operating System Integration |
US20150212890A1 (en) * | 2014-01-24 | 2015-07-30 | Nvidia Corporation | Graphics processing subsystem and method for recovering a video basic input/output system |
CN104978224A (zh) * | 2015-07-06 | 2015-10-14 | 张兆琦 | 一种面向多硬件平台的应用程序管理方法 |
CN105550010A (zh) * | 2016-03-11 | 2016-05-04 | 湘潭大学 | 一种基于SoC的无线智能程序加载方法及系统 |
EP3161793A1 (en) * | 2014-06-30 | 2017-05-03 | Intel Corporation | Adaptive partition mechanism with arbitrary tile shape for tile based rendering gpu architecture |
CN108628643A (zh) * | 2018-03-30 | 2018-10-09 | 深圳市伟文无线通讯技术有限公司 | 单片机系统软件加载方法 |
-
2021
- 2021-07-06 CN CN202110763396.5A patent/CN113254093A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050060531A1 (en) * | 2003-09-15 | 2005-03-17 | Davis Michael Ryan | Apparatus and method for selectively mapping proper boot image to processors of heterogeneous computer systems |
CN101548265A (zh) * | 2006-12-31 | 2009-09-30 | 桑迪士克股份有限公司 | 便携式多平台引导系统及架构 |
CN102023889A (zh) * | 2010-11-04 | 2011-04-20 | 天津曙光计算机产业有限公司 | 一种实现x86 vbios在mips架构上运行的方法 |
US20130159664A1 (en) * | 2011-12-14 | 2013-06-20 | Paul Blinzer | Infrastructure Support for Accelerated Processing Device Memory Paging Without Operating System Integration |
US20150212890A1 (en) * | 2014-01-24 | 2015-07-30 | Nvidia Corporation | Graphics processing subsystem and method for recovering a video basic input/output system |
EP3161793A1 (en) * | 2014-06-30 | 2017-05-03 | Intel Corporation | Adaptive partition mechanism with arbitrary tile shape for tile based rendering gpu architecture |
CN104978224A (zh) * | 2015-07-06 | 2015-10-14 | 张兆琦 | 一种面向多硬件平台的应用程序管理方法 |
CN105550010A (zh) * | 2016-03-11 | 2016-05-04 | 湘潭大学 | 一种基于SoC的无线智能程序加载方法及系统 |
CN108628643A (zh) * | 2018-03-30 | 2018-10-09 | 深圳市伟文无线通讯技术有限公司 | 单片机系统软件加载方法 |
Non-Patent Citations (3)
Title |
---|
JEAN-FRANÇOIS DOLLINGER ET AL: "Adaptive Runtime Selection for GPU", 《2013 42ND INTERNATIONAL CONFERENCE ON PARALLEL PROCESSING》 * |
何小艇: "《电子系统设计》", 31 August 2004, 浙江工业大学出版社 * |
袁茜茜: "探究计算机的启动过程", 《微型机与应用》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109634883B (zh) | 主从式系统、指令执行方法与数据存取方法 | |
US8468332B2 (en) | Dynamic link loading in extensible firmware interface compliant systems | |
JP5608243B2 (ja) | 仮想化環境においてi/o処理を行う方法および装置 | |
US9940291B2 (en) | Assigning processors to memory mapped configuration | |
US8489847B2 (en) | Inter operating system memory hotswap to support memory growth in a non-virtualized system | |
EP2765503B1 (en) | Method and electronic device of the file system prefetching and boot-up method | |
JP2015062131A (ja) | Mmc/sdデバイスからホストデバイスをブートする方法,mmc/sdデバイスからブート可能なホストデバイス及びホストデバイスをブートできるmmc/sdデバイス | |
US20090265708A1 (en) | Information Processing Apparatus and Method of Controlling Information Processing Apparatus | |
EP3314396B1 (en) | Technologies for shadow stack manipulation for binary translation systems | |
US20070300055A1 (en) | Booting apparatus and method therefor | |
CN111857776A (zh) | Dsp板卡类的应用程序的在线升级方法 | |
CN112015522B (zh) | 系统功能扩展方法、装置及计算机可读存储介质 | |
KR101197152B1 (ko) | 전자장치와 이를 포함하는 전자장치 시스템 및 그 제어방법 | |
KR20140083530A (ko) | 하드웨어를 디버깅하는 부트 쉘을 포함하는 시스템온칩 및 이의 구동 방법 | |
CN109426511B (zh) | 软核更新方法和系统 | |
CN113254093A (zh) | 自适应系统架构的gpu初始化方法、装置及计算机存储介质 | |
CN112131171B (zh) | 动态修改板载vga所在的pch pcie根端口的方法 | |
US8117427B2 (en) | Motherboard, storage device and controller thereof, and booting method | |
US7103767B2 (en) | Method and apparatus to support legacy master boot record (MBR) partitions | |
CN115291951A (zh) | Uefi启动方法、装置、电子设备以及存储介质 | |
CN114816273A (zh) | 针对Norflash的自适应最优配置的方法、装置及介质 | |
US6516398B2 (en) | Program-downloadable data processing system and method for accessing memory by using a unified memory space therein | |
US11029868B1 (en) | Initialization code/data memory mapping system | |
US20080222385A1 (en) | Parameter setting method and apparatus for network controller | |
CN112965754B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210813 |