高通云AI 100开发者指南(三)

2 安装指导

  Platform SDK(x86和Arm)和Apps SDK(仅x86)针对基于Linux的平台。这些SDK可以在Linux操作系统上本地安装。通过Docker和Kubernetes也支持容器和编排。还支持包括KVM、ESXi和Hyper-V在内的虚拟机。本节涵盖:
   在多个Linux发行版上安装SDK
   使用SDK和第三方包构建Docker镜像,以实现QAic推理工具/工作流程的无缝执行
   设置KVM、ESXi和Hyper-V,并安装SDK
   使用Kubernetes进行部署

2.1 支持的操作系统、虚拟机管理程序和平台

AIC100平台SDK兼容以下操作系统(OS)和平台。
表1 支持的操作系统和平台

(表1 支持的操作系统和平台)
2.1.1 KVM

  基于内核的虚拟机(KVM)是Linux内核中的一个模块,允许Linux操作系统作为虚拟机管理程序运行。这使得本地安装的Linux可以作为虚拟机的主机。结合QEMU和libVirt,KVM虚拟机可以模拟一个完全独立的系统,该系统可以限制在主机硬件的一部分上运行,并且可以运行与主机完全不同的操作系统。

  关于KVM的概述,请访问https://en.wikipedia.org/wiki/Kernel-based_Virtual_Machine

  虚拟机的好处在于强隔离性。虚拟机彼此之间及与主机之间是隔离的。这种隔离提供了高水平的安全性,因为虚拟机中的一个应用程序可能不知道它在虚拟机中,更不用说存在其他虚拟机和其他应用程序。此外,虚拟机还提供了与主机的分离。即使虚拟机中的驱动程序崩溃导致整个虚拟机崩溃,这种崩溃也不会影响主机,因此其他虚拟机中的服务仍可以继续运行。

  这些好处的代价是设置系统时需要额外的开销。此外,在虚拟机和本地硬件之间的运行时还可能需要额外的处理。

  AIC100只支持PCIe直通到虚拟机。这意味着虚拟机完全拥有AIC100设备。AIC100设备不能在虚拟机之间共享,也不能在虚拟机和本地主机之间共享。

  KVM虚拟机的一般设置和操作超出了本文档的范围。本文档假设读者熟悉这些操作,因此只解释与将AIC100设备分配给KVM虚拟机直接相关的部分。

  AIC100仅支持表1中列出的操作系统作为虚拟机中的客户操作系统。

  在虚拟机中,AIC100仍然需要分配32个消息信号中断(MSI)来运行,这要求虚拟机模拟IOMMU。在创建虚拟机时,必须配置虚拟机以模拟能够模拟IOMMU的系统。一个这样的系统是“q35”系统。如果使用“virt-install”,可以通过在virt-install命令中添加“—machine=q35”来创建基于q35的虚拟机。

  本节剩余部分假设虚拟机是使用virt-install和–machine=q35选项创建的。其他系统可能需要不同的配置来达到相同的效果。

  虚拟机创建后,必须进行配置。这可以在虚拟机未运行时通过“virsh edit”命令完成。有关此命令的更多详细信息,请参阅virsh手册页:https://linux.die.net/man/1/virsh

  虚拟机配置必须将模拟的IOMMU呈现给虚拟机中的客户操作系统,并且必须将AIC100设备传递进去。

  首先,为了将IOMMU呈现给客户操作系统,需要在配置XML中添加以下元素:
   1.在XML的“features”部分下添加“”,以分割模式配置ioapic驱动程序进行中断重映射。
   2.在XML的“features”部分下添加以下代码片段,以启用中断重映射功能配置模拟的IOMMU:

<iommu model='intel'>
   <driver caching_mode='on' intremap='on'/>
</iommu>

  第二步,配置要传递给虚拟机客户操作系统的设备。

   在主机上使用“lspci”命令获取AIC100设备的PCIe SBDF地址。
   将步骤1中获得的设备地址添加到XML的“devices”部分,如下所示,但将address标签的值更改为与你的具体系统匹配的值。

