Spinach Forest

May, 2024

/ Kobo Libra 2 (Non-Colour)   / Revisiting GPU Parallelism Mental Model   / Spinach, April   / ... 

Kobo Libra 2 (Non-Colour)

Kobo Libra 2 をしばらく前から使っている。最近でたカラーのやつではなく、一世代前。

感想。

  • 今更ながら e-Reader は良い。Boox のような Android デバイスと違って読むしか出来ないぶん、読むのが捗る。(ただし読むものがどれだけあるかというと、後述。)
  • 軽いのも良い。自分が持っている 10-inch の Boox (Note) は、ごろ寝しながら読むには重すぎた。ただし Libra 2 の 7 インチの画面では論文の PDF は読めない。つまり論文はゴロゴロしながら読めないわけですね。まあ仕方なし。
  • 書店としての Kobo の品揃えは、悪い。Amazon より悪いのは仕方ないとして Play Books よりも悪い気がする。そして高い。(あとウェブストアの UI は最悪だが、それは期待値の範囲内。)
  • かわりに図書館で本が借りられる(Libby)。特定の読みたいものを探すとほぼ借りられているが、なんか読むものないかなーと探すと何かはある。なおこれは Kindle にもある。
  • Pocket 対応。期待していたが、残念ながらゴミだった。ウェブサイトの scrape 失敗率が高すぎて、読みたいものを全然 Pocket に取り込めない。これは Kobo ではなく Pocket の問題。Instapaper と比べ scraper の出来が悪すぎ。ショックを受けた。無能とかではなく何らかの意向が働いているとしか思えない。なお Kobo 側にも問題があり、画像がよく欠落している。JPEG 以外を表示できないらしい。
  • ハードウェアは良い。特に不満なし。

当初の目論見としては Pocket 経由でウェブが読めたらいいなと思っていたがそのあては完全に外れ、じゃあ本でも読むかと自分の仮想積読リストのうち Kobo で売っているものを選んで買って読んでいる。

他人に勧めるかというと、ノーだね。予想にたがわずたぶん Kindle の方がいい。なにしろ本がなんでも売っているので。Instapaper も対応してるし(有料機能だけど)。Kobo ストアの品揃えのしょぼさと Pocket の出来の悪さには本当にがっかり。特に後者。俺の中二病は今回も不発だったぜ・・・。


ほとぼりが冷めた頃に Kindle でも買おうかな、とサイトを眺めたら Kindle Oasis はディスコンなのか。Libra 2, ハードウェアの出来はいいのでほんとに残念。まあ年が明けた頃にでも考え直します。


Pocket は Mozilla の子会社なのだから Firefox だとちゃんと動くとかあるのでは?と思ったら Firefox Android に Pocket integration はないらしい。その Reader mode で作った HTML を Pocket に入れてくれればいいのよ?? アホなの???自分のような heavy Chrome user を転向させる機会をみすみす逃すとは、お前ら競合の悪口いう前にやるべきこと色々あんだろ。

はー Pocket が最低限の仕事をすればこの Libra 2 は素敵な Web reading 端末になるというのに、あんまりだわ。

Revisiting GPU Parallelism Mental Model

Flash Attention教科書のTiled Matmul を読んで意外だったのは、これらが単一の Streaming Multiprocessor の上で実装されていることだった。Triton もそういう実装を想定し, Per-SM というか Per-ThreadBlock の実行モデルを持っている。

SRAM に tile を載せたい動機を考えると当然といえば当然だけれど、古いコンピュータ・グラフィクスの世界観で理解している GPU とは随分違って、自分のメンタルモデルを書き直す必要を感じた。

古いコンピュータグラフィクスの世界では、SM とか ThreadBlock みたいのは実装の詳細であり、プログラマは気にしない。GL のシェーダにも (compute shader は別とすると) 基本的には SRAM/SHARED みたいな概念はない。個々の WARP も独立して動き、syncthread() とかもない。

