Main Content

Memory mode

Memory allocation modes for CPU and GPU global memories

Since R2020b

Model Configuration Pane: Code Generation / GPU Code


The Memory mode parameter specifies the memory allocation (malloc) mode to use in the generated CUDA® code.


  • This parameter requires a GPU Coder™ license.

  • To enable this parameter, select Generate GPU code on the Code Generation pane.


discrete (default) | unified

The generated code uses the cudaMalloc API for transferring data between the CPU and the GPU. From the programmers point-of-view, the discrete mode has a traditional memory architecture with separate CPU and GPU global memory address space.


The generated code uses the cudaMallocManaged API that uses a shared (unified) CPU and GPU global memory address space. This option is applicable for NVIDIA® embedded targets only. For more information, see Deprecating support for unified memory allocation mode on host.

Recommended Settings

DebuggingNo impact
TraceabilityNo impact
EfficiencyNo impact
Safety precautionNo impact

Programmatic Use

Parameter: GPUMallocMode
Type: character vector
Value: 'discrete' | 'unified'
Default: 'discrete'

Version History

Introduced in R2020b

expand all