Vengineerの妄想(準備期間)

人生は短いけど、長いです。人生を楽しみましょう!

AMD XDNA Driver for Linux を覗いてみる (その4)

はじめに

AMD XDNA Driver for Linux を覗いてみる (その4)

今回は、レジスタ関連をみてみます。

Ryzen 7040 (Phenix)

Ryzen 7040 (Phenix) のレジスタは、ipu_phx_regs.c です。

const IPU_DEFINE_DEV_INFO(PHX, "RyzenAI-Phoenix", 1502, "amdipu/1502/ipu.sbin",
              FW_API_HASH_HIGH, FW_API_HASH_LOW);

と、デバイスIDが 0x1502 で、Firmwareのファイル名は、ipu.sbin です。

Ryzen ipu2

Ryzen ipu2 なるデバイスレジスタもあります。ipu_ipu2_regs.c

const IPU_DEFINE_DEV_INFO_PSP(IPU2, "RyzenAI-ipu2", 17f0, IPU2_PSP_OFFSETS,
                  "amdipu/17f0/ipu.sbin", FW_API_HASH_HIGH, FW_API_HASH_LOW);

バイスIDが 0x17f0 で、Firmwareのファイル名は、同じで ipu.sbin です。

レジスタの比較

Phenix と IPU2 では、色々とレジスタが違います。

BAR では、

Phenix

#define PHX_REG_BAR_INDEX  0
#define PHX_MBOX_BAR_INDEX 4
#define PHX_PSP_BAR_INDEX  0
#define PHX_SMU_BAR_INDEX  0
#define PHX_SRAM_BAR_INDEX 2

IPU2

#define IPU2_REG_BAR_INDEX  0
#define IPU2_MBOX_BAR_INDEX    0
#define IPU2_PSP_BAR_INDEX 4
#define IPU2_SMU_BAR_INDEX 5
#define IPU2_SRAM_BAR_INDEX    2

Phenix では、

  • REG/MBOX/SMU : BAR-0
  • SRAM : BAR-2
  • MBOX : BAR-4

でしたが、

IPU-2 では、

  • REG/MBOX : BAR-0
  • SRAM : BAR-2
  • PSP : BAR-4
  • SMU : BAR-5

になっています。

Phenix では、BAR-0/2/4は64ビットぽいですが、IPU2 では、BAR-4とBAR-5があるのでこちらは32ビットぽいですね。

おわりに

Rynzen 7040に対して、Rynzen 8040は XDNA の動作周波数を 1GHz => 1.6GHz にアップしたものと妄想しています。

となると、デバイスID、0x17f0 の ipu2 は、Ryzen 8050 のことでしょうか?

これによると、ipu2 のサポートは、2024.1.27 なので、Rynze 7040 より後のものであることは確かっポイです。

下記のファイルによると、ipu2 の firmware はまだ公開されていないようです。

github.com

下記のコミットを見たら、変更前に、Strix とあるので、8050 決定ですね。

github.com

README.md にも書いてありました。

  - To run AI applications (test machine): RyzenAI processor, example: Phoenix/Strix

関連ブログ

vengineer.hatenablog.com

vengineer.hatenablog.com