LDPC Simulation With CUDA GPU

Size: px
Start display at page:

Download "LDPC Simulation With CUDA GPU"

Transcription

1 LDPC Simulation With CUDA GPU EE179 Final Project Kangping Hu June 3 rd 2014

2 1 1. Introduction This project is about simulating the performance of binary Low-Density-Parity-Check-Matrix (LDPC) Code with AWGN channel. Since a lot of parallel computations are needed for the encoding and the iterative decoding algorithms, parallel GPU programming with CUDA is used to improve the simulation efficiency. This report will go through the encoding algorithm, decoding algorithm, channel model, simulation procedure, and simulation results. 2. Encoding algorithm The generator matrix and parity check matrix are generated by MATLAB before they are input to CUDA. Four sets of LDPC codes are used: Two (6,3) codes, one with random and one with structured parity check matrix. The random one: H = [ ] The structured one: H = [ ] = [ ] Two (15,10) codes, both with random parity check matrix. The generator matrix are produced by first convert the parity check matrix to standard form through Gaussian Elimination, then the generator and parity check matrix follow the relationship: where G is the generator matrix with dimension k x n, and H is the Parity check matrix with dimension n-k x n.

3 2 Then by multiplying each k-bit symbol with the generator matrix, the n-bit code words are produced. In this simulation, symbol -1 corresponds to 1, and symbol 1 corresponds to Decoding algorithm The decoding algorithm used for this simulation is hard decoding with Gallager A algorithm. It works as follows: a. Hard decoding is first performed on the receiving bits. Since 0->1, and 1->-1, any value larger than 0 will be interpreted as 0, and any value less than 0 will be interpreted as 1. b. Set up the receiving nodes and check nodes based on the parity check matrix. Suppose the parity check matrix with 3 check nodes and 6 receiving nodes is: Then the structure formed between the receiving and check nodes will be: where the upper nodes and the receiving nodes, and the lower nodes are the check nodes. (Reference from wiki: c. Once the receiving nodes receive the bits, they will forward their bits to the check nodes.

4 3 d. Each check node will calculate the sum of all the incoming bits. Since binary codes are used here, addition is performed as module 2. A sum of 0 means the check is valid, and the same bits will be transmitted back to check nodes. Otherwise, a sum of 1 means there is something wrong, and the check nodes will transmit the flipped bit back to receiving nodes e. Once having received the feedback from the check nodes, each receiving nodes will do a majority vote. If the majority of the feedback from check node is against its original bit, then it is likely that the original bit is wrong, and will be flipped. f. The receiving nodes will then send their bits to the check nodes and repeat the procedures. Once a valid code word is found, or some maximum iteration step is reached, the decoding will stop. 4. Channel model The channel model used for the simulation is the Additive White Gaussian Noise (AWGN) channel with received symbols yi, where: And from log(k)/n. is a Gaussian random variable with zero mean and variance = 1/(2REb/No), where R is calculated

5 4 5. Simulation Procedure Below is the flow diagram for the whole simulation process:

6 5 LDPC code usually has huge generator and parity check matrix filled with a lot of zeros and few ones. So my first step is to generate and store all the possible code words based on dimension of generator matrix (2^k of them) using CUDA kernel functions. Then I generate some index arrays for the receiving nodes and check nodes to form the decoding structure. Stepping into the simulation process, I first generate n Gaussian Distributed noise based on the desired Eb/No variance. Then I use kernel functions to add the noise to the selected symbol, and perform hard decoding. After that, the receiving node buffers will update the code that was just being hard decoded, got rearranged based on the indexes generated before, and stored in check node buffer. Each thread would be responsible for one receiving nodes in the arrangement. After receiving the bits from receiving nodes, each thread will perform on behalf of each check node to validate the sum of all bits to that node. The updated bits will be rearranged and transmitted back to the receiving nodes. Each thread will then perform as a receiving node to make a majority vote to decide if it should change its original bit. Once updated, each thread will perform a search in the code word list to see if the updated code is found in the code word list. This process will continue until the maximum iteration is reached, or a code word is found. Finally, the percentage of wrong code words and symbols will be recorded.

7 6 6. Simulation Results Total 4 sets of LDPC codes are simulated, two (6,3) codes and two (15,10) codes, with iteration steps of 3 and 10. The symbol-error-rate and word-error-rate figures are plotted by MATLAB scripts: In theory, I should expect some waterfall features where the error probability reaches error floor due to the low weight words. However, this doesn t show up since the number of simulation samples is only 10^4. For the (6,3) codes, it seems that the structured parity check matrix is slightly better than the random ones. The symbol error rate is lower than the word error rate, which is expected. Several things can affect the decoding accuracy of LDPC. The iteration steps for (6,3) codes are set to 3, and for (15,10) codes are set to 10. This may turn out to be not sufficient. Also the majority vote process is set to be half-half. If optimal decoding is used, the error rate could be further reduced.

8 7 7. Advantage of GPU for this simulation The reason that GPU helps here is that this encoding and decoding algorithm requires a lot of repeating simple arithmetic operations. For the encoding side, each symbol (an array) will need to multiply a generator (a matrix) to generate valid code words. The test case only contains up to 2^10, which is 1024 code words. However, for an actual ldpc code that is being used today, it typically has thousands of bits length, thus a lot of matrix multiplication will be needed. And here each thread can produce one code word. As for decoding, there is a lot of communication between the receiving nodes and the check nodes. Each thread can operate on behalf of either a receiving node or check nodes, either for memory rearrangement and majority vote. For the channel model, Gaussian Noise needed to be added to a code for each simulation sample to ensure the randomness, thus the fairness and reliability of the simulation. In this project, the Gaussian noise is added through CURAND Device API. Each thread is responsible for adding noise to one bit of the code word, and the following hard decoding of the code word. After each decoding iteration, we need to check if we already have a valid code word. If so, further iteration is not needed. This code work loop up operation can also get speed up, with one thread checking the word with one code word in the pre-generate code word list. And find out the original symbol, count the bits difference in the code word and symbol for further statistical analysis. For memory consideration, I tried to avoid unnecessary movement of memory between device and kernel. The code list and symbol list are pre-generated and stays in device memory throughout the simulation. The encoding, decoding and word loop up operations all happen in the kernel. The only data that moves in and out between device and host are the randomly selected code word s index, and the record of symbol and word error bits. Four relatively small ldps codes are tested for this project, and they each takes about half an hour to finish, which would otherwise takes much longer for a multi-core CPU to run. This ldpc code was actually invented back in 1960s, and it was ignored for a while because of its impossible computation demands at that time. Until recently it caught people s attention because we now have the computation power to use the code, and it turns out to be the best code in terms of channel capacity. In this project, using GPU to simulate the performance of this ldpc codes does meet my expectation. The parallelism that can be exploited is on the order of n or k. Since the decoding algorithm operates the same on each single check node and receiving nodes. With a typical ldpc code of length 1000, ideally, we can improve the efficiency by File Submission I submit two folders for this project. The one with name LDPC_Simple_Check has the decoding algorithm in it. You can test its correctness by changing the H, G Matrix, n and k value, iteration steps, and the input word. The other folder named LDPC_Simple_Check has all the CUDA file, MATLAB files, and simulation results in it. The make files are configured for compiling with Minuteman or Polaris machine located ANB Instruction Lab.

9 8 To run, change n and k in LDPC_main to 6 and 3 for G63_random.txt and G63_structured.txt. Or change n and k to 15 and 10 for G_1510random1.txt and G1510_random2.txt. The input file name will also needed to be changed Sorry for making it not that user friendly. Then type make and LDPC_main. After completion, run the MATLAB script plotresult.m.

LDPC Codes a brief Tutorial

LDPC Codes a brief Tutorial LDPC Codes a brief Tutorial Bernhard M.J. Leiner, Stud.ID.: 53418L bleiner@gmail.com April 8, 2005 1 Introduction Low-density parity-check (LDPC) codes are a class of linear block LDPC codes. The name

More information

Project 1. Implementation. Massachusetts Institute of Technology : Error Correcting Codes Laboratory March 4, 2004 Professor Daniel A.

Project 1. Implementation. Massachusetts Institute of Technology : Error Correcting Codes Laboratory March 4, 2004 Professor Daniel A. Massachusetts Institute of Technology Handout 18.413: Error Correcting Codes Laboratory March 4, 2004 Professor Daniel A. Spielman Project 1 In this project, you are going to implement the simplest low

More information

Link Layer: Error detection and correction

Link Layer: Error detection and correction Link Layer: Error detection and correction Topic Some bits will be received in error due to noise. What can we do? Detect errors with codes Correct errors with codes Retransmit lost frames Later Reliability

More information

Hardware Implementation

Hardware Implementation Low Density Parity Check decoder Hardware Implementation Ruchi Rani (2008EEE2225) Under guidance of Prof. Jayadeva Dr.Shankar Prakriya 1 Indian Institute of Technology LDPC code Linear block code which

More information

The Data Link Layer. CS158a Chris Pollett Feb 26, 2007.

The Data Link Layer. CS158a Chris Pollett Feb 26, 2007. The Data Link Layer CS158a Chris Pollett Feb 26, 2007. Outline Finish up Overview of Data Link Layer Error Detecting and Correcting Codes Finish up Overview of Data Link Layer Last day we were explaining

More information

Modern Communications Chapter 5. Low-Density Parity-Check Codes

Modern Communications Chapter 5. Low-Density Parity-Check Codes 1/14 Modern Communications Chapter 5. Low-Density Parity-Check Codes Husheng Li Min Kao Department of Electrical Engineering and Computer Science University of Tennessee, Knoxville Spring, 2017 2/14 History

More information

Capacity-approaching Codes for Solid State Storages

Capacity-approaching Codes for Solid State Storages Capacity-approaching Codes for Solid State Storages Jeongseok Ha, Department of Electrical Engineering Korea Advanced Institute of Science and Technology (KAIST) Contents Capacity-Approach Codes Turbo

More information

Piecewise Linear Approximation Based on Taylor Series of LDPC Codes Decoding Algorithm and Implemented in FPGA

Piecewise Linear Approximation Based on Taylor Series of LDPC Codes Decoding Algorithm and Implemented in FPGA Journal of Information Hiding and Multimedia Signal Processing c 2018 ISSN 2073-4212 Ubiquitous International Volume 9, Number 3, May 2018 Piecewise Linear Approximation Based on Taylor Series of LDPC

More information

Reduced Complexity of Decoding Algorithm for Irregular LDPC Codes Using a Split Row Method

Reduced Complexity of Decoding Algorithm for Irregular LDPC Codes Using a Split Row Method Journal of Wireless Networking and Communications 2012, 2(4): 29-34 DOI: 10.5923/j.jwnc.20120204.01 Reduced Complexity of Decoding Algorithm for Irregular Rachid El Alami *, Mostafa Mrabti, Cheikh Bamba

More information

From last time to this time

From last time to this time /7/6 CS/MA 9 Fall 26 Wayne Snyder Department Boston University Today and Wednesday: Error-detecting and error-correcting codes Wednesday & Friday: Cryptography From last time to this time Compression takes

More information

A Parallel Decoding Algorithm of LDPC Codes using CUDA

A Parallel Decoding Algorithm of LDPC Codes using CUDA A Parallel Decoding Algorithm of LDPC Codes using CUDA Shuang Wang and Samuel Cheng School of Electrical and Computer Engineering University of Oklahoma-Tulsa Tulsa, OK 735 {shuangwang, samuel.cheng}@ou.edu

More information

CSCI 204 Introduction to Computer Science II Lab 7 Queue ADT

CSCI 204 Introduction to Computer Science II Lab 7 Queue ADT CSCI 204 Introduction to Computer Science II Lab 7 Queue ADT 1. Objectives In this lab, you will practice the following: Implement the Queue ADT using a structure of your choice, e.g., array or linked

More information

Optimized ARM-Based Implementation of Low Density Parity Check Code (LDPC) Decoder in China Digital Radio (CDR)

Optimized ARM-Based Implementation of Low Density Parity Check Code (LDPC) Decoder in China Digital Radio (CDR) Optimized ARM-Based Implementation of Low Density Parity Check Code (LDPC) Decoder in China Digital Radio (CDR) P. Vincy Priscilla 1, R. Padmavathi 2, S. Tamilselvan 3, Dr.S. Kanthamani 4 1,4 Department

More information

Fall 09, Homework 5

Fall 09, Homework 5 5-38 Fall 09, Homework 5 Due: Wednesday, November 8th, beginning of the class You can work in a group of up to two people. This group does not need to be the same group as for the other homeworks. You

More information

CSEP 561 Error detection & correction. David Wetherall

CSEP 561 Error detection & correction. David Wetherall CSEP 561 Error detection & correction David Wetherall djw@cs.washington.edu Codes for Error Detection/Correction ti ti Error detection and correction How do we detect and correct messages that are garbled

More information

ITERATIVE COLLISION RESOLUTION IN WIRELESS NETWORKS

ITERATIVE COLLISION RESOLUTION IN WIRELESS NETWORKS ITERATIVE COLLISION RESOLUTION IN WIRELESS NETWORKS An Undergraduate Research Scholars Thesis by KATHERINE CHRISTINE STUCKMAN Submitted to Honors and Undergraduate Research Texas A&M University in partial

More information

A project report submitted to Indiana University

A project report submitted to Indiana University Page Rank Algorithm Using MPI Indiana University, Bloomington Fall-2012 A project report submitted to Indiana University By Shubhada Karavinkoppa and Jayesh Kawli Under supervision of Prof. Judy Qiu 1

More information

VHDL Implementation of different Turbo Encoder using Log-MAP Decoder

VHDL Implementation of different Turbo Encoder using Log-MAP Decoder 49 VHDL Implementation of different Turbo Encoder using Log-MAP Decoder Akash Kumar Gupta and Sanjeet Kumar Abstract Turbo code is a great achievement in the field of communication system. It can be created

More information

CS/MA 109 Fall Wayne Snyder Computer Science Department Boston University

CS/MA 109 Fall Wayne Snyder Computer Science Department Boston University CS/MA 9 Fall 25 Wayne Snyder Department Boston University Today (Friday the 3 th!): Error-detecting and error-correcting codes. Next week: Cryptography From last time to this time Compression takes advantage

More information

GPGPUs in HPC. VILLE TIMONEN Åbo Akademi University CSC

GPGPUs in HPC. VILLE TIMONEN Åbo Akademi University CSC GPGPUs in HPC VILLE TIMONEN Åbo Akademi University 2.11.2010 @ CSC Content Background How do GPUs pull off higher throughput Typical architecture Current situation & the future GPGPU languages A tale of

More information

A Software LDPC Decoder Implemented on a Many-Core Array of Programmable Processors

A Software LDPC Decoder Implemented on a Many-Core Array of Programmable Processors A Software LDPC Decoder Implemented on a Many-Core Array of Programmable Processors Brent Bohnenstiehl and Bevan Baas Department of Electrical and Computer Engineering University of California, Davis {bvbohnen,

More information

New Message-Passing Decoding Algorithm of LDPC Codes by Partitioning Check Nodes 1

New Message-Passing Decoding Algorithm of LDPC Codes by Partitioning Check Nodes 1 New Message-Passing Decoding Algorithm of LDPC Codes by Partitioning Check Nodes 1 Sunghwan Kim* O, Min-Ho Jang*, Jong-Seon No*, Song-Nam Hong, and Dong-Joon Shin *School of Electrical Engineering and

More information

P( Hit 2nd ) = P( Hit 2nd Miss 1st )P( Miss 1st ) = (1/15)(15/16) = 1/16. P( Hit 3rd ) = (1/14) * P( Miss 2nd and 1st ) = (1/14)(14/15)(15/16) = 1/16

P( Hit 2nd ) = P( Hit 2nd Miss 1st )P( Miss 1st ) = (1/15)(15/16) = 1/16. P( Hit 3rd ) = (1/14) * P( Miss 2nd and 1st ) = (1/14)(14/15)(15/16) = 1/16 CODING and INFORMATION We need encodings for data. How many questions must be asked to be certain where the ball is. (cases: avg, worst, best) P( Hit 1st ) = 1/16 P( Hit 2nd ) = P( Hit 2nd Miss 1st )P(

More information

P( Hit 2nd ) = P( Hit 2nd Miss 1st )P( Miss 1st ) = (1/15)(15/16) = 1/16. P( Hit 3rd ) = (1/14) * P( Miss 2nd and 1st ) = (1/14)(14/15)(15/16) = 1/16

P( Hit 2nd ) = P( Hit 2nd Miss 1st )P( Miss 1st ) = (1/15)(15/16) = 1/16. P( Hit 3rd ) = (1/14) * P( Miss 2nd and 1st ) = (1/14)(14/15)(15/16) = 1/16 CODING and INFORMATION We need encodings for data. How many questions must be asked to be certain where the ball is. (cases: avg, worst, best) P( Hit 1st ) = 1/16 P( Hit 2nd ) = P( Hit 2nd Miss 1st )P(

More information

On combining chase-2 and sum-product algorithms for LDPC codes

On combining chase-2 and sum-product algorithms for LDPC codes University of Wollongong Research Online Faculty of Engineering and Information Sciences - Papers: Part A Faculty of Engineering and Information Sciences 2012 On combining chase-2 and sum-product algorithms

More information

LOW-DENSITY PARITY-CHECK (LDPC) codes [1] can

LOW-DENSITY PARITY-CHECK (LDPC) codes [1] can 208 IEEE TRANSACTIONS ON MAGNETICS, VOL 42, NO 2, FEBRUARY 2006 Structured LDPC Codes for High-Density Recording: Large Girth and Low Error Floor J Lu and J M F Moura Department of Electrical and Computer

More information

Matlab for FMRI Module 1: the basics Instructor: Luis Hernandez-Garcia

Matlab for FMRI Module 1: the basics Instructor: Luis Hernandez-Garcia Matlab for FMRI Module 1: the basics Instructor: Luis Hernandez-Garcia The goal for this tutorial is to make sure that you understand a few key concepts related to programming, and that you know the basics

More information

Channel Decoding in Wireless Communication Systems using Deep Learning

Channel Decoding in Wireless Communication Systems using Deep Learning Channel Decoding in Wireless Communication Systems using Deep Learning Gaurang Naik 12/11/2017 Deep Learning Course Project Acknowledgements: Navneet Agrawal, TU Berlin Error Control Coding Wireless Communication

More information

On the construction of Tanner graphs

On the construction of Tanner graphs On the construction of Tanner graphs Jesús Martínez Mateo Universidad Politécnica de Madrid Outline Introduction Low-density parity-check (LDPC) codes LDPC decoding Belief propagation based algorithms

More information

FPGA Implementation of Binary Quasi Cyclic LDPC Code with Rate 2/5

FPGA Implementation of Binary Quasi Cyclic LDPC Code with Rate 2/5 FPGA Implementation of Binary Quasi Cyclic LDPC Code with Rate 2/5 Arulmozhi M. 1, Nandini G. Iyer 2, Anitha M. 3 Assistant Professor, Department of EEE, Rajalakshmi Engineering College, Chennai, India

More information

Performance analysis of LDPC Decoder using OpenMP

Performance analysis of LDPC Decoder using OpenMP Performance analysis of LDPC Decoder using OpenMP S. V. Viraktamath Faculty, Dept. of E&CE, SDMCET, Dharwad. Karnataka, India. Jyothi S. Hosmath Student, Dept. of E&CE, SDMCET, Dharwad. Karnataka, India.

More information

Introduction to Computing and Systems Architecture

Introduction to Computing and Systems Architecture Introduction to Computing and Systems Architecture 1. Computability A task is computable if a sequence of instructions can be described which, when followed, will complete such a task. This says little

More information

APPM 2360 Lab #2: Facial Recognition

APPM 2360 Lab #2: Facial Recognition APPM 2360 Lab #2: Facial Recognition Instructions Labs may be done in groups of 3 or less. You may use any program; but the TAs will only answer coding questions in MATLAB. One report must be turned in

More information

Error Floors of LDPC Codes

Error Floors of LDPC Codes Error Floors of LDPC Codes Tom Richardson Flarion Technologies Bedminster, NJ 07921 tjr@flarion.com Abstract We introduce a computational technique that accurately predicts performance for a given LDPC

More information

Finding Small Stopping Sets in the Tanner Graphs of LDPC Codes

Finding Small Stopping Sets in the Tanner Graphs of LDPC Codes Finding Small Stopping Sets in the Tanner Graphs of LDPC Codes Gerd Richter University of Ulm, Department of TAIT Albert-Einstein-Allee 43, D-89081 Ulm, Germany gerd.richter@uni-ulm.de Abstract The performance

More information

NVIDIA s Compute Unified Device Architecture (CUDA)

NVIDIA s Compute Unified Device Architecture (CUDA) NVIDIA s Compute Unified Device Architecture (CUDA) Mike Bailey mjb@cs.oregonstate.edu Reaching the Promised Land NVIDIA GPUs CUDA Knights Corner Speed Intel CPUs General Programmability 1 History of GPU

More information

NVIDIA s Compute Unified Device Architecture (CUDA)

NVIDIA s Compute Unified Device Architecture (CUDA) NVIDIA s Compute Unified Device Architecture (CUDA) Mike Bailey mjb@cs.oregonstate.edu Reaching the Promised Land NVIDIA GPUs CUDA Knights Corner Speed Intel CPUs General Programmability History of GPU

More information

IEEE TRANSACTIONS ON INFORMATION THEORY, VOL. 53, NO. 2, FEBRUARY /$ IEEE

IEEE TRANSACTIONS ON INFORMATION THEORY, VOL. 53, NO. 2, FEBRUARY /$ IEEE IEEE TRANSACTIONS ON INFORMATION THEORY, VOL. 53, NO. 2, FEBRUARY 2007 599 Results on Punctured Low-Density Parity-Check Codes and Improved Iterative Decoding Techniques Hossein Pishro-Nik, Member, IEEE,

More information

Describe the two most important ways in which subspaces of F D arise. (These ways were given as the motivation for looking at subspaces.

Describe the two most important ways in which subspaces of F D arise. (These ways were given as the motivation for looking at subspaces. Quiz Describe the two most important ways in which subspaces of F D arise. (These ways were given as the motivation for looking at subspaces.) What are the two subspaces associated with a matrix? Describe

More information

Lowering the Error Floors of Irregular High-Rate LDPC Codes by Graph Conditioning

Lowering the Error Floors of Irregular High-Rate LDPC Codes by Graph Conditioning Lowering the Error Floors of Irregular High- LDPC Codes by Graph Conditioning Wen-Yen Weng, Aditya Ramamoorthy and Richard D. Wesel Electrical Engineering Department, UCLA, Los Angeles, CA, 90095-594.

More information

The functional block diagram of 8085A is shown in fig.4.1.

The functional block diagram of 8085A is shown in fig.4.1. Lecture-13 Internal Architecture of Intel 05A The functional block diagram of 05A is shown in fig.4.1. INTA INTR RST7.5 RST5.5 RST6.5 TRAP SOD SID INTERRUPT SERIAL I/O (Internal Bus) FR(S) IR() B() C()

More information

MATLAB is working with vectors and matrices, using different operators and functions.

MATLAB is working with vectors and matrices, using different operators and functions. INTRODUCTION TO COMMUNICATIONS BASICS OF MATLAB MATLAB is working with vectors and matrices, using different operators and functions. The vectors are indexed starting with 1 not 0. A line-vector is introduced

More information

Performance potential for simulating spin models on GPU

Performance potential for simulating spin models on GPU Performance potential for simulating spin models on GPU Martin Weigel Institut für Physik, Johannes-Gutenberg-Universität Mainz, Germany 11th International NTZ-Workshop on New Developments in Computational

More information

Daniel D. Warner. May 31, Introduction to Parallel Matlab. Daniel D. Warner. Introduction. Matlab s 5-fold way. Basic Matlab Example

Daniel D. Warner. May 31, Introduction to Parallel Matlab. Daniel D. Warner. Introduction. Matlab s 5-fold way. Basic Matlab Example to May 31, 2010 What is Matlab? Matlab is... an Integrated Development Environment for solving numerical problems in computational science. a collection of state-of-the-art algorithms for scientific computing

More information

Gpufit: An open-source toolkit for GPU-accelerated curve fitting

Gpufit: An open-source toolkit for GPU-accelerated curve fitting Gpufit: An open-source toolkit for GPU-accelerated curve fitting Adrian Przybylski, Björn Thiel, Jan Keller-Findeisen, Bernd Stock, and Mark Bates Supplementary Information Table of Contents Calculating

More information

Summer 2009 REU: Introduction to Some Advanced Topics in Computational Mathematics

Summer 2009 REU: Introduction to Some Advanced Topics in Computational Mathematics Summer 2009 REU: Introduction to Some Advanced Topics in Computational Mathematics Moysey Brio & Paul Dostert July 4, 2009 1 / 18 Sparse Matrices In many areas of applied mathematics and modeling, one

More information

EECS 349 Machine Learning Homework 3

EECS 349 Machine Learning Homework 3 WHAT TO HAND IN You are to submit the following things for this homework: 1. A SINGLE PDF document containing answers to the homework questions. 2. The WELL COMMENTED MATLAB source code for all software

More information

Homework 3 (r1.2) Due: Part (A) -- Apr 28, 2017, 11:55pm Part (B) -- Apr 28, 2017, 11:55pm Part (C) -- Apr 28, 2017, 11:55pm

Homework 3 (r1.2) Due: Part (A) -- Apr 28, 2017, 11:55pm Part (B) -- Apr 28, 2017, 11:55pm Part (C) -- Apr 28, 2017, 11:55pm Second Semester, 2016 17 Homework 3 (r1.2) Due: Part (A) -- Apr 28, 2017, 11:55pm Part (B) -- Apr 28, 2017, 11:55pm Part (C) -- Apr 28, 2017, 11:55pm Instruction: Submit your answers electronically through

More information

Efficient Markov Chain Monte Carlo Algorithms For MIMO and ISI channels

Efficient Markov Chain Monte Carlo Algorithms For MIMO and ISI channels Efficient Markov Chain Monte Carlo Algorithms For MIMO and ISI channels Rong-Hui Peng Department of Electrical and Computer Engineering University of Utah /7/6 Summary of PhD work Efficient MCMC algorithms

More information

ELEC 691X/498X Broadcast Signal Transmission Winter 2018

ELEC 691X/498X Broadcast Signal Transmission Winter 2018 ELEC 691X/498X Broadcast Signal Transmission Winter 2018 Instructor: DR. Reza Soleymani, Office: EV 5.125, Telephone: 848 2424 ext.: 4103. Office Hours: Wednesday, Thursday, 14:00 15:00 Slide 1 In this

More information

CUDA GPGPU. Ivo Ihrke Tobias Ritschel Mario Fritz

CUDA GPGPU. Ivo Ihrke Tobias Ritschel Mario Fritz CUDA GPGPU Ivo Ihrke Tobias Ritschel Mario Fritz Today 3 Topics Intro to CUDA (NVIDIA slides) How is the GPU hardware organized? What is the programming model? Simple Kernels Hello World Gaussian Filtering

More information

Binary Search and Worst-Case Analysis

Binary Search and Worst-Case Analysis Yufei Tao ITEE University of Queensland A significant part of computer science is devoted to understanding the power of the RAM model in solving specific problems. Every time we discuss a problem in this

More information

Mini-project 2 CMPSCI 689 Spring 2015 Due: Tuesday, April 07, in class

Mini-project 2 CMPSCI 689 Spring 2015 Due: Tuesday, April 07, in class Mini-project 2 CMPSCI 689 Spring 2015 Due: Tuesday, April 07, in class Guidelines Submission. Submit a hardcopy of the report containing all the figures and printouts of code in class. For readability

More information

Scan Primitives for GPU Computing

Scan Primitives for GPU Computing Scan Primitives for GPU Computing Agenda What is scan A naïve parallel scan algorithm A work-efficient parallel scan algorithm Parallel segmented scan Applications of scan Implementation on CUDA 2 Prefix

More information

Maximum Density Still Life

Maximum Density Still Life The Hebrew University of Jerusalem Computer Science department Maximum Density Still Life Project in course AI 67842 Mohammad Moamen Table of Contents Problem description:... 3 Description:... 3 Objective

More information

Error-Correcting Codes

Error-Correcting Codes Error-Correcting Codes Michael Mo 10770518 6 February 2016 Abstract An introduction to error-correcting codes will be given by discussing a class of error-correcting codes, called linear block codes. The

More information

Binary Search and Worst-Case Analysis

Binary Search and Worst-Case Analysis Department of Computer Science and Engineering Chinese University of Hong Kong A significant part of computer science is devoted to understanding the power of the RAM model in solving specific problems.

More information

ENEE x Digital Logic Design. Lecture 3

ENEE x Digital Logic Design. Lecture 3 ENEE244-x Digital Logic Design Lecture 3 Announcements Homework due today. Homework 2 will be posted by tonight, due Monday, 9/2. First recitation quiz will be tomorrow on the material from Lectures and

More information

Getting Started with MATLAB Francesca Perino

Getting Started with MATLAB Francesca Perino Getting Started with MATLAB Francesca Perino francesca.perino@mathworks.it 2014 The MathWorks, Inc. 1 Agenda MATLAB Intro Importazione ed esportazione Programmazione in MATLAB Tecniche per la velocizzazione

More information

Louis Fourrier Fabien Gaie Thomas Rolf

Louis Fourrier Fabien Gaie Thomas Rolf CS 229 Stay Alert! The Ford Challenge Louis Fourrier Fabien Gaie Thomas Rolf Louis Fourrier Fabien Gaie Thomas Rolf 1. Problem description a. Goal Our final project is a recent Kaggle competition submitted

More information

CSC310 Information Theory. Lecture 21: Erasure (Deletion) Channels & Digital Fountain Codes. November 22, 2006 see

CSC310 Information Theory. Lecture 21: Erasure (Deletion) Channels & Digital Fountain Codes. November 22, 2006 see CSC310 Information Theory Lecture 21: Erasure (Deletion) Channels & Digital Fountain Codes Sam Roweis Recovering From Erasures 2 How can we recover from erasures? For the BEC, we saw that low-density parity

More information

Heterogeneous-Race-Free Memory Models

Heterogeneous-Race-Free Memory Models Heterogeneous-Race-Free Memory Models Jyh-Jing (JJ) Hwang, Yiren (Max) Lu 02/28/2017 1 Outline 1. Background 2. HRF-direct 3. HRF-indirect 4. Experiments 2 Data Race Condition op1 op2 write read 3 Sequential

More information

Lecture #3: PageRank Algorithm The Mathematics of Google Search

Lecture #3: PageRank Algorithm The Mathematics of Google Search Lecture #3: PageRank Algorithm The Mathematics of Google Search We live in a computer era. Internet is part of our everyday lives and information is only a click away. Just open your favorite search engine,

More information

ECE 408 / CS 483 Final Exam, Fall 2014

ECE 408 / CS 483 Final Exam, Fall 2014 ECE 408 / CS 483 Final Exam, Fall 2014 Thursday 18 December 2014 8:00 to 11:00 Central Standard Time You may use any notes, books, papers, or other reference materials. In the interest of fair access across

More information

New LDPC code design scheme combining differential evolution and simplex algorithm Min Kyu Song

New LDPC code design scheme combining differential evolution and simplex algorithm Min Kyu Song New LDPC code design scheme combining differential evolution and simplex algorithm Min Kyu Song The Graduate School Yonsei University Department of Electrical and Electronic Engineering New LDPC code design

More information

GPU 101. Mike Bailey. Oregon State University. Oregon State University. Computer Graphics gpu101.pptx. mjb April 23, 2017

GPU 101. Mike Bailey. Oregon State University. Oregon State University. Computer Graphics gpu101.pptx. mjb April 23, 2017 1 GPU 101 Mike Bailey mjb@cs.oregonstate.edu gpu101.pptx Why do we care about GPU Programming? A History of GPU Performance vs. CPU Performance 2 Source: NVIDIA How Can You Gain Access to GPU Power? 3

More information

GPU 101. Mike Bailey. Oregon State University

GPU 101. Mike Bailey. Oregon State University 1 GPU 101 Mike Bailey mjb@cs.oregonstate.edu gpu101.pptx Why do we care about GPU Programming? A History of GPU Performance vs. CPU Performance 2 Source: NVIDIA 1 How Can You Gain Access to GPU Power?

More information

LOW-density parity-check (LDPC) codes have attracted

LOW-density parity-check (LDPC) codes have attracted 2966 IEEE TRANSACTIONS ON INFORMATION THEORY, VOL. 50, NO. 12, DECEMBER 2004 LDPC Block and Convolutional Codes Based on Circulant Matrices R. Michael Tanner, Fellow, IEEE, Deepak Sridhara, Arvind Sridharan,

More information

Advanced and parallel architectures. Part B. Prof. A. Massini. June 13, Exercise 1a (3 points) Exercise 1b (3 points) Exercise 2 (8 points)

Advanced and parallel architectures. Part B. Prof. A. Massini. June 13, Exercise 1a (3 points) Exercise 1b (3 points) Exercise 2 (8 points) Advanced and parallel architectures Prof. A. Massini June 13, 2017 Part B Exercise 1a (3 points) Exercise 1b (3 points) Exercise 2 (8 points) Student s Name Exercise 3 (4 points) Exercise 4 (3 points)

More information

On the performance of turbo codes with convolutional interleavers

On the performance of turbo codes with convolutional interleavers University of Wollongong Research Online Faculty of Informatics - Papers (Archive) Faculty of Engineering and Information Sciences 5 On the performance of turbo codes with convolutional interleavers Sina

More information

COMP528: Multi-core and Multi-Processor Computing

COMP528: Multi-core and Multi-Processor Computing COMP528: Multi-core and Multi-Processor Computing Dr Michael K Bane, G14, Computer Science, University of Liverpool m.k.bane@liverpool.ac.uk https://cgi.csc.liv.ac.uk/~mkbane/comp528 19 Logistics 09:00,

More information

EECE.2160: ECE Application Programming

EECE.2160: ECE Application Programming Spring 2018 Programming Assignment #10: Instruction Decoding and File I/O Due Wednesday, 5/9/18, 11:59:59 PM (Extra credit ( 4 pts on final average), no late submissions or resubmissions) 1. Introduction

More information

A project report submitted to Indiana University

A project report submitted to Indiana University Sequential Page Rank Algorithm Indiana University, Bloomington Fall-2012 A project report submitted to Indiana University By Shubhada Karavinkoppa and Jayesh Kawli Under supervision of Prof. Judy Qiu 1

More information

Check-hybrid GLDPC Codes Without Small Trapping Sets

Check-hybrid GLDPC Codes Without Small Trapping Sets Check-hybrid GLDPC Codes Without Small Trapping Sets Vida Ravanmehr Department of Electrical and Computer Engineering University of Arizona Tucson, AZ, 8572 Email: vravanmehr@ece.arizona.edu David Declercq

More information

1 Lab + Hwk 5: Particle Swarm Optimization

1 Lab + Hwk 5: Particle Swarm Optimization 1 Lab + Hwk 5: Particle Swarm Optimization This laboratory requires the following equipment: C programming tools (gcc, make), already installed in GR B001 Webots simulation software Webots User Guide Webots

More information

Binomial Coefficient Identities and Encoding/Decoding

Binomial Coefficient Identities and Encoding/Decoding Binomial Coefficient Identities and Encoding/Decoding CSE21 Winter 2017, Day 18 (B00), Day 12 (A00) February 24, 2017 http://vlsicad.ucsd.edu/courses/cse21-w17 MT2 Review Sessions Today and Tomorrow! TODAY

More information

Error Control Coding for MLC Flash Memories

Error Control Coding for MLC Flash Memories Error Control Coding for MLC Flash Memories Ying Y. Tai, Ph.D. Cadence Design Systems, Inc. ytai@cadence.com August 19, 2010 Santa Clara, CA 1 Outline The Challenges on Error Control Coding (ECC) for MLC

More information

Complexity-Optimized Low-Density Parity-Check Codes

Complexity-Optimized Low-Density Parity-Check Codes Complexity-Optimized Low-Density Parity-Check Codes Masoud Ardakani Department of Electrical & Computer Engineering University of Alberta, ardakani@ece.ualberta.ca Benjamin Smith, Wei Yu, Frank R. Kschischang

More information

C H A P T E R 1. Introduction to Computers and Programming

C H A P T E R 1. Introduction to Computers and Programming C H A P T E R 1 Introduction to Computers and Programming Topics Introduction Hardware and Software How Computers Store Data How a Program Works Using Python Computer Uses What do students use computers

More information

Graphical Interface for Watermarking

Graphical Interface for Watermarking Graphical Interface for Watermarking R. Amiot and M.A. Ambroze Centre for Security, Communications and Network Research Plymouth University, United Kingdom e-mail: info@cscan.org Abstract An application

More information

Hardware/Software Co-Design

Hardware/Software Co-Design 1 / 13 Hardware/Software Co-Design Review so far Miaoqing Huang University of Arkansas Fall 2011 2 / 13 Problem I A student mentioned that he was able to multiply two 1,024 1,024 matrices using a tiled

More information

Wide operands. CP1: hardware can multiply 64-bit floating-point numbers RAM MUL. core

Wide operands. CP1: hardware can multiply 64-bit floating-point numbers RAM MUL. core RAM MUL core Wide operands RAM MUL core CP1: hardware can multiply 64-bit floating-point numbers Pipelining: can start the next independent operation before the previous result is available RAM MUL core

More information

Computer Science 324 Computer Architecture Mount Holyoke College Fall Topic Notes: Building Memory

Computer Science 324 Computer Architecture Mount Holyoke College Fall Topic Notes: Building Memory Computer Science 324 Computer rchitecture Mount Holyoke College Fall 2007 Topic Notes: Building Memory We ll next look at how we can use the devices we ve been looking at to construct memory. Tristate

More information

Supporting Data Parallelism in Matcloud: Final Report

Supporting Data Parallelism in Matcloud: Final Report Supporting Data Parallelism in Matcloud: Final Report Yongpeng Zhang, Xing Wu 1 Overview Matcloud is an on-line service to run Matlab-like script on client s web browser. Internally it is accelerated by

More information

THE DESIGN OF STRUCTURED REGULAR LDPC CODES WITH LARGE GIRTH. Haotian Zhang and José M. F. Moura

THE DESIGN OF STRUCTURED REGULAR LDPC CODES WITH LARGE GIRTH. Haotian Zhang and José M. F. Moura THE DESIGN OF STRUCTURED REGULAR LDPC CODES WITH LARGE GIRTH Haotian Zhang and José M. F. Moura Department of Electrical and Computer Engineering Carnegie Mellon University, Pittsburgh, PA 523 {haotian,

More information

BER Evaluation of LDPC Decoder with BPSK Scheme in AWGN Fading Channel

BER Evaluation of LDPC Decoder with BPSK Scheme in AWGN Fading Channel I J C T A, 9(40), 2016, pp. 397-404 International Science Press ISSN: 0974-5572 BER Evaluation of LDPC Decoder with BPSK Scheme in AWGN Fading Channel Neha Mahankal*, Sandeep Kakde* and Atish Khobragade**

More information

CS179: GPU Programming. Lecture 7: Lab 3 Recitation

CS179: GPU Programming. Lecture 7: Lab 3 Recitation CS179: GPU Programming Lecture 7: Lab 3 Recitation Today Miscellaneous CUDA syntax Recap on CUDA and buffers Shared memory for an N-body simulation Flocking simulations Integrators CUDA Kernels Launching

More information

Layered Decoding With A Early Stopping Criterion For LDPC Codes

Layered Decoding With A Early Stopping Criterion For LDPC Codes 2012 2 nd International Conference on Information Communication and Management (ICICM 2012) IPCSIT vol. 55 (2012) (2012) IACSIT Press, Singapore DOI: 10.7763/IPCSIT.2012.V55.14 ayered Decoding With A Early

More information

Topics. Hardware and Software. Introduction. Main Memory. The CPU 9/21/2014. Introduction to Computers and Programming

Topics. Hardware and Software. Introduction. Main Memory. The CPU 9/21/2014. Introduction to Computers and Programming Topics C H A P T E R 1 Introduction to Computers and Programming Introduction Hardware and Software How Computers Store Data Using Python Introduction Computers can be programmed Designed to do any job

More information

CS1132 Fall 2009 Assignment 1. 1 The Monty Hall Dillemma. 1.1 Programming the game

CS1132 Fall 2009 Assignment 1. 1 The Monty Hall Dillemma. 1.1 Programming the game CS1132 Fall 2009 Assignment 1 Adhere to the Code of Academic Integrity. You may discuss background issues and general solution strategies with others and seek help from course staff, but the homework you

More information

Pending Issues. Opera,ng Systems and Networks. Network Lecture 3: Link Layer (1) Where we are in the Course. Scope of the Link Layer

Pending Issues. Opera,ng Systems and Networks. Network Lecture 3: Link Layer (1) Where we are in the Course. Scope of the Link Layer Opera,ng Systems and Networks Network Lecture 3: Link Layer (1) Adrian Perrig Network Security Group ETH Zürich Pending Issues Earlier pos,ng of lecture slides Answering student ques,ons Project 1 is out

More information

Overlapped Scheduling for Folded LDPC Decoding Based on Matrix Permutation

Overlapped Scheduling for Folded LDPC Decoding Based on Matrix Permutation Overlapped Scheduling for Folded LDPC Decoding Based on Matrix Permutation In-Cheol Park and Se-Hyeon Kang Department of Electrical Engineering and Computer Science, KAIST {icpark, shkang}@ics.kaist.ac.kr

More information

Reduced Latency Majority Logic Decoding for Error Detection and Correction

Reduced Latency Majority Logic Decoding for Error Detection and Correction Reduced Latency Majority Logic Decoding for Error Detection and Correction D.K.Monisa 1, N.Sathiya 2 1 Department of Electronics and Communication Engineering, Mahendra Engineering College, Namakkal, Tamilnadu,

More information

10 Strategies for Effective Marketing Campaigns

10 Strategies for Effective  Marketing Campaigns 10 Strategies for Effective Email Marketing Campaigns Most people do not send effective email messages. I know. I spend a lot of time analyzing email messages for our clients, and measuring and tracking

More information

GPU-Accelerated Beat Detection for Dancing Monkeys

GPU-Accelerated Beat Detection for Dancing Monkeys GPU-Accelerated Beat Detection for Dancing Monkeys Philip Peng University of Pennsylvania Yanjie Feng University of Pennsylvania Abstract In music-based rhythm games, the game system needs to create patterns

More information

CSC310 Information Theory. Lecture 22: Erasure (Deletion) Channels & Digital Fountain Codes. November 30, 2005 see

CSC310 Information Theory. Lecture 22: Erasure (Deletion) Channels & Digital Fountain Codes. November 30, 2005 see CSC310 Information Theory Lecture 22: Erasure (Deletion) Channels & Digital Fountain Codes Sam Roweis Recovering From Erasures 2 How can we recover from erasures? For the BEC, we saw that low-density parity

More information

Digital Communication Prof. Bikash Kumar Dey Department of Electrical Engineering Indian Institute of Technology, Bombay

Digital Communication Prof. Bikash Kumar Dey Department of Electrical Engineering Indian Institute of Technology, Bombay Digital Communication Prof. Bikash Kumar Dey Department of Electrical Engineering Indian Institute of Technology, Bombay Lecture - 26 Source Coding (Part 1) Hello everyone, we will start a new module today

More information

Optimized Min-Sum Decoding Algorithm for Low Density PC Codes

Optimized Min-Sum Decoding Algorithm for Low Density PC Codes Optimized Min-Sum Decoding Algorithm for Low Density PC Codes Dewan Siam Shafiullah, Mohammad Rakibul Islam, Mohammad Mostafa Amir Faisal, Imran Rahman, Dept. of Electrical and Electronic Engineering,

More information

Lab 4: Automatical thresholding and simple OCR

Lab 4: Automatical thresholding and simple OCR Lab 4: Automatical thresholding and simple OCR Maria Magnusson, 2018, Computer Vision Laboratory, Department of Electrical Engineering, Linköping University, Sweden Based on an older lab developed at the

More information

Random Forest A. Fornaser

Random Forest A. Fornaser Random Forest A. Fornaser alberto.fornaser@unitn.it Sources Lecture 15: decision trees, information theory and random forests, Dr. Richard E. Turner Trees and Random Forests, Adele Cutler, Utah State University

More information