cubecl-runtime 0.10.0

Crate that helps creating high performance async runtimes for CubeCL.
Documentation
use cubecl_ir::MemoryDeviceProperties;
use cubecl_runtime::{
    logging::ServerLogger,
    memory_management::{MemoryConfiguration, MemoryManagement, MemoryManagementOptions},
    storage::BytesStorage,
};
use std::{collections::LinkedList, sync::Arc};

const MB: u64 = 1024 * 1024;

fn main() {
    let start = std::time::Instant::now();
    let storage = BytesStorage::default();
    let config = MemoryConfiguration::default();
    let mem_props = MemoryDeviceProperties {
        max_page_size: 2048 * MB,
        alignment: 32,
    };
    let logger = Arc::new(ServerLogger::default());
    let mut mm = MemoryManagement::from_configuration(
        storage,
        &mem_props,
        config,
        logger,
        MemoryManagementOptions::new("test"),
    );
    let mut handles = LinkedList::new();
    for _ in 0..100 * 2048 {
        if handles.len() >= 4000 {
            handles.pop_front();
        }
        let handle = mm.reserve(MB);
        handles.push_back(handle);
    }
    println!("{:?}", start.elapsed());
}