Closed miguelraz closed 5 years ago
It needs the full path to the binary e.g. :julia> ENV["IACA_PATH"] = "/home/mrg/Desktop/iaca-lin64/iaca"
Success!
julia> analyze(mysum, Tuple{Vector{Float64}})
Intel(R) Architecture Code Analyzer Version - v3.0-28-g1ba2cbb build date: 2017-10-23;16:42:45
Analyzed File - /tmp/tmp1kDxv7/a.out
Binary Format - 64Bit
Architecture - SKL
Analysis Type - Throughput
Throughput Analysis Report
--------------------------
Block Throughput: 4.00 Cycles Throughput Bottleneck: Dependency chains
Loop Count: 32
Port Binding In Cycles Per Iteration:
--------------------------------------------------------------------------------------------------
| Port | 0 - DV | 1 | 2 - D | 3 - D | 4 | 5 | 6 | 7 |
--------------------------------------------------------------------------------------------------
| Cycles | 0.5 0.0 | 0.5 | 1.0 1.0 | 1.0 1.0 | 0.0 | 0.5 | 0.5 | 0.0 |
--------------------------------------------------------------------------------------------------
DV - Divider pipe (on port 0)
D - Data fetch pipe (on ports 2 and 3)
F - Macro Fusion with the previous instruction occurred
* - instruction micro-ops not bound to a port
^ - Micro Fusion occurred
# - ESP Tracking sync uop was issued
@ - SSE instruction followed an AVX256/AVX512 instruction, dozens of cycles penalty is expected
X - instruction not supported, was not accounted in Analysis
| Num Of | Ports pressure in cycles | |
| Uops | 0 - DV | 1 | 2 - D | 3 - D | 4 | 5 | 6 | 7 |
-----------------------------------------------------------------------------------------
| 1 | | | 1.0 1.0 | | | | | | mov rdx, qword ptr [rdi]
| 2 | 0.5 | 0.5 | | 1.0 1.0 | | | | | vaddsd xmm0, xmm0, qword ptr [rdx+rcx*8]
| 1 | | | | | | 0.5 | 0.5 | | add rcx, 0x1
| 1* | | | | | | | | | cmp rax, rcx
| 0*F | | | | | | | | | jnz 0xffffffffffffffe9
but
and
on Julia 1.1, Linux 16.04.