簡単なコードで検証すると……
ここまで実アプリベースの検証を重ねてきたが、分岐予測がテキメンに効くという処理がどれだけ入っているのか見当がつかない。そこで以下のような単純なPythonのコードを用意した。素人仕事なので改善の余地は多々あるだろうが、そのあたりはご容赦いただきたい。
まず1万個の要素が入ったリストを用意し、その中には0から99までのランダムな値が格納されている。この中から「7」という数値だけを見つけてカウントするという簡単な処理だ。これを1000回繰り返した時の時間を計測し、さらにそれを10セット繰り返した平均を求める。
さらにリストは生成時のまま、つまりランダムな数値がそのまま格納されたリストと、そのリストの中身を一度ソートしたものである。どちらも律儀に1万回×1000回×10回の処理を回すことには変わらないが、ソートしてある方が分岐予測は効きやすい。処理時間改善に効き目があれば処理時間の短縮が期待できると考えた。
Ryzen 7 9700Xも7700Xも、KB5041587導入後で処理時間は微妙に短くなったが、特筆するような程効いてはいない。まあCINEBENCHでスコアーが伸びた結果を合わせ考えると性能は向上したようだが効果は薄いといったところだ。
むしろRyzen 7 9700Xと7700Xでは、こんな単純な処理でも0.5秒近く処理時間が短縮されていることの方が驚きだ。Zen 5アーキテクチャーで強化されたポイントが、思わぬところで確認できた。
OfficeやPhotoshopでもわずかに効果があった
では「UL Procyon」を利用し、実際のアプリを動かした時のパフォーマンスを検証しよう。最初に「Office 365」の「Word」「Excel」「PowerPoint」「Outlook」を動かす“Office Productivity Benchmark”を使用する。WordはZen 5アーキテクチャーと相性が良く、Excelは割とコア数が効きやすい(巨大なスプレッドシートで集計作業という処理内容も関係しているだろう)。果たして分岐予測改善は効果を発揮するだろうか?
まず総合スコアーからわかる通り、Ryzen 7 9700XにおいてKB5041587導入前よりも導入後は4%程度向上した。一方Ryzen 7 7700Xは1%台の伸びにとどまった。1%なら誤差と切り捨ててもいいほど小さい差だが、CINEBENCHのスコアーが上がっていたという事実を考慮にいれると、なんとなく効果らしいものが確認できた、と言えそうな値である。Ryzen 7 7700Xよりも9700Xの方が効果があったようだ、ということは言うことができる。
そしてテスト別のスコアーに目をむけるとRyzen 7 9700XではWordとPowerPoint、さらにOutlookのスコアーの伸びが特徴的だ。しかしExcelのスコアーに関してはほとんど変化していない。一方Ryzen 7 7700XではOutlookが伸びたものの、それ以外のテストではKB5041587の導入前・導入後でほとんど差が出ていない。KB5041587の効果が出るアプリとそうでないアプリがあるようだが、その差はかなり小さい程度の認識でいいだろう。
続いては「Photoshop」と「Lightroom Classic」を動かす“Photo Editing Benchmark”の結果だ。Image RetouchingはPhotoshopを、Batch ProcessingはLightroom Classicがメインで使われ、傾向として前者はシングルスレッド寄り、後者はマルチスレッド寄りの処理になっている。
Office Productivityに続き、ここでもKB5041587導入後のスコアーが伸びた。ただ総合スコアーの伸びはあまりよろしくない。変動の範囲内と言ってもいいかもしれないが、どちらもスコアーが同程度伸びている点から、誤差と安易に捨てることもできない。
ただテスト別スコアーを見ると、Image Retouchingは伸びているのにBatch Processingはあまり伸びないどころか、微妙に下がったデータも観測された。Batch Processingの結果が総合スコアーの足をひっぱっているようだ。Photoshopに限定すれば、Image Retouchingの伸びたKB5041587はメリットがあると言えるだろう。
週刊アスキーの最新情報を購読しよう