したがってグラフィクスの世界では GPU のスループットを増やせば頂点やピクセルが十分にある限り自動的に計算資源を使い切れる。GPU のスケールの仕方はあまり気にしない。SM の数が増えても SM 内の compute core / warp の数が増えても、結果はだいたい同じである。これは単純化しすぎてグラフィクスプログラマに怒られるとおもうけど、メンタルモデルとしては間違ってないと思う。

一方 Flash Attention みたいのは GPU のスループット向上が性能向上につながるとは限らない。つまり、GPU 内の SM の数が増えても単一の Flash Attention は速くならない。Attention はふつう multi-head なので head の数だけ並列化はできる。あと training ならバッチサイズを増やせば並列度は増す。inference serving も本質的に並列である。ただグラフィクスと比べると透過的でない。それなりに気にしないといけない。

個々の Flash Attention 自体を速くしようと思ったら、SM を大きくしないといけない。単一 SM 内の CUDA Core の数を増やしたり、SRAM をでかくしてタイルを広げたり、あとは Tensor Core を載せたりみたいなのもある。ただこういう細部は FLOPS だけ見てるとわからない気がする。


誰かがローカル LLM 遊びをしようと気の迷いで A100 を買ったとして、そのスループットを活用できるのだろうか。A100 には 108 も SM が入っているわけで、ローカル用途の LLM でそんな並列度あるの?(買わねーよという話は置いといて。うちのアパートとか一瞬でブレーカ落ちるわ。)

・・・と思って Lhama2 を見てみると、わー 65B で 64 heads! 64/108 半分以上は使えるのか。思ったより並列度が高かった。7B ですら 32 heads もある。ご家庭の GPU なら十分に活用できそうである。というかモデルのサイズに合わせた compute を使い切れるように調整してあるのだろうな。

A100 はさておき家庭用で買える GPU で一番奮発した型番は 4090 らしいのでスペック紹介記事を見ると・・・ 128 SM! A100 より多いじゃねーか! 64 heads だと半分しか使えないじゃん。とはいえ様々なトリックでスループットを使い切る工夫はあると思われるので, heads で半分埋まるくらいなら案外丁度いいのかもしれない。全力で回すと画面が固まりそうだし。GPU だけに。

結論としては、Triton のような SM-based programming の世界はグラフィクスと比べると GPU が transparently scalable ではないが、AI 人材はご家庭の GPU を使い切れるよう、おおむねきちんとモデルのサイズを調整していた。よかったね。

Spinach, April

|

2024-04-01

  • 子「この迷路やってみて」妻氏「(しばらく格闘後)できない。つながってない」子「そんなはずない。先生はできるって言ってたし、できた子もいたもん!」(妻子険悪なムード)。まさかそんな April Fool だとはな・・・。

2024-04-02

2024-04-03

  • Coffee Wednesday!
  • 最近この水曜日にしか生産的なことをしてないので、何も進まない。体調も概ね回復してきたし、そろそろ朝の活動を再開しないとなあ・・・。
  • ジェミニっち、最近ちょっとテンションさがってきた? Absolutely とか言わなくなった気がする。中の人が異様さに気がついたのだろうか。(追記: 気のせいだった)

