ref: 827a7860e70981a90f7dd13e22bdc996fc8c7ff9
parent: cc154c9919ad386799b1f759ec0c0e62187ab377
author: sirjofri <sirjofri@sirjofri.de>
date: Wed Apr 10 17:11:57 EDT 2024
adds slides
--- /dev/null
+++ b/slides/arch.p
@@ -1,0 +1,33 @@
+.PS
+right
+{
+ down
+ box "Application" wid 2.2
+ arrow
+ box "Filesystem" wid 2
+ arrow
+ box "Driver" wid 1.2
+ arrow
+ H: box dashed "Hardware" wid 1.5
+}
+move 3
+A: {
+ down
+ box "Application" wid 2.2
+ arrow
+ box "Filesystem" wid 2
+ arrow
+ box dashed "Virtual Machine" wid 2.5
+}
+move 3
+B: {
+ down
+ box "Application" wid 2.2
+ arrow
+ box "Filesystem" wid 2
+ arrow
+ box dashed "Network" wid 2
+}
+P: box invis at 0.5 <A, B>
+box invis "\s+3…\s0" at P.x, H.y
+.PE
--- /dev/null
+++ b/slides/comp.p
@@ -1,0 +1,15 @@
+.PS
+{
+ right
+ FS: box "GPU" "\s-2Filesystem\s0" wid 2 ht 2
+ move 2
+ GPU: box "GPU" wid 2 ht 2
+}
+[ "Shader " rjust; arrow ] with .e at 0.5 <FS.w, FS.nw>
+[ "Buffer " rjust; arrow ] with .e at 0.5 <FS.w, FS.sw>
+arrow from .5<FS.e, FS.ne> to .5<GPU.w, GPU.nw> "\s-4compile\s0" "\s-4upload\s0"
+line <-> from .5<FS.e, FS.se> to .5<GPU.w, GPU.sw> "\s-4upload\s0" "\s-4download\s0"
+spline <-> from .5<GPU.e, GPU.ne> right 1 then down 1 then to .5<GPU.e, GPU.se>
+right
+[ move 2; " execute" ljust ] at GPU.e
+.PE
--- /dev/null
+++ b/slides/mkfile
@@ -1,0 +1,4 @@
+PICS=`{ls *.p}
+
+slides.pdf: tmac slides.ms $PICS
+ cat tmac slides.ms | pic | troff -ms | lp -dstdout | ps2pdf -g1024x768 -r80x80 >$target
--- /dev/null
+++ b/slides/slides.ms
@@ -1,0 +1,111 @@
+.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, …)
--- /dev/null
+++ b/slides/tmac
@@ -1,0 +1,31 @@
+.de TL \" title for slide
+.SH
+.ie '\\$1'l' \v'1v'\h'-2i'\D'l4i 0i'\v'-1v'
+.ce 1
+..
+.de BT
+.nr PX \\n(.s
+.nr PF \\n(.f
+.ft 1
+.ps \\n(PS
+'lt \\n(LTu
+.po \\n(POu
+.tl \(ts\h'-2i'\D'l14i 0'\(ts
+.if \\n%>0 .tl \(ts\\*(LF\(ts\\*(CF\(ts\\*(RF\(ts
+.ft \\n(PF
+.ps \\n(PX
+..
+.
+.pl 9i \" page length
+.nr PO 1i \" page offset
+.nr LL 10.7i \" line length
+.ta 0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i
+.nf
+.nr PS 20
+.nr VS 30
+.ds CH "
+.fp 1 R LucidaSans
+.fp 2 I LucidaSansI
+.fp 3 B LucidaSansB
+.fp 4 CW LucidaCW
+.ft R
--- /dev/null
+++ b/slides/what.p
@@ -1,0 +1,7 @@
+.PS
+CPU: box "CPU"
+line <->
+GPU: box "GPU"
+arrow from CPU.s down
+box "\s-5Coprocessors\s0" "\s-5(e. g. FPU)\s0" wid 1.5 ht 1.1
+.PE