Synthesis/place and route with Solid-State Drives

B

Benjamin Couillard

Guest
Hi everyone

I've heard from a friend of a friend that running synthesis and
implementation with a solid-state drive can yield substantial speed
gains compared with the same process run on a machine with a regular
hard drive. Are there any FPGA designers here that have tried it? If
so, is there any truth to that statement and can you tell how much
performance has been gained?

Best regards
 
On Nov 22, 4:28 pm, Benjamin Couillard <benjamin.couill...@gmail.com>
wrote:
Hi everyone

I've heard from a friend of a friend that running synthesis and
implementation with a solid-state drive can yield substantial speed
gains compared with the same process run on a machine with a regular
hard drive. Are there any FPGA designers here that have tried it? If
so, is there any truth to that statement and can you tell how much
performance has been gained?

Best regards
I can think of only two cases that would have "substantial" speed-up:

1) Small designs where the file access is a significant portion of the
processing.

2) Large designs that surpass the physical memory of the machine
and used paged virtual memory.

For the first case, while the percentage of processing time is
substantial, the overall time is low.

In the second case, you really want more physical memory on
the machine and if possible, more cache. However if your
architecture has its maximum allowable memory already then
the SSD would probably help.

For most of my designs, the largest portion of the run time happens
with very little disk activity, so I'm not ready to run out and buy
high speed solid-state drives.

Regards,
Gabor
 
On 11/22/2010 02:05 PM, Gabor wrote:
On Nov 22, 4:28 pm, Benjamin Couillard<benjamin.couill...@gmail.com
wrote:
Hi everyone

I've heard from a friend of a friend that running synthesis and
implementation with a solid-state drive can yield substantial speed
gains compared with the same process run on a machine with a regular
hard drive. Are there any FPGA designers here that have tried it? If
so, is there any truth to that statement and can you tell how much
performance has been gained?

Best regards

I can think of only two cases that would have "substantial" speed-up:

1) Small designs where the file access is a significant portion of the
processing.

2) Large designs that surpass the physical memory of the machine
and used paged virtual memory.

For the first case, while the percentage of processing time is
substantial, the overall time is low.

In the second case, you really want more physical memory on
the machine and if possible, more cache. However if your
architecture has its maximum allowable memory already then
the SSD would probably help.

For most of my designs, the largest portion of the run time happens
with very little disk activity, so I'm not ready to run out and buy
high speed solid-state drives.
About 20 years ago someone advised me that nearly all PC's that are set
up to 'factory' specifications can be sped up for more economically with
more RAM than by going to a faster processor (and motherboard). CPU
speed is _sexy_, RAM size isn't, so a manufacturer is rewarded more for
selling you a fast CPU than adequate RAM.

20 years later, it's still true: maxing a motherboard out on RAM is
nearly always cheaper than stepping up one or two levels of CPU speed,
and nearly always gives a bigger speed boost for all of my real-world
applications than going to that faster CPU.

--

Tim Wescott
Wescott Design Services
http://www.wescottdesign.com

Do you need to implement control loops in software?
"Applied Control Theory for Embedded Systems" was written for you.
See details at http://www.wescottdesign.com/actfes/actfes.html
 
20 years later, it's still true: maxing a motherboard out on RAM is
nearly always cheaper than stepping up one or two levels of CPU speed,
and nearly always gives a bigger speed boost for all of my real-world
applications than going to that faster CPU.

Tim Wescott
I agree that maxing out on ram takes precedence over hard drive access
when optimizing real-time performance on algorithms such as FPGA
routes. In a ram-limited situation where a route has a workstation
constantly going to HDD, improving the hard drive technology first
when there are empty ram slots is akin to a golfer paying a fortune on
shoes while sticking with 30-year-old sticks. The shoes may help a
little bit, but won't have near the impact of a new set of high-tech
clubs.
John
 
20 years later, it's still true: maxing a motherboard out on RAM is
nearly always cheaper than stepping up one or two levels of CPU speed,
and nearly always gives a bigger speed boost for all of my real-world
applications than going to that faster CPU.

Tim Wescott

I agree that maxing out on ram takes precedence over hard drive access
when optimizing real-time performance on algorithms such as FPGA
routes. In a ram-limited situation where a route has a workstation
constantly going to HDD, improving the hard drive technology first
when there are empty ram slots is akin to a golfer paying a fortune on
shoes while sticking with 30-year-old sticks. The shoes may help a
little bit, but won't have near the impact of a new set of high-tech
clubs.
John
With 32-bit Windows, the maximum amount of RAM that the system can use i
no more than 4Gbyte. This PC has 3Gbyte.

Does your P&R tool run on a 64-bit OS? Can you afford the licence?