2024-04-04

  • 放置されているライブラリ、インターフェイスがない上に JNI に依存して単体テスト不可なクラスから extract interface する変更をレビューに送ったら「クラス名が気に入らないから実装のクラスを Impl にリネームして」とかいってきて、しかしそのためにはお前らのどうでもいい放置実験プロジェクト数カ所を直して回んねーといけねーんだよそのゴミの始末をするだけでもウンザリなのによーやるわけねーだろクソーがとブチ切れたが、self awareness が高いので「主張はおっしゃるとおりだけど残念ながら今ちょっと時間も元気ないからアプリ側でなんとかするわ」と切り上げたところ、数時間後に「それやってあげようか?」とかチャットしてきたので「知るかクソがお前の仕事待つ気ねーわー」と喉元まで出かかったが再び self awareness を発揮し「助かるわ〜ありがと〜」と返事。すごいな自分。しかし self awareness point を使い切ったので次にいじる必要が生じたら fork しようと決める。はーほんとこの連中と仕事すると hate が溜まる・・・という表現は self awareness が足らないな。この方々はわたくしとは compatibility が無いようなのだよね。そういう相手っているよね。来週あたり「しばらく mess する必要があるので fork しますが一段落したら upstream しますねー」などと白々しい嘘をついていく所存。いや嘘ではないですよ一段落しないだけで。
  • 眼の前の仕事は興味深いが絡まられると精神を消耗する関係が複数ある、というのが現チームの残念なところである。しかし希望がないのと怒りがあるのとでは後者をとることにしたのです。Anger management してくぞ!EQ だ!
  • Pricing | Readwise
    Kindle や Kobo と連携しているらしいが有料会員は 2000 人未満。これは商売として大丈夫じゃなさそうだな・・・。
  • 仕事をまるっと頼んでいた同僚、もう一個のプロジェクトが忙しくなってきたから無理になりました・・・とまるごと返ってきた。あれま。まあ自分の帯域も限られているので、これは来年だな。

2024-04-05

  • ライブラリのコードの質は気にするがアプリのコードの質はガン無視(というか、ライブラリの純度のために積極的にゴミをアプリに押し付ける)という態度、有り体に言えばクソで控えめに言うと immature だな、とかヘイトを吐きつつ思い出すのは最初の勤務先で、まさにそういう人々が「シニア」であった。あれ以来「コア」「エンジン」「プラットフォーム」「インフラ」とかを名乗るものを毛嫌いするようになったのは、良くも悪くも職業人生に影響を与えていますなあ。
  • 思慮深い同僚からの質問に丁寧な返事を書き、心の浄化を得るものである。
  • The Maven: A user-friendly, $2K Cargo e-bike perfect for families on the go | Ars Technica
    うちのと大体一緒だが、オプションつけなくても色々ついてくるのは安くていいな。

2024-04-06

  • 資産のチャートをみたらここ半年くらいで妙に増えている。とおもったら NASDAQ からして三割以上あがっているのか。なにがあったんだ(答: NVIDIA - 自分が株を残している NVIDIA 社員だったらもう引退してるね。)
  • はーロックで博打打ちな社長の下で働きたいなー・・・とかいうことを下手に考えると TSLA 株を掴まされてたりするので、小心者は狭いアパートで暮らしてろということです。

2024-04-08

  • Google to Tone Down Message Board After Employees Feud Over War in Gaza - The New York Times
    煽ったタイトルだけど、Downvote と karma を見えなくする、というのはソーシャルメディアを平和にする施策としてはまともなのではないか。(なおわたくしこの掲示板は見てません。治安が悪いので。)
  • Hacker News (HN) - Part 1: analysis | Open Tech
    pg と sama がいる、というのはなかなか良い話である。
  • Memegen もそうだけど、コミュニティにくっついたフォーラムって良さはあるよな。Memegen はデザインが本質的に性悪なのでアレだが、社内フォーラムというものの可能性を切り開いた点は評価できる。HN は煽りを mute することにまあまあ成功しており、がんばってるよなあ。モデレータの dang が過労死しないか心配だけど。

2024-04-09

  • クソのような問題を直すのかこれかったりー・・・とか思っていたがふと Kotlin で書いていいことを思い出した途端にバグ修正が楽しいコーディングプロジェクトに変身!やー Kotlin いいよねー個人が empower される感じするわ。今更だけどいいんだよ文句あっか。

2024-04-13

  • 懸念だった金回りの設定をひとつクリア。はあ。もう一つ大物がありますが、まあ徐々にやっていきます・・・。

2024-04-15

  • 子「XX のおうちには Easter Bunny が来て大きいうさぎのチョコレートをおいていったんだって!」こうして季節行事は捏造されていくのである。(追記: 既に確立しつつある習慣らしい。まじで。)

