CN102541618A - 一种通用图形处理器虚拟化的实现方法、系统及装置 - Google Patents

一种通用图形处理器虚拟化的实现方法、系统及装置 Download PDF

Info

Publication number
CN102541618A
CN102541618A CN2010106120780A CN201010612078A CN102541618A CN 102541618 A CN102541618 A CN 102541618A CN 2010106120780 A CN2010106120780 A CN 2010106120780A CN 201010612078 A CN201010612078 A CN 201010612078A CN 102541618 A CN102541618 A CN 102541618A
Authority
CN
China
Prior art keywords
virtual machine
pending data
shared drive
gpu
bus shared
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
CN2010106120780A
Other languages
English (en)
Other versions
CN102541618B (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.)
China Mobile Communications Group Co Ltd
Original Assignee
China Mobile Communications Group 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 China Mobile Communications Group Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN201010612078.0A priority Critical patent/CN102541618B/zh
Publication of CN102541618A publication Critical patent/CN102541618A/zh
Application granted granted Critical
Publication of CN102541618B publication Critical patent/CN102541618B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种GPGPU虚拟化的实现方法、系统及装置,用以解决现有技术无法实现GPGPU虚拟化的问题。该方法第一虚拟机读取总线共享内存中第二虚拟机写入的待处理数据,自身调用GPU驱动接口,将该待处理数据发送到物理显卡上进行计算,收集计算后的结果,将该结果放入总线共享内存中待第二虚拟机读取。由于第一虚拟机可以实现访问物理显卡,并与第二虚拟机进行信息交互,因此实现了GPGPU的虚拟化。

Description