---------------------------------------
Posted through http://www.FPGARelated.com
 
On Nov 22, 5:28 pm, Benjamin Couillard <benjamin.couill...@gmail.com>
wrote:
Hi everyone

I've heard from a friend of a friend that running synthesis and
implementation with a solid-state drive can yield substantial speed
gains compared with the same process run on a machine with a regular
hard drive. Are there any FPGA designers here that have tried it? If
so, is there any truth to that statement and can you tell how much
performance has been gained?

Best regards
I ran some benchmarks on our development servers last Spring.
Assuming your machine has enough RAM, the only file I/O occurs at the
start and end of each step - all of the heavy processing is handled in
memory. If you don't have enough RAM and are constantly swapping data
to the disk, that's another story.

Xilinx's memory recommendations for the larger V-5 devices reach peaks
of over 7GB and typical use of 4.8GB on a 64-bit OS. For the largest
V-6 devices they recommend typical of 10GB with peaks of 18.7GB. With
some of the respectable sized V-5s, you should be fine with 3GB.

As part of the benchmarking exercise, I compared builds on the
following:
* Pentium 4 3.2GHz, 2MB, 800 MHz FSB, 4GB DDR2 667
* Intel Core2 Duo E6700 2.67 GHz, 4MB, 1066 MHz FSB, 4GB of DDR2 667
* Intel Xeon 5150 Dual core 2.66GHz, 4MB, 1333 MHz FSB, 6GB DDR2 667

I was seeing about 55% and 65% performance increases on the two newer
boxes compared to the P4 box.

Since the implementation tools run entirely in memory, you'll get the
best improvement by upgrading your hardware and putting in as much RAM
as you can.
 
RCIngham <robert.ingham@n_o_s_p_a_m.n_o_s_p_a_m.gmail.com> wrote:
(snip)

With 32-bit Windows, the maximum amount of RAM that the system can use is
no more than 4Gbyte. This PC has 3Gbyte.
That isn't quite right. That is the most it can use for a single
task, but if you have many other programs running then those can
also be using memory. Also, the disk cache is in there somewhere.

I believe for 32 bit windows, the most for a single task is 3GB,
plus 1GB for OS stuff. Most IA32 processors have a 36 bit physical
address, though many boards will only go up to 4GB.

Does your P&R tool run on a 64-bit OS?
Can you afford the licence?
-- glen
 
With 32-bit Windows, the maximum amount of RAM that the system can use is
no more than 4Gbyte. This PC has 3Gbyte.
For you FPGA veterans out there, remember when we used to complain
about the 640K limit on DOS? My how things have changed.
 
"RCIngham" <robert.ingham@n_o_s_p_a_m.n_o_s_p_a_m.gmail.com> writes:

Does your P&R tool run on a 64-bit OS? Can you afford the licence?
Running Altera Quartus or Xilinx ISE P&R under 64-bit Linux does not
cost any more than a 32-bit Windows license?

Or are you thinking of the free downloadable version vs. the full
version of the tools? The free tools only support the low end devices
where you probably don't need the extra memory, at least for now...

Petter
--
..sig removed by request.
 
With 32-bit Windows, the maximum amount of RAM that the system can use is
no more than 4Gbyte. This PC has 3Gbyte.

Does your P&R tool run on a 64-bit OS? Can you afford the licence?
A great way to test your ram limits, as I found out, is to run Xilinx'
SmartXplorer. It will run on as many processor cores as you specify,
in parallel, and run through several iterations of map and par
strategies, all the while collecting the statistics and timing scores
so that you can select the best for a particular design (it may even
stop when it reaches TS=0 if you tell it).

With my i7 cpu running at 2.67G with 9G ram on a V5 SX240T design, I
configured SmartXplorer to use 4 cores, since that's what my CPU has.
Right away, it starts mapping four different strategies at the same
time. As it "loads" the design into ram, I can see my ram utilization
start creeping ever so high before it starts pushing the very limits,
although the CPU usage wasn't nearly as taxing. I'm closing
applications to make room, but I realize from all the "noise" I hear
from my workstation hard drive activity (I think the term is
'thrashing') that I either (a) need more ram, or (b) need to specify
less cores. Realizing that it could take days to complete if I let it
continue to be encumbered by hard drive accesses, I re-started
SmartXplorer with two cores, and it hummed along quietly, finishing up
in several hours (not days). In my search for a memory upgrade, I
realize that this particular system is limited to 16G ram because of
the OS (Windows 7 Home Premium 64-bit). From what kkoorndyk stated
about Xilinx recommendations, I'm going to need an OS upgrade if I
want to handle semi-packed V6 designs completely in ram. Sigh.

