cgpu 0.1.0

A tunable GPU compute executor with automatic CPU fallback, byte-based batching, and inline shader generation.
Documentation
pub mod batch;
pub mod budget;
pub mod config;
pub mod error;
pub mod executor;
pub mod fallback;
pub mod job;
pub mod memory;
pub mod planner;
pub mod report;
pub mod resources;
#[cfg(feature = "shader-gen")]
pub mod shader;
#[cfg(feature = "shader-gen")]
pub mod shader_utils;
pub mod telemetry;

pub use batch::{pack_by_bytes, BatchSpan, ByteSized, GpuBatchPlan, WorkItem};
pub use budget::{
    GpuMemoryBudget, DEFAULT_FILL_RATIO, DEFAULT_SAFE_VRAM_BYTES, MAX_FILL_RATIO, MIN_FILL_RATIO,
};
pub use config::{ExecutionMode, ExecutorConfig, ShaderOpt, TelemetrySink};
pub use error::{ExecutionError, ExecutorInitError, GpuError, GpuFailure};
pub use executor::GpuExecutor;
pub use fallback::{run_cpu_fallback, FallbackPolicy};
pub use job::{
    BufferRole, ComputeShader, DispatchSize, EncodedBatch, EncodedBuffer, GpuJob, JobError,
};
#[cfg(feature = "gpu")]
pub use memory::{
    estimate_gpu_memory_availability_from_limits, query_gpu_memory_availability,
    resolve_gpu_memory_availability,
};
pub use memory::{GpuMemoryAvailability, MemoryBudget, GPU_AVAILABLE_BYTES_ENV};
pub use report::{BatchPath, BatchReport, ExecutionPath, JobReport};
#[cfg(feature = "gpu")]
pub use resources::{create_mapped_buffer, create_zeroed_buffer, storage_binding};
pub use resources::{
    read_u32, u32_slice_bytes, BufferLease, BufferPool, BufferUse, ResourceCache, ResourceEntry,
};
#[cfg(feature = "shader-gen")]
pub use shader::{BindingDesc, ShaderBuilder, WgslField, WgslStruct};
#[cfg(feature = "shader-gen")]
pub use shader_utils::{
    ShaderSource, ShaderSourceBuilder, BATCH_METADATA_STRUCT, COMMON_COMPUTE_UTILS,
};
pub use telemetry::{
    measure_phase, GpuPhase, GpuTelemetry, TelemetryCollector, TelemetryPhase, TelemetryReport,
};