Visible to Intel only — GUID: GUID-53BF7BB8-F291-4D58-8F24-D19432107353
Visible to Intel only — GUID: GUID-53BF7BB8-F291-4D58-8F24-D19432107353
Emulator Environment Variables
The following table lists environment variables that you can use to modify the behavior of the emulator:
Environment Variable |
Description |
---|---|
CL_CONFIG_CPU_EMULATE_DEVICES |
Controls the number of identical emulator devices provided by the emulator platform. If not set, a single emulator device is available. Therefore, set this variable only if you want to emulate multiple devices. |
DPCPP_CPU_NUM_CUS |
Indicates a maximum number of threads that the emulator can use. The default value is 32, and the maximum value is 255. Each thread can run a single kernel. If the application requires several kernels to be executing simultaneously, you must set the DPCPP_CPU_NUM_CUS environment variable appropriately to the number of kernels used or a higher value. |
CL_CONFIG_CPU_FORCE_LOCAL_MEM_SIZE |
Set the amount of available local memory with units. For example: 8MB, 256KB, or 1024B. |
CL_CONFIG_CPU_FORCE_PRIVATE_MEM_SIZE |
Set the amount of available private memory with units. For example: 8MB, 256KB, or 1024B.
NOTE:
On Windows, the FPGA emulator can fail silently by running out of memory. Set the value of CL_CONFIG_CPU_FORCE_PRIVATE_MEM_SIZE to ensure that the kernel has sufficient private memory. To detect a lack of memory at run time, surround the kernel invocation in a try-catch block. For example:
try { q.single_task<>(); } catch (sycl::exception& e) { std::cerr << e << std::endl; } |
CL_CONFIG_CHANNEL_DEPTH_EMULATION_MODE |
When you compile your kernel for emulation, the pipe depth is different from the pipe depth generated when your kernel is compiled for hardware. You can change this behavior with the CL_CONFIG_CHANNEL_DEPTH_EMULATION_MODE environment variable. For details, see Emulate Pipe Depth. |
Emulate Pipe Depth
When you compile your kernel for emulation, the default pipe depth is different from the default pipe depth generated when your kernel is compiled for hardware. You can change this behavior when you compile your kernel for emulation with the CL_CONFIG_CHANNEL_DEPTH_EMULATION_MODE environment variable.
The CL_CONFIG_CHANNEL_DEPTH_EMULATION_MODE environment variable accepts the following values:
Environment Variable |
Description |
---|---|
ignoredepth |
All pipes are given a pipe depth chosen to provide the fastest execution time for your kernel emulation. Any explicitly set pipe depth attribute is ignored. |
default |
Pipes with an explicit depth attribute have their specified depth. Pipes without a specified depth are given a default pipe depth that is chosen to provide the fastest execution time for your kernel emulation. |
strict |
All pipe depths in the emulation are given a depth that matches the depth given for the FPGA compilation. If the specified depth is not given, the depth will be 1. This value is used by default if the CL_CONFIG_CHANNEL_DEPTH_EMULATION_MODE environment variable is not set. |