MISY 移动信息系统 1875 - 905 x<我年代年代npub-type="ppub"> 1574 - 017 x Hindawi出版公司 10.1155 / 2016/7048482 7048482 研究文章 LDPC译码对GPU的移动设备 Yiqin http://orcid.org/0000 - 0002 - 6417 - 3221 Weiyue http://orcid.org/0000 - 0002 - 3763 - 458 x 建成 Głąbowski 科学家们 电子与信息工程学院 华南理工大学 天河区 广州 中国 scut.edu.cn 2016年 15 9 2016年 2016年 17 05年 2016年 17 08年 2016年 25 08年 2016年 15 9 2016年 2016年 版权©2016陆Yiqin et al。 这是一个开放的文章在知识共享归属许可下发布的,它允许无限制的使用,分布和繁殖在任何媒介,提供最初的工作是正确的引用。

一个灵活的软件LDPC译码器,利用单词解码数据并行同步多码在移动设备上提出本文对OpenCL支持多线程图形处理单元。通过检查矩阵划分成几个部分充分利用本地内存和私有内存的GPU,妥善每次修改代码的能力,我们的实现在手机上显示吞吐量超过100 Mbps和延迟小于1.6毫秒解码,使高速通信像视频通话成为可能。实现高效的LDPC译码软件的移动设备,通信基带芯片的LDPC译码功能应该取代节省成本和便于升级解码器可以兼容多种渠道访问计划。

