(WSL2-Ubuntu-NVIDEA編)cmdstanrパッケージでOpenCLを経由してGPUを使う方法についての試行錯誤の記録、その第三弾。Linux)の上でLinuxを動かし、そこでcmdstanからGPUを使ってみようという試みである。なんだか遠回りな話だが、一概にばかばかしいとはいえない。21でわかるように、GPUを使わない場合、Windows上でcmdstanを使うより、おなじPCのWindows上のWSL上のLinux仮想マシン上でcmdstanを使ったほうが、計算速度が速かったりするのである。本件、ここ数日にわたってあれこれ試しすぎて頭が混乱してきたので、すべてを消して一からやりなおすことにする。WSL上で動くUbuntu仮想マシンの準備から。StoreからダウンロードしたWSL2を使ってます。既存のdistroを削除。--unregistorついでにWindowsの「機能とアプリ」から、既存のdistroの項目をすべて削除。念のため、wslそのものの更新を試みておく。どのdistroをいれようか考える。Ubuntuここでユーザ名とパスワードの設定を求められるはず。Terminal上にUbuntu用の設定をつくっておく。これ、なんとなく自動で設定されるような気がしていたよ。TerminalでUbuntuのターミナル画面を開けることを確認。Ubuntuのリリースを確認する。いいか...システムを更新しておく。4.3.1をインストール。アクセスし、ログインできることを確認。こんどはOpenCLの設定。660が載っています。ドライババージョンは474.44。OpenCL実行環境について調べるためにclinfoをインストールしておく。OpenCLが設定できていないわけである。ここで肝心なのは、NVIDIAのドライバ類を一切インストールしないこと。ToolkitのWSL-Ubuntu版をインストールすればよいのである。Toolkitの配布ページを参照して、インストール用のコマンドを教えてもらう。...というのは簡単だが、正直なところ、バージョンの選び方がわからない。リリースノートの説明が良く理解できないのだ。私の場合は11.7.1を選んでうまくいかず、すべてアンインストールして、11.4.4で再挑戦した。dev(local)を選んだ場合のコマンドは以下の通り。cuda最後の行は、liburcu6がないというエラーになった。以下を実行してから改めて実行した。こちらの投稿によれば、さらにOpenCL開発パッケージとランタイムが必要になる(とChatGPTが教えてくれたのだそうだ。NameのところにCPUが出てくるのが不安だなあ...NVIDEAのシステム管理ツールnvidia-smiの出力もおかしい。|+-----------------------------------------------------------------------------+いっぽう、/usr/local/cuda/extras/demo_suite/deviceQueryというツールによれば、GPUはちゃんと認識されている。3.0(後略)よくわかんないけど、ちゃんとOpenCLに対応しているのだろうか。成功お待たせしました、cmdstanrの登場です。OpenCLを使わないベンチマーク。0.5.3開発版をインストール。install.packages("remotes")remotes::install_github("stan-dev/cmdstanr")cmdstan2.32.2をインストール。TRUE)コンパイル。前々回記事で作ったstantest.stanを使います。TRUE)サンプリング。同じマシンのWindows上の所要時間が584秒だから、こっちのほうが少し早いわけだ。失敗いよいよOpenCLの登場。0.5.3開発版をインストール。cmdstan2.32.2をインストール。list(STAN_OPENCL=TRUE))コンパイル。TRUE))サンプリング。100)無事終了したが、所要時間はなんと970秒。それもそのはず、タスクマネージャを確認すると、GPUを全然使っていないのである。OpenCLが設定できていないようだ。Guideによれば、公式にサポートしているGPUはPascal世代以降。その前のMaxwell世代のGPUはサポート外だがたぶん動く、とのこと。660はさらにその前、Kepler世代ってやつだもんな。新PCをお迎えしたので再挑戦。WSL2-Ubuntu環境の用意。StoreからWSL2をインストール。念のため、wslそのものの更新を試みたが(上述)、更新不要だった模様。Utuntuのインストール。Ubuntu-22.04ここでユーザ名とパスワードの設定を求められた。Terminal上にUbuntu用の設定が勝手に作られた。システムを更新しておく。4.3.1をインストール。