John
 
jc <jcappello@optimal-design.com> writes:

A great way to test your ram limits, as I found out, is to run Xilinx'
SmartXplorer. It will run on as many processor cores as you specify,
I did run something which was an earlier version of SmartXplorer on
Solaris probably 10 years ago. In addition to running P&R's on a
multicore CPU you could also run on multiple hosts (actually to run on
multicore you specified the machine name multiple times using
different casing). I ran the tool mostly across multiple machines as
it scaled better in terms of memory cost. It was much cheaper to fit a
set of smaller machines with a smaller amount of memory than to
upgrade the big servers.

I haven't used SmartXplorer so I don't know if you can run on multiple
hosts.

in several hours (not days). In my search for a memory upgrade, I
realize that this particular system is limited to 16G ram because of
the OS (Windows 7 Home Premium 64-bit). From what kkoorndyk stated
According to
http://www.xilinx.com/ise/ossupport/index.htm
Windows 7 will not be fully supported until ISE 13.

about Xilinx recommendations, I'm going to need an OS upgrade if I
want to handle semi-packed V6 designs completely in ram. Sigh.
Upgrade to Linux...

Petter
--
..sig removed by request.
 
On Nov 24, 8:40 am, jc <jcappe...@optimal-design.com> wrote:
With 32-bit Windows, the maximum amount of RAM that the system can use is
no more than 4Gbyte. This PC has 3Gbyte.

Does your P&R tool run on a 64-bit OS? Can you afford the licence?

A great way to test your ram limits, as I found out, is to run Xilinx'
SmartXplorer. It will run on as many processor cores as you specify,
in parallel, and run through several iterations of map and par
strategies, all the while collecting the statistics and timing scores
so that you can select the best for a particular design (it may even
stop when it reaches TS=0 if you tell it).

With my i7 cpu running at 2.67G with 9G ram on a V5 SX240T design, I
configured SmartXplorer to use 4 cores, since that's what my CPU has.
Right away, it starts mapping four different strategies at the same
time. As it "loads" the design into ram, I can see my ram utilization
start creeping ever so high before it starts pushing the very limits,
although the CPU usage wasn't nearly as taxing. I'm closing
applications to make room, but I realize from all the "noise" I hear
from my workstation hard drive activity (I think the term is
'thrashing') that I either (a) need more ram, or (b) need to specify
less cores. Realizing that it could take days to complete if I let it
continue to be encumbered by hard drive accesses, I re-started
SmartXplorer with two cores, and it hummed along quietly, finishing up
in several hours (not days). In my search for a memory upgrade, I
realize that this particular system is limited to 16G ram because of
the OS (Windows 7 Home Premium 64-bit). From what kkoorndyk stated
about Xilinx recommendations, I'm going to need an OS upgrade if I
want to handle semi-packed V6 designs completely in ram. Sigh.

John
Check out the Xilinx site for their recommendations on system specs:

http://www.xilinx.com/ise/products/memory.htm

http://www.xilinx.com/ise/ossupport/index.htm

Note the memory requirements for the SX240T device: 3.7GB typical,
5.5GB peak --> times 4 when running smartXplorer using all 4 cores 15-20GB! That's likely why you heard so much crunching from the HDD.
 
Thanks everyone for your answers

Looks like Linux and more ram is the best way to go...
 
On 24 nov, 10:40, Petter Gustad <newsmailco...@gustad.com> wrote:
jc <jcappe...@optimal-design.com> writes:
A great way to test your ram limits, as I found out, is to run Xilinx'
SmartXplorer. It will run on as many processor cores as you specify,

I did run something which was an earlier version of SmartXplorer on
Solaris probably 10 years ago. In addition to running P&R's on a
multicore CPU you could also run on multiple hosts (actually to run on
multicore you specified the machine name multiple times using
different casing). I ran the tool mostly across multiple machines as
it scaled better in terms of memory cost. It was much cheaper to fit a
set of smaller machines with a smaller amount of memory than to
upgrade the big servers.

I haven't used SmartXplorer so I don't know if you can run on multiple
hosts.

in several hours (not days). In my search for a memory upgrade, I
realize that this particular system is limited to 16G ram because of
the OS (Windows 7 Home Premium 64-bit). From what kkoorndyk stated

According tohttp://www.xilinx.com/ise/ossupport/index.htm
Windows 7 will not be fully supported until ISE 13.

about Xilinx recommendations, I'm going to need an OS upgrade if I
want to handle semi-packed V6 designs completely in ram. Sigh.

Upgrade to Linux...

Petter
--
.sig removed by request.
Do you have a suggestion for Linux? For example, can we use Ubuntu or
should we stick with the "Xilinx-approved" linux flavors?
 
