1 / 11

File Compression Using the CUDA Framework

File Compression Using the CUDA Framework. Brandon Grant Tomas Mann Florida State University Spring 2010 Multicore Programming CIS4930. Contents. Introduction Implementation Performance Conclusions. Introduction. Why is compression important? Limited disk space

loan
Download Presentation

File Compression Using the CUDA Framework

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. File Compression Using the CUDA Framework Brandon Grant Tomas Mann Florida State University Spring 2010 Multicore Programming CIS4930

  2. Contents • Introduction • Implementation • Performance • Conclusions File Compression Using the CUDA Framework

  3. Introduction • Why is compression important? • Limited disk space • Shrink bloated and redundant files • Expedite file transfer File Compression Using the CUDA Framework

  4. Introduction • What benefits can CUDA bring to the table? • Nvidia Compute Unified Device Architecture • Massively parallel GPU • Can run thousands of threads • We want to implement a parallel lossless compression algorithm that can compress larger files faster by taking advantage of parallelism. File Compression Using the CUDA Framework

  5. Implementation • Modified Burrows-Wheeler Compression • Implement a sequential version to identify individual tasks. • Identify potentially parallelizable tasks. • Implement parallel versions of these tasks and use them to replace their sequential counterparts. File Compression Using the CUDA Framework

  6. Implementation • Parallel: Burrows-Wheeler Transformation • Computes the Burrows-Wheeler code. • Computes the index of the original string in the sorted string rotations table. Algorithm 1: Parallel Burrows-Wheeler 1: s := string for which the thread is responsible, rank = 0. 2: for each string x in the list 3: if x < s 4: rank = rank + 1 5: end if 6: end for 7: output[rank] = last character of s 8: if (s == original input sequence) 9: BW_index = rank File Compression Using the CUDA Framework

  7. Implementation • Parallel: Huffman Coding • Ascii table initialization • Character occurrence counter • Node sorter File Compression Using the CUDA Framework

  8. Conclusions • Our parallel algorithm did not show any significant performance advantages over the sequential version • Burrows-Wheeler algorithm is optimized for a single core implementation, significant performance boosts would be difficult to realize • Memory hierarchy restrictions in CUDA hamper performance File Compression Using the CUDA Framework

  9. Conclusions Compression Time Decompression Time Original File Size Compression Ratios File Compression Using the CUDA Framework

  10. Conclusions Burrows-Wheeler Performance • english.dic • world95.txt File Compression Using the CUDA Framework

  11. Thank you for viewing our presentation. Questions? File Compression Using the CUDA Framework

More Related