AMD Smart Access Memory は Ryzen 5000 系や Radeon RX 6000 系の組み合わせで効果を発揮する機能のようなのです。
AMD Smart Access Memory についてはこちらを。
https://www.amd.com/en/technologies/smart-access-memory
そして、こちらは Radeon RX 560 で Smart Access Memory を有効化できた、という方の記事です。(Linux上で)
Linux環境と Ryzen 5 2600、Radeon RX 560 で "Smart Access Memory" 機能を試す
OpenGL とか Vulkan のパフォーマンスが向上したということです。
ならば、うちの Radeon RX 570 でも Smart Access Memory を有効化できるのではないかと思い、試してみたところ大失敗でした。(Linux Mint 20 です)
BIOS で「Above 4G Decoding」という項目を有効化すると発動するらしいのですが、結果は残念でした。
項目 | 参考環境 | ワタシの環境 |
CPU | Ryzen 5 2600 | Ryzen 3 2200G |
GPU | Radeon RX 560 | Radeon RX 570 |
Linux Kernel | 5.9 | 5.8 |
Mesa | 20.3 | 20.0.8 |
Mesa のバージョンがちょっと古いのが原因でしょうか?でも、Linux では昔からこの機能は実装されていたとのことなので、ソフトウェアのバージョンが原因ではなさそうです。
すると、差は CPU ですかね。
Ryzen 5 2600 は Zen+ で、Ryzen 3 2200G は一つ前の世代の Zen です。この差でしょうか?
もう少し調べてみると、Ryzen 3 2200G は PCI Express 3.0 が x8 レーンに制限されていることが判明しました。Raden RX 570 は PCI Express 3.0 x16 のスロットに装着しているのですが、x8 レーンの制限のために Smart Access Memory が有効化されないのではないかと思い出しました。
$ journalctl -b 0 | grep -i limit kernel: pci 0000:01:00.0: 63.008 Gb/s available PCIe bandwidth, limited by 8.0 GT/s PCIe x8 link at 0000:00:01.1 (capable of 126.016 Gb/s with 8.0 GT/s PCIe x16 link)
というわけで、突如 Ryzen 3 3100 が欲しくなった今日この頃です。
【オマケ】
久しぶりに BIOS をいじりました。通常はオーバークロックのために「CPU Clock Ratio」という項目を変更することが多いと思うのですが、ワタシは省エネのためにダウンクロック(オーバークロックの反対はアンダークロック?)に挑戦したのですが、なぜか AUTO のまま変更できませんでした。
これも CPU が Ryzen 3 3100 に換装すると実現できるのではないかと淡い期待を抱いています。