2024-04-15

  • 一昨日ひさびさに Fitbit workout をしたら筋肉痛で走れん・・・。
  • Google Maps, レビューを書くとテンプレっぽい返信が来る頻度が以前より高まった気がする。LLM 産業の差し金だろうか・・・。
  • 休暇開け+ランなし+脱カフェイン月曜=仕事のやる気生成に難。
  • そのむかし「勤務先社員は CS 詳しい」みたいな half-myth-half-factual があった気がするが、最近そういうの感じないね仕事してると。素人だとも思わないけれど。
  • やる気を高めきれていないのに仕事はやってくる・・・。

2024-04-16

  • Creepy Nuts
    なんか聴くもんねーかなと YT Music Top 100 みたいのをかけたら突然日本語でびっくり。すげーな・・・とおもったら rank-in していた新曲はアニソンなのか。アニメのちから恐るべし。
  • Firefox 125.0.1, See All New Features, Updates and Fixes
    金ためて引退したら Firefox のコードとかいじって暮らすのも OSS enthusiast としては悪くないかもなーといったファンタジーを弄ぶ瞬間があれど、様々なファクター以前にあのコードはねーわ・・・と我に返るのだった。
  • 会社、sugar-free coke (and friends) は置いているが caffeine free バージョンは置いていない。存在はするらしいが、プログラマを働かせるという観点からは無意味なので置かないのも止むなしか・・・。
  • 妻氏、学校へのメールでチャットちゃん活用事例。英作文はチャットちゃんによって solved problem になったと言えよう・・・。
  • 子のために Child Safe な Taylor Swift playlist を作りたいと妻。Lyric Genius から 歌詞をもってきて何らかの child friendliness judgement を LLM にやってもらうことで実現できないだろうか・・・。暇があれば良さそうなプロジェクトなんだけど。

2024-04-17

2024-04-18

  • 仕事中に日本語で脳を汚染したくないという理由で英語の曲をかけているが、別に新しい曲を聞きたいわけじゃないんだよね。そういう開拓精神はない。なんか平和で適当にポップなのないかなーと思っていたら、Kids-safe Taylor Swift playlist を研究していた妻氏曰く昔の Taylor Swift は平和らしい。ということで今日はゼロ年代 Taylor Swift をかけるものなり.
  • Google Fires 28 Employees Who Protested an Israeli Cloud Contract - The New York Times
    もう会社で政治する自体は終わったんですよ。社員証を首にかけしもの全ての希望を捨て仕事せよ。しかし戦争大好き国家アメリカとイスラエルに反戦する若者のイメージが直感と一致せず、未だにアメリカというものへのメンタルモデルを構築できていない。ベトナム戦争に反戦した若者たちみたいな感じなのだろうか。
  • Google’s newly formed platforms and devices team is all about AI - The Verge
    わあ reorg. Android の時代は終わりなのかい...?
  • Hiroshi Lockheimer - Wikipedia
    引退してしまう Hiroshi 氏、若いなー。というか自分が年取ったから若く見えるだけかな。とはいえ一番若い SVP だったんじゃない?冷静に考えるとすごい話だよね。

2024-04-19

  • Reorg 関係ないと思っていたが、オフィス引っ越しに巻き込まれたらやだな・・・。San Jose に飛ばされたりした日にはたまらん(が家賃は安いかもしれないのか・・・?)
  • メモリリーク修正の PR を見ていたら absl/cleaner というのを使っている。Go の defer みたいなもんか。まあ scoped class をいちいち作るよりはラクなのかもな。
  • 今日は誘惑に負けて朝飯を食べてしまったが、energy が助けになるより消化の負担が意欲を削ぐなあ。歳か。

2024-04-22

  • A New Era for Mixed Reality | Meta Quest Blog | Meta Store
    "We are working on a new spatial framework that allows mobile developers to bring their apps to Meta Horizon OS. Whether you’re bringing over an existing app or building a new one from scratch, this new framework should make things easier by letting you use the tools you’re already familiar with."
    やる気を出してきたのはいいが、また公開できる実体はナシか。まあ WWDC で Vision OS 2.0(?) が出たのを見てからなのだろうな。Android dev 的には API がきになるところである。
  • ふと LangChain quick start を見たら pipe っぽく書かれており、あれ python こんなのできたっけと思ったが operator overloading してるだけか。
  • うっかり久しぶりに blind を除いたら有用な情報はゼロで精神衛生だけが失われた・・・。失敗。

