06-05-2017 06:27 PM
I am thinking about building a workstation and was wondering if people have advice on choosing parts. I have read all other posts I could find about which processor would be best but am still unsure. I have seen a few times people saying that the most important qualities would be L2/3 cache size, processor speed, and memory size/bandwidth in that order. With that in mind, the best options seem like:
1. Intel i7-7700K
2. AMD Ryzen
3. AMD Opteron Abu Dhabi
Intel has the fastest single core speeds. There seems to be little debate about that, and it would probably work well. However, both AMD processors have larger L2/3 caches and (I think) potentially faster memory (it looks like people can easily overclock to 3200). Between the AMD processors, Ryzen is faster but Opteron has more L2/3 cache. Even though the extra cores on the AMD processors will probably not be fully utilized by Vivado, I would think it could still be comparable or even faster because of the larger caches. The extra cores would also be nice to run MATLAB / other programs while waiting for Vivado to compile.
Other things to consider: I'm planning on installing 32GB of RAM, and would like to use a micro-ATX form factor if possible (this may preclude overclocking)
06-05-2017 06:44 PM - edited 06-05-2017 06:47 PM
I almost agree your opinion.
But I recommend to buy a lot of memories, if possible and to use Linux OS to develop FPGA design.
In our team, our servers have 192GB/144GB memories.
Also these servers work on CentOS in order to reduce disk access.
If server has enough free memory, synthesis and implement is worked on memory. No disk access.
It's helpful to reduce runtime.
- Consider L2/L3 cache size
- Memory size/bandwidth <- Key point. Memory is important, if processor speed is one grade down.
- Processor speed
- Use Linux OS <- Key point. Linux OS use memory as file cache to reduce IO access. I think Linux OS is better than Windows OS, in this point. (reduce disk IO access. in my experience.)
06-05-2017 08:47 PM
This page on 'FPGA Memory Recommendations Using the Vivado Design Suite' might be useful for memory considerations: https://www.xilinx.com/products/design-tools/vivado/memory.html
Please mark the post as an answer "Accept as solution" in case it helps to resolve your query.
Helpful answer -> Give Kudos
06-05-2017 10:48 PM
Quite frankly, I would just open an Amazon AWS account, create a EBS 100G folder, install your tools there and when you need to run some heavy load, request a monster box say c4.8xlarge (36 CPUs, 60G RAM), pick an AMI with a supported O/S (Canonical Ubuntu Linux 16.04.1 LTS: 64-bit) and go ahead paying just 0.40/hour. The price you'd pay on a desktop for such development is about $2,000 (minimum). This is equivalent to 5,000 hours of this machine - or 2.85 equivalent years of work.
06-06-2017 03:45 AM
In order do 1+2 together:
1. Fastest bus a motherboard offers
2. SSD Drives (Get 2 if you can - one for program 1 for data) - (turn off windows caching when installed)
That is the biggest speed improvement you'll get.
3. A decent CPU - no mysteries there - but don't waste your time with "overclocking".
4. Look at the link someone gave above for memory requirement
5. Never - ever - ever - ever ever develop hardware on a machine connected in any way to the internet.
I'm not very Vivado experienced but yours is a computer question not an fpga one - the issues are universal.
06-06-2017 08:30 AM - edited 06-06-2017 08:35 AM
@ubenevides How does licensing for Vivado work in that situation? Do you have to buy a license just for the AWS instance, or is it easy to set it up to borrow a floating license?
@john321 I'm curious about why the computer can't be connected to the internet. I've never noticed any difference, apart from the few seconds it takes for WebPack to do its data reporting. Why should hardware synthesis/implementation be any different to software compilation in this respect?
@jacobfeder The only particular advice I've heard regarding the CPU was that the Core i7 5775C (with its 128MB L4 cache, at least when the on-chip GPU is disabled) does very well. Might be worth a look.
06-06-2017 08:39 AM
@u4223374 I have a .Xilinx folder full of .lic and .xml files in my home folder. I believe it is easy enough to go to the license website and move your license to that host (you can provide your interface MAC address).
If you just want to test there and dont' want to mess with your current license, I believe you can get a 30 day trial of the full Vivado and copy it there.
I would recommend setting up an AMI, update and install the necessary packages for Xilinx and then save it as your own AMI. This way you will not have to make the full update/install process every time. However saving the update commands (apt-get etc) in a .sh file and running it every time would not take more than a couple minutes though and it will save you the EBS storage cost of an AMI (which is ridiculous anyway).
I have also to mention that Amazon has the F1 instances with Ultrascale+ FPGAs and Vivado comes installed on their AMI free of charge (but locked to that device).
06-06-2017 08:49 AM
1. not having bought more memory. I think 32 Gb is the minimal for Vivado.
2. not having spent a little more on a 5830 - it's 12 more PCI-e lanes that come very handy when dealing with PCI-e devices.
3. not having bought a NVME drive sooner. These things are 3x faster than SSDs (mine is clocking 2,000 MB/s).
Re: overclocking - I water-cool ($100 Corsair Hydro) my 5820 and I can get it from 3.1 GHz up to 4.4 GHz with just the auto specs. This translates directly/proportional to speed - a whooping 50% increase. Can't ignore that.
Re: OS. I am using windows because fox Linux. I've heard so much the "Oh your release/version is not supported" that I got Windows. My only regret with windows is that Vivado still does not support remote launches (Appendix "A" on Vivado Implementation manual UG904).
06-06-2017 10:22 AM
@jacobfeder if you decide to build on your own, I strongly recommend to use PC Part Picker.
They not only have a compatibility screening (you will never buy a motherboard that does not fit your processor) but also will show the best prices and historical prices for your parts.
06-06-2017 12:40 PM
06-06-2017 06:13 PM
Thanks all this has been very helpful.
@ubenevides I think AWS is an interesting solution that I would be willing to try out—have you done it before or know of a resources? My 1st concern is that the systems I'm working on interface with external analog circuits so they need to be run and debugged on the actual hardware. If everything is stored on AWS would you be able to do that? I would think you would have to download all the files post-compilation.
@watari @ubenevides can you explain more about the huge amounts of RAM? Based on what @prathikm posted you shouldn't need more than 16GB for most designs. The largest amounted it quoted was 50GB. I'm working on small Zynq-7 devices—it is only quoting around 2GB for those. Would you still recommend lots of RAM (>16GB)? Based on what @john321 and others have said (john specifically about SSD drives) it seems like the main consideration is caching. E.g. how to get memory to the CPUs as fast as possible. This makes a lot of sense. It explains the suggestion to get a large L2/3 cache. It also explains why using absurd amounts of RAM is useful. If you are essentially storing all of vivado and your current project in RAM it will be much quicker than fetching that info from HDs. This also explains why people are saying Linux is faster, since Linux tends to be better at caching frequently accessed data in RAM. I bet you could achieve similar results in windows by using a large RAMdisk for your project. It also explains what @u4223374 said about the i7 5775C since it has the special L4 cache.
06-06-2017 06:58 PM
First of all, my opinion is based on my experience and working under server.
Some people discussed about this issue under Core i7/i5 and Ryzen and focus "Synthesis & Implementation" on Vivado. (Maybe on Windows OS.) Also, these mother boards support under 64GB. Because of these are for workstation PC.
Also, as you know, Linux OS positively wastes free memory as file cache to reduce disk access.
It is helpful to reduce disk IO access.
- About RAM
As I know, Vivado wastes huge amount of RAM to expand design data on memory and Xilinx shows recommendation RAM size.
If you use only small Zynq-7 devices by Vivado, not HLS not petalinux, I recommend to prepare 16GB RAM size and use Linux OS, ex. CentOS.
It means that nobody need more over recommendation RAM size, if you only use Vivado tool.
Because of vivado expands design to RAM to reduce disk access as far as possible. not perfect.
Also, if you use many CPU core to do "synthesis and implementation" by Vivado, I recommend to prepare 32GB memory.
Because of each CPU core wastes memory to find best or better way to grantee constraints.
- About SSD
Yes. SSD is better solution to reduce disk access time than HDD. not reduce disk access. not RAM.
- About CPU
It's difficult to explain more deeply details by English.
It is related to CPU cost, L2/L3 cache size and what you want to do.
- About RAMDisk
Yes. Recently Windows OS improves an algorithm to reduce disk access. Especially Windows 10.
But I don't have enough experience to use Windows 10. So I can not judge it.
However I think that Linux OS is still better that Windows OS about file cache system. Especially under huge RAM.
Because of I use Linux/Unix over 25years... Windows is about 22 years...
- Recommend to prepare 16GB and use Linux OS, if your device is small-Zynq and you use only Vivado with one or two core by job.
- Recommend to prepare 32GB and use Linux OS, if your device is small-Zynq and you use only Vivado with over four core by job.
- Recommend to prepare over 32GB and use Linux OS, if your device is large-Zynq, you use other tools (HLS, XSDK, SDx and petalinux).
- Other, I agree your opinions. (include others)
Hope that help !
06-07-2017 03:35 AM
[QUOTE]@john321 I'm curious about why the computer can't be connected to the internet. I've never noticed any difference, apart from the few seconds it takes for WebPack to do its data reporting. Why should hardware synthesis/implementation be any different to software compilation in this respect?[/QUOTE]
No difference -its just this is a hardware forum so I put it that way. Both should warrant prison sentences IMO.
(Think security - there isn't any on the internet and there never will be. What is your hardware going to be used for? ... OK and software? )
SSD is the fastest you can get on any existing motherboard until we can unlock the bus - even those are being crippled and current designs od SSD could run an order of magnitude faster if the bus could do it. (Designers are working on it - I don't know if anything has been manufactured yet)
Linux v Windows - I'm no microsoft fan (I'll never use an MS operating system after windows-7 - I consider it plain dumb to do so - again - think security) however I see no benefit at all in using linux for Vivado - unless a Vivado designer can provide some. (I'm using Centos to write this - and use Centos 6 as the server on my web site so I've nothing against it - but it isn't suitable for this sort of work IMO) - If I did use linux I wouldn't choose Centos - the whole point of Centos is to keep it stable over time as a server base OS. Being responsive as a windowing GUI is not part of it's conceptualisation. I'm sure you can use it just fine but I wouldn't choose it.
06-07-2017 02:14 PM
We wrote this post for you :) Actually we did it for our internal reference as we do this a lot.
Setting up Vivado in an Amazon EC2 instance - Part 1
Setting up Vivado in an Amazon EC2 instance - Part 2
There is a part 3 coming but that is just installing Xilinx which is pretty much trivial to everyone.
The advantage of having everything in the cloud is that I can instantly upgrade to a monster box with 64 cpus without breaking a sweat and just pay $10 for it :)
That said, you might setup a $100 barebones machine with just the hardware manager, connect your card to it and then remotely connect from the cloud. I have actually never done that but I know it is possible.
06-07-2017 02:35 PM
@ubenevides Have you tried running the same design with different box sizes? Would be really interesting to see how the compilation time varies with number of CPUs and system memory.
I will give this a try.
06-08-2017 06:17 PM
06-08-2017 06:50 PM
@jacobfeder The Linux box is on AWS. The windows box is local.
BTW check out we have two other posts on how to fix the HOSTID so the license manager can work in the cloud.
And how to program your local FPGA card (eg office) from Vivado running in the cloud and how to spawn SDK processes remotely from the cloud into your local card too.
06-08-2017 07:10 PM
@ubenevides I ended up ordering the parts for the PC b/c I need to get up and running right away—AWS is very neat though. I played around with it a bit yesterday. I will give it a try with vivado later. Thanks for these videos.
06-08-2017 07:15 PM
@john321 SSDs you mean M2 etc, right? Because normal SSDs under SATA6 max out at 600 Mbps.
NVMEs like the Intel 750 or Samsung 960 EVO run at +2 Gbps easily.
06-09-2017 03:16 AM
09-01-2017 03:39 PM
Anyone got any Vivado experience / numbers on high core count AMD Ryzen CPUs ?
Time for me to upgrade from my i5-4790k.
The biggest speed improvement was when I went to dual channel on the RAM
with the dual channel capable CPU/motherboard I went from 2 x 16GB to 4 x 8GB for 13% build time reduction...
memory /database must be a issue so the I7-7800X with its 1MB L2 per core seems to provide the best benefit on paper.
10-04-2017 11:29 AM
What setup did you go for?
I'm interested to know what people's experience is with Vivado and AMD (Ryzen 9) vs Intel.
10-04-2017 03:58 PM
I'm waiting to start a new FPGA project, boards will be back next week so I have a week to get it going.
Clocks, performance per clock and cache are king for Vivado , so actually after reading all the processor blurb from AMD and intel, I will go intel. The appearance of Coffee Lake 8700K made this choice easier, other wise I would have got a 7820X, 7900X.
Vivado is for the most part single threaded. My view is if you care about time is money and have decent size FPGA projects, then you wont even blink with spending the extra money on the top tier Intel machine that will run 4.7GHz in turbo single core to get those Vivado reports out etc.. I only have one main desk machine, so it does all. Actually sometimes Vivado hogging the machine is a good thing- a good excuse to go outside and look at the sky and have a cup of coffee...
If you are a student, then the AMD will I am sure be the best bang for the buck.
What I look forward to is having some cores and resources left over so I can still run ModelSIM simulation which running Vivado compile....without it slowing to a crawl.. However, the chip CACHE will now have competition from Modelsim, so it is still a big slowdown.
I will get a Ryzen box nevertheless and run some benchmarks for vivado on it and post anyway, in the next couple of weeks.
I want to know just how Vivado's code (java) runs on it....
10-06-2017 09:18 AM
We put together a machine with an AMD Ryzen Threadripper 1920X, 64 GB ram, SSD, etc.
We compared our 1-2 year old machine (i7-something) with the same project and the new (AMD) machine was around 15% slower to compile the project.
On the paper it should be faster (higher CPU freq, faster DDR etc.), so we wonder if there might be a settings or something that causes it not use the AMD to the fullest.
Maybe the latest Vivado will be more optimized for AMD?
11-04-2017 03:43 AM - edited 11-04-2017 07:01 PM
did some work on the problem today with a Zen (Ryzen system)
It's all Java, I think. I got about -10% for same clock (4GHz). ( 8 threads, R7-1700)
However the PC stayed 'free' enough to run PCB and Modelsim while running a XIlinx build..
compared to being unusable...
EDIT: Conclusion. If you want the fastest build machine, buy a i7 7820X.
Serious FPGA people wont care about the build machine cost. Budget conscious - the Ryzen CPU does a great job.
Due to my ideological beliefs, and that my smallish (XC7K70T) FPGA builds take about 10 minutes, I will probably stick with Haswell box until the Ryzen 12nm refresh in 1Q18, should be good for 10%+ on my R1700 machine. Use it as a 2nd build box for the moment.