Benjamin Couillard <benjamin.couillard@gmail.com> writes:

Do you have a suggestion for Linux? For example, can we use Ubuntu or
should we stick with the "Xilinx-approved" linux flavors?
I would suggest that you use the Xilinx approved ones. However, I've
used mostly Gentoo Linux with both Altera and Xilinx (as well as with
lots of Synopsys software), which have worked quite well. There has
been times where I've hacked some of the scripts which tries to detect
the platform type, mostly it's the installation software which have
caused problems.

I tend to use a script based flow. I only use the GUI occasionally,
hence my usage might be somewhat "nicer" than the typical Windows
user.

But I always keep a Red Hat installation in VirtualBox so that I can
verify any problems before I report them and then say "yes" if I'm
asked if I'm on a supported operating system.

Petter
--
..sig removed by request.
 
Upgrade to Linux...

Petter
You won't find me defending windows for its lack of robustness (among
other nuisances), and I understand the impact Linux has had on EDA and
general development environments, but I did notice from the links
kkoorndyk provided that Xilinx' memory recommendations are identical
for Windows and Linux, at least for Virtex-5...
John
 
jc <jcappello@optimal-design.com> writes:

Upgrade to Linux...

Petter


You won't find me defending windows for its lack of robustness (among
other nuisances), and I understand the impact Linux has had on EDA and
general development environments, but I did notice from the links
kkoorndyk provided that Xilinx' memory recommendations are identical
for Windows and Linux, at least for Virtex-5...
John
My comment was out of context. I was thinking about some earlier
message which indicated that it was a cost related to upgrading to
large memory support on the Windows platform. Here Linux would help. I
did not mean that Xilinx SW on Linux requires any less memory than on
Windows.

Petter
--
..sig removed by request.
 
On 24/11/2010 22:22, Petter Gustad wrote:
Benjamin Couillard<benjamin.couillard@gmail.com> writes:

Do you have a suggestion for Linux? For example, can we use Ubuntu or
should we stick with the "Xilinx-approved" linux flavors?
I have no experience with fpga design in Linux, but if Xilinx approves
Red Hat, then Fedora, Centos or Scientific Linux would alternatives that
are pretty close to Red Hat enterprise versions.

I'd avoid SUSE at the moment, even if it's approved by Xilinx - it's
future is somewhat insecure.


I would suggest that you use the Xilinx approved ones. However, I've
used mostly Gentoo Linux with both Altera and Xilinx (as well as with
lots of Synopsys software), which have worked quite well. There has
been times where I've hacked some of the scripts which tries to detect
the platform type, mostly it's the installation software which have
caused problems.

I tend to use a script based flow. I only use the GUI occasionally,
hence my usage might be somewhat "nicer" than the typical Windows
user.

But I always keep a Red Hat installation in VirtualBox so that I can
verify any problems before I report them and then say "yes" if I'm
asked if I'm on a supported operating system.

Petter
 
On Thu, 25 Nov 2010 16:35:12 +0100, David Brown
<david@westcontrol.removethisbit.com> wrote:

On 24/11/2010 22:22, Petter Gustad wrote:
Benjamin Couillard<benjamin.couillard@gmail.com> writes:

Do you have a suggestion for Linux? For example, can we use Ubuntu or
should we stick with the "Xilinx-approved" linux flavors?


I have no experience with fpga design in Linux, but if Xilinx approves
Red Hat, then Fedora, Centos or Scientific Linux would alternatives that
are pretty close to Red Hat enterprise versions.
Centos is as similar to Redhat Enterprise as possible without calling
it as such. The only difference is the logos and text which refer to
Redhat.
--
Muzaffer Kal

DSPIA INC.
ASIC/FPGA Design Services

http://www.dspia.com
 
On Nov 25, 9:40 am, Petter Gustad <newsmailco...@gustad.com> wrote:
jc <jcappe...@optimal-design.com> writes:
Upgrade to Linux...

Petter

You won't find me defending windows for its lack of robustness (among
other nuisances), and I understand the impact Linux has had on EDA and
general development environments, but I did notice from the links
kkoorndyk provided that Xilinx' memory recommendations are identical
for Windows and Linux, at least for Virtex-5...
John

My comment was out of context. I was thinking about some earlier
message which indicated that it was a cost related to upgrading to
large memory support on the Windows platform. Here Linux would help. I
did not mean that Xilinx SW on Linux requires any less memory than on
Windows.

Petter
--
.sig removed by request.
It's times like this that make me think about "changing my stripes"...
John
 

Welcome to EDABoard.com

Sponsor

Back
Top