Interface ISharedTensorHandle

Namespace
NT2I.ONNX.Abstractions.Interfaces.Hub
Assembly
NT2I.ONNX.Abstractions.dll

Handle léger refcompté représentant un tenseur de pré-traitement partagé entre plusieurs modèles ONNX. Le buffer sous-jacent (CPU float[] ou pointeur GPU) reste la propriété du SharedImageContext émetteur ; l'Dispose() du handle se contente de décrémenter le refcount, sans libérer la mémoire elle-même.

Le handle ne possède pas l'OrtValue qui le wrappera côté moteur d'inférence : chaque OnnxEngine consommateur crée son propre OrtValue par-dessus le pointeur (via OrtValueHelper.FromCudaPointer ou FromCpuBuffer). Cela évite tout problème de double-Dispose lié au ClearInput() de l'engine.

Utilisé conjointement avec GetTensor(IModelInputRequirements).

public interface ISharedTensorHandle : IDisposable
Inherited Members

Properties

CpuBuffer

Buffer CPU contenant le tenseur pré-traité. Valide uniquement lorsque Device vaut CPU.

float[]? CpuBuffer { get; }

Property Value

float[]

Device

Périphérique sur lequel le tenseur réside (CPU = CpuBuffer valide, GPU = DevicePointer valide).

DataHandlingDeviceEnum Device { get; }

Property Value

DataHandlingDeviceEnum

DevicePointer

Pointeur GPU vers le buffer pré-traité. Valide uniquement lorsque Device vaut GPU.

nint DevicePointer { get; }

Property Value

nint

ReferenceCount

Indique combien de consommateurs détiennent encore une référence active sur ce handle. Le buffer sous-jacent ne peut être réellement libéré (par le contexte propriétaire) que lorsque ce compteur retombe à zéro.

int ReferenceCount { get; }

Property Value

int

Shape

Forme du tenseur, conventionnellement [batchSize, channels, height, width].

long[] Shape { get; }

Property Value

long[]