rtx-cfd legacy GPU: kernel outputs were device-buffer CLONES (every write lost) — the buffers are borrowed mutably now; the Poisson kernels keep boundary Dirichlet values; tests: the advection pulse marched 50 steps, the Jacobi budget 20k, the reduction reference in f64
CI / Python Bindings (maturin) (ubuntu-latest) (push) Blocked by required conditions
CI / Build (macos-latest) (push) Waiting to run
CI / Test (macos-latest) (push) Blocked by required conditions
CI / Test (ubuntu-latest) (push) Blocked by required conditions
CI / Python Bindings (maturin) (macos-latest) (push) Blocked by required conditions
CI / WASM Build + Size Check (push) Blocked by required conditions
CI / Distributed Training Tests (push) Blocked by required conditions
CI / CI Success (push) Blocked by required conditions
CI / Build CPU-Only (Explicit) (push) Failing after 5s
Documentation / Build User Guide (push) Successful in 5s
Documentation / Build API Documentation (push) Failing after 5s
CI / Format Check (push) Failing after 10s
CI / Build (ubuntu-latest) (push) Failing after 1m22s
CI / Clippy Check (push) Failing after 1m38s
Performance Benchmarks / Run Benchmarks (push) Successful in 2m50s

This commit is contained in:
Omar Sobh
2026-09-16 07:28:42 -05:00
parent f3f6ac21fb
commit 0de750bad1
8 changed files with 58 additions and 62 deletions
@@ -147,7 +147,7 @@ impl PisoGpuSolver {
fn copy_to_gpu(&self, flow_field: &FlowField) -> CfdResult<()> {
let buffers = self
.gpu_buffers
.as_ref()
.as_mut()
.ok_or_else(|| CfdError::gpu_error("GPU buffers not initialized"))?;
// Convert nalgebra matrices to flat vectors
@@ -171,7 +171,7 @@ impl PisoGpuSolver {
fn copy_from_gpu(&self, flow_field: &mut FlowField) -> CfdResult<()> {
let buffers = self
.gpu_buffers
.as_ref()
.as_mut()
.ok_or_else(|| CfdError::gpu_error("GPU buffers not initialized"))?;
// Copy from GPU
@@ -271,7 +271,7 @@ impl PisoGpuSolver {
let (nx, ny) = {
let buffers = self
.gpu_buffers
.as_ref()
.as_mut()
.ok_or_else(|| CfdError::gpu_error("GPU buffers not initialized"))?;
(buffers.nx, buffers.ny)
};
@@ -313,7 +313,7 @@ impl PisoGpuSolver {
let residual_norm = {
let buffers = self
.gpu_buffers
.as_ref()
.as_mut()
.ok_or_else(|| CfdError::gpu_error("GPU buffers not initialized"))?;
self.matrix_ops_kernel.vector_norm(&buffers.mass_source)?
};
@@ -464,8 +464,8 @@ impl PisoGpuSolver {
.stream()
.launch_builder(&func)
.arg(&buffers.pressure_correction)
.arg(&mut buffers.u_correction.clone())
.arg(&mut buffers.v_correction.clone())
.arg(&mut buffers.u_correction)
.arg(&mut buffers.v_correction)
.arg(&correction_factor)
.arg(&dx)
.arg(&dy)