CN105138289A - 计算组件的存储管理方法和装置 - Google Patents
计算组件的存储管理方法和装置 Download PDFInfo
- Publication number
- CN105138289A CN105138289A CN201510514510.5A CN201510514510A CN105138289A CN 105138289 A CN105138289 A CN 105138289A CN 201510514510 A CN201510514510 A CN 201510514510A CN 105138289 A CN105138289 A CN 105138289A
- Authority
- CN
- China
- Prior art keywords
- sub
- storage space
- calculation task
- computation
- module
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种计算组件的存储管理方法和装置,用于在使用该计算组件进行计算时管理该计算组件的存储器。该方法包括以下步骤:确定由至少两个子计算任务组成的计算任务所需的总存储容量;根据该总存储容量申请该存储器的一存储空间;确定进行一子计算任务所需的单次存储容量;根据该单次存储容量申请该存储空间中的子存储空间,该子存储空间供该子计算任务计算时占用;当该子计算任务计算完毕后释放该子存储空间,直到该计算任务计算完毕。本发明可以更加有效地利用计算组件的存储器,尤其是存储容量有限的存储器。
Description
技术领域
本发明主要涉及计算组件,尤其涉及一种计算组件的存储管理方法和装置。
背景技术
随着通用并行计算架构(ComputeUnifiedDeviceArchitecture,CUDA)的普及,显卡上的图形处理器(GraphicProcessingUnit,GPU)已经被用来解决复杂的计算问题。GPU所擅长应对的是计算密集型(Compute-Intensive)问题,因为GPU内部大量分布着算术逻辑单元(arithmeticandlogicunit,ALU)阵列,这种单元应对并行度高运算密度大的问题比中央处理器(CentralProcessingUnit,CPU)获取的加速比要高很多倍。
除了显卡之外,还存在使用专用高性能计算卡、现场可编程门阵列(Field-ProgrammableGateArray,FPGA)等进行复杂技术的计算组件。
这些显卡、专用高性能计算卡、现场可编程门阵列等计算组件都会配备一定容量的存储器以供计算的过程中存储。由于成本的限制,存储器容量通常是受限的,难以应对一些应用场合的计算过程中所需的庞大存储量。为了克服这一问题,一种方法是每次计算完毕后将计算组件的存储器(后文称为内部存储器)的数据复制到外部存储器上,当计算组件需要时再将外部存储器上的数据复制到内部存储器。然而内、外部存储器间的数据复制局限于计算组件的接口的传输速度,会导致计算速度下降。
因此如何在受限的存储容量下进行大存储量的计算是上述计算组件和其他计算组件面临的挑战。
发明内容
本发明要解决的技术问题是提供一种计算组件的存储管理方法和装置,以更加有效地利用计算组件的存储器。
为解决上述技术问题,本发明提供了一种计算组件的存储管理方法,用于在使用该计算组件进行计算时管理该计算组件的存储器,该方法包括以下步骤:确定由至少两个子计算任务组成的计算任务所需的总存储容量;根据该总存储容量申请该存储器的一存储空间;确定进行一子计算任务所需的单次存储容量;根据该单次存储容量申请该存储空间中的子存储空间,该子存储空间供该子计算任务计算时占用;当该子计算任务计算完毕后释放该子存储空间,直到该计算任务计算完毕。
可选地,上述方法还包括在该计算任务计算完毕后释放该存储空间。
可选地,由该存储空间管理器向一计算组件的存储器管理单元申请该存储器的存储空间。
可选地,该子存储空间是向该存储空间管理器申请。
可选地,上述方法还包括创建并维持该存储空间管理器。
可选地,该存储空间管理器为存储管理池。
可选地,该存储器管理单元为操作系统。
可选地,该至少两个子计算任务基本上是顺序执行。
可选地,该计算任务所需的总存储容量为该至少两个子计算任务各自所需单次存储容量的最大值。
可选地,上述方法是在执行该计算任务的程序中实施。
可选地,各子计算任务是由该程序中的各计算模块执行,且各计算模块分别对应各子计算任务。
可选地,该计算组件是显卡、专用高性能计算卡或者现场可编程门阵列。
本发明还提出一种计算组件的存储管理装置,包括:
第一模块,用于确定由至少两个子计算任务组成的计算任务所需的总存储容量;
第二模块,用于根据该总存储容量申请该存储器的一存储空间;
第三模块,用于确定进行一子计算任务所需的单次存储容量;
第四模块,用于根据该单次存储容量申请该存储空间中的子存储空间,该子存储空间供该子计算任务计算时占用;
第五模块,用于当该子计算任务计算完毕后释放该子存储空间,直到该计算任务计算完毕。
与现有技术相比,本发明的存储管理技术通过进行存储的逻辑申请和释放,有效的解决了存储容量有限性的问题,对每个计算单位来说,就像全部的存储容量都归该计算单位使用一样,有效地提高了存储的使用率;而且在从存储器管理单元处申请到存储空间后,每次计算时只需向存储空间管理器申请子存储空间,比起直接向存储器管理单元申请存储的速度要快得多,也不会产生碎片。
附图说明
图1是本发明一实施例的计算组件的存储管理方法流程图;
图2是根据本发明一实施例的计算程序的逻辑结构;
图3是根据本发明另一实施例的计算程序的逻辑结构;
图4是根据本发明一实施例的存储管理示意图。
具体实施方式
为让本发明的上述目的、特征和优点能更明显易懂,以下结合附图对本发明的具体实施方式作详细说明。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其它不同于在此描述的其它方式来实施,因此本发明不受下面公开的具体实施例的限制。
计算组件,例如显卡、专用高性能计算卡和现场可编程门阵列(FPAG)通常包括计算器件和存储器。举例来说,显卡包括图形处理器(GPU)和显存。像显存这样的计算组件内部存储器的有限容量,是制约计算组件计算速度的关键因素之一。一个大规模的计算任务所需的存储量往往会显著超过计算组件内部存储器的容量。计算组件外部的存储器,例如计算机的内存通常会有明显更大的容量,但是其响应速度不及计算组件内部的存储器。因此,在利用计算组件进行大量运算时仍然期望在计算过程中主要依赖于计算组件内部的存储器。这样,如何有效地管理和使用计算组件内部的存储器,对加快计算速度起到了关键作用。
本发明的实施例提出计算组件的存储管理方法,它可以更充分地利用计算机组件的存储器,且更加快速地获得计算所需的存储。
图1示出本发明一实施例的计算组件的存储管理方法流程图。参考图1所示,本实施例的方法用于在使用该计算组件进行计算时管理该计算组件的存储器。该方法包括以下步骤:
在步骤101,确定一计算任务所需的总存储容量。此计算任务由至少两个子计算任务组成。
举例来说,一个计算任务可以是医学影像重建。这是在医疗设备通过扫描人体部位获得断层图像后,在计算机中重建人体部位影像的过程。作为举例,医学影像重建可包括投影图像预处理、滤波反投影、伪影校正等多个子计算任务。
通常而言,一个计算任务的多个子计算任务基本上是按顺序执行。这样,计算任务所需的总存储容量就可确定为这些子计算任务所需的存储容量中,存储容量最大的那一个。
当然可以理解,在计算过程的某些时段,存在两个或更多个子计算任务并行执行的实例。这时计算任务所需的总存储容量可能是两个或多个并行的子计算任务所需存储容量的和。不过,当不希望出现并行执行的情况时,可通过重新分解子计算任务来实现多个子计算任务的严格顺序执行。
分解计算任务,尤其是将其分解为顺序执行的子计算任务,可降低计算任务所需的总存储容量。举例来说,完整执行一个计算任务所需的存储容量是3GB,而通过分解,其子计算任务在同一时段可能只需2GB的总存储容量。
在步骤102,根据总存储容量申请存储器的一存储空间。
具体来说,在确定了计算任务的总存储容量后,可一次性申请计算过程所需的所有存储容量。仍然假设所需总存储容量是2GB,则此时可一次性申请2GB的存储空间。
通常而言申请是向计算组件的存储器管理单元提出。在一个实例中,计算组件的存储器管理单元是操作系统。
在步骤101-102申请到存储空间后,将会开始计算任务的计算过程。在计算过程中,进行各子计算任务时会分别申请从存储空间中使用一子存储空间,作为存储之用。
在步骤103,确定进行一子计算任务所需的单次存储容量。
举例来说,现在要进行投影图像预处理这一子计算任务,则确定进行这一任务所需的单次存储容量。假设这一单次存储容量为500MB。
在步骤104,根据单次存储容量申请使用存储空间中的子存储空间。
例如,向存储空间管理器申请使用存储空间中500MB的子存储空间。
在此,存储空间管理器是被赋予管理从存储器管理单元处申请到的存储空间的实体。存储空间管理器与存储器管理单元不同,且与本实施例的方法更为紧密地关联。例如存储空间管理器在本实施例的方法实施过程中创建和维持。举例来说,存储空间管理器可以实施为一个程序,更具体地是一个存储管理池(MemoryPool)。
存储管理池可以统一管理存储空间。在方法开始时,存储管理池可确定计算所需要的总存储容量,并向存储器管理单元申请。此后,每个子计算任务的子存储空间只需向存储管理池申请。向存储管理池申请存储比直接向操作系统这样的存储器管理单元申请存储的速度要快的多,也不会产生碎片。
在步骤105,在子计算任务完成后将子存储空间释放,直到计算任务执行完毕。
举例来说,在投影图像预处理这一子计算任务完成后,将500MB的子存储空间释放给存储空间管理器,例如前述的存储管理池。这样,存储管理池所管理的存储空间恢复到2GB。
接下来,可执行下一子计算任务,确定其所需的单次存储容量,向存储空间管理器申请对应的子存储空间用于计算,且在子计算任务完成后将子存储空间释放给存储空间管理器,以此类推,直到计算任务执行完毕。
在步骤106,在计算任务完成后释放存储空间。
举例来说,整个医学影像重建的计算任务完成后,存储空间管理器,例如存储管理池将2GB的存储空间释放给存储器管理单元,例如操作系统。可以理解,对于计算组件的存储管理来说,这一步骤并不是必须的。
以下描述存储管理池的示例性实现机制。存储管理池会保存当前正在使用的存储区块列表和空闲的存储区块列表。存储管理池向存储器管理单元申请到存储空间后,当前正在使用的列表为空,空闲的列表为申请的全部存储空间。当存储管理池被申请子存储空间时,存储管理池会检查空闲的存储容量是否够用,如果够用则将该区块从空闲列表中删除,放到正在使用的存储区块中;如果不够用,则考虑细化计算粒度以向存储管理池申请更小块的存储。
较佳地,确定合适的计算单位向存储管理池进行子存储空间的申请和释放。如果计算单位过小,会频繁的向存储管理池申请子存储空间,这样会影响本方案的整体性能。如果计算单位过大,则计算过程中使用的存储容量就会超过系统的最大存储使用量。举例来说,本实施例的存储管理方法是在执行计算任务的程序中实施。相应地,计算单位是程序中的一计算模块。
图2示出根据本发明一实施例的计算程序的逻辑结构。参考图2所示,计算程序200包括4个示例性计算单位210、220、230和240。这些计算单位的粒度大小可参考上述的因素来考虑。仍以医学影像重建为例,其计算程序可包括投影图像预处理、滤波反投影、伪影校正这些计算模块,每个计算模块执行一个对应的子计算任务。如图2所示的那样,这些计算单位210、220、230和240顺序地执行各自的子计算任务。
图3示出根据本发明另一实施例的计算程序的逻辑结构。参考图3所示,计算程序300包括5个示例性计算单位310、320、330、340和350。这些计算单位的粒度大小同样可参考上述的因素来考虑。与图2相比,这些计算单位中,计算单位310、320、330和340顺序地执行各自的子计算任务,而计算单位350与计算单位320基本上并行执行其子计算任务。
图4示出根据本发明一实施例的存储管理示意图。参考图4所示,在阶段401,从存储器管理单元处申请到存储空间A;在阶段402,计算模块1申请了子存储空间A1,存储空间A还剩余存储空间A2;在阶段403,计算模块1计算过程中使用子存储空间A1;在阶段404,计算模块1释放子存储空间A1。在阶段405,计算模块2申请了子存储空间A3,存储空间A还剩余存储空间A4;在阶段406,计算模块2计算过程中使用子存储空间A3;在阶段407,计算模块2释放子存储空间A3。依次类推,计算完成后释放存储空间A。
本发明的另一实施例提出一种计算组件的存储管理装置,包括第一至第五模块。第一模块用于确定由至少两个子计算任务组成的计算任务所需的总存储容量。第二模块用于根据该总存储容量申请该存储器的一存储空间。第三模块用于确定进行一子计算任务所需的单次存储容量。第四模块根据该单次存储容量申请该存储空间中的子存储空间,该子存储空间供该子计算任务计算时占用。第五模块用于当该子计算任务计算完毕后释放该子存储空间,直到该计算任务计算完毕。
本发明上述实施例的方法和装置相比已知技术具有以下优点:
1、通过进行存储的逻辑申请和释放,有效地解决了存储容量有限性的问题,对每个计算单位来说,就像全部的存储容量都归该计算单位使用一样,有效的提高了存储的使用率;
2、在从存储器管理单元处申请到存储空间后,每次计算时只需向存储空间管理器申请子存储空间,比起直接向存储器管理单元申请存储的速度要快得多,也不会产生碎片;
3、在每次子计算任务计算前向存储空间管理器申请本次计算所需要的存储空间,计算后进行释放,以保证下次计算时存储容量的可用性。
虽然本发明已参照当前的具体实施例来描述,但是本技术领域中的普通技术人员应当认识到,以上的实施例仅是用来说明本发明,在没有脱离本发明精神的情况下还可作出各种等效的变化或替换,因此,只要在本发明的实质精神范围内对上述实施例的变化、变型都将落在本申请的权利要求书的范围内。
Claims (13)
1.一种计算组件的存储管理方法,用于在使用该计算组件进行计算时管理该计算组件的存储器,该方法包括以下步骤:
确定由至少两个子计算任务组成的计算任务所需的总存储容量;
根据该总存储容量申请该存储器的一存储空间;
确定进行一子计算任务所需的单次存储容量;
根据该单次存储容量申请该存储空间中的子存储空间,该子存储空间供该子计算任务计算时占用;
当该子计算任务计算完毕后释放该子存储空间,直到该计算任务计算完毕。
2.如权利要求1所述的存储管理方法,其特征在于,还包括在该计算任务计算完毕后释放该存储空间。
3.如权利要求1所述的存储管理方法,其特征在于,由一存储空间管理器向该计算组件的一存储器管理单元申请该存储器的存储空间。
4.如权利要求3所述的存储管理方法,其特征在于,该子存储空间是向该存储空间管理器申请。
5.如权利要求3所述的存储管理方法,其特征在于,还包括创建并维持该存储空间管理器。
6.如权利要求3所述的存储管理方法,其特征在于,该存储空间管理器为存储管理池。
7.如权利要求3所述的存储管理方法,其特征在于,该计算组件的存储器管理单元为操作系统。
8.如权利要求1所述的存储管理方法,其特征在于,该至少两个子计算任务基本上是顺序执行。
9.如权利要求8所述的存储管理方法,其特征在于,该计算任务所需的总存储容量为该至少两个子计算任务各自所需单次存储容量的最大值。
10.如权利要求1所述的存储管理方法,其特征在于,是在执行该计算任务的程序中实施。
11.如权利要求10所述的存储管理方法,其特征在于,各子计算任务是由该程序中的各计算模块执行,且各计算模块分别对应各子计算任务。
12.如权利要求1所述的存储管理方法,其特征在于,该计算组件是显卡、专用高性能计算卡或者现场可编程门阵列。
13.一种计算组件的存储管理装置,包括:
第一模块,用于确定由至少两个子计算任务组成的计算任务所需的总存储容量;
第二模块,用于根据该总存储容量申请该存储器的一存储空间;
第三模块,用于确定进行一子计算任务所需的单次存储容量;
第四模块,用于根据该单次存储容量申请该存储空间中的子存储空间,该子存储空间供该子计算任务计算时占用;以及
第五模块,用于当该子计算任务计算完毕后释放该子存储空间,直到该计算任务计算完毕。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510514510.5A CN105138289A (zh) | 2015-08-20 | 2015-08-20 | 计算组件的存储管理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510514510.5A CN105138289A (zh) | 2015-08-20 | 2015-08-20 | 计算组件的存储管理方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105138289A true CN105138289A (zh) | 2015-12-09 |
Family
ID=54723649
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510514510.5A Pending CN105138289A (zh) | 2015-08-20 | 2015-08-20 | 计算组件的存储管理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105138289A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110969247A (zh) * | 2018-09-30 | 2020-04-07 | 北京地平线信息技术有限公司 | 基于神经网络的张量处理方法、装置和电子设备 |
WO2022105473A1 (en) * | 2020-11-17 | 2022-05-27 | Zhejiang Dahua Technology Co., Ltd. | Systems and methods for data storage and computing |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1635482A (zh) * | 2003-12-29 | 2005-07-06 | 北京中视联数字系统有限公司 | 一种嵌入式系统内存管理的方法 |
CN1722106A (zh) * | 2004-07-13 | 2006-01-18 | 中兴通讯股份有限公司 | 一种嵌入式实时操作系统中内存分配的方法 |
CN101290590A (zh) * | 2008-06-03 | 2008-10-22 | 北京中星微电子有限公司 | 一种嵌入式操作系统中切换任务的方法和单元 |
CN101290591A (zh) * | 2008-06-03 | 2008-10-22 | 北京中星微电子有限公司 | 一种嵌入式操作系统中切换任务的方法和单元 |
CN102654830A (zh) * | 2011-03-03 | 2012-09-05 | 福建星网视易信息系统有限公司 | 利用纹理排料方式优化显存空间的方法 |
CN103049328A (zh) * | 2012-11-06 | 2013-04-17 | 苏州懿源宏达知识产权代理有限公司 | 计算机系统中内存资源分配方法 |
CN104216781A (zh) * | 2013-05-29 | 2014-12-17 | 上海联影医疗科技有限公司 | 显存分配方法及系统 |
-
2015
- 2015-08-20 CN CN201510514510.5A patent/CN105138289A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1635482A (zh) * | 2003-12-29 | 2005-07-06 | 北京中视联数字系统有限公司 | 一种嵌入式系统内存管理的方法 |
CN1722106A (zh) * | 2004-07-13 | 2006-01-18 | 中兴通讯股份有限公司 | 一种嵌入式实时操作系统中内存分配的方法 |
CN101290590A (zh) * | 2008-06-03 | 2008-10-22 | 北京中星微电子有限公司 | 一种嵌入式操作系统中切换任务的方法和单元 |
CN101290591A (zh) * | 2008-06-03 | 2008-10-22 | 北京中星微电子有限公司 | 一种嵌入式操作系统中切换任务的方法和单元 |
CN102654830A (zh) * | 2011-03-03 | 2012-09-05 | 福建星网视易信息系统有限公司 | 利用纹理排料方式优化显存空间的方法 |
CN103049328A (zh) * | 2012-11-06 | 2013-04-17 | 苏州懿源宏达知识产权代理有限公司 | 计算机系统中内存资源分配方法 |
CN104216781A (zh) * | 2013-05-29 | 2014-12-17 | 上海联影医疗科技有限公司 | 显存分配方法及系统 |
Non-Patent Citations (2)
Title |
---|
SHUAICHE等: "Dymaxion:Optimizing memory access patterns for heterogeneous systems", 《HIGH PERFORMANCE COMPUTING,NETWORK,STORAGE AND ANALYSIS》 * |
李卫平等: "嵌入式系统的实时性", 《运动控制系统原理与应用》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110969247A (zh) * | 2018-09-30 | 2020-04-07 | 北京地平线信息技术有限公司 | 基于神经网络的张量处理方法、装置和电子设备 |
CN110969247B (zh) * | 2018-09-30 | 2024-04-09 | 北京地平线信息技术有限公司 | 基于神经网络的张量处理方法、装置和电子设备 |
WO2022105473A1 (en) * | 2020-11-17 | 2022-05-27 | Zhejiang Dahua Technology Co., Ltd. | Systems and methods for data storage and computing |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9972063B2 (en) | Pipelined approach to fused kernels for optimization of machine learning workloads on graphical processing units | |
CA2987325C (en) | Cnn processing method and device | |
CN1983196B (zh) | 用于将执行线程分组的系统和方法 | |
CN111258744A (zh) | 一种基于异构计算的任务处理方法及软硬件框架系统 | |
KR102466984B1 (ko) | 중앙 프로세싱 유닛(cpu)과 보조 프로세서 사이의 개선된 함수 콜백 메커니즘 | |
CN110704360A (zh) | 一种基于异构fpga数据流的图计算优化方法 | |
CN110308982B (zh) | 一种共享内存复用方法及装置 | |
US10970805B2 (en) | Graphics processing unit operation | |
WO2020163315A1 (en) | Systems and methods for artificial intelligence with a flexible hardware processing framework | |
CN105700956A (zh) | 用于处理分布式作业的方法和系统 | |
US9105208B2 (en) | Method and apparatus for graphic processing using multi-threading | |
Shontz et al. | CPU-GPU algorithms for triangular surface mesh simplification | |
WO2019184888A1 (zh) | 一种基于卷积神经网络的图像处理的方法和装置 | |
WO2014032008A2 (en) | Method and system for generating mesh from images | |
CN110032450B (zh) | 一种基于固态盘扩展内存的大规模深度学习方法及系统 | |
CN105138289A (zh) | 计算组件的存储管理方法和装置 | |
CN103197917A (zh) | 计算线程阵列粒度执行抢占 | |
CN108427584A (zh) | 快速启动的具有并行计算核的芯片及该芯片的配置方法 | |
KR102026333B1 (ko) | 분산 파일 시스템에 대한 태스크 처리 방법 | |
US10062135B2 (en) | Graphics processing unit management system for computed tomography | |
US10713581B2 (en) | Parallelization and synchronization of procedures to enable overhead hiding | |
DE102022105958A1 (de) | Techniken zum ausgleichen von arbeitslasten beim parallelisieren von multiplizier-akkumulier-berechnungen | |
Ho et al. | Towards FPGA-assisted spark: An SVM training acceleration case study | |
Park et al. | Transparent GPU memory management for DNNs | |
Ha et al. | ISP: An optimal out-of-core image-set processing streaming architecture for parallel heterogeneous systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 201807 Shanghai City, north of the city of Jiading District Road No. 2258 Applicant after: Shanghai Lianying Medical Technology Co.,Ltd. Address before: 201807 no.2258, Chengbei Road, Jiading District, Shanghai Applicant before: SHANGHAI UNITED IMAGING HEALTHCARE Co.,Ltd. |
|
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20151209 |