職場がものものしい警備。何事かと思ったらどこぞの王族が見学に来てたのだとか。物好きやね。

実験室で使えるモニタが無かったので会議用の50"のモニタにPCつないだら,ターミナルの字が読めんっ。正確には文字は嫌というほどよく見えるんだけど,単語になるともう読めないっ。
何事も程々が大事っちゅうこっちゃね。

HSV→RGB変換で悩みまくり。変換そのものはcv::cvtColor()一発やし,なんとなれば自前のルーチンもあるんやけど,うーん,出てくるはずのない色が表示されてるぞ…。
で小一時間ほどつつきまわしてやっと思い出した。OpenCVの表色系てRGBちごてBGRやん。

職場のお茶部屋のレギュラーコーヒーの瓶にネスカフェ混ぜたん誰やっ。めっちゃ濃ゆなってしもたやんけっ。

CUDAのコード,一通り動くようになったのでプロファイルを取ってみて,ああヲレって天才とか。
しかし,この手の最適化って,楽しいんは楽しいんやけど,どう考えても人間のする仕事やないわね。ナップサック問題解くアルゴリズム考えるのは人間の仕事やけど,実際に解くのは計算機の仕事やがね。コンパイラがんばれ。コンパイラ屋さんがんばれ。

夜,新百合ヶ丘のChit Chatまで。今日はナオユキ/踊ろうマチルダ。
ナオユキさんにはいろいろ気をつかわせてしまいました。ありがとうございます。ご恩はしばらく忘れません。

ナオユキ先攻。鉄板ネタやったけど,先日とはしゃべり方も構成もまたかえてきてはって,ほんまこの人,うまい上にめっちゃ研究してはるわ。完全アウェイの中でがっちりお客さんつかんではるし。

マチルダを小さい箱で見るの実ははじめてなんやけど,大きいとこでも小さいとこでも同じようにリラックスした感じでやらはるんはさすがやね。ソロとは思えん音の分厚さも相変わらず。
ナオユキさんが言うてはったんやけど,緩急の付け方がうまいんやなぁ。

大満足の3時間弱。店の雰囲気もええし,もうちょっと近かったらゆっくりできたのになぁ。
それはそうとマチルダがHOMEを「うち」と言ってたのがなんかえらいかわいかったよ。

美容室で白髪染め。
毎回,カラーリングのあとに「イオンあてますねー」てなんかしてくれはるんやけど,それ単なる水蒸気やし。あの機械いったいなんぼで売りつけられたんやろなぁ。

CUDAとの戦いはまだまだ続くぜっ。
といっても今日は完全に凡ミス。非同期転送/実行を実装してベンチマークとってみたらなぜか同期時より1.5倍くらい遅くなってしまう。
ストリームの設計間違ったかしらとかどっかでいらん同期処理いれてるんかしらとか半日くらいごちゃごちゃつついてて,ふと実行回数を確認したら,がびーん,同期のときの倍の回数,非同期で実行してるやん。キューをクリアするの忘れてるだけやん。
とほほ。

ああそうかぁ,デバイス関数の分岐の中で__syncThreads()呼んだら以降の処理がwarp単位ですっぽ抜けることあるんや。
共有メモリの内容を保証したいだけやったら__threadfence_block()でええんやな。

夜,高円寺彦六へ。ナオユキ,アイリッシュコーヘイ&藤田まゆみ。NK&M。ヤングのおらへんCS&Nみたいやな。

今日は先攻ナオユキ。いつもより抑えたトーンで。聞き慣れたネタもしゃべり方一つでこんなに新鮮に感じるもんなんやな。さすが。

後攻はまゆみちゃんソロ,コーヘイソロ,コーヘイ&まゆみの構成。まゆみちゃんソロでは久々にフジナイの曲も聞けたり。コーヘイソロは新曲あり。
ナオユキさんから「ういういしいっ」とか「あの感じずるいっすわぁ」とか言われてたまゆみちゃんのMC,だいぶこなれてきたようやね。

その頃客席では,ナイトー先生がすっかりできあがってはりましたとさ。
おもろいしゃべりとええ音楽とうまい料理とぐでんぐでんの酔っ払い,ああええ夜やったぁ。

nvccでOpenMP使ったobjectファイルをリンクするときは, -Xlinker "$(LDFLAGS) -fopenmp"ということをメモ。
nvccに-fopenmpなんてフラグつけても「そんなオプション知らんわい」と怒られるのは当然なんだけど,-Xlinkerオプションに"-fopenmp"だけ渡してもなぜかgccに怒られてしまう。と言うわけでnvccが知ってる-Lとか-lもまとめて-Xlinkerに渡してしまうと良い。

うーん,あたりまえやけど,posix_memalign()で確保した領域を綺麗にreallocする手段て無いもんやなぁ。

int realloc_memalign(void **memptr,
                     size_t alignment,
                     size_t old_len,
                     size_t new_len)
{
    void *ptr;
    int ret = posix_memalign(&ptr, alignment, new_len);
    if(ret)
        return ret;

    memcpy(ptr, *memptr, new_len < old_len ? new_len : old_len);
    free(*memptr);
    *memptr = ptr;

    return 0;
}

…かっこわるぅ。
c++的にはstd::vectorなりのアロケータにガシガシ書いた独自クラスを指定するのが筋なんやろうけど,それもまた面倒くさいはなしやしのぉ。