水曜日です。
労は期末なので、比較的穏やかな日でした。他部署の方とお昼を食べるなどの圧倒的コミュニケーション力を発揮しました。
労自体は一進一退という感じで、なかなか思うような結果が出ません。焦らず着実に知見を貯めていきたい。
帰りの電車で、オリンポスの郵便ポストを読み終わりました。とてもよいラストでした。
オリンポスの郵便ポスト読みました。有益度10/10です。女性主人公で文章密度が高く、ラノベには珍しいタイプの作品です。SF的な世界観なのでハヤカワから出てもおかしくない雰囲気です。派手さはないですが、読んで幸せになれる一冊でした。特に最後の場面によさがありました。
— 努力したらHappy Come! (@echizen_tm) 2017年3月29日
帰宅後はNavarro本のpopcount実装を楽しみました。本には2パターンの実装例がありました。ふと、組み込みのpopcount命令(_mm_popcnt_u64())とどのくらい差があるのか気になり、試してみました。結果は圧倒的に組み込み命令が速く、なんだこれはという気持ちでした。264回実行させてみた累計時間が、Navarro本実装だと計測不能(少なくとも数分で返ってこない)なほど遅かったのに、組み込み命令は0msでした。なんだそれ・・・。
今までハード属性が苦手だったので組み込み命令は使ってなかったのですが、これほど差があるなら採用も検討したい。と思ったのですが、べた書きで_mm_popcnt_u64()をすると(たぶん)コンパイル時の最適化で何もしなかったことになるっぽいです。適当に関数から呼ぶようにしたらNavarro実装をより少し速い程度でした。残念。
なお、組み込み命令のpopcountについては以下の記事を参考にしました。
以上です。昨日のうちにけフを見てしまったので、今日はアニメ視聴もなく早寝です。