Hello, (forgotten) world ☂

PyTorch with Intel Arc in Docker

背景

Stable DiffusionをUbuntu 22.04, Radeon RX 6600 XTで動かすという記事がもう3年も前なんですが、今になってちょっとまともに今のサーバー機でもなんか動かすか……と思って色々弄ったので、その備忘録を残しておきます。

前提

サーバー機の詳しい構成は新しいサーバーを組んだを見てもらうとして、ソフトウェア的にはmicrok8sで構築されたk8sクラスタが動いています。

今このクラスタではメディアサーバー(Jellyfin)が動いていて、こいつでハードウェアアクセラレーションを使うため、ホストにIntelのGPUドライバ、k8sクラスタにはIntel GPU device plugin for Kubernetesを導入しています。shared-dev-numは2以上に設定して、複数のpodがGPUを使えるようにしてあります。この設定が1のままだと1つのpodがGPUを占有するので、GPUを利用したい他のpodがリソースを確保できず起動不能になります。

2025年のおわりに

今年も終わっちゃうねということで雑に振り返ってみます。

urandom

今年もCTFというよりちょいとばかし本を書くみたいな感じでした。

SECCON CTFの予選は出遅れている間に他のメンバーがサクサク解いてて、めっちゃ速いなと思ってたら結構LLMを使っていたとのことで、Easyというかwarm-upくらいなら解けるんだなぁと感心しました。問題そのままブチ込んで解ける程甘くはない一方で補助ツールとしては結構使えるなと思いました。特に難読化されたJavaScriptのコードをあっさり読解し、「ステージをクリアしたことにしたい」みたいなことをAgentに投げると改修箇所を示してくるのは驚きました。一方で「dest=0xffffd800memcpyすると0xffffd7f8が書き換わります! これは重大な発見です!」とか言い出した時はそんなわけねえだろとツッコミ入れる必要があったりして、なかなか扱いに困るのも事実です。個人的にはそういう躾をしないといけないくらいなら自分でやるわってなってAgentを全然使えてません。

Raspberry Pi Zero 2 WでPiKVMを作る

背景

新しいサーバーを組んだで組んだサーバーは基本的にはヘッドレス運用しているわけですが、たまにUEFIセットアップを触りたいときとかにいちいちメインモニターのケーブルを引き回してこないといけないのが地味に不便でした。

(※なぜかUEFIの設定が飛んでマザーボードが†1677万色†で光り始めた場合などに「お前は光らなくてもいいんだぞ」と教え込む必要があります。あちらの記事に記載の通り、どういうわけかモバイルモニターだと表示できないんですよねぇ……)

そこでお手頃にリモートKVMを実現できるPiKVMを試してみました。

材料

Raspberry Pi 4を使う場合と異なり電源を分離する必要はないので、Type-CのY字ケーブルとか"Power Splitter"なる謎基板は必要ありません。microUSBケーブルとHDMIケーブルだけは元々家に転がっていたものを使っていて、microSDXCはあきばお〜の並行輸入品、それ以外はすべて秋葉原の千石電商で揃えています。

Raspberry PiでKubernetesクラスタを組む(その3: k8sクラスタ構築編)

その2が2022年の夏なのでもう3年近く放置していたRaspberryPiでk8s、なんとなくそろそろ手を付けるかと思ったので再開することにした。

なんで放置したかというと、kubeadm initは正常に終了するもののapiserverが無限再起動編に突入して正常に稼働しなくて心が折れたというのがある。

新しいサーバーを組んだ

経緯

ただurandomの面々と飯を食った後にフラッと秋葉原のヨドバシに寄ったところ、そこにRyzen 7 9800X3Dが置いてあったのが全ての発端でした。

どこにもないと言われつつなんか普通にポンと置かれていて、うわ、どうしよ、いやでも椅子が欲しいしな……などと悩んでその場は買わずに帰ったんですが、翌日「いややっぱ欲しいな」と思い、あともうそこで行ってなければ諦めがつくと思って行ってみたらまだあったんですね。即座に店員さんに声を掛けて購入しました。その後秋葉原のパーツショップを一巡りしてマザーやメモリを調達して帰宅しました(ちなみに後日やっぱSSDも折角だしアップグレードしよ、と思ってSN850XとSN7100を購入)。