一种通用图形处理器虚拟化的实现方法、系统及装置
技术领域
本发明涉及虚拟化技术领域,尤其涉及一种通用图形处理器(GeneralPurpose Graphic Process Unit,GPGPU)虚拟化的实现方法、系统及装置。
背景技术
随着图形处理技术的发展,出现了一种可从事通用计算任务的专业图形处理器GPGPU,GPGPU可以执行与图形处理无关的通用计算指令。在面对单指令多数据流(Single Instruction Multiple Data,SIMD)并且数据处理运算量,远大于数据调度和传输的需求时,GPGPU的运算能力和访存带宽能力都远远超过了中央处理器(CPU),因此形成了CPU+GPGPU的新型异构体系结构。这种新型架构表现出了强大的性能优势,并且与CPU相比具有更低的能耗和散热。
目前支持GPGPU的物理实体为物理显卡,GPGPU还只能在物理机上使用,GPGPU的虚拟化目前仍然处于初期阶段,不过可以将物理显卡通过硬件Passthrough的方法给虚拟机使用,但是模拟的显卡不能支持GPGPU功能,虚拟机不能调用GPGPU编程接口以进行运算,因此现有技术中还无法实现GPGPU的虚拟化。
发明内容
有鉴于此,本发明实施例提供一种通用图形处理器虚拟化的实现方法、系统及装置,用以解决现有技术无法实现GPGPU虚拟化的问题。
本发明实施例提供的一种通用图形处理器虚拟化的实现系统,包括:
第一虚拟机,用于读取总线共享内存中第二虚拟机发送的待处理数据,并调用自身的图形处理器GPU驱动接口,将该待处理数据发送到物理显卡上进行计算,以及收集所述物理显卡计算后的结果,并将该结果放入总线共享内存中待第二虚拟机读取;
总线共享内存,用于存储第二虚拟机发送的待处理数据,及第一虚拟机发送的计算后的结果;
第二虚拟机,用于向总线共享内存中写入待处理数据,及从所述总线共享内存中获取计算后的结果;
物理显卡,用于对第一虚拟机发送的待处理数据进行处理。
本发明实施例提供的一种通用图形处理器虚拟化的实现方法,包括:
第一虚拟机读取总线共享内存中第二虚拟机发送的待处理数据;
调用自身的图形处理器GPU驱动接口,将该待处理数据发送到物理显卡上进行计算;
收集计算后的结果,将该结果放入总线共享内存中待第二虚拟机读取。
本发明实施例提供的一种通用图形处理器虚拟化的实现装置,所述装置包括:
图形处理器GPU后端模块,用于读取总线共享内存中第二虚拟机发送的待处理数据,收集计算后的结果,将该结果放入总线共享内存中待第二虚拟机读取;
GPU驱动模块,用于调用自身的图形处理器GPU驱动接口,将该待处理数据发送到物理显卡上进行计算。
本发明实施例提供的一种通用图形处理器虚拟化的实现方法,所述方法包括:
第二虚拟机将待处理数据写入总线共享内存;
读取总线共享内存中对该待处理数据的计算后的结果,其中该计算结果为第一虚拟机通过物理显卡计算并返回的。
本发明实施例提供的一种通用图形处理器虚拟化的实现装置,所述装置包括:
图形处理器GPU前端发送模块,用于将待处理数据写入总线共享内存;
图形处理器GPU前端接收模块,用于读取总线共享内存中对该待处理数据的计算后的结果,其中该计算结果为第一虚拟机通过物理显卡计算并返回的。
本发明实施例提供了一种GPGPU虚拟化的实现方法、系统及装置,该方法中,第一虚拟机读取总线共享内存中第二虚拟机写入的待处理数据,自身调用GPU驱动接口,将该待处理数据发送到物理显卡上进行计算,收集计算后的结果,将该结果放入总线共享内存中待第二虚拟机读取。由于第一虚拟机可以实现访问物理显卡,并与第二虚拟机进行信息交互,因此实现了GPGPU的虚拟化。
附图说明
图1为本发明实施例提供的GPGPU虚拟化的实现系统结构示意图;
图2为本发明实施例提供的GPGPU虚拟化的实现过程;
图3为本发明实施例提供的GPGPU虚拟化的过程中实现多台虚拟机同时使用物理显卡的过程;
图4为本发明实施例提供的GPGPU虚拟化的过程中虚拟机使用物理显卡进行计算的过程;
图5为本发明实施例提供的GPGPU虚拟化的详细实现过程;
图6为本发明实施例提供的一种通用图形处理器虚拟化的实现装置的结构示意图;
图7为本发明实施例提供的一种通用图形处理器虚拟化的实现装置的结构示意图。
具体实施方式
下面结合说明书附图,对本发明实施例进行详细说明。
图1为本发明实施例提供的GPGPU虚拟化的实现系统结构示意图,该系统包括:第一虚拟机、第二虚拟机、总线(Bus)共享内存以及物理显卡。
第一虚拟机11,用于读取总线共享内存中第二虚拟机发送的待处理数据,并调用自身的图形处理器GPU驱动接口,将该待处理数据发送到物理显卡上进行计算,以及收集所述物理显卡计算后的结果,并将该结果放入总线共享内存中待第二虚拟机读取;
Bus共享内存12,用于存储第二虚拟机发送的待处理数据,及第一虚拟机发送的计算后的结果;
第二虚拟机13,用于向总线共享内存中写入待处理数据,及从所述总线共享内存中获取计算后的结果;
物理显卡14,用于对第一虚拟机发送的待处理数据进行处理。
具体在本发明实施例中第一虚拟机可以为虚拟机Dom 0,总线共享内存可以为XenBus共享内存,第二虚拟机可以为虚拟机Dom U。虚拟机Dom 0是Xen虚拟机部署架构中的管理操作者,其负责管理连接XenBus共享内存的每台虚拟机Dom U,并且能与其他虚拟机Dom U通过XenBus共享内存进行交互,并且可以实现对物理显卡等其他物理器件的访问。
上述整个GPGPU虚拟化的实现系统可以部署于同一物理机上,随着物理机的启动,该虚拟机Dom 0启动,通过虚拟机Dom 0的启动可以启动虚拟机Dom U。在虚拟机Dom 0中安装有真实的显卡驱动,使得该虚拟机Dom 0可以直接访问物理显卡,而在虚拟机Dom U的操作系统中模拟一个支持GPGPU的显卡驱动,使该虚拟机Dom U的操作系统可以通过这个模拟的显卡驱动认为自身安装了一块独立的显卡。
启动后的虚拟机Dom U当接收到用户的待处理数据后,将该待处理数据写入XenBus共享内存中,虚拟机Dom 0读取XenBus共享内存中该虚拟机DomU写入的待处理数据,由于虚拟机Dom 0中安装了真实的显卡驱动,因此该虚拟机Dom 0调用自身的GPU驱动接口,将该待处理数据发送的物理显卡进行计算,并将物理显卡计算后的结果写入XenBus共享内存,虚拟机Dom U从XenBus共享内存中读取该计算后的结果提供给用户,从而实现GPGPU的虚拟化。
图2为本发明实施例提供的GPGPU虚拟化的实现过程,该过程包括以下步骤:
S201:第一虚拟机读取总线共享内存中第二虚拟机发送的待处理数据。
S202:调用自身的图形处理器GPU驱动接口,将该待处理数据发送到物理显卡上进行计算。
S203:收集计算后的结果,将该结果放入总线共享内存中待第二虚拟机读取。
具体的在本发明实施例中,在虚拟机Dom U中包括GPU前端模块,并且在虚拟机Dom 0中包括GPU后端模块,虚拟机Dom U中的GPU前端模块包括GPU前端发送模块和GPU前端接收模块,其实现与虚拟机Dom 0中的GPU后端模块的交互。
虚拟机Dom U当接收到用户的待处理数据后,其GPU前端发送模块将该待处理数据写入XenBus共享内存,而虚拟机Dom 0通过其GPU后端模块读取XenBus共享内存中该虚拟机Dom U写入的待处理数据。在虚拟机Dom 0中安装的真实的物理显卡驱动,即为该虚拟机Dom 0中安装的GPU驱动。因此当该虚拟机Dom 0的GPU后端模块获取到虚拟机Dom U发送的待处理数据后,虚拟机Dom 0的GPU后端模块将该待处理数据发送到GPU驱动,通过调用GPU驱动接口将该待处理数据发送到物理显卡上进行计算。
经物理显卡计算获得计算结果后,该计算结果通过虚拟机Dom 0的GPU驱动被其GPU后端模块收集到后,将该计算结果写入XenBus共享内存中,虚拟机Dom U的前端模块读取该计算结果,并将该计算结果返回,从而完成GPGPU的计算任务。
另外,为了在实现GPGPU虚拟化的过程中,实现多台虚拟机Dom U可以同时使用物理显卡资源,在本发明实施例中当每台虚拟机Dom U启动时,虚拟机Dom 0可以在XenBus共享内存中为每台虚拟机Dom U都分配一块内存空间,使该虚拟机Dom U可以将接收到的待处理数据写入该内存空间,另外为了提高虚拟机Dom 0读取每台虚拟机Dom U写入到XenBus共享内存中的待处理数据的效率,在虚拟机Dom 0中可以针对每台虚拟机Dom U,在自身为其分配对应的子GPU后端模块,通过该子GPU后端模块实现与该虚拟机Dom U的交互。
具体的虚拟机Dom 0启动后,根据连接在XenBus共享内存中的虚拟机Dom U的数量,为每台虚拟机Dom U在XenBus共享内存中分配用于存储数据的地址段的信息。当虚拟机Dom 0针对每台虚拟机Dom U为其分配了XenBus共享内存中的地址段信息后,将该分配的地址段的信息通知给为该虚拟机Dom U分配的子GPU后端模块。当该虚拟机Dom U启动后,该虚拟机Dom U的GPU前端模块与虚拟机Dom 0的为其分配的子GPU后端模块连接,获得为其分配的XenBus共享内存中的地址段信息。因此当每台虚拟机Dom U启动后,即可获得自身被分配的XenBus共享内存中的地址段信息,从而便于后续的待处理数据的写入。
当虚拟机Dom U的GPU前端模块获取了自身被分配的XenBus共享内存中的地址段信息后,该GPU前端模块将待处理数据写入XenBus共享内存中自身被分配的地址段对应的存储空间中。对应该虚拟机Dom U的虚拟机Dom 0的子GPU后端模块根据该虚拟机Dom U被分配XenBus共享内存中的地址段信息,从XenBus共享内存的相应地址段对应的存储空间中读取该待处理数据。该子GPU后端模块在接收到物理显卡的计算结果后,将该计算结果写入该虚拟机Dom U在XenBus共享内存中被分配的地址段对应的存储空间中,虚拟机Dom U的GPU前端模块从自身被分配的XenBus共享内存中的地址段对应的存储空间中读取该计算结果,并提供给用户。
图3为本发明实施例提供的GPGPU虚拟化的过程中实现多台虚拟机同时使用物理显卡的过程,该过程包括以下步骤:
S301:虚拟机Dom U的GPU前端模块根据为自身分配的XenBus共享内存中的地址段的信息,将接收到的用户发送的待处理数据写入该地址段对应的存储空间中。
S302:虚拟机Dom 0中为虚拟机Dom U分配的子GPU后端模块,根据为该虚拟机Dom U分配的XenBus共享内存中的地址段的信息,从该地址段对应的存储空间中读取该虚拟机Dom U发送的待处理数据。
S303:虚拟机Dom 0调用自身的GPU驱动接口,将该子GPU后端模块读取的待处理数据发送到物理显卡上进行计算。
S304:虚拟机Dom 0的该子GPU后端模块通过GPU驱动接口收集计算后的结果,根据为该虚拟机Dom U分配的XenBus共享内存中的地址段的信息,将该计算后的结果写入该地址段对应的存储空间中。
S305:虚拟机Dom U的GPU前端模块根据自身被分配的XenBus共享内存中的地址段的信息,从对应地址段的存储空间中读取该计算后的结果,并将其发送给用户。
在本发明实施例中为了实现每台虚拟机Dom U在通过物理显卡进行自身的待处理数据的计算时,不会造成资源的冲突,提高物理显卡的利用率,虚拟机Dom 0还可以根据物理显卡的资源,为虚拟机Dom U分配相应的资源,以便每台虚拟机只能使用自身被分配范围内的资源,不会对其他虚拟机的正常工作造成影响。
由于每台虚拟机Dom U被分配了相应的资源配置量,该资源配置量包括GPU核数,显存等信息。因此当每台虚拟机Dom U接收到相应的待处理数据后,只有对该待处理数据进行处理的资源不大于自身被分配的资源配置量时,才进行后续计算。具体的所述第二虚拟机具体用于,接收到待处理数据后,判断对该待处理数据进行处理的资源是否不大于自身被分配的资源配置量,当对该待处理数据进行处理的资源不大于自身被分配的资源配置量时,将所述待处理数据写入Xen总线共享内存中。
图4为本发明实施例提供的GPGPU虚拟化的过程中虚拟机使用物理显卡进行计算的过程,该过程包括以下步骤:
S401:虚拟机Dom U接收用户发送的待处理数据。
S402:虚拟机Dom U的GPU前端模块判断对该待处理数据进行处理的资源是否不大于自身被分配的资源配置量,当判断结果为是时,进行步骤S403,否则,进行步骤S408。
S403:虚拟机Dom U的GPU前端模块根据为自身分配的XenBus共享内存中的地址段的信息,将接收到的用户发送的待处理数据写入该地址段对应的存储空间中。
S404:虚拟机Dom 0中为虚拟机Dom U分配的子GPU后端模块,根据为该虚拟机Dom U分配的XenBus共享内存中的地址段的信息,从该地址段对应的存储空间中读取该虚拟机Dom U发送的待处理数据。
S405:虚拟机Dom 0调用自身的GPU驱动接口,将该子GPU后端模块读取的待处理数据发送到物理显卡上进行计算。
S406:虚拟机Dom 0的该子GPU后端模块通过GPU驱动接口收集计算后的结果,根据为该虚拟机Dom U分配的XenBus共享内存中的地址段的信息,将该计算后的结果写入该地址段对应的存储空间中。
S407:虚拟机Dom U的GPU前端模块根据自身被分配的XenBus共享内存中的地址段的信息,从对应地址段的存储空间中读取该计算后的结果,并将其发送给用户。
S408:虚拟机Dom U向用户返回资源用完的提示信息。
在实现GPGPU虚拟化的过程中,可能会存在虚拟机Dom U和虚拟机Dom0的操作系统异构,例如虚拟机Dom U的操作系统为Windows操作系统,而虚拟机Dom 0的操作系统为Linux操作系统。为了实现在GPGPU虚拟化过程中,对相应待处理数据的计算,在本发明实施例中该虚拟机域0还用于,当所述虚拟机域U的操作系统与所述虚拟机域0的操作系统不同时,接收虚拟机域U通过Xen总线共享内存发送的GPU代码,其中所述GPU代码为所述虚拟机域U的用户使用编译器编译的,虚拟机域0采用编译器将所述GPU代码编译为二进制对象,将其进行函数名注册。
也就是说用户发送的待处理数据可能需要通过CPU进行计算,也可能需要通过GPU进行计算,具体的由于用户对相应的代码进行了编译,并且确定了相应的函数名,因此当用户是输入待处理数据时,在该待处理数据中可以包含对该待处理数据中包含的数据信息进行处理的函数名的信息。具体的当对该待处理数据中的数据信息需要通过CPU计算时,该虚拟机域U可以自身对该数据信息进行处理,当该待处理数据中的数据信息需要通过GPU计算时,该虚拟机域U需要将该待处理数据发送到虚拟机域0,通过物理显卡进行计算。
另外当虚拟机Dom 0和虚拟机Dom U的操作系统相同时,也是可以按照上述过程执行的。
具体的当虚拟机Dom U用户使用专用的编译器mynvcc编译GPGPU代码,当用户编译时,编译器mynvcc将用户源程序分解为CPU代码部分和GPU代码部分。当虚拟机Dom U获取到用户编译后的CPU代码和GPU代码时,通过自身的GPU前端模块将GPU代码写入XenBus共享内存。虚拟机Dom 0的对应子GPU后端模块读取到该GPU代码后,使用真实的编译器nvcc将GPU代码编译为二进制对象,并注册相应的函数名。
此时虚拟机Dom U自身对用户编译后的CPU代码进行处理,通过Mynvcc调用编译器cc对CPU代码进行编译,并注册相应的函数名。
当用户向该虚拟机Dom U输入待处理数据时,该待处理数据中包含函数名信息以及数据信息,虚拟机Dom U根据该待处理数据中包含的函数名信息,判断该待处理数据中的数据信息是否需要通过GPU计算。当判断该待处理数据中的数据信息需要通过GPU计算时,将该待处理数据写入自身被分配的XenBus共享内存中。
当虚拟机Dom 0读取到相应的待处理数据后,根据该待处理数据中包含的函数名信息,以及自身已注册的函数名信息,调用该函数名的函数,将调用的该函数及该待处理数据中的数据信息发送到物理显卡上进行计算。由于GPU函数是在虚拟机DomU中使用真实编译器nvcc进行的编译,所以即使虚拟机DomU的操作系统与虚拟机Dom0的操作系统异构,代码能仍运行。而这一切对于用户来说都是透明的。
图5为本发明实施例提供的GPGPU虚拟化的详细实现过程,该过程包括以下步骤:
S501:虚拟机域0启动后读取GPGPU资源配置参数,获得每台虚拟机域U被分配的资源配置量,为每台虚拟机域U在Xenbus分配相应的地址段空间,并为每个虚拟机域U分配对应的子GPU后端模块。
S502:将获得的所述资源配置量写入Xenbus共享内存,等待该虚拟机域U启动后获取该资源配置量。
S503:针对每台虚拟机域U,当虚拟机域U启动后其GPU前端模块与虚拟机域0的对应子GPU后端模块交互,获取自身被分配的Xenbus共享内存的地址段信息,从该对应的地址段内读取自身被分配的资源配置量。
在下述步骤之前,在虚拟机域U和虚拟机域0之间还要完成,虚拟机域U将用户编译后的GPU代码发送到虚拟机域0,虚拟机域0根据接收到的GPU代码进行编译并注册相应函数名,以及虚拟机域U将用户编译后的CPU代码进行编译后注册相应函数名。
S504:虚拟机域U根据接收到的待处理数据中包含的函数名信息,判断该待处理数据是否需要通过GPU计算,当判断结果为是时,进行步骤S505,否则,进行步骤S512。
S505:当该虚拟机域U的GPU前端接收到待处理数据后,判断对该待处理数据进行处理的资源是否不大于自身被分配的资源配置量,当判断结果为是时,进行步骤S506,否则,进行步骤S511。
S506:虚拟机Dom U的GPU前端模块根据为自身分配的XenBus共享内存中的地址段的信息,将接收到的用户发送的待处理数据写入该地址段对应的存储空间中。
S507:虚拟机Dom 0中为虚拟机Dom U分配的子GPU后端模块,根据为该虚拟机Dom U分配的XenBus共享内存中的地址段的信息,从该地址段对应的存储空间中读取该虚拟机Dom U发送的待处理数据。
S508:虚拟机Dom 0根据接收到的待处理数据中包含的函数名信息,以及自身已注册的函数名,调用相应函数名的函数,调用自身的GPU驱动接口,将调用的所述函数,及该待处理数据中包含的数据信息发送到物理显卡上进行计算。
S509:虚拟机Dom 0的该子GPU后端模块通过GPU驱动接口收集计算后的结果,根据为该虚拟机Dom U分配的XenBus共享内存中的地址段的信息,将该计算后的结果写入该地址段对应的存储空间中。
S510:虚拟机Dom U的GPU前端模块根据自身被分配的XenBus共享内存中的地址段的信息,从对应地址段的存储空间中读取该计算后的结果,并将其发送给用户。
S511:虚拟机Dom U向用户返回资源用完的提示信息。
S512:虚拟机Dom U根据所述待处理数据中包含的函数名信息,及本地以注册的函数名,调用该函数名的函数,通过调用的函数,对该待处理数据中包含的数据信息进行处理,并将处理结果返回用户。
结合图1所示的一种通用图形处理器虚拟化的实现系统的结构示意图,对本发明实施例中的系统进行详细描述,所述系统包括:
第一虚拟机11,用于读取总线共享内存中第二虚拟机发送的待处理数据,并调用自身的图形处理器GPU驱动接口,将该待处理数据发送到物理显卡上进行计算,以及收集所述物理显卡计算后的结果,并将该结果放入总线共享内存中待第二虚拟机读取;
总线共享内存12,用于存储第二虚拟机发送的待处理数据,及第一虚拟机发送的计算后的结果;
第二虚拟机13,用于向总线共享内存中写入待处理数据,及从所述总线共享内存中获取计算后的结果;
物理显卡14,用于对第一虚拟机发送的待处理数据进行处理。
所述第一虚拟机11还用于通过读取通用图形处理器资源配置参数获得第二虚拟机被分配的资源配置量,并将获得的所述资源配置量写入总线共享内存,以及等待第二虚拟机获得该资源配置量;
所述第二虚拟机13具体用于,获取总线共享内存中写入的其被分配的资源配置量,并根据其被分配的资源配置量向总线共享内存中写入待处理数据。
所述第二虚拟机13具体用于,在接收到待处理数据后,判断出对该待处理数据进行处理的资源不大于其被分配的资源配置量时,将所述待处理数据写入总线共享内存中。
所述第二虚拟机13具体用于根据自身被分配到的总线共享内存中的地址段的信息,将所述待处理数据写入该地址段对应的存储空间中。
所述第一虚拟机11具体用于根据第二虚拟机被分配到的总线共享内存中的地址段的信息,从该地址段对应的存储空间中读取第二虚拟机发送的待处理数据。
所述第一虚拟机11还用于,当所述第二虚拟机的操作系统与自身的操作系统不同时,接收第二虚拟机通过总线共享内存发送的GPU代码,采用编译器将所述GPU代码编译为二进制对象,并将其中的函数名进行注册,其中所述GPU代码为所述第二虚拟机的用户使用编译器编译的。
所述第二虚拟机13还用于,当所述用户使用编译器编译的代码中包括CPU代码时,调用自身的编译器,对所述CPU代码进行编译,并对其进行函数名注册。
所述第二虚拟机13还用于,根据所述待处理数据中包含的函数名信息,判断所述待处理数据是否需要通过GPU计算,当判断所述待处理数据需要通过GPU计算时,发送所述待处理数据。
所述第二虚拟机13还用于,当所述待处理数据需要通过CPU计算时,根据所述待处理数据中包含的函数名信息,及本地以注册的函数名,调用该函数名的函数,通过调用的函数,对该待处理数据中包含的数据信息进行处理。
所述第一虚拟机11还用于,根据读取的所述待处理数据中包含的函数名信息,及已注册的函数名,调用为所述虚拟机域U注册的该函数名的函数,将调用的所述函数,及所述待处理数据中包含的数据信息发送到所述物理显卡上进行计算。
图6为本发明实施例提供的一种通用图形处理器虚拟化的实现装置的结构示意图,所述装置包括:
图形处理器GPU后端模块61,用于读取总线共享内存中第二虚拟机发送的待处理数据,收集计算后的结果,将该结果放入总线共享内存中待第二虚拟机读取;
GPU驱动模块62,用于调用自身的图形处理器GPU驱动接口,将该待处理数据发送到物理显卡上进行计算。
所述GPU后端模块61还用于,启动后,读取通用图形处理器资源配置参数,获得该第二虚拟机被分配的资源配置量,将获得的所述资源配置量写入总线共享内存,等待该第二虚拟机启动后获得该资源配置量。
所述GPU后端模块61具体用于,根据为该第二虚拟机分配的总线共享内存中的地址段的信息,从该地址段对应的存储空间中读取该第二虚拟机发送的待处理数据。
所述GPU后端模块61还用于,当所述第二虚拟机的操作系统与所述第一虚拟机的操作系统不同时,接收第二虚拟机通过总线共享内存发送的GPU代码,采用编译器将所述GPU代码编译为二进制对象,并对其进行函数名注册,其中所述GPU代码为所述第二虚拟机的用户使用编译器编译的。
所述GPU后端模块61具体用于,根据读取的所述待处理数据中包含的函数名信息,及已注册的函数名,调用为所述第二虚拟机注册的该函数名的函数,将调用的所述函数,及所述待处理数据中包含的数据信息发送到所述物理显卡上进行计算。
图7为本发明实施例提供的一种通用图形处理器虚拟化的实现装置的结构示意图,所述装置包括:
图形处理器GPU前端发送模块71,用于将待处理数据写入总线共享内存;
图形处理器GPU前端接收模块72,用于读取总线共享内存中对该待处理数据的计算后的结果,其中该计算结果为第一虚拟机通过物理显卡计算并返回的。
所述GPU前端发送模块71具体用于,接收到待处理数据后,判断对该待处理数据进行处理的资源是否不大于自身被分配的资源配置量,当对该待处理数据进行处理的资源不大于自身被分配的资源配置量时,将所述待处理数据写入总线共享内存中。
所述GPU前端发送模块71具体用于,根据为自身分配的总线共享内存中的地址段的信息,将所述待处理数据写入该地址段对应的存储空间中。
所述GPU前端发送模块71具体用于,调用自身的编译器,对所述CPU代码进行编译,并对其进行函数名注册。
所述GPU前端发送模块71具体用于,根据所述待处理数据中包含的函数名信息,判断所述待处理数据是否需要通过GPU计算,当判断所述待处理数据需要通过GPU计算时,将所述待处理数据写入总线共享内存。
所述GPU前端发送模块71还用于,根据所述待处理数据中包含的函数名信息,及本地以注册的函数名,调用该函数名的函数,通过调用的函数,对该待处理数据中包含的数据信息进行处理。
本发明实施例提供了一种GPGPU虚拟化的实现方法、系统及装置,该方法中,第一虚拟机读取总线共享内存中第二虚拟机写入的待处理数据,自身调用GPU驱动接口,将该待处理数据发送到物理显卡上进行计算,收集计算后的结果,将该结果放入总线共享内存中待第二虚拟机读取。由于第一虚拟机可以实现访问物理显卡,并与第二虚拟机进行信息交互,因此实现了GPGPU的虚拟化。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (32)

