Offload Compilation, OpenMP*, and Parallel Processing Options
This section contains descriptions for compiler options that pertain to offload compilation, OpenMP*, or parallel processing. They are listed in alphabetical order.
device-math-lib
Enables or disables certain device libraries.
fiopenmp, Qiopenmp
Enables recognition of OpenMP* features and tells the parallelizer to generate multi-threaded code based on OpenMP* directives. Provides the ability to offload to a GPU when -fopenmp-targets (or /Qopenmp-targets) is also specified. This feature is only available for ifx.
flink-huge-device-code
Tells the compiler to place device code later in the linked binary. This is to prevent 32-bit PC-relative relocations between surrounding Executable and Linkable Format (ELF) sections when the device code is larger than 2GB. This feature is only available for ifx.
fmpc-privatize
Enables or disables privatization of all static data for the MultiProcessor Computing environment (MPC) unified parallel runtime. This feature is only available for ifort.
fopenmp, Qopenmp
Enables recognition of OpenMP* features and tells the parallelizer to generate multi-threaded code based on OpenMP* directives.
fopenmp-default-allocator, Qopenmp-default-allocator
Tells the compiler that all ALLOCATE statements should be treated as though there were an explicit OpenMP ALLOCATE directive that preceded them. This feature is only available for ifx.
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.
fopenmp-target-default-sub-group-size, Qopenmp-target-default-sub-group-size
Lets you specify a default sub-group size globally for single program multiple data (SPMD) kernels that are generated for OpenMP* target constructs when offloading to SPIR64-based devices. This feature is only available for ifx.
fopenmp-target-loopopt, Qopenmp-target-loopopt
Enables the loop optimizer and auto-vectorization for OpenMP* offloading device compilation when option O2 or higher is set or specified. This feature is only available for ifx.
fopenmp-target-simd, Qopenmp-target-simd
Enables OpenMP* SIMD loop vectorization for OpenMP offloading device compilation when option level O2 or higher is set or specified. This feature is only available for ifx.
fopenmp-targets, Qopenmp-targets
Enables offloading to a specified GPU target if OpenMP* features have been enabled. This feature is only available for ifx.
fsycl
Enables linking Fortran object files with SYCL-based object files. This feature is only available for ifx.
fsycl-dead-args-optimization
Enables elimination of SYCL dead kernel arguments. This feature is only available for ifx.
fsycl-device-code-split
Specifies a SYCL* device code module assembly. This feature is only available for ifx.
fsycl-device-lib
Enables or disables certain device libraries for a SYCL* target. This feature is only available for ifx.
fsycl-instrument-device-code
Enables or disables linking of the Instrumentation and Tracing Technology (ITT) device libraries for VTune™. This feature is only available for ifx.
fsycl-link-huge-device-code
Tells the compiler to place device code later in the linked binary. This is to prevent 32-bit PC-relative relocations between surrounding Executable and Linkable Format (ELF) sections when the device code is larger than 2GB. This is a deprecated option that will be removed in a future release. This feature is only available for ifx.
fsycl-targets
Tells the compiler to generate code for specified device targets. This description is only for ifx. This option is only valid for linking against SYCL-based objects.
ftarget-compile-fast
Tells the compiler to perform less aggressive optimizations to reduce compilation time at the expense of generating less optimal target code. This is an experimental feature.This feature is only available for ifx.
par-num-threads, Qpar-num-threads
Specifies the number of threads to use in a parallel region. This feature is only available for ifort.
par-runtime-control, Qpar-runtime-control
Generates code to perform runtime checks for loops that have symbolic loop bounds. This feature is only available for ifort.
par-schedule, Qpar-schedule
Lets you specify a scheduling algorithm for loop iterations. This feature is only available for ifort.
par-threshold, Qpar-threshold
Sets a threshold for the auto-parallelization of loops. This feature is only available for ifort.
parallel, Qparallel (ifort only)
Tells the auto-parallelizer to generate multithreaded code for loops that can be safely executed in parallel.
qopenmp, Qopenmp
You can substitute the option named -qopenmp for option -fopenmp or -fiopenmp (ifx), and you can substitute the option named /Qopenmp for option /Qiopenmp (ifx).
qopenmp-lib, Qopenmp-lib
Lets you specify an OpenMP* runtime library to use for linking. This feature is only available for ifort.
qopenmp-link
Controls whether the compiler links to static or dynamic OpenMP* runtime libraries.
Qpar-adjust-stack
Tells the compiler to generate code to adjust the stack size for a fiber-based main thread. This feature is only available for ifort.
Xopenmp-target
Enables options to be passed to the specified tool in the device compilation tool chain for the OpenMP* target. This feature is only available for ifx.
Xsycl-target
Enables options to be passed to the specified tool in the device compilation tool chain for the SYCL* target. This feature is only available for ifx.