Jul 20, 2009 - Page 9 .... Desktop, laptop? »How big are your models? â Models tend to grow in complexity over time.
Optimizing Your Workstation for SolidWorks Allen Bourgoyne, Sr. Manager, Professional Graphics ISV Team Advanced Micro Devices
Agenda
•
Introduction
•
Performance Analysis & Tuning: Science and Art
•
Analyzing & Improving Performance
•
Software Considerations
•
Q&A
Introduction
Introduction Who am I? What will we cover today? •
Understand some basic performance analysis and tuning techniques » Explore
•
the benefits and limits of these techniques
Exploration of workstation component performance » How
to determine performance
» How
to identify performance issues and improve performance
» Benchmark
examples
•
Software considerations
•
Questions? » Welcome
at any time!
Performance Analysis & Tuning: Science and Art
Performance Analysis &Tuning: Science and Art Performance Analysis: Science •
Involves systematic and methodical techniques for obtaining precise performance information
•
Techniques include: » Instrumented
system software and/or hardware
– software profiling, hardware counters » Defining » Formal
Workloads
Benchmark tests
– SPEC, industry standard » Informal
Benchmark tests
– in-house, QA, “I made it up” » Empirical
tests
– stopwatch, head-to-head, 1-Mississippi, etc. » Data
Analysis
– statistical significance, variance, repeatability
Hard data helps pinpoint problem areas and validate solutions •
Usually takes a lot of work!
Performance Analysis &Tuning: Science and Art Performance Analysis: Art “The Art of Computer Systems Performance Analysis: Techniques for Experimental Design, Measurement, Simulation, and Modeling”1
•
•
Testing methods, techniques, technologies will change over time (the science)
•
Analysis of the data, numerical and statistical analysis will be the key to understanding performance, the art of the analysis
•
Science is the “how” » how
•
do I measure?
Art is the “what” » what
1 R.
did I measure?
Jain, "The Art of Computer Systems Performance Analysis: Techniques for Experimental Design, Measurement, Simulation, and Modeling," Wiley- Interscience, New York, NY, April 1991, ISBN:0471503361.
Performance Analysis &Tuning: Science and Art Two important points
•
Know your limits » Be
•
realistic about what’s possible
Diminishing returns » Know
•
when enough is enough
No matter how much you analyze and tune, there are limits to what you can achieve » Hardware » There
and software have definite performance limits
will always be newer, faster hardware & software
Analyzing & Improving Performance
Analyzing & Improving Component Performance - CPU Modern CPU:
I/O Cores
Memory Controller
Cache
Host Memory
Analyzing & Improving Component Performance - CPU Modern CPUs offer better performance than ever before •
Multiple cores on a single CPU provide larger amounts of compute power in the same size package
•
CPU frequencies are still going up » Though
frequencies are going up, still hard to compare different CPUs clock vs clock – Architectures can vary between CPUs – Cache sizes, bus speeds
•
Multiple cores are becoming the standard » Most » Quad
computers offering at least dual-core CPUs core becoming common
Analyzing & Improving Component Performance - CPU How does CPU performance affect application performance? •
Benchmark example: » SPEC
APC SolidWorks 2007
– Standards Performance Evaluations Committee (SPEC) provides industry standard benchmarks – Graphics Workstation Performance Group (GWPG) Committee focuses on workstation specific graphics benchmarks – Committee members include system OEM vendors, graphics hardware vendors, and application software vendors
Analyzing & Improving Component Performance - CPU SPEC APC SolidWorks 2007 •
Test machine: 3.0GHz Quad Core, 4GB memory, XP32 » Vary
graphics from low to ultra high end to gauge graphics performance
4.45 4.35 4.25 4.15 4.05 3.95 3.85 3.75
Graphics Composite
Entry
Mid
High
Ultra High What Happened?
Analyzing & Improving Component Performance - CPU SPEC APC SolidWorks 2007 – Analyzing the results •
No improvement in the Graphics Composite score with faster, more powerful graphics
•
Suspect benchmark is CPU limited » Test
and/or application cannot feed graphics fast enough to drive higher levels of performance
» Not
necessarily indicative of SolidWorks 2007, could be a limitation of the benchmark itself
•
How do we determine the bottleneck here for sure? » Run
more tests!
Analyzing & Improving Component Performance - CPU SPEC APC SolidWorks 2007 – CPU tests: Vary CPU Speed
3.2 3.1 3 2.9 2.8 2.7 2.6 2.5 2.4 2.3
CPU score
2.53 GHz
2.93 GHz
3.0GHz
3.0GHz 6MB
Analyzing & Improving Component Performance - CPU SPEC APC SolidWorks 2007 – What did we learn? •
No improvement in the Graphics Composite score with faster, more powerful graphics
•
Faster CPU gave better CPU score » Validated
•
We also saw that not all 3.0GHz CPUs are created equal! » The
•
that test is CPU limited, need a faster CPU to get a better score
6MB cache 3.0GHz CPU was 8% faster
The graphics composites moved up along with the CPU scores » Faster
CPUs fed the graphics cards at a higher rate
Analyzing & Improving Component Performance - CPU Important note about benchmarks: •
Benchmarks only measure what they are designed to measure
•
Sometimes the results don’t accurately reflect what the benchmark was originally designed to measure » SPEC
APC Viewperf 2007 was intended to measure graphics workstation performance
•
Benchmarks might not age well » SPEC
APC Viewperf 2007 was released in 2006 (work on the benchmark in 2005) – graphics power has increased significantly since then with introduction of unified shader architectures
•
You need to collect and analyze the data carefully » If
you only ran SPEC APC Viewperf 2007 on a single high-end card, you might not notice the CPU limited nature of the benchmark
•
SPEC is working with SolidWorks on a SolidWorks 2009 benchmark
Analyzing & Improving Component Performance - CPU SolidWorks and multi-core CPUs •
Will a multi-core CPU run SolidWorks faster? » Yes
•
and No…
SolidWorks is multi-threaded » But
the threading is at a high level, UI, dialog boxes, etc.
» The
low-level solvers and other compute intensive portions of code do not take full advantage of multiple CPU cores
•
Lets take a look a the CPU testing results again…
Analyzing & Improving Component Performance - CPU SPEC APC SolidWorks 2007 – CPU tests: Vary CPU Speed
3.2 3.1 3 2.9 2.8 2.7 2.6 2.5 2.4 2.3
CPU score
In this instance, 2 more cores didn’t help! 2.53 GHz
2.93 GHz
Quad Core CPU
3.0GHz
3.0GHz 6MB Dual Core CPU
Analyzing & Improving Component Performance - CPU SolidWorks and multi-core CPUs •
Multiple cores may not help SolidWorks directly, but there still could be benefits » Multiple
cores provide benefits not only to multi threaded applications, but they provide benefits to multi process environments
» Most
workstations run many processes, each need to be given time on the
CPU » Overall
•
system workload will determine overall system performance
If you can run SolidWorks and nothing else on your workstation, you have the potential to get the most performance out of your CPU!
Analyzing & Improving Component Performance - CPU How busy is my workstation? •
Use the Windows Task Manager to see what’s going on »
Right click on the Task Bar to bring it up
Analyzing & Improving Component Performance - CPU
Task Manager sorted by CPU usage
CPU hogs!
Analyzing & Improving Component Performance - CPU
Task Manager sorted by memory usage
Memory Hogs!
Analyzing & Improving Component Performance - CPU Do some “spring cleaning”! •
Use Task Manager to identify processes that don’t need to be running » Many
utilities, such as CD/DVD burning software, browser toolbars, etc., start themselves up at system boot time – Use msconfig utility
» You
can pretty much identify any running process with an internet search – If you don’t know what it is, leave it alone
» Do
you really need the iPod binaries running all the time (iPodService.exe and iTuneshelper.exe)?
Analyzing & Improving Component Performance - CPU Do some “spring cleaning”! •
Remove applications that you don’t need that initiate services at startup » Most
OEMs include a lot of “freeware” or “try ware”
» In
some cases, even though the free trial period has expired, the software still starts up services!
•
For some reason, laptops seem to have more trial software/services than workstations » They
usually have less powerful CPUs, less memory, and slower system buses
» Removing
unnecessary processes will pay off in better performance!
Analyzing & Improving Component Performance - CPU One last thing about CPUs… •
Remember how the dual core 3GHz CPU was faster than the quad core 3GHz CPU?
3.2 3.1 3 2.9 2.8 2.7 2.6 2.5 2.4 2.3
CPU score
2.53 GHz
2.93 GHz
Quad Core CPU
3.0GHz
3.0GHz 6MB Dual Core CPU
Analyzing & Improving Component Performance - CPU The 2nd 3GHz CPU had a 6MB cache ( vs 4MB ) •
Not all 3GHz CPUs are created equal
•
The larger CPU cache enables the CPU to store more data local to the CPU, it’s faster to get data from cache than it is to get it from system memory » The
SPEC SolidWorks 2007 Benchmark uses fairly small models, good chance a lot of the data fit into the 6MB cache accounting for the performance difference
» You
can use CPU analyzer tools to get a view into the CPU cache, but that’s going pretty far…
•
When considering a CPU purchase, you have to consider overall CPU performance, not just GHz! » Web
is a good place to find latest CPU performance benchmark data
Graphics
SolidWorks and Graphics SolidWorks is a graphics intensive application •
The larger and more complex the model, the greater the demands on the graphics card
•
Interacting with a model, such as part selection, can require the graphics card to analyze a large amount of data in a very short period of time
SolidWorks and Graphics Application graphics performance includes 1 more factor:
GPU
SolidWorks Graphics Driver Software
SolidWorks and Graphics What kind of graphics card do I need? •
That depends: » What
kind of system do you have?
– Desktop, laptop? » How
big are your models?
– Models tend to grow in complexity over time » What
features of SolidWorks do you use?
– RealView can use more graphics power » Do
you run other applications other than SolidWorks?
– Each application puts demands on the system, including graphics
SolidWorks and Graphics Is my current graphics card good enough? •
If system performance has degraded over time or seem sluggish, you have to investigate » Might » How
•
be graphics, but might be something else
do I know?
Task Manager can help: » Shows
CPU usage
– Is it at 100%? » Shows
memory usage:
– Out of physical memory? » It
memory or CPU resources exhausted,
need to address these first
SolidWorks and Graphics The size of the graphics workload will determine overall graphics performance How do I determine the size of the SolidWorks graphics workload? »
AMD provides some tools that can help! – Graphics Memory viewer tool – SolidWorks triangle count macros
SolidWorks and Graphics ATI Memory Viewer • Shows GPU/CPU memory usage in real time
Models
• Available for download at: http://ati.amd.com/products/workstation.html “Tools” option on the left
Memory Consumption
AMD Model Samples
GPU
CPU
# Triangles
GPU (Mb)
Piston
12 672
2
Block
23 840
2
Engine
141 368
6
Body Front
476 456
18
AllCAR
528 384
24
Scoot_1mp
879 502
40
CAR
1 328 667
36
CAR0
2 149 949
59
Holland
2 319 945
64
Holland_3mp
2 319 945
52
Driveline
2 806 989
149
CAR2
3 172 019
156
Body Simp
3 398 235
150
M3000
5 170 052
168
BW_7mp
6 718 008
287
Cars_14mp
13 501 702
662
BigMV
20 485 332
692
M_23mp
22 388 454
995
SolidWorks and Graphics SolidWorks Triangle Count Macros • Gives count of triangles in your current part/model or any part/model file • Available for download later this week at: http://ati.amd.com/products/workstation.html “Tools” option on the left
• • •
TrianglesCount.swp for currently open part/model TrianglesCountWithOpen.swp for any part/model file Tools->Macros->Run to execute
SolidWorks and Graphics How do I configure the graphics card for best performance? •
If you have a fairly recent card and driver software… » It’s
easy!
» ATI
FireGL™/FirePro™ cards automatically configure graphics hardware & software when you start an application – FireGL™ cards have been able to do this for over 3 years
» Competing
cards enable you to select a graphics profile for SolidWorks to configure graphics
SolidWorks and Graphics CPU performance looks good, running latest software, what do I do next? •
Examine your workflow » What
is the size and complexity of your models
» What
features of SolidWorks do you use?
– RealView, others, can put additional demands on graphics » Do
you run other applications?
» Are
•
you the only user of this system?
Do I have the right card for the job?
SolidWorks and Graphics Graphics cards are broken down into 4 segments: •
•
Entry level ( $100-$300) » 256MB
of memory
» Smaller
models / assemblies, polygon count in the hundreds of thousands
Mid-Range ($400 - $600) » 512MB
of memory
» Medium
•
High-End ($600 - $1000) » 1GB
of memory
» Large
•
size models / assemblies, polygon count in the millions
models / assemblies, polygon count in the tens of millions
Ultra High-End ($1000+) » 1GB
or higher
» Largest
models / assemblies
– Complete models, i.e., cars, airplanes, virtual prototyping
Only you can define what kind of card is right for you!
SolidWorks and Graphics
Tip of the day: Try hardware in your environment •
Many resellers have “try & buy” programs
•
Check the return policy for your vendor
•
You can only evaluate performance in your environment!
SolidWorks and Graphics And don’t forget… •
No matter how fast the graphics, you need to feed it as fast as possible in order to get the best performance » Graphics » Recent
cards plug into a PCI-E slot
workstations support PCI-E Gen2
– Over 2x the performance, peaks even higher » System
& motherboard vendors will clearly state PCI-E Gen2 support
– If you buy a new system, make sure it supports PCI-E Gen2!!!
Professional vs Consumer Graphics Many users believe consumer graphics cards provide the same levels of performance as professional cards at a lower price Workstation cards are highly tuned for professional applications and provide performance far beyond consumer cards
•
Professional vs Consumer Graphics – SolidWorks Performance Lets compare consumer vs. professional with SolidWorks Test details: »3
models: – Model #1: 1.63M Triangles – Model #2: 1.67M Triangles – Model #3: 480K Triangles
» Test
– display models, rotate, resulting frames per second
– Want to test graphics only, don’t worry about model gen time, other stuff »Compare:
– Radeon™ HD 4870x2: fastest consumer card, $399.99* – Radeon™ HD 3750: Entry consumer card, $95** – FirePro™ V3750: Entry workstation, price $149.99* * Price on Newegg.com 7/20/2009 ** Price on Dell.com 2/2009
Professional vs. Consumer Graphics SolidWorks Performance
Model #1 (1.63M tri)
Model #2 (1.67M tri)
Model #3
HD 3750
HD 4870x2
V3750
16.03 fps
Failed test
38.04 fps
13.95 fps
13.68 fps
30.42 fps
40.95 fps
41.37 fps
62.14 fps
(480K tri)
For larger models, V3750 is over 2x the performance! Test system: 3.0GHZ CPU, 4GB memory, XP32 SP2, SolidWorks 2009
Professional vs Consumer Graphics Use Professional Graphics cards for Professional Applications!
9 Hardware and Software Drivers optimized and tested by AMD
» Testing
includes application testing – SolidWorks tests are run against driver prior to release!
9 SolidWorks certifies Professional Graphics solutions » Consumer
cards are not tested or certified against professional applications by SolidWorks or AMD
9 Provide the best performance for professional applications » Performance,
higher cost!
productivity, and reliability more than justifies the slightly
Software Considerations
Software Considerations In the end, it all comes down to software performance •
How well does SolidWorks run on my system?
For best performance and stability: •
Do what SolidWorks tells you to do! » Use
the certified and recommended OS, graphics drivers, and officially licensed versions of SolidWorks
» Extremely
large amounts of development and testing effort is done to insure stability and performance
» Read
up on the SolidWorks 2009 release – lots of work done on performance!
•
Keep actively running processes to a minimum » Give
SolidWorks the maximum amount of CPU and graphics resources possible
Software Considerations A little reading and research never hurts… •
Check your graphics card vendor site occasionally for driver updates » Performance
can and does improve over time!
» Release
notes will tell you what improvement and fixes are included in the driver release
» If
there are performance optimizations or bug fixes for SolidWorks, graphics vendors will re-certify the new drive – OEM posted drivers may lag
•
Trade publications often run performance tests » They
•
buy the hardware so you don’t have to!
SolidWorks user groups, message boards, blogs » People
share the good, bad, the ugly
– Lot of focus on the ugly…
Q&A
Disclaimer & Attribution DISCLAIMER The information presented in this document is for informational purposes only and may contain technical inaccuracies, omissions and typographical errors. The information contained herein is subject to change and may be rendered inaccurate for many reasons, including but not limited to product and roadmap changes. AMD assumes no obligation to update or otherwise correct or revise this information. However, AMD reserves the right to revise this information and to make changes from time to time to the content hereof without obligation of AMD to notify any person of such revisions or changes. AMD MAKES NO REPRESENTATIONS OR WARRANTIES WITH RESPECT TO THE CONTENTS HEREOF AND ASSUMES NO RESPONSIBILITY FOR ANY INACCURACIES, ERRORS OR OMISSIONS THAT MAY APPEAR IN THIS INFORMATION. AMD SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE. IN NO EVENT WILL AMD BE LIABLE TO ANY PERSON FOR ANY DIRECT, INDIRECT, SPECIAL OR OTHER CONSEQUENTIAL DAMAGES ARISING FROM THE USE OF ANY INFORMATION CONTAINED HEREIN, EVEN IF AMD IS EXPRESSLY ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. ATTRIBUTION © 2009 Advanced Micro Devices, Inc. All rights reserved. AMD, the AMD Arrow logo, ATI, the ATI logo, FireGL, FireMV, FirePro and combinations thereof are trademarks of Advanced Micro Devices, Inc. Vista is a trademark, and Microsoft and Windows are registered trademarks of Microsoft Corporation in the United States and/or other jurisdictions. Other names are for informational purposes only and may be trademarks of their respective owners.
SPEC is a registered trademarks of the Standard Performance Evaluation Corporation.