高橋かずひとのプログラミング、その他、備忘録。

日々調べてたことや、作ってみたものをメモしているブログ。 お決まりの断り文句ですが、このブログに書かれている内容は個人の見解であり、所属する組織の公式見解ではありません。チラ裏。

ONNX Runtime:CUDNN error executing cudnnAddTensor() の処置(2022年10月13現在)

どこにもメモった形跡が無いので、改めてメモ👀

kazuhito00.hatenablog.com

上記のモデルをONNXでGPU推論しようとすると以下のようなエラーが出ます。

onnxruntime.capi.onnxruntime_pybind11_state.Fail: 
[ONNXRuntimeError] : 1 : FAIL : Non-zero status code returned while running FusedConv node. Name:'Conv__1075' 
Status Message: CUDNN error executing cudnnAddTensor(Base::CudnnHandle(), &alpha, Base::s_.z_tensor, Base::s_.z_data, &alpha, Base::s_.y_tensor, Base::s_.y_data)

(これはONNX Runtimeのバグ?で、そのうち直すと予告されている挙動のようですが。。。)

ひとまず動かすだけなら、グラフ最適化オプションをベーシックに指定し直すと動きます🦔

# Load model
session_option = onnxruntime.SessionOptions()
session_option.graph_optimization_level = onnxruntime.GraphOptimizationLevel.ORT_ENABLE_BASIC

onnx_session = onnxruntime.InferenceSession(
    model_path,
    sess_options=session_option,
    providers=['CUDAExecutionProvider', 'CPUExecutionProvider'],
)

類似Issueはちょいちょい出ているようですね。 たぶん最近だとこのあたり👻 github.com