Аттестация ППВМ для виртуальных машин Azure серии NP (предварительная версия)

Применимо к: ✔️ Виртуальные машины Linux ✔️ Виртуальные машины Windows ✔️ Универсальные масштабируемые наборы

Служба аттестации ППВМ выполняет ряд проверок в файле контрольных точек проекта (называемом "список соединений"), созданном набором инструментов Xilinx, и создает файл, содержащий проверенный образ ("битовый поток"), который можно загрузить на карту ППВМ Xilinx U250 в виртуальной машине серии NP.

Примечание.

News

Текущая служба аттестации использует Vitis 2021.1 из Xilinx, 26 сентября 2022 года, мы перейдем в Vitis 2022.1. Изменение должно быть прозрачным для большинства пользователей. После того как ваши проекты "подтверждены" с помощью Vitis 2022.1, вы должны перейти к XRT2022.1. Xilinx опубликовал новые образы Marketplace на основе XRT 2022.1. Обратите внимание, что текущие проекты уже протестированы на Vitis 2020.2 или 2021.1, работают на текущих образах Marketplace развертывания и новых образах на основе XRT2022.1

В рамках перехода на2021.1 Xilinx представила новое DRC, которое может повлиять на некоторые проекты, ранее работающие на Vitis 2020.2 в отношении сбоя аттестации BUFCE_LEAF. Дополнительные сведения см. Xilinx AR 75980 UltraScale/UltraScale+ BRAM: CLOCK_DOMAIN =: CLOCK_DOMAIN = проверки отклонений обычного режима.

Необходимые компоненты

Вам нужна подписка Azure и учетная запись служба хранилища Azure. Подписка предоставляет доступ к Azure, а учетная запись хранения используется для хранения списка соединений и выходных файлов службы аттестации.

Для отправки запросов аттестации мы предоставляем сценарии PowerShell и bash. В скриптах используется Azure CLI, который может работать в ОС Windows и Linux. PowerShell поддерживается в Windows, Linux и macOS.

Скачивание Azure CLI (обязательно)

Скачивание PowerShell для Windows, Linux и macOS (только для скриптов PowerShell)

Для отправки в службу аттестации необходимо иметь идентификатор клиента и подписки. Чтобы запросить доступ, посетите https://aka.ms/AzureFPGAAttestationPreview.

Создание проекта для аттестации

Предпочтительный набор инструментов Xilinx для строительных конструкций — Vitis 2022.1. Netlist-файлы, созданные с более ранней версией набора инструментов и по-прежнему совместимы с 2022.1, можно использовать. Убедитесь, что вы загрузили правильную оболочку для сборки. В текущий момент поддерживается версия xilinx_u250_gen3x16_xdma_2_1_202010_1. Файлы поддержки можно скачать с ресурса Xilinx Alveo.

Чтобы создать файл xclbin, содержащий список соединений вместо битового потока, необходимо передать следующий аргумент в Vitis (командная строка v++).

--advanced.param compiler.acceleratorBinaryContent=dcp

Вход в Azure

Перед выполнением любых операций с Azure необходимо войти в Azure и задать подписку, авторизованную для вызова службы. Для этой цели используйте команды az login и az account set –s <Sub ID or Name>. Дополнительные сведения об этом процессе приведены здесь: Вход с помощью Azure CLI. Используйте в командной строке параметр Войти в интерактивном режиме или Войти с учетными данными.

Создание учетной записи хранения и контейнера BLOB-объектов

Чтобы получить доступ к службе аттестации, необходимо отправить файл списка соединений в контейнер BLOB-объектов хранилища Azure.

Дополнительные сведения о создании учетной записи, контейнере и отправке списка netlist в качестве BLOB-объекта в этот контейнер см. в кратком руководстве: создание, скачивание и перечисление BLOB-объектов с помощью Azure CLI.

Для этого также можно использовать портал Azure.

