Introduction
Hello, I am Masa, a newcomer 1x years ago.
It has been more than 10 years since I joined Ultima as a new graduate.
After joining Altima, I was put in charge of Altera's products, and although I was still inexperienced, I have grown under the strict yet warm guidance of the company as a Field Application Engineer (FAE), making proposals to our customers.
Thanks to that, I have acquired not only FPGA product knowledge but also performance improvement techniques using Altera's FPGA development tool, Quartus® Prime, and am deploying my accumulated know-how on a daily basis.
Optimizing Quartus settings for Machine Learning?
There are a number of settings that can be used to improve performance, but just because you enable all the relevant settings does not mean you will get the best results.
It depends on the FPGA used, the circuit designed, and the FPGA resources (utilization), so experience and know-how are required. Therefore, in actual support, we determine the settings to be changed each time, taking into account the FPGA and circuit configuration, and inform the customer of these settings.
Of course, sometimes a single change is all that is needed to meet the target operating frequency, but other times it may take several cut-and-tries to improve performance.
As FPGAs become larger and larger, the number of functions that can be incorporated into them has increased dramatically, and the capabilities that can be realized have grown dramatically. As a result, the number of functions that can be configured in Quartus Prime is also increasing.
If you know how to use them well, you can master them and improve the performance of FPGAs, but there are so many settings that it is becoming difficult to provide you with all the features.
Recently, we hear a lot about IoT, AI, and Deep Learning / Machine Learning, and in fact, there are many products and software that use AI.
In this environment, tools with machine learning capabilities have appeared in the EDA tool industry.
One such tool is Plunify's InTime.
InTime uses "machine learning" to analyze the results of each compilation and automatically configures the next compilation, so you can achieve your goals faster with fewer compilations.
So, I tried it out right away.
The GUI is simple, with few configuration items (Figure 1.), and the tool runs crisply and is easy to use.
Figure 1. InTime startup screen
First, select a project file created with Quartus Prime.
Next, set the number of times to compile.
If you have a multi-processor PC, you can compile each processor in parallel, or if there are multiple machines on the same network, you can compile each machine in parallel.
Then, click the Start Recipe button to begin compilation (Figure 2).
Figure 2.
InTime uses machine learning to determine the combination of multiple Quartus Prime settings and performs the compilation, so all you have to do is wait. (Figure 3.)
Figure 3.
InTime determines the optimal settings for Quartus, while Quartus is running in the background.
After the execution is finished, the timing results are reported graphically. (Figure 4.)
Figure 4. InTime report
The vertical axis is the TNS (Total Negative Slack) delay value and the horizontal axis is the number of rounds.
In the example shown in Figure 4, 10 compilations per round x 4 rounds are executed, and it can be seen that the timing converges rapidly in the fourth round.
This is the effect of machine learning.
In this case, we used the sample design to check a series of operations and compilation reports.
I feel that using this InTime tool will allow us to lower the speed grade of the FPGA we use by one and reduce the device cost.
I would like to try it on various designs.
For those of you who have read this blog and are interested in using InTime, we have some good news for you!
Plunify is now offering a 2-week evaluation license to anyone who wants to try InTime for free.
If you actually have a design where the timing is not converging, please use this evaluation license to get a feel for the power of the tool.
We also offer a plan whereby Artima will take care of the compilation work for you if you are unable to find the time for evaluation.
For more information, please visit the following website:
Plunify
Summary
InTime's machine learning enables Quartus Prime to be compiled with optimal settings to maximize FPGA performance.
Tweet
Ah, using InTime might stop people from wanting to know about my 10+ years of expertise in improving performance with Quartus Prime..,