How to debug in kernel?

Hi! I used to printf variable within kernel, my friends told me CUDA-GDB or pass in a pointer to kernel and save the value in it, and write out to global.

Actually, I still prefer my direct printf within kernel method, because it is very direct and obvious. One problem might be, my friend told me it will use smem??? (My observation is, printf will use stack frame. ) So this might be a reason to my previous problem, sometimes, the printed value will randomly lose. Maybe smem is not enough so lose sth?

But sometimes even I used all the allocated smem, I still can printf some value, why???

Thank you!!!

(smem=shared memory)

Iā€™ve never heard or seen it written anywhere that in-kernel printf uses shared memory. I also canā€™t imagine why it would need to.

The way device-side printf() works is by pushing data into a buffer that is later processed by host-side code in the CUDA runtime to actually print the data. The size of this buffer is fixed at launch time; I seem to recall that it is one megabyte in size by default. If a kernel prints more data than fits into the buffer, output will be lost.

The size of the printf-buffer can be configured by the programmer. You would want to become acquainted with cudaDeviceGetLimit() and cudaDeviceSetLimit() APIs and in particular the cudaLimitPrintfFifoSize attribute.

You would want to rely more on the CUDA documentation and use targeted experiments as a back-up strategy where needed.

1 Like

Thank you!!! I am using 3050PC. In below code, if print out 32128 is OK, if 128128 will randomly lose valueā€¦
I tried this, but still does not workā€¦Would you check whether my code is incorrect or limit is low?

__global__ sgemm_128x128x8(){
    ........
    ........
    if(threadIdx.x==0){
        for(int i=0;i<48;i++){
            for(int j=0;j<128;j++){
                printf("smem_a[%d][%d]=%f ", i, j, smem_a[i*130+j]);
            }
            printf("\n");
        }
        printf("\n");
    }
    __syncthreads();
}

void launch_add2(float* c,
                  float* a,
                  float* b,
                 const int M,
                 const int N,
                 const int K)
{
	dim3 grid((N + 128 - 1) / 128, (M + 128 - 1) / 128);  
	int maxbytes = 81 * 1024; // 81 KB
	cudaFuncSetAttribute(sgemm_128x128x8, cudaFuncAttributeMaxDynamicSharedMemorySize, maxbytes);
	cudaDeviceSetLimit(cudaLimitPrintfFifoSize,128*1024*1024*1024*1024);
	sgemm_128x128x8 << <grid, 256, 81 * 1024>> > (M, N, K, a, b, c);
	cudaDeviceSynchronize();
}

And the output is like: which missed lot of linesā€¦Very strangeā€¦Because it should be 481284/1024=24KB, far from 1MBā€¦

