CN114168300A - 线程调度方法、处理器以及电子装置 - Google Patents

线程调度方法、处理器以及电子装置 Download PDF

Info

Publication number
CN114168300A
CN114168300A CN202111563650.3A CN202111563650A CN114168300A CN 114168300 A CN114168300 A CN 114168300A CN 202111563650 A CN202111563650 A CN 202111563650A CN 114168300 A CN114168300 A CN 114168300A
Authority
CN
China
Prior art keywords
thread group
thread
resource
allocation
storage resource
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
CN202111563650.3A
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.)
Haiguang Information Technology Co Ltd
Original Assignee
Haiguang Information Technology Co Ltd
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 Haiguang Information Technology Co Ltd filed Critical Haiguang Information Technology Co Ltd
Priority to CN202111563650.3A priority Critical patent/CN114168300A/zh
Publication of CN114168300A publication Critical patent/CN114168300A/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
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/065Partitioned buffers, e.g. allowing multiple independent queues, bidirectional FIFO's
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)

Abstract

一种线程调度方法、处理器以及电子装置。该线程调度方法包括:响应于接收到针对线程组的资源分配请求,确定是否能够独立于共享存储资源对线程组进行私有存储资源分配;响应于确定独立于共享存储资源对线程组进行私有存储资源分配,将用于线程组的私有存储资源分配给线程组;响应于共享存储资源满足线程组的分配需要,将用于线程组的共享存储资源分配给线程组。该线程调度方法将资源分配过程分为两步实现,将私有存储资源分配与共享存储资源分配拆解为两个彼此独立的过程,通过延后分配暂时不满足分配要求的共享存储资源并提前分配私有存储资源,以此达到提前分配资源的目的,从而提高运行效率,缩短整个任务完成的时间。

Description

