すっぴんのUbuntu 20.04 LTSに最短でCUDA入れるメモ(CUDA11.6編)

前回の一部改変

bleu48.hatenablog.com

 

すっぴんのUbuntu 20.04 LTSにCUDA11.6入れるメモ

(所謂自分用コピペ元)

 

まず以下を確認

https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/

 

sudo wget -O /etc/apt/preferences.d/cuda-repository-pin-600 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/7fa2af80.pub
sudo add-apt-repository "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /"

 

sudo apt -y install cuda-11-6

 

export CUDA_PATH=/usr/local/cuda-11.6
echo 'export CUDA_PATH=/usr/local/cuda-11.6' >> ${HOME}/.bashrc
export LD_LIBRARY_PATH=/usr/local/cuda-11.6/lib64:${LD_LIBRARY_PATH}
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-11.6/lib64:${LD_LIBRARY_PATH}' >> ${HOME}/.bashrc
export PATH=/usr/local/cuda-11.6/bin:${PATH}
echo 'export PATH=/usr/local/cuda-11.6/bin:${PATH}' >> ${HOME}/.bashrc

 

以下は機械学習系(TensorRTなど)

 

sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu2004/x86_64/7fa2af80.pub
sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu2004/x86_64/ /"

 

sudo apt-get install libnvinfer-dev libnvonnxparsers-dev libnvparsers-dev libnvinfer-plugin-dev

sudo apt-get install zip unzip

 

---

もちろん,5月の選手権で使うCUDAのバージョンが11.6ということです。

昨年一次予選1位,二次予選11位で第2回電竜戦予選1位,決勝4位の二番絞りの進化を御期待下さい。

メモリ換装シリーズ2022

別名メーカ保証なにそれである。

昨年度末にはゲーミングPCにメモリを64GB積んだ。

bleu48.hatenablog.com

 

その前には6万円台の廉価ノートにメモリ32GBとSSD1TBを総額10万円以内で増設した。

bleu48.hatenablog.com

 

今回この後者のヒンジ破損ということで代替マシンの購入に至った。

以下にも書いたが,代替マシンを急ぐ必要は無いのだが遅れるとメモリ規格がDDR5が主流になる可能性があり安価なマシンの入手性が落ちるとの予測。

bleu48.hatenablog.com

 

で,丁度適当なマシンを選定した。

Inspiron 16 AMD プレミアム Ryzen 5 5625Uである。偶然DELL社内の内部番号も5625である。同系の14インチでも良かったのだが昨今持って動くことも少ないので大きい方にしてみた。

結論から言うと,プラスドライバー一本(と薄い樹脂のヘラ)で簡単に換装できたので換装初心者にもお勧めできるくらいのマシンです。

下図の隙間感からして14インチと共通パーツは多そうですね。

 

3年前主流だった2400MHzのDDR4メモリは今では相当遅い部類で,結局3200MHzのメモリから換装したのですが,パフォーマンス的に全く問題ない感じです。

zen3万歳って言って良いと思います。zen+比でクロックは高い。省電力。キャッシュ多い。(さらに今回コア数多い。)言うこと無いですね。

 

8コア(Ryzen 7 5825U)の方ですか?

薄型モデルの8コアはどうせ本気出したらサーマルスロットリングでパフォーマンス出ないでしょって勝手に予想してます。ページ冒頭のようなRyzen 7 5800Hならアリだと思ってます。

---

話逸れますが,インテルの薄いPC用の高パフォーマンスCPUですが,Core i7-1280P、Core i7-1260Pで比較してシングルスレッド性能がCore i7-1260Pの方が上になることがあるみたいですね。

もしかしてシングル負荷で熱律速

インテルでもパフォーマンス気にするなら12700Hとかにしておいた方が良さそうです。

AobaZeroで遊ぼう20(バージョン32リリース記念編)

このシリーズ随分ご無沙汰です。

色々と遊んでいるのですがblog更新してないだけですが

前回が2020年秋で電竜戦前で二番絞りも本格化する前です。

 

