Introduction
Hello, I'm Masa, a newcomer from 1 ● years ago.
More than 10 years have passed since I joined Altima as a new graduate.
After joining Altima, I was in charge of Intel® (former Altera) products, working as a Field Application Engineer (FAE), albeit inexperienced, to make proposals to customers. In doing so, I have grown while receiving strict yet warm guidance.
Thanks to that, I now have not only the product knowledge of FPGA, but also the performance improvement technique using the Intel FPGA development tool Quartus®, and I am developing the know-how that I have cultivated every day.
Optimize Quartus Settings with Machine Learning? ?
There are a number of settings that can improve performance, but enabling all relevant settings does not guarantee the best results.
Experience and know-how are required because it depends on the FPGA used, the circuit designed, and the resources (utilization rate) of the FPGA. Therefore, in the actual support, we decide the settings to be changed each time, considering the FPGA and circuit configuration, and communicate them to the customer.
Of course, it may be necessary to meet the target operating frequency with a single change, or it may be necessary to cut and try settings many times to improve performance.
As the scale of FPGAs increases, the number of functions that can be incorporated increases, and the number of functions that can be realized increases dramatically. Along with that, the number of functions that can be set in Quartus is increasing.
If you know how to use it, you can use it more and more and improve the performance of FPGA, but there are too many setting items, and it is becoming difficult to tell you all the functions.
Recently, the terms IoT, AI, and Deep Learning/Machine Learning are often heard, and in fact, many products and software using AI are now on the market.
Meanwhile, tools equipped with machine learning functions have appeared in the EDA tool industry.
That 's InTime from Plunify.
InTime uses “machine learning” to analyze the results of each compilation and automatically configure settings for the next compilation, so you can achieve your goals faster with fewer compilations.
So I tried it right away.
The GUI is simple and there are few setting items (Fig. 1), the tools work smoothly, and the operability is good.
First, select the project file created by Quartus.
Next, set the number of times to compile.
In the case of a PC that supports multiprocessors, it is possible to compile in parallel for each individual processor, and if there are multiple machines on the same network, it is possible to compile in parallel using each machine. .
Then click the Start Recipe button to start compiling. (Figure 2.)
InTime will determine the combination of multiple Quartus settings by machine learning and compile, so all you have to do is wait. (Figure 3.)
InTime determines the best settings for Quartus while Quartus is running in the background.
After the run is finished, the timing results are reported graphically. (Figure 4.)
The vertical axis is the TNS (Total Negative Slack) delay value and the horizontal axis is the number of rounds.
In the example in Figure 4, 10 compilations per round x 4 rounds are executed, and you can see that the timing converges rapidly in the 4th round.
This is the effect of machine learning.
This time, we used the sample design to perform a series of operations and check the compilation report.
By using this InTime tool, I feel that the speed grade of the FPGA used can be lowered by one, which will also lead to a reduction in device cost.
I would like to try different designs.
If you've read the blog so far and thought, "I'd like to try using InTime," here's some information for you!
Plunify has now issued a two-week evaluation license, allowing anyone to try InTime for free.
If you have a design where the timing does not actually converge, please use this evaluation license and experience the power of the tool.
In addition, for customers who find it difficult to secure time for evaluation, we have prepared a plan to undertake the compilation work at Ultima.
See below for details.
Plunify
Summary
InTime's machine learning allows you to compile with the best Quartus settings, maximizing your FPGA's performance.
Tweet
Oh, by using InTime, there may be no one who wants to know the know-how of performance improvement using Quartus that I have cultivated over 10 years...