Pengesahan FPGA untuk VM Seri Azure NP (Pratinjau)

Berlaku untuk: ✔️ Mesin virtual Linux ✔️ Mesin virtual Windows ✔️ Set skala fleksibel ✔️ Set skala seragam

Layanan Pengesahan FPGA melakukan serangkaian validasi pada file titik pemeriksaan desain (disebut "netlist") yang dihasilkan oleh toolset Xilinx dan menghasilkan file yang berisi citra yang divalidasi (disebut "bitstream") yang dapat dimuat ke kartu XILINX U250 FPGA dalam VM seri NP.

Berita

Layanan pengesahan saat ini menggunakan Vitis 2021.1 dari Xilinx, pada 26 September 2022, kami akan pindah ke Vitis 2022.1, perubahan harus transparan bagi sebagian besar pengguna. Setelah desain Anda "dibuktikan" menggunakan Vitis 2022.1, Anda harus pindah ke XRT2022.1. Xilinx menerbitkan gambar marketplace baru berdasarkan XRT 2022.1. Harap dicatat bahwa desain saat ini sudah diuji pada Vitis 2020.2 atau 2021.1, akan berfungsi pada gambar marketplace penyebaran saat ini serta gambar baru berdasarkan XRT2022.1

Sebagai bagian dari langkah ke 2021.1, Xilinx memperkenalkan DRC baru yang mungkin memengaruhi beberapa desain yang sebelumnya berfungsi pada Vitis 2020.2 mengenai pengesahan BUFCE_LEAF yang gagal, untuk rincian selengkapnya lihat di sini: Xilinx AR 75980 UltraScale/UltraScale+BRAM: CLOCK_DOMAIN = Pemeriksaan condong Mode Umum.

Prasyarat

Anda akan memerlukan langganan Azure dan akun Azure Storage. Langganan memberi Anda akses ke Azure dan akun penyimpanan digunakan untuk menyimpan file netlist dan output layanan pengesahan.

Kami menyediakan skrip PowerShell dan Bash untuk mengirimkan permintaan pengesahan. Skrip menggunakan Azure CLI, yang dapat berjalan di Windows dan Linux. PowerShell dapat berjalan di Windows, Linux, dan macOS.

Unduhan Azure CLI (diperlukan)

Unduhan PowerShell untuk Windows, Linux, dan macOS (hanya untuk skrip PowerShell)

Anda harus memiliki ID penyewa dan langganan Anda yang sah untuk dikirimkan ke layanan pengesahan. Kunjungi https://aka.ms/AzureFPGAAttestationPreview untuk meminta akses.

Membangun desain Anda untuk pengesahan

Toolset Xilinx pilihan untuk desain bangunan adalah Vitis 2022.1. File Netlist yang dibuat dengan versi toolset yang lebih lama dan masih kompatibel dengan 2022.1 dapat digunakan. Pastikan Anda telah memuat shell yang benar untuk dibangun. Versi yang saat ini didukung adalah xilinx_u250_gen3x16_xdma_2_1_202010_1. File dukungan dapat diunduh dari lounge Xilinx Alveo.

Anda harus menyertakan argumen berikut ke Vitis (baris v++ cmd) untuk membuat file xclbin yang berisi netlist, bukan bitstream.

--advanced.param compiler.acceleratorBinaryContent=dcp

Masuk ke Azure

Sebelum melakukan operasi apa pun dengan Azure, Anda harus masuk ke Azure dan mengatur langganan yang sah untuk memanggil layanan. Gunakan perintah az login dan az account set –s <Sub ID or Name> untuk tujuan ini. Informasi selengkapnya tentang proses ini didokumentasikan di sini: Masuk dengan Azure CLI. Gunakan opsi masuk secara interaktif atau masuk dengan kredensial pada baris perintah.

Membuat akun penyimpanan dan kontainer blob

File netlist harus diunggah ke kontainer blob penyimpanan Azure untuk diakses oleh layanan pengesahan.

Untuk informasi selengkapnya tentang membuat akun, kontainer, dan mengunggah netlist Anda sebagai blob ke kontainer tersebut, lihat Mulai Cepat: Membuat, mengunduh, dan mencantumkan blob dengan Azure CLI.

Anda juga dapat menggunakan portal Microsoft Azure untuk ini juga.

Mengunggah file netlist ke penyimpanan blob Azure

Ada beberapa cara menyalin file; contoh menggunakan cmdlet unggahan penyimpanan az ditunjukkan di bawah ini. Perintah az berjalan pada Linux dan Windows. Anda dapat memilih nama apa pun untuk nama "blob" tetapi pastikan untuk mempertahankan ekstensi xclbin.

az storage blob upload --account-name <storage account to receive netlist> --container-name <blob container name> --name <blob filename> --file <local file with netlist>

Mengunduh skrip pengesahan

Skrip Validasi dapat diunduh dari kontainer blob penyimpanan Azure berikut:

https://fpgaattestation.blob.core.windows.net/validationscripts/validate.zip

File zip memiliki dua skrip PowerShell, satu untuk dikirim dan yang lain untuk dipantau sementara file ketiga adalah skrip bash yang melakukan kedua fungsi.

