rtx-cfd legacy GPU: per-block buffer mutability; the D3Q19 getters extract before borrowing
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 / Python Bindings (maturin) (ubuntu-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 / Format Check (push) Failing after 5s
Performance Benchmarks / Run Benchmarks (push) Failing after 7s
CI / Build (ubuntu-latest) (push) Failing after 7s
CI / Clippy Check (push) Failing after 7s
Documentation / Build API Documentation (push) Failing after 5s
Documentation / Build User Guide (push) Successful in 6s
CI / Build CPU-Only (Explicit) (push) Failing after 1m11s

This commit is contained in:
Omar Sobh
2026-09-16 07:30:44 -05:00
parent 8999548aca
commit 1f77ec637a
2 changed files with 4 additions and 4 deletions
@@ -284,7 +284,7 @@ impl PisoGpuSolver {
let iterations = {
let buffers = self
.gpu_buffers
.as_ref()
.as_mut()
.ok_or_else(|| CfdError::gpu_error("GPU buffers not initialized"))?;
self.poisson_kernel.solve_2d(
&mut buffers.pressure_correction,
@@ -303,7 +303,7 @@ impl PisoGpuSolver {
{
let buffers = self
.gpu_buffers
.as_ref()
.as_mut()
.ok_or_else(|| CfdError::gpu_error("GPU buffers not initialized"))?;
self.matrix_ops_kernel
.axpy(1.0, &buffers.pressure_correction, &mut buffers.p)?;
@@ -731,12 +731,12 @@ __global__ void d3q19_bounce_back_boundaries(
/// Calculate total mass on GPU
pub fn gpu_total_mass(&mut self) -> CfdResult<f64> {
self.gpu_extract_macroscopic_variables()?;
let buffers = self
.gpu_buffers
.as_ref()
.ok_or_else(|| CfdError::gpu_error("GPU buffers not initialized"))?;
self.gpu_extract_macroscopic_variables()?;
let density_host = self.kernel_manager.copy_from_device(&buffers.density)?;
let total_mass: f32 = density_host.iter().sum();
Ok(total_mass as f64)
@@ -744,12 +744,12 @@ __global__ void d3q19_bounce_back_boundaries(
/// Calculate kinetic energy on GPU
pub fn gpu_kinetic_energy(&mut self) -> CfdResult<f64> {
self.gpu_extract_macroscopic_variables()?;
let buffers = self
.gpu_buffers
.as_ref()
.ok_or_else(|| CfdError::gpu_error("GPU buffers not initialized"))?;
self.gpu_extract_macroscopic_variables()?;
let density_host = self.kernel_manager.copy_from_device(&buffers.density)?;
let velocity_x_host = self.kernel_manager.copy_from_device(&buffers.velocity_x)?;
let velocity_y_host = self.kernel_manager.copy_from_device(&buffers.velocity_y)?;