Vengineerの妄想

人生を妄想しています。

AMD Ryzen AIを使うには、IPU Binary を使う。そして、IPU Binary は2種類ある!

はじめに

AMD Ryzen AI を使うためのドキュメントを確認してみた。

ryzenai.docs.amd.com

0.9 で preview 版っぽい。

基本的には、Python で使う

下図を説明のために引用します。

  • TensorFlow
  • PyTorch
  • ONNX

ベースの python で使うもの。

  • CPU
  • XDNA

XDNA が AI Engine側

IPU driver

Ryzen AI は、IPU device(PCIバイス、デバイスID=0x1502) として実装されているようです。

そして、IPU driver 経由 で Ryze AI が使える。>= 10.105.5.42 で使えるっぽい。

ソフトウェア (ryzen-ai-sw-0.9.zip) を展開する。ソフトウェアはユーザー登録しないとダウンロードはできない。

実体は下記にあるっぽい。

set XLNX_VART_FIRMWARE=C:\path\to\ryzen-ai-sw-xx\ryzen-ai-sw-xx\voe-xx-win_amd64\1x4.xclbin

IPU Binary selection

Runtime Setup の IPU Binary selection のところに、下記の説明があり、

IPU binary 1x4.xclbin: An AI stream using 1x4.xclbin uses an IPU configuration that provides up to 2 TOPS performance. Most real-time application (video conferencing use cases) performance requirements can be met using this configuration. In the current Ryzen AI software platform, up to four such AI streams can be run in parallel on the IPU without any visible loss of performance.

IPU binary 5x4.xclbin: For more advanced usecases or larger models, IPU binary 5x4.xclbin can be used which uses a larger configuration to provide up to 10 TOPs performance. In the current version of the release, 5x4.xclbin does not support multiple concurrent AI streams, and can only be used by a single application.

1x4.xclbin と 5x4.xclbin の2種類の IPU binary があるっぽい

  • 1x5.xclbin : 2 TOPs
  • 4x5.xclbin : 10 TOPs

これって、

  • 1 x 4 の構成
  • 5 x 4 の構成

の違いなんでしょうかね。となると、Ryzen AI は、5 x 4 の構成だけど、通常は 1x4.xclbin を使っているということなんですかね。5x4.xclbin を使うときは、下記のように XLNX_TARGET_NAME環境変数を設定しないといけないんですね。

set XLNX_VART_FIRMWARE=C:\path\to\5x4.xclbin
set XLNX_TARGET_NAME=AMD_AIE2_5x4_Overlay

おわりに

Ryzen AI、実は2構成で使えるんですね。

Versal Edgeでは、下記のように、一番小さい VE2002 は AI-Engine-ML (AIE2)が8個、VE2102 が 12個、VE2202 が 24個のようなので、5 x 4 = 20 だとすると、VE2102 と VE2202 の間ぐらいですね。どうなんでしょうか?