trillium: the code is the irhyu/talk/virt19-07-18-slides.pdf · svga2: tgsi as ir and visa native...
TRANSCRIPT
![Page 1: Trillium: The Code is the IRhyu/talk/virt19-07-18-slides.pdf · SVGA2: TGSI as IR and vISA Native stack Hypervisor Vendor Library Vendor Driver GPU VM Application Translator OpenGL/DX11](https://reader033.vdocuments.us/reader033/viewer/2022061003/60b1b1bd7a3922012c117311/html5/thumbnails/1.jpg)
Trillium: The Code is the IR
Amogh Akshintala, Hangchen Yu,
Arthur M. Peters, Christopher J. Rossbach
![Page 2: Trillium: The Code is the IRhyu/talk/virt19-07-18-slides.pdf · SVGA2: TGSI as IR and vISA Native stack Hypervisor Vendor Library Vendor Driver GPU VM Application Translator OpenGL/DX11](https://reader033.vdocuments.us/reader033/viewer/2022061003/60b1b1bd7a3922012c117311/html5/thumbnails/2.jpg)
#2A. Akshintala, H. Yu, A. M. Peters and C. J. Rossbach, Trillium, Virt’19
GPGPU Virtualization
End-to-end comparison of prior approaches
Lessons learnt:
● Virtual ISA unnecessary
● Para-virtual API remoting only feasible option
Brief Overview
![Page 3: Trillium: The Code is the IRhyu/talk/virt19-07-18-slides.pdf · SVGA2: TGSI as IR and vISA Native stack Hypervisor Vendor Library Vendor Driver GPU VM Application Translator OpenGL/DX11](https://reader033.vdocuments.us/reader033/viewer/2022061003/60b1b1bd7a3922012c117311/html5/thumbnails/3.jpg)
#3A. Akshintala, H. Yu, A. M. Peters and C. J. Rossbach, Trillium, Virt’19
General purpose computing on GPUs
↑↑↑
GPUCPU
Performance Gain
Scientific Computing
Machine Learning
![Page 4: Trillium: The Code is the IRhyu/talk/virt19-07-18-slides.pdf · SVGA2: TGSI as IR and vISA Native stack Hypervisor Vendor Library Vendor Driver GPU VM Application Translator OpenGL/DX11](https://reader033.vdocuments.us/reader033/viewer/2022061003/60b1b1bd7a3922012c117311/html5/thumbnails/4.jpg)
#4A. Akshintala, H. Yu, A. M. Peters and C. J. Rossbach, Trillium, Virt’19
The need to virtualize GPUsP
erf
orm
ance
Cost
P3.2xlarge1x V100, $2,200/mo
P2.xlarge
1x K80, $650/mo
g3s.xlarge1x M60, $540/mo
Credits to BitFusion Inc.
![Page 5: Trillium: The Code is the IRhyu/talk/virt19-07-18-slides.pdf · SVGA2: TGSI as IR and vISA Native stack Hypervisor Vendor Library Vendor Driver GPU VM Application Translator OpenGL/DX11](https://reader033.vdocuments.us/reader033/viewer/2022061003/60b1b1bd7a3922012c117311/html5/thumbnails/5.jpg)
#5A. Akshintala, H. Yu, A. M. Peters and C. J. Rossbach, Trillium, Virt’19
The need to virtualize GPUsP
erf
orm
ance
Cost
P3.2xlarge1x V100, $2,200/mo
P2.xlarge
1x K80, $650/mo
g3s.xlarge1x M60, $540/mo
Virtual V1000.75x V100, $1,500
Virtual V1000.5x V100, $1,000
Credits to BitFusion Inc.
![Page 6: Trillium: The Code is the IRhyu/talk/virt19-07-18-slides.pdf · SVGA2: TGSI as IR and vISA Native stack Hypervisor Vendor Library Vendor Driver GPU VM Application Translator OpenGL/DX11](https://reader033.vdocuments.us/reader033/viewer/2022061003/60b1b1bd7a3922012c117311/html5/thumbnails/6.jpg)
#6A. Akshintala, H. Yu, A. M. Peters and C. J. Rossbach, Trillium, Virt’19
Existing techniques are impractical
Sharing Interposition Isolation Compatibility Slowdown
Pass Through ❌ 1x
Full-virtualization
Everybody sacrifices somethingUser-mode API Remoting
Para-virtualization
![Page 7: Trillium: The Code is the IRhyu/talk/virt19-07-18-slides.pdf · SVGA2: TGSI as IR and vISA Native stack Hypervisor Vendor Library Vendor Driver GPU VM Application Translator OpenGL/DX11](https://reader033.vdocuments.us/reader033/viewer/2022061003/60b1b1bd7a3922012c117311/html5/thumbnails/7.jpg)
#8A. Akshintala, H. Yu, A. M. Peters and C. J. Rossbach, Trillium, Virt’19
Hypervisor
Virtual GPU
Full-virtualization
Native stack
Vendor Library
Vendor Driver
GPU
VM
Application
Vendor Library
Vendor Driver
Sharing Interposition Isolation Compatibility Slowdown
✔️ ✔️ ✔️ ❌ 100x
![Page 8: Trillium: The Code is the IRhyu/talk/virt19-07-18-slides.pdf · SVGA2: TGSI as IR and vISA Native stack Hypervisor Vendor Library Vendor Driver GPU VM Application Translator OpenGL/DX11](https://reader033.vdocuments.us/reader033/viewer/2022061003/60b1b1bd7a3922012c117311/html5/thumbnails/8.jpg)
#11A. Akshintala, H. Yu, A. M. Peters and C. J. Rossbach, Trillium, Virt’19
User-mode API Remoting
Native stack
Hypervisor
Custom API Server
Vendor Library
Vendor Driver
GPU
VM
Application
Custom User-mode Library
Sharing Interposition Isolation Compatibility Slowdown
✔️ ❌ ✔️/❌ ❌ 1.5x
![Page 9: Trillium: The Code is the IRhyu/talk/virt19-07-18-slides.pdf · SVGA2: TGSI as IR and vISA Native stack Hypervisor Vendor Library Vendor Driver GPU VM Application Translator OpenGL/DX11](https://reader033.vdocuments.us/reader033/viewer/2022061003/60b1b1bd7a3922012c117311/html5/thumbnails/9.jpg)
#13A. Akshintala, H. Yu, A. M. Peters and C. J. Rossbach, Trillium, Virt’19
Para-virtualization
Native stack
Hypervisor
Vendor Library
Vendor Driver
GPU
VM
Application
Custom User-mode Library
Interface Translator
Custom Guest Driver
Custom Virtual GPU
Sharing Interposition Isolation Compatibility Slowdown
✔️ ✔️ ✔️ ❌ 10x
![Page 10: Trillium: The Code is the IRhyu/talk/virt19-07-18-slides.pdf · SVGA2: TGSI as IR and vISA Native stack Hypervisor Vendor Library Vendor Driver GPU VM Application Translator OpenGL/DX11](https://reader033.vdocuments.us/reader033/viewer/2022061003/60b1b1bd7a3922012c117311/html5/thumbnails/10.jpg)
#18A. Akshintala, H. Yu, A. M. Peters and C. J. Rossbach, Trillium, Virt’19
End-to-end performance comparison
Y. Suzuki, S. Kato, H. Yamada, K. Kono, “GPUvm: Why Not Virtualizing GPUs at the Hypervisor?”, ATC’14
![Page 11: Trillium: The Code is the IRhyu/talk/virt19-07-18-slides.pdf · SVGA2: TGSI as IR and vISA Native stack Hypervisor Vendor Library Vendor Driver GPU VM Application Translator OpenGL/DX11](https://reader033.vdocuments.us/reader033/viewer/2022061003/60b1b1bd7a3922012c117311/html5/thumbnails/11.jpg)
#19A. Akshintala, H. Yu, A. M. Peters and C. J. Rossbach, Trillium, Virt’19
More details in the paper...
![Page 12: Trillium: The Code is the IRhyu/talk/virt19-07-18-slides.pdf · SVGA2: TGSI as IR and vISA Native stack Hypervisor Vendor Library Vendor Driver GPU VM Application Translator OpenGL/DX11](https://reader033.vdocuments.us/reader033/viewer/2022061003/60b1b1bd7a3922012c117311/html5/thumbnails/12.jpg)
#20A. Akshintala, H. Yu, A. M. Peters and C. J. Rossbach, Trillium, Virt’19
Everybody sacrifices something
Sharing Interposition Isolation Compatibility Slowdown
Full-virtualization ✔️ ✔️ ✔️ ❌ 100x
User-mode API Remoting ✔️ ❌ ✔️/❌ ❌ 1.5x
Para-virtualization ✔️ ✔️ ✔️ ❌ 10x
![Page 13: Trillium: The Code is the IRhyu/talk/virt19-07-18-slides.pdf · SVGA2: TGSI as IR and vISA Native stack Hypervisor Vendor Library Vendor Driver GPU VM Application Translator OpenGL/DX11](https://reader033.vdocuments.us/reader033/viewer/2022061003/60b1b1bd7a3922012c117311/html5/thumbnails/13.jpg)
#22A. Akshintala, H. Yu, A. M. Peters and C. J. Rossbach, Trillium, Virt’19
Para-virtual API-remoting...
Sharing Interposition Isolation Compatibility Slowdown
Full-virtualization ✔️ ✔️ ✔️ ❌ 100x
User-mode API Remoting ✔️ ❌ ✔️/❌ ❌ 1.5x
Para-virtualization ✔️ ✔️ ✔️ ❌ 10x
Para-virtual API remoting ✔️ ✔️ ✔️ 1.5x
![Page 14: Trillium: The Code is the IRhyu/talk/virt19-07-18-slides.pdf · SVGA2: TGSI as IR and vISA Native stack Hypervisor Vendor Library Vendor Driver GPU VM Application Translator OpenGL/DX11](https://reader033.vdocuments.us/reader033/viewer/2022061003/60b1b1bd7a3922012c117311/html5/thumbnails/14.jpg)
#26A. Akshintala, H. Yu, A. M. Peters and C. J. Rossbach, Trillium, Virt’19
SVGA2: TGSI as IR and vISA
Native stack
Hypervisor
Vendor Library
Vendor Driver
GPU
VMApplication
Translator
OpenGL/DX11 Libraries
vmwgfx.ko
SVGA Device
TGSI, Tungsten Graphics Shader Infrastructure, is an intermediate language for describing shaders.
GLSL Code
TGSI
Native ISA
![Page 15: Trillium: The Code is the IRhyu/talk/virt19-07-18-slides.pdf · SVGA2: TGSI as IR and vISA Native stack Hypervisor Vendor Library Vendor Driver GPU VM Application Translator OpenGL/DX11](https://reader033.vdocuments.us/reader033/viewer/2022061003/60b1b1bd7a3922012c117311/html5/thumbnails/15.jpg)
#31A. Akshintala, H. Yu, A. M. Peters and C. J. Rossbach, Trillium, Virt’19
Xen-SVGA: computing support
Native stack
Hypervisor
Vendor Library
GPU
VMApplication
Mesa3D OpenCL Library
Nouveau
OpenCL Code
TGSI
Native ISA
TGSI LLVM Compiler
Nouveau
TGSI
Xen-SVGA Device
![Page 16: Trillium: The Code is the IRhyu/talk/virt19-07-18-slides.pdf · SVGA2: TGSI as IR and vISA Native stack Hypervisor Vendor Library Vendor Driver GPU VM Application Translator OpenGL/DX11](https://reader033.vdocuments.us/reader033/viewer/2022061003/60b1b1bd7a3922012c117311/html5/thumbnails/16.jpg)
#32A. Akshintala, H. Yu, A. M. Peters and C. J. Rossbach, Trillium, Virt’19
Xen-SVGA: computing support
Native stack
Hypervisor
Vendor Library
GPU
VMApplication
Mesa3D OpenCL Library
Nouveau
OpenCL Code
TGSI
Native ISA
TGSI LLVM Compiler
Nouveau
TGSI
Xen-SVGA Device
![Page 17: Trillium: The Code is the IRhyu/talk/virt19-07-18-slides.pdf · SVGA2: TGSI as IR and vISA Native stack Hypervisor Vendor Library Vendor Driver GPU VM Application Translator OpenGL/DX11](https://reader033.vdocuments.us/reader033/viewer/2022061003/60b1b1bd7a3922012c117311/html5/thumbnails/17.jpg)
#33A. Akshintala, H. Yu, A. M. Peters and C. J. Rossbach, Trillium, Virt’19
vISA - Boon or bane?
PTX, a low-level parallel thread execution virtual machine and instruction set architecture (ISA).
![Page 18: Trillium: The Code is the IRhyu/talk/virt19-07-18-slides.pdf · SVGA2: TGSI as IR and vISA Native stack Hypervisor Vendor Library Vendor Driver GPU VM Application Translator OpenGL/DX11](https://reader033.vdocuments.us/reader033/viewer/2022061003/60b1b1bd7a3922012c117311/html5/thumbnails/18.jpg)
#37A. Akshintala, H. Yu, A. M. Peters and C. J. Rossbach, Trillium, Virt’19
Trillium: Eliminates vISA
Native stack
Hypervisor
Vendor Library
Nouveau
GPU
VMApplication
Mesa3D OpenCL Library
Nouveau
OpenCL Code
Native ISA
Trillium Device
![Page 19: Trillium: The Code is the IRhyu/talk/virt19-07-18-slides.pdf · SVGA2: TGSI as IR and vISA Native stack Hypervisor Vendor Library Vendor Driver GPU VM Application Translator OpenGL/DX11](https://reader033.vdocuments.us/reader033/viewer/2022061003/60b1b1bd7a3922012c117311/html5/thumbnails/19.jpg)
#39A. Akshintala, H. Yu, A. M. Peters and C. J. Rossbach, Trillium, Virt’19
So are we done?
![Page 20: Trillium: The Code is the IRhyu/talk/virt19-07-18-slides.pdf · SVGA2: TGSI as IR and vISA Native stack Hypervisor Vendor Library Vendor Driver GPU VM Application Translator OpenGL/DX11](https://reader033.vdocuments.us/reader033/viewer/2022061003/60b1b1bd7a3922012c117311/html5/thumbnails/20.jpg)
#40A. Akshintala, H. Yu, A. M. Peters and C. J. Rossbach, Trillium, Virt’19
Checkpoint
✓ Virtual ISA is unnecessary
✓ Para-virtual API remoting system performs better
Sharing Interposition Isolation Compatibility Slowdown
User-mode API Remoting ✔️ ❌ ✔️/❌ ❌ 1.5x
Para-virtualization ✔️ ✔️ ✔️ ❌ 10x
Trillium ✔️ ✔️ ✔️ ❌ 2.4x
![Page 21: Trillium: The Code is the IRhyu/talk/virt19-07-18-slides.pdf · SVGA2: TGSI as IR and vISA Native stack Hypervisor Vendor Library Vendor Driver GPU VM Application Translator OpenGL/DX11](https://reader033.vdocuments.us/reader033/viewer/2022061003/60b1b1bd7a3922012c117311/html5/thumbnails/21.jpg)
#41A. Akshintala, H. Yu, A. M. Peters and C. J. Rossbach, Trillium, Virt’19
Para-virtual API-remoting...
Sharing Interposition Isolation Compatibility Slowdown
User-mode API Remoting ✔️ ❌ ✔️/❌ ❌ 1.5x
Para-virtualization ✔️ ✔️ ✔️ ❌ 1-10x
Trillium ✔️ ✔️ ✔️ ❌ 2.4x
✕ Interposing too low in the stack
✕ API-specific
![Page 22: Trillium: The Code is the IRhyu/talk/virt19-07-18-slides.pdf · SVGA2: TGSI as IR and vISA Native stack Hypervisor Vendor Library Vendor Driver GPU VM Application Translator OpenGL/DX11](https://reader033.vdocuments.us/reader033/viewer/2022061003/60b1b1bd7a3922012c117311/html5/thumbnails/22.jpg)
#42A. Akshintala, H. Yu, A. M. Peters and C. J. Rossbach, Trillium, Virt’19
Para-virtual API-remoting...
Sharing Interposition Isolation Compatibility Slowdown
User-mode API Remoting ✔️ ❌ ✔️/❌ ❌ 1.5x
Para-virtualization ✔️ ✔️ ✔️ ❌ 1-10x
Trillium ✔️ ✔️ ✔️ ❌ 2.4x
AvA ✔️ ✔️ ✔️ ✔️ <1.5x
✕ Interposing too low in the stack
✕ API-specific
![Page 23: Trillium: The Code is the IRhyu/talk/virt19-07-18-slides.pdf · SVGA2: TGSI as IR and vISA Native stack Hypervisor Vendor Library Vendor Driver GPU VM Application Translator OpenGL/DX11](https://reader033.vdocuments.us/reader033/viewer/2022061003/60b1b1bd7a3922012c117311/html5/thumbnails/23.jpg)
#45A. Akshintala, H. Yu, A. M. Peters and C. J. Rossbach, Trillium, Virt’19
Para-virtual
API Stack
Native stack
Automatic virtualization of acceleratorsC
L.h
+ A
nn
ota
tio
ns
Hypervisor
Generated API Server
Vendor Library
Vendor Driver
Accelerators
VMApplication
AvA Guest Driver
AvA Virtual Device
H. Yu, A. M. Peters, A. Akshintala, C. J. Rossbach, Automatic Virtualization of Accelerators, HotOS’19
Generated User-mode Library
![Page 24: Trillium: The Code is the IRhyu/talk/virt19-07-18-slides.pdf · SVGA2: TGSI as IR and vISA Native stack Hypervisor Vendor Library Vendor Driver GPU VM Application Translator OpenGL/DX11](https://reader033.vdocuments.us/reader033/viewer/2022061003/60b1b1bd7a3922012c117311/html5/thumbnails/24.jpg)
#46A. Akshintala, H. Yu, A. M. Peters and C. J. Rossbach, Trillium, Virt’19
Preliminary development effort
Type APIs LoC Time Difficulty
GPUvm Full-virt 1 20 000 Years ★★★★
SVGA2 Para-virt 2 MANY! Years ★★★★
AvA
Automatic
Para-virtual
API Remoting
9 OpenCL: 835 Days ★
![Page 25: Trillium: The Code is the IRhyu/talk/virt19-07-18-slides.pdf · SVGA2: TGSI as IR and vISA Native stack Hypervisor Vendor Library Vendor Driver GPU VM Application Translator OpenGL/DX11](https://reader033.vdocuments.us/reader033/viewer/2022061003/60b1b1bd7a3922012c117311/html5/thumbnails/25.jpg)
#47A. Akshintala, H. Yu, A. M. Peters and C. J. Rossbach, Trillium, Virt’19
Conclusion
Lessons
● Virtual ISA is unnecessary○ Decouple device virtualization from GPU ISA virtualization
● Para-virtual API remoting can lead to better performance and properties
New para-virtual API remoting system: AvA
● “No IR” enables interposition at user-mode APIs
● Compatibility is compensated