运算方法、芯片、***、可读存储介质及计算机程序产品
技术领域
本申请涉及电子技术领域,例如涉及一种运算方法、芯片、***、可读存储介质及计算机程序产品。
背景技术
随着信息技术和互联网的快速发展,人们对电脑设备或功能性硬件设备的要求越来越高。高速串行计算机扩展总线标准(peripheral component interconnect express,简称PCIe)芯片是一种可为电脑设备或功能型硬件设备提供高速运算的运算芯片。
在现有的设备主板上一般会设置有1-2个PCIe芯片专用插槽以用于接入PCIe芯片。在需要具备高运算性能的设备上,为了满足运算性能的需求,一般会在插槽上接入PCIe扩展转换器以使多个PCIe芯片通过PCIe扩展转换器接入设备主板。
但是这样的多运算芯片所组成的运算***会使得每个PCIe芯片的有效带宽受到PCIe扩展转换器性能的限制,对PCIe扩展转换器自身性能提出了较高的要求,不利于使用。
上述背景技术内容仅用于帮助理解本申请,而并不代表承认或认可所提及的任何内容属于相对于本申请的公知常识的一部分。
发明内容
本公开实施例提供了一种运算方法,所述运算方法基于多运算芯片的运算***,所述运算***包括:由多个运算芯片串联形成的运算芯片链路,以及与位于链路源头的主控运算芯片电连接的主板;其中,在运算芯片链路中,相邻的两个运算芯片接入同一独立时钟信号源;
针对于所述运算芯片链路中的任一运算芯片,所述运算方法包括:
接收独立时钟信号源发送的时钟信号;
根据所述时钟信号对接收的待处理运算数据进行处理或转发;其中,所述待处理运算数据是所述主板发送给所述主控运算芯片,并经由运算芯片链路中串联的各运算芯片依次转发至该任一运算芯片的。
本公开实施例提供了一种运算芯片,包括:存储器、与所述存储器连接的处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,
所述处理器运行所述计算机程序时执行上述所述的运算方法。
本公开实施例提供了一种运算***,包括:主板和多个前述的运算芯片;
其中,所述多个运算芯片串联连接组成运算芯片链路;所述运算芯片链路的链路源头包括主控运算芯片,所述主控运算芯片与所述主板电连接;所述运算芯片链路中,任意相邻的两个运算芯片均连入同一独立时钟信号源,并接收该独立时钟信号源的时钟信号。
本公开实施例提供了一种可读存储介质,包括程序,当其在运算芯片上运行时,使得运算芯片执行前述的运算方法。
本公开实施例提供了一种计算机程序产品,所述计算机程序产品包括存储在可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行前述的运算方法。
附图说明
为了能够更加详尽地了解本公开实施例的特点与技术内容,下面结合附图对本公开实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本公开实施例。在以下的技术描述中,为方便解释起见,通过多个细节以提供对所披露实施例的充分理解。然而,在没有这些细节的情况下,一个或多个实施例仍然可以实施。在其它情况下,为简化附图,熟知的结构和装置可以简化展示。
图1为本公开实施例提供的一种运算***的结构示意图;
图2为本公开实施例提供的一种运算方法的流程示意图;
图3为本公开实施例提供的另一种运算方法的流程示意图;
图4为本公开实施例提供的又一种运算方法的流程示意图;
图5为本公开实施例提供的运算芯片的硬件结构示意图。
具体实施方式
为了能够更加详尽地了解本公开实施例的特点与技术内容,下面结合附图对本公开实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本公开实施例。在以下的技术描述中,为方便解释起见,通过多个细节以提供对所披露实施例的充分理解。然而,在没有这些细节的情况下,一个或多个实施例仍然可以实施。在其它情况下,为简化附图,熟知的结构和装置可以简化展示。
如前所述的,本公开提供了一种运算方法、芯片、***、可读存储介质及计算机程序产品,以在不提高成本的情况下,有效提高了每个PCIe芯片的有效带宽,满足高运算性能的硬件需求。
图1为本公开实施例提供的一种运算***的结构示意图,如图1所示的,在本公开实施例提供的运算***中包括有主板和多个运算芯片。
其中,多个运算芯片串联连接组成运算芯片链路,在运算芯片链路的链路源头包括一主控运算芯片,该主控运算芯片与服务器或主机的主板电连接。
在运算芯片链路中,任意相邻的两个运算芯片均连入同一独立时钟信号源,并接收该独立时钟信号源的时钟信号。
需要说明的是,本公开的运算***中的运算芯片具体可为PCIe芯片,也可为其他类型芯片,其中的主板具体可为服务器主机的主板,也可为台式电脑的CPU主板等。
一般来说,为了扩展运算芯片数量,现有技术是采用将多个运算芯片分别接入PCIe扩展转换器中,并通过PCIe扩展转换器与主板进行交互。但是,采用这样的硬件连接方式,会使得每一运算芯片的有效带宽受限与PCIe扩展转换器的性能,如需增加每一运算芯片的算力,则对PCIe扩展转换器的性能提出了更高的要求,不利于使用。
而在本公开中,与现有技术不同的是,本公开所提出的运算***首先将运算芯片进行逐级串联,以获得由多个运算芯片形成的运算芯片链路,以图1所示的由4个运算芯片组成的运算芯片链路为例,在各运算芯片中包括有主端口和从端口,通过各运算芯片的主端口与从端口的依次串联,获得一以运算芯片1、运算芯片2、运算芯片3和运算芯片4组成的运算芯片链路,其中运算芯片1作为运算芯片链路的源头的主控运算芯片与前述的主板进行电连接,以实现运算芯片链路与主板之间的数据交互和信号传递。
在可选的实施例中,运算***中还包括有多个独立时钟信号源晶振,每个所述独立时钟信号源晶振包括时钟信号源输出端,该输出端与所述运算芯片链路中任意相邻的两个运算芯片相连,以为该两个运算芯片提供独立时钟信号
在本运算***中,主运算芯片,即运算芯片1的从端口将与主板连接,接收来自主板的主板时钟信号,以触发整个运算芯片链路的功能。而针对于任意相邻的两个运算芯片还将连入同一独立时钟信号源晶振,如运算芯片1和运算芯片2共同连入独立时钟信号源晶振1,还如运算芯片2和运算芯片3共同连入独立时钟信号源晶振2。通过与独立时钟信号源晶振的相连,运算芯片将接收到来自该独立时钟信号源晶振所发送的时钟信号,并在该时钟信号的触发下,响应对数据进行处理、转发等的请求或指令。需要说明的是,针对于一个运算芯片来说,其可接收到来自两个不同的独立时钟源晶振发送的独立信号,并被该两个独立信号触发。前述的各独立时钟信号源晶振具体可为各运算芯片提供差分时钟信号,而信号频率可为100MHz。上述运算***所基于的运算方法具体可采用如下实施所述的方式,具体参见如下实例。
通过采用如上所述的运算***的硬件架构,能够有效解决现有技术中由于使用了PCIe扩展转换器而造成的运算芯片有效带宽的上限,利于为更高的带宽和更高的算力提供硬件基础。
本公开实施例还提供了一种基于前述运算***的运算方法,图2为本公开实施例提供的一种运算方法的流程示意图。
如图2所示,该运算方法包括:
步骤101、接收独立时钟信号源晶振发送的时钟信号。
步骤102、根据所述时钟信号对接收的待处理运算数据进行处理或转发;其中,所述待处理运算数据是所述主板发送给所述主控运算芯片,并经由运算芯片链路中串联的各运算芯片依次转发至该任一运算芯片的。
具体来说,本实施例提供的运算方法针对于前述的运算***,其中的运算***至少包括由多个运算芯片串联形成的运算芯片链路,以及与位于链路源头的主控运算芯片电连接的主板;其中,在运算芯片链路中,相邻的两个运算芯片接入同一独立时钟信号源晶振。
在现有技术中采用的是将多个运算芯片分别接入PCIe扩展转换器中,并通过PCIe扩展转换器与主板进行交互的运算方式,因此,现有的运算方法中需要PCIe扩展转换器获知连入的每个运算芯片的地址,并实现对于主板和各运算芯片之间的数据转发和信号传输。也就是说,在现有技术中,由于硬件架构的限制,运算芯片之间是无法实现数据交互和信号传输的。
而本实施例所基于的硬件结构为前述的运算***,在该运算***中,由于各运算芯片串联形成运算芯片链路,满足了运算芯片之间通信的硬件架构条件。此外,为了配合硬件架构,针对运算芯片链路中的任意一运算芯片来说,其将接收独立时钟信号源晶振发送的时钟信号,并根据所述时钟信号对接收的待处理运算数据进行处理或转发;其中,所述待处理运算数据是所述主板发送给所述主控运算芯片,并经由运算芯片链路中串联的各运算芯片依次转发至该任一运算芯片的。
具体的,为了实现对于接收数据的运算芯片的准确定位,各运算芯片中存储有运算芯片链路的地址逻辑;所述待处理运算数据中至少包括有执行所述待处理运算数据的目标运算芯片地址和相应的运算数据。因此,当任一运算芯片接收独立时钟信号源晶振发送的时钟信号时,其将对接收到的由所述运算芯片链路中的上级运算芯片转发的待处理运算数据进行判断,以根据判断结果确定对该待处理运算数据进行处理还是转发。即,该运算芯片将根据存储的地址逻辑和待处理运算数据中的目标运算芯片地址,判断运算数据的运算主体是否为自身;若是,则调用运算逻辑对所述运算数据进行处理;若否,则将所述待处理运算数据转发至所述运算芯片链路中的下级运算芯片中。
例如,针对于运算芯片1来说,其可接收到来自于主板发送的待处理数据,在被时钟信号触发后,其将根据待处理数据中的目标运算芯片地址,和预存在自身运算芯片中的地址逻辑,判断该目标运算芯片地址是否与自身的运算芯片1的地址逻辑相同,若相同,则运算芯片1将调用运算芯片主体中的运算逻辑对相应的运算数据进行处理;若不相同,则运算芯片1将该待处理运算数据通过其主端口发送至运算芯片2的从端口,以供运算芯片2的从端口执行前述的判断步骤。
需要说明的是,待处理数据为主板根据待处理任务生成的,其中的目标运算芯片地址为主板根据各运算芯片的算力以及在整个运算芯片链路中的位置确定的。一般的,位于运算芯片链路末端的运算芯片将优先执行待处理运算数据的处理。也就是说,若某一待处理任务被划分为4个待处理数据,由每个运算芯片处理一个待处理数据,那么主板将第一个待处理数据的目标运算芯片地址设置为运算芯片4的芯片地址,而将第二个待处理数据的目标运算芯片地址设备为运算芯片3的芯片地址,依次类推,从而进一步优化算力,提高整个运算芯片链路的运算速度。
通过采用上述的运算方法,能够使运算芯片之间通过地址逻辑实现运算芯片链路内部的数据交互,无需通过主机,节省了主机的运算资源。同时,由于各运算芯片基于独立时钟信号源晶振发送的时钟信号执行数据处理,因此对于每一运算芯片的有效带宽均得到了提升,进而提高了整个运算***和算力,节约了成本。
为了进一步描述本公开实施例提供的运算方法,在前述的运算方法的基础上,图3为本公开提供的另一种运算方法的流程示意图。
如图3所示,该运算方法包括:
步骤201、接收独立时钟信号源晶振发送的时钟信号。
步骤202、接收由所述运算芯片链路中的上级运算芯片转发的待处理运算数据。
步骤203、根据存储的地址逻辑和待处理运算数据中的目标运算芯片地址,判断所述运算数据的运算主体是否为自身;
若是,则执行步骤204;若否,则执行步骤206。
步骤204、调用运算逻辑对所述运算数据进行处理,并生成处理结果数据。
步骤205、将所述处理结果数据转发至所述运算芯片链路中的上级运算芯片中,以供所述上级运算芯片对所述处理结果数据进行转发直至将所述处理结果数据依次转发至所述主控运算芯片,并由主控运算芯片存储。
步骤206、将所述待处理运算数据转发至所述运算芯片链路中的下级运算芯片中。
步骤207、接收运算芯片链路中的下级运算芯片发起的处理结果数据。
其中,所述处理结果数据至少包括:接收所述处理结果数据的目标运算芯片地址,以及相应的结果数据。
步骤208、根据所述地址逻辑判断所述处理结果数据中的所述目标运算芯片地址是否为自身运算芯片地址;若是,则将所述结果数据存储;若否,则将所述结果数据转发至运算芯片链路中的目标运算芯片。
在图3所示实施例中,步骤201-步骤203的具体实施方式与图2所示实施例中类似,在此不进行赘述。
与前述实施例不同的是,图3所示实施例中,当确定出运算数据的运算主体为自身时,运算芯片将调用运算芯片主体的运算逻辑对运算数据进行处理,并生成处理结果数据。随后,该运算芯片还将处理结果数据转发至所述运算芯片链路中的上级运算芯片中,以供所述上级运算芯片对所述处理结果数据进行转发直至将所述处理结果数据依次转发至目标运算芯片。
当确定出运算数据的运算主体不为自身时,该运算芯片将待处理运算数据转发至所述运算芯片链路中的下级运算芯片中,直至到达与目标运算芯片地址相应的运算芯片,当该相应的运算芯片完成对于待处理运算数据的处理后,会将生成的处理结果数据沿运算芯片链路依次上传,直至到达执行本方法流程的运算芯片,即接收运算芯片链路中的下级运算芯片发起的处理结果数据,其中,所述处理结果数据至少包括:接收所述处理结果数据的目标运算芯片地址,以及相应的结果数据。然后,运算芯片将根据所述地址逻辑判断所述处理结果数据中的所述目标运算芯片地址是否为自身运算芯片地址;若是,则将所述结果数据存储;若否,则将所述结果数据转发至运算芯片链路中的上级运算芯片直至目标运算芯片。
此外,为了进一步描述本公开实施例提供的运算方法,在前述的运算方法的基础上,图4为本公开提供的又一种运算方法的流程示意图。
如图4所示,该运算方法包括:
步骤301、接收独立时钟信号源晶振发送的时钟信号。
步骤302、接收由所述运算芯片链路中的上级运算芯片转发的待处理运算数据;
步骤303、根据存储的地址逻辑和待处理运算数据中的目标运算芯片地址,判断所述运算数据的运算主体是否为自身;
若是,则执行步骤304;若否,则执行步骤307。
步骤304、调用运算逻辑对所述运算数据进行处理;
步骤305、生成中断请求,将所述中断请求发送至所述运算芯片链路中的上级运算芯片中,以供所述上级运算芯片对所述中断请求进行处理。
步骤306、接收并执行由所述上级运算芯片发送的中断响应,所述中断响应是所述上级运算芯片在接收到所述中断请求之后调用运算逻辑对所述中断请求进行处理并生成发送的。
步骤307、将所述待处理运算数据转发至所述运算芯片链路中的下级运算芯片中。
在图4所示实施例中,步骤301-步骤303的具体实施方式与图2所示实施例中类似,在此不进行赘述。
与前述实施例不同的是,图4所示实施例中,当确定出运算数据的运算主体为自身时,运算芯片将调用运算芯片主体的运算逻辑对运算数据进行处理,并生成处理结果数据。然后,在该运算芯片完成对于运算数据的处理之后,该运算芯片将生成中断请求,并将该中断请求发送至其上级运算芯片,以供其上级运算芯片对中断请求进行处理,该中断请求用于使该运算芯片停止运行并进入待机状态。再后,上级运算芯片将会根据预设处理逻辑,对该中断请求进行处理,生成中断响应并返回至该运算芯片。而该运算芯片将接收到中断响应,执行并进行待机状态或停止运行,以节约整个运算***的电损耗。
需要说明的是,在本公开的实施例中,运算芯片仅完成对于运算数据的处理且确定其运算芯片链路的全部下级运算芯片均完成对于运算数据的处理之后,才会生成中断请求,并进入待机状态或停止运行,这是由于本公开采用了将多个运算芯片串联的硬件架构,数据或信号将在沿链路的各个运算芯片依次传递,一旦位于链路中游的运算芯片进入待机状态或停止运行,该运算芯片下游的全部运算芯片将无法接收到更多的数据或信号,也就是说,为了保证整个链路的正常运行,进一步的,本实施例中的运算芯片在完成对于运算数据的处理且确定其运算芯片链路的全部下级运算芯片均完成对于运算数据的处理之后,生成中断请求并发送至上级运算芯片。
此外,在本实施例中,还可包括对于生成运算结果数据的流程,具体可参见前述实例中的步骤204-208,本实例在此不进行赘述。
通过采用上述的运算方法,能够使运算芯片之间通过地址逻辑实现运算芯片链路内部的数据交互,无需通过主机,节省了主机的运算资源。同时,由于各运算芯片基于独立时钟信号源晶振发送的时钟信号执行数据处理,因此对于每一运算芯片的有效带宽均得到了提升,进而提高了整个运算***和算力,节约了成本。
图5为本公开提供的一种运算芯片的硬件结构示意图,如图5所示,该运算芯片包括:存储器41、与所述存储器41连接的处理器42,及存储在所述存储器41上并可在所述处理器42上运行的计算机程序,其特征在于,所述处理器42运行所述计算机程序时执行前述的运算方法。
本公开实施例还提供了一种可读存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为执行上述运算方法。
本公开实施例还提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述运算方法。
上述的可读存储介质可以是暂态计算机可读存储介质,也可以是非暂态计算机可读存储介质。
本公开实施例的技术方案可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括一个或多个指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开实施例所述方法的全部或部分步骤。而前述的存储介质可以是非暂态存储介质,包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
当用于本申请中时,虽然术语“第一”、“第二”等可能会在本申请中使用以描述各元件,但这些元件不应受到这些术语的限制。这些术语仅用于将一个元件与另一个元件区别开。比如,在不改变描述的含义的情况下,第一元件可以叫做第二元件,并且同样第,第二元件可以叫做第一元件,只要所有出现的“第一元件”一致重命名并且所有出现的“第二元件”一致重命名即可。第一元件和第二元件都是元件,但可以不是相同的元件。
本申请中使用的用词仅用于描述实施例并且不用于限制权利要求。如在实施例以及权利要求的描述中使用的,除非上下文清楚地表明,否则单数形式的“一个”(a)、“一个”(an)和“所述”(the)旨在同样包括复数形式。类似地,如在本申请中所使用的术语“和/或”是指包含一个或一个以上相关联的列出的任何以及所有可能的组合。另外,当用于本申请中时,术语“包括”(comprise)及其变型“包括”(comprises)和/或包括(comprising)等指陈述的特征、整体、步骤、操作、元素,和/或组件的存在,但不排除一个或一个以上其它特征、整体、步骤、操作、元素、组件和/或这些的分组的存在或添加。
所描述的实施例中的各方面、实施方式、实现或特征能够单独使用或以任意组合的方式使用。所描述的实施例中的各方面可由软件、硬件或软硬件的结合实现。所描述的实施例也可以由存储有计算机可读代码的计算机可读介质体现,该计算机可读代码包括可由至少一个计算装置执行的指令。所述计算机可读介质可与任何能够存储数据的数据存储装置相关联,该数据可由计算机***读取。用于举例的计算机可读介质可以包括只读存储器、随机存取存储器、CD-ROM、HDD、DVD、磁带以及光数据存储装置等。所述计算机可读介质还可以分布于通过网络联接的计算机***中,这样计算机可读代码就可以分布式存储并执行。
上述技术描述可参照附图,这些附图形成了本申请的一部分,并且通过描述在附图中示出了依照所描述的实施例的实施方式。虽然这些实施例描述的足够详细以使本领域技术人员能够实现这些实施例,但这些实施例是非限制性的;这样就可以使用其它的实施例,并且在不脱离所描述的实施例的范围的情况下还可以做出变化。比如,流程图中所描述的操作顺序是非限制性的,因此在流程图中阐释并且根据流程图描述的两个或两个以上操作的顺序可以根据若干实施例进行改变。作为另一个例子,在若干实施例中,在流程图中阐释并且根据流程图描述的一个或一个以上操作是可选的,或是可删除的。另外,某些步骤或功能可以添加到所公开的实施例中,或两个以上的步骤顺序被置换。所有这些变化被认为包含在所公开的实施例以及权利要求中。
另外,上述技术描述中使用术语以提供所描述的实施例的透彻理解。然而,并不需要过于详细的细节以实现所描述的实施例。因此,实施例的上述描述是为了阐释和描述而呈现的。上述描述中所呈现的实施例以及根据这些实施例所公开的例子是单独提供的,以添加上下文并有助于理解所描述的实施例。上述说明书不用于做到无遗漏或将所描述的实施例限制到本公开的精确形式。根据上述教导,若干修改、选择适用以及变化是可行的。在某些情况下,没有详细描述为人所熟知的处理步骤以避免不必要地影响所描述的实施例。