2 Replies Latest reply on Jul 6, 2009 10:11 PM by wgbljl

    error with Stream kernelAnalyzer

    wgbljl

      Has anyone used the Stream kernelAnalyzer?

      I use it analyze a simple kernel program. It always reports

      "Error - Brook+ timed out whilst compiling."

      While I could compile and run this kernel through brcc compiler.

        • error with Stream kernelAnalyzer
          ryta1203

          Yes, I have used the SKA fairly extensively both for IL and Brook+ code. I have run into your problem in the past but I cannot remember why, can you post the code?

            • error with Stream kernelAnalyzer
              wgbljl

              When I used SKA, I really find it could only analyze rather simple code.

              Here is my code :

              kernel void kim_kernel(double a[], double u[][][], double v<>, out double r<>)
              {
                 float3 core;

                 float3 precore1 = float3(-1.0, -1.0, -1.0);
                 float3 precore2 = float3( 0.0, -1.0, -1.0);
                 float3 precore3 = float3(+1.0, -1.0, -1.0);
                 float3 precore4 = float3(-1.0,  0.0, -1.0);
                 float3 precore5 = float3( 0.0,  0.0, -1.0);     
                 float3 precore6 = float3(+1.0,  0.0, -1.0);
                 float3 precore7 = float3(-1.0, +1.0, -1.0);
                 float3 precore8 = float3( 0.0, +1.0, -1.0);
                 float3 precore9 = float3(+1.0, +1.0, -1.0);

                 float3 currcore1 = float3(-1.0, -1.0,  0.0);
                 float3 currcore2 = float3( 0.0, -1.0,  0.0);
                 float3 currcore3 = float3(+1.0, -1.0,  0.0);
                 float3 currcore4 = float3(-1.0,  0.0,  0.0);  
                 float3 currcore5 = float3( 0.0,  0.0,  0.0);
                 float3 currcore6 = float3(+1.0,  0.0,  0.0);  
                 float3 currcore7 = float3(-1.0, +1.0,  0.0);
                 float3 currcore8 = float3( 0.0, +1.0,  0.0);  
                 float3 currcore9 = float3(+1.0, +1.0,  0.0);

                 float3 nextcore1 = float3(-1.0, -1.0, +1.0);
                 float3 nextcore2 = float3( 0.0, -1.0, +1.0);
                 float3 nextcore3 = float3(+1.0, -1.0, +1.0);
                 float3 nextcore4 = float3(-1.0,  0.0, +1.0);
                 float3 nextcore5 = float3( 0.0,  0.0, +1.0);  
                 float3 nextcore6 = float3(+1.0,  0.0, +1.0);
                 float3 nextcore7 = float3(-1.0, +1.0, +1.0);
                 float3 nextcore8 = float3( 0.0, +1.0, +1.0);
                 float3 nextcore9 = float3(+1.0, +1.0, +1.0);
               
                 core = core + indexof(r);
                
                 r = v - a[0] * u[currcore5+core]
                       - a[1] * (u[currcore2+core] + u[currcore4+core]
                                 + u[currcore6+core] + u[currcore8+core]
                                 + u[precore5+core] + u[nextcore5+core])   
                       - a[2] * ( u[precore2+core] + u[precore8+core]
                                  + u[nextcore2+core] + u[nextcore8+core]
                                  + u[currcore1+core] + u[currcore7+core]
                                  + u[precore4+core] + u[nextcore4+core]
                                  + u[currcore3+core] + u[currcore9+core]
                                  + u[precore6+core] + u[nextcore6+core] )
                       - a[3] * ( u[precore1+core] + u[precore7+core]
                                  + u[nextcore1+core] + u[nextcore7+core]
                                  + u[precore3+core] + u[precore9+core]
                                  + u[nextcore3+core] + u[nextcore9+core] );
              }