一种稀疏随机线性网络编码的低时延解码方法

文档序号:32350122发布日期:2022-11-26 12:41阅读:72来源:国知局
一种稀疏随机线性网络编码的低时延解码方法

1.本发明涉及网络通信技术领域,具体为一种稀疏随机线性网络编码的低时延解码方法。


背景技术:

2.随机线性网络编码是网络编码理论迈向实际应用的关键性成果,由于其强大的编码方案和在广播传输方案中使用分散算法允许接近最佳吞吐量的特性,rlnc在网络拓扑未知或变化频繁的网络场景上发挥着越来越重要的作用;目前在实际部署应用中,rlnc已成功用于5g网络、智能终端间视频会议等诸多场景,然而在实际部署中,rlnc仍存在两个重要的开放性问题:(1)由于解码模块使用gauss-jordan消元法,解码计算复杂度高;(2)由于将系数向量附加到编码块而导致高传输开销。
3.为解决上述问题,稀疏随机线性网络编码应运而生,稀疏网络编码通过组合部分所要传输的数据包生成编码包,以降低编码矩阵中非零元素的数量,从而达到解码矩阵的稀疏化、降低计算复杂度的目的;尽管稀疏网络编码降低了编码复杂度,但并没能有效解决rlnc高译码复杂度问题。
4.目前,rlnc随机编码矩阵求逆主流方法是高斯消元法和lu分解法,其算法复杂度分别为o(n3)和o(n3)+o(n2),解码延迟过大,从而产生计算瓶颈;考虑到当前的网络接入设备(例如手机,车载电脑等)均具备多核并行计算处理能力,本发明提出了基于并行lu分解的稀疏网络编码低时延解码算法,通过递归并行lu分解和并行求解源数据可以有效降低大型稀疏矩阵求逆的运算时间,并通过智能终端测试床上实验验证了所述算法的有效性。


技术实现要素:

5.本部分的目的在于解决现有技术存在的上述问题,提供一种稀疏随机线性网络编码的低时延解码方法。本发明在单机lu分解算法的基础上,考虑到当前的网络接入设备例如手机,车载电脑等均具备多核并行计算处理能力,将解码阶段的大规模矩阵计算任务分配给多个线程,利用多线程高效的并行性和数据计算能力,提高大规模稀疏矩阵的稀疏网络编码解码带宽。
6.在本部分以及本技术的说明书摘要和发明名称中可能会做些简化或省略以避免使本部分、说明书摘要和发明名称的目的模糊,而这种简化或省略不能用于限制本发明的范围。
7.为解决现有技术存在的问题,提出了本发明。
8.本发明实施例的第一方面,提供一种稀疏随机线性网络编码的低时延解码方法,包括:用户设备在接收到由稀疏随机线性网络编码生成的可解码编码块后,将所述可解码编码块的编码系数矩阵进行分块;每个线程通过拆分递归的并行任务对分块后的编码系数子矩阵进行并行lu分解;利用并行lu分解出的上三角矩阵和下三角矩阵求解源数据,实现解码。
9.作为本发明所述的稀疏随机线性网络编码的低时延解码方法的一种优选方案,其中:所述编码系数矩阵的分块包括,用户设备将编码系数矩阵分解为k*k的分块矩阵,其中k表示参与并行lu分解的线程数;所述并行lu分解的运行线程为内核支持线程,多个线程可在用户设备多内核中同时执行。
10.作为本发明所述的稀疏随机线性网络编码的低时延解码方法的一种优选方案,其中:所述并行lu分解的计算包括,线程i从前i-1个线程中获取计算完成的上三角矩阵u的第i行第stage列子矩阵,并更新矩阵块,其中上三角矩阵u的行表示线程,上三角矩阵u的列表示分块矩阵;所述矩阵块的更新包括,其中,表示分配给第i个线程的第stage个分块矩阵,表示下三角矩阵l中的第i行第i列子矩阵,表示上三角矩阵u中的第i行第stage列子矩阵。
11.作为本发明所述的稀疏随机线性网络编码的低时延解码方法的一种优选方案,其中:还包括,更新所述矩阵块后,分情况求解所述线程i中分块矩阵的上三角矩阵和下三角矩阵;若stage《i,则线程i通过矩阵乘法计算矩阵块的下三角矩阵l中的第i行第stage列子矩阵,即l
i,stage
;若stage=i,则线程i执行单机lu分解计算分配给第i个线程的第i个分块矩阵,即 ;若stage》i,则线程i通过矩阵乘法计算矩阵块的上三角矩阵u中的第i行第stage列子矩阵,即u
i,stage

