LoginSignup
2
0

More than 1 year has passed since last update.

インテル® Agilex™ FPGA ベースの SmartNIC N6000-PLを使ってみた

Last updated at Posted at 2022-12-15

インテル® Agilex™ FPGA ベースの SmartNIC N6000-PLを使ってみた

はじめに

(株)スターラップ・テクノロジーです。
インテル Agilex FPGAベースのSmartNIC プラットフォーム(N6011)による長瀬産業のFPGA向けの高速・低レイテンシサーチエンジンIP(Axonerve)の動作検証を実施しました。
不可解な現象が残ったままですがOS選定からIOFSインストールまでのトラブル対処も踏まえた環境構築フローをここに紹介します。

目次

使用環境

FPGAボード intel FPGA SmartNIC プラットフォーム(N6011)
CPU     Intel Core i7-12700k
メモリ容量 128GB
OS     Cent OS Stream 8
Quartus  Quartus Pro 21.3.0 SP0.14

環境構築  

ここではスタートアップガイドに準じて、OSならびにKernelの選定からIOFSインストールによる環境構築までの実施手順、そしてトラブル内容および処置を記載します。

(1) BIOS設定変更

IOFS-DFL(N6011用ドライバ)をインストールできない問題対策として次の項目を変更します。

項目 設定
Secure boot 無効
SR-IOV Support  有効
Native PCIE Enable 無効

(2) OSならびにKernelの選定とインストール

OS kernel
Cent OS Stream 8 kernel-rt-4.18.0-348.1.rt7.70.el8.x86_64

(3) IOFS インストール (スタートアップガイドに準じる)

(3-1)シェルスクリプトを用いてIOFSをインストール

実施例
$ sudo ./fpga-ofs-2022-04-21.sh
実施ログ
$Verifying archive integrity... 100% SHA256 checksums are OK. All good. 
Uncompressing FPGA OFS Driver and Application Package 100%
Failed to installed epel repository, which is needed to build kernel modules

epel repositoryが未設定のためFailエラー発生

(3-2)epelをインストール (epel repositoryの設定)

実施例
$sudo yum install epel-release
実施ログ(一部)
Package filename:epel-release-8-11.el8.noarch.rpm

(3-3)シェルスクリプトを用いてIOFSを再インストール

実施例
$ sudo ./fpga-ofs-2022-04-21.sh
実施ログ
Building module:
Cleaning build area...
make -j20 KERNELRELEASE=4.18.0-365.el8.x86_64 KERNELDIR=/lib/modules/4.18.0-365.el8.x86_ 64/build...(bad exit status: 2)
Error! Bad return status for module build on kernel: 4.18.0-365.el8.x86_64 (x86_64)
Consult /var/lib/dkms/linux-dfl-backport/0^20220421gsil1.8.r6.g010f7374-1/build/make.log for more information.
modprobe: WARNING: Module dfl_pci not found in directory /lib/modules/4.18.0-365.el8.x86_64
警告: %post(linux-dfl-backport-0^20220421gsil1.8.r6.g010f7374-1.noarch) 
スクリプトの実行に失敗しました。
終了ステータス 1
Error in POSTIN scriptlet in rpm package linux-dfl-backport

make -j20 KERNELRELEASE=4.18.0-365.el8.x86_64 KERNELDIR= ........

 ・処理中にKernel版数が [365] となりエラーが発生し、DFLとOPAEがインストールできない。
 ・Kernel版数がなぜ変わったのか?パソコン環境あるいはシェルスクリプト起因かは不明。

(3-4)強制RebootによるKernelデフォルト版数を [365]から元の[348] へ切り替え

(3-5)IOFS-DFLのみ個別インストール

実施例
$ sudo yum install 'linux-dfl-backport-0^20220421gsil1.8.r6.g010f7374-1.noarch.rpm'
実施ログ
Building module:
Cleaning build area...
make -j20 KERNELRELEASE=4.18.0-348.el8.x86_64 KERNELDIR=/lib/modules/4.18.0-348.el8.x86_64/build... 
Signing module /var/lib/dkms/linux-dfl-backport/0^ 20220421gsil1.8.r6.g010f7374-1/build/regmap-mmio.ko Signing module /var/lib/dkms/linux-dfl-backport/0^ 20220421gsil1.8.r6.g010f7374-1/build/regmap-spi-avmm.ko 
 <<以下省略>>

IOFS-DFLのインストールが正常終了