1.一种通用图形处理器虚拟化的实现系统,其特征在于,所述系统包括:
第一虚拟机,用于读取总线共享内存中第二虚拟机发送的待处理数据,并调用自身的图形处理器GPU驱动接口,将该待处理数据发送到物理显卡上进行计算,以及收集所述物理显卡计算后的结果,并将该结果放入总线共享内存中待第二虚拟机读取;
总线共享内存,用于存储第二虚拟机发送的待处理数据,及第一虚拟机发送的计算后的结果;
第二虚拟机,用于向总线共享内存中写入待处理数据,及从所述总线共享内存中获取计算后的结果;
物理显卡,用于对第一虚拟机发送的待处理数据进行处理。
2.如权利要求1所述的系统,其特征在于,所述第一虚拟机还用于通过读取通用图形处理器资源配置参数获得第二虚拟机被分配的资源配置量,并将获得的所述资源配置量写入总线共享内存,以及等待第二虚拟机获得该资源配置量;
所述第二虚拟机具体用于,获取总线共享内存中写入的其被分配的资源配置量,并根据其被分配的资源配置量向总线共享内存中写入待处理数据。
3.如权利要求2所述的系统,其特征在于,所述第二虚拟机具体用于,在接收到待处理数据后,判断出对该待处理数据进行处理的资源不大于其被分配的资源配置量时,将所述待处理数据写入总线共享内存中。
4.如权利要求1或3所述的系统,其特征在于,所述第二虚拟机具体用于根据自身被分配到的总线共享内存中的地址段的信息,将所述待处理数据写入该地址段对应的存储空间中。
5.如权利要求4所述的系统,其特征在于,所述第一虚拟机具体用于根据第二虚拟机被分配到的总线共享内存中的地址段的信息,从该地址段对应的存储空间中读取第二虚拟机发送的待处理数据。
6.如权利要求1所述的系统,其特征在于,所述第一虚拟机还用于,当所述第二虚拟机的操作系统与自身的操作系统不同时,接收第二虚拟机通过总线共享内存发送的GPU代码,采用编译器将所述GPU代码编译为二进制对象,并将其中的函数名进行注册,其中所述GPU代码为所述第二虚拟机的用户使用编译器编译的。
7.如权利要求6所述的系统,其特征在于,所述第二虚拟机还用于,当所述用户使用编译器编译的代码中包括CPU代码时,调用自身的编译器,对所述CPU代码进行编译,并对其进行函数名注册。
8.如权利要求7所述的系统,其特征在于,所述第二虚拟机还用于,根据所述待处理数据中包含的函数名信息,判断所述待处理数据是否需要通过GPU计算,当判断所述待处理数据需要通过GPU计算时,发送所述待处理数据。
9.如权利要求8所述的系统,其特征在于,所述第二虚拟机还用于,当所述待处理数据需要通过中央处理器CPU计算时,根据所述待处理数据中包含的函数名信息,及本地以注册的函数名,调用该函数名的函数,通过调用的函数,对该待处理数据中包含的数据信息进行处理。
10.如权利要求6所述的系统,其特征在于,所述第一虚拟机还用于,根据读取的所述待处理数据中包含的函数名信息,及已注册的函数名,调用为所述第二虚拟机注册的该函数名的函数,将调用的所述函数,及所述待处理数据中包含的数据信息发送到所述物理显卡上进行计算。
11.一种通用图形处理器虚拟化的实现方法,其特征在于,包括:
第一虚拟机读取总线共享内存中第二虚拟机发送的待处理数据;
调用自身的图形处理器GPU驱动接口,将该待处理数据发送到物理显卡上进行计算;
收集计算后的结果,将该结果放入总线共享内存中待第二虚拟机读取。
12.如权利要求11所述的方法,其特征在于,第一虚拟机读取总线共享内存中第二虚拟机发送的待处理数据之前,所述方法还包括:
第一虚拟机启动后,读取通用图形处理器资源配置参数,获得该第二虚拟机被分配的资源配置量;
将获得的所述资源配置量写入总线共享内存,等待该第二虚拟机启动后获得该资源配置量。
13.如权利要求11所述的方法,其特征在于,第一虚拟机读取总线共享内存中第二虚拟机发送的待处理数据包括:
第一虚拟机根据为该第二虚拟机分配的总线共享内存中的地址段的信息,从该地址段对应的存储空间中读取该第二虚拟机发送的待处理数据。
14.如权利要求11所述的方法,其特征在于,当所述第二虚拟机的操作系统与所述第一虚拟机的操作系统不同时,所述第一虚拟机读取总线共享内存中第二虚拟机发送的待处理数据之前,所述方法还包括:
第一虚拟机接收第二虚拟机通过总线共享内存发送的GPU代码,其中所述GPU代码为所述第二虚拟机的用户使用编译器编译的;
第一虚拟机采用编译器将所述GPU代码编译为二进制对象,并对其进行函数名注册。
15.如权利要求14所述的方法,其特征在于,所述将该待处理数据发送到物理显卡上进行计算包括:
根据读取的所述待处理数据中包含的函数名信息,及已注册的函数名,调用为所述第二虚拟机注册的该函数名的函数;
将调用的所述函数,及所述待处理数据中包含的数据信息发送到所述物理显卡上进行计算。
16.一种通用图形处理器虚拟化的实现装置,其特征在于,所述装置包括:
图形处理器GPU后端模块,用于读取总线共享内存中第二虚拟机发送的待处理数据,收集计算后的结果,将该结果放入总线共享内存中待第二虚拟机读取;
GPU驱动模块,用于调用自身的图形处理器GPU驱动接口,将该待处理数据发送到物理显卡上进行计算。
17.如权利要求16所述的装置,其特征在于,所述GPU后端模块还用于,启动后,读取通用图形处理器资源配置参数,获得该第二虚拟机被分配的资源配置量,将获得的所述资源配置量写入总线共享内存,等待该第二虚拟机启动后获得该资源配置量。
18.如权利要求16所述的装置,其特征在于,所述GPU后端模块具体用于,根据为该第二虚拟机分配的总线共享内存中的地址段的信息,从该地址段对应的存储空间中读取该第二虚拟机发送的待处理数据。
19.如权利要求16所述的装置,其特征在于,所述GPU后端模块还用于,当所述第二虚拟机的操作系统与所述第一虚拟机的操作系统不同时,接收第二虚拟机通过总线共享内存发送的GPU代码,采用编译器将所述GPU代码编译为二进制对象,并对其进行函数名注册,其中所述GPU代码为所述第二虚拟机的用户使用编译器编译的。
20.如权利要求19所述的装置,其特征在于,所述GPU后端模块具体用于,根据读取的所述待处理数据中包含的函数名信息,及已注册的函数名,调用为所述第二虚拟机注册的该函数名的函数,将调用的所述函数,及所述待处理数据中包含的数据信息发送到所述物理显卡上进行计算。
21.一种通用图形处理器虚拟化的实现方法,其特征在于,所述方法包括:
第二虚拟机将待处理数据写入总线共享内存;
读取总线共享内存中对该待处理数据的计算后的结果,其中该计算结果为第一虚拟机通过物理显卡计算并返回的。
22.如权利要求21所述的方法,其特征在于,所述第二虚拟机将待处理数据写入总线共享内存包括:
所述第二虚拟机接收到待处理数据后,判断对该待处理数据进行处理的资源是否不大于自身被分配的资源配置量;
当对该待处理数据进行处理的资源不大于自身被分配的资源配置量时,将所述待处理数据写入总线共享内存中。
23.如权利要求21或22所述的方法,其特征在于,所述第二虚拟机将待处理数据写入总线共享内存包括:
所述第二虚拟机根据为自身分配的总线共享内存中的地址段的信息,将所述待处理数据写入该地址段对应的存储空间中。
24.如权利要求21所述的方法,其特征在于,当所述第二虚拟机的用户使用编译器编译的代码中包括CPU代码时,所述方法还包括:
所述第二虚拟机调用自身的编译器,对所述CPU代码进行编译,并对其进行函数名注册。
25.如权利要求24所述的方法,其特征在于,第二虚拟机将待处理数据写入总线共享内存包括:
所述第二虚拟机根据所述待处理数据中包含的函数名信息,判断所述待处理数据是否需要通过GPU计算;
当判断所述待处理数据需要通过GPU计算时,将所述待处理数据写入总线共享内存。
26.如权利要求25所述的方法,其特征在于,当所述待处理数据需要通过CPU计算时,所述方法还包括:
所述第二虚拟机根据所述待处理数据中包含的函数名信息,及本地以注册的函数名,调用该函数名的函数;
通过调用的函数,对该待处理数据中包含的数据信息进行处理。
27.一种通用图形处理器虚拟化的实现装置,其特征在于,所述装置包括:
图形处理器GPU前端发送模块,用于将待处理数据写入总线共享内存;
图形处理器GPU前端接收模块,用于读取总线共享内存中对该待处理数据的计算后的结果,其中该计算结果为第一虚拟机通过物理显卡计算并返回的。
28.如权利要求27所述的装置,其特征在于,所述GPU前端发送模块具体用于,接收到待处理数据后,判断对该待处理数据进行处理的资源是否不大于自身被分配的资源配置量,当对该待处理数据进行处理的资源不大于自身被分配的资源配置量时,将所述待处理数据写入总线共享内存中。
29.如权利要求27或28所述的装置,其特征在于,所述GPU前端发送模块具体用于,根据为自身分配的总线共享内存中的地址段的信息,将所述待处理数据写入该地址段对应的存储空间中。
30.如权利要求27所述的装置,其特征在于,所述GPU前端发送模块具体用于,调用自身的编译器,对所述CPU代码进行编译,并对其进行函数名注册。
31.如权利要求30所述的装置,其特征在于,所述GPU前端发送模块具体用于,根据所述待处理数据中包含的函数名信息,判断所述待处理数据是否需要通过GPU计算,当判断所述待处理数据需要通过GPU计算时,将所述待处理数据写入总线共享内存。
32.如权利要求31所述的装置,其特征在于,所述GPU前端发送模块还用于,根据所述待处理数据中包含的函数名信息,及本地以注册的函数名,调用该函数名的函数,通过调用的函数,对该待处理数据中包含的数据信息进行处理。
CN201010612078.0A 2010-12-29 2010-12-29 一种通用图形处理器虚拟化的实现方法、系统及装置 Expired - Fee Related CN102541618B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010612078.0A CN102541618B (zh) 2010-12-29 2010-12-29 一种通用图形处理器虚拟化的实现方法、系统及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010612078.0A CN102541618B (zh) 2010-12-29 2010-12-29 一种通用图形处理器虚拟化的实现方法、系统及装置