12.作为本发明所述的稀疏随机线性网络编码的低时延解码方法的一种优选方案,其中:所述源数据的求解包括,通过所述并行lu分解后编码矩阵被分解成上三角形矩阵u和下三角形矩阵l存储在多个线程中;利用分解二次线性方程组求解源数据,二次线性方程组的系数矩阵即为所述并行lu分解中得到的上三角形矩阵u和下三角形矩阵l;所述二次线性方程组的计算包括,lux=y其中,x表示源数据块,y表示编码数据块;设定,可通过 求解 ,再通过 求解x。
13.作为本发明所述的稀疏随机线性网络编码的低时延解码方法的一种优选方案,其中:所述二次线性方程组的的求解包括,
若stage《i,则当前线程获取 的第stage行子矩阵;若stage=i,则通过 求解 ,其中,表示下三角形矩阵第i行第i列子矩阵,表示 的第i行子矩阵,表示编码数据块的第i行子数据块。
14.作为本发明所述的稀疏随机线性网络编码的低时延解码方法的一种优选方案,其中:所述二次线性方程组的x的求解包括,若stage》i,则当前线程获取x的第stage行子矩阵;若stage=i,则通过求解,其中,表示上三角形矩阵第i行第k列子矩阵, 表示源数据块的第k行子数据块,表示上三角形矩阵第i行第i列子矩阵, 表示源数据块的第i行子数据块。
15.本发明实施例的第二方面,提供一种稀疏随机线性网络编码的低时延解码系统,包括:编码系数矩阵分块模块,用于接收由稀疏随机线性网络编码生成的可解码编码块,并将接收到的可解码编码块的待求解编码系数矩阵进行分块;并行lu分解模块,通过拆分递归的并行任务将分块后的编码系数子矩阵分解为上三角矩阵和下三角矩阵;源数据求解模块,利用并行lu分解出的上三角矩阵和下三角矩阵求解源数据,实现解码。
16.本发明实施例的第三方面,提供一种设备,所述设备包括,处理器;用于存储处理器可执行指令的存储器;所述处理器被配置为调用所述存储器存储的指令,以执行本发明任一实施例所述的方法。
17.本发明实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序指令,包括:所述计算机程序指令被处理器执行时实现如本发明任一实施例所述的方法。
18.本发明的有益效果:本发明提供了一种稀疏随机线性网络编码的低时延解码方法该方法利用了lu分解能够快速求稀疏矩阵的逆矩阵性质,通过并行化处理,首先将待解码数据块和编码系数阵进行分块,然后将原问题拆分成递归的并行任务,最后通过lu分解出的上三角矩阵和下三角矩阵在每个线程上对编码块进行并行解码,顺利实现了对编码块的快速并行解码;此外,稀疏网络编码通过组合部分所要传输的数据包生成编码包,以降低编码矩阵中非零元素的数量,从而实现解码矩阵的稀疏化、降低计算复杂度的目的,有效提高了计算的整体效率。
附图说明
19.为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用
的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。其中:图1为本发明提供的一种稀疏随机线性网络编码的低时延解码方法的编码系数矩阵分块图;图2为本发明提供的一种稀疏随机线性网络编码的低时延解码方法的并行lu分解的递归过程图;图3为本发明提供的一种稀疏随机线性网络编码的低时延解码方法中使用4个线程并行执行lu分解的过程图;图4为本发明提供的一种稀疏随机线性网络编码的低时延解码方法中中间矩阵的求解过程图。
具体实施方式
20.为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合说明书附图对本发明的具体实施方式做详细的说明,显然所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明的保护的范围。
21.在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。
22.其次,此处所称的“一个实施例”或“实施例”是指可包含于本发明至少一个实现方式中的特定特征、结构或特性。在本说明书中不同地方出现的“在一个实施例中”并非均指同一个实施例,也不是单独的或选择性的与其他实施例互相排斥的实施例。
23.本发明结合示意图进行详细描述,在详述本发明实施例时,为便于说明,表示器件结构的剖面图会不依一般比例作局部放大,而且所述示意图只是示例,其在此不应限制本发明保护的范围。此外,在实际制作中应包含长度、宽度及深度的三维空间尺寸。
24.同时在本发明的描述中,需要说明的是,术语中的“上、下、内和外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一、第二或第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
25.本发明中除非另有明确的规定和限定,术语“安装、相连、连接”应做广义理解,例如:可以是固定连接、可拆卸连接或一体式连接;同样可以是机械连接、电连接或直接连接,也可以通过中间媒介间接相连,也可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
26.实施例1参照图1为本发明的一个实施例,提供了一种稀疏随机线性网络编码的低时延解码方法,包括:s1:用户设备在接收到由稀疏随机线性网络编码生成的可解码编码块后,将可解
码编码块的编码系数矩阵进行分块。需要说明的是:用户设备将编码系数矩阵分解为k*k的分块矩阵,其中k表示参与并行lu分解的线程数;应说明的,并行lu分解的运行线程为内核支持线程,多个线程可在用户设备多内核中同时执行。
27.s2:每个线程通过拆分递归的并行任务对分块后的编码系数子矩阵进行并行lu分解。需要说明的是:线程i从前i-1个线程中获取计算完成的上三角矩阵u的第i行第stage列子矩阵,其中上三角矩阵u的行表示线程,上三角矩阵u的列表示分块矩阵;进一步的,更新矩阵块的计算包括,其中, 表示分配给第i个线程的第stage个分块矩阵,表示下三角矩阵l中的第i行第i列子矩阵,表示上三角矩阵u中的第i行第stage列子矩阵;再进一步的,更新矩阵块后,分情况求解线程i中分块矩阵的上三角矩阵和下三角矩阵;

