Class OrtMemoryInfo
This class encapsulates and most of the time owns the underlying native OrtMemoryInfo instance. Instance returned from OrtAllocator will not own OrtMemoryInfo, the class must be disposed regardless.
Use this class to query and create OrtAllocator instances so you can pre-allocate memory for model inputs/outputs and use it for binding. Instances of the class can also used to created OrtValues bound to pre-allocated memory. In that case, the instance of OrtMemoryInfo contains the information about the allocator used to allocate the underlying memory.
Inheritance
Namespace: Microsoft.ML.OnnxRuntime
Assembly: Microsoft.ML.OnnxRuntime.dll
Syntax
public class OrtMemoryInfo : SafeHandle
Constructors
| Improve this Doc View SourceOrtMemoryInfo(Byte[], OrtAllocatorType, Int32, OrtMemType)
Create an instance of OrtMemoryInfo according to the specification Memory info instances are usually used to get a handle of a native allocator that is present within the current inference session object. That, in turn, depends of what execution providers are available within the binary that you are using and are registered with Add methods.
Declaration
public OrtMemoryInfo(byte[] utf8AllocatorName, OrtAllocatorType allocatorType, int deviceId, OrtMemType memoryType)
Parameters
Type | Name | Description |
---|---|---|
Byte[] | utf8AllocatorName | Allocator name. Use of the predefined above. |
OrtAllocatorType | allocatorType | Allocator type |
System.Int32 | deviceId | Device id |
OrtMemType | memoryType | Memory type |
OrtMemoryInfo(String, OrtAllocatorType, Int32, OrtMemType)
Create an instance of OrtMemoryInfo according to the specification.
Declaration
public OrtMemoryInfo(string allocatorName, OrtAllocatorType allocatorType, int deviceId, OrtMemType memoryType)
Parameters
Type | Name | Description |
---|---|---|
System.String | allocatorName | Allocator name |
OrtAllocatorType | allocatorType | Allocator type |
System.Int32 | deviceId | Device id |
OrtMemType | memoryType | Memory type |
Fields
| Improve this Doc View SourceallocatorCPU
Predefined utf8 encoded allocator names. Use them to construct an instance of OrtMemoryInfo to avoid UTF-16 to UTF-8 conversion costs.
Declaration
public static readonly byte[] allocatorCPU
Field Value
Type | Description |
---|---|
Byte[] |
allocatorCUDA
Predefined utf8 encoded allocator names. Use them to construct an instance of OrtMemoryInfo to avoid UTF-16 to UTF-8 conversion costs.
Declaration
public static readonly byte[] allocatorCUDA
Field Value
Type | Description |
---|---|
Byte[] |
allocatorCUDA_PINNED
Predefined utf8 encoded allocator names. Use them to construct an instance of OrtMemoryInfo to avoid UTF-16 to UTF-8 conversion costs.
Declaration
public static readonly byte[] allocatorCUDA_PINNED
Field Value
Type | Description |
---|---|
Byte[] |
allocatorHIP
Predefined utf8 encoded allocator names. Use them to construct an instance of OrtMemoryInfo to avoid UTF-16 to UTF-8 conversion costs.
Declaration
public static readonly byte[] allocatorHIP
Field Value
Type | Description |
---|---|
Byte[] |
allocatorHIP_PINNED
Predefined utf8 encoded allocator names. Use them to construct an instance of OrtMemoryInfo to avoid UTF-16 to UTF-8 conversion costs.
Declaration
public static readonly byte[] allocatorHIP_PINNED
Field Value
Type | Description |
---|---|
Byte[] |
Properties
| Improve this Doc View SourceDefaultInstance
Default CPU based instance
Declaration
public static OrtMemoryInfo DefaultInstance { get; }
Property Value
Type | Description |
---|---|
OrtMemoryInfo | Singleton instance of a CpuMemoryInfo |
Id
Returns device ID
Declaration
public int Id { get; }
Property Value
Type | Description |
---|---|
System.Int32 | returns integer Id value |
IsInvalid
Overrides SafeHandle.IsInvalid
Declaration
public override bool IsInvalid { get; }
Property Value
Type | Description |
---|---|
System.Boolean | returns true if handle is equal to Zero |
Name
Name of the allocator associated with the OrtMemoryInfo instance
Declaration
public string Name { get; }
Property Value
Type | Description |
---|---|
System.String |
Methods
| Improve this Doc View SourceEquals(OrtMemoryInfo)
Compares this instance with another
Declaration
public bool Equals(OrtMemoryInfo other)
Parameters
Type | Name | Description |
---|---|---|
OrtMemoryInfo | other | OrtMemoryInfo to compare to |
Returns
Type | Description |
---|---|
System.Boolean | true if instances are equal according to OrtCompareMemoryInfo. |
Equals(Object)
Overrides System.Object.Equals(object)
Declaration
public override bool Equals(object obj)
Parameters
Type | Name | Description |
---|---|---|
System.Object | obj | object to compare to |
Returns
Type | Description |
---|---|
System.Boolean | true if obj is an instance of OrtMemoryInfo and is equal to this |
GetAllocatorType()
Fetches allocator type from the underlying OrtAllocator
Declaration
public OrtAllocatorType GetAllocatorType()
Returns
Type | Description |
---|---|
OrtAllocatorType | Returns allocator type |
GetHashCode()
Overrides System.Object.GetHashCode()
Declaration
public override int GetHashCode()
Returns
Type | Description |
---|---|
System.Int32 | integer hash value |
GetMemoryType()
The below 2 are really properties but naming them is a challenge as names would conflict with the returned type. Also, there are native calls behind them so exposing them as Get() would be appropriate.
Declaration
public OrtMemType GetMemoryType()
Returns
Type | Description |
---|---|
OrtMemType | OrtMemoryType for the instance |
ReleaseHandle()
Overrides SafeHandle.ReleaseHandle() to properly dispose of the native instance of OrtMmeoryInfo
Declaration
protected override bool ReleaseHandle()
Returns
Type | Description |
---|---|
System.Boolean | always returns true |