Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: optimizing loops question

Author: Tom Likens

Date: 10:02:42 07/20/03

Go up one level in this thread


On July 20, 2003 at 12:05:32, Omid David Tabibi wrote:

>On July 20, 2003 at 11:49:22, Dieter Buerssner wrote:
>
>>On July 20, 2003 at 11:44:12, Omid David Tabibi wrote:
>>
>>>On July 20, 2003 at 11:32:48, Tom Likens wrote:
>>>
>>>>On July 20, 2003 at 09:48:39, Omid David Tabibi wrote:
>>>>
>>>>[--snip--]
>>>>
>>>>>Use Intel VTune Performance Analyzer
>>>>>http://www.intel.com/software/products/vtune/ , it has a trial period of one
>>>>>month. Using the "function call" profiling, it provides you with a wealth of
>>>>>information about the efficiency of your functions. I think the old rule of
>>>>>80-20 applies also in computer chess: 80% of the time is spent in 20% of the
>>>>>functions. Finding those 20% and optimizing them can be easier using a profiler.
>>>>
>>>>For some reason the new VTune 7.0 trial period is only 7 days (I've got
>>>>six days left).  I really like VTune.  It is *very* powerful, but the
>>>>learning curve can be steep.
>>>
>>>Well, I use only the function call feature of VTune, and it is quite simple to
>>>use. I haven't tried other profiling options...
>>
>>If you are only (or mainly) interested in the times spent inside functions (and
>>functions called inside those), you could try gprof in combination with gcc. I
>>find it very easy to use, too. Basically I add -pg to the options for compiling
>>and linking, run the executable, and then start gprof and look at the output.
>
>Yes, I've tried it, however VTune presents the data in a gaphical view so that
>you can easily spot the bottlenecks.
>
>I assume that in addition to function time VTune provides wealth of other
>information which can be of use in optimizing a chess engine. Maybe more
>experienced VTune users coulod mention a few of the additional handy features.

I'll share what I know.  One thing, right off the bat, is that they have
a Linux version.  Unfortunately, the interface is not as nice as
the Windows version, but I give them kudos for *any* Linux support.  You can
analyze a Linux run under the Windows interface which is convenient.

A partial list of what VTune provides:

Note, that for all of the below VTune provides detailed definitions
and examples.  It also has a very through online tutorial.

1. Thread utilization, memory latency, priviledged processor execution,
   regular processor utilization, etc.  All of these are graphed, which
   is very convenient for determining any aberrations in the program's
   execution.  If you do see something odd, you can bracket off that
   region and drill down into it for more details.

2. HotSpot analysis - You can sort this by clock ticks, branch
   mispredictions, CPI (clock ticks/instruction), instructions retired,
   branches retired etc.   Everything can be displayed in either
   absolute values or percentages.

3. Call graph analysis - lets the user trace function hierarchy, the time
   elapsed in each of the functions and their children.  In addition, it will
   show you the critical timing paths, all in graphical form.

4. Source Code analysis - VTune provides both C/C++ code analysis as well
   as assembly level (or both if you like).  If you have the disassembled
   view of code enabled, it will also show you penalties in your code such
   as latency issues, partial register stalls, partial flag stalls etc.
   It will even highlight C-type issues.

5. Memory issues - Info on 1st level cache misses, retires, 2nd level etc.
   Memory address dependencies etc.

All of this can analyzed in relationship to specific *Intel* processors,
for some reason the Athlon line of processors didn't seem to be listed :)

The other *really* nice feature is the code coach.  When VTune identifies
a problem in your code it will provide advice and potential code
transformations to improve the performance.  All of this data can represented
in a multitude of ways (more than I care to list).  There are also a ton
of other features but this gives you some idea of its capabilities.

A book that gives a reasonable overview of the tool is...

__The Software Optimization Cookbook__ by Intel Press

http://www.intel.com/intelpress/swoptcookbook/

It's kind of one big advertisement for VTune, but that's OK since the
tool really is worthwhile.

regards,
--tom

>>
>>Regards,
>>Dieter



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.