若stage《i,则线程i通过矩阵乘法计算矩阵块的下三角矩阵l中的第i行第stage列子矩阵,即l
i,stage


若stage=i,则线程i执行单机lu分解计算分配给第i个线程的第i个分块矩阵,即 ;

若stage》i,则线程i通过矩阵乘法计算矩阵块的上三角矩阵u中的第i行第stage列子矩阵,即u
i,stage
;更近一步的,并行lu分解详细算法描述如表1所示;表1:并行lu分解。
28.应说明的,线程计算的数据包括三角矩阵数据、编码系数矩阵块数据,线程计算的数据采用行优先方式,存储在共享内存变量中。
29.s3:利用并行lu分解出的上三角矩阵和下三角矩阵求解源数据,实现解码。需要说明的是:源数据的求解包括,通过并行lu分解后编码矩阵被分解成上三角形矩阵u和下三角形矩阵l存储在多个线程中,利用分解二次线性方程组求解源数据,二次线性方程组的系数矩阵即为并行lu分解中得到的上三角形矩阵u和下三角形矩阵l;应说明的,二次线性方程组的计算包括,lux=y其中,x表示源数据块,y表示编码数据块;设定 ,可通过求解 ,再通过求解x;进一步的,二次线性方程组的的求解包括,

若stage《i,则当前线程获取的第stage行子矩阵;应说明的,当前线程获取其他线程已经解出的第stage列子矩阵,因为当前线程求解 需要前一个线程已经求出的子矩阵块才能解出;

若stage=i,则通过求解 ,其中,表示下三角形矩阵第i行第i列子矩阵,表示 的第i行子矩阵, 表示编码数据块的第i行子数据块;再进一步的,二次线性方程组的x的求解包括,