smem_a[0][0]=128.000000 smem_a[0][1]=128.000000 smem_a[0][2]=128.000000 smem_a[0][3]=128.000000 smem_a[0][4]=128.000000 smem_a[0][5]=128.000000 smem_a[0][6]=128.000000 smem_a[0][7]=128.000000 smem_a[0][8]=128.000000 smem_a[0][9]=128.000000 smem_a[0][10]=128.000000 smem_a[0][11]=128.000000 smem_a[0][12]=128.000000 smem_a[0][13]=128.000000 smem_a[0][14]=128.000000 smem_a[0][15]=128.000000 smem_a[0][16]=128.000000 smem_a[0][17]=128.000000 smem_a[0][18]=128.000000 smem_a[0][19]=128.000000 smem_a[0][20]=128.000000 smem_a[0][21]=128.000000 smem_a[0][22]=128.000000 smem_a[0][23]=128.000000 smem_a[0][24]=128.000000 smem_a[0][25]=128.000000 smem_a[0][26]=128.000000 smem_a[0][27]=128.000000 smem_a[0][28]=128.000000 smem_a[0][29]=128.000000 smem_a[0][30]=128.000000 smem_a[0][31]=128.000000 smem_a[0][32]=128.000000 smem_a[0][33]=128.000000 smem_a[0][34]=128.000000 smem_a[0][35]=128.000000 smem_a[0][36]=128.000000 smem_a[0][37]=128.000000 smem_a[0][38]=128.000000 smem_a[0][39]=128.000000 smem_a[0][40]=128.000000 smem_a[0][41]=128.000000 smem_a[0][42]=128.000000 smem_a[0][43]=128.000000 smem_a[0][44]=128.000000 smem_a[0][45]=128.000000 smem_a[0][46]=128.000000 smem_a[0][47]=128.000000 smem_a[0][48]=128.000000 smem_a[0][49]=128.000000 smem_a[0][50]=128.000000 smem_a[0][51]=128.000000 smem_a[0][52]=128.000000 smem_a[0][53]=128.000000 smem_a[0][54]=128.000000 smem_a[0][55]=128.000000 smem_a[0][56]=128.000000 smem_a[0][57]=128.000000 smem_a[0][58]=128.000000 smem_a[0][59]=128.000000 smem_a[0][60]=128.000000 smem_a[0][61]=128.000000 smem_a[0][62]=128.000000 smem_a[0][63]=128.000000 smem_a[0][64]=128.000000 smem_a[0][65]=128.000000 smem_a[0][66]=128.000000 smem_a[0][67]=128.000000 smem_a[0][68]=128.000000 smem_a[0][69]=128.000000 smem_a[0][70]=128.000000 smem_a[0][71]=128.000000 smem_a[0][72]=128.000000 smem_a[0][73]=128.000000 smem_a[0][74]=128.000000 smem_a[0][75]=128.000000 smem_a[0][76]=128.000000 smem_a[0][77]=128.000000 smem_a[0][78]=128.000000 smem_a[0][79]=128.000000 smem_a[0][80]=128.000000 smem_a[0][81]=128.000000 smem_a[0][82]=128.000000 smem_a[0][83]=128.000000 smem_a[0][84]=128.000000 smem_a[0][85]=128.000000 smem_a[0][86]=128.000000 smem_a[0][87]=128.000000 smem_a[0][88]=128.000000 smem_a[0][89]=128.000000 smem_a[0][90]=128.000000 smem_a[0][91]=128.000000 smem_a[0][92]=128.000000 smem_a[0][93]=128.000000 smem_a[0][94]=128.000000 smem_a[0][95]=128.000000 smem_a[0][96]=128.000000 smem_a[0][97]=128.000000 smem_a[0][98]=128.000000 smem_a[0][99]=128.000000 smem_a[0][100]=128.000000 smem_a[0][101]=128.000000 smem_a[0][102]=128.000000 smem_a[0][103]=128.000000 smem_a[0][104]=128.000000 smem_a[0][105]=128.000000 smem_a[0][106]=128.000000 smem_a[0][107]=128.000000 smem_a[0][108]=128.000000 smem_a[0][109]=128.000000 smem_a[0][110]=128.000000 smem_a[0][111]=128.000000 smem_a[0][112]=128.000000 smem_a[0][113]=128.000000 smem_a[0][114]=128.000000 smem_a[0][115]=128.000000 smem_a[0][116]=128.000000 smem_a[0][117]=128.000000 smem_a[0][118]=128.000000 smem_a[0][119]=128.000000 smem_a[0][120]=128.000000 smem_a[0][121]=128.000000 smem_a[0][122]=128.000000 smem_a[0][123]=128.000000 smem_a[0][124]=128.000000 smem_a[0][125]=128.000000 smem_a[0][126]=128.000000 smem_a[0][127]=128.000000 
smem_a[1][0]=128.000000 smem_a[1][1]=128.000000 smem_a[1][2]=128.000000 smem_a[1][3]=128.000000 smem_a[1][4]=128.000000 smem_a[1][5]=128.000000 smem_a[1][6]=128.000000 smem_a[1][7]=128.000000 smem_a[1][8]=128.000000 smem_a[1][9]=128.000000 smem_a[1][10]=128.000000 smem_a[1][11]=128.000000 smem_a[1][12]=128.000000 smem_a[1][13]=128.000000 smem_a[1][14]=128.000000 smem_a[1][15]=128.000000 smem_a[1][16]=128.000000 smem_a[1][17]=128.000000 smem_a[1][18]=128.000000 smem_a[1][19]=128.000000 smem_a[1][20]=128.000000 smem_a[1][21]=128.000000 smem_a[1][22]=128.000000 smem_a[1][23]=128.000000 smem_a[1][24]=128.000000 smem_a[1][25]=128.000000 smem_a[1][26]=128.000000 smem_a[1][27]=128.000000 smem_a[1][28]=128.000000 smem_a[1][29]=128.000000 smem_a[1][30]=128.000000 smem_a[1][31]=128.000000 smem_a[1][32]=128.000000 smem_a[1][33]=128.000000 smem_a[1][34]=128.000000 smem_a[1][35]=128.000000 smem_a[1][36]=128.000000 smem_a[1][37]=128.000000 smem_a[1][38]=128.000000 smem_a[1][39]=128.000000 smem_a[1][40]=128.000000 smem_a[1][41]=128.000000 smem_a[1][42]=128.000000 smem_a[1][43]=128.000000 smem_a[1][44]=128.000000 smem_a[1][45]=128.000000 smem_a[1][46]=128.000000 smem_a[1][47]=128.000000 smem_a[1][48]=128.000000 smem_a[1][49]=128.000000 smem_a[1][50]=128.000000 smem_a[1][51]=128.000000 smem_a[1][52]=128.000000 smem_a[1][53]=128.000000 smem_a[1][54]=128.000000 smem_a[1][55]=128.000000 smem_a[1][56]=128.000000 smem_a[1][57]=128.000000 smem_a[1][58]=128.000000 smem_a[1][59]=128.000000 smem_a[1][60]=128.000000 smem_a[1][61]=128.000000 smem_a[1][62]=128.000000 smem_a[1][63]=128.000000 smem_a[1][64]=128.000000 smem_a[1][65]=128.000000 smem_a[1][66]=128.000000 smem_a[1][67]=128.000000 smem_a[1][68]=128.000000 smem_a[1][69]=128.000000 smem_a[1][70]=128.000000 smem_a[1][71]=128.000000 smem_a[1][72]=128.000000 smem_a[1][73]=128.000000 smem_a[1][74]=128.000000 smem_a[1][75]=128.000000 smem_a[1][76]=128.000000 smem_a[1][77]=128.000000 smem_a[1][78]=128.000000 smem_a[1][79]=128.000000 smem_a[1][80]=128.000000 smem_a[1][81]=128.000000 smem_a[1][82]=128.000000 smem_a[1][83]=128.000000 smem_a[1][84]=128.000000 smem_a[1][85]=128.000000 smem_a[1][86]=128.000000 smem_a[1][87]=128.000000 smem_a[1][88]=128.000000 smem_a[1][89]=128.000000 smem_a[1][90]=128.000000 smem_a[1][91]=128.000000 smem_a[1][92]=128.000000 smem_a[1][93]=128.000000 smem_a[1][94]=128.000000 smem_a[1][95]=128.000000 smem_a[1][96]=128.000000 smem_a[1][97]=128.000000 smem_a[1][98]=128.000000 smem_a[1][99]=128.000000 smem_a[1][100]=128.000000 smem_a[1][101]=128.000000 smem_a[1][102]=128.000000 smem_a[1][103]=128.000000 smem_a[1][104]=128.000000 smem_a[1][105]=128.000000 smem_a[1][106]=128.000000 smem_a[1][107]=128.000000 smem_a[1][108]=128.000000 smem_a[1][109]=128.000000 smem_a[1][110]=128.000000 smem_a[1][111]=128.000000 smem_a[1][112]=128.000000 smem_a[1][113]=128.000000 smem_a[1][114]=128.000000 smem_a[1][115]=128.000000 smem_a[1][116]=128.000000 smem_a[1][117]=128.000000 smem_a[1][118]=128.000000 smem_a[1][119]=128.000000 smem_a[1][120]=128.000000 smem_a[1][121]=128.000000 smem_a[1][122]=128.000000 smem_a[1][123]=128.000000 smem_a[1][124]=128.000000 smem_a[1][125]=128.000000 smem_a[1][126]=128.000000 smem_a[1][127]=128.000000 
smem_a[2][0]=128.000000 smem_a[2][1]=128.000000 smem_a[2][2]=128.000000 smem_a[2][3]=128.000000 smem_a[2][4]=128.000000 smem_a[2][5]=128.000000 smem_a[2][6]=128.000000 smem_a[2][7]=128.000000 smem_a[2][8]=128.000000 smem_a[2][9]=128.000000 smem_a[2][10]=128.000000 smem_a[2][11]=128.000000 smem_a[2][12]=128.000000 smem_a[2][13]=128.000000 smem_a[2][14]=128.000000 smem_a[2][15]=128.000000 smem_a[2][16]=128.000000 smem_a[2][17]=128.000000 smem_a[2][18]=128.000000 smem_a[2][19]=128.000000 smem_a[2][20]=128.000000 smem_a[2][21]=128.000000 smem_a[2][22]=128.000000 smem_a[2][23]=128.000000 smem_a[2][24]=128.000000 smem_a[2][25]=128.000000 smem_a[2][26]=128.000000 smem_a[2][27]=128.000000 smem_a[2][28]=128.000000 smem_a[2][29]=128.000000 smem_a[2][30]=128.000000 smem_a[2][31]=128.000000 smem_a[2][32]=128.000000 smem_a[2][33]=128.000000 smem_a[2][34]=128.000000 smem_a[2][35]=128.000000 smem_a[2][36]=128.000000 smem_a[2][37]=128.000000 smem_a[2][38]=128.000000 smem_a[2][39]=128.000000 smem_a[2][40]=128.000000 smem_a[2][41]=128.000000 smem_a[2][42]=128.000000 smem_a[2][43]=128.000000 smem_a[2][44]=128.000000 smem_a[2][45]=128.000000 smem_a[2][46]=128.000000 smem_a[2][47]=128.000000 smem_a[2][48]=128.000000 smem_a[2][49]=128.000000 smem_a[2][50]=128.000000 smem_a[2][51]=128.000000 smem_a[2][52]=128.000000 smem_a[2][53]=128.000000 smem_a[2][54]=128.000000 smem_a[2][55]=128.000000 smem_a[2][56]=128.000000 smem_a[2][57]=128.000000 smem_a[2][58]=128.000000 smem_a[2][59]=128.000000 smem_a[2][60]=128.000000 smem_a[2][61]=128.000000 smem_a[2][62]=128.000000 smem_a[2][63]=128.000000 smem_a[2][64]=128.000000 smem_a[2][65]=128.000000 smem_a[2][66]=128.000000 smem_a[2][67]=128.000000 smem_a[2][68]=128.000000 smem_a[2][69]=128.000000 smem_a[2][70]=128.000000 smem_a[2][71]=128.000000 smem_a[2][72]=128.000000 smem_a[2][73]=128.000000 smem_a[2][74]=128.000000 smem_a[2][75]=128.000000 smem_a[2][76]=128.000000 smem_a[2][77]=128.000000 smem_a[2][78]=128.000000 smem_a[2][79]=128.000000 smem_a[2][80]=128.000000 smem_a[2][81]=128.000000 smem_a[2][82]=128.000000 smem_a[2][83]=128.000000 smem_a[2][84]=128.000000 smem_a[2][85]=128.000000 smem_a[2][86]=128.000000 smem_a[2][87]=128.000000 smem_a[2][88]=128.000000 smem_a[2][89]=128.000000 smem_a[2][90]=128.000000 smem_a[2][91]=128.000000 smem_a[2][92]=128.000000 smem_a[2][93]=128.000000 smem_a[2][94]=128.000000 smem_a[2][95]=128.000000 smem_a[2][96]=128.000000 smem_a[2][97]=128.000000 smem_a[2][98]=128.000000 smem_a[2][99]=128.000000 smem_a[2][100]=128.000000 smem_a[2][101]=128.000000 smem_a[2][102]=128.000000 smem_a[2][103]=128.000000 smem_a[2][104]=128.000000 smem_a[2][105]=128.000000 smem_a[2][106]=128.000000 smem_a[2][107]=128.000000 smem_a[2][108]=128.000000 smem_a[2][109]=128.000000 smem_a[2][110]=128.000000 smem_a[2][111]=128.000000 smem_a[2][112]=128.000000 smem_a[2][113]=128.000000 smem_a[2][114]=128.000000 smem_a[2][115]=128.000000 smem_a[2][116]=128.000000 smem_a[2][117]=128.000000 smem_a[2][118]=128.000000 smem_a[2][119]=128.000000 smem_a[2][120]=128.000000 smem_a[2][121]=128.000000 smem_a[2][122]=128.000000 smem_a[2][123]=128.000000 smem_a[2][124]=128.000000 smem_a[2][125]=128.000000 smem_a[2][126]=128.000000 smem_a[2][127]=128.000000 
smem_a[3][0]=128.000000 smem_a[3][1]=128.000000 smem_a[3][2]=128.000000 smem_a[3][3]=128.000000 smem_a[3][4]=128.000000 smem_a[3][5]=128.000000 smem_a[3][6]=128.000000 smem_a[3][7]=128.000000 smem_a[3][8]=128.000000 smem_a[3][9]=128.000000 smem_a[3][10]=128.000000 smem_a[3][11]=128.000000 smem_a[3][12]=128.000000 smem_a[3][13]=128.000000 smem_a[3][14]=128.000000 smem_a[3][15]=128.000000 smem_a[3][16]=128.000000 smem_a[3][17]=128.000000 smem_a[3][18]=128.000000 smem_a[3][19]=128.000000 smem_a[3][20]=128.000000 smem_a[3][21]=128.000000 smem_a[3][22]=128.000000 smem_a[3][23]=128.000000 smem_a[3][24]=128.000000 smem_a[3][25]=128.000000 smem_a[3][26]=128.000000 smem_a[3][27]=128.000000 smem_a[3][28]=128.000000 smem_a[3][29]=128.000000 smem_a[3][30]=128.000000 smem_a[3][31]=128.000000 smem_a[3][32]=128.000000 smem_a[3][33]=128.000000 smem_a[3][34]=128.000000 smem_a[3][35]=128.000000 smem_a[3][36]=128.000000 smem_a[3][37]=128.000000 smem_a[3][38]=128.000000 smem_a[3][39]=128.000000 smem_a[3][40]=128.000000 smem_a[3][41]=128.000000 smem_a[3][42]=128.000000 smem_a[3][43]=128.000000 smem_a[3][44]=128.000000 smem_a[3][45]=128.000000 smem_a[3][46]=128.000000 smem_a[3][47]=128.000000 smem_a[3][48]=128.000000 smem_a[3][49]=128.000000 smem_a[3][50]=128.000000 smem_a[3][51]=128.000000 smem_a[3][52]=128.000000 smem_a[3][53]=128.000000 smem_a[3][54]=128.000000 smem_a[3][55]=128.000000 smem_a[3][56]=128.000000 smem_a[3][57]=128.000000 smem_a[3][58]=128.000000 smem_a[3][59]=128.000000 smem_a[3][60]=128.000000 smem_a[3][61]=128.000000 smem_a[3][62]=128.000000 smem_a[3][63]=128.000000 smem_a[3][64]=128.000000 smem_a[3][65]=128.000000 smem_a[3][66]=128.000000 smem_a[3][67]=128.000000 smem_a[3][68]=128.000000 smem_a[3][69]=128.000000 smem_a[3][70]=128.000000 smem_a[3][71]=128.000000 smem_a[3][72]=128.000000 smem_a[3][73]=128.000000 smem_a[3][74]=128.000000 smem_a[3][75]=128.000000 smem_a[3][76]=128.000000 smem_a[3][77]=128.000000 smem_a[3][78]=128.000000 smem_a[3][79]=128.000000 smem_a[3][80]=128.000000 smem_a[3][81]=128.000000 smem_a[3][82]=128.000000 smem_a[3][83]=128.000000 smem_a[3][84]=128.000000 smem_a[3][85]=128.000000 smem_a[3][86]=128.000000 smem_a[3][87]=128.000000 smem_a[3][88]=128.000000 smem_a[3][89]=128.000000 smem_a[3][90]=128.000000 smem_a[3][91]=128.000000 smem_a[3][92]=128.000000 smem_a[3][93]=128.000000 smem_a[3][94]=128.000000 smem_a[3][95]=128.000000 smem_a[3][96]=128.000000 smem_a[3][97]=128.000000 smem_a[3][98]=128.000000 smem_a[3][99]=128.000000 smem_a[3][100]=128.000000 smem_a[3][101]=128.000000 smem_a[3][102]=128.000000 smem_a[3][103]=128.000000 smem_a[3][104]=128.000000 smem_a[3][105]=128.000000 smem_a[3][106]=128.000000 smem_a[3][107]=128.000000 smem_a[3][108]=128.000000 smem_a[3][109]=128.000000 smem_a[3][110]=128.000000 smem_a[3][111]=128.000000 smem_a[3][112]=128.000000 smem_a[3][113]=128.000000 smem_a[3][114]=128.000000 smem_a[3][115]=128.000000 smem_a[3][116]=128.000000 smem_a[3][117]=128.000000 smem_a[3][118]=128.000000 smem_a[3][119]=128.000000 smem_a[3][120]=128.000000 smem_a[3][121]=128.000000 smem_a[3][122]=128.000000 smem_a[3][123]=128.000000 smem_a[3][124]=128.000000 smem_a[3][125]=128.000000 smem_a[3][126]=128.000000 smem_a[3][127]=128.000000 
smem_a[4][0]=128.000000 smem_a[4][1]=128.000000 smem_a[4][2]=128.000000 smem_a[4][3]=128.000000 smem_a[4][4]=128.000000 smem_a[4][5]=128.000000 smem_a[4][6]=128.000000 smem_a[4][7]=128.000000 smem_a[4][8]=128.000000 smem_a[4][9]=128.000000 smem_a[4][10]=128.000000 smem_a[4][11]=128.000000 smem_a[4][12]=128.000000 smem_a[4][13]=128.000000 smem_a[4][14]=128.000000 smem_a[4][15]=128.000000 smem_a[4][16]=128.000000 smem_a[4][17]=128.000000 smem_a[4][18]=128.000000 smem_a[4][19]=128.000000 smem_a[4][20]=128.000000 smem_a[4][21]=128.000000 smem_a[4][22]=128.000000 smem_a[4][23]=128.000000 smem_a[4][24]=128.000000 smem_a[4][25]=128.000000 smem_a[4][26]=128.000000 smem_a[4][27]=128.000000 smem_a[4][28]=128.000000 smem_a[4][29]=128.000000 smem_a[4][30]=128.000000 smem_a[4][31]=128.000000 smem_a[4][32]=128.000000 smem_a[4][33]=128.000000 smem_a[4][34]=128.000000 smem_a[4][35]=128.000000 smem_a[4][36]=128.000000 smem_a[4][37]=128.000000 smem_a[4][38]=128.000000 smem_a[4][39]=128.000000 smem_a[4][40]=128.000000 smem_a[4][41]=128.000000 smem_a[4][42]=128.000000 smem_a[4][43]=128.000000 smem_a[4][44]=128.000000 smem_a[4][45]=128.000000 smem_a[4][46]=128.000000 smem_a[4][47]=128.000000 smem_a[4][48]=128.000000 smem_a[4][49]=128.000000 smem_a[4][50]=128.000000 smem_a[4][51]=128.000000 smem_a[4][52]=128.000000 smem_a[4][53]=128.000000 smem_a[4][54]=128.000000 smem_a[4][55]=128.000000 smem_a[4][56]=128.000000 smem_a[4][57]=128.000000 smem_a[4][58]=128.000000 smem_a[4][59]=128.000000 smem_a[4][60]=128.000000 smem_a[4][61]=128.000000 smem_a[4][62]=128.000000 smem_a[4][63]=128.000000 smem_a[4][64]=128.000000 smem_a[4][65]=128.000000 smem_a[4][66]=128.000000 smem_a[4][67]=128.000000 smem_a[4][68]=128.000000 smem_a[4][69]=128.000000 smem_a[4][70]=128.000000 smem_a[4][71]=128.000000 smem_a[4][72]=128.000000 smem_a[4][73]=128.000000 smem_a[4][74]=128.000000 smem_a[4][75]=128.000000 smem_a[4][76]=128.000000 smem_a[4][77]=128.000000 smem_a[4][78]=128.000000 smem_a[4][79]=128.000000 smem_a[4][80]=128.000000 smem_a[4][81]=128.000000 smem_a[4][82]=128.000000 smem_a[4][83]=128.000000 smem_a[4][84]=128.000000 smem_a[4][85]=128.000000 smem_a[4][86]=128.000000 smem_a[4][87]=128.000000 smem_a[4][88]=128.000000 smem_a[4][89]=128.000000 smem_a[4][90]=128.000000 smem_a[4][91]=128.000000 smem_a[4][92]=128.000000 smem_a[4][93]=128.000000 smem_a[4][94]=128.000000 smem_a[4][95]=128.000000 smem_a[4][96]=128.000000 smem_a[4][97]=128.000000 smem_a[4][98]=128.000000 smem_a[4][99]=128.000000 smem_a[4][100]=128.000000 smem_a[4][101]=128.000000 smem_a[4][102]=128.000000 smem_a[4][103]=128.000000 smem_a[4][104]=128.000000 smem_a[4][105]=128.000000 smem_a[4][106]=128.000000 smem_a[4][107]=128.000000 smem_a[4][108]=128.000000 smem_a[4][109]=128.000000 smem_a[4][110]=128.000000 smem_a[4][111]=128.000000 smem_a[4][112]=128.000000 smem_a[4][113]=128.000000 smem_a[4][114]=128.000000 smem_a[4][115]=128.000000 smem_a[4][116]=128.000000 smem_a[4][117]=128.000000 smem_a[4][118]=128.000000 smem_a[4][119]=128.000000 smem_a[4][120]=128.000000 smem_a[4][121]=128.000000 smem_a[4][122]=128.000000 smem_a[4][123]=128.000000 smem_a[4][124]=128.000000 smem_a[4][125]=128.000000 smem_a[4][126]=128.000000 smem_a[4][127]=128.000000 
smem_a[5][0]=128.000000 smem_a[5][1]=128.000000 smem_a[5][2]=128.000000 smem_a[5][3]=128.000000 smem_a[5][4]=128.000000 smem_a[5][5]=128.000000 smem_a[5][6]=128.000000 smem_a[5][7]=128.000000 smem_a[5][8]=128.000000 smem_a[5][9]=128.000000 smem_a[5][10]=128.000000 smem_a[5][11]=128.000000 smem_a[5][12]=128.000000 smem_a[5][13]=128.000000 smem_a[5][14]=128.000000 smem_a[5][15]=128.000000 smem_a[5][16]=128.000000 smem_a[5][17]=128.000000 smem_a[5][18]=128.000000 smem_a[5][19]=128.000000 smem_a[5][20]=128.000000 smem_a[5][21]=128.000000 smem_a[5][22]=128.000000 smem_a[5][23]=128.000000 smem_a[5][24]=128.000000 smem_a[5][25]=128.000000 smem_a[5][26]=128.000000 smem_a[5][27]=128.000000 smem_a[5][28]=128.000000 smem_a[5][29]=128.000000 smem_a[5][30]=128.000000 smem_a[5][31]=128.000000 smem_a[5][32]=128.000000 smem_a[5][33]=128.000000 smem_a[5][34]=128.000000 smem_a[5][35]=128.000000 smem_a[5][36]=128.000000 smem_a[5][37]=128.000000 smem_a[5][38]=128.000000 smem_a[5][39]=128.000000 smem_a[5][40]=128.000000 smem_a[5][41]=128.000000 smem_a[5][42]=128.000000 smem_a[5][43]=128.000000 smem_a[5][44]=128.000000 smem_a[5][45]=128.000000 smem_a[5][46]=128.000000 smem_a[5][47]=128.000000 smem_a[5][48]=128.000000 smem_a[5][49]=128.000000 smem_a[5][50]=128.000000 smem_a[5][51]=128.000000 smem_a[5][52]=128.000000 smem_a[5][53]=128.000000 smem_a[5][54]=128.000000 smem_a[5][55]=128.000000 smem_a[5][56]=128.000000 smem_a[5][57]=128.000000 smem_a[5][58]=128.000000 smem_a[5][59]=128.000000 smem_a[5][60]=128.000000 smem_a[5][61]=128.000000 smem_a[5][62]=128.000000 smem_a[5][63]=128.000000 smem_a[5][64]=128.000000 smem_a[5][65]=128.000000 smem_a[5][66]=128.000000 smem_a[5][67]=128.000000 smem_a[5][68]=128.000000 smem_a[5][69]=128.000000 smem_a[5][70]=128.000000 smem_a[5][71]=128.000000 smem_a[5][72]=128.000000 smem_a[5][73]=128.000000 smem_a[5][74]=128.000000 smem_a[5][75]=128.000000 smem_a[5][76]=128.000000 smem_a[5][77]=128.000000 smem_a[5][78]=128.000000 smem_a[5][79]=128.000000 smem_a[5][80]=128.000000 smem_a[5][81]=128.000000 smem_a[5][82]=128.000000 smem_a[5][83]=128.000000 smem_a[5][84]=128.000000 smem_a[5][85]=128.000000 smem_a[5][86]=128.000000 smem_a[5][87]=128.000000 smem_a[5][88]=128.000000 smem_a[5][89]=128.000000 smem_a[5][90]=128.000000 smem_a[5][91]=128.000000 smem_a[5][92]=128.000000 smem_a[5][93]=128.000000 smem_a[5][94]=128.000000 smem_a[5][95]=128.000000 smem_a[5][96]=128.000000 smem_a[5][97]=128.000000 smem_a[5][98]=128.000000 smem_a[5][99]=128.000000 smem_a[5][100]=128.000000 smem_a[5][101]=128.000000 smem_a[5][102]=128.000000 smem_a[5][103]=128.000000 smem_a[5][104]=128.000000 smem_a[5][105]=128.000000 smem_a[5][106]=128.000000 smem_a[5][107]=128.000000 smem_a[5][108]=128.000000 smem_a[5][109]=128.000000 smem_a[5][110]=128.000000 smem_a[5][111]=128.000000 smem_a[5][112]=128.000000 smem_a[5][113]=128.000000 smem_a[5][114]=128.000000 smem_a[5][115]=128.000000 smem_a[5][116]=128.000000 smem_a[5][117]=128.000000 smem_a[5][118]=128.000000 smem_a[5][119]=128.000000 smem_a[5][120]=128.000000 smem_a[5][121]=128.000000 smem_a[5][122]=128.000000 smem_a[5][123]=128.000000 smem_a[5][124]=128.000000 smem_a[5][125]=128.000000 smem_a[5][126]=128.000000 smem_a[5][127]=128.000000 
smem_a[6][0]=128.000000 smem_a[6][1]=128.000000 smem_a[6][2]=128.000000 smem_a[6][3]=128.000000 smem_a[6][4]=128.000000 smem_a[6][5]=128.000000 smem_a[6][6]=128.000000 smem_a[6][7]=128.000000 smem_a[6][8]=128.000000 smem_a[6][9]=128.000000 smem_a[6][10]=128.000000 smem_a[6][11]=128.000000 smem_a[6][12]=128.000000 smem_a[6][13]=128.000000 smem_a[6][14]=128.000000 smem_a[6][15]=128.000000 smem_a[6][16]=128.000000 smem_a[6][17]=128.000000 smem_a[6][18]=128.000000 smem_a[6][19]=128.000000 smem_a[6][20]=128.000000 smem_a[6][21]=128.000000 smem_a[6][22]=128.000000 smem_a[6][23]=128.000000 smem_a[6][24]=128.000000 smem_a[6][25]=128.000000 smem_a[6][26]=128.000000 smem_a[6][27]=128.000000 smem_a[6][28]=128.000000 smem_a[6][29]=128.000000 smem_a[6][30]=128.000000 smem_a[6][31]=128.000000 smem_a[6][32]=128.000000 smem_a[6][33]=128.000000 smem_a[6][34]=128.000000 smem_a[6][35]=128.000000 smem_a[6][36]=128.000000 smem_a[6][37]=128.000000 smem_a[6][38]=128.000000 smem_a[6][39]=128.000000 smem_a[6][40]=128.000000 smem_a[6][41]=128.000000 smem_a[6][42]=128.000000 smem_a[6][43]=128.000000 smem_a[6][44]=128.000000 smem_a[6][45]=128.000000 smem_a[6][46]=128.000000 smem_a[6][47]=128.000000 smem_a[6][48]=128.000000 smem_a[6][49]=128.000000 smem_a[6][50]=128.000000 smem_a[6][51]=128.000000 smem_a[6][52]=128.000000 smem_a[6][53]=128.000000 smem_a[6][54]=128.000000 smem_a[6][55]=128.000000 smem_a[6][56]=128.000000 smem_a[6][57]=128.000000 smem_a[6][58]=128.000000 smem_a[6][59]=128.000000 smem_a[6][60]=128.000000 smem_a[6][61]=128.000000 smem_a[6][62]=128.000000 smem_a[6][63]=128.000000 smem_a[6][64]=128.000000 smem_a[6][65]=128.000000 smem_a[6][66]=128.000000 smem_a[6][67]=128.000000 smem_a[6][68]=128.000000 smem_a[6][69]=128.000000 smem_a[6][70]=128.000000 smem_a[6][71]=128.000000 smem_a[6][72]=128.000000 smem_a[6][73]=128.000000 smem_a[6][74]=128.000000 smem_a[6][75]=128.000000 smem_a[6][76]=128.000000 smem_a[6][77]=128.000000 smem_a[6][78]=128.000000 smem_a[6][79]=128.000000 smem_a[6][80]=128.000000 smem_a[6][81]=128.000000 smem_a[6][82]=128.000000 smem_a[6][83]=128.000000 smem_a[6][84]=128.000000 smem_a[6][85]=128.000000 smem_a[6][86]=128.000000 smem_a[6][87]=128.000000 smem_a[6][88]=128.000000 smem_a[6][89]=128.000000 smem_a[6][90]=128.000000 smem_a[6][91]=128.000000 smem_a[6][92]=128.000000 smem_a[6][93]=128.000000 smem_a[6][94]=128.000000 smem_a[6][95]=128.000000 smem_a[6][96]=128.000000 smem_a[6][97]=128.000000 smem_a[6][98]=128.000000 smem_a[6][99]=128.000000 smem_a[6][100]=128.000000 smem_a[6][101]=128.000000 smem_a[6][102]=128.000000 smem_a[6][103]=128.000000 smem_a[6][104]=128.000000 smem_a[6][105]=128.000000 smem_a[6][106]=128.000000 smem_a[6][107]=128.000000 smem_a[6][108]=128.000000 smem_a[6][109]=128.000000 smem_a[6][110]=128.000000 smem_a[6][111]=128.000000 smem_a[6][112]=128.000000 smem_a[6][113]=128.000000 smem_a[6][114]=128.000000 smem_a[6][115]=128.000000 smem_a[6][116]=128.000000 smem_a[6][117]=128.000000 smem_a[6][118]=128.000000 smem_a[6][119]=128.000000 smem_a[6][120]=128.000000 smem_a[6][121]=128.000000 smem_a[6][122]=128.000000 smem_a[6][123]=128.000000 smem_a[6][124]=128.000000 smem_a[6][125]=128.000000 smem_a[6][126]=128.000000 smem_a[6][127]=128.000000 
smem_a[7][0]=128.000000 smem_a[7][1]=128.000000 smem_a[7][2]=128.000000 smem_a[7][3]=128.000000 smem_a[7][4]=128.000000 smem_a[7][5]=128.000000 smem_a[7][6]=128.000000 smem_a[7][7]=128.000000 smem_a[7][8]=128.000000 smem_a[7][9]=128.000000 smem_a[7][10]=128.000000 smem_a[7][11]=128.000000 smem_a[7][12]=128.000000 smem_a[7][13]=128.000000 smem_a[7][14]=128.000000 smem_a[7][15]=128.000000 smem_a[7][16]=128.000000 smem_a[7][17]=128.000000 smem_a[7][18]=128.000000 smem_a[7][19]=128.000000 smem_a[7][20]=128.000000 smem_a[7][21]=128.000000 smem_a[7][22]=128.000000 smem_a[7][23]=128.000000 smem_a[7][24]=128.000000 smem_a[7][25]=128.000000 smem_a[7][26]=128.000000 smem_a[7][27]=128.000000 smem_a[7][28]=128.000000 smem_a[7][29]=128.000000 smem_a[7][30]=128.000000 smem_a[7][31]=128.000000 smem_a[7][32]=128.000000 smem_a[7][33]=128.000000 smem_a[7][34]=128.000000 smem_a[7][35]=128.000000 smem_a[7][36]=128.000000 smem_a[7][37]=128.000000 smem_a[7][38]=128.000000 smem_a[7][39]=128.000000 smem_a[7][40]=128.000000 smem_a[7][41]=128.000000 smem_a[7][42]=128.000000 smem_a[7][43]=128.000000 smem_a[7][44]=128.000000 smem_a[7][45]=128.000000 smem_a[7][46]=128.000000 smem_a[7][47]=128.000000 smem_a[7][48]=128.000000 smem_a[7][49]=128.000000 smem_a[7][50]=128.000000 smem_a[7][51]=128.000000 smem_a[7][52]=128.000000 smem_a[7][53]=128.000000 smem_a[7][54]=128.000000 smem_a[7][55]=128.000000 smem_a[7][56]=128.000000 smem_a[7][57]=128.000000 smem_a[7][58]=128.000000 smem_a[7][59]=128.000000 smem_a[7][60]=128.000000 smem_a[7][61]=128.000000 smem_a[7][62]=128.000000 smem_a[7][63]=128.000000 smem_a[7][64]=128.000000 smem_a[7][65]=128.000000 smem_a[7][66]=128.000000 smem_a[7][67]=128.000000 smem_a[7][68]=128.000000 smem_a[7][69]=128.000000 smem_a[7][70]=128.000000 smem_a[7][71]=128.000000 smem_a[7][72]=128.000000 smem_a[7][73]=128.000000 smem_a[7][74]=128.000000 smem_a[7][75]=128.000000 smem_a[7][76]=128.000000 smem_a[7][77]=128.000000 smem_a[7][78]=128.000000 smem_a[7][79]=128.000000 smem_a[7][80]=128.000000 smem_a[7][81]=128.000000 smem_a[7][82]=128.000000 smem_a[39][51]=128.000000 smem_a[39][52]=128.000000 smem_a[39][53]=128.000000 smem_a[39][54]=128.000000 smem_a[39][55]=128.000000 smem_a[39][56]=128.000000 smem_a[39][57]=128.000000 smem_a[39][58]=128.000000 smem_a[39][59]=128.000000 smem_a[39][60]=128.000000 smem_a[39][61]=128.000000 smem_a[39][62]=128.000000 smem_a[39][63]=128.000000 smem_a[39][64]=128.000000 smem_a[39][65]=128.000000 smem_a[39][66]=128.000000 smem_a[39][67]=128.000000 smem_a[39][68]=128.000000 smem_a[39][69]=128.000000 smem_a[39][70]=128.000000 smem_a[39][71]=128.000000 smem_a[39][72]=128.000000 smem_a[39][73]=128.000000 smem_a[39][74]=128.000000 smem_a[39][75]=128.000000 smem_a[39][76]=128.000000 smem_a[39][77]=128.000000 smem_a[39][78]=128.000000 smem_a[39][79]=128.000000 smem_a[39][80]=128.000000 smem_a[39][81]=128.000000 smem_a[39][82]=128.000000 smem_a[39][83]=128.000000 smem_a[39][84]=128.000000 smem_a[39][85]=128.000000 smem_a[39][86]=128.000000 smem_a[39][87]=128.000000 smem_a[39][88]=128.000000 smem_a[39][89]=128.000000 smem_a[39][90]=128.000000 smem_a[39][91]=128.000000 smem_a[39][92]=128.000000 smem_a[39][93]=128.000000 smem_a[39][94]=128.000000 smem_a[39][95]=128.000000 smem_a[39][96]=128.000000 smem_a[39][97]=128.000000 smem_a[39][98]=128.000000 smem_a[39][99]=128.000000 smem_a[39][100]=128.000000 smem_a[39][101]=128.000000 smem_a[39][102]=128.000000 smem_a[39][103]=128.000000 smem_a[39][104]=128.000000 smem_a[39][105]=128.000000 smem_a[39][106]=128.000000 smem_a[39][107]=128.000000 smem_a[39][108]=128.000000 smem_a[39][109]=128.000000 smem_a[39][110]=128.000000 smem_a[39][111]=128.000000 smem_a[39][112]=128.000000 smem_a[39][113]=128.000000 smem_a[39][114]=128.000000 smem_a[39][115]=128.000000 smem_a[39][116]=128.000000 smem_a[39][117]=128.000000 smem_a[39][118]=128.000000 smem_a[39][119]=128.000000 smem_a[39][120]=128.000000 smem_a[39][121]=128.000000 smem_a[39][122]=128.000000 smem_a[39][123]=128.000000 smem_a[39][124]=128.000000 smem_a[39][125]=128.000000 smem_a[39][126]=128.000000 smem_a[39][127]=128.000000 
smem_a[40][0]=128.000000 smem_a[40][1]=128.000000 smem_a[40][2]=128.000000 smem_a[40][3]=128.000000 smem_a[40][4]=128.000000 smem_a[40][5]=128.000000 smem_a[40][6]=128.000000 smem_a[40][7]=128.000000 smem_a[40][8]=128.000000 smem_a[40][9]=128.000000 smem_a[40][10]=128.000000 smem_a[40][11]=128.000000 smem_a[40][12]=128.000000 smem_a[40][13]=128.000000 smem_a[40][14]=128.000000 smem_a[40][15]=128.000000 smem_a[40][16]=128.000000 smem_a[40][17]=128.000000 smem_a[40][18]=128.000000 smem_a[40][19]=128.000000 smem_a[40][20]=128.000000 smem_a[40][21]=128.000000 smem_a[40][22]=128.000000 smem_a[40][23]=128.000000 smem_a[40][24]=128.000000 smem_a[40][25]=128.000000 smem_a[40][26]=128.000000 smem_a[40][27]=128.000000 smem_a[40][28]=128.000000 smem_a[40][29]=128.000000 smem_a[40][30]=128.000000 smem_a[40][31]=128.000000 smem_a[40][32]=128.000000 smem_a[40][33]=128.000000 smem_a[40][34]=128.000000 smem_a[40][35]=128.000000 smem_a[40][36]=128.000000 smem_a[40][37]=128.000000 smem_a[40][38]=128.000000 smem_a[40][39]=128.000000 smem_a[40][40]=128.000000 smem_a[40][41]=128.000000 smem_a[40][42]=128.000000 smem_a[40][43]=128.000000 smem_a[40][44]=128.000000 smem_a[40][45]=128.000000 smem_a[40][46]=128.000000 smem_a[40][47]=128.000000 smem_a[40][48]=128.000000 smem_a[40][49]=128.000000 smem_a[40][50]=128.000000 smem_a[40][51]=128.000000 smem_a[40][52]=128.000000 smem_a[40][53]=128.000000 smem_a[40][54]=128.000000 smem_a[40][55]=128.000000 smem_a[40][56]=128.000000 smem_a[40][57]=128.000000 smem_a[40][58]=128.000000 smem_a[40][59]=128.000000 smem_a[40][60]=128.000000 smem_a[40][61]=128.000000 smem_a[40][62]=128.000000 smem_a[40][63]=128.000000 smem_a[40][64]=128.000000 smem_a[40][65]=128.000000 smem_a[40][66]=128.000000 smem_a[40][67]=128.000000 smem_a[40][68]=128.000000 smem_a[40][69]=128.000000 smem_a[40][70]=128.000000 smem_a[40][71]=128.000000 smem_a[40][72]=128.000000 smem_a[40][73]=128.000000 smem_a[40][74]=128.000000 smem_a[40][75]=128.000000 smem_a[40][76]=128.000000 smem_a[40][77]=128.000000 smem_a[40][78]=128.000000 smem_a[40][79]=128.000000 smem_a[40][80]=128.000000 smem_a[40][81]=128.000000 smem_a[40][82]=128.000000 smem_a[40][83]=128.000000 smem_a[40][84]=128.000000 smem_a[40][85]=128.000000 smem_a[40][86]=128.000000 smem_a[40][87]=128.000000 smem_a[40][88]=128.000000 smem_a[40][89]=128.000000 smem_a[40][90]=128.000000 smem_a[40][91]=128.000000 smem_a[40][92]=128.000000 smem_a[40][93]=128.000000 smem_a[40][94]=128.000000 smem_a[40][95]=128.000000 smem_a[40][96]=128.000000 smem_a[40][97]=128.000000 smem_a[40][98]=128.000000 smem_a[40][99]=128.000000 smem_a[40][100]=128.000000 smem_a[40][101]=128.000000 smem_a[40][102]=128.000000 smem_a[40][103]=128.000000 smem_a[40][104]=128.000000 smem_a[40][105]=128.000000 smem_a[40][106]=128.000000 smem_a[40][107]=128.000000 smem_a[40][108]=128.000000 smem_a[40][109]=128.000000 smem_a[40][110]=128.000000 smem_a[40][111]=128.000000 smem_a[40][112]=128.000000 smem_a[40][113]=128.000000 smem_a[40][114]=128.000000 smem_a[40][115]=128.000000 smem_a[40][116]=128.000000 smem_a[40][117]=128.000000 smem_a[40][118]=128.000000 smem_a[40][119]=128.000000 smem_a[40][120]=128.000000 smem_a[40][121]=128.000000 smem_a[40][122]=128.000000 smem_a[40][123]=128.000000 smem_a[40][124]=128.000000 smem_a[40][125]=128.000000 smem_a[40][126]=128.000000 smem_a[40][127]=128.000000 
smem_a[41][0]=128.000000 smem_a[41][1]=128.000000 smem_a[41][2]=128.000000 smem_a[41][3]=128.000000 smem_a[41][4]=128.000000 smem_a[41][5]=128.000000 smem_a[41][6]=128.000000 smem_a[41][7]=128.000000 smem_a[41][8]=128.000000 smem_a[41][9]=128.000000 smem_a[41][10]=128.000000 smem_a[41][11]=128.000000 smem_a[41][12]=128.000000 smem_a[41][13]=128.000000 smem_a[41][14]=128.000000 smem_a[41][15]=128.000000 smem_a[41][16]=128.000000 smem_a[41][17]=128.000000 smem_a[41][18]=128.000000 smem_a[41][19]=128.000000 smem_a[41][20]=128.000000 smem_a[41][21]=128.000000 smem_a[41][22]=128.000000 smem_a[41][23]=128.000000 smem_a[41][24]=128.000000 smem_a[41][25]=128.000000 smem_a[41][26]=128.000000 smem_a[41][27]=128.000000 smem_a[41][28]=128.000000 smem_a[41][29]=128.000000 smem_a[41][30]=128.000000 smem_a[41][31]=128.000000 smem_a[41][32]=128.000000 smem_a[41][33]=128.000000 smem_a[41][34]=128.000000 smem_a[41][35]=128.000000 smem_a[41][36]=128.000000 smem_a[41][37]=128.000000 smem_a[41][38]=128.000000 smem_a[41][39]=128.000000 smem_a[41][40]=128.000000 smem_a[41][41]=128.000000 smem_a[41][42]=128.000000 smem_a[41][43]=128.000000 smem_a[41][44]=128.000000 smem_a[41][45]=128.000000 smem_a[41][46]=128.000000 smem_a[41][47]=128.000000 smem_a[41][48]=128.000000 smem_a[41][49]=128.000000 smem_a[41][50]=128.000000 smem_a[41][51]=128.000000 smem_a[41][52]=128.000000 smem_a[41][53]=128.000000 smem_a[41][54]=128.000000 smem_a[41][55]=128.000000 smem_a[41][56]=128.000000 smem_a[41][57]=128.000000 smem_a[41][58]=128.000000 smem_a[41][59]=128.000000 smem_a[41][60]=128.000000 smem_a[41][61]=128.000000 smem_a[41][62]=128.000000 smem_a[41][63]=128.000000 smem_a[41][64]=128.000000 smem_a[41][65]=128.000000 smem_a[41][66]=128.000000 smem_a[41][67]=128.000000 smem_a[41][68]=128.000000 smem_a[41][69]=128.000000 smem_a[41][70]=128.000000 smem_a[41][71]=128.000000 smem_a[41][72]=128.000000 smem_a[41][73]=128.000000 smem_a[41][74]=128.000000 smem_a[41][75]=128.000000 smem_a[41][76]=128.000000 smem_a[41][77]=128.000000 smem_a[41][78]=128.000000 smem_a[41][79]=128.000000 smem_a[41][80]=128.000000 smem_a[41][81]=128.000000 smem_a[41][82]=128.000000 smem_a[41][83]=128.000000 smem_a[41][84]=128.000000 smem_a[41][85]=128.000000 smem_a[41][86]=128.000000 smem_a[41][87]=128.000000 smem_a[41][88]=128.000000 smem_a[41][89]=128.000000 smem_a[41][90]=128.000000 smem_a[41][91]=128.000000 smem_a[41][92]=128.000000 smem_a[41][93]=128.000000 smem_a[41][94]=128.000000 smem_a[41][95]=128.000000 smem_a[41][96]=128.000000 smem_a[41][97]=128.000000 smem_a[41][98]=128.000000 smem_a[41][99]=128.000000 smem_a[41][100]=128.000000 smem_a[41][101]=128.000000 smem_a[41][102]=128.000000 smem_a[41][103]=128.000000 smem_a[41][104]=128.000000 smem_a[41][105]=128.000000 smem_a[41][106]=128.000000 smem_a[41][107]=128.000000 smem_a[41][108]=128.000000 smem_a[41][109]=128.000000 smem_a[41][110]=128.000000 smem_a[41][111]=128.000000 smem_a[41][112]=128.000000 smem_a[41][113]=128.000000 smem_a[41][114]=128.000000 smem_a[41][115]=128.000000 smem_a[41][116]=128.000000 smem_a[41][117]=128.000000 smem_a[41][118]=128.000000 smem_a[41][119]=128.000000 smem_a[41][120]=128.000000 smem_a[41][121]=128.000000 smem_a[41][122]=128.000000 smem_a[41][123]=128.000000 smem_a[41][124]=128.000000 smem_a[41][125]=128.000000 smem_a[41][126]=128.000000 smem_a[41][127]=128.000000 
smem_a[42][0]=128.000000 smem_a[42][1]=128.000000 smem_a[42][2]=128.000000 smem_a[42][3]=128.000000 smem_a[42][4]=128.000000 smem_a[42][5]=128.000000 smem_a[42][6]=128.000000 smem_a[42][7]=128.000000 smem_a[42][8]=128.000000 smem_a[42][9]=128.000000 smem_a[42][10]=128.000000 smem_a[42][11]=128.000000 smem_a[42][12]=128.000000 smem_a[42][13]=128.000000 smem_a[42][14]=128.000000 smem_a[42][15]=128.000000 smem_a[42][16]=128.000000 smem_a[42][17]=128.000000 smem_a[42][18]=128.000000 smem_a[42][19]=128.000000 smem_a[42][20]=128.000000 smem_a[42][21]=128.000000 smem_a[42][22]=128.000000 smem_a[42][23]=128.000000 smem_a[42][24]=128.000000 smem_a[42][25]=128.000000 smem_a[42][26]=128.000000 smem_a[42][27]=128.000000 smem_a[42][28]=128.000000 smem_a[42][29]=128.000000 smem_a[42][30]=128.000000 smem_a[42][31]=128.000000 smem_a[42][32]=128.000000 smem_a[42][33]=128.000000 smem_a[42][34]=128.000000 smem_a[42][35]=128.000000 smem_a[42][36]=128.000000 smem_a[42][37]=128.000000 smem_a[42][38]=128.000000 smem_a[42][39]=128.000000 smem_a[42][40]=128.000000 smem_a[42][41]=128.000000 smem_a[42][42]=128.000000 smem_a[42][43]=128.000000 smem_a[42][44]=128.000000 smem_a[42][45]=128.000000 smem_a[42][46]=128.000000 smem_a[42][47]=128.000000 smem_a[42][48]=128.000000 smem_a[42][49]=128.000000 smem_a[42][50]=128.000000 smem_a[42][51]=128.000000 smem_a[42][52]=128.000000 smem_a[42][53]=128.000000 smem_a[42][54]=128.000000 smem_a[42][55]=128.000000 smem_a[42][56]=128.000000 smem_a[42][57]=128.000000 smem_a[42][58]=128.000000 smem_a[42][59]=128.000000 smem_a[42][60]=128.000000 smem_a[42][61]=128.000000 smem_a[42][62]=128.000000 smem_a[42][63]=128.000000 smem_a[42][64]=128.000000 smem_a[42][65]=128.000000 smem_a[42][66]=128.000000 smem_a[42][67]=128.000000 smem_a[42][68]=128.000000 smem_a[42][69]=128.000000 smem_a[42][70]=128.000000 smem_a[42][71]=128.000000 smem_a[42][72]=128.000000 smem_a[42][73]=128.000000 smem_a[42][74]=128.000000 smem_a[42][75]=128.000000 smem_a[42][76]=128.000000 smem_a[42][77]=128.000000 smem_a[42][78]=128.000000 smem_a[42][79]=128.000000 smem_a[42][80]=128.000000 smem_a[42][81]=128.000000 smem_a[42][82]=128.000000 smem_a[42][83]=128.000000 smem_a[42][84]=128.000000 smem_a[42][85]=128.000000 smem_a[42][86]=128.000000 smem_a[42][87]=128.000000 smem_a[42][88]=128.000000 smem_a[42][89]=128.000000 smem_a[42][90]=128.000000 smem_a[42][91]=128.000000 smem_a[42][92]=128.000000 smem_a[42][93]=128.000000 smem_a[42][94]=128.000000 smem_a[42][95]=128.000000 smem_a[42][96]=128.000000 smem_a[42][97]=128.000000 smem_a[42][98]=128.000000 smem_a[42][99]=128.000000 smem_a[42][100]=128.000000 smem_a[42][101]=128.000000 smem_a[42][102]=128.000000 smem_a[42][103]=128.000000 smem_a[42][104]=128.000000 smem_a[42][105]=128.000000 smem_a[42][106]=128.000000 smem_a[42][107]=128.000000 smem_a[42][108]=128.000000 smem_a[42][109]=128.000000 smem_a[42][110]=128.000000 smem_a[42][111]=128.000000 smem_a[42][112]=128.000000 smem_a[42][113]=128.000000 smem_a[42][114]=128.000000 smem_a[42][115]=128.000000 smem_a[42][116]=128.000000 smem_a[42][117]=128.000000 smem_a[42][118]=128.000000 smem_a[42][119]=128.000000 smem_a[42][120]=128.000000 smem_a[42][121]=128.000000 smem_a[42][122]=128.000000 smem_a[42][123]=128.000000 smem_a[42][124]=128.000000 smem_a[42][125]=128.000000 smem_a[42][126]=128.000000 smem_a[42][127]=128.000000 
smem_a[43][0]=128.000000 smem_a[43][1]=128.000000 smem_a[43][2]=128.000000 smem_a[43][3]=128.000000 smem_a[43][4]=128.000000 smem_a[43][5]=128.000000 smem_a[43][6]=128.000000 smem_a[43][7]=128.000000 smem_a[43][8]=128.000000 smem_a[43][9]=128.000000 smem_a[43][10]=128.000000 smem_a[43][11]=128.000000 smem_a[43][12]=128.000000 smem_a[43][13]=128.000000 smem_a[43][14]=128.000000 smem_a[43][15]=128.000000 smem_a[43][16]=128.000000 smem_a[43][17]=128.000000 smem_a[43][18]=128.000000 smem_a[43][19]=128.000000 smem_a[43][20]=128.000000 smem_a[43][21]=128.000000 smem_a[43][22]=128.000000 smem_a[43][23]=128.000000 smem_a[43][24]=128.000000 smem_a[43][25]=128.000000 smem_a[43][26]=128.000000 smem_a[43][27]=128.000000 smem_a[43][28]=128.000000 smem_a[43][29]=128.000000 smem_a[43][30]=128.000000 smem_a[43][31]=128.000000 smem_a[43][32]=128.000000 smem_a[43][33]=128.000000 smem_a[43][34]=128.000000 smem_a[43][35]=128.000000 smem_a[43][36]=128.000000 smem_a[43][37]=128.000000 smem_a[43][38]=128.000000 smem_a[43][39]=128.000000 smem_a[43][40]=128.000000 smem_a[43][41]=128.000000 smem_a[43][42]=128.000000 smem_a[43][43]=128.000000 smem_a[43][44]=128.000000 smem_a[43][45]=128.000000 smem_a[43][46]=128.000000 smem_a[43][47]=128.000000 smem_a[43][48]=128.000000 smem_a[43][49]=128.000000 smem_a[43][50]=128.000000 smem_a[43][51]=128.000000 smem_a[43][52]=128.000000 smem_a[43][53]=128.000000 smem_a[43][54]=128.000000 smem_a[43][55]=128.000000 smem_a[43][56]=128.000000 smem_a[43][57]=128.000000 smem_a[43][58]=128.000000 smem_a[43][59]=128.000000 smem_a[43][60]=128.000000 smem_a[43][61]=128.000000 smem_a[43][62]=128.000000 smem_a[43][63]=128.000000 smem_a[43][64]=128.000000 smem_a[43][65]=128.000000 smem_a[43][66]=128.000000 smem_a[43][67]=128.000000 smem_a[43][68]=128.000000 smem_a[43][69]=128.000000 smem_a[43][70]=128.000000 smem_a[43][71]=128.000000 smem_a[43][72]=128.000000 smem_a[43][73]=128.000000 smem_a[43][74]=128.000000 smem_a[43][75]=128.000000 smem_a[43][76]=128.000000 smem_a[43][77]=128.000000 smem_a[43][78]=128.000000 smem_a[43][79]=128.000000 smem_a[43][80]=128.000000 smem_a[43][81]=128.000000 smem_a[43][82]=128.000000 smem_a[43][83]=128.000000 smem_a[43][84]=128.000000 smem_a[43][85]=128.000000 smem_a[43][86]=128.000000 smem_a[43][87]=128.000000 smem_a[43][88]=128.000000 smem_a[43][89]=128.000000 smem_a[43][90]=128.000000 smem_a[43][91]=128.000000 smem_a[43][92]=128.000000 smem_a[43][93]=128.000000 smem_a[43][94]=128.000000 smem_a[43][95]=128.000000 smem_a[43][96]=128.000000 smem_a[43][97]=128.000000 smem_a[43][98]=128.000000 smem_a[43][99]=128.000000 smem_a[43][100]=128.000000 smem_a[43][101]=128.000000 smem_a[43][102]=128.000000 smem_a[43][103]=128.000000 smem_a[43][104]=128.000000 smem_a[43][105]=128.000000 smem_a[43][106]=128.000000 smem_a[43][107]=128.000000 smem_a[43][108]=128.000000 smem_a[43][109]=128.000000 smem_a[43][110]=128.000000 smem_a[43][111]=128.000000 smem_a[43][112]=128.000000 smem_a[43][113]=128.000000 smem_a[43][114]=128.000000 smem_a[43][115]=128.000000 smem_a[43][116]=128.000000 smem_a[43][117]=128.000000 smem_a[43][118]=128.000000 smem_a[43][119]=128.000000 smem_a[43][120]=128.000000 smem_a[43][121]=128.000000 smem_a[43][122]=128.000000 smem_a[43][123]=128.000000 smem_a[43][124]=128.000000 smem_a[43][125]=128.000000 smem_a[43][126]=128.000000 smem_a[43][127]=128.000000 
smem_a[44][0]=128.000000 smem_a[44][1]=128.000000 smem_a[44][2]=128.000000 smem_a[44][3]=128.000000 smem_a[44][4]=128.000000 smem_a[44][5]=128.000000 smem_a[44][6]=128.000000 smem_a[44][7]=128.000000 smem_a[44][8]=128.000000 smem_a[44][9]=128.000000 smem_a[44][10]=128.000000 smem_a[44][11]=128.000000 smem_a[44][12]=128.000000 smem_a[44][13]=128.000000 smem_a[44][14]=128.000000 smem_a[44][15]=128.000000 smem_a[44][16]=128.000000 smem_a[44][17]=128.000000 smem_a[44][18]=128.000000 smem_a[44][19]=128.000000 smem_a[44][20]=128.000000 smem_a[44][21]=128.000000 smem_a[44][22]=128.000000 smem_a[44][23]=128.000000 smem_a[44][24]=128.000000 smem_a[44][25]=128.000000 smem_a[44][26]=128.000000 smem_a[44][27]=128.000000 smem_a[44][28]=128.000000 smem_a[44][29]=128.000000 smem_a[44][30]=128.000000 smem_a[44][31]=128.000000 smem_a[44][32]=128.000000 smem_a[44][33]=128.000000 smem_a[44][34]=128.000000 smem_a[44][35]=128.000000 smem_a[44][36]=128.000000 smem_a[44][37]=128.000000 smem_a[44][38]=128.000000 smem_a[44][39]=128.000000 smem_a[44][40]=128.000000 smem_a[44][41]=128.000000 smem_a[44][42]=128.000000 smem_a[44][43]=128.000000 smem_a[44][44]=128.000000 smem_a[44][45]=128.000000 smem_a[44][46]=128.000000 smem_a[44][47]=128.000000 smem_a[44][48]=128.000000 smem_a[44][49]=128.000000 smem_a[44][50]=128.000000 smem_a[44][51]=128.000000 smem_a[44][52]=128.000000 smem_a[44][53]=128.000000 smem_a[44][54]=128.000000 smem_a[44][55]=128.000000 smem_a[44][56]=128.000000 smem_a[44][57]=128.000000 smem_a[44][58]=128.000000 smem_a[44][59]=128.000000 smem_a[44][60]=128.000000 smem_a[44][61]=128.000000 smem_a[44][62]=128.000000 smem_a[44][63]=128.000000 smem_a[44][64]=128.000000 smem_a[44][65]=128.000000 smem_a[44][66]=128.000000 smem_a[44][67]=128.000000 smem_a[44][68]=128.000000 smem_a[44][69]=128.000000 smem_a[44][70]=128.000000 smem_a[44][71]=128.000000 smem_a[44][72]=128.000000 smem_a[44][73]=128.000000 smem_a[44][74]=128.000000 smem_a[44][75]=128.000000 smem_a[44][76]=128.000000 smem_a[44][77]=128.000000 smem_a[44][78]=128.000000 smem_a[44][79]=128.000000 smem_a[44][80]=128.000000 smem_a[44][81]=128.000000 smem_a[44][82]=128.000000 smem_a[44][83]=128.000000 smem_a[44][84]=128.000000 smem_a[44][85]=128.000000 smem_a[44][86]=128.000000 smem_a[44][87]=128.000000 smem_a[44][88]=128.000000 smem_a[44][89]=128.000000 smem_a[44][90]=128.000000 smem_a[44][91]=128.000000 smem_a[44][92]=128.000000 smem_a[44][93]=128.000000 smem_a[44][94]=128.000000 smem_a[44][95]=128.000000 smem_a[44][96]=128.000000 smem_a[44][97]=128.000000 smem_a[44][98]=128.000000 smem_a[44][99]=128.000000 smem_a[44][100]=128.000000 smem_a[44][101]=128.000000 smem_a[44][102]=128.000000 smem_a[44][103]=128.000000 smem_a[44][104]=128.000000 smem_a[44][105]=128.000000 smem_a[44][106]=128.000000 smem_a[44][107]=128.000000 smem_a[44][108]=128.000000 smem_a[44][109]=128.000000 smem_a[44][110]=128.000000 smem_a[44][111]=128.000000 smem_a[44][112]=128.000000 smem_a[44][113]=128.000000 smem_a[44][114]=128.000000 smem_a[44][115]=128.000000 smem_a[44][116]=128.000000 smem_a[44][117]=128.000000 smem_a[44][118]=128.000000 smem_a[44][119]=128.000000 smem_a[44][120]=128.000000 smem_a[44][121]=128.000000 smem_a[44][122]=128.000000 smem_a[44][123]=128.000000 smem_a[44][124]=128.000000 smem_a[44][125]=128.000000 smem_a[44][126]=128.000000 smem_a[44][127]=128.000000 
smem_a[45][0]=128.000000 smem_a[45][1]=128.000000 smem_a[45][2]=128.000000 smem_a[45][3]=128.000000 smem_a[45][4]=128.000000 smem_a[45][5]=128.000000 smem_a[45][6]=128.000000 smem_a[45][7]=128.000000 smem_a[45][8]=128.000000 smem_a[45][9]=128.000000 smem_a[45][10]=128.000000 smem_a[45][11]=128.000000 smem_a[45][12]=128.000000 smem_a[45][13]=128.000000 smem_a[45][14]=128.000000 smem_a[45][15]=128.000000 smem_a[45][16]=128.000000 smem_a[45][17]=128.000000 smem_a[45][18]=128.000000 smem_a[45][19]=128.000000 smem_a[45][20]=128.000000 smem_a[45][21]=128.000000 smem_a[45][22]=128.000000 smem_a[45][23]=128.000000 smem_a[45][24]=128.000000 smem_a[45][25]=128.000000 smem_a[45][26]=128.000000 smem_a[45][27]=128.000000 smem_a[45][28]=128.000000 smem_a[45][29]=128.000000 smem_a[45][30]=128.000000 smem_a[45][31]=128.000000 smem_a[45][32]=128.000000 smem_a[45][33]=128.000000 smem_a[45][34]=128.000000 smem_a[45][35]=128.000000 smem_a[45][36]=128.000000 smem_a[45][37]=128.000000 smem_a[45][38]=128.000000 smem_a[45][39]=128.000000 smem_a[45][40]=128.000000 smem_a[45][41]=128.000000 smem_a[45][42]=128.000000 smem_a[45][43]=128.000000 smem_a[45][44]=128.000000 smem_a[45][45]=128.000000 smem_a[45][46]=128.000000 smem_a[45][47]=128.000000 smem_a[45][48]=128.000000 smem_a[45][49]=128.000000 smem_a[45][50]=128.000000 smem_a[45][51]=128.000000 smem_a[45][52]=128.000000 smem_a[45][53]=128.000000 smem_a[45][54]=128.000000 smem_a[45][55]=128.000000 smem_a[45][56]=128.000000 smem_a[45][57]=128.000000 smem_a[45][58]=128.000000 smem_a[45][59]=128.000000 smem_a[45][60]=128.000000 smem_a[45][61]=128.000000 smem_a[45][62]=128.000000 smem_a[45][63]=128.000000 smem_a[45][64]=128.000000 smem_a[45][65]=128.000000 smem_a[45][66]=128.000000 smem_a[45][67]=128.000000 smem_a[45][68]=128.000000 smem_a[45][69]=128.000000 smem_a[45][70]=128.000000 smem_a[45][71]=128.000000 smem_a[45][72]=128.000000 smem_a[45][73]=128.000000 smem_a[45][74]=128.000000 smem_a[45][75]=128.000000 smem_a[45][76]=128.000000 smem_a[45][77]=128.000000 smem_a[45][78]=128.000000 smem_a[45][79]=128.000000 smem_a[45][80]=128.000000 smem_a[45][81]=128.000000 smem_a[45][82]=128.000000 smem_a[45][83]=128.000000 smem_a[45][84]=128.000000 smem_a[45][85]=128.000000 smem_a[45][86]=128.000000 smem_a[45][87]=128.000000 smem_a[45][88]=128.000000 smem_a[45][89]=128.000000 smem_a[45][90]=128.000000 smem_a[45][91]=128.000000 smem_a[45][92]=128.000000 smem_a[45][93]=128.000000 smem_a[45][94]=128.000000 smem_a[45][95]=128.000000 smem_a[45][96]=128.000000 smem_a[45][97]=128.000000 smem_a[45][98]=128.000000 smem_a[45][99]=128.000000 smem_a[45][100]=128.000000 smem_a[45][101]=128.000000 smem_a[45][102]=128.000000 smem_a[45][103]=128.000000 smem_a[45][104]=128.000000 smem_a[45][105]=128.000000 smem_a[45][106]=128.000000 smem_a[45][107]=128.000000 smem_a[45][108]=128.000000 smem_a[45][109]=128.000000 smem_a[45][110]=128.000000 smem_a[45][111]=128.000000 smem_a[45][112]=128.000000 smem_a[45][113]=128.000000 smem_a[45][114]=128.000000 smem_a[45][115]=128.000000 smem_a[45][116]=128.000000 smem_a[45][117]=128.000000 smem_a[45][118]=128.000000 smem_a[45][119]=128.000000 smem_a[45][120]=128.000000 smem_a[45][121]=128.000000 smem_a[45][122]=128.000000 smem_a[45][123]=128.000000 smem_a[45][124]=128.000000 smem_a[45][125]=128.000000 smem_a[45][126]=128.000000 smem_a[45][127]=128.000000 
smem_a[46][0]=128.000000 smem_a[46][1]=128.000000 smem_a[46][2]=128.000000 smem_a[46][3]=128.000000 smem_a[46][4]=128.000000 smem_a[46][5]=128.000000 smem_a[46][6]=128.000000 smem_a[46][7]=128.000000 smem_a[46][8]=128.000000 smem_a[46][9]=128.000000 smem_a[46][10]=128.000000 smem_a[46][11]=128.000000 smem_a[46][12]=128.000000 smem_a[46][13]=128.000000 smem_a[46][14]=128.000000 smem_a[46][15]=128.000000 smem_a[46][16]=128.000000 smem_a[46][17]=128.000000 smem_a[46][18]=128.000000 smem_a[46][19]=128.000000 smem_a[46][20]=128.000000 smem_a[46][21]=128.000000 smem_a[46][22]=128.000000 smem_a[46][23]=128.000000 smem_a[46][24]=128.000000 smem_a[46][25]=128.000000 smem_a[46][26]=128.000000 smem_a[46][27]=128.000000 smem_a[46][28]=128.000000 smem_a[46][29]=128.000000 smem_a[46][30]=128.000000 smem_a[46][31]=128.000000 smem_a[46][32]=128.000000 smem_a[46][33]=128.000000 smem_a[46][34]=128.000000 smem_a[46][35]=128.000000 smem_a[46][36]=128.000000 smem_a[46][37]=128.000000 smem_a[46][38]=128.000000 smem_a[46][39]=128.000000 smem_a[46][40]=128.000000 smem_a[46][41]=128.000000 smem_a[46][42]=128.000000 smem_a[46][43]=128.000000 smem_a[46][44]=128.000000 smem_a[46][45]=128.000000 smem_a[46][46]=128.000000 smem_a[46][47]=128.000000 smem_a[46][48]=128.000000 smem_a[46][49]=128.000000 smem_a[46][50]=128.000000 smem_a[46][51]=128.000000 smem_a[46][52]=128.000000 smem_a[46][53]=128.000000 smem_a[46][54]=128.000000 smem_a[46][55]=128.000000 smem_a[46][56]=128.000000 smem_a[46][57]=128.000000 smem_a[46][58]=128.000000 smem_a[46][59]=128.000000 smem_a[46][60]=128.000000 smem_a[46][61]=128.000000 smem_a[46][62]=128.000000 smem_a[46][63]=128.000000 smem_a[46][64]=128.000000 smem_a[46][65]=128.000000 smem_a[46][66]=128.000000 smem_a[46][67]=128.000000 smem_a[46][68]=128.000000 smem_a[46][69]=128.000000 smem_a[46][70]=128.000000 smem_a[46][71]=128.000000 smem_a[46][72]=128.000000 smem_a[46][73]=128.000000 smem_a[46][74]=128.000000 smem_a[46][75]=128.000000 smem_a[46][76]=128.000000 smem_a[46][77]=128.000000 smem_a[46][78]=128.000000 smem_a[46][79]=128.000000 smem_a[46][80]=128.000000 smem_a[46][81]=128.000000 smem_a[46][82]=128.000000 smem_a[46][83]=128.000000 smem_a[46][84]=128.000000 smem_a[46][85]=128.000000 smem_a[46][86]=128.000000 smem_a[46][87]=128.000000 smem_a[46][88]=128.000000 smem_a[46][89]=128.000000 smem_a[46][90]=128.000000 smem_a[46][91]=128.000000 smem_a[46][92]=128.000000 smem_a[46][93]=128.000000 smem_a[46][94]=128.000000 smem_a[46][95]=128.000000 smem_a[46][96]=128.000000 smem_a[46][97]=128.000000 smem_a[46][98]=128.000000 smem_a[46][99]=128.000000 smem_a[46][100]=128.000000 smem_a[46][101]=128.000000 smem_a[46][102]=128.000000 smem_a[46][103]=128.000000 smem_a[46][104]=128.000000 smem_a[46][105]=128.000000 smem_a[46][106]=128.000000 smem_a[46][107]=128.000000 smem_a[46][108]=128.000000 smem_a[46][109]=128.000000 smem_a[46][110]=128.000000 smem_a[46][111]=128.000000 smem_a[46][112]=128.000000 smem_a[46][113]=128.000000 smem_a[46][114]=128.000000 smem_a[46][115]=128.000000 smem_a[46][116]=128.000000 smem_a[46][117]=128.000000 smem_a[46][118]=128.000000 smem_a[46][119]=128.000000 smem_a[46][120]=128.000000 smem_a[46][121]=128.000000 smem_a[46][122]=128.000000 smem_a[46][123]=128.000000 smem_a[46][124]=128.000000 smem_a[46][125]=128.000000 smem_a[46][126]=128.000000 smem_a[46][127]=128.000000 
smem_a[47][0]=128.000000 smem_a[47][1]=128.000000 smem_a[47][2]=128.000000 smem_a[47][3]=128.000000 smem_a[47][4]=128.000000 smem_a[47][5]=128.000000 smem_a[47][6]=128.000000 smem_a[47][7]=128.000000 smem_a[47][8]=128.000000 smem_a[47][9]=128.000000 smem_a[47][10]=128.000000 smem_a[47][11]=128.000000 smem_a[47][12]=128.000000 smem_a[47][13]=128.000000 smem_a[47][14]=128.000000 smem_a[47][15]=128.000000 smem_a[47][16]=128.000000 smem_a[47][17]=128.000000 smem_a[47][18]=128.000000 smem_a[47][19]=128.000000 smem_a[47][20]=128.000000 smem_a[47][21]=128.000000 smem_a[47][22]=128.000000 smem_a[47][23]=128.000000 smem_a[47][24]=128.000000 smem_a[47][25]=128.000000 smem_a[47][26]=128.000000 smem_a[47][27]=128.000000 smem_a[47][28]=128.000000 smem_a[47][29]=128.000000 smem_a[47][30]=128.000000 smem_a[47][31]=128.000000 smem_a[47][32]=128.000000 smem_a[47][33]=128.000000 smem_a[47][34]=128.000000 smem_a[47][35]=128.000000 smem_a[47][36]=128.000000 smem_a[47][37]=128.000000 smem_a[47][38]=128.000000 smem_a[47][39]=128.000000 smem_a[47][40]=128.000000 smem_a[47][41]=128.000000 smem_a[47][42]=128.000000 smem_a[47][43]=128.000000 smem_a[47][44]=128.000000 smem_a[47][45]=128.000000 smem_a[47][46]=128.000000 smem_a[47][47]=128.000000 smem_a[47][48]=128.000000 smem_a[47][49]=128.000000 smem_a[47][50]=128.000000 smem_a[47][51]=128.000000 smem_a[47][52]=128.000000 smem_a[47][53]=128.000000 smem_a[47][54]=128.000000 smem_a[47][55]=128.000000 smem_a[47][56]=128.000000 smem_a[47][57]=128.000000 smem_a[47][58]=128.000000 smem_a[47][59]=128.000000 smem_a[47][60]=128.000000 smem_a[47][61]=128.000000 smem_a[47][62]=128.000000 smem_a[47][63]=128.000000 smem_a[47][64]=128.000000 smem_a[47][65]=128.000000 smem_a[47][66]=128.000000 smem_a[47][67]=128.000000 smem_a[47][68]=128.000000 smem_a[47][69]=128.000000 smem_a[47][70]=128.000000 smem_a[47][71]=128.000000 smem_a[47][72]=128.000000 smem_a[47][73]=128.000000 smem_a[47][74]=128.000000 smem_a[47][75]=128.000000 smem_a[47][76]=128.000000 smem_a[47][77]=128.000000 smem_a[47][78]=128.000000 smem_a[47][79]=128.000000 smem_a[47][80]=128.000000 smem_a[47][81]=128.000000 smem_a[47][82]=128.000000 smem_a[47][83]=128.000000 smem_a[47][84]=128.000000 smem_a[47][85]=128.000000 smem_a[47][86]=128.000000 smem_a[47][87]=128.000000 smem_a[47][88]=128.000000 smem_a[47][89]=128.000000 smem_a[47][90]=128.000000 smem_a[47][91]=128.000000 smem_a[47][92]=128.000000 smem_a[47][93]=128.000000 smem_a[47][94]=128.000000 smem_a[47][95]=128.000000 smem_a[47][96]=128.000000 smem_a[47][97]=128.000000 smem_a[47][98]=128.000000 smem_a[47][99]=128.000000 smem_a[47][100]=128.000000 smem_a[47][101]=128.000000 smem_a[47][102]=128.000000 smem_a[47][103]=128.000000 smem_a[47][104]=128.000000 smem_a[47][105]=128.000000 smem_a[47][106]=128.000000 smem_a[47][107]=128.000000 smem_a[47][108]=128.000000 smem_a[47][109]=128.000000 smem_a[47][110]=128.000000 smem_a[47][111]=128.000000 smem_a[47][112]=128.000000 smem_a[47][113]=128.000000 smem_a[47][114]=128.000000 smem_a[47][115]=128.000000 smem_a[47][116]=128.000000 smem_a[47][117]=128.000000 smem_a[47][118]=128.000000 smem_a[47][119]=128.000000 smem_a[47][120]=128.000000 smem_a[47][121]=128.000000 smem_a[47][122]=128.000000 smem_a[47][123]=128.000000 smem_a[47][124]=128.000000 smem_a[47][125]=128.000000 smem_a[47][126]=128.000000 smem_a[47][127]=128.000000 

