2018-02-17

x86/x64最適化勉強会に行ってきた

申し込もうと思ったら、もうすでに満席だったのでLTやるということで参加できた。セーフ。

何をLTで話そうと考えてたのだけど、ScalewayのARM64クラウドが思ったよりパフォーマンスがよくなくて、その理由を調べてたところこれがThunderXを採用してたために遅かった。それでいろんなベンチマークを取ってたら20ドルで買ったPINE64よりも遅い話が見つかったのでnssのコードを書くのとARMv8の勉強を兼ねて発表してきた



FirefoxではOpenSSLを使わずにNetscape由来のnssというライブラリを使っていて、今はRedHatと共同開発ということになっている。これがARMの上だと全く最適化を入れていない (昔ARMv7の頃に最適化は自分が書いた) し、ARMv8にはせっかくAESとかSHA256とかのハードウェア命令が入っているので、それを使ってみようということで3日間くらい仕事終わりの深夜にコードを書いてた。

パフォーマンスデータもCortex-A72とかNVIDIA Danverとかのデータを取りたかったけど、android/aarch64用にベンチを取るためのコンパイル環境を整える時間がなかったので、取ってない。取ったら資料をアップデートするかも。Cortex-A72の解析用にHiKey960買おうかな。

ということで、いろいろ勉強にはなったので、後でパッチを投げておく。たぶんFirefox 62には間に合えばって感じで。