ここでは、f3 インスタンスで RTL (Register Transfer Level) コンパイラを使用する方法について説明します。
注
- ここに記載されているすべての操作は、同じリージョンの 1 つのアカウントで実行する必要があります。
- f3 インスタンスを RAM ユーザーとして使用することを強く推奨します。 不要な操作を避けるために、RAM ユーザーに必要な操作のみを実行する権限を与える必要があります。 RAM ユーザーのロールを作成し、OSS バケットにアクセスするため、ロールに一時的な権限を付与する必要があります。 IP アドレスを暗号化する場合は、RAM ユーザーに KMS (Key Management Service) を使用する権限を与えるようにします。 RAM ユーザーが許可を確認するには、RAM ユーザーにアカウントのリソースを表示する権限を与えます。
前提条件
- f3 インスタンスを作成し、セキュリティグループのルールを追加して、インスタンスの SSH ポート 22 へのインターネットアクセスを許可します。
- ECS コンソールにログインして、f3 インスタンスの詳細ページでインスタンス ID を取得します。
- FaaS サービスについては、中国 (上海) に OSS バケットを作成します。
注 バケットは FaaS 管理アカウントへの読み書きアクセスを提供します。 FaaS に関連しないオブジェクトを保存しないことを推奨します。
- f3 インスタンスを RAM ユーザーとして操作するには、次の手順を実行します。
- RAM ユーザーを作成し、権限を付与します。
- RAM ユーザーを作成し、権限を付与します。
- AccessKey を作成します。
手順
- f3 インスタンスに接続します。
注 プロジェクトのコンパイルには 2 ~ 3 時間かかります。 予期せず切断することがないようにするため、インスタンスの接続には nohup または VNC を使用することを推奨します。
- RTL リファレンスデザインをダウンロードします。
- ファイルを解凍します。
- f3 環境を設定します。
source /root/xbinst_oem/F3_env_setup.sh xdma
注 このコマンドは、新しいターミナルウィンドウを開くたびに実行します。 - OSS バケットを指定します。
faascmd config --id=hereIsYourSecretId --key=hereIsYourSecretKey # Replace hereIsYourSecretId and hereIsYourSecretKey with your RAM AK information faascmd auth --bucket=hereIsYourBucket # Replace hereIsYourBucket with the name of your OSS Bucket
- 次のコマンドを実行して、RTL プロジェクトをコンパイルします。
cd <decompressed directory>/hw/ # Enter the decompressed hw directory sh compiling.sh
注 プロジェクトのコンパイルには 2 ~ 3 時間かかります。 - "Netlist" ファイルをアップロードして FPGA イメージをダウンロードします。 スクリプト化されたプロセスまたは段階的なプロセスを使用してこのタスクを終了できます。
-
スクリプト化されたプロセス: 1 つの FPGA チップを持つ f3 インスタンスに適用可能。
- 以下のコマンドを実行してパッケージをアップロードし、イメージファイルを生成します。
sh /root/xbinst_oem/tool/faas_upload_and_create_image.sh <bit.tar.gz - the package to upload>
- イメージファイルをダウンロードします。
sh /root/xbinst_oem/tool/faas_download_image.sh <bit.tar.gz - the package filename> 0 # The last number stands for the FPGA serial No. of the instance
0 は f3 インスタンスの最初の FPGA を示します。 1 つの FPGA インスタンスの場合、FPGA シリアル番号は常に 0 です。 4つの FPGA を持つインスタンスなど、複数の FPGA を持つインスタンスの場合、シリアル番号は 0、1、2、3 です。
同じイメージを複数の FPGA にダウンロードするには、末尾にシリアル番号を追加します。
sh faas_download_image.sh bit.tar.gz 0 1 2
- 以下のコマンドを実行してパッケージをアップロードし、イメージファイルを生成します。
- 段階的プロセス:
- 次のコマンドを実行してパッケージを OSS バケットにアップロードしてから、OSS バケットの gbs を FaaS ユニットの OSS バケットにアップロードします。
faascmd upload_object --object=bit.tar.gz --file=bit.tar.gz faascmd create_image --object=bit.tar.gz --fpgatype=xilinx --name=hereIsFPGAImageName --tags=hereIsFPGAImageTag --encrypted=false --shell=f30001
- 次のコマンドを実行して、FPGA イメージをダウンロードする準備ができているかどうかを確認します。
faascmd list_images
返されたメッセージに"State":"success"
と表示されたら、FPGA イメージはダウンロード可能です。 FpgaImageUUID を探して書き留めます - 次のコマンドを実行してから、返されたメッセージの FpgaUUID を書き留めます。
faascmd list_instances --instanceId=hereIsYourInstanceId # Replace hereIsYourInstanceId with your f3 instance ID
- 次のコマンドを実行して FPGA イメージをダウンロードします。
faascmd download_image --instanceId=hereIsYourInstanceId --fpgauuid=hereIsFpgaUUID --fpgatype=xilinx --imageuuid=hereIsImageUUID --imagetype=afu --shell=f30001 # Replace hereIsYourInstanceId with f3 instance ID, hereIsFpgaUUID with the obtained FpgaUUID, and hereIsImageUUID with the obtained FpgaImageUUID
- 次のコマンドを実行して、イメージが正常にダウンロードされたかどうかを確認します。
faascmd fpga_status --fpgauuid=hereIsFpgaUUID --instanceId=hereIsYourInstanceId # Replace hereIsFpgaUUID with the obtained FpgaUUID, and hereIsYourInstanceId with f3 instance ID.
以下は返されるメッセージの例です。 メッセージ内の FPGA イメージの UUID と、書き留めた FPGA イメージの UUID が同じで、メッセージに
"TaskStatus":"valid"
と表示されている場合、イメージは正常にダウンロードされました。
- 次のコマンドを実行してパッケージを OSS バケットにアップロードしてから、OSS バケットの gbs を FaaS ユニットの OSS バケットにアップロードします。
-
よくある質問
イメージのアップロード中に発生したエラーの詳細を表示する方法について。プロジェクトがイメージのアップロード中にエラー (コンパイルエラーなど) を報告した場合は、次の 2 つの方法のいずれかでエラーの詳細を表示できます。
- Check faas_compiling.log. アップロードスクリプト faas_upload_and_create_image.sh を使用すると、コンパイルが失敗した場合に faas_compiling.log が自動的にダウンロードされて端末に出力されます。
- 次のコマンドを実行して、ログファイルを表示します:
sh /root/xbinst_oem/tool/faas_checklog.sh <bit.tar.gz - package uploaded previously>
。
イメージを再度読み込むには、次の手順を実行します。
- インスタンス上でコマンドを実行してドライバーをアンインストールします。
sudo rmmod xdma sudo rmmod xocl
- 次の 2 つの方法のいずれかでイメージをダウンロードします。
- スクリプトを使用します。 最後の番号は、インスタンスの FPGA シリアル番号を表します:
sh faas_download_image.sh bit.tar.gz 0
- faascmd の使用:
faascmd download_image --instanceId=hereIsYourInstanceId --fpgauuid=hereIsFpgaUUID --fpgatype=xilinx --imageuuid=hereIsImageUUID --imagetype=afu --shell=f30001
- スクリプトを使用します。 最後の番号は、インスタンスの FPGA シリアル番号を表します:
- ドライバーをインストールします。
sudo depmod sudo modprobe xdma