# fopenmp-target-buffers, Qopenmp-target-buffers

Enables a way to overcome the problem where some OpenMP* offload SPIR-V* devices produce incorrect code when a target object is larger than 4GB. This feature is only available for ifx.

## Syntax

Linux: | -fopenmp-target-buffers=keyword

macOS: | None

Windows: | /Qopenmp-target-buffers:keyword

## Arguments

keyword | Possible values are:
default | Tells the compiler to use default heuristics. This may produce incorrect code on some OpenMP* offload SPIR-V* devices when a target object is larger than 4GB.
4GB | Tells the compiler to generate code to prevent the issue described by default. OpenMP* offload programs that access target objects of size larger than 4GB in target code require this option. This setting applies to the following: Target objects declared in OpenMP* target regions or inside OpenMP* declare target functions Target objects that exist in the OpenMP* device data environment Objects that are mapped and/or allocated by means of OpenMP* APIs (such as omp_target_alloc)

## Default

default | If you do not specify this option, the compiler may produce incorrect code on some OpenMP* offload SPIR-V* devices when a target object is larger than 4GB.

## Description

This option enables a way to overcome the problem where some OpenMP* offload SPIR-V* devices produce incorrect code when a target object is larger than 4GB (4294959104 bytes).

However, note that when -fopenmp-target-buffers=4GB (or /Qopenmp-target-buffers:4GB) is specified on Intel® GPUs, there may be a decrease in performance.

To use this option, you must also specify option -fopenmp-targets (Linux*) or /Qopenmp-targets (Windows*).

### Note

This option may have no effect for some OpenMP* offload SPIR-V* devices, and for OpenMP* offload targets different from SPIR*.

### Note

When OpenMP* offloading is enabled, this option only applies to device-specific compilation.

## IDE Equivalent

Visual Studio: Code Generation > Specify buffer size for OpenMP offload kernel access limitations (ifx only)

## Alternate Options

None

Parent topic: Offload Compilation, OpenMP*, and Parallel Processing Options

## See Also

fopenmp-targets, Qopenmp-targets compiler option