(I hope that it is not a problem to talk about CPUs from AMD and Intel in an Intel forum...
We need to buy a few new workstations exclusively for developing and compiling Quartus projects. The problem is that there are several CPUs which I suspect to be good at this, each one with pros and cons. Which one to buy?
Requirements: Minimal Quartus compilation time, ECC RAM (at least 64GB, better 128), budget for one CPU+Mainboard+RAM at most 2000 Dollars. Must be bought until end of this year (so unfortunately no waiting for Intel gen11 and probably Zen3). OS: Latest Linux kernel. No windows, no gaming, no overclocking.
All clock frequencies below are given in turbo mode, because most of the time Quartus only uses a single core for compiling so I think this frequency is the one which matters most. Also because of that, 6 CPU cores should be sufficient. All speed factors (*...) are compared to our Xeons E5-1650 v3.
Intel Xeon E5-1650 v3 (Gen4)
6*3,8GHz, L2+L3: 15MB, 64GB DDR4-2133 4-channel, 68GB/s.
Singlethead-Passmark: 1762, Multithread: 8184
Quartus-Compile of a project: 1h 18min
Intel i7-8700 (Gen8)
6*4,6GHz, L2+L3: 12MB, 64GB DDR4-2666 2-channel, 41,6GB/s
Singlethead-Passmark: 2685 (*1.52), Multithread: 13129 (*1.6)
Quartus-Compile of the same project: 1h 01min
CPUs under discussion:
AMD Threadripper 3960X (Zen2)
24*4,5GHz, L3:128MB (8*16M), L2:12MB(24*512k), DDR4-3200, 102,4GB/s, 72xPCIe4
TDP 280 Watt. Singlethread-Passmark: 2706 (*1.54). Multithread: 55672 (*6.8)
Advantages: Very large total cache, fast RAM transfers
Disadvantages: Price, not the fastest clock, power consumption (280W: power supply, cooling).
AMD Ryzen 9 3900XT (Zen2)
12*4,7GHz, L3:64MB(4*16M), L2:6MB(12*512k), DDR4-3200, 51,2GB/s, 28xPCIe4
TDP 105 Watt. Singlethread-passmark: 2798 (*1.59). Multithread: 33266 (*4.06)
Advantages: Large total cache, price, easy upgrade e.g. to 4900X next year
Disadvantage: Slow RAM transfers
Intel Xeon W-1290P (Gen10)
10*5,3GHz, L3+L2:20MB(shared? “smartcache”), DDR4-2933, 45,8GB/s, 20xPCIe3
TDP 125 Watt. Singlethread-passmark: 3140 (*1.78, 3900XT: *1.12) . Multithread 21882 (*2.67)
Advantage: Highest CPU clock, ?shared-cache (?fast L2?)
Disadvantages: Slowest RAM transfers, small total cache
Intel Xeon W-2235 (Gen10)
6*4,6GHz, L3+L2:8,25MB(shared? “smartcache”), DDR4-2933 4-channel, 93,85GB/s, 52xPCIe3
TDP 130 Watt. Singlethread-Passmark: 2709, Multithread: 14890
Advantages: Fast RAM transfers, ?shared-cache (?fast L2?)
Disadvantage: not the fastest clock, very small total cache
AMD EPYC 7262 (Zen2)
8*3,4GHz, L3:128MB(8*16M), L2: 4MB(8*512k), DDR4-3200 8-channel 204,8GB/s, 128*PCIe4
TDP 155 Watt. Singlethread-Passmark: 1939 (*1.10), Multithread: 23771 (*2.83)
Advantages: Very large total cache, very fast RAM transfers
Disadvantage: Very slow clock
(Of course, best would probably be a CPU with few cores, but very fast turbo frequency, large caches per core, and a really fast RAM interface, but such thing does not seem to exist
I did some research on the web, but did not find much quantitative data on the influence of CPU clock, CPU architecture, Cache architecture and size, and RAM speed and latency on the compilation time. In Altera/Intel documentation I essentially only found that faster CPUs and large CPU-caches are helpful. Since the i7-8700 is about 50% faster at Passmark as the Xeon E5-1650, but only 26% faster at Quartus, I suspect that the RAM data transport speed, which is higher for the Xeon, is also quite important for Quartus.
We would be really grateful if the ranking of the above CPUs in terms of Quartus compilation time could be clarified. For that, any specific comparison of the compilation time of one project on two current CPUs (particularly Zen-2 vs. Intel Gen-10, and dual-channel vs. quad-channel RAM) is helpful.
Many thanks in advance!
Thanks for using Intel Community,
There is no exact CPU or benchmark which are the fastest for compiling project. You can purchase any computer that had the high processor depending on your application and needs excluding the Intel HyperThreaded cores, Quartus Prime had a feature call use maximum processor allowed. You can choose up to 16 processor for the compilation.
Systems with all of the following characteristics may require additional configuration to achieve the lowest possible compilation time:
•The system has more than two processor cores (excluding Intel HyperThreaded cores)
•The system is running Microsoft Windows
•The processor cores share a level of cache. For example, Intel Core 2 Duo and Intel Core 2 Quad processors share 2nd level cache. In addition, the AMD Barcelona processor and some recent Sun UltraSPARC processors are also affected. But AMD Opteron processors (as of May 2007) do not share a level of cache.
The Quartus Prime software requires significant processor and memory resources. CPU speed is the main factor that affects with compile time performance. Consider multi-core processors and multi CPU configurations to take advantage of multi-threaded compilation. Then design partitioning and incremental compilation take full advantage of the available cores. Refer to Reducing Compilation Time in volume 2 of the Quartus II Handbook
Different computers have different parallel processing capabilities. In general, newer computers perform better than older ones. This is because they were designed more specifically for parallel processing. Some very old multiprocessor computers might show a decrease in parallel compilation performance due to very low communication bandwidth between the processors.
You may also need to refer to the kdb listed: https://www.altera.com/support/support-resources/knowledge-base/solutions/rd05082012_510.html
> There is no exact CPU or benchmark which are the fastest for compiling project.
The compilation times of the same big Quartus project on a specified Zen2 system and on a Gen10 Intel system could very well give excellent starting points for conclusions. Of course there will be slight variations depending on the FPGA design, used FPGA type, compilation parameters and so on, but they are really small. We tested different projects on our machines. There were almost no relative deviations to the given example as long as there is enough RAM, except for very small projects where the compilation time does not matter anyway. So there can very much be quite exact quantification.
> You can purchase any computer that had the high processor depending on your application and needs excluding the Intel HyperThreaded cores, Quartus Prime had a feature call use maximum processor allowed. You can choose up to 16 processor for the compilation.
So if we follow your advice, we would for example buy 8-core AMD Ryzen 7 over 2-core Intel Pentium G5400. According to https://community.intel.com/t5/Intel-Quartus-Prime-Software/Why-is-AMD-Ryzen-7-CPU-so-slow-in-Fitter... this might be a very bad advice.
> You can choose up to 16 processor for the compilation.
As I wrote, according to our findings, using 8 or 16 CPUs does make almost no difference for Quartus. Even 4 or 6 cores does not matter much. I just compiled a Quartus project on one of the Xeon E5-1650 v3 machines we intend to replace. 6 cores: 0:24:49 seconds, 4 cores: 0:25:16, 2 cores: 0:28:49, 1 core: 0:35:29. That is 40% difference between 1 and 4 cores, 23% between 1 and 2 cores, 14% between 2 and 4 cores, but only 1.8% difference between 4 and 6 cores.
> The system has more than two processor cores (excluding Intel HyperThreaded cores)
Which one of the CPUs we consider buying does not have more than two cores?...
> The system is running Microsoft Windows
We tested both Linux and Windows on several machines. No significant difference. And we use Linux exclusively since 2015 on our workstations. So why do you advice that we should use Windows?
> The processor cores share a level of cache. For example, Intel Core 2 Duo and Intel Core 2 Quad processors share 2nd level cache. In addition, the AMD Barcelona processor and some recent Sun UltraSPARC processors are also affected. But AMD Opteron processors (as of May 2007) do not share a level of cache.
I am asking about the very latest top notch hardware, and you refer to 13 year old museum pieces? Are you kidding me?
> The processor cores share a level of cache.
I showed in my first posting which ones of the CPUs have shared caches, and stated that cache architecture matters. So the question clearly is not if it does, but how much it does. With current (and not 13 year old) CPU designs.
> You may also need to refer to the kdb listed
This is one of the generic old sources I meant with "In Altera/Intel documentation I essentially only found that faster CPUs and large CPU-caches are helpful.".
> In general, newer computers perform better than older ones
You don't say...
Not all algorithms in the compiler flow are independent/parallel. Assuming you're compiling on local machine and not on a compute grid, you can try the following:
For fastest elapsed time 16 CPUs are recommended
QSF setting: set_global_assignment -name NUM_PARALLEL_PROCESSORS 16
For maximized throughput 4 CPUs are recommended
QSF setting: set_global_assignment -name NUM_PARALLEL_PROCESSORS 4
The compile time might depending on the design, so I'd also want to hear your feedback after you try the above
The topic of this thread is:
"Which CPUs are the fastest for compiling Quartus projects?".
It is not:
"How should we adjust Quartus to optimize it for our 6 year old systems?".
I am sure that we use our old systems optimally.
As I wrote, our current (all local) old workstations have 6 CPU cores each. We do not have any machines with 16 CPU cores (yet). So I can not set them to 16 CPUs, and so I can not give feedback on that.
And I honestly actually do not care in the end how many CPU cores there are in one workstation, I do not care how much cache they have and if is shared or not, or anything else. I just mentioned the data because it could affect the numbers, why each of the CPU in question has its pros and cons, and why thus I do not see from the data of the CPUs which one is best for Quartus compilation.
I have to buy new machines in the next three months that make our engineers and students wait as little time as possible for their compilation results. Of course we will find out and use the optimal compiler settings for the new machines, as we did for their current ones. All the other components (SSDs, RAM, etc...) are pretty much clear, but the CPUs are not.
I have to avoid to buy new systems just to discover anything like https://community.intel.com/t5/Intel-Quartus-Prime-Software/Why-is-AMD-Ryzen-7-CPU-so-slow-in-Fitter... .
I am sure that we are not the only ones buying new workstations for Quartus from time to time, but other readers are also interested in this topic. So it would be really helpful if anyone could actually give useful information, measured compared compilation times, real data, something to work with.
Thanks again in advance!
I've had the exact same questions - unfortunately after we bought a new AMD Ryzen 9 3900X 12-Core Processor, 3793 MHz and realized, that compilation times was about the same as on our personal laptops with quad Core intel processors. I would strongly discourage you of buying AMD Ryzen cores if it is not too late. Would be very interesting to share experience with you about this stuff, since intel support is not very helpful here
Thanks for the very first actually helpful contribution in this thread
May I know which CPUs exactly are in the laptops? Do you have the numbers of the compilation times of a same project? We could make (or start) a list with compilation-time-relations here, and as soon there are some other contributions which provide missing links, or with interpolation, finally do a ranking of current CPUs...
btw... could you try to set the number of cores in Quartus for the 3900X to lower numbers? 1, 2, 4 for example? This is because I suspect that especially this CPU could actually be quite a bit faster using less cores, because it could work in turbo mode then and does not have to go back to base frequency, which could weight more than the benefit of parallel computing. When I find some time, I will also re-test at least one of our xeon-machines with the all-cores-turbo-mode enabled in BIOS (which is actually overclocking) to get a feeling how much turbo mode contributes and how much it gets slowed down if using many or all cores lowers the CPU clock...
I intend to buy only one machine probably till end of October, just to test it in comparison to our current machines. Most likely with a Xeon W-1290P. Of course I will show the comparison to our old machines here.
First and most important: Good to finally have someone to discuss this topic with, good to know that I am not the only one to struggle choosing new HW for Quartus.
Yes I tried different settings regarding cores in charge on the Ryzen, but this didn't change the performance significantly. Also I found that turning off SMT didn't speed up things, despite quite a lot of gaming review recommended this.
We have Prozessor Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz CPU's in our Laptops, they are doing a very good job in Synth & Analyze, however fitting is not superfast.
I had the chance to switch Motherboards, so no I am no longer on the Ryzen but on a Intel(R) Core(TM) i7-9800X CPU @ 3.80GHz. This core is clearly faster for quartus, however I didn't find the perfect settings yet I guess. Interessting: The guy who is now using the Ryzen CPU tells me that he measured about 30% better performance for his matlab/jmag tasks compared to the Intel(R) Core(TM) i7-9800X CPU @ 3.80GHz. So the AMD core is not bad per se, but Quartus is not able to wake its powers.
Regarding the exact numbers, I am a bit concerned if we are allowed. Are you aware of this License passus?
2.2.6. You may not publish or disclose the results of any benchmarking or testing of the Licensed Software or use such results for Your own software development activities, without the prior written permission of Intel.
Would be good if an intel official f.e. @skyjuice would grant us this right, or at least tell us what is OK and where the red line is.
Sad to say but this is just very very poor support from intel @skyjuice @SyafieqS_Intel . More than two weeks gone without a useful suggestion. Not even a discussion. Either you are helpless overcharged, you think it is not an important topic, or you know exactly that you have a problem here but are not allowed to talk about. I suspect the last. However this is a) not helpful and b) it will not stop the rumours about intel slowing quartus down on processors other than intel! Be aware that such stories may influence early design desicions...