こんにちは、めいりです。
先日仕事でHALCONを使って画像処理することになりました。その際にプログラム実行して約1時間後に落ちていました。
エラーも出ずに強制的に落ちていたので途方に暮れたのですが、なんとか解決できました。
今回はHALCONがエラー出さずに強制終了してしまう原因とその解決方法を紹介します。
状況
私が利用しているのはHALCON 20.11 steadyです。
別の担当者から引き継いだプログラムをHALCONで実行して約1時間後に見ると落ちていました。
PythonのPyTorchでDeep LearningできていたのでGPUは動くはず。
原因を探るためにスタートメニューを右クリックしてイベントビューワーをクリック。
するとイベントID1000、Application Errorと表示されていました。
さらに詳細を見ると、障害が発生しているモジュールパスC\Program Files\NIDIA GPU Computing Toolkit\CUDA\v11.6\bin\cudnn64_8.dllと表示されていました。
原因
結論から言うと、HALCONのバージョンとCUDAのバージョンが合っていませんでした。
HALCONの20.11とCUDAのバージョンを調べてみると、
![](https://meiriblog.com/wp-content/uploads/2023/08/a04d1aec86f246048e4e81ac0a955346-1024x571.png)
ということでCUDAのバージョンが10.2か11.1でないといけないようです。
でも私が利用していたパソコンにはCUDAの10.2も11.1も入っていませんでしたので動かなかったようです。
ということで下記URL先を参考にCUDA11.1をインストールしました。
これで動くか!と思ってもう一度HALCONのプログラムを実行するとまた同じ原因で落ちました。
よくよく見るとcudnnもちゃんとバージョンに合わせてインストールしないといけないようです。
ということでCUDA11.1に対応したcudnn8.0.4をインストールしました。
やり方は以下のURLを参考にしました↓
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fcdn.qiita.com%2Fassets%2Fpublic%2Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png?ixlib=rb-4.0.0&w=1200&mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZ0eHQ9Q1VEQSUyQmN1RE5OJUUzJTgxJUFFJUUzJTgyJUE0JUUzJTgzJUIzJUUzJTgyJUI5JUUzJTgzJTg4JUUzJTgzJUJDJUUzJTgzJUFCJUUzJTgxJUJFJUUzJTgxJUE4JUUzJTgyJTgxJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWNsaXA9ZWxsaXBzaXMmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz03NmVkY2NkY2Q4ZjBlMWU4ZTE4ZjA1MTNkZDMxYzJlNg&mark-x=142&mark-y=112&blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwVHJhc2hCb3h4JnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz1lOGE3ZmY2MWY5Yjk3MjZjMGE3OTZlNDI1M2U0OTZlYg&blend-x=142&blend-y=491&blend-mode=normal&s=35958c038cce96a22af1b917d5737359)
このあとにHALCONのプログラムを実行してみると最後まで落ちずに処理を終えることができました!
まとめ
今回はHALCONがなぜか途中で落ちてしまう原因とその解決方法を紹介しました。
原因はHALCONとCUDAのバージョンの互換性がなかったことでした。
バージョンのチェックは大事です。肝に銘じておきます。
めいり
お小遣い稼ぎにポイ活を!
私はサーティワンやスタバなどのちょっとした贅沢はポイ活で貯めたポイントを使って楽しんでいます。
私が一番メインで使っているポイ活サイトがmoppy(モッピー)です。
moppy(モッピー)は、普段のネットショッピングや旅行予約、クレジットカード発行などをmoppy経由で利用するだけでポイントを貯めることができます。
例えば楽天市場でお買い物するときに、moppy経由でお買い物すると楽天ポイントだけでなく、moppyのポイントも貯めることができます!
そしてmoppyで貯めたポイントは普段皆さんがよく利用しているPayPayやTポイント、Amazonギフト券などと1P=1円分で交換できます。
moppyはプライム上場企業が運営しており、2005年から運営され続けていますので、安心してポイ活に励めます。私自身大学生のときから利用していますが、問題なくコツコツとポイ活できています。
まだ登録されていない方はぜひ↓のリンクをクリックして登録してみてください。
コメント