Please note that in these forums, ā€˜*ā€™ is used for markup: *italics* ā†’ italics, **bold** ā†’ bold. So when you use an asterisk in regular text, for example ā€œcompute a * b and c + dā€, you need to escape the * with a preceding back slash, i.e. use \*. Otherwise your text becomes unreadable rather quickly.

Please note that the default printf() FIFO size is 1MB according to my memory, as I stated. My recollection may be wrong. You would be well advised to consult the documentation to make sure.

I do not know how exactly device-side printf fills the printf- FIFO (that is an undocumented implementation detail), but it is safe to assume that it needs to store the formatting string and all of the data passed to printf() according to the format specifiers, plus some amount of length information and/or argument count and/or separation markers. In your example that means that each instance of printf() at minimum consumes more than 30 bytes. So it is not inconceivable that the FIFO size is insufficient to store the data for 16384 printf() calls in the case of a 128 x 128 configuration.

Note that in the expression 128*1024*1024*1024*1024 each integer constant is of type int, and that the mathematical value of the expression (by far) exceeds what is representable with an int: [-231, 231-1]. In C++, and thus CUDA, overflowing the value range of signed integer type like int delivers an undefined result. So what is passed to cudaDeviceSetLimit() in this code is unknown but certainly not what was intended.

Note that the code as-is attempts to request a FIFO size of 1.4Ɨ1014 bytes. Not even the largest GPUs have that much on-board memory. This highlights another issue: The return status of the call to cudaDeviceSetLimit() is not checked!

1 Like

Thank you!!! Well, I can search how large is graphic memory, or shared memory per SM, but what is the keyword I should search, for this printf bufferā€¦?

If you cannot readily find this information in the docs, the CUDA runtime will happily tell you what it is:

#include <cstdio>
#include <cstdlib>
int main (void)
{
    size_t limit = 0;
    cudaDeviceGetLimit (&limit, cudaLimitPrintfFifoSize);
    printf ("cudaPrintfFifoSize: %llu\n", (unsigned long long int)limit);
    return EXIT_SUCCESS;
}

On my system, this prints:

cudaPrintfFifoSize: 1048576

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.