pub mod device;
pub mod buffer;
pub mod config;
pub mod accelerator;
pub mod vector_index;
pub mod memory_pool;
pub mod batch_processor;
pub use device::{GpuDevice, query_gpu_devices, get_best_gpu_device};
pub use buffer::GpuBuffer;
pub use config::{GpuConfig, GpuOptimization, GpuPrecision};
pub use accelerator::GpuAccelerator;
pub use vector_index::{GpuVectorIndex, AdvancedGpuVectorIndex, GpuOperationType, GpuOperationResult};
pub use memory_pool::GpuMemoryPool;
pub use batch_processor::{BatchVectorProcessor, GpuPerformanceReport};
use anyhow::Result;
use std::sync::Once;
static INIT: Once = Once::new();
pub fn initialize_gpu() -> Result<()> {
INIT.call_once(|| {
});
Ok(())
}
pub fn is_gpu_available() -> bool {
query_gpu_devices().map(|devices| !devices.is_empty()).unwrap_or(false)
}