Main Content

DSP Algorithm Acceleration

Acceleration using dataflow multithreading or generated MEX functions

You can improve simulation throughput for MATLAB® functions using the dspunfold function to generate a multi-threaded MEX file.

In Simulink®, Dataflow domains automatically partition your model and simulate the system using multiple threads. By adding algorithmic latency to your system, you can further increase concurrency and improve simulation throughput of your model.

Functions

dspunfoldGenerates a multi-threaded MEX file from a MATLAB function
codegenGenerate C/C++ code from MATLAB code

Blocks

Dataflow SubsystemSubsystem whose execution domain is set to Dataflow

Topics

Unfolding

Workflow for Generating a Multithreaded MEX File using dspunfold

This section discusses the recommended workflow of generating the multithreaded MEX and verifying the results using the analyzer.

Multithreaded MEX File Generation

This example shows how to use the dspunfold function to generate a multithreaded MEX file from a MATLAB function using unfolding technology.

Signal Processing Algorithm Acceleration in MATLAB

Accelerate signal processing algorithm with codegen and dspunfold.

How Is dspunfold Different from parfor?

This page should detail the users on when to use dspunfold and when to use parfor.

Dataflow

Dataflow Domain

Simulate a subsystem using synchronous dataflow.

Multicore Simulation and Code Generation of Dataflow Domains

Types of parallelism. Simulation and code generation of dataflow domains using multiple threads.

Model Multirate Signal Processing Systems Using Dataflow

Use a Dataflow Subsystem to automatically calculate frame sizes in multirate systems.

Perform Multicore Analysis for Dataflow

When a subsystem in a model is configured to use a dataflow execution domain, the Multicore tab is activated on the Simulink toolstrip.

Troubleshooting

Why Does the Analyzer Choose the Wrong State Length?

This section discusses the example where the state length depends on the input which causes verification failure. Debugging steps are also included.

Why Does the Analyzer Choose a Zero State Length?

This section discusses the example where the input does not have an immediate effect on the output. Hence, state length of 0 is considered in spite of the algorithm containing states.

Featured Examples