Expand description
Advanced GPU computing for geospatial operations with multi-GPU support.
This crate provides advanced GPU computing capabilities for OxiGDAL including:
- Multi-GPU orchestration and load balancing
- Advanced memory pool management
- Shader compilation and optimization
- GPU-accelerated terrain analysis
- GPU-based ML inference
§Features
- Multi-GPU Support: Automatically detect and utilize multiple GPUs
- Memory Pooling: Efficient GPU memory management with sub-allocation
- Shader Optimization: Compile and optimize WGSL shaders
- Work Stealing: Dynamic load balancing across GPUs
- GPU Affinity: Thread-to-GPU pinning for optimal performance
§Examples
use oxigdal_gpu_advanced::multi_gpu::{MultiGpuManager, SelectionStrategy};
// Create multi-GPU manager
let manager = MultiGpuManager::new(SelectionStrategy::LeastLoaded).await?;
// Print available GPUs
manager.print_gpu_info();
// Select best GPU for task
let gpu = manager.select_gpu()?;
println!("Selected GPU: {}", gpu.info.name);Re-exports§
pub use adaptive::AdaptiveConfig;pub use adaptive::AdaptiveSelector;pub use adaptive::Algorithm;pub use adaptive::AlgorithmStats;pub use adaptive::DeviceInfo;pub use adaptive::ExecutionStrategy;pub use adaptive::TuningParams;pub use adaptive::WorkloadInfo;pub use error::GpuAdvancedError;pub use error::Result;pub use gpu_ml::ActivationType;pub use gpu_ml::GpuMlInference;pub use gpu_ml::InferenceStats;pub use gpu_ml::PoolType;pub use gpu_terrain::GpuTerrainAnalyzer;pub use gpu_terrain::TerrainMetrics;pub use kernels::EdgeDetectionKernel;pub use kernels::FftKernel;pub use kernels::HistogramEqKernel;pub use kernels::KernelParams;pub use kernels::KernelRegistry;pub use kernels::MatrixMultiplyKernel;pub use kernels::MorphologyKernel;pub use kernels::TextureAnalysisKernel;pub use memory_compaction::CompactionConfig;pub use memory_compaction::CompactionResult;pub use memory_compaction::CompactionStats;pub use memory_compaction::CompactionStrategy;pub use memory_compaction::FragmentationInfo;pub use memory_compaction::MemoryCompactor;pub use memory_pool::MemoryAllocation;pub use memory_pool::MemoryPool;pub use memory_pool::MemoryPoolStats;pub use multi_gpu::GpuDevice;pub use multi_gpu::GpuDeviceInfo;pub use multi_gpu::MultiGpuManager;pub use multi_gpu::SelectionStrategy;pub use multi_gpu::affinity::AffinityGuard;pub use multi_gpu::affinity::AffinityManager;pub use multi_gpu::affinity::AffinityStats;pub use multi_gpu::device_manager::DeviceCapabilities;pub use multi_gpu::device_manager::DeviceFilter;pub use multi_gpu::device_manager::DeviceManager;pub use multi_gpu::device_manager::DevicePerformanceClass;pub use multi_gpu::load_balancer::LoadBalancer;pub use multi_gpu::load_balancer::LoadStats;pub use multi_gpu::sync::Barrier;pub use multi_gpu::sync::Event;pub use multi_gpu::sync::Fence;pub use multi_gpu::sync::GpuSemaphore;pub use multi_gpu::sync::SemaphoreGuard;pub use multi_gpu::sync::SyncManager;pub use multi_gpu::sync::SyncStats;pub use multi_gpu::work_queue::BatchSubmitter;pub use multi_gpu::work_queue::WorkQueue;pub use multi_gpu::work_queue::WorkStealingQueue;pub use pipeline_builder::Pipeline;pub use pipeline_builder::PipelineBuilder;pub use pipeline_builder::PipelineConfig;pub use pipeline_builder::PipelineInfo;pub use pipeline_builder::PipelineStage;pub use profiling::BottleneckKind;pub use profiling::BottleneckSeverity;pub use profiling::GpuProfiler;pub use profiling::KernelStats;pub use profiling::PerformanceBottleneck;pub use profiling::ProfileSession;pub use profiling::ProfilingConfig;pub use profiling::ProfilingMetrics;pub use profiling::ProfilingReport;pub use shader_compiler::CompiledShader;pub use shader_compiler::CompilerStats;pub use shader_compiler::ShaderCompiler;pub use shader_compiler::ShaderPreprocessor;pub use shader_compiler::analyzer::PerformanceClass;pub use shader_compiler::analyzer::ShaderAnalysis;pub use shader_compiler::analyzer::ShaderAnalyzer;pub use shader_compiler::cache::CacheStats;pub use shader_compiler::cache::ShaderCache;pub use shader_compiler::optimizer::OptimizationConfig;pub use shader_compiler::optimizer::OptimizationLevel;pub use shader_compiler::optimizer::OptimizationMetrics;pub use shader_compiler::optimizer::ShaderOptimizer;
Modules§
- adaptive
- Adaptive algorithm selection and auto-tuning for GPUs.
- error
- Error types for advanced GPU operations.
- gpu_ml
- GPU-accelerated ML inference for geospatial data.
- gpu_
terrain - GPU-accelerated terrain analysis algorithms.
- kernels
- Advanced GPU compute kernels and WGSL shaders.
- memory_
compaction - GPU memory defragmentation and compaction.
- memory_
pool - Advanced GPU memory pool with sub-allocation and defragmentation.
- multi_
gpu - Multi-GPU orchestration and management.
- pipeline_
builder - GPU compute pipeline builder with fluent API.
- profiling
- GPU profiling and performance metrics.
- shader_
compiler - WGSL shader compiler and optimizer.
Structs§
- Library
Info - Library information
Constants§
Functions§
- info
- Get library information