计算组件的存储管理方法和装置的制造方法

文档序号:9417123阅读:466来源:国知局
计算组件的存储管理方法和装置的制造方法
【技术领域】
[0001]本发明主要涉及计算组件,尤其涉及一种计算组件的存储管理方法和装置。
【背景技术】
[0002]随着通用并行计算架构(ComputeUnified Device Architecture,CUDA)的普及,显卡上的图形处理器(Graphic Processing Unit, GPU)已经被用来解决复杂的计算问题。GPU所擅长应对的是计算密集型(Compute-1ntensive)问题,因为GPU内部大量分布着算术逻辑单元(arithmetic and logic unit, ALU)阵列,这种单元应对并行度高运算密度大的问题比中央处理器(Central Processing Unit, CPU)获取的加速比要高很多倍。
[0003]除了显卡之外,还存在使用专用高性能计算卡、现场可编程门阵列(Field —Programmable Gate Array, FPGA)等进行复杂技术的计算组件。
[0004]这些显卡、专用高性能计算卡、现场可编程门阵列等计算组件都会配备一定容量的存储器以供计算的过程中存储。由于成本的限制,存储器容量通常是受限的,难以应对一些应用场合的计算过程中所需的庞大存储量。为了克服这一问题,一种方法是每次计算完毕后将计算组件的存储器(后文称为内部存储器)的数据复制到外部存储器上,当计算组件需要时再将外部存储器上的数据复制到内部存储器。然而内、外部存储器间的数据复制局限于计算组件的接口的传输速度,会导致计算速度下降。
[0005]因此如何在受限的存储容量下进行大存储量的计算是上述计算组件和其他计算组件面临的挑战。

【发明内容】