若stage》i,则当前线程获取x的第stage行子矩阵;

若stage=i,则通过求解 ,其中,表示上三角形矩阵第i行第k列子矩阵, 表示源数据块的第k行子数据块,表示上三角形矩阵第i行第i列子矩阵, 表示源数据块的第i行子数据块;更进一步的,并行求解源数据详细算法描述如表2所示;表2:并行求解源数据。
30.应说明的,线程计算的数据包括编码数据块数据、源数据块数据和三角矩阵数据,线程计算的数据采用行优先方式,存储在共享内存变量中。
31.本发明提供了一种稀疏随机线性网络编码的低时延解码方法该方法利用了lu分解能够快速求稀疏矩阵的逆矩阵性质,通过并行化处理,首先将待解码数据块和编码系数阵进行分块,然后将原问题拆分成递归的并行任务,最后通过lu分解出的上三角矩阵和下三角矩阵在每个线程上对编码块进行并行解码,顺利实现了对编码块的快速并行解码;此外,稀疏网络编码通过组合部分所要传输的数据包生成编码包,以降低编码矩阵中非零元素的数量,从而实现解码矩阵的稀疏化、降低计算复杂度的目的,有效提高了计算的整体效率。
32.本发明公开的第二方面,提供一种稀疏随机线性网络编码的低时延解码系统,包括:编码系数矩阵分块模块,用于接收由稀疏随机线性网络编码生成的可解码编码块,并将接收到的可解码编码块的待求解编码系数矩阵进行分块;并行lu分解模块,通过拆分递归的并行任务将分块后的编码系数子矩阵分解为上三角矩阵和下三角矩阵;源数据求解模块,利用并行lu分解出的上三角矩阵和下三角矩阵求解源数据,实现解码。
33.本发明公开的第三方面,提供一种设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为调用存储器存储的指令,以执行前述中任意一项的方法。
,其中都为已知,因此求解的过程就成为了一个递归求解的lu分解问题,并且在求解过程中同样会产生数据的传输,大小为原编码矩阵的,这个问题规模是原问题的 ,但是由于这2个三角形状矩阵存在于3个线程中,因此这个lu分解的任务必须继续划分下去,通过这种方法,可以求出所有的矩阵分块,完整的求解过程如图3所示。
40.然后,通过待解码数据的递归并行lu分解,编码系数矩阵被分解成为了上三角形矩阵和下三角形矩阵存储在多个线程中,利用分解二次线性方程组求解源数据,二次线性方程组的系数矩阵即为并行lu分解中得到的上三角形矩阵u和下三角形矩阵l;设定,可通过 求解 ,再通过 求解x;由于两次线性方程组求解问题的规模和步骤几乎一样,因此本实施例只拿的求解过程进行解释。
41.如图4所示,y是存储在4个线程中的编码数据矩阵,其中 是分别存储在4个线程中的数据片段,它们也以矩阵的形式存在,其中矩阵的行和在每个节点中的编码矩阵块的行相同,但列数可长可短,这取决于网络数据包中的数据量,因为不管是哪种高斯求解还是本发明提出的并行lu分解方法,在传输编码数据上都是相等的,因此不讨论这部分的数据量;首先由于,直接求解出,并且全部的运算在thread 1中即可完成,接着在thread 2中有,也可以被迅速得到,依此法可依次得到,由于同样是通过和三角矩阵计算求解,这2个矩阵的计算速度也会远远高于高斯求解,至此 的求解全部结束,在通过同样的方法即可求解出最终的x矩阵。
42.本实施例还通过对高斯解码、串行lu分解、稀疏网络编码(snc)并行lu分解以及本发明提供的随机线性网络编码(rlnc)并行lu分解四种方法进行实验,取编码文件大小为60000,线程数为4,表1为四种方法的实验数据。
43.表1:四种方法的实验数据。
44.从表1中可以看出,本发明提供的方法相较于其他三种方法在解码带宽上有着明显的优势,能够实现解码矩阵的稀疏化、降低计算复杂度的目的,有效提高了计算的整体效率。
45.应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1