mhtirogla
Home
Systems
API
Pricing
About
Log in
← Back
Home
›
Systems
›
Operating systems and runtimes
gpu-driver
GPU driver stack
Mesa
System
Techniques · 5
Primitives · 26
gpu-driver
Instruction scheduling
compilers · medium: List scheduling over dependence DAGs with latency models; software pipelining of loops
Instruction selection
compilers · medium: Cover the IR with target instruction patterns at least cost; greedy maximal munch is simple, dynamic programming over a tree or DAG is optimal.
›
Register allocation
compilers · medium: Map unlimited virtual registers onto a few machine registers, spilling the rest to the stack; linear scan is fast, graph coloring and splitting allocators give better code.
›
Dataflow analysis
compilers · medium: Compute a fact per program point (live variables, reaching definitions, available expressions) by iterating transfer functions over the CFG to a fixed point.
›
Graph coloring
graphs · medium: Greedy/DSatur colouring for conflict-free assignment such as radio channels
SSA form
compilers · low: Give every variable exactly one definition, merging at joins with phi functions; def-use becomes explicit and optimizations turn sparse and cheap.
›
Shared memory ipc
concurrency · low: Shared memory rings and futex signalling between processes
SPSC ring buffer
data-structures · low: Bounded wait-free queue for exactly one producer and one consumer thread, built from an array and two indices with acquire/release ordering.
›
Display scanout modesetting
graphics · low: KMS: CRTCs, planes, atomic commits, page flips, vblank events and direct scanout
GPU command buffers
graphics · low: Record GPU work as a flat list of commands on the CPU, submit it in batches, and reuse its memory through a ring of frames in flight guarded by fences.
›
Gpu synchronization fences
graphics · low: Fences, timeline semaphores and sync files between GPU queues, CPU and processes
Pipeline state caching
graphics · low: Cache compiled shader pipelines across runs, precompile permutations, avoid hitches
Texture tiling swizzling
graphics · low: Tiled and swizzled GPU image layouts and address computation
DMA and IOMMU
hardware-os · low: How devices move data by direct memory access, and how an IOMMU gives each device its own address space, faults on stray accesses and lets user space or guests own a device safely.
›
Gpu priority preemption
hardware-os · low: GPU context priorities and compute or graphics preemption granularity for latency-critical work
Interrupt handling
hardware-os · low: How a device signal reaches a CPU handler through an interrupt controller and vector table, and how top/bottom halves, polling switch-over and coalescing keep load bounded.
›
System call interface
hardware-os · low: The controlled gate between user code and the kernel: number and arguments in registers, a trap instruction, a validated handler, a result or error code.
›
Buddy allocator
systems · low: Power-of-two block splitting and coalescing; base of kernel page and GPU heap allocators
d-ary heap
data-structures · low: Array heap with d children per node (d = 4 typical): half the binary heap's depth, siblings in one cache line, faster priority queues.
›
Topological sort
graphs · low: Order the vertices of a DAG so every edge points forward; the core of build systems, schedulers and dependency resolution, with cycle detection for free.
›
Instruction pipelining
hardware-os · low: Pipeline stages, hazards, forwarding and stalls in CPU cores
+ 10 more primitives
System
Techniques · 5
Primitives · 26
gpu-driver
Instruction scheduling
compilers · medium: List scheduling over dependence DAGs with latency models; software pipelining of loops
Instruction selection
compilers · medium: Cover the IR with target instruction patterns at least cost; greedy maximal munch is simple, dynamic programming over a tree or DAG is optimal.
›
Register allocation
compilers · medium: Map unlimited virtual registers onto a few machine registers, spilling the rest to the stack; linear scan is fast, graph coloring and splitting allocators give better code.
›
Dataflow analysis
compilers · medium: Compute a fact per program point (live variables, reaching definitions, available expressions) by iterating transfer functions over the CFG to a fixed point.
›
Graph coloring
graphs · medium: Greedy/DSatur colouring for conflict-free assignment such as radio channels
SSA form
compilers · low: Give every variable exactly one definition, merging at joins with phi functions; def-use becomes explicit and optimizations turn sparse and cheap.
›
Shared memory ipc
concurrency · low: Shared memory rings and futex signalling between processes
SPSC ring buffer
data-structures · low: Bounded wait-free queue for exactly one producer and one consumer thread, built from an array and two indices with acquire/release ordering.
›
Display scanout modesetting
graphics · low: KMS: CRTCs, planes, atomic commits, page flips, vblank events and direct scanout
GPU command buffers
graphics · low: Record GPU work as a flat list of commands on the CPU, submit it in batches, and reuse its memory through a ring of frames in flight guarded by fences.
›
Gpu synchronization fences
graphics · low: Fences, timeline semaphores and sync files between GPU queues, CPU and processes
Pipeline state caching
graphics · low: Cache compiled shader pipelines across runs, precompile permutations, avoid hitches
Texture tiling swizzling
graphics · low: Tiled and swizzled GPU image layouts and address computation
DMA and IOMMU
hardware-os · low: How devices move data by direct memory access, and how an IOMMU gives each device its own address space, faults on stray accesses and lets user space or guests own a device safely.
›
Gpu priority preemption
hardware-os · low: GPU context priorities and compute or graphics preemption granularity for latency-critical work
Interrupt handling
hardware-os · low: How a device signal reaches a CPU handler through an interrupt controller and vector table, and how top/bottom halves, polling switch-over and coalescing keep load bounded.
›
System call interface
hardware-os · low: The controlled gate between user code and the kernel: number and arguments in registers, a trap instruction, a validated handler, a result or error code.
›
Buddy allocator
systems · low: Power-of-two block splitting and coalescing; base of kernel page and GPU heap allocators
d-ary heap
data-structures · low: Array heap with d children per node (d = 4 typical): half the binary heap's depth, siblings in one cache line, faster priority queues.
›
Topological sort
graphs · low: Order the vertices of a DAG so every edge points forward; the core of build systems, schedulers and dependency resolution, with cycle detection for free.
›
Instruction pipelining
hardware-os · low: Pipeline stages, hazards, forwarding and stalls in CPU cores
Machine code emission
compilers · low: Encode instructions to bytes for x86-64 and AArch64, branch relaxation, constant pools
Tree pattern matching
compilers · low: Matching AST patterns with metavariables
Interval tree
data-structures · low: Index of ranges that answers "which intervals overlap this point or range?" in O(log n + k); static sorted-array form is the compact, cache-friendly choice.
›
Control-flow graph
compilers · low: Split a linear instruction list into basic blocks and connect them by jumps; the graph every optimizer, SSA builder and dataflow pass walks.
›
BFS and DFS
graphs · low: The two basic graph traversals; BFS gives hop distances and levels, DFS gives discovery/finish order for cycles, components and topological order.
›
Dominator tree
compilers · low: Dominators via Lengauer-Tarjan or Cooper-Harvey-Kennedy; dominance frontiers for SSA
False sharing
concurrency · low: Independent variables written by different cores on one cache line force the line to bounce between cores; pad or regroup hot data to fix it.
›
Memory ordering
concurrency · low: What Relaxed, Acquire, Release and SeqCst atomics actually guarantee, what they cost on x86 and ARM, and which one each pattern needs.
›
CPU caches and the memory hierarchy
hardware-os · low: Sizes, line widths and latencies of L1/L2/L3/DRAM on modern x86 and Apple M-series, and the data-layout rules that follow from them.
›
Sparse matrices (CSR)
numerics · low: Compressed sparse row stores only nonzeros as row pointers, column indices and values; SpMV streams them once, so it is memory-bandwidth bound.
›
Copy for AI
Similar systems
Share the most building blocks with this one.
cuda-platform
39 %
shader-compiler
20 %
compat-layer
16 %
vr-runtime
15 %