7 Replies Latest reply on Feb 25, 2010 10:56 AM by bpurnomo

    StreamKernelAnalyzer 1.4 Question

    ryta1203

      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?

        • StreamKernelAnalyzer 1.4 Question
          bpurnomo

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

            • StreamKernelAnalyzer 1.4 Question
              ryta1203

              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).

                • StreamKernelAnalyzer 1.4 Question
                  bpurnomo

                  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).

                    • StreamKernelAnalyzer 1.4 Question
                      ryta1203

                      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.

                        • StreamKernelAnalyzer 1.4 Question
                          bpurnomo

                          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.

                           

                            • StreamKernelAnalyzer 1.4 Question
                              ryta1203

                              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; }