(3-6)IOFS-OPAEのみ個別インストール

実施例
$ sudo ./fpga-ofs-2022-04-21.sh -- --opae-only

IOFS-OPAEのインストールが正常終了

(4) 環境チェック

(4-1)opaeコマンドによるドライバの組込み状態

実行コマンドとログ
$ opae.io ls
[0000:03:00.0] (0x8086, 0xbcce) Intel N6000 ADP (Driver: dfl-pci)
[0000:03:00.1] (0x8086, 0xbcce) Intel N6000 ADP (Driver: dfl-pci)
[0000:03:00.4] (0x8086, 0xbcce) Intel N6000 ADP (Driver: dfl-pci)
[0000:03:00.2] (0x8086, 0xbcce) Intel N6000 ADP (Driver: dfl-pci)

Kernelへのドライバが正常に組み込まれている

(4-2)fpgainfoコマンドによるPCIe経由でのN6011のソフトウエア情報

実行コマンドとログ
$ fpgainfo fme
Intel Acceleration Development Platform
Board Management Controller NIOS FW version: 3.2.0 
Board Management Controller Build version: 3.2.0 
//****** FME ******//
Object Id               : 0xF000000
PCIe s:b:d.f            : 0000:03:00.0
Vendor Id               : 0x8086
Device Id               : 0xBCCE
SubVendor Id            : 0x8086
SubDevice Id            : 0x0000
Socket Id              : 0x00
Ports Num               : 01
Bitstream Id            : 0x501060200000000
Bitstream Version       : 5.0.1
Pr Interface Id         : af0ba90a-6df0-5f12-8fb5-263d15d98c72
Boot Page               : user1
Factory Image Info      : b3442faf0237fea4e23ef057af64586b
User1 Image Info        : ba740062978c274152402e5c4def51ec
User2 Image Info        : a8f39027e12ed8ba5feaf5b154bf5b66

N6011のソフトウエア情報が正常に読み出され、内容も問題なし

環境構築完了

ノウハウ事例集

ここではFPGA設計段階でのトラブル(Know-how)事例を紹介します。
N6011用のマニュアルに準じ、Buildあるいはbinの書き込み時に発生したユーザー環境の設定に起因した2つの事例です。

事例-1.

Buildスクリプト内で、GitHubへの問い合わせ処理のステップにてエラー発生

[ 内容 ]: OFS_BUILD_NUMBER環境変数が設定されていない
[ 処置 ]: OFS_BUILD_NUMBERへ任意の数字を設定(”0”を設定)

事例-2.

Build後に作られるbinファイルが3種類あり、どれを書き込むべきか不明

[ 内容 ]:Build後に作られたbinファイルは以下の通り確認できます

binファイル
$ cd work_x8_2x1x100G_adp/syn/n6000/fim_x8_2x1x100G/adp/syn_top/output_files
$ ls -1 *pacsign*.bin
ofs_top_page0_pacsign_factory.bin
ofs_top_page1_pacsign_user1.bin
ofs_top_page2_pacsign_user2.bin

[ 処置 ]:“ fpgainfo fme “実行リストの 「Boot Page」の項に記載されたファイル(” user1 “)を書き込む。

実行コマンドとログ
$ fpgainfo fme
Intel Acceleration Development Platform
Board Management Controller NIOS FW version: 3.2.0 
Board Management Controller Build version: 3.2.0 
//****** FME ******//
Object Id                        : 0xF000000
PCIe s:b:d.f                     : 0000:03:00.0
Vendor Id                        : 0x8086
Device Id                        : 0xBCCE
SubVendor Id                     : 0x8086
SubDevice Id                     : 0x0000
Socket Id                        : 0x00
Ports Num                        : 01
Bitstream Id                     : 0x501060200000000
Bitstream Version                : 5.0.1
Pr Interface Id                  : af0ba90a-6df0-5f12-8fb5-263d15d98c72
Boot Page                        : user1
Factory Image Info               : b3442faf0237fea4e23ef057af64586b
User1 Image Info                 : ba740062978c274152402e5c4def51ec
User2 Image Info                 : a8f39027e12ed8ba5feaf5b154bf5b66

[ 補足 ]:Boot Pageを変更する場合は以下のコマンドを使用する。
実施例
rsu fpga -p user1 03:00.0

あとがき

今回は、FPGA動作検証までの記載は割愛し、環境構築までの情報を記載しました。
同じように環境設定でつまずいた方の参考になれば幸いです。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0