CN114138449A - 一种基于虚拟现实的康复训练系统 - Google Patents

一种基于虚拟现实的康复训练系统 Download PDF

Info

Publication number
CN114138449A
CN114138449A CN202111530942.7A CN202111530942A CN114138449A CN 114138449 A CN114138449 A CN 114138449A CN 202111530942 A CN202111530942 A CN 202111530942A CN 114138449 A CN114138449 A CN 114138449A
Authority
CN
China
Prior art keywords
kernel
block
gpu
parallel tasks
cpu
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
Application number
CN202111530942.7A
Other languages
English (en)
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.)
Henan Childrens Hospital Zhengzhou Childrens Hospital
Original Assignee
Henan Childrens Hospital Zhengzhou Childrens Hospital
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 Henan Childrens Hospital Zhengzhou Childrens Hospital filed Critical Henan Childrens Hospital Zhengzhou Childrens Hospital
Priority to CN202111530942.7A priority Critical patent/CN114138449A/zh
Publication of CN114138449A publication Critical patent/CN114138449A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H20/00ICT specially adapted for therapies or health-improving plans, e.g. for handling prescriptions, for steering therapy or for monitoring patient compliance
    • G16H20/30ICT specially adapted for therapies or health-improving plans, e.g. for handling prescriptions, for steering therapy or for monitoring patient compliance relating to physical therapies or activities, e.g. physiotherapy, acupressure or exercising

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Physical Education & Sports Medicine (AREA)
  • Epidemiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Primary Health Care (AREA)
  • Public Health (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本发明提供了一种基于虚拟现实的康复训练系统,应用在采用CUDA架构的康复训练设备中,首先获取康复训练游戏中核函数kernel并行任务的个数和每个线程执行程序的空间复杂度,以及CPU利用率;然后根据所述并行任务的个数、所述CPU利用率,确定所述核函数kernel在CPU执行还是在GPU执行;若在GPU执行,则进一步根据所述并行任务的个数、所述空间复杂度计算CUDA中核函数kernel对应的Grid的Block数和一个Block的Thread数。通过对GPU程序的调整有效的提高了系统的运行速度,增强了用户体验。

Description

一种基于虚拟现实的康复训练系统
技术领域
本申请涉及康复训练技术领域,尤其涉及基于虚拟现实的康复训练系统。
背景技术
康复训练是患者经过治疗后,为了能够尽快恢复机体机能开展的有目的性的训练。不同的损伤部位进行训练的项目有所不同,例如,手部关节损伤一般是进行抓握训练,上肢损伤一般是采用伸缩、抬放胳膊进行训练,现在康复训练的一个很大的不足在于,训练方式单一、枯燥,很难引起患者的兴趣,尤其是对于儿童,经过几次训练后,很难积极配合康复训练师。随着计算机技术的发展,诞生了虚拟现实技术,所谓虚拟现实就是在计算机中模拟现实场景,让用户可以沉浸到虚拟场景中,虚拟现实技术已经广泛应用在游戏娱乐、广告、培训、医疗等领域。
在进行儿童康复训练中,儿童完成设置在游戏中的特定动作就可以进行游戏,而且随着康复训练的进展可以逐步提高动作的幅度或者复杂性,这不仅提高了儿童进行康复训练的兴趣,而且有效的减少了康复训练师的工作。
在利用虚拟现实进行康复训练中,游戏中三维场景的渲染等,需要大量的计算资源,但是医院的电脑一般无法和专业游戏计算机相比,在一些患者利用虚拟现实进行康复训练时,经常会出现游戏卡顿,甚至无法运行某些游戏的情况,这严重影响儿童进行康复训练的兴趣。如何能够在配置有限的电脑上流畅运行虚拟现实游戏是亟待解决的问题。
发明内容
本发明通过对CPU和GPU调用程序过程的改进,提高了虚拟现实的康复训练系统的运行速度,增强了用户体验。
本发明提供了一种基于虚拟现实的康复训练系统,所述系统包括信息采集单元、CPU、GPU、显示单元,所述CPU执行的程序包括以下模块:
获取模块,用于获取康复训练游戏中核函数kernel并行任务的个数和每个GPU线程执行的程序的空间复杂度,以及CPU利用率;
判断执行模块,用于根据所述并行任务的个数、所述CPU利用率,确定所述核函数kernel在CPU执行还是在GPU执行;若在GPU执行,则进一步根据所述并行任务的个数、所述空间复杂度计算CUDA中核函数kernel对应的Grid的Block数和一个Block的Thread数。
优选地,所述根据所述并行任务的个数、所述CPU利用率,确定所述核函数kernel在CPU执行还是在GPU执行,具体为:
若所述并行任务的个数小于第一阈值,且CPU的利用率小于第二阈值,则在CPU中执行核函数kernel,否则在GPU中执行核函数kernel。
优选地,所述根据所述并行任务的个数、所述空间复杂度计算CUDA中核函数kernel对应的Grid的Block数和一个Block的Thread数,具体为:
采用下式计算得到一个Block的Thread数k:
Figure BDA0003410713050000021
其中,P为GPU支持的每个Block的最大线程数,s为所述空间复杂度,O(1)表示空间复杂度为1,O(n)表示空间复杂度为n;
Block的个数m为:
Figure BDA0003410713050000031
其中h为所述并行任务的个数,
Figure BDA0003410713050000032
为向上取整。
优选地,还包括:若空间复杂度为O(1),则k=P-32。
优选地,所述根据所述并行任务的个数、所述空间复杂度计算CUDA中核函数kernel对应的Grid的Block数和一个Block的Thread数,具体为:
获取GPU每个Block共享内存大小,根据所述空间复杂度和和所述每个Block共享内存大小,确定每个Block的Thread数;
根据所述并行任务的个数和所述每个Block的Thread数,确定Block数。
优选地,所述信息采集单元为加速度传感器、速度传感器、位移传感器、握力传感器的一种或多种,或者所述信息采集单元为kinect。
此外,本发明还提供了一种计算机可读存储介质,用于存储计算机程序指令,所述计算机程序指令在被处理器执行时实现如下方法:
获取康复训练游戏中核函数kernel并行任务的个数和每个GPU线程执行的程序的空间复杂度,以及CPU利用率;
根据所述并行任务的个数、所述CPU利用率,确定所述核函数kernel在CPU执行还是在GPU执行;若在GPU执行,则进一步根据所述并行任务的个数、所述空间复杂度计算CUDA中核函数kernel对应的Grid的Block数和一个Block的Thread数
优选地,所述根据所述并行任务的个数、所述CPU利用率,确定所述核函数kernel在CPU执行还是在GPU执行,具体为:
若所述并行任务的个数小于第一阈值,且CPU的利用率小于第二阈值,则在CPU中执行核函数kernel,否则在GPU中执行核函数kernel。。
优选地,所述根据所述并行任务的个数、所述空间复杂度计算CUDA中核函数kernel对应的Grid的Block数和一个Block的Thread数,具体为:
采用下式计算得到一个Block的Thread数k:
Figure BDA0003410713050000041
其中,P为GPU支持的每个Block的最大线程数,s为所述空间复杂度,O(1)表示空间复杂度为1,O(n)表示空间复杂度为n;
Block的个数m为:
Figure BDA0003410713050000042
其中h为所述并行任务的个数,
Figure BDA0003410713050000043
为向上取整。
优选地,所述根据所述并行任务的个数、所述空间复杂度计算CUDA中核函数kernel对应的Grid的Block数和一个Block的Thread数,具体为:
获取GPU每个Block共享内存大小,根据所述空间复杂度和和所述每个Block共享内存大小,确定每个Block的Thread数;
根据所述并行任务的个数和所述每个Block的Thread数,确定Block数。
本发明通过判断CUDA核函数kernel并行任务的个数和每个GPU线程执行程序的空间复杂度,确定是在CPU上执行还是在GPU上执行kernel核函数,对于并发量小的核函数,在CPU利用率低时,在CPU上执行,避免了CPU向GPU复制数据、启动GPU线程造成的时间延迟,提高了康复训练游戏整体的运行效率。而且对调用核函数设置Block和Thread数进行了改进,提高了核函数kernel并行任务的处理速度。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中CURA程序执行的过程;
图2为CUDA中线程Thread、线程块Block、线程网格Grid共享内存示意图;
图3为本发明的结构示例图;
图4为本发明流程图。
具体实施方式
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示为CUDA程序的执行过程,结合下面代码进行具体说明。
Figure BDA0003410713050000051
Figure BDA0003410713050000061
在使用CUDA编程中,首先需要使用__global__定义核函数kernel,代码第2-6行定义了一个名为VecAdd的核函数,在main函数中,通过VecAdd<<<M,N>>>(A,B,C)调用,其中M表示该kernel对应的Grid中包括的Block数,N表示一个Block包括的线程数。
在图1中,在CPU中的main函数顺序执行,当遇到核函数kernel时,就会调用GPU,并将参数复制到GPU,一个程序可以有多个核函数,如图1中的kernel10、kernel11。
目前的CUDA架构中,只要遇到kernel就会调用GPU,但是调用GPU涉及到参数的复制、GPU线程的分配等一系列操作,有些简单的核函数kernel如果被调度到GPU中执行,反而会影响执行速度。有鉴于此,本发明为了提高虚拟现实的康复训练系统的速度,提供了一种基于虚拟现实的康复训练系统,所述系统包括信息采集单元、CPU、GPU、显示单元,所述CPU执行的程序包括以下模块:
获取模块,用于获取康复训练游戏中核函数kernel并行任务的个数和每个GPU线程执行的程序的空间复杂度,以及CPU利用率;
GPU有大量的CUDA核心,这个核心很适合执行简单的并行任务,但是如果核函数kernel并行任务的个数较少,则没有必要在GPU中执行。例如在进行康复训练的游戏中,如果只是简单的游戏,其中的碰撞检测方法也采用简单的算法,这些算法的并行任务实际并不多,例如四个或者五个,调度到GPU涉及到参数复制等,反而影响碰撞检测算法的效率,而且会影响渲染等其他程序的执行。有鉴于此,本发明获取康复训练游戏中核函数kernel并行任务数,所述核函数kernel并行任务数是指用户自定义的CUDA核函数中相同程序重复执行的次数,如上述代码所示,VecAdd<<<M,N>>>(A,B,C);设置了M*N个GPU线程执行用户自定义的VecAdd,而且i=1,…,M*N,因此上述代码核函数kernel并行任务数为M*N。实质上,上述代码中每个线程分别将集合A和集合B中下标与线程号相同的元素求和,例如第r个线程,其执行的是A[r]+B[r]。
判断执行模块,用于根据所述并行任务的个数、所述CPU利用率,确定所述核函数kernel在CPU执行还是在GPU执行;若在GPU执行,则进一步根据所述并行任务的个数、所述空间复杂度计算CUDA中核函数kernel对应的Grid的Block数和一个Block的Thread数。
如图2,在CUDA中,不同的Grid共享GPU的Global Memory,Block内的线程共享块共享内存(per-block shared memory),由于涉及块共享内存有限,如果程序的空间复杂度过大,会导致GPU内存溢出,甚至会出现崩溃的情况。在设置kernel的Block数和Thread数时,过大或者过小都影响程序的正常执行。
优选地,所述根据所述并行任务的个数、所述CPU利用率,确定所述核函数kernel在CPU执行还是在GPU执行,具体为:
若所述并行任务的个数小于第一阈值,且CPU的利用率小于第二阈值,则在CPU中执行核函数kernel,否则在GPU中执行核函数kernel。
当并行任务的个数较小时,且CPU处于空闲时,将核函数kernel的执行放在CPU,不仅提高了核函数kernel的执行速度,而且不会影响GPU中其他程序的正常执行,例如渲染、图像增强等。
优选地,所述根据所述并行任务的个数、所述空间复杂度计算CUDA中核函数kernel对应的Grid的Block数和一个Block的Thread数,具体为:
采用下式计算得到一个Block的Thread数k:
Figure BDA0003410713050000081
其中,P为GPU支持的每个Block的最大线程数,s为所述空间复杂度,O(1)表示空间复杂度为1,O(n)表示空间复杂度为n;
Block的个数m为:
Figure BDA0003410713050000082
其中h为所述并行任务的个数,
Figure BDA0003410713050000083
为向上取整。
不同计算能力的显卡,其能够支持的每个Block的最大线程数不同,例如计算能力为1的显卡,支持的每个Block的最大线程数为512,计算能力为3的显卡,支持的每个Block的最大线程数为1024。当空间复杂度为1时,说明线程不会过多占用块共享内存,为了最大化GPU效益,设置每个块中线程数为GPU支持的每个Block的最大线程数。由于一个block中线程过少也会影响程序的并行执行,在遇到空间复杂度高的kernel时,将Thread设置为P/4,既保证了程序能顺利运行,又有利于充分利用资源。
优选地,还包括:若空间复杂度为O(1),则k=P-32。
CUDA中,warp才是线程调度的单位,而不是单个的线程,通常一个warp包括32个相邻线程,为了避免当空间复杂度为1时,线程块中线程都是kernel的任务,在一个实施例中,设置当空间复杂度为1时,一个Block的Thread数k=P-32。
优选地,所述根据所述并行任务的个数、所述空间复杂度计算CUDA中核函数kernel对应的Grid的Block数和一个Block的Thread数,具体为:
获取GPU每个Block共享内存大小,根据所述空间复杂度和和所述每个Block共享内存大小,确定每个Block的Thread数;
根据所述并行任务的个数和所述每个Block的Thread数,确定Block数。
一个Block中线程共享块共享内存,空间复杂度越大的任务或程序,其占用的内存越大,当线程本身的内存不足以满足线程要求或者Block中线程进行数据交换时,一般需要的共享内存也越大,为了避免一个Block分配过多空间复杂度大的线程,根据空间复杂度和每个Block共享内存大小确定Block的Thread数。例如当GPU中一个Block共享内存是另外一个GPU中Block共享内存的一半,则可以进一步根据要运行的程序的空间复杂度确定一个Block的Thread数。譬如,GPU1中Block共享内存是b,GPU2中Block共享内存为b/2,当二者运行的程序空间复杂度一样时,则GPU1中Block中线程数为GPU2的二倍。
优选地,所述信息采集单元为加速度传感器、速度传感器、位移传感器、握力传感器的一种或多种,或者所述信息采集单元为kinect。
此外,本发明还提供了一种计算机可读存储介质,用于存储计算机程序指令,所述计算机程序指令在被处理器执行时实现如下方法:
获取康复训练游戏中核函数kernel并行任务的个数和每个GPU线程执行的程序的空间复杂度,以及CPU利用率;
根据所述并行任务的个数、所述CPU利用率,确定所述核函数kernel在CPU执行还是在GPU执行;若在GPU执行,则进一步根据所述并行任务的个数、所述空间复杂度计算CUDA中核函数kernel对应的Grid的Block数和一个Block的Thread数。
优选地,所述根据所述并行任务的个数、所述CPU利用率,确定所述核函数kernel在CPU执行还是在GPU执行,具体为:
若所述并行任务的个数小于第一阈值,且CPU的利用率小于第二阈值,则在CPU中执行核函数kernel,否则在GPU中执行核函数kernel。
优选地,所述根据所述并行任务的个数、所述空间复杂度计算CUDA中核函数kernel对应的Grid的Block数和一个Block的Thread数,具体为:
采用下式计算得到一个Block的Thread数k:
Figure BDA0003410713050000101
其中,P为GPU支持的每个Block的最大线程数,s为所述空间复杂度,O(1)表示空间复杂度为1,O(n)表示空间复杂度为n;
Block的个数m为:
Figure BDA0003410713050000102
其中h为所述并行任务的个数,
Figure BDA0003410713050000103
为向上取整。
优选地,所述根据所述并行任务的个数、所述空间复杂度计算CUDA中核函数kernel对应的Grid的Block数和一个Block的Thread数,具体为:
获取GPU每个Block共享内存大小,根据所述空间复杂度和和所述每个Block共享内存大小,确定每个Block的Thread数;
根据所述并行任务的个数和所述每个Block的Thread数,确定Block数。
最后,本发明还提供了一种虚拟现实游戏加速方法,所述方法包括以下步骤:
获取康复训练游戏中核函数kernel并行任务的个数和每个GPU线程执行的程序的空间复杂度,以及CPU利用率;
根据所述并行任务的个数、所述CPU利用率,确定所述核函数kernel在CPU执行还是在GPU执行;若在GPU执行,则进一步根据所述并行任务的个数、所述空间复杂度计算CUDA中核函数kernel对应的Grid的Block数和一个Block的Thread数。
本发明所述的各个实施例可以进行组合以实现对应的技术方案。结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

Claims (10)

1.一种基于虚拟现实的康复训练系统,所述系统包括信息采集单元、CPU、GPU、显示单元,其特征在于,所述CPU执行的程序包括以下模块:
获取模块,用于获取康复训练游戏中核函数kernel并行任务的个数和每个GPU线程执行的程序的空间复杂度,以及CPU利用率;
判断执行模块,用于根据所述并行任务的个数、所述CPU利用率,确定所述核函数kernel在CPU执行还是在GPU执行;若在GPU执行,则进一步根据所述并行任务的个数、所述空间复杂度计算CUDA中核函数kernel对应的Grid的Block数和一个Block的Thread数。
2.如权利要求1所述的系统,其特征在于,所述根据所述并行任务的个数、所述CPU利用率,确定所述核函数kernel在CPU执行还是在GPU执行,具体为:
若所述并行任务的个数小于第一阈值,且CPU的利用率小于第二阈值,则在CPU中执行核函数kernel,否则在GPU中执行核函数kernel。
3.如权利要求1所述的系统,其特征在于,所述根据所述并行任务的个数、所述空间复杂度计算CUDA中核函数kernel对应的Grid的Block数和一个Block的Thread数,具体为:
采用下式计算得到一个Block的Thread数k:
Figure FDA0003410713040000011
其中,P为GPU支持的每个Block的最大线程数,s为所述空间复杂度,O(1)表示空间复杂度为1,O(n)表示空间复杂度为n;
Block的个数m为:
Figure FDA0003410713040000021
其中h为所述并行任务的个数,
Figure FDA0003410713040000022
为向上取整。
4.如权利要求3所述的系统,其特征在于,还包括:若空间复杂度为O(1),则k=P-32。
5.如权利要求1所述的系统,其特征在于,所述根据所述并行任务的个数、所述空间复杂度计算CUDA中核函数kernel对应的Grid的Block数和一个Block的Thread数,具体为:
获取GPU每个Block共享内存大小,根据所述空间复杂度和和所述每个Block共享内存大小,确定每个Block的Thread数;
根据所述并行任务的个数和所述每个Block的Thread数,确定Block数。
6.如权利要求1-5任一项所述的系统,其特征在于,所述信息采集单元为加速度传感器、速度传感器、位移传感器、握力传感器的一种或多种,或者所述信息采集单元为kinect。
7.一种计算机可读存储介质,用于存储计算机程序指令,其特征在于,所述计算机程序指令在被处理器执行时实现如下方法:
获取康复训练游戏中核函数kernel并行任务的个数和每个GPU线程执行的程序的空间复杂度,以及CPU利用率;
根据所述并行任务的个数、所述CPU利用率,确定所述核函数kernel在CPU执行还是在GPU执行;若在GPU执行,则进一步根据所述并行任务的个数、所述空间复杂度计算CUDA中核函数kernel对应的Grid的Block数和一个Block的Thread数。
8.如权利要求7所述的存储介质,其特征在于,所述根据所述并行任务的个数、所述CPU利用率,确定所述核函数kernel在CPU执行还是在GPU执行,具体为:
若所述并行任务的个数小于第一阈值,且CPU的利用率小于第二阈值,则在CPU中执行核函数kernel,否则在GPU中执行核函数kernel。。
9.如权利要求7所述的存储介质,其特征在于,所述根据所述并行任务的个数、所述空间复杂度计算CUDA中核函数kernel对应的Grid的Block数和一个Block的Thread数,具体为:
采用下式计算得到一个Block的Thread数k:
Figure FDA0003410713040000031
其中,P为GPU支持的每个Block的最大线程数,s为所述空间复杂度,O(1)表示空间复杂度为1,O(n)表示空间复杂度为n;
Block的个数m为:
Figure FDA0003410713040000032
其中h为所述并行任务的个数,
Figure FDA0003410713040000033
为向上取整。
10.如权利要求1所述的存储介质,其特征在于,所述根据所述并行任务的个数、所述空间复杂度计算CUDA中核函数kernel对应的Grid的Block数和一个Block的Thread数,具体为:
获取GPU每个Block共享内存大小,根据所述空间复杂度和和所述每个Block共享内存大小,确定每个Block的Thread数;
根据所述并行任务的个数和所述每个Block的Thread数,确定Block数。
CN202111530942.7A 2021-12-14 2021-12-14 一种基于虚拟现实的康复训练系统 Pending CN114138449A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111530942.7A CN114138449A (zh) 2021-12-14 2021-12-14 一种基于虚拟现实的康复训练系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111530942.7A CN114138449A (zh) 2021-12-14 2021-12-14 一种基于虚拟现实的康复训练系统

Publications (1)

Publication Number Publication Date
CN114138449A true CN114138449A (zh) 2022-03-04

Family

ID=80382349

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111530942.7A Pending CN114138449A (zh) 2021-12-14 2021-12-14 一种基于虚拟现实的康复训练系统

Country Status (1)

Country Link
CN (1) CN114138449A (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102810133A (zh) * 2012-05-15 2012-12-05 北京像素软件科技股份有限公司 网络游戏中的射线查询方法和场景服务器
CN106210726A (zh) * 2016-08-08 2016-12-07 成都佳发安泰科技股份有限公司 根据cpu与gpu的使用率对视频数据进行自适应解码的方法
CN106502632A (zh) * 2016-10-28 2017-03-15 武汉大学 一种基于自适应线程束的gpu并行粒子群优化方法
CN110032449A (zh) * 2019-04-16 2019-07-19 苏州浪潮智能科技有限公司 一种优化gpu服务器的性能的方法及装置
CN110308982A (zh) * 2018-03-20 2019-10-08 华为技术有限公司 一种共享内存复用方法及装置
CN110362407A (zh) * 2019-07-19 2019-10-22 中国工商银行股份有限公司 计算资源调度方法及装置
CN110399222A (zh) * 2019-07-25 2019-11-01 北京邮电大学 Gpu集群深度学习任务并行化方法、装置及电子设备
CN111221715A (zh) * 2020-01-04 2020-06-02 苏州浪潮智能科技有限公司 动态优化Caffe的性能的方法、系统、设备及介质
CN112162854A (zh) * 2020-09-21 2021-01-01 南开大学 一种cpu-gpu间计算任务调度方法、系统及介质
CN112162864A (zh) * 2020-10-26 2021-01-01 新华三大数据技术有限公司 一种云资源分配方法、装置及存储介质
CN112258378A (zh) * 2020-10-15 2021-01-22 武汉易维晟医疗科技有限公司 基于gpu加速的实时三维测量系统及方法

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102810133A (zh) * 2012-05-15 2012-12-05 北京像素软件科技股份有限公司 网络游戏中的射线查询方法和场景服务器
CN106210726A (zh) * 2016-08-08 2016-12-07 成都佳发安泰科技股份有限公司 根据cpu与gpu的使用率对视频数据进行自适应解码的方法
CN106502632A (zh) * 2016-10-28 2017-03-15 武汉大学 一种基于自适应线程束的gpu并行粒子群优化方法
CN110308982A (zh) * 2018-03-20 2019-10-08 华为技术有限公司 一种共享内存复用方法及装置
CN110032449A (zh) * 2019-04-16 2019-07-19 苏州浪潮智能科技有限公司 一种优化gpu服务器的性能的方法及装置
CN110362407A (zh) * 2019-07-19 2019-10-22 中国工商银行股份有限公司 计算资源调度方法及装置
CN110399222A (zh) * 2019-07-25 2019-11-01 北京邮电大学 Gpu集群深度学习任务并行化方法、装置及电子设备
CN111221715A (zh) * 2020-01-04 2020-06-02 苏州浪潮智能科技有限公司 动态优化Caffe的性能的方法、系统、设备及介质
CN112162854A (zh) * 2020-09-21 2021-01-01 南开大学 一种cpu-gpu间计算任务调度方法、系统及介质
CN112258378A (zh) * 2020-10-15 2021-01-22 武汉易维晟医疗科技有限公司 基于gpu加速的实时三维测量系统及方法
CN112162864A (zh) * 2020-10-26 2021-01-01 新华三大数据技术有限公司 一种云资源分配方法、装置及存储介质

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
曹倩: "《异构多核任务模型优化技术[M]》", vol. 1, 国防工业出版社, pages: 39 - 42 *
李涛;董前琨;张帅;孔令晏;康宏;杨愚鲁;: "基于线程池的GPU任务并行计算模式研究", 计算机学报, no. 10 *
杨洪余;李成明;王小平;姜青山;: "CPU/GPU异构环境下图像协同并行处理模型", 集成技术, no. 05 *
鲁邹晨;: "基于CUDA架构的LDPC码并行译码设计与实现", 舰船电子对抗, no. 02 *

Similar Documents

Publication Publication Date Title
WO2021129064A1 (zh) 姿态获取方法、关键点坐标定位模型的训练方法和装置
CN108665462B (zh) 用于医学成像的高度集成的注释和分割系统
CN110874812B (zh) 游戏中的场景图像绘制方法、装置及电子终端
US20140267611A1 (en) Runtime engine for analyzing user motion in 3d images
CN109033946A (zh) 融合方向图的人体姿态估计方法
CN108230294A (zh) 图像检测方法、装置、电子设备和存储介质
JP4936522B2 (ja) 画像処理方法、画像処理装置
CN111191728A (zh) 基于异步或同步的深度强化学习分布式训练方法及系统
US7526456B2 (en) Method of operation for parallel LCP solver
CN106796536A (zh) 用于多操作系统的内存访问方法、装置和电子设备
CN114298329A (zh) 一种模型训练方法、装置、设备及存储介质
CN110162398B (zh) 一种疾病分析模型的调度方法、装置及终端设备
CN114138449A (zh) 一种基于虚拟现实的康复训练系统
CN106682567A (zh) 一种指纹图像的采集处理方法及装置
CN106294395B (zh) 一种任务处理的方法及装置
CN116703711A (zh) 表情迁移评价方法、装置、设备及存储介质
CN110490165A (zh) 一种基于卷积神经网络的动态手势跟踪方法
JP2019126741A5 (zh)
TW201135665A (en) Parallel and vectored Gilbert-Johnson-Keerthi graphics processing
CN107622037A (zh) 一种提高图形处理单元的矩阵乘计算性能的方法和装置
CN113840169B (zh) 一种视频处理方法、装置、计算设备和存储介质
CN114159790A (zh) 虚拟对象的伤害处理方法、装置、设备、介质及程序产品
CN112433914A (zh) 获取并行计算任务进度的方法及系统
CN111046870A (zh) 一种指关节定位方法、装置、介质和设备
CN116166202B (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