Skip to content

Runtime burst compilation warning on Tensor<float>.Upload #29

@filterdev

Description

@filterdev

Using Inference Engine 2.3.0 in Unity 6000.2.

I am receiving a warning only the very first time I upload new Tensor data to a Tensor:

TextureConverter.ToTensor( input, inputImageTensor, new TextureTransform( ));
//no warning after this

await Task.Delay( 10000 );

var queryPointNormalized = new Vector2((( float ) queryPoint.x ) / input.width, (( float ) queryPoint.y ) / input.height );
decoderInputs[ "point_coords" ].Upload( new float[ ]{ queryPointNormalized.x * 1024, queryPointNormalized.y * 1024 });
decoderInputs[ "orig_im_size" ].Upload( new float[ ]{ input.height, input.width });
//warning throws after this

await Task.Delay( 10000 );

await RunScheduleInChunks( encoder.ScheduleIterable( inputImageTensor ), encoderMaxLayersPerFrame );

decoder.SetInput( "image_embeddings", encoder.PeekOutput( "embeddings" ) as Tensor< float >); 
await RunScheduleInChunks( decoder.ScheduleIterable( ), decoderMaxLayersPerFrame );
TextureConverter.RenderToTexture( decoder.PeekOutput( "masks" ) as Tensor< float >, output, outputTransform );
var request = await AsyncGPUReadback.RequestAsync( output );

The warning:

Compilation was requested for method Unity.Jobs.IJobExtensions+JobStruct1[[Unity.InferenceEngine.CPUBackend+CopyJob1[[System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], Unity.InferenceEngine, Version=2.3.0.0, Culture=neutral, PublicKeyToken=null]], UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null::Execute(Unity.InferenceEngine.CPUBackend+CopyJob1[[System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]&, Unity.InferenceEngine, Version=2.3.0.0, Culture=neutral, PublicKeyToken=null|System.IntPtr, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089|System.IntPtr, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089|Unity.Jobs.LowLevel.Unsafe.JobRanges&, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null|System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089)` but it is not a known Burst entry point. This may be because the [BurstCompile] method is defined in a generic class, and the generic class is not instantiated with concrete types anywhere in your code.

Subsequent uploads do not trigger the warning again. Any ideas why this happens and how it can be fixed?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions