Developer Guide

Contents

Manual Partition of Global Memory

You can partition the memory manually so that each buffer occupies a different memory bank.
The default burst-interleaved configuration of the global memory prevents load imbalance by ensuring that memory accesses do not favor one external memory bank over another. However, you have the option to control the memory bandwidth across a group of buffers by partitioning your data manually.
The 
Intel® oneAPI
DPC++/C++
Compiler
cannot burst-interleave across different memory types. To manually partition a specific type of global memory, compile your kernels with the 
-Xsno-interleaving=<global_memory_type>
 flag to configure each bank of a certain memory type as non-interleaved banks.
If your kernel accesses two buffers of equal size in memory, you can distribute your data to both memory banks simultaneously regardless of dynamic scheduling between the loads. This optimization step might increase your apparent memory bandwidth.
If your kernel accesses heterogeneous global memory types, include the 
-Xsno-interleaving=<global_memory_type>
 option in the 
dpcpp
command for each memory type that you want to partition manually.

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.