Current version

v1.10.4 (stable)

Navigation

Main page
Archived news
Downloads
Documentation
   Capture
   Compiling
   Processing
   Crashes
Features
Filters
Plugin SDK
Knowledge base
Contact info
Forum
 
Other projects
   Altirra

Search

Archives

01 Dec - 31 Dec 2013
01 Oct - 31 Oct 2013
01 Aug - 31 Aug 2013
01 May - 31 May 2013
01 Mar - 31 Mar 2013
01 Feb - 29 Feb 2013
01 Dec - 31 Dec 2012
01 Nov - 30 Nov 2012
01 Oct - 31 Oct 2012
01 Sep - 30 Sep 2012
01 Aug - 31 Aug 2012
01 June - 30 June 2012
01 May - 31 May 2012
01 Apr - 30 Apr 2012
01 Dec - 31 Dec 2011
01 Nov - 30 Nov 2011
01 Oct - 31 Oct 2011
01 Sep - 30 Sep 2011
01 Aug - 31 Aug 2011
01 Jul - 31 Jul 2011
01 June - 30 June 2011
01 May - 31 May 2011
01 Apr - 30 Apr 2011
01 Mar - 31 Mar 2011
01 Feb - 29 Feb 2011
01 Jan - 31 Jan 2011
01 Dec - 31 Dec 2010
01 Nov - 30 Nov 2010
01 Oct - 31 Oct 2010
01 Sep - 30 Sep 2010
01 Aug - 31 Aug 2010
01 Jul - 31 Jul 2010
01 June - 30 June 2010
01 May - 31 May 2010
01 Apr - 30 Apr 2010
01 Mar - 31 Mar 2010
01 Feb - 29 Feb 2010
01 Jan - 31 Jan 2010
01 Dec - 31 Dec 2009
01 Nov - 30 Nov 2009
01 Oct - 31 Oct 2009
01 Sep - 30 Sep 2009
01 Aug - 31 Aug 2009
01 Jul - 31 Jul 2009
01 June - 30 June 2009
01 May - 31 May 2009
01 Apr - 30 Apr 2009
01 Mar - 31 Mar 2009
01 Feb - 29 Feb 2009
01 Jan - 31 Jan 2009
01 Dec - 31 Dec 2008
01 Nov - 30 Nov 2008
01 Oct - 31 Oct 2008
01 Sep - 30 Sep 2008
01 Aug - 31 Aug 2008
01 Jul - 31 Jul 2008
01 June - 30 June 2008
01 May - 31 May 2008
01 Apr - 30 Apr 2008
01 Mar - 31 Mar 2008
01 Feb - 29 Feb 2008
01 Jan - 31 Jan 2008
01 Dec - 31 Dec 2007
01 Nov - 30 Nov 2007
01 Oct - 31 Oct 2007
01 Sep - 30 Sep 2007
01 Aug - 31 Aug 2007
01 Jul - 31 Jul 2007
01 June - 30 June 2007
01 May - 31 May 2007
01 Apr - 30 Apr 2007
01 Mar - 31 Mar 2007
01 Feb - 29 Feb 2007
01 Jan - 31 Jan 2007
01 Dec - 31 Dec 2006
01 Nov - 30 Nov 2006
01 Oct - 31 Oct 2006
01 Sep - 30 Sep 2006
01 Aug - 31 Aug 2006
01 Jul - 31 Jul 2006
01 June - 30 June 2006
01 May - 31 May 2006
01 Apr - 30 Apr 2006
01 Mar - 31 Mar 2006
01 Feb - 29 Feb 2006
01 Jan - 31 Jan 2006
01 Dec - 31 Dec 2005
01 Nov - 30 Nov 2005
01 Oct - 31 Oct 2005
01 Sep - 30 Sep 2005
01 Aug - 31 Aug 2005
01 Jul - 31 Jul 2005
01 June - 30 June 2005
01 May - 31 May 2005
01 Apr - 30 Apr 2005
01 Mar - 31 Mar 2005
01 Feb - 29 Feb 2005
01 Jan - 31 Jan 2005
01 Dec - 31 Dec 2004
01 Nov - 30 Nov 2004
01 Oct - 31 Oct 2004
01 Sep - 30 Sep 2004
01 Aug - 31 Aug 2004

