UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Visitor ysaldatsenka
Visitor
657 Views
Registered: ‎11-14-2018

Opencl kernel clock is slow

I'm trying to run SHA256 on aws f1 instance using opencl. The target clock for opencl kernel is 250 MHz, but during implementation process it was slowed down: "WARNING: One or more timing paths failed timing targeting 250 MHz for kernel clock 'DATA_CLK'. The frequency is being automatically changed to 81.6 MHz to enable proper functionality".

I haven't found something useful in system estimate and csynth report. The estimated frequency for kernel was almost ~1.5 times bigger, than target.

Opening design implementation in vivado shows, that slack for kernel clock is very big:

timing_report.png
Below is clock critical path:
kolbasa_2.png

The critical path begins on the synchronous flip-flop:
kolbasa_3.pngAnd after passing tons of asynchronous elements it ends on synchronous flip-flop:
kolbasa_4.png
Questions:
1. Does the SDAccel framework has tools which could help us to find which instruction in opencl code results in bunch of async logic?
2. If no, how can we modify result HDL code, currently it's very unclear and contains 26k lines of code.

0 Kudos
4 Replies
Xilinx Employee
Xilinx Employee
645 Views
Registered: ‎03-24-2010

Re: Opencl kernel clock is slow

It's recommended to open Vivado HLS from SDAccel.

In Vivado HLS project, click "export RTL" button. In prompting window, check "Vivado synthsis,place and route". Click ok. This way, HLS will call Vivado to do Synthesis and Routing only for the kernel, excluding SDAccel platform logics. Pay attention to the last timing result of Vivado Synthesis and Route.

Then, you may see if this issue mainly comes from HLS. If above steps show similar timing failure, you may focus on timing optimization on HLS.

Regards,
brucey
----------------------------------------------------------------------------------------------
Kindly note- Please mark the Answer as "Accept as solution" if information provided is helpful.

Give Kudos to a post which you think is helpful and reply oriented.
----------------------------------------------------------------------------------------------
Visitor ysaldatsenka
Visitor
620 Views
Registered: ‎11-14-2018

Re: Opencl kernel clock is slow

How can I export RTL in SDx?

0 Kudos
Moderator
Moderator
601 Views
Registered: ‎11-04-2010

Re: Opencl kernel clock is slow

Hi, @ysaldatsenka,

After building the design in Hw-Emulation, you can click the hls launching button in "Hardware Function" window by selecting the target function.

Then export RTL in HLS project.

-------------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
hls.png
0 Kudos
Visitor ysaldatsenka
Visitor
588 Views
Registered: ‎11-14-2018

Re: Opencl kernel clock is slow

I've opened example project in HLS using SDx.
How can I observe, that some statements in my kernel code lead to long chains of async logic?
Can synthesized project be opened in Vivado to open schematic?

0 Kudos