shithub: gpufswip

ref: be5e9cb1476400d19ad4eb8f66cb26c92a222aff
dir: /slides/slides.ms/

View raw version
.TL
.rs
.sp |3i
GPU Filesystem for Plan 9
.LP
.ce 100
Joel Fridolin Meyer
.CW \s-3joel@sirjofri.de\s0
.ce 0
.bp
.
.ds CF "GPUFS – Joel Fridolin Meyer
.ds RF "IWP9 2024
.
.TL
What is a GPU?
.DS
.PS <what.p
.PE
.DE
.IP •
Separate ``Computer''
.IP •
Single Instruction, Multiple Data
.bp
.
.TL
Application Architecture
.DS
.PS <arch.p
.PE
.DE
.IP •
Resource Abstraction
.IP •
9P Performance
.IP •
Scalability on the application level
.bp
.
.TL
Inspired by Vulkan
.IP •
Lowlevel API
.IP •
Abstract and cross-platform
.IP •
Shaders and Buffers
.bp
.
.TL
Inspired by Vulkan
.IP •
Lowlevel API
.IP •
Abstract and cross-platform
.IP •
Shaders and Buffers
.DS
.PS <comp.p
.PE
.DE
.bp
.
.TL
Filesystem Interface
.DS
.PS
down
move 2
box "\fB\s+3Work in progress!\s0\fR" wid 4 ht 1.2
.PE
.DE
.bp
.
.TL
Filesystem Interface
.sp .5i
.DS
.ft CW
; echo n b 4  > ctl    # object 0, 4 bytes
; echo n s    > ctl    # object 1
; cp buffer.bin 0/buffer
; cp shader.spv 1/shader
.DE
.sp 1i
.DS
.ft CW
/dev/gpu
	/ctl        \fR\f(CW
	/desc       \fRdescriptor table\f(CW
	/0/ctl      \fRobject 0 ctl file\f(CW
	/0/buffer   \fRbuffer data\f(CW
	/1/ctl      \fRobject 1 ctl file\f(CW
	/1/shader   \fRshader program\f(CW
.DE
.bp
.
.TL
Filesystem Interface
.\" descriptor table
.bp
.
.TL
Implementation
.IP •
Draft Implementation (CPU)
.IP •
Drawterm (GPU, Vulkan SDK)
.IP •
Possible others? (SSE/CPU, network, hardware, …)