CN116578416A - 一种基于gpu虚拟化的信号级仿真加速方法 - Google Patents
一种基于gpu虚拟化的信号级仿真加速方法 Download PDFInfo
- Publication number
- CN116578416A CN116578416A CN202310468664.XA CN202310468664A CN116578416A CN 116578416 A CN116578416 A CN 116578416A CN 202310468664 A CN202310468664 A CN 202310468664A CN 116578416 A CN116578416 A CN 116578416A
- Authority
- CN
- China
- Prior art keywords
- gpu
- library
- vcuda
- simulation
- simulation task
- 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
Links
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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本说明书公开了一种基于GPU虚拟化的信号级仿真加速方法,涉及模拟数字交互仿真技术领域,方法包括确定物理GPU,将上述物理GPU划分为若干虚拟GPU;基于仿真任务,从上述若干虚拟GPU中选择目标虚拟GPU;当执行上述仿真任务到读写GPU显存时,将上述仿真任务请求重定向至VCUDA库,上述VCUDA库内包括若干CUDA函数的重名函数,上述重名函数的返回值基于上述目标虚拟GPU的信息确定;基于上述VCUDA库和上述目标虚拟GPU,获得上述仿真任务的响应结果,以解决目前传统的雷达系统全数字信号级仿真平台计算资源无法共享导致运算效率低的问题。
Description
技术领域
本发明属于模拟数字交互仿真技术领域,具体涉及一种基于GPU虚拟化的信号级仿真加速方法。
背景技术
随着电磁环境向信息化、智能化和通用化方向发展,新型干扰设备越来越复杂,对雷达系统试验鉴定和评估能力提出了更高的要求。为对雷达系统性能指标进行充分地考核和评定,全数字仿真试验愈加受到重视。全数字仿真试验具有试验子样多、过程可重复、场景易构设、强度可控制、试验效率高等特点,相比内场半实物仿真试验,在环境构设难度、场景构建全要素、重复试验次数上具有很大的优势。为能够检验雷达系统在复杂电磁环境下的作用效能,往往要求针对性的开展大批量的仿真试验,多种装备、细粒度的雷达系统的信号级仿真试验的数据量大、运算量复杂,对全数字仿真平台的高效性和实时性提出了更高的要求。一方面需要对仿真试验涉及到的信号级仿真模型具备较高的实时性,另一方满对平台调度提出了要求。
如果采用常规通用CPU计算的方式,则普通硬件平台无法满足仿真效率要求。如果采用专用仿真机或者超级计算机,则无法承受硬件成本和运算成本。如何充分利用已有的计算资源,成为当前全数字仿真试验的重点关注内容。随着计算机技术的发展,基于GPU对信号级仿真模型进行加速的技术逐渐成为有效的技术途径。基于GPU虚拟化的方法则是通过对仿真模型进行更高效的调度,从而实现对仿真试验进行加速的平台级技术。
当前GPU虚拟化可以分为两种类型,虚拟机层面的虚拟化和容器层面的虚拟化。虚拟机层面的虚拟化是将GPU硬件设备虚拟给多个KVM虚拟机使用,各个虚拟机独立安装驱动,这样既保证了虚拟机内的GPU功能完备又实现GPU资源的隔离和共享,唯一缺点就是资源损耗相对较大。而传统容器层面的虚拟化则是将GPU纳入Cgroup管理,业界目前尚未有成熟的解决方案。因此,目前传统的雷达系统全数字信号级仿真平台计算资源无法共享导致运算效率低的问题。
发明内容
本发明的目的是提供一种基于GPU虚拟化的信号级仿真加速方法,以解决目前传统的雷达系统全数字信号级仿真平台计算资源无法共享导致运算效率低的问题。
为实现上述目的,本发明采用如下技术方案:
一方面,本说明书提供一种基于GPU虚拟化的信号级仿真加速方法,包括:
步骤102,确定物理GPU,将上述物理GPU划分为若干虚拟GPU;
步骤104,基于仿真任务,从上述若干虚拟GPU中选择目标虚拟GPU;
步骤106,当执行上述仿真任务到读写GPU显存时,将上述仿真任务请求重定向至VCUDA库,上述VCUDA库内包括若干CUDA函数的重名函数,上述重名函数的返回值基于上述目标虚拟GPU的信息确定;
步骤108,基于上述VCUDA库和上述目标虚拟GPU,获得上述仿真任务的响应结果。
另一方面,本说明书提供一种基于GPU虚拟化的信号级仿真加速装置,包括:
GPU虚拟模块,用于确定物理GPU,将上述物理GPU划分为若干虚拟GPU;
GPU选择模块,用于基于仿真任务,选择目标虚拟GPU;
请求重定向模块,用于当执行上述仿真任务到读写GPU显存时,将上述仿真任务请求重定向至VCUDA库,上述VCUDA库内包括若干CUDA函数的重名函数,上述重名函数的返回值基于上述目标虚拟GPU的信息确定;
函数调用模块,用于基于上述VCUDA库和上述目标虚拟GPU,获得上述仿真任务的响应结果。
基于上述技术方案,本说明书能够获得如下技术效果:
本方法通过虚拟化技术将物理GPU虚拟化为若干虚拟GPU,然后基于仿真任务选择最合适的目标虚拟GPU,当执行上述仿真任务到读写GPU显存时,将仿真任务的请求重定向至VCUDA库,不,再次更新应用的资源请求配置信息,基于限制后的GPU资源使用量,运行容器应用,达到多个容器应用在无感知情况下同时使用GPU资源的目的,最后基于上述VCUDA库和上述目标虚拟GPU,获得上述仿真任务的响应结果,可使云计算平台成为一个虚拟化GPU资源可用复用、可进行并行计算任务分发、调度可行有效率的计算平台,以解决目前传统的雷达系统全数字信号级仿真平台计算资源无法共享导致运算效率低的问题。
附图说明
图1是本发明一实施例中一种基于GPU虚拟化的信号级仿真加速方法的流程示意图。
图2是本发明一实施例中一种基于GPU虚拟化的信号级仿真加速方法的流程示意图。
图3是本发明一实施例中一种基于GPU虚拟化的信号级仿真加速方法的流程示意图。
图4是本发明一实施例中信号级仿真平台GPU虚拟化流程的示意图。
图5是本发明一实施例中一种基于GPU虚拟化的信号级仿真加速装置的结构示意图。
图6是本发明一实施例中一种电子设备的结构示意图。
具体实施方式
以下结合附图和具体实施例对本发明作进一步详细说明,根据下面说明和权利要求书,本发明的优点和特征将更清楚。需要说明的是,附图均采用非常简化的形式且均适用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。
需要说明的是,为了清楚地说明本发明的内容,本发明特举多个实施例以进一步阐释本发明的不同实现方式,其中,该多个实施例是列举式而非穷举式。此外,为了说明的简洁,前实施例中已提及的内容往往在后实施例中予以省略,因此,后实施例中未提及的内容可相应参考前实施例。
实施例1
请参照图1,图1所示为本实施例提供的一种基于GPU虚拟化的信号级仿真加速方法。
本实施例中,该方法包括:
步骤102,确定物理GPU,将上述物理GPU划分为若干虚拟GPU;
本实施例中,上述确定物理GPU的方式为确定GPU库的文件路径,获取GPU设备的内存和计算资源信息;上述将上述物理GPU划分为若干个虚拟GPU的方式为将物理GPU虚拟化为若干个逻辑GPU。
本实施例中,上述内存以若干兆为一个单元,上述计算资源信息按照预设比例虚拟化为若干个计算单元。
具体地,GPU管理模块虚拟化物理GPU,将物理GPU虚拟化为多个逻辑GPU,确定物理GPU,即确定GPU库的文件路径,感知到GPU设备的内存以及计算资源信息,并将物理GPU划分为多个逻辑GPU。其中内存以若干M(兆)为一个单元,计算资源按照百分比虚拟化为多个计算单元,建立起虚拟设备到物理设备的映射。
本实施例中,步骤102之前还包括:
封装CUDA库,获得VCUDA库,上述,VCUDA库是一个对NVIDIA-ml和libcuda库的封装库
本实施例中,步骤102之后还包括:
基于仿真模型容器的GPU资源参数验证上述仿真模型容器的GPU资源请求的合理性并存储上述GPU资源参数。
具体地,当创建一个仿真模型容器时,填写GPU资源参数如(GPU使用大小),调度模块接受到GPU资源请求,并验证GPU资源请求的合理性(如GPU资源申请限制等),然后在管理节点保存相关资源申请信息。
步骤104,基于仿真任务,从上述若干虚拟GPU中选择目标虚拟GPU;
本实施例中,步骤104的一种实现方式为:
步骤202,基于仿真任务,获得对应的GPU资源请求;
步骤204,基于上述GPU资源请求和分配原则,在上述若干虚拟GPU中筛选出目标虚拟GPU;
步骤206,添加上述仿真模型容器的参数和上述目标虚拟GPU对应的设备接口参数。
具体地,调度模块调用GPU管理模块请求GPU资源,GPU管理模块调度GPU调度模块分配资源,GPU调度模块当接受到GPU资源请求时根据请求资源的具体情况(少于一块GPU、等于一块GPU、大于一块GPU)分别按照最小化树的资源碎片、单叶子节点数量最少、最小化GPU间通信成本的原则筛选出拥有足够GPU资源,且最合适的工作节点,添加容器的相关启动参数以及对应工作节点的设备接口模块参数,返回GPU资源请求结果信息。
步骤106,当执行上述仿真任务到读写GPU显存时,将上述仿真任务请求重定向至VCUDA库,上述VCUDA库内包括若干CUDA函数的重名函数,上述重名函数的返回值基于上述目标虚拟GPU的信息确定;
本实施例中,步骤106的一种实现方式为:
步骤302,当执行仿真任务请求到读写GPU显存时,为上述仿真模型容器添加上述VCUDA库的映射;
步骤304,基于上述VCUDA库的目标环境变量,将上述仿真任务对CUDA的函数调用重定向到上述VCUDA库中。
本实施例中,步骤304的这一种实现方式为:
设置目标环境变量为上述VCUDA库的文件路径;
基于工作节点的GPU资源信息和上述目标虚拟GPU的资源信息,判断上述目标虚拟GPU的资源信息是否充足,若是,则进行GPU资源分配,若否,则将上述工作节点排列进入队列中;
将分配后的GPU资源信息和上述VCUDA库映射到上述仿真模型容器的应用驱动库。
具体地,仿真模型容器在启动过程中,接收到工作节点返回GPU分配成功的消息后,都会先通过加载模块来加载封装库。通过LD_PRELOAD这个目标环境变量,来将对CUDA的函数调用重定向到劫持库中。例如,调度模块接受到GPU管理模块的资源请求结果响应,调用容器运行时(例如Docker,运行容器的软件模块)运行容器,并为容器添加封装库(劫持库)的映射。上述封装库主要是封装、重写CUDA库中的相关API。劫持后的CUDA-API将显存粒度划分,以若干M(兆)为一个单位,进行显存分配,限制显存使用,再次更新应用的资源请求配置信息,基于限制后的GPU资源使用量,运行容器应用,达到多个进程/容器应用在无感知情况下同时使用GPU资源的目的。并设置LD_PRELOAD环境变量设置为CUDA劫持库的文件路径。然后调度模块基于工作节点的GPU设备信息更新应用资源请求信息,并向物理层(GPU)继续传递请求信息。硬件设备接口模块接收到相关资源请求信息,比较资源请求信息和现有资源信息,若现有资源满足资源请求配置信息,则按照步骤三上述真正分配GPU资源,并返回具体GPU分配信息给工作节点模块,并经由工作节点模块传递到调度模块进行同步,若不满足,则进入队列,轮询等待资源充足时进行分配。硬件设备接口模块传递GPU的分配信息以及GPU的CUDA库,映射到上层的容器应用驱动库。
步骤108,基于上述VCUDA库和上述目标虚拟GPU,获得上述仿真任务的响应结果。
本实施例中,步骤108的一种实现方式为:
基于仿真任务,在上述VCUDA库中查找请求调用的目标函数;
基于目标虚拟GPU执行上述目标函数,获得响应结果。
具体地,在劫持库中查找请求调用的目标函数,并携带虚拟GPU信息调用该函数,然后该函数在虚拟GPU上读写数据,基于目标虚拟GPU信息执行目标函数得到调用请求的响应结果。
本实施例中,多个仿真服务同时进行仿真的流程包括:仿真应用服务正常运行,容器服务开始进行资源处理,劫持CUDA调用请求,线程创建(限制CUDA核心数)、显卡内存限制(限制内存使用)、资源上限配置文件写入(写入到vcuda.config),服务正常运行。启动多个仿真模型服务,根据仿真模型的GPU需求设置不同的GPU资源参数,分配到适配的虚拟GPU资源,达到同时开始多个仿真任务的目的。
综上,本方法通过虚拟化技术将物理GPU虚拟化为若干虚拟GPU,然后基于仿真任务选择最合适的目标虚拟GPU,当执行上述仿真任务到读写GPU显存时,将仿真任务的请求重定向至VCUDA库,不,再次更新应用的资源请求配置信息,基于限制后的GPU资源使用量,运行容器应用,达到多个容器应用在无感知情况下同时使用GPU资源的目的,最后基于上述VCUDA库和上述目标虚拟GPU,获得上述仿真任务的响应结果,可使云计算平台成为一个虚拟化GPU资源可用复用、可进行并行计算任务分发、调度可行有效率的计算平台,以解决目前传统的雷达系统全数字信号级仿真平台计算资源无法共享导致运算效率低的问题。
实施例2
请参照图4,图4所示为本实施例提供的信号级仿真平台GPU虚拟化流程。
主机节点向调度模块发出仿真任务请求,然后调度模块向GPU管理模块发出请求GPU资源,同时创建仿真服务容器,GPU管理模块管理将物理GPU虚拟化后的逻辑GPU,并向调度模块反馈请求资源的响应结果,GPU管理模块向GPU调度模块发送请求GPU资源,GPU调度模块分配资源并指定工作节点,GPU管理模块控制CUDA封装库管理模块监控仿真服务容器中的KUDA封装库。封装CUDA库,VCUDA库是一个对NVIDIA-ml和libcuda库的封装库。
具体地,基于容器云集群调度拓展通用标准,实现了调度模块的predicates(预选)接口,调度模块在调度vcuda-core资源请求的仿真应用服务Pod时,predicates阶段会调用GPU管理模块的predicates接口对节点进行过滤和绑定,同时GPU管理模块提供了GPU资源池调度功能,解决不同类型的GPU设备在namespace(命名空间)下的配额问题。
基于此,将物理GPU划分为多个逻辑GPU,有利于提高GPU计算资源的利用率,从而为雷达系统全数字信号级仿真提供更高的仿真效率。
实施例3
请参照图5,图5所示为本实施例提供一种基于GPU虚拟化的信号级仿真加速装置,包括:
GPU虚拟模块,用于确定物理GPU,将上述物理GPU划分为若干虚拟GPU;
GPU选择模块,用于基于仿真任务,选择目标虚拟GPU;
请求重定向模块,用于当执行上述仿真任务到读写GPU显存时,将上述仿真任务请求重定向至VCUDA库,上述VCUDA库内包括若干CUDA函数的重名函数,上述重名函数的返回值基于上述目标虚拟GPU的信息确定;
函数调用模块,用于基于上述VCUDA库和上述目标虚拟GPU,获得上述仿真任务的响应结果。
可选的,还包括:
参数验证模块,用于基于仿真模型容器的GPU资源参数验证上述仿真模型容器的GPU资源请求的合理性并存储上述GPU资源参数。
可选的,GPU选择模块包括:
资源请求单元,用于基于仿真任务,获得对应的GPU资源请求;
虚拟GPU选择单元,用于基于上述GPU资源请求和分配原则,在上述若干虚拟GPU中筛选出目标虚拟GPU;
添加参数单元,用于添加上述仿真模型容器的参数和上述目标虚拟GPU对应的设备接口参数。
可选的,还包括:
封装库模块,用于封装CUDA库,获得VCUDA库,上述,VCUDA库是一个对NVIDIA-ml和libcuda库的封装库。
可选的,请求重定向模块包括:
添加封装库单元,用于当执行仿真任务请求到读写GPU显存时,为上述仿真模型容器添加上述VCUDA库的映射;
重定向单元,用于基于上述VCUDA库的目标环境变量,将上述仿真任务对CUDA的函数调用重定向到上述VCUDA库中。
可选的,重定向单元包括:
封装库路径设置子单元,用于设置目标环境变量为上述VCUDA库的文件路径;
资源判定子单元,用于基于工作节点的GPU资源信息和上述目标虚拟GPU的资源信息,判断上述目标虚拟GPU的资源信息是否充足,若是,则进行GPU资源分配,若否,则将上述工作节点排列进入队列中;
映射子单元,用于将分配后的GPU资源信息和上述VCUDA库映射到上述仿真模型容器的应用驱动库。
可选的,函数调用模块包括:
函数调用单元,用于基于仿真任务,在上述VCUDA库中查找请求调用的目标函数;
任务执行单元,用于基于目标虚拟GPU执行上述目标函数,获得响应结果。
基于此,本装置通过虚拟化技术将物理GPU虚拟化为若干虚拟GPU,然后基于仿真任务选择最合适的目标虚拟GPU,当执行上述仿真任务到读写GPU显存时,将仿真任务的请求重定向至VCUDA库,不,再次更新应用的资源请求配置信息,基于限制后的GPU资源使用量,运行容器应用,达到多个容器应用在无感知情况下同时使用GPU资源的目的,最后基于上述VCUDA库和上述目标虚拟GPU,获得上述仿真任务的响应结果,可使云计算平台成为一个虚拟化GPU资源可用复用、可进行并行计算任务分发、调度可行有效率的计算平台,以解决目前传统的雷达系统全数字信号级仿真平台计算资源无法共享导致运算效率低的问题。
实施例4
请参照图6,本实施例提供一种电子设备,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成一种基于GPU虚拟化的信号级仿真加速方法。当然,除了软件实现方式外,本说明书并不排除其他实现方式,比如逻辑器件亦或软硬件结合的方式等等,也就是以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
网络接口、处理器和存储器可以通过总线系统相互连接。上述总线可以分为地址总线、数据总线、控制总线等。
存储器用于存放程序。具体地,程序可以包括程序代码,上述程序代码包括计算机操作指令。存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。
处理器,用于执行上述存储器存放的程序,并具体执行:
步骤102,确定物理GPU,将上述物理GPU划分为若干虚拟GPU;
步骤104,基于仿真任务,从上述若干虚拟GPU中选择目标虚拟GPU;
步骤106,当执行上述仿真任务到读写GPU显存时,将上述仿真任务请求重定向至VCUDA库,上述VCUDA库内包括若干CUDA函数的重名函数,上述重名函数的返回值基于上述目标虚拟GPU的信息确定;
步骤108,基于上述VCUDA库和上述目标虚拟GPU,获得上述仿真任务的响应结果。
处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器的硬件的集成逻辑电路或者软件形式的指令完成。
基于同样的发明创造,本说明书实施例还提供一种计算机可读存储介质,上述计算机可读存储介质存储一个或多个程序,上述一个或多个程序当被包括多个应用程序的电子设备执行时,使得上述电子设备执行图1至图3对应的实施例提供的一种基于GPU虚拟化的信号级仿真加速方法。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统、或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例、或者结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质上实施的计算机程序产品的形式。
另外,对于上述装置具体实施方式而言,由于其与方法实施方式基本相似,所以描述的比较简单,相关之处参见方法实施方式的部分说明即可。而且,应当注意的是,在本申请的系统的各个模块中,根据其要实现的功能而对其中的部件进行了逻辑划分,但是,本申请不受限于此,可以根据需要对各个部件进行重新划分或者组合。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例之间的不同之处。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或者步骤可以按照不同于实施例中的顺序来执行并且依然可以实现期望的结果。另外,在附图描绘的过程中不一定要求示出的特定顺序或者连续顺序才能实现期望的结果,在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上上述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种基于GPU虚拟化的信号级仿真加速方法,其特征在于,包括:
确定物理GPU,将所述物理GPU划分为若干虚拟GPU;
基于仿真任务,从所述若干虚拟GPU中选择目标虚拟GPU;
当执行所述仿真任务到读写GPU显存时,将所述仿真任务的请求重定向至VCUDA库,所述VCUDA库内包括若干CUDA函数的重名函数,所述重名函数的返回值基于所述目标虚拟GPU的信息确定;
基于所述VCUDA库和所述目标虚拟GPU,获得所述仿真任务的响应结果。
2.根据权利要求1所述的方法,其特征在于,所述确定物理GPU的方式为确定GPU库的文件路径,获取GPU设备的内存和计算资源信息;所述将所述物理GPU划分为若干个虚拟GPU的方式为将物理GPU虚拟化为若干个逻辑GPU。
3.根据权利要求2所述的方法,其特征在于,所述内存以若干兆为一个单元,所述计算资源信息按照预设比例虚拟化为若干个计算单元。
4.根据权利要求1所述的方法,其特征在于,还包括基于仿真模型容器的GPU资源参数验证所述仿真模型容器的GPU资源请求的合理性并存储所述GPU资源参数。
5.根据权利要求4所述的方法,其特征在于,所述基于仿真任务,从所述若干虚拟GPU中选择目标虚拟GPU的步骤包括:
基于仿真任务,获得对应的GPU资源请求;
基于所述GPU资源请求和分配原则,在所述若干虚拟GPU中筛选出目标虚拟GPU;
添加所述仿真模型容器的参数和所述目标虚拟GPU对应的设备接口参数。
6.根据权利要求4所述的方法,其特征在于,在所述确定物理GPU,将所述物理GPU划分为若干个虚拟GPU之前还包括封装CUDA库,获得VCUDA库,所述,VCUDA库是一个对NVIDIA-ml和libcuda库的封装库。
7.根据权利要求6所述的方法,其特征在于,所述当执行仿真任务请求到读写GPU显存时,将所述仿真任务请求重定向至VCUDA库的步骤包括:
当执行仿真任务请求到读写GPU显存时,为所述仿真模型容器添加所述VCUDA库的映射;
基于所述VCUDA库的目标环境变量,将所述仿真任务对CUDA的函数调用重定向到所述VCUDA库中。
8.根据权利要求7所述的方法,其特征在于,所述基于所述VCUDA库的环境变量,将所述仿真任务对CUDA的函数调用重定向到所述VCUDA库中的步骤包括:
设置目标环境变量为所述VCUDA库的文件路径;
基于工作节点的GPU资源信息和所述目标虚拟GPU的资源信息,判断所述目标虚拟GPU的资源信息是否充足,若是,则进行GPU资源分配,若否,则将所述工作节点排列进入队列中;
将分配后的GPU资源信息和所述VCUDA库映射到所述仿真模型容器的应用驱动库。
9.根据权利要求8所述的方法,其特征在于,所述基于所述VCUDA库和所述目标虚拟GPU,获得所述仿真任务的响应结果的步骤包括:
基于仿真任务,在所述VCUDA库中查找请求调用的目标函数;
基于目标虚拟GPU执行所述目标函数,获得响应结果。
10.一种基于GPU虚拟化的信号级仿真加速装置,其特征在于,
GPU虚拟模块,用于确定物理GPU,将所述物理GPU划分为若干虚拟GPU;
GPU选择模块,用于基于仿真任务,选择目标虚拟GPU;
请求重定向模块,用于当执行所述仿真任务到读写GPU显存时,将所述仿真任务请求重定向至VCUDA库,所述VCUDA库内包括若干CUDA函数的重名函数,所述重名函数的返回值基于所述目标虚拟GPU的信息确定;
函数调用模块,用于基于所述VCUDA库和所述目标虚拟GPU,获得所述仿真任务的响应结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310468664.XA CN116578416B (zh) | 2023-04-26 | 2023-04-26 | 一种基于gpu虚拟化的信号级仿真加速方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310468664.XA CN116578416B (zh) | 2023-04-26 | 2023-04-26 | 一种基于gpu虚拟化的信号级仿真加速方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116578416A true CN116578416A (zh) | 2023-08-11 |
CN116578416B CN116578416B (zh) | 2024-07-30 |
Family
ID=87536916
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310468664.XA Active CN116578416B (zh) | 2023-04-26 | 2023-04-26 | 一种基于gpu虚拟化的信号级仿真加速方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116578416B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116578413A (zh) * | 2023-04-26 | 2023-08-11 | 中国人民解放军92942部队 | 一种基于云+端架构的信号级仿真模型云化方法 |
CN118885301A (zh) * | 2024-09-27 | 2024-11-01 | 上海创景信息科技股份有限公司 | 硬件加速的数字化gpu仿真方法和系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103761139A (zh) * | 2014-01-25 | 2014-04-30 | 湖南大学 | 一种基于动态库拦截的通用计算虚拟化实现方法 |
US10262390B1 (en) * | 2017-04-14 | 2019-04-16 | EMC IP Holding Company LLC | Managing access to a resource pool of graphics processing units under fine grain control |
CN110413408A (zh) * | 2019-06-29 | 2019-11-05 | 苏州浪潮智能科技有限公司 | 一种深度学习框架的显存控制方法、设备以及存储介质 |
CN111078412A (zh) * | 2019-12-12 | 2020-04-28 | 中山大学 | 一种通过api截获对gpu进行资源管理的方法 |
CN111223036A (zh) * | 2019-12-29 | 2020-06-02 | 广东浪潮大数据研究有限公司 | 一种gpu虚拟化共享方法、装置及电子设备和存储介质 |
US20200334076A1 (en) * | 2019-04-19 | 2020-10-22 | Nvidia Corporation | Deep learning thread communication |
CN111858045A (zh) * | 2020-07-13 | 2020-10-30 | 苏州浪潮智能科技有限公司 | 一种多任务gpu资源调度方法、装置、设备及可读介质 |
US20210406427A1 (en) * | 2020-06-30 | 2021-12-30 | China Petroleum & Chemical Corporation | Computer-implemented method for high speed multi-source loading and retrieval of wavefields employing finite difference models |
CN114721818A (zh) * | 2022-03-11 | 2022-07-08 | 中国科学院信息工程研究所 | 一种基于Kubernetes集群的GPU分时共享方法和系统 |
-
2023
- 2023-04-26 CN CN202310468664.XA patent/CN116578416B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103761139A (zh) * | 2014-01-25 | 2014-04-30 | 湖南大学 | 一种基于动态库拦截的通用计算虚拟化实现方法 |
US10262390B1 (en) * | 2017-04-14 | 2019-04-16 | EMC IP Holding Company LLC | Managing access to a resource pool of graphics processing units under fine grain control |
US20200334076A1 (en) * | 2019-04-19 | 2020-10-22 | Nvidia Corporation | Deep learning thread communication |
CN110413408A (zh) * | 2019-06-29 | 2019-11-05 | 苏州浪潮智能科技有限公司 | 一种深度学习框架的显存控制方法、设备以及存储介质 |
CN111078412A (zh) * | 2019-12-12 | 2020-04-28 | 中山大学 | 一种通过api截获对gpu进行资源管理的方法 |
CN111223036A (zh) * | 2019-12-29 | 2020-06-02 | 广东浪潮大数据研究有限公司 | 一种gpu虚拟化共享方法、装置及电子设备和存储介质 |
US20210406427A1 (en) * | 2020-06-30 | 2021-12-30 | China Petroleum & Chemical Corporation | Computer-implemented method for high speed multi-source loading and retrieval of wavefields employing finite difference models |
CN111858045A (zh) * | 2020-07-13 | 2020-10-30 | 苏州浪潮智能科技有限公司 | 一种多任务gpu资源调度方法、装置、设备及可读介质 |
CN114721818A (zh) * | 2022-03-11 | 2022-07-08 | 中国科学院信息工程研究所 | 一种基于Kubernetes集群的GPU分时共享方法和系统 |
Non-Patent Citations (2)
Title |
---|
DAEYOUN KANG等: "ConVGPU: GPU Management Middleware in Container Based Virtualized Environment", 《2017 IEEE INTERNATIONAL CONFERENCE ON CLUSTER COMPUTING (CLUSTER)》, 25 September 2017 (2017-09-25), pages 301 - 309, XP033155726, DOI: 10.1109/CLUSTER.2017.17 * |
梁桂才等: "GPU虚拟化相关技术及研究", 《数字通信世界》, 20 May 2022 (2022-05-20), pages 34 - 36 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116578413A (zh) * | 2023-04-26 | 2023-08-11 | 中国人民解放军92942部队 | 一种基于云+端架构的信号级仿真模型云化方法 |
CN116578413B (zh) * | 2023-04-26 | 2024-04-12 | 中国人民解放军92942部队 | 一种基于云+端架构的信号级仿真模型云化方法 |
CN118885301A (zh) * | 2024-09-27 | 2024-11-01 | 上海创景信息科技股份有限公司 | 硬件加速的数字化gpu仿真方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN116578416B (zh) | 2024-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111913794B (zh) | 用于共用gpu的方法、装置、电子设备及可读存储介质 | |
CN110704186B (zh) | 基于混合分布架构的计算资源分配方法、装置和存储介质 | |
US12333327B2 (en) | Coordinated container scheduling for improved resource allocation in virtual computing environment | |
Chen et al. | Enabling FPGAs in the cloud | |
US8910153B2 (en) | Managing virtualized accelerators using admission control, load balancing and scheduling | |
CN116578416B (zh) | 一种基于gpu虚拟化的信号级仿真加速方法 | |
US20070169127A1 (en) | Method, system and computer program product for optimizing allocation of resources on partitions of a data processing system | |
CN112052068A (zh) | 一种Kubernetes容器平台CPU绑核的方法与装置 | |
KR20210095690A (ko) | 리소스 관리 방법과 장치, 전자 디바이스 및 기록 매체 | |
JP2005534116A (ja) | 複数の消費者をもつコンピュータシステムで資源を動的に割当てて管理する方法 | |
AU2007281686A1 (en) | System and method for providing hardware virtualization in a virtual machine environment | |
WO2023000673A1 (zh) | 硬件加速器设备管理方法、装置及电子设备和存储介质 | |
WO2022121866A1 (zh) | 一种基于加速卡的服务运行方法、装置、电子设备及计算机可读存储介质 | |
CN117632447A (zh) | Gpu资源使用方法、gpu虚拟化方法以及作业调度装置、集群 | |
CN116991553A (zh) | 一种基于api拦截转发的容器云环境下的虚拟gpu分配方法及系统 | |
CN112306669A (zh) | 一种基于多核系统的任务处理方法及装置 | |
EP1691287A1 (en) | Information processing device, process control method, and computer program | |
CN113326226A (zh) | 一种虚拟化的方法、装置、板卡及计算机可读存储介质 | |
CN114546587A (zh) | 一种在线图像识别服务的扩缩容方法及相关装置 | |
CN114168344A (zh) | 一种gpu资源分配方法、装置、设备和可读存储介质 | |
CN118409846A (zh) | 队列调度方法、芯片、系统、介质和程序产品 | |
CN116450298A (zh) | 一种gpu任务细粒度调度方法及相关装置 | |
CN118550595B (zh) | 一种Linux系统组织管理RTOS系统的方法及系统 | |
US20220405135A1 (en) | Scheduling in a container orchestration system utilizing hardware topology hints | |
US20150212859A1 (en) | Graphics processing unit controller, host system, and methods |
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 |