Plunify Cloud

Tutorial: How to use the cloud for InTime optimization?

129 views May 6, 2020 July 31, 2020 Kirvy Teo 0

Not sure how to effectively use the cloud for design optimization?

This [step-by-step guide] (https://github.com/plunify/InTime-PlunifyCloud-Tutorial) below (and on github) shows you how to use cloud servers to run InTime-generated strategies.

For details on our optimization methodology, refer to some of our Whitepapers.

Tutorial: Optimize an FPGA Design using InTime on Plunify Cloud

(中文|日本語)

Prerequisites

This assumes you have a licensed InTime installed on-premise. There should be a licensed FPGA tool such as Vivado or Quartus as well.

Alternatively if you are running InTime on the cloud (https://ailab.plunify.com), please start a cloud server (e.g. RA1) with the InTime tool and select any Vivado version. (Only Vivado is available on Plunify Cloud) Vivado and InTime will be configured automatically in the background when the server is started.

Introduction

This is a simple tutorial for the user to optimize an FPGA design with the InTime software, using the Plunify Cloud service. If you are new to InTime, please apply for a free evaluation of the software.

This tutorial covers the "Hot Start" recipe, "InTime Default" recipe, and the "Extra Opt Exploration" recipe. The recipe flow and their configurations are shown as below.

Recipe 1 : Hotstart

  • runs per round : 2
  • rounds : 1
  • concurrent runs : 2

Recipe 2 : InTime Default

  • runs per round : 2
  • rounds : 1
  • concurrent runs : 2

Recipe 3 : Extra Opt Exploration

  • runs per round : 2
  • rounds : 1
  • concurrent runs : 2

Requirements

  1. InTime software version 2.6.8 or later (Request a free evaluation)
  2. Vivado software version 2017.2 or later
  3. Plunify Cloud account (Register a new account or refer a friend to get free credits.)

Steps

  1. Download or clone the sample project.

https://github.com/plunify/InTime-PlunifyCloud-Tutorial.git

  1. Start InTime and open the sample eight_bit_uc project.

  2. Select the targeted toolchain. For this tutorial, we will use Vivado version 2017.2.

  3. Change the 'Run Target' option to 'Plunify Cloud'.

  4. Change 'Recipe' option to 'Hot Start' ('Hot Start' is the default recipe).

  5. Configure the desired value for 'runs per round', 'rounds', 'concurrent runs' options as outlined in the Introduction section.

  6. Click 'Start Recipe' to submit the job to Plunify Cloud.

  7. Enter your Plunify Cloud credentials. Note: you only need to do this once.

  8. Select the class of machine to use for cloud compilation. Use Class CA1 machines for this tutorial.

  9. After choosing the machine class, InTime will generate a job ID for this submission and upload the project into Plunify Cloud for the actual compilations. Notifications will be shown to confirm if the job submission is successful or not. Make a note of the job ID (81181 in this example). You can use this job ID to track the job status on the Plunify Cloud web console.

  10. (Optional) On the Plunify Cloud web console, check the job status under 'History'>'Usage History'

  11. Upon completion, a notification message will be sent to your registered email address.

  12. To download all the results, just right-click on your job and select "Resume This Job".

  13. Alternatively, to selective download results, you can also select on the strategies with "Ctrl" key pressed and right click "Download Remote Results".
  14. A pop-will prompt you on the types of files. Select the file types you require and click ok.  (Project File means DCPs).Af
  15. After downloading the results, change the 'Recipe' option to 'InTime Default'.
  16. Right-click the revision with the best TNS and 'Set As Parent Revision'. In this example, both revisions "hotstart_1" and "hotstart_2" have the same result so it is okay to pick either one.

  17. Repeat Steps 7 to Step 14 to run the 'InTime Default' recipe.
  18. Change the 'Recipe' option to 'Extra Opt Exploration'.
  19. Right-click the revision with the best TNS and 'Set As Parent Revision'. In this example, the revision with the best TNS is "calibrate_1". Note the calibrate_1 revision already met timing but we will continue using it to complete this tutorial. To enable this, set the 'Stop When Goal Met' option to 'False' in order to continue running.
  20. Repeat Steps 7 to Step 14 for 'Extra Opt Exploration' recipe run.
  21. Upon completion, the InTime results should look like those below.

 

Leave a Reply