2024-04-23

  • 久しぶりに自分の podcast を聞いたら番組の存続に関わるレベルで滑舌が悪くなってて焦る。これはなんとかする必要がありそうだな。なんか雑に取るだけの podcast を weekly くらいでやるのが良い気がするが・・・。
  • そういえば去年のあたまにそういうのをやろうとしたのだが、試験運用を始めた直後に layoff があってショックのあまり気落ちして、キャンセルさせてもらったのだった。一緒にやってくれた人には申し訳ないことをした・・・。
  • その後自分の energy level がどん底まで落ちてしまい何もできなくなり、今もなんか回復しきってないのでもう一本 podcast をやるのは厳しい気がする。しかし、ちょっと無理してなんかしないと capacity 増えないのだよね。podcast の capacity 増やしてどうすんだという話はあるが・・・。
  • 仕事。
  • 全然身に覚えのない P0 バグが突然やってくてギョっとする。知らねー。とらいえずスッと P1 に直すところから始めるシニア仕草。P0 ってのは直すまで家帰るなって意味なんだよ。わかってんのかクソども(また下品な言葉を使ってしまいました)!
  • ほんと、お気持ちを bug の priority で表現するの組織の練度の低さを反映してるよなー。まあしかしその immature org の泥の中で生きていくことにしたのですよ・・・。
  • 朝からストレス高すぎで脳が sugar を crave しているが、我慢して脳ちゃん。あんたの下にある体が太っちゃうのよ。
  • 全社的に使っているライブラリのリグレッションだったらしく、優秀な QA 部門の人が問題のあるよそのバグを知っており解決。よかったねー。 なお chase down したのは YT の人たちで、やはりあいつらは優秀だな。
  • The Man Who Killed Google Search
    なんて悲しい話だろうか。シュンとしちゃうわ。Ads のボスが Search にやってくるとか悪夢じゃん・・・。
  • Google search boss Raghavan warns employees of 'new operating reality'
    うわあ。ハードウェア寄り部門、締め切りが動かせないせいでえきついと思っていたが、締切が固定されているおかげで気まぐれで動かされないという良さがある可能性を感じてしまう記事である。
  • 同じ要素を孕んでいるイライラしてしまう現象:1) 妻に yes/no の closed question を聞いたときに y/n なしに because の答えが返ってきて y/n がわからない。 2) チャットで hi とだけ送ってきて、"hi とだけ言うのやめような" というリンクと一緒に what's up と聞いたら "わたくし XX というチームのものなんですが YY さんに聞いたところ ZZ はあなたが詳しいとお聞きして" と返事がくる。質問は。何なんだよ。家族はともかく高給取り会社員がこれだとマジムカついてしまうぜ。

2024-04-25

  • 久しぶりに朝からコーヒーです!しかし会社のコーヒーマシンが壊れています!!!
  • 最近仕事しかしてなくて心が枯れ果て気味。
  • Vulkan Reference に epub があるというので冷やかしてみる。はー GL 殺したいなー誰か Vulkan Java binding つくってくんないかなー。誰かというのは Android の中の人の誰かですよ?アプリも Vulkan ほしいのよ?
  • ふとテック出版社の最近の推しを比べてみると・・・
    Pragmatic Bookshelf: By Developers, For Developers
    Amazon.com: O'Reilly Media: Bestsellers
    Manning
    同時代性という意味では Manning の圧勝。O'Reilly は出版は割と頑張っていそうだが、会社として本を推してないのが不幸。なにしろ O'Reilly のサイトにベストセラー一覧のページがないからね(Amazon のページはよく整理されてる)・・・。Pragmatic はもうフェードアウトモードですかね。引退間近なベテランによる個人事業だからいいと思うけど。
  • ふと GitHub projects を触ってみると・・・簡素だねー。みんなこれで仕事してんの?
  • Canonical releases Ubuntu 24.04 LTS Noble Numbat | Ubuntu
    おめでとー!そのうちアップデートしないとな。今回は clean install でなく in-place update を試して見てもいいかもしれない。

