Main Content

Deep Learning with GPU Coder

Generate CUDA® code for deep learning neural networks

Deep learning is a branch of machine learning that teaches computers to do what comes naturally to humans: learn from experience. The learning algorithms use computational methods to “learn” information directly from data without relying on a predetermined equation as a model. Deep learning uses convolutional neural networks (CNNs) to learn useful representations of data directly from images. Neural networks combine multiple nonlinear processing layers, using simple elements operating in parallel and inspired by biological nervous systems. Deep learning models are trained by using a large set of labeled data and neural network architectures that contain many layers, usually including some convolutional layers.

You can use GPU Coder™ in tandem with the Deep Learning Toolbox™ to generate code and deploy CNN on multiple embedded platforms that use NVIDIA® or ARM® GPU processors. The Deep Learning Toolbox provides simple MATLAB® commands for creating and interconnecting the layers of a deep neural network. The availability of pretrained networks and examples such as image recognition and driver assistance applications enable you to use GPU Coder for deep learning, without expert knowledge on neural networks, deep learning, or advanced computer vision algorithms.

Apps

expand all

GPU CoderGenerate GPU code from MATLAB code
GPU Environment CheckVerify and set up GPU code generation environment

Functions

expand all

codegenGenerate C/C++ code from MATLAB code
cnncodegenGenerate code for a deep learning network to target the ARM Mali GPU
coder.loadDeepLearningNetworkLoad deep learning network model
coder.DeepLearningConfigCreate deep learning code generation configuration objects
coder.getDeepLearningLayersGet the list of layers supported for code generation for a specific deep learning library
coder.regenerateDeepLearningParametersRegenerate files containing network learnables and states parameters

Objects

expand all

coder.CuDNNConfigParameters to configure deep learning code generation with the CUDA Deep Neural Network library
coder.TensorRTConfigParameters to configure deep learning code generation with the NVIDIA TensorRT library
coder.gpuConfigConfiguration parameters for CUDA code generation from MATLAB code by using GPU Coder
coder.gpuEnvConfigCreate configuration object containing the parameters passed to coder.checkGpuInstall for performing GPU code generation environment checks

Basics

Deep Learning in MATLAB (Deep Learning Toolbox)

Discover deep learning capabilities in MATLAB using convolutional neural networks for classification and regression, including pretrained networks and transfer learning, and training on GPUs, CPUs, clusters, and clouds.

Learn About Convolutional Neural Networks (Deep Learning Toolbox)

An introduction to convolutional neural networks and how they work in MATLAB.

Pretrained Deep Neural Networks (Deep Learning Toolbox)

Learn how to download and use pretrained convolutional neural networks for classification, transfer learning and feature extraction.

Training

Deep Learning with Images (Deep Learning Toolbox)

Train convolutional neural networks from scratch or use pretrained networks to quickly learn new tasks

Code Generation Overview

Workflow

Overview of CUDA code generation workflow for convolutional neural networks.

Supported Networks, Layers, and Classes

Networks, layers, and classes supported for code generation.

Code Generation for dlarray

Use deep learning arrays in MATLAB code intended for code generation.

dlarray Limitations for Code Generation

Adhere to code generation limitations for deep learning arrays.

Generated CNN Class Hierarchy

Architecture of the generated CNN class and its methods.

Topics

MATLAB

Load Pretrained Networks for Code Generation

Create a SeriesNetwork, DAGNetwork, yolov2ObjectDetector, ssdObjectDetector, or dlnetwork object for code generation.

Code Generation for Deep Learning Networks by Using cuDNN

Generate code for pretrained convolutional neural networks by using the cuDNN library.

Code Generation for Deep Learning Networks by Using TensorRT

Generate code for pretrained convolutional neural networks by using the TensorRT library.

Code Generation for Deep Learning Networks Targeting ARM Mali GPUs

Generate C++ code for prediction from a deep learning network targeting an ARM Mali GPU processor.

Update Network Parameters After Code Generation

Perform post code generation updates of deep learning network parameters.

Data Layout Considerations in Deep Learning

Fundamental data layout considerations for authoring example main functions.

Quantization of Deep Neural Networks

Understand effects of quantization and how to visualize dynamic ranges of network convolution layers.

Code Generation for Quantized Deep Learning Networks

Quantize and generate code for a pretrained convolutional neural network.

Lane Detection Optimized with GPU Coder

This example shows how to generate CUDA® code from a deep learning network, represented by a SeriesNetwork object.

Traffic Sign Detection and Recognition

This example shows how to generate CUDA® MEX code for a traffic sign detection and recognition application that uses deep learning.

Logo Recognition Network

This example shows code generation for a logo classification application that uses deep learning.

Code Generation for Semantic Segmentation Network That Uses U-net

This example shows code generation for an image segmentation application that uses deep learning.

Code Generation for Semantic Segmentation Network

This example shows code generation for an image segmentation application that uses deep learning.

Code Generation for Denoising Deep Neural Network

This example shows how to generate CUDA® MEX from MATLAB® code and denoise grayscale images by using the denoising convolutional neural network (DnCNN [1]).

Simulink

GPU Code Generation for Deep Learning Networks Using MATLAB Function Block

Simulate and generate code for deep learning models in Simulink using MATLAB function blocks.

GPU Code Generation for Blocks from the Deep Neural Networks Library

Simulate and generate code for deep learning models in Simulink using library blocks.

Targeting NVIDIA Embedded Boards

Build and deploy to NVIDIA GPU boards.

Related Information

Featured Examples