256bit用square
昨日, 夜中思いついて実装してみたら速くなった. なんで10年前に思いつかなかったかな. 384bitでも試してみる.
.
256bit用square
昨日, 夜中思いついて実装してみたら速くなった. なんで10年前に思いつかなかったかな. 384bitでも試してみる.
inv
Fp6::invとFp12::inv少しだけ改良. 2.336Mclk
wasm用のmulを書き直してみたけど速くならなかった. sqrは速くなったもよう.
Fp2Dbl
mulPreやsqrPreの改善とasmコードの統合.
sub
分岐は無くした方がよかった. マイクロベンチマークでは分岐ありのほうが速かったけどグローバルでは遅くなる. 難しいな.
『さびしい女神』(仁木英之)
スケールの大きい話だった. SFチックなところが好み.
リファクタリング
Fp::addのコード生成まわりがすっきりしてきた. 次はsub. レジスタ一つ足りないのどうしようかな.
Travis-ci
GitHub Actionに移行したいのだけど勉強する心の余裕が今ないのでとりあえずtravis.comに移動した.
clang-11の_ExtIntがすごくてもうこれでいいんじゃないかという気がしている.
Fp6::sqr
何故かFp2Dblを使った最適化をしていなかったので修正. あとFp2Dbl::mul_xiも追加. いろいろ書き散らかしてるのでコードまとめないと. inline化してるところもcallにまとめたほうがキャッシュ効率よくなりそう.
Fp6::mulその2
昨日の「昔やって無かったかな」は勘違い. 今回はFp2なのでちょっと違った. でも同様の方法を使って少し速くなった.
Fp6::mul
一部のadd/sub時のmodを減らせるところを見つけた. 昔やって無かったかな. 再発見? 大分前で覚えてない.
地震
もう布団に入って寝ていたので驚いた. 結構長い時間揺れたな.
コード整理3 : 実験のために作っていたecdsaのコードを別のところに移動した.
コード整理2
もう古いの消してよいのかな. とりあえず消してみて文句が来たら復活することにしてみるか.
コード整理
言語バインディングってどう提供するのがよいのかな. 最初は一カ所にまとめていたけど言語ごとのディレクトリ作法というのがあるから結局それぞれレポジトリを作る感じになってコードのコピペになってしまってる.
mul2
ちょっとでも速くならないか試すために2倍算関数を追加. 置き換えられる部分を探していく.
眼鏡と頭痛
去年末に目医者で目の精密検査と眼鏡の度の測定をしてレンズを作り直した. 今までは度がきつ過ぎたらしい. それまでは何年もずっと頭痛が酷くて月8回以上痛み止めを飲んでいたのが今年は今日が初めて.
去年までどれだけ度があっていなかったかと, 今回えらく根詰めたことが分かる. 気をつけよう.
Fp2::mulの高速化
昔測定したときはadcが使えるときはその方がよかったとはずなのだがadcxにしたらちょっと速くなった. ペアリングでも数%変わるのでこれは大きい.
JITをstatic化するときに古いCPUで落ちるバグが入り込んでいた. やっぱりコード整理しないとな.
mclの最適化
ここしばらくmclの多倍長演算の最適化見直しをしていた. フラグの扱いを見直してFp::mulやFp::montが速くなった.
いろいろなパラメータやオプションに対応するためにだいぶごちゃごちゃしてるので整理したい. wasm向けの最適化も調整中. とりあえずペアリングが1割ほど速くなった. もう少しがんばらないと.
毎日
変化が無いのでいつのまにか時が過ぎてる. GitHubの履歴をみると細々とやってはいるようだが. しばらくちゃんとメモを更新していこう.
『賞金稼ぎスリーサム!』(川瀬七緒)
面白かった. 元警官, 猟師, 警察ストーカーの組み合わせはすごい. 猟師なのに一度も発砲してないのもよい.