Отправка файла списка соединений в хранилище BLOB-объектов Azure

Существует несколько способов скопировать файл. Ниже приведен пример использования командлета отправки в хранилище az. Команды az выполняются как в Linux, так и в Windows. Вы можете выбрать любое имя BLOB-объекта, но обязательно используйте расширение 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>

Выполнение скриптов аттестации

Чтобы выполнить скрипты, необходимо указать имя учетной записи хранения, имя контейнера BLOB-объектов, в котором хранится файл списка соединений, и имя файла списка соединений. Кроме того, необходимо создать подписанный URL-адрес службы (SAS), который предоставляет доступ для чтения и записи к контейнеру (а не netlist). Этот подписанный URL-адрес используется службой аттестации для создания локальной копии файла списка соединений и записи результирующих выходных файлов процесса проверки обратно в контейнер.

Общие сведения о подписанных URL-адресах с конкретной информацией о подписанном URL-адресе службы см. здесь. Страница подписанного URL-адреса службы содержит важное предупреждение о защите созданного подписанного URL-адреса. Прочтите предупреждение, чтобы понять необходимость защиты подписанного URL-адреса от злоумышленного использования или использования не по назначению.

Подписанный URL-адрес для контейнера можно создать с помощью командлета generate-sas контейнера хранилища az. Укажите время истечения срока действия в формате UTC, которое как минимум на несколько часов позже времени отправки. Запаздывание 6 часов более, чем достаточно.

Если нужно использовать виртуальные каталоги, необходимо включить иерархию каталогов как часть аргумента контейнера. Например, при наличии контейнера с именем netlists и виртуального каталога с именем Image1, содержащего BLOB-объект списка соединений, в качестве имени контейнера следует указать netlists/image1. Добавьте дополнительные имена каталогов, чтобы указать более подробную иерархию.

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

Проверка состояния отправки

Служба аттестации возвратит идентификатор оркестрации отправки. Скрипты отправки автоматически начинают отслеживать отправку, опрашивая на предмет завершения. Идентификатор оркестрации является для нас основным способом проверки того, что произошло с отправкой, поэтому сохраните его на случай возможной проблемы. Для справки, аттестация занимает около 30 минут для небольшого файла списка соединений (объемом 300 МБ), для файла объемом 1,6 ГБ потребовался один час.

В любой момент можно вызвать скрипт Monitor-Validation.ps1, чтобы получить состояние и результаты аттестации, указав в качестве аргумента идентификатор оркестрации.

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

Либо можно отправить запрос HTTP POST в конечную точку службы аттестации.

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

Текст запроса должен содержать идентификатор подписки, идентификатор клиента и идентификатор оркестрации для запроса аттестации.

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

Действия после проверки

Служба запишет выходные данные обратно в ваш контейнер. Если проверка прошла успешно, ваш контейнер будет содержать исходный файл списка соединений (abc.xclbin), файл с битовым потоком (abc.bit.xclbin), файл, определяющий частное расположение сохраненного битового потока (abc.azure.xclbin) и четыре файла журналов: один для процесса запуска (abc-log.txt) и по одному для трех параллельных этапов выполнения проверки. Они называются *logPhaseX.txt где X — это номер этапа. Файл azure.xclbin используется на виртуальной машине, чтобы сообщить о передаче проверенного образа в U250.

Если проверка закончилась неудачей, записывается файл error-*.txt, указывающий на этап, на котором произошел сбой. Также проверьте файлы журналов, если журнал ошибок указывает на сбой аттестации. При обращении к нам за поддержкой обязательно включите все эти файлы в запрос на поддержку вместе с идентификатором оркестрации.

Можно использовать портал Azure, чтобы создать контейнер, а также передать список соединений и скачать файлы битового потока и журналов. Отправка запроса аттестации и мониторинг его хода выполнения, используя портал, в настоящее время не поддерживаются и должны выполняться с помощью скриптов, как описано выше.