Skip to main content

Crate oxigdal_gpu_advanced

Crate oxigdal_gpu_advanced 

Source
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§

LibraryInfo
Library information

Constants§

NAME
Library name
VERSION
Library version

Functions§

info
Get library information