120 likes | 216 Views
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
E N D
File Compression Using the CUDA Framework Brandon Grant Tomas Mann Florida State University Spring 2010 Multicore Programming CIS4930
Contents • Introduction • Implementation • Performance • Conclusions File Compression Using the CUDA Framework
Introduction • Why is compression important? • Limited disk space • Shrink bloated and redundant files • Expedite file transfer File Compression Using the CUDA Framework
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
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
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
Implementation • Parallel: Huffman Coding • Ascii table initialization • Character occurrence counter • Node sorter File Compression Using the CUDA Framework
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
Conclusions Compression Time Decompression Time Original File Size Compression Ratios File Compression Using the CUDA Framework
Conclusions Burrows-Wheeler Performance • english.dic • world95.txt File Compression Using the CUDA Framework
Thank you for viewing our presentation. Questions? File Compression Using the CUDA Framework