<hostdev mode='subsystem' type='pci' managed='yes'>
  <source>
     <address domain='0x0' bus='0x0' slot='0x19' function='0x0'/>
  </source>
</hostdev>

   行这些编辑后,保存配置。下次启动虚拟机时,你将在虚拟机的lspci输出中看到AIC100设备。它将具有与主机不同的PCIe SBDF地址。按照操作本地系统的方式安装AIC100平台SDK和应用SDK。

2.1.2 Hyper-V

  Hyper-V是一种虚拟化监控程序,通常与Microsoft Windows Server一起使用。这使得可以在本地安装Windows Server作为虚拟机的主机。虚拟机模拟一个完全独立的系统,可以限制其使用主机硬件的一个子集,并且还可以运行与主机完全不同的操作系统。

  有关Hyper-V的概述,请参见https://en.wikipedia.org/wiki/Hyper-V

  虚拟机的好处在于强大的隔离性。虚拟机与其他虚拟机以及主机之间是隔离的。这种隔离提供了很高级别的安全性,因为虚拟机中的一个应用程序可能不知道自己处于虚拟机中,更不用说可能存在其他虚拟机和其他应用程序了。此外,虚拟机还与主机分隔开。即使虚拟机中的驱动程序崩溃导致整个虚拟机崩溃,也不会影响主机,因此其他虚拟机中的其他服务可以继续运行。

  这些好处的代价是额外的系统设置开销。此外,在虚拟机和本机硬件之间可能需要额外的处理。

  AIC100仅支持将PCIe设备直通到虚拟机,这意味着虚拟机完全拥有AIC100设备。AIC100设备不能在虚拟机之间共享,也不能在虚拟机和本机主机之间共享。

  AIC100只支持作为虚拟机内运行的客户操作系统的Table:1中列出的操作系统。

  在虚拟机中,AIC100仍然需要分配32个消息信号中断(MSI)才能运行。Hyper-V不支持在虚拟机的客户操作系统中模拟IOMMU。但是,Hyper-V支持一个在Linux内核中具有驱动程序的半虚拟化PCIe根控制器。该驱动程序利用Hyper-V监视程序来配置主机IOMMU,以便为诸如AIC100之类的设备提供MSI。

  AIC100需要对Linux内核中的Hyper-V PCIe根控制器驱动程序进行以下修复以正常运行:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?h=v5.19-rc7&id=08e61e861a0e47e5e1a3fb78406afd6b0cea6b6d
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?h=v5.19-rc7&id=455880dfe292a2bdd3b4ad6a107299fce610e64b
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?h=v5.19-rc7&id=b4b77778ecc5bfbd4e77de1b2fd5c1dd3c655f1f
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?h=v5.19-rc7&id=a2bad844a67b1c7740bda63e87453baf63c3a7f7
  请咨询您的Linux发行版提供商,确认这些修复是否包含在您的Linux发行版所使用的Linux内核中。

  创建Hyper-V虚拟机后,必须将AIC100设备分配给该虚拟机。Hyper-V将此称为直接设备分配(DDA),与PCIe直通相同。

  将AIC100设备分配给Hyper-V虚拟机的步骤如下:
   配置虚拟机停止操作。
   在Windows中禁用设备。
   从Windows卸载设备。
  有关这些步骤的详细信息,请参阅以下DDA资源:
   https://docs.microsoft.com/en-us/windows-server/virtualization/hyper-v/deploy/deploying-graphics-devices-using-dda
   https://docs.microsoft.com/en-us/windows-server/virtualization/hyper-v/deploy/deploying-storage-devices-using-dda
  要识别要禁用和卸载的AIC100设备,请查找具有以下内容的“硬件ID”属性的设备:
PCI\VEN_17CB&DEV_A100&SUBSYS_A10017CB&REV_00
  一旦将AIC100设备分配给虚拟机,下次启动虚拟机时,它应该出现在虚拟机的lspci输出中。它的PCIE SBDF地址将与主机不同。安装AIC100软件的方式与在原生系统上操作时相同。

  • 16
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值