2024-04-26

  • 仕事がしそがしいのに家でも色々と業務が発生しイライラしていたが、FitBit workout をしてシャワーを浴びたらどうでもよくなった。運動はすべてを解決する。
  • 勤務先、レイオフは粛々と進行中との噂を目にする。配当とか出すヒマあったら人雇っておこうや。そして my job went to India and Elsewhere もリアルに発生しているらしくマジ IBM。まあクビになったらクニに帰らせていただきますよ・・・。
  • India, East Europe, South Americas, Japan だと給与はどういう序列なのだろうなあ。India, US より安いだろうが Japan より安いかというと自明ではない... が、levels.fyi でみると India まだだいぶ安いね。へえ。Bay Area の給料と比べると、そりゃ我々クビになるわな・・・という気分。はー仕事しよ。
  • Google to expand hardware R&D team in Taiwan - Nikkei Asia 電話機部門は India じゃなくて Taiwan に my job went to しそうだな・・・。独身だったら冷やかしに引っ越してもいいけど妻子あるとさすがになー。

2024-04-28 (backfill)

  • 今年初キャンプ。寒かった。そして妻子風邪。

2024-04-29

  • 週末はキャンプ労働を乗り切るためにカフェインを切れなかった(肉体労働にカフェインは必須なのである)。今週は効能が弱まりそうで不安。
  • リクルータの仕事をしている一緒にキャンプした子の友の父:「会社全体でヘッドカウントが一個しかないからそろそろレイオフされる気がするので今年の夏は旅行せず金貯めとく予定。」ベイエリアの世知辛さよ。
  • Google Doc with "Document Tab"? An option below Outline description : r/googledocs
    これ超便利で最近ようやく rollout されつつあるらしいんだけど、AI 機能に埋もれて誰にも気づいて盛られなく気の毒。
  • Kotlin, おまえ const があったのか・・・(素人)
  • Kotlin, 良い言語なのだが、ばんばってマスターになろうという気概を持てないのだよなあ。公式ガイドも PDF があるのは偉いが、 このフォントサイズは無理だろう・・・。
  • オンラインの HTML ドキュメントを無駄なく通読するためのテクニックというのはないものだろうか・・・。多分「ここまで読んだ」という状態をどこかに永続化しておければそれでだいたいいいはずなんだけど。
  • 噂ではあるが、今年に入ってから過去に在籍していたチーム2つで割と大幅なレイオフがあった模様である。転職してくる前に東京で働いていた三社もぜーんぶやめてあとでレイオフ/消滅してる。逃げ足があるというべきか、危うい仕事をしているというべきか・・・。情報産業、日米問わず将来が不安な職であることよなあ。
  • update manager - Cannot upgrade from Ubuntu 23.10 or 22.04 to Ubuntu 24.04 - Ask Ubuntu
    24.04 に in-place upgrade できるのは8月か。まだ先だな。いいです待ちます。
  • Does the xps 16 (intel ultra 7) support Linux? : r/DellXPS
    ついでにチェックすると、それなりに動くっぽいね。まあもう数年買わないんでどうでもいいっちゃいいけど。その頃までには Frame.work がもうちょっと成熟しててほしいもんだわ。

2024-04-30

  • すばらしいショートカットをみつけたと思っていたコード、よくよくテストしてみると全然意図通りに動いていないことが判明し、sigh. Cutting corner して失敗する悪い癖が出てしまった。Corner-cutting won't work. Stick to the plan.
  • とりあえず Kotlin doc の concepts セクションを読む。Coroutine は長そうなので後回しにしたが、それ以外には特に大きな穴はなかった・・・。
  • Standard library section は Collections だけ読めばいいかな。
  • 言語仕様はどうかとチラ見すると、overly formal だな。Coroutine のセクションだけ読めば良さそうである。
  • API リファレンスは...通読するようなものではなさそうなので、これはチャットちゃん頼みでいきましょう。