线程调度方法、处理器以及电子装置
技术领域
本公开的实施例涉及一种线程调度方法、处理器以及电子装置。
背景技术
图形处理器(Graphics Processing Unit,GPU),又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(例如平板电脑、智能手机等)上做图像和图形相关计算工作的微处理器。GPU可以将计算机系统所需要的显示信息进行转换驱动,并向显示器提供行扫描信号,从而控制显示器进行正确显示。GPU是连接显示器和电脑主板(电脑主板例如包括中央处理器)的重要元件,也是实现“人机对话”的重要设备之一。
发明内容
本公开至少一实施例提供一种线程调度方法,包括:响应于接收到针对线程组的资源分配请求,确定是否能够独立于共享存储资源对线程组进行私有存储资源分配;响应于确定独立于共享存储资源对线程组进行私有存储资源分配,将用于线程组的私有存储资源分配给线程组;响应于共享存储资源满足线程组的分配需要,将用于线程组的共享存储资源分配给线程组。
例如,本公开至少一实施例提供的线程调度方法还包括:在将用于线程组的私有存储资源分配给线程组之后,将线程组记录为处于部分分配状态的待分配线程组;其中,待分配线程组是指已经完成私有存储资源分配、还未进行共享存储资源分配的线程组,且属于待分配线程组集合。
例如,在本公开至少一实施例提供的线程调度方法中,将用于线程组的共享存储资源分配给线程组,包括:基于线程组作为待分配线程组的分配信息,将用于线程组的共享存储资源分配给线程组。
例如,在本公开至少一实施例提供的线程调度方法中,确定是否能够独立于共享存储资源对线程组进行私有存储资源分配,包括:根据资源分配请求,判断私有存储资源是否可分配给线程组以及共享存储资源是否可分配给线程组;响应于私有存储资源可分配给线程组且共享存储资源不可分配给线程组,确定独立于共享存储资源对线程组进行私有存储资源分配。
例如,在本公开至少一实施例提供的线程调度方法中,确定独立于共享存储资源对线程组进行私有存储资源分配,包括:判断部分分配状态操作的数量是否小于预设阈值,其中,部分分配状态操作是指已经完成私有存储资源分配、还未进行共享存储资源分配的操作;响应于部分分配状态操作的数量小于预设阈值,确定独立于共享存储资源进行私有存储资源分配。
例如,在本公开至少一实施例提供的线程调度方法中,判断部分分配状态操作的数量是否小于预设阈值,包括:判断待分配线程组集合的成员数量是否小于预设阈值。
例如,在本公开至少一实施例提供的线程调度方法中,处于部分分配状态的待分配线程组的分配信息存储在信息分配存储器中,判断待分配线程组集合的成员数量是否小于预设阈值包括:检查信息分配存储器中待分配线程组集合对应的分配信息的项目数量是否小于预设阈值,其中,待分配线程组集合对应的分配信息的项目数量等于待分配线程组集合的成员数量。
例如,在本公开至少一实施例提供的线程调度方法中,信息分配存储器包括先进先出存储器,该先进先出存储器的深度大于或等于预设阈值。
例如,在本公开至少一实施例提供的线程调度方法中,预设阈值大于或等于2。
例如,在本公开至少一实施例提供的线程调度方法中,将线程组记录为处于部分分配状态的所述待分配线程组,包括:将分配信息通知控制单元,并将分配信息写入信息分配存储器。
例如,在本公开至少一实施例提供的线程调度方法中,分配信息包括用于线程组的私有存储资源的地址和大小以及线程组被分配到的资源标识。
例如,本公开至少一实施例提供的线程调度方法,还包括:在将用于线程组的共享存储资源分配给线程组之后,通知控制单元被分配给线程组的共享存储资源属性并删除信息分配存储器中对应于资源分配请求的分配信息。
例如,在本公开至少一实施例提供的线程调度方法中,确定是否能够独立于共享存储资源对线程组进行私有存储资源分配,还包括:响应于私有存储资源与共享存储资源均不可分配给线程组,或者响应于部分分配状态操作的数量大于或等于预设阈值,确定不进行独立于共享存储资源的私有存储资源分配。
例如,在本公开至少一实施例提供的线程调度方法中,根据资源分配请求,判断私有存储资源是否可分配给线程组以及共享存储资源是否可分配给线程组,包括:通过资源掩码矩阵检查当前资源状态,并根据当前资源状态判断私有存储资源和共享存储资源是否满足资源分配请求的需求。
例如,本公开至少一实施例提供的线程调度方法,还包括:监测资源掩码矩阵,判断是否有共享存储资源被释放,并判断共享存储资源是否满足线程组的分配需要。
例如,在本公开至少一实施例提供的线程调度方法中,线程调度方法用于内核程序的线程调度。
本公开至少一实施例提供一种处理器,包括:处理单元,配置为执行线程组;资源管理器,配置为在确定独立于共享存储资源对线程组进行私有存储资源分配的情形,将私有存储资源分配给线程组。
例如,在本公开至少一实施例提供的处理器中,处理单元包括:控制单元,配置为将处于部分分配状态的待分配线程组的分配信息提供给资源管理器。
例如,在本公开至少一实施例提供的处理器中,资源管理器还配置为:响应于接收到针对线程组的资源分配请求,确定是否能够独立于共享存储资源对线程组进行私有存储资源分配;在将私有存储资源分配给线程组之后,响应于共享存储资源满足线程组的分配需要,将用于线程组的共享存储资源分配给线程组。
例如,在本公开至少一实施例提供的处理器中,处理单元还包括多个向量处理单元和共享存储器;每个向量处理单元包括向量寄存器和标量寄存器,向量寄存器和标量寄存器作为私有存储资源提供给线程组;共享存储器作为共享存储资源提供给线程组。
本公开至少一实施例提供一种电子装置,包括本公开至少一实施例提供的处理器。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1为一种着色器处理单元的结构示意图;
图2A为向量寄存器掩码矩阵的示意图;
图2B为标量寄存器掩码矩阵的示意图;
图2C为共享存储资源掩码矩阵的示意图;
图3A示出了一种线程排分配与内核程序执行的时序示意图;
图3B示出了本公开至少一个实施例提供的线程排分配与内核程序执行的时序示意图;
图4A示出了本公开至少一个实施例提供的线程调度方法的流程图;
图4B示出了本公开至少一个实施例提供的图4A中的步骤S401的方法流程图;
图4C示出了本公开一些实施例提供的一种示例性的线程调度方法的流程示意图;
图5示出了本公开至少一个实施例提供的处理器的示意图;
图6A为本公开至少一个实施例提供的一种电子装置的示意图;以及
图6B为本公开至少一个实施例提供的另一种电子装置的示意图。
具体实施方式
为了使得本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其它实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其它元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”:等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
为了保持本公开实施例的以下说明清楚且简明,本公开省略了部分已知功能和已知部件的详细说明。
图1为一种着色器处理单元(Shader Processing Unit,SPU)100的结构示意图。
如图1所示,SPU 100用于执行GPU内核程序等任务,可以包括多个向量处理单元(Vector Execution Unit,VEU)101、线程簇共享内存(Thread Cluster Shared Memory,TCSM)102、着色器控制单元(Shader Control Unit,SCU)103、着色器资源管理器(ShaderResource Manager,SRM)(图中未示出)、指令接口模块(Command Interface,CI)(图中未示出)。需要说明的是,图1示意性示出了4个VEU 101,但这并不构成对本公开实施例的限制,VEU 101可以为任意数量,例如2个、3个、5个等,这可以根据实际需求而定。
在内核程序的并行计算中,计算任务一般通过多个线程(thread)执行。线程是GPU运算中的最小执行单元,一个线程能够完成一个最小的逻辑意义操作。线程簇(ThreadCluster,TC)是由CI下发的最小线程组单元,最多可以包含2048个线程,线程排(ThreadPlatoon,TP)是SRM处理的最小线程组单元,最多可以包含64个线程。GPU的内核程序在VEU101中执行,每个VEU 101包括向量寄存器(Vector Register,VR)和标量寄存器(ScalarRegister,SR),每个VR包含64个32位寄存器,每个单独的32位寄存器供一个TP中的一个线程使用,一个TP可以根据自身需求请求多个VR。每个SR为32位寄存器,每个SR供一个TP中的所有线程使用,一个TP可以根据自身需求请求多个SR。属于同一个TC的不同TP可以通过TCSM进行数据共享,该TCSM相当于一个TC的缓存。
SCU 103作为SPU 100的控制单元在执行GPU内核程序的过程中负责取指译码等任务。CI负责将下发的任务进行解包,从而将解包得到的TC和相关信息调度到不同的SRM上进行拆分。SRM用于将CI发送的TC拆分成单个TP,并将每个TP分配到不同的VEU上,同时为每个TP分配相应的硬件资源。GPU的内核程序通过SCU进行取指和解码,然后由SRM通过拆分CI下发的TC得到TP,将TP作为最小单元在SPU中的VEU上进行执行。只有SRM在选定的满足TP的硬件资源需求量的SPU和VEU上指定属于该TP的硬件资源并通知SCU硬件资源分配完成之后,该TP的内核程序才能被SCU从内存中取指解码并执行。
硬件资源包括私有存储资源和共享存储资源。属于一个TP的私有存储资源包括VR、SR等,属于同一个TC的所有TP的共享存储资源包括TCSM等。每个VEU在SRM中都保存一个自己私有的掩码表,以用于记录属于该VEU的私有存储资源的使用情况。记录多个VEU的私有存储资源的使用情况的多个掩码表形成一个掩码矩阵,图2A示出了私有存储资源中VR的掩码矩阵,图2B示出了私有存储资源中SR的掩码矩阵。如图2A和图2B所示,N-1个VEU对应于N-1个VR掩码表和N-1个SR掩码表,N-1个VR掩码表形成VR掩码矩阵,N-1个SR掩码表形成SR掩码矩阵。这里,N≥2且为整数。同理,每个SPU也有一个自己私有的掩码表,以用于记录属于该SPU的共享存储资源的使用情况,多个掩码表也形成掩码矩阵,图2C示出了共享存储资源中TCSM的掩码矩阵。如图2C所示,M-1个SPU对应于M-1个TCSM掩码表,这M-1个TCSM掩码表形成TCSM掩码矩阵。这里,M≥2且为整数。
在图2A、图2B、图2C中,纵坐标表示SPU/VEU编号,例如,纵坐标为VEU_0,则表示掩码矩阵中纵坐标为VEU_0的行存储了编号为VEU_0的VEU所对应的私有存储资源的掩码表。当一个TP的资源请求得到SRM的响应时,分配给该TP的各种硬件资源都会在分配给该TP的VEU的对应资源掩码表中标记为使用中,也即,将相应资源的状态在掩码表中标记为使用中,这样,后续的TP就无法使用被占用的资源,从而避免资源冲突及重复分配。例如,在一个示例中,假设每个VEU有100个VR,第一个TP被分配20个VR,之后的TP就只能从剩余的80个VR中进行分配。
当一个TP要求SRM分配硬件资源时,SRM会遍历所有硬件资源的掩码矩阵(例如,VR的掩码矩阵、SR的掩码矩阵、TCSM的掩码矩阵),只有所有硬件资源都能满足该TP的硬件资源需求时才会响应该TP的硬件资源请求。当该TP的硬件资源请求被响应时,SRM会为该TP指定一个满足其硬件资源需求的SPU上的某一个VEU来执行内核程序,并选定分配给该TP的SPU的共享存储资源的编号和分配给该TP的VEU的私有存储资源的编号。同时,SRM会将该TP使用的硬件资源属性(硬件资源的地址和大小)存储在一个存储器中。
共享存储资源是属于SPU的硬件资源,并由一个TC内的所有TP共享,所以这个TC中的所有TP必须被分配到同一个SPU上,以确保共享存储资源可以被使用。在寻找所有满足条件的VEU的时候必须考虑到同一个TC中后续TP的需求,而不仅仅考虑当前正在分配的TP,以防后续的TP分配不到足够的空闲资源。因此,在SRM看来,一个TC的第一个TP的硬件资源需求量是最大的,只要有可用的VEU和SPU能满足第一个TP的需求,整个TC的所有TP都可以依次被分配;反之,整个TC的拆分都会被暂停,直到分配给先前TC的TP完成执行并释放足够的硬件资源后才继续分配。
当SCU从存储器中取回指令并进行译码操作,并根据译码结果判断该指令为内核程序的最后一条指令(也即END指令)后,SCU会在END指令执行完成后通知SRM释放该TP占用的所有资源。SRM在得到SCU发送的该TP分配到的SPU编号、VEU编号和TP编号后,根据这3个编号索引保存TP使用的硬件资源的存储器,并取得该TP使用的硬件资源属性,然后根据硬件资源属性释放硬件资源并更新硬件资源的掩码矩阵(即将资源掩码矩阵中的对应的掩码表中的硬件资源设置为未使用)。对于共享存储资源,只有SCU通知SRM当前已完成的TP是整个TC中的最后一个TP时,SRM才会根据存储器中存储的硬件资源属性进行共享存储资源释放。一个TC中的所有TP能被连续分配的条件是第一个TP所需的各种硬件资源均满足条件。如果有任意资源不满足条件,整个TC中的所有TP都无法分配。
然而,在不同的内核程序中,可能在内核程序最后的部分中才使用TCSM资源,因此一个TP在开始执行内核程序时并不需要使用TCSM资源。但是,由于TCSM资源只能在一个TC的最后一个TP执行完内核程序后才会被释放,如果此时下一个TC只有TCSM资源不满足资源需求,整个TC中的所有TP都无法得到资源分配而必须等到上一个TC中的最后一个TP执行完整个内核程序。这极大地减少了任务的并行度,并延长了所有任务执行的总时间。
本公开至少一个实施例提供一种线程调度方法,包括:响应于接收到针对线程组的资源分配请求,确定是否能够独立于共享存储资源对线程组进行私有存储资源分配;响应于确定独立于共享存储资源对线程组进行私有存储资源分配,将用于线程组的私有存储资源分配给线程组;响应于共享存储资源满足线程组的分配需要,将用于线程组的共享存储资源分配给线程组。
本公开至少一个实施例还提供应用上述线程调度方法的处理器和包括该处理器的电子装置。
本公开上述实施例提供的线程调度方法能够将资源分配过程分为两步实现,也即,在共享存储资源不满足分配需求的前提下先独立进行私有存储资源分配,然后在共享存储资源满足分配需求时进行共享存储资源分配。通过延后分配不满足分配需求的共享存储资源,可以达到提前分配资源的目的,从而缩短整个任务完成的时间。而且,由于本公开上述实施例提供的线程调度方法不需要做任何软件上的改动,因此在简化软件设计的前提下提升了性能。例如,在一些示例中,通过利用该线程调度方法,可以在TCSM资源不满足分配需求时先单独分配私有存储资源,然后在TCSM资源满足需求后再分配TCSM资源。由此,如果能分步分配TCSM资源,让先满足需求的资源先行分配,后一个TC中的TP就能由于分配了私有存储资源而提前执行内核程序,因此后一个TC可以提前执行与暂时不需要的资源无关的程序段,此时就可以与前一个TC在执行内核程序时发生时间上的重合,从而提高了任务的并行度,缩短整个任务的执行总时间。
下面结合附图对本公开的实施例进行详细说明,但是本公开并不限于这些具体的实施例。
图3A示出了一种TP分配与内核程序执行的时序示意图。
如图3A所示,横坐标表示时间,纵坐标表示执行的任务。在此示例中,总共有2个TC(TC0和TC1),TC0包含3个TP(TC0_TP0、TC0_TP1和TC0_TP2),TC1包含3个TP(TC1_TP0、TC1_TP1和TC1_TP2),每个TP各自执行相应的内核程序。首先进行TC0_TP0的创建与分配,在TC0_TP0的创建与分配完成时,TC0_TP0开始执行内核程序,同时进行TC0_TP1的创建与分配;在TC0_TP1的创建与分配完成时,TC0_TP1开始执行内核程序,同时进行TC0_TP2的创建和分配;在TC0_TP2的创建与分配完成后,TC0_TP2开始执行内核程序。对于共享存储资源TCSM,在TC0_TP2完成内核程序的执行后,TC0的TCSM资源被释放,此时进行TC1_TP0的创建与分配。TC1中的3个TP执行任务的时序和上述TC0中的3个TP执行任务的时序类似,在此不再赘述。在此实施例中,在内核程序的执行过程的前一部分进行私有存储资源的数据操作,在最后的部分中才进行共享存储资源的数据操作。
从上文可知,如果共享存储资源的数据操作在内核程序中处于最后的部分,则一个TP在开始执行内核程序时并不需要共享存储资源满足其需求。因此,在一个TC的最后一个TP完成创建与分配时,如果下一个TC只有共享存储资源不满足需求,则可以提前进行下一个TC的创建与分配(例如先独立分配私有存储资源,而延后分配共享存储资源),从而得到新的时序图,新的时序在图3B中示出。
图3B示出了本公开至少一个实施例提供的TP分配与内核程序执行的时序示意图。
如图3B所示,首先进行TC0_TP0的创建与分配,在TC0_TP0的创建与分配完成时,TC0_TP0开始执行内核程序,同时进行TC0_TP1的创建与分配;在TC0_TP1的创建与分配完成时,TC0_TP1开始执行内核程序,同时进行TC0中的最后一个TP(TC0_TP2)的创建和分配;在TC0_TP2的创建与分配完成时,就开始进行TC1_TP0的创建与分配(即,为TC1分配除TCSM以外的硬件资源)。假设在TC0_TP2执行完内核程序时,TC0的TCSM资源被释放,此时,为TC1分配TCSM资源。从图3B中可知,在为TC1分配TCSM资源时,TC1_TP0还没有开始共享存储资源的数据操作,因此上述资源分配方式不会影响TC1_TP0的执行。之后的过程和图3A类似,在此不再赘述。
对比图3A和图3B的时序图可知,将资源分配过程分为两步实现(也即,先独立分配私有存储资源,延后分配暂时不满足分配需求的TCSM资源),可以达到提前分配资源的目的,从而缩短了整个任务完成的时间,所节约的时间在图3B中示出。关于图3B对应的线程调度方法,将在下文进一步说明。
图4A示出了本公开至少一个实施例提供的线程调度方法的流程图。
如图4A所示,该线程调度方法包括步骤S401~S403。例如,该线程调度方法用于GPU的内核程序的线程调度。
步骤S401:响应于接收到针对线程组的资源分配请求,确定是否能够独立于共享存储资源对线程组进行私有存储资源分配。
例如,线程组可以为上文所述的TC,共享存储资源可以包括TCSM,私有存储资源可以包括VR、SR。独立于共享存储资源对线程组进行私有存储资源分配表示仅进行私有存储资源分配而暂时不分配共享存储资源。并且,共享存储资源不限于上述TCSM,也可以为其它任意类型的存储资源,只要是同一个TC共享的资源,都可以作为该共享存储资源。
在本公开的一些实施例中,在步骤S401中,确定是否能够独立于共享存储资源对线程组进行私有存储资源分配可以包括步骤S411~S412,在图4B中示出。
步骤S411:根据资源分配请求,判断私有存储资源是否可分配给线程组以及共享存储资源是否可分配给线程组。
在本公开的一些实施例中,根据资源分配请求,判断私有存储资源是否可分配给线程组以及共享存储资源是否可分配给线程组,包括:通过资源掩码矩阵检查当前资源状态,并根据当前资源状态判断私有存储资源和共享存储资源是否满足资源分配请求的需求。
例如,资源掩码矩阵可以包括图2A、图2B所示的私有存储资源的掩码矩阵以及图2C所示的共享存储资源的掩码矩阵,资源掩码矩阵中存储有掩码表,已经分配给线程组的各种硬件资源都会在对应的掩码表中标记为使用中,通过资源掩码矩阵就可以知道当前还未使用的硬件资源,并由此判断未使用的硬件资源是否满足资源分配请求的需求。
步骤S412:响应于私有存储资源可分配给线程组且共享存储资源不可分配给线程组,确定独立于共享存储资源对线程组进行私有存储资源分配。
在本公开的一些实施例中,在步骤S412中,确定独立于共享存储资源对线程组进行私有存储资源分配,可以包括:判断部分分配状态操作的数量是否小于预设阈值,其中,部分分配状态操作是指已经完成私有存储资源分配、还未进行共享存储资源分配的操作;响应于部分分配状态操作的数量小于预设阈值,确定独立于共享存储资源进行私有存储资源分配。
在本公开的一些实施例中,预设阈值大于或等于2,预设阈值的具体数值可以根据实际情况决定。
例如,在一些示例中,若预设阈值为2,若部分分配状态操作的数量小于2,则表明已完成私有存储资源分配、还未进行共享存储资源分配的操作少于2,此时可以单独进行私有存储资源分配而暂不进行共享存储资源分配。若部分分配状态操作的数量大于或等于2,则表明已完成私有存储资源分配、还未进行共享存储资源分配的操作多于或等于2,此时不进行单独的私有存储资源分配,以避免等待分配的操作过多而影响整个任务的执行时序。
在本公开的一些实施例中,在步骤S401中,确定是否能够独立于共享存储资源对线程组进行私有存储资源分配,还可以包括:响应于私有存储资源与共享存储资源均不可分配给线程组,或者响应于部分分配状态操作的数量大于或等于预设阈值,确定不进行独立于共享存储资源的私有存储资源分配。
步骤S402:响应于确定独立于共享存储资源对线程组进行私有存储资源分配,将用于线程组的私有存储资源分配给线程组。
在本公开的一些实施例中,在将用于线程组的私有存储资源分配给线程组之后,将线程组记录为处于部分分配状态的待分配线程组。例如,待分配线程组是指已经完成私有存储资源分配、还未进行共享存储资源分配的线程组,且属于待分配线程组集合。
例如,待分配线程组集合的成员数量为待分配线程组集合中包含的待分配线程组的数量。
待分配线程组集合中包含的待分配线程组的数量等于部分分配状态操作的数量,因此,判断部分分配状态操作的数量是否小于预设阈值包括:判断待分配线程组集合的成员数量是否小于预设阈值。
在本公开的一些实施例中,处于部分分配状态的待分配线程组的分配信息存储在信息分配存储器中,判断待分配线程组集合的成员数量是否小于预设阈值可以包括:检查信息分配存储器中待分配线程组集合对应的分配信息的项目数量是否小于预设阈值。例如,待分配线程组集合对应的分配信息的项目数量等于待分配线程组集合的成员数量。
例如,处于部分分配状态的带分配线程组的分配信息包括用于线程组的私有存储资源的地址和大小以及线程组被分配到的资源标识。
例如,线程组被分配到的资源标识包括线程组所在的SPU的编号、线程组的编号和TCSM的需求量。
例如,信息分配存储器包括先进先出(FIFO)存储器,该先进先出存储器的深度大于或等于预设阈值。例如,分配信息的一个项目占用FIFO存储器的一个深度,分配信息的一个项目包括待分配线程组对应的私有存储资源的地址和大小以及被分配到的资源标识等各种信息,分配信息的一个项目可以理解为某一待分配线程组对应的所有需要记录的资源信息。例如,分配信息的不同项目对应于不同的待分配线程组。
在本公开的一些实施例中,将线程组记录为处于部分分配状态的待分配线程组包括:将分配信息通知控制单元,并将分配信息写入信息分配存储器。
例如,控制单元为图1所示的SCU 103。将线程组记录为处于部分分配状态的待分配线程组包括通知SCU分配信息,并将分配信息写入到上述先进先出存储器。
步骤S403:响应于共享存储资源满足线程组的分配需要,将用于线程组的共享存储资源分配给线程组。
在本公开的一些实施例中,在步骤S403中,将用于线程组的共享存储资源分配给线程组,可以包括:基于线程组作为待分配线程组的分配信息,将用于线程组的共享存储资源分配给线程组。
例如,基于分配信息(例如,线程组所在的SPU的编号)索引存储待分配线程组属性的存储器从而获取共享存储资源(例如,TCSM)并将共享存储资源分配给线程组。
在本公开的一些实施例中,在将用于线程组的共享存储资源分配给线程组之后,该线程调度方法还可以包括:通知控制单元被分配给线程组的共享存储资源属性并删除信息分配存储器中对应于资源分配请求的分配信息。
例如,共享存储资源属性包括共享存储资源(例如,TCSM)的地址和大小。
例如,将用于线程组的共享存储资源分配给线程组之后,该线程组不再是待分配线程组,因此需要从信息分配存储器(例如,先进先出存储器)中读出对应的分配信息(也即,将该分配信息从信息分配存储器中删除)。
例如,在一些示例中,在步骤S402和步骤S403之间,该线程调度方法还可以包括步骤S413:监测资源掩码矩阵,判断是否有共享存储资源被释放,并判断共享存储资源是否满足线程组的分配需要。
例如,资源掩码矩阵为图2C所示的TCSM掩码矩阵,TCSM掩码矩阵中存储有多个TCSM掩码表。
例如,在将用于线程组的私有存储资源分配给线程组之后,需要持续监测该线程组所在SPU上的TCSM的掩码表(TCSM掩码表记录了每种属于该SPU的共享存储资源的使用情况),判断是否满足该线程组的TCSM资源需求,以便于在满足TCSM资源需求时及时为线程组分配TCSM资源。
图4C示出了本公开一些实施例提供的一种示例性的线程调度方法的流程示意图。
如图4C所示,首先,SRM接收到新的TC资源请求。
接着,SRM通过资源掩码矩阵判断是否有SPU/VEU可以满足TC所需的所有资源(私有存储资源和共享存储资源均满足TC的资源需求)。
如果有SPU/VEU满足该TC所需的所有资源需求,则分配所有资源并通知SCU分配完成。同时,SRM会将所分配的硬件资源属性(资源地址和资源大小)存储在一个存储器中。
如果没有SPU/VEU满足该TC所需的所有资源需求,则判断是否除TCSM资源以外的其它硬件资源都满足需求。若私有存储资源与TCSM资源均不可分配给TC,则确定不进行资源分配。
如果除TCSM资源以外的其它硬件资源都满足需求,则判断部分分配状态操作的数量是否小于预设阈值。
如果部分分配状态操作的数量小于预设阈值,则优先分配私有存储资源,完成分配操作后将TC记录为处于部分分配状态的待分配线程组,即,通知SCU该TC的分配信息并将该TC的分配信息写入FIFO存储器中(FIFO存储器的深度大于或等于预设阈值)。
接着,持续监控在TC对应的SPU上的TCSM的掩码表,在满足该TC的TCSM资源需求之后分配TCSM资源,通知SCU被分配的TCSM资源属性并将FIFO存储器中的内容读出,从而完成整个TC的资源分配过程。
如果部分分配状态操作的数量大于或等于预设阈值,则不做任何资源分配,直到处于部分分配状态的待分配TC的数量小于预设阈值之后才能响应该TC的资源请求,例如,在一些示例中,可以直到所有处于部分分配状态的待分配TC都完成分配之后才能响应该TC的资源请求。
使用FIFO存储器是为了防止SRM在接收到新的线程组资源请求后一直阻止先前处于部分分配状态的待分配线程组获得TCSM分配的机会,起到了请求仲裁的作用。
本公开的实施例所提供的线程调度方法能够将资源分配过程分为两步实现,通过单独分配私有存储资源而延后分配暂时不满足分配需求的共享存储资源,可以达到提前分配资源的目的,从而缩短整个任务完成的时间。而且,由于TCSM被整个TC中所有TP共享,因此当TCSM被分配时SRM只需将TCSM的属性和TC的编号打包通知SCU一次,并不会对响应其它TC的资源请求产生影响。
需要说明的是,在本公开的实施例中,上述线程调度方法可以包括更多或更少的步骤,而不限于上文描述的步骤,各个步骤的执行顺序不受限制,这可以根据实际需求而定。
图5示出了本公开至少一个实施例提供的处理器500的示意图。
如图5所示,处理器500包括处理单元501和资源管理器502。
处理单元501配置为执行线程组。处理单元501包括控制单元503、多个向量处理单元504以及共享存储器505。控制单元503配置为将处于部分分配状态的待分配线程组的分配信息提供给资源管理器502。每个向量处理单元504包括VR和SR,VR和SR作为私有存储资源提供给线程组。共享存储器505作为共享存储资源提供给线程组。
资源管理器502配置为在确定独立于共享存储资源对线程组进行私有存储资源分配的情形,将私有存储资源分配给线程组。资源管理器502还配置为响应于接收到针对线程组的资源分配请求,确定是否能够独立于共享存储资源对线程组进行私有存储资源分配。资源管理器502还配置为在将私有存储资源分配给线程组之后,响应于共享存储资源满足线程组的分配需要,将用于线程组的共享存储资源分配给线程组。
处理单元501例如为图1所示的SPU 100,资源管理器502例如为上述的SRM,控制单元503例如为图1所示的SCU 103,多个向量处理单元504例如为图1所示的VEU 101,共享存储器505例如为图1所示的TCSM 102。各个单元或模块的具体说明可参考前述内容,此处不再赘述。例如,处理器500可以为CPU、GPU等任意类型的处理器。处理器500还可以包括更多的单元和模块,以实现处理计算功能。关于该处理器500的技术效果可以参考上文中关于线程调度方法的描述,此处不再赘述。
下面结合图5对本公开至少一个实施例提供的线程调度方法的实施例进行简述。
资源管理器502响应于TC的资源请求后,先通过资源掩码矩阵检查是否有处理单元501/向量处理单元504可以满足TC需要的所有硬件资源,如果有处理单元501/向量处理单元504可以满足该TC需要的所有硬件资源,则分配所有硬件资源并通知控制单元503所分配的硬件资源属性(资源地址和资源大小)。如果私有存储资源与共享存储器505均不可分配给该TC,则不进行资源分配。如果私有存储资源可分配给TC而共享存储器505不可分配给TC,则判断FIFO存储器中存储的分配信息的项目数量是否小于预设阈值,即,处于部分分配状态的待分配线程组的数量是否小于预设阈值。如果分配信息的项目数量小于预设阈值,则优先单独分配私有存储资源,完成分配操作后通知控制单元503该TC的分配信息并将该TC的分配信息写入FIFO存储器中。接着,持续监控在TC对应的SPU上的共享存储器505的掩码表,在满足该TC的共享存储资源需求之后分配共享存储器505,通知控制单元503被分配的共享存储器505的属性并将FIFO存储器中的内容读出,完成整个TC的资源分配过程。如果分配信息的项目数量大于或等于预设阈值,则不做任何资源分配,直到分配信息的项目数量小于预设阈值或者所有处于部分分配状态的待分配TC都完成分配之后才能响应该TC的资源请求。
图6A为本公开至少一个实施例提供的一种电子装置600的结构示意图。
如图6A所示,电子装置600包括图5所示的处理器500。图6A示出的电子装置仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
图6B为本公开至少一个实施例提供的另一种电子装置700的结构示意图。本公开实施例中的电子装置700可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图6B示出的电子装置仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
例如,如图6B所示,在一些示例中,电子装置700包括处理装置(例如中央处理器、图形处理器等)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储装置608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。例如,处理装置601可以为前述的处理器500。在RAM 603中,还存储有计算机系统操作所需的各种程序和数据。处理装置601、ROM 602以及RAM 603通过总线604被此相连。输入/输出(I/O)接口605也连接至总线604。
例如,以下部件可以连接至I/O接口605:例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置606;诸如液晶显示器(LCD)、扬声器、振动器等的输出装置607;例如磁带、硬盘等的存储装置608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信装置609。通信装置609可以允许电子装置700与其它设备进行无线或有线通信以交换数据,经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储装置609。虽然图6B示出了包括各种装置的电子装置700,但是应理解的是,并不要求实施或包括所有示出的装置。可以替代地实施或包括更多或更少的装置。
例如,该电子装置700还可以进一步包括外设接口(图中未示出)等。该外设接口可以为各种类型的接口,例如为USB接口、闪电(lighting)接口等。该通信装置609可以通过无线通信来与网络和其它设备进行通信,该网络例如为因特网、内部网和/或诸如蜂窝电话网络之类的无线网络、无线局域网(LAN)和/或城域网(MAN)。无线通信可以使用多种通信标准、协议和技术中的任何一种,包括但不局限于全球移动通信系统(GSM)、增强型数据GSM环境(EDGE)、宽带码分多址(W-CDMA)、码分多址(CDMA)、时分多址(TDMA)、蓝牙、Wi-Fi(例如基于IEEE 802.11a、IEEE 802.11b、IEEE 802.11g和/或IEEE 802.11n标准)、基于因特网协议的语音传输(VoIP)、Wi-MAX,用于电子邮件、即时消息传递和/或短消息服务(SMS)的协议,或任何其它合适的通信协议。
例如,电子装置700可以为手机、平板电脑、笔记本电脑、电子书、游戏机、电视机、数码相框、导航仪等任何设备,也可以为任意的电子装置及硬件的组合,本公开的实施例对此不作限制。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开的实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开的实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如HTTP(HyperText TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述电子装置中所包含的;也可以是单独存在,而未装配入该电子装置中。
对于本公开,还有以下几点需要说明:
(1)本公开实施例附图只涉及到与本公开实施例涉及到的结构,其它结构可参考通常设计。
(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
以上所述仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。

Claims (21)

1.一种线程调度方法,包括:
响应于接收到针对线程组的资源分配请求,确定是否能够独立于共享存储资源对所述线程组进行私有存储资源分配;
响应于确定独立于所述共享存储资源对所述线程组进行私有存储资源分配,将用于所述线程组的私有存储资源分配给所述线程组;
响应于所述共享存储资源满足所述线程组的分配需要,将用于所述线程组的所述共享存储资源分配给所述线程组。
2.根据权利要求1所述的线程调度方法,还包括:
在将用于所述线程组的所述私有存储资源分配给所述线程组之后,将所述线程组记录为处于部分分配状态的待分配线程组;
其中,所述待分配线程组是指已经完成私有存储资源分配、还未进行共享存储资源分配的线程组,且属于待分配线程组集合。
3.根据权利要求2所述的线程调度方法,其中,将用于所述线程组的所述共享存储资源分配给所述线程组,包括:
基于所述线程组作为所述待分配线程组的分配信息,将用于所述线程组的所述共享存储资源分配给所述线程组。
4.根据权利要求3所述的线程调度方法,其中,确定是否能够独立于所述共享存储资源对所述线程组进行私有存储资源分配,包括:
根据所述资源分配请求,判断所述私有存储资源是否可分配给所述线程组以及所述共享存储资源是否可分配给所述线程组;
响应于所述私有存储资源可分配给所述线程组且所述共享存储资源不可分配给所述线程组,确定独立于所述共享存储资源对所述线程组进行私有存储资源分配。
5.根据权利要求4所述的线程调度方法,其中,确定独立于所述共享存储资源对所述线程组进行私有存储资源分配,包括:
判断部分分配状态操作的数量是否小于预设阈值,其中,所述部分分配状态操作是指已经完成私有存储资源分配、还未进行共享存储资源分配的操作;
响应于所述部分分配状态操作的数量小于所述预设阈值,确定独立于所述共享存储资源进行私有存储资源分配。
6.根据权利要求5所述的线程调度方法,其中,判断所述部分分配状态操作的数量是否小于所述预设阈值,包括:
判断所述待分配线程组集合的成员数量是否小于所述预设阈值。
7.根据权利要求6所述的线程调度方法,其中,处于部分分配状态的所述待分配线程组的分配信息存储在信息分配存储器中,
判断所述待分配线程组集合的成员数量是否小于所述预设阈值包括:
检查所述信息分配存储器中所述待分配线程组集合对应的分配信息的项目数量是否小于所述预设阈值,其中,所述待分配线程组集合对应的分配信息的所述项目数量等于所述待分配线程组集合的成员数量。
8.根据权利要求7所述的线程调度方法,其中,
所述信息分配存储器包括先进先出存储器,所述先进先出存储器的深度大于或等于所述预设阈值。
9.根据权利要求5所述的线程调度方法,其中,所述预设阈值大于或等于2。
10.根据权利要求8所述的线程调度方法,其中,将所述线程组记录为处于部分分配状态的所述待分配线程组,包括:
将所述分配信息通知控制单元,并将所述分配信息写入所述信息分配存储器。
11.根据权利要求10所述的线程调度方法,其中,
所述分配信息包括用于所述线程组的所述私有存储资源的地址和大小以及所述线程组被分配到的资源标识。
12.根据权利要求11所述的线程调度方法,还包括:
在将用于所述线程组的所述共享存储资源分配给所述线程组之后,通知所述控制单元被分配给所述线程组的共享存储资源属性并删除所述信息分配存储器中对应于所述资源分配请求的所述分配信息。
13.根据权利要求5所述的线程调度方法,其中,确定是否能够独立于所述共享存储资源对所述线程组进行私有存储资源分配,还包括:
响应于所述私有存储资源与所述共享存储资源均不可分配给所述线程组,或者响应于所述部分分配状态操作的数量大于或等于所述预设阈值,确定不进行独立于所述共享存储资源的私有存储资源分配。
14.根据权利要求4所述的线程调度方法,其中,根据所述资源分配请求,判断所述私有存储资源是否可分配给所述线程组以及所述共享存储资源是否可分配给所述线程组,包括:
通过资源掩码矩阵检查当前资源状态,并根据所述当前资源状态判断所述私有存储资源和所述共享存储资源是否满足所述资源分配请求的需求。
15.根据权利要求14所述的线程调度方法,还包括:
监测所述资源掩码矩阵,判断是否有所述共享存储资源被释放,并判断所述共享存储资源是否满足所述线程组的分配需要。
16.根据权利要求1-15任一项所述的线程调度方法,其中,所述线程调度方法用于内核程序的线程调度。
17.一种处理器,包括:
处理单元,配置为执行线程组;
资源管理器,配置为在确定独立于共享存储资源对所述线程组进行私有存储资源分配的情形,将私有存储资源分配给所述线程组。
18.根据权利要求17所述的处理器,其中,所述处理单元包括:
控制单元,配置为将处于部分分配状态的待分配线程组的分配信息提供给所述资源管理器。
19.根据权利要求17所述的处理器,其中,所述资源管理器还配置为:
响应于接收到针对所述线程组的资源分配请求,确定是否能够独立于所述共享存储资源对所述线程组进行私有存储资源分配;
在将所述私有存储资源分配给所述线程组之后,响应于所述共享存储资源满足所述线程组的分配需要,将用于所述线程组的所述共享存储资源分配给所述线程组。
20.根据权利要求17所述的处理器,其中,
所述处理单元还包括多个向量处理单元和共享存储器;
每个向量处理单元包括向量寄存器和标量寄存器,所述向量寄存器和所述标量寄存器作为所述私有存储资源提供给所述线程组;
所述共享存储器作为所述共享存储资源提供给所述线程组。
21.一种电子装置,包括根据权利要求17-20任一所述的处理器。
CN202111563650.3A 2021-12-20 2021-12-20 线程调度方法、处理器以及电子装置 Pending CN114168300A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111563650.3A CN114168300A (zh) 2021-12-20 2021-12-20 线程调度方法、处理器以及电子装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111563650.3A CN114168300A (zh) 2021-12-20 2021-12-20 线程调度方法、处理器以及电子装置

Publications (1)

Publication Number Publication Date
CN114168300A true CN114168300A (zh) 2022-03-11

Family

ID=80487554

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111563650.3A Pending CN114168300A (zh) 2021-12-20 2021-12-20 线程调度方法、处理器以及电子装置

Country Status (1)

Country Link
CN (1) CN114168300A (zh)

Similar Documents

Publication Publication Date Title
US10891158B2 (en) Task scheduling method and apparatus
CN110489213B (zh) 一种任务处理方法及处理装置、计算机系统
WO2021088419A1 (zh) 一种多业务请求进程调用fpga设备的方法及相关装置
CN110300328B (zh) 一种视频播放控制方法、装置及可读存储介质
EP3631628A1 (en) Method and apparatus for implementing virtual gpu and system
WO2017070900A1 (zh) 多核数字信号处理系统中处理任务的方法和装置
US10402223B1 (en) Scheduling hardware resources for offloading functions in a heterogeneous computing system
CN113918101B (zh) 一种写数据高速缓存的方法、系统、设备和存储介质
AU2019256257B2 (en) Processor core scheduling method and apparatus, terminal, and storage medium
CN111221638B (zh) 并发任务的调度处理方法、装置、设备和介质
CN107832143B (zh) 一种物理机资源的处理方法和装置
US9836516B2 (en) Parallel scanners for log based replication
CN114168301A (zh) 线程调度方法、处理器以及电子装置
CN110851276A (zh) 一种业务请求处理方法、装置、服务器和存储介质
CN114637536A (zh) 任务处理方法、计算协处理器、芯片及计算机设备
CN115421787A (zh) 指令执行方法、装置、设备、系统、程序产品及介质
CN111813541B (zh) 一种任务调度方法、装置、介质和设备
CN111290842A (zh) 一种任务执行方法和装置
CN111913792B (zh) 一种业务处理方法和装置
CN113407357B (zh) 进程间数据搬移的方法及装置
CN115408153B (zh) 多线程处理器的指令分发方法、装置和存储介质
CN114168300A (zh) 线程调度方法、处理器以及电子装置
US9405470B2 (en) Data processing system and data processing method
CN113760524A (zh) 任务执行方法和装置
US11432303B2 (en) Method and apparatus for maximizing a number of connections that can be executed from a mobile application

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