cancel
Showing results for 
Search instead for 
Did you mean: 

Archives Discussions

riza_guntur
Journeyman III

Strange brcc behavior

I tried to compile:

kernel void myufy(int input_position, float4 fuzzy_input[][],float4 vec_ref[][], float3 myu<>)
{
    int2 index = instance().xy;
    if( fuzzy_input[input_position][index.x].x == vec_ref[index.y][index.x].x )
    {
    }
    else
    {
    }
}

I know the kernel I built doesn't have output streams, but brcc was compiling without showing when will finish compiling or any issues of error or anything. Windows Task Manager showed brcc active using 1 core in full utilization for a long time until I canceled the operation. After that I revised my code then it works beautifully.

Is it a bug? At first I thought mine had a hardware failure >.<

0 Likes
4 Replies
Raistmer
Adept II

AFAIK, by default Brook+ defines domain of execution basing on size of output stream. There is no output stream => undefined execution domain.
Try to add explicit definition for execution domain.
0 Likes

How to do that?

0 Likes

Smth like this.
Look Stream manual for execution domain description too.

GPU_coadd_kernel4.domainOffset(uint4(0,0,0,0)); GPU_coadd_kernel4.domainSize(uint4(1,thread_num_coadd,1,1)); GPU_coadd_kernel4(*gpu_temp_coadd_old,*gpu_temp_coadd_working_length,*gpu_temp_coadd);

0 Likes

The problem is, if it can't be compiled, how to define such domain? I'm confused.

Those code to define the domain supposedly to work in host code right? .br resides in another code and another compiler, so I think it might be a brcc's bug.

0 Likes