diff --git a/Source/YoloV8/Builder/IYoloV8Builder.cs b/Source/YoloV8/Builder/IYoloV8Builder.cs index ac74998..4030403 100644 --- a/Source/YoloV8/Builder/IYoloV8Builder.cs +++ b/Source/YoloV8/Builder/IYoloV8Builder.cs @@ -6,17 +6,20 @@ public interface IYoloV8Builder #if GPURELEASE - public IYoloV8Builder UseCuda(int deviceId = 0); + public IYoloV8Builder UseCuda(int deviceId = 0); + public IYoloV8Builder UseCuda(OrtCUDAProviderOptions options); - public IYoloV8Builder UseRocm(int deviceId = 0); + public IYoloV8Builder UseRocm(int deviceId = 0); + public IYoloV8Builder UseRocm(OrtROCMProviderOptions options); - public IYoloV8Builder UseTensorrt(int deviceId = 0); + public IYoloV8Builder UseTensorrt(int deviceId = 0); + public IYoloV8Builder UseTensorrt(OrtTensorRTProviderOptions options); - public IYoloV8Builder UseTvm(string settings = ""); + public IYoloV8Builder UseTvm(string settings = ""); #endif - public IYoloV8Builder WithMetadata(YoloV8Metadata metadata); + public IYoloV8Builder WithMetadata(YoloV8Metadata metadata); public IYoloV8Builder WithConfiguration(Action configure); diff --git a/Source/YoloV8/Builder/YoloV8Builder.cs b/Source/YoloV8/Builder/YoloV8Builder.cs index 6ee898e..21700da 100644 --- a/Source/YoloV8/Builder/YoloV8Builder.cs +++ b/Source/YoloV8/Builder/YoloV8Builder.cs @@ -39,13 +39,16 @@ public IYoloV8Builder UseOnnxModel(BinarySelector model) #if GPURELEASE - public IYoloV8Builder UseCuda(int deviceId) => WithSessionOptions(SessionOptions.MakeSessionOptionWithCudaProvider(deviceId)); + public IYoloV8Builder UseCuda(int deviceId) => WithSessionOptions(SessionOptions.MakeSessionOptionWithCudaProvider(deviceId)); + public IYoloV8Builder UseCuda(OrtCUDAProviderOptions options) => WithSessionOptions(SessionOptions.MakeSessionOptionWithCudaProvider(options)); - public IYoloV8Builder UseRocm(int deviceId) => WithSessionOptions(SessionOptions.MakeSessionOptionWithRocmProvider(deviceId)); + public IYoloV8Builder UseRocm(int deviceId) => WithSessionOptions(SessionOptions.MakeSessionOptionWithRocmProvider(deviceId)); + public IYoloV8Builder UseRocm(OrtROCMProviderOptions options) => WithSessionOptions(SessionOptions.MakeSessionOptionWithRocmProvider(options)); - public IYoloV8Builder UseTensorrt(int deviceId) => WithSessionOptions(SessionOptions.MakeSessionOptionWithTensorrtProvider(deviceId)); + public IYoloV8Builder UseTensorrt(int deviceId) => WithSessionOptions(SessionOptions.MakeSessionOptionWithTensorrtProvider(deviceId)); + public IYoloV8Builder UseTensorrt(OrtTensorRTProviderOptions options) => WithSessionOptions(SessionOptions.MakeSessionOptionWithTensorrtProvider(options)); - public IYoloV8Builder UseTvm(string settings = "") => WithSessionOptions(SessionOptions.MakeSessionOptionWithTvmProvider(settings)); + public IYoloV8Builder UseTvm(string settings = "") => WithSessionOptions(SessionOptions.MakeSessionOptionWithTvmProvider(settings)); #endif