simdgenのレジスタコピー
いくつか減らした. cosh(x)がunroll=4できるようになった.
cosh(x)
C 158.62 usec
unroll=1 sg 18.42 usec
unroll=2 sg 9.20 usec
unroll=3 sg 6.33 usec
unroll=4 sg 4.95 usec
unroll=5 sg 3.90 usec
まだunrollが効くのか.
どれだけlatencyが大きいんだ. 測定方法間違ってるのかな.
でもAVX-512だとそんなに効かないしなあ.
DNSのTXT取得
少し前にサンプルコードを書いたのだった.
ns_initparseやns_msg_countのマニュアルが無くて調べるのに苦労した.
cosh on simdgen
しょうもないバグを直してAVX-512版が動いた.
SVEへの移植も簡単にできた.
SVEだとunrollの効果がきれいに出る.
cosh(x)
C 158.62 usec
unroll=1 sg 18.42 usec
unroll=2 sg 9.20 usec
unroll=3 sg 6.33 usec
bls for Java bindings
setStrの戻り値チェックミスの修正と細かいAPI追加.
ssh
公開鍵認証で何故か入れず時間を食った.
authorized_keysではなく.ssh自体のpermissionの問題だった.
xbyakでmemfd_createを利用
XBYAK_USE_MEMFDを定義すると/proc/self/mapsでマッピングされた領域にxbyakというラベルがつく.
unroll simdgen on SVE
unrollオプションを設定できるようにした.
後でレジスタの退避で間違ってたところがあったので修正.
『猿橋勝子 女性科学者の先駆者』(清水洋美)
なかなか面白かった.
最初にやる人はなんでも大変だなあと.
SVE版のloop unroll
枠組みは出来てるので拡張は容易.
やはりAVX-512に比べてunrollしないと速くならない.
AVX-512版のloop unroll
ここだけいじれば動くだろうと思って修正したら動くようになった.
もう少しコード整理はしたいところだが.
simdgenのベンチマーク
いくつかテストとベンチマーク追加.
網羅的なテストは後で.