Intel® Quartus® Prime Software
Intel® Quartus® Prime Design Software, Design Entry, Synthesis, Simulation, Verification, Timing Analysis, System Design (Platform Designer, formerly Qsys)
17051 Discussions

Using a GPU to improve compile time

Altera_Forum
Honored Contributor II
4,960 Views

Hello, 

 

It seems Quartus II standard and pro version allow for multiprocessor use to speed compiling times. Does this include using a graphics card or GPU to compile. Modern GPUs have 1000+ compute cores at a relatively low price, that I would think would improve compile time greatly if possible to use.
0 Kudos
6 Replies
Altera_Forum
Honored Contributor II
3,437 Views

Place and route typically consumes the majority of built time for an FPGA image. This is difficult to do in parallel. In short, it isn't suited for a GPU.  

 

The ideal is a single fast CPU with plenty of cache. If you need to speed up compiles, look at Xenon and AMD based systems. They are slightly (but not greatly) faster than mainstream Intel architecture. 

 

There are several tutorials on using partitions and partial re-compile to speed up builds. If you carefully apply these techniques, they could help speed up builds on mostly finished FPGAs. Note that this is not available in the free version of Quartus.
0 Kudos
Altera_Forum
Honored Contributor II
3,437 Views

I agree with Galfonz. When shopping for a fast build machine look for a CPU with good single-thread performance: 

 

https://www.cpubenchmark.net/singlethread.html 

 

I just built a new machine with a Core i7-6700K (#3 on the single-thread performance list above) and a Z170 gaming motherboard that allows overclocking. I compared compile times at various CPU clock frequencies and found that compile time scales almost exactly (inversely) with CPU clock frequency. Also get as much fast memory as you can. Mine has 64GB, which these days costs about $250. I've experimented over the years with hard drives, and now SSDs, and have found that drive throughput has a negligible effect on compile times. So it's not worth throwing a bunch of money at a fast SSD RAID setup, for example.
0 Kudos
Altera_Forum
Honored Contributor II
3,437 Views

 

--- Quote Start ---  

I've experimented over the years with hard drives, and now SSDs, and have found that drive throughput has a negligible effect on compile times. So it's not worth throwing a bunch of money at a fast SSD RAID setup, for example. 

--- Quote End ---  

 

 

I saw a significant increase in compile time for shorter compiles with a single Samsung SSD. I believe this was due to the writes to the database. For longer compile times, I doubt this would be much of a bottle neck. Significant was maybe 20%, but I never did do a formalized test.
0 Kudos
Altera_Forum
Honored Contributor II
3,437 Views

I was testing with a design that took roughly an hour to build. I'm a consultant so I move around a lot. For many years I've kept all of my design files on a USB hard drive that I map to a fixed drive letter. Any machine I work at I can plug the USB drive in and it comes up with the same drive letter, same paths, etc. Works great for me. I started years ago with a USB 2.0 spinning drive, then a USB 3.0 spinning drive, then a USB 3.0 SSD, and I even tested with a 6Gbps eSATA SSD. None of those different drive setups made any appreciable difference in my compile times. For a 60-minute compile, switching from a USB 3.0 spinning drive (80-90 MB/s sequential throughput) to a fast eSATA SSD (400-500 MB/s sequential throughput) decreased the compile time by about 45 seconds.

0 Kudos
Altera_Forum
Honored Contributor II
3,437 Views

 

--- Quote Start ---  

I was testing with a design that took roughly an hour to build. I'm a consultant so I move around a lot. For many years I've kept all of my design files on a USB hard drive that I map to a fixed drive letter. Any machine I work at I can plug the USB drive in and it comes up with the same drive letter, same paths, etc. Works great for me. I started years ago with a USB 2.0 spinning drive, then a USB 3.0 spinning drive, then a USB 3.0 SSD, and I even tested with a 6Gbps eSATA SSD. None of those different drive setups made any appreciable difference in my compile times. For a 60-minute compile, switching from a USB 3.0 spinning drive (80-90 MB/s sequential throughput) to a fast eSATA SSD (400-500 MB/s sequential throughput) decreased the compile time by about 45 seconds. 

--- Quote End ---  

 

 

Ah, numbers. That's great to read. I wonder if I was seeing some other effect, then. Now there is another thing that is slowly being done that might speed things up, which is server clouds. I will be very excited when everything becomes more parallelized.
0 Kudos
Altera_Forum
Honored Contributor II
3,437 Views

Thanks all for the quick replies! I'm a student at Virginia Tech with a Surface Pro 4, since I have to be mobile (works great for presenting and storing books!) I also have a desktop at home with 32GB of ram and a recent GPU. The CPU is a little older. I was hoping to somehow leverage the GPU, but it seems I'll stay with my current setup. Thanks again for sharing with the community. I don't think this topic was available anywhere I looked.

0 Kudos
Reply