//! GPU Testing Infrastructure for Foxhunt HFT System //! //! This module provides comprehensive GPU testing coverage including: //! - CUDA device initialization and detection //! - GPU memory management validation //! - ML model GPU inference testing //! - Performance benchmarks (GPU vs CPU) //! - CUDA kernel validation //! - Production GPU path testing pub mod cuda_initialization_test; pub mod gpu_memory_management_test; pub mod ml_gpu_inference_test; pub mod cuda_kernel_test; pub mod gpu_performance_bench; pub mod production_gpu_integration_test; // Re-export commonly used test utilities /// Common GPU test utilities pub mod utils { use std::sync::Once; static INIT: Once = Once::new(); /// Initialize GPU test environment once per test run pub fn init_gpu_test_env() { INIT.call_once(|| { env_logger::init(); log::info!("🚀 Initializing GPU test environment"); }); } /// Check if CUDA is available for testing pub fn cuda_available() -> bool { cudarc::driver::CudaDevice::new(0).is_ok() } /// Get test device (CUDA if available, CPU otherwise) pub fn get_test_device() -> ml_core::native_types::NativeDevice { if cudarc::driver::CudaContext::new(0).is_ok() { ml_core::native_types::NativeDevice::Cuda(0) } else { ml_core::native_types::NativeDevice::Cpu } } /// Skip test if CUDA not available pub fn require_cuda() { if !cuda_available() { eprintln!("⚠️ Skipping CUDA test - CUDA not available"); std::process::exit(0); } } }