mirror of
https://github.com/saymrwulf/onnxruntime.git
synced 2026-06-03 23:49:44 +00:00
Support creating sessions using DML EP via C# (#4955)
This commit is contained in:
parent
7080e485a3
commit
64d52ae47d
3 changed files with 20 additions and 3 deletions
|
|
@ -512,6 +512,9 @@ namespace Microsoft.ML.OnnxRuntime
|
|||
[DllImport(nativeLib, CharSet = charSet)]
|
||||
public static extern IntPtr /*(OrtStatus*)*/ OrtSessionOptionsAppendExecutionProvider_CUDA(IntPtr /*(OrtSessionOptions*) */ options, int device_id);
|
||||
|
||||
[DllImport(nativeLib, CharSet = charSet)]
|
||||
public static extern IntPtr /*(OrtStatus*)*/ OrtSessionOptionsAppendExecutionProvider_Dml(IntPtr /*(OrtSessionOptions*) */ options, int device_id);
|
||||
|
||||
[DllImport(nativeLib, CharSet = charSet)]
|
||||
public static extern IntPtr /*(OrtStatus*)*/ OrtSessionOptionsAppendExecutionProvider_NGraph(IntPtr /*(OrtSessionOptions*) */ options, string /*(const char*)*/ ng_backend_type);
|
||||
|
||||
|
|
|
|||
|
|
@ -69,8 +69,8 @@ namespace Microsoft.ML.OnnxRuntime
|
|||
{
|
||||
CheckCudaExecutionProviderDLLs();
|
||||
SessionOptions options = new SessionOptions();
|
||||
NativeMethods.OrtSessionOptionsAppendExecutionProvider_CUDA(options.Handle, deviceId);
|
||||
NativeMethods.OrtSessionOptionsAppendExecutionProvider_CPU(options.Handle, 1);
|
||||
NativeApiStatus.VerifySuccess(NativeMethods.OrtSessionOptionsAppendExecutionProvider_CUDA(options.Handle, deviceId));
|
||||
NativeApiStatus.VerifySuccess(NativeMethods.OrtSessionOptionsAppendExecutionProvider_CPU(options.Handle, 1));
|
||||
return options;
|
||||
}
|
||||
|
||||
|
|
@ -83,7 +83,7 @@ namespace Microsoft.ML.OnnxRuntime
|
|||
public static SessionOptions MakeSessionOptionWithNupharProvider(String settings = "")
|
||||
{
|
||||
SessionOptions options = new SessionOptions();
|
||||
NativeMethods.OrtSessionOptionsAppendExecutionProvider_Nuphar(options.Handle, 1, settings);
|
||||
NativeApiStatus.VerifySuccess(NativeMethods.OrtSessionOptionsAppendExecutionProvider_Nuphar(options.Handle, 1, settings));
|
||||
return options;
|
||||
}
|
||||
|
||||
|
|
@ -111,6 +111,14 @@ namespace Microsoft.ML.OnnxRuntime
|
|||
NativeApiStatus.VerifySuccess(NativeMethods.OrtSessionOptionsAppendExecutionProvider_CUDA(handle, deviceId));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Use only if you have the onnxruntime package specific to this Execution Provider.
|
||||
/// </summary>
|
||||
public void AppendExecutionProvider_Dml(int deviceId)
|
||||
{
|
||||
NativeApiStatus.VerifySuccess(NativeMethods.OrtSessionOptionsAppendExecutionProvider_Dml(handle, deviceId));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Use only if you have the onnxruntime package specific to this Execution Provider.
|
||||
/// </summary>
|
||||
|
|
|
|||
|
|
@ -91,6 +91,9 @@ namespace Microsoft.ML.OnnxRuntime.Tests
|
|||
#if USE_CUDA
|
||||
opt.AppendExecutionProvider_CUDA(0);
|
||||
#endif
|
||||
#if USE_DML
|
||||
opt.AppendExecutionProvider_Dml(0);
|
||||
#endif
|
||||
#if USE_NGRAPH
|
||||
opt.AppendExecutionProvider_NGraph("CPU"); //TODO: this API should be refined
|
||||
#endif
|
||||
|
|
@ -1830,6 +1833,9 @@ namespace Microsoft.ML.OnnxRuntime.Tests
|
|||
#if USE_CUDA
|
||||
,"OrtSessionOptionsAppendExecutionProvider_CUDA"
|
||||
#endif
|
||||
#if USE_DML
|
||||
,"OrtSessionOptionsAppendExecutionProvider_Dml"
|
||||
#endif
|
||||
#if USE_NGRAPH
|
||||
,"OrtSessionOptionsAppendExecutionProvider_NGraph"
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Reference in a new issue