bleu48.hatenablog.com

 

嘘でした。もうひとつありました。

bleu48.hatenablog.com

 

で、AobaZeroも随分変わりました。

一時期40ブロックを試されていたのですが再度20ブロックに戻して独自の試行錯誤に入っています。ざっと大きな変更のみ箇条書きにしますと

2020年12月 v1.9 詰み局面の返り値バグ修正

2021年9月 v2.0 棋譜生成時のsoftmax温度を変更し幅広い局面の生成を目指す

2022年1月 v18 バージョン番号を内部番号と統一。棋譜生成時にKL情報量ベースで探索ノード数を可変に

2022年2月 v28 荒く言うとニューラルネットワーク構造をdlshogiに寄せる大幅な変更。末端での三手詰み探索。

2022年3月 v30 softmax温度やKL情報量に関するパラメータ変更。

2022年4月 v32 ノード展開時の初期勝率変更。詰み探索の強化(増加)

 

バージョン番号が変わったのとそれをエンジン名で返すようになったので使い勝手がよくなりました。

また、v28でニューラルネットワーク構造が大幅に変わりましたので棋風が一変です。末端での詰み探索が入りましたのでCPU負荷が一気に増えています。マシン次第では探索速度が大幅に落ちるかもしれません。

加えて最新のv32は詰み探索が強化されましたので更に終盤強くなった感じでしょうか。手元で試した限りではCPUの負荷はさらに増えているようです。

以前のバージョンと最適な-b -tなどのオプション値は結構変わるかもしれません。

 

で、最も気になる棋風の変化ですが以前の根絶やし流というか、全駒取って入玉宣言勝ちといった雰囲気はもうありません。普通に詰めて勝つようです。

実際floodgateでの成績も随分向上し、手数制限で引き分けることもほぼなくなっている感じです。宣言勝ち比率も恐らく激減じゃないでしょうか。


 

ということで、久しぶりにAobaZeroで遊んだ報告でした。

棋風が変わって残念と思う人もいるのかも(笑)

人間将棋

この土日の天童市で3年ぶりに人間将棋が行われた。

www.ikechang.com

 

開催アナウンスがあったときに一瞬「駒」応募しようかと思ったが,職業柄年度替わりに体調リスクは取れない。大人しくニコ生で観戦することにした。

 

 

人間将棋は駒ひとつに人間がひとり付く都合,棋士は全ての駒を一度は動かすのがマナーとされている。阿久津先生は盤上が熱戦になり過ぎてひとつ動かせなかったようだが,昨日の竹部女流四段は手待ちっぽく18香とひとつ手損して保険をかけて笑いをとっていた。

まぁ,勝ち負けよりも二人で全駒が動く棋譜を作る共同作品といった趣の方が強いのかもしれない。前例を見る限り対抗形(特に振り飛車側)の方が全駒動かしやすい風には思われる。

 

ということで,人間将棋ベースでふと思いついた。

全駒動かすノルマ付きの将棋である。

勝者は全駒動かした後でしか勝ってはならない。

 

敗者の駒を動かすノルマを敗者のみに課すのか,両者の全駒が動くことを勝者のノルマとするのかはちょっと考えたい。

前者であれば勝ち局面を作ってから全駒を動かすような勝ち方があるかもしれないし,敗勢になった側はそれを阻止する自爆テロ的な手筋が出るかもしれない。

後者のルールでは米長玉の形で玉より先に香車を取らなくてはならないという過酷なルールとなるだろう。

 

う〜む,どっちも歪んでるね。

MacのBashの話

やねうら王のMacビルドを生成していたが,シェルスクリプトでの自動生成がうまくいっていなかった。

随分手間取ったのだが原因がやっと判明した。

理由を列挙する。

 

  1. シェルスクリプト連想配列実装はシェルによって異なる
  2. MacのデフォルトシェルはZsh
  3. Bash連想配列実装はバージョン4から
  4. Bashの最新版は5.1
  5. 最新のMacBashバージョンはなんと3.2

 

1は仕方ないとしよう。

