xed
oneDNNのXbyakを入れ換えてビルドしたらエラー. prefetchrst2という命令が追加されていた. Nova Lake用命令らしい. xedで逆アセンブルするとnopになってしまうのでエンコーディング処理が正しいのか分からない. いろいろ調べてxed -64 -set PREFETCHIT 1 -set PREFETCHRST 1でうまくできるのが分かった. そしてoneDNNのXbyakのprefetchrst2が間違ってたのも分かった. 以前も似たようなことがあったな.
xed
oneDNNのXbyakを入れ換えてビルドしたらエラー. prefetchrst2という命令が追加されていた. Nova Lake用命令らしい. xedで逆アセンブルするとnopになってしまうのでエンコーディング処理が正しいのか分からない. いろいろ調べてxed -64 -set PREFETCHIT 1 -set PREFETCHRST 1でうまくできるのが分かった. そしてoneDNNのXbyakのprefetchrst2が間違ってたのも分かった. 以前も似たようなことがあったな.
Xbyakの後方互換性
去年の7月頃のコミットでeax+0+ecx*4みたいな式の扱いの部分で後方互換性がくずれてるらしい. 手元ではちゃんと動くようにしてたけどレアケースの考察が足りなかったか. 難しいな.
Inteface 2026年4月号
JIT周りの簡単な紹介記事を書いた.
『宇宙検閲官仮説 「裸の特異点」は隠されるか』(真貝寿明)
読みごたえがあった. 難しいところはゆっくり読み返したい.
WSL2
24年ぐらい使っていたVMwareからWSL2へ引っ越し. zshと同じく生成AIに手順を教えてもらいながらデータ移動. 一部うまくいかなかったところは手動対応. ネットワーク周りが全然違うのでだいぶ苦労したがなんとか移行できた. Xbyak::util::CpuTopologyでVMwareの結果を見ると結構違って興味深い.
LLVMへのパッチ
SCIS2026で紹介した方法をLLVMに組み込んだのでpull requestしてみた. マージしてもらえるとうれしいな.
CpuTopology
Alder Lakeなどのヘテロジニアスな環境のCPUキャッシュ情報を得るクラスをXbyakに追加. GitHub issueでIntelの人といろいろ議論して仕様が決まった. P-core, E-core判定とかキャッシュ構成とかOS依存なAPIが多くてかなり面倒だった.