Aracılığıyla paylaş


Azure NP Serisi VM'ler için FPGA kanıtlama (Önizleme)

Şunlar için geçerlidir: ✔️ Linux VM'leri ✔️ Windows VM'leri ✔️ Esnek ölçek kümeleri ✔️ Tekdüzen ölçek kümeleri

FPGA Kanıtlama hizmeti, Xilinx araç takımı tarafından oluşturulan bir tasarım denetim noktası dosyasında ("netlist" olarak adlandırılır) bir dizi doğrulama gerçekleştirir ve NP serisi VM'deki Xilinx U250 FPGA kartına yüklenebilen doğrulanmış görüntüyü ("bit akışı" olarak adlandırılır) içeren bir dosya üretir.

Haberler

Geçerli kanıtlama hizmeti Xilinx'ten Vitis 2021.1 kullanıyor, 26 Eylül 2022'de Vitis 2022.1'e geçeceğiz, değişiklik çoğu kullanıcı için şeffaf olmalıdır. Tasarımlarınız Vitis 2022.1 kullanılarak "kanıtlandıktan" sonra XRT2022.1'e geçmeniz gerekir. Xilinx, XRT 2022.1'i temel alan yeni market görüntüleri yayımladı. Vitis 2020.2 veya 2021.1'de zaten doğrulanmış olan mevcut tasarımların geçerli dağıtım market görüntüleri ve XRT2022.1 tabanlı yeni görüntüler üzerinde çalışacağını lütfen unutmayın

Xilinx, 2021.1'e taşıma işleminin bir parçası olarak, daha önce Vitis 2020.2 üzerinde çalışan bazı tasarımları etkileyen yeni bir DRC'yi BUFCE_LEAF başarısız kanıtlamayla ilgili olarak kullanıma sunulmuştur. Burada daha fazla ayrıntı için: Xilinx AR 75980 UltraScale/UltraScale+ BRAM: CLOCK_DOMAIN = Ortak Mod eğme denetimleri.

Önkoşullar

Bir Azure aboneliğine ve bir Azure Depolama hesabına ihtiyacınız olacaktır. Abonelik, Azure'a erişmenizi sağlar ve depolama hesabı kanıtlama hizmetinin netlist ve çıkış dosyalarını tutmak için kullanılır.

Kanıtlama istekleri göndermek için PowerShell ve Bash betikleri sağlıyoruz. Betikler, Windows ve Linux üzerinde çalışabilen Azure CLI kullanır. PowerShell, Windows, Linux ve macOS üzerinde çalıştırılabilir.

Azure CLI indirme (gerekli)

Windows, Linux ve macOS için PowerShell indirme (yalnızca PowerShell betikleri için)

Kanıtlama hizmetine göndermek için kiracınızın ve abonelik kimliğinizin yetkilendirilmiş olması gerekir. Erişim istemek için ziyaret edin https://aka.ms/AzureFPGAAttestationPreview .

Kanıtlama için tasarımınızı oluşturma

Yapı tasarımları için tercih edilen Xilinx araç takımı Vitis 2022.1'dir. Araç takımının önceki bir sürümüyle oluşturulan ve hala 2022.1 ile uyumlu olan netlist dosyaları kullanılabilir. Derlemek için doğru kabuğu yüklediğinizden emin olun. Şu anda desteklenen sürüm: xilinx_u250_gen3x16_xdma_2_1_202010_1. Destek dosyaları Xilinx Alveo salonundan indirilebilir.

Bit akışı yerine netlist içeren bir xclbin dosya oluşturmak için Vitis'e (v++ cmd satırı) aşağıdaki bağımsız değişkeni eklemeniz gerekir.

--advanced.param compiler.acceleratorBinaryContent=dcp

Azure'da oturum açma

Azure ile herhangi bir işlem gerçekleştirmeden önce Azure'da oturum açmanız ve hizmeti çağırma yetkisi olan aboneliği ayarlamanız gerekir. az login Bu amaçla ve az account set –s <Sub ID or Name> komutlarını kullanın. Bu işlem hakkında daha fazla bilgi burada belgelenmiştir: Azure CLI ile oturum açın. Komut satırında etkileşimli olarak oturum aç veya kimlik bilgileriyle oturum aç seçeneğini kullanın.

Depolama hesabı ve blob kapsayıcısı oluşturma

Netlist dosyanızın kanıtlama hizmeti tarafından erişilmesi için bir Azure depolama blob kapsayıcısına yüklenmesi gerekir.

Hesabı, kapsayıcıyı oluşturma ve netlist'inizi bu kapsayıcıya blob olarak yükleme hakkında daha fazla bilgi için bkz . Hızlı Başlangıç: Azure CLI ile blob oluşturma, indirme ve listeleme.

Bunun için Azure portalını da kullanabilirsiniz.

Netlist dosyanızı Azure blob depolamaya yükleme