Menjalankan skrip pengesahan

Untuk menjalankan skrip, Anda harus memberikan nama akun penyimpanan, nama kontainer blob tempat file netlist disimpan dan nama file netlist. Anda juga perlu membuat tanda tangan akses bersama Layanan (SAS) yang memberikan akses baca/tulis ke kontainer (bukan netlist). SAS ini digunakan oleh layanan pengesahan untuk membuat salinan lokal file netlist dan untuk menulis kembali file output yang dihasilkan dari proses validasi ke kontainer.

Gambaran umum tanda tangan akses bersama tersedia di sini dengan informasi spesifik tentang SAS Layanan yang tersedia di sini. Halaman SAS Layanan mencakup peringatan penting tentang melindungi SAS yang dihasilkan. Baca kehati-hatian untuk memahami kebutuhan untuk menjaga SAS terlindungi dari penggunaan berbahaya atau tidak diinginkan.

Anda dapat menghasilkan SAS untuk kontainer menggunakan cmdlet generate-sas kontainer penyimpanan az. Tentukan waktu kedaluwarsa dalam format UTC yang setidaknya beberapa jam melewati waktu pengiriman; sekitar 6 jam harus lebih dari cukup.

Jika Anda ingin menggunakan direktori virtual, Anda harus menyertakan hierarki direktori sebagai bagian dari argumen kontainer. Misalnya, jika Anda memiliki kontainer bernama "netlists" dan memiliki direktori virtual bernama "image1" yang berisi blob netlist, Anda akan menentukan "netlists/image1" sebagai nama kontainer. Tambahkan nama direktori tambahan untuk menentukan hierarki yang lebih dalam.

PowerShell

$sas=$(az storage container generate-sas --account-name <storage acct name> --name <blob container name> --https-only --permissions rwc --expiry <e.g., 2021-01-07T17:00Z> --output tsv)

.\Validate-FPGAImage.ps1 -StorageAccountName <storage acct name> -Container <blob container name> -BlobContainerSAS $sas -NetlistName <netlist blob filename>

Bash

sas=az storage container generate-sas --account-name <storage acct name> --name <blob container name> --https-only --permissions rwc --expiry <2021-01-07T17:00Z> --output tsv  

validate-fpgaimage.sh --storage-account <storage acct name> --container <blob container name> --netlist-name <netlist blob filename> --blob-container-sas $sas

Memeriksa status pengiriman

Layanan Pengesahan akan mengembalikan ID orkestrasi pengajuan Anda. Skrip pengiriman secara otomatis mulai memantau pengiriman dengan polling untuk penyelesaian. ID orkestrasi adalah cara utama bagi kami untuk meninjau apa yang terjadi pada pengajuan Anda jadi harap simpan itu jika Anda memiliki masalah. Sebagai titik referensi, pengesahan membutuhkan waktu sekitar 30 menit untuk menyelesaikan file netlist kecil (ukuran 300 MB); file 1,6 GB perlu waktu satu jam.

Anda dapat memanggil skrip Monitor-Validation.ps1 kapan pun untuk mendapatkan status dan hasil pengesahan, memberikan ID orkestrasi sebagai argumen:

.\Monitor-Validation.ps1 -OrchestrationId <orchestration ID>

Atau, Anda dapat mengirimkan permintaan posting HTTP ke titik akhir layanan pengesahan:

https://fpga-attestation.azurewebsites.net/api/ComputeFPGA_HttpGetStatus

Isi permintaan harus berisi ID Langganan, ID Penyewa, dan ID orkestrasi permintaan pengesahan:

{  
  "OrchestrationId": "<orchestration ID>",  
  "ClientSubscriptionId": "<your subscription ID>",  
  "ClientTenantId": "<your tenant ID>"
}

Langkah-langkah validasi postingan

Layanan ini akan menulis outputnya kembali ke kontainer. Jika tahapan validasi berhasil, kontainer akan memiliki file netlist asli (abc.xclbin), file dengan bitstream (abc.bit.xclbin), file yang mengidentifikasi lokasi privat bitstream tersimpan Anda (abc.azure.xclbin) dan empat file log: satu untuk proses startup (abc-log.txt) dan satu masing-masing untuk tiga fase paralel yang melakukan validasi. Ini diberi nama *logPhaseX.txt di mana X adalah angka untuk fase tersebut. Azure.xclbin digunakan pada VM Anda untuk memberi sinyal pengunggahan citra yang divalidasi ke U250.

Jika validasi gagal, file error-*.txt ditulis menunjukkan langkah mana yang gagal. Periksa juga file log jika log kesalahan menunjukkan bahwa pengesahan gagal. Saat menghubungi kami untuk mendapatkan dukungan, pastikan untuk menyertakan semua file ini sebagai bagian dari permintaan dukungan bersama dengan ID orkestrasi.

Anda dapat menggunakan portal Microsoft Azure untuk membuat kontainer serta mengunggah netlist dan mengunduh file bitstream dan log. Mengirimkan permintaan pengesahan dan memantau kemajuannya melalui portal saat ini tidak didukung dan harus dilakukan melalui skrip seperti yang dijelaskan di atas.