憂鬱な午後のひととき

11月10日_

コンパイラ勉強会途中から参加

みんなコンパイラを書こうという話. まじめに書いたことないのでまだ人生fakeだな. fakeのままでもいいけど.

範囲を計算するためのSMTソルバの話は(shinhさんが先に質問してたけど), あれぐらいなら全数計算の方が簡単で速いんじゃないかと思った.

懇親会が早めだったので参加して何人かと食事もできた.

11月9日_

mclの実装詳解書きかけ

社内勉強会で話したメモ.

256bitや384bitは複数のアルゴリズムの速度が拮抗してるのでいろいろ実装して試さないとどれが一番よいのか分からない. 384bit整数同士の乗算はKaratsubaの方が速い予想だったのだが違った.

montSqrで一度乗算した値はstackにメモ化するアイデアもあるけど実装が面倒そうで試してない. 速くなるかなあ.

11月8日_

『「余剰次元」と逆二乗則の破れ』(村田次郎)

面白かった. 近距離(1mm程度)での万有引力の法則がr-2であることがあまり検証されていなかったので, そこで法則が変わってるなら重力が他の3個の力に比べて弱い理由が説明できるかもしれないというADDのモデル(1998).

それを検証するためにコンパクトな実験装置を考えて検証する.

天体レベルで検証されてる法則が近くでは成り立たなくてもよいから理論を作ってみるという発想はすごいな.

本が出てから7年が経過し, 精度があがって今のところ0.1mmまでは法則に変わりはないそうだ(cf. 重力逆二乗則の実験検証 日本物理学会誌 Vol. 73, No. 11, 2018).

11月7日_

Re: clang vs. gcc

どうやらライブラリの差ではないようだ. 同じライブラリでも実行バイナリで差が出る. なんだろう. t.cppは単純なループ. 逆アセンブルするとgccの方がよりinline展開をしてるな. でもそれが(遅くなる方に)こんなに影響するとは思えないし.

for (int i = 0; i < 10000; i++) {
    pairing(e, P, Q);
}
% g++ -o gcc-link t.cpp -L ./lib -lmcl -lgmpxx -lgmp -lcrypto -I ./include/ -O2
time ./gcc-link
2.661u 0.000s 0:02.66 100.0%    0+0k 0+0io 0pf+0w

clang++-6.0 -o clang-link t.cpp -L ./lib -lmcl -lgmpxx -lgmp -lcrypto -I ./include/ -O2
time ./clang-link
2.546u 0.004s 0:02.55 99.6%     0+0k 0+0io 0pf+0w
11月6日_

travis-ciのASanでエラー

travis-ciでなぜかエラーがでるようになった.

664==2778==LeakSanitizer has encountered a fatal error.
665==2778==HINT: For debugging, try setting environment variable LSAN_OPTIONS=verbosity=1:log_threads=1
666==2778==HINT: LeakSanitizer does not work under ptrace (strace, gdb, etc)

よく分からんが, sudo : trueにしたら動くようになった(cf. Enable ptrace capability in container based builds).

結構前からの現象のようだが, だとすると逆に今まで動いていたのはなぜだろう.

11月5日_

384bit Montgomery乗算

メインのところはあらかた終わった. もうちょっと速くなるかと思ったけどそれほどでも無かった. 2.5Mclk程度.

11月4日_

mclの高速化

mulx + adcx + adoxはレジスタ使用数が減るのでうれしいけどすごく速いというわけではないのがなんとも.

11月2日_

mclの高速化

とりあえずgccの件は保留にして細かい最適化の続き. 1%も変わらない試行錯誤が続く.

11月1日_

clang vs. gcc

今頃気がついたのだけどmclはclang-6でbuildしたほうがgcc-7でbuildするより1割以上速い. かなりの部分がすでにasm化されてるのにこの差は大きい. 何が原因なんだろう. さらっとプロファイルを見る限りではそれほど違いがないように見えるのだが.


御意見は光成滋生<herumi@nifty.com>までお願いします