SR-IOV 기반 IO 가상화 기술
서버 구성 요구 사항
기본 정의
SR-IOV 기술 표준은 가상 기기 간에 PCIe(Peripheral Component Interconnect Express, 빠른 주변 장치 구성 요소 상호 연결) 장치를 효율적으로 공유할 수 있도록 하고 하드웨어에서 구현되어 본 기기의 성능에 필적할 수 있는 I/O 성능을 얻을 수 있다.SR-IOV 사양은 새 표준을 정의하고 이 표준에 따라 생성된 새 장치는 가상 머신을 입출력 장치에 직접 연결할 수 있도록 합니다.
SRIOV의 기능 유형
물리적 기능(Physical Function, PF)
SR-IOV 기능을 지원하는 PCI 기능(예: SR-IOV 사양)에 정의되어 있습니다.PF에는 SR-IOV 기능을 관리하는 SR-IOV 기능 구조가 포함되어 있습니다.PF는 다른 PCIe 장치처럼 검색, 관리 및 처리할 수 있는 모든 기능을 갖춘 PCIe 기능입니다.PF는 PCIe 장치를 구성하거나 제어할 수 있는 전체 구성 리소스를 보유하고 있습니다.
가상 기능(Virtual Function, VF)
물리적 기능과 관련된 기능VF는 물리적 기능 및 동일한 물리적 기능과 연관된 다른 VF와 하나 이상의 물리적 리소스를 공유할 수 있는 경량급 PCIe 기능입니다.VF는 자체 비헤이비어를 위한 구성 리소스만 사용할 수 있습니다.
기능 소개
각 SR-IOV 장치에는 물리적 기능(Physical Function, PF)이 있으며 PF당 최대 64000개의 가상 기능(Virtual Function, VF)이 있습니다.PF는 레지스터를 통해 VF를 생성할 수 있습니다. 이 레지스터는 이 목적을 위한 속성을 설계합니다.PF에서 SR-IOV가 활성화되어 있으면 PF의 버스, 장치 및 기능 번호(라우팅 ID)를 통해 각 VF의 PCI 구성 공간에 액세스할 수 있습니다.각 VF에는 레지스터 세트를 매핑하는 PCI 메모리 공간이 있습니다.VF 장치 드라이버는 레지스터 세트의 기능을 활성화하고 실제 PCI 장치로 표시합니다.VF를 만들면 IO 게스트 도메인이나 개별 애플리케이션에 직접 지정할 수 있습니다.이 기능을 통해 가상 기능은 물리적 디바이스를 공유하고 CPU 및 Hypervisor 소프트웨어 오버헤드 없이 입출력을 수행할 수 있습니다.
GPU SRIOV
System Requirements
Operating System Requirements
Ubuntu 16.04. has been fully validated as host, other Linux operating system like Centos 7 are also OK.
Hardware Requirements
The device supports VT-d, and the physical graphics card supports SRIOV technology.
Modify the BIOS
we need reset bios to defaults,and enable VT-d and SRIOV function
Kernel preparation
In order to use the graphics cards and all its cores, we’ll have to recompile the Linux Kernel, modifying some values and applying some paches.
Download kernel source
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
vi /etc/apt/sources.list
# deb cdrom:[Ubuntu-Server 16.04.6 LTS _Xenial Xerus_ - Release amd64 (20190226)]/ xenial main restricted
#deb cdrom:[Ubuntu-Server 16.04.6 LTS _Xenial Xerus_ - Release amd64 (20190226)]/ xenial main restricted
# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://us.archive.ubuntu.com/ubuntu/ xenial main restricted
deb-src http://us.archive.ubuntu.com/ubuntu/ xenial main restricted
## Major bug fix updates produced after the final release of the
## distribution.
deb http://us.archive.ubuntu.com/ubuntu/ xenial-updates main restricted
deb-src http://us.archive.ubuntu.com/ubuntu/ xenial-updates main restricted
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://us.archive.ubuntu.com/ubuntu/ xenial universe
deb-src http://us.archive.ubuntu.com/ubuntu/ xenial universe
deb http://us.archive.ubuntu.com/ubuntu/ xenial-updates universe
deb-src http://us.archive.ubuntu.com/ubuntu/ xenial-updates universe
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the sof SR-IOV IO tware. Also, please note that software in
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://us.archive.ubuntu.com/ubuntu/ xenial multiverse
deb-src http://us.archive.ubuntu.com/ubuntu/ xenial multiverse
deb http://us.archive.ubuntu.com/ubuntu/ xenial-updates multiverse
deb-src http://us.archive.ubuntu.com/ubuntu/ xenial-updates multiverse
## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
deb http://us.archive.ubuntu.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://us.archive.ubuntu.com/ubuntu/ xenial-backports main restricted universe multiverse
## Uncomment the following two lines to add software from Canonical's
## 'partner' repository.
## This software is not part of Ubuntu, but is offered by Canonical and the
## respective vendors as a service to Ubuntu users.
# deb http://archive.canonical.com/ubuntu xenial partner
deb-src http://archive.canonical.com/ubuntu xenial partner
deb http://security.ubuntu.com/ubuntu xenial-security main restricted
deb-src http://security.ubuntu.com/ubuntu xenial-security main restricted
deb http://security.ubuntu.com/ubuntu xenial-security universe
deb-src http://security.ubuntu.com/ubuntu xenial-security universe
deb http://security.ubuntu.com/ubuntu xenial-security multiverse
deb-src http://security.ubuntu.com/ubuntu xenial-security multiverse
apt update && apt upgrade -y
apt install -y dpkg-devapt source linux-image-$(uname -r)
Download gim modules
git clone https://github.com/GPUOpen-LibrariesAndSDKs/MxGPU-Virtualization
Patch the kernel
The patch is located in the SRC_DIR/MxGPU-Virtualization/patch directory.
1
2
3
4
5
6
cd linux-4.4.0 && make oldconfig && make menuconfig
patch < ../MxGPU-Virtualization/patch/0001-Added-legacy-endpoint-type-to-sriov-for-ubuntu-4.4.0-75-generic.diff
File to patch: ./drivers/pci/iov.c
patch < ../MxGPU-Virtualization/patch/0002-add-pci-io-access-cap-for-ubuntu-4.4.0-75-generic.diff
File to patch: ./drivers/vfio/pci/vfio_pci_config.c
Kernel compilation
make -j deb-pkg LOCALVERSION=-vm-firepro
Kernel installation
1
2
cd ..
dpkg -i *.deb
GRUB and BLACKLIST preparation
GRUB
1
2
3
4
5
6
7
8
vim /etc/default/grub
---
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash intel_iommu=on"
---
Check if IOMMU is supported after rebooting the system.
Command is as follows:
dmesg | grep -e DMAR -e IOMMU
You should be able to see something like the following:DMAR: IOMMU enabled
Blacklist amdgpu and amdkfd
adding the following line to the end of file
1
2
3
4
5
vi /etc/modprobe.d/blacklist.conf
---
blacklist amdgpu
blacklist amdkfd
---
gim module compilation
Compile gim module
cd MxGPU-Virtualization && make && make install
Use gim module
1
2
3
4
5
6
7
8
9
10
11
modprobe gim
modprobe -r gim
vi /etc/gim_config
----
...
vf_num=16 # This is going to activate the 16 cores of the GPU
...
----
modprobe gim
dmesg # Finally, we need to check that the gim module has successfully been loaded, without errors
lspci -vvv # We can now see that the FirePro S7150 has all the 16 cores activated
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.