Das Dokument enthält weitreichende Planungen für fortgeschrittene Versionen von FastGPU, die über den grundlegenden Compute-Dispatch hinausgehen.
Ab v0.4 geht es in Richtung High-End GPU-Scheduling mit null CPU-Overhead.
Operationen blockieren die CPU nicht, sondern reihen sich in einen Queue-Stream ein (vergleichbar mit CUDA Streams, aber Vulkan-basiert).
- GPU Events / Timeline Semaphores regeln die Synchronisation.
- Multi-Queue Scheduling: Compute und Transfer laufen parallel.
Ein Command Graph baut eine feste Pipeline von Kernels auf.
- Prinzip: Einmal aufbauen -> beliebig oft dispatchen.
- Ergebnis: 0 CPU-Overhead beim Aufruf (
exec.run();).
- Pipelines werden gecached und wiederverwendet.
gpu.copy(outA, inB);erlaubt direkte GPU-zu-GPU Kopien ohne den Umweg über die CPU (Zero-Copy).
Die ultimative Version: FastGPU ist nicht mehr nur Vulkan, sondern ein echtes Multi-Backend-System.
Die Java-API bleibt identisch, aber im Hintergrund wird je nach Hardware das beste Backend gewählt:
public enum FastGPUBackend { VULKAN, CUDA, AUTO }
FastGPU gpu = FastGPU.open(FastGPUBackend.AUTO);Vollständige native Implementierung für NVIDIA-Karten:
- NVRTC für On-The-Fly Kompilierung von CUDA-C Code in PTX.
- Driver API für Memory, Module und Kernel-Launch.
FastGPUBufferabstrahiertVulkanBufferundCudaBuffer.- Multi-Backend Graphs: Erlaubt Scheduling und Zero-Copy Transfers zwischen verschiedenen APIs (Vulkan <-> CUDA via Staging).
- Backend-Capabilities: API für Agenten, um zur Laufzeit abzufragen, welche Hardware / APIs verfügbar sind.