Developer Guide

FPGA Optimization Guide for Intel® oneAPI Toolkits

ID 767853
Date 7/13/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

Force a Single Store Ring to Reduce Area (-Xsforce-single-store-ring)

When the Intel® oneAPI DPC++/C++ Compiler implements a ring topology for the global memory interconnect (either by automatic choice or by forcing the ring through -Xsglobal-ring), it widens the interconnect by default to allow more writes to occur in parallel. This allows for saturation of the global memory throughput using write-only traffic.

The -Xsforce-single-store-ring option allows you to save area if you do not require that much write bandwidth. To narrow the interconnect in order to save area while limiting write-only throughput to one bank's worth, use the -Xsforce-single-store-ring option in your icpx command.

Example

icpx -fsycl -fintelfpga –Xshardware -Xsforce-single-store-ring <source_file>.cpp
NOTE:

You can use -Xsforce-single-store-ring and -Xsglobal-ring command options independently. A combination of their use is also functional.

There is here is some dependence between the two options. For example, using the -Xsforce-single-store-ring option has no effect if the compiler does not use the ring interconnect. So, if you want a ring interconnect and want to force a single-store ring, use the -Xsglobal-ring option to force a ring interconnect. Then, use the -Xsforce-single-store-ring option to make that ring a single-store ring.