憂鬱な午後のひととき

5月31日_

依存関係

expはmovprfxを使ったら速くなったけどlogは速くならなかった. ちょっと残念.

5月30日_

計算機特論

何をどうしゃべるか考え中. 他の資料の人を読んでみたり.

5月28日_

log for SVEその2

意外にもgatherを使った方が速かった. 小さいSVEのテストはFX700よりもIntelマシンで試す方が速くて効率がよいことに気がついた.

5月27日_

テーブルを使ったlog

アルゴリズムを理解したのでC++で実装してみた. SVEに落としてみよう. 単なるテーラー展開とどちらが速いかな.

5月23日_

she-wasmの初期化

遅くなったというissueは調べるのに時間がかかったが結局コンパイルオプションのせいだった. wasmではテーブルサイズは小さくしないと駄目だった.

5月21日_

log for SVE

最適化レベルを上げるとおかしくなるのはレジスタの退避をミスっていたせいだった.

5月20日_

bls for s390x

testが失敗する原因の調査.

乱数生成で落ちるのでmacでもあったよく分からない現象かと放置しようと思ったのだけどちゃんと見てみた. 落ちるときのerrnoがEMFILEだった. "/dev/urandom"ファイル多重openは明らかにおかしい. 試しにコンパイルオプションの-fno-threadsafe-staticsを取り除いたら動いた. こいつのせいだったのか.

5月18日_

fcpy

fcpyは即値に0を指定できなかった. xbyak_aarch64がエラーを出さずにしれっと1にしてしまうのではまった. これは治すべきだろうな.

サイボウズ・ラボユースの10周年の記事が公開された. いろいろ調整が大変だった. やっとでたという感じ. みなさんどうもありがとうございました.

5月15日_

早稲田大学の情報理工学科2年生向けに講演

発表資料「私とOSSの25年」 話題はなんでもいいと言われた. 2回生の時を思い出すと念願のCコンパイラ(High-Cコンパイラ)を買っていたので, そのあたりからの話をまとめた.

終わってから先生方と雑談. 久しぶりの外部の人とのおしゃべりで楽しかった. 後で「数学大事だよ」と言ってもらえるとよかったかもという感想をいただいた. それならそう強調できたのだけど, まあ今回は仕方ない.

5月14日_

NaNやInf

log(x)のxが負や0のときに対応. 即値が32bit入らないの, いろいろ面倒だな. 汎用化しておくか.

5月13日_

log for SVE

ひとまず動くようになった. 退避すべきレジスタの部分がずれていて外側でおかしくなることがあった. ここは切り出して使いやすい形にしたいな.

5月10日_

関数castを取り除く

JIT生成したコードの関数ポインタをキャストしてたらclangのsanitizerが警告を出すので取り除く. 動いてるのだからいいとは思うが指摘してくる人がいると対応ぜざるをえない.

5月8日_

abs

uint32_t abs(int32_t x)
{
    return x < 0 ? -x : x;
}

だとclangのsanitizerがx=0x80000000のとき警告を出す. 面倒だけども

inline uint32_t abs(int32_t x)
{
    if (x >= 0) return uint32_t(x);
    if (x == -2147483647 - 1) return 2147483648u;
    return uint32_t(-x);
}

とした. ちなみにclangは最初と同じ簡潔なコードを生成する. gccやVCは余計な分岐が入った. 無駄な作業だなあ.

5月4日_

s390x対応完了

なんとか全てのテストが動くようになった. LinuxONEというのが正式名称らしい.

5月3日_

s390x対応

想像以上にlittle endian依存な部分(serializationやstring変換系)があちこちにあって対応に時間を食ってる. リファクタリングしつつendian依存を無くしていく.

5月2日_

腰痛

腰をひねったか目茶苦茶痛い. 立ったまま作業してるので足の疲れが腰から上半身にも伝播してるようだ.

5月1日_

『言ってはいけない宇宙論 物理学7大タブー』(小谷太郎)

大体知ってることだったがまとめられていて読みやすい. エントロピーの説明はうまいと思った.

気がついたら5月.


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