Publications (2)

Publication Number Publication Date
CN102541618A true CN102541618A (zh) 2012-07-04
CN102541618B CN102541618B (zh) 2015-05-27

Family

ID=46348585

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010612078.0A Expired - Fee Related CN102541618B (zh) 2010-12-29 2010-12-29 一种通用图形处理器虚拟化的实现方法、系统及装置

Country Status (1)

Country Link
CN (1) CN102541618B (zh)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103309748A (zh) * 2013-06-19 2013-09-18 上海交通大学 云游戏中的gpu虚拟资源自适应调度宿主机系统和调度方法
CN103631634A (zh) * 2012-08-24 2014-03-12 中国电信股份有限公司 实现图形处理器虚拟化的方法与装置
CN104737129A (zh) * 2012-08-23 2015-06-24 思杰系统有限公司 用于对来宾虚拟机的硬件资源进行虚拟化的专用虚拟机
CN104754464A (zh) * 2013-12-31 2015-07-01 华为技术有限公司 一种音频播放方法、终端及系统
WO2015196409A1 (en) * 2014-06-26 2015-12-30 Intel Corporation Intelligent gpu scheduling in a virtualization environment
CN105740036A (zh) * 2014-12-29 2016-07-06 辉达公司 用于支持代码的编译时间定制的编译器的系统和方法
CN106775940A (zh) * 2016-12-06 2017-05-31 郑州云海信息技术有限公司 一种图形处理系统及虚拟化方法
CN107003892A (zh) * 2016-12-29 2017-08-01 深圳前海达闼云端智能科技有限公司 Gpu虚拟化方法、装置、系统及电子设备、计算机程序产品
CN107077375A (zh) * 2016-12-27 2017-08-18 深圳前海达闼云端智能科技有限公司 用于多操作系统的显示方法、装置和电子设备
CN107491354A (zh) * 2017-07-03 2017-12-19 北京东土科技股份有限公司 一种基于共享内存的虚拟机间通信方法及装置
CN107741863A (zh) * 2017-10-08 2018-02-27 深圳市星策网络科技有限公司 一种显卡的驱动方法和装置
CN108073440A (zh) * 2016-11-18 2018-05-25 中兴通讯股份有限公司 一种虚拟化环境下的显卡管理方法、装置及系统
CN108804199A (zh) * 2017-05-05 2018-11-13 龙芯中科技术有限公司 图形处理器虚拟化方法及装置
CN109656714A (zh) * 2018-12-04 2019-04-19 成都雨云科技有限公司 一种虚拟化显卡的gpu资源调度方法
US10970129B2 (en) 2015-09-22 2021-04-06 Intel Corporation Intelligent GPU scheduling in a virtualization environment
CN113821309A (zh) * 2021-11-16 2021-12-21 科东(广州)软件科技有限公司 一种微内核虚拟机间的通信方法、装置、设备及存储介质
CN114461287A (zh) * 2022-01-29 2022-05-10 亿咖通(湖北)技术有限公司 操作系统启动方法、装置、电子设备和存储介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018119952A1 (zh) * 2016-12-29 2018-07-05 深圳前海达闼云端智能科技有限公司 一种设备虚拟化方法、装置、系统及电子设备、计算机程序产品

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101211270A (zh) * 2006-12-31 2008-07-02 联想(北京)有限公司 显卡、应用该显卡的虚拟机系统及显示处理方法
CN101419558A (zh) * 2008-11-13 2009-04-29 湖南大学 Cuda图形子系统虚拟化方法
CN101847105A (zh) * 2009-03-26 2010-09-29 联想(北京)有限公司 一种计算机及多操作系统共享内存的方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101211270A (zh) * 2006-12-31 2008-07-02 联想(北京)有限公司 显卡、应用该显卡的虚拟机系统及显示处理方法
CN101419558A (zh) * 2008-11-13 2009-04-29 湖南大学 Cuda图形子系统虚拟化方法
CN101847105A (zh) * 2009-03-26 2010-09-29 联想(北京)有限公司 一种计算机及多操作系统共享内存的方法

