はじめに
AMD Ryzen AI を使うためのドキュメントを確認してみた。
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 の間ぐらいですね。どうなんでしょうか?