mirror of
https://github.com/saymrwulf/onnxruntime.git
synced 2026-07-28 20:11:22 +00:00
Fix CUDA/DML package exception caused by ENABLE_CUDA_NHWC_OPS (#22851)
### Description Now, ENABLE_CUDA_NHWC_OPS is enabled by default. It adds a new chance to create cuda provider while both cuda/dml are enabled ### Motivation and Context <!-- - Why is this change required? What problem does it solve? - If it fixes an open issue, please link to the issue here. -->
This commit is contained in:
parent
101ed10e5e
commit
135d8b2beb
3 changed files with 17 additions and 0 deletions
|
|
@ -201,6 +201,16 @@ TEST(LoraAdapterTest, Load) {
|
|||
|
||||
#ifdef USE_CUDA
|
||||
TEST(LoraAdapterTest, VerifyDeviceCopy) {
|
||||
// These checks for CUDA/DML combined Package, Be careful when you want to remove it!
|
||||
if (DefaultCudaExecutionProvider() == nullptr) {
|
||||
GTEST_SKIP() << "Skip This Test Due to this EP is null";
|
||||
}
|
||||
#ifdef USE_DML
|
||||
if (DefaultDmlExecutionProvider() != nullptr) {
|
||||
GTEST_FAIL() << "It should not run with DML EP";
|
||||
}
|
||||
#endif
|
||||
|
||||
auto cpu_ep = DefaultCpuExecutionProvider();
|
||||
auto cpu_allocator = cpu_ep->CreatePreferredAllocators()[0];
|
||||
auto cuda_ep = DefaultCudaExecutionProvider();
|
||||
|
|
|
|||
|
|
@ -140,6 +140,12 @@ std::unique_ptr<IExecutionProvider> DefaultCudaExecutionProvider() {
|
|||
#ifdef ENABLE_CUDA_NHWC_OPS
|
||||
std::unique_ptr<IExecutionProvider> DefaultCudaNHWCExecutionProvider() {
|
||||
#if defined(USE_CUDA)
|
||||
#ifdef USE_DML
|
||||
const std::string no_cuda_ep_test = Env::Default().GetEnvironmentVar("NO_CUDA_TEST");
|
||||
if (no_cuda_ep_test == "1") {
|
||||
return nullptr;
|
||||
}
|
||||
#endif
|
||||
OrtCUDAProviderOptionsV2 provider_options{};
|
||||
provider_options.do_copy_in_default_stream = true;
|
||||
provider_options.use_tf32 = false;
|
||||
|
|
|
|||
|
|
@ -413,6 +413,7 @@ stages:
|
|||
workingDirectory: '$(Build.BinariesDirectory)'
|
||||
env:
|
||||
NO_CUDA_TEST: '1'
|
||||
GTEST_FILTER: -*CudaNhwcTypedTest*
|
||||
- task: PythonScript@0
|
||||
displayName: 'test excludes DML'
|
||||
condition: and(succeeded(), eq('${{ parameters.runTests}}', true))
|
||||
|
|
|
|||
Loading…
Reference in a new issue