Cited By (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104737129B (zh) * 2012-08-23 2018-04-27 思杰系统有限公司 用于对来宾虚拟机的硬件资源进行虚拟化的专用虚拟机
CN104737129A (zh) * 2012-08-23 2015-06-24 思杰系统有限公司 用于对来宾虚拟机的硬件资源进行虚拟化的专用虚拟机
CN103631634A (zh) * 2012-08-24 2014-03-12 中国电信股份有限公司 实现图形处理器虚拟化的方法与装置
CN103631634B (zh) * 2012-08-24 2017-07-25 中国电信股份有限公司 实现图形处理器虚拟化的方法与装置
CN103309748B (zh) * 2013-06-19 2015-04-29 上海交通大学 云游戏中的gpu虚拟资源自适应调度宿主机系统和调度方法
CN103309748A (zh) * 2013-06-19 2013-09-18 上海交通大学 云游戏中的gpu虚拟资源自适应调度宿主机系统和调度方法
CN104754464A (zh) * 2013-12-31 2015-07-01 华为技术有限公司 一种音频播放方法、终端及系统
WO2015196409A1 (en) * 2014-06-26 2015-12-30 Intel Corporation Intelligent gpu scheduling in a virtualization environment
US10133597B2 (en) 2014-06-26 2018-11-20 Intel Corporation Intelligent GPU scheduling in a virtualization environment
CN105740036A (zh) * 2014-12-29 2016-07-06 辉达公司 用于支持代码的编译时间定制的编译器的系统和方法
CN105740036B (zh) * 2014-12-29 2019-04-23 辉达公司 用于支持代码的编译时间定制的编译器的系统和方法
US10241761B2 (en) 2014-12-29 2019-03-26 Nvidia Corporation System and method for compiler support for compile time customization of code
US10970129B2 (en) 2015-09-22 2021-04-06 Intel Corporation Intelligent GPU scheduling in a virtualization environment
CN108073440B (zh) * 2016-11-18 2023-07-07 南京中兴新软件有限责任公司 一种虚拟化环境下的显卡管理方法、装置及系统
CN108073440A (zh) * 2016-11-18 2018-05-25 中兴通讯股份有限公司 一种虚拟化环境下的显卡管理方法、装置及系统
CN106775940A (zh) * 2016-12-06 2017-05-31 郑州云海信息技术有限公司 一种图形处理系统及虚拟化方法
US11204790B2 (en) 2016-12-27 2021-12-21 Cloudminds (Shenzhen) Robotics Systems Co., Ltd. Display method for use in multi-operating systems and electronic device
CN107077375B (zh) * 2016-12-27 2020-08-04 深圳前海达闼云端智能科技有限公司 用于多操作系统的显示方法、装置和电子设备
CN107077375A (zh) * 2016-12-27 2017-08-18 深圳前海达闼云端智能科技有限公司 用于多操作系统的显示方法、装置和电子设备
WO2018119951A1 (zh) * 2016-12-29 2018-07-05 深圳前海达闼云端智能科技有限公司 Gpu虚拟化方法、装置、系统及电子设备、计算机程序产品
CN107003892A (zh) * 2016-12-29 2017-08-01 深圳前海达闼云端智能科技有限公司 Gpu虚拟化方法、装置、系统及电子设备、计算机程序产品
CN108804199A (zh) * 2017-05-05 2018-11-13 龙芯中科技术有限公司 图形处理器虚拟化方法及装置
CN108804199B (zh) * 2017-05-05 2021-03-05 龙芯中科技术股份有限公司 图形处理器虚拟化方法及装置
CN107491354A (zh) * 2017-07-03 2017-12-19 北京东土科技股份有限公司 一种基于共享内存的虚拟机间通信方法及装置
CN107491354B (zh) * 2017-07-03 2020-01-21 北京东土科技股份有限公司 一种基于共享内存的虚拟机间通信方法及装置
CN107741863A (zh) * 2017-10-08 2018-02-27 深圳市星策网络科技有限公司 一种显卡的驱动方法和装置
CN109656714A (zh) * 2018-12-04 2019-04-19 成都雨云科技有限公司 一种虚拟化显卡的gpu资源调度方法
CN113821309A (zh) * 2021-11-16 2021-12-21 科东(广州)软件科技有限公司 一种微内核虚拟机间的通信方法、装置、设备及存储介质
CN114461287A (zh) * 2022-01-29 2022-05-10 亿咖通(湖北)技术有限公司 操作系统启动方法、装置、电子设备和存储介质
CN114461287B (zh) * 2022-01-29 2024-01-30 亿咖通(湖北)技术有限公司 操作系统启动方法、装置、电子设备和存储介质

Also Published As

Publication number Publication date
CN102541618B (zh) 2015-05-27

Similar Documents

Publication Publication Date Title
CN102541618B (zh) 一种通用图形处理器虚拟化的实现方法、系统及装置
US8966477B2 (en) Combined virtual graphics device
US9733963B2 (en) Optimizing virtual graphics processing unit utilization
KR101091224B1 (ko) 이종 처리 유닛을 위한 중앙집중형 디바이스 가상화 계층
CN100570562C (zh) 显卡、应用该显卡的虚拟机系统及显示处理方法
US10698731B1 (en) Systems and methods for executing parallel computations for virtual machines
JP6027021B2 (ja) アジャイル通信演算子
CN103064796B (zh) 虚拟机内存的共享方法与计算机系统
US11157302B2 (en) Idle processor management in virtualized systems via paravirtualization
KR20070100367A (ko) 하나의 가상 머신에서 다른 가상 머신으로 메모리를동적으로 재할당하기 위한 방법, 장치 및 시스템
CN101819538A (zh) 管理执行在虚拟机中的操作系统的请求
WO2016041118A1 (en) Memory management in virtualized computing
JP5951145B2 (ja) オペレーティングシステムリカバリー方法、装置、及び端末デバイス
EP2688037A1 (en) Method and apparatus for data processing using graphic processing unit
KR101900436B1 (ko) 결합된 cpu/gpu 아키텍처 시스템에서의 디바이스의 발견 및 토폴로지 보고
CN103885902A (zh) 用于经由纹理硬件实施存储器访问操作的技术
EP2466459A1 (en) Seamless application integration apparatus and method
Montella et al. A general-purpose virtualization service for HPC on cloud computing: an application to GPUs
CN103885903A (zh) 用于经由纹理硬件实施存储器访问操作的技术
CN114048005A (zh) 一种gpu虚拟化方法及装置
US20140237017A1 (en) Extending distributed computing systems to legacy programs
TW201235938A (en) Enabling virtual calls in a SIMD environment
Liang et al. A distributed PTX virtual machine on hybrid CPU/GPU clusters
CN104008014A (zh) 多核心处理器及其相关控制方法与电脑系统
CN104067266A (zh) 带有对所有权的请求且没有数据的预取

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150527