4.2。编程的MSA OpenCL网格
每个“workgroup”包含<我nline-formula>
米米米l:mi>
表示线程的工作项。而不是整个矩阵
H或<我nline-formula>
H米米l:mi>
B米米l:mi>
N米米l:mi>
,每个工作项可以节省必要的信息的一部分<我nline-formula>
H米米l:mi>
B米米l:mi>
N米米l:mi>
在私有内存,使访问执行更新更快。再一次,同样的原则也适用于更新的<我nline-formula>
l米米l:mi>
问米米l:mi>
n米米l:mi>
米米米l:mi>
我米米l:mi>
消息。
根据LDPC码长,CPU在移动在GPU做分配内存,包括全局内存来存储校验矩阵
H、输入数据、输出数据和本地内存来保存消息从一些节点检查节点发送的数据,标记为<我nline-formula>
l米米l:mi>
r米米l:mi>
米米米l:mi>
n米米l:mi>
我米米l:mi>
从检查节点,节点标记为<我nline-formula>
l米米l:mi>
问米米l:mi>
n米米l:mi>
米米米l:mi>
我米米l:mi>
(算法
3)。
在步骤<我nline-formula>
(米米l:mo>
2米米l:mn>
)米米l:mo>
,紧凑<我nline-formula>
H米米l:mi>
B米米l:mi>
N米米l:mi>
和<我nline-formula>
H米米l:mi>
C米米l:mi>
N米米l:mi>
生成私有内存的算法
1和
2。
<大胆>算法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 <大胆> < /大胆>。
(1)
作为的工作项<我nline-formula>
k米米l:mi>
“workgroup”:
做
(2)
为抵消=从0到<我nline-formula>
N米米l:mi>
/米米l:mo>
米米米l:mi>
- - - - - -米米l:mo>
1米米l:mn>
:
做
(3)<我nline-formula>
n米米l:mi>
=米米l:mo>
k米米l:mi>
×米米l:mo>
N米米l:mi>
/米米l:mo>
米米米l:mi>
+米米l:mo>
o米米l:mi>
f米米l:mi>
f米米l:mi>
年代米米l:mi>
e米米l:mi>
t米米l:mi>
(4)
为所有<我nline-formula>
B米米l:mi>
N米米l:mi>
n米米l:mi>
(列<我nline-formula>
H米米l:mi>
米米米l:mi>
n米米l:mi>
):
做
(5)
如果
H米米l:mi>
米米米l:mi>
n米米l:mi>
=米米l:mo>
=米米l:mo>
1米米l:mn>
然后
(6)<我nline-formula>
H米米l:mi>
C米米l:mi>
N米米l:mi>
(米米l:mo>
我米米l:mi>
d米米l:mi>
x米米l:mi>
+ +<我nline-formula>
]米米l:mo>
=米米l:mo>
n米米l:mi>
<大胆>算法3:< /大胆> MSA内核执行的GPU网格。
(1)初始化“workgroup”大小(或每个“workgroup”的工作项数量)。
(2)生成紧凑<我nline-formula>
H米米l:mi>
B米米l:mi>
N米米l:mi>
,<我nline-formula>
H米米l:mi>
C米米l:mi>
N米米l:mi>
从矩阵
H
(3)
而
(米米l:mo>
c米米l:mi>
H米米l:mi>
T米米l:mi>
≠米米l:mo>
0米米l:mn>
∩米米l:mo>
我米米l:mi>
<米米l:mo>
我米米l:mi>
)米米l:mo>
(4)
作为的工作项<我nline-formula>
k米米l:mi>
在一个<我nline-formula>
米米米l:mi>
“workgroup”:
做
(5)
为所有<我nline-formula>
H米米l:mi>
B米米l:mi>
N米米l:mi>
:
做
(6)<我nline-formula>
米米米l:mi>
=米米l:mo>
k米米l:mi>
(7)发送更新消息<我nline-formula>
B米米l:mi>
N米米l:mi>
n米米l:mi>
来<我nline-formula>
C米米l:mi>
N米米l:mi>
米米米l:mi>
(8)发送更新消息<我nline-formula>
C米米l:mi>
N米米l:mi>
米米米l:mi>
来<我nline-formula>
B米米l:mi>
N米米l:mi>
n米米l:mi>
(9)所有线程同步
(10)
为抵消= 0<我nline-formula>
N米米l:mi>
/米米l:mo>
米米米l:mi>
- - - - - -米米l:mo>
1米米l:mn>
:
做
(11)<我nline-formula>
n米米l:mi>
=米米l:mo>
k米米l:mi>
×米米l:mo>
N米米l:mi>
/米米l:mo>
米米米l:mi>
+米米l:mo>
o米米l:mi>
f米米l:mi>
f米米l:mi>
年代米米l:mi>
e米米l:mi>
t米米l:mi>
(12)
为所有<我nline-formula>
H米米l:mi>
C米米l:mi>
N米米l:mi>
(米米l:mo>
o米米l:mi>
f米米l:mi>
f米米l:mi>
年代米米l:mi>
e米米l:mi>
t米米l:mi>
]米米l:mo>
:
做
(13)更新的后验概率<我nline-formula>
B米米l:mi>
N米米l:mi>
n米米l:mi>
(14)所有线程同步
(15)执行硬解码
一样的正常MSA算法,循环执行的步骤<我nline-formula>
(米米l:mo>
3米米l:mn>
)米米l:mo>
将结束,直到输出码字是当前或达到最大循环时间。
它执行一个水平处理,垂直处理和所有线程的同步步骤(5)- (9)。一般来说,所有线程应该在水平和垂直同步处理,但在这个算法,每个工作项负责自己的检查节点,和<我nline-formula>
l米米l:mi>
r米米l:mi>
米米米l:mi>
n米米l:mi>
我米米l:mi>
与其他工作项数据不共享,所以它能够取消同步后水平处理来提高性能。<我nline-formula>
l米米l:mi>
问米米l:mi>
n米米l:mi>
米米米l:mi>
我米米l:mi>
与所有工作项数据仍然是共享,所以同步垂直处理后保留。
同步后,它的后验概率计算<我nline-formula>
B米米l:mi>
N米米l:mi>
n米米l:mi>
和每一个工作项处理<我nline-formula>
N米米l:mi>
/米米l:mo>
米米米l:mi>
节点在步骤(10)- (13)。在第二次同步,它执行的硬解码后验概率,根据部分中描述的方法
2。
真正的并行执行,进行和整体处理时间需要解码码字可以显著减少结果,因为这将在下一节中。更多的数据并行性可以同时利用解码多个码字,但这是不被认为是在这个工作。
年代ec>年代ec>
5。实现和实验结果
实验设置评估提出了并行LDPC译码器的性能在GPU上由PowerVR G6200全球256 MB内存和当地4 KB内存使用C语言编程和OpenCL编程接口(版本1.1)。在该算法中,每个码字是解码“workgroup”。由于有限的本地内存,只能使用小LDPC码在这个测试手机。然而,“workgroup”数量可以大由于GPU上相对较大的全局内存。
解码一批码字的原始大小是1 Mbit,性能变化很小,在图
5我们只显示最好的成果。作为一个144×576的矩阵,每个“workgroup”工作项都等于他们的行号,这意味着我们使用144这个实验每“workgroup”和1000年“workgroup”工作项。
LDPC译码次使用MSA GPU和相应的吞吐量。
图的解码时报报道
5定义全局处理时间,包括数据传输时间和解码时间。解码时间的增加以及迭代的增加。他们有一个线性关系。充分利用GPU的计算能力。吞吐量降低迭代增加当迭代增加解码数据的大小是相同的。
在移动设备上,我们同样重视延迟的吞吐量。图
6显示译码延迟当10 Kbps到100 Mbps的速度。速度指数增加,延迟增加但进展缓慢。实际上,解码数据的大小在GPU解码周期太小,有些能力GPU的浪费和并行效果不明显较低的速度。
解码延迟时间在10 Kbps到100 Mbps的速度。
很明显,延误增加为GPU解码码字时增加。然而,解码的时间周期,这是最重要的部分延误,增加缓慢但更充分地利用计算能力。码字的同时减少在更高的速度。因此,它可以被应用在一些高速移动服务,像大文件传输,对延迟敏感服务,如视频通话。
年代ec><年代ec id="sec6">
6。结论
本文提出一个多码字使用GPU并行LDPC译码器OpenCL运行在移动设备上。方法广泛应用于第四代移动通信技术,所以它是重要的认识到移动设备上的高速LDPC译码。
实例、流行的视频通话软件Skype,有其带宽需求注意到在其官方网站(
18]。Skype所需的带宽取决于类型的调用。所需的最低速度正常屏幕共享视频通话,高质量的视频通话,和高清视频通话0.3 Mbps, 0.5 Mbps, 1.5 Mbps。在上面的实验中解码延迟是0.84毫秒,0.86女士,女士在图0.98
6。高清视频通话已经小于1毫秒的延迟。显然它可以满足其要求。
与LDPC译码模块的软件实现移动设备,方法,可以动态地改变参数,包括代码长度,代码速度和迭代的数量。所有的点都可以快速动态开启OpenCL装置,可快速处理各种各样的网络环境。坏的网络可以减少编码速率提高纠错的能力,同时可以提高编码速率,网络很好。与传统的硬件解码方式相比,我们提出了基于解码的软件实现解码算法在移动GPU更为高效,因为它可以随时开关根据实际环境。
年代ec>
相互竞争的利益
作者宣称没有利益冲突。
年代ec>
[
Gallager年代urname>
r·G。
低密度奇偶校验码
愤怒的交易信息理论我talic>
1962年
8
1我年代年代ue>
21
28
MR0136009
]
[
麦凯年代urname>
d . j . C。
尼尔年代urname>
r·M。
接近香农极限低密度奇偶校验码的性能
电子信件我talic>
1996年
32
18我年代年代ue>
1645年
1646年
10.1049 / el: 19961141
2 - s2.0 - 0030219216
]
[
张年代urname>
T。
Parhi年代urname>
K·K。
54 Mbps(3、6)定期FPGA LDPC译码器
《IEEE车间对信号处理系统(口' 02)
2002年10月
10.1109 / SIPS.2002.1049697
]
[
常年代urname>
D。
余年代urname>
F。
肖年代urname>
Z。
李年代urname>
Y。
Stojanovic年代urname>
N。
谢年代urname>
C。
史年代urname>
X。
徐年代urname>
X。
熊年代urname>
Q。
FPGA验证单个QC-LDPC代码100 Gb / s的光学系统没有错误地板降到10 - 15的方方面面
学报2011光纤通信会议和博览会和国家光纤工程师会议(OFC / NFOEC ' 11)
2011年3月
洛杉矶,加州,美国
2 - s2.0 - 79959958404
]
[
法尔考年代urname>
G。
席尔瓦年代urname>
V。
苏萨年代urname>
l
gpu如何超越asic LDPC译码的快
第23届国际会议上超级计算机学报》上
2009年6月
美国纽约约克镇
]
[
法尔考年代urname>
G。
苏萨年代urname>
l
席尔瓦年代urname>
V。
大规模并行LDPC译码GPU
13 ACM SIGPLAN学报》研讨会上并行编程的原理和实践(PPoPP ' 08)
2008年2月
美国犹他盐湖城
83年
90年
10.1145/1345206.1345221
]
[
https://www.khronos.org/opencl/
]
[
http://www.nvidia.com/object/cuda_home_new.html
]
[
McEliece年代urname>
r . J。
麦凯年代urname>
d . j . C。
程年代urname>
肯尼迪。
Turbo译码实例的珠儿的信念传播算法
IEEE在选定地区通讯》杂志上我talic>
1998年
16
2我年代年代ue>
140年
152年
10.1109/49.661103
2 - s2.0 - 0032001728
]
[
赵年代urname>
J。
Zarkeshvari年代urname>
F。
Banihashemi年代urname>
a . H。
在min-sum算法的实现及其修改解码低密度奇偶校验(LDPC)码
IEEE通信我talic>
2005年
53
4我年代年代ue>
549年
554年
10.1109 / TCOMM.2004.836563
2 - s2.0 - 19644377874
]
[
坦纳年代urname>
r·M。
一个递归的低复杂度编码方法
IEEE信息理论我talic>
1981年
27
5我年代年代ue>
533年
547年
10.1109 / tit.1981.1056404
MR650686
]
[
林年代urname>
年代。
科斯特洛年代urname>
d . J。
错误控制编码我talic>
2004年
培生教育印度
]
[
美林年代urname>
d·G。
Grimshaw年代urname>
答:S。
重新排序对GPGPU流架构
19国际会议的程序并行体系结构和编译技术(协议”10)
2010年9月
奥地利的维也纳
]
[
李年代urname>
诉W。
金年代urname>
C。
Chhugani年代urname>
J。
一家年代urname>
M。
金年代urname>
D。
阮年代urname>
答:D。
Satish年代urname>
N。
Smelyanskiy年代urname>
M。
Chennupaty年代urname>
年代。
Hammarlund年代urname>
P。
Singhal年代urname>
R。
揭穿100 x GPU与CPU神话:吞吐量计算CPU和GPU的评价
ACM SIGARCH计算机体系结构的消息我talic>
2010年
38
3我年代年代ue>
]
[
王年代urname>
G。
熊年代urname>
Y。
云年代urname>
J。
Cavallaro年代urname>
j . R。
加速计算机视觉算法使用OpenCL框架在移动GPU-a案例研究
学报》第38届IEEE国际会议音响、演讲,和信号处理(ICASSP 13)
2013年5月
加拿大温哥华
IEEE
10.1109 / icassp.2013.6638132
2 - s2.0 - 84890545340
]
[
https://developer.qualcomm.com/category/tags/opencl
]
[
Munshi年代urname>
一个。
OpenCL规范我talic>
2009年
Khronos OpenCL工作组1
]
[
http://skype.gmw.cn/help/content_69_579.html
]