Both the 32-bit and the 64-bit OS X versions of IACA 2.1 crash on my Mac, with "Illegal instruction: 4". I believe this message means that an unrecognized instruction was encountered. I am using OS X 10.7.5 on a 2007 Core 2 Duo machine, which supports SSE2 but no higher. Was IACA built with code generation for a more recent ISA?
For a loop with 20 statements, attached below are the latency and throughput analysis by IACA:
Intel(R) Architecture Code Analyzer Version - 2.1
Analyzed File - foo_avx.o
Binary Format - 64Bit
Architecture - HSW
Analysis Type - Latency
Latency Analysis Report
Latency: 27 Cycles
Intel Architecture Code Analyzer 2.1 is now available. This release includes support for the 4th generation Intel Core processor families (code-named Haswell).
First of all well done on an excellent tool! I have just a couple of suggestions:
- My first comment is on the C vs. Assembly orientation of the tool. The documentation seems to suggest the use of IACA with Visual C, using the IACA_START/END macros. This is all well and good, however, although one can find the corresponding code markers for assembly code in the header file, this not documented in the manual. I think this should be added, given that the tool is just as useful (and arguably more so) for assembly code.
looks like I am missing something simple, but I couldn't find a separate binaries for 64bit linux, where as the one listed on download page(iaca-lin32) gives me a number of errors related to wrong libraries format. Both libstdc++.so.6 and libgcc_s.so.1 of my Centos6.2(x64) yield "wrong ELF class: ELFCLASS64" error.
Should the set up be more specific, or iaca-lin64 was simply ommited in download page?
iaca reports the throughput buttleneck is interiteration, what does this mean and how to optimize.
I'm using Microsoft's 64-bit compiler in 2010. In version 1.1.3 of IACA there were a IACA_VC64_START macro. This didn't work on any of my test projects.
Now in the latest version (2.0.1) the documentation still mentions the IACA_VC64_START macro, however this is now missing from the iacaMarks.h file.
Are you indeed supporting 64-bit output from the Microsoft 2010 compiler, or only Intel's own 64-bit compiler?
I know , intel machine has 6 ports, each port has several function units.
Thanks for this tool, it's amazingly useful for optimizing SIMD routines.The -graph switch seems to be ignored in my version (2.0/win32), maybe an oversight?
Intel Architecture Code Analyzer 2.0 is now available. This release includes support for the 2nd and 3rd generation Intel Core processor families (code-named Sandy Bridge and Ivy Bridge, respsectively), support for the Mac OS X platform, and improvements to the analyzes.http://software.intel.com/en-us/articles/intel-architecture-code-analyzer/