Stuff

Powered by Pivot  
XML: RSS feed 
XML: Atom feed 

§ How I ran AMD CodeAnalyst on an Intel CPU

It's been asked how I managed to run AMD CodeAnalyst on an Intel CPU, since the documentation and Wikipedia page says that it requires an AMD CPU. Someone suggested that I might have hacked out the CPUID check.

I actually used the following very sneaky technique:

[CodeAnalyst running on Intel CPU]

CodeAnalyst works fine on an Intel CPU, as long as you use Time-Based Sampling (TBS). It will blue-screen the machine if you use Event-Based Sampling (EBS) or Pipeline Simulation, or at least it used to. Call graph profiling might not work either, but I never use that anyway.

As for why CodeAnalyst works on Intel CPUs, only AMD knows for sure, but there are good reasons for doing so. One reason is that you can analyze runs on a different machine than the one that did the profile; another is that the vast majority of optimization benefits execution on any CPU. A third possible reason is simply that it happens to work and there's no reason to spend time breaking it. In any case, I'm glad that this is the case, because CodeAnalyst is free and easy to install, and even though it's not the fanciest sampling profiler, it works.

(Disclaimer: This is version 2.84. Might not work on some future version.)

Comments

Comments posted:


You Are definitely a master Hacker!!

nine - 04 11 09 - 19:58


Thanks for the tip - the last time I needed to profile something on my Core 2 Quad I had to resort to Microsoft's VS2008 Performance Tools and the command line... gonna try it out next time. :)

Leak - 05 11 09 - 05:43


You remind me of something that's supposed to have happened long time ago - some physicist once calculated that silicone monocrystals can't grow more than 15 cm in diameter or they collapse. So everybody was making 15 cm monocrystals ... except one company which wasn't aware of the research so they were happily creating perfect 30 cm ones :)
Might be an urban legend though.

Kasuha - 05 11 09 - 22:22


Is CodeAnalyst faster / lighter / more reliable than Intel's VTune? VTune is an ugly beast and oprofile isn't very intuitive, so it'd be nice to find an alternative.

splicer - 07 11 09 - 08:13


Argh... my machine just crashed, and analyzing the dump file Windows spat out that it's cause was a driver (AMPCORE.SYS) installed by AMD CodeAnalyst - not cool. :(

Leak - 07 11 09 - 09:37


CodeAnalyst is lighter than VTune, yes, but it's UI isn't as powerful. It can't collect samples by file or by namespace, and it can't do automated detection of basic blocks in foreign disassembly.

As for the blue screen, some threads in the CA forum seem to indicate that the problem may be stray interrupts hitting the CodeAnalyst driver while it isn't active. You might try disabling the CodeAnalyst service when you're not using it, if it's running.

Phaeron - 07 11 09 - 13:31


Another alternative is the profiler in VS2008. Running pgomgr /summary returns a list of functions sorted by cpu usage. Unfortunately the instrumented application is noticeably slower.

Haali - 07 11 09 - 23:58


Phaeron helping with GCC could make the whole opensource-world a bit faster xD

Your blog is always such a fine evening literature =)

Draget - 08 11 09 - 02:31


Wouldnt it be better to get an AMD CPU and also at the same time benefit from the performance counters provided and utilize the CodeAnalyst (and also now CodeXL) more efficiently?

Evren Yurtesen - 14 11 12 - 07:25

Comment form


Please keep comments on-topic for this entry. If you have unrelated comments about VirtualDub, the forum is a better place to post them.
Name:  
Remember personal info?

Email (Optional):
Your email address is only revealed to the blog owner and is not shown to the public.
URL (Optional):
Comment: /

An authentication dialog may appear when you click Post Comment. Simply type in "post" as the user and "now" as the password. I have had to do this to stop automated comment spam.



Small print: All html tags except <b> and <i> will be removed from your comment. You can make links by just typing the url or mail-address.