diff --git a/onnxruntime/core/providers/cuda/nn/conv_transpose.cc b/onnxruntime/core/providers/cuda/nn/conv_transpose.cc index 20a787b475..0dbb31b0f4 100644 --- a/onnxruntime/core/providers/cuda/nn/conv_transpose.cc +++ b/onnxruntime/core/providers/cuda/nn/conv_transpose.cc @@ -3,6 +3,15 @@ #include "conv_transpose.h" +// To suppress FP static analyzer warnings: +// https://msdata.visualstudio.com/Vienna/_workitems/edit/1944928 and +// https://msdata.visualstudio.com/Vienna/_workitems/edit/1944950 +#ifdef _WIN32 +#pragma warning(push) +#pragma warning(disable : 26110) +#pragma warning(disable : 26117) +#endif + namespace onnxruntime { namespace cuda { @@ -206,3 +215,7 @@ Status ConvTranspose::DoConvTranspose(OpKernelContext* context, bool dynamic_ } // namespace cuda } // namespace onnxruntime + +#ifdef _WIN32 +#pragma warning(pop) +#endif diff --git a/onnxruntime/core/providers/cuda/rnn/cudnn_rnn_base.cc b/onnxruntime/core/providers/cuda/rnn/cudnn_rnn_base.cc index 70391a8a00..ce458b60b4 100644 --- a/onnxruntime/core/providers/cuda/rnn/cudnn_rnn_base.cc +++ b/onnxruntime/core/providers/cuda/rnn/cudnn_rnn_base.cc @@ -249,7 +249,7 @@ Status CudnnRnnBase::ComputeInternal(OpKernelContext* ctx) const { size_t workspace_bytes; CUDNN_RETURN_IF_ERROR(cudnnGetRNNWorkspaceSize(CudnnHandle(), rnn_desc, gsl::narrow_cast(seq_length), x_desc.data(), &workspace_bytes)); auto workspace_cuda = GetScratchBuffer(workspace_bytes); - int32_t zero_seq_count = 0; + int64_t zero_seq_count = 0; std::vector zero_seq_index_cache(batch_size, 0); int64_t zero_seq_index_cache_size = 0; @@ -291,7 +291,7 @@ Status CudnnRnnBase::ComputeInternal(OpKernelContext* ctx) const { if (zero_seq_count && num_directions_ > 1) { zero_seq_index_cache_size = zero_seq_count * num_directions_; zero_seq_index_cache.resize(zero_seq_index_cache_size); - for (int i = 0; i < zero_seq_count; ++i) { + for (int64_t i = 0; i < zero_seq_count; ++i) { zero_seq_index_cache[zero_seq_count + i] = static_cast(batch_size + zero_seq_index_cache[i]); } } diff --git a/onnxruntime/core/providers/cuda/rnn/cudnn_rnn_base.h b/onnxruntime/core/providers/cuda/rnn/cudnn_rnn_base.h index 7eb4763287..8e62430980 100644 --- a/onnxruntime/core/providers/cuda/rnn/cudnn_rnn_base.h +++ b/onnxruntime/core/providers/cuda/rnn/cudnn_rnn_base.h @@ -24,7 +24,7 @@ enum RNN_Input_Index { }; // Onnx RNN/GRU/LSTM only support 1 layer -const int RNN_NUM_LAYERS = 1; +constexpr int RNN_NUM_LAYERS = 1; class CudnnRNN { public: diff --git a/onnxruntime/test/shared_lib/test_inference.cc b/onnxruntime/test/shared_lib/test_inference.cc index 428c47d79b..c54f714995 100644 --- a/onnxruntime/test/shared_lib/test_inference.cc +++ b/onnxruntime/test/shared_lib/test_inference.cc @@ -2012,7 +2012,10 @@ TEST(CApiTest, TestConfigureCUDAProviderOptions) { char* cuda_options_str = nullptr; ASSERT_TRUE(api.GetCUDAProviderOptionsAsString(rel_cuda_options.get(), allocator, &cuda_options_str) == nullptr); - std::string s(cuda_options_str, strnlen(cuda_options_str, 2048)); + std::string s; + if (cuda_options_str != nullptr) { + s = std::string(cuda_options_str, strnlen(cuda_options_str, 2048)); + } ASSERT_TRUE(s.find("device_id=0") != std::string::npos); ASSERT_TRUE(s.find("gpu_mem_limit=1024") != std::string::npos); ASSERT_TRUE(s.find("arena_extend_strategy=kSameAsRequested") != std::string::npos);