Skip to content

Expectation Maximization algorithm for Hidden Markov Models (AKA Baum-Welch Algorithm)

Notifications You must be signed in to change notification settings

begumcig/CUDA-Baum-Welch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CUDA Implementation of the Baum-Welch Algorithm for Hidden Markov Models

This repository contains a CUDA implementation of the Baum-Welch algorithm for Hidden Markov Models (HMMs). This implementation is designed to efficiently estimate the parameters of HMMs using NVIDIA's CUDA platform, achieving significant speedup compared to sequential CPU implementations.

Overview

Hidden Markov Models are a popular approach in applications like traffic monitoring, biological sequence analysis, speech recognition, and wireless communications. The Baum-Welch algorithm is used for parameter estimation in HMMs. This project leverages CUDA to perform parallel processing, resulting in up to 19.44x speedup over traditional methods.

Key Features

  • GPU Acceleration: Uses CUDA to accelerate the Baum-Welch algorithm, particularly beneficial for large datasets.
  • Optimized Memory Usage: Implements texture memory, asynchronous data transfers, and simultaneous kernel executions.
  • Improved Computational Efficiency: Utilizes linear algebra optimizations to reduce the complexity of the expectation-maximization steps.
  • Significant Speedup: Achieves a 19.44x speedup with 1024 hidden states compared to the CPU implementation.

Implementation Details

The implementation includes:

  • Forward Algorithm: Calculates the likelihood of the hidden state sequence for a given observation sequence using CUDA.
  • Expectation-Maximization Steps: Employs matrix operations and parallel computations to efficiently update model parameters.
  • Optimization Techniques: Uses CUDA streams and texture memory to optimize performance and minimize global memory accesses.

Experimental Results

The implementation demonstrates a 19.44x speedup with 1024 hidden states compared to the sequential CPU version. This speedup is achieved by executing computations concurrently on the GPU and optimizing memory access patterns.

This repository also includes the paper titled "A CUDA Implementation of Baum-Welch Algorithm for Hidden Markov Models," which provides detailed insights into the implementation and performance evaluation of the algorithm. The paper can be found in the repository as a PDF file.

Contributing

Contributions are welcome! Please feel free to submit a pull request or report issues.

References

  • L. Rabiner, "A tutorial on hidden Markov models and selected applications in speech recognition," Proceedings of the IEEE, vol. 77, no. 2, 1989.

About

Expectation Maximization algorithm for Hidden Markov Models (AKA Baum-Welch Algorithm)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published