From a high-level perspective, two main approaches can be
used to exploit parallelism in multicore platforms. The first
approach parallelizes the decoder itself through decomposition of
the decoding algorithms into multiple threads that run in parallel.
Second, multiple codewords may be decoded in parallel. The first
approach decreases the latency per codeword but introduces more
synchronization overhead across different threads. By contrast,
the second approach uses less synchronization objects and therefore
increases the parallelization gain. However, it may introduce a
higher latency per codeword compared to the first approach.
For very high throughput applications, LDPC codes are known
to compare favorably against turbo codes because LDPC decoding
allows for a higher degree of parallelism [25], [26]. Hence, LDPC
codes are suitable for the first approach of decoder parallelization.
However, software-based parallel LDPC decoders barely achieve
throughputs of a few tens of Mbit∕s, as reported in [27] for graphical
processing units (GPUs), or in [28] for the signal processing
on-demand architecture (SODA). In both cases, the main reason is
the need for synchronization across different threads to access
shared objects that results in scalability issues [27].
By contrast, parallelizing multiple codewords eliminates the
need for synchronizing objects. This results in better scalability
properties and the throughput of the multicodeword decoder is
known to increase almost linearly with the number of cores [29].
Furthermore, it allows for different codes, algorithms, and configurations
running in parallel. Multicodeword LDPC decoders
have been reported to achieve throughputs up to 80 Mbit/s on
the IBM CELL Broadband Engine [27], [30], with 24–96 codewords
decoded in parallel. Recently, central processing unit
(CPU) and GPU implementations of multicodeword turbo decoders
have also been reported in [31] with a peak throughput from
55 Mbit/s to 122 Mbit/s, as the number of decoding iterations
decreases from eight to four.
Figure 4 shows experimental results for spectral efficiency and
required computational complexity of an 3GPP LTE UL decoder.
To obtain these results, the turbo-decoder has been implemented
on a default VMWare ESXi server with Ubuntu Linux host operating
system, GNU C++ compiler, and codeword multithreading to
account for the virtualization overhead. We measured the
required CPU time to decode one codeword and determined the
average CPU time within the 90% confidence interval.
Figure 4(a) shows the achievable spectral efficiency for a given
signal-to-noise ratio (SNR) (additive white Gaussian noise, no fading).
We illustrate the results for two cases: maximum throughput
(high number of iterations possible) and low complexity
(number of iterations limited to two). Reducing the complexity of
the decoding process results in a performance penalty of 1–2 dB.
In Figure 4(b), we show the required computational resources for
a 10-MHz 3GPP LTE system. The required complexity strongly
depends upon the SNR. First, it increases linearly with the number
of information bits, which implies a logarithmic increase of
complexity in SNR. Second, the complexity increases with the
number of iterations that are necessary to decode a codeword. As
shown in [32], the complexity increases superlinearly with
decreasing SNR (in decibels) for a fixed MCS. In Figure 4(b),
จากมุมมองพื้นฐาน สองแนวทางหลักที่สามารถใช้เพื่อใช้ประโยชน์จากความ
สถาปัตยกรรมมัลติคอร์ . วิธีการแรก
parallelizes ถอดรหัสตัวเองผ่านการสลายตัวของ
ถอดรหัสขั้นตอนวิธีในหลายๆ กระทู้ ที่วิ่งขนาน .
2 หลาย codewords อาจจะถอดรหัสในแบบขนาน วิธีการแรก
ลดศักยภาพต่อ codeword แต่แนะนำเพิ่มเติม
ประสานเหนือศีรษะในหัวข้อที่แตกต่างกัน โดยคมชัด
วิธีที่สองใช้น้อยกว่าวัตถุประสานจึง
เพิ่ม parallelization ไปเข้า อย่างไรก็ตาม อาจแนะนำ
สูงกว่าศักยภาพต่อ codeword เปรียบเทียบกับวิธีแรก
สำหรับการใช้งาน throughput สูงมาก , รหัส LDPC รู้จัก
เปรียบเทียบพ้องต้องกันกับรหัสเทอร์โบเพราะ LDPC ถอดรหัส
ช่วยให้ระดับที่สูงขึ้นของความขนาน [ 25 ] [ 26 ] ดังนั้น รหัส LDPC
เหมาะสำหรับวิธีการแรกของตัวถอดรหัส parallelization ไป .
แต่ใช้ซอฟต์แวร์ถอดรหัส LDPC ขนานแทบบรรลุ
throughputs ไม่กี่ 10 Mbit The C button of the calculator , ตามที่รายงานใน [ 27 ] สำหรับหน่วยประมวลผลกราฟิก ( GPUs )
, [ 28 ] หรือในการประมวลผลสัญญาณ (
- สถาปัตยกรรม โซดา ) ในทั้งสองกรณี เหตุผลหลักคือ
ต้องประสานผ่านหัวข้อที่แตกต่างกันในการเข้าถึงวัตถุที่ผลลัพธ์ในการทำงาน
แบ่งปันปัญหา [ 27 ] .
โดยคมชัด , parallelizing หลาย codewords ขจัด
ต้องตรงกันวัตถุ ผลลัพธ์ดี scalability
คุณสมบัติและอัตราความเร็วของ multicodeword ถอดรหัส
รู้จักเพิ่มเกือบเป็นเส้นตรง ด้วยหมายเลขของแกน [ 29 ] .
นอกจากนี้มันช่วยให้รหัสที่แตกต่างกัน อัลกอริทึม และการกำหนดค่า
วิ่งขนาน multicodeword LDPC ถอดรหัส
ได้รับการรายงานเพื่อให้บรรลุ throughputs ถึง 80 Mbit / s
IBM มือถือบรอดแบนด์เครื่องยนต์ [ 27 ] [ 30 ] , 24 – 96 codewords
ถอดรหัสในแบบขนาน เมื่อเร็วๆ นี้ หน่วยประมวลผลกลาง ( CPU ) และ GPU
ใช้ multicodeword ถอดรหัสเทอร์โบนอกจากนี้ยังมีรายงานใน [ 31 ] กับ throughput สูงสุดจาก
55 เมกะบิต / วินาทีกับ 122 Mbit / s เป็นจำนวน 1 รอบ
ลดลงจาก 8 เหลือ 4 .
รูปที่ 4 แสดงผลการทดลองประสิทธิภาพสเปกตรัมและความซับซ้อนของ 3GPP LTE
เป็น UL ถอดรหัสคอมพิวเตอร์ .
ให้ได้ผลลัพธ์เหล่านี้ วงจรถอดรหัสเทอร์โบที่มีการใช้งาน
ในการเริ่มต้นกับ Ubuntu Linux โฮสต์เซิร์ฟเวอร์ VMware esxi ปฏิบัติการ
ระบบ GNU C คอมไพเลอร์ และ codeword ตอนหลัง
สำหรับ virtualization บัญชีค่าใช้จ่าย เราวัด
ต้องการ CPU เวลาถอดรหัสหนึ่ง codeword และมุ่งมั่น
เวลา CPU เฉลี่ยภายใน 90% ความเชื่อมั่น .
รูปที่ 4 ( ก ) แสดงได้สเปกตรัมประสิทธิภาพให้
อัตราส่วนสัญญาณต่อเสียงรบกวน ( SNR ) ( เพิ่มเสียง , สีขาว ) ไม่ซีดจาง ) .
เราแสดงผลสองกรณี :
throughput สูงสุด ( จำนวนของการทำซ้ำและความซับซ้อนต่ำที่สุด )
( จํานวนซ้ำ ( 2 ) ลดความซับซ้อนของกระบวนการถอดรหัส
ผลลัพธ์ในการปฏิบัติการของ 1 – 2 dB .
ในรูป 4 ( b ) แสดงให้เราต้องคำนวณทรัพยากรสำหรับ
10 MHz 3GPP LTE ระบบ ต้องขอ
ขึ้นอยู่กับความซับซ้อน สมัครงาน ครั้งแรก มันเพิ่มตามจำนวน
ของบิตข้อมูลซึ่งแสดงถึงการเพิ่มขึ้นของ
ซับซ้อนลอการิทึม สมัครงาน ที่สอง , ความซับซ้อนมากขึ้นกับ
จำนวนซ้ำที่จำเป็นจะต้องมี codeword . โดย
แสดงใน [ 32 ] , ความซับซ้อนมากขึ้นด้วย
superlinearlyการลดสัญญาณรบกวน ( เดซิเบล ) สำหรับกำหนด MCS ในรูป 4 ( b )
การแปล กรุณารอสักครู่..