2024年のまとめ(?)

まとめる程のこともそんなないんですが、なんか書いとけ的なノリでちょっと振り返って書いてみます。

urandom

例によってCTFはSECCONにしか出てないです(urandomとしては)。SECCON CTFがQRコードを煮たり焼いたりする(※煮てはない、多分)インターネットクイズ大会だったのも今は昔、すっかりガチのCTFになって久しいですが、そうなってくると普段から真面目に取り組んでないとまぁ解けないですね。昨今はとりあえずChatGPTなりなんなりに放り投げたら何とかなるという風潮もありますが、何もわからんままLLMにぶん投げても何もわからん回答が返ってくるだけなので依然として人間側がきちんと理解する必要があります。毎度のことながら、些細な違和感だったり、題意を何となく察したりみたいなとこは案外行けてて、問題はそこから正解に持ち込むだけの知識量とか気合いなような気がします。

Raspberry Pi 5 w/ Argon ONE V3 & NVMe SSD

概要

Raspberry Pi 5が(3月くらいに)届いてたので適当にセットアップした記録。——を書いて力尽きていたのを7月に入って続きを書き始めた記事です。

同じような記事は山ほどあるだろうけど……。

買ったもの

  • Raspberry Pi 5 8GB: KSYで購入
  • Raspberry Pi 5用公式ケース(黒): 同上
  • SanDisk Ultra 128GB (microSD): 秋葉原のあきばお〜で購入
  • Argon ONE V3 M.2 NVME PCIE Case: ほったらかしてる間に千石電商で取り扱いが始まってたので買ってみた
  • Western Digital WD Blue SN580 1TB: いつだかの東京都のQRコード決済キャンペーンの時に駆け込みで買ったSSD

今回買ったものではありませんが、電源は5V4Aを供給できるTSI-PI046-5V4Aを(Raspberry Pi 4から使い回して)使用しています。

Stable DiffusionをUbuntu 22.04, Radeon RX 6600 XTで動かす

背景

ミドルレンジとはいえせっかくディスクリートのGPU積んでるのに何もしてない(ゲームはしてる)のはもったいない、ということでひとつ試しにStable Diffusionを動かしてみることにした。

環境

CPU Intel Core i5-12600KF (6+4C/16T)
メモリ crucial DDR4-3200 32GB (16GBx2)
GPU Radeon RX 6600 XT (ASRock AMD Radeon RX 6600 XT Challenger D 8GB OC)
SSD WD My Passport 1TB

ソフトウェア類は以下の通り。

Keychron K8 ProのキースイッチをDurock T1 Shrimpに交換した

背景

去年の9月からKeychron K8 Proを使っています。スイッチはGateron G Pro 赤軸を選びました。ここで始めて赤軸を使ったのですが、「悪くないんだけどやっぱり自分はクリッキーかタクタイルだな」と思ってスイッチを探し、今回はDurock T1 Shrimpを選びました。元々青軸大好きマンなんですが、音の問題があって今回はタクタイルを選択しました。スイッチは遊舎工房さんのオンラインショップで購入しました。K8 Proは87キーなので、35個入りを3つで合計105個、送料抜きで10,395円(99円/個)でした。なお、これを書いている時点で完売となっています。

Raspberry PiでKubernetesクラスタを組む(その2: サーバー監視編)

監視体制の準備

サーバー運用といえばまず監視である(?)。Kubernetesクラスタを立ち上げる前に、まずRaspberry Piの監視体制を組んでみることにした。

構成については『ラズパイk8s用の監視システム(Node Exporter + Prometheus + InfluxDB + Grafana)』を参考にした。ダッシュボードはインターネットからアクセスしたいが、インターネットからLANへのアクセスは可能な限りしたくないということで、InfluxDBとGrafanaは元から契約していたVPS上に構築することにした。