Accelerating MATLAB with GPU Computing

Accelerating MATLAB with GPU Computing, 1st Edition

A Primer with Examples

Accelerating MATLAB with GPU Computing, 1st Edition,Jung Suh,Youngmin Kim,ISBN9780124080805


Morgan Kaufmann




229 X 152

Speed up Matlab codes by leveraging the power of GPU computing.

Print Book + eBook

USD 83.34
USD 138.90

Buy both together and save 40%

Print Book


In Stock

Estimated Delivery Time
USD 69.95

eBook Overview

VST (VitalSource Bookshelf) format

DRM-free included formats : EPUB, Mobi (for Kindle), PDF

USD 68.95
Add to Cart

Key Features

  • Shows how to accelerate MATLAB codes through the GPU for parallel processing, with minimal hardware knowledge
  • Explains the related background on hardware, architecture and programming for ease of use
  • Provides simple worked examples of MATLAB and CUDA C codes as well as templates that can be reused in real-world projects


Beyond simulation and algorithm development, many developers increasingly use MATLAB even for product deployment in computationally heavy fields. This often demands that MATLAB codes run faster by leveraging the distributed parallelism of Graphics Processing Units (GPUs). While MATLAB successfully provides high-level functions as a simulation tool for rapid prototyping, the underlying details and knowledge needed for utilizing GPUs make MATLAB users hesitate to step into it. Accelerating MATLAB with GPUs offers a primer on bridging this gap.

Starting with the basics, setting up MATLAB for CUDA (in Windows, Linux and Mac OS X) and profiling, it then guides users through advanced topics such as CUDA libraries. The authors share their experience developing algorithms using MATLAB, C++ and GPUs for huge datasets, modifying MATLAB codes to better utilize the computational power of GPUs, and integrating them into commercial software products.  Throughout the book, they demonstrate many example codes that can be used as templates of C-MEX and CUDA codes for readers’ projects.  Download example codes from the publisher's website: http://booksite.elsevier.com/9780124080805/


Graduate students and researchers in a variety of fields, who need huge data processing without losing the many benefits of Matlab.

Jung Suh

Jung W. Suh is a senior algorithm engineer and research scientist at KLA-Tencor. Dr. Suh received his Ph.D. from Virginia Tech in 2007 for his 3D medical image processing work. He was involved in the development of MPEG-4 and Digital Mobile Broadcasting (DMB) systems in Samsung Electronics. He was a senior scientist at HeartFlow, Inc., prior to joining KLA-Tencor. His research interests are in the fields of biomedical image processing, pattern recognition, machine learning and image/video compression. He has more than 30 journal and conference papers and 6 patents.

Affiliations and Expertise

Senior Algorithm Engineer & Research Scientist, KLA-Tencor

Youngmin Kim

Youngmin Kim is a staff software engineer at Life Technologies where he has been programming in the area that requires real-time image acquisition and high-throughput image analysis. His previous works involved designing and developing software for automated microscopy and integrating imaging algorithms for real time analysis. He received his BS and MS from the University of Illinois at Urbana-Champaign in electrical engineering. Since then he developed 3D medical software at Samsung and led a software team at the startup company, prior to joining Life Technologies.

Affiliations and Expertise

Staff Software Engineer, Life Technologies

Accelerating MATLAB with GPU Computing, 1st Edition

1. Accelerating MATLAB without GPU                                                                     
 1.1Chapter Objectives
 1.2 Vectorization
 1.3 Pre-allocation
 1.4 For-loop
 1.5 Consider sparse matrix form
 1.6 Miscellaneous tips
 1.6.1 Minimize file read/write within loop
 1.6.2 Minimize dynamically changing path and changing variable class
 1.6.3 Balance between the code readability and optimization
 1.7 Examples

2. Configurations for MATLAB and CUDA                                                                
 2.1 Chapter Objectives
 2.2 MATLAB Configuration for C-MEX
 2.3 “Hello World” using C-MEX
 2.5 Example: Simple Vector Addition using CUDA
 2.6 Example with Image Convolution

 3. Optimization Planning through Profiling
 3.1 Chapter Objectives
 3.2 MATLAB Code Profiling to Find Bottlenecks
 3.3 C-MEX Code Profiling for CUDA
 3.4 Environment Setting for C-MEX Debugger

4. CUDA coding with C-MEX
 4.1 Chapter Objectives
 4.2 Memory Layout for C-MEX
 4.3 Logical Programming Model
 4.4 Tidbits of GPU
 4.5 Analyzing Our First Naïve Approach

5. MATLAB with Parallel Computing Toolbox
 5.1 Chapter Objectives
 5.2 GPU processing for built-in MATLAB function
 5.3 GPU processing for non built-in MATLAB function
 5.4 Parallel task processing 
 5.5 Parallel data processing
 5.6 Direct use of CUDA file without C-MEX

6.  Using CUDA-Accelerated Libraries
 6.1 Chapter Objectives
 6.3 CUFFT
 6.4 Thrust 

7. Example in Computer Graphics: 3D Surface Reconstruction using Marching Cubes
 7.1 Chapter Objectives
 7.2 Marching Cubes
 7.3 Implementation in MATLAB
 7.4 Implementation in C-MEX with CUDA
 7.5 Implementation using C-MEX and GPU
 7.6 Conclusion

8. Example in 3D Image Processing: Atlas-based Segmentation
 8.1 Chapter Objectives
 8.2 MATLAB Code for Atlas-based Segmentation
 8.3 Planning for CUDA Optimization through Profiling
 8.4 CUDA Converting 1 - Regularization
 8.5 CUDA Converting 2 - Image Registration
 8.6 CUDA Conversion Results
 8.7 Conclusion

 A.1 Download and install CUDA library
 A.2 Installing NVIDIA Nsight into Visual Studio

Quotes and reviews

"This truly is a practical primer. It is well written and delivers what it promises. Its main contribution is that it will assist “naive” programmers in advancing their code optimization capabilities for graphics processing units (GPUs) without any agonizing pain."--Computing Reviews,July 2 2014

"Suh and Kim show graduate students and researchers in engineering, science, and technology how to use a graphics processing unit (GPU) and the NVIDIA company's Compute Unified Device Architecture (CUDA) to process huge amounts of data without losing the many benefits of MATLAB. Readers are assumed to have at least some experience programming MATLAB, but not sufficient background in programming or computer architecture for parallelization."--ProtoView.com, February 2014


Cyber Week Book Event | Use Code CYBOOK15

Shop with Confidence

Free Shipping around the world
▪ Broad range of products
▪ 30 days return policy

Contact Us