Main Content

Memory mode

Description

Specify the memory allocation (malloc) mode to use in the generated CUDA® code.

Category: Code Generation > GPU Code

Settings

Default: discrete

discrete

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.

unified

The generated code uses the cudaMallocManaged API that uses a shared (unified) CPU and GPU global memory address space.

For NVIDIA® embedded targets only. See Deprecating support for unified memory allocation mode on host.

Dependencies

  • This parameter requires a GPU Coder™ license.

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

Command-Line Information

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

Compatibility Considerations

Deprecating support for unified memory allocation mode on host

In a future release, support for the unified memory allocation (cudaMallocManaged) mode will be removed when targeting NVIDIA GPU devices on the host development computer. When targeting GPU devices on the host, select 'discrete' for the Memory mode parameter.

You can continue to use unified memory allocation mode when targeting NVIDIA embedded platforms.

Related Topics