[0006]本发明要解决的技术问题是提供一种计算组件的存储管理方法和装置,以更加有效地利用计算组件的存储器。
[0007]为解决上述技术问题,本发明提供了一种计算组件的存储管理方法,用于在使用该计算组件进行计算时管理该计算组件的存储器,该方法包括以下步骤:确定由至少两个子计算任务组成的计算任务所需的总存储容量;根据该总存储容量申请该存储器的一存储空间;确定进行一子计算任务所需的单次存储容量;根据该单次存储容量申请该存储空间中的子存储空间,该子存储空间供该子计算任务计算时占用;当该子计算任务计算完毕后释放该子存储空间,直到该计算任务计算完毕。
[0008]可选地,上述方法还包括在该计算任务计算完毕后释放该存储空间。
[0009]可选地,由该存储空间管理器向一计算组件的存储器管理单元申请该存储器的存储空间。
[0010]可选地,该子存储空间是向该存储空间管理器申请。
[0011]可选地,上述方法还包括创建并维持该存储空间管理器。
[0012]可选地,该存储空间管理器为存储管理池。
[0013]可选地,该存储器管理单元为操作系统。
[0014]可选地,该至少两个子计算任务基本上是顺序执行。
[0015]可选地,该计算任务所需的总存储容量为该至少两个子计算任务各自所需单次存储容量的最大值。
[0016]可选地,上述方法是在执行该计算任务的程序中实施。
[0017]可选地,各子计算任务是由该程序中的各计算模块执行,且各计算模块分别对应各子计算任务。
[0018]可选地,该计算组件是显卡、专用高性能计算卡或者现场可编程门阵列。
[0019]本发明还提出一种计算组件的存储管理装置,包括:
[0020]第一模块,用于确定由至少两个子计算任务组成的计算任务所需的总存储容量;
[0021]第二模块,用于根据该总存储容量申请该存储器的一存储空间;
[0022]第三模块,用于确定进行一子计算任务所需的单次存储容量;
[0023]第四模块,用于根据该单次存储容量申请该存储空间中的子存储空间,该子存储空间供该子计算任务计算时占用;
[0024]第五模块,用于当该子计算任务计算完毕后释放该子存储空间,直到该计算任务计算完毕。
[0025]与现有技术相比,本发明的存储管理技术通过进行存储的逻辑申请和释放,有效的解决了存储容量有限性的问题,对每个计算单位来说,就像全部的存储容量都归该计算单位使用一样,有效地提高了存储的使用率;而且在从存储器管理单元处申请到存储空间后,每次计算时只需向存储空间管理器申请子存储空间,比起直接向存储器管理单元申请存储的速度要快得多,也不会产生碎片。
【附图说明】
[0026]图1是本发明一实施例的计算组件的存储管理方法流程图;
[0027]图2是根据本发明一实施例的计算程序的逻辑结构;
[0028]图3是根据本发明另一实施例的计算程序的逻辑结构;
[0029]图4是根据本发明一实施例的存储管理示意图。
【具体实施方式】
[0030]为让本发明的上述目的、特征和优点能更明显易懂,以下结合附图对本发明的【具体实施方式】作详细说明。
[0031]在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其它不同于在此描述的其它方式来实施,因此本发明不受下面公开的具体实施例的限制。
[0032]计算组件,例如显卡、专用高性能计算卡和现场可编程门阵列(FPAG)通常包括计算器件和存储器。举例来说,显卡包括图形处理器(GPU)和显存。像显存这样的计算组件内部存储器的有限容量,是制约计算组件计算速度的关键因素之一。一个大规模的计算任务所需的存储量往往会显著超过计算组件内部存储器的容量。计算组件外部的存储器,例如计算机的内存通常会有明显更大的容量,但是其响应速度不及计算组件内部的存储器。因此,在利用计算组件进行大量运算时仍然期望在计算过程中主要依赖于计算组件内部的存储器。这样,如何有效地管理和使用计算组件内部的存储器,对加快计算速度起到了关键作用。
[0033]本发明的实施例提出计算组件的存储管理方法,它可以更充分地利用计算机组件的存储器,且更加快速地获得计算所需的存储。
[0034]图1示出本发明一实施例的计算组件的存储管理方法流程图。参考图1所示,本实施例的方法用于在使用该计算组件进行计算时管理该计算组件的存储器。该方法包括以下步骤:
[0035]在步骤101,确定一计算任务所需的总存储容量。此计算任务由至少两个子计算任务组成。
[0036]举例来说,一个计算任务可以是医学影像重建。这是在医疗设备通过扫描人体部位获得断层图像后,在计算机中重建人体部位影像的过程。作为举例,医学影像重建可包括投影图像预处理、滤波反投影、伪影校正等多个子计算任务。
[0037]通常而言,一个计算任务的多个子计算任务基本上是按顺序执行。这样,计算任务所需的总存储容量就可确定为这些子计算任务所需的存储容量中,存储容量最大的那一个。
[0038]当然可以理解,在计算过程的某些时段,存在两个或更多个子计算任务并行执行的实例。这时计算任务所需的总存储容量可能是两个或多个并行的子计算任务所需存储容量的和。不过,当不希望出现并行执行的情况时,可通过重新分解子计算任务来实现多个子计算任务的严格顺序执行。
[0039]分解计算任务,尤其是将其分解为顺序执行的子计算任务,可降低计算任务所需的总存储容量。举例来说,完整执行一个计算任务所需的存储容量是3GB,而通过分解,其子计算任务在同一时段可能只需2GB的总存储容量。
[0040]在步骤102,根据总存储容量申请存储器的一存储空间。
[0041]具体来说,在确定了计算任务的总存储容量后,可一次性申请计算过程所需的所有存储容量。仍然假设所需总存储容量是2GB,则此时可一次性申请2GB的存储空间。
[0042]通常而言申请是向计算组件的存储器管理单元提出。在一个实例中,计算组件的存储器管理单元是操作系统。
[0043]在步骤101-102申请到存储空间后,将会开始计算任务的计算过程。在计算过程中,进行各子计算任务时会分别申请从存储空间中使用一子存储空间,作为存储之用。
[0044]在步骤103,确定进行一子计算任务所需的单次存储容量。
[0045]举例来说,现在要进行投影图像预处理这一子计算任务,则确定进行这一任务所需的单次存储容量。假设这一单次存储容量为500MB。
[0046]在步骤104,根据单次存储容量申请使用存储空间中的子存储空间。
[0047]例如,向存储空间管理器申请使用存储空间中500MB的子存储空间。
[0048]在此,存储空间管理器是被赋予管理从存储器管理单元处申请到的存储空间的实体
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1