应用于半导体量测的显存管理方法及系统与流程

摘要: 本发明涉及半导体,具体涉及一种应用于半导体量测的显存管理方法及系统。背景技术:1、随着半导体量检测行业的发展,相关并行算法的任务规模和并发度提高。在现有的算法流...
应用于半导体量测的显存管理方法及系统与流程

本发明涉及半导体,具体涉及一种应用于半导体量测的显存管理方法及系统。

背景技术:

1、随着半导体量检测行业的发展,相关并行算法的任务规模和并发度提高。在现有的算法流程中,需要在主机内存与显存之间频繁搬移计算数据,而显存申请与释放会引入额外的系统开销。若每次计算任务都直接申请和/或释放显存,易导致系统吞吐下降和时延抖动。因此通常会采用显存池复用技术来降低重复分配与释放的成本。但是现有的显存池复用技术在应对高并发、跨线程的动态显存分配与回收时,难以有效平衡线程同步开销与系统吞吐量,存在并发调度效率低下的问题。

技术实现思路

1、针对现有技术存在的问题,本技术提供了一种应用于半导体量测的显存管理方法及系统,能够提高高并发下显存分配的吞吐量、稳定性和并发调度效率,从而提高半导体量测效率。所述技术方案如下:

2、一方面,提供了一种应用于半导体量测的显存管理方法,所述方法包括:

3、显存池响应于第一线程为处理半导体量测数据任务而发起的显存分配请求,根据所述第一线程的线程标识,确定已与所述第一线程建立动态绑定关系的目标分流槽,并将所述显存分配请求路由至所述目标分流槽;

4、所述目标分流槽根据所述显存分配请求的请求显存容量与显存阈值之间的关系,将所述显存分配请求分流至第一分配路径或第二分配路径;

5、在所述显存分配请求分流至所述第一分配路径时,若所述第一分配路径中无可复用状态的显存块,所述显存分配请求所匹配的复用管理单元在申请新显存块后,将所述新显存块的块地址与自身的关联关系记录至地址记录模块中,以建立地址关联映射,并将所述新显存块分配给所述第一线程;

6、所述显存池响应于第二线程在待释放显存块关联的半导体量测数据任务完成时发起的显存释放请求,根据所述显存释放请求中携带的所述待释放显存块的块地址在所述地址记录模块中查询所述待释放显存块的地址对应的复用管理单元;

7、若查询到对应的复用管理单元,对应的所述复用管理单元将所述待释放显存块标记为可复用状态。

8、可选地,所述地址记录模块包括多个分段记录表,所述多个分段记录表配置有相互独立的分片隔离互斥机制,以提供并发访问控制通道;

9、所述显存分配请求所匹配的复用管理单元将所述新显存块的块地址与自身的关联关系记录至地址记录模块中,以建立地址关联映射,包括:

10、根据所述新显存块的块地址确定第一分段索引,并基于所述第一分段索引将所述关联关系记录至对应的分段记录表中;

11、所述根据所述显存释放请求中携带的待释放显存块的地址在所述地址记录模块中查询所述待释放显存块的地址对应的复用管理单元,包括:

12、根据所述待释放显存块的地址确定所述待释放显存块对应的第二分段索引;

13、根据所述第二分段索引,通过对应的并发访问控制通道,定位至对应的分段记录表进行检索,以确定相应的复用管理单元。

14、可选地,所述显存池响应于第一线程为处理半导体量测数据任务而发起的显存分配请求,根据所述第一线程的线程标识,确定已与所述第一线程建立动态绑定关系的目标分流槽,包括:

15、检索是否存在与所述第一线程的线程标识已绑定的分流槽,若存在,则将检索到的分流槽作为所述目标分流槽;

16、若不存在,对未绑定线程的分流槽进行复用,并将相应的分流槽与所述第一线程进行绑定,以将所述分流槽作为目标分流槽。

17、可选地,所述目标分流槽根据所述显存分配请求的请求显存容量与显存阈值之间的关系,将所述显存分配请求分流至第一分配路径或第二分配路径,包括:

18、对所述请求显存容量与所述显存阈值进行比较;

