cancel
Showing results for 
Search instead for 
Did you mean: 

Archives Discussions

ryta1203
Journeyman III

StreamKernelAnalyzer 1.4 Question

Why is the ALU:Fetch ratio of 5870 half of the 4870?

I understand 5870 has twice the SIMD engines (from 10 to 20); but that shouldn't change the RATIO of ALU instruction to FETCH instructions, should it?

0 Likes
7 Replies
bpurnomo
Staff

SKA ALU:Fetch ratio takes into account the number of ALU units. 

0 Likes

This is confusing considering it's a ratio and shouldn't matter who many ALU units there are (since they have to do the same number of fetches per ALU instruction).

0 Likes

The same convention has been used in GSA and SKA since their first release.  For example for a kernel with 100 ALU instructions and 25 Fetch instructions on

ASIC A with 40 ALU units and 10 Fetch units: the ALU:Fetch ratio is 1 (100/40 : 25/10)

ASIC B with 20 ALU units and 10 Fetch units, the ALU:Fetch ratio is 2 (100/20: 25/10)

The idea is it would be easier to compare the ALU:Fetch ratio for different ASICs (chip configurations).  In the above example, it is immediately obvious that the ALU Fetch balance is not the same for the two ASICs (otherwise users would need to know how many ALU units and Fetch units for each ASIC).

0 Likes

Yes, but don't the 4870 and the 5870 have the same ratios?

1 SIMD = 16 TP and 4 Fetch Units

4870: 10 SIMDS = 160 ALU, 40 Fetch

5870: 20 SIMDS = 320 ALU, 80 Fetch

Do I have some incorrect information here? I apologize if I do.

0 Likes

You have the correct information.

Could it be that your kernel has a different number of executed ALU and Fetch between 4870 and 5870?  ALUFetchRatio is based on the number of executed ALU and Fetch (affected by control flow, note this computation is analyzed statically for SKA) instructions rather than the instruction counts in the kernel.

 

0 Likes

bpurnomo,

  No, this is not the case. Here is a simple Brook+ kernel in which the 5870 reports half the ALU:Fetch that the 4870 does. Why is this?

 Everything reported by SKA appears to be the same except the ALU:Fetch ratio, it reports .42 for 5870 and .83 for 4870.

kernel void foo(float4 npos1<>, float4 ndir<>, float4 atten<>, out float4 npos2<>) { npos2.xyz= npos1.xyz + ndir.xyz; npos2.w = npos1.w * atten; }

0 Likes

Hi Ryta,
   Thank you for posting a simple Brook+ kernel.  You are right, this looks suspiciously odd.  It looks like the ALU:Fetch ratio calculation for 5870 hasn't accounted for the dual shader engines in 5870.  We'll investigate this issue.

0 Likes