シェルスクリプトとして特定のものに依存する命令は私は使いたくない。

 

2も仕方ないとしよう。

個人的にMacOSを使いたいわけでもZshを使いたいわけでもない。

M1に興味があるだけだ。

 

3,4は歴史的経緯だ。仕方ない。

5はApple何してるんや!?Pythonも割と最近まで2.7よね。

 

ということで手元のMacBashビルドしてアップデートかけた。

埃まみれのビザボックスマシンを弄った学生時代を思い出した。

スクラッチ勢の行方(その2)

え~っと,どこから続いているかスクラッチのシリーズです。

前回バージョン10cでfloodgateレーティング2200を超えた辺りでした。

 

bleu48.hatenablog.com

 

上記が昨年7月なので随分間が空いていたんですが,地味にちまちま更新しております。

前回で若干の高速化と前向き枝刈りを導入しました。バージョン10は地味にaからfまであります。

PCによりますが250~300knpsくらい出て初期局面ならサクッとdepth7くらいまで読めます。

Go言語でインラインアセンブラとか無いのでビットボード実装する気になれません。これくらいで勘弁してください。

 

そこから,null move reductionやLMRなどを調整した上で,伝家の宝刀マルチスレッド導入しました。Lazy SMPでも良かったのですが置換表へのアクセス権を真面目にロックしてやるとどうも遅いみたいなので,みんな大好きYBWCから試してみました。一度はスクラッチ実装してみたいアルゴリズムですよね。

スレッド分岐は多層版と一層版を作ってみたのですが多層版は相当の並列度が出ないとどうやら足をひっぱるようで,並のPCでは一層版の方が強いみたいです。テスト機8コアとかありますが並列度安定せず低い感じです。

というわけで,floodgateレートで2500超えてきました。

 

対戦数も少なく周辺のレートが若干安定感無いですが,Yss1000kが近づいて来たのははじめてです。恐らく基準維持の意味で投入されているので中身は変わってないと思っています。

ちなみにシングルファイルで2000行近くになってきました。

YBWCの都合,探索部がほぼ完全に二個あります。

 

ところで,ねね将棋iPad版が2000くらいに居ますね。今後の伸びが楽しみです。

---

追記:

 

囲碁のルールその3

囲碁の方もぼちぼちですが理解が進んでいるところです。

前回のネタは一年以上前。

 

bleu48.hatenablog.com

 

近頃の流行はぷよ碁。

puyogo.app

 

それから,twitterで紹介いただいた書籍。

 

辞典の方は基本的な用語も分からず雰囲気で囲碁をやっていた分には要らなかったのですが棋書を読んだり囲碁フォーラムを拝聴するのは必要かと思い入手しました。恐らく普通に囲碁やる人は問題なく知ってることなのでしょう。

 

今回の本題,ルールの本は実に面白い本でした。王銘琬九段は非常に気さくな台湾出身の棋士で,UEC杯の大会では審判長をされていたので少しは知っている気になっておりました。

この本はそういう関係も含めた過去の経緯などから執筆されたもののようで,コンピュータ囲碁の歴史も含めて書かれてあり,単にルール解釈のみならず歴史的な部分が非常に面白いものでした。とくに最近流行りのぷよ碁のようなルールも古代の囲碁であったのではないかという話です。結果的には考え方,打ち方が同じになって目的意識が固まり現代のルール整備となった経緯など実にためになりました。

日本ルール実装が難しい点を差し引いても,日本ルール贔屓になるには十分な理由があるのですね。解像度という表現をされた部分もあり十分な棋力がないにも関わらず何か分かった気になります。またしばらく期間をおいて読み返す予定にしておきます。

 

ぷよ碁では負けなくなったので,Remiさんのみんなの囲碁の九路盤はぼちぼち弄っています。私はしばらく九路でいい気がしています。

ーーー

追記:

丁度同日に詳しい説明をされている方がいたのでリンク貼っておきます。

 

note.com

---

追記:

その2は使用済みだったので3に変更

bleu48.hatenablog.com