Dosyayı kopyalamanın birkaç yolu vardır; aşağıda az storage upload cmdlet'ini kullanan bir örnek gösterilmiştir. az komutları hem Linux hem de Windows üzerinde çalışır. "Blob" adı için herhangi bir ad seçebilirsiniz, ancak uzantıyı koruduğundan xclbin emin olun.

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

Kanıtlama betiklerini çalıştırma

Betikleri çalıştırmak için depolama hesabınızın adını, netlist dosyasının depolandığı blob kapsayıcısının adını ve netlist dosyasının adını sağlamanız gerekir. Ayrıca kapsayıcınıza (netlist'e değil) okuma/yazma erişimi veren bir Hizmet paylaşılan erişim imzası (SAS) oluşturmanız gerekir. Bu SAS, kanıtlama hizmeti tarafından netlist dosyanızın yerel bir kopyasını oluşturmak ve doğrulama işleminin sonuçta elde edilen çıkış dosyalarını kapsayıcınıza geri yazmak için kullanılır.

Paylaşılan erişim imzalarına genel bakış burada Hizmet SAS'siyle ilgili belirli bilgileri burada bulabilirsiniz. Hizmet SAS sayfası, oluşturulan SAS'yi koruma konusunda önemli bir uyarı içerir. SAS'yi kötü amaçlı veya istenmeyen kullanıma karşı koruma gereksinimini anlamak için dikkatli olun.

az storage container generate-sas cmdlet'ini kullanarak kapsayıcınız için bir SAS oluşturabilirsiniz. Utc biçiminde, gönderim saatini en az birkaç saat geçmiş bir süre sonu saati belirtin; yaklaşık 6 saat yeterli olmalıdır.

Sanal dizinleri kullanmak istiyorsanız, dizin hiyerarşisini kapsayıcı bağımsız değişkeninin bir parçası olarak eklemeniz gerekir. Örneğin, "netlists" adlı bir kapsayıcınız varsa ve netlist blobunu içeren "image1" adlı bir sanal dizininiz varsa, kapsayıcı adı olarak "netlists/image1" belirtmeniz gerekir. Daha derin bir hiyerarşi belirtmek için ek dizin adlarını ekleyin.

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

Gönderiminizin durumunu denetleme

Kanıtlama hizmeti, gönderiminizin düzenleme kimliğini döndürür. Gönderim betikleri, tamamlanmak üzere yoklama yaparak gönderimi otomatik olarak izlemeye başlar. Düzenleme kimliği, gönderiminize ne olduğunu gözden geçirmenin birincil yoludur, bu nedenle bir sorun olması durumunda lütfen bunu saklayın. Başvuru noktaları olarak kanıtlamanın tamamlanması küçük bir netlist dosyası için yaklaşık 30 dakika sürer (boyutu 300 MB); 1,6 GB'lık bir dosya bir saat sürdü.

Kanıtlamanın durumunu ve sonuçlarını almak için monitor-validation.ps1 betiğini istediğiniz zaman çağırabilir ve düzenleme kimliğini bağımsız değişken olarak sağlayabilirsiniz:

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

Alternatif olarak, kanıtlama hizmeti uç noktasına HTTP gönderi isteği gönderebilirsiniz:

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

İstek gövdesinde, kanıtlama isteğinizin Abonelik Kimliği, Kiracı Kimliği ve düzenleme kimliği bulunmalıdır:

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

Doğrulama sonrası adımları

Hizmet çıkışını kapsayıcınıza geri yazar. Doğrulama geçişi başarılı olursa kapsayıcınızda özgün netlist dosyası (abc.xclbin), bit akışı (abc.bit.xclbin) içeren bir dosya, depolanan bit akışınızın (abc.azure.xclbin) özel konumunu tanımlayan bir dosya ve dört günlük dosyası bulunur: başlangıç işlemi (abc-log.txt) için bir dosya ve doğrulamayı gerçekleştiren üç paralel aşama için birer tane. Bunlar *logPhaseX.txt olarak adlandırılır; burada X, aşama için bir sayıdır. Azure.xclbin, doğrulanmış görüntünüzüN U250'ye yüklendiğinin sinyalini vermek için VM'nizde kullanılır.

Doğrulama başarısız olursa, hangi adımın başarısız olduğunu belirten bir error-*.txt dosyası yazılır. Hata günlüğü kanıtlamanın başarısız olduğunu gösteriyorsa günlük dosyalarını da denetleyin. Destek için bizimle iletişim kurarken, lütfen tüm bu dosyaları düzenleme kimliğiyle birlikte destek isteğinin bir parçası olarak eklediğinizden emin olun.

Azure portalını kullanarak kapsayıcınızı oluşturabilir, netlist'inizi karşıya yükleyebilir ve bit akışı ile günlük dosyalarını indirebilirsiniz. Kanıtlama isteği gönderme ve portal üzerinden ilerleme durumunu izleme şu anda desteklenmiyor ve yukarıda açıklandığı gibi betikler aracılığıyla yapılmalıdır.