19、若所述请求显存容量不大于所述显存阈值,将所述显存分配请求分流至第一分配路径;

20、若所述请求显存容量大于所述显存阈值,将所述显存分配请求分流至第二分配路径。

21、可选地,所述将所述显存分配请求分流至第一分配路径之后,所述方法还包括:

22、若所述第一分配路径中有可复用状态的显存块,由所述显存分配请求所匹配的复用管理单元从标记为可复用状态的显存块中进行复用,以将相应的显存块作为所述显存分配请求申请到的显存块;

23、所述将所述显存分配请求分流至第二分配路径之后,所述方法包括:

24、所述目标分流槽调用驱动器,以使所述驱动器按照所述请求显存容量分配对应的显存块。

25、可选地,所述方法还包括:

26、若未查询到对应的复用管理单元,所述显存池调用驱动器对所述待释放显存块的显存空间进行释放。

27、可选地,所述第一分配路径包括记录页分配路径,所述复用管理单元包括记录页,所述第二分配路径包括驱动器直分配路径。

28、另一方面,提供了一种应用于半导体量测的显存管理系统,包括:显存池、分流槽模块、复用管理模块和地址记录模块,所述分流槽模块包括目标分流槽,所述复用管理模块包括多个复用管理单元;

29、显存池用于响应于第一线程为处理半导体量测数据任务而发起的显存分配请求,根据所述第一线程的线程标识,确定已与所述第一线程建立动态绑定关系的目标分流槽,并将所述显存分配请求路由至所述目标分流槽;

30、目标分流槽用于根据所述显存分配请求的请求显存容量与显存阈值之间的关系,将所述显存分配请求分流至第一分配路径或第二分配路径;

31、与所述显存分配请求所匹配的复用管理单元用于在所述显存分配请求分流至所述第一分配路径时,若所述第一分配路径中无可复用状态的显存块,申请新显存块,并将所述新显存块的块地址与自身的关联关系记录至地址记录模块中,以建立地址关联映射,并将所述新显存块分配给所述第一线程;

32、显存池还用于响应于第二线程在待释放显存块关联的半导体量测数据任务完成时发起的显存释放请求,根据所述显存释放请求中携带的待释放显存块的地址在所述地址记录模块中查询所述待释放显存块的地址对应的复用管理单元;

33、若查询到对应的复用管理单元,所述对应的复用管理单元还用于将所述待释放显存块标记为可复用状态。

34、可选地,所述系统还包括:

35、驱动器,用于按照所述请求显存容量分配对应的显存块;

36、所述驱动器还用于在未查询到对应的复用管理单元的情况下,对所述待释放显存块的显存空间进行释放。

37、另一方面,提供了一种应用于半导体量测的显存管理系统,其特征在于,包括:显存池、分流槽模块、复用管理模块和地址记录模块,所述分流槽模块包括目标分流槽,所述复用管理模块包括多个复用管理单元;所述显存管理系统用于执行上述所述的应用于半导体量测的显存管理方法的步骤。

38、另一方面,提供了一种计算机可读存储介质,所述存储介质内存储有计算机程序,所述计算机程序能够被处理器执行以实现上述所述的应用于半导体量测的显存管理方法的步骤。

39、另一方面,提供了一种包含指令的计算机程序产品,当所述指令在计算机上运行时,使得计算机执行上述所述的应用于半导体量测的显存管理方法的步骤。

40、本技术提供的技术方案至少可以带来以下有益效果:

41、本技术中的显存池通过响应于第一线程为处理半导体量测数据任务而发起的显存分配请求,并根据第一线程的线程标识将其显存分配请求路由至目标分流槽,能够降低显存分配路径上的共享竞争,提高高并发下显存分配的吞吐稳定性,且目标分流槽会根据显存分配请求的请求显存容量与显存阈值的关系来将显存分配请求分流至第一分配路径或第二分配路径,能够减少对于请求显存较大的线程在锁竞争等方面的不利影响;此外,通过建立地址关联映射,能够实现跨线程释放的快速归属定位,减少全局扫描与复杂归还路径的维护成本,而且,通过常规块复用能够降低驱动调用次数,减少显存管理开销与抖动,从而提高半导体量测的效率。