Available:*
Library | Item Barcode | Call Number | Material Type | Item Category 1 | Status |
---|---|---|---|---|---|
Searching... | 30000010342756 | T385 P57 2016 | Open Access Book | Book | Searching... |
On Order
Summary
Summary
GPU programming in MATLAB is intended for scientists, engineers, or students who develop or maintain applications in MATLAB and would like to accelerate their codes using GPU programming without losing the many benefits of MATLAB. The book starts with coverage of the Parallel Computing Toolbox and other MATLAB toolboxes for GPU computing, which allow applications to be ported straightforwardly onto GPUs without extensive knowledge of GPU programming. The next part covers built-in, GPU-enabled features of MATLAB, including options to leverage GPUs across multicore or different computer systems. Finally, advanced material includes CUDA code in MATLAB and optimizing existing GPU applications. Throughout the book, examples and source codes illustrate every concept so that readers can immediately apply them to their own development.
Author Notes
Nikolaos Ploskas, Department of Chemical Engineering Carnegie Mellon University, USA.
Nikolaos Samaras, Department of Applied Informatics, School of Information Sciences, University of Macedonia, Greece
Table of Contents
About the Authors | p. xi |
Foreword | p. xiii |
Preface | p. xv |
Chapter 1 Introduction | p. 1 |
1.1 Parallel Programming | p. 1 |
1.1.1 Introduction to Parallel Computing | p. 1 |
1.1.2 Classification of Parallel Computers | p. 5 |
1.1.3 Parallel Computers' Memory Architectures | p. 6 |
1.2 GPU Programming | p. 7 |
1.3 CUDA Architecture | p. 8 |
1.4 Why GPU Programming in MATLAB? When to Use GPU Programming? | p. 12 |
1.5 Our Approach; Organization of the Book | p. 17 |
1.6 Chapter Review | p. 19 |
Chapter 2 Getting Started | p. 21 |
2.1 Hardware Requirements | p. 21 |
2.2 Software Requirements | p. 23 |
2.2.1 NVIDIA CUDA Toolkit | p. 23 |
Windows | p. 23 |
Linux | p. 26 |
MAC OS | p. 29 |
2.2.2 MATLAB | p. 31 |
Windows | p. 31 |
Linux | p. 32 |
MAC OS | p. 33 |
2.3 Chapter Review | p. 35 |
Chapter 3 Parallel Computing Toolbox | p. 37 |
3.1 Product Description and Objectives | p. 37 |
3.2 Parallel For-Loops (partor) | p. 39 |
3.3 Single Program Multiple Data (spmd) | p. 52 |
3.4 Distributed and Codistributed Arrays | p. 58 |
3.5 Interactive Parallel Development (pmode) | p. 64 |
3.6 GPU Computing | p. 65 |
3.7 Clusters and Job Scheduling | p. 66 |
3.8 Chapter Review | p. 70 |
Chapter 4 Introduction to GPU Programming in MATLAB | p. 71 |
4.1 GPU Programming Features in MATLAB | p. 71 |
4.2 GPU Arrays | p. 72 |
4.3 Built-in MATLAB Functions for GPUs | p. 80 |
4.4 Element-Wise MATLAB Code on GPUs | p. 94 |
4.5 Chapter Review | p. 107 |
Chapter 5 GPU Programming on MATLAB Toolboxes | p. 109 |
5.1 Communications System Toolbox | p. 109 |
5.2 Image Processing Toolbox | p. 130 |
5.3 Neural Network Toolbox | p. 134 |
5.4 Phased Array System Toolbox | p. 156 |
5.5 Signal Processing Toolbox | p. 161 |
5.6 Statistics and Machine Learning Toolbox | p. 164 |
5.7 Chapter Review | p. 169 |
Chapter 6 Multiple GPUs | p. 171 |
6.1 Identify and Run Code on a Specific GPU Device | p. 171 |
6.2 Examples Using Multiple GPUs | p. 179 |
6.3 Chapter Review | p. 197 |
Chapter 7 Run CUDA or PTX Code | p. 199 |
7.1 A Brief Introduction to CUDA C | p. 199 |
7.2 Steps to Run CUDA or PTX Code on a GPU | |
Through MATLAB | p. 203 |
7.3 Example: Vector Addition | p. 212 |
7.4 Example: Matrix Multiplication | p. 215 |
7.5 Chapter Review | p. 218 |
Chapter 8 MATLAB MEX Functions Containing CUDA Code | p. 219 |
8.1 A Brief Introduction to MATLAB MEX Files | p. 219 |
8.2 Steps to Run MATLAB MEX Functions on GPU | p. 224 |
8.3 Example: Vector Addition | p. 233 |
8.4 Example: Matrix Multiplication | p. 236 |
8.5 Chapter Review | p. 239 |
Chapter 9 CUDA-Accelerated Libraries | p. 241 |
9.1 Introduction | p. 241 |
9.2 CuBLAS | p. 242 |
9.3 CuFET | p. 246 |
9.4 CuRAND | p. 249 |
9.5 CuSOLVER | p. 253 |
9.6 CuSPARSE | p. 257 |
9.7 NPP | p. 261 |
9.8 Thrust | p. 265 |
9.9 Chapter Review | p. 268 |
Chapter 10 Profiling Code and Improving GPU Performance | p. 269 |
10.1 MATLAB Profiling | p. 269 |
10.2 CUBA Profiling | p. 283 |
10.3 Best Practices for Improving GPU Performance | p. 288 |
10.4 Chapter Review | p. 294 |
References | p. 295 |
List of Examples | p. 297 |
Index | p. 301 |