diff --git a/network-poc/node/Cargo.toml b/network-poc/node/Cargo.toml index e7201ae..dce534b 100644 --- a/network-poc/node/Cargo.toml +++ b/network-poc/node/Cargo.toml @@ -26,9 +26,6 @@ web-sys = { version = "0.3.68", features = [ ] } serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" -burn = { version = "0.14.0", features = ["wgpu", "ndarray"] } -burn-wgpu = "0.14.0" -burn-ndarray = "0.14.0" wasm-bindgen-futures = "0.4" console_error_panic_hook = "0.1.7" reqwest = { version = "0.12", default-features = false, features = ["json"] } diff --git a/network-poc/node/src/lib.rs b/network-poc/node/src/lib.rs index 7c0a584..887d424 100644 --- a/network-poc/node/src/lib.rs +++ b/network-poc/node/src/lib.rs @@ -3,8 +3,6 @@ use web_sys::{WebSocket, MessageEvent}; use std::cell::RefCell; use std::rc::Rc; use std::sync::atomic::{AtomicU32, AtomicBool, Ordering}; -use burn::tensor::Tensor; -use burn::backend::{Wgpu, NdArray}; pub mod storage; pub mod sampling; @@ -79,41 +77,6 @@ pub async fn worker_fetch(url: &str) -> Result { .map_err(|_| "ei Response".to_string()) } -// Geneerinen tensorilaskenta — toimii millä tahansa Burn-backendillä -fn run_matmul(size: usize) -> String { - let device = Default::default(); - let dist = burn::tensor::Distribution::Default; - let t1: Tensor = Tensor::random([size, size], dist, &device); - let t2: Tensor = Tensor::random([size, size], dist, &device); - let sum = t1.matmul(t2).sum(); - format!("{:?}", sum) -} - -// Päättelyfunktio — valitsee backendin automaattisesti -async fn run_ai_tensor_inference(difficulty: usize) -> String { - let load_pct = GPU_LOAD_PERCENT.load(Ordering::SeqCst); - - if load_pct == 0 { - sleep_ms(2000).await; - return format!("Paused (0%). Lepäillään zZz.."); - } - - let active_workload_size = (difficulty as f32 * (load_pct as f32 / 100.0)) as usize; - - let sleep_delay = (100 - load_pct) * 10; - if sleep_delay > 0 { - sleep_ms(sleep_delay as i32).await; - } - - let use_gpu = HAS_WEBGPU.load(Ordering::SeqCst); - let (backend_name, result) = if use_gpu { - ("WebGPU", run_matmul::(active_workload_size)) - } else { - ("CPU/NdArray", run_matmul::(active_workload_size)) - }; - - format!("PoC {} Matmul ({}x{}) >> {}", backend_name, active_workload_size, active_workload_size, result) -} /// JS-exportti: tokenisoi tekstin ja palauttaa JSON-merkkijonon /// Tokenizer ladataan IndexedDB:stä (täytyy olla ladattu aiemmin) @@ -351,17 +314,6 @@ pub async fn start_agent_node(hub_url: String, has_webgpu: bool, device_info_jso } } } // current_task == 4 || 5 - } else if msg.contains("ai_task") { - console_log!("Hub task vastaanotettu, ajetaan GPU:lla..."); - let ws_for_async = ws_clone.clone(); - let diff = if msg.contains(r#""difficulty":1024"#) { 1024 } else { 512 }; - - // Suoritetaan inference asynkronisesti erillisessä taaskissa välttääksemme UI-jäätymisen kokonaan - wasm_bindgen_futures::spawn_local(async move { - let result = run_ai_tensor_inference(diff).await; - let reply = format!("{{\"type\":\"result\", \"status\":\"success\", \"data\":\"{}\"}}", result); - let _ = ws_for_async.borrow().send_with_str(&reply); - }); } else if msg.contains("stats") { // Sivuutetaan statsit täällä, UI hallitsee ne aivan itse HTML:n puolella }