1。介绍</t我tle> <p>低密度奇偶校验(LDPC)错误校正码是一种线性分组码,提出1962年Gallager [<xrefref- - - - - -- - - - - -- - - - - -- - - - - - - -type="bibr" rid="B1"> 1</xref>),并在1996年重新发现了麦基和尼尔(<xrefref- - - - - -- - - - - -- - - - - -- - - - - - - -type="bibr" rid="B2"> 2</xref>]。它得名于稀疏校验矩阵。LDPC编码能力准则,这意味着它允许噪声阈值设置非常接近香农限的对称无记忆信道;因此,LDPC码的实际结构存在。</p><p>好的LDPC码的性能为代价的一个非常大量的计算。DCP解码计算具有很高的并行计算。当前商业LDPC译码器是基于硬件实现中,只允许几种特定LDPC码同时很难升级。有大量的研究使用FPGA实现高效LDCP译码器(<xrefref- - - - - -- - - - - -- - - - - - - - -type="bibr" rid="B3"> 3</xref>,<xrefref- - - - - - - - - - -- - - - - -- - - - - -- - - - - - - -type="bibr" rid="B4"> 4</xref>]。快速发展的图形处理单元(GPU)在桌面上,有很多研究使用CUDA LDPC译码(框架<xrefref- - - - - -- - - - - -- - - - - -- - - - - - - -type="bibr" rid="B5"> 5</xref>,<xrefref- - - - - - - - - - -- - - - - -- - - - - -- - - - - - - -type="bibr" rid="B6"> 6</xref>]。LDPC码是广泛应用于第四代移动通信技术,这使得它重大开发高效的软件LDPC译码的移动设备。同时,软件LDPC码可以动态地改变参数,包括代码长度,编码速率,迭代次数快速处理各种各样的网络环境。</p><p>开放计算语言(OpenCL) (<xrefref- - - - - -- - - - - -- - - - - -- - - - - - - -type="bibr" rid="B7"> 7</xref>)是一种框架,编写程序执行跨异构平台包括CPU、GPU, DSP, FPGA和其他处理器或硬件加速器。本技术规范由Khronos成员和2008年批准公开发布。统一计算设备架构(CUDA) (<xrefref- - - - - -- - - - - -- - - - - -- - - - - - - -type="bibr" rid="B8"> 8</xref>)也使开发人员能够开发并行计算程序在GPU上桌面。OpenCL出现之后,但它支持更多的场景。随着移动设备的快速发展,许多移动设备尤其是手机开始有自己的高性能GPU芯片。一些供应商如高通、想象力PowerVR,胳膊,Vivante开始支持OpenCL移动GPU (<xrefref- - - - - -- - - - - -- - - - - - - - -type="bibr" rid="B10"> 9</xref>),这使得开发基于GPU的并行计算程序在移动设备上更容易。在本文中,我们试图开发一种LDPC译码器的移动基于OpenCL的GPU。然而,全球移动GPU内存是有限的;因此,性能不如桌面GPU。我们通过充分利用提高解码每个计算单元的本地内存,每个处理单元的私有内存。同时,我们适当的减少数量的线程每码字并添加编码解码过程,并获得更好的性能。在我们的实验中,最好的结果解码器,吞吐量达到160 Mbps,可以满足当前移动无线通信在许多情况下,延迟时间小于2毫秒(ms),它可以满足许多实时应用如视频通话。</p></年代ec><年代ec id="sec2"> <title>2。MSA的LDPC译码</t我tle> <p>信仰传播(BP)算法是一种重要的消息传递算法,常用的人工智能领域的(<xrefref- - - - - -- - - - - -- - - - - -- - - - - - - -type="bibr" rid="B10"> 9</xref>]。算法每个节点之间传输信息。例如,信念的信息节点<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M1"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi mathvariant="normal"> B</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>检查节点<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M2"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi mathvariant="normal"> C</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 米</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>依赖于观察<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M3"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi mathvariant="normal"> B</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>和所有的检查节点<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M4"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi mathvariant="normal"> B</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>与,除了<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M5"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi mathvariant="normal"> C</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 米</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>。同样,信仰从检查节点的信息<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M6"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi mathvariant="normal"> C</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 米</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>一些节点<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M7"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi mathvariant="normal"> B</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>依赖于观察<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M8"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi mathvariant="normal"> C</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 米</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>和所有的节点<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M9"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi mathvariant="normal"> C</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 米</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>与,除了<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M10"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi mathvariant="normal"> B</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>。BP算法,最小和算法(MSA)是一种非常有效的LDPC译码算法(<xrefref- - - - - -- - - - - -- - - - - -- - - - - - - -type="bibr" rid="B11"> 10</xref>]。它是基于信念传播节点之间连接的坦纳图(<xrefref- - - - - -- - - - - -- - - - - -- - - - - - - -type="bibr" rid="B12"> 11</xref>边缘。图<xrefref- - - - - -- - - - - -- - - - - -- - - - - - - -type="fig" rid="fig1"> 1</xref>展示了一个特定的坦纳图4×8<bold> H</bold>矩阵。MSA, Gallager提出,在对数概率域。</p><f我g id="fig1"> <label>图1</label> <p>一个4×8<bold> H</bold>矩阵及其坦纳图表示。</p><graphic xlink:href="//www.newsama.com/downloads/journals/misy/2016/7048482.fig.001"></graphic> </fig> <p>LDPC码是一种特殊形式的线性(<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M11"> <mml:mi> N</米米l:mi> <mml:mo> ,</米米l:mo> <mml:mi> K</米米l:mi> </mml:math> </inline-formula>)分组码,由稀疏二进制奇偶校验<bold> H</bold>矩阵的维数<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M12"> <mml:mi> 米</米米l:mi> <mml:mo> ×</米米l:mo> <mml:mi> N</米米l:mi> </mml:math> </inline-formula>,而<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M13"> <mml:mi> 米</米米l:mi> <mml:mo> =</米米l:mo> <mml:mi> N</米米l:mi> <mml:mo> - - - - - -</米米l:mo> <mml:mi> K</米米l:mi> </mml:math> </inline-formula>。我们假设信道加性高斯白噪声(AWGN)信道是一个均值为0,方差<我talic> σ</我talic><sup>2</年代up>。BPSK调制映射代码字母<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M14"> <mml:mi mathvariant="bold"> c</米米l:mi> <mml:mo> =</米米l:mo> <mml:mo stretchy="false"> (</米米l:mo> <mml:msub> <mml:mrow> <mml:mi> c</米米l:mi> </mml:mrow> <mml:mrow> <mml:mn> 1</米米l:mn> </mml:mrow> </mml:msub> <mml:mo> ,</米米l:mo> <mml:msub> <mml:mrow> <mml:mi> c</米米l:mi> </mml:mrow> <mml:mrow> <mml:mn> 2</米米l:mn> </mml:mrow> </mml:msub> <mml:mo> ,</米米l:mo> <mml:mo> …</米米l:mo> <mml:mo> ,</米米l:mo> <mml:msub> <mml:mrow> <mml:mi> c</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> N</米米l:mi> </mml:mrow> </mml:msub> <mml:mo stretchy="false"> )</米米l:mo> </mml:math> </inline-formula>在序列<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M15"> <mml:mi mathvariant="bold"> x</米米l:mi> <mml:mo> =</米米l:mo> <mml:mo stretchy="false"> (</米米l:mo> <mml:msub> <mml:mrow> <mml:mi> x</米米l:mi> </mml:mrow> <mml:mrow> <mml:mn> 1</米米l:mn> </mml:mrow> </mml:msub> <mml:mo> ,</米米l:mo> <mml:msub> <mml:mrow> <mml:mi> x</米米l:mi> </mml:mrow> <mml:mrow> <mml:mn> 2</米米l:mn> </mml:mrow> </mml:msub> <mml:mo> ,</米米l:mo> <mml:mo> …</米米l:mo> <mml:mo> ,</米米l:mo> <mml:msub> <mml:mrow> <mml:mi> x</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> N</米米l:mi> </mml:mrow> </mml:msub> <mml:mo stretchy="false"> )</米米l:mo> </mml:math> </inline-formula>,根据<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M16"> <mml:msub> <mml:mrow> <mml:mi> x</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msub> <mml:mo> =</米米l:mo> <mml:msup> <mml:mrow> <mml:mo stretchy="false"> (</米米l:mo> <mml:mo> - - - - - -</米米l:mo> <mml:mn mathvariant="normal"> 1</米米l:mn> <mml:mo stretchy="false"> )</米米l:mo> </mml:mrow> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi> c</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:msup> </mml:math> </inline-formula>。接收到的序列是<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M17"> <mml:mi mathvariant="bold"> y</米米l:mi> <mml:mo> =</米米l:mo> <mml:mo stretchy="false"> (</米米l:mo> <mml:msub> <mml:mrow> <mml:mi> y</米米l:mi> </mml:mrow> <mml:mrow> <mml:mn> 1</米米l:mn> </mml:mrow> </mml:msub> <mml:mo> ,</米米l:mo> <mml:msub> <mml:mrow> <mml:mi> y</米米l:mi> </mml:mrow> <mml:mrow> <mml:mn> 2</米米l:mn> </mml:mrow> </mml:msub> <mml:mo> ,</米米l:mo> <mml:mo> …</米米l:mo> <mml:mo> ,</米米l:mo> <mml:msub> <mml:mrow> <mml:mi> y</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> N</米米l:mi> </mml:mrow> </mml:msub> <mml:mo stretchy="false"> )</米米l:mo> </mml:math> </inline-formula>,<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M18"> <mml:msub> <mml:mrow> <mml:mi> y</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msub> <mml:mo> =</米米l:mo> <mml:msub> <mml:mrow> <mml:mi> x</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msub> <mml:mo> +</米米l:mo> <mml:msub> <mml:mrow> <mml:mi> n</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msub> </mml:math> </inline-formula>。在接收的情况下<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M19"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi> y</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>对数的先验概率<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M20"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi> x</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>是<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M21"> <mml:mi> l</米米l:mi> <mml:msubsup> <mml:mrow> <mml:mi> p</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> </mml:mrow> <mml:mrow> <mml:mn> 0</米米l:mn> </mml:mrow> </mml:msubsup> </mml:math> </inline-formula>。MSA是如图<xrefref- - - - - -- - - - - -- - - - - -- - - - - - - -type="fig" rid="fig2"> 2</xref>。</p><f我g id="fig2"> <label>图2</label> <p>分钟的过程和算法。</p><graphic xlink:href="//www.newsama.com/downloads/journals/misy/2016/7048482.fig.002"></graphic> </fig> <p>在进入循环迭代之前,我们使用接收的序列<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M22"> <mml:mrow> <mml:mi mathvariant="bold"> y</米米l:mi> </mml:mrow> </mml:math> </inline-formula>初始化的先验概率<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M23"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi mathvariant="normal"> B</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>如下:<d我年代p- - - - - -for米ula> <mml:math display="block" xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M24"> <mml:mtable> <mml:mlabeledtr id="eq1"> <mml:mtd rowspan="2"> <mml:mtext> (1)</米米l:mtext> </mml:mtd> <mml:mtd> <mml:mi> l</米米l:mi> <mml:msubsup> <mml:mrow> <mml:mi> p</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> </mml:mrow> <mml:mrow> <mml:mn> 0</米米l:mn> </mml:mrow> </mml:msubsup> <mml:mo> =</米米l:mo> <mml:mrow> <mml:mrow> <mml:mi mathvariant="normal"> ln</米米l:mi> </mml:mrow> <mml:mo> ⁡</米米l:mo> <mml:mrow> <mml:mfrac> <mml:mrow> <mml:msubsup> <mml:mrow> <mml:mi> p</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> </mml:mrow> <mml:mrow> <mml:mn mathvariant="normal"> 0</米米l:mn> </mml:mrow> </mml:msubsup> <mml:mfenced separators="|"> <mml:mrow> <mml:mn mathvariant="normal"> 0</米米l:mn> </mml:mrow> </mml:mfenced> </mml:mrow> <mml:mrow> <mml:msubsup> <mml:mrow> <mml:mi> p</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> </mml:mrow> <mml:mrow> <mml:mn mathvariant="normal"> 0</米米l:mn> </mml:mrow> </mml:msubsup> <mml:mfenced separators="|"> <mml:mrow> <mml:mn mathvariant="normal"> 1</米米l:mn> </mml:mrow> </mml:mfenced> </mml:mrow> </mml:mfrac> </mml:mrow> </mml:mrow> <mml:mo> =</米米l:mo> <mml:mn mathvariant="normal"> 2</米米l:mn> <mml:mfrac> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi> y</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> <mml:mrow> <mml:msup> <mml:mrow> <mml:mi> σ</米米l:mi> </mml:mrow> <mml:mrow> <mml:mn mathvariant="normal"> 2</米米l:mn> </mml:mrow> </mml:msup> </mml:mrow> </mml:mfrac> <mml:mo> ,</米米l:mo> </mml:mtd> </mml:mlabeledtr> <mml:mtr> <mml:mtd> <mml:mi> l</米米l:mi> <mml:msubsup> <mml:mrow> <mml:mi> 问</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> <mml:mi> 米</米米l:mi> </mml:mrow> <mml:mrow> <mml:mn mathvariant="normal"> 0</米米l:mn> </mml:mrow> </mml:msubsup> <mml:mo> =</米米l:mo> <mml:mi> l</米米l:mi> <mml:msubsup> <mml:mrow> <mml:mi> p</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> </mml:mrow> <mml:mrow> <mml:mn> 0</米米l:mn> </mml:mrow> </mml:msubsup> <mml:mo> 。</米米l:mo> </mml:mtd> </mml:mtr> </mml:mtable> </mml:math> </disp-formula></p> <p>在该算法中,我们不计算后验概率的<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M25"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi mathvariant="normal"> B</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>和<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M26"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi mathvariant="normal"> C</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 米</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>直接;相反,我们计算一些节点和检查节点之间的消息传递以及硬解码前的后验概率。</p><p>一步的更新消息<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M27"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi mathvariant="normal"> C</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 米</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>来<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M28"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi mathvariant="normal"> B</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>,因为<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M29"> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:math> </inline-formula>th迭代,访问<bold> H</bold>行顺序,<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M30"> <mml:mi> l</米米l:mi> <mml:msubsup> <mml:mrow> <mml:mi> r</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 米</米米l:mi> <mml:mi> n</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msubsup> </mml:math> </inline-formula>作为消息发送<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M31"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi mathvariant="normal"> C</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 米</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>来<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M32"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi mathvariant="normal"> B</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>据更新一些节点连接到吗<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M33"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi mathvariant="normal"> C</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 米</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>在坦纳图,除了<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M34"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi mathvariant="normal"> B</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>。更新的过程,称为最小的步骤如下:<d我年代p- - - - - -for米ula> <mml:math display="block" xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M35"> <mml:mtable> <mml:mlabeledtr id="eq2"> <mml:mtd> <mml:mtext> (2)</米米l:mtext> </mml:mtd> <mml:mtd> <mml:mi> l</米米l:mi> <mml:msubsup> <mml:mrow> <mml:mi> r</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 米</米米l:mi> <mml:mi> n</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msubsup> <mml:mo> =</米米l:mo> <mml:mrow> <mml:munder> <mml:mstyle displaystyle="true"> <mml:mo stretchy="false"> ∏</米米l:mo> </mml:mstyle> <mml:mrow> <mml:msup> <mml:mrow> <mml:mi> n</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> ′</米米l:mi> </mml:mrow> </mml:msup> <mml:mo> ∈</米米l:mo> <mml:mi> N</米米l:mi> <mml:mfenced separators="" open="(" close=")"> <mml:mrow> <mml:mi> 米</米米l:mi> </mml:mrow> </mml:mfenced> <mml:mo> ∖</米米l:mo> <mml:mi> n</米米l:mi> </mml:mrow> </mml:munder> <mml:mrow> <mml:mrow> <mml:mrow> <mml:mi mathvariant="normal"> 标志</米米l:mi> </mml:mrow> <mml:mo> ⁡</米米l:mo> <mml:mrow> <mml:mfenced separators="" open="(" close=")"> <mml:mrow> <mml:mi> l</米米l:mi> <mml:msubsup> <mml:mrow> <mml:mi> 问</米米l:mi> </mml:mrow> <mml:mrow> <mml:msup> <mml:mrow> <mml:mi> n</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> ′</米米l:mi> </mml:mrow> </mml:msup> <mml:mi> 米</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> <mml:mo> - - - - - -</米米l:mo> <mml:mn mathvariant="normal"> 1</米米l:mn> </mml:mrow> </mml:msubsup> </mml:mrow> </mml:mfenced> </mml:mrow> </mml:mrow> <mml:mrow> <mml:mrow> <mml:munder> <mml:mrow> <mml:mi mathvariant="normal"> 最小值</米米l:mi> </mml:mrow> <mml:mrow> <mml:msup> <mml:mrow> <mml:mi> n</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> ′</米米l:mi> </mml:mrow> </mml:msup> <mml:mo> ∈</米米l:mo> <mml:mi> N</米米l:mi> <mml:mfenced separators="|"> <mml:mrow> <mml:mi> 米</米米l:mi> </mml:mrow> </mml:mfenced> <mml:mo> ∖</米米l:mo> <mml:mi> n</米米l:mi> </mml:mrow> </mml:munder> </mml:mrow> <mml:mo> ⁡</米米l:mo> <mml:mrow> <mml:mfenced open="|" close="|" separators="|"> <mml:mrow> <mml:mi> l</米米l:mi> <mml:msubsup> <mml:mrow> <mml:mi> 问</米米l:mi> </mml:mrow> <mml:mrow> <mml:msup> <mml:mrow> <mml:mi> n</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> ′</米米l:mi> </mml:mrow> </mml:msup> <mml:mi> 米</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> <mml:mo> - - - - - -</米米l:mo> <mml:mn mathvariant="normal"> 1</米米l:mn> </mml:mrow> </mml:msubsup> </mml:mrow> </mml:mfenced> </mml:mrow> </mml:mrow> </mml:mrow> </mml:mrow> <mml:mo> 。</米米l:mo> </mml:mtd> </mml:mlabeledtr> </mml:mtable> </mml:math> </disp-formula></p> <p>使用<bold> H</bold>矩阵和坦纳图在图<xrefref- - - - - -- - - - - -- - - - - -- - - - - - - -type="fig" rid="fig1"> 1</xref>例如,<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M36"> <mml:mi> l</米米l:mi> <mml:msubsup> <mml:mrow> <mml:mi> r</米米l:mi> </mml:mrow> <mml:mrow> <mml:mn> 0,0</米米l:mn> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msubsup> </mml:math> </inline-formula>更新的BN<年代ub>1</年代ub>和BN<年代ub>2</年代ub>,如图<xrefref- - - - - -- - - - - -- - - - - -- - - - - - - -type="fig" rid="fig3"> 3</xref>,<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M37"> <mml:msubsup> <mml:mrow> <mml:mi> r</米米l:mi> </mml:mrow> <mml:mrow> <mml:mn> 0,0</米米l:mn> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msubsup> <mml:mo> =</米米l:mo> <mml:mi> f</米米l:mi> <mml:mo stretchy="false"> (</米米l:mo> <mml:mi> l</米米l:mi> <mml:msubsup> <mml:mrow> <mml:mi> 问</米米l:mi> </mml:mrow> <mml:mrow> <mml:mn> 1,0</米米l:mn> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> <mml:mo> - - - - - -</米米l:mo> <mml:mn> 1</米米l:mn> </mml:mrow> </mml:msubsup> <mml:mo> ,</米米l:mo> <mml:mi> l</米米l:mi> <mml:msubsup> <mml:mrow> <mml:mi> 问</米米l:mi> </mml:mrow> <mml:mrow> <mml:mn> 2、0</米米l:mn> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> <mml:mo> - - - - - -</米米l:mo> <mml:mn> 1</米米l:mn> </mml:mrow> </mml:msubsup> <mml:mo stretchy="false"> )</米米l:mo> </mml:math> </inline-formula>。</p><f我g id="fig3"> <label>图3</label> <p>更新的示例<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M38"> <mml:mi> l</米米l:mi> <mml:msubsup> <mml:mrow> <mml:mi> r</米米l:mi> </mml:mrow> <mml:mrow> <mml:mn> 0,0</米米l:mn> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msubsup> </mml:math> </inline-formula>从CN,消息<年代ub>0</年代ub>对BN<年代ub>0</年代ub>。</p><graphic xlink:href="//www.newsama.com/downloads/journals/misy/2016/7048482.fig.003"></graphic> </fig> <p>的后验概率<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M39"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi mathvariant="normal"> B</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>先验概率更新的吗<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M40"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi mathvariant="normal"> B</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>检查节点连接<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M41"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi mathvariant="normal"> B</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>:<d我年代p- - - - - -for米ula> <mml:math display="block" xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M42"> <mml:mtable> <mml:mlabeledtr id="eq3"> <mml:mtd> <mml:mtext> (3)</米米l:mtext> </mml:mtd> <mml:mtd> <mml:mi> l</米米l:mi> <mml:msubsup> <mml:mrow> <mml:mi> p</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msubsup> <mml:mo> =</米米l:mo> <mml:mi> l</米米l:mi> <mml:msubsup> <mml:mrow> <mml:mi> p</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> </mml:mrow> <mml:mrow> <mml:mn> 0</米米l:mn> </mml:mrow> </mml:msubsup> <mml:mo> +</米米l:mo> <mml:mrow> <mml:munder> <mml:mstyle displaystyle="true"> <mml:mo stretchy="false"> ∑</米米l:mo> </mml:mstyle> <mml:mrow> <mml:mi> 米</米米l:mi> <mml:mo> ∈</米米l:mo> <mml:mi> 米</米米l:mi> <mml:mfenced separators="" open="(" close=")"> <mml:mrow> <mml:mi> n</米米l:mi> </mml:mrow> </mml:mfenced> </mml:mrow> </mml:munder> <mml:mrow> <mml:mi> l</米米l:mi> <mml:msubsup> <mml:mrow> <mml:mi> r</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 米</米米l:mi> <mml:mi> n</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msubsup> </mml:mrow> </mml:mrow> <mml:mo> 。</米米l:mo> </mml:mtd> </mml:mlabeledtr> </mml:mtable> </mml:math> </disp-formula></p> <p>同样,在更新消息的步骤<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M43"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi mathvariant="normal"> B</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>来<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M44"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi mathvariant="normal"> C</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 米</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>,因为<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M45"> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:math> </inline-formula>th迭代,<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M46"> <mml:mi> l</米米l:mi> <mml:msubsup> <mml:mrow> <mml:mi> 问</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> <mml:mi> 米</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msubsup> </mml:math> </inline-formula>,发送的消息<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M47"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi mathvariant="normal"> B</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>来<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M48"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi mathvariant="normal"> C</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 米</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>据更新检查节点连接到吗<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M49"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi mathvariant="normal"> B</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>在坦纳图,除了<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M50"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi mathvariant="normal"> C</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 米</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>。更新过程称为和步骤。<d我年代p- - - - - -for米ula> <mml:math display="block" xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M51"> <mml:mtable> <mml:mlabeledtr id="eq4"> <mml:mtd> <mml:mtext> (4)</米米l:mtext> </mml:mtd> <mml:mtd> <mml:mi> l</米米l:mi> <mml:msubsup> <mml:mrow> <mml:mi> 问</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> <mml:mi> 米</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msubsup> <mml:mo> =</米米l:mo> <mml:mi> l</米米l:mi> <mml:msubsup> <mml:mrow> <mml:mi> p</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msubsup> <mml:mo> - - - - - -</米米l:mo> <mml:mi> l</米米l:mi> <mml:msubsup> <mml:mrow> <mml:mi> r</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 米</米米l:mi> <mml:mi> n</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msubsup> <mml:mo> 。</米米l:mo> </mml:mtd> </mml:mlabeledtr> </mml:mtable> </mml:math> </disp-formula></p> <p>使用在图坦纳图<xrefref- - - - - -- - - - - -- - - - - -- - - - - - - -type="fig" rid="fig1"> 1</xref>例如,<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M52"> <mml:mi> l</米米l:mi> <mml:msubsup> <mml:mrow> <mml:mi> 问</米米l:mi> </mml:mrow> <mml:mrow> <mml:mn> 0,0</米米l:mn> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msubsup> </mml:math> </inline-formula>CN是更新的<年代ub>2</年代ub>,如图<xrefref- - - - - -- - - - - -- - - - - -- - - - - - - -type="fig" rid="fig4"> 4</xref>,<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M53"> <mml:mi> l</米米l:mi> <mml:msubsup> <mml:mrow> <mml:mi> 问</米米l:mi> </mml:mrow> <mml:mrow> <mml:mn> 0,0</米米l:mn> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msubsup> <mml:mo> =</米米l:mo> <mml:mi> f</米米l:mi> <mml:mo stretchy="false"> (</米米l:mo> <mml:mi> l</米米l:mi> <mml:msubsup> <mml:mrow> <mml:mi> r</米米l:mi> </mml:mrow> <mml:mrow> <mml:mn> 2、0</米米l:mn> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msubsup> <mml:mo stretchy="false"> )</米米l:mo> </mml:math> </inline-formula>。</p><f我g id="fig4"> <label>图4</label> <p>更新的示例<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M54"> <mml:mi> l</米米l:mi> <mml:msubsup> <mml:mrow> <mml:mi> 问</米米l:mi> </mml:mrow> <mml:mrow> <mml:mn> 0,0</米米l:mn> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msubsup> </mml:math> </inline-formula>从BN,消息<年代ub>0</年代ub>CN<年代ub>0</年代ub>。</p><graphic xlink:href="//www.newsama.com/downloads/journals/misy/2016/7048482.fig.004"></graphic> </fig> <p>实际上,更新的台阶<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M55"> <mml:mi> l</米米l:mi> <mml:msubsup> <mml:mrow> <mml:mi> p</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msubsup> </mml:math> </inline-formula>和<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M56"> <mml:mi> l</米米l:mi> <mml:msubsup> <mml:mrow> <mml:mi> 问</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> <mml:mi> 米</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msubsup> </mml:math> </inline-formula>可以交换。如果我们更新<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M57"> <mml:mi> l</米米l:mi> <mml:msubsup> <mml:mrow> <mml:mi> p</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msubsup> </mml:math> </inline-formula>首先,的结果<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M58"> <mml:mi> l</米米l:mi> <mml:msubsup> <mml:mrow> <mml:mi> p</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msubsup> </mml:math> </inline-formula>可以用来更新吗<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M59"> <mml:mi> l</米米l:mi> <mml:msubsup> <mml:mrow> <mml:mi> 问</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> <mml:mi> 米</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msubsup> </mml:math> </inline-formula>,这减少了重复计算。</p><p>最后硬解码迭代结束时执行。<d我年代p- - - - - -for米ula> <mml:math display="block" xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M60"> <mml:mtable> <mml:mlabeledtr id="eq5"> <mml:mtd> <mml:mtext> (5)</米米l:mtext> </mml:mtd> <mml:mtd> <mml:msubsup> <mml:mrow> <mml:mi> c</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msubsup> <mml:mo> =</米米l:mo> <mml:mfenced open="{" close="" separators="|"> <mml:mrow> <mml:mtable class="cases"> <mml:mtr> <mml:mtd columnalign="left"> <mml:mn mathvariant="normal"> 1</米米l:mn> </mml:mtd> <mml:mtd columnalign="left"> <mml:mi mathvariant="normal"> 我</米米l:mi> <mml:mi mathvariant="normal"> f</米米l:mi> <mml:mo> </mml:mo> <mml:mo> </mml:mo> <mml:mi> l</米米l:mi> <mml:msubsup> <mml:mrow> <mml:mi> p</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msubsup> <mml:mo> <</米米l:mo> <mml:mn mathvariant="normal"> 0</米米l:mn> </mml:mtd> </mml:mtr> <mml:mtr> <mml:mtd columnalign="left"> <mml:mn mathvariant="normal"> 0</米米l:mn> </mml:mtd> <mml:mtd columnalign="left"> <mml:mi mathvariant="normal"> 我</米米l:mi> <mml:mi mathvariant="normal"> f</米米l:mi> <mml:mo> </mml:mo> <mml:mo> </mml:mo> <mml:mi> l</米米l:mi> <mml:msubsup> <mml:mrow> <mml:mi> p</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msubsup> <mml:mo> ></米米l:mo> <mml:mn mathvariant="normal"> 0</米米l:mn> <mml:mo> 。</米米l:mo> </mml:mtd> </mml:mtr> </mml:mtable> </mml:mrow> </mml:mfenced> </mml:mtd> </mml:mlabeledtr> </mml:mtable> </mml:math> </disp-formula></p> <p>如果解码词迭代过程停止<bold> c</bold>验证所有的奇偶校验方程<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M61"> <mml:mi mathvariant="bold-italic"> c</米米l:mi> <mml:msup> <mml:mrow> <mml:mi mathvariant="bold-italic"> H</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> T</米米l:mi> </mml:mrow> </mml:msup> <mml:mo> =</米米l:mo> <mml:mn> 0</米米l:mn> </mml:math> </inline-formula>或达到最大迭代。</p><p>解码器的实现是通过洪水调度算法(<xrefref- - - - - -- - - - - -- - - - - -- - - - - - - -type="bibr" rid="B13"> 12</xref>]。它保证一些节点不会互相干扰,在更新步骤更新检查节点时,检查节点不会相互干扰。使用这一原则允许真正的并行执行的MSA LDPC译码的基础上,基于流的计算方法。</p></年代ec><年代ec id="sec3"> <title>3所示。OpenCL移动GPU</t我tle> <p>基于超高现代GPU并行计算能力和可编程管线。流处理器GPU可以做通用的计算(<xrefref- - - - - -- - - - - -- - - - - -- - - - - - - -type="bibr" rid="B14"> 13</xref>]。GPU比CPU浮点性能更有效的尤其是当我们处理单指令多数据(SIMD)和计算密集型任务的完成,数据处理的操作需要的时间远远超过数据调度和数据传输(<xrefref- - - - - -- - - - - -- - - - - -- - - - - - - -type="bibr" rid="B15"> 14</xref>]。</p><p>与台式电脑的专用的GPU,移动GPU通常是集成到一个应用程序处理器,它还包括一个多核CPU、图像处理引擎,dsp、和其他加速器(<xrefref- - - - - -- - - - - -- - - - - -- - - - - - - -type="bibr" rid="B16"> 15</xref>]。最近,现代等移动GPU高通促GPU (<xrefref- - - - - -- - - - - -- - - - - -- - - - - - - -type="bibr" rid="B9"> 16</xref>),想象PowerVR GPU,手臂马里,GPGPU Vivante倾向于在一个芯片上集成多个计算单元。移动gpu获得了通用并行计算能力由于多核架构和OpenCL等新兴框架,他们可能会提供灵活性类似于特定于供应商的解决方案为台式电脑设计的,比如Nvidia的CUDA。</p><p>OpenCL是异构计算的编程框架设计跨各种平台(<xrefref- - - - - -- - - - - -- - - - - -- - - - - - - -type="bibr" rid="B17"> 17</xref>]。OpenCL,主机处理器(通常是一个CPU)管理OpenCL上下文和能够出售并行任务数计算设备(例如,GPU)。</p><p>并行工作可分为工作团队,和他们每个人包括许多工作项的基本处理单元并行执行内核。</p><p>OpenCL分级内存模型定义了一个包含一个大型全局内存但长延迟和一个小而快的本地内存可以共享相同的工作项“workgroup”;更重要的是,每个工作项都有自己的内存,不与其他项目和共享是最快的访问。</p><p>有效和充分利用计算资源有限的移动处理器为更好的性能,我们分区CPU和GPU之间的任务和探索算法并行性,和内存访问优化需要仔细考虑。</p><p>在嵌入式平台,处理各种任务正在成为一个趋势。OpenCL规范描述了手持OpenCL规范的一个子集和嵌入式平台。</p><p>OpenCL嵌入的配置文件设置了一些限制;例如,有可选支持3 d图像和不支持64位的整数,不支持64位的整数。OpenCL的细节嵌入的配置文件中可以找到Khronos网站(<xrefref- - - - - -- - - - - -- - - - - -- - - - - - - -type="bibr" rid="B17"> 17</xref>]。</p><p>尽管有这些规范的限制,可以使用OpenCL加速移动设备上的程序。移动设备上的计算密集型计算转移到GPU或其他设备支持OpenCL;不仅这些任务可以执行更有效,而且CPU可以处理多个任务,擅长。实际上,LDPC译码是一种传统的计算密集型计算。</p></年代ec><年代ec id="sec4"> <title>4所示。移动GPU的并行MSA LDPC译码</t我tle> <p>MSA是深加工,应该在特定高性能计算引擎处理的,或在一个高度并行可编程设备。在移动设备上,GPU是一个不错的选择。这个通用模型,使用OpenCL支持GPU,几个多处理器并行执行内核。每个处理器由几个核心调度多个线程。在本节中,一个并行处理保存的信息矩阵<bold> H</bold>到工作项。为了保存私有内存,每个工作项只有不断的压缩信息与自己的计算。在那之后,介绍了OpenCL内核中特定的并行算法。给定一个(<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M62"> <mml:mi> N</米米l:mi> <mml:mo> ,</米米l:mo> <mml:mi> K</米米l:mi> </mml:math> </inline-formula>)LDPC编码,重要的是管理并行编程的计算,以减少支出。而不是使用<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M63"> <mml:mi> 米</米米l:mi> <mml:mo> ×</米米l:mo> <mml:msub> <mml:mrow> <mml:mi> w</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> c</米米l:mi> </mml:mrow> </mml:msub> </mml:math> </inline-formula>工作项(<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M64"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi> w</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> c</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>矩阵的最大柱重量吗<bold> H</bold>),模型使用<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M65"> <mml:mi> 米</米米l:mi> <mml:mo> ×</米米l:mo> <mml:mn> 1</米米l:mn> </mml:math> </inline-formula>在每个“workgroup”工作项,每个工作项更新信息一个检查节点,这意味着<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M66"> <mml:mrow> <mml:mi> 米</米米l:mi> </mml:mrow> </mml:math> </inline-formula>工作项工作<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M67"> <mml:mrow> <mml:mi> 米</米米l:mi> </mml:mrow> </mml:math> </inline-formula>检查节点,分别。</p><年代ec我d="sec4.1"> <title>4.1。坦纳的紧凑表示图</t我tle> <p>坦纳图LPDC代码定义为<bold> H</bold>。我们建议在两个单独的数据结构,也就是说,<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M68"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi> H</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi mathvariant="normal"> B</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>和<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M69"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi> H</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi mathvariant="normal"> C</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>。这是因为一个迭代的LDPC译码器可以分解为水平和垂直处理,这意味着我们更新信息<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M70"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi mathvariant="normal"> C</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>来<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M71"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi mathvariant="normal"> B</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 米</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>和消息从<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M72"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi mathvariant="normal"> B</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 米</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>来<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M73"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi mathvariant="normal"> C</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>,分别。</p><p>中使用的数据结构被定义为水平的一步<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M74"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi> H</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi mathvariant="normal"> B</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>。它是通过扫描生成矩阵<bold> H</bold>行顺序和映射只有一些节点的边缘与null元素相关联<bold> H</bold>使用一个检查节点方程在同一行。算法<xrefref- - - - - -- - - - - -- - - - - -- - - - - - - -type="other" rid="alg1"> 1</xref>详细描述了这个过程的一个矩阵<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M75"> <mml:mrow> <mml:mi> 米</米米l:mi> </mml:mrow> </mml:math> </inline-formula>行和<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M76"> <mml:mrow> <mml:mi> N</米米l:mi> </mml:mrow> </mml:math> </inline-formula>列。<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M77"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi> H</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi mathvariant="normal"> B</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>保存在私有内存。因为每个工作项更新消息在整个行,<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M78"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi> H</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi mathvariant="normal"> B</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>不需要访问其他工作项。</p><p我d="alg1"> <list list-content="algorithm"> <title><大胆>算法1:< /大胆>生成紧凑< inline-formula > < mml:数学xmlns: mml = " http://www.w3.org/1998/Math/MathML " id = " M79 " > < mml: mrow > < mml: msub > < mml: mrow > < mml: mi > H < / mml: mi > < / mml: mrow > < mml: mrow > < mml: mi mathvariant =“正常”> B < / mml: mi > < mml: mi mathvariant =“正常”> N < / mml: mi > < / mml: mrow > < / mml: msub > < / mml: mrow > < / mml:数学> < / inline-formula >从矩阵H <大胆> < /大胆>。</t我tle> <list-item></list-item> </list></p> <p>(1)<bold> 作为</bold>的工作项<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M80"> <mml:mrow> <mml:mi> k</米米l:mi> </mml:mrow> </mml:math> </inline-formula>“workgroup”:<bold> 做</bold></p> <list-item> <p>(2)<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M81"> <mml:mi> 米</米米l:mi> <mml:mo> =</米米l:mo> <mml:mi> k</米米l:mi> </mml:math> </inline-formula></p> </list-item> <list-item> <p>(3)<bold> 为</bold>所有BN<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M82"> <mml:mrow> <mml:msub> <mml:mrow></mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>(列<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M83"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi> H</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 米</米米l:mi> <mml:mi> n</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>):<bold> 做</bold></p> </list-item> <list-item> <p>(4)<bold> 如果</bold> <inline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M84"> <mml:msub> <mml:mrow> <mml:mi> H</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 米</米米l:mi> <mml:mi> n</米米l:mi> </mml:mrow> </mml:msub> <mml:mo> =</米米l:mo> <mml:mo> =</米米l:mo> <mml:mn fontstyle="italic"> 1</米米l:mn> </mml:math> </inline-formula> <bold> 然后</bold></p> </list-item> <list-item> <p>(5)<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M85"> <mml:msub> <mml:mrow> <mml:mi> H</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi mathvariant="normal"> B</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> </mml:msub> <mml:mo stretchy="false"> (</米米l:mo> <mml:mi> 我</米米l:mi> <mml:mi> d</米米l:mi> <mml:mi> x</米米l:mi> </mml:math> </inline-formula>+ +<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M86"> <mml:mo stretchy="false"> ]</米米l:mo> <mml:mo> =</米米l:mo> <mml:mi> n</米米l:mi> </mml:math> </inline-formula></p> </list-item> <p></p> <p>的<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M87"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi> H</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi mathvariant="normal"> C</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>使用数据结构在垂直的处理步骤。它可以被定义为一个边缘的顺序表示null值<bold> H</bold>。它是通过扫描生成<bold> H</bold>矩阵列为主的顺序。<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M88"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi> H</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi mathvariant="normal"> C</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>也保存在私有内存。因为每个工作项更新消息在你的邻居<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M89"> <mml:mi> N</米米l:mi> <mml:mo> /</米米l:mo> <mml:mi> 米</米米l:mi> </mml:math> </inline-formula>行,<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M90"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi> H</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi mathvariant="normal"> C</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>没有必要,以供其他工作项。</p></年代ec><年代ec id="sec4.2"> <title>4.2。编程的MSA OpenCL网格</t我tle> <p>每个“workgroup”包含<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M91"> <mml:mrow> <mml:mi> 米</米米l:mi> </mml:mrow> </mml:math> </inline-formula>表示线程的工作项。而不是整个矩阵<bold> H</bold>或<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M92"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi> H</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi mathvariant="normal"> B</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>,每个工作项可以节省必要的信息的一部分<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M93"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi> H</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi mathvariant="normal"> B</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>在私有内存,使访问执行更新更快。再一次,同样的原则也适用于更新的<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M94"> <mml:mi> l</米米l:mi> <mml:msubsup> <mml:mrow> <mml:mi> 问</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> <mml:mi> 米</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msubsup> </mml:math> </inline-formula>消息。</p><p>根据LDPC码长,CPU在移动在GPU做分配内存,包括全局内存来存储校验矩阵<bold> H</bold>、输入数据、输出数据和本地内存来保存消息从一些节点检查节点发送的数据,标记为<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M95"> <mml:mi> l</米米l:mi> <mml:msubsup> <mml:mrow> <mml:mi> r</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 米</米米l:mi> <mml:mi> n</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msubsup> </mml:math> </inline-formula>从检查节点,节点标记为<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M96"> <mml:mi> l</米米l:mi> <mml:msubsup> <mml:mrow> <mml:mi> 问</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> <mml:mi> 米</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msubsup> </mml:math> </inline-formula>(算法<xrefref- - - - - -- - - - - -- - - - - -- - - - - - - -type="other" rid="alg3"> 3</xref>)。</p><p>在步骤<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M97"> <mml:mo stretchy="false"> (</米米l:mo> <mml:mn> 2</米米l:mn> <mml:mo stretchy="false"> )</米米l:mo> </mml:math> </inline-formula>,紧凑<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M98"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi> H</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi mathvariant="normal"> B</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>和<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M99"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi> H</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi mathvariant="normal"> C</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>生成私有内存的算法<xrefref- - - - - -- - - - - -- - - - - -- - - - - - - -type="other" rid="alg1"> 1</xref>和<xrefref- - - - - -- - - - - -- - - - - -- - - - - - - -type="other" rid="alg2"> 2</xref>。</p><p我d="alg2"> <list list-content="algorithm"> <title><大胆>算法2:< /大胆>生成紧凑< inline-formula > < mml:数学xmlns: mml = " http://www.w3.org/1998/Math/MathML " id = " M100 " > < mml: mrow > < mml: msub > < mml: mrow > < mml: mi > H < / mml: mi > < / mml: mrow > < mml: mrow > < mml: mi mathvariant =“正常”> C < / mml: mi > < mml: mi mathvariant =“正常”> N < / mml: mi > < / mml: mrow > < / mml: msub > < / mml: mrow > < / mml:数学> < / inline-formula >从矩阵H <大胆> < /大胆>。</t我tle> <list-item></list-item> </list></p> <p>(1)<bold> 作为</bold>的工作项<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M101"> <mml:mrow> <mml:mi> k</米米l:mi> </mml:mrow> </mml:math> </inline-formula>“workgroup”:<bold> 做</bold></p> <list-item> <p>(2)<bold> 为</bold>抵消=从0到<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M102"> <mml:mi> N</米米l:mi> <mml:mo> /</米米l:mo> <mml:mi> 米</米米l:mi> <mml:mo> - - - - - -</米米l:mo> <mml:mn fontstyle="italic"> 1</米米l:mn> </mml:math> </inline-formula>:<bold> 做</bold></p> </list-item> <list-item> <p>(3)<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M103"> <mml:mi> n</米米l:mi> <mml:mo> =</米米l:mo> <mml:mi> k</米米l:mi> <mml:mo> ×</米米l:mo> <mml:mi> N</米米l:mi> <mml:mo> /</米米l:mo> <mml:mi> 米</米米l:mi> <mml:mo> +</米米l:mo> <mml:mi mathvariant="normal"> o</米米l:mi> <mml:mi mathvariant="normal"> f</米米l:mi> <mml:mi mathvariant="normal"> f</米米l:mi> <mml:mi mathvariant="normal"> 年代</米米l:mi> <mml:mi mathvariant="normal"> e</米米l:mi> <mml:mi mathvariant="normal"> t</米米l:mi> </mml:math> </inline-formula></p> </list-item> <list-item> <p>(4)<bold> 为</bold>所有<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M104"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi mathvariant="normal"> B</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>(列<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M105"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi> H</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 米</米米l:mi> <mml:mi> n</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>):<bold> 做</bold></p> </list-item> <list-item> <p>(5)<bold> 如果</bold> <inline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M106"> <mml:msub> <mml:mrow> <mml:mi> H</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 米</米米l:mi> <mml:mi> n</米米l:mi> </mml:mrow> </mml:msub> <mml:mo> =</米米l:mo> <mml:mo> =</米米l:mo> <mml:mn fontstyle="italic"> 1</米米l:mn> </mml:math> </inline-formula> <bold> 然后</bold></p> </list-item> <list-item> <p>(6)<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M107"> <mml:msub> <mml:mrow> <mml:mi> H</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi mathvariant="normal"> C</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> </mml:msub> <mml:mo stretchy="false"> (</米米l:mo> <mml:mi> 我</米米l:mi> <mml:mi> d</米米l:mi> <mml:mi> x</米米l:mi> </mml:math> </inline-formula>+ +<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M108"> <mml:mo stretchy="false"> ]</米米l:mo> <mml:mo> =</米米l:mo> <mml:mi> n</米米l:mi> </mml:math> </inline-formula></p> </list-item> <p></p> <p id="alg3"> <list list-content="algorithm"> <title><大胆>算法3:< /大胆> MSA内核执行的GPU网格。</t我tle> <list-item></list-item> </list></p> <p>(1)初始化“workgroup”大小(或每个“workgroup”的工作项数量)。</p><list-item> <p>(2)生成紧凑<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M109"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi> H</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi mathvariant="normal"> B</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>,<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M110"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi> H</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi mathvariant="normal"> C</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>从矩阵<bold> H</bold></p> </list-item> <list-item> <p>(3)<bold> 而</bold> <inline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M111"> <mml:mo stretchy="false"> (</米米l:mo> <mml:mi mathvariant="bold-italic"> c</米米l:mi> <mml:msup> <mml:mrow> <mml:mi mathvariant="bold-italic"> H</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> T</米米l:mi> </mml:mrow> </mml:msup> <mml:mo> ≠</米米l:mo> <mml:mn fontstyle="italic"> 0</米米l:mn> <mml:mo> ∩</米米l:mo> <mml:mi> 我</米米l:mi> <mml:mo> <</米米l:mo> <mml:mi> 我</米米l:mi> <mml:mo stretchy="false"> )</米米l:mo> </mml:math> </inline-formula></p> </list-item> <list-item> <p>(4)<bold> 作为</bold>的工作项<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M112"> <mml:mrow> <mml:mi> k</米米l:mi> </mml:mrow> </mml:math> </inline-formula>在一个<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M113"> <mml:mrow> <mml:mi> 米</米米l:mi> </mml:mrow> </mml:math> </inline-formula>“workgroup”:<bold> 做</bold></p> </list-item> <list-item> <p>(5)<bold> 为</bold>所有<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M114"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi> H</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi mathvariant="normal"> B</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>:<bold> 做</bold></p> </list-item> <list-item> <p>(6)<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M115"> <mml:mi> 米</米米l:mi> <mml:mo> =</米米l:mo> <mml:mi> k</米米l:mi> </mml:math> </inline-formula></p> </list-item> <list-item> <p>(7)发送更新消息<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M116"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi mathvariant="normal"> B</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>来<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M117"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi mathvariant="normal"> C</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 米</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula></p> </list-item> <list-item> <p>(8)发送更新消息<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M118"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi mathvariant="normal"> C</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 米</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>来<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M119"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi mathvariant="normal"> B</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula></p> </list-item> <list-item> <p>(9)所有线程同步</p></list-item> <list-item> <p>(10)<bold> 为</bold>抵消= 0<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M120"> <mml:mi> N</米米l:mi> <mml:mo> /</米米l:mo> <mml:mi> 米</米米l:mi> <mml:mo> - - - - - -</米米l:mo> <mml:mn fontstyle="italic"> 1</米米l:mn> </mml:math> </inline-formula>:<bold> 做</bold></p> </list-item> <list-item> <p>(11)<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M121"> <mml:mi> n</米米l:mi> <mml:mo> =</米米l:mo> <mml:mi> k</米米l:mi> <mml:mo> ×</米米l:mo> <mml:mi> N</米米l:mi> <mml:mo> /</米米l:mo> <mml:mi> 米</米米l:mi> <mml:mo> +</米米l:mo> <mml:mi mathvariant="normal"> o</米米l:mi> <mml:mi mathvariant="normal"> f</米米l:mi> <mml:mi mathvariant="normal"> f</米米l:mi> <mml:mi mathvariant="normal"> 年代</米米l:mi> <mml:mi mathvariant="normal"> e</米米l:mi> <mml:mi mathvariant="normal"> t</米米l:mi> </mml:math> </inline-formula></p> </list-item> <list-item> <p>(12)<bold> 为</bold>所有<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M122"> <mml:msub> <mml:mrow> <mml:mi> H</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi mathvariant="normal"> C</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> </mml:msub> <mml:mo stretchy="false"> (</米米l:mo> <mml:mi mathvariant="normal"> o</米米l:mi> <mml:mi mathvariant="normal"> f</米米l:mi> <mml:mi mathvariant="normal"> f</米米l:mi> <mml:mi mathvariant="normal"> 年代</米米l:mi> <mml:mi mathvariant="normal"> e</米米l:mi> <mml:mi mathvariant="normal"> t</米米l:mi> <mml:mo stretchy="false"> ]</米米l:mo> </mml:math> </inline-formula>:<bold> 做</bold></p> </list-item> <list-item> <p>(13)更新的后验概率<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M123"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi mathvariant="normal"> B</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula></p> </list-item> <list-item> <p>(14)所有线程同步</p></list-item> <list-item> <p>(15)执行硬解码</p></list-item> <p></p> <p>一样的正常MSA算法,循环执行的步骤<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M124"> <mml:mo stretchy="false"> (</米米l:mo> <mml:mn> 3</米米l:mn> <mml:mo stretchy="false"> )</米米l:mo> </mml:math> </inline-formula>将结束,直到输出码字是当前或达到最大循环时间。</p><p>它执行一个水平处理,垂直处理和所有线程的同步步骤(5)- (9)。一般来说,所有线程应该在水平和垂直同步处理,但在这个算法,每个工作项负责自己的检查节点,和<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M125"> <mml:mi> l</米米l:mi> <mml:msubsup> <mml:mrow> <mml:mi> r</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 米</米米l:mi> <mml:mi> n</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msubsup> </mml:math> </inline-formula>与其他工作项数据不共享,所以它能够取消同步后水平处理来提高性能。<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M126"> <mml:mi> l</米米l:mi> <mml:msubsup> <mml:mrow> <mml:mi> 问</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> <mml:mi> 米</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msubsup> </mml:math> </inline-formula>与所有工作项数据仍然是共享,所以同步垂直处理后保留。</p><p>同步后,它的后验概率计算<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M127"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi mathvariant="normal"> B</米米l:mi> <mml:mi mathvariant="normal"> N</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula>和每一个工作项处理<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M128"> <mml:mi> N</米米l:mi> <mml:mo> /</米米l:mo> <mml:mi> 米</米米l:mi> </mml:math> </inline-formula>节点在步骤(10)- (13)。在第二次同步,它执行的硬解码后验概率,根据部分中描述的方法<xrefref- - - - - -- - - - - -- - - - - -- - - - - - - -type="sec" rid="sec2"> 2</xref>。</p><p>真正的并行执行,进行和整体处理时间需要解码码字可以显著减少结果,因为这将在下一节中。更多的数据并行性可以同时利用解码多个码字,但这是不被认为是在这个工作。</p></年代ec></年代ec> <sec id="sec5"> <title>5。实现和实验结果</t我tle> <p>实验设置评估提出了并行LDPC译码器的性能在GPU上由PowerVR G6200全球256 MB内存和当地4 KB内存使用C语言编程和OpenCL编程接口(版本1.1)。在该算法中,每个码字是解码“workgroup”。由于有限的本地内存,只能使用小LDPC码在这个测试手机。然而,“workgroup”数量可以大由于GPU上相对较大的全局内存。</p><p>解码一批码字的原始大小是1 Mbit,性能变化很小,在图<xrefref- - - - - -- - - - - -- - - - - -- - - - - - - -type="fig" rid="fig5"> 5</xref>我们只显示最好的成果。作为一个144×576的矩阵,每个“workgroup”工作项都等于他们的行号,这意味着我们使用144这个实验每“workgroup”和1000年“workgroup”工作项。</p><f我g id="fig5"> <label>图5</label> <p>LDPC译码次使用MSA GPU和相应的吞吐量。</p><graphic xlink:href="//www.newsama.com/downloads/journals/misy/2016/7048482.fig.005"></graphic> </fig> <p>图的解码时报报道<xrefref- - - - - -- - - - - -- - - - - -- - - - - - - -type="fig" rid="fig5"> 5</xref>定义全局处理时间,包括数据传输时间和解码时间。解码时间的增加以及迭代的增加。他们有一个线性关系。充分利用GPU的计算能力。吞吐量降低迭代增加当迭代增加解码数据的大小是相同的。</p><p>在移动设备上,我们同样重视延迟的吞吐量。图<xrefref- - - - - -- - - - - -- - - - - -- - - - - - - -type="fig" rid="fig6"> 6</xref>显示译码延迟当10 Kbps到100 Mbps的速度。速度指数增加,延迟增加但进展缓慢。实际上,解码数据的大小在GPU解码周期太小,有些能力GPU的浪费和并行效果不明显较低的速度。</p><f我g id="fig6"> <label>图6</label> <p>解码延迟时间在10 Kbps到100 Mbps的速度。</p><graphic xlink:href="//www.newsama.com/downloads/journals/misy/2016/7048482.fig.006"></graphic> </fig> <p>很明显,延误增加为GPU解码码字时增加。然而,解码的时间周期,这是最重要的部分延误,增加缓慢但更充分地利用计算能力。码字的同时减少在更高的速度。因此,它可以被应用在一些高速移动服务,像大文件传输,对延迟敏感服务,如视频通话。</p></年代ec><年代ec id="sec6"> <title>6。结论</t我tle> <p>本文提出一个多码字使用GPU并行LDPC译码器OpenCL运行在移动设备上。方法广泛应用于第四代移动通信技术,所以它是重要的认识到移动设备上的高速LDPC译码。</p><p>实例、流行的视频通话软件Skype,有其带宽需求注意到在其官方网站(<xrefref- - - - - -- - - - - -- - - - - -- - - - - - - -type="bibr" rid="B18"> 18</xref>]。Skype所需的带宽取决于类型的调用。所需的最低速度正常屏幕共享视频通话,高质量的视频通话,和高清视频通话0.3 Mbps, 0.5 Mbps, 1.5 Mbps。在上面的实验中解码延迟是0.84毫秒,0.86女士,女士在图0.98<xrefref- - - - - -- - - - - -- - - - - - - - -type="fig" rid="fig6"> 6</xref>。高清视频通话已经小于1毫秒的延迟。显然它可以满足其要求。</p><p>与LDPC译码模块的软件实现移动设备,方法,可以动态地改变参数,包括代码长度,代码速度和迭代的数量。所有的点都可以快速动态开启OpenCL装置,可快速处理各种各样的网络环境。坏的网络可以减少编码速率提高纠错的能力,同时可以提高编码速率,网络很好。与传统的硬件解码方式相比,我们提出了基于解码的软件实现解码算法在移动GPU更为高效,因为它可以随时开关根据实际环境。</p></年代ec><back> <sec> <title>相互竞争的利益</t我tle> <p>作者宣称没有利益冲突。</p></年代ec><ref-list> <ref id="B1" content-type="article"> <label>1</label> <nlm-citation publication-type="journal"> <person-group person-group-type="author"> <name> <surname> Gallager</年代urname> <given-names> r·G。</given-names> </name> </person-group> <article-title> 低密度奇偶校验码</article-title> <source> <italic> 愤怒的交易信息理论</我talic> <year> 1962年</year> <volume> 8</volume> <issue> 1</我年代年代ue> <fpage> 21</fpage> <lpage> 28</lpage> <pub-id pub-id-type="other"> MR0136009</pub-id> </nlm-citation> </ref> <ref id="B2" content-type="article"> <label>2</label> <nlm-citation publication-type="journal"> <person-group person-group-type="author"> <name> <surname> 麦凯</年代urname> <given-names> d . j . C。</given-names> </name> <name> <surname> 尼尔</年代urname> <given-names> r·M。</given-names> </name> </person-group> <article-title> 接近香农极限低密度奇偶校验码的性能</article-title> <source> <italic> 电子信件</我talic> <year> 1996年</year> <volume> 32</volume> <issue> 18</我年代年代ue> <fpage> 1645年</fpage> <lpage> 1646年</lpage> <pub-id pub-id-type="doi"> 10.1049 / el: 19961141</pub-id> <pub-id pub-id-type="other"> 2 - s2.0 - 0030219216</pub-id> </nlm-citation> </ref> <ref id="B3" content-type="inproceedings"> <label>3</label> <nlm-citation publication-type="confproc"> <person-group person-group-type="author"> <name> <surname> 张</年代urname> <given-names> T。</given-names> </name> <name> <surname> Parhi</年代urname> <given-names> K·K。</given-names> </name> </person-group> <article-title> 54 Mbps(3、6)定期FPGA LDPC译码器</article-title> <conf-name> 《IEEE车间对信号处理系统(口' 02)</conf- - - - - -- - - - - -- - - - - -- - - - - -- - - - - - -name> <conf-date> 2002年10月</conf- - - - - -- - - - - -- - - - - -- - - - - -- - - - - - -date> <pub-id pub-id-type="doi"> 10.1109 / SIPS.2002.1049697</pub-id> </nlm-citation> </ref> <ref id="B4" content-type="inproceedings"> <label>4</label> <nlm-citation publication-type="confproc"> <person-group person-group-type="author"> <name> <surname> 常</年代urname> <given-names> D。</given-names> </name> <name> <surname> 余</年代urname> <given-names> F。</given-names> </name> <name> <surname> 肖</年代urname> <given-names> Z。</given-names> </name> <name> <surname> 李</年代urname> <given-names> Y。</given-names> </name> <name> <surname> Stojanovic</年代urname> <given-names> N。</given-names> </name> <name> <surname> 谢</年代urname> <given-names> C。</given-names> </name> <name> <surname> 史</年代urname> <given-names> X。</given-names> </name> <name> <surname> 徐</年代urname> <given-names> X。</given-names> </name> <name> <surname> 熊</年代urname> <given-names> Q。</given-names> </name> </person-group> <article-title> FPGA验证单个QC-LDPC代码100 Gb / s的光学系统没有错误地板降到10 - 15的方方面面</article-title> <conf-name> 学报2011光纤通信会议和博览会和国家光纤工程师会议(OFC / NFOEC ' 11)</conf- - - - - -- - - - - -- - - - - -- - - - - -- - - - - - -name> <conf-date> 2011年3月</conf- - - - - -- - - - - -- - - - - -- - - - - -- - - - - - -date> <conf-loc> 洛杉矶,加州,美国</conf- - - - - -- - - - - -- - - - - -- - - - - -- - - - - - -loc> <pub-id pub-id-type="other"> 2 - s2.0 - 79959958404</pub-id> </nlm-citation> </ref> <ref id="B5" content-type="inproceedings"> <label>5</label> <nlm-citation publication-type="confproc"> <person-group person-group-type="author"> <name> <surname> 法尔考</年代urname> <given-names> G。</given-names> </name> <name> <surname> 席尔瓦</年代urname> <given-names> V。</given-names> </name> <name> <surname> 苏萨</年代urname> <given-names> l</given-names> </name> </person-group> <article-title> gpu如何超越asic LDPC译码的快</article-title> <conf-name> 第23届国际会议上超级计算机学报》上</conf- - - - - -- - - - - -- - - - - -- - - - - -- - - - - - -name> <conf-date> 2009年6月</conf- - - - - -- - - - - -- - - - - -- - - - - -- - - - - - -date> <conf-loc> 美国纽约约克镇</conf- - - - - -- - - - - -- - - - - -- - - - - -- - - - - - -loc> </nlm-citation> </ref> <ref id="B6" content-type="inproceedings"> <label>6</label> <nlm-citation publication-type="confproc"> <person-group person-group-type="author"> <name> <surname> 法尔考</年代urname> <given-names> G。</given-names> </name> <name> <surname> 苏萨</年代urname> <given-names> l</given-names> </name> <name> <surname> 席尔瓦</年代urname> <given-names> V。</given-names> </name> </person-group> <article-title> 大规模并行LDPC译码GPU</article-title> <conf-name> 13 ACM SIGPLAN学报》研讨会上并行编程的原理和实践(PPoPP ' 08)</conf- - - - - -- - - - - -- - - - - -- - - - - -- - - - - - -name> <conf-date> 2008年2月</conf- - - - - -- - - - - -- - - - - -- - - - - -- - - - - - -date> <conf-loc> 美国犹他盐湖城</conf- - - - - -- - - - - -- - - - - -- - - - - -- - - - - - -loc> <fpage> 83年</fpage> <lpage> 90年</lpage> <pub-id pub-id-type="doi"> 10.1145/1345206.1345221</pub-id> </nlm-citation> </ref> <ref id="B7" content-type="misc"> <label>7</label> <nlm-citation publication-type="other"> <comment> <ext-link ext-link-type="url" xlink:href="https://www.khronos.org/opencl/"> https://www.khronos.org/opencl/</ext- - - - - -- - - - - -- - - - - -- - - - - -- - - - - -- - - - - -link> </comment> </nlm-citation> </ref> <ref id="B8" content-type="misc"> <label>8</label> <nlm-citation publication-type="other"> <comment> <ext-link ext-link-type="url" xlink:href="http://www.nvidia.com/object/cuda_home_new.html"> http://www.nvidia.com/object/cuda_home_new.html</ext- - - - - -- - - - - -- - - - - -- - - - - -- - - - - -- - - - - -link> </comment> </nlm-citation> </ref> <ref id="B10" content-type="article"> <label>9</label> <nlm-citation publication-type="journal"> <person-group person-group-type="author"> <name> <surname> McEliece</年代urname> <given-names> r . J。</given-names> </name> <name> <surname> 麦凯</年代urname> <given-names> d . j . C。</given-names> </name> <name> <surname> 程</年代urname> <given-names> 肯尼迪。</given-names> </name> </person-group> <article-title> Turbo译码实例的珠儿的信念传播算法</article-title> <source> <italic> IEEE在选定地区通讯》杂志上</我talic> <year> 1998年</year> <volume> 16</volume> <issue> 2</我年代年代ue> <fpage> 140年</fpage> <lpage> 152年</lpage> <pub-id pub-id-type="doi"> 10.1109/49.661103</pub-id> <pub-id pub-id-type="other"> 2 - s2.0 - 0032001728</pub-id> </nlm-citation> </ref> <ref id="B11" content-type="article"> <label>10</label> <nlm-citation publication-type="journal"> <person-group person-group-type="author"> <name> <surname> 赵</年代urname> <given-names> J。</given-names> </name> <name> <surname> Zarkeshvari</年代urname> <given-names> F。</given-names> </name> <name> <surname> Banihashemi</年代urname> <given-names> a . H。</given-names> </name> </person-group> <article-title> 在min-sum算法的实现及其修改解码低密度奇偶校验(LDPC)码</article-title> <source> <italic> IEEE通信</我talic> <year> 2005年</year> <volume> 53</volume> <issue> 4</我年代年代ue> <fpage> 549年</fpage> <lpage> 554年</lpage> <pub-id pub-id-type="doi"> 10.1109 / TCOMM.2004.836563</pub-id> <pub-id pub-id-type="other"> 2 - s2.0 - 19644377874</pub-id> </nlm-citation> </ref> <ref id="B12" content-type="article"> <label>11</label> <nlm-citation publication-type="journal"> <person-group person-group-type="author"> <name> <surname> 坦纳</年代urname> <given-names> r·M。</given-names> </name> </person-group> <article-title> 一个递归的低复杂度编码方法</article-title> <source> <italic> IEEE信息理论</我talic> <year> 1981年</year> <volume> 27</volume> <issue> 5</我年代年代ue> <fpage> 533年</fpage> <lpage> 547年</lpage> <pub-id pub-id-type="doi"> 10.1109 / tit.1981.1056404</pub-id> <pub-id pub-id-type="other"> MR650686</pub-id> </nlm-citation> </ref> <ref id="B13" content-type="book"> <label>12</label> <nlm-citation publication-type="book"> <person-group person-group-type="author"> <name> <surname> 林</年代urname> <given-names> 年代。</given-names> </name> <name> <surname> 科斯特洛</年代urname> <given-names> d . J。</given-names> </name> </person-group> <source> <italic> 错误控制编码</我talic> <year> 2004年</year> <publisher-name> 培生教育印度</publisher-name> </nlm-citation> </ref> <ref id="B14" content-type="inproceedings"> <label>13</label> <nlm-citation publication-type="confproc"> <person-group person-group-type="author"> <name> <surname> 美林</年代urname> <given-names> d·G。</given-names> </name> <name> <surname> Grimshaw</年代urname> <given-names> 答:S。</given-names> </name> </person-group> <article-title> 重新排序对GPGPU流架构</article-title> <conf-name> 19国际会议的程序并行体系结构和编译技术(协议”10)</conf- - - - - -- - - - - -- - - - - -- - - - - -- - - - - - -name> <conf-date> 2010年9月</conf- - - - - -- - - - - -- - - - - -- - - - - -- - - - - - -date> <conf-loc> 奥地利的维也纳</conf- - - - - -- - - - - -- - - - - -- - - - - -- - - - - - -loc> </nlm-citation> </ref> <ref id="B15" content-type="article"> <label>14</label> <nlm-citation publication-type="journal"> <person-group person-group-type="author"> <name> <surname> 李</年代urname> <given-names> 诉W。</given-names> </name> <name> <surname> 金</年代urname> <given-names> C。</given-names> </name> <name> <surname> Chhugani</年代urname> <given-names> J。</given-names> </name> <name> <surname> 一家</年代urname> <given-names> M。</given-names> </name> <name> <surname> 金</年代urname> <given-names> D。</given-names> </name> <name> <surname> 阮</年代urname> <given-names> 答:D。</given-names> </name> <name> <surname> Satish</年代urname> <given-names> N。</given-names> </name> <name> <surname> Smelyanskiy</年代urname> <given-names> M。</given-names> </name> <name> <surname> Chennupaty</年代urname> <given-names> 年代。</given-names> </name> <name> <surname> Hammarlund</年代urname> <given-names> P。</given-names> </name> <name> <surname> Singhal</年代urname> <given-names> R。</given-names> </name> </person-group> <article-title> 揭穿100 x GPU与CPU神话:吞吐量计算CPU和GPU的评价</article-title> <source> <italic> ACM SIGARCH计算机体系结构的消息</我talic> <year> 2010年</year> <volume> 38</volume> <issue> 3</我年代年代ue> </nlm-citation> </ref> <ref id="B16" content-type="inproceedings"> <label>15</label> <nlm-citation publication-type="confproc"> <person-group person-group-type="author"> <name> <surname> 王</年代urname> <given-names> G。</given-names> </name> <name> <surname> 熊</年代urname> <given-names> Y。</given-names> </name> <name> <surname> 云</年代urname> <given-names> J。</given-names> </name> <name> <surname> Cavallaro</年代urname> <given-names> j . R。</given-names> </name> </person-group> <article-title> 加速计算机视觉算法使用OpenCL框架在移动GPU-a案例研究</article-title> <conf-name> 学报》第38届IEEE国际会议音响、演讲,和信号处理(ICASSP 13)</conf- - - - - -- - - - - -- - - - - -- - - - - -- - - - - - -name> <conf-date> 2013年5月</conf- - - - - -- - - - - -- - - - - -- - - - - -- - - - - - -date> <conf-loc> 加拿大温哥华</conf- - - - - -- - - - - -- - - - - -- - - - - -- - - - - - -loc> <publisher-name> IEEE</publisher-name> <pub-id pub-id-type="doi"> 10.1109 / icassp.2013.6638132</pub-id> <pub-id pub-id-type="other"> 2 - s2.0 - 84890545340</pub-id> </nlm-citation> </ref> <ref id="B9" content-type="misc"> <label>16</label> <nlm-citation publication-type="other"> <comment> <ext-link ext-link-type="url" xlink:href="https://developer.qualcomm.com/category/tags/opencl"> https://developer.qualcomm.com/category/tags/opencl</ext- - - - - -- - - - - -- - - - - -- - - - - -- - - - - -- - - - - -link> </comment> </nlm-citation> </ref> <ref id="B17" content-type="book"> <label>17</label> <nlm-citation publication-type="book"> <person-group person-group-type="author"> <name> <surname> Munshi</年代urname> <given-names> 一个。</given-names> </name> </person-group> <source> <italic> OpenCL规范</我talic> <year> 2009年</year> <publisher-name> Khronos OpenCL工作组1</publisher-name> </nlm-citation> </ref> <ref id="B18" content-type="misc"> <label>18</label> <nlm-citation publication-type="other"> <comment> <ext-link ext-link-type="url" xlink:href="http://skype.gmw.cn/help/content_69_579.html"> http://skype.gmw.cn/help/content_69_579.html</ext- - - - - -- - - - - -- - - - - -- - - - - -- - - - - -- - - - - -link> </comment> </nlm-citation> </ref> </ref-list> </back> </article> </body> </html>