cancel
Showing results for 
Search instead for 
Did you mean: 

Archives Discussions

wgbljl
Journeyman III

error with Stream kernelAnalyzer

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.

0 Likes
2 Replies
ryta1203
Journeyman III

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?

0 Likes

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

0 Likes