スキップしてメイン コンテンツに移動

Arch Linux: 最適化フラグをどうするかでベンチマークしてみた

結論

手持ちの PC では CFLAGS="-O2" で良いということになった。


ベンチマーク概要

Phoronix test suites で list-recommended-tests とされている物のうち、System Tests の中からさらに CFLAGS をきちんと拾ってくれるものを選択した。コンパイラは CPU の仕事に関わるんだから CPU テストで見るべきという意見もありそうだけど、システム全体で効果が出ないなら、わざわざ危険を犯す必要はないと思い、システムテストとした。

 

検証したフラグは -march={native,x86-64}, -mtune=generic だ。なぜなら Arch の makepkg.conf が -march=x86-64 -mtune=generic となっているからだ。

マシン情報

 


Apache テスト

 

-mtune=generic がなぜか突出。多少差が出てる。

 

PostgreSQL テスト

非常に僅差。

WavPack テスト

とても僅差。

GnuPG テスト

すごい僅差。


Redis テスト

僅差ながら -O2 が優勝。多少差が出たか。

 

Stress-NG テスト

 

CPU ストレスを選んだので CPU を直撃する -march=native がすごいんじゃないかと思ったけど、全然だった。多少差がでた。


まとめ

自分の PC ではアーキテクチャ固有の最適化を使っても、あまりパフォーマンスに差が見えない。危険を犯して得られる見返りが小さい。

また、ある程度差が出た Apache, Redis, Stress-NG では、無印が 3位、1位、2位と表彰台を外さない大活躍。

つまり、自分の PC では -O2 無印で何も危険を犯す必要が無いという結果となった。


おまけ: なぜ -march, -mtune で速くならないのか、勝手に想像してみた。

自分は素人なので、考えただけで本当かどうかは知らないので悪しからず。

一つ目の理由は、ハードつまり CPU が、固有機能は持っているが、別に汎用機能と比べて効率良く動くようにはできていない、ということが考えられる。まあこれはどんな製品にもあることだろう。

二つ目の理由はソフトウェア側、つまり gcc の問題だ。良く知らないけど、-march, -mtune は元のコードを書き換えて、その機能を使うようにする、またはその機能に適したコードに書き換えると言うものだと思っている。あくまでも CPU の要件に沿ったコードに書き換えるもので、コードそのものを -O2 のように効率化するものではないため、変換したコードが元のコードよりも効率的になっていない、ということが考えられる。

もちろん本当かどうかは知らない。









コメント

このブログの人気の投稿

Wordでは、等幅フォントを指定して

Wordでは、等幅フォントを指定して tags: ms office Wordでは、等幅フォントを指定しても空白文字を入れるとずれる † Microsoft Word で、プログラムのソースなどを載せたいとき、consolas や courier などの等幅フォントを使う人が多いだろうが、等幅フォントを選んでも文中に空白文字(半角スペース)を混ぜると、幅が合わなくなる(文字のフォントよりもスペースの方が幅が若干狭くなる)。 Visual Studio なんかで使うぶんにはこんなことにはならない。これは Word の設定の問題だ。 要因としては、Word では空白文字が 2 個重なったときに勝手に幅を狭くしたりするらしい。これは以下の手順で解除できる (1) 右上の Office ボタンを押して、下の方にある「Wordのオプション」を選択 (2) 「詳細設定」タブを選択。一番下にある「レイアウトオプション」を展開する (3) 「半角文字と全角文字の文字幅を調整しない」をチェックする 正直、等幅フォントを使ったら、デフォルトでスペースも同じ幅になってほしいものだが。 Original: http://goo.gl/OAmcN Posted from Diigo . The rest of my favorite links are here .

Sound Blaster Play 3 は Linux でもハードの限界で動作できるみたいです

 本家によると最高スペックは出力 24ビット 96kHz, 入力 24ビット 48kHz です。 https://jp.creative.com/p/sound-cards/sound-blaster-play-3    /proc/asound/card2/stream0 を読む限り、入出力両方とも最高スペックでの設定ができそうです。   そこで $HOME/.config/pulse/daemon.conf に   resample-method = speex-float-2 avoid-resampling = yes default-sample-format = s24le default-sample-rate = 96000 としました。avoid-resampling としてるので、レートが 96kHz と 48kHz (Youtube) のときは再サンプリングしません。44.1kHz (CD やレコチョクの音楽ファイル) は再サンプリングされるので resample-method で speex-float-1 から 2 に気持上げました。  実は PulseAudio のデフォルトが 44.1kHz なので、これまではレコチョクファイルは再サンプリング無しで、これからは有りになったのですが、馬鹿耳なので分かりませんでした。 また、Sony さんの 16bit/48kHz と 24bit/98kHz を聞き比べてみたのですが、やはり馬鹿耳なのでランダムで鳴らしてみても、全く分かりませんでした。 https://helpguide.sony.net/high-res/sample1/v1/ja/ ただ、フルスペック出せると気持ちが良いので、しばらくこのまま運用しようと思います。なんかフルスペック出すためだけに、ハイレゾ版音楽買っちゃう人も居るかもしれませんね。   この調子で Sound Blaster GC7 も最高スペックで Linux 上で動くなら是非欲しい(付属ソフト要らね)のですが、どうなのでしょう。

DELUX m618 mini にオムロンスイッチなんて入っていなかった件

 DELUX m618 mini はオムロン製スイッチ使ってると謳ってるけど これは中華 DELUX 社の垂直マウスです。Ali の公式サイトはこちら。ちなみに全てのリンクはアフリエイトではありません。 https://www.aliexpress.com/item/32991743157.html   (製品ページより) そしてオムロンのスイッチを使っていると謳っています。そのうち消えるかもしれないので、こちらは製品ページ画像へのリンクではなく、スクショにしました。 実は Asus Rog のスイッチを自分で変えられるというマウスが気になっており、オムロンに静音スイッチがあるなら、面白いなと思って調べたのですが、オムロンは静音スイッチなんて出してないです。一節によると機構的に静音のものは作れないとかなんとか。 バラしてみた 一体どういうことかなーって思っていた矢先に右クリックがチャタるようになったので、バラしてみました。   はい、これは Kailh の mute switch です。もしくは、そのパクリです。 Ali 公式ページです。 https://www.aliexpress.com/item/32962497404.html  (公式ページより) ということで中華アルアルでした。