目前OpenStack對於GPU的支援作法
- PCI passthrough
– Nova VM-based compute (e.g. Libvirt+KVM) with PCI passthrough - Ironic
– 透過ironic設定含有GPU的compute node - CPU pinning、NUMA
- vGPU
- RDMA(Remote Direct Memory Access)
– 透過一台主機上的網路卡API存取到另一台主機上的記憶體之技術
vGPU
目前若cpu有支援intel GVT-g,就可以支援全虛擬化的vGPU, 雖然效能略低於PCI passthrough,但可以多個VM間做sharing (up to 15)
[vGPU的啟動方法]
Nova
1. 於nova-compute啟動GPU type
[devices] enabled_vgpu_types = nvidia-352. 於nova controller設定flavor
Configure a flavor to request one virtual GPU:
$ openstack flavor set vgpu_1 --property "resources:VGPU=1"
RDMA(Remote Direct Memory Access)
GPU on K8S
- 於K8S 1.10開始支援nv-docker
- 一個pod會吃滿一張GPU卡,無法切分
[參考資源]
- https://wiki.openstack.org/wiki/GPUs
- https://gist.github.com/claudiok/890ab6dfe76fa45b30081e58038a9215
- https://specs.openstack.org/openstack/nova-specs/specs/queens/approved/virt-add-support-for-vgpu.html
- https://www.openstack.org/assets/presentation-media/Enable-GPU-virtualization-in-OpenStack.pdf
沒有留言:
張貼留言