xbutil ユーティリティ
xbutil コマンド ライン ツールは、XRT の 2020.2 リリースではプレビュー モードです。このバージョンは、今後の XRT のリリースで現在の xbutil に置き換わります。新しいユーティリティについては、https://xilinx.github.io/XRT/2020.2/html/xbutil2.html を参照してください。ザイリンクス ボード ユーティリティ (xbutil) は、ザイリンクス ランタイム (XRT) のインストール パッケージに含まれるスタンドアロンのコマンド ライン ユーティリティです。xbutil コマンドは、Alveo データセンター アクセラレータ カードのプラットフォームおよびエンベデッド プロセッサ ベースのプラットフォームのみをサポートします。
アクセラレータ カードはユーザー機能と管理機能に分割されており、異なるカード アクセス レベルを提供します。ユーザー機能はユーザーがアプリケーションを読み込んで実行できるようにし、管理機能はシステム管理者がカードを管理できるようにします。xbutil ユーティリティは、ユーザー機能の操作に使用します。xbmgmt ユーティリティは、管理機能の操作に使用し、実行にはルート権限が必要です。機能アクセスを 2 つのユーティリティに分割しているのは、ツールの管理機能にセキュリティを提供するためです。
XRT がカードにインストールされ、認識されている必要があります。Vivado フローのカスタム Alveo カード設定では、xbutil は使用されません。このユーティリティには、インストール済みのアクセラレータ カードの検証および特定、およびカードのメモリ、ホスト インターフェイス、ターゲット プラットフォーム名、システム情報などのカードの詳細を表示する複数のコマンドが含まれます。この情報は、カードの管理およびアプリケーションのデバッグに使用できます。
xbutil はエンベデッド プロセッサ プラットフォームをサポートしますが、これらのプラットフォームで使用できるコマンドは、dump、help、program (DFX プラットフォームのみ)、query、scan、および status コマンドのみです。xbutil コマンド ラインのフォーマットは、次のとおりです。
xbutil <command> [options]
使用可能なコマンドおよびオプションは、次のとおりです。
- clock
- dmatest
- dump
- m2mtest
- mem --read
- mem --write
- p2p
- program
- query
- reset
- scan (xbutil)
- status
- top
- validate
- version
help コマンドを使用すると、使用可能な xbutil コマンドおよびオプションを表示できます。xbutil helpclock
clock コマンドを使用すると、xclbin 内で計算ユニット (CU) までのクロックのクロック周波数を変更できます。コマンド ライン形式は次のとおりです。xbutil clock [-d card] [-r region] [-f clock1_freq_MHz]
[-g clock2_freq_MHz] [-h clock3_freq_MHz]-f オプションを指定したクロック周波数はすべての CU に適用されます。各 CU のクロック周波数は個別に変更できません。また、xclbin がプログラムされ、指定したクロック周波数で動作可能になっている必要があります。Vitis ツールで生成された CU には、clock1 しか使用されません。RTL ベースのカーネルには、clock2 および clock3 が接続できます。
次の表に、使用可能なオプションを示します。
| オプション | 説明 | 必須 |
|---|---|---|
-d <card> |
ターゲット カードを指定します。<card> は、card_id または Bus:Device:Function (BDF) のいずれかに指定できます。指定しない場合は、デフォルトの card_id = 0 になります。 注記: xbutil scan コマンドを使用すると、インストールされたカードに対して card_id と BDF の両方が表示されます。 |
× |
-r <region> |
廃止予定で、効果はありません。オプションは、次のリリースで削除される予定です。 | × |
-f <clock1_freq_MHz> |
1 つ目のクロックのクロック周波数を MHz で指定します。このクロックはすべてのプラットフォームにあります。 | ○ |
-g <clock2_freq_MHz> |
2 つ目のクロックのクロック周波数を MHz で指定します。プラットフォームによってはこのクロックが含まれないものもあります。 | × |
-h <clock3_freq_MHz> |
3 つ目のクロックのクロック周波数を MHz で指定します。プラットフォームによってはこのクロックが含まれないものもあります。 | × |
xclbinutil ユーティリティ ツールを使用して、使用可能な xclbin クロックをリストします。
クロック周波数の変更前に xclbin をプログラムする必要があります。xclbin をプログラムする方法は、program を参照してください。クロック周波数は、xclbin がプログラムされたら変更できます。
たとえば、card_ID = 0 の clock1 を 100 MHz に変更するには、次のコマンドを実行します。
xbutil clock -d 0 -f 100
同様に、card_ID = 0 の 2 つのクロック (clock1 を 200 MHz、clock2 を 250 MHz) に変更するには、次のコマンドを実行します。
xbutil clock -d 0 -f 200 -g 250
次に、このコマンドが問題なく実行された場合の出力例を示します。
INFO: Found total 1 card(s), 1 are usable
INFO: xbutil clock succeeded.
xclbin がプログラムされない場合、次のようなメッセージが表示されるようになります。clock コマンドの実行前に xclbin をプログラムしてください。
INFO: Found total 1 card(s), 1 are usable
WARNING: 'uuid' invalid, unable to find uuid.
Has the bitstream been loaded? See 'xbutil program'.
ERROR: xbutil clock failed.
dmatest
dmatest コマンドを使用すると、ホスト マシンとカード上のグローバル メモリ間のデータ転送テストを実行し、カードのメモリ スループットを検証できます。dmatest は、validate コマンドに含めます。
コマンド ライン形式は次のとおりです。
xbutil dmatest [-d card] [-b [0x]block_size_KB]
次の表に、使用可能なオプションを示します。
| オプション | 説明 | 必須 |
|---|---|---|
-d <card> |
ターゲット カードを指定します。<card> は、card_id または Bus:Device:Function (BDF) のいずれかに指定できます。指定しない場合は、デフォルトの card_id = 0 になります。 注記: xbutil scan コマンドを使用すると、設置されたカードの ID と BDF の両方が表示されます。 |
× |
-b blocksize |
テスト ブロックのサイズを KB で指定します。-b オプションを指定しない場合、ブロック サイズのデフォルトは 65536 (KB) です。ブロック サイズは 2 のべき乗にする必要があります。 ブロック サイズは 10 進数でも、16 進数でも指定できます。たとえば、 |
× |
dmatest を実行する前に xclbin をプログラムする必要があります。xclbin をプログラムする方法は、program を参照してください。
dmatest コマンドは、カードにプログラムされている xclbin でアクセス可能な DDR バンクまたは HBM 疑似チャネル (PC) に対してのみスループット テストを実行します。
次は DDR バンク 0、1、2、および 3 を使用して xclbin を指定した U200 のコマンド出力の例です。
INFO: Found total 1 card(s), 1 are usable
Total DDR size: 65536 MB
Reporting from mem_topology:
Data Validity & DMA Test on bank0
Host -> PCIe -> FPGA write bandwidth = 11341.5 MB/s
Host <- PCIe <- FPGA read bandwidth = 11097.3 MB/s
Data Validity & DMA Test on bank1
Host -> PCIe -> FPGA write bandwidth = 11414.6 MB/s
Host <- PCIe <- FPGA read bandwidth = 10981.7 MB/s
Data Validity & DMA Test on bank2
Host -> PCIe -> FPGA write bandwidth = 11345.1 MB/s
Host <- PCIe <- FPGA read bandwidth = 11189.2 MB/s
Data Validity & DMA Test on bank3
Host -> PCIe -> FPGA write bandwidth = 11121.7 MB/s
Host <- PCIe <- FPGA read bandwidth = 11375.7 MB/s
INFO: xbutil dmatest succeeded.
次は、同様に、HBM ポート 0、1、2、および 3 を使用して xclbin を指定した U50 のコマンド出力の例です。
INFO: Found total 1 card(s), 1 are usable
Total DDR size: 0 MB
Reporting from mem_topology:
Data Validity & DMA Test on HBM[0]
Buffer Size: 256 MB
Host -> PCIe -> FPGA write bandwidth = 11950.9 MB/s
Host <- PCIe <- FPGA read bandwidth = 11940.3 MB/s
Data Validity & DMA Test on HBM[1]
Buffer Size: 256 MB
Host -> PCIe -> FPGA write bandwidth = 11947 MB/s
Host <- PCIe <- FPGA read bandwidth = 11958.1 MB/s
Data Validity & DMA Test on HBM[2]
Buffer Size: 256 MB
Host -> PCIe -> FPGA write bandwidth = 12077.2 MB/s
Host <- PCIe <- FPGA read bandwidth = 12064.1 MB/s
Data Validity & DMA Test on HBM[3]
Buffer Size: 256 MB
Host -> PCIe -> FPGA write bandwidth = 11989.5 MB/s
Host <- PCIe <- FPGA read bandwidth = 11976 MB/s
INFO: xbutil dmatest succeeded.
xclbin がプログラムされない場合、次のようなメッセージが表示されるようになります。
INFO: Found total 1 card(s), 1 are usable
'uuid' invalid, please re-program xclbin.
dump
dump コマンドでは、スクリプト フローで使用可能な拡張カードとシステム情報 (OS、XRT、ボード、電気、熱、および JSON ファイル形式の xclbin など) が返されます。出力形式と内容は決まっており、このコマンドに変更がある場合は下位互換性があります。
コマンド ライン形式は次のとおりです。
xbutil dump [-d card]
次の表に、使用可能なオプションを示します。
| オプション | 説明 | 必須 |
|---|---|---|
-d
<card> |
ターゲット カードを指定します。<card> は、card_id または Bus:Device:Function (BDF) のいずれかに指定できます。指定しない場合は、デフォルトの card_id = 0 になります。 注記: xbutil
scan コマンドを使用すると、インストールされたカードに対して card_id と BDF の両方が表示されます。 |
× |
コマンド出力の例は、次のとおりです。
{
"version": "1.1.0",
"system": {
"sysname": "Linux",
"release": "4.15.0-74-generic",
"version": "#84-Ubuntu SMP Thu Dec 19 08:06:28 UTC 2019",
"machine": "x86_64",
"glibc": "2.27",
"linux": "Ubuntu 18.04.3 LTS",
"cores": "48",
"memory": "31812",
"model": "Precision 7920 Tower",
"now": "Mon Jan 13 15:57:59 2020"
},
"runtime": {
"build": {
"version": "2.4.19",
"hash": "be6279809c82b3b6abfd6a6baed6343bd4bda232",
"date": "2020-01-09 10:57:59",
"branch": "2019.2_PU1",
"xocl": "2.4.19,be6279809c82b3b6abfd6a6baed6343bd4bda232",
"xclmgmt": "2.4.19,be6279809c82b3b6abfd6a6baed6343bd4bda232"
}
},
"board": {
"info": {
"dsa_name": "xilinx_u250_xdma_201830_2",
"vendor": "0x10ee",
"device": "0x5005",
"subdevice": "0x000e",
"subvendor": "0x10ee",
"xmcversion": "2019107",
"xmc_oem_id": "0x0",
"serial_number": "21320493802N",
"max_power": "225W",
"sc_version": "4.2.0",
"ddr_size": "68719476736",
"ddr_count": "4",
"clock0": "250",
"clock1": "500",
"clock2": "0",
"pcie_speed": "3",
"pcie_width": "16",
"dma_threads": "2",
"mig_calibrated": "true",
"idcode": "0x4b57093",
"fpga_name": "xcu250-figd2104-2L-e",
"dna": "",
"p2p_enabled": "0"
},
"physical": {
"thermal": {
"pcb": {
"top_front": "51",
"top_rear": "41",
"btm_front": "50"
},
"fpga_temp": "53",
"tcrit_temp": "51",
"fan_presence": "A",
"fan_speed": "1262",
"cage": {
"temp0": "0",
"temp1": "0",
"temp2": "0",
"temp3": "0"
}
},
"electrical": {
"12v_pex": {
"voltage": "12100",
"current": "1480"
},
"12v_aux": {
"voltage": "12121",
"current": "1369"
},
"3v3_pex": {
"voltage": "3349",
"current": "0"
},
"3v3_aux": {
"voltage": "3316"
},
"ddr_vpp_bottom": {
"voltage": "2500"
},
"ddr_vpp_top": {
"voltage": "2500"
},
"sys_5v5": {
"voltage": "5492"
},
"1v2_top": {
"voltage": "1207"
},
"1v2_btm": {
"voltage": "1199"
},
"1v8": {
"voltage": "1824"
},
"0v85": {
"voltage": "856",
"current": "0"
},
"mgt_0v9": {
"voltage": "908"
},
"12v_sw": {
"voltage": "12038"
},
"mgt_vtt": {
"voltage": "1203"
},
"vccint": {
"voltage": "850",
"current": "16668"
},
"vcc3v3": {
"voltage": "0"
},
"hbm_1v2": {
"voltage": "0"
},
"vpp2v5": {
"voltage": "0"
},
"vccint_bram": {
"voltage": "0"
}
},
"power": "34"
},
"error": {
"firewall": {
"firewall_level": "0",
"firewall_status": "0",
"firewall_time": "0",
"status": "(GOOD)"
}
},
"pcie_dma": {
"transfer_metrics": {
"chan": {
"0": {
"h2c": "6240 MB",
"c2h": "12160 MB"
},
"1": {
"h2c": "6240 MB",
"c2h": "6144 MB"
}
}
}
},
"memory": {
"mem": {
"0": {
"ecc_status": "(None)",
"ecc_ce_cnt": "0",
"ecc_ue_cnt": "0",
"ecc_ce_ffa": "0",
"ecc_ue_ffa": "0",
"type": "MEM_DDR4",
"temp": "41",
"tag": "bank0",
"enabled": "true",
"size": "16 GB",
"mem_usage": "0 Byte",
"bo_count": "0"
},
"1": {
"ecc_status": "(None)",
"ecc_ce_cnt": "0",
"ecc_ue_cnt": "0",
"ecc_ce_ffa": "0",
"ecc_ue_ffa": "0",
"type": "MEM_DDR4",
"temp": "41",
"tag": "bank1",
"enabled": "true",
"size": "16 GB",
"mem_usage": "0 Byte",
"bo_count": "0"
},
"2": {
"ecc_status": "(None)",
"ecc_ce_cnt": "0",
"ecc_ue_cnt": "0",
"ecc_ce_ffa": "0",
"ecc_ue_ffa": "0",
"type": "MEM_DDR4",
"temp": "54",
"tag": "bank2",
"enabled": "true",
"size": "16 GB",
"mem_usage": "0 Byte",
"bo_count": "0"
},
"3": {
"ecc_status": "(None)",
"ecc_ce_cnt": "0",
"ecc_ue_cnt": "0",
"ecc_ce_ffa": "0",
"ecc_ue_ffa": "0",
"type": "MEM_DDR4",
"temp": "48",
"tag": "bank3",
"enabled": "true",
"size": "16 GB",
"mem_usage": "0 Byte",
"bo_count": "0"
},
"4": {
"type": "**UNUSED**",
"temp": "0",
"tag": "PLRAM[0]",
"enabled": "false",
"size": "128 KB",
"mem_usage": "0 Byte",
"bo_count": "0"
},
"5": {
"type": "**UNUSED**",
"temp": "0",
"tag": "PLRAM[1]",
"enabled": "false",
"size": "128 KB",
"mem_usage": "0 Byte",
"bo_count": "0"
},
"6": {
"type": "**UNUSED**",
"temp": "0",
"tag": "PLRAM[2]",
"enabled": "false",
"size": "128 KB",
"mem_usage": "0 Byte",
"bo_count": "0"
},
"7": {
"type": "**UNUSED**",
"temp": "0",
"tag": "PLRAM[3]",
"enabled": "false",
"size": "128 KB",
"mem_usage": "0 Byte",
"bo_count": "0"
}
}
},
"xclbin": {
"uuid": "c5b9a584-9b70-4902-ae32-addf5c1c6e0c"
},
"compute_unit": {
"0": {
"name": "bandwidth1:kernel_1",
"base_address": "25165824",
"status": "(IDLE)"
},
"1": {
"name": "bandwidth2:kernel_2",
"base_address": "25231360",
"status": "(IDLE)"
}
}
},
"debug_profile": {
"device_info": {
"error": "0",
"device_index": "0",
"user_instance": "129",
"nifd_instance": "0",
"device_name": "\/dev\/dri\/renderD129",
"nifd_name": "\/dev\/nifd0"
}
}
}
無効なカード インデックスが指定されると、次のメッセージが表示されます。
ERROR: Card index 1 is out of range
m2mtest
m2mtest コマンドは、指定したカード上の 2 つのデバイス メモリ間で、スループット データ転送を実行します。『Alveo データセンター アクセラレータ カード プラットフォーム ユーザー ガイド』 (UG1120: 英語版、日本語版) に示すように、M2M 機能をサポートするプラットフォームのみがこのコマンドを実行できます。また、m2mtest を実行する前に、2 つ以上のメモリ バンクを使用するカードに xclbin をダウンロードする必要があります。そうしないとエラーが返されます。m2mtest コマンドは、カードにダウンロードされている xclbin でアクセス可能なメモリ バンクに対してのみスループット テストを実行します。
コマンド ライン形式は次のとおりです。
xbutil m2mtest [-d card]
次の表に、使用可能なオプションを示します。
| オプション | 説明 | 必須 |
|---|---|---|
-d
<card> |
ターゲット カードを指定します。<card> は、card_id または Bus:Device:Function (BDF) のいずれかに指定できます。指定しない場合は、デフォルトの card_id = 0 になります。 注記: xbutil
scan コマンドを使用すると、インストールされたカードに対して card_id と BDF の両方が表示されます。 |
× |
次に、DDR バンク 0、1、2、および 3 に関する xclbin コマンドの出力例を示します。
INFO: Found total 2 card(s), 2 are usable
bank0 -> bank1 M2M bandwidth: 12050.5 MB/s
bank0 -> bank2 M2M bandwidth: 12074.3 MB/s
bank0 -> bank3 M2M bandwidth: 12082.9 MB/s
bank1 -> bank2 M2M bandwidth: 12061.8 MB/s
bank1 -> bank3 M2M bandwidth: 12105.2 MB/s
bank2 -> bank3 M2M bandwidth: 12065.8 MB/s
INFO: xbutil m2mtest succeeded.
xclbin が読み込まれない場合、次のようなエラー メッセージが表示されます。
'uuid' invalid, please re-program xclbin.
コマンドが M2M 機能をサポートしないプラットフォームに対して実行されると、次のようなエラー メッセージが表示されます。
M2M is not available. Skipping validation
ERROR: xbutil m2mtest failed.
mem --read
mem --read コマンドは、指定したメモリ アドレスから指定したバイト数を読み出し、その内容を出力ファイルに書き込みます。
コマンド ライン形式は次のとおりです。
xbutil mem --read [-d card] [-a [0x]start_addr]
[-i size_bytes] [-o output filename]
次の表に、使用可能なオプションを示します。
| オプション | 説明 | 必須 |
|---|---|---|
-d <card> |
ターゲット カードを指定します。<card> は、card_id または Bus:Device:Function (BDF) のいずれかに指定できます。指定しない場合は、デフォルトの card_id = 0 になります。 注記: xbutil scan コマンドを使用すると、インストールされたカードに対して card_id と BDF の両方が表示されます。 |
× |
-a
<start_addr> |
有効な開始アドレスを 16 進数または 10 進数のいずれかのフォーマットに指定します。16 進数フォーマットは、0x100 など、0x で開始する必要があります。デフォルト アドレスは 0x0 です。有効なアドレスは、次に示すように、Linux の |
× |
-i
<size_bytes> |
メモリ転送サイズ (バイト) を 16 進数または 10 進数のいずれかのフォーマットに指定します。16 進数フォーマットは、0x100 など、0x で開始する必要があります。デフォルト サイズは 0x20000 です。 |
× |
-o
<output_file_name> |
出力ファイル名を指定します。出力ファイル名が指定されない場合、デフォルトの出力ファイル名は memread.out になります。 | × |
次は、DDR バンク 0、1、2、および 3 を使用して、xclbin を指定した場合のコマンド出力の例です。
xbutil mem --read -a 0x0 -d2 -i 0x10
INFO: Found total 3 card(s), 3 are usable
INFO: Reading from single bank, 256 bytes from DDR/HBM/PLRAM address 0x4000000000
INFO: Read size 0x100 B. Total Read so far 0x100
INFO: Read data saved in file: memread.out; Num of bytes: 256 bytes
INFO: xbutil mem succeeded.
次に、上記のコマンドで生成されたファイルの例を示します。ファイルを表示するのに、Linux の 16 進数ダンプ コマンドの xxd が使用されています。
00000000: 3d3d 3d3d 5354 4152 5420 6f66 2044 4452 ====START of DDR
00000010: 2044 6174 613d 3d3d 3d3d 3d3d 3d3d 0a00 Data=========..
00000020: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA
00000030: 0a3d 3d3d 3d3d 454e 4420 6f66 2044 4452 .=====END of DDR
00000040: 2044 6174 613d 3d3d 3d3d 3d3d 3d3d 0a00 Data=========..
無効な開始アドレスが使用されると、次のようなエラー メッセージが表示されます。開始アドレスは、そのデバイスのアドレス空間内に含まれる必要があります。この例の場合、0x400 は無効な開始アドレスです。
ERROR: Start address 0x400 is not valid
Available memory banks:
ERROR: xbutil mem failed.
dmesg | grep -A 10 -i ddrLinux の dmesg 出力には、さまざまな DDR メモリのベース アドレスが表示されます。次は、DDR[1] の出力の例です。
[23174.283512] xocl 0000:a6:00.1: xocl_init_mem: Memory Bank: DDR[1]
[23174.283514] xocl 0000:a6:00.1: xocl_init_mem: Base Address:0x8000000000
[23174.283515] xocl 0000:a6:00.1: xocl_init_mem: Size:0x400000000
上記の -i ddr の検索用語を -i hbm に置き換えると、HBM メモリのベース アドレスを検索できます。
既知のバイト パターンを書き込む方法は、mem --write を参照してください。
mem --write
mem --write コマンドは、定義したパターンを指定したメモリの位置のセットに書き込みます。
コマンド ライン形式は次のとおりです。
xbutil mem --write [-d card] [-a [0x]start_addr]
[-i size_bytes] [-e pattern_byte]
次の表に、使用可能なオプションを示します。
| オプション | 説明 | 必須 |
|---|---|---|
-d <card> |
ターゲット カードを指定します。<card> は、card_id または Bus:Device:Function (BDF) のいずれかに指定できます。指定しない場合は、デフォルトの card_id = 0 になります。 注記: xbutil scan コマンドを使用すると、インストールされたカードに対して card_id と BDF の両方が表示されます。 |
× |
-a
<start_addr> |
有効な開始アドレスを 16 進数または 10 進数のいずれかのフォーマットに指定します。16 進数フォーマットは、0x100 など、0x で開始する必要があります。デフォルト アドレスは 0x0 です。有効なアドレスは、次に示すように、Linux の |
× |
-i
<size_bytes> |
メモリ転送サイズ (バイト) を 16 進数または 10 進数のいずれかのフォーマットに指定します。16 進数フォーマットは、0x100 など、0x で開始する必要があります。 |
× |
-e <pattern> |
すべての定義済みのバイト位置に書き込まれるバイト パターンを 16 進数または 10 進数のいずれかのフォーマットに指定します。16 進数フォーマットは、0xEF など、0x で開始する必要があります。 |
× |
次は、DDR バンク 0、1、2、および 3 を使用して、xclbin を指定した場合のコマンド出力の例です。
xbutil mem --write -a 0x0 -d2 -i 0x10 -e 0xef
INFO: Found total 1 card(s), 1 are usable
INFO: Writing to single bank, 16 bytes from DDR/HBM/PLRAM address 0x0
INFO: Writing DDR/HBM/PLRAM with 16 bytes of pattern: 0xef from address 0x0
INFO: xbutil mem succeeded.
無効な開始アドレスが使用されると、次のようなエラー メッセージが表示されます。開始アドレスは、そのデバイスのアドレス空間内に含まれる必要があります。この例の場合、0x400 は無効な開始アドレスです。
ERROR: Start address 0x400 is not valid
Available memory banks:
ERROR: xbutil mem failed.
dmesg | grep -A 10 -i ddrLinux の dmesg 出力には、さまざまな DDR メモリのベース アドレスが表示されます。次は、DDR[1] の出力の例です。
[23174.283512] xocl 0000:a6:00.1: xocl_init_mem: Memory Bank: DDR[1]
[23174.283514] xocl 0000:a6:00.1: xocl_init_mem: Base Address:0x8000000000
[23174.283515] xocl 0000:a6:00.1: xocl_init_mem: Size:0x400000000
上記の -i ddr の検索用語を -i hbm に置き換えると、HBM メモリのベース アドレスを検索できます。
メモリ アドレスの読み出し方法は、mem --read を参照してください。
p2p
p2p コマンドは、(PCIe ピアツーピア サポート) 機能をイネーブル/ディスエーブルにし、現在のコンフィギュレーションをチェックするために使用します。
P2P 設定は、ウォーム リブートの後も保持されます。
コマンド ライン構文は次のとおりです。
xbutil p2p [-d card] --[enable | disable | validate]
次の表に、使用可能なオプションを示します。
| オプション | 説明 | 必須 |
|---|---|---|
-d
<card> |
ターゲット カードを指定します。<card> は、card_id または Bus:Device:Function (BDF) のいずれかに指定できます。指定しない場合は、デフォルトの card_id = 0 になります。 注記: xbutil
scan コマンドを使用すると、設置されたカードの ID と BDF の両方が表示されます。 |
× |
--enable |
p2p をイネーブルにします。
|
--enable、 --disable、 --validate いずれか 1 つのみを指定 |
--disable |
p2p をイネーブルにします。
完全にディスエーブルにするには、ウォーム リブートが必要な場合があります。 |
--enable、 --disable、 --validate いずれか 1 つのみを指定 |
--validate |
p2p 機能を検証します。
必要な場合に、ウォーム リブートの後に実行します。 |
--enable、 --disable、 --validate いずれか 1 つのみを指定 |
xbutil query は、P2P の現在のステータスを表示するのに使用します。次に、xbutil query コマンドの出力の一部を示します。現在のステータスは、P2P
Enabled の下に表示されます。PCIe DMA chan(bidir) MIG Calibrated P2P Enabled
GEN 3x16 2 true false| 値 | 説明 |
|---|---|
true |
P2P はイネーブル。 |
false |
P2P はディスエーブル。 |
no_iomem |
P2P がデバイスでイネーブルになっているが、システムで I/O メモリを割り当てることができなかったため、ウォーム リブートが必要。 |
検証を実行しようとしたときに P2P がイネーブルでない場合は、検証はスキップされ、次のメッセージが表示されます。
P2P BAR is not enabled. Skipping validation
カードのプラットフォームで P2P がサポートされない場合は、次のメッセージが表示されます。
ERROR: P2P is not supported on this platform
xclbin がプログラムされていない場合は、次のメッセージが表示されます。
'uuid' invalid, please re-program xclbin.
program
program コマンドは、カードのプログラマブル領域に xclbin バイナリをダウンロードします。
コマンド ライン形式は次のとおりです。
xbutil program [-d card] [-r region] -p <xclbin_filename>
次の表に、使用可能なオプションを示します。
| オプション | 説明 | 必須 |
|---|---|---|
-d <card> |
ターゲット カードを指定します。<card> は、card_id または Bus:Device:Function (BDF) のいずれかに指定できます。指定しない場合は、デフォルトの card_id = 0 になります。 注記: xbutil scan コマンドを使用すると、インストールされたカードに対して card_id と BDF の両方が表示されます。 |
× |
-r <region> |
廃止予定で、効果はありません。オプションは、次のリリースで削除される予定です。 | × |
-p
<xclbin_filename> |
カードにダウンロードする xclbin バイナリ ファイルの名前を指定します。 |
○ |
xclbin が問題なくカードにダウンロードされたら、次のメッセージが表示されます。
INFO: Found total 1 card(s), 1 are usable
INFO: xbutil program succeeded.
同じ xbutil_filename を含む xbutil プログラムが続けて使用される場合、xbutil は既にカード上にあるのでダウンロードされませんが、上記と同じメッセージが表示されます。
指定した xclbin ファイルがない場合、次のメッセージが表示されます。
ERROR: Cannot open <my_xclbin>.xclbin. Check that it exists and is readable.
ERROR: xbutil program failed.
query
query コマンドは、詳細なカードのステータス情報を人間が読める形式で表示します。JSON 形式のファイルについては、dump を参照してください。
コマンド ライン構文は次のとおりです。
xbutil query [-d card [-r region]]
次の表に、使用可能なオプションを示します。
| オプション | 説明 | 必須 |
|---|---|---|
-d <card> |
ターゲット カードを指定します。<card> は、card_id または Bus:Device:Function (BDF) のいずれかに指定できます。指定しない場合は、デフォルトの card_id = 0 になります。 注記: xbutil scan コマンドを使用すると、設置されたカードの ID と BDF の両方が表示されます。 |
× |
-r <region> |
廃止予定で、効果はありません。オプションは、次のリリースで削除される予定です。 | × |
かなりの量の情報が返されます。次に、出力例を示します。出力は、内容がわかりやすいように 2 つのセクションに分けられています。
システム コンフィギュレーション (System Configuration)
| フィールド | 説明 |
|---|---|
| OS Name | マシンで実行される OS の名前 |
| Release | OS のリリース番号 |
| Version | OS バージョン |
| Machine | CPU ベースのアーキテクチャ |
| Glibc | インストールされた GLIBC バージョン |
| Distribution | 分配 |
| Now | 現在の日付と時間 |
次に、システム コンフィギュレーションの例を示します。
System Configuration
OS name: Linux
Release: 4.15.0-74-generic
Version: #83~16.04.1-Ubuntu SMP Wed Dec 18 04:56:23 UTC 2019
Machine: x86_64
Glibc: 2.23
Distribution: Ubuntu 16.04.6 LTS
Now: Wed Jan 22 15:30:36 2020
XRT 情報 (XRT Information)
| フィールド | 説明 |
|---|---|
| Version | XRT バージョン |
| Git Hash | 関連する GIT ハッシュ |
| Git Branch | 関連する GIT 分岐 |
| Build Date | XRT ビルドの日付 |
| XOCL | XOCL バージョン |
| XCLMGMT | XCLMGMT バージョン |
XRT Information
Version: 2.3.1301
Git Hash: 192e706aea53163a04c574f9b3fe9ed76b6ca471
Git Branch: 2019.2
Build Date: 2019-10-24 20:04:29
XOCL: 2.3.1301,192e706aea53163a04c574f9b3fe9ed76b6ca471
XCLMGMT: 2.3.1301,192e706aea53163a04c574f9b3fe9ed76b6ca471
カード プラットフォーム (シェル) 情報
| フィールド | 説明 |
|---|---|
| Shell | カード上にインストールされたプラットフォーム |
| FPGA | FPGA の名前 |
| IDCode | プラットフォームの ID コード |
| Vendor | ベンダー ID |
| Device | デバイス ID |
| SubDevice | サブデバイス ID |
| SubVendor | サブベンダー ID |
| SerNum | カードのシリアル番号 |
| DDR Size | カードで使用可能な DDR RAM の合計量 (GB) |
| DDR Count | カードにインストールされた DDR DIMM の合計数 |
| Clock0 | Clock0 の周波数 (MHz) |
| Clock1 | Clock1 の周波数 (MHz) |
| Clock2 | Clock2 の周波数 (MHz) |
| PCIe | トレーニング済み PCIe のリンク ステータス |
| DMA chan(bidir) | カード上の DMA チャネルの数 |
| MIG Calibrated | TRUE の場合、MIG がキャリブレーションされ、FALSE の場合、MIG がキャリブレーションされないことを示します。 |
| P2P Enabled | P2P のステータスを返します。ステータスは次のいずれかになります。
|
| OEM ID | OEM で使用される ID |
| Interface UUID | プラットフォームのさまざまなパーティションを含むパーシャル ビットストリームが互いに論理的に互換性があるのか、物理的に互換性があるのかを決めるために使用可能な一意の ID。 |
| Logic UUID | プラットフォームのさまざまなパーティションを含むパーシャル ビットストリームが互いに論理的に互換性があるのか、物理的に互換性があるのかを決めるために使用可能な一意の ID。 |
次に、カード情報の出力例を示します。
Shell FPGA IDCode
xilinx_u50_gen3x16_xdma_201920_3 0x14b77093
Vendor Device SubDevice SubVendor SerNum
0x10ee 0x5021 0x000e 0x10ee 00501201A030
DDR size DDR count Clock0 Clock1 Clock2
0 Byte 0 250 500 450
PCIe DMA chan(bidir) MIG Calibrated P2P Enabled OEM ID
GEN 3x16 2 true false 0x0
Interface UUID
862c7020a250293e32036f19956669e5
Logic UUID
f465b0a3ae8c64f619bc150384ace69b
DNA
温度 (Temperature)
その後にカードの消費電力と温度情報が示されます。温度は摂氏でレポートされます。
| フィールド | 説明 |
|---|---|
| PCB Top Front | PCB の手前上部の温度 (摂氏) |
| PCB Top Rear | PCB の後方上部の温度 (摂氏) |
| PCB BTM Front | PCB の手前下部の温度 (摂氏) |
| FPGA Temp | FPGA コアの温度 (摂氏) |
| TCRIT Temp | ファン コントローラーのクリティカルな温度 (摂氏)。アクティブおよびパッシブ カードの両方で表示されます。 |
| Fan Presence | カードにファンがあるかどうかを示します。
|
| Fan Speed | ファン スピード (RPM)。パッシブ カードの場合は N/A と表示されます。 |
| QSFP 0,1,2,3 | QSFP モジュールの温度 (摂氏)。 |
次に温度の出力例を示します。
Temperature(C)
PCB TOP FRONT PCB TOP REAR PCB BTM FRONT
42 37 42
FPGA TEMP TCRIT Temp FAN Presence FAN Speed(RPM)
44 42 A 1108
QSFP 0 QSFP 1 QSFP 2 QSFP 3
0 0 0 0
電気関連 (Electrical)
さまざまな電圧 (mV) および電流 (mA) の測定値が示されます。
| フィールド | 説明 |
|---|---|
| 12V PEX | PCIe コネクタからの 12V 電源ソースの電圧測定値 (公称電圧 12V)。 |
| 12V AUX | 12V の 6 または 8 ピンの PCIe AUX 電源ケーブルからの電圧測定値 (公称電圧 12V)。 |
| 12V PEX Current | PCIe コネクタからの電力の電流測定値。 |
| 12V AUX Current | 6 または 8 ピンの PCIe AUX 電源ケーブルからの電流測定値 (公称電圧 12V)。 |
| 3V3 PEX | PCIe コネクタからの 3.3V 電源ソースの電圧測定値 (公称電圧 3.3V)。 |
| 3V3 AUX | PCIe コネクタからの 3.3V AUX 電源ソースの電圧測定値 (公称電圧 3.3V)。 |
| DDR VPP BOTTOM | カード下部の DDR4 パーツのオンボード VPP への電力供給に使用される電圧測定値 (公称電圧 2.5V)。 |
| DDR VPP TOP | カード上部の DDR4 パーツのオンボード VPP への電力供給に使用される電圧測定値 (公称電圧 2.5V)。 |
| SYS 5V5 | オンボード VCC_INT レギュレータへの電力供給に使用される電圧測定値 (公称電圧 5.5V)。U2XX カードの場合のみ表示されます。 |
| 1V2 TOP | カード上部の DDR4 パーツのオンボード VDD への電力供給に使用される電圧測定値 (公称電圧 1.2V)。 |
| 1V8 TOP | FPGA で使用されるオンボード VCCAUX、VCCAUXIO、MGTAVVCAUX レギュレータへの電力供給に使用される電圧測定値 (公称電圧 1.8V)。 |
| 0V85 | FPGA で使用されるオンボード VCCINTIO および VCCBRAM レギュレータの電圧測定値 (公称電圧 0.85V)。 |
| MGT 0V9 | FPGA で使用されるオンボード MGTAVCC レギュレータの電圧測定値 (公称電圧 0.9V)。 |
| 12V SW | 12V の 6 または 8 ピンの PCIe AUX 電源ケーブルの電圧測定値 (公称電圧 12V)。 |
| MGT VTT | FPGA で使用される GTY のオンボード MGTAVTT レギュレータの電圧測定値 (公称電圧 1.2V)。 |
| 1V2 BTM | カード下部の DDR4 パーツのオンボード VDD レギュレータへの電力供給に使用される電圧測定値 (公称電圧 1.2V)。 |
| VCCINT VOL | FPGA のオンボード VCCINT レギュレータの電圧測定値 (公称電圧 0.72-0.85V)。 |
| VCCINT CURR | カードで使用される VCCINT 電源の電流測定値。 |
| VCCINT BRAM VOL | FPGA で使用されるオンボード VCCINT、VCCINTIO および VCCBRAM レギュレータの電圧測定値 (公称電圧 0.85V)。 |
| VCC3V3 VOL | QSFP およびその他の回路で使用されるオンボード 3.3V レギュレータの電圧測定値 (公称電圧 3.3V)。 |
| 3V3 PEX CURR | カードで使用される 3.3V のマザーボード PCIe レールの電流測定値。 |
| VCC0V85 CURR | カードの使用する VCCINTIO および VCCBRAM 電源の電流測定値。 |
| HBM1V2 VOL | カードの DDR4 HBM パーツのオンボード VDD への電力供給に使用される 1.2V 電圧。 |
| VPP2V5 VOL | カードの DDR4 パーツのオンボード VPP への電力供給に使用される 2.5V 電圧。 |
次は、その出力例です。
Electrical(mV|mA)
12V PEX 12V AUX 12V PEX Current 12V AUX Current
12101 12202 1505 1268
3V3 PEX 3V3 AUX DDR VPP BOTTOM DDR VPP TOP
3357 3326 2500 2500
SYS 5V5 1V2 TOP 1V8 TOP 0V85
5515 1204 1836 855
MGT 0V9 12V SW MGT VTT 1V2 BTM
910 12064 1207 1209
VCCINT VOL VCCINT CURR VCCINT BRAM VOL VCC3V3 VOL
851 15894 0 0
3V3 PEX CURR VCC0V85 CURR HBM1V2 VOL VPP2V5 VOL
0 0 0 0
カードの消費電力 (Card Power)
カードで消費される全消費電力 (W) を返す 1 つのフィールドです。
次は、その出力例です。
Card Power(W)
33
ファイアウォールの最新エラー ステータス (Firewall Last Error Status)
ハードウェアでエラーが検出されると、ファイアウォールからの情報が示されます。これには、タイムスタンプとファイアウォールのレベルも含まれます。ファイアウォールには、AXI Firewall が作動する で説明されるように 3 つのレベルがあります。次の例では、ファイアウォール エラーは検出されていません。
| フィールド | 説明 |
|---|---|
| Tag | メモリ バンクの名前 |
| Errors | エラーが発生したかどうかを示します。 |
| CE Count | 修正可能なエラーの数。 数は変わりませんが、 |
| UE Count | 修正不可能なエラーの数。数は変わりませんが、xbmgmt reset でリセットできます。 |
次は、その出力例です。
Firewall Last Error Status
Level 0 : 0x0(GOOD)
ECC Error Status
Tag Errors CE Count UE Count CE FFA UE FFA
bank0 (None) 0 0 0x0 0x0
bank1 (None) 0 0 0x0 0x0
bank2 (None) 0 0 0x0 0x0
bank3 (None) 0 0 0x0 0x0
U50 など、カードによっては、サテライト モニター (SC) で動作状況が監視されます。カードが電気または熱の制限を超える場合、SC がカードのワークロードをリセットします。場合によっては、これは xbutil query 出力でファイアウォールとして表示され、トリップの発生した時間が表示されます。次にポスト トリップ ステートの例を示します。
Firewall Last Error Status
Level 3 : 0x80004(RECS_CONTINUOUS_RTRANSFERS_MAX_WAIT|RECS_WRITE_TO_BVALID_MAX_WAIT)
Error occurred on: Tue 2020-04-28 15:16:47 MDT
このステートでは、カードを使用できます。
メモリ ステータス (Memory Status)
その後にメモリのトポロジと DMA 転送メトリクスが示され、ストリーミング転送が続きます。DMA メトリクスには、ホストとカード間のデータ転送が含まれます。ホストからカードへの転送は h2c、カードからホストへの転送は c2h と示されます。
次に、出力例を示します。xclbin が読み込まれない場合、メモリ ステータスは表示されません。
Memory Status
Tag Type Temp(C) Size Mem Usage BO count
[ 0] bank0 MEM_DDR4 37 16 GB 16 MB 1
[ 1] bank1 MEM_DDR4 39 16 GB 16 MB 1
[ 2] bank2 MEM_DDR4 47 16 GB 16 MB 1
[ 3] bank3 MEM_DDR4 43 16 GB 16 MB 1
[ 4] PLRAM[0] **UNUSED** N/A 128 KB 0 Byte 0
[ 5] PLRAM[1] **UNUSED** N/A 128 KB 0 Byte 0
[ 6] PLRAM[2] **UNUSED** N/A 128 KB 0 Byte 0
DMA 転送メトリクス (DMA Transfer Metrics)
次に、出力例を示します。xclbin が読み込まれない場合、メトリクスは表示されません。
DMA Transfer Metrics
Chan[0].h2c: 12384 MB
Chan[0].c2h: 15200 MB
Chan[1].h2c: 6240 MB
Chan[1].c2h: 6144 MB
ストリーム (Streams)
これは、プラットフォームのストリーミングにのみ使用できます。
次は、その出力例です。
Streams
Tag Flow ID Route ID Status Total (B/#) Pending (B/#)
Xclbin UUID
これは xclbin の UUID を表示します。次に、出力例を示します。xclbin が読み込まれない場合、すべて 0 の UUID が返されます。
Xclbin UUID
dfd5a66a-36aa-41c6-88bb-c85a86d15512
計算ユニット ステータス (Compute Unit Status)
カードに読み込まれた xclbin に含まれる計算ユニット (CU) が表示されます。各 CU に対して、名前、PCIe BAR アドレス、およびステータス (IDLE、START、または DONE) が示されます。次の出力には、xclbin ID および IDLE ステータスの 2 つの CU が示されています。
次に、出力例を示します。xclbin が読み込まれない場合、CU ステータスは表示されません。
Compute Unit Status
CU[ 1]: bandwidth1:kernel_1 @0x1c00000 (IDLE)
CU[ 0]: bandwidth2:kernel_2 @0x1800000 (IDLE)
reset
reset コマンドは、カードのプログラマブル領域をリセットします。この領域のすべての実行中、CU は停止し、リセットされます。
コマンド ライン形式は次のとおりです。
xbutil reset [-d card]
次の表に、使用可能なオプションを示します。
| オプション | 説明 | 必須 |
|---|---|---|
-d <card> |
ターゲット カードを指定します。<card> は、card_id または Bus:Device:Function (BDF) のいずれかに指定できます。指定しない場合は、デフォルトの card_id = 0 になります。 注記: xbutil scan コマンドを使用すると、インストールされたカードに対して card_id と BDF の両方が表示されます。 |
× |
次の例は、このコマンドが問題なく実行された後の出力を示しています。
All existing processes will be killed.
Are you sure you wish to proceed? [y/n]: y
scan (xbutil)
xbutil scan コマンドは、次のような詳細なシステム情報を表示します。
- システム コンフィギュレーションの詳細
- XRT 情報
- GOLDEN ステートのカード以外のシステム上にインストールされたカードすべてがリストされます。
コマンド ライン形式は次のとおりで、オプションはありません。
xbutil scan
次の表には、xbutil scan コマンドのさまざまなセクションから返されるフィールドをリストしています。
| フィールド | 説明 |
|---|---|
| OS Name | マシンで実行される OS の名前 |
| Release | OS のリリース番号 |
| Version | OS バージョン |
| Machine | CPU ベースのアーキテクチャ |
| Model | マシン モデル |
| CPU Cores | マシン上の CPU コアの数 |
| Memory | マシンにインストールされたメモリ合計 (MB) |
| Glibc | インストールされた GLIBC バージョン |
| Distribution | ディストリビューション |
| Now | 現在の日付と時間 |
| フィールド | 説明 |
|---|---|
| Version | XRT バージョン |
| Git Hash | 関連する GIT ハッシュ |
| Git Branch | 関連する GIT 分岐 |
| Build Date | XRT ビルドの日付 |
| XOCL | XOCL バージョン |
| XCLMGMT | XCLMGMT バージョン |
システムにインストールされた各カードのリストも表示されます。カードごとに別の行になります。1 つのカード出力例は、次のとおりです。インストールされたカードの詳細を示す複数のフィールドが表示されます。フィールドは、スペースで区切られます。
[0] 0000:65:00.1 xilinx_u50_gen3x16_xdma_201920_3 user(inst=128)
フィールドは、次のように定義されます。
| フィールド | 説明 |
|---|---|
| [card_id] | ドライバー データ構造のカード エニュメレーションに基づいて割り当てられた card_id が表示されます。一意の card_id が検出されたカードごとに割り当てられます。順番は、ウォーム リブートまたはコールド リブート後に変更できます。 |
| Bus : Device : Function | インストールされたカードごとにエニュメレーションされたカードの Bus:Device:Function (BDF) が表示されます。構文は次のとおりです。 [ Bus : Device : Function ] カードの BDF は、プラグインされた PCIe スロットに基づいて決定されます。 注記: xbutil scan コマンドを使用すると、インストールされたカードに対して card_id と BDF の両方が表示されます。 |
| Platform name | プラットフォーム名は、次のフォーマットになります。プラットフォームの命名情報は、『Alveo データセンター アクセラレータ カード プラットフォーム ユーザー ガイド』 (UG1120: 英語版、日本語版) を参照してください。 |
| user (inst = <value>) | カードに関連するユーザー関数のインスタンス番号が表示されます。インスタンス番号を使用すると、各関数のデバイス ノードを簡単に見つけることができます。 Linux OS の場合、デバイス ノードは /dev/dri/renderD<inst> に含まれます。 また、インスタンスは |
次は、xbutil scan 出力の例です。システム コンフィギュレーションおよび XRT 情報セクションがまず表示され、次に検出されたカードが表示されます。次の例では、1 つのカードが検出されて、card_ID に 0 が割り当てられています。BDF は 0000:65:00.1 です。フラッシュ メモリに書き込まれてカードで実行されるプラットフォームは xilinx_u50_gen3x16_xdma_201920_3 で、ユーザー インスタンスは 128 に割り当てられています。
INFO: Found total 1 card(s), 1 are usable
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
System Configuration
OS name: Linux
Release: 4.15.0-96-generic
Version: #97~16.04.1-Ubuntu SMP Wed Apr 1 03:03:31 UTC 2020
Machine: x86_64
Model: Super Server
CPU cores: 16
Memory: 15703 MB
Glibc: 2.23
Distribution: Ubuntu 16.04.6 LTS
Now: Tue Apr 14 21:08:05 2020
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
XRT Information
Version: 2.5.309
Git Hash: 9a03790c11f066a5597b133db737cf4683ad84c8
Git Branch: 2019.2_PU2
Build Date: 2020-02-23 18:51:37
XOCL: 2.5.309,9a03790c11f066a5597b133db737cf4683ad84c8
XCLMGMT: 2.5.309,9a03790c11f066a5597b133db737cf4683ad84c8
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[0] 0000:65:00.1 xilinx_u50_gen3x16_xdma_201920_3 user(inst=128)
複数のカードがインストールされる場合、検出されたカードのリストが展開表示されます。次の例の場合、3 つのカードが検出され、card_ID に 0、1、2 がそれぞれ割り当てられています。
[0] 0000:a6:00.1 xilinx_u280_xdma_201920_2 user(inst=130)
[1] 0000:73:00.1 xilinx_u250_xdma_201830_2 user(inst=129)
[2] 0000:17:00.1 xilinx_u200_xdma_201830_2 user(inst=128)
*[0] 0000:a6:00.1 xilinx_u280_xdma_201920_2(ts=0x5e172e16) user(inst=130)
WARNING: card(s) marked by '*' are not ready, run xbmgmt flash --scan --verbose to further check the details.status
status コマンドは、カードにプログラムされている xclbin に含まれる Vitis パフォーマンス モニター (SPM) および軽量 AXI プロトコル チェッカー (LAPC) デバッグ IP のステータスをレポートします。
xbutil status [-d <card>] [--debug_ip_name]次の表に、使用可能なオプションを示します。
| オプション | 説明 | 必須 |
|---|---|---|
-d <card> |
ターゲット カードを指定します。<card> は、card_id または Bus:Device:Function (BDF) のいずれかに指定できます。指定しない場合は、デフォルトの card_id = 0 になります。 注記: xbutil scan コマンドを使用すると、設置されたカードの ID と BDF の両方が表示されます。 |
× |
--<ip_name> |
指定したデバッグ IP のステータスを返します。 | × |
status コマンドは、アクセラレータ カード上のデバッグ IP のタイプと数を表示します。
xbutil status
次に、コマンドの出力例を示します。検出されたデバッグ IP すべてが表示されています。
INFO: Found total 1 card(s), 1 are usable
Number of IPs found: 9
IPs found [<ipname>(<count>)]: aim(5) tracefunnel(1) monitorfifolite(1) monitorfifofull(1) accelmonitor(1)
Run 'xbutil status' with option --<ipname> to get more information about the IP
INFO: xbutil status succeeded.
使用可能な IP のリストは、アクセラレータ カードで使用するためにコンパイルされた xclbinxclbin ファイルにより決定されます。次の IP が含まれます。
- Accelerator Monitor (AM)
- 計算ユニットの実行をカウントおよびトレースします。パフォーマンス モニターを追加するには、--profile オプション で説明するように
--profile.execオプションを使用します。 - AXI Interface Monitor (AIM)
- AXI4 接続上のトランザクションをカウントおよびトレースします。
- AXI4-Stream Monitor (ASM)
- AXI4-Stream 上のトランザクションをカウントおよびトレースします。
- Lightweight AXI Protocol Monitor (LAPC)
- AXI4 のプロトコル チェックを実行します。プロトコル チェッカーを追加するには、--debug オプション で説明するように
--debug.protocolオプションを使します。 - Streaming Protocol Checker (SPC)
- AXI4-Stream のプロトコル チェックを実行します。
- Trace Funnel
- すべてのモニターからトレース イベントを収集します。これがある場合、コンパイル時に
--profile.dataオプション (--profile オプション を参照)、ランタイム時にtimeline_traceオプション (xrt.ini ファイル を参照) を使用して、トレースがイネーブルになっています。 - FIFO Lite
- トレース イベントを格納する PL FIFO を制御します。これがある場合、コンパイル時に
--trace_memoryオプション (Vitis コンパイラの一般オプション を参照)を使用してメモリ オフロードが PL の FIFO に指定されています。トレース動作は xrt.ini ファイル での設定の影響を受けます。 - FIFO Full
- トレース イベントを格納する PL FIFO のデータ オフロード。これがある場合、コンパイルおよびランタイム時にトレースがイネーブルになっており、コンパイル時に
--trace_memoryオプションを使用してメモリ オフロードが PL の FIFO に指定されています。 - TS2MM
- トレース イベントを取り込み、メモリ リソース (DDR、HBM、PLRAM) にオフロードします。これがある場合、コンパイルおよびランタイム時にトレースがイネーブルになっており、コンパイル時に
--trace_memoryオプション (Vitis コンパイラの一般オプション を参照) を使用してメモリ オフロードがメモリ リソースに指定されています。
次のコマンド構文を使用すると、特定の IP のステータスを取得できます。
$ xbutil status --<ipname>
次に、--aim オプションを使用した場合の出力例を示します。
$ xbutil status --aim
INFO: Found total 1 card(s), 1 are usable
AXI Interface Monitor Counters
Region or CU Type or Port Wr Bytes Wr Trans. Rd Bytes Rd Tranx. Outstanding Cnt
runOnfpga_1 m_axi_maxiport0-DDR[1] 0 0 0 0 0
runOnfpga_1 m_axi_maxiport1-DDR[1] 0 0 0 0 0
shell Memory to Memory 0 0 0 0 0
shell Host to Device 0 0 0 0 0
shell Peer to Peer 0 0 0 0 0
INFO: xbutil status succeeded.
次は同じ出力例の残りの列です。
INFO: Found total 1 card(s), 1 are usable
AXI Interface Monitor Counters
Region or CU Type or Port Last Wr Addr Last Wr Data Last Rd Addr Last Rd Data
runOnfpga_1 m_axi_maxiport0-DDR[1] 0x0 0x0 0x0 0x0
runOnfpga_1 m_axi_maxiport1-DDR[1] 0x0 0x0 0x0 0x0
shell Memory to Memory 0x0 0x0 0x0 0x0
shell Host to Device 0x0 0x0 0x0 0x0
shell Peer to Peer 0x0 0x0 0x0 0x0
INFO: xbutil status succeeded.
xclbin にデバッグ IP がない場合は、次のようなメッセージが表示されます。
INFO: Found total 1 card(s), 1 are usable
INFO: Failed to find any debug IPs on the platform. Ensure that a valid bitstream with debug IPs (SPM, LAPC) is successfully downloaded.
INFO: xbutil status succeeded.
デザインにパフォーマンス モニター カウンター (AM、AIM、ASM) および LAPC を追加する方法は、アプリケーションのハングをデバッグするための手法 を参照してください。
top
top コマンドは、メモリ トポロジ、DMA 転送メトリクス、計算ユニットの使用量データなど、カードの統計を出力します。このコマンドは Linux の top コマンドと似ており、実行すると、ターミナル ウィンドウに q を入力するまで操作が継続実行されます。
コマンド ライン形式は次のとおりです。
xbutil top [-d card] [-i seconds]
次の表に、使用可能なオプションを示します。
| オプション | 説明 | 必須 |
|---|---|---|
-d
<card> |
ターゲット カードを指定します。<card> は、card_id または Bus:Device:Function (BDF) のいずれかに指定できます。指定しない場合は、デフォルトの card_id = 0 になります。 注記: xbutil
scan コマンドを使用すると、設置されたカードの ID と BDF の両方が表示されます。 |
× |
-i
<seconds> |
更新レート (秒)。デフォルトは 1 秒です。 | × |
たとえば次のコマンドは、top コマンドを更新レート 2 秒で実行します。
xbutil top -i 2
| フィールド | 説明 |
|---|---|
| Device Memory Usage | 使用されているメモリの割合をメモリ バンクごとに示します。 使用されているメモリの量に応じて、次のように縦棒が表示されます。 |||||||||| |
| Power | カードの全消費電力 |
| Mem Topology | メモリ バンクに割り当てられたタグ |
| メモリのタイプ (DDR または HBM) | |
| メモリ バンクの温度 | |
| メモリ バンクごとに使用可能なメモリ | |
| 現在のメモリ使用量 | |
| 割り当てられたバッファー数 | |
| Total DMA Transfer Metrics | リブートにより転送された累積バイト数 |
| CU Usage | この CU で実行されたコマンドの数。この数値は、xclbin is が変更され、0 にリセットされるまで累積されます。 |
次に、このコマンドの出力例を示します。
Device Memory Usage
[0] bank0 [ ||||||||||| 25.0% ]
[1] bank1 [ 0.00% ]
[2] bank2 [ 0.00% ]
[3] bank3 [ 0.00% ]
Power
34.0W
Mem Topology Device Memory Usage
Tag Type Temp Size Mem Usage BO nums
[0] bank0 MEM_DDR4 36 C 16 GB 4 GB 16
[1] bank1 MEM_DDR4 38 C 16 GB 0 Byte 0
[2] bank2 MEM_DDR4 46 C 16 GB 0 Byte 0
[3] bank3 MEM_DDR4 41 C 16 GB 0 Byte 0
Total DMA Transfer Metrics:
Chan[0].h2c: 75 GB
Chan[0].c2h: 78 GB
Chan[1].h2c: 61600 MB
Chan[1].c2h: 61440 MB
############################################################################
Compute Unit Usage:
CU[@0x1800000] : 68
CU[@0x1c00000] : 68
CU[@0x250000] : 6
############################################################################
xclbin が読み込まれていない場合、次のような出力が表示されます。
Device Memory Usage
[1] bank1 [ 0.00% ]
Power
23W
Mem Topology Device Memory Usage
Tag Type Temp Size Mem Usage BO nums
[1] bank1 MEM_DDR4 36 64 GB 0 Byte 0
Total DMA Transfer Metrics:
Chan[0].h2c: 0 Byte
Chan[0].c2h: 0 Byte
Chan[1].h2c: 0 Byte
Chan[1].c2h: 0 Byte
############################################################################
Compute Unit Usage:
############################################################################
validate
validate コマンドは、インストールされているカードに関する読みやすいサマリを生成します。次のテストを実行して正しくインストールされていることを検証します。
- 検出されたカードを検証します。
- PCI Express リンク ステータスをチェックします。
- カード上のカーネルを検証します。
- 次のデータ帯域幅テストを実行します。
- DMA テスト: PCI Express を介したホストとカード メモリ間のデータ転送。
- DDR または HBM テスト: カーネルとカード メモリ間のデータ転送。
コマンド ライン形式は次のとおりです。
xbutil validate [-d card]
次の表に、使用可能なオプションを示します。
| オプション | 説明 | 必須 |
|---|---|---|
-d <card> |
ターゲット カードを指定します。<card> は、card_id または Bus:Device:Function (BDF) のいずれかに指定できます。指定しない場合は、デフォルトの card_id = 0 になります。 注記: xbutil scan コマンドを使用すると、設置されたカードの ID と BDF の両方が表示されます。 |
× |
次に、このコマンドの出力例を示します。
INFO: Found 1 cards
INFO: Validating card[0]: xilinx_u200_xdma_201830_2
INFO: == Starting AUX power connector check:
INFO: == AUX power connector check PASSED
INFO: == Starting PCIE link check:
INFO: == PCIE link check PASSED
INFO: == Starting verify kernel test:
INFO: == verify kernel test PASSED
INFO: == Starting DMA test:
Buffer Size: 256 MB
Host -> PCIe -> FPGA write bandwidth = 8775.99 MB/s
Host <- PCIe <- FPGA read bandwidth = 12136.8 MB/s
INFO: == DMA test PASSED
INFO: == Starting device memory bandwidth test:
...........
Maximum throughput: 52428 MB/s
INFO: == device memory bandwidth test PASSED
INFO: == Starting PCIE peer-to-peer test:
P2P BAR is not enabled. Skipping validation
INFO: == PCIE peer-to-peer test SKIPPED
INFO: == Starting memory-to-memory DMA test:
bank0 -> bank1 M2M bandwidth: 12010.3 MB/s
bank0 -> bank2 M2M bandwidth: 12051.6 MB/s
bank0 -> bank3 M2M bandwidth: 12063.5 MB/s
bank1 -> bank2 M2M bandwidth: 12052.7 MB/s
bank1 -> bank3 M2M bandwidth: 12048.2 MB/s
bank2 -> bank3 M2M bandwidth: 12052.2 MB/s
INFO: == memory-to-memory DMA test PASSED
INFO: Card[0] validated successfully.
INFO: All cards validated successfully.
version
version コマンドでは、XRT ビルド バージョンが返されます。これは、version コマンドと同じです。コマンド ライン形式は、次のようになります。オプションはありません。
xbutil version
次の表は、xbutil version コマンドから返されるフィールドをリストしています。
| フィールド | 説明 |
|---|---|
| XRT Build Version | XRT ビルド バージョン |
| Build Version Branch | ビルド バージョンの分岐 |
| Build Version Hash | ビルド バージョンのハッシュ |
| Build Version Hash Date | ビルド バージョンの分岐の日付 |
| Build Version Date | ビルド バージョンの日付 |
| XOCL | XOCL バージョン |
| XCLMGMT | XCLMGMT バージョン |
xbutil
version の出力例を示します。 XRT Build Version: 2.3.1301
Build Version Branch: 2019.2
Build Version Hash: 192e706aea53163a04c574f9b3fe9ed76b6ca471
Build Version Hash Date: Thu, 24 Oct 2019 19:27:30 -0700
Build Version Date: Thu, 24 Oct 2019 20:04:29 -0700
XOCL: 2.3.1301,192e706aea53163a04c574f9b3fe9ed76b6ca471
XCLMGMT: 2.3.1301,192e706aea53163a04c574f9b3fe9ed76b6ca471カードの詳細をさらに返